Skip to content

Commit 6d6f335

Browse files
Merge branch 'main' into dynatrace-2025-11-03-preview
2 parents fbbca78 + 2daa450 commit 6d6f335

57,056 files changed

Lines changed: 2525515 additions & 1639834 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,7 @@
9595
/specification/containerservice/ @palma21 @weinong @seguler @alvinli222 @justindavies @matthchr @robbiezhang @paulgmiller @yizhang4321 @circy9 @qike-ms
9696

9797
# PRLabel: %Container Service Fleet
98-
/specification/containerservice/**/fleet/ @circy9 @serbrech @jim-minter @matthchr
99-
100-
# PRLabel: %Container Service Fleet
101-
/specification/containerservice/Fleet.Management/ @circy9 @serbrech @jim-minter @matthchr
98+
/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/ @circy9 @serbrech @matthchr
10299

103100
# PRLabel: %Cosmos
104101
/specification/cosmos-db/ @pjohari-ms @MehaKaushik
@@ -224,7 +221,7 @@
224221
/specification/scheduler/ @pinwang81
225222

226223
# PRLabel: %Search
227-
/specification/search/data-plane/ @kuanlu95 @BevLoh @giulianob
224+
/specification/search/data-plane/ @kuanlu95 @BevLoh @giulianob @xiangyan99
228225

229226
# PRLabel: %Search
230227
/specification/search/resource-manager/ @efrainretana @BevLoh @xiong-qiao @jonathanserbent @Draconicida @kuanlu95 @admayber
@@ -311,4 +308,8 @@
311308
/.github/copilot-instructions.md @praveenkuttappan @maririos
312309
/.github/prompts/ @praveenkuttappan @maririos
313310
/.github/instructions/ @praveenkuttappan @maririos
311+
/.github/instructions/*arm*.md @raosuhas
314312
/.github/chatmodes/ @praveenkuttappan @maririos
313+
314+
# Add owners for notifications for specific pipelines
315+
/eng/common/pipelines/codeowners-linter.yml

.github/CODEOWNERS_baseline_errors.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,4 @@ Azure/azure-app-service-control-plane is an invalid team. Ensure the team exists
141141
'AzureML - Compute Instance' is not a valid label for this repository.
142142
Azure/aml-compute-instance is an invalid team. Ensure the team exists and has write permissions.
143143
shahabhijeet is an invalid user. Ensure the user exists, is public member of Azure and has write permissions.
144+
Path entry, /eng/common/pipelines/codeowners-linter.yml, is missing owners

.github/cspell.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ words:
1515
- retarget
1616
- rhysd
1717
- rpaas
18+
- rpaa
1819
- tsgs
1920
- unstub
2021
- vitest

.github/dependabot.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ updates:
3131
update-types: ["version-update:semver-minor", "version-update:semver-major"]
3232
groups:
3333
# Ships separately from other typespec packages
34+
openapi-typespec:
35+
patterns:
36+
- "@azure-tools/openai-typespec"
37+
# Ships separately from other typespec packages
3438
typespec-client-generator-cli:
3539
patterns:
3640
- "@azure-tools/typespec-client-generator-cli"
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
---
2+
applyTo: "**/specification/**/resource-manager/*.json"
3+
---
4+
5+
# ARM OpenAPI (Swagger) Review Instructions
6+
7+
When reviewing Azure Resource Manager (ARM) OpenAPI specifications, ensure compliance with Microsoft API
8+
Guidelines and Azure RPC contracts. Prioritize Azure RPC requirements when conflicts arise.
9+
10+
## Critical Requirements
11+
12+
### 1. API Guidelines Compliance
13+
14+
- **MUST** follow [Azure REST API Guidelines]
15+
(https://github.com/microsoft/api-guidelines/blob/vNext/azure/Guidelines.md)
16+
- **MUST** conform to [Azure RPC contracts]
17+
(https://github.com/cloud-and-ai-microsoft/resource-provider-contract)
18+
- Azure RPC takes precedence over general guidelines in case of conflicts
19+
20+
### 2. Breaking Changes Prevention
21+
22+
- **NO breaking changes** in GA (stable) API versions per
23+
[Azure Breaking Changes Policy](https://aka.ms/AzBreakingChangesPolicy)
24+
- Verify no removal/renaming of properties, operations, or parameters in existing versions
25+
- Check property types remain unchanged (e.g., boolean → string is breaking)
26+
- Ensure enum values are not removed or renamed
27+
- New required properties or parameters require new API version
28+
- URL path format changes require new API version
29+
30+
### 3. ARM Resource Model Requirements
31+
32+
- Resource model name **MUST** match singular form of resource type (e.g., `VirtualMachine` for `virtualMachines`)
33+
- Top-level resources **MUST** have `ListByResourceGroup` and `ListBySubscription` operations
34+
- Tracked resources **MUST** have GET, PUT, PATCH (update), and DELETE operations
35+
- All resources **MUST** include `systemData` property (read-only) with type from common-types
36+
- Nested resources **MUST** have List operation
37+
38+
### 4. Common Types Usage
39+
40+
- **MUST** reference appropriate common-types version (v3, v4, or v5) for standard ARM types:
41+
- `Resource`, `TrackedResource`, `ProxyResource`, `ExtensionResource`
42+
- `ErrorResponse`, `ErrorDetail`
43+
- Standard parameters: `SubscriptionIdParameter`, `ResourceGroupNameParameter`, `ApiVersionParameter`
44+
- Use `$ref` to common-types instead of redefining standard ARM structures
45+
46+
### 5. API Versioning
47+
48+
- API version **MUST** follow `YYYY-MM-DD` format
49+
- Version **MUST** be in path:
50+
`/subscriptions/{subscriptionId}/providers/Microsoft.{Namespace}/...?api-version=YYYY-MM-DD`
51+
- Stable versions in `/stable/` directory, preview in `/preview/`
52+
53+
### 6. Security & Authentication
54+
55+
- **MUST** define `securityDefinitions` with OAuth2 Azure AD authentication
56+
- **MUST** apply `security` requirement to all operations
57+
- Scopes should use `user_impersonation` for management plane
58+
59+
### 7. Property & Parameter Correctness
60+
61+
- Mark required parameters as `"required": true` - incorrect marking breaks customers
62+
- Mark read-only properties as `"readOnly": true` (e.g., `id`, `name`, `type`, `systemData`)
63+
- Use `x-ms-mutability` to specify create/read/update behavior
64+
- Collections **MUST** support multiple elements, not artificially limited to one
65+
- Only define operations/properties/parameters actually supported by the service
66+
67+
### 8. Naming Conventions
68+
69+
- Properties and parameters: **camelCase** (e.g., `resourceGroupName`)
70+
- Resource types in path: **camelCase** (e.g., `/virtualMachines/{virtualMachineName}`)
71+
- Resource provider namespace: **PascalCase** (e.g., `Microsoft.Compute`)
72+
- Model definitions: **PascalCase** (e.g., `VirtualMachine`)
73+
- Enum values: **PascalCase** preferred
74+
- Avoid abbreviations in names unless industry-standard
75+
- Use resource name, not abbreviations, in path parameters: `{virtualMachineName}` not `{vmName}`
76+
77+
### 9. Operations & Operation IDs
78+
79+
- OperationId format: `{ResourceType}_{Action}` (e.g., `VirtualMachines_Get`, `VirtualMachines_CreateOrUpdate`)
80+
- Operations **MUST** have unique `operationId`
81+
- Use standard verbs: GET → `Get/List`, PUT → `CreateOrUpdate`, PATCH → `Update`, DELETE → `Delete`, POST → action name
82+
- Include `x-ms-examples` referencing example JSON files
83+
- DELETE operations: return 200 (with body), 202 (async), or 204 (no content)
84+
- Long-running operations: use `x-ms-long-running-operation: true` and return 201 or 202
85+
86+
### 10. Pagination & Collections
87+
88+
- List operations **MUST** use `x-ms-pageable` with `nextLinkName`
89+
- Collection models **MUST** have `value` array property and optional `nextLink` string
90+
91+
### 11. Documentation Quality
92+
93+
- Every operation, parameter, property, and model **MUST** have clear description
94+
- Start operation descriptions with verb (e.g., "Gets the virtual machine.")
95+
- Start with capital letter, end with period
96+
- Specify units for quantifiable properties (MB, seconds, etc.)
97+
- Use correct acronym capitalization: "URL" not "Url", "ID" not "Id"
98+
- Avoid: "Gets or sets...", "Gets...", "Sets..." in property descriptions
99+
- Document all HTTP status codes in responses
100+
101+
### 12. Error Handling
102+
103+
- Default error response **MUST** reference common-types `ErrorResponse`
104+
- Include "default" response for all operations
105+
- Use `x-ms-error-response: true` for error responses
106+
107+
### 13. Extensions & Special Features
108+
109+
- **REQUIRED**: `x-ms-parameter-location: "method"` for common parameters
110+
(subscriptionId, resourceGroupName, apiVersion)
111+
- Use `x-ms-enum` with `modelAsString: true` for extensible enums (allows new values without breaking)
112+
- Use `x-ms-discriminator-value` for polymorphic types
113+
- Private/internal operations: mark with `x-ms-visibility: "internal"`
114+
115+
### 14. Customer Usability
116+
117+
Think as a customer: Are parameter names intuitive? Is required vs. optional clear? Are default values
118+
documented? Can developers understand how to use this API from the specification alone?
119+
120+
### 15. Examples & Testing
121+
122+
- **MUST** include `x-ms-examples` for all operations
123+
- Example files in `examples/` directory
124+
- **MUST** test all operations before PR submission
125+
- Examples **MUST** validate against specification
126+
127+
## Review Checklist Summary
128+
129+
✓ No breaking changes in existing versions
130+
✓ Follows Azure RPC contracts
131+
✓ Common-types properly referenced
132+
✓ Naming conventions (camelCase properties, PascalCase types)
133+
✓ Required/readOnly correctly marked
134+
✓ Security definitions present
135+
✓ Standard ARM operations implemented
136+
✓ Pagination on list operations
137+
✓ Operation IDs follow pattern
138+
✓ Examples provided and valid
139+
✓ Descriptions clear and complete
140+
✓ API version format correct
141+
142+
Flag violations clearly with line numbers and specific guidance for fixes.
143+
Once completed always add the following comment : "Copilot used the entire file : .github/instructions/armapi-review.instructions.md for arm api reviews."

0 commit comments

Comments
 (0)