-
Notifications
You must be signed in to change notification settings - Fork 5.1k
/
main.cadl
178 lines (132 loc) · 3.72 KB
/
main.cadl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
import "@cadl-lang/rest";
import "@azure-tools/cadl-autorest";
import "@cadl-lang/versioning";
import "@azure-tools/cadl-azure-resource-manager";
import "@azure-tools/cadl-providerhub";
using Cadl.Versioning;
using Azure.ResourceManager;
using Cadl.Http;
using Cadl.Rest;
@armProviderNamespace
@service({title:"Qumulo.Storage"})
@versionedDependency([[Versions.v2022_06_27_preview,Azure.ResourceManager.Versions.v1_0_Preview_1], [Versions.v2022_10_12_preview,Azure.ResourceManager.Versions.v1_0_Preview_1]])
@versioned(Versions)
namespace Qumulo.Storage;
@doc("Storage Sku")
enum StorageSku {
@doc("Standard Storage Sku")
"Standard",
@doc("Performance Storage Sku")
"Performance"
}
enum Versions {
v2022_06_27_preview: "2022-06-27-preview",
v2022_10_12_preview: "2022-10-12-preview",
}
@doc("Qumulo File System resource")
model FileSystemResource is TrackedResource<FileSystemResourceProperties> {
@key("fileSystemName")
@segment("fileSystems")
@doc("Name of the storage resource")
name: string;
...ManagedServiceIdentity
}
@armResourceOperations
interface FileSystems extends ResourceOperations<FileSystemResource,FileSystemResourceProperties> {
}
@doc("Properties specific to the Qumulo File System resource")
model FileSystemResourceProperties {
@doc("Azure Subscription Id")
subscriptionId: string;
@doc("Marketplace details")
marketplaceDetails? : MarketplaceDetails;
@doc("Provisioning State of the resource")
provisioningState: ProvisioningState;
@doc("User Details")
userDetails: UserDetails;
@doc("Company Details")
companyDetails: CompanyDetails;
@doc("Delegated subnet id for Vnet injection")
delegatedSubnetId: string;
@doc("Qumulo admin dashboard Url")
clusterLoginUrl: string;
@doc("List of eNIC IPs")
privateIPs: string[];
@added(Versions.v2022_10_12_preview)
@doc("Initial administrator password of the resource")
@secret
adminPassword: string;
@added(Versions.v2022_10_12_preview)
@doc("Storage capacity in TB")
initialCapacity: int32;
@added(Versions.v2022_10_12_preview)
@doc("Availability zone")
availabilityZone: string;
@added(Versions.v2022_10_12_preview)
@doc("Storage Sku")
storageSku: StorageSku;
}
@doc("MarketplaceDetails of Qumulo FileSystem resource")
model MarketplaceDetails{
@doc("Marketplace Subscription Id")
marketplaceSubscriptionId: string;
@doc("Plan Id")
planId: string;
@doc("Offer Id")
offerId: string;
@doc("Publisher Id")
publisherId: string;
@doc("Marketplace subscription status")
marketplaceSubscriptionStatus: MarketplaceSubscriptionStatus;
}
@doc("User Details of Qumulo FileSystem resource")
model UserDetails{
@doc("First name")
firstName?: string;
@doc("Last name")
lastName?: string;
@doc("User Email")
email: string;
@doc("Alternate Email address")
alternateEmail?: string;
@doc("UPN of user")
upn: string;
@doc("Address of user")
address?: string;
@doc("Contact phone number")
contactPhoneNumber?: string;
}
@doc("Company details of Qumulo FileSystem resource")
model CompanyDetails{
@doc("Company name")
companyName: string;
@doc("Office Address")
officeAddress?: string;
@doc("Country of operation")
country: string;
@doc("Domain of the company")
domain: string;
@doc("Business of the company")
business?: string;
@doc("Number of Employees")
numberOfEmployees: int32;
}
@doc("Marketplace subscription status of the storage resource")
enum MarketplaceSubscriptionStatus{
"PendingFulfillmentStart",
"Subscribed",
"Suspended",
"Unsubscribed",
}
@doc("Provisioning State of the storage resource")
enum ProvisioningState {
"Accepted",
"Creating",
"Updating",
"Deleting",
"Succeeded",
"Failed",
"Canceled",
"Deleted",
"NotSpecified"
}