@azure-tools/typespec-azure-resource-manager 0.48.0-dev.2 → 0.48.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/README.md CHANGED
@@ -47,7 +47,7 @@ Available ruleSets:
47
47
  | `@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation` | Check for resources that must have a delete operation. |
48
48
  | `@azure-tools/typespec-azure-resource-manager/empty-updateable-properties` | Should have updateable properties. |
49
49
  | `@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator` | Each resource interface must have an @armResourceOperations decorator. |
50
- | `@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb` | Actions must be HTTP Post operations. |
50
+ | [`@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-action-verb) | Actions must be HTTP Post or Get operations. |
51
51
  | `@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation` | Tenant and Extension resources should not define a list by subscription operation. |
52
52
  | [`@azure-tools/typespec-azure-resource-manager/lro-location-header`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/lro-location-header) | A 202 response should include a Location response header. |
53
53
  | [`@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/missing-x-ms-identifiers) | Array properties should describe their identifying properties with x-ms-identifiers. Decorate the property with @OpenAPI.extension("x-ms-identifiers", [id-prop]) where "id-prop" is a list of the names of identifying properties in the item type. |
@@ -7,7 +7,7 @@ import { armPutResponseCodesRule } from "./rules/arm-put-response-codes.js";
7
7
  import { armResourceActionNoSegmentRule } from "./rules/arm-resource-action-no-segment.js";
8
8
  import { armResourceDuplicatePropertiesRule } from "./rules/arm-resource-duplicate-property.js";
9
9
  import { interfacesRule } from "./rules/arm-resource-interfaces.js";
10
- import { invalidActionVerbRule } from "./rules/arm-resource-invalid-action-verb.js";
10
+ import { armResourceInvalidActionVerbRule } from "./rules/arm-resource-invalid-action-verb.js";
11
11
  import { armResourceEnvelopeProperties } from "./rules/arm-resource-invalid-envelope-property.js";
12
12
  import { armResourceInvalidVersionFormatRule } from "./rules/arm-resource-invalid-version-format.js";
13
13
  import { armResourceKeyInvalidCharsRule } from "./rules/arm-resource-key-invalid-chars.js";
@@ -50,7 +50,7 @@ const rules = [
50
50
  deleteOperationMissingRule,
51
51
  envelopePropertiesRules,
52
52
  interfacesRule,
53
- invalidActionVerbRule,
53
+ armResourceInvalidActionVerbRule,
54
54
  listBySubscriptionRule,
55
55
  lroLocationHeaderRule,
56
56
  missingXmsIdentifiersRule,
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,kCAAkC,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAClG,OAAO,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AACrG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,gCAAgC,EAAE,MAAM,iDAAiD,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,KAAK,GAAG;IACZ,eAAe;IACf,yBAAyB;IACzB,0BAA0B;IAC1B,uBAAuB;IACvB,wBAAwB;IACxB,8BAA8B;IAC9B,kCAAkC;IAClC,6BAA6B;IAC7B,mCAAmC;IACnC,8BAA8B;IAC9B,0BAA0B;IAC1B,yBAAyB;IACzB,+BAA+B;IAC/B,gCAAgC;IAChC,iBAAiB;IACjB,kBAAkB;IAClB,0BAA0B;IAC1B,uBAAuB;IACvB,cAAc;IACd,qBAAqB;IACrB,sBAAsB;IACtB,qBAAqB;IACrB,yBAAyB;IACzB,kBAAkB;IAClB,8BAA8B;IAC9B,4BAA4B;IAC5B,mBAAmB;IACnB,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,YAAY;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;IAClC,KAAK;CACN,CAAC,CAAC"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,kCAAkC,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;AAClG,OAAO,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AACrG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAAE,gCAAgC,EAAE,MAAM,iDAAiD,CAAC;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,KAAK,GAAG;IACZ,eAAe;IACf,yBAAyB;IACzB,0BAA0B;IAC1B,uBAAuB;IACvB,wBAAwB;IACxB,8BAA8B;IAC9B,kCAAkC;IAClC,6BAA6B;IAC7B,mCAAmC;IACnC,8BAA8B;IAC9B,0BAA0B;IAC1B,yBAAyB;IACzB,+BAA+B;IAC/B,gCAAgC;IAChC,iBAAiB;IACjB,kBAAkB;IAClB,0BAA0B;IAC1B,uBAAuB;IACvB,cAAc;IACd,gCAAgC;IAChC,sBAAsB;IACtB,qBAAqB;IACrB,yBAAyB;IACzB,kBAAkB;IAClB,8BAA8B;IAC9B,4BAA4B;IAC5B,mBAAmB;IACnB,gBAAgB;IAChB,cAAc;IACd,mBAAmB;IACnB,YAAY;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;IAClC,KAAK;CACN,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const invalidActionVerbRule: import("@typespec/compiler").LinterRuleDefinition<"arm-resource-invalid-action-verb", {
2
- readonly default: "Actions must be HTTP Post operations.";
1
+ export declare const armResourceInvalidActionVerbRule: import("@typespec/compiler").LinterRuleDefinition<"arm-resource-invalid-action-verb", {
2
+ readonly default: "Actions must be HTTP Post or Get operations.";
3
3
  }>;
4
4
  //# sourceMappingURL=arm-resource-invalid-action-verb.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arm-resource-invalid-action-verb.d.ts","sourceRoot":"","sources":["../../../src/rules/arm-resource-invalid-action-verb.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,qBAAqB;;EAyBhC,CAAC"}
1
+ {"version":3,"file":"arm-resource-invalid-action-verb.d.ts","sourceRoot":"","sources":["../../../src/rules/arm-resource-invalid-action-verb.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,gCAAgC;;EAuB3C,CAAC"}
@@ -1,22 +1,22 @@
1
1
  import { createRule } from "@typespec/compiler";
2
2
  import { getOperationVerb } from "@typespec/http";
3
3
  import { getActionDetails } from "@typespec/rest";
4
- import { isInternalTypeSpec, isSourceOperationResourceManagerInternal } from "./utils.js";
5
- export const invalidActionVerbRule = createRule({
4
+ import { isSourceOperationResourceManagerInternal } from "./utils.js";
5
+ export const armResourceInvalidActionVerbRule = createRule({
6
6
  name: "arm-resource-invalid-action-verb",
7
7
  severity: "warning",
8
- description: "Actions must be HTTP Post operations.",
8
+ description: "Actions must be HTTP Post or Get operations.",
9
+ url: "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-invalid-action-verb",
9
10
  messages: {
10
- default: "Actions must be HTTP Post operations.",
11
+ default: "Actions must be HTTP Post or Get operations.",
11
12
  },
12
13
  create(context) {
13
14
  return {
14
15
  operation: (operation) => {
15
- if (!isInternalTypeSpec(context.program, operation) &&
16
- !isSourceOperationResourceManagerInternal(operation)) {
16
+ if (!isSourceOperationResourceManagerInternal(operation)) {
17
17
  const actionType = getActionDetails(context.program, operation);
18
18
  const verb = getOperationVerb(context.program, operation);
19
- if (actionType !== undefined && verb !== "post") {
19
+ if (actionType !== undefined && verb !== "post" && verb !== "get") {
20
20
  context.reportDiagnostic({
21
21
  target: operation,
22
22
  });
@@ -1 +1 @@
1
- {"version":3,"file":"arm-resource-invalid-action-verb.js","sourceRoot":"","sources":["../../../src/rules/arm-resource-invalid-action-verb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,wCAAwC,EAAE,MAAM,YAAY,CAAC;AAE1F,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;IAC9C,IAAI,EAAE,kCAAkC;IACxC,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,uCAAuC;IACpD,QAAQ,EAAE;QACR,OAAO,EAAE,uCAAuC;KACjD;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,SAAS,EAAE,CAAC,SAAoB,EAAE,EAAE;gBAClC,IACE,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC;oBAC/C,CAAC,wCAAwC,CAAC,SAAS,CAAC,EACpD,CAAC;oBACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAChE,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC1D,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;wBAChD,OAAO,CAAC,gBAAgB,CAAC;4BACvB,MAAM,EAAE,SAAS;yBAClB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"arm-resource-invalid-action-verb.js","sourceRoot":"","sources":["../../../src/rules/arm-resource-invalid-action-verb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,wCAAwC,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,CAAC,MAAM,gCAAgC,GAAG,UAAU,CAAC;IACzD,IAAI,EAAE,kCAAkC;IACxC,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,8CAA8C;IAC3D,GAAG,EAAE,qHAAqH;IAC1H,QAAQ,EAAE;QACR,OAAO,EAAE,8CAA8C;KACxD;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,SAAS,EAAE,CAAC,SAAoB,EAAE,EAAE;gBAClC,IAAI,CAAC,wCAAwC,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAChE,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBAC1D,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;wBAClE,OAAO,CAAC,gBAAgB,CAAC;4BACvB,MAAM,EAAE,SAAS;yBAClB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1 +1 @@
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;;;;EA4EpC,CAAC"}
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"}
@@ -40,20 +40,29 @@ export const missingXmsIdentifiersRule = createRule({
40
40
  return true;
41
41
  }
42
42
  if (Array.isArray(xmsIdentifiers)) {
43
- for (const prop of xmsIdentifiers) {
44
- if (typeof prop === "string") {
45
- if (getProperty(elementType, prop) === undefined) {
46
- context.reportDiagnostic({
47
- messageId: "missingProperty",
48
- format: { propertyName: prop, targetModelName: elementType.name },
49
- target: property,
50
- });
43
+ for (const propIdentifier of xmsIdentifiers) {
44
+ if (typeof propIdentifier === "string") {
45
+ const props = propIdentifier.replace(/^\//, "").split("/");
46
+ let element = elementType;
47
+ for (const prop of props) {
48
+ const propertyValue = getProperty(element, prop);
49
+ if (propertyValue === undefined) {
50
+ context.reportDiagnostic({
51
+ messageId: "missingProperty",
52
+ format: { propertyName: prop, targetModelName: elementType.name },
53
+ target: property,
54
+ });
55
+ }
56
+ const propertyType = propertyValue?.type;
57
+ if (propertyType !== undefined && propertyType.kind === "Model") {
58
+ element = propertyType;
59
+ }
51
60
  }
52
61
  }
53
62
  else {
54
63
  context.reportDiagnostic({
55
64
  messageId: "notArray",
56
- format: { valueType: typeof prop },
65
+ format: { valueType: typeof propIdentifier },
57
66
  target: property,
58
67
  });
59
68
  }
@@ -1 +1 @@
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
+ {"version":3,"file":"missing-x-ms-identifiers.js","sourceRoot":"","sources":["../../../src/rules/missing-x-ms-identifiers.ts"],"names":[],"mappings":"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"}
package/lib/models.tsp CHANGED
@@ -376,4 +376,19 @@ model EncryptionProperty {
376
376
  encryption: EncryptionConfiguration;
377
377
  }
378
378
 
379
+ /**
380
+ * Model representing the standard `zones` envelope property for a resource.
381
+ * Spread this model into a resource Model if the resource supports ARM `zones`.
382
+ * @example
383
+ * ```typescript
384
+ * model Foo is TrackedResource<FooProperties> {
385
+ * ...AvailabilityZonesProperty;
386
+ * }
387
+ * ```
388
+ */
389
+ model AvailabilityZonesProperty {
390
+ /** The availability zones. */
391
+ zones?: string[];
392
+ }
393
+
379
394
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@azure-tools/typespec-azure-resource-manager",
3
- "version": "0.48.0-dev.2",
3
+ "version": "0.48.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",