Skip to content

Commit 5e129a3

Browse files
authored
Merge branch 'main' into wenxliu/CDRPNewAPIVersion20250601
2 parents d4d6a4d + a56c282 commit 5e129a3

File tree

295 files changed

+24699
-218
lines changed

Some content is hidden

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

295 files changed

+24699
-218
lines changed

specification/vmware/Microsoft.AVS.Management/addons.tsp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,14 @@ model AddonHcxProperties extends AddonProperties {
106106

107107
@doc("The type of private cloud addon")
108108
addonType: AddonType.HCX;
109+
110+
@doc("HCX management network.")
111+
@added(Versions.v2024_09_01)
112+
managementNetwork?: string;
113+
114+
@doc("HCX uplink network")
115+
@added(Versions.v2024_09_01)
116+
uplinkNetwork?: string;
109117
}
110118

111119
@doc("The properties of an Arc addon")

specification/vmware/Microsoft.AVS.Management/authorizations.tsp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ using Azure.ResourceManager;
55
using TypeSpec.Http;
66
using TypeSpec.OpenAPI;
77
using TypeSpec.Rest;
8-
using TypeSpec.Versioning;
98

109
@armResourceOperations
1110
interface Authorizations {

specification/vmware/Microsoft.AVS.Management/client.tsp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ import "./main.tsp";
22
import "@azure-tools/typespec-client-generator-core";
33

44
using Azure.ClientGenerator.Core;
5-
using Azure.ResourceManager.CommonTypes;
6-
using Microsoft.AVS;
75

86
@@clientName(Microsoft.AVS, "AzureVMwareSolutionAPI", "javascript");
97
@@clientName(Microsoft.AVS, "AVS", "python");

specification/vmware/Microsoft.AVS.Management/cloudLinks.tsp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ using Azure.ResourceManager;
55
using TypeSpec.Http;
66
using TypeSpec.OpenAPI;
77
using TypeSpec.Rest;
8-
using TypeSpec.Versioning;
98

109
@armResourceOperations
1110
interface CloudLinks {

specification/vmware/Microsoft.AVS.Management/clusters.tsp

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ using Azure.ResourceManager;
55
using TypeSpec.Http;
66
using TypeSpec.OpenAPI;
77
using TypeSpec.Rest;
8-
using TypeSpec.Versioning;
98

109
@armResourceOperations
1110
interface Clusters {
@@ -25,34 +24,16 @@ interface Clusters {
2524
LroHeaders = Azure.Core.Foundations.RetryAfterHeader
2625
>;
2726

28-
// This could be modeled with ArmCustomPatchAsync if a 202 response with no body is used instead of a 201.
29-
// update is ArmCustomPatchAsync<Cluster, ClusterUpdate>;
30-
#suppress "@azure-tools/typespec-azure-core/no-openapi" "DO NOT COPY - TODO migrate to LRO apis"
31-
@doc("Update a Cluster")
32-
@extension("x-ms-long-running-operation", true)
33-
@extension(
34-
"x-ms-long-running-operation-options",
35-
#{ `final-state-via`: "location" }
36-
)
37-
@armResourceUpdate(Cluster)
38-
@patch
39-
update(
40-
...ResourceInstanceParameters<Cluster>,
41-
42-
@bodyRoot
43-
@doc("The cluster properties to be updated.")
44-
clusterUpdate: ClusterUpdate,
45-
): ArmResponse<Cluster> | {
46-
// @doc("Resource update request created.")
47-
...CreatedResponse;
48-
49-
...Azure.Core.Foundations.RetryAfterHeader;
50-
...LocationHeader;
51-
52-
@bodyRoot
53-
@doc("The updated cluster.")
54-
cluster: Cluster;
55-
} | ErrorResponse;
27+
@Azure.Core.useFinalStateVia("location")
28+
update is ArmCustomPatchAsync<
29+
Cluster,
30+
ClusterUpdate,
31+
Response = Cluster | ArmResourceCreatedResponse<
32+
Cluster,
33+
LroHeaders = ArmLroLocationHeader<FinalResult = Cluster> &
34+
Azure.Core.Foundations.RetryAfterHeader
35+
>
36+
>;
5637

5738
#suppress "deprecated"
5839
#suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes"
@@ -63,6 +44,7 @@ interface Clusters {
6344
}
6445

6546
@@clientName(Clusters.createOrUpdate::parameters.resource, "cluster");
47+
@@clientName(Clusters.update::parameters.properties, "clusterUpdate");
6648

6749
@doc("Cluster provisioning state")
6850
union ClusterProvisioningState {
Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
namespace Microsoft.AVS;
22

3-
using Azure.ClientGenerator.Core;
43
using Azure.ResourceManager;
54
using TypeSpec.Http;
6-
using TypeSpec.OpenAPI;
75
using TypeSpec.Rest;
86
using TypeSpec.Versioning;
97

@@ -21,19 +19,26 @@ model ResourceSkuRequired {
2119
sku: Foundations.Sku;
2220
}
2321

22+
// https://github.com/Azure/typespec-azure/issues/438
23+
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property"
24+
@doc("Availability zones envelope.")
25+
model AvailabilityZones {
26+
@doc("The availability zones.")
27+
@added(Versions.v2024_09_01)
28+
zones?: string[];
29+
}
30+
2431
@doc("The response of a {name} list operation.", Resource)
2532
@friendlyName(FriendlyNameFormat, Resource)
2633
model ResourceList<
2734
Resource extends Foundations.Resource,
2835
FriendlyNameFormat extends valueof string = "{name}List"
2936
> is Azure.Core.Page<Resource>;
3037

31-
// use { @bodyRoot _: void } with the next version of typespec-azure
32-
// https://github.com/Azure/typespec-azure/issues/3759
33-
34-
// Just like ArmResourceActionSync, but with no request body.
38+
/**
39+
* Just like ArmResourceActionSync, but with no request body.
40+
*/
3541
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation"
36-
#suppress "@azure-tools/typespec-azure-core/documentation-required" "MUST fix in next update"
3742
@autoRoute
3843
@armResourceAction(TResource)
3944
@post
@@ -45,34 +50,32 @@ op ArmResourceActionSyncNoRequestBody<
4550
...ResourceInstanceParameters<TResource, TBaseParameters>,
4651
): ArmResponse<TResponse> | ErrorResponse;
4752

48-
// Just like ArmResourceActionAsync, but with no request body.
53+
/**
54+
* Like ArmResourceActionAsync, but with no request body and ArmNoContentResponse.
55+
*/
4956
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation"
50-
#suppress "@azure-tools/typespec-azure-core/documentation-required" "MUST fix in next update"
5157
op ArmResourceActionNoContentAsyncNoRequestBody<
5258
TResource extends Azure.ResourceManager.Foundations.Resource,
5359
TBaseParameters extends TypeSpec.Reflection.Model = Foundations.BaseParameters<TResource>
54-
> is ArmResourceActionAsyncBaseNoRequestBody<
60+
> is ArmResourceActionAsyncBase<
5561
TResource,
62+
void,
5663
ArmAcceptedLroResponse | ArmNoContentResponse<"Action completed successfully.">,
5764
TBaseParameters
5865
>;
5966

60-
// Just like ArmResourceActionAsyncBase, but with no request body.
67+
/**
68+
* Just like ArmAcceptedLroResponse, but with a ResponseBody.
69+
*/
6170
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation"
62-
#suppress "@azure-tools/typespec-azure-core/documentation-required" "MUST fix in next update"
63-
#suppress "@azure-tools/typespec-azure-core/no-openapi" "DO NOT COPY - TODO migrate to LRO apis"
64-
@autoRoute
65-
@extension("x-ms-long-running-operation", true)
66-
@extension(
67-
"x-ms-long-running-operation-options",
68-
#{ `final-state-via`: "location" }
69-
)
70-
@armResourceAction(TResource)
71-
@post
72-
op ArmResourceActionAsyncBaseNoRequestBody<
73-
TResource extends Azure.ResourceManager.Foundations.Resource,
74-
TResponse,
75-
TBaseParameters extends TypeSpec.Reflection.Model
76-
>(
77-
...ResourceInstanceParameters<TResource, TBaseParameters>,
78-
): TResponse | ErrorResponse;
71+
@doc(Description)
72+
model ArmAcceptedLroResponseWithResponseBody<
73+
ResponseBody,
74+
Description extends valueof string = "Resource operation accepted.",
75+
LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader &
76+
Azure.Core.Foundations.RetryAfterHeader
77+
> {
78+
...AcceptedResponse;
79+
...LroHeaders;
80+
...Body<ResponseBody>;
81+
}

specification/vmware/Microsoft.AVS.Management/datastores.tsp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,10 @@ model DatastoreProperties {
116116
@doc("An Elastic SAN volume")
117117
elasticSanVolume?: ElasticSanVolume;
118118

119+
@added(Versions.v2024_09_01)
120+
@doc("A Pure Storage volume")
121+
pureStorageVolume?: PureStorageVolume;
122+
119123
@doc("The operational status of the datastore")
120124
@visibility(Lifecycle.Read)
121125
status?: DatastoreStatus;
@@ -155,3 +159,16 @@ model ElasticSanVolume {
155159
}
156160
]>;
157161
}
162+
163+
@doc("A Pure Storage volume from PureStorage.Block provider")
164+
model PureStorageVolume {
165+
@doc("Azure resource ID of the Pure Storage Pool")
166+
storagePoolId: Azure.Core.armResourceIdentifier<[
167+
{
168+
type: "PureStorage.Block/storagePools";
169+
}
170+
]>;
171+
172+
@doc("Volume size to be used to create a Virtual Volumes (vVols) datastore")
173+
sizeGb: int32;
174+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"title": "Addons_CreateOrUpdate_ArcReg",
3+
"operationId": "Addons_CreateOrUpdate",
4+
"parameters": {
5+
"api-version": "2024-09-01",
6+
"subscriptionId": "00000000-0000-0000-0000-000000000000",
7+
"resourceGroupName": "group1",
8+
"privateCloudName": "cloud1",
9+
"addonName": "arc",
10+
"addon": {
11+
"properties": {
12+
"addonType": "Arc",
13+
"vCenter": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg_test/providers/Microsoft.ConnectedVMwarevSphere/VCenters/test-vcenter"
14+
}
15+
}
16+
},
17+
"responses": {
18+
"200": {
19+
"body": {
20+
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/addons/arc",
21+
"name": "arc",
22+
"properties": {
23+
"addonType": "Arc",
24+
"vCenter": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg_test/providers/Microsoft.ConnectedVMwarevSphere/VCenters/test-vcenter",
25+
"provisioningState": "Succeeded"
26+
},
27+
"type": "Microsoft.AVS/privateClouds/addons"
28+
}
29+
},
30+
"201": {
31+
"body": {
32+
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/addons/arc",
33+
"name": "arc",
34+
"properties": {
35+
"addonType": "Arc",
36+
"vCenter": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg_test/providers/Microsoft.ConnectedVMwarevSphere/VCenters/test-vcenter",
37+
"provisioningState": "Succeeded"
38+
},
39+
"type": "Microsoft.AVS/privateClouds/addons"
40+
}
41+
}
42+
}
43+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"title": "Addons_CreateOrUpdate_HCX",
3+
"operationId": "Addons_CreateOrUpdate",
4+
"parameters": {
5+
"api-version": "2024-09-01",
6+
"subscriptionId": "00000000-0000-0000-0000-000000000000",
7+
"resourceGroupName": "group1",
8+
"privateCloudName": "cloud1",
9+
"addonName": "hcx",
10+
"addon": {
11+
"properties": {
12+
"addonType": "HCX",
13+
"offer": "VMware MaaS Cloud Provider (Enterprise)"
14+
}
15+
}
16+
},
17+
"responses": {
18+
"200": {
19+
"body": {
20+
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/addons/hcx",
21+
"name": "hcx",
22+
"properties": {
23+
"addonType": "HCX",
24+
"offer": "VMware MaaS Cloud Provider (Enterprise)",
25+
"provisioningState": "Succeeded"
26+
},
27+
"type": "Microsoft.AVS/privateClouds/addons"
28+
}
29+
},
30+
"201": {
31+
"body": {
32+
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/addons/hcx",
33+
"name": "hcx",
34+
"properties": {
35+
"addonType": "HCX",
36+
"offer": "VMware MaaS Cloud Provider (Enterprise)",
37+
"provisioningState": "Updating"
38+
},
39+
"type": "Microsoft.AVS/privateClouds/addons"
40+
}
41+
}
42+
}
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
{
2+
"title": "Addons_CreateOrUpdate_HCX_With_Networks",
3+
"operationId": "Addons_CreateOrUpdate",
4+
"parameters": {
5+
"api-version": "2024-09-01",
6+
"subscriptionId": "00000000-0000-0000-0000-000000000000",
7+
"resourceGroupName": "group1",
8+
"privateCloudName": "cloud1",
9+
"addonName": "hcx",
10+
"addon": {
11+
"properties": {
12+
"addonType": "HCX",
13+
"offer": "VMware MaaS Cloud Provider (Enterprise)",
14+
"managementNetwork": "10.3.1.0/24",
15+
"uplinkNetwork": "10.3.2.0/24"
16+
}
17+
}
18+
},
19+
"responses": {
20+
"200": {
21+
"body": {
22+
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/addons/hcx",
23+
"name": "hcx",
24+
"properties": {
25+
"addonType": "HCX",
26+
"offer": "VMware MaaS Cloud Provider (Enterprise)",
27+
"managementNetwork": "10.3.1.0/24",
28+
"uplinkNetwork": "10.3.2.0/24",
29+
"provisioningState": "Succeeded"
30+
},
31+
"type": "Microsoft.AVS/privateClouds/addons"
32+
}
33+
},
34+
"201": {
35+
"body": {
36+
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AVS/privateClouds/cloud1/addons/hcx",
37+
"name": "hcx",
38+
"properties": {
39+
"addonType": "HCX",
40+
"offer": "VMware MaaS Cloud Provider (Enterprise)",
41+
"managementNetwork": "10.3.1.0/24",
42+
"uplinkNetwork": "10.3.2.0/24",
43+
"provisioningState": "Updating"
44+
},
45+
"type": "Microsoft.AVS/privateClouds/addons"
46+
}
47+
}
48+
}
49+
}

0 commit comments

Comments
 (0)