Skip to content

Commit 0e13373

Browse files
authored
[Hub Generated] Publish private branch 'main' (#23015)
* Onboard Microsoft.ContainerStorage with API version 2023-03-01-preview * Revert accidental change to elasticsan readme
1 parent 4b4bb10 commit 0e13373

File tree

43 files changed

+4059
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+4059
-0
lines changed

custom-words.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1263,6 +1263,7 @@ maxpagesize
12631263
maxresults
12641264
MAXSIZE
12651265
maxzoom
1266+
Mayastor
12661267
mbaldwin
12671268
Mbps
12681269
MCAS
@@ -1434,6 +1435,7 @@ noartifactsource
14341435
nodeagentskus
14351436
nodeconfiguration
14361437
nodecounts
1438+
nodename
14371439
Nodeploy
14381440
nodetool
14391441
nodrm
Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
import "@cadl-lang/rest";
2+
import "@cadl-lang/openapi3";
3+
4+
import "@cadl-lang/rest";
5+
import "@cadl-lang/versioning";
6+
import "@azure-tools/cadl-providerhub";
7+
import "@azure-tools/cadl-azure-resource-manager";
8+
9+
using Cadl.Http;
10+
using Cadl.Rest;
11+
using OpenAPI;
12+
using Autorest;
13+
using Azure.ResourceManager;
14+
using Azure.ResourceManager.Foundations;
15+
16+
/**
17+
* Custom types modified from the Azure Resource Manager Cadl library to add
18+
* asynchronous update to operations, and location header on asynchronous create/update
19+
* to be in line with the ARM async API guidelines.
20+
*
21+
* Reference: https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/async-api-reference.md
22+
* Cadl ARM Library: https://github.com/Azure/cadl-azure/tree/main/packages/cadl-azure-resource-manager/lib
23+
*/
24+
25+
namespace Microsoft.ContainerStorage.Custom;
26+
27+
// Custom operations (modified)
28+
interface ResourceOperationsCustom<
29+
TResource extends ArmResource,
30+
TProperties extends object,
31+
TBaseParameters = BaseParameters<TResource>
32+
>
33+
extends ResourceInstanceOperationsCustom<TResource, TProperties, TBaseParameters>,
34+
ResourceCollectionOperations<TResource, TBaseParameters> {}
35+
36+
37+
// Add custom create and update async operations (modified)
38+
interface ResourceInstanceOperationsCustom<
39+
TResource extends ArmResource,
40+
TProperties extends object,
41+
TBaseParameters = BaseParameters<TResource>,
42+
TPatchModel = ResourceUpdateModel<TResource, TProperties>
43+
>
44+
extends Azure.ResourceManager.ResourceRead<TResource, TBaseParameters>,
45+
ResourceCreateAsyncCustom<TResource, TBaseParameters>,
46+
ResourceDeleteAsyncCustom<TResource, TBaseParameters>,
47+
ResourceUpdateAsyncCustom<TResource, TProperties, TBaseParameters> {}
48+
49+
50+
// Create custom create and update async operations (modified)
51+
@doc("Asynchronous resource create")
52+
interface ResourceCreateAsyncCustom<
53+
TResource extends ArmResource,
54+
TBaseParameters = BaseParameters<TResource>
55+
> {
56+
createOrUpdate is ArmResourceCreateOrUpdateAsyncLocation<TResource, TBaseParameters>;
57+
}
58+
59+
@doc("Asynchronous resource update")
60+
interface ResourceUpdateAsyncCustom<
61+
TResource extends ArmResource,
62+
TProperties extends object,
63+
TBaseParameters = BaseParameters<TResource>
64+
> {
65+
update is ArmCustomPatchAsyncLocation<
66+
TResource,
67+
ResourceUpdateModel<TResource, TProperties>,
68+
TBaseParameters
69+
>;
70+
}
71+
72+
@doc("Delete a resource using the asynchronous call pattern")
73+
interface ResourceDeleteAsyncCustom<
74+
TResource extends ArmResource,
75+
TBaseParameters = BaseParameters<TResource>
76+
> {
77+
delete is ArmCustomDeleteAsyncLocation<TResource, TBaseParameters>;
78+
}
79+
80+
// Aliases for potential external reference (modified)
81+
alias ArmResourceCreateAsync<
82+
TResource extends ArmResource,
83+
TProperties extends object,
84+
TBaseParameters = BaseParameters<TResource>
85+
> = ArmResourceCreateOrUpdateAsyncLocation<TResource, TBaseParameters>;
86+
87+
alias ArmResourcePatchAsync<
88+
TResource extends ArmResource,
89+
TProperties extends object,
90+
TBaseParameters = BaseParameters<TResource>
91+
> = ArmCustomPatchAsyncLocation<TResource, ResourceUpdateModel<TResource, TProperties>, TBaseParameters>;
92+
93+
alias ArmResourceDeleteAsync<
94+
TResource extends ArmResource,
95+
TProperties extends object,
96+
TBaseParameters = BaseParameters<TResource>
97+
> = ArmCustomDeleteAsyncLocation<TResource, TBaseParameters>;
98+
99+
100+
// Add async response with locations to response type (modified)
101+
@autoRoute
102+
@doc("Create a {name}", TResource)
103+
@extension("x-ms-long-running-operation", true)
104+
@extension(
105+
"x-ms-long-running-operation-options",
106+
{
107+
"final-state-via": "azure-async-operation",
108+
}
109+
)
110+
@armResourceCreateOrUpdate(TResource)
111+
@put
112+
op ArmResourceCreateOrUpdateAsyncLocation<
113+
TResource extends ArmResource,
114+
TBaseParameters = BaseParameters<TResource>
115+
>(
116+
...ResourceInstanceParameters<TResource, TBaseParameters>,
117+
118+
@doc("Resource create parameters.")
119+
@body
120+
resource: TResource
121+
): ArmResponse<TResource> | ArmCreatedResponseLocation<TResource> | ErrorResponse;
122+
123+
@autoRoute
124+
@doc("Update a {name}", TResource)
125+
@extension("x-ms-long-running-operation", true)
126+
@extension(
127+
"x-ms-long-running-operation-options",
128+
{
129+
"final-state-via": "azure-async-operation",
130+
}
131+
)
132+
@armResourceUpdate(TResource)
133+
@patch
134+
op ArmCustomPatchAsyncLocation<
135+
TResource extends ArmResource,
136+
TPatchModel extends object = TagsUpdateModel<TResource>,
137+
TBaseParameters = BaseParameters<TResource>
138+
>(
139+
...ResourceInstanceParameters<TResource, TBaseParameters>,
140+
141+
@doc("The resource properties to be updated.")
142+
@body
143+
properties: TPatchModel
144+
): ArmResponse<TResource> | ArmAcceptedResponseLocation<"Resource update request accepted."> | ErrorResponse;
145+
146+
@autoRoute
147+
@doc("Delete a {name}", TResource)
148+
@extension("x-ms-long-running-operation", true)
149+
@extension(
150+
"x-ms-long-running-operation-options",
151+
{
152+
"final-state-via": "location",
153+
}
154+
)
155+
@armResourceDelete(TResource)
156+
@delete
157+
op ArmCustomDeleteAsyncLocation<
158+
TResource extends ArmResource,
159+
TBaseParameters = BaseParameters<TResource>
160+
>(
161+
...ResourceInstanceParameters<TResource, TBaseParameters>
162+
): ArmDeletedResponse | ArmAcceptedResponseLocation<"Resource deletion accepted."> | ArmDeletedNoContentResponse | ErrorResponse;
163+
164+
165+
166+
// Add location header to response type (modified)
167+
@doc("ARM create operation completed successfully.")
168+
model ArmCreatedResponseLocation<T> {
169+
...CreatedResponse;
170+
...Azure.Core.Foundations.RetryAfterHeader;
171+
...LocationHeader;
172+
...Body<T>;
173+
}
174+
175+
@doc(TMessage)
176+
model ArmAcceptedResponseLocation<TMessage extends string = "Resource operation accepted."> {
177+
...AcceptedResponse;
178+
...RetryAfterHeaderCustom;
179+
...LocationHeader;
180+
}
181+
182+
183+
// Create location header
184+
@doc("The location uri of the operation.")
185+
model LocationHeader {
186+
@doc("The Location header has the uri for monitoring the operation state.")
187+
@header("Location")
188+
location: string;
189+
}
190+
191+
@doc("The retry-after envelope.")
192+
model RetryAfterHeaderCustom {
193+
@doc("The Retry-After header can indicate how long the client should wait before polling the operation status.")
194+
@header("Retry-After")
195+
retryAfter: int32;
196+
}
197+

0 commit comments

Comments
 (0)