@azure-tools/typespec-azure-resource-manager 0.31.0-dev.4 → 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/{internal.d.ts → private.decorators.d.ts} +29 -9
- 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 +3 -19
- package/dist/src/resource.d.ts.map +1 -1
- package/dist/src/resource.js +6 -150
- 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 -2
- package/lib/decorators.tsp +0 -31
- package/lib/interfaces.tsp +1 -0
- package/lib/models.tsp +1 -0
- 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.map +0 -1
- package/dist/src/internal.js +0 -123
- package/dist/src/internal.js.map +0 -1
- package/lib/arm.foundations.decorators.tsp +0 -37
|
@@ -1,25 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
import { DecoratorContext, Interface, Model, ModelProperty, Operation, Program, Tuple } from "@typespec/compiler";
|
|
2
|
+
import { ArmResourceDetails } from "./resource.js";
|
|
3
|
+
export declare const namespace = "Azure.ResourceManager.Private";
|
|
4
|
+
export declare function $omitIfEmpty(context: DecoratorContext, entity: Model, propertyName: string): void;
|
|
5
|
+
export declare function $resourceBaseParametersOf(context: DecoratorContext, entity: Model, resourceType: Model): void;
|
|
6
|
+
export declare function $resourceParameterBaseFor(context: DecoratorContext, entity: ModelProperty, values: Tuple): void;
|
|
7
|
+
export declare function getResourceParameterBases(program: Program, property: ModelProperty): string[] | undefined;
|
|
8
|
+
export declare function isResourceParameterBaseFor(program: Program, property: ModelProperty, resourceBaseType: string): boolean;
|
|
3
9
|
/**
|
|
4
|
-
*
|
|
10
|
+
* Refer an model property to be a common ARM parameter
|
|
5
11
|
* @param {DecoratorContext} context DecoratorContext object
|
|
6
12
|
* @param {Type} entity Decorator target type. Must be `Model`
|
|
7
13
|
* @param {string?} definitionName Optional definition name
|
|
8
14
|
* @param {string?} version Optional version
|
|
9
15
|
* @param {string?} referenceFile Optional common file path
|
|
10
|
-
* @returns
|
|
16
|
+
* @returns void
|
|
11
17
|
*/
|
|
12
|
-
export declare function $
|
|
18
|
+
export declare function $armCommonParameter(context: DecoratorContext, entity: ModelProperty, parameterName?: string, version?: string, referenceFile?: string): void;
|
|
13
19
|
/**
|
|
14
|
-
*
|
|
20
|
+
* Using ARM common definition for a Model
|
|
15
21
|
* @param {DecoratorContext} context DecoratorContext object
|
|
16
22
|
* @param {Type} entity Decorator target type. Must be `Model`
|
|
17
23
|
* @param {string?} definitionName Optional definition name
|
|
18
24
|
* @param {string?} version Optional version
|
|
19
25
|
* @param {string?} referenceFile Optional common file path
|
|
20
|
-
* @returns void
|
|
26
|
+
* @returns {void}
|
|
21
27
|
*/
|
|
22
|
-
export declare function $
|
|
28
|
+
export declare function $armCommonDefinition(context: DecoratorContext, entity: Model, definitionName?: string, version?: string, referenceFile?: string): void;
|
|
23
29
|
/**
|
|
24
30
|
* This decorator dynamically assigns the serviceNamespace from the containing
|
|
25
31
|
* namespace to the string literal value of the path parameter to which this
|
|
@@ -41,4 +47,18 @@ export declare function $armUpdateProviderNamespace(context: DecoratorContext, e
|
|
|
41
47
|
* Check if an interface is extending the Azure.ResourceManager.Operations interface.
|
|
42
48
|
*/
|
|
43
49
|
export declare function isArmOperationsListInterface(program: Program, type: Interface): boolean;
|
|
44
|
-
|
|
50
|
+
/**
|
|
51
|
+
* This decorator is used to identify ARM resource types and extract their
|
|
52
|
+
* metadata. It is *not* meant to be used directly by a spec author, it instead
|
|
53
|
+
* gets implicitly applied when the spec author defines a model type in this form:
|
|
54
|
+
*
|
|
55
|
+
* `model Server is TrackedResource<ServerProperties>;`
|
|
56
|
+
*
|
|
57
|
+
* The `TrackedResource<T>` type (and other associated base types) use the @armResource
|
|
58
|
+
* decorator, so it also gets applied to the type which absorbs the `TrackedResource<T>`
|
|
59
|
+
* definition by using the `is` keyword.
|
|
60
|
+
*/
|
|
61
|
+
export declare function $armResourceInternal(context: DecoratorContext, resourceType: Model, propertiesType: Model): void;
|
|
62
|
+
export declare function listArmResources(program: Program): ArmResourceDetails[];
|
|
63
|
+
export declare function getArmResource(program: Program, resourceType: Model): ArmResourceDetails | undefined;
|
|
64
|
+
//# sourceMappingURL=private.decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private.decorators.d.ts","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,aAAa,EACb,SAAS,EACT,OAAO,EAEP,KAAK,EAGN,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,kBAAkB,EAKnB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,SAAS,kCAAkC,CAAC;AAEzD,wBAAgB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,QAU1F;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,KAAK,EACb,YAAY,EAAE,KAAK,QAepB;AAGD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,KAAK,QAUd;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GACtB,MAAM,EAAE,GAAG,SAAS,CAEtB;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,EACvB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAMT;AAgBD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI,CAiBN;AAMD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,KAAK,EACb,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI,CAiBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,KAAK,GAClB,IAAI,CAON;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,QAwBvF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAWvF;AAGD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,KAAK,EACnB,cAAc,EAAE,KAAK,QAiFtB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAEvE;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,KAAK,GAClB,kBAAkB,GAAG,SAAS,CAEhC"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import { $useRef } from "@azure-tools/typespec-autorest";
|
|
2
|
+
import { $visibility, getKeyName, getTypeName, } from "@typespec/compiler";
|
|
3
|
+
import { getSegment } from "@typespec/rest";
|
|
4
|
+
import { createStateSymbol, reportDiagnostic } from "./lib.js";
|
|
5
|
+
import { getArmProviderNamespace } from "./namespace.js";
|
|
6
|
+
import { getArmResourceKind, getResourceBaseType, resolveResourceBaseType, } from "./resource.js";
|
|
7
|
+
export const namespace = "Azure.ResourceManager.Private";
|
|
8
|
+
export function $omitIfEmpty(context, entity, propertyName) {
|
|
9
|
+
const modelProp = getProperty(entity, propertyName);
|
|
10
|
+
if (modelProp &&
|
|
11
|
+
modelProp.type.kind === "Model" &&
|
|
12
|
+
!hasProperty(context.program, modelProp.type)) {
|
|
13
|
+
entity.properties.delete(propertyName);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function $resourceBaseParametersOf(context, entity, resourceType) {
|
|
17
|
+
const targetResourceBaseType = getResourceBaseType(context.program, resourceType);
|
|
18
|
+
const removedProperties = [];
|
|
19
|
+
for (const [propertyName, property] of entity.properties) {
|
|
20
|
+
if (!isResourceParameterBaseForInternal(context.program, property, targetResourceBaseType))
|
|
21
|
+
removedProperties.push(propertyName);
|
|
22
|
+
}
|
|
23
|
+
for (const removedProperty of removedProperties) {
|
|
24
|
+
entity.properties.delete(removedProperty);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const parameterBaseTypesKey = createStateSymbol("parameterBaseTypesKey");
|
|
28
|
+
export function $resourceParameterBaseFor(context, entity, values) {
|
|
29
|
+
const resolvedValues = [];
|
|
30
|
+
for (const value of values.values) {
|
|
31
|
+
if (value.kind !== "EnumMember") {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
resolvedValues.push(value.name);
|
|
35
|
+
}
|
|
36
|
+
context.program.stateMap(parameterBaseTypesKey).set(entity, resolvedValues);
|
|
37
|
+
}
|
|
38
|
+
export function getResourceParameterBases(program, property) {
|
|
39
|
+
return program.stateMap(parameterBaseTypesKey).get(property);
|
|
40
|
+
}
|
|
41
|
+
export function isResourceParameterBaseFor(program, property, resourceBaseType) {
|
|
42
|
+
return isResourceParameterBaseForInternal(program, property, resolveResourceBaseType(resourceBaseType));
|
|
43
|
+
}
|
|
44
|
+
function isResourceParameterBaseForInternal(program, property, resolvedBaseType) {
|
|
45
|
+
const resourceBases = getResourceParameterBases(program, property);
|
|
46
|
+
if (resourceBases !== undefined) {
|
|
47
|
+
for (const rawType of resourceBases) {
|
|
48
|
+
if (resolveResourceBaseType(rawType) === resolvedBaseType)
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Refer an model property to be a common ARM parameter
|
|
56
|
+
* @param {DecoratorContext} context DecoratorContext object
|
|
57
|
+
* @param {Type} entity Decorator target type. Must be `Model`
|
|
58
|
+
* @param {string?} definitionName Optional definition name
|
|
59
|
+
* @param {string?} version Optional version
|
|
60
|
+
* @param {string?} referenceFile Optional common file path
|
|
61
|
+
* @returns void
|
|
62
|
+
*/
|
|
63
|
+
export function $armCommonParameter(context, entity, parameterName, version, referenceFile) {
|
|
64
|
+
// Use the name of the model type if not specified
|
|
65
|
+
if (!parameterName) {
|
|
66
|
+
parameterName = entity.name;
|
|
67
|
+
}
|
|
68
|
+
const basePath = getArmTypesPath(context.program).trim();
|
|
69
|
+
// for backward compatibility, skip if we are trying to access a non-default file and emit the type
|
|
70
|
+
if ((version || referenceFile) && basePath.endsWith(".json"))
|
|
71
|
+
return;
|
|
72
|
+
if (!version)
|
|
73
|
+
version = "v3";
|
|
74
|
+
if (!referenceFile)
|
|
75
|
+
referenceFile = "types.json";
|
|
76
|
+
const path = basePath.endsWith(".json")
|
|
77
|
+
? `${basePath}#/parameters/${parameterName}`
|
|
78
|
+
: `${basePath}/${version}/${referenceFile}#/parameters/${parameterName}`;
|
|
79
|
+
context.call($useRef, entity, path);
|
|
80
|
+
}
|
|
81
|
+
function getArmTypesPath(program) {
|
|
82
|
+
return program.getOption("arm-types-path") || "{arm-types-dir}";
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Using ARM common definition for a Model
|
|
86
|
+
* @param {DecoratorContext} context DecoratorContext object
|
|
87
|
+
* @param {Type} entity Decorator target type. Must be `Model`
|
|
88
|
+
* @param {string?} definitionName Optional definition name
|
|
89
|
+
* @param {string?} version Optional version
|
|
90
|
+
* @param {string?} referenceFile Optional common file path
|
|
91
|
+
* @returns {void}
|
|
92
|
+
*/
|
|
93
|
+
export function $armCommonDefinition(context, entity, definitionName, version, referenceFile) {
|
|
94
|
+
// Use the name of the model type if not specified
|
|
95
|
+
if (!definitionName) {
|
|
96
|
+
definitionName = entity.name;
|
|
97
|
+
}
|
|
98
|
+
const basePath = getArmTypesPath(context.program).trim();
|
|
99
|
+
// for backward compatibility, skip if we are trying to access a non-default file and emit the type
|
|
100
|
+
if ((version || referenceFile) && basePath.endsWith(".json"))
|
|
101
|
+
return;
|
|
102
|
+
if (!version)
|
|
103
|
+
version = "v3";
|
|
104
|
+
if (!referenceFile)
|
|
105
|
+
referenceFile = "types.json";
|
|
106
|
+
const path = basePath.endsWith(".json")
|
|
107
|
+
? `${basePath}#/definitions/${definitionName}`
|
|
108
|
+
: `${basePath}/${version}/${referenceFile}#/definitions/${definitionName}`;
|
|
109
|
+
context.call($useRef, entity, path);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* This decorator dynamically assigns the serviceNamespace from the containing
|
|
113
|
+
* namespace to the string literal value of the path parameter to which this
|
|
114
|
+
* decorator is applied. Its purpose is to dynamically insert the provider
|
|
115
|
+
* namespace (e.g. 'Microsoft.CodeSigning') into the path parameter list.
|
|
116
|
+
* @param {DecoratorContext} context DecoratorContext
|
|
117
|
+
* @param {Type} target Target of this decorator. Must be a string `ModelProperty`.
|
|
118
|
+
* @param {Type} resourceType Must be a `Model`.
|
|
119
|
+
*/
|
|
120
|
+
export function $assignProviderNameValue(context, target, resourceType) {
|
|
121
|
+
const { program } = context;
|
|
122
|
+
const armProviderNamespace = getArmProviderNamespace(program, resourceType);
|
|
123
|
+
if (armProviderNamespace) {
|
|
124
|
+
target.type.value = armProviderNamespace;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Update the ARM provider namespace for a given entity.
|
|
129
|
+
* @param {DecoratorContext} context DecoratorContext
|
|
130
|
+
* @param {Type} entity Entity to set namespace. Must be a `Operation`.
|
|
131
|
+
* @returns
|
|
132
|
+
*/
|
|
133
|
+
export function $armUpdateProviderNamespace(context, entity) {
|
|
134
|
+
const { program } = context;
|
|
135
|
+
const operation = entity;
|
|
136
|
+
const opInterface = operation.interface;
|
|
137
|
+
if (opInterface && opInterface.namespace) {
|
|
138
|
+
const armProviderNamespace = getArmProviderNamespace(program, opInterface.namespace);
|
|
139
|
+
if (armProviderNamespace) {
|
|
140
|
+
// Set the namespace constant on the 'provider' parameter
|
|
141
|
+
const providerParam = operation.parameters.properties.get("provider");
|
|
142
|
+
if (providerParam) {
|
|
143
|
+
if (providerParam.type.kind !== "String") {
|
|
144
|
+
reportDiagnostic(program, {
|
|
145
|
+
code: "decorator-param-wrong-type",
|
|
146
|
+
messageId: "armUpdateProviderNamespace",
|
|
147
|
+
target: providerParam,
|
|
148
|
+
});
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
providerParam.type.value = armProviderNamespace;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Check if an interface is extending the Azure.ResourceManager.Operations interface.
|
|
158
|
+
*/
|
|
159
|
+
export function isArmOperationsListInterface(program, type) {
|
|
160
|
+
if (type.name !== "Operations") {
|
|
161
|
+
return false;
|
|
162
|
+
}
|
|
163
|
+
const listOperation = type.operations.get("list");
|
|
164
|
+
if (listOperation) {
|
|
165
|
+
if (getSegment(program, listOperation) === "operations") {
|
|
166
|
+
return true;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
const armResourcesKey = createStateSymbol("armResources");
|
|
172
|
+
/**
|
|
173
|
+
* This decorator is used to identify ARM resource types and extract their
|
|
174
|
+
* metadata. It is *not* meant to be used directly by a spec author, it instead
|
|
175
|
+
* gets implicitly applied when the spec author defines a model type in this form:
|
|
176
|
+
*
|
|
177
|
+
* `model Server is TrackedResource<ServerProperties>;`
|
|
178
|
+
*
|
|
179
|
+
* The `TrackedResource<T>` type (and other associated base types) use the @armResource
|
|
180
|
+
* decorator, so it also gets applied to the type which absorbs the `TrackedResource<T>`
|
|
181
|
+
* definition by using the `is` keyword.
|
|
182
|
+
*/
|
|
183
|
+
export function $armResourceInternal(context, resourceType, propertiesType) {
|
|
184
|
+
const { program } = context;
|
|
185
|
+
if (resourceType.namespace && getTypeName(resourceType.namespace) === "Azure.ResourceManager") {
|
|
186
|
+
// The @armResource decorator will be evaluated on instantiations of
|
|
187
|
+
// base templated resource types like TrackedResource<SomeResource>,
|
|
188
|
+
// so ignore in that case.
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
// The global namespace has an empty string as name
|
|
192
|
+
if (!resourceType.namespace || resourceType.namespace.name === "") {
|
|
193
|
+
reportDiagnostic(program, {
|
|
194
|
+
code: "decorator-in-namespace",
|
|
195
|
+
format: { decoratorName: "armResource" },
|
|
196
|
+
target: resourceType,
|
|
197
|
+
});
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
// Locate the ARM namespace in the namespace hierarchy
|
|
201
|
+
const armProviderNamespace = getArmProviderNamespace(program, resourceType.namespace);
|
|
202
|
+
if (!armProviderNamespace) {
|
|
203
|
+
reportDiagnostic(program, { code: "arm-resource-missing-arm-namespace", target: resourceType });
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
// Ensure the resource type has defined a name property that has a segment
|
|
207
|
+
const nameProperty = resourceType.properties.get("name");
|
|
208
|
+
if (!nameProperty) {
|
|
209
|
+
reportDiagnostic(program, { code: "arm-resource-missing-name-property", target: resourceType });
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
// Set the name property to be read only
|
|
213
|
+
context.call($visibility, nameProperty, "read");
|
|
214
|
+
const keyName = getKeyName(program, nameProperty);
|
|
215
|
+
if (!keyName) {
|
|
216
|
+
reportDiagnostic(program, {
|
|
217
|
+
code: "arm-resource-missing-name-key-decorator",
|
|
218
|
+
target: resourceType,
|
|
219
|
+
});
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
const collectionName = getSegment(program, nameProperty);
|
|
223
|
+
if (!collectionName) {
|
|
224
|
+
reportDiagnostic(program, {
|
|
225
|
+
code: "arm-resource-missing-name-segment-decorator",
|
|
226
|
+
target: resourceType,
|
|
227
|
+
});
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
const kind = getArmResourceKind(resourceType);
|
|
231
|
+
if (!kind) {
|
|
232
|
+
reportDiagnostic(program, {
|
|
233
|
+
code: "arm-resource-invalid-base-type",
|
|
234
|
+
target: resourceType,
|
|
235
|
+
});
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
const armResourceDetails = {
|
|
239
|
+
name: resourceType.name,
|
|
240
|
+
kind,
|
|
241
|
+
typespecType: resourceType,
|
|
242
|
+
collectionName,
|
|
243
|
+
keyName,
|
|
244
|
+
armProviderNamespace: armProviderNamespace !== null && armProviderNamespace !== void 0 ? armProviderNamespace : "",
|
|
245
|
+
operations: {
|
|
246
|
+
lifecycle: {},
|
|
247
|
+
lists: {},
|
|
248
|
+
actions: {},
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
program.stateMap(armResourcesKey).set(resourceType, armResourceDetails);
|
|
252
|
+
}
|
|
253
|
+
export function listArmResources(program) {
|
|
254
|
+
return [...program.stateMap(armResourcesKey).values()];
|
|
255
|
+
}
|
|
256
|
+
export function getArmResource(program, resourceType) {
|
|
257
|
+
return program.stateMap(armResourcesKey).get(resourceType);
|
|
258
|
+
}
|
|
259
|
+
function getProperty(model, propertyName) {
|
|
260
|
+
var _a;
|
|
261
|
+
let returnProperty = (_a = model.properties) === null || _a === void 0 ? void 0 : _a.get(propertyName);
|
|
262
|
+
if (!returnProperty && model.baseModel) {
|
|
263
|
+
returnProperty = getProperty(model.baseModel, propertyName);
|
|
264
|
+
}
|
|
265
|
+
return returnProperty;
|
|
266
|
+
}
|
|
267
|
+
function hasProperty(program, model) {
|
|
268
|
+
if (model.properties.size > 0)
|
|
269
|
+
return true;
|
|
270
|
+
if (model.baseModel)
|
|
271
|
+
return hasProperty(program, model.baseModel);
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=private.decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private.decorators.js","sourceRoot":"","sources":["../../src/private.decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/src/resource.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DecoratorContext, Interface, Model,
|
|
1
|
+
import { DecoratorContext, Interface, Model, Operation, Program } from "@typespec/compiler";
|
|
2
2
|
import { ArmResourceOperations } from "./operations.js";
|
|
3
3
|
export type ArmResourceKind = "Tracked" | "Proxy" | "Extension";
|
|
4
4
|
/**
|
|
@@ -25,21 +25,9 @@ export interface ArmResourceDetails extends ArmResourceDetailsBase {
|
|
|
25
25
|
* so that operation route details are certain to be present.
|
|
26
26
|
*/
|
|
27
27
|
export declare function getArmResources(program: Program): ArmResourceDetails[];
|
|
28
|
-
export
|
|
28
|
+
export { getArmResource } from "./private.decorators.js";
|
|
29
29
|
export declare function getArmResourceInfo(program: Program, resourceType: Model): ArmResourceDetails | undefined;
|
|
30
30
|
export declare function getArmResourceKind(resourceType: Model): ArmResourceKind | undefined;
|
|
31
|
-
/**
|
|
32
|
-
* This decorator is used to identify ARM resource types and extract their
|
|
33
|
-
* metadata. It is *not* meant to be used directly by a spec author, it instead
|
|
34
|
-
* gets implicitly applied when the spec author defines a model type in this form:
|
|
35
|
-
*
|
|
36
|
-
* `model Server is TrackedResource<ServerProperties>;`
|
|
37
|
-
*
|
|
38
|
-
* The `TrackedResource<T>` type (and other associated base types) use the @armResource
|
|
39
|
-
* decorator, so it also gets applied to the type which absorbs the `TrackedResource<T>`
|
|
40
|
-
* definition by using the `is` keyword.
|
|
41
|
-
*/
|
|
42
|
-
export declare function $armResourceInternal(context: DecoratorContext, resourceType: Model, propertiesType: Model): void;
|
|
43
31
|
/**
|
|
44
32
|
* This decorator is used to identify interfaces containing resource operations.
|
|
45
33
|
* When applied, it marks the interface with the `@autoRoute` decorator so that
|
|
@@ -73,10 +61,6 @@ export declare function $locationResource(context: DecoratorContext, entity: Mod
|
|
|
73
61
|
export declare function $resourceGroupResource(context: DecoratorContext, entity: Model): void;
|
|
74
62
|
export declare function $extensionResource(context: DecoratorContext, entity: Model): void;
|
|
75
63
|
export declare function $armProviderNameValue(context: DecoratorContext, entity: Operation): void;
|
|
76
|
-
export declare function $resourceParameterBaseFor(context: DecoratorContext, entity: ModelProperty, values: Tuple): void;
|
|
77
|
-
export declare function $resourceBaseParametersOf(context: DecoratorContext, entity: Model, resourceType: Model): void;
|
|
78
|
-
export declare function $omitIfEmpty(context: DecoratorContext, entity: Model, propertyName: string): void;
|
|
79
|
-
export declare function isResourceParameterBaseFor(program: Program, property: ModelProperty, resourceBaseType: string): boolean;
|
|
80
|
-
export declare function getResourceParameterBases(program: Program, property: ModelProperty): string[] | undefined;
|
|
81
64
|
export declare function getResourceBaseType(program: Program, resource: Model): ResourceBaseType;
|
|
65
|
+
export declare function resolveResourceBaseType(type?: string | undefined): ResourceBaseType;
|
|
82
66
|
//# sourceMappingURL=resource.d.ts.map
|
|
@@ -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,87 +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 (resourceType.namespace && getTypeName(resourceType.namespace) === "Azure.ResourceManager") {
|
|
82
|
-
// The @armResource decorator will be evaluated on instantiations of
|
|
83
|
-
// base templated resource types like TrackedResource<SomeResource>,
|
|
84
|
-
// so ignore in that case.
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
// The global namespace has an empty string as name
|
|
88
|
-
if (!resourceType.namespace || resourceType.namespace.name === "") {
|
|
89
|
-
reportDiagnostic(program, {
|
|
90
|
-
code: "decorator-in-namespace",
|
|
91
|
-
format: { decoratorName: "armResource" },
|
|
92
|
-
target: resourceType,
|
|
93
|
-
});
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
// Locate the ARM namespace in the namespace hierarchy
|
|
97
|
-
const armProviderNamespace = getArmProviderNamespace(program, resourceType.namespace);
|
|
98
|
-
if (!armProviderNamespace) {
|
|
99
|
-
reportDiagnostic(program, { code: "arm-resource-missing-arm-namespace", target: resourceType });
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
// Ensure the resource type has defined a name property that has a segment
|
|
103
|
-
const nameProperty = resourceType.properties.get("name");
|
|
104
|
-
if (!nameProperty) {
|
|
105
|
-
reportDiagnostic(program, { code: "arm-resource-missing-name-property", target: resourceType });
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
// Set the name property to be read only
|
|
109
|
-
context.call($visibility, nameProperty, "read");
|
|
110
|
-
const keyName = getKeyName(program, nameProperty);
|
|
111
|
-
if (!keyName) {
|
|
112
|
-
reportDiagnostic(program, {
|
|
113
|
-
code: "arm-resource-missing-name-key-decorator",
|
|
114
|
-
target: resourceType,
|
|
115
|
-
});
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
const collectionName = getSegment(program, nameProperty);
|
|
119
|
-
if (!collectionName) {
|
|
120
|
-
reportDiagnostic(program, {
|
|
121
|
-
code: "arm-resource-missing-name-segment-decorator",
|
|
122
|
-
target: resourceType,
|
|
123
|
-
});
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
const kind = getArmResourceKind(resourceType);
|
|
127
|
-
if (!kind) {
|
|
128
|
-
reportDiagnostic(program, {
|
|
129
|
-
code: "arm-resource-invalid-base-type",
|
|
130
|
-
target: resourceType,
|
|
131
|
-
});
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
const armResourceDetails = {
|
|
135
|
-
name: resourceType.name,
|
|
136
|
-
kind,
|
|
137
|
-
typespecType: resourceType,
|
|
138
|
-
collectionName,
|
|
139
|
-
keyName,
|
|
140
|
-
armProviderNamespace: armProviderNamespace !== null && armProviderNamespace !== void 0 ? armProviderNamespace : "",
|
|
141
|
-
operations: {
|
|
142
|
-
lifecycle: {},
|
|
143
|
-
lists: {},
|
|
144
|
-
actions: {},
|
|
145
|
-
},
|
|
146
|
-
};
|
|
147
|
-
program.stateMap(armResourcesKey).set(resourceType, armResourceDetails);
|
|
148
|
-
}
|
|
149
66
|
/**
|
|
150
67
|
* This decorator is used to identify interfaces containing resource operations.
|
|
151
68
|
* When applied, it marks the interface with the `@autoRoute` decorator so that
|
|
@@ -189,7 +106,6 @@ export var ResourceBaseType;
|
|
|
189
106
|
ResourceBaseType["Extension"] = "Extension";
|
|
190
107
|
})(ResourceBaseType = ResourceBaseType || (ResourceBaseType = {}));
|
|
191
108
|
const resourceBaseTypeKey = createStateSymbol("resourceBaseTypeKey");
|
|
192
|
-
const parameterBaseTypesKey = createStateSymbol("parameterBaseTypesKey");
|
|
193
109
|
export function $tenantResource(context, entity) {
|
|
194
110
|
setResourceBaseType(context.program, entity, "Tenant");
|
|
195
111
|
}
|
|
@@ -232,51 +148,6 @@ function getServiceNamespace(program, type) {
|
|
|
232
148
|
return undefined;
|
|
233
149
|
}
|
|
234
150
|
}
|
|
235
|
-
export function $resourceParameterBaseFor(context, entity, values) {
|
|
236
|
-
const resolvedValues = [];
|
|
237
|
-
for (const value of values.values) {
|
|
238
|
-
if (value.kind !== "EnumMember") {
|
|
239
|
-
return;
|
|
240
|
-
}
|
|
241
|
-
resolvedValues.push(value.name);
|
|
242
|
-
}
|
|
243
|
-
context.program.stateMap(parameterBaseTypesKey).set(entity, resolvedValues);
|
|
244
|
-
}
|
|
245
|
-
export function $resourceBaseParametersOf(context, entity, resourceType) {
|
|
246
|
-
const targetResourceBaseType = getResourceBaseType(context.program, resourceType);
|
|
247
|
-
const removedProperties = [];
|
|
248
|
-
for (const [propertyName, property] of entity.properties) {
|
|
249
|
-
if (!isResourceParameterBaseForInternal(context.program, property, targetResourceBaseType))
|
|
250
|
-
removedProperties.push(propertyName);
|
|
251
|
-
}
|
|
252
|
-
for (const removedProperty of removedProperties) {
|
|
253
|
-
entity.properties.delete(removedProperty);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
export function $omitIfEmpty(context, entity, propertyName) {
|
|
257
|
-
const modelProp = getProperty(entity, propertyName);
|
|
258
|
-
if (modelProp &&
|
|
259
|
-
modelProp.type.kind === "Model" &&
|
|
260
|
-
!hasProperty(context.program, modelProp.type)) {
|
|
261
|
-
entity.properties.delete(propertyName);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
export function isResourceParameterBaseFor(program, property, resourceBaseType) {
|
|
265
|
-
return isResourceParameterBaseForInternal(program, property, resolveResourceBaseType(resourceBaseType));
|
|
266
|
-
}
|
|
267
|
-
function isResourceParameterBaseForInternal(program, property, resolvedBaseType) {
|
|
268
|
-
const resourceBases = getResourceParameterBases(program, property);
|
|
269
|
-
if (resourceBases !== undefined) {
|
|
270
|
-
for (const rawType of resourceBases) {
|
|
271
|
-
if (resolveResourceBaseType(rawType) === resolvedBaseType)
|
|
272
|
-
return true;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
return false;
|
|
276
|
-
}
|
|
277
|
-
export function getResourceParameterBases(program, property) {
|
|
278
|
-
return program.stateMap(parameterBaseTypesKey).get(property);
|
|
279
|
-
}
|
|
280
151
|
function setResourceBaseType(program, resource, type) {
|
|
281
152
|
if (program.stateMap(resourceBaseTypeKey).has(resource)) {
|
|
282
153
|
reportDiagnostic(program, {
|
|
@@ -299,7 +170,7 @@ export function getResourceBaseType(program, resource) {
|
|
|
299
170
|
const keyValue = program.stateMap(resourceBaseTypeKey).get(resource);
|
|
300
171
|
return resolveResourceBaseType(keyValue);
|
|
301
172
|
}
|
|
302
|
-
function resolveResourceBaseType(type) {
|
|
173
|
+
export function resolveResourceBaseType(type) {
|
|
303
174
|
let resolvedType = ResourceBaseType.ResourceGroup;
|
|
304
175
|
if (type !== undefined) {
|
|
305
176
|
switch (type) {
|
|
@@ -322,19 +193,4 @@ function resolveResourceBaseType(type) {
|
|
|
322
193
|
}
|
|
323
194
|
return resolvedType;
|
|
324
195
|
}
|
|
325
|
-
function getProperty(model, propertyName) {
|
|
326
|
-
var _a;
|
|
327
|
-
let returnProperty = (_a = model.properties) === null || _a === void 0 ? void 0 : _a.get(propertyName);
|
|
328
|
-
if (!returnProperty && model.baseModel) {
|
|
329
|
-
returnProperty = getProperty(model.baseModel, propertyName);
|
|
330
|
-
}
|
|
331
|
-
return returnProperty;
|
|
332
|
-
}
|
|
333
|
-
function hasProperty(program, model) {
|
|
334
|
-
if (model.properties.size > 0)
|
|
335
|
-
return true;
|
|
336
|
-
if (model.baseModel)
|
|
337
|
-
return hasProperty(program, model.baseModel);
|
|
338
|
-
return false;
|
|
339
|
-
}
|
|
340
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,7 +7,7 @@ import "@azure-tools/typespec-autorest";
|
|
|
8
7
|
import "@azure-tools/typespec-azure-core";
|
|
9
8
|
|
|
10
9
|
import "./arm.foundations.tsp";
|
|
11
|
-
import "./
|
|
10
|
+
import "./private.decorators.tsp";
|
|
12
11
|
import "./models.tsp";
|
|
13
12
|
import "./operations.tsp";
|
|
14
13
|
import "./decorators.tsp";
|
package/lib/decorators.tsp
CHANGED
|
@@ -141,21 +141,6 @@ extern dec armResourceDelete(target: Operation, resourceType: Model);
|
|
|
141
141
|
*/
|
|
142
142
|
extern dec armResourceList(target: Operation, resourceType: Model);
|
|
143
143
|
|
|
144
|
-
/**
|
|
145
|
-
* This decorator is used to identify ARM resource types and extract their
|
|
146
|
-
* metadata. It is *not* meant to be used directly by a spec author, it instead
|
|
147
|
-
* gets implicitly applied when the spec author defines a model type in this form:
|
|
148
|
-
*
|
|
149
|
-
* `model Server is TrackedResource<ServerProperties>;`
|
|
150
|
-
*
|
|
151
|
-
* The `TrackedResource<T>` type (and other associated base types) use the `@armResource`
|
|
152
|
-
* decorator, so it also gets applied to the type which absorbs the `TrackedResource<T>`
|
|
153
|
-
* definition by using the `is` keyword.
|
|
154
|
-
*
|
|
155
|
-
* @param properties Arm resource properties
|
|
156
|
-
*/
|
|
157
|
-
extern dec armResourceInternal(target: Model, properties: Model);
|
|
158
|
-
|
|
159
144
|
/**
|
|
160
145
|
* This decorator is used to identify interfaces containing resource operations.
|
|
161
146
|
* When applied, it marks the interface with the `@autoRoute` decorator so that
|
|
@@ -168,19 +153,3 @@ extern dec armResourceInternal(target: Model, properties: Model);
|
|
|
168
153
|
* @param _ DEPRECATED
|
|
169
154
|
*/
|
|
170
155
|
extern dec armResourceOperations(target: Interface, _?: unknown);
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Omit a property in the target model.
|
|
174
|
-
* @internal
|
|
175
|
-
* @param propertyName Name of the property to omit
|
|
176
|
-
*/
|
|
177
|
-
extern dec omitIfEmpty(target: Model, propertyName: string);
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* @param propertyName Name of the property to omit
|
|
181
|
-
*/
|
|
182
|
-
extern dec resourceBaseParametersOf(target: Model, propertyName: Model);
|
|
183
|
-
/**
|
|
184
|
-
* @param values Values
|
|
185
|
-
*/
|
|
186
|
-
extern dec resourceParameterBaseFor(target: ModelProperty, values: unknown[]);
|
package/lib/interfaces.tsp
CHANGED
package/lib/models.tsp
CHANGED
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[]);
|
package/lib/responses.tsp
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure-tools/typespec-azure-resource-manager",
|
|
3
|
-
"version": "0.31.0-dev.
|
|
3
|
+
"version": "0.31.0-dev.5",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec Azure Resource Manager library",
|
|
6
6
|
"homepage": "https://azure.github.io/typespec-azure",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,sCAAsC,CAAC;AAG7D,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,aAAa,EACb,SAAS,EACT,OAAO,EAER,MAAM,oBAAoB,CAAC;AAS5B;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,KAAK,EACb,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI,CAiBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,EACrB,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI,CAiBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,aAAa,EACrB,YAAY,EAAE,KAAK,GAClB,IAAI,CAON;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,QAwBvF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAWvF"}
|
package/dist/src/internal.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
export const namespace = "Azure.ResourceManager.Foundations";
|
|
2
|
-
import { $useRef } from "@azure-tools/typespec-autorest";
|
|
3
|
-
import { getSegment } from "@typespec/rest";
|
|
4
|
-
import { reportDiagnostic } from "./lib.js";
|
|
5
|
-
import { getArmProviderNamespace } from "./namespace.js";
|
|
6
|
-
function getArmTypesPath(program) {
|
|
7
|
-
return program.getOption("arm-types-path") || "{arm-types-dir}";
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Using ARM common definition for a Model
|
|
11
|
-
* @param {DecoratorContext} context DecoratorContext object
|
|
12
|
-
* @param {Type} entity Decorator target type. Must be `Model`
|
|
13
|
-
* @param {string?} definitionName Optional definition name
|
|
14
|
-
* @param {string?} version Optional version
|
|
15
|
-
* @param {string?} referenceFile Optional common file path
|
|
16
|
-
* @returns {void}
|
|
17
|
-
*/
|
|
18
|
-
export function $armCommonDefinition(context, entity, definitionName, version, referenceFile) {
|
|
19
|
-
// Use the name of the model type if not specified
|
|
20
|
-
if (!definitionName) {
|
|
21
|
-
definitionName = entity.name;
|
|
22
|
-
}
|
|
23
|
-
const basePath = getArmTypesPath(context.program).trim();
|
|
24
|
-
// for backward compatibility, skip if we are trying to access a non-default file and emit the type
|
|
25
|
-
if ((version || referenceFile) && basePath.endsWith(".json"))
|
|
26
|
-
return;
|
|
27
|
-
if (!version)
|
|
28
|
-
version = "v3";
|
|
29
|
-
if (!referenceFile)
|
|
30
|
-
referenceFile = "types.json";
|
|
31
|
-
const path = basePath.endsWith(".json")
|
|
32
|
-
? `${basePath}#/definitions/${definitionName}`
|
|
33
|
-
: `${basePath}/${version}/${referenceFile}#/definitions/${definitionName}`;
|
|
34
|
-
context.call($useRef, entity, path);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Refer an model property to be a common ARM parameter
|
|
38
|
-
* @param {DecoratorContext} context DecoratorContext object
|
|
39
|
-
* @param {Type} entity Decorator target type. Must be `Model`
|
|
40
|
-
* @param {string?} definitionName Optional definition name
|
|
41
|
-
* @param {string?} version Optional version
|
|
42
|
-
* @param {string?} referenceFile Optional common file path
|
|
43
|
-
* @returns void
|
|
44
|
-
*/
|
|
45
|
-
export function $armCommonParameter(context, entity, parameterName, version, referenceFile) {
|
|
46
|
-
// Use the name of the model type if not specified
|
|
47
|
-
if (!parameterName) {
|
|
48
|
-
parameterName = entity.name;
|
|
49
|
-
}
|
|
50
|
-
const basePath = getArmTypesPath(context.program).trim();
|
|
51
|
-
// for backward compatibility, skip if we are trying to access a non-default file and emit the type
|
|
52
|
-
if ((version || referenceFile) && basePath.endsWith(".json"))
|
|
53
|
-
return;
|
|
54
|
-
if (!version)
|
|
55
|
-
version = "v3";
|
|
56
|
-
if (!referenceFile)
|
|
57
|
-
referenceFile = "types.json";
|
|
58
|
-
const path = basePath.endsWith(".json")
|
|
59
|
-
? `${basePath}#/parameters/${parameterName}`
|
|
60
|
-
: `${basePath}/${version}/${referenceFile}#/parameters/${parameterName}`;
|
|
61
|
-
context.call($useRef, entity, path);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* This decorator dynamically assigns the serviceNamespace from the containing
|
|
65
|
-
* namespace to the string literal value of the path parameter to which this
|
|
66
|
-
* decorator is applied. Its purpose is to dynamically insert the provider
|
|
67
|
-
* namespace (e.g. 'Microsoft.CodeSigning') into the path parameter list.
|
|
68
|
-
* @param {DecoratorContext} context DecoratorContext
|
|
69
|
-
* @param {Type} target Target of this decorator. Must be a string `ModelProperty`.
|
|
70
|
-
* @param {Type} resourceType Must be a `Model`.
|
|
71
|
-
*/
|
|
72
|
-
export function $assignProviderNameValue(context, target, resourceType) {
|
|
73
|
-
const { program } = context;
|
|
74
|
-
const armProviderNamespace = getArmProviderNamespace(program, resourceType);
|
|
75
|
-
if (armProviderNamespace) {
|
|
76
|
-
target.type.value = armProviderNamespace;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Update the ARM provider namespace for a given entity.
|
|
81
|
-
* @param {DecoratorContext} context DecoratorContext
|
|
82
|
-
* @param {Type} entity Entity to set namespace. Must be a `Operation`.
|
|
83
|
-
* @returns
|
|
84
|
-
*/
|
|
85
|
-
export function $armUpdateProviderNamespace(context, entity) {
|
|
86
|
-
const { program } = context;
|
|
87
|
-
const operation = entity;
|
|
88
|
-
const opInterface = operation.interface;
|
|
89
|
-
if (opInterface && opInterface.namespace) {
|
|
90
|
-
const armProviderNamespace = getArmProviderNamespace(program, opInterface.namespace);
|
|
91
|
-
if (armProviderNamespace) {
|
|
92
|
-
// Set the namespace constant on the 'provider' parameter
|
|
93
|
-
const providerParam = operation.parameters.properties.get("provider");
|
|
94
|
-
if (providerParam) {
|
|
95
|
-
if (providerParam.type.kind !== "String") {
|
|
96
|
-
reportDiagnostic(program, {
|
|
97
|
-
code: "decorator-param-wrong-type",
|
|
98
|
-
messageId: "armUpdateProviderNamespace",
|
|
99
|
-
target: providerParam,
|
|
100
|
-
});
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
providerParam.type.value = armProviderNamespace;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Check if an interface is extending the Azure.ResourceManager.Operations interface.
|
|
110
|
-
*/
|
|
111
|
-
export function isArmOperationsListInterface(program, type) {
|
|
112
|
-
if (type.name !== "Operations") {
|
|
113
|
-
return false;
|
|
114
|
-
}
|
|
115
|
-
const listOperation = type.operations.get("list");
|
|
116
|
-
if (listOperation) {
|
|
117
|
-
if (getSegment(program, listOperation) === "operations") {
|
|
118
|
-
return true;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=internal.js.map
|
package/dist/src/internal.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/internal.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
namespace Azure.ResourceManager.Foundations;
|
|
2
|
-
|
|
3
|
-
using TypeSpec.Reflection;
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Update the ARM provider namespace for a given entity.
|
|
7
|
-
*/
|
|
8
|
-
extern dec armUpdateProviderNamespace(target: Reflection.Operation);
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @param resource Resource model
|
|
12
|
-
*/
|
|
13
|
-
extern dec assignProviderNameValue(target: ModelProperty, resource: Model);
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @param definitionName Definition name
|
|
17
|
-
* @param version Arm Version
|
|
18
|
-
* @param referenceFile Reference file
|
|
19
|
-
*/
|
|
20
|
-
extern dec armCommonDefinition(
|
|
21
|
-
target: Model,
|
|
22
|
-
definitionName?: string,
|
|
23
|
-
version?: string,
|
|
24
|
-
referenceFile?: string
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* @param definitionName Definition name
|
|
29
|
-
* @param version Arm Version
|
|
30
|
-
* @param referenceFile Reference file
|
|
31
|
-
*/
|
|
32
|
-
extern dec armCommonParameter(
|
|
33
|
-
target: ModelProperty,
|
|
34
|
-
definitionName?: string,
|
|
35
|
-
version?: string,
|
|
36
|
-
referenceFile?: string
|
|
37
|
-
);
|