@azure-tools/typespec-azure-resource-manager 0.31.0-dev.3 → 0.31.0-dev.5
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/dist/src/namespace.d.ts +2 -2
- package/dist/src/namespace.d.ts.map +1 -1
- package/dist/src/namespace.js +1 -4
- package/dist/src/namespace.js.map +1 -1
- package/dist/src/operations.d.ts +9 -9
- package/dist/src/operations.d.ts.map +1 -1
- package/dist/src/operations.js +1 -39
- package/dist/src/operations.js.map +1 -1
- package/dist/src/private.decorators.d.ts +64 -0
- package/dist/src/private.decorators.d.ts.map +1 -0
- package/dist/src/private.decorators.js +274 -0
- package/dist/src/private.decorators.js.map +1 -0
- package/dist/src/resource.d.ts +11 -27
- package/dist/src/resource.d.ts.map +1 -1
- package/dist/src/resource.js +6 -197
- package/dist/src/resource.js.map +1 -1
- package/dist/src/rules/core-operations.js +1 -1
- package/dist/src/rules/core-operations.js.map +1 -1
- package/dist/src/rules/operations-interface-missing.js +1 -1
- package/dist/src/rules/operations-interface-missing.js.map +1 -1
- package/lib/arm.foundations.tsp +1 -0
- package/lib/arm.tsp +1 -1
- package/lib/decorators.tsp +57 -1
- package/lib/interfaces.tsp +3 -2
- package/lib/models.tsp +5 -4
- package/lib/operations.tsp +2 -2
- package/lib/parameters.tsp +1 -0
- package/lib/private.decorators.tsp +70 -0
- package/lib/responses.tsp +1 -0
- package/package.json +1 -1
- package/dist/src/internal.d.ts +0 -44
- package/dist/src/internal.d.ts.map +0 -1
- package/dist/src/internal.js +0 -133
- package/dist/src/internal.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,gBAAgB,EAEhB,SAAS,EAET,KAAK,EACL,SAAS,EACT,OAAO,EAER,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,qBAAqB,EAA6B,MAAM,iBAAiB,CAAC;AAGnF,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;AAEhE;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,KAAK,CAAC;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,sBAAsB;IAChE,UAAU,EAAE,qBAAqB,CAAC;CACnC;AAgBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAiBtE;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,KAAK,GAClB,kBAAkB,GAAG,SAAS,CAYhC;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS,CAanF;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,GAAG,IAAI,CAUhG;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,KAAK,EACnB,QAAQ,GAAE,MAAkB,GAC3B,IAAI,CAEN;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,GAAG,OAAO,CAElF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAEjG;AAED,oBAAY,gBAAgB;IAC1B,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,SAAS,cAAc;CACxB;AAGD,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,QAEvE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,QAE7E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,QAEzE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,QAE9E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,QAE1E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,QAQjF;AAkCD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,gBAAgB,CAYvF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAsBnF"}
|
package/dist/src/resource.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { $tag,
|
|
1
|
+
import { $tag, getTags, isGlobalNamespace, } from "@typespec/compiler";
|
|
2
2
|
import { $autoRoute, getParentResource, getSegment } from "@typespec/rest";
|
|
3
3
|
import { createStateSymbol, reportDiagnostic } from "./lib.js";
|
|
4
4
|
import { getArmProviderNamespace } from "./namespace.js";
|
|
5
5
|
import { resolveResourceOperations } from "./operations.js";
|
|
6
|
-
|
|
6
|
+
import { getArmResource, listArmResources } from "./private.decorators.js";
|
|
7
7
|
const armResourcesCachedKey = createStateSymbol("armResourcesCached");
|
|
8
8
|
const armSingletonResourcesKey = createStateSymbol("armSingletonResources");
|
|
9
9
|
function resolveArmResourceDetails(program, resource) {
|
|
@@ -29,18 +29,16 @@ export function getArmResources(program) {
|
|
|
29
29
|
}
|
|
30
30
|
// We haven't generated the full resource details yet
|
|
31
31
|
const resources = [];
|
|
32
|
-
for (const resource of program
|
|
32
|
+
for (const resource of listArmResources(program)) {
|
|
33
33
|
const fullResource = resolveArmResourceDetails(program, resource);
|
|
34
34
|
cachedResources.set(resource.typespecType, fullResource);
|
|
35
35
|
resources.push(fullResource);
|
|
36
36
|
}
|
|
37
37
|
return resources;
|
|
38
38
|
}
|
|
39
|
-
export
|
|
40
|
-
return program.stateMap(armResourcesKey).get(resourceType);
|
|
41
|
-
}
|
|
39
|
+
export { getArmResource } from "./private.decorators.js";
|
|
42
40
|
export function getArmResourceInfo(program, resourceType) {
|
|
43
|
-
const resourceInfo = program
|
|
41
|
+
const resourceInfo = getArmResource(program, resourceType);
|
|
44
42
|
if (!resourceInfo) {
|
|
45
43
|
reportDiagnostic(program, {
|
|
46
44
|
code: "arm-resource-missing",
|
|
@@ -65,96 +63,6 @@ export function getArmResourceKind(resourceType) {
|
|
|
65
63
|
}
|
|
66
64
|
return undefined;
|
|
67
65
|
}
|
|
68
|
-
/**
|
|
69
|
-
* This decorator is used to identify ARM resource types and extract their
|
|
70
|
-
* metadata. It is *not* meant to be used directly by a spec author, it instead
|
|
71
|
-
* gets implicitly applied when the spec author defines a model type in this form:
|
|
72
|
-
*
|
|
73
|
-
* `model Server is TrackedResource<ServerProperties>;`
|
|
74
|
-
*
|
|
75
|
-
* The `TrackedResource<T>` type (and other associated base types) use the @armResource
|
|
76
|
-
* decorator, so it also gets applied to the type which absorbs the `TrackedResource<T>`
|
|
77
|
-
* definition by using the `is` keyword.
|
|
78
|
-
*/
|
|
79
|
-
export function $armResourceInternal(context, resourceType, propertiesType) {
|
|
80
|
-
const { program } = context;
|
|
81
|
-
// If the properties type is a template parameter, this must be a templated type
|
|
82
|
-
if (propertiesType.kind === "TemplateParameter") {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
if (!validateDecoratorTarget(context, resourceType, "@armResource", "Model") ||
|
|
86
|
-
// eslint-disable-next-line deprecation/deprecation
|
|
87
|
-
!validateDecoratorParamType(program, resourceType, propertiesType, "Model")) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
if (resourceType.namespace && getTypeName(resourceType.namespace) === "Azure.ResourceManager") {
|
|
91
|
-
// The @armResource decorator will be evaluated on instantiations of
|
|
92
|
-
// base templated resource types like TrackedResource<SomeResource>,
|
|
93
|
-
// so ignore in that case.
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
// The global namespace has an empty string as name
|
|
97
|
-
if (!resourceType.namespace || resourceType.namespace.name === "") {
|
|
98
|
-
reportDiagnostic(program, {
|
|
99
|
-
code: "decorator-in-namespace",
|
|
100
|
-
format: { decoratorName: "armResource" },
|
|
101
|
-
target: resourceType,
|
|
102
|
-
});
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
// Locate the ARM namespace in the namespace hierarchy
|
|
106
|
-
const armProviderNamespace = getArmProviderNamespace(program, resourceType.namespace);
|
|
107
|
-
if (!armProviderNamespace) {
|
|
108
|
-
reportDiagnostic(program, { code: "arm-resource-missing-arm-namespace", target: resourceType });
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
// Ensure the resource type has defined a name property that has a segment
|
|
112
|
-
const nameProperty = resourceType.properties.get("name");
|
|
113
|
-
if (!nameProperty) {
|
|
114
|
-
reportDiagnostic(program, { code: "arm-resource-missing-name-property", target: resourceType });
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
// Set the name property to be read only
|
|
118
|
-
context.call($visibility, nameProperty, "read");
|
|
119
|
-
const keyName = getKeyName(program, nameProperty);
|
|
120
|
-
if (!keyName) {
|
|
121
|
-
reportDiagnostic(program, {
|
|
122
|
-
code: "arm-resource-missing-name-key-decorator",
|
|
123
|
-
target: resourceType,
|
|
124
|
-
});
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
const collectionName = getSegment(program, nameProperty);
|
|
128
|
-
if (!collectionName) {
|
|
129
|
-
reportDiagnostic(program, {
|
|
130
|
-
code: "arm-resource-missing-name-segment-decorator",
|
|
131
|
-
target: resourceType,
|
|
132
|
-
});
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
const kind = getArmResourceKind(resourceType);
|
|
136
|
-
if (!kind) {
|
|
137
|
-
reportDiagnostic(program, {
|
|
138
|
-
code: "arm-resource-invalid-base-type",
|
|
139
|
-
target: resourceType,
|
|
140
|
-
});
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
const armResourceDetails = {
|
|
144
|
-
name: resourceType.name,
|
|
145
|
-
kind,
|
|
146
|
-
typespecType: resourceType,
|
|
147
|
-
collectionName,
|
|
148
|
-
keyName,
|
|
149
|
-
armProviderNamespace: armProviderNamespace !== null && armProviderNamespace !== void 0 ? armProviderNamespace : "",
|
|
150
|
-
operations: {
|
|
151
|
-
lifecycle: {},
|
|
152
|
-
lists: {},
|
|
153
|
-
actions: {},
|
|
154
|
-
},
|
|
155
|
-
};
|
|
156
|
-
program.stateMap(armResourcesKey).set(resourceType, armResourceDetails);
|
|
157
|
-
}
|
|
158
66
|
/**
|
|
159
67
|
* This decorator is used to identify interfaces containing resource operations.
|
|
160
68
|
* When applied, it marks the interface with the `@autoRoute` decorator so that
|
|
@@ -167,9 +75,6 @@ export function $armResourceInternal(context, resourceType, propertiesType) {
|
|
|
167
75
|
*/
|
|
168
76
|
export function $armResourceOperations(context, interfaceType) {
|
|
169
77
|
const { program } = context;
|
|
170
|
-
if (!validateDecoratorTarget(context, interfaceType, "@armResourceOperations", "Interface")) {
|
|
171
|
-
return undefined;
|
|
172
|
-
}
|
|
173
78
|
// All resource interfaces should use @autoRoute
|
|
174
79
|
context.call($autoRoute, interfaceType);
|
|
175
80
|
// If no tag is given for the interface, tag it with the interface name
|
|
@@ -184,9 +89,6 @@ export function $armResourceOperations(context, interfaceType) {
|
|
|
184
89
|
* lists.
|
|
185
90
|
*/
|
|
186
91
|
export function $singleton(context, resourceType, keyValue = "default") {
|
|
187
|
-
if (!validateDecoratorTarget(context, resourceType, "@singleton", "Model")) {
|
|
188
|
-
return undefined;
|
|
189
|
-
}
|
|
190
92
|
context.program.stateMap(armSingletonResourcesKey).set(resourceType, keyValue);
|
|
191
93
|
}
|
|
192
94
|
export function isSingletonResource(program, resourceType) {
|
|
@@ -204,40 +106,22 @@ export var ResourceBaseType;
|
|
|
204
106
|
ResourceBaseType["Extension"] = "Extension";
|
|
205
107
|
})(ResourceBaseType = ResourceBaseType || (ResourceBaseType = {}));
|
|
206
108
|
const resourceBaseTypeKey = createStateSymbol("resourceBaseTypeKey");
|
|
207
|
-
const parameterBaseTypesKey = createStateSymbol("parameterBaseTypesKey");
|
|
208
109
|
export function $tenantResource(context, entity) {
|
|
209
|
-
if (!validateDecoratorTarget(context, entity, "@tenantResource", "Model")) {
|
|
210
|
-
return;
|
|
211
|
-
}
|
|
212
110
|
setResourceBaseType(context.program, entity, "Tenant");
|
|
213
111
|
}
|
|
214
112
|
export function $subscriptionResource(context, entity) {
|
|
215
|
-
if (!validateDecoratorTarget(context, entity, "@subscriptionResource", "Model")) {
|
|
216
|
-
return;
|
|
217
|
-
}
|
|
218
113
|
setResourceBaseType(context.program, entity, "Subscription");
|
|
219
114
|
}
|
|
220
115
|
export function $locationResource(context, entity) {
|
|
221
|
-
if (!validateDecoratorTarget(context, entity, "@locationResource", "Model")) {
|
|
222
|
-
return;
|
|
223
|
-
}
|
|
224
116
|
setResourceBaseType(context.program, entity, "Location");
|
|
225
117
|
}
|
|
226
118
|
export function $resourceGroupResource(context, entity) {
|
|
227
|
-
if (!validateDecoratorTarget(context, entity, "@resourceGroupResource", "Model")) {
|
|
228
|
-
return;
|
|
229
|
-
}
|
|
230
119
|
setResourceBaseType(context.program, entity, "ResourceGroup");
|
|
231
120
|
}
|
|
232
121
|
export function $extensionResource(context, entity) {
|
|
233
|
-
if (!validateDecoratorTarget(context, entity, "@extensionResource", "Model")) {
|
|
234
|
-
return;
|
|
235
|
-
}
|
|
236
122
|
setResourceBaseType(context.program, entity, "Extension");
|
|
237
123
|
}
|
|
238
124
|
export function $armProviderNameValue(context, entity) {
|
|
239
|
-
if (!validateDecoratorTarget(context, entity, "@armProviderNameValue", "Operation"))
|
|
240
|
-
return;
|
|
241
125
|
const armProvider = getServiceNamespace(context.program, entity);
|
|
242
126
|
if (armProvider === undefined)
|
|
243
127
|
return;
|
|
@@ -264,66 +148,6 @@ function getServiceNamespace(program, type) {
|
|
|
264
148
|
return undefined;
|
|
265
149
|
}
|
|
266
150
|
}
|
|
267
|
-
export function $resourceParameterBaseFor(context, entity, values) {
|
|
268
|
-
if (!validateDecoratorTarget(context, entity, "@resourceParameterBaseFor", "ModelProperty")) {
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
if (!validateDecoratorTarget(context, values, "@resourceParameterBaseFor", "Tuple")) {
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
const resolvedValues = [];
|
|
275
|
-
for (const value of values.values) {
|
|
276
|
-
if (value.kind !== "EnumMember") {
|
|
277
|
-
return;
|
|
278
|
-
}
|
|
279
|
-
resolvedValues.push(value.name);
|
|
280
|
-
}
|
|
281
|
-
context.program.stateMap(parameterBaseTypesKey).set(entity, resolvedValues);
|
|
282
|
-
}
|
|
283
|
-
export function $resourceBaseParametersOf(context, entity, resourceType) {
|
|
284
|
-
if (!validateDecoratorTarget(context, entity, "@resourceBaseParameterseOf", "Model")) {
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
|
-
if (!validateDecoratorTarget(context, resourceType, "@resourceBaseParameterseOf", "Model")) {
|
|
288
|
-
return;
|
|
289
|
-
}
|
|
290
|
-
const targetResourceBaseType = getResourceBaseType(context.program, resourceType);
|
|
291
|
-
const removedProperties = [];
|
|
292
|
-
for (const [propertyName, property] of entity.properties) {
|
|
293
|
-
if (!isResourceParameterBaseForInternal(context.program, property, targetResourceBaseType))
|
|
294
|
-
removedProperties.push(propertyName);
|
|
295
|
-
}
|
|
296
|
-
for (const removedProperty of removedProperties) {
|
|
297
|
-
entity.properties.delete(removedProperty);
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
export function $omitIfEmpty(context, entity, propertyName) {
|
|
301
|
-
if (!validateDecoratorTarget(context, entity, "@omitIfEmpty", "Model")) {
|
|
302
|
-
return;
|
|
303
|
-
}
|
|
304
|
-
const modelProp = getProperty(entity, propertyName);
|
|
305
|
-
if (modelProp &&
|
|
306
|
-
modelProp.type.kind === "Model" &&
|
|
307
|
-
!hasProperty(context.program, modelProp.type)) {
|
|
308
|
-
entity.properties.delete(propertyName);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
export function isResourceParameterBaseFor(program, property, resourceBaseType) {
|
|
312
|
-
return isResourceParameterBaseForInternal(program, property, resolveResourceBaseType(resourceBaseType));
|
|
313
|
-
}
|
|
314
|
-
function isResourceParameterBaseForInternal(program, property, resolvedBaseType) {
|
|
315
|
-
const resourceBases = getResourceParameterBases(program, property);
|
|
316
|
-
if (resourceBases !== undefined) {
|
|
317
|
-
for (const rawType of resourceBases) {
|
|
318
|
-
if (resolveResourceBaseType(rawType) === resolvedBaseType)
|
|
319
|
-
return true;
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
return false;
|
|
323
|
-
}
|
|
324
|
-
export function getResourceParameterBases(program, property) {
|
|
325
|
-
return program.stateMap(parameterBaseTypesKey).get(property);
|
|
326
|
-
}
|
|
327
151
|
function setResourceBaseType(program, resource, type) {
|
|
328
152
|
if (program.stateMap(resourceBaseTypeKey).has(resource)) {
|
|
329
153
|
reportDiagnostic(program, {
|
|
@@ -346,7 +170,7 @@ export function getResourceBaseType(program, resource) {
|
|
|
346
170
|
const keyValue = program.stateMap(resourceBaseTypeKey).get(resource);
|
|
347
171
|
return resolveResourceBaseType(keyValue);
|
|
348
172
|
}
|
|
349
|
-
function resolveResourceBaseType(type) {
|
|
173
|
+
export function resolveResourceBaseType(type) {
|
|
350
174
|
let resolvedType = ResourceBaseType.ResourceGroup;
|
|
351
175
|
if (type !== undefined) {
|
|
352
176
|
switch (type) {
|
|
@@ -369,19 +193,4 @@ function resolveResourceBaseType(type) {
|
|
|
369
193
|
}
|
|
370
194
|
return resolvedType;
|
|
371
195
|
}
|
|
372
|
-
function getProperty(model, propertyName) {
|
|
373
|
-
var _a;
|
|
374
|
-
let returnProperty = (_a = model.properties) === null || _a === void 0 ? void 0 : _a.get(propertyName);
|
|
375
|
-
if (!returnProperty && model.baseModel) {
|
|
376
|
-
returnProperty = getProperty(model.baseModel, propertyName);
|
|
377
|
-
}
|
|
378
|
-
return returnProperty;
|
|
379
|
-
}
|
|
380
|
-
function hasProperty(program, model) {
|
|
381
|
-
if (model.properties.size > 0)
|
|
382
|
-
return true;
|
|
383
|
-
if (model.baseModel)
|
|
384
|
-
return hasProperty(program, model.baseModel);
|
|
385
|
-
return false;
|
|
386
|
-
}
|
|
387
196
|
//# sourceMappingURL=resource.js.map
|
package/dist/src/resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/resource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { getEffectiveModelType, getProperty, isErrorType, SyntaxKind, } from "@t
|
|
|
2
2
|
import { getOperationVerb, isBody, isHeader, isPathParam, isQueryParam, } from "@typespec/http";
|
|
3
3
|
import { createRule } from "@typespec/lint";
|
|
4
4
|
import { getActionDetails } from "@typespec/rest";
|
|
5
|
-
import { isArmOperationsListInterface } from "../internal.js";
|
|
6
5
|
import { reportDiagnostic } from "../lib.js";
|
|
6
|
+
import { isArmOperationsListInterface } from "../private.decorators.js";
|
|
7
7
|
import { getArmResource } from "../resource.js";
|
|
8
8
|
import { getNamespaceName, getSourceModel, isInternalTypeSpec, isTemplatedInterfaceOperation, } from "./utils.js";
|
|
9
9
|
export const coreOperationsRule = createRule({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-operations.js","sourceRoot":"","sources":["../../../src/rules/core-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,WAAW,EAEX,WAAW,EAKX,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAEhB,MAAM,EACN,QAAQ,EACR,WAAW,EACX,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"core-operations.js","sourceRoot":"","sources":["../../../src/rules/core-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { isService } from "@typespec/compiler";
|
|
2
2
|
import { createRule } from "@typespec/lint";
|
|
3
|
-
import { isArmOperationsListInterface } from "../internal.js";
|
|
4
3
|
import { reportDiagnostic } from "../lib.js";
|
|
5
4
|
import { getArmProviderNamespace } from "../namespace.js";
|
|
5
|
+
import { isArmOperationsListInterface } from "../private.decorators.js";
|
|
6
6
|
/**
|
|
7
7
|
* verify that the Arm Operations interface is included.
|
|
8
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations-interface-missing.js","sourceRoot":"","sources":["../../../src/rules/operations-interface-missing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"operations-interface-missing.js","sourceRoot":"","sources":["../../../src/rules/operations-interface-missing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,UAAU,CAAC;IACvD,IAAI,EAAE,8BAA8B;IACpC,MAAM,CAAC,EAAE,OAAO,EAAE;QAChB,OAAO;YACL,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;oBAClC,OAAO;iBACR;gBAED,MAAM,YAAY,GAAG,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjE,IAAI,CAAC,YAAY,EAAE;oBACjB,OAAO;iBACR;gBACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;oBAChD,IAAI,4BAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;wBAC/C,OAAO;qBACR;iBACF;gBACD,gBAAgB,CAAC,OAAO,EAAE;oBACxB,IAAI,EAAE,6BAA6B;oBACnC,MAAM,EAAE;wBACN,SAAS,EAAE,SAAS,CAAC,IAAI;qBAC1B;oBACD,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
package/lib/arm.foundations.tsp
CHANGED
package/lib/arm.tsp
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import "../dist/src/index.js";
|
|
2
|
-
import "../dist/src/internal.js";
|
|
3
2
|
import "@typespec/openapi";
|
|
4
3
|
import "@typespec/http";
|
|
5
4
|
import "@typespec/rest";
|
|
@@ -8,6 +7,7 @@ import "@azure-tools/typespec-autorest";
|
|
|
8
7
|
import "@azure-tools/typespec-azure-core";
|
|
9
8
|
|
|
10
9
|
import "./arm.foundations.tsp";
|
|
10
|
+
import "./private.decorators.tsp";
|
|
11
11
|
import "./models.tsp";
|
|
12
12
|
import "./operations.tsp";
|
|
13
13
|
import "./decorators.tsp";
|
package/lib/decorators.tsp
CHANGED
|
@@ -96,4 +96,60 @@ extern dec armProviderNameValue(target: Operation | object);
|
|
|
96
96
|
/**
|
|
97
97
|
* Marks the operation as being a collection action
|
|
98
98
|
*/
|
|
99
|
-
extern dec armResourceCollectionAction(target: Operation
|
|
99
|
+
extern dec armResourceCollectionAction(target: Operation);
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Marks the operation as being a collection action
|
|
103
|
+
* @param resourceType Resource
|
|
104
|
+
* @param parentTypeName: Parent type name.
|
|
105
|
+
* @param parentFriendlyTypeName Friendly name for parent.
|
|
106
|
+
*/
|
|
107
|
+
extern dec armRenameListByOperation(
|
|
108
|
+
target: Operation,
|
|
109
|
+
resourceType: Model,
|
|
110
|
+
parentTypeName?: string,
|
|
111
|
+
parentFriendlyTypeName?: string
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @param resourceType Resource model
|
|
116
|
+
*/
|
|
117
|
+
extern dec armResourceAction(target: Operation, resourceType: Model);
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* @param resourceType Resource model
|
|
121
|
+
*/
|
|
122
|
+
extern dec armResourceCreateOrUpdate(target: Operation, resourceType: Model);
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* @param resourceType Resource model
|
|
126
|
+
*/
|
|
127
|
+
extern dec armResourceRead(target: Operation, resourceType: Model);
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* @param resourceType Resource model
|
|
131
|
+
*/
|
|
132
|
+
extern dec armResourceUpdate(target: Operation, resourceType: Model);
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @param resourceType Resource model
|
|
136
|
+
*/
|
|
137
|
+
extern dec armResourceDelete(target: Operation, resourceType: Model);
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* @param resourceType Resource model
|
|
141
|
+
*/
|
|
142
|
+
extern dec armResourceList(target: Operation, resourceType: Model);
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* This decorator is used to identify interfaces containing resource operations.
|
|
146
|
+
* When applied, it marks the interface with the `@autoRoute` decorator so that
|
|
147
|
+
* all of its contained operations will have their routes generated
|
|
148
|
+
* automatically.
|
|
149
|
+
*
|
|
150
|
+
* It also adds a `@tag` decorator bearing the name of the interface so that all
|
|
151
|
+
* of the operations will be grouped based on the interface name in generated
|
|
152
|
+
* clients.
|
|
153
|
+
* @param _ DEPRECATED
|
|
154
|
+
*/
|
|
155
|
+
extern dec armResourceOperations(target: Interface, _?: unknown);
|
package/lib/interfaces.tsp
CHANGED
|
@@ -3,6 +3,7 @@ using TypeSpec.Rest;
|
|
|
3
3
|
using OpenAPI;
|
|
4
4
|
using Autorest;
|
|
5
5
|
using Azure.ResourceManager.Foundations;
|
|
6
|
+
using Azure.ResourceManager.Private;
|
|
6
7
|
|
|
7
8
|
namespace Azure.ResourceManager;
|
|
8
9
|
|
|
@@ -155,8 +156,8 @@ interface ResourceListBySubscription<TResource extends ArmResource> {
|
|
|
155
156
|
interface ResourceListByParent<
|
|
156
157
|
TResource extends ArmResource,
|
|
157
158
|
TBaseParameters = BaseParameters<TResource>,
|
|
158
|
-
TParentName = "",
|
|
159
|
-
TParentFriendlyName = ""
|
|
159
|
+
TParentName extends string = "",
|
|
160
|
+
TParentFriendlyName extends string = ""
|
|
160
161
|
> {
|
|
161
162
|
/**
|
|
162
163
|
* List resources by parent.
|
package/lib/models.tsp
CHANGED
|
@@ -2,6 +2,7 @@ using TypeSpec.Http;
|
|
|
2
2
|
using TypeSpec.Rest;
|
|
3
3
|
using OpenAPI;
|
|
4
4
|
using Azure.ResourceManager.Foundations;
|
|
5
|
+
using Azure.ResourceManager.Private;
|
|
5
6
|
|
|
6
7
|
namespace Azure.ResourceManager;
|
|
7
8
|
|
|
@@ -15,7 +16,7 @@ namespace Azure.ResourceManager;
|
|
|
15
16
|
@doc("Concrete tracked resource types can be created by aliasing this type using a specific property type.")
|
|
16
17
|
@armResourceInternal(TProperties)
|
|
17
18
|
@includeInapplicableMetadataInPayload(false)
|
|
18
|
-
model TrackedResource<TProperties> extends TrackedResourceBase {
|
|
19
|
+
model TrackedResource<TProperties extends {}> extends TrackedResourceBase {
|
|
19
20
|
@doc("The resource-specific properties for this resource.")
|
|
20
21
|
@visibility("read", "create")
|
|
21
22
|
@extension("x-ms-client-flatten", true)
|
|
@@ -31,7 +32,7 @@ model TrackedResource<TProperties> extends TrackedResourceBase {
|
|
|
31
32
|
@doc("Concrete proxy resource types can be created by aliasing this type using a specific property type.")
|
|
32
33
|
@armResourceInternal(TProperties)
|
|
33
34
|
@includeInapplicableMetadataInPayload(false)
|
|
34
|
-
model ProxyResource<TProperties> extends ProxyResourceBase {
|
|
35
|
+
model ProxyResource<TProperties extends {}> extends ProxyResourceBase {
|
|
35
36
|
@doc("The resource-specific properties for this resource.")
|
|
36
37
|
@visibility("read", "create")
|
|
37
38
|
@extension("x-ms-client-flatten", true)
|
|
@@ -48,7 +49,7 @@ model ProxyResource<TProperties> extends ProxyResourceBase {
|
|
|
48
49
|
@doc("Concrete extension resource types can be created by aliasing this type using a specific property type.")
|
|
49
50
|
@armResourceInternal(TProperties)
|
|
50
51
|
@includeInapplicableMetadataInPayload(false)
|
|
51
|
-
model ExtensionResource<TProperties> extends ExtensionResourceBase {
|
|
52
|
+
model ExtensionResource<TProperties extends {}> extends ExtensionResourceBase {
|
|
52
53
|
@doc("The resource-specific properties for this resource.")
|
|
53
54
|
@visibility("read", "create")
|
|
54
55
|
@extension("x-ms-client-flatten", true)
|
|
@@ -76,7 +77,7 @@ model ParentKeysOf<TResource> {}
|
|
|
76
77
|
* Model describing the provider namespace.
|
|
77
78
|
* @template TResource The resource provided by the namespace.
|
|
78
79
|
*/
|
|
79
|
-
model ProviderNamespace<TResource> {
|
|
80
|
+
model ProviderNamespace<TResource extends {}> {
|
|
80
81
|
@path
|
|
81
82
|
@segment("providers")
|
|
82
83
|
@assignProviderNameValue(TResource)
|
package/lib/operations.tsp
CHANGED
|
@@ -38,8 +38,8 @@ op ArmListBySubscription<TResource extends ArmResource>(
|
|
|
38
38
|
op ArmResourceListByParent<
|
|
39
39
|
TResource extends ArmResource,
|
|
40
40
|
TBaseParameters = BaseParameters<TResource>,
|
|
41
|
-
TParentName = "",
|
|
42
|
-
TParentFriendlyName = ""
|
|
41
|
+
TParentName extends string = "",
|
|
42
|
+
TParentFriendlyName extends string = ""
|
|
43
43
|
>(
|
|
44
44
|
...ResourceParentParameters<TResource, TBaseParameters>
|
|
45
45
|
): ArmResponse<ResourceListResult<TResource>> | ErrorResponse;
|
package/lib/parameters.tsp
CHANGED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import "../dist/src/private.decorators.js";
|
|
2
|
+
|
|
3
|
+
namespace Azure.ResourceManager.Private;
|
|
4
|
+
|
|
5
|
+
using TypeSpec.Reflection;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Update the ARM provider namespace for a given entity.
|
|
9
|
+
*/
|
|
10
|
+
extern dec armUpdateProviderNamespace(target: Reflection.Operation);
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @param resource Resource model
|
|
14
|
+
*/
|
|
15
|
+
extern dec assignProviderNameValue(target: ModelProperty, resource: Model);
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @param definitionName Definition name
|
|
19
|
+
* @param version Arm Version
|
|
20
|
+
* @param referenceFile Reference file
|
|
21
|
+
*/
|
|
22
|
+
extern dec armCommonDefinition(
|
|
23
|
+
target: Model,
|
|
24
|
+
definitionName?: string,
|
|
25
|
+
version?: string,
|
|
26
|
+
referenceFile?: string
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @param definitionName Definition name
|
|
31
|
+
* @param version Arm Version
|
|
32
|
+
* @param referenceFile Reference file
|
|
33
|
+
*/
|
|
34
|
+
extern dec armCommonParameter(
|
|
35
|
+
target: ModelProperty,
|
|
36
|
+
definitionName?: string,
|
|
37
|
+
version?: string,
|
|
38
|
+
referenceFile?: string
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* This decorator is used to identify ARM resource types and extract their
|
|
43
|
+
* metadata. It is *not* meant to be used directly by a spec author, it instead
|
|
44
|
+
* gets implicitly applied when the spec author defines a model type in this form:
|
|
45
|
+
*
|
|
46
|
+
* `model Server is TrackedResource<ServerProperties>;`
|
|
47
|
+
*
|
|
48
|
+
* The `TrackedResource<T>` type (and other associated base types) use the `@armResource`
|
|
49
|
+
* decorator, so it also gets applied to the type which absorbs the `TrackedResource<T>`
|
|
50
|
+
* definition by using the `is` keyword.
|
|
51
|
+
*
|
|
52
|
+
* @param properties Arm resource properties
|
|
53
|
+
*/
|
|
54
|
+
extern dec armResourceInternal(target: Model, properties: Model);
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Omit a property in the target model.
|
|
58
|
+
* @internal
|
|
59
|
+
* @param propertyName Name of the property to omit
|
|
60
|
+
*/
|
|
61
|
+
extern dec omitIfEmpty(target: Model, propertyName: string);
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @param propertyName Name of the property to omit
|
|
65
|
+
*/
|
|
66
|
+
extern dec resourceBaseParametersOf(target: Model, propertyName: Model);
|
|
67
|
+
/**
|
|
68
|
+
* @param values Values
|
|
69
|
+
*/
|
|
70
|
+
extern dec resourceParameterBaseFor(target: ModelProperty, values: unknown[]);
|