@azure/arm-elasticsan 1.0.0-beta.1
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/CHANGELOG.md +5 -0
- package/LICENSE +21 -0
- package/README.md +109 -0
- package/dist/index.js +2897 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +1 -0
- package/dist/index.min.js.map +1 -0
- package/dist-esm/samples-dev/elasticSansCreateSample.d.ts +2 -0
- package/dist-esm/samples-dev/elasticSansCreateSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/elasticSansCreateSample.js +62 -0
- package/dist-esm/samples-dev/elasticSansCreateSample.js.map +1 -0
- package/dist-esm/samples-dev/elasticSansDeleteSample.d.ts +2 -0
- package/dist-esm/samples-dev/elasticSansDeleteSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/elasticSansDeleteSample.js +49 -0
- package/dist-esm/samples-dev/elasticSansDeleteSample.js.map +1 -0
- package/dist-esm/samples-dev/elasticSansGetSample.d.ts +2 -0
- package/dist-esm/samples-dev/elasticSansGetSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/elasticSansGetSample.js +49 -0
- package/dist-esm/samples-dev/elasticSansGetSample.js.map +1 -0
- package/dist-esm/samples-dev/elasticSansListByResourceGroupSample.d.ts +2 -0
- package/dist-esm/samples-dev/elasticSansListByResourceGroupSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/elasticSansListByResourceGroupSample.js +75 -0
- package/dist-esm/samples-dev/elasticSansListByResourceGroupSample.js.map +1 -0
- package/dist-esm/samples-dev/elasticSansListBySubscriptionSample.d.ts +2 -0
- package/dist-esm/samples-dev/elasticSansListBySubscriptionSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/elasticSansListBySubscriptionSample.js +73 -0
- package/dist-esm/samples-dev/elasticSansListBySubscriptionSample.js.map +1 -0
- package/dist-esm/samples-dev/elasticSansUpdateSample.d.ts +2 -0
- package/dist-esm/samples-dev/elasticSansUpdateSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/elasticSansUpdateSample.js +55 -0
- package/dist-esm/samples-dev/elasticSansUpdateSample.js.map +1 -0
- package/dist-esm/samples-dev/operationsListSample.d.ts +2 -0
- package/dist-esm/samples-dev/operationsListSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/operationsListSample.js +73 -0
- package/dist-esm/samples-dev/operationsListSample.js.map +1 -0
- package/dist-esm/samples-dev/skusListSample.d.ts +2 -0
- package/dist-esm/samples-dev/skusListSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/skusListSample.js +75 -0
- package/dist-esm/samples-dev/skusListSample.js.map +1 -0
- package/dist-esm/samples-dev/volumeGroupsCreateSample.d.ts +2 -0
- package/dist-esm/samples-dev/volumeGroupsCreateSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/volumeGroupsCreateSample.js +62 -0
- package/dist-esm/samples-dev/volumeGroupsCreateSample.js.map +1 -0
- package/dist-esm/samples-dev/volumeGroupsDeleteSample.d.ts +2 -0
- package/dist-esm/samples-dev/volumeGroupsDeleteSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/volumeGroupsDeleteSample.js +51 -0
- package/dist-esm/samples-dev/volumeGroupsDeleteSample.js.map +1 -0
- package/dist-esm/samples-dev/volumeGroupsGetSample.d.ts +2 -0
- package/dist-esm/samples-dev/volumeGroupsGetSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/volumeGroupsGetSample.js +51 -0
- package/dist-esm/samples-dev/volumeGroupsGetSample.js.map +1 -0
- package/dist-esm/samples-dev/volumeGroupsListByElasticSanSample.d.ts +2 -0
- package/dist-esm/samples-dev/volumeGroupsListByElasticSanSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/volumeGroupsListByElasticSanSample.js +77 -0
- package/dist-esm/samples-dev/volumeGroupsListByElasticSanSample.js.map +1 -0
- package/dist-esm/samples-dev/volumeGroupsUpdateSample.d.ts +2 -0
- package/dist-esm/samples-dev/volumeGroupsUpdateSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/volumeGroupsUpdateSample.js +62 -0
- package/dist-esm/samples-dev/volumeGroupsUpdateSample.js.map +1 -0
- package/dist-esm/samples-dev/volumesCreateSample.d.ts +2 -0
- package/dist-esm/samples-dev/volumesCreateSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/volumesCreateSample.js +59 -0
- package/dist-esm/samples-dev/volumesCreateSample.js.map +1 -0
- package/dist-esm/samples-dev/volumesDeleteSample.d.ts +2 -0
- package/dist-esm/samples-dev/volumesDeleteSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/volumesDeleteSample.js +53 -0
- package/dist-esm/samples-dev/volumesDeleteSample.js.map +1 -0
- package/dist-esm/samples-dev/volumesGetSample.d.ts +2 -0
- package/dist-esm/samples-dev/volumesGetSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/volumesGetSample.js +53 -0
- package/dist-esm/samples-dev/volumesGetSample.js.map +1 -0
- package/dist-esm/samples-dev/volumesListByVolumeGroupSample.d.ts +2 -0
- package/dist-esm/samples-dev/volumesListByVolumeGroupSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/volumesListByVolumeGroupSample.js +79 -0
- package/dist-esm/samples-dev/volumesListByVolumeGroupSample.js.map +1 -0
- package/dist-esm/samples-dev/volumesUpdateSample.d.ts +2 -0
- package/dist-esm/samples-dev/volumesUpdateSample.d.ts.map +1 -0
- package/dist-esm/samples-dev/volumesUpdateSample.js +58 -0
- package/dist-esm/samples-dev/volumesUpdateSample.js.map +1 -0
- package/dist-esm/src/elasticSanManagement.d.ts +24 -0
- package/dist-esm/src/elasticSanManagement.d.ts.map +1 -0
- package/dist-esm/src/elasticSanManagement.js +107 -0
- package/dist-esm/src/elasticSanManagement.js.map +1 -0
- package/dist-esm/src/index.d.ts +5 -0
- package/dist-esm/src/index.d.ts.map +1 -0
- package/dist-esm/src/index.js +12 -0
- package/dist-esm/src/index.js.map +1 -0
- package/dist-esm/src/lroImpl.d.ts +16 -0
- package/dist-esm/src/lroImpl.d.ts.map +1 -0
- package/dist-esm/src/lroImpl.js +29 -0
- package/dist-esm/src/lroImpl.js.map +1 -0
- package/dist-esm/src/models/index.d.ts +691 -0
- package/dist-esm/src/models/index.d.ts.map +1 -0
- package/dist-esm/src/models/index.js +88 -0
- package/dist-esm/src/models/index.js.map +1 -0
- package/dist-esm/src/models/mappers.d.ts +29 -0
- package/dist-esm/src/models/mappers.d.ts.map +1 -0
- package/dist-esm/src/models/mappers.js +877 -0
- package/dist-esm/src/models/mappers.js.map +1 -0
- package/dist-esm/src/models/parameters.d.ts +19 -0
- package/dist-esm/src/models/parameters.d.ts.map +1 -0
- package/dist-esm/src/models/parameters.js +170 -0
- package/dist-esm/src/models/parameters.js.map +1 -0
- package/dist-esm/src/operations/elasticSans.d.ts +107 -0
- package/dist-esm/src/operations/elasticSans.d.ts.map +1 -0
- package/dist-esm/src/operations/elasticSans.js +509 -0
- package/dist-esm/src/operations/elasticSans.js.map +1 -0
- package/dist-esm/src/operations/index.d.ts +6 -0
- package/dist-esm/src/operations/index.d.ts.map +1 -0
- package/dist-esm/src/operations/index.js +13 -0
- package/dist-esm/src/operations/index.js.map +1 -0
- package/dist-esm/src/operations/operations.d.ts +26 -0
- package/dist-esm/src/operations/operations.d.ts.map +1 -0
- package/dist-esm/src/operations/operations.js +90 -0
- package/dist-esm/src/operations/operations.js.map +1 -0
- package/dist-esm/src/operations/skus.d.ts +26 -0
- package/dist-esm/src/operations/skus.d.ts.map +1 -0
- package/dist-esm/src/operations/skus.js +90 -0
- package/dist-esm/src/operations/skus.js.map +1 -0
- package/dist-esm/src/operations/volumeGroups.d.ts +99 -0
- package/dist-esm/src/operations/volumeGroups.d.ts.map +1 -0
- package/dist-esm/src/operations/volumeGroups.js +438 -0
- package/dist-esm/src/operations/volumeGroups.js.map +1 -0
- package/dist-esm/src/operations/volumes.d.ts +109 -0
- package/dist-esm/src/operations/volumes.d.ts.map +1 -0
- package/dist-esm/src/operations/volumes.js +468 -0
- package/dist-esm/src/operations/volumes.js.map +1 -0
- package/dist-esm/src/operationsInterfaces/elasticSans.d.ts +71 -0
- package/dist-esm/src/operationsInterfaces/elasticSans.d.ts.map +1 -0
- package/dist-esm/src/operationsInterfaces/elasticSans.js +9 -0
- package/dist-esm/src/operationsInterfaces/elasticSans.js.map +1 -0
- package/dist-esm/src/operationsInterfaces/index.d.ts +6 -0
- package/dist-esm/src/operationsInterfaces/index.d.ts.map +1 -0
- package/dist-esm/src/operationsInterfaces/index.js +13 -0
- package/dist-esm/src/operationsInterfaces/index.js.map +1 -0
- package/dist-esm/src/operationsInterfaces/operations.d.ts +11 -0
- package/dist-esm/src/operationsInterfaces/operations.d.ts.map +1 -0
- package/dist-esm/src/operationsInterfaces/operations.js +9 -0
- package/dist-esm/src/operationsInterfaces/operations.js.map +1 -0
- package/dist-esm/src/operationsInterfaces/skus.d.ts +11 -0
- package/dist-esm/src/operationsInterfaces/skus.d.ts.map +1 -0
- package/dist-esm/src/operationsInterfaces/skus.js +9 -0
- package/dist-esm/src/operationsInterfaces/skus.js.map +1 -0
- package/dist-esm/src/operationsInterfaces/volumeGroups.d.ts +74 -0
- package/dist-esm/src/operationsInterfaces/volumeGroups.d.ts.map +1 -0
- package/dist-esm/src/operationsInterfaces/volumeGroups.js +9 -0
- package/dist-esm/src/operationsInterfaces/volumeGroups.js.map +1 -0
- package/dist-esm/src/operationsInterfaces/volumes.d.ts +82 -0
- package/dist-esm/src/operationsInterfaces/volumes.d.ts.map +1 -0
- package/dist-esm/src/operationsInterfaces/volumes.js +9 -0
- package/dist-esm/src/operationsInterfaces/volumes.js.map +1 -0
- package/dist-esm/test/elasticsan_examples.spec.d.ts +4 -0
- package/dist-esm/test/elasticsan_examples.spec.d.ts.map +1 -0
- package/dist-esm/test/elasticsan_examples.spec.js +80 -0
- package/dist-esm/test/elasticsan_examples.spec.js.map +1 -0
- package/package.json +122 -0
- package/review/arm-elasticsan.api.md +536 -0
- package/rollup.config.js +122 -0
- package/src/elasticSanManagement.ts +161 -0
- package/src/index.ts +12 -0
- package/src/lroImpl.ts +34 -0
- package/src/models/index.ts +787 -0
- package/src/models/mappers.ts +935 -0
- package/src/models/parameters.ts +199 -0
- package/src/operations/elasticSans.ts +683 -0
- package/src/operations/index.ts +13 -0
- package/src/operations/operations.ts +98 -0
- package/src/operations/skus.ts +96 -0
- package/src/operations/volumeGroups.ts +629 -0
- package/src/operations/volumes.ts +673 -0
- package/src/operationsInterfaces/elasticSans.ts +139 -0
- package/src/operationsInterfaces/index.ts +13 -0
- package/src/operationsInterfaces/operations.ts +22 -0
- package/src/operationsInterfaces/skus.ts +22 -0
- package/src/operationsInterfaces/volumeGroups.ts +147 -0
- package/src/operationsInterfaces/volumes.ts +157 -0
- package/tsconfig.json +33 -0
- package/types/arm-elasticsan.d.ts +1036 -0
- package/types/tsdoc-metadata.json +11 -0
|
@@ -0,0 +1,673 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Microsoft Corporation.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*
|
|
5
|
+
* Code generated by Microsoft (R) AutoRest Code Generator.
|
|
6
|
+
* Changes may cause incorrect behavior and will be lost if the code is regenerated.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { PagedAsyncIterableIterator } from "@azure/core-paging";
|
|
10
|
+
import { Volumes } from "../operationsInterfaces";
|
|
11
|
+
import * as coreClient from "@azure/core-client";
|
|
12
|
+
import * as Mappers from "../models/mappers";
|
|
13
|
+
import * as Parameters from "../models/parameters";
|
|
14
|
+
import { ElasticSanManagement } from "../elasticSanManagement";
|
|
15
|
+
import { PollerLike, PollOperationState, LroEngine } from "@azure/core-lro";
|
|
16
|
+
import { LroImpl } from "../lroImpl";
|
|
17
|
+
import {
|
|
18
|
+
Volume,
|
|
19
|
+
VolumesListByVolumeGroupNextOptionalParams,
|
|
20
|
+
VolumesListByVolumeGroupOptionalParams,
|
|
21
|
+
VolumesCreateOptionalParams,
|
|
22
|
+
VolumesCreateResponse,
|
|
23
|
+
VolumeUpdate,
|
|
24
|
+
VolumesUpdateOptionalParams,
|
|
25
|
+
VolumesUpdateResponse,
|
|
26
|
+
VolumesDeleteOptionalParams,
|
|
27
|
+
VolumesGetOptionalParams,
|
|
28
|
+
VolumesGetResponse,
|
|
29
|
+
VolumesListByVolumeGroupResponse,
|
|
30
|
+
VolumesListByVolumeGroupNextResponse
|
|
31
|
+
} from "../models";
|
|
32
|
+
|
|
33
|
+
/// <reference lib="esnext.asynciterable" />
|
|
34
|
+
/** Class containing Volumes operations. */
|
|
35
|
+
export class VolumesImpl implements Volumes {
|
|
36
|
+
private readonly client: ElasticSanManagement;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Initialize a new instance of the class Volumes class.
|
|
40
|
+
* @param client Reference to the service client
|
|
41
|
+
*/
|
|
42
|
+
constructor(client: ElasticSanManagement) {
|
|
43
|
+
this.client = client;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* List Volumes in a VolumeGroup.
|
|
48
|
+
* @param resourceGroupName The name of the resource group. The name is case insensitive.
|
|
49
|
+
* @param elasticSanName The name of the ElasticSan.
|
|
50
|
+
* @param volumeGroupName The name of the VolumeGroup.
|
|
51
|
+
* @param options The options parameters.
|
|
52
|
+
*/
|
|
53
|
+
public listByVolumeGroup(
|
|
54
|
+
resourceGroupName: string,
|
|
55
|
+
elasticSanName: string,
|
|
56
|
+
volumeGroupName: string,
|
|
57
|
+
options?: VolumesListByVolumeGroupOptionalParams
|
|
58
|
+
): PagedAsyncIterableIterator<Volume> {
|
|
59
|
+
const iter = this.listByVolumeGroupPagingAll(
|
|
60
|
+
resourceGroupName,
|
|
61
|
+
elasticSanName,
|
|
62
|
+
volumeGroupName,
|
|
63
|
+
options
|
|
64
|
+
);
|
|
65
|
+
return {
|
|
66
|
+
next() {
|
|
67
|
+
return iter.next();
|
|
68
|
+
},
|
|
69
|
+
[Symbol.asyncIterator]() {
|
|
70
|
+
return this;
|
|
71
|
+
},
|
|
72
|
+
byPage: () => {
|
|
73
|
+
return this.listByVolumeGroupPagingPage(
|
|
74
|
+
resourceGroupName,
|
|
75
|
+
elasticSanName,
|
|
76
|
+
volumeGroupName,
|
|
77
|
+
options
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
private async *listByVolumeGroupPagingPage(
|
|
84
|
+
resourceGroupName: string,
|
|
85
|
+
elasticSanName: string,
|
|
86
|
+
volumeGroupName: string,
|
|
87
|
+
options?: VolumesListByVolumeGroupOptionalParams
|
|
88
|
+
): AsyncIterableIterator<Volume[]> {
|
|
89
|
+
let result = await this._listByVolumeGroup(
|
|
90
|
+
resourceGroupName,
|
|
91
|
+
elasticSanName,
|
|
92
|
+
volumeGroupName,
|
|
93
|
+
options
|
|
94
|
+
);
|
|
95
|
+
yield result.value || [];
|
|
96
|
+
let continuationToken = result.nextLink;
|
|
97
|
+
while (continuationToken) {
|
|
98
|
+
result = await this._listByVolumeGroupNext(
|
|
99
|
+
resourceGroupName,
|
|
100
|
+
elasticSanName,
|
|
101
|
+
volumeGroupName,
|
|
102
|
+
continuationToken,
|
|
103
|
+
options
|
|
104
|
+
);
|
|
105
|
+
continuationToken = result.nextLink;
|
|
106
|
+
yield result.value || [];
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
private async *listByVolumeGroupPagingAll(
|
|
111
|
+
resourceGroupName: string,
|
|
112
|
+
elasticSanName: string,
|
|
113
|
+
volumeGroupName: string,
|
|
114
|
+
options?: VolumesListByVolumeGroupOptionalParams
|
|
115
|
+
): AsyncIterableIterator<Volume> {
|
|
116
|
+
for await (const page of this.listByVolumeGroupPagingPage(
|
|
117
|
+
resourceGroupName,
|
|
118
|
+
elasticSanName,
|
|
119
|
+
volumeGroupName,
|
|
120
|
+
options
|
|
121
|
+
)) {
|
|
122
|
+
yield* page;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Create a Volume.
|
|
128
|
+
* @param resourceGroupName The name of the resource group. The name is case insensitive.
|
|
129
|
+
* @param elasticSanName The name of the ElasticSan.
|
|
130
|
+
* @param volumeGroupName The name of the VolumeGroup.
|
|
131
|
+
* @param volumeName The name of the Volume.
|
|
132
|
+
* @param parameters Volume object.
|
|
133
|
+
* @param options The options parameters.
|
|
134
|
+
*/
|
|
135
|
+
async beginCreate(
|
|
136
|
+
resourceGroupName: string,
|
|
137
|
+
elasticSanName: string,
|
|
138
|
+
volumeGroupName: string,
|
|
139
|
+
volumeName: string,
|
|
140
|
+
parameters: Volume,
|
|
141
|
+
options?: VolumesCreateOptionalParams
|
|
142
|
+
): Promise<
|
|
143
|
+
PollerLike<PollOperationState<VolumesCreateResponse>, VolumesCreateResponse>
|
|
144
|
+
> {
|
|
145
|
+
const directSendOperation = async (
|
|
146
|
+
args: coreClient.OperationArguments,
|
|
147
|
+
spec: coreClient.OperationSpec
|
|
148
|
+
): Promise<VolumesCreateResponse> => {
|
|
149
|
+
return this.client.sendOperationRequest(args, spec);
|
|
150
|
+
};
|
|
151
|
+
const sendOperation = async (
|
|
152
|
+
args: coreClient.OperationArguments,
|
|
153
|
+
spec: coreClient.OperationSpec
|
|
154
|
+
) => {
|
|
155
|
+
let currentRawResponse:
|
|
156
|
+
| coreClient.FullOperationResponse
|
|
157
|
+
| undefined = undefined;
|
|
158
|
+
const providedCallback = args.options?.onResponse;
|
|
159
|
+
const callback: coreClient.RawResponseCallback = (
|
|
160
|
+
rawResponse: coreClient.FullOperationResponse,
|
|
161
|
+
flatResponse: unknown
|
|
162
|
+
) => {
|
|
163
|
+
currentRawResponse = rawResponse;
|
|
164
|
+
providedCallback?.(rawResponse, flatResponse);
|
|
165
|
+
};
|
|
166
|
+
const updatedArgs = {
|
|
167
|
+
...args,
|
|
168
|
+
options: {
|
|
169
|
+
...args.options,
|
|
170
|
+
onResponse: callback
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
const flatResponse = await directSendOperation(updatedArgs, spec);
|
|
174
|
+
return {
|
|
175
|
+
flatResponse,
|
|
176
|
+
rawResponse: {
|
|
177
|
+
statusCode: currentRawResponse!.status,
|
|
178
|
+
body: currentRawResponse!.parsedBody,
|
|
179
|
+
headers: currentRawResponse!.headers.toJSON()
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
const lro = new LroImpl(
|
|
185
|
+
sendOperation,
|
|
186
|
+
{
|
|
187
|
+
resourceGroupName,
|
|
188
|
+
elasticSanName,
|
|
189
|
+
volumeGroupName,
|
|
190
|
+
volumeName,
|
|
191
|
+
parameters,
|
|
192
|
+
options
|
|
193
|
+
},
|
|
194
|
+
createOperationSpec
|
|
195
|
+
);
|
|
196
|
+
const poller = new LroEngine(lro, {
|
|
197
|
+
resumeFrom: options?.resumeFrom,
|
|
198
|
+
intervalInMs: options?.updateIntervalInMs,
|
|
199
|
+
lroResourceLocationConfig: "azure-async-operation"
|
|
200
|
+
});
|
|
201
|
+
await poller.poll();
|
|
202
|
+
return poller;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Create a Volume.
|
|
207
|
+
* @param resourceGroupName The name of the resource group. The name is case insensitive.
|
|
208
|
+
* @param elasticSanName The name of the ElasticSan.
|
|
209
|
+
* @param volumeGroupName The name of the VolumeGroup.
|
|
210
|
+
* @param volumeName The name of the Volume.
|
|
211
|
+
* @param parameters Volume object.
|
|
212
|
+
* @param options The options parameters.
|
|
213
|
+
*/
|
|
214
|
+
async beginCreateAndWait(
|
|
215
|
+
resourceGroupName: string,
|
|
216
|
+
elasticSanName: string,
|
|
217
|
+
volumeGroupName: string,
|
|
218
|
+
volumeName: string,
|
|
219
|
+
parameters: Volume,
|
|
220
|
+
options?: VolumesCreateOptionalParams
|
|
221
|
+
): Promise<VolumesCreateResponse> {
|
|
222
|
+
const poller = await this.beginCreate(
|
|
223
|
+
resourceGroupName,
|
|
224
|
+
elasticSanName,
|
|
225
|
+
volumeGroupName,
|
|
226
|
+
volumeName,
|
|
227
|
+
parameters,
|
|
228
|
+
options
|
|
229
|
+
);
|
|
230
|
+
return poller.pollUntilDone();
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Update an Volume.
|
|
235
|
+
* @param resourceGroupName The name of the resource group. The name is case insensitive.
|
|
236
|
+
* @param elasticSanName The name of the ElasticSan.
|
|
237
|
+
* @param volumeGroupName The name of the VolumeGroup.
|
|
238
|
+
* @param volumeName The name of the Volume.
|
|
239
|
+
* @param parameters Volume object.
|
|
240
|
+
* @param options The options parameters.
|
|
241
|
+
*/
|
|
242
|
+
async beginUpdate(
|
|
243
|
+
resourceGroupName: string,
|
|
244
|
+
elasticSanName: string,
|
|
245
|
+
volumeGroupName: string,
|
|
246
|
+
volumeName: string,
|
|
247
|
+
parameters: VolumeUpdate,
|
|
248
|
+
options?: VolumesUpdateOptionalParams
|
|
249
|
+
): Promise<
|
|
250
|
+
PollerLike<PollOperationState<VolumesUpdateResponse>, VolumesUpdateResponse>
|
|
251
|
+
> {
|
|
252
|
+
const directSendOperation = async (
|
|
253
|
+
args: coreClient.OperationArguments,
|
|
254
|
+
spec: coreClient.OperationSpec
|
|
255
|
+
): Promise<VolumesUpdateResponse> => {
|
|
256
|
+
return this.client.sendOperationRequest(args, spec);
|
|
257
|
+
};
|
|
258
|
+
const sendOperation = async (
|
|
259
|
+
args: coreClient.OperationArguments,
|
|
260
|
+
spec: coreClient.OperationSpec
|
|
261
|
+
) => {
|
|
262
|
+
let currentRawResponse:
|
|
263
|
+
| coreClient.FullOperationResponse
|
|
264
|
+
| undefined = undefined;
|
|
265
|
+
const providedCallback = args.options?.onResponse;
|
|
266
|
+
const callback: coreClient.RawResponseCallback = (
|
|
267
|
+
rawResponse: coreClient.FullOperationResponse,
|
|
268
|
+
flatResponse: unknown
|
|
269
|
+
) => {
|
|
270
|
+
currentRawResponse = rawResponse;
|
|
271
|
+
providedCallback?.(rawResponse, flatResponse);
|
|
272
|
+
};
|
|
273
|
+
const updatedArgs = {
|
|
274
|
+
...args,
|
|
275
|
+
options: {
|
|
276
|
+
...args.options,
|
|
277
|
+
onResponse: callback
|
|
278
|
+
}
|
|
279
|
+
};
|
|
280
|
+
const flatResponse = await directSendOperation(updatedArgs, spec);
|
|
281
|
+
return {
|
|
282
|
+
flatResponse,
|
|
283
|
+
rawResponse: {
|
|
284
|
+
statusCode: currentRawResponse!.status,
|
|
285
|
+
body: currentRawResponse!.parsedBody,
|
|
286
|
+
headers: currentRawResponse!.headers.toJSON()
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
const lro = new LroImpl(
|
|
292
|
+
sendOperation,
|
|
293
|
+
{
|
|
294
|
+
resourceGroupName,
|
|
295
|
+
elasticSanName,
|
|
296
|
+
volumeGroupName,
|
|
297
|
+
volumeName,
|
|
298
|
+
parameters,
|
|
299
|
+
options
|
|
300
|
+
},
|
|
301
|
+
updateOperationSpec
|
|
302
|
+
);
|
|
303
|
+
const poller = new LroEngine(lro, {
|
|
304
|
+
resumeFrom: options?.resumeFrom,
|
|
305
|
+
intervalInMs: options?.updateIntervalInMs,
|
|
306
|
+
lroResourceLocationConfig: "azure-async-operation"
|
|
307
|
+
});
|
|
308
|
+
await poller.poll();
|
|
309
|
+
return poller;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Update an Volume.
|
|
314
|
+
* @param resourceGroupName The name of the resource group. The name is case insensitive.
|
|
315
|
+
* @param elasticSanName The name of the ElasticSan.
|
|
316
|
+
* @param volumeGroupName The name of the VolumeGroup.
|
|
317
|
+
* @param volumeName The name of the Volume.
|
|
318
|
+
* @param parameters Volume object.
|
|
319
|
+
* @param options The options parameters.
|
|
320
|
+
*/
|
|
321
|
+
async beginUpdateAndWait(
|
|
322
|
+
resourceGroupName: string,
|
|
323
|
+
elasticSanName: string,
|
|
324
|
+
volumeGroupName: string,
|
|
325
|
+
volumeName: string,
|
|
326
|
+
parameters: VolumeUpdate,
|
|
327
|
+
options?: VolumesUpdateOptionalParams
|
|
328
|
+
): Promise<VolumesUpdateResponse> {
|
|
329
|
+
const poller = await this.beginUpdate(
|
|
330
|
+
resourceGroupName,
|
|
331
|
+
elasticSanName,
|
|
332
|
+
volumeGroupName,
|
|
333
|
+
volumeName,
|
|
334
|
+
parameters,
|
|
335
|
+
options
|
|
336
|
+
);
|
|
337
|
+
return poller.pollUntilDone();
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* Delete an Volume.
|
|
342
|
+
* @param resourceGroupName The name of the resource group. The name is case insensitive.
|
|
343
|
+
* @param elasticSanName The name of the ElasticSan.
|
|
344
|
+
* @param volumeGroupName The name of the VolumeGroup.
|
|
345
|
+
* @param volumeName The name of the Volume.
|
|
346
|
+
* @param options The options parameters.
|
|
347
|
+
*/
|
|
348
|
+
async beginDelete(
|
|
349
|
+
resourceGroupName: string,
|
|
350
|
+
elasticSanName: string,
|
|
351
|
+
volumeGroupName: string,
|
|
352
|
+
volumeName: string,
|
|
353
|
+
options?: VolumesDeleteOptionalParams
|
|
354
|
+
): Promise<PollerLike<PollOperationState<void>, void>> {
|
|
355
|
+
const directSendOperation = async (
|
|
356
|
+
args: coreClient.OperationArguments,
|
|
357
|
+
spec: coreClient.OperationSpec
|
|
358
|
+
): Promise<void> => {
|
|
359
|
+
return this.client.sendOperationRequest(args, spec);
|
|
360
|
+
};
|
|
361
|
+
const sendOperation = async (
|
|
362
|
+
args: coreClient.OperationArguments,
|
|
363
|
+
spec: coreClient.OperationSpec
|
|
364
|
+
) => {
|
|
365
|
+
let currentRawResponse:
|
|
366
|
+
| coreClient.FullOperationResponse
|
|
367
|
+
| undefined = undefined;
|
|
368
|
+
const providedCallback = args.options?.onResponse;
|
|
369
|
+
const callback: coreClient.RawResponseCallback = (
|
|
370
|
+
rawResponse: coreClient.FullOperationResponse,
|
|
371
|
+
flatResponse: unknown
|
|
372
|
+
) => {
|
|
373
|
+
currentRawResponse = rawResponse;
|
|
374
|
+
providedCallback?.(rawResponse, flatResponse);
|
|
375
|
+
};
|
|
376
|
+
const updatedArgs = {
|
|
377
|
+
...args,
|
|
378
|
+
options: {
|
|
379
|
+
...args.options,
|
|
380
|
+
onResponse: callback
|
|
381
|
+
}
|
|
382
|
+
};
|
|
383
|
+
const flatResponse = await directSendOperation(updatedArgs, spec);
|
|
384
|
+
return {
|
|
385
|
+
flatResponse,
|
|
386
|
+
rawResponse: {
|
|
387
|
+
statusCode: currentRawResponse!.status,
|
|
388
|
+
body: currentRawResponse!.parsedBody,
|
|
389
|
+
headers: currentRawResponse!.headers.toJSON()
|
|
390
|
+
}
|
|
391
|
+
};
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
const lro = new LroImpl(
|
|
395
|
+
sendOperation,
|
|
396
|
+
{
|
|
397
|
+
resourceGroupName,
|
|
398
|
+
elasticSanName,
|
|
399
|
+
volumeGroupName,
|
|
400
|
+
volumeName,
|
|
401
|
+
options
|
|
402
|
+
},
|
|
403
|
+
deleteOperationSpec
|
|
404
|
+
);
|
|
405
|
+
const poller = new LroEngine(lro, {
|
|
406
|
+
resumeFrom: options?.resumeFrom,
|
|
407
|
+
intervalInMs: options?.updateIntervalInMs,
|
|
408
|
+
lroResourceLocationConfig: "azure-async-operation"
|
|
409
|
+
});
|
|
410
|
+
await poller.poll();
|
|
411
|
+
return poller;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* Delete an Volume.
|
|
416
|
+
* @param resourceGroupName The name of the resource group. The name is case insensitive.
|
|
417
|
+
* @param elasticSanName The name of the ElasticSan.
|
|
418
|
+
* @param volumeGroupName The name of the VolumeGroup.
|
|
419
|
+
* @param volumeName The name of the Volume.
|
|
420
|
+
* @param options The options parameters.
|
|
421
|
+
*/
|
|
422
|
+
async beginDeleteAndWait(
|
|
423
|
+
resourceGroupName: string,
|
|
424
|
+
elasticSanName: string,
|
|
425
|
+
volumeGroupName: string,
|
|
426
|
+
volumeName: string,
|
|
427
|
+
options?: VolumesDeleteOptionalParams
|
|
428
|
+
): Promise<void> {
|
|
429
|
+
const poller = await this.beginDelete(
|
|
430
|
+
resourceGroupName,
|
|
431
|
+
elasticSanName,
|
|
432
|
+
volumeGroupName,
|
|
433
|
+
volumeName,
|
|
434
|
+
options
|
|
435
|
+
);
|
|
436
|
+
return poller.pollUntilDone();
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
/**
|
|
440
|
+
* Get an Volume.
|
|
441
|
+
* @param resourceGroupName The name of the resource group. The name is case insensitive.
|
|
442
|
+
* @param elasticSanName The name of the ElasticSan.
|
|
443
|
+
* @param volumeGroupName The name of the VolumeGroup.
|
|
444
|
+
* @param volumeName The name of the Volume.
|
|
445
|
+
* @param options The options parameters.
|
|
446
|
+
*/
|
|
447
|
+
get(
|
|
448
|
+
resourceGroupName: string,
|
|
449
|
+
elasticSanName: string,
|
|
450
|
+
volumeGroupName: string,
|
|
451
|
+
volumeName: string,
|
|
452
|
+
options?: VolumesGetOptionalParams
|
|
453
|
+
): Promise<VolumesGetResponse> {
|
|
454
|
+
return this.client.sendOperationRequest(
|
|
455
|
+
{
|
|
456
|
+
resourceGroupName,
|
|
457
|
+
elasticSanName,
|
|
458
|
+
volumeGroupName,
|
|
459
|
+
volumeName,
|
|
460
|
+
options
|
|
461
|
+
},
|
|
462
|
+
getOperationSpec
|
|
463
|
+
);
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/**
|
|
467
|
+
* List Volumes in a VolumeGroup.
|
|
468
|
+
* @param resourceGroupName The name of the resource group. The name is case insensitive.
|
|
469
|
+
* @param elasticSanName The name of the ElasticSan.
|
|
470
|
+
* @param volumeGroupName The name of the VolumeGroup.
|
|
471
|
+
* @param options The options parameters.
|
|
472
|
+
*/
|
|
473
|
+
private _listByVolumeGroup(
|
|
474
|
+
resourceGroupName: string,
|
|
475
|
+
elasticSanName: string,
|
|
476
|
+
volumeGroupName: string,
|
|
477
|
+
options?: VolumesListByVolumeGroupOptionalParams
|
|
478
|
+
): Promise<VolumesListByVolumeGroupResponse> {
|
|
479
|
+
return this.client.sendOperationRequest(
|
|
480
|
+
{ resourceGroupName, elasticSanName, volumeGroupName, options },
|
|
481
|
+
listByVolumeGroupOperationSpec
|
|
482
|
+
);
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* ListByVolumeGroupNext
|
|
487
|
+
* @param resourceGroupName The name of the resource group. The name is case insensitive.
|
|
488
|
+
* @param elasticSanName The name of the ElasticSan.
|
|
489
|
+
* @param volumeGroupName The name of the VolumeGroup.
|
|
490
|
+
* @param nextLink The nextLink from the previous successful call to the ListByVolumeGroup method.
|
|
491
|
+
* @param options The options parameters.
|
|
492
|
+
*/
|
|
493
|
+
private _listByVolumeGroupNext(
|
|
494
|
+
resourceGroupName: string,
|
|
495
|
+
elasticSanName: string,
|
|
496
|
+
volumeGroupName: string,
|
|
497
|
+
nextLink: string,
|
|
498
|
+
options?: VolumesListByVolumeGroupNextOptionalParams
|
|
499
|
+
): Promise<VolumesListByVolumeGroupNextResponse> {
|
|
500
|
+
return this.client.sendOperationRequest(
|
|
501
|
+
{ resourceGroupName, elasticSanName, volumeGroupName, nextLink, options },
|
|
502
|
+
listByVolumeGroupNextOperationSpec
|
|
503
|
+
);
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
// Operation Specifications
|
|
507
|
+
const serializer = coreClient.createSerializer(Mappers, /* isXml */ false);
|
|
508
|
+
|
|
509
|
+
const createOperationSpec: coreClient.OperationSpec = {
|
|
510
|
+
path:
|
|
511
|
+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}/volumes/{volumeName}",
|
|
512
|
+
httpMethod: "PUT",
|
|
513
|
+
responses: {
|
|
514
|
+
200: {
|
|
515
|
+
bodyMapper: Mappers.Volume
|
|
516
|
+
},
|
|
517
|
+
201: {
|
|
518
|
+
bodyMapper: Mappers.Volume
|
|
519
|
+
},
|
|
520
|
+
202: {
|
|
521
|
+
bodyMapper: Mappers.Volume
|
|
522
|
+
},
|
|
523
|
+
204: {
|
|
524
|
+
bodyMapper: Mappers.Volume
|
|
525
|
+
},
|
|
526
|
+
default: {
|
|
527
|
+
bodyMapper: Mappers.ErrorModel
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
requestBody: Parameters.parameters4,
|
|
531
|
+
queryParameters: [Parameters.apiVersion],
|
|
532
|
+
urlParameters: [
|
|
533
|
+
Parameters.$host,
|
|
534
|
+
Parameters.subscriptionId,
|
|
535
|
+
Parameters.resourceGroupName,
|
|
536
|
+
Parameters.elasticSanName,
|
|
537
|
+
Parameters.volumeGroupName,
|
|
538
|
+
Parameters.volumeName
|
|
539
|
+
],
|
|
540
|
+
headerParameters: [Parameters.accept, Parameters.contentType],
|
|
541
|
+
mediaType: "json",
|
|
542
|
+
serializer
|
|
543
|
+
};
|
|
544
|
+
const updateOperationSpec: coreClient.OperationSpec = {
|
|
545
|
+
path:
|
|
546
|
+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}/volumes/{volumeName}",
|
|
547
|
+
httpMethod: "PATCH",
|
|
548
|
+
responses: {
|
|
549
|
+
200: {
|
|
550
|
+
bodyMapper: Mappers.Volume
|
|
551
|
+
},
|
|
552
|
+
201: {
|
|
553
|
+
bodyMapper: Mappers.Volume
|
|
554
|
+
},
|
|
555
|
+
202: {
|
|
556
|
+
bodyMapper: Mappers.Volume
|
|
557
|
+
},
|
|
558
|
+
204: {
|
|
559
|
+
bodyMapper: Mappers.Volume
|
|
560
|
+
},
|
|
561
|
+
default: {
|
|
562
|
+
bodyMapper: Mappers.ErrorModel
|
|
563
|
+
}
|
|
564
|
+
},
|
|
565
|
+
requestBody: Parameters.parameters5,
|
|
566
|
+
queryParameters: [Parameters.apiVersion],
|
|
567
|
+
urlParameters: [
|
|
568
|
+
Parameters.$host,
|
|
569
|
+
Parameters.subscriptionId,
|
|
570
|
+
Parameters.resourceGroupName,
|
|
571
|
+
Parameters.elasticSanName,
|
|
572
|
+
Parameters.volumeGroupName,
|
|
573
|
+
Parameters.volumeName
|
|
574
|
+
],
|
|
575
|
+
headerParameters: [Parameters.accept, Parameters.contentType],
|
|
576
|
+
mediaType: "json",
|
|
577
|
+
serializer
|
|
578
|
+
};
|
|
579
|
+
const deleteOperationSpec: coreClient.OperationSpec = {
|
|
580
|
+
path:
|
|
581
|
+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}/volumes/{volumeName}",
|
|
582
|
+
httpMethod: "DELETE",
|
|
583
|
+
responses: {
|
|
584
|
+
200: {},
|
|
585
|
+
201: {},
|
|
586
|
+
202: {},
|
|
587
|
+
204: {},
|
|
588
|
+
default: {
|
|
589
|
+
bodyMapper: Mappers.ErrorModel
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
queryParameters: [Parameters.apiVersion],
|
|
593
|
+
urlParameters: [
|
|
594
|
+
Parameters.$host,
|
|
595
|
+
Parameters.subscriptionId,
|
|
596
|
+
Parameters.resourceGroupName,
|
|
597
|
+
Parameters.elasticSanName,
|
|
598
|
+
Parameters.volumeGroupName,
|
|
599
|
+
Parameters.volumeName
|
|
600
|
+
],
|
|
601
|
+
headerParameters: [Parameters.accept],
|
|
602
|
+
serializer
|
|
603
|
+
};
|
|
604
|
+
const getOperationSpec: coreClient.OperationSpec = {
|
|
605
|
+
path:
|
|
606
|
+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}/volumes/{volumeName}",
|
|
607
|
+
httpMethod: "GET",
|
|
608
|
+
responses: {
|
|
609
|
+
200: {
|
|
610
|
+
bodyMapper: Mappers.Volume
|
|
611
|
+
},
|
|
612
|
+
default: {
|
|
613
|
+
bodyMapper: Mappers.ErrorModel
|
|
614
|
+
}
|
|
615
|
+
},
|
|
616
|
+
queryParameters: [Parameters.apiVersion],
|
|
617
|
+
urlParameters: [
|
|
618
|
+
Parameters.$host,
|
|
619
|
+
Parameters.subscriptionId,
|
|
620
|
+
Parameters.resourceGroupName,
|
|
621
|
+
Parameters.elasticSanName,
|
|
622
|
+
Parameters.volumeGroupName,
|
|
623
|
+
Parameters.volumeName
|
|
624
|
+
],
|
|
625
|
+
headerParameters: [Parameters.accept],
|
|
626
|
+
serializer
|
|
627
|
+
};
|
|
628
|
+
const listByVolumeGroupOperationSpec: coreClient.OperationSpec = {
|
|
629
|
+
path:
|
|
630
|
+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}/volumes",
|
|
631
|
+
httpMethod: "GET",
|
|
632
|
+
responses: {
|
|
633
|
+
200: {
|
|
634
|
+
bodyMapper: Mappers.VolumeList
|
|
635
|
+
},
|
|
636
|
+
default: {
|
|
637
|
+
bodyMapper: Mappers.ErrorModel
|
|
638
|
+
}
|
|
639
|
+
},
|
|
640
|
+
queryParameters: [Parameters.apiVersion],
|
|
641
|
+
urlParameters: [
|
|
642
|
+
Parameters.$host,
|
|
643
|
+
Parameters.subscriptionId,
|
|
644
|
+
Parameters.resourceGroupName,
|
|
645
|
+
Parameters.elasticSanName,
|
|
646
|
+
Parameters.volumeGroupName
|
|
647
|
+
],
|
|
648
|
+
headerParameters: [Parameters.accept],
|
|
649
|
+
serializer
|
|
650
|
+
};
|
|
651
|
+
const listByVolumeGroupNextOperationSpec: coreClient.OperationSpec = {
|
|
652
|
+
path: "{nextLink}",
|
|
653
|
+
httpMethod: "GET",
|
|
654
|
+
responses: {
|
|
655
|
+
200: {
|
|
656
|
+
bodyMapper: Mappers.VolumeList
|
|
657
|
+
},
|
|
658
|
+
default: {
|
|
659
|
+
bodyMapper: Mappers.ErrorModel
|
|
660
|
+
}
|
|
661
|
+
},
|
|
662
|
+
queryParameters: [Parameters.apiVersion],
|
|
663
|
+
urlParameters: [
|
|
664
|
+
Parameters.$host,
|
|
665
|
+
Parameters.subscriptionId,
|
|
666
|
+
Parameters.resourceGroupName,
|
|
667
|
+
Parameters.elasticSanName,
|
|
668
|
+
Parameters.nextLink,
|
|
669
|
+
Parameters.volumeGroupName
|
|
670
|
+
],
|
|
671
|
+
headerParameters: [Parameters.accept],
|
|
672
|
+
serializer
|
|
673
|
+
};
|