@azure-tools/typespec-azure-resource-manager 0.57.0-dev.5 → 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.
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 {
@@ -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. */
package/lib/models.tsp CHANGED
@@ -19,6 +19,18 @@ 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
36
  Resource extends Foundations.SimpleResource,
@@ -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,6 +328,15 @@ 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)
@@ -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
  */
@@ -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 {},
@@ -146,6 +184,11 @@ alias TenantInstanceParameters<Resource extends Foundations.SimpleResource> = Re
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
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,6 +302,14 @@ 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
315
  model ArmResourceUpdatedResponse<Resource extends Azure.ResourceManager.Foundations.SimpleResource>
@@ -215,6 +319,17 @@ model ArmResourceUpdatedResponse<Resource extends Azure.ResourceManager.Foundati
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<
@@ -233,6 +348,14 @@ 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
361
  model ArmResourceCreatedSyncResponse<Resource extends Azure.ResourceManager.Foundations.SimpleResource> {
@@ -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.5",
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",