@azure-tools/typespec-azure-resource-manager 0.68.0-dev.8 → 0.68.0

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.
Files changed (30) hide show
  1. package/README.md +2 -0
  2. package/dist/src/linter.d.ts.map +1 -1
  3. package/dist/src/linter.js +4 -0
  4. package/dist/src/linter.js.map +1 -1
  5. package/dist/src/rules/arm-no-path-casing-conflicts.d.ts +7 -0
  6. package/dist/src/rules/arm-no-path-casing-conflicts.d.ts.map +1 -0
  7. package/dist/src/rules/arm-no-path-casing-conflicts.js +74 -0
  8. package/dist/src/rules/arm-no-path-casing-conflicts.js.map +1 -0
  9. package/dist/src/rules/version-progression.d.ts +13 -0
  10. package/dist/src/rules/version-progression.d.ts.map +1 -0
  11. package/dist/src/rules/version-progression.js +68 -0
  12. package/dist/src/rules/version-progression.js.map +1 -0
  13. package/lib/common-types/common-types.tsp +0 -1
  14. package/lib/common-types/customer-managed-keys-ref.tsp +12 -6
  15. package/lib/common-types/managed-identity-ref.tsp +46 -23
  16. package/lib/common-types/managed-identity-with-delegation-ref.tsp +12 -6
  17. package/lib/common-types/mobo-ref.tsp +8 -4
  18. package/lib/common-types/network-security-perimeter-ref.tsp +64 -32
  19. package/lib/common-types/nsp-operations.tsp +2 -2
  20. package/lib/common-types/private-links-ref.tsp +89 -45
  21. package/lib/common-types/types-ref.tsp +182 -91
  22. package/lib/extension/operations.tsp +23 -23
  23. package/lib/foundations/arm.foundations.tsp +3 -4
  24. package/lib/legacy-types/extension-operations.tsp +12 -13
  25. package/lib/legacy-types/extension.tsp +12 -13
  26. package/lib/legacy-types/operations.tsp +27 -27
  27. package/lib/legacy-types/private-endpoints.tsp +10 -10
  28. package/lib/operations.tsp +25 -26
  29. package/lib/private-endpoints.tsp +12 -13
  30. package/package.json +16 -16
package/README.md CHANGED
@@ -29,6 +29,7 @@ Available ruleSets:
29
29
  | Name | Description |
30
30
  | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
31
31
  | [`@azure-tools/typespec-azure-resource-manager/arm-no-record`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-record) | Don't use Record types for ARM resources. |
32
+ | [`@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-path-casing-conflicts) | Operation paths must be unique when compared case-insensitively. |
32
33
  | [`@azure-tools/typespec-azure-resource-manager/arm-common-types-version`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-common-types-version) | Specify the ARM common-types version using @armCommonTypesVersion. |
33
34
  | [`@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/delete-operation-response-codes) | Ensure delete operations have the appropriate status codes. |
34
35
  | [`@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/put-operation-response-codes) | Ensure put operations have the appropriate status codes. |
@@ -42,6 +43,7 @@ Available ruleSets:
42
43
  | [`@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-operation-response) | [RPC 008]: PUT, GET, PATCH & LIST must return the same resource schema. |
43
44
  | [`@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-path-segment-invalid-chars) | Arm resource name must contain only alphanumeric characters. |
44
45
  | [`@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-resource-provisioning-state) | Check for properly configured provisioningState property. |
46
+ | [`@azure-tools/typespec-azure-resource-manager/version-progression`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/version-progression) | Validate that ARM service versions all use unique dates and are declared in strictly increasing chronological order. |
45
47
  | [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-no-key) | Validate that custom resource contains a key property. |
46
48
  | [`@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-custom-resource-usage-discourage) | Verify the usage of @customAzureResource decorator. |
47
49
  | [`@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels`](https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/beyond-nesting-levels) | Tracked Resources must use 3 or fewer levels of nesting. |
@@ -1 +1 @@
1
- {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AAyEA,eAAO,MAAM,OAAO,+CAElB,CAAC"}
1
+ {"version":3,"file":"linter.d.ts","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"AA6EA,eAAO,MAAM,OAAO,+CAElB,CAAC"}
@@ -3,6 +3,7 @@ import { armCommonTypesVersionRule } from "./rules/arm-common-types-version.js";
3
3
  import { armCustomResourceNoKey } from "./rules/arm-custom-resource-no-key.js";
4
4
  import { armCustomResourceUsageDiscourage } from "./rules/arm-custom-resource-usage-discourage.js";
5
5
  import { armDeleteResponseCodesRule } from "./rules/arm-delete-response-codes.js";
6
+ import { armNoPathCasingConflictsRule } from "./rules/arm-no-path-casing-conflicts.js";
6
7
  import { armNoRecordRule } from "./rules/arm-no-record.js";
7
8
  import { armPostResponseCodesRule } from "./rules/arm-post-response-codes.js";
8
9
  import { armPutResponseCodesRule } from "./rules/arm-put-response-codes.js";
@@ -33,8 +34,10 @@ import { resourceNameRule } from "./rules/resource-name.js";
33
34
  import { retryAfterRule } from "./rules/retry-after.js";
34
35
  import { secretProprule } from "./rules/secret-prop.js";
35
36
  import { unsupportedTypeRule } from "./rules/unsupported-type.js";
37
+ import { versionProgressionRule } from "./rules/version-progression.js";
36
38
  const rules = [
37
39
  armNoRecordRule,
40
+ armNoPathCasingConflictsRule,
38
41
  armCommonTypesVersionRule,
39
42
  armDeleteResponseCodesRule,
40
43
  armPutResponseCodesRule,
@@ -48,6 +51,7 @@ const rules = [
48
51
  armResourceOperationsRule,
49
52
  armResourcePathInvalidCharsRule,
50
53
  armResourceProvisioningStateRule,
54
+ versionProgressionRule,
51
55
  armCustomResourceNoKey,
52
56
  armCustomResourceUsageDiscourage,
53
57
  beyondNestingRule,
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../../src/linter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * No two ARM operation paths may differ only by casing.
3
+ */
4
+ export declare const armNoPathCasingConflictsRule: import("@typespec/compiler").LinterRuleDefinition<"arm-no-path-casing-conflicts", {
5
+ readonly default: import("@typespec/compiler").CallableMessage<["pathA", "pathB"]>;
6
+ }, Record<string, never>>;
7
+ //# sourceMappingURL=arm-no-path-casing-conflicts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arm-no-path-casing-conflicts.d.ts","sourceRoot":"","sources":["../../../src/rules/arm-no-path-casing-conflicts.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,eAAO,MAAM,4BAA4B;;yBA0DvC,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { createRule, getSourceLocation, paramMessage, } from "@typespec/compiler";
2
+ import { getAllHttpServices } from "@typespec/http";
3
+ import { isInternalTypeSpec } from "./utils.js";
4
+ /**
5
+ * No two ARM operation paths may differ only by casing.
6
+ */
7
+ export const armNoPathCasingConflictsRule = createRule({
8
+ name: "arm-no-path-casing-conflicts",
9
+ severity: "warning",
10
+ description: "Operation paths must be unique when compared case-insensitively.",
11
+ url: "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/arm-no-path-casing-conflicts",
12
+ messages: {
13
+ default: paramMessage `Operation path '${"pathA"}' differs from operation path '${"pathB"}' only by character casing. Each ARM operation path must be unique when compared case-insensitively.`,
14
+ },
15
+ create(context) {
16
+ return {
17
+ root: (program) => {
18
+ const [services] = getAllHttpServices(program);
19
+ // Bucket eligible operations by lowercased path. Path parameter names
20
+ // are part of the comparison: `/{scope}/...` and `/{resourceUri}/...`
21
+ // are in different buckets, while `/{scope}/...` and `/{Scope}/...`
22
+ // share a bucket.
23
+ const buckets = new Map();
24
+ for (const service of services) {
25
+ for (const op of service.operations) {
26
+ if (op.operation.namespace && isInternalTypeSpec(program, op.operation.namespace)) {
27
+ continue;
28
+ }
29
+ const key = op.path.toLowerCase();
30
+ let bucket = buckets.get(key);
31
+ if (bucket === undefined) {
32
+ bucket = [];
33
+ buckets.set(key, bucket);
34
+ }
35
+ bucket.push({ path: op.path, operation: op.operation });
36
+ }
37
+ }
38
+ for (const bucket of buckets.values()) {
39
+ if (bucket.length < 2)
40
+ continue;
41
+ // Skip buckets where every path string is identical — exact
42
+ // duplicates are handled by `@route`.
43
+ const distinctSpellings = new Set(bucket.map((o) => o.path));
44
+ if (distinctSpellings.size < 2)
45
+ continue;
46
+ // Sort deterministically by source location for stable diagnostics.
47
+ const sorted = [...bucket].sort((a, b) => compareBySource(a.operation, b.operation));
48
+ const firstPath = sorted[0].path;
49
+ for (let i = 1; i < sorted.length; i++) {
50
+ const op = sorted[i];
51
+ if (op.path === firstPath)
52
+ continue;
53
+ context.reportDiagnostic({
54
+ format: { pathA: op.path, pathB: firstPath },
55
+ target: op.operation,
56
+ });
57
+ }
58
+ }
59
+ },
60
+ };
61
+ },
62
+ });
63
+ function compareBySource(a, b) {
64
+ const sa = getSourceLocation(a);
65
+ const sb = getSourceLocation(b);
66
+ const fa = sa?.file?.path ?? "";
67
+ const fb = sb?.file?.path ?? "";
68
+ if (fa !== fb)
69
+ return fa < fb ? -1 : 1;
70
+ const pa = sa?.pos ?? 0;
71
+ const pb = sb?.pos ?? 0;
72
+ return pa - pb;
73
+ }
74
+ //# sourceMappingURL=arm-no-path-casing-conflicts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arm-no-path-casing-conflicts.js","sourceRoot":"","sources":["../../../src/rules/arm-no-path-casing-conflicts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Validates that the versions declared on an ARM service namespace use a
3
+ * unique date and are listed in strictly increasing chronological order. Two
4
+ * api-versions sharing the same date (for example, `2026-04-28` and
5
+ * `2026-04-28-preview`) are not allowed — every version's `YYYY-MM-DD` date
6
+ * must be different from every other version's date in the same `Versions`
7
+ * enum.
8
+ */
9
+ export declare const versionProgressionRule: import("@typespec/compiler").LinterRuleDefinition<"version-progression", {
10
+ readonly notMonotonic: import("@typespec/compiler").CallableMessage<["version", "previous"]>;
11
+ readonly duplicateDate: import("@typespec/compiler").CallableMessage<["version", "previous"]>;
12
+ }, Record<string, never>>;
13
+ //# sourceMappingURL=version-progression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-progression.d.ts","sourceRoot":"","sources":["../../../src/rules/version-progression.ts"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB;;;yBA6CjC,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { createRule, paramMessage } from "@typespec/compiler";
2
+ import { getVersion } from "@typespec/versioning";
3
+ /**
4
+ * Parse a version string of the form "YYYY-MM-DD[-suffix[.N]]" and return its
5
+ * date component. Returns undefined if the string does not match the expected
6
+ * format (the `arm-resource-invalid-version-format` rule is responsible for
7
+ * reporting that).
8
+ */
9
+ function parseVersionDate(value) {
10
+ const match = value.match(/^(\d{4}-\d{2}-\d{2})(?:-[A-Za-z]+(?:\.\d+)?)?$/);
11
+ return match ? match[1] : undefined;
12
+ }
13
+ /**
14
+ * Validates that the versions declared on an ARM service namespace use a
15
+ * unique date and are listed in strictly increasing chronological order. Two
16
+ * api-versions sharing the same date (for example, `2026-04-28` and
17
+ * `2026-04-28-preview`) are not allowed — every version's `YYYY-MM-DD` date
18
+ * must be different from every other version's date in the same `Versions`
19
+ * enum.
20
+ */
21
+ export const versionProgressionRule = createRule({
22
+ name: "version-progression",
23
+ severity: "warning",
24
+ description: "Validate that ARM service versions all use unique dates and are declared in strictly increasing chronological order.",
25
+ url: "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/rules/version-progression",
26
+ messages: {
27
+ notMonotonic: paramMessage `Version '${"version"}' is declared after '${"previous"}' but is not chronologically later. ARM versions must be declared in strictly increasing chronological order by date.`,
28
+ duplicateDate: paramMessage `Version '${"version"}' has the same date as '${"previous"}'. Every ARM api-version must use a unique date — preview and stable versions cannot share the same 'YYYY-MM-DD'.`,
29
+ },
30
+ create(context) {
31
+ return {
32
+ namespace: (namespace) => {
33
+ const map = getVersion(context.program, namespace);
34
+ if (map === undefined)
35
+ return;
36
+ const parsed = [];
37
+ for (const version of map.getVersions()) {
38
+ const value = version.enumMember.value ?? version.enumMember.name;
39
+ if (typeof value !== "string")
40
+ continue;
41
+ const date = parseVersionDate(value);
42
+ if (date === undefined)
43
+ continue;
44
+ parsed.push({ enumMember: version.enumMember, raw: value, date });
45
+ }
46
+ for (let i = 1; i < parsed.length; i++) {
47
+ const current = parsed[i];
48
+ const previous = parsed[i - 1];
49
+ if (current.date === previous.date) {
50
+ context.reportDiagnostic({
51
+ messageId: "duplicateDate",
52
+ format: { version: current.raw, previous: previous.raw },
53
+ target: current.enumMember,
54
+ });
55
+ }
56
+ else if (current.date < previous.date) {
57
+ context.reportDiagnostic({
58
+ messageId: "notMonotonic",
59
+ format: { version: current.raw, previous: previous.raw },
60
+ target: current.enumMember,
61
+ });
62
+ }
63
+ }
64
+ },
65
+ };
66
+ },
67
+ });
68
+ //# sourceMappingURL=version-progression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-progression.js","sourceRoot":"","sources":["../../../src/rules/version-progression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAQlD;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;IAC/C,IAAI,EAAE,qBAAqB;IAC3B,QAAQ,EAAE,SAAS;IACnB,WAAW,EACT,sHAAsH;IACxH,GAAG,EAAE,wGAAwG;IAC7G,QAAQ,EAAE;QACR,YAAY,EAAE,YAAY,CAAA,YAAY,SAAS,wBAAwB,UAAU,uHAAuH;QACxM,aAAa,EAAE,YAAY,CAAA,YAAY,SAAS,2BAA2B,UAAU,mHAAmH;KACzM;IACD,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,SAAS,EAAE,CAAC,SAAoB,EAAE,EAAE;gBAClC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACnD,IAAI,GAAG,KAAK,SAAS;oBAAE,OAAO;gBAE9B,MAAM,MAAM,GAAoB,EAAE,CAAC;gBACnC,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxC,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;oBAClE,IAAI,OAAO,KAAK,KAAK,QAAQ;wBAAE,SAAS;oBACxC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBACrC,IAAI,IAAI,KAAK,SAAS;wBAAE,SAAS;oBACjC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpE,CAAC;gBAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACnC,OAAO,CAAC,gBAAgB,CAAC;4BACvB,SAAS,EAAE,eAAe;4BAC1B,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE;4BACxD,MAAM,EAAE,OAAO,CAAC,UAAU;yBAC3B,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACxC,OAAO,CAAC,gBAAgB,CAAC;4BACvB,SAAS,EAAE,cAAc;4BACzB,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE;4BACxD,MAAM,EAAE,OAAO,CAAC,UAAU;yBAC3B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import "@typespec/versioning";
2
2
  import "@azure-tools/typespec-azure-core";
3
- import "./common-types.tsp";
4
3
  import "./types-ref.tsp";
5
4
  import "./managed-identity-ref.tsp";
6
5
  import "./managed-identity-with-delegation-ref.tsp";
@@ -4,33 +4,39 @@ using Azure.ResourceManager.CommonTypes.Private;
4
4
 
5
5
  namespace Azure.ResourceManager.CommonTypes;
6
6
 
7
- @@armCommonDefinition(Encryption,
7
+ @@armCommonDefinition(
8
+ Encryption,
8
9
  "encryption",
9
10
  #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true },
10
11
  "customermanagedkeys.json"
11
12
  );
12
- @@armCommonDefinition(Encryption,
13
+ @@armCommonDefinition(
14
+ Encryption,
13
15
  "encryption",
14
16
  Azure.ResourceManager.CommonTypes.Versions.v5,
15
17
  "customermanagedkeys.json"
16
18
  );
17
- @@armCommonDefinition(Encryption,
19
+ @@armCommonDefinition(
20
+ Encryption,
18
21
  "encryption",
19
22
  Azure.ResourceManager.CommonTypes.Versions.v6,
20
23
  "customermanagedkeys.json"
21
24
  );
22
25
 
23
- @@armCommonDefinition(CustomerManagedKeyEncryption,
26
+ @@armCommonDefinition(
27
+ CustomerManagedKeyEncryption,
24
28
  "customerManagedKeyEncryption",
25
29
  #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true },
26
30
  "customermanagedkeys.json"
27
31
  );
28
- @@armCommonDefinition(CustomerManagedKeyEncryption,
32
+ @@armCommonDefinition(
33
+ CustomerManagedKeyEncryption,
29
34
  "customerManagedKeyEncryption",
30
35
  Azure.ResourceManager.CommonTypes.Versions.v5,
31
36
  "customermanagedkeys.json"
32
37
  );
33
- @@armCommonDefinition(CustomerManagedKeyEncryption,
38
+ @@armCommonDefinition(
39
+ CustomerManagedKeyEncryption,
34
40
  "customerManagedKeyEncryption",
35
41
  Azure.ResourceManager.CommonTypes.Versions.v6,
36
42
  "customermanagedkeys.json"
@@ -7,39 +7,46 @@ namespace Azure.ResourceManager.CommonTypes;
7
7
  /**
8
8
  * The properties of the managed service identities assigned to this resource.
9
9
  */
10
- @@armCommonDefinition(ManagedServiceIdentity,
10
+ @@armCommonDefinition(
11
+ ManagedServiceIdentity,
11
12
  "ManagedServiceIdentity",
12
13
  #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true },
13
14
  "managedidentity.json"
14
15
  );
15
- @@armCommonDefinition(ManagedServiceIdentity,
16
+ @@armCommonDefinition(
17
+ ManagedServiceIdentity,
16
18
  "ManagedServiceIdentity",
17
19
  Azure.ResourceManager.CommonTypes.Versions.v4,
18
20
  "managedidentity.json"
19
21
  );
20
- @@armCommonDefinition(ManagedServiceIdentity,
22
+ @@armCommonDefinition(
23
+ ManagedServiceIdentity,
21
24
  "ManagedServiceIdentity",
22
25
  Azure.ResourceManager.CommonTypes.Versions.v5,
23
26
  "managedidentity.json"
24
27
  );
25
- @@armCommonDefinition(ManagedServiceIdentity,
28
+ @@armCommonDefinition(
29
+ ManagedServiceIdentity,
26
30
  "ManagedServiceIdentity",
27
31
  Azure.ResourceManager.CommonTypes.Versions.v6,
28
32
  "managedidentity.json"
29
33
  );
30
34
 
31
35
  /** The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.", */
32
- @@armCommonDefinition(UserAssignedIdentities,
36
+ @@armCommonDefinition(
37
+ UserAssignedIdentities,
33
38
  "UserAssignedIdentities",
34
39
  #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true },
35
40
  "managedidentity.json"
36
41
  );
37
- @@armCommonDefinition(UserAssignedIdentities,
42
+ @@armCommonDefinition(
43
+ UserAssignedIdentities,
38
44
  "UserAssignedIdentities",
39
45
  Azure.ResourceManager.CommonTypes.Versions.v4,
40
46
  "managedidentity.json"
41
47
  );
42
- @@armCommonDefinition(UserAssignedIdentities,
48
+ @@armCommonDefinition(
49
+ UserAssignedIdentities,
43
50
  "UserAssignedIdentities",
44
51
  Azure.ResourceManager.CommonTypes.Versions.v5,
45
52
  "managedidentity.json"
@@ -48,22 +55,26 @@ namespace Azure.ResourceManager.CommonTypes;
48
55
  /**
49
56
  * The properties of the service-assigned identity associated with this resource.
50
57
  */
51
- @@armCommonDefinition(SystemAssignedServiceIdentity,
58
+ @@armCommonDefinition(
59
+ SystemAssignedServiceIdentity,
52
60
  "SystemAssignedServiceIdentity",
53
61
  #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true },
54
62
  "managedidentity.json"
55
63
  );
56
- @@armCommonDefinition(SystemAssignedServiceIdentity,
64
+ @@armCommonDefinition(
65
+ SystemAssignedServiceIdentity,
57
66
  "SystemAssignedServiceIdentity",
58
67
  Azure.ResourceManager.CommonTypes.Versions.v4,
59
68
  "managedidentity.json"
60
69
  );
61
- @@armCommonDefinition(SystemAssignedServiceIdentity,
70
+ @@armCommonDefinition(
71
+ SystemAssignedServiceIdentity,
62
72
  "SystemAssignedServiceIdentity",
63
73
  Azure.ResourceManager.CommonTypes.Versions.v5,
64
74
  "managedidentity.json"
65
75
  );
66
- @@armCommonDefinition(SystemAssignedServiceIdentity,
76
+ @@armCommonDefinition(
77
+ SystemAssignedServiceIdentity,
67
78
  "SystemAssignedServiceIdentity",
68
79
  Azure.ResourceManager.CommonTypes.Versions.v6,
69
80
  "managedidentity.json"
@@ -72,64 +83,76 @@ namespace Azure.ResourceManager.CommonTypes;
72
83
  /**
73
84
  * A managed identity assigned by the user.
74
85
  */
75
- @@armCommonDefinition(UserAssignedIdentity,
86
+ @@armCommonDefinition(
87
+ UserAssignedIdentity,
76
88
  "UserAssignedIdentity",
77
89
  #{ version: Azure.ResourceManager.CommonTypes.Versions.v3, isDefault: true },
78
90
  "managedidentity.json"
79
91
  );
80
- @@armCommonDefinition(UserAssignedIdentity,
92
+ @@armCommonDefinition(
93
+ UserAssignedIdentity,
81
94
  "UserAssignedIdentity",
82
95
  Azure.ResourceManager.CommonTypes.Versions.v4,
83
96
  "managedidentity.json"
84
97
  );
85
- @@armCommonDefinition(UserAssignedIdentity,
98
+ @@armCommonDefinition(
99
+ UserAssignedIdentity,
86
100
  "UserAssignedIdentity",
87
101
  Azure.ResourceManager.CommonTypes.Versions.v5,
88
102
  "managedidentity.json"
89
103
  );
90
- @@armCommonDefinition(UserAssignedIdentity,
104
+ @@armCommonDefinition(
105
+ UserAssignedIdentity,
91
106
  "UserAssignedIdentity",
92
107
  Azure.ResourceManager.CommonTypes.Versions.v6,
93
108
  "managedidentity.json"
94
109
  );
95
110
 
96
- @@armCommonDefinition(ManagedServiceIdentityType,
111
+ @@armCommonDefinition(
112
+ ManagedServiceIdentityType,
97
113
  "ManagedServiceIdentityType",
98
114
  Azure.ResourceManager.CommonTypes.Versions.v3,
99
115
  "managedidentity.json"
100
116
  );
101
- @@armCommonDefinition(ManagedServiceIdentityType,
117
+ @@armCommonDefinition(
118
+ ManagedServiceIdentityType,
102
119
  "ManagedServiceIdentityType",
103
120
  Azure.ResourceManager.CommonTypes.Versions.v4,
104
121
  "managedidentity.json"
105
122
  );
106
- @@armCommonDefinition(ManagedServiceIdentityType,
123
+ @@armCommonDefinition(
124
+ ManagedServiceIdentityType,
107
125
  "ManagedServiceIdentityType",
108
126
  Azure.ResourceManager.CommonTypes.Versions.v5,
109
127
  "managedidentity.json"
110
128
  );
111
- @@armCommonDefinition(ManagedServiceIdentityType,
129
+ @@armCommonDefinition(
130
+ ManagedServiceIdentityType,
112
131
  "ManagedServiceIdentityType",
113
132
  Azure.ResourceManager.CommonTypes.Versions.v6,
114
133
  "managedidentity.json"
115
134
  );
116
135
 
117
- @@armCommonDefinition(SystemAssignedServiceIdentityType,
136
+ @@armCommonDefinition(
137
+ SystemAssignedServiceIdentityType,
118
138
  "SystemAssignedServiceIdentityType",
119
139
  Azure.ResourceManager.CommonTypes.Versions.v3,
120
140
  "managedidentity.json"
121
141
  );
122
- @@armCommonDefinition(SystemAssignedServiceIdentityType,
142
+ @@armCommonDefinition(
143
+ SystemAssignedServiceIdentityType,
123
144
  "SystemAssignedServiceIdentityType",
124
145
  Azure.ResourceManager.CommonTypes.Versions.v4,
125
146
  "managedidentity.json"
126
147
  );
127
- @@armCommonDefinition(SystemAssignedServiceIdentityType,
148
+ @@armCommonDefinition(
149
+ SystemAssignedServiceIdentityType,
128
150
  "SystemAssignedServiceIdentityType",
129
151
  Azure.ResourceManager.CommonTypes.Versions.v5,
130
152
  "managedidentity.json"
131
153
  );
132
- @@armCommonDefinition(SystemAssignedServiceIdentityType,
154
+ @@armCommonDefinition(
155
+ SystemAssignedServiceIdentityType,
133
156
  "SystemAssignedServiceIdentityType",
134
157
  Azure.ResourceManager.CommonTypes.Versions.v6,
135
158
  "managedidentity.json"
@@ -4,34 +4,40 @@ using Azure.ResourceManager.CommonTypes.Private;
4
4
  namespace Azure.ResourceManager.CommonTypes;
5
5
 
6
6
  /** Managed service identity (system assigned and/or user assigned identities and/or delegated identities) - internal use only. */
7
- @@armCommonDefinition(ManagedServiceIdentityWithDelegation,
7
+ @@armCommonDefinition(
8
+ ManagedServiceIdentityWithDelegation,
8
9
  "ManagedServiceIdentityWithDelegation",
9
10
  Azure.ResourceManager.CommonTypes.Versions.v4,
10
11
  "managedidentitywithdelegation.json"
11
12
  );
12
- @@armCommonDefinition(ManagedServiceIdentityWithDelegation,
13
+ @@armCommonDefinition(
14
+ ManagedServiceIdentityWithDelegation,
13
15
  "ManagedServiceIdentityWithDelegation",
14
16
  Azure.ResourceManager.CommonTypes.Versions.v5,
15
17
  "managedidentitywithdelegation.json"
16
18
  );
17
- @@armCommonDefinition(ManagedServiceIdentityWithDelegation,
19
+ @@armCommonDefinition(
20
+ ManagedServiceIdentityWithDelegation,
18
21
  "ManagedServiceIdentityWithDelegation",
19
22
  Azure.ResourceManager.CommonTypes.Versions.v6,
20
23
  "managedidentitywithdelegation.json"
21
24
  );
22
25
 
23
26
  /** Delegated resource properties - internal use only. */
24
- @@armCommonDefinition(DelegatedResource,
27
+ @@armCommonDefinition(
28
+ DelegatedResource,
25
29
  "DelegatedResource",
26
30
  Azure.ResourceManager.CommonTypes.Versions.v4,
27
31
  "managedidentitywithdelegation.json"
28
32
  );
29
- @@armCommonDefinition(DelegatedResource,
33
+ @@armCommonDefinition(
34
+ DelegatedResource,
30
35
  "DelegatedResource",
31
36
  Azure.ResourceManager.CommonTypes.Versions.v5,
32
37
  "managedidentitywithdelegation.json"
33
38
  );
34
- @@armCommonDefinition(DelegatedResource,
39
+ @@armCommonDefinition(
40
+ DelegatedResource,
35
41
  "DelegatedResource",
36
42
  Azure.ResourceManager.CommonTypes.Versions.v6,
37
43
  "managedidentitywithdelegation.json"
@@ -4,24 +4,28 @@ using Azure.ResourceManager.CommonTypes.Private;
4
4
  namespace Azure.ResourceManager.CommonTypes;
5
5
 
6
6
  /** This configuration exists for the resources where a resource provider manages those resources on behalf of the resource owner. */
7
- @@armCommonDefinition(ManagedOnBehalfOfConfiguration,
7
+ @@armCommonDefinition(
8
+ ManagedOnBehalfOfConfiguration,
8
9
  "ManagedOnBehalfOfConfiguration",
9
10
  Azure.ResourceManager.CommonTypes.Versions.v5,
10
11
  "mobo.json"
11
12
  );
12
- @@armCommonDefinition(ManagedOnBehalfOfConfiguration,
13
+ @@armCommonDefinition(
14
+ ManagedOnBehalfOfConfiguration,
13
15
  "ManagedOnBehalfOfConfiguration",
14
16
  Azure.ResourceManager.CommonTypes.Versions.v6,
15
17
  "mobo.json"
16
18
  );
17
19
 
18
20
  /** This resource is created by the Resource Provider to manage some resources on behalf of the user. */
19
- @@armCommonDefinition(MoboBrokerResource,
21
+ @@armCommonDefinition(
22
+ MoboBrokerResource,
20
23
  "MoboBrokerResource",
21
24
  Azure.ResourceManager.CommonTypes.Versions.v5,
22
25
  "mobo.json"
23
26
  );
24
- @@armCommonDefinition(MoboBrokerResource,
27
+ @@armCommonDefinition(
28
+ MoboBrokerResource,
25
29
  "MoboBrokerResource",
26
30
  Azure.ResourceManager.CommonTypes.Versions.v6,
27
31
  "mobo.json"