@typespec/rest 0.52.0-dev.1 → 0.52.0-dev.2
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/resource.tsp +280 -234
- package/lib/rest.tsp +4 -4
- package/package.json +1 -1
package/lib/resource.tsp
CHANGED
|
@@ -16,165 +16,182 @@ model ResourceError {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
|
-
* Dynamically gathers keys of the model type
|
|
20
|
-
*
|
|
19
|
+
* Dynamically gathers keys of the model type `Resource`.
|
|
20
|
+
*
|
|
21
|
+
* @template Resource The target resource model.
|
|
21
22
|
*/
|
|
22
|
-
@doc("Dynamically gathers keys of the model type
|
|
23
|
+
@doc("Dynamically gathers keys of the model type Resource.")
|
|
23
24
|
@copyResourceKeyParameters
|
|
24
|
-
@friendlyName("{name}Key",
|
|
25
|
-
model KeysOf<
|
|
25
|
+
@friendlyName("{name}Key", Resource)
|
|
26
|
+
model KeysOf<Resource> {}
|
|
26
27
|
|
|
27
28
|
/**
|
|
28
|
-
* Dynamically gathers parent keys of the model type
|
|
29
|
-
*
|
|
29
|
+
* Dynamically gathers parent keys of the model type `Resource`.
|
|
30
|
+
*
|
|
31
|
+
* @template Resource The target resource model.
|
|
30
32
|
*/
|
|
31
|
-
@doc("Dynamically gathers parent keys of the model type
|
|
33
|
+
@doc("Dynamically gathers parent keys of the model type Resource.")
|
|
32
34
|
@copyResourceKeyParameters("parent")
|
|
33
|
-
@friendlyName("{name}ParentKey",
|
|
34
|
-
model ParentKeysOf<
|
|
35
|
+
@friendlyName("{name}ParentKey", Resource)
|
|
36
|
+
model ParentKeysOf<Resource> {}
|
|
35
37
|
|
|
36
38
|
/**
|
|
37
|
-
* Represents operation parameters for resource
|
|
38
|
-
*
|
|
39
|
+
* Represents operation parameters for the resource of type `Resource`.
|
|
40
|
+
*
|
|
41
|
+
* @template Resource The resource model.
|
|
39
42
|
*/
|
|
40
|
-
@doc("Represents operation parameters for resource
|
|
41
|
-
model ResourceParameters<
|
|
42
|
-
...KeysOf<
|
|
43
|
+
@doc("Represents operation parameters for resource Resource.")
|
|
44
|
+
model ResourceParameters<Resource extends {}> {
|
|
45
|
+
...KeysOf<Resource>;
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
/**
|
|
46
|
-
* Represents collection operation parameters for resource
|
|
47
|
-
*
|
|
49
|
+
* Represents collection operation parameters for the resource of type `Resource`.
|
|
50
|
+
*
|
|
51
|
+
* @template Resource The resource model.
|
|
48
52
|
*/
|
|
49
|
-
@doc("Represents collection operation parameters for resource
|
|
50
|
-
model ResourceCollectionParameters<
|
|
51
|
-
...ParentKeysOf<
|
|
53
|
+
@doc("Represents collection operation parameters for resource Resource.")
|
|
54
|
+
model ResourceCollectionParameters<Resource extends {}> {
|
|
55
|
+
...ParentKeysOf<Resource>;
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* @template
|
|
59
|
+
* Represents the resource GET operation.
|
|
60
|
+
*
|
|
61
|
+
* @template Resource The resource model.
|
|
62
|
+
* @template Error The error response.
|
|
58
63
|
*/
|
|
59
|
-
@Private.validateHasKey(
|
|
60
|
-
@Private.validateIsError(
|
|
61
|
-
interface ResourceRead<
|
|
64
|
+
@Private.validateHasKey(Resource)
|
|
65
|
+
@Private.validateIsError(Error)
|
|
66
|
+
interface ResourceRead<Resource extends {}, Error> {
|
|
62
67
|
/**
|
|
63
68
|
* Gets an instance of the resource.
|
|
64
|
-
*
|
|
69
|
+
*
|
|
70
|
+
* @template Resource The resource model.
|
|
65
71
|
*/
|
|
66
72
|
@autoRoute
|
|
67
73
|
@doc("Gets an instance of the resource.")
|
|
68
|
-
@readsResource(
|
|
69
|
-
get(...ResourceParameters<
|
|
74
|
+
@readsResource(Resource)
|
|
75
|
+
get(...ResourceParameters<Resource>): Resource | Error;
|
|
70
76
|
}
|
|
71
77
|
|
|
72
78
|
/**
|
|
73
79
|
* Resource create operation completed successfully.
|
|
74
|
-
*
|
|
80
|
+
*
|
|
81
|
+
* @template Resource The resource model that was created.
|
|
75
82
|
*/
|
|
76
83
|
@doc("Resource create operation completed successfully.")
|
|
77
|
-
model ResourceCreatedResponse<
|
|
84
|
+
model ResourceCreatedResponse<Resource> {
|
|
78
85
|
...CreatedResponse;
|
|
79
|
-
@body body:
|
|
86
|
+
@body body: Resource;
|
|
80
87
|
}
|
|
81
88
|
|
|
82
89
|
/**
|
|
83
90
|
* Resource create or replace operation template.
|
|
84
|
-
*
|
|
85
|
-
* @template
|
|
91
|
+
*
|
|
92
|
+
* @template Resource The resource model to create or replace.
|
|
93
|
+
* @template Error The error response.
|
|
86
94
|
*/
|
|
87
|
-
interface ResourceCreateOrReplace<
|
|
95
|
+
interface ResourceCreateOrReplace<Resource extends {}, Error> {
|
|
88
96
|
/**
|
|
89
97
|
* Creates or replaces a instance of the resource.
|
|
90
|
-
*
|
|
91
|
-
* @template
|
|
98
|
+
*
|
|
99
|
+
* @template Resource The resource model to create or replace.
|
|
100
|
+
* @template Error The error response.
|
|
92
101
|
*/
|
|
93
102
|
@autoRoute
|
|
94
103
|
@doc("Creates or replaces an instance of the resource.")
|
|
95
|
-
@createsOrReplacesResource(
|
|
104
|
+
@createsOrReplacesResource(Resource)
|
|
96
105
|
createOrReplace(
|
|
97
|
-
...ResourceParameters<
|
|
98
|
-
@body resource: ResourceCreateModel<
|
|
99
|
-
):
|
|
106
|
+
...ResourceParameters<Resource>,
|
|
107
|
+
@body resource: ResourceCreateModel<Resource>,
|
|
108
|
+
): Resource | ResourceCreatedResponse<Resource> | Error;
|
|
100
109
|
}
|
|
101
110
|
|
|
102
111
|
/**
|
|
103
112
|
* Resource create or update operation model.
|
|
104
|
-
*
|
|
113
|
+
*
|
|
114
|
+
* @template Resource The resource model to create or update.
|
|
105
115
|
*/
|
|
106
|
-
@friendlyName("{name}Update",
|
|
107
|
-
model ResourceCreateOrUpdateModel<
|
|
108
|
-
is OptionalProperties<UpdateableProperties<DefaultKeyVisibility<
|
|
116
|
+
@friendlyName("{name}Update", Resource)
|
|
117
|
+
model ResourceCreateOrUpdateModel<Resource extends {}>
|
|
118
|
+
is OptionalProperties<UpdateableProperties<DefaultKeyVisibility<Resource, "read">>>;
|
|
109
119
|
|
|
110
120
|
/**
|
|
111
121
|
* Resource create or update operation template.
|
|
112
|
-
*
|
|
113
|
-
* @template
|
|
122
|
+
*
|
|
123
|
+
* @template Resource The resource model to create or update.
|
|
124
|
+
* @template Error The error response.
|
|
114
125
|
*/
|
|
115
|
-
interface ResourceCreateOrUpdate<
|
|
126
|
+
interface ResourceCreateOrUpdate<Resource extends {}, Error> {
|
|
116
127
|
/**
|
|
117
128
|
* Creates or update an instance of the resource.
|
|
118
|
-
*
|
|
119
|
-
* @template
|
|
129
|
+
*
|
|
130
|
+
* @template Resource The resource model to create or update.
|
|
131
|
+
* @template Error The error response.
|
|
120
132
|
*/
|
|
121
133
|
@autoRoute
|
|
122
134
|
@doc("Creates or update an instance of the resource.")
|
|
123
|
-
@createsOrUpdatesResource(
|
|
135
|
+
@createsOrUpdatesResource(Resource)
|
|
124
136
|
createOrUpdate(
|
|
125
|
-
...ResourceParameters<
|
|
126
|
-
@body resource: ResourceCreateOrUpdateModel<
|
|
127
|
-
):
|
|
137
|
+
...ResourceParameters<Resource>,
|
|
138
|
+
@body resource: ResourceCreateOrUpdateModel<Resource>,
|
|
139
|
+
): Resource | ResourceCreatedResponse<Resource> | Error;
|
|
128
140
|
}
|
|
129
141
|
|
|
130
142
|
/**
|
|
131
143
|
* Resource create operation model.
|
|
132
|
-
*
|
|
144
|
+
*
|
|
145
|
+
* @template Resource The resource model to create.
|
|
133
146
|
*/
|
|
134
|
-
@friendlyName("{name}Create",
|
|
147
|
+
@friendlyName("{name}Create", Resource)
|
|
135
148
|
@withVisibility("create")
|
|
136
|
-
model ResourceCreateModel<
|
|
149
|
+
model ResourceCreateModel<Resource extends {}> is DefaultKeyVisibility<Resource, "read">;
|
|
137
150
|
|
|
138
151
|
/**
|
|
139
152
|
* Resource create operation template.
|
|
140
|
-
*
|
|
141
|
-
* @template
|
|
153
|
+
*
|
|
154
|
+
* @template Resource The resource model to create.
|
|
155
|
+
* @template Error The error response.
|
|
142
156
|
*/
|
|
143
|
-
interface ResourceCreate<
|
|
157
|
+
interface ResourceCreate<Resource extends {}, Error> {
|
|
144
158
|
/**
|
|
145
159
|
* Creates a new instance of the resource.
|
|
146
|
-
*
|
|
147
|
-
* @template
|
|
160
|
+
*
|
|
161
|
+
* @template Resource The resource model to create.
|
|
162
|
+
* @template Error The error response.
|
|
148
163
|
*/
|
|
149
164
|
@autoRoute
|
|
150
165
|
@doc("Creates a new instance of the resource.")
|
|
151
|
-
@createsResource(
|
|
166
|
+
@createsResource(Resource)
|
|
152
167
|
create(
|
|
153
|
-
...ResourceCollectionParameters<
|
|
154
|
-
@body resource: ResourceCreateModel<
|
|
155
|
-
):
|
|
168
|
+
...ResourceCollectionParameters<Resource>,
|
|
169
|
+
@body resource: ResourceCreateModel<Resource>,
|
|
170
|
+
): Resource | ResourceCreatedResponse<Resource> | Error;
|
|
156
171
|
}
|
|
157
172
|
|
|
158
173
|
/**
|
|
159
174
|
* Resource update operation template.
|
|
160
|
-
*
|
|
161
|
-
* @template
|
|
175
|
+
*
|
|
176
|
+
* @template Resource The resource model to update.
|
|
177
|
+
* @template Error The error response.
|
|
162
178
|
*/
|
|
163
|
-
@Private.validateHasKey(
|
|
164
|
-
@Private.validateIsError(
|
|
165
|
-
interface ResourceUpdate<
|
|
179
|
+
@Private.validateHasKey(Resource)
|
|
180
|
+
@Private.validateIsError(Error)
|
|
181
|
+
interface ResourceUpdate<Resource extends {}, Error> {
|
|
166
182
|
/**
|
|
167
183
|
* Updates an existing instance of the resource.
|
|
168
|
-
*
|
|
169
|
-
* @template
|
|
184
|
+
*
|
|
185
|
+
* @template Resource The resource model to update.
|
|
186
|
+
* @template Error The error response.
|
|
170
187
|
*/
|
|
171
188
|
@autoRoute
|
|
172
189
|
@doc("Updates an existing instance of the resource.")
|
|
173
|
-
@updatesResource(
|
|
190
|
+
@updatesResource(Resource)
|
|
174
191
|
update(
|
|
175
|
-
...ResourceParameters<
|
|
176
|
-
@body properties: ResourceCreateOrUpdateModel<
|
|
177
|
-
):
|
|
192
|
+
...ResourceParameters<Resource>,
|
|
193
|
+
@body properties: ResourceCreateOrUpdateModel<Resource>,
|
|
194
|
+
): Resource | Error;
|
|
178
195
|
}
|
|
179
196
|
|
|
180
197
|
@doc("Resource deleted successfully.")
|
|
@@ -186,303 +203,332 @@ model ResourceDeletedResponse {
|
|
|
186
203
|
|
|
187
204
|
/**
|
|
188
205
|
* Resource delete operation template.
|
|
189
|
-
*
|
|
190
|
-
* @template
|
|
206
|
+
*
|
|
207
|
+
* @template Resource The resource model to delete.
|
|
208
|
+
* @template Error The error response.
|
|
191
209
|
*/
|
|
192
|
-
@Private.validateHasKey(
|
|
193
|
-
@Private.validateIsError(
|
|
194
|
-
interface ResourceDelete<
|
|
210
|
+
@Private.validateHasKey(Resource)
|
|
211
|
+
@Private.validateIsError(Error)
|
|
212
|
+
interface ResourceDelete<Resource extends {}, Error> {
|
|
195
213
|
/**
|
|
196
214
|
* Deletes an existing instance of the resource.
|
|
197
|
-
*
|
|
198
|
-
* @template
|
|
215
|
+
*
|
|
216
|
+
* @template Resource The resource model to delete.
|
|
217
|
+
* @template Error The error response.
|
|
199
218
|
*/
|
|
200
219
|
@autoRoute
|
|
201
220
|
@doc("Deletes an existing instance of the resource.")
|
|
202
|
-
@deletesResource(
|
|
203
|
-
delete(...ResourceParameters<
|
|
221
|
+
@deletesResource(Resource)
|
|
222
|
+
delete(...ResourceParameters<Resource>): ResourceDeletedResponse | Error;
|
|
204
223
|
}
|
|
205
224
|
|
|
206
225
|
/**
|
|
207
226
|
* Structure for a paging response using `value` and `nextLink` to represent pagination.
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
227
|
+
*
|
|
228
|
+
* This only provides the model structure and not actual pagination support. See
|
|
229
|
+
* https://github.com/microsoft/typespec/issues/705 for general paging support.
|
|
230
|
+
*
|
|
231
|
+
* @template Resource The resource type of the collection.
|
|
211
232
|
*/
|
|
212
|
-
@doc("Paged response of {name} items",
|
|
213
|
-
@friendlyName("{name}CollectionWithNextLink",
|
|
214
|
-
model CollectionWithNextLink<
|
|
233
|
+
@doc("Paged response of {name} items", Resource)
|
|
234
|
+
@friendlyName("{name}CollectionWithNextLink", Resource)
|
|
235
|
+
model CollectionWithNextLink<Resource extends {}> {
|
|
215
236
|
@doc("The items on this page")
|
|
216
|
-
value:
|
|
237
|
+
value: Resource[];
|
|
217
238
|
|
|
218
239
|
@doc("The link to the next page of items")
|
|
219
|
-
nextLink?: ResourceLocation<
|
|
240
|
+
nextLink?: ResourceLocation<Resource>;
|
|
220
241
|
}
|
|
221
242
|
|
|
222
243
|
/**
|
|
223
244
|
* Resource list operation template.
|
|
224
|
-
*
|
|
225
|
-
* @template
|
|
245
|
+
*
|
|
246
|
+
* @template Resource The resource model to list.
|
|
247
|
+
* @template Error The error response.
|
|
226
248
|
*/
|
|
227
|
-
interface ResourceList<
|
|
249
|
+
interface ResourceList<Resource extends {}, Error> {
|
|
228
250
|
/**
|
|
229
251
|
* Lists all instances of the resource.
|
|
230
|
-
*
|
|
231
|
-
* @template
|
|
252
|
+
*
|
|
253
|
+
* @template Resource The resource model to list.
|
|
254
|
+
* @template Error The error response.
|
|
232
255
|
*/
|
|
233
256
|
@autoRoute
|
|
234
257
|
@doc("Lists all instances of the resource.")
|
|
235
|
-
@listsResource(
|
|
236
|
-
list(...ResourceCollectionParameters<
|
|
258
|
+
@listsResource(Resource)
|
|
259
|
+
list(...ResourceCollectionParameters<Resource>): CollectionWithNextLink<Resource> | Error;
|
|
237
260
|
}
|
|
238
261
|
|
|
239
262
|
/**
|
|
240
263
|
* Resource operation templates for resource instances.
|
|
241
|
-
*
|
|
242
|
-
* @template
|
|
264
|
+
*
|
|
265
|
+
* @template Resource The resource model.
|
|
266
|
+
* @template Error The error response.
|
|
243
267
|
*/
|
|
244
|
-
@Private.validateHasKey(
|
|
245
|
-
@Private.validateIsError(
|
|
246
|
-
interface ResourceInstanceOperations<
|
|
247
|
-
extends ResourceRead<
|
|
248
|
-
ResourceUpdate<
|
|
249
|
-
ResourceDelete<
|
|
268
|
+
@Private.validateHasKey(Resource)
|
|
269
|
+
@Private.validateIsError(Error)
|
|
270
|
+
interface ResourceInstanceOperations<Resource extends {}, Error>
|
|
271
|
+
extends ResourceRead<Resource, Error>,
|
|
272
|
+
ResourceUpdate<Resource, Error>,
|
|
273
|
+
ResourceDelete<Resource, Error> {}
|
|
250
274
|
|
|
251
275
|
/**
|
|
252
276
|
* Resource operation templates for resource collections.
|
|
253
|
-
*
|
|
254
|
-
* @template
|
|
277
|
+
*
|
|
278
|
+
* @template Resource The resource model.
|
|
279
|
+
* @template Error The error response.
|
|
255
280
|
*/
|
|
256
|
-
@Private.validateHasKey(
|
|
257
|
-
@Private.validateIsError(
|
|
258
|
-
interface ResourceCollectionOperations<
|
|
259
|
-
extends ResourceCreate<
|
|
260
|
-
ResourceList<
|
|
281
|
+
@Private.validateHasKey(Resource)
|
|
282
|
+
@Private.validateIsError(Error)
|
|
283
|
+
interface ResourceCollectionOperations<Resource extends {}, Error>
|
|
284
|
+
extends ResourceCreate<Resource, Error>,
|
|
285
|
+
ResourceList<Resource, Error> {}
|
|
261
286
|
|
|
262
287
|
/**
|
|
263
288
|
* Resource operation templates for resources.
|
|
264
|
-
*
|
|
265
|
-
* @template
|
|
289
|
+
*
|
|
290
|
+
* @template Resource The resource model.
|
|
291
|
+
* @template Error The error response.
|
|
266
292
|
*/
|
|
267
|
-
@Private.validateHasKey(
|
|
268
|
-
@Private.validateIsError(
|
|
269
|
-
interface ResourceOperations<
|
|
270
|
-
extends ResourceInstanceOperations<
|
|
271
|
-
ResourceCollectionOperations<
|
|
293
|
+
@Private.validateHasKey(Resource)
|
|
294
|
+
@Private.validateIsError(Error)
|
|
295
|
+
interface ResourceOperations<Resource extends {}, Error>
|
|
296
|
+
extends ResourceInstanceOperations<Resource, Error>,
|
|
297
|
+
ResourceCollectionOperations<Resource, Error> {}
|
|
272
298
|
|
|
273
299
|
/**
|
|
274
300
|
* Singleton resource read operation template.
|
|
275
|
-
*
|
|
276
|
-
* @template
|
|
277
|
-
* @template
|
|
301
|
+
*
|
|
302
|
+
* @template Singleton The singleton resource model.
|
|
303
|
+
* @template Resource The resource model.
|
|
304
|
+
* @template Error The error response.
|
|
278
305
|
*/
|
|
279
|
-
@Private.validateHasKey(
|
|
280
|
-
@Private.validateIsError(
|
|
281
|
-
interface SingletonResourceRead<
|
|
306
|
+
@Private.validateHasKey(Resource)
|
|
307
|
+
@Private.validateIsError(Error)
|
|
308
|
+
interface SingletonResourceRead<Singleton extends {}, Resource extends {}, Error> {
|
|
282
309
|
/**
|
|
283
310
|
* Gets the singleton resource.
|
|
284
|
-
*
|
|
285
|
-
* @template
|
|
311
|
+
*
|
|
312
|
+
* @template Singleton The singleton resource model.
|
|
313
|
+
* @template Resource The resource model.
|
|
286
314
|
*/
|
|
287
315
|
@autoRoute
|
|
288
316
|
@doc("Gets the singleton resource.")
|
|
289
|
-
@segmentOf(
|
|
290
|
-
@readsResource(
|
|
291
|
-
get(...ResourceParameters<
|
|
317
|
+
@segmentOf(Singleton)
|
|
318
|
+
@readsResource(Singleton)
|
|
319
|
+
get(...ResourceParameters<Resource>): Singleton | Error;
|
|
292
320
|
}
|
|
293
321
|
|
|
294
322
|
/**
|
|
295
323
|
* Singleton resource update operation template.
|
|
296
|
-
*
|
|
297
|
-
* @template
|
|
298
|
-
* @template
|
|
324
|
+
*
|
|
325
|
+
* @template Singleton The singleton resource model.
|
|
326
|
+
* @template Resource The resource model.
|
|
327
|
+
* @template Error The error response.
|
|
299
328
|
*/
|
|
300
|
-
@Private.validateHasKey(
|
|
301
|
-
@Private.validateIsError(
|
|
302
|
-
interface SingletonResourceUpdate<
|
|
329
|
+
@Private.validateHasKey(Resource)
|
|
330
|
+
@Private.validateIsError(Error)
|
|
331
|
+
interface SingletonResourceUpdate<Singleton extends {}, Resource extends {}, Error> {
|
|
303
332
|
/**
|
|
304
333
|
* Updates the singleton resource.
|
|
305
|
-
*
|
|
306
|
-
* @template
|
|
334
|
+
*
|
|
335
|
+
* @template Singleton The singleton resource model.
|
|
336
|
+
* @template Resource The resource model.
|
|
307
337
|
*/
|
|
308
338
|
@autoRoute
|
|
309
339
|
@doc("Updates the singleton resource.")
|
|
310
|
-
@segmentOf(
|
|
311
|
-
@updatesResource(
|
|
340
|
+
@segmentOf(Singleton)
|
|
341
|
+
@updatesResource(Singleton)
|
|
312
342
|
update(
|
|
313
|
-
...ResourceParameters<
|
|
343
|
+
...ResourceParameters<Resource>,
|
|
314
344
|
|
|
315
345
|
@body
|
|
316
|
-
properties: ResourceCreateOrUpdateModel<
|
|
317
|
-
):
|
|
346
|
+
properties: ResourceCreateOrUpdateModel<Singleton>,
|
|
347
|
+
): Singleton | Error;
|
|
318
348
|
}
|
|
319
349
|
|
|
320
350
|
/**
|
|
321
351
|
* Singleton resource operation templates for singleton resource instances.
|
|
322
|
-
*
|
|
323
|
-
* @template
|
|
324
|
-
* @template
|
|
352
|
+
*
|
|
353
|
+
* @template Singleton The singleton resource model.
|
|
354
|
+
* @template Resource The resource model.
|
|
355
|
+
* @template Error The error response.
|
|
325
356
|
*/
|
|
326
|
-
interface SingletonResourceOperations<
|
|
327
|
-
extends SingletonResourceRead<
|
|
328
|
-
SingletonResourceUpdate<
|
|
357
|
+
interface SingletonResourceOperations<Singleton extends {}, Resource extends {}, Error>
|
|
358
|
+
extends SingletonResourceRead<Singleton, Resource, Error>,
|
|
359
|
+
SingletonResourceUpdate<Singleton, Resource, Error> {}
|
|
329
360
|
|
|
330
361
|
/**
|
|
331
362
|
* Extension resource read operation template.
|
|
332
|
-
*
|
|
333
|
-
* @template
|
|
334
|
-
* @template
|
|
363
|
+
*
|
|
364
|
+
* @template Extension The extension resource model.
|
|
365
|
+
* @template Resource The resource model.
|
|
366
|
+
* @template Error The error response.
|
|
335
367
|
*/
|
|
336
|
-
@Private.validateHasKey(
|
|
337
|
-
@Private.validateIsError(
|
|
338
|
-
interface ExtensionResourceRead<
|
|
368
|
+
@Private.validateHasKey(Resource)
|
|
369
|
+
@Private.validateIsError(Error)
|
|
370
|
+
interface ExtensionResourceRead<Extension extends {}, Resource extends {}, Error> {
|
|
339
371
|
/**
|
|
340
372
|
* Gets an instance of the extension resource.
|
|
341
|
-
*
|
|
342
|
-
* @template
|
|
373
|
+
*
|
|
374
|
+
* @template Extension The extension resource model.
|
|
375
|
+
* @template Resource The resource model.
|
|
343
376
|
*/
|
|
344
377
|
@autoRoute
|
|
345
378
|
@doc("Gets an instance of the extension resource.")
|
|
346
|
-
@readsResource(
|
|
347
|
-
get(...ResourceParameters<
|
|
379
|
+
@readsResource(Extension)
|
|
380
|
+
get(...ResourceParameters<Resource>, ...ResourceParameters<Extension>): Extension | Error;
|
|
348
381
|
}
|
|
349
382
|
|
|
350
383
|
/**
|
|
351
384
|
* Extension resource create or update operation template.
|
|
352
|
-
*
|
|
353
|
-
* @template
|
|
354
|
-
* @template
|
|
385
|
+
*
|
|
386
|
+
* @template Extension The extension resource model.
|
|
387
|
+
* @template Resource The resource model.
|
|
388
|
+
* @template Error The error response.
|
|
355
389
|
*/
|
|
356
|
-
interface ExtensionResourceCreateOrUpdate<
|
|
390
|
+
interface ExtensionResourceCreateOrUpdate<Extension extends {}, Resource extends {}, Error> {
|
|
357
391
|
/**
|
|
358
392
|
* Creates or update an instance of the extension resource.
|
|
359
|
-
*
|
|
360
|
-
* @template
|
|
393
|
+
*
|
|
394
|
+
* @template Extension The extension resource model.
|
|
395
|
+
* @template Resource The resource model.
|
|
361
396
|
*/
|
|
362
397
|
@autoRoute
|
|
363
398
|
@doc("Creates or update an instance of the extension resource.")
|
|
364
|
-
@createsOrUpdatesResource(
|
|
399
|
+
@createsOrUpdatesResource(Extension)
|
|
365
400
|
createOrUpdate(
|
|
366
|
-
...ResourceParameters<
|
|
367
|
-
...ResourceParameters<
|
|
368
|
-
@body resource: ResourceCreateOrUpdateModel<
|
|
369
|
-
):
|
|
401
|
+
...ResourceParameters<Resource>,
|
|
402
|
+
...ResourceParameters<Extension>,
|
|
403
|
+
@body resource: ResourceCreateOrUpdateModel<Extension>,
|
|
404
|
+
): Extension | ResourceCreatedResponse<Extension> | Error;
|
|
370
405
|
}
|
|
371
406
|
|
|
372
407
|
/**
|
|
373
408
|
* Extension resource create operation template.
|
|
374
|
-
*
|
|
375
|
-
* @template
|
|
376
|
-
* @template
|
|
409
|
+
*
|
|
410
|
+
* @template Extension The extension resource model.
|
|
411
|
+
* @template Resource The resource model.
|
|
412
|
+
* @template Error The error response.
|
|
377
413
|
*/
|
|
378
|
-
interface ExtensionResourceCreate<
|
|
414
|
+
interface ExtensionResourceCreate<Extension extends {}, Resource extends {}, Error> {
|
|
379
415
|
/**
|
|
380
416
|
* Creates a new instance of the extension resource.
|
|
381
|
-
*
|
|
382
|
-
* @template
|
|
417
|
+
*
|
|
418
|
+
* @template Extension The extension resource model.
|
|
419
|
+
* @template Resource The resource model.
|
|
383
420
|
*/
|
|
384
421
|
@autoRoute
|
|
385
422
|
@doc("Creates a new instance of the extension resource.")
|
|
386
|
-
@createsResource(
|
|
423
|
+
@createsResource(Extension)
|
|
387
424
|
create(
|
|
388
|
-
...ResourceParameters<
|
|
389
|
-
@body resource: ResourceCreateModel<
|
|
390
|
-
):
|
|
425
|
+
...ResourceParameters<Resource>,
|
|
426
|
+
@body resource: ResourceCreateModel<Extension>,
|
|
427
|
+
): Extension | ResourceCreatedResponse<Extension> | Error;
|
|
391
428
|
}
|
|
392
429
|
|
|
393
430
|
/**
|
|
394
431
|
* Extension resource update operation template.
|
|
395
|
-
*
|
|
396
|
-
* @template
|
|
397
|
-
* @template
|
|
432
|
+
*
|
|
433
|
+
* @template Extension The extension resource model.
|
|
434
|
+
* @template Resource The resource model.
|
|
435
|
+
* @template Error The error response.
|
|
398
436
|
*/
|
|
399
|
-
interface ExtensionResourceUpdate<
|
|
437
|
+
interface ExtensionResourceUpdate<Extension extends {}, Resource extends {}, Error> {
|
|
400
438
|
/**
|
|
401
439
|
* Updates an existing instance of the extension resource.
|
|
402
|
-
*
|
|
403
|
-
* @template
|
|
440
|
+
*
|
|
441
|
+
* @template Extension The extension resource model.
|
|
442
|
+
* @template Resource The resource model.
|
|
404
443
|
*/
|
|
405
444
|
@autoRoute
|
|
406
445
|
@doc("Updates an existing instance of the extension resource.")
|
|
407
|
-
@updatesResource(
|
|
446
|
+
@updatesResource(Extension)
|
|
408
447
|
update(
|
|
409
|
-
...ResourceParameters<
|
|
410
|
-
...ResourceParameters<
|
|
448
|
+
...ResourceParameters<Resource>,
|
|
449
|
+
...ResourceParameters<Extension>,
|
|
411
450
|
|
|
412
451
|
@body
|
|
413
|
-
properties: ResourceCreateOrUpdateModel<
|
|
414
|
-
):
|
|
452
|
+
properties: ResourceCreateOrUpdateModel<Extension>,
|
|
453
|
+
): Extension | Error;
|
|
415
454
|
}
|
|
416
455
|
|
|
417
456
|
/**
|
|
418
457
|
* Extension resource delete operation template.
|
|
419
|
-
*
|
|
420
|
-
* @template
|
|
421
|
-
* @template
|
|
458
|
+
*
|
|
459
|
+
* @template Extension The extension resource model.
|
|
460
|
+
* @template Resource The resource model.
|
|
461
|
+
* @template Error The error response.
|
|
422
462
|
*/
|
|
423
|
-
interface ExtensionResourceDelete<
|
|
463
|
+
interface ExtensionResourceDelete<Extension extends {}, Resource extends {}, Error> {
|
|
424
464
|
/**
|
|
425
465
|
* Deletes an existing instance of the extension resource.
|
|
426
|
-
*
|
|
427
|
-
* @template
|
|
466
|
+
*
|
|
467
|
+
* @template Extension The extension resource model.
|
|
468
|
+
* @template Resource The resource model.
|
|
428
469
|
*/
|
|
429
470
|
@autoRoute
|
|
430
471
|
@doc("Deletes an existing instance of the extension resource.")
|
|
431
|
-
@deletesResource(
|
|
472
|
+
@deletesResource(Extension)
|
|
432
473
|
delete(
|
|
433
|
-
...ResourceParameters<
|
|
434
|
-
...ResourceParameters<
|
|
435
|
-
): ResourceDeletedResponse |
|
|
474
|
+
...ResourceParameters<Resource>,
|
|
475
|
+
...ResourceParameters<Extension>,
|
|
476
|
+
): ResourceDeletedResponse | Error;
|
|
436
477
|
}
|
|
437
478
|
|
|
438
479
|
/**
|
|
439
480
|
* Extension resource list operation template.
|
|
440
|
-
*
|
|
441
|
-
* @template
|
|
442
|
-
* @template
|
|
481
|
+
*
|
|
482
|
+
* @template Extension The extension resource model.
|
|
483
|
+
* @template Resource The resource model.
|
|
484
|
+
* @template Error The error response.
|
|
443
485
|
*/
|
|
444
|
-
interface ExtensionResourceList<
|
|
486
|
+
interface ExtensionResourceList<Extension extends {}, Resource extends {}, Error> {
|
|
445
487
|
/**
|
|
446
488
|
* Lists all instances of the extension resource.
|
|
447
|
-
*
|
|
448
|
-
* @template
|
|
489
|
+
*
|
|
490
|
+
* @template Extension The extension resource model.
|
|
491
|
+
* @template Resource The resource model.
|
|
449
492
|
*/
|
|
450
493
|
@autoRoute
|
|
451
494
|
@doc("Lists all instances of the extension resource.")
|
|
452
|
-
@listsResource(
|
|
495
|
+
@listsResource(Extension)
|
|
453
496
|
list(
|
|
454
|
-
...ResourceParameters<
|
|
455
|
-
...ResourceCollectionParameters<
|
|
456
|
-
): CollectionWithNextLink<
|
|
497
|
+
...ResourceParameters<Resource>,
|
|
498
|
+
...ResourceCollectionParameters<Extension>,
|
|
499
|
+
): CollectionWithNextLink<Extension> | Error;
|
|
457
500
|
}
|
|
458
501
|
|
|
459
502
|
/**
|
|
460
503
|
* Extension resource operation templates for extension resource instances.
|
|
461
|
-
*
|
|
462
|
-
* @template
|
|
463
|
-
* @template
|
|
504
|
+
*
|
|
505
|
+
* @template Extension The extension resource model.
|
|
506
|
+
* @template Resource The resource model.
|
|
507
|
+
* @template Error The error response.
|
|
464
508
|
*/
|
|
465
|
-
interface ExtensionResourceInstanceOperations<
|
|
466
|
-
extends ExtensionResourceRead<
|
|
467
|
-
ExtensionResourceUpdate<
|
|
468
|
-
ExtensionResourceDelete<
|
|
509
|
+
interface ExtensionResourceInstanceOperations<Extension extends {}, Resource extends {}, Error>
|
|
510
|
+
extends ExtensionResourceRead<Extension, Resource, Error>,
|
|
511
|
+
ExtensionResourceUpdate<Extension, Resource, Error>,
|
|
512
|
+
ExtensionResourceDelete<Extension, Resource, Error> {}
|
|
469
513
|
|
|
470
514
|
/**
|
|
471
515
|
* Extension resource operation templates for extension resource collections.
|
|
472
|
-
*
|
|
473
|
-
* @template
|
|
474
|
-
* @template
|
|
516
|
+
*
|
|
517
|
+
* @template Extension The extension resource model.
|
|
518
|
+
* @template Resource The resource model.
|
|
519
|
+
* @template Error The error response.
|
|
475
520
|
*/
|
|
476
|
-
interface ExtensionResourceCollectionOperations<
|
|
477
|
-
extends ExtensionResourceCreate<
|
|
478
|
-
ExtensionResourceList<
|
|
521
|
+
interface ExtensionResourceCollectionOperations<Extension extends {}, Resource extends {}, Error>
|
|
522
|
+
extends ExtensionResourceCreate<Extension, Resource, Error>,
|
|
523
|
+
ExtensionResourceList<Extension, Resource, Error> {}
|
|
479
524
|
|
|
480
525
|
/**
|
|
481
526
|
* Extension resource operation templates for extension resource instances and collections.
|
|
482
|
-
*
|
|
483
|
-
* @template
|
|
484
|
-
* @template
|
|
527
|
+
*
|
|
528
|
+
* @template Extension The extension resource model.
|
|
529
|
+
* @template Resource The resource model.
|
|
530
|
+
* @template Error The error response.
|
|
485
531
|
*/
|
|
486
|
-
interface ExtensionResourceOperations<
|
|
487
|
-
extends ExtensionResourceInstanceOperations<
|
|
488
|
-
ExtensionResourceCollectionOperations<
|
|
532
|
+
interface ExtensionResourceOperations<Extension extends {}, Resource extends {}, Error>
|
|
533
|
+
extends ExtensionResourceInstanceOperations<Extension, Resource, Error>,
|
|
534
|
+
ExtensionResourceCollectionOperations<Extension, Resource, Error> {}
|
package/lib/rest.tsp
CHANGED
|
@@ -6,8 +6,8 @@ namespace TypeSpec.Rest;
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* A URL that points to a resource.
|
|
9
|
-
* @template
|
|
9
|
+
* @template Resource The type of resource that the URL points to.
|
|
10
10
|
*/
|
|
11
|
-
@doc("The location of an instance of {name}",
|
|
12
|
-
@Private.resourceLocation(
|
|
13
|
-
scalar ResourceLocation<
|
|
11
|
+
@doc("The location of an instance of {name}", Resource)
|
|
12
|
+
@Private.resourceLocation(Resource)
|
|
13
|
+
scalar ResourceLocation<Resource extends {}> extends url;
|