@azure-tools/typespec-azure-resource-manager 0.62.0-dev.6 → 0.62.0-dev.8
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/generated-defs/Azure.ResourceManager.d.ts +15 -15
- package/dist/generated-defs/Azure.ResourceManager.d.ts.map +1 -1
- package/dist/src/rules/arm-resource-provisioning-state-rule.js +1 -1
- package/dist/src/rules/arm-resource-provisioning-state-rule.js.map +1 -1
- package/dist/src/rules/missing-x-ms-identifiers.d.ts.map +1 -1
- package/dist/src/rules/missing-x-ms-identifiers.js +29 -40
- package/dist/src/rules/missing-x-ms-identifiers.js.map +1 -1
- package/dist/src/rules/resource-name.js +1 -1
- package/dist/src/rules/resource-name.js.map +1 -1
- package/dist/src/rules/retry-after.js +3 -2
- package/dist/src/rules/retry-after.js.map +1 -1
- package/dist/src/tsp-index.d.ts +0 -1
- package/dist/src/tsp-index.d.ts.map +1 -1
- package/dist/src/tsp-index.js +0 -4
- package/dist/src/tsp-index.js.map +1 -1
- package/dist/src/utils.d.ts +11 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +17 -0
- package/dist/src/utils.js.map +1 -0
- package/lib/arm.tsp +3 -7
- package/lib/common-types/network-security-perimeter.tsp +3 -3
- package/lib/common-types/private-links-ref.tsp +2 -0
- package/lib/common-types/private-links.tsp +4 -5
- package/lib/foundations/arm.foundations.tsp +2 -2
- package/lib/interfaces.tsp +0 -1
- package/lib/legacy-types/resource.tsp +1 -0
- package/lib/models.tsp +3 -1
- package/lib/parameters.tsp +0 -1
- package/lib/private.decorators.tsp +1 -0
- package/lib/responses.tsp +0 -1
- package/package.json +3 -3
|
@@ -15,6 +15,20 @@ export type ArmResourceCollectionActionDecorator = (context: DecoratorContext, t
|
|
|
15
15
|
* @param resource The resource to get the type of
|
|
16
16
|
*/
|
|
17
17
|
export type ArmProviderNameValueDecorator = (context: DecoratorContext, target: Operation) => void;
|
|
18
|
+
/**
|
|
19
|
+
* This decorator is used to indicate the identifying properties of objects in the array, e.g. size
|
|
20
|
+
* The properties that are used as identifiers for the object needs to be provided as a list of strings.
|
|
21
|
+
*
|
|
22
|
+
* @param properties The list of properties that are used as identifiers for the object. This needs to be provided as a list of strings.
|
|
23
|
+
* @example
|
|
24
|
+
* ```typespec
|
|
25
|
+
* model Pet {
|
|
26
|
+
* @identifiers(#["size"])
|
|
27
|
+
* dog: Dog;
|
|
28
|
+
* }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export type IdentifiersDecorator = (context: DecoratorContext, entity: ModelProperty | Type, properties: readonly string[]) => void;
|
|
18
32
|
/**
|
|
19
33
|
* `@armProviderNamespace` sets the Azure Resource Manager provider name. It will default to use the
|
|
20
34
|
* Namespace element value unless an override value is specified.
|
|
@@ -206,23 +220,10 @@ export type ArmVirtualResourceDecorator = (context: DecoratorContext, target: Mo
|
|
|
206
220
|
* @param baseTypeIt The built-in parent of the resource, this can be "Tenant", "Subscription", "ResourceGroup", "Location", or "Extension"
|
|
207
221
|
*/
|
|
208
222
|
export type ResourceBaseTypeDecorator = (context: DecoratorContext, target: Model, baseTypeIt: Type) => void;
|
|
209
|
-
/**
|
|
210
|
-
* This decorator is used to indicate the identifying properties of objects in the array, e.g. size
|
|
211
|
-
* The properties that are used as identifiers for the object needs to be provided as a list of strings.
|
|
212
|
-
*
|
|
213
|
-
* @param properties The list of properties that are used as identifiers for the object. This needs to be provided as a list of strings.
|
|
214
|
-
* @example
|
|
215
|
-
* ```typespec
|
|
216
|
-
* model Pet {
|
|
217
|
-
* @identifiers(#["size"])
|
|
218
|
-
* dog: Dog;
|
|
219
|
-
* }
|
|
220
|
-
* ```
|
|
221
|
-
*/
|
|
222
|
-
export type IdentifiersDecorator = (context: DecoratorContext, entity: ModelProperty | Type, properties: readonly string[]) => void;
|
|
223
223
|
export type AzureResourceManagerDecorators = {
|
|
224
224
|
armResourceCollectionAction: ArmResourceCollectionActionDecorator;
|
|
225
225
|
armProviderNameValue: ArmProviderNameValueDecorator;
|
|
226
|
+
identifiers: IdentifiersDecorator;
|
|
226
227
|
armProviderNamespace: ArmProviderNamespaceDecorator;
|
|
227
228
|
useLibraryNamespace: UseLibraryNamespaceDecorator;
|
|
228
229
|
armLibraryNamespace: ArmLibraryNamespaceDecorator;
|
|
@@ -243,6 +244,5 @@ export type AzureResourceManagerDecorators = {
|
|
|
243
244
|
armCommonTypesVersion: ArmCommonTypesVersionDecorator;
|
|
244
245
|
armVirtualResource: ArmVirtualResourceDecorator;
|
|
245
246
|
resourceBaseType: ResourceBaseTypeDecorator;
|
|
246
|
-
identifiers: IdentifiersDecorator;
|
|
247
247
|
};
|
|
248
248
|
//# sourceMappingURL=Azure.ResourceManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Azure.ResourceManager.d.ts","sourceRoot":"","sources":["../../generated-defs/Azure.ResourceManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Azure.ResourceManager.d.ts","sourceRoot":"","sources":["../../generated-defs/Azure.ResourceManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRule, getProperty, paramMessage } from "@typespec/compiler";
|
|
2
2
|
import { getUnionAsEnum } from "@azure-tools/typespec-azure-core";
|
|
3
|
-
import { isReadonlyProperty } from "@typespec/openapi";
|
|
4
3
|
import { getArmResource } from "../resource.js";
|
|
4
|
+
import { isReadonlyProperty } from "../utils.js";
|
|
5
5
|
import { getSourceProperty } from "./utils.js";
|
|
6
6
|
export const armResourceProvisioningStateRule = createRule({
|
|
7
7
|
name: "arm-resource-provisioning-state",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arm-resource-provisioning-state-rule.js","sourceRoot":"","sources":["../../../src/rules/arm-resource-provisioning-state-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAExF,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"arm-resource-provisioning-state-rule.js","sourceRoot":"","sources":["../../../src/rules/arm-resource-provisioning-state-rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing-x-ms-identifiers.d.ts","sourceRoot":"","sources":["../../../src/rules/missing-x-ms-identifiers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"missing-x-ms-identifiers.d.ts","sourceRoot":"","sources":["../../../src/rules/missing-x-ms-identifiers.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,yBAAyB;;;;EAsFpC,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { createRule, getProperty, isArrayModelType, paramMessage, } from "@typespec/compiler";
|
|
2
|
-
import { getExtensions } from "@typespec/openapi";
|
|
3
2
|
import { isArmCommonType } from "../common-types.js";
|
|
4
3
|
import { getArmIdentifiers, getArmKeyIdentifiers } from "../resource.js";
|
|
5
4
|
export const missingXmsIdentifiersRule = createRule({
|
|
@@ -36,53 +35,43 @@ export const missingXmsIdentifiersRule = createRule({
|
|
|
36
35
|
if (getProperty(elementType, "id") || getProperty(elementType, "name")) {
|
|
37
36
|
return false;
|
|
38
37
|
}
|
|
39
|
-
const xmsIdentifiers = getExtensions(program, property ?? array).get("x-ms-identifiers");
|
|
40
38
|
const armIdentifiers = getArmIdentifiers(program, property);
|
|
41
39
|
const armKeyIdentifiers = getArmKeyIdentifiers(program, array);
|
|
42
|
-
const identifiers = armIdentifiers ?? armKeyIdentifiers
|
|
40
|
+
const identifiers = armIdentifiers ?? armKeyIdentifiers;
|
|
43
41
|
if (identifiers === undefined) {
|
|
44
42
|
return true;
|
|
45
43
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return false;
|
|
59
|
-
}
|
|
60
|
-
const propertyValue = getProperty(element, prop);
|
|
61
|
-
if (propertyValue === undefined) {
|
|
62
|
-
context.reportDiagnostic({
|
|
63
|
-
messageId: "missingProperty",
|
|
64
|
-
format: { propertyName: prop, targetModelName: elementType.name },
|
|
65
|
-
target: property,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
element = propertyValue?.type;
|
|
44
|
+
for (const propIdentifier of identifiers) {
|
|
45
|
+
if (typeof propIdentifier === "string") {
|
|
46
|
+
const props = propIdentifier.replace(/^\//, "").split("/");
|
|
47
|
+
let element = elementType;
|
|
48
|
+
for (const prop of props) {
|
|
49
|
+
if (element === undefined || element.kind !== "Model") {
|
|
50
|
+
context.reportDiagnostic({
|
|
51
|
+
messageId: "missingProperty",
|
|
52
|
+
format: { propertyName: prop, targetModelName: element?.name },
|
|
53
|
+
target: property,
|
|
54
|
+
});
|
|
55
|
+
return false;
|
|
69
56
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
57
|
+
const propertyValue = getProperty(element, prop);
|
|
58
|
+
if (propertyValue === undefined) {
|
|
59
|
+
context.reportDiagnostic({
|
|
60
|
+
messageId: "missingProperty",
|
|
61
|
+
format: { propertyName: prop, targetModelName: elementType.name },
|
|
62
|
+
target: property,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
element = propertyValue?.type;
|
|
77
66
|
}
|
|
78
67
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
68
|
+
else {
|
|
69
|
+
context.reportDiagnostic({
|
|
70
|
+
messageId: "notArray",
|
|
71
|
+
format: { valueType: typeof propIdentifier },
|
|
72
|
+
target: property,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
86
75
|
}
|
|
87
76
|
return false;
|
|
88
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing-x-ms-identifiers.js","sourceRoot":"","sources":["../../../src/rules/missing-x-ms-identifiers.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"missing-x-ms-identifiers.js","sourceRoot":"","sources":["../../../src/rules/missing-x-ms-identifiers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRule, getProperty, } from "@typespec/compiler";
|
|
2
2
|
import * as http from "@typespec/http";
|
|
3
|
-
import { isReadonlyProperty } from "@typespec/openapi";
|
|
4
3
|
import { getArmResources } from "../resource.js";
|
|
4
|
+
import { isReadonlyProperty } from "../utils.js";
|
|
5
5
|
/**
|
|
6
6
|
* The resource 'name' field should be marked with 'read' visibility and an @path decorator.
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-name.js","sourceRoot":"","sources":["../../../src/rules/resource-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EACV,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"resource-name.js","sourceRoot":"","sources":["../../../src/rules/resource-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EACV,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;IACzC,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,0BAA0B;IACvC,QAAQ,EAAE;QACR,OAAO,EAAE,2FAA2F;QACpG,WAAW,EAAE,8DAA8D;KAC5E;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,KAAK,EAAE,CAAC,KAAY,EAAE,EAAE;gBACtB,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;gBAEtE,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxC,OAAO,CAAC,gBAAgB,CAAC;4BACvB,SAAS,EAAE,aAAa;4BACxB,MAAM,EAAE,KAAK;yBACd,CAAC,CAAC;oBACL,CAAC;oBACD,sDAAsD;oBACtD,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACxC,IAAI,IAAI,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpC,OAAO,CAAC,gBAAgB,CAAC;4BACvB,MAAM,EAAE,IAAI;yBACb,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,SAAS,iBAAiB,CAAC,QAAuB;oBAChD,OAAO,CAAC,CACN,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;wBAC3C,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAC9C,CAAC;gBACJ,CAAC;gBAED,SAAS,sBAAsB,CAAC,IAAY;oBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;oBAClD,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createRule } from "@typespec/compiler";
|
|
2
2
|
import { getResponsesForOperation } from "@typespec/http";
|
|
3
|
-
import { getExtensions } from "@typespec/openapi";
|
|
3
|
+
// import { getExtensions } from "@typespec/openapi";
|
|
4
|
+
import { getLroMetadata } from "@azure-tools/typespec-azure-core";
|
|
4
5
|
import { isTemplatedInterfaceOperation } from "./utils.js";
|
|
5
6
|
/**
|
|
6
7
|
* verify if retry-after header appears in response body .
|
|
@@ -18,7 +19,7 @@ export const retryAfterRule = createRule({
|
|
|
18
19
|
if (isTemplatedInterfaceOperation(op)) {
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
21
|
-
const isLRO =
|
|
22
|
+
const isLRO = getLroMetadata(context.program, op) !== undefined;
|
|
22
23
|
if (isLRO && !hasRetryAfterHeader(context.program, op)) {
|
|
23
24
|
context.reportDiagnostic({
|
|
24
25
|
target: op,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry-after.js","sourceRoot":"","sources":["../../../src/rules/retry-after.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"retry-after.js","sourceRoot":"","sources":["../../../src/rules/retry-after.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,qDAAqD;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,uDAAuD;IACpE,QAAQ,EAAE;QACR,OAAO,EAAE,0MAA0M;KACpN;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,SAAS,EAAE,CAAC,EAAa,EAAE,EAAE;gBAC3B,IAAI,6BAA6B,CAAC,EAAE,CAAC,EAAE,CAAC;oBACtC,OAAO;gBACT,CAAC;gBACD,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,SAAS,CAAC;gBAChE,IAAI,KAAK,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;oBACvD,OAAO,CAAC,gBAAgB,CAAC;wBACvB,MAAM,EAAE,EAAE;qBACX,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,SAAS,mBAAmB,CAAC,OAAgB,EAAE,EAAa;IAC1D,OAAO,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAC5D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC,CACzD,CAAC;AACJ,CAAC"}
|
package/dist/src/tsp-index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsp-index.d.ts","sourceRoot":"","sources":["../../src/tsp-index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tsp-index.d.ts","sourceRoot":"","sources":["../../src/tsp-index.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/src/tsp-index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { definePackageFlags } from "@typespec/compiler";
|
|
2
1
|
import { $armCommonTypesVersion, $externalTypeRef } from "./common-types.js";
|
|
3
2
|
import { $armLibraryNamespace, $armProviderNamespace, $useLibraryNamespace } from "./namespace.js";
|
|
4
3
|
import { $armOperationRoute, $armResourceAction, $armResourceCheckExistence, $armResourceCollectionAction, $armResourceCreateOrUpdate, $armResourceDelete, $armResourceList, $armResourceRead, $armResourceUpdate, $renamePathParameter, } from "./operations.js";
|
|
@@ -39,7 +38,4 @@ export const $decorators = {
|
|
|
39
38
|
renamePathParameter: $renamePathParameter,
|
|
40
39
|
},
|
|
41
40
|
};
|
|
42
|
-
export const $flags = definePackageFlags({
|
|
43
|
-
decoratorArgMarshalling: "new",
|
|
44
|
-
});
|
|
45
41
|
//# sourceMappingURL=tsp-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsp-index.js","sourceRoot":"","sources":["../../src/tsp-index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tsp-index.js","sourceRoot":"","sources":["../../src/tsp-index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,UAAU,EACV,qBAAqB,EACrB,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,gBAAgB;AAChB,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,uBAAuB,EAAE;QACvB,2BAA2B,EAAE,4BAA4B;QACzD,oBAAoB,EAAE,qBAAqB;QAC3C,oBAAoB,EAAE,qBAAqB;QAC3C,mBAAmB,EAAE,oBAAoB;QACzC,mBAAmB,EAAE,oBAAoB;QACzC,SAAS,EAAE,UAAU;QACrB,cAAc,EAAE,eAAe;QAC/B,oBAAoB,EAAE,qBAAqB;QAC3C,gBAAgB,EAAE,iBAAiB;QACnC,qBAAqB,EAAE,sBAAsB;QAC7C,iBAAiB,EAAE,kBAAkB;QACrC,iBAAiB,EAAE,kBAAkB;QACrC,yBAAyB,EAAE,0BAA0B;QACrD,eAAe,EAAE,gBAAgB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,iBAAiB,EAAE,kBAAkB;QACrC,eAAe,EAAE,gBAAgB;QACjC,yBAAyB,EAAE,0BAA0B;QACrD,qBAAqB,EAAE,sBAAsB;QAC7C,qBAAqB,EAAE,sBAAsB;QAC7C,kBAAkB,EAAE,mBAAmB;QACvC,gBAAgB,EAAE,iBAAiB;QACnC,WAAW,EAAE,YAAY;KACe;IAC1C,8BAA8B,EAAE;QAC9B,mBAAmB,EAAE,oBAAoB;QACzC,eAAe,EAAE,gBAAgB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,eAAe,EAAE,gBAAgB;QACjC,mBAAmB,EAAE,oBAAoB;KACK;CACjD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ModelProperty, type Program } from "@typespec/compiler";
|
|
2
|
+
/**
|
|
3
|
+
* Determines if a property is read-only, which is defined as having the
|
|
4
|
+
* only the `Lifecycle.Read` modifier.
|
|
5
|
+
*
|
|
6
|
+
* If there is more than one Lifecycle visibility modifier active on the property,
|
|
7
|
+
* then the property is not read-only. For example, `@visibility(Lifecycle.Read, Lifecycle.Update)`
|
|
8
|
+
* does not designate a read-only property.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isReadonlyProperty(program: Program, property: ModelProperty): boolean;
|
|
11
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,OAAO,EACb,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,WAM3E"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { getLifecycleVisibilityEnum, getVisibilityForClass, } from "@typespec/compiler";
|
|
2
|
+
/**
|
|
3
|
+
* Determines if a property is read-only, which is defined as having the
|
|
4
|
+
* only the `Lifecycle.Read` modifier.
|
|
5
|
+
*
|
|
6
|
+
* If there is more than one Lifecycle visibility modifier active on the property,
|
|
7
|
+
* then the property is not read-only. For example, `@visibility(Lifecycle.Read, Lifecycle.Update)`
|
|
8
|
+
* does not designate a read-only property.
|
|
9
|
+
*/
|
|
10
|
+
export function isReadonlyProperty(program, property) {
|
|
11
|
+
const Lifecycle = getLifecycleVisibilityEnum(program);
|
|
12
|
+
const visibility = getVisibilityForClass(program, property, getLifecycleVisibilityEnum(program));
|
|
13
|
+
// note: multiple visibilities that include read are not handled using
|
|
14
|
+
// readonly: true, but using separate schemas.
|
|
15
|
+
return visibility.size === 1 && visibility.has(Lifecycle.members.get("Read"));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB,EAAE,QAAuB;IAC1E,MAAM,SAAS,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;IACjG,sEAAsE;IACtE,8CAA8C;IAC9C,OAAO,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,CAAC;AACjF,CAAC"}
|
package/lib/arm.tsp
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import "../dist/src/tsp-index.js";
|
|
2
|
-
import "@typespec/openapi";
|
|
3
2
|
import "@typespec/http";
|
|
4
3
|
import "@typespec/rest";
|
|
5
4
|
import "@typespec/versioning";
|
|
6
5
|
import "@azure-tools/typespec-azure-core";
|
|
7
6
|
|
|
7
|
+
// Kept for legacy reasons remove when specs are migrated
|
|
8
|
+
import "@typespec/openapi";
|
|
9
|
+
|
|
8
10
|
import "./foundations/arm.foundations.tsp";
|
|
9
11
|
import "./legacy-types/arm.legacy.tsp";
|
|
10
12
|
import "./common-types/common-types.tsp";
|
|
@@ -20,10 +22,4 @@ import "./parameters.tsp";
|
|
|
20
22
|
import "./private-endpoints.tsp";
|
|
21
23
|
import "./private-links.tsp";
|
|
22
24
|
|
|
23
|
-
using Http;
|
|
24
|
-
using Rest;
|
|
25
|
-
using Versioning;
|
|
26
|
-
using OpenAPI;
|
|
27
|
-
using Azure.ResourceManager.Foundations;
|
|
28
|
-
|
|
29
25
|
namespace Azure.ResourceManager;
|
|
@@ -157,7 +157,7 @@ model NetworkSecurityPerimeterConfigurationProperties {
|
|
|
157
157
|
|
|
158
158
|
/** List of provisioning issues, if any */
|
|
159
159
|
@visibility(Lifecycle.Read)
|
|
160
|
-
@
|
|
160
|
+
@Azure.ResourceManager.identifiers(#[])
|
|
161
161
|
provisioningIssues?: ProvisioningIssue[];
|
|
162
162
|
|
|
163
163
|
networkSecurityPerimeter?: NetworkSecurityPerimeter;
|
|
@@ -197,7 +197,7 @@ model ProvisioningIssueProperties {
|
|
|
197
197
|
|
|
198
198
|
/** Access rules that can be added to the network security profile (NSP) to remediate the issue. */
|
|
199
199
|
@visibility(Lifecycle.Read)
|
|
200
|
-
@
|
|
200
|
+
@Azure.ResourceManager.identifiers(#[])
|
|
201
201
|
suggestedAccessRules?: AccessRule[];
|
|
202
202
|
}
|
|
203
203
|
|
|
@@ -220,7 +220,7 @@ model NetworkSecurityProfile {
|
|
|
220
220
|
accessRulesVersion?: int32;
|
|
221
221
|
|
|
222
222
|
/** List of Access Rules */
|
|
223
|
-
@
|
|
223
|
+
@Azure.ResourceManager.identifiers(#["name"])
|
|
224
224
|
accessRules?: AccessRule[];
|
|
225
225
|
|
|
226
226
|
/** Current diagnostic settings version */
|
|
@@ -4,7 +4,9 @@ using Azure.ResourceManager.CommonTypes.Private;
|
|
|
4
4
|
|
|
5
5
|
namespace Azure.ResourceManager.CommonTypes;
|
|
6
6
|
|
|
7
|
+
#suppress "deprecated" "https://github.com/Azure/typespec-azure/issues/2284"
|
|
7
8
|
@@Azure.ResourceManager.Private.conditionalClientFlatten(PrivateLinkResource.properties);
|
|
9
|
+
#suppress "deprecated" "https://github.com/Azure/typespec-azure/issues/2284"
|
|
8
10
|
@@Azure.ResourceManager.Private.conditionalClientFlatten(PrivateEndpointConnection.properties);
|
|
9
11
|
|
|
10
12
|
/** The private endpoint */
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
using Http;
|
|
2
2
|
using Versioning;
|
|
3
|
-
using OpenAPI;
|
|
4
3
|
|
|
5
4
|
using Azure.Core;
|
|
6
5
|
|
|
@@ -38,7 +37,7 @@ model PrivateLinkResourceProperties {
|
|
|
38
37
|
@added(Versions.v6)
|
|
39
38
|
model PrivateLinkResourceListResult {
|
|
40
39
|
/** Array of private link resources */
|
|
41
|
-
@
|
|
40
|
+
@identifiers(#["id"])
|
|
42
41
|
@pageItems
|
|
43
42
|
value?: PrivateLinkResource[];
|
|
44
43
|
|
|
@@ -58,7 +57,7 @@ model PrivateEndpointConnection extends Resource {
|
|
|
58
57
|
@added(Versions.v6)
|
|
59
58
|
model PrivateEndpointConnectionListResult {
|
|
60
59
|
/** Array of private endpoint connections. */
|
|
61
|
-
@
|
|
60
|
+
@identifiers(#["id"])
|
|
62
61
|
@pageItems
|
|
63
62
|
value?: PrivateEndpointConnection[];
|
|
64
63
|
|
|
@@ -183,7 +182,7 @@ model PrivateLinkResourceParameter<Segment extends valueof string = "privateLink
|
|
|
183
182
|
@removed(Versions.v6)
|
|
184
183
|
model PrivateLinkResourceListResultV5 {
|
|
185
184
|
/** Array of private link resources */
|
|
186
|
-
@
|
|
185
|
+
@identifiers(#["id"])
|
|
187
186
|
@pageItems
|
|
188
187
|
value?: CommonTypes.PrivateLinkResource[];
|
|
189
188
|
}
|
|
@@ -227,7 +226,7 @@ model PrivateLinkResourceListResultV5 {
|
|
|
227
226
|
@removed(Versions.v6)
|
|
228
227
|
model PrivateEndpointConnectionListResultV5 {
|
|
229
228
|
/** Array of private endpoint connections. */
|
|
230
|
-
@
|
|
229
|
+
@identifiers(#["id"])
|
|
231
230
|
@pageItems
|
|
232
231
|
value?: CommonTypes.PrivateEndpointConnection[];
|
|
233
232
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import "@typespec/openapi";
|
|
2
1
|
import "@typespec/http";
|
|
3
2
|
import "@typespec/rest";
|
|
4
3
|
|
|
@@ -11,7 +10,6 @@ import "../private.decorators.tsp";
|
|
|
11
10
|
import "../parameters.tsp";
|
|
12
11
|
|
|
13
12
|
using Http;
|
|
14
|
-
using OpenAPI;
|
|
15
13
|
using Azure.ResourceManager.Private;
|
|
16
14
|
|
|
17
15
|
namespace Azure.ResourceManager.Foundations;
|
|
@@ -121,6 +119,7 @@ model ResourceUpdateModel<
|
|
|
121
119
|
"Name" | "name" | "properties"
|
|
122
120
|
>>> {
|
|
123
121
|
/** The resource-specific properties for this resource. */
|
|
122
|
+
#suppress "deprecated" "https://github.com/Azure/typespec-azure/issues/2284"
|
|
124
123
|
@conditionalClientFlatten
|
|
125
124
|
properties?: ResourceUpdateModelProperties<Resource, Properties>;
|
|
126
125
|
}
|
|
@@ -185,6 +184,7 @@ model ProxyResourceUpdateModel<
|
|
|
185
184
|
Resource extends Foundations.SimpleResource,
|
|
186
185
|
Properties extends TypeSpec.Reflection.Model
|
|
187
186
|
> {
|
|
187
|
+
#suppress "deprecated" "https://github.com/Azure/typespec-azure/issues/2284"
|
|
188
188
|
@conditionalClientFlatten
|
|
189
189
|
properties?: ResourceUpdateModelProperties<Resource, Properties>;
|
|
190
190
|
}
|
package/lib/interfaces.tsp
CHANGED
|
@@ -27,6 +27,7 @@ model TrackedResourceWithOptionalLocation<
|
|
|
27
27
|
Properties extends {},
|
|
28
28
|
PropertiesOptional extends valueof boolean = true
|
|
29
29
|
> extends CommonTypes.Resource {
|
|
30
|
+
#suppress "deprecated" "https://github.com/Azure/typespec-azure/issues/2284"
|
|
30
31
|
@doc("The RP-specific properties for this resource.")
|
|
31
32
|
@conditionalClientFlatten
|
|
32
33
|
@armResourcePropertiesOptionality(PropertiesOptional)
|
package/lib/models.tsp
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
using Http;
|
|
2
2
|
using Rest;
|
|
3
|
-
using OpenAPI;
|
|
4
3
|
using Azure.Core;
|
|
5
4
|
using Azure.ResourceManager.Foundations;
|
|
6
5
|
using Azure.ResourceManager.Private;
|
|
@@ -66,6 +65,7 @@ model ResourceNameParameter<
|
|
|
66
65
|
@Http.Private.includeInapplicableMetadataInPayload(false)
|
|
67
66
|
model TrackedResource<Properties extends {}, PropertiesOptional extends valueof boolean = true>
|
|
68
67
|
extends Foundations.TrackedResource {
|
|
68
|
+
#suppress "deprecated" "https://github.com/Azure/typespec-azure/issues/2284"
|
|
69
69
|
@doc("The resource-specific properties for this resource.")
|
|
70
70
|
@conditionalClientFlatten
|
|
71
71
|
@armResourcePropertiesOptionality(PropertiesOptional)
|
|
@@ -91,6 +91,7 @@ model TrackedResource<Properties extends {}, PropertiesOptional extends valueof
|
|
|
91
91
|
@Http.Private.includeInapplicableMetadataInPayload(false)
|
|
92
92
|
model ProxyResource<Properties extends {}, PropertiesOptional extends valueof boolean = true>
|
|
93
93
|
extends Foundations.ProxyResource {
|
|
94
|
+
#suppress "deprecated" "https://github.com/Azure/typespec-azure/issues/2284"
|
|
94
95
|
@doc("The resource-specific properties for this resource.")
|
|
95
96
|
@conditionalClientFlatten
|
|
96
97
|
@armResourcePropertiesOptionality(PropertiesOptional)
|
|
@@ -122,6 +123,7 @@ model ProxyResource<Properties extends {}, PropertiesOptional extends valueof bo
|
|
|
122
123
|
@Http.Private.includeInapplicableMetadataInPayload(false)
|
|
123
124
|
model ExtensionResource<Properties extends {}, PropertiesOptional extends valueof boolean = true>
|
|
124
125
|
extends Foundations.ExtensionResource {
|
|
126
|
+
#suppress "deprecated" "https://github.com/Azure/typespec-azure/issues/2284"
|
|
125
127
|
@doc("The resource-specific properties for this resource.")
|
|
126
128
|
@conditionalClientFlatten
|
|
127
129
|
@armResourcePropertiesOptionality(PropertiesOptional)
|
package/lib/parameters.tsp
CHANGED
|
@@ -101,6 +101,7 @@ extern dec azureResourceBase(target: Model);
|
|
|
101
101
|
* It will programatically enabled/disable client flattening with @flattenProperty with autorest
|
|
102
102
|
* emitter flags to maintain compatibility in swagger.
|
|
103
103
|
*/
|
|
104
|
+
#deprecated "Use @Azure.ClientGenerator.Core.Legacy.flattenProperty instead."
|
|
104
105
|
extern dec conditionalClientFlatten(target: ModelProperty);
|
|
105
106
|
|
|
106
107
|
/**
|
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.62.0-dev.
|
|
3
|
+
"version": "0.62.0-dev.8",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec Azure Resource Manager library",
|
|
6
6
|
"homepage": "https://azure.github.io/typespec-azure",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"@azure-tools/typespec-azure-core": "^0.61.0 || >=0.62.0-dev <0.62.0",
|
|
51
51
|
"@typespec/compiler": "^1.5.0",
|
|
52
52
|
"@typespec/http": "^1.5.0",
|
|
53
|
-
"@typespec/openapi": "^1.5.0",
|
|
54
53
|
"@typespec/rest": "^0.75.0 || >=0.76.0-dev <0.76.0",
|
|
54
|
+
"@typespec/openapi": "^1.5.0",
|
|
55
55
|
"@typespec/versioning": "^0.75.0 || >=0.76.0-dev <0.76.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
"@typespec/compiler": "^1.5.0",
|
|
62
62
|
"@typespec/http": "^1.5.0",
|
|
63
63
|
"@typespec/library-linter": "^0.75.0 || >=0.76.0-dev <0.76.0",
|
|
64
|
-
"@typespec/openapi": "^1.5.0",
|
|
65
64
|
"@typespec/rest": "^0.75.0 || >=0.76.0-dev <0.76.0",
|
|
66
65
|
"@typespec/tspd": "^0.73.0 || >=0.74.0-dev <0.74.0",
|
|
67
66
|
"@typespec/versioning": "^0.75.0 || >=0.76.0-dev <0.76.0",
|
|
67
|
+
"@typespec/openapi": "^1.5.0",
|
|
68
68
|
"@vitest/coverage-v8": "^4.0.4",
|
|
69
69
|
"@vitest/ui": "^4.0.4",
|
|
70
70
|
"c8": "^10.1.3",
|