@azure-tools/typespec-azure-resource-manager 0.57.0-dev.4 → 0.57.0-dev.6

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.
@@ -13,13 +13,6 @@ export type ResourceParameterBaseForDecorator = (context: DecoratorContext, targ
13
13
  * @param propertyName Name of the property to omit
14
14
  */
15
15
  export type ResourceBaseParametersOfDecorator = (context: DecoratorContext, target: Model, propertyName: Model) => void;
16
- /**
17
- * This decorator is used to identify Azure Resource Manager resource. In generated
18
- * swagger definition, it will be marked with `x-ms-azure-resource`.
19
- *
20
- * It is *not* meant to be used directly by a spec author,
21
- */
22
- export type AzureResourceBaseDecorator = (context: DecoratorContext, target: Model) => void;
23
16
  /**
24
17
  * Please DO NOT USE in RestAPI specs.
25
18
  * Internal decorator that deprecated direct usage of `x-ms-client-flatten` OpenAPI extension.
@@ -36,6 +29,13 @@ export type ConditionalClientFlattenDecorator = (context: DecoratorContext, targ
36
29
  * @param resource Resource model
37
30
  */
38
31
  export type AssignProviderNameValueDecorator = (context: DecoratorContext, target: ModelProperty, resource: Model) => void;
32
+ /**
33
+ * This decorator is used to identify Azure Resource Manager resource. In generated
34
+ * swagger definition, it will be marked with `x-ms-azure-resource`.
35
+ *
36
+ * It is *not* meant to be used directly by a spec author,
37
+ */
38
+ export type AzureResourceBaseDecorator = (context: DecoratorContext, target: Model) => void;
39
39
  /**
40
40
  * Update the Azure Resource Manager provider namespace for a given entity.
41
41
  */
@@ -63,7 +63,7 @@ export type DefaultResourceKeySegmentNameDecorator = (context: DecoratorContext,
63
63
  * Provides strict contraint type check.
64
64
  *
65
65
  * Due to TypeSpec language and all optional properties of `Foundations.Resource`,
66
- * the `Resource extends Foundations.Resource` on many of the standard ARM templates is
66
+ * the `Resource extends Foundations.SimpleResource` on many of the standard ARM templates is
67
67
  * essentially equal to `Resource extends {}` and does not enforce the containt.
68
68
  *
69
69
  * Note, this is intended for internal use only for now.
@@ -90,10 +90,10 @@ export type ArmBodyRootDecorator = (context: DecoratorContext, target: ModelProp
90
90
  export type AzureResourceManagerPrivateDecorators = {
91
91
  resourceParameterBaseFor: ResourceParameterBaseForDecorator;
92
92
  resourceBaseParametersOf: ResourceBaseParametersOfDecorator;
93
- azureResourceBase: AzureResourceBaseDecorator;
94
93
  conditionalClientFlatten: ConditionalClientFlattenDecorator;
95
94
  omitIfEmpty: OmitIfEmptyDecorator;
96
95
  assignProviderNameValue: AssignProviderNameValueDecorator;
96
+ azureResourceBase: AzureResourceBaseDecorator;
97
97
  armUpdateProviderNamespace: ArmUpdateProviderNamespaceDecorator;
98
98
  armResourceInternal: ArmResourceInternalDecorator;
99
99
  defaultResourceKeySegmentName: DefaultResourceKeySegmentNameDecorator;
@@ -1 +1 @@
1
- {"version":3,"file":"Azure.ResourceManager.Private.d.ts","sourceRoot":"","sources":["../../generated-defs/Azure.ResourceManager.Private.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Azure.ResourceManager.Private.d.ts","sourceRoot":"","sources":["../../generated-defs/Azure.ResourceManager.Private.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ interface LegacyOperations<
35
35
  @Azure.Core.Foundations.Private.defaultFinalStateVia(#["location", "azure-async-operation"])
36
36
  @put
37
37
  CreateOrUpdateAsync<
38
- Resource extends Azure.ResourceManager.CommonTypes.Resource,
38
+ Resource extends Foundations.SimpleResource,
39
39
  LroHeaders extends TypeSpec.Reflection.Model = ArmAsyncOperationHeader<FinalResult = Resource> &
40
40
  Azure.Core.Foundations.RetryAfterHeader,
41
41
  Parameters extends {} = {},
@@ -48,7 +48,7 @@ interface LegacyOperations<
48
48
  ...ParentParameters,
49
49
  ...ResourceTypeParameter,
50
50
  ...Parameters,
51
- @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) body: Resource,
51
+ @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Resource,
52
52
  ): Response | ErrorType;
53
53
 
54
54
  /**
@@ -64,7 +64,7 @@ interface LegacyOperations<
64
64
  @armResourceCreateOrUpdate(Resource)
65
65
  @put
66
66
  CreateOrUpdateSync<
67
- Resource extends Azure.ResourceManager.CommonTypes.Resource,
67
+ Resource extends Foundations.SimpleResource,
68
68
  Parameters extends {} = {},
69
69
  Response extends {} = ArmResourceUpdatedResponse<Resource> | ArmResourceCreatedSyncResponse<Resource>,
70
70
  OptionalRequestBody extends valueof boolean = false
@@ -72,7 +72,7 @@ interface LegacyOperations<
72
72
  ...ParentParameters,
73
73
  ...ResourceTypeParameter,
74
74
  ...Parameters,
75
- @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) body: Resource,
75
+ @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) resource: Resource,
76
76
  ): Response | ErrorType;
77
77
 
78
78
  /**
@@ -89,7 +89,7 @@ interface LegacyOperations<
89
89
  @armResourceUpdate(Resource)
90
90
  @patch(#{ implicitOptionality: false })
91
91
  CustomPatchAsync<
92
- Resource extends Azure.ResourceManager.CommonTypes.Resource,
92
+ Resource extends Foundations.SimpleResource,
93
93
  PatchModel extends {} = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
94
94
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
95
95
  Azure.Core.StatusMonitorPollingOptions<ArmOperationStatus>,
@@ -107,7 +107,7 @@ interface LegacyOperations<
107
107
  ...ParentParameters,
108
108
  ...ResourceTypeParameter,
109
109
  ...Parameters,
110
- @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) body: PatchModel,
110
+ @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) properties: PatchModel,
111
111
  ): Response | ErrorType;
112
112
 
113
113
  /**
@@ -123,7 +123,7 @@ interface LegacyOperations<
123
123
  @armResourceUpdate(Resource)
124
124
  @patch(#{ implicitOptionality: false })
125
125
  CustomPatchSync<
126
- Resource extends Azure.ResourceManager.CommonTypes.Resource,
126
+ Resource extends Foundations.SimpleResource,
127
127
  PatchModel extends {} = Azure.ResourceManager.Foundations.TagsUpdateModel<Resource>,
128
128
  Parameters extends {} = {},
129
129
  Response extends {} = ArmResponse<Resource>,
@@ -132,7 +132,7 @@ interface LegacyOperations<
132
132
  ...ParentParameters,
133
133
  ...ResourceTypeParameter,
134
134
  ...Parameters,
135
- @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) body: PatchModel,
135
+ @doc("Resource create parameters.") @armBodyRoot(OptionalRequestBody) properties: PatchModel,
136
136
  ): Response | ErrorType;
137
137
 
138
138
  /**
@@ -148,8 +148,8 @@ interface LegacyOperations<
148
148
  @delete
149
149
  @deletesResource(Resource)
150
150
  @armResourceDelete(Resource)
151
- DeleteAsync<
152
- Resource extends Azure.ResourceManager.CommonTypes.Resource,
151
+ DeleteWithoutOkAsync<
152
+ Resource extends Foundations.SimpleResource,
153
153
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader &
154
154
  Azure.Core.Foundations.RetryAfterHeader,
155
155
  Parameters extends {} = {},
@@ -169,7 +169,7 @@ interface LegacyOperations<
169
169
  @deletesResource(Resource)
170
170
  @armResourceDelete(Resource)
171
171
  DeleteSync<
172
- Resource extends Azure.ResourceManager.CommonTypes.Resource,
172
+ Resource extends Foundations.SimpleResource,
173
173
  Parameters extends {} = {},
174
174
  Response extends {} = ArmDeletedResponse | ArmDeletedNoContentResponse
175
175
  >(...ParentParameters, ...ResourceTypeParameter, ...Parameters): Response | ErrorType;
@@ -186,7 +186,7 @@ interface LegacyOperations<
186
186
  @readsResource(Resource)
187
187
  @armResourceRead(Resource)
188
188
  Read<
189
- Resource extends Azure.ResourceManager.CommonTypes.Resource,
189
+ Resource extends Foundations.SimpleResource,
190
190
  Parameters extends {} = {},
191
191
  Response extends {} = ArmResponse<Resource>
192
192
  >(...ParentParameters, ...ResourceTypeParameter, ...Parameters): Response | ErrorType;
@@ -204,7 +204,7 @@ interface LegacyOperations<
204
204
  @segmentOf(Resource)
205
205
  @armResourceList(Resource)
206
206
  List<
207
- Resource extends Azure.ResourceManager.CommonTypes.Resource,
207
+ Resource extends Foundations.SimpleResource,
208
208
  Parameters extends {} = {},
209
209
  Response extends {} = ArmResponse<ResourceListResult<Resource>>
210
210
  >(...ParentParameters, ...Parameters): Response | ErrorType;
@@ -224,7 +224,7 @@ interface LegacyOperations<
224
224
  @post
225
225
  @returnsDoc("Azure operation completed successfully.")
226
226
  ActionSync<
227
- Resource extends Foundations.Resource,
227
+ Resource extends Foundations.SimpleResource,
228
228
  Request extends TypeSpec.Reflection.Model | void,
229
229
  Response extends TypeSpec.Reflection.Model | void,
230
230
  Parameters extends {} = {},
@@ -256,7 +256,7 @@ interface LegacyOperations<
256
256
  @post
257
257
  @returnsDoc("Azure operation completed successfully.")
258
258
  ActionAsync<
259
- Resource extends Foundations.Resource,
259
+ Resource extends Foundations.SimpleResource,
260
260
  Request extends TypeSpec.Reflection.Model | void,
261
261
  Result extends TypeSpec.Reflection.Model | void,
262
262
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
@@ -306,7 +306,7 @@ model Provider<Resource extends {} = TenantActionScope> {
306
306
  @Private.enforceConstraint(Resource, Foundations.Resource)
307
307
  @patch(#{ implicitOptionality: true })
308
308
  op CustomPatchAsync<
309
- Resource extends Foundations.Resource,
309
+ Resource extends Foundations.SimpleResource,
310
310
  PatchModel extends TypeSpec.Reflection.Model = TagsUpdateModel<Resource>,
311
311
  BaseParameters = DefaultBaseParameters<Resource>,
312
312
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
@@ -346,7 +346,7 @@ op CustomPatchAsync<
346
346
  @Private.enforceConstraint(Resource, Foundations.Resource)
347
347
  @patch(#{ implicitOptionality: true })
348
348
  op CustomPatchSync<
349
- Resource extends Foundations.Resource,
349
+ Resource extends Foundations.SimpleResource,
350
350
  PatchModel extends TypeSpec.Reflection.Model = TagsUpdateModel<Resource>,
351
351
  BaseParameters = DefaultBaseParameters<Resource>,
352
352
  Parameters extends {} = {},
package/lib/arm.tsp CHANGED
@@ -28,6 +28,21 @@ namespace Azure.ResourceManager;
28
28
 
29
29
  /**
30
30
  * Supported versions of Azure.ResourceManager building blocks.
31
+ *
32
+ * @example
33
+ * ```typespec
34
+ * enum Versions {
35
+ * @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1)
36
+ * @useDependency(Azure.Core.Versions.v1_0_Preview_2)
37
+ * @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5)
38
+ * v2021_10_01_preview: "2021-10-01-preview",
39
+ *
40
+ * @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1)
41
+ * @useDependency(Azure.Core.Versions.v1_0_Preview_2)
42
+ * @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5)
43
+ * v2021_11_01: "2021-11-01",
44
+ * }
45
+ * ```
31
46
  */
32
47
  @doc("Supported versions of Azure.ResourceManager building blocks.")
33
48
  enum Versions {
@@ -298,7 +298,7 @@ model ErrorAdditionalInfo {
298
298
 
299
299
  /** The additional info. */
300
300
  @visibility(Lifecycle.Read)
301
- info?: {};
301
+ info?: unknown;
302
302
  }
303
303
 
304
304
  /**
@@ -473,6 +473,13 @@ model LocationData {
473
473
 
474
474
  /**
475
475
  * The default api-version parameter type.
476
+ *
477
+ * @example
478
+ * ```typespec
479
+ * model Employee is TrackedResource<EmployeeProperties> {
480
+ * ...ResourceNameParameter<Employee>;
481
+ * }
482
+ * ```
476
483
  */
477
484
  model ApiVersionParameter {
478
485
  /** The API version to use for this operation. */
@@ -493,6 +500,16 @@ model OperationIdParameter {
493
500
 
494
501
  /**
495
502
  * The default location parameter type.
503
+ *
504
+ * @example
505
+ * ```typespec
506
+ * op employee is ArmProviderActionSync<
507
+ * Request = Employee,
508
+ * Response = Employee,
509
+ * Scope = SubscriptionActionScope,
510
+ * Parameters = LocationParameter
511
+ * >;
512
+ * ```
496
513
  */
497
514
  model LocationParameter {
498
515
  /** The name of Azure region. */
@@ -99,7 +99,7 @@ model ExtensionBaseParameters is TenantBaseParameters {
99
99
  @doc("The updatable properties of the {name}.", Resource)
100
100
  @friendlyName("{name}UpdateProperties", Resource)
101
101
  model ResourceUpdateModelProperties<
102
- Resource extends Foundations.Resource,
102
+ Resource extends Foundations.SimpleResource,
103
103
  Properties extends TypeSpec.Reflection.Model
104
104
  > is OptionalProperties<UpdateableProperties<Properties>>;
105
105
 
@@ -113,7 +113,7 @@ model ResourceUpdateModelProperties<
113
113
  @friendlyName("{name}Update", Resource)
114
114
  @omitIfEmpty("properties")
115
115
  model ResourceUpdateModel<
116
- Resource extends Foundations.Resource,
116
+ Resource extends Foundations.SimpleResource,
117
117
  Properties extends TypeSpec.Reflection.Model
118
118
  >
119
119
  is OptionalProperties<UpdateableProperties<OmitProperties<
@@ -131,47 +131,47 @@ model ResourceUpdateModel<
131
131
  */
132
132
  @doc("The type used for updating tags in {name} resources.", Resource)
133
133
  @friendlyName("{name}TagsUpdate", Resource)
134
- model TagsUpdateModel<Resource extends Foundations.Resource> {
134
+ model TagsUpdateModel<Resource extends Foundations.SimpleResource> {
135
135
  ...ArmTagsProperty;
136
136
  }
137
137
 
138
138
  // Tenant resource operation definitions
139
139
 
140
- alias TenantParentScope<Resource extends Foundations.Resource> = TenantScope<Resource>;
140
+ alias TenantParentScope<Resource extends Foundations.SimpleResource> = TenantScope<Resource>;
141
141
 
142
142
  /**
143
143
  * Parameter model for listing a resource at the tenant scope
144
144
  * @template Resource The type of the resource.
145
145
  */
146
- model TenantScope<Resource extends Foundations.Resource>
146
+ model TenantScope<Resource extends Foundations.SimpleResource>
147
147
  is ResourceParentParameters<Resource, TenantBaseParameters>;
148
148
 
149
149
  /**
150
150
  * Parameter model for listing a resource at the subscription scope
151
151
  * @template Resource The type of the resource.
152
152
  */
153
- model SubscriptionScope<Resource extends Foundations.Resource>
153
+ model SubscriptionScope<Resource extends Foundations.SimpleResource>
154
154
  is ResourceParentParameters<Resource, SubscriptionBaseParameters>;
155
155
 
156
156
  /**
157
157
  * Parameter model for listing a resource at the location scope
158
158
  * @template Resource The type of the resource.
159
159
  */
160
- model LocationScope<Resource extends Foundations.Resource>
160
+ model LocationScope<Resource extends Foundations.SimpleResource>
161
161
  is ResourceParentParameters<Resource, LocationBaseParameters>;
162
162
 
163
163
  /**
164
164
  * Parameter model for listing an extension resource
165
165
  * @template Resource The type of the resource.
166
166
  */
167
- model ExtensionScope<Resource extends Foundations.Resource>
167
+ model ExtensionScope<Resource extends Foundations.SimpleResource>
168
168
  is ResourceParentParameters<Resource, ExtensionBaseParameters>;
169
169
 
170
170
  /**
171
171
  * Parameter model for listing a resource at the resource group scope
172
172
  * @template Resource The type of the resource.
173
173
  */
174
- model ResourceGroupScope<Resource extends Foundations.Resource>
174
+ model ResourceGroupScope<Resource extends Foundations.SimpleResource>
175
175
  is ResourceParentParameters<Resource>;
176
176
 
177
177
  /**
@@ -182,13 +182,30 @@ model ResourceGroupScope<Resource extends Foundations.Resource>
182
182
  @doc("The type used for update operations of the {name}.", Resource)
183
183
  @friendlyName("{name}Update", Resource)
184
184
  model ProxyResourceUpdateModel<
185
- Resource extends Foundations.Resource,
185
+ Resource extends Foundations.SimpleResource,
186
186
  Properties extends TypeSpec.Reflection.Model
187
187
  > {
188
188
  @conditionalClientFlatten
189
189
  properties?: ResourceUpdateModelProperties<Resource, Properties>;
190
190
  }
191
191
 
192
+ /** A base definition of a resource using simple types. This
193
+ * model should only be used as a constraint for other models.
194
+ */
195
+ model SimpleResource {
196
+ /** The resource identifier */
197
+ id?: string;
198
+
199
+ /** The resource name */
200
+ name?: string;
201
+
202
+ /** The resource type */
203
+ type?: string;
204
+
205
+ /** readonly data about the resource */
206
+ systemData?: unknown;
207
+ }
208
+
192
209
  alias DefaultProviderNamespace = {
193
210
  @path
194
211
  @TypeSpec.Rest.segment("providers")
@@ -42,7 +42,7 @@ interface Operations {
42
42
  */
43
43
  #deprecated "Use Azure.ResourceManager.TrackedResourceOperations instead"
44
44
  interface ResourceOperations<
45
- Resource extends Foundations.Resource,
45
+ Resource extends Foundations.SimpleResource,
46
46
  Properties extends TypeSpec.Reflection.Model,
47
47
  BaseParameters = DefaultBaseParameters<Resource>
48
48
  > extends TrackedResourceOperations<Resource, Properties, BaseParameters> {}
@@ -58,7 +58,7 @@ interface ResourceOperations<
58
58
  *
59
59
  */
60
60
  interface TrackedResourceOperations<
61
- Resource extends Foundations.Resource,
61
+ Resource extends Foundations.SimpleResource,
62
62
  Properties extends TypeSpec.Reflection.Model,
63
63
  BaseParameters = DefaultBaseParameters<Resource>
64
64
  >
@@ -78,7 +78,7 @@ interface TrackedResourceOperations<
78
78
  */
79
79
  #suppress "deprecated" "This should be deprecated in a future release"
80
80
  interface ProxyResourceOperations<
81
- Resource extends Foundations.Resource,
81
+ Resource extends Foundations.SimpleResource,
82
82
  BaseParameters = DefaultBaseParameters<Resource>
83
83
  >
84
84
  extends ResourceRead<Resource, BaseParameters>,
@@ -99,7 +99,7 @@ interface ProxyResourceOperations<
99
99
  */
100
100
  #suppress "deprecated" "This should be deprecated in a future release"
101
101
  interface TenantResourceOperations<
102
- Resource extends Foundations.Resource,
102
+ Resource extends Foundations.SimpleResource,
103
103
  Properties extends TypeSpec.Reflection.Model
104
104
  >
105
105
  extends TenantResourceRead<Resource>,
@@ -117,7 +117,7 @@ interface TenantResourceOperations<
117
117
  */
118
118
  #suppress "deprecated" "This should be deprecated in a future release"
119
119
  interface ResourceInstanceOperations<
120
- Resource extends Foundations.Resource,
120
+ Resource extends Foundations.SimpleResource,
121
121
  Properties extends TypeSpec.Reflection.Model,
122
122
  BaseParameters = DefaultBaseParameters<Resource>,
123
123
  PatchModel = ResourceUpdateModel<Resource, Properties>
@@ -133,7 +133,7 @@ interface ResourceInstanceOperations<
133
133
  * @template BaseParameters The http parameters that are part of the request
134
134
  */
135
135
  interface ResourceCollectionOperations<
136
- Resource extends Foundations.Resource,
136
+ Resource extends Foundations.SimpleResource,
137
137
  BaseParameters = DefaultBaseParameters<Resource>
138
138
  > extends ResourceListByParent<Resource, BaseParameters>, ResourceListBySubscription<Resource> {}
139
139
 
@@ -141,7 +141,7 @@ interface ResourceCollectionOperations<
141
141
  * An interface for resources with can be listed by subscription.
142
142
  * @template Resource The ArmResource that provides these operations
143
143
  */
144
- interface ResourceListBySubscription<Resource extends Foundations.Resource> {
144
+ interface ResourceListBySubscription<Resource extends Foundations.SimpleResource> {
145
145
  /**
146
146
  * @dev List resources by subscription.
147
147
  * @template Resource The ArmResource to list.
@@ -157,7 +157,7 @@ interface ResourceListBySubscription<Resource extends Foundations.Resource> {
157
157
  * @template ParentFriendlyName The friendly name of the parent resource
158
158
  */
159
159
  interface ResourceListByParent<
160
- Resource extends Foundations.Resource,
160
+ Resource extends Foundations.SimpleResource,
161
161
  BaseParameters = DefaultBaseParameters<Resource>,
162
162
  ParentName extends valueof string = "",
163
163
  ParentFriendlyName extends valueof string = ""
@@ -179,7 +179,7 @@ interface ResourceListByParent<
179
179
  * @template BaseParameters The http parameters that are part of the request
180
180
  */
181
181
  interface ResourceRead<
182
- Resource extends Foundations.Resource,
182
+ Resource extends Foundations.SimpleResource,
183
183
  BaseParameters = DefaultBaseParameters<Resource>
184
184
  > {
185
185
  /**
@@ -196,7 +196,7 @@ interface ResourceRead<
196
196
  * @template BaseParameters The http parameters that are part of the request
197
197
  */
198
198
  interface ResourceCreateSync<
199
- Resource extends Foundations.Resource,
199
+ Resource extends Foundations.SimpleResource,
200
200
  BaseParameters = DefaultBaseParameters<Resource>
201
201
  > {
202
202
  /**
@@ -213,7 +213,7 @@ interface ResourceCreateSync<
213
213
  * @template BaseParameters The http parameters that are part of the request
214
214
  */
215
215
  interface ResourceCreateAsync<
216
- Resource extends Foundations.Resource,
216
+ Resource extends Foundations.SimpleResource,
217
217
  BaseParameters = DefaultBaseParameters<Resource>
218
218
  > {
219
219
  /**
@@ -233,7 +233,7 @@ interface ResourceCreateAsync<
233
233
  #deprecated "This should be deprecated in a future release"
234
234
  @doc("Delete a resource using the asynchronous call pattern")
235
235
  interface ResourceDeleteAsync<
236
- Resource extends Foundations.Resource,
236
+ Resource extends Foundations.SimpleResource,
237
237
  BaseParameters = DefaultBaseParameters<Resource>
238
238
  > {
239
239
  /**
@@ -251,7 +251,7 @@ interface ResourceDeleteAsync<
251
251
  */
252
252
  @doc("Delete a resource using the asynchronous call pattern")
253
253
  interface ResourceDeleteWithoutOkAsync<
254
- Resource extends Foundations.Resource,
254
+ Resource extends Foundations.SimpleResource,
255
255
  BaseParameters = DefaultBaseParameters<Resource>
256
256
  > {
257
257
  /**
@@ -269,7 +269,7 @@ interface ResourceDeleteWithoutOkAsync<
269
269
  */
270
270
  @doc("Delete a resource")
271
271
  interface ResourceDeleteSync<
272
- Resource extends Foundations.Resource,
272
+ Resource extends Foundations.SimpleResource,
273
273
  BaseParameters = DefaultBaseParameters<Resource>
274
274
  > {
275
275
  /**
@@ -288,7 +288,7 @@ interface ResourceDeleteSync<
288
288
  */
289
289
  @doc("Asynchronous resource update")
290
290
  interface ResourceUpdateAsync<
291
- Resource extends Foundations.Resource,
291
+ Resource extends Foundations.SimpleResource,
292
292
  Properties extends TypeSpec.Reflection.Model,
293
293
  BaseParameters = DefaultBaseParameters<Resource>
294
294
  > {
@@ -313,7 +313,7 @@ interface ResourceUpdateAsync<
313
313
  */
314
314
  @doc("Synchronous resource update")
315
315
  interface ResourceUpdateSync<
316
- Resource extends Foundations.Resource,
316
+ Resource extends Foundations.SimpleResource,
317
317
  Properties extends TypeSpec.Reflection.Model,
318
318
  BaseParameters = DefaultBaseParameters<Resource>
319
319
  > {
@@ -333,7 +333,7 @@ interface ResourceUpdateSync<
333
333
  */
334
334
  #suppress "deprecated" "This should be deprecated in a future release"
335
335
  interface ExtensionResourceInstanceOperations<
336
- Resource extends Foundations.Resource,
336
+ Resource extends Foundations.SimpleResource,
337
337
  Properties extends TypeSpec.Reflection.Model
338
338
  >
339
339
  extends ExtensionResourceRead<Resource>,
@@ -345,7 +345,7 @@ interface ExtensionResourceInstanceOperations<
345
345
  * A composite interface for resource collections that include a paginated list operation.
346
346
  * @template Resource The ArmResource that provides these operations
347
347
  */
348
- interface ExtensionResourceCollectionOperations<Resource extends Foundations.Resource>
348
+ interface ExtensionResourceCollectionOperations<Resource extends Foundations.SimpleResource>
349
349
  extends ExtensionResourceList<Resource> {}
350
350
 
351
351
  /**
@@ -354,84 +354,84 @@ interface ExtensionResourceCollectionOperations<Resource extends Foundations.Res
354
354
  * @template Properties RP-specific property bag for the resource
355
355
  */
356
356
  interface ExtensionResourceOperations<
357
- Resource extends Foundations.Resource,
357
+ Resource extends Foundations.SimpleResource,
358
358
  Properties extends TypeSpec.Reflection.Model
359
359
  >
360
360
  extends ExtensionResourceInstanceOperations<Resource, Properties>,
361
361
  ExtensionResourceCollectionOperations<Resource> {}
362
362
 
363
363
  alias ResourceCreate<
364
- Resource extends Foundations.Resource,
364
+ Resource extends Foundations.SimpleResource,
365
365
  BaseParameters = DefaultBaseParameters<Resource>
366
366
  > = ResourceCreateAsync<Resource, BaseParameters>;
367
367
 
368
368
  alias ResourceUpdate<
369
- Resource extends Foundations.Resource,
369
+ Resource extends Foundations.SimpleResource,
370
370
  Properties extends TypeSpec.Reflection.Model,
371
371
  BaseParameters = DefaultBaseParameters<Resource>
372
372
  > = ResourceUpdateSync<Resource, Properties, BaseParameters>;
373
373
 
374
374
  #suppress "deprecated" "This should be deprecated in a future release"
375
375
  alias ResourceDelete<
376
- Resource extends Foundations.Resource,
376
+ Resource extends Foundations.SimpleResource,
377
377
  BaseParameters = DefaultBaseParameters<Resource>
378
378
  > = ResourceDeleteAsync<Resource, BaseParameters>;
379
379
 
380
380
  alias ProxyResourceUpdate<
381
- Resource extends Foundations.Resource,
381
+ Resource extends Foundations.SimpleResource,
382
382
  Properties extends TypeSpec.Reflection.Model
383
383
  > = ResourceUpdate<Resource, Properties>;
384
384
 
385
- alias ExtensionResourceRead<Resource extends Foundations.Resource> = ResourceRead<
385
+ alias ExtensionResourceRead<Resource extends Foundations.SimpleResource> = ResourceRead<
386
386
  Resource,
387
387
  ExtensionBaseParameters
388
388
  >;
389
389
 
390
- alias ExtensionResourceCreate<Resource extends Foundations.Resource> = ResourceCreate<
390
+ alias ExtensionResourceCreate<Resource extends Foundations.SimpleResource> = ResourceCreate<
391
391
  Resource,
392
392
  ExtensionBaseParameters
393
393
  >;
394
394
 
395
395
  alias ExtensionResourceUpdate<
396
- Resource extends Foundations.Resource,
396
+ Resource extends Foundations.SimpleResource,
397
397
  Properties extends TypeSpec.Reflection.Model
398
398
  > = ResourceUpdate<Resource, Properties, ExtensionBaseParameters>;
399
399
 
400
400
  #suppress "deprecated" "This should be deprecated in a future release"
401
- alias ExtensionResourceDelete<Resource extends Foundations.Resource> = ResourceDelete<
401
+ alias ExtensionResourceDelete<Resource extends Foundations.SimpleResource> = ResourceDelete<
402
402
  Resource,
403
403
  ExtensionBaseParameters
404
404
  >;
405
405
 
406
- alias ExtensionResourceList<Resource extends Foundations.Resource> = ResourceListByParent<
406
+ alias ExtensionResourceList<Resource extends Foundations.SimpleResource> = ResourceListByParent<
407
407
  Resource,
408
408
  ExtensionBaseParameters,
409
409
  "Extension",
410
410
  "parent"
411
411
  >;
412
412
 
413
- alias TenantResourceRead<Resource extends Foundations.Resource> = ResourceRead<
413
+ alias TenantResourceRead<Resource extends Foundations.SimpleResource> = ResourceRead<
414
414
  Resource,
415
415
  TenantBaseParameters
416
416
  >;
417
417
 
418
- alias TenantResourceCreate<Resource extends Foundations.Resource> = ResourceCreateAsync<
418
+ alias TenantResourceCreate<Resource extends Foundations.SimpleResource> = ResourceCreateAsync<
419
419
  Resource,
420
420
  TenantBaseParameters
421
421
  >;
422
422
 
423
423
  #suppress "deprecated" "This should be deprecated in a future release"
424
- alias TenantResourceDelete<Resource extends Foundations.Resource> = ResourceDelete<
424
+ alias TenantResourceDelete<Resource extends Foundations.SimpleResource> = ResourceDelete<
425
425
  Resource,
426
426
  TenantBaseParameters
427
427
  >;
428
428
 
429
429
  alias TenantResourceUpdate<
430
- Resource extends Foundations.Resource,
430
+ Resource extends Foundations.SimpleResource,
431
431
  Properties extends TypeSpec.Reflection.Model
432
432
  > = ResourceUpdate<Resource, Properties, TenantBaseParameters>;
433
433
 
434
- alias TenantResourceListByParent<Resource extends Foundations.Resource> = ResourceListByParent<
434
+ alias TenantResourceListByParent<Resource extends Foundations.SimpleResource> = ResourceListByParent<
435
435
  Resource,
436
436
  TenantBaseParameters,
437
437
  "Tenant",
package/lib/models.tsp CHANGED
@@ -19,9 +19,21 @@ namespace Azure.ResourceManager;
19
19
  * @template SegmentName Override default segment name of the resource.
20
20
  * @template NamePattern The RegEx pattern of the name. Default is `^[a-zA-Z0-9-]{3,24}$`.
21
21
  * @template Type The type of the name property. Default type is string. However you can pass an union with string values.
22
+ *
23
+ * @example
24
+ * ```typespec
25
+ * model Employee is TrackedResource<EmployeeProperties> {
26
+ * ...ResourceNameParameter<
27
+ * Resource = Employee,
28
+ * KeyName = "employeeName",
29
+ * SegmentName = "employees",
30
+ * NamePattern = "^[^<>%&:?#/\\\\]+$"
31
+ * >;
32
+ * }
33
+ * ```
22
34
  */
23
35
  model ResourceNameParameter<
24
- Resource extends Foundations.Resource,
36
+ Resource extends Foundations.SimpleResource,
25
37
  KeyName extends valueof string = "",
26
38
  SegmentName extends valueof string = "",
27
39
  NamePattern extends valueof string = "^[a-zA-Z0-9-]{3,24}$",
@@ -41,6 +53,13 @@ model ResourceNameParameter<
41
53
  * See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)
42
54
  * @template Properties A model containing the provider-specific properties for this resource
43
55
  * @template PropertiesOptional A boolean flag indicating whether the resource `Properties` field is marked as optional or required. Default true is optional and recommended.
56
+ *
57
+ * @example
58
+ * ```typespec
59
+ * model Employee is TrackedResource<EmployeeProperties> {
60
+ * ...ResourceNameParameter<Employee>
61
+ * }
62
+ * ```
44
63
  */
45
64
  @doc("Concrete tracked resource types can be created by aliasing this type using a specific property type.")
46
65
  @armResourceInternal(Properties)
@@ -59,6 +78,13 @@ model TrackedResource<Properties extends {}, PropertiesOptional extends valueof
59
78
  * See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)
60
79
  * @template Properties A model containing the provider-specific properties for this resource
61
80
  * @template PropertiesOptional A boolean flag indicating whether the resource `Properties` field is marked as optional or required. Default true is optional and recommended.
81
+ *
82
+ * @example
83
+ * ```typespec
84
+ * model Employee is ProxyResource<EmployeeProperties> {
85
+ * ...ResourceNameParameter<Employee>;
86
+ * }
87
+ * ```
62
88
  */
63
89
  @doc("Concrete proxy resource types can be created by aliasing this type using a specific property type.")
64
90
  @armResourceInternal(Properties)
@@ -77,6 +103,18 @@ model ProxyResource<Properties extends {}, PropertiesOptional extends valueof bo
77
103
  * See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)
78
104
  * @template Properties A model containing the provider-specific properties for this resource
79
105
  * @template PropertiesOptional A boolean flag indicating whether the resource `Properties` field is marked as optional or required. Default true is optional and recommended.
106
+ *
107
+ * @example
108
+ * ```typespec
109
+ * model PetInstance is ExtensionResource<PetProperties> {
110
+ * @key
111
+ * @path
112
+ * @segment("petInstances")
113
+ * @pattern("^[a-zA-Z0-9-]{3,24}$")
114
+ * @visibility(Lifecycle.Read)
115
+ * name: string;
116
+ * }
117
+ * ```
80
118
  */
81
119
  @extensionResource
82
120
  @doc("Concrete extension resource types can be created by aliasing this type using a specific property type.")
@@ -290,10 +328,19 @@ model ResourceKindProperty {
290
328
  /**
291
329
  * Paged response containing resources
292
330
  * @template Resource The type of the values returned in the paged response (must be a resource)
331
+ *
332
+ * @example
333
+ * ```typespec
334
+ * op list is ArmResourceActionSync<
335
+ * Resource = Employee,
336
+ * Request = void,
337
+ * Response = ResourceListResult<Employee>
338
+ * >;
339
+ * ```
293
340
  */
294
341
  @doc("The response of a {name} list operation.", Resource)
295
342
  @friendlyName("{name}ListResult", Resource)
296
- model ResourceListResult<Resource extends Foundations.Resource> is Azure.Core.Page<Resource>;
343
+ model ResourceListResult<Resource extends Foundations.SimpleResource> is Azure.Core.Page<Resource>;
297
344
 
298
345
  /**
299
346
  * Paged response containing results
@@ -396,10 +443,11 @@ model EncryptionProperty {
396
443
  /**
397
444
  * Model representing the standard `zones` envelope property for a resource.
398
445
  * Spread this model into a resource Model if the resource supports ARM `zones`.
446
+ *
399
447
  * @example
400
- * ```typescript
448
+ * ```typespec
401
449
  * model Foo is TrackedResource<FooProperties> {
402
- * ...AvailabilityZonesProperty;
450
+ * ...AvailabilityZonesProperty;
403
451
  * }
404
452
  * ```
405
453
  */
@@ -22,7 +22,7 @@ namespace Azure.ResourceManager;
22
22
  @get
23
23
  @Private.enforceConstraint(Resource, Foundations.Resource)
24
24
  op ArmListBySubscription<
25
- Resource extends Foundations.Resource,
25
+ Resource extends Foundations.SimpleResource,
26
26
  Parameters extends {} = {},
27
27
  Response extends {} = ArmResponse<ResourceListResult<Resource>>,
28
28
  Error extends {} = ErrorResponse
@@ -46,7 +46,7 @@ op ArmListBySubscription<
46
46
  @armResourceList(Resource)
47
47
  @Private.enforceConstraint(Resource, Foundations.Resource)
48
48
  op ArmResourceListByParent<
49
- Resource extends Foundations.Resource,
49
+ Resource extends Foundations.SimpleResource,
50
50
  BaseParameters = DefaultBaseParameters<Resource>,
51
51
  ParentName extends valueof string = "",
52
52
  ParentFriendlyName extends valueof string = "",
@@ -75,7 +75,7 @@ op ArmResourceListByParent<
75
75
  @armResourceList(Resource)
76
76
  @Private.enforceConstraint(Resource, Foundations.Resource)
77
77
  op ArmResourceListAtScope<
78
- Resource extends Foundations.Resource,
78
+ Resource extends Foundations.SimpleResource,
79
79
  BaseParameters = DefaultBaseParameters<Resource>,
80
80
  Parameters extends {} = {},
81
81
  Response extends {} = ArmResponse<ResourceListResult<Resource>>,
@@ -149,7 +149,7 @@ op ArmResourceCheckExistence<
149
149
  @Azure.Core.Foundations.Private.defaultFinalStateVia(#["location", "azure-async-operation"])
150
150
  @put
151
151
  op ArmResourceCreateOrUpdateAsync<
152
- Resource extends Foundations.Resource,
152
+ Resource extends Foundations.SimpleResource,
153
153
  BaseParameters = DefaultBaseParameters<Resource>,
154
154
  LroHeaders extends TypeSpec.Reflection.Model = ArmAsyncOperationHeader<FinalResult = Resource> &
155
155
  Azure.Core.Foundations.RetryAfterHeader,
@@ -181,7 +181,7 @@ op ArmResourceCreateOrUpdateAsync<
181
181
  @Private.enforceConstraint(Resource, Foundations.Resource)
182
182
  @put
183
183
  op ArmResourceCreateOrUpdateSync<
184
- Resource extends Foundations.Resource,
184
+ Resource extends Foundations.SimpleResource,
185
185
  BaseParameters = DefaultBaseParameters<Resource>,
186
186
  Parameters extends {} = {},
187
187
  Response extends {} = ArmResponse<Resource>,
@@ -207,7 +207,7 @@ op ArmResourceCreateOrUpdateSync<
207
207
  @Private.enforceConstraint(Resource, Foundations.Resource)
208
208
  @put
209
209
  op ArmResourceCreateOrReplaceSync<
210
- Resource extends Foundations.Resource,
210
+ Resource extends Foundations.SimpleResource,
211
211
  BaseParameters = DefaultBaseParameters<Resource>,
212
212
  Parameters extends {} = {},
213
213
  Response extends {} = ArmResourceUpdatedResponse<Resource> | ArmResourceCreatedSyncResponse<Resource>,
@@ -230,7 +230,7 @@ op ArmResourceCreateOrReplaceSync<
230
230
  */
231
231
  @Private.enforceConstraint(Resource, Foundations.Resource)
232
232
  op ArmResourceCreateOrReplaceAsync<
233
- Resource extends Foundations.Resource,
233
+ Resource extends Foundations.SimpleResource,
234
234
  BaseParameters = DefaultBaseParameters<Resource>,
235
235
  LroHeaders extends TypeSpec.Reflection.Model = ArmAsyncOperationHeader<FinalResult = Resource> &
236
236
  Azure.Core.Foundations.RetryAfterHeader,
@@ -259,7 +259,7 @@ op ArmResourceCreateOrReplaceAsync<
259
259
  */
260
260
  @Private.enforceConstraint(Resource, Foundations.Resource)
261
261
  op ArmTagsPatchAsync<
262
- Resource extends Foundations.Resource,
262
+ Resource extends Foundations.SimpleResource,
263
263
  Properties extends {} = TagsUpdateModel<Resource>,
264
264
  BaseParameters = DefaultBaseParameters<Resource>,
265
265
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
@@ -287,7 +287,7 @@ op ArmTagsPatchAsync<
287
287
  */
288
288
  @Private.enforceConstraint(Resource, Foundations.Resource)
289
289
  op ArmResourcePatchAsync<
290
- Resource extends Foundations.Resource,
290
+ Resource extends Foundations.SimpleResource,
291
291
  Properties extends TypeSpec.Reflection.Model,
292
292
  BaseParameters = DefaultBaseParameters<Resource>,
293
293
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
@@ -315,7 +315,7 @@ op ArmResourcePatchAsync<
315
315
  @Private.enforceConstraint(Resource, Foundations.Resource)
316
316
  @patch(#{ implicitOptionality: true })
317
317
  op ArmCustomPatchAsync<
318
- Resource extends Foundations.Resource,
318
+ Resource extends Foundations.SimpleResource,
319
319
  PatchModel extends TypeSpec.Reflection.Model = TagsUpdateModel<Resource>,
320
320
  BaseParameters = DefaultBaseParameters<Resource>,
321
321
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
@@ -345,7 +345,7 @@ op ArmCustomPatchAsync<
345
345
  */
346
346
  @Private.enforceConstraint(Resource, Foundations.Resource)
347
347
  op ArmTagsPatchSync<
348
- Resource extends Foundations.Resource,
348
+ Resource extends Foundations.SimpleResource,
349
349
  BaseParameters = DefaultBaseParameters<Resource>,
350
350
  Parameters extends {} = {}
351
351
  > is ArmCustomPatchSync<Resource, TagsUpdateModel<Resource>, BaseParameters, Parameters>;
@@ -359,7 +359,7 @@ op ArmTagsPatchSync<
359
359
  */
360
360
  @Private.enforceConstraint(Resource, Foundations.Resource)
361
361
  op ArmResourcePatchSync<
362
- Resource extends Foundations.Resource,
362
+ Resource extends Foundations.SimpleResource,
363
363
  Properties extends TypeSpec.Reflection.Model,
364
364
  BaseParameters = DefaultBaseParameters<Resource>,
365
365
  Parameters extends {} = {}
@@ -380,7 +380,7 @@ op ArmResourcePatchSync<
380
380
  @Private.enforceConstraint(Resource, Foundations.Resource)
381
381
  @patch(#{ implicitOptionality: true })
382
382
  op ArmCustomPatchSync<
383
- Resource extends Foundations.Resource,
383
+ Resource extends Foundations.SimpleResource,
384
384
  PatchModel extends TypeSpec.Reflection.Model = TagsUpdateModel<Resource>,
385
385
  BaseParameters = DefaultBaseParameters<Resource>,
386
386
  Parameters extends {} = {},
@@ -407,7 +407,7 @@ op ArmCustomPatchSync<
407
407
  @Private.enforceConstraint(Resource, Foundations.Resource)
408
408
  @delete
409
409
  op ArmResourceDeleteAsyncBase<
410
- Resource extends Foundations.Resource,
410
+ Resource extends Foundations.SimpleResource,
411
411
  Response,
412
412
  BaseParameters = DefaultBaseParameters<Resource>,
413
413
  Parameters extends {} = {},
@@ -426,7 +426,7 @@ op ArmResourceDeleteAsyncBase<
426
426
  #deprecated "Use 'ArmResourceDeleteWithoutOkAsync' instead"
427
427
  @Private.enforceConstraint(Resource, Foundations.Resource)
428
428
  op ArmResourceDeleteAsync<
429
- Resource extends Foundations.Resource,
429
+ Resource extends Foundations.SimpleResource,
430
430
  BaseParameters = DefaultBaseParameters<Resource>,
431
431
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader &
432
432
  Azure.Core.Foundations.RetryAfterHeader,
@@ -446,7 +446,7 @@ op ArmResourceDeleteAsync<
446
446
  */
447
447
  @Private.enforceConstraint(Resource, Foundations.Resource)
448
448
  op ArmResourceDeleteWithoutOkAsync<
449
- Resource extends Foundations.Resource,
449
+ Resource extends Foundations.SimpleResource,
450
450
  BaseParameters = DefaultBaseParameters<Resource>,
451
451
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader &
452
452
  Azure.Core.Foundations.RetryAfterHeader,
@@ -469,7 +469,7 @@ op ArmResourceDeleteWithoutOkAsync<
469
469
  @Private.enforceConstraint(Resource, Foundations.Resource)
470
470
  @delete
471
471
  op ArmResourceDeleteSync<
472
- Resource extends Foundations.Resource,
472
+ Resource extends Foundations.SimpleResource,
473
473
  BaseParameters = DefaultBaseParameters<Resource>,
474
474
  Parameters extends {} = {},
475
475
  Response extends {} = ArmDeletedResponse | ArmDeletedNoContentResponse,
@@ -491,7 +491,7 @@ op ArmResourceDeleteSync<
491
491
  @Private.enforceConstraint(Resource, Foundations.Resource)
492
492
  @post
493
493
  op ArmResourceActionAsyncBase<
494
- Resource extends Foundations.Resource,
494
+ Resource extends Foundations.SimpleResource,
495
495
  Request extends TypeSpec.Reflection.Model | void,
496
496
  Response extends TypeSpec.Reflection.Model | void,
497
497
  BaseParameters extends TypeSpec.Reflection.Model,
@@ -521,7 +521,7 @@ op ArmResourceActionAsyncBase<
521
521
  @returnsDoc("Azure operation completed successfully.")
522
522
  @Private.enforceConstraint(Resource, Foundations.Resource)
523
523
  op ArmResourceActionAsync<
524
- Resource extends Foundations.Resource,
524
+ Resource extends Foundations.SimpleResource,
525
525
  Request extends TypeSpec.Reflection.Model | void,
526
526
  Response extends TypeSpec.Reflection.Model | void,
527
527
  BaseParameters extends TypeSpec.Reflection.Model = DefaultBaseParameters<Resource>,
@@ -560,7 +560,7 @@ op ArmResourceActionAsync<
560
560
  @post
561
561
  @returnsDoc("Azure operation completed successfully.")
562
562
  op ArmResourceActionSync<
563
- Resource extends Foundations.Resource,
563
+ Resource extends Foundations.SimpleResource,
564
564
  Request extends TypeSpec.Reflection.Model | void,
565
565
  Response extends TypeSpec.Reflection.Model | void,
566
566
  BaseParameters = DefaultBaseParameters<Resource>,
@@ -588,7 +588,7 @@ op ArmResourceActionSync<
588
588
  */
589
589
  @Private.enforceConstraint(Resource, Foundations.Resource)
590
590
  op ArmResourceActionNoContentAsync<
591
- Resource extends Foundations.Resource,
591
+ Resource extends Foundations.SimpleResource,
592
592
  Request extends TypeSpec.Reflection.Model | void,
593
593
  BaseParameters extends TypeSpec.Reflection.Model = DefaultBaseParameters<Resource>,
594
594
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader &
@@ -621,7 +621,7 @@ op ArmResourceActionNoContentAsync<
621
621
  */
622
622
  @Private.enforceConstraint(Resource, Foundations.Resource)
623
623
  op ArmResourceActionNoResponseContentAsync<
624
- Resource extends Foundations.Resource,
624
+ Resource extends Foundations.SimpleResource,
625
625
  Request extends TypeSpec.Reflection.Model | void,
626
626
  BaseParameters extends TypeSpec.Reflection.Model = DefaultBaseParameters<Resource>,
627
627
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
@@ -657,7 +657,7 @@ op ArmResourceActionNoResponseContentAsync<
657
657
  @Private.enforceConstraint(Resource, Foundations.Resource)
658
658
  @post
659
659
  op ArmResourceActionNoContentSync<
660
- Resource extends Foundations.Resource,
660
+ Resource extends Foundations.SimpleResource,
661
661
  Request extends TypeSpec.Reflection.Model | void,
662
662
  BaseParameters = DefaultBaseParameters<Resource>,
663
663
  Parameters extends {} = {},
@@ -53,12 +53,28 @@ model LocationResourceParameter {
53
53
  /**
54
54
  * The location resource for tenant-based locations. This can be used as a parent
55
55
  * resource for resource types that are homed in a tenant-based location.
56
+ *
57
+ * @example
58
+ * ```typespec
59
+ * @parentResource(TenantLocationResource)
60
+ * model Employee is TrackedResource<EmployeeProperties> {
61
+ * ...ResourceNameParameter<Employee>
62
+ * }
63
+ * ```
56
64
  */
57
65
  model TenantLocationResource is ArmLocationResource<"Tenant">;
58
66
 
59
67
  /**
60
68
  * The location resource for subscription-based locations. This can be used as a parent
61
69
  * resource for resource types that are homed in a subscription-based location.
70
+ *
71
+ * @example
72
+ * ```typespec
73
+ * @parentResource(SubscriptionLocationResource)
74
+ * model Employee is TrackedResource<EmployeeProperties> {
75
+ * ...ResourceNameParameter<Employee>;
76
+ * }
77
+ * ```
62
78
  */
63
79
  model SubscriptionLocationResource is ArmLocationResource<"Subscription">;
64
80
 
@@ -72,6 +88,14 @@ model ResourceGroupLocationResource is ArmLocationResource<"ResourceGroup">;
72
88
  * Template for ARM location resources. Use the parameter to specify
73
89
  * the parent of the location resource.
74
90
  * @template BaseType The parent of the location, one of "Subscription", "Tenant", "ResourceGroup", or "Extension".
91
+ *
92
+ * @example
93
+ * ```typespec
94
+ * @parentResource(ArmLocationResource<"ResourceGroup">)
95
+ * model Employee is TrackedResource<EmployeeProperties> {
96
+ * ...ResourceNameParameter<Employee>;
97
+ * }
98
+ * ```
75
99
  */
76
100
  @friendlyName("Location")
77
101
  @armVirtualResource
@@ -87,6 +111,13 @@ model ArmLocationResource<BaseType extends
87
111
 
88
112
  /**
89
113
  * The default resourceUri parameter type.
114
+ *
115
+ * @example
116
+ * ```typespec
117
+ * model Employee {
118
+ * ...ResourceUriParameter;
119
+ * }
120
+ * ```
90
121
  */
91
122
  @doc("The default resourceUri parameter type.")
92
123
  model ResourceUriParameter {
@@ -101,6 +132,13 @@ model ResourceUriParameter {
101
132
  * where the resource is based. The default is in a resource group
102
133
  * @template Resource The resource to get parameters for
103
134
  * @template BaseParameters The parameters representing the base Uri of the resource
135
+ *
136
+ * @example
137
+ * ```typespec
138
+ * op get(
139
+ * ...ResourceInstanceParameters<Employee>,
140
+ * ): ArmResponse<EmployeeResponse> | ErrorResponse;
141
+ * ```
104
142
  */
105
143
  model ResourceInstanceParameters<
106
144
  Resource extends {},
@@ -118,7 +156,7 @@ model ResourceInstanceParameters<
118
156
  * @template BaseParameters The parameters representing the base Uri of the resource
119
157
  */
120
158
  model ResourceParentParameters<
121
- Resource extends Foundations.Resource,
159
+ Resource extends Foundations.SimpleResource,
122
160
  BaseParameters = DefaultBaseParameters<Resource>
123
161
  > {
124
162
  ...BaseParameters;
@@ -130,7 +168,7 @@ model ResourceParentParameters<
130
168
  * The dynamic parameters of a list call for an extension resource instance.
131
169
  * @template Resource The extension resource
132
170
  */
133
- alias ExtensionResourceInstanceParameters<Resource extends Foundations.Resource> = ResourceInstanceParameters<
171
+ alias ExtensionResourceInstanceParameters<Resource extends Foundations.SimpleResource> = ResourceInstanceParameters<
134
172
  Resource,
135
173
  ExtensionBaseParameters
136
174
  >;
@@ -139,13 +177,18 @@ alias ExtensionResourceInstanceParameters<Resource extends Foundations.Resource>
139
177
  * The dynamic parameters of a list call for a tenant resource instance.
140
178
  * @template Resource the tenant resource
141
179
  */
142
- alias TenantInstanceParameters<Resource extends Foundations.Resource> = ResourceInstanceParameters<
180
+ alias TenantInstanceParameters<Resource extends Foundations.SimpleResource> = ResourceInstanceParameters<
143
181
  Resource,
144
182
  TenantBaseParameters
145
183
  >;
146
184
 
147
185
  /**
148
186
  * Template used by ArmProviderAction templates.
187
+ *
188
+ * @example
189
+ * ```typespec
190
+ * op action is ArmProviderActionSync<Response = Employee, Scope = SubscriptionActionScope>;
191
+ * ```
149
192
  */
150
193
  @armVirtualResource
151
194
  @subscriptionResource
@@ -160,6 +203,11 @@ model SubscriptionActionScope {
160
203
 
161
204
  /**
162
205
  * Template used by ArmTenantAction templates.
206
+ *
207
+ * @example
208
+ * ```typespec
209
+ * op action is ArmProviderActionSync<Response = Employee, Scope = TenantActionScope>;
210
+ * ```
163
211
  */
164
212
  @armVirtualResource
165
213
  @tenantResource
@@ -60,7 +60,7 @@ extern dec defaultResourceKeySegmentName(
60
60
  * Provides strict contraint type check.
61
61
  *
62
62
  * Due to TypeSpec language and all optional properties of `Foundations.Resource`,
63
- * the `Resource extends Foundations.Resource` on many of the standard ARM templates is
63
+ * the `Resource extends Foundations.SimpleResource` on many of the standard ARM templates is
64
64
  * essentially equal to `Resource extends {}` and does not enforce the containt.
65
65
  *
66
66
  * Note, this is intended for internal use only for now.
package/lib/responses.tsp CHANGED
@@ -10,6 +10,11 @@ namespace Azure.ResourceManager;
10
10
  /**
11
11
  * The Azure Resource Manager synchronous OK response
12
12
  * @template ResponseBody The contents of the response body
13
+ *
14
+ * @example
15
+ * ```typespec
16
+ * op get is ArmResourceRead<Employee, Response = ArmResponse<Employee>>;
17
+ * ```
13
18
  */
14
19
  @doc("Azure operation completed successfully.")
15
20
  model ArmResponse<ResponseBody> {
@@ -24,6 +29,15 @@ model ArmResponse<ResponseBody> {
24
29
  * The Azure Resource Manager 201 response for a resource
25
30
  * @template ResponseBody The contents of the response body
26
31
  * @template ExtraHeaders Additional headers in the response. Default includes Retry-After header
32
+ *
33
+ * @example
34
+ * ```typespec
35
+ * @post
36
+ * op post(...ResourceInstanceParameters<Employee>): ArmCreatedResponse<
37
+ * Employee,
38
+ * ExtraHeaders = {@header("x-ms-client-request-id") clientRequestId: string}
39
+ * >;
40
+ * ```
27
41
  */
28
42
  @doc("Azure create operation completed successfully.")
29
43
  model ArmCreatedResponse<
@@ -37,6 +51,15 @@ model ArmCreatedResponse<
37
51
 
38
52
  /**
39
53
  * The response for synchronous delete of a resource
54
+ *
55
+ * @example
56
+ * ```typespec
57
+ * @delete
58
+ * @armResourceDelete(Employee)
59
+ * op delete(
60
+ * ...ResourceInstanceParameters<Employee>,
61
+ * ): ArmDeletedResponse | ArmDeletedNoContentResponse | ErrorResponse;
62
+ * ```
40
63
  */
41
64
  @doc("Resource deleted successfully.")
42
65
  model ArmDeletedResponse {
@@ -46,6 +69,14 @@ model ArmDeletedResponse {
46
69
  /**
47
70
  * @dev The response for asynchronous Azure Resource Manager delete ACCEPTED
48
71
  * @template LroHeaders Optional. Allows overriding the Lro headers returned in the response.
72
+ *
73
+ * @example
74
+ * ```typespec
75
+ * op delete is ArmResourceDeleteWithoutOkAsync<
76
+ * Employee,
77
+ * Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse
78
+ *>;
79
+ * ```
49
80
  */
50
81
  model ArmDeleteAcceptedLroResponse<LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader &
51
82
  Azure.Core.Foundations.RetryAfterHeader>
@@ -60,6 +91,15 @@ model ArmDeleteAcceptedResponse is ArmAcceptedResponse<"Resource deletion accept
60
91
  * @dev The standard ACCEPTED response
61
92
  * @template Message The description of the response status (defaults to `Resource operation accepted`)
62
93
  * @template ExtraHeaders Additional headers in the response. Default includes Retry-After header
94
+ *
95
+ * @example
96
+ * ```typespec
97
+ * op post is ArmProviderActionSync<
98
+ * Request = Employee,
99
+ * Response = ArmAcceptedResponse<ExtraHeaders = ArmLroLocationHeader>,
100
+ * Scope = SubscriptionActionScope
101
+ * >;
102
+ * ```
63
103
  */
64
104
  @doc(Message)
65
105
  model ArmAcceptedResponse<
@@ -74,6 +114,17 @@ model ArmAcceptedResponse<
74
114
  * @dev The standard Azure Resource Manager response for asynchronous PATCH, POST, and DELETE operations
75
115
  * @template Description The description of the response status (defaults to `Resource operation accepted`)
76
116
  * @template LroHeaders Optional. The lro headers that appear in the Accepted response
117
+ *
118
+ * @example
119
+ * ```typespec
120
+ * @post
121
+ * op post(
122
+ * ...ResourceInstanceParameters<Employee>,
123
+ * ): ArmAcceptedLroResponse<
124
+ * LroHeaders = ArmLroLocationHeader<FinalResult = Employee> &
125
+ * Azure.Core.Foundations.RetryAfterHeader
126
+ * > | ErrorResponse;
127
+ * ```
77
128
  */
78
129
  @doc(Description)
79
130
  model ArmAcceptedLroResponse<
@@ -134,6 +185,16 @@ model ArmOperationStatus<
134
185
  * @template StatusMonitor The status monitor type for lro polling
135
186
  * @template UrlValue The value type of the Azure-AsyncOperation header
136
187
  * @template FinalResult The logical final result of the operation
188
+ *
189
+ * @example
190
+ * ```typespec
191
+ * op changeWidget is ArmResourceActionAsync<
192
+ * WidgetResource,
193
+ * WidgetResourceRequest,
194
+ * WidgetResourceResponse,
195
+ * LroHeaders = ArmAsyncOperationHeader<FinalResult = WidgetResource>
196
+ * >;
197
+ * ```
137
198
  */
138
199
  model ArmAsyncOperationHeader<
139
200
  StatusMonitor extends {} = ArmOperationStatus,
@@ -152,6 +213,19 @@ model ArmAsyncOperationHeader<
152
213
  * @template LroPollingOptions The polling options when polling the url in the location header
153
214
  * @template FinalResult The ultimate final result of the logical operation
154
215
  * @template UrlValue The value type for the location header
216
+ *
217
+ * @example
218
+ * ```typespec
219
+ * op update is ArmResourceActionAsync<
220
+ * Employee,
221
+ * Employee,
222
+ * OkResponse,
223
+ * LroHeaders = ArmLroLocationHeader<
224
+ * Azure.Core.StatusMonitorPollingOptions<ArmOperationStatus>,
225
+ * Employee
226
+ * >
227
+ >;
228
+ * ```
155
229
  */
156
230
  model ArmLroLocationHeader<
157
231
  LroPollingOptions extends Azure.Core.PollingOptions = Azure.Core.StatusMonitorPollingOptions<PollingModel = ArmOperationStatus>,
@@ -171,6 +245,14 @@ model ArmLroLocationHeader<
171
245
  * @template FinalResult The type of the logical result when following the location header
172
246
  * @template PollingUrlValue The value type of the link to the status monitor
173
247
  * @template FinalUrlValue The value type fo the link to the final result
248
+ *
249
+ * @example
250
+ * ```typespec
251
+ * op delete is ArmResourceDeleteWithoutOkAsync<
252
+ * Employee,
253
+ * LroHeaders = ArmCombinedLroHeaders<ArmOperationStatus, Employee>
254
+ * >;
255
+ * ```
174
256
  */
175
257
  model ArmCombinedLroHeaders<
176
258
  StatusMonitor extends {} = ArmOperationStatus,
@@ -191,12 +273,26 @@ model ArmCombinedLroHeaders<
191
273
 
192
274
  /**
193
275
  * @dev Azure Resource Manager response for a properly formed delete request, with no resource found
276
+ *
277
+ * @example
278
+ * ```typespec
279
+ * op delete is ArmResourceDeleteWithoutOkAsync<
280
+ * Employee,
281
+ * Response = ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse
282
+ * >;
283
+ * ```
194
284
  */
195
285
  model ArmDeletedNoContentResponse is ArmNoContentResponse<"Resource does not exist.">;
196
286
 
197
287
  /**
198
288
  * Standard Azure Resource Manager NoContent (204) response
199
289
  * @template Message The description of the response status (defaults to `Operation completed successfully`)
290
+ *
291
+ * @example
292
+ * ```typespec
293
+ * @delete
294
+ * op delete(@path id:string): ArmNoContentResponse;
295
+ * ```
200
296
  */
201
297
  @doc(Message)
202
298
  model ArmNoContentResponse<Message extends valueof string = "Operation completed successfully."> {
@@ -206,19 +302,38 @@ model ArmNoContentResponse<Message extends valueof string = "Operation completed
206
302
  /**
207
303
  * @dev Resource update operation succeeded
208
304
  * @template Resource The resource being updated
305
+ *
306
+ * @example
307
+ * ```typespec
308
+ * @put
309
+ * op update(
310
+ * ...ResourceInstanceParameters<Employee>,
311
+ * ): ArmResourceUpdatedResponse<Employee>;
312
+ * ```
209
313
  */
210
314
  @doc("Resource '{name}' update operation succeeded", Resource)
211
- model ArmResourceUpdatedResponse<Resource extends Azure.ResourceManager.Foundations.Resource>
315
+ model ArmResourceUpdatedResponse<Resource extends Azure.ResourceManager.Foundations.SimpleResource>
212
316
  is ArmResponse<Resource>;
213
317
 
214
318
  /**
215
319
  * @dev Resource create operation succeeded
216
320
  * @template Resource The resource being updated
217
321
  * @template LroHeaders Optional. The lro headers returned with a Created response
322
+ *
323
+ * @example
324
+ * ```typespec
325
+ * op createOrUpdate is ArmResourceCreateOrReplaceAsync<
326
+ * Employee,
327
+ * Response = ArmResponse<Employee> | ArmResourceCreatedResponse<
328
+ * Employee,
329
+ * LroHeaders = ArmLroLocationHeader<FinalResult = Employee> & Azure.Core.Foundations.RetryAfterHeader
330
+ * >
331
+ * >;
332
+ * ```
218
333
  */
219
334
  @doc("Resource '{name}' create operation succeeded", Resource)
220
335
  model ArmResourceCreatedResponse<
221
- Resource extends Azure.ResourceManager.Foundations.Resource,
336
+ Resource extends Azure.ResourceManager.Foundations.SimpleResource,
222
337
  LroHeaders extends TypeSpec.Reflection.Model = Azure.Core.Foundations.RetryAfterHeader
223
338
  > {
224
339
  ...CreatedResponse;
@@ -233,9 +348,17 @@ model ArmResourceCreatedResponse<
233
348
  /**
234
349
  * @dev Resource synchronous create operation succeeded
235
350
  * @template Resource The resource being updated
351
+ *
352
+ * @example
353
+ * ```typespec
354
+ * op createOrUpdate is ArmResourceCreateOrReplaceSync<
355
+ * Employee,
356
+ * Response = ArmResponse<Employee> | ArmResourceCreatedSyncResponse<Employee>
357
+ * >;
358
+ * ```
236
359
  */
237
360
  @doc("Resource '{name}' create operation succeeded", Resource)
238
- model ArmResourceCreatedSyncResponse<Resource extends Azure.ResourceManager.Foundations.Resource> {
361
+ model ArmResourceCreatedSyncResponse<Resource extends Azure.ResourceManager.Foundations.SimpleResource> {
239
362
  ...CreatedResponse;
240
363
 
241
364
  @doc("The body type of the operation request or response.")
@@ -245,6 +368,12 @@ model ArmResourceCreatedSyncResponse<Resource extends Azure.ResourceManager.Foun
245
368
 
246
369
  /**
247
370
  * @dev Resource exists response
371
+ *
372
+ * @example
373
+ * ```typespec
374
+ * @head
375
+ * op head(...ResourceInstanceParameters<Employee>): ArmResourceExistsResponse;
376
+ * ```
248
377
  */
249
378
  @doc("The Azure resource exists")
250
379
  model ArmResourceExistsResponse {
@@ -253,6 +382,10 @@ model ArmResourceExistsResponse {
253
382
 
254
383
  /**
255
384
  * @dev Resource is not found response
385
+ * ```typespec
386
+ * @head
387
+ * op head(...ResourceInstanceParameters<Employee>): ArmResponse<Employee> | ArmResourceNotFoundResponse;
388
+ * ```
256
389
  */
257
390
  @doc("The Azure resource is not found")
258
391
  model ArmResourceNotFoundResponse {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-tools/typespec-azure-resource-manager",
3
- "version": "0.57.0-dev.4",
3
+ "version": "0.57.0-dev.6",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec Azure Resource Manager library",
6
6
  "homepage": "https://azure.github.io/typespec-azure",