@azure-tools/typespec-azure-resource-manager 0.58.0-dev.2 → 0.58.0-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +45 -12
  2. package/dist/generated-defs/Azure.ResourceManager.Extension.Private.d.ts +25 -0
  3. package/dist/generated-defs/Azure.ResourceManager.Extension.Private.d.ts.map +1 -0
  4. package/dist/generated-defs/Azure.ResourceManager.Extension.Private.js +2 -0
  5. package/dist/generated-defs/Azure.ResourceManager.Extension.Private.js.map +1 -0
  6. package/dist/generated-defs/Azure.ResourceManager.Legacy.d.ts +14 -1
  7. package/dist/generated-defs/Azure.ResourceManager.Legacy.d.ts.map +1 -1
  8. package/dist/generated-defs/Azure.ResourceManager.Private.d.ts +8 -0
  9. package/dist/generated-defs/Azure.ResourceManager.Private.d.ts.map +1 -1
  10. package/dist/generated-defs/Azure.ResourceManager.d.ts +20 -6
  11. package/dist/generated-defs/Azure.ResourceManager.d.ts.map +1 -1
  12. package/dist/src/lib.d.ts +17 -2
  13. package/dist/src/lib.d.ts.map +1 -1
  14. package/dist/src/lib.js +6 -0
  15. package/dist/src/lib.js.map +1 -1
  16. package/dist/src/linter.d.ts.map +1 -1
  17. package/dist/src/linter.js +2 -0
  18. package/dist/src/linter.js.map +1 -1
  19. package/dist/src/namespace.d.ts.map +1 -1
  20. package/dist/src/namespace.js +14 -7
  21. package/dist/src/namespace.js.map +1 -1
  22. package/dist/src/operations.d.ts +3 -0
  23. package/dist/src/operations.d.ts.map +1 -1
  24. package/dist/src/operations.js +37 -2
  25. package/dist/src/operations.js.map +1 -1
  26. package/dist/src/private.decorators.d.ts.map +1 -1
  27. package/dist/src/private.decorators.js +61 -7
  28. package/dist/src/private.decorators.js.map +1 -1
  29. package/dist/src/resource.d.ts +16 -1
  30. package/dist/src/resource.d.ts.map +1 -1
  31. package/dist/src/resource.js +68 -14
  32. package/dist/src/resource.js.map +1 -1
  33. package/dist/src/rules/arm-custom-resource-no-key.d.ts +4 -0
  34. package/dist/src/rules/arm-custom-resource-no-key.d.ts.map +1 -0
  35. package/dist/src/rules/arm-custom-resource-no-key.js +28 -0
  36. package/dist/src/rules/arm-custom-resource-no-key.js.map +1 -0
  37. package/dist/src/rules/arm-resource-interfaces.d.ts.map +1 -1
  38. package/dist/src/rules/arm-resource-interfaces.js +2 -1
  39. package/dist/src/rules/arm-resource-interfaces.js.map +1 -1
  40. package/dist/src/rules/list-operation.js +1 -1
  41. package/dist/src/rules/list-operation.js.map +1 -1
  42. package/dist/src/state.d.ts +2 -0
  43. package/dist/src/state.d.ts.map +1 -1
  44. package/dist/src/state.js +2 -0
  45. package/dist/src/state.js.map +1 -1
  46. package/dist/src/tsp-index.d.ts.map +1 -1
  47. package/dist/src/tsp-index.js +2 -1
  48. package/dist/src/tsp-index.js.map +1 -1
  49. package/lib/Legacy/arm.legacy.tsp +4 -0
  50. package/lib/Legacy/decorator.tsp +18 -0
  51. package/lib/Legacy/extension.tsp +343 -0
  52. package/lib/Legacy/interfaces.tsp +38 -0
  53. package/lib/Legacy/operations.tsp +130 -32
  54. package/lib/arm.tsp +1 -0
  55. package/lib/common-types/internal.tsp +9 -0
  56. package/lib/common-types/types-ref.tsp +12 -3
  57. package/lib/decorators.tsp +38 -6
  58. package/lib/extension/extension.tsp +6 -0
  59. package/lib/extension/operations.tsp +507 -0
  60. package/lib/extension/parameters.tsp +223 -0
  61. package/lib/extension/private.decorators.tsp +24 -0
  62. package/lib/private.decorators.tsp +5 -0
  63. package/package.json +1 -1
@@ -15,11 +15,26 @@ using Rest;
15
15
  * @template ResourceTypeParameter The path parameter for the resource name
16
16
  * @template ErrorType Optional. The type of error models used in operations created form this template
17
17
  */
18
- @doc("")
19
18
  interface LegacyOperations<
20
19
  ParentParameters extends {},
21
20
  ResourceTypeParameter extends {},
22
21
  ErrorType extends {} = ErrorResponse
22
+ > extends RoutedOperations<ParentParameters, ResourceTypeParameter, ErrorType> {}
23
+
24
+ /**
25
+ * An operation template used to build resource operations in which the same resource type
26
+ * is accessible at multiple, fixed resource paths. Can be used with static routes.
27
+ * @template ParentParameters The path parameters for the resource parent
28
+ * @template ResourceTypeParameter The path parameter for the resource name
29
+ * @template ErrorType Optional. The type of error models used in operations created form this template
30
+ * @template ResourceRoute Optional. The resource route to use for operations in the interface.
31
+ */
32
+ @doc("")
33
+ interface RoutedOperations<
34
+ ParentParameters extends {},
35
+ ResourceTypeParameter extends {},
36
+ ErrorType extends {} = ErrorResponse,
37
+ ResourceRoute extends valueof ArmOperationOptions = #{ useStaticRoute: false }
23
38
  > {
24
39
  /**
25
40
  * A long-running resource CreateOrUpdate (PUT)
@@ -28,10 +43,13 @@ interface LegacyOperations<
28
43
  * @template Parameters Optional. Additional parameters after the path parameters
29
44
  * @template Response Optional. The success response(s) for the PUT operation
30
45
  * @template OptionalRequestBody Optional. Indicates whether the request body is optional
46
+ * @template OverrideErrortype Optional. The error response, if non-standard.
47
+ * @template OverrideRouteOptions Optional. The route options for the operation.
31
48
  */
32
- @autoRoute
33
49
  @doc("Create a {name}", Resource)
50
+ @armOperationRoute(OverrideRouteOptions)
34
51
  @armResourceCreateOrUpdate(Resource)
52
+ @Private.armUpdateProviderNamespace
35
53
  @Azure.Core.Foundations.Private.defaultFinalStateVia(#["location", "azure-async-operation"])
36
54
  @put
37
55
  CreateOrUpdateAsync<
@@ -43,13 +61,15 @@ interface LegacyOperations<
43
61
  Resource,
44
62
  LroHeaders
45
63
  >,
46
- OptionalRequestBody extends valueof boolean = false
64
+ OptionalRequestBody extends valueof boolean = false,
65
+ OverrideErrortype extends {} = ErrorType,
66
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
47
67
  >(
48
68
  ...ParentParameters,
49
69
  ...ResourceTypeParameter,
50
70
  ...Parameters,
51
71
  @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Resource,
52
- ): Response | ErrorType;
72
+ ): Response | OverrideErrortype;
53
73
 
54
74
  /**
55
75
  * A synchronous resource CreateOrUpdate (PUT)
@@ -57,23 +77,28 @@ interface LegacyOperations<
57
77
  * @template Parameters Optional. Additional parameters after the path parameters
58
78
  * @template Response Optional. The success response(s) for the PUT operation
59
79
  * @template OptionalRequestBody Optional. Indicates whether the request body is optional
80
+ * @template OverrideErrortype Optional. The error response, if non-standard.
81
+ * @template OverrideRouteOptions Optional. The route options for the operation.
60
82
  */
61
83
  #suppress "@azure-tools/typespec-azure-core/no-private-usage"
62
- @autoRoute
84
+ @armOperationRoute(OverrideRouteOptions)
63
85
  @doc("Create a {name}", Resource)
64
86
  @armResourceCreateOrUpdate(Resource)
87
+ @Private.armUpdateProviderNamespace
65
88
  @put
66
89
  CreateOrUpdateSync<
67
90
  Resource extends Foundations.SimpleResource,
68
91
  Parameters extends {} = {},
69
92
  Response extends {} = ArmResourceUpdatedResponse<Resource> | ArmResourceCreatedSyncResponse<Resource>,
70
- OptionalRequestBody extends valueof boolean = false
93
+ OptionalRequestBody extends valueof boolean = false,
94
+ OverrideErrortype extends {} = ErrorType,
95
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
71
96
  >(
72
97
  ...ParentParameters,
73
98
  ...ResourceTypeParameter,
74
99
  ...Parameters,
75
100
  @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Resource,
76
- ): Response | ErrorType;
101
+ ): Response | OverrideErrortype;
77
102
 
78
103
  /**
79
104
  * A long-running resource Update (PATCH)
@@ -83,10 +108,13 @@ interface LegacyOperations<
83
108
  * @template Parameters Optional. Additional parameters after the path parameters
84
109
  * @template Response Optional. The success response(s) for the PATCH operation
85
110
  * @template OptionalRequestBody Optional. Indicates whether the request body is optional
111
+ * @template OverrideErrortype Optional. The error response, if non-standard.
112
+ * @template OverrideRouteOptions Optional. The route options for the operation.
86
113
  */
87
- @autoRoute
88
114
  @doc("Update a {name}", Resource)
115
+ @armOperationRoute(OverrideRouteOptions)
89
116
  @armResourceUpdate(Resource)
117
+ @Private.armUpdateProviderNamespace
90
118
  @patch(#{ implicitOptionality: false })
91
119
  CustomPatchAsync<
92
120
  Resource extends Foundations.SimpleResource,
@@ -102,13 +130,15 @@ interface LegacyOperations<
102
130
  "Resource update request accepted.",
103
131
  LroHeaders
104
132
  >,
105
- OptionalRequestBody extends valueof boolean = false
133
+ OptionalRequestBody extends valueof boolean = false,
134
+ OverrideErrortype extends {} = ErrorType,
135
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
106
136
  >(
107
137
  ...ParentParameters,
108
138
  ...ResourceTypeParameter,
109
139
  ...Parameters,
110
140
  @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) properties: PatchModel,
111
- ): Response | ErrorType;
141
+ ): Response | OverrideErrortype;
112
142
 
113
143
  /**
114
144
  * A synchronous resource Update (PATCH)
@@ -117,23 +147,28 @@ interface LegacyOperations<
117
147
  * @template Parameters Optional. Additional parameters after the path parameters
118
148
  * @template Response Optional. The success response(s) for the PATCH operation
119
149
  * @template OptionalRequestBody Optional. Indicates whether the request body is optional
150
+ * @template OverrideErrortype Optional. The error response, if non-standard.
151
+ * @template OverrideRouteOptions Optional. The route options for the operation.
120
152
  */
121
- @autoRoute
122
153
  @doc("Update a {name}", Resource)
154
+ @armOperationRoute(OverrideRouteOptions)
123
155
  @armResourceUpdate(Resource)
156
+ @Private.armUpdateProviderNamespace
124
157
  @patch(#{ implicitOptionality: false })
125
158
  CustomPatchSync<
126
159
  Resource extends Foundations.SimpleResource,
127
160
  PatchModel extends {} = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
128
161
  Parameters extends {} = {},
129
162
  Response extends {} = ArmResponse<Resource>,
130
- OptionalRequestBody extends valueof boolean = false
163
+ OptionalRequestBody extends valueof boolean = false,
164
+ OverrideErrortype extends {} = ErrorType,
165
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
131
166
  >(
132
167
  ...ParentParameters,
133
168
  ...ResourceTypeParameter,
134
169
  ...Parameters,
135
170
  @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) properties: PatchModel,
136
- ): Response | ErrorType;
171
+ ): Response | OverrideErrortype;
137
172
 
138
173
  /**
139
174
  * Delete a resource asynchronously
@@ -141,72 +176,116 @@ interface LegacyOperations<
141
176
  * @template LroHeaders The lro headers for the operation
142
177
  * @template Parameters Optional. Additional parameters after the path parameters
143
178
  * @template Response Optional. The success response(s) for the delete operation
179
+ * @template OverrideErrorType Optional. The error response, if non-standard.
180
+ * @template OverrideRouteOptions Optional. The route options for the operation.
144
181
  */
145
182
  #suppress "@azure-tools/typespec-azure-core/no-response-body" "Valid"
146
- @autoRoute
147
183
  @doc("Delete a {name}", Resource)
184
+ @armOperationRoute(OverrideRouteOptions)
148
185
  @delete
149
186
  @deletesResource(Resource)
187
+ @Private.armUpdateProviderNamespace
150
188
  @armResourceDelete(Resource)
151
189
  DeleteWithoutOkAsync<
152
190
  Resource extends Foundations.SimpleResource,
153
191
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader &
154
192
  Azure.Core.Foundations.RetryAfterHeader,
155
193
  Parameters extends {} = {},
156
- Response extends {} = ArmDeleteAcceptedLroResponse<LroHeaders> | ArmDeletedNoContentResponse
157
- >(...ParentParameters, ...ResourceTypeParameter, ...Parameters): Response | ErrorType;
194
+ Response extends {} = ArmDeleteAcceptedLroResponse<LroHeaders> | ArmDeletedNoContentResponse,
195
+ OverrideErrorType extends {} = ErrorType,
196
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
197
+ >(...ParentParameters, ...ResourceTypeParameter, ...Parameters): Response | OverrideErrorType;
158
198
 
159
199
  /**
160
200
  * Delete a resource synchronously
161
201
  * @template Resource The resource being deleted
162
202
  * @template Parameters Optional. Additional parameters after the path parameters
163
203
  * @template Response Optional. The success response(s) for the delete operation
204
+ * @template OverrideErrorType Optional. The error response, if non-standard.
205
+ * @template OverrideRouteOptions Optional. The route options for the operation.
164
206
  */
165
207
  #suppress "@azure-tools/typespec-azure-core/no-response-body" "Valid"
166
- @autoRoute
167
208
  @doc("Delete a {name}", Resource)
209
+ @armOperationRoute(OverrideRouteOptions)
168
210
  @delete
169
211
  @deletesResource(Resource)
170
212
  @armResourceDelete(Resource)
213
+ @Private.armUpdateProviderNamespace
171
214
  DeleteSync<
172
215
  Resource extends Foundations.SimpleResource,
173
216
  Parameters extends {} = {},
174
- Response extends {} = ArmDeletedResponse | ArmDeletedNoContentResponse
175
- >(...ParentParameters, ...ResourceTypeParameter, ...Parameters): Response | ErrorType;
217
+ Response extends {} = ArmDeletedResponse | ArmDeletedNoContentResponse,
218
+ OverrideErrorType extends {} = ErrorType,
219
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
220
+ >(...ParentParameters, ...ResourceTypeParameter, ...Parameters): Response | OverrideErrorType;
176
221
 
177
222
  /**
178
223
  * @dev Get a resource
179
224
  * @template Resource The resource being read
180
225
  * @template Parameters Optional. Additional parameters after the path parameters
181
226
  * @template Response Optional. The success response for a get operation.
227
+ * @template OverrideErrorType Optional. The error response, if non-standard.
228
+ * @template OverrideRouteOptions Optional. The route options for the operation.
182
229
  */
183
- @autoRoute
184
230
  @doc("Get a {name}", Resource)
231
+ @armOperationRoute(OverrideRouteOptions)
185
232
  @get
186
233
  @readsResource(Resource)
187
234
  @armResourceRead(Resource)
235
+ @Private.armUpdateProviderNamespace
188
236
  Read<
189
237
  Resource extends Foundations.SimpleResource,
190
238
  Parameters extends {} = {},
191
- Response extends {} = ArmResponse<Resource>
192
- >(...ParentParameters, ...ResourceTypeParameter, ...Parameters): Response | ErrorType;
239
+ Response extends {} = ArmResponse<Resource>,
240
+ OverrideErrorType extends {} = ErrorType,
241
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
242
+ >(...ParentParameters, ...ResourceTypeParameter, ...Parameters): Response | OverrideErrorType;
243
+
244
+ /**
245
+ * Check a resource's existence via HEAD operation
246
+ * @template Resource The resource being checked
247
+ * @template Parameters Optional. Additional parameters after the path parameters
248
+ * @template Response Optional. The success response for a head operation (by default NoContent or NotFound response).
249
+ * @template OverrideErrorType Optional. The error response, if non-standard.
250
+ * @template OverrideRouteOptions Optional. The route options for the operation.
251
+ */
252
+ @armOperationRoute(OverrideRouteOptions)
253
+ @doc("Check for the existence of a {name}", Resource)
254
+ @Private.armUpdateProviderNamespace
255
+ @head
256
+ CheckExistence<
257
+ Resource extends Foundations.SimpleResource,
258
+ Parameters extends {} = {},
259
+ Response extends {} = ArmResourceExistsResponse | ArmResourceNotFoundResponse,
260
+ OverrideErrorType extends {} = ErrorType,
261
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
262
+ > is Foundations.ArmReadOperation<
263
+ ParentParameters & ResourceTypeParameter & Parameters,
264
+ Response,
265
+ OverrideErrorType
266
+ >;
193
267
 
194
268
  /**
195
269
  * List a resource
196
270
  * @template Resource The resource being listed
197
271
  * @template Parameters Optional. Additional parameters after the path parameters
198
272
  * @template Response Optional. The response returned by the list
273
+ * @template OverrideErrorType Optional. The error response, if non-standard.
274
+ * @template OverrideRouteOptions Optional. The route options for the operation.
199
275
  */
200
- @autoRoute
201
276
  @doc("List a {name}", Resource)
202
277
  @get
203
278
  @listsResource(Resource)
204
279
  @segmentOf(Resource)
280
+ @armOperationRoute(OverrideRouteOptions)
205
281
  @armResourceList(Resource)
282
+ @Private.armUpdateProviderNamespace
206
283
  List<
207
284
  Resource extends Foundations.SimpleResource,
208
285
  Parameters extends {} = {},
209
- Response extends {} = ArmResponse<ResourceListResult<Resource>>
286
+ Response extends {} = ArmResponse<ResourceListResult<Resource>>,
287
+ OverrideErrorType extends {} = ErrorType,
288
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
210
289
  >(...ParentParameters, ...Parameters): Response | ErrorType;
211
290
 
212
291
  /**
@@ -216,19 +295,24 @@ interface LegacyOperations<
216
295
  * @template Response The response model for the action
217
296
  * @template Parameters Optional. Additional parameters after the path parameters
218
297
  * @template OptionalRequestBody Optional. Indicates whether the request body is optional
298
+ * @template OverrideErrortype Optional. The error response, if non-standard.
299
+ * @template OverrideRouteOptions Optional. The route options for the operation.
219
300
  */
220
301
  @doc("")
221
- @autoRoute
222
302
  @armResourceAction(Resource)
303
+ @armOperationRoute(OverrideRouteOptions)
223
304
  @Private.enforceConstraint(Resource, Foundations.Resource)
224
305
  @post
306
+ @Private.armUpdateProviderNamespace
225
307
  @returnsDoc("Azure operation completed successfully.")
226
308
  ActionSync<
227
309
  Resource extends Foundations.SimpleResource,
228
310
  Request extends TypeSpec.Reflection.Model | void,
229
311
  Response extends TypeSpec.Reflection.Model | void,
230
312
  Parameters extends {} = {},
231
- OptionalRequestBody extends valueof boolean = false
313
+ OptionalRequestBody extends valueof boolean = false,
314
+ OverrideErrortype extends {} = ErrorType,
315
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
232
316
  >(
233
317
  ...ParentParameters,
234
318
  ...ResourceTypeParameter,
@@ -237,22 +321,26 @@ interface LegacyOperations<
237
321
  @doc("The content of the action request")
238
322
  @armBodyRoot(OptionalRequestBody)
239
323
  body: Request,
240
- ): Response | ErrorType;
324
+ ): Response | OverrideErrortype;
241
325
 
242
326
  /**
243
327
  * A long-running resource action.
244
328
  * @template Resource The resource being acted upon
245
329
  * @template Request The request model for the action
330
+ * @template Result The result model for the action when the operation is successful
246
331
  * @template LroHeaders Optional. Allows overriding the headers returned in the Accepted response
247
- * @template Response The response model for the action
332
+ * @template Response The union of successful responses for the action
248
333
  * @template Parameters Optional. Additional parameters after the path parameters
249
334
  * @template OptionalRequestBody Optional. Indicates whether the request body is optional
335
+ * @template OverrideErrortype Optional. The error response, if non-standard.
336
+ * @template OverrideRouteOptions Optional. The route options for the operation.
250
337
  */
251
338
  #suppress "@azure-tools/typespec-azure-core/no-response-body" "ARM"
252
339
  @doc("")
253
- @autoRoute
254
340
  @armResourceAction(Resource)
341
+ @armOperationRoute(OverrideRouteOptions)
255
342
  @Private.enforceConstraint(Resource, Foundations.Resource)
343
+ @Private.armUpdateProviderNamespace
256
344
  @post
257
345
  @returnsDoc("Azure operation completed successfully.")
258
346
  ActionAsync<
@@ -270,7 +358,9 @@ interface LegacyOperations<
270
358
  "Resource operation accepted.",
271
359
  LroHeaders
272
360
  > | Result,
273
- OptionalRequestBody extends valueof boolean = false
361
+ OptionalRequestBody extends valueof boolean = false,
362
+ OverrideErrortype extends {} = ErrorType,
363
+ OverrideRouteOptions extends valueof ArmOperationOptions = ResourceRoute
274
364
  >(
275
365
  ...ParentParameters,
276
366
  ...ResourceTypeParameter,
@@ -279,16 +369,24 @@ interface LegacyOperations<
279
369
  @doc("The content of the action request")
280
370
  @armBodyRoot(OptionalRequestBody)
281
371
  body: Request,
282
- ): Response | ErrorType;
372
+ ): Response | OverrideErrortype;
283
373
  }
284
374
  /**
285
- * @dev Get the provider namespace key-value pair
375
+ * @dev DEPRECATED: Use ProviderParameter instead. Get the provider namespace key-value pair
286
376
  * @template Resource Optional. The resource to get the provider namespace for.
287
377
  */
288
378
  model Provider<Resource extends {} = TenantActionScope> {
289
379
  ...ProviderNamespace<Resource>;
290
380
  }
291
381
 
382
+ /**
383
+ * @dev Get the provider namespace key-value pair
384
+ * @template Resource The resource to get the provider namespace for.
385
+ */
386
+ model ProviderParameter<Resource extends {}> {
387
+ ...ProviderNamespace<Resource>;
388
+ }
389
+
292
390
  /**
293
391
  * A long-running resource update using a custom PATCH payload (Asynchronous)
294
392
  * @template Resource the resource being patched
package/lib/arm.tsp CHANGED
@@ -8,6 +8,7 @@ import "@azure-tools/typespec-azure-core";
8
8
  import "./foundations/arm.foundations.tsp";
9
9
  import "./Legacy/arm.legacy.tsp";
10
10
  import "./common-types/common-types.tsp";
11
+ import "./extension/extension.tsp";
11
12
  import "./backcompat.tsp";
12
13
  import "./private.decorators.tsp";
13
14
  import "./models.tsp";
@@ -18,6 +18,15 @@ enum ResourceHome {
18
18
 
19
19
  @doc("The resource is bound to an extension")
20
20
  Extension,
21
+
22
+ @doc("The resource is a built in tenant resource")
23
+ BuiltIn,
24
+
25
+ @doc("The resource is a built in subscription resource")
26
+ BuiltInSubscription,
27
+
28
+ @doc("The resource is a built in resource group resource")
29
+ BuiltInResourceGroup,
21
30
  }
22
31
 
23
32
  /** Alias of keyEncryptionKeyIdentity for back compatibility. Please change to keyEncryptionKeyIdentity. */
@@ -376,7 +376,10 @@ namespace Azure.ResourceManager.CommonTypes;
376
376
  ResourceHome.Subscription,
377
377
  ResourceHome.Location,
378
378
  ResourceHome.Tenant,
379
- ResourceHome.Extension
379
+ ResourceHome.Extension,
380
+ ResourceHome.BuiltIn,
381
+ ResourceHome.BuiltInSubscription,
382
+ ResourceHome.BuiltInResourceGroup
380
383
  ]
381
384
  );
382
385
 
@@ -398,7 +401,13 @@ namespace Azure.ResourceManager.CommonTypes;
398
401
  Azure.ResourceManager.CommonTypes.Versions.v6
399
402
  );
400
403
  @@resourceParameterBaseFor(SubscriptionIdParameter.subscriptionId,
401
- [ResourceHome.ResourceGroup, ResourceHome.Subscription, ResourceHome.Location]
404
+ [
405
+ ResourceHome.ResourceGroup,
406
+ ResourceHome.Subscription,
407
+ ResourceHome.Location,
408
+ ResourceHome.BuiltInSubscription,
409
+ ResourceHome.BuiltInResourceGroup
410
+ ]
402
411
  );
403
412
 
404
413
  /** ResourceGroupNameParameter */
@@ -419,7 +428,7 @@ namespace Azure.ResourceManager.CommonTypes;
419
428
  Azure.ResourceManager.CommonTypes.Versions.v6
420
429
  );
421
430
  @@resourceParameterBaseFor(ResourceGroupNameParameter.resourceGroupName,
422
- [ResourceHome.ResourceGroup]
431
+ [ResourceHome.ResourceGroup, ResourceHome.BuiltInResourceGroup]
423
432
  );
424
433
 
425
434
  /** ManagementGroupNameParameter */
@@ -152,16 +152,48 @@ extern dec armResourceList(target: Operation, resourceType: Model);
152
152
 
153
153
  /**
154
154
  * This decorator is used to identify interfaces containing resource operations.
155
- * When applied, it marks the interface with the `@autoRoute` decorator so that
155
+ * By default, it marks the interface with the `@autoRoute` decorator so that
156
156
  * all of its contained operations will have their routes generated
157
157
  * automatically.
158
158
  *
159
- * It also adds a `@tag` decorator bearing the name of the interface so that all
159
+ * The decorator also adds a `@tag` decorator bearing the name of the interface so that all
160
160
  * of the operations will be grouped based on the interface name in generated
161
161
  * clients.
162
- * @param _ DEPRECATED
162
+ *
163
+ * The optional `resourceOperationOptions` parameter provides additional options.
164
+ * `allowStaticRoutes` turns off autoRout for the interface, so individual operations can
165
+ * choose static (`@route`) or automatic (`@autoRoute`) routing.
166
+ *
167
+ * `resourceType: Model` specifies the resource type for the operations in the interface
168
+ *
169
+ * `omitTags: true`: turns off the default tagging of operations in the interface, so that individual operations must be
170
+ * individually tagged
171
+ *
172
+ *
173
+ * @param resourceOperationOptions Options for routing the operations in the interface and associating them with a specific resource
163
174
  */
164
- extern dec armResourceOperations(target: Interface, _?: unknown);
175
+ extern dec armResourceOperations(
176
+ target: Interface,
177
+ resourceOperationOptions?: (valueof ResourceOperationOptions) | unknown
178
+ );
179
+
180
+ /** Interface-level operation options */
181
+ model ResourceOperationOptions {
182
+ /**
183
+ * The resource type for the operations in the interface
184
+ */
185
+ resourceType?: Model;
186
+
187
+ /**
188
+ * If true, turns off autoRoute for the interface, so individual operations can choose static (`@route`) or automatic (`@autoRoute`) routing.
189
+ */
190
+ allowStaticRoutes?: boolean;
191
+
192
+ /**
193
+ * If true, turns off the default tagging of operations in the interface, so that individual operations must be individually tagged
194
+ */
195
+ omitTags?: boolean;
196
+ }
165
197
 
166
198
  /**
167
199
  * This decorator is used either on a namespace or a version enum value to indicate
@@ -180,7 +212,7 @@ extern dec armCommonTypesVersion(
180
212
  *
181
213
  * @param propertiesType: The type of the resource properties.
182
214
  */
183
- extern dec armVirtualResource(target: Model);
215
+ extern dec armVirtualResource(target: Model, provider?: valueof string);
184
216
 
185
217
  /**
186
218
  * This decorator sets the base type of the given resource.
@@ -189,7 +221,7 @@ extern dec armVirtualResource(target: Model);
189
221
  */
190
222
  extern dec resourceBaseType(
191
223
  target: Model,
192
- baseType: "Tenant" | "Subscription" | "ResourceGroup" | "Location" | "Extension"
224
+ baseTypeIt: "Tenant" | "Subscription" | "ResourceGroup" | "Location" | "Extension"
193
225
  );
194
226
 
195
227
  /**
@@ -0,0 +1,6 @@
1
+ import "@azure-tools/typespec-azure-core";
2
+ import "./operations.tsp";
3
+ import "./parameters.tsp";
4
+ import "./private.decorators.tsp";
5
+
6
+ namespace Azure.ResourceManager.Extension;