@azure-tools/typespec-azure-resource-manager 0.40.0-dev.10 → 0.40.0-dev.11
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/rules/arm-resource-provisioning-state-rule.d.ts +2 -0
- package/dist/src/rules/arm-resource-provisioning-state-rule.d.ts.map +1 -1
- package/dist/src/rules/arm-resource-provisioning-state-rule.js +18 -1
- package/dist/src/rules/arm-resource-provisioning-state-rule.js.map +1 -1
- package/lib/models.tsp +3 -1
- package/package.json +1 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export declare const armResourceProvisioningStateRule: import("@typespec/compiler").LinterRuleDefinition<"arm-resource-provisioning-state", {
|
|
2
2
|
readonly default: "The RP-specific property model in the 'properties' property of this resource must contain a 'provisioningState property. The property type should be an enum or a union of string values, and it must specify known state values 'Succeeded', 'Failed', and 'Canceled'.";
|
|
3
3
|
readonly missingValues: import("@typespec/compiler").CallableMessage<[string]>;
|
|
4
|
+
readonly missingReadOnlyVisibility: "The provisioningState property must have a single read visibility.";
|
|
5
|
+
readonly mustBeOptional: "The provisioningState property must be optional.";
|
|
4
6
|
}>;
|
|
5
7
|
//# sourceMappingURL=arm-resource-provisioning-state-rule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arm-resource-provisioning-state-rule.d.ts","sourceRoot":"","sources":["../../../src/rules/arm-resource-provisioning-state-rule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"arm-resource-provisioning-state-rule.d.ts","sourceRoot":"","sources":["../../../src/rules/arm-resource-provisioning-state-rule.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,gCAAgC;;;;;EA8G3C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createRule, getProperty, paramMessage } from "@typespec/compiler";
|
|
1
|
+
import { createRule, getProperty, getVisibility, paramMessage, } from "@typespec/compiler";
|
|
2
2
|
import { getUnionAsEnum } from "@azure-tools/typespec-azure-core";
|
|
3
3
|
import { getArmResource } from "../resource.js";
|
|
4
4
|
import { getSourceProperty } from "./utils.js";
|
|
@@ -9,6 +9,8 @@ export const armResourceProvisioningStateRule = createRule({
|
|
|
9
9
|
messages: {
|
|
10
10
|
default: "The RP-specific property model in the 'properties' property of this resource must contain a 'provisioningState property. The property type should be an enum or a union of string values, and it must specify known state values 'Succeeded', 'Failed', and 'Canceled'.",
|
|
11
11
|
missingValues: paramMessage `The "@knownValues" decorator for provisioningState, must reference an enum with 'Succeeded', 'Failed', 'Canceled' values. The enum is missing the values: [${"missingValues"}].`,
|
|
12
|
+
missingReadOnlyVisibility: "The provisioningState property must have a single read visibility.",
|
|
13
|
+
mustBeOptional: "The provisioningState property must be optional.",
|
|
12
14
|
},
|
|
13
15
|
create(context) {
|
|
14
16
|
return {
|
|
@@ -85,6 +87,21 @@ export const armResourceProvisioningStateRule = createRule({
|
|
|
85
87
|
target: provisioning,
|
|
86
88
|
});
|
|
87
89
|
}
|
|
90
|
+
// validate provisioning state is optional
|
|
91
|
+
if (provisioning.optional !== true) {
|
|
92
|
+
context.reportDiagnostic({
|
|
93
|
+
messageId: "mustBeOptional",
|
|
94
|
+
target: provisioning,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
// validate it must has a read only visibility
|
|
98
|
+
const visibilities = getVisibility(context.program, provisioning);
|
|
99
|
+
if (!(visibilities !== undefined && visibilities.length === 1 && visibilities[0] === "read")) {
|
|
100
|
+
context.reportDiagnostic({
|
|
101
|
+
messageId: "missingReadOnlyVisibility",
|
|
102
|
+
target: provisioning,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
88
105
|
}
|
|
89
106
|
},
|
|
90
107
|
};
|
|
@@ -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,
|
|
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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"}
|
package/lib/models.tsp
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
using TypeSpec.Http;
|
|
2
2
|
using TypeSpec.Rest;
|
|
3
3
|
using TypeSpec.OpenAPI;
|
|
4
|
+
using Azure.Core;
|
|
4
5
|
using Azure.ResourceManager.Foundations;
|
|
5
6
|
using Azure.ResourceManager.Private;
|
|
6
7
|
|
|
@@ -169,7 +170,8 @@ enum ResourceProvisioningState {
|
|
|
169
170
|
@doc("Contains a default provisioningState property to be spread into resource property types")
|
|
170
171
|
model DefaultProvisioningStateProperty {
|
|
171
172
|
@doc("The provisioning state of the resource.")
|
|
172
|
-
|
|
173
|
+
@visibility("read")
|
|
174
|
+
provisioningState?: ResourceProvisioningState;
|
|
173
175
|
}
|
|
174
176
|
|
|
175
177
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure-tools/typespec-azure-resource-manager",
|
|
3
|
-
"version": "0.40.0-dev.
|
|
3
|
+
"version": "0.40.0-dev.11",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec Azure Resource Manager library",
|
|
6
6
|
"homepage": "https://azure.github.io/typespec-azure",
|