@azure/arm-elasticsan 1.0.0-beta.2 → 1.0.0

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.
Files changed (121) hide show
  1. package/CHANGELOG.md +2 -66
  2. package/LICENSE +1 -1
  3. package/README.md +1 -1
  4. package/dist/index.js +2138 -1227
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.min.js +1 -1
  7. package/dist/index.min.js.map +1 -1
  8. package/dist-esm/samples-dev/elasticSansCreateSample.js +16 -11
  9. package/dist-esm/samples-dev/elasticSansCreateSample.js.map +1 -1
  10. package/dist-esm/samples-dev/elasticSansDeleteSample.js +2 -2
  11. package/dist-esm/samples-dev/elasticSansGetSample.js +2 -2
  12. package/dist-esm/samples-dev/elasticSansListByResourceGroupSample.js +8 -18
  13. package/dist-esm/samples-dev/elasticSansListByResourceGroupSample.js.map +1 -1
  14. package/dist-esm/samples-dev/elasticSansListBySubscriptionSample.js +8 -18
  15. package/dist-esm/samples-dev/elasticSansListBySubscriptionSample.js.map +1 -1
  16. package/dist-esm/samples-dev/elasticSansUpdateSample.js +8 -5
  17. package/dist-esm/samples-dev/elasticSansUpdateSample.js.map +1 -1
  18. package/dist-esm/samples-dev/operationsListSample.js +8 -18
  19. package/dist-esm/samples-dev/operationsListSample.js.map +1 -1
  20. package/dist-esm/samples-dev/privateEndpointConnectionsCreateSample.js +11 -13
  21. package/dist-esm/samples-dev/privateEndpointConnectionsCreateSample.js.map +1 -1
  22. package/dist-esm/samples-dev/privateEndpointConnectionsDeleteSample.js +2 -2
  23. package/dist-esm/samples-dev/privateEndpointConnectionsGetSample.js +2 -2
  24. package/dist-esm/samples-dev/privateEndpointConnectionsListSample.js +8 -18
  25. package/dist-esm/samples-dev/privateEndpointConnectionsListSample.js.map +1 -1
  26. package/dist-esm/samples-dev/privateLinkResourcesListByElasticSanSample.js +2 -2
  27. package/dist-esm/samples-dev/skusListSample.js +9 -19
  28. package/dist-esm/samples-dev/skusListSample.js.map +1 -1
  29. package/dist-esm/samples-dev/volumeGroupsCreateSample.js +22 -11
  30. package/dist-esm/samples-dev/volumeGroupsCreateSample.js.map +1 -1
  31. package/dist-esm/samples-dev/volumeGroupsDeleteSample.js +2 -2
  32. package/dist-esm/samples-dev/volumeGroupsGetSample.js +2 -2
  33. package/dist-esm/samples-dev/volumeGroupsListByElasticSanSample.js +8 -18
  34. package/dist-esm/samples-dev/volumeGroupsListByElasticSanSample.js.map +1 -1
  35. package/dist-esm/samples-dev/volumeGroupsUpdateSample.js +22 -11
  36. package/dist-esm/samples-dev/volumeGroupsUpdateSample.js.map +1 -1
  37. package/dist-esm/samples-dev/volumeSnapshotsCreateSample.d.ts +2 -0
  38. package/dist-esm/samples-dev/volumeSnapshotsCreateSample.d.ts.map +1 -0
  39. package/dist-esm/samples-dev/volumeSnapshotsCreateSample.js +74 -0
  40. package/dist-esm/samples-dev/volumeSnapshotsCreateSample.js.map +1 -0
  41. package/dist-esm/samples-dev/volumeSnapshotsDeleteSample.d.ts +2 -0
  42. package/dist-esm/samples-dev/volumeSnapshotsDeleteSample.d.ts.map +1 -0
  43. package/dist-esm/samples-dev/volumeSnapshotsDeleteSample.js +60 -0
  44. package/dist-esm/samples-dev/volumeSnapshotsDeleteSample.js.map +1 -0
  45. package/dist-esm/samples-dev/volumeSnapshotsGetSample.d.ts +2 -0
  46. package/dist-esm/samples-dev/volumeSnapshotsGetSample.d.ts.map +1 -0
  47. package/dist-esm/samples-dev/volumeSnapshotsGetSample.js +60 -0
  48. package/dist-esm/samples-dev/volumeSnapshotsGetSample.js.map +1 -0
  49. package/dist-esm/samples-dev/volumeSnapshotsListByVolumeGroupSample.d.ts +2 -0
  50. package/dist-esm/samples-dev/volumeSnapshotsListByVolumeGroupSample.d.ts.map +1 -0
  51. package/dist-esm/samples-dev/volumeSnapshotsListByVolumeGroupSample.js +92 -0
  52. package/dist-esm/samples-dev/volumeSnapshotsListByVolumeGroupSample.js.map +1 -0
  53. package/dist-esm/samples-dev/volumesCreateSample.js +8 -5
  54. package/dist-esm/samples-dev/volumesCreateSample.js.map +1 -1
  55. package/dist-esm/samples-dev/volumesDeleteSample.js +9 -3
  56. package/dist-esm/samples-dev/volumesDeleteSample.js.map +1 -1
  57. package/dist-esm/samples-dev/volumesGetSample.js +2 -2
  58. package/dist-esm/samples-dev/volumesListByVolumeGroupSample.js +8 -18
  59. package/dist-esm/samples-dev/volumesListByVolumeGroupSample.js.map +1 -1
  60. package/dist-esm/samples-dev/volumesUpdateSample.js +3 -3
  61. package/dist-esm/samples-dev/volumesUpdateSample.js.map +1 -1
  62. package/dist-esm/src/elasticSanManagement.d.ts +2 -1
  63. package/dist-esm/src/elasticSanManagement.d.ts.map +1 -1
  64. package/dist-esm/src/elasticSanManagement.js +4 -3
  65. package/dist-esm/src/elasticSanManagement.js.map +1 -1
  66. package/dist-esm/src/models/index.d.ts +420 -104
  67. package/dist-esm/src/models/index.d.ts.map +1 -1
  68. package/dist-esm/src/models/index.js +56 -0
  69. package/dist-esm/src/models/index.js.map +1 -1
  70. package/dist-esm/src/models/mappers.d.ts +19 -0
  71. package/dist-esm/src/models/mappers.d.ts.map +1 -1
  72. package/dist-esm/src/models/mappers.js +636 -189
  73. package/dist-esm/src/models/mappers.js.map +1 -1
  74. package/dist-esm/src/models/parameters.d.ts +4 -0
  75. package/dist-esm/src/models/parameters.d.ts.map +1 -1
  76. package/dist-esm/src/models/parameters.js +39 -2
  77. package/dist-esm/src/models/parameters.js.map +1 -1
  78. package/dist-esm/src/operations/elasticSans.js +6 -16
  79. package/dist-esm/src/operations/elasticSans.js.map +1 -1
  80. package/dist-esm/src/operations/index.d.ts +1 -0
  81. package/dist-esm/src/operations/index.d.ts.map +1 -1
  82. package/dist-esm/src/operations/index.js +1 -0
  83. package/dist-esm/src/operations/index.js.map +1 -1
  84. package/dist-esm/src/operations/operations.js +3 -8
  85. package/dist-esm/src/operations/operations.js.map +1 -1
  86. package/dist-esm/src/operations/privateEndpointConnections.js +3 -8
  87. package/dist-esm/src/operations/privateEndpointConnections.js.map +1 -1
  88. package/dist-esm/src/operations/skus.js +3 -8
  89. package/dist-esm/src/operations/skus.js.map +1 -1
  90. package/dist-esm/src/operations/volumeGroups.js +3 -8
  91. package/dist-esm/src/operations/volumeGroups.js.map +1 -1
  92. package/dist-esm/src/operations/volumeSnapshots.d.ts +89 -0
  93. package/dist-esm/src/operations/volumeSnapshots.d.ts.map +1 -0
  94. package/dist-esm/src/operations/volumeSnapshots.js +390 -0
  95. package/dist-esm/src/operations/volumeSnapshots.js.map +1 -0
  96. package/dist-esm/src/operations/volumes.js +8 -9
  97. package/dist-esm/src/operations/volumes.js.map +1 -1
  98. package/dist-esm/src/operationsInterfaces/index.d.ts +1 -0
  99. package/dist-esm/src/operationsInterfaces/index.d.ts.map +1 -1
  100. package/dist-esm/src/operationsInterfaces/index.js +1 -0
  101. package/dist-esm/src/operationsInterfaces/index.js.map +1 -1
  102. package/dist-esm/src/operationsInterfaces/volumeSnapshots.d.ts +62 -0
  103. package/dist-esm/src/operationsInterfaces/volumeSnapshots.d.ts.map +1 -0
  104. package/dist-esm/src/operationsInterfaces/volumeSnapshots.js +9 -0
  105. package/dist-esm/src/operationsInterfaces/volumeSnapshots.js.map +1 -0
  106. package/dist-esm/test/elasticsan_examples.spec.js +40 -16
  107. package/dist-esm/test/elasticsan_examples.spec.js.map +1 -1
  108. package/package.json +15 -19
  109. package/review/arm-elasticsan.api.md +261 -35
  110. package/src/elasticSanManagement.ts +8 -4
  111. package/src/models/index.ts +461 -109
  112. package/src/models/mappers.ts +695 -247
  113. package/src/models/parameters.ts +44 -2
  114. package/src/operations/index.ts +1 -0
  115. package/src/operations/volumeSnapshots.ts +551 -0
  116. package/src/operations/volumes.ts +5 -1
  117. package/src/operationsInterfaces/index.ts +1 -0
  118. package/src/operationsInterfaces/volumeSnapshots.ts +121 -0
  119. package/types/arm-elasticsan.d.ts +518 -103
  120. package/types/tsdoc-metadata.json +1 -1
  121. package/rollup.config.js +0 -122
@@ -182,6 +182,54 @@ export interface ElasticSanList {
182
182
  */
183
183
  readonly nextLink?: string;
184
184
  }
185
+ /** Elastic San response properties. */
186
+ export interface ElasticSanProperties {
187
+ /** resource sku */
188
+ sku: Sku;
189
+ /** Logical zone for Elastic San resource; example: ["1"]. */
190
+ availabilityZones?: string[];
191
+ /**
192
+ * State of the operation on the resource.
193
+ * NOTE: This property will not be serialized. It can only be populated by the server.
194
+ */
195
+ readonly provisioningState?: ProvisioningStates;
196
+ /** Base size of the Elastic San appliance in TiB. */
197
+ baseSizeTiB: number;
198
+ /** Extended size of the Elastic San appliance in TiB. */
199
+ extendedCapacitySizeTiB: number;
200
+ /**
201
+ * Total size of the provisioned Volumes in GiB.
202
+ * NOTE: This property will not be serialized. It can only be populated by the server.
203
+ */
204
+ readonly totalVolumeSizeGiB?: number;
205
+ /**
206
+ * Total number of volume groups in this Elastic San appliance.
207
+ * NOTE: This property will not be serialized. It can only be populated by the server.
208
+ */
209
+ readonly volumeGroupCount?: number;
210
+ /**
211
+ * Total Provisioned IOPS of the Elastic San appliance.
212
+ * NOTE: This property will not be serialized. It can only be populated by the server.
213
+ */
214
+ readonly totalIops?: number;
215
+ /**
216
+ * Total Provisioned MBps Elastic San appliance.
217
+ * NOTE: This property will not be serialized. It can only be populated by the server.
218
+ */
219
+ readonly totalMBps?: number;
220
+ /**
221
+ * Total size of the Elastic San appliance in TB.
222
+ * NOTE: This property will not be serialized. It can only be populated by the server.
223
+ */
224
+ readonly totalSizeTiB?: number;
225
+ /**
226
+ * The list of Private Endpoint Connections.
227
+ * NOTE: This property will not be serialized. It can only be populated by the server.
228
+ */
229
+ readonly privateEndpointConnections?: PrivateEndpointConnection[];
230
+ /** Allow or disallow public network access to ElasticSan. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. */
231
+ publicNetworkAccess?: PublicNetworkAccess;
232
+ }
185
233
  /** The SKU name. Required for account creation; optional for update. */
186
234
  export interface Sku {
187
235
  /** The sku name. */
@@ -189,6 +237,20 @@ export interface Sku {
189
237
  /** The sku tier. */
190
238
  tier?: SkuTier;
191
239
  }
240
+ /** Response for PrivateEndpoint connection properties */
241
+ export interface PrivateEndpointConnectionProperties {
242
+ /**
243
+ * Provisioning State of Private Endpoint connection resource
244
+ * NOTE: This property will not be serialized. It can only be populated by the server.
245
+ */
246
+ readonly provisioningState?: ProvisioningStates;
247
+ /** Private Endpoint resource */
248
+ privateEndpoint?: PrivateEndpoint;
249
+ /** Private Link Service Connection State. */
250
+ privateLinkServiceConnectionState: PrivateLinkServiceConnectionState;
251
+ /** List of resources private endpoint is mapped */
252
+ groupIds?: string[];
253
+ }
192
254
  /** Response for PrivateEndpoint */
193
255
  export interface PrivateEndpoint {
194
256
  /**
@@ -246,14 +308,21 @@ export interface SystemData {
246
308
  }
247
309
  /** Response for ElasticSan update request. */
248
310
  export interface ElasticSanUpdate {
311
+ /** Properties of ElasticSan. */
312
+ properties?: ElasticSanUpdateProperties;
249
313
  /** Update tags */
250
314
  tags?: {
251
315
  [propertyName: string]: string;
252
316
  };
317
+ }
318
+ /** Elastic San update properties. */
319
+ export interface ElasticSanUpdateProperties {
253
320
  /** Base size of the Elastic San appliance in TiB. */
254
321
  baseSizeTiB?: number;
255
322
  /** Extended size of the Elastic San appliance in TiB. */
256
323
  extendedCapacitySizeTiB?: number;
324
+ /** Allow or disallow public network access to ElasticSan Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. */
325
+ publicNetworkAccess?: PublicNetworkAccess;
257
326
  }
258
327
  /** List of Volume Groups */
259
328
  export interface VolumeGroupList {
@@ -265,6 +334,95 @@ export interface VolumeGroupList {
265
334
  */
266
335
  readonly nextLink?: string;
267
336
  }
337
+ /** Identity for the resource. */
338
+ export interface Identity {
339
+ /**
340
+ * The principal ID of resource identity.
341
+ * NOTE: This property will not be serialized. It can only be populated by the server.
342
+ */
343
+ readonly principalId?: string;
344
+ /**
345
+ * The tenant ID of resource.
346
+ * NOTE: This property will not be serialized. It can only be populated by the server.
347
+ */
348
+ readonly tenantId?: string;
349
+ /** The identity type. */
350
+ type: IdentityType;
351
+ /** Gets or sets a list of key value pairs that describe the set of User Assigned identities that will be used with this volume group. The key is the ARM resource identifier of the identity. */
352
+ userAssignedIdentities?: {
353
+ [propertyName: string]: UserAssignedIdentity;
354
+ };
355
+ }
356
+ /** UserAssignedIdentity for the resource. */
357
+ export interface UserAssignedIdentity {
358
+ /**
359
+ * The principal ID of the identity.
360
+ * NOTE: This property will not be serialized. It can only be populated by the server.
361
+ */
362
+ readonly principalId?: string;
363
+ /**
364
+ * The client ID of the identity.
365
+ * NOTE: This property will not be serialized. It can only be populated by the server.
366
+ */
367
+ readonly clientId?: string;
368
+ }
369
+ /** VolumeGroup response properties. */
370
+ export interface VolumeGroupProperties {
371
+ /**
372
+ * State of the operation on the resource.
373
+ * NOTE: This property will not be serialized. It can only be populated by the server.
374
+ */
375
+ readonly provisioningState?: ProvisioningStates;
376
+ /** Type of storage target */
377
+ protocolType?: StorageTargetType;
378
+ /** Type of encryption */
379
+ encryption?: EncryptionType;
380
+ /** Encryption Properties describing Key Vault and Identity information */
381
+ encryptionProperties?: EncryptionProperties;
382
+ /** A collection of rules governing the accessibility from specific network locations. */
383
+ networkAcls?: NetworkRuleSet;
384
+ /**
385
+ * The list of Private Endpoint Connections.
386
+ * NOTE: This property will not be serialized. It can only be populated by the server.
387
+ */
388
+ readonly privateEndpointConnections?: PrivateEndpointConnection[];
389
+ }
390
+ /** The encryption settings on the volume group. */
391
+ export interface EncryptionProperties {
392
+ /** Properties provided by key vault. */
393
+ keyVaultProperties?: KeyVaultProperties;
394
+ /** The identity to be used with service-side encryption at rest. */
395
+ encryptionIdentity?: EncryptionIdentity;
396
+ }
397
+ /** Properties of key vault. */
398
+ export interface KeyVaultProperties {
399
+ /** The name of KeyVault key. */
400
+ keyName?: string;
401
+ /** The version of KeyVault key. */
402
+ keyVersion?: string;
403
+ /** The Uri of KeyVault. */
404
+ keyVaultUri?: string;
405
+ /**
406
+ * The object identifier of the current versioned Key Vault Key in use.
407
+ * NOTE: This property will not be serialized. It can only be populated by the server.
408
+ */
409
+ readonly currentVersionedKeyIdentifier?: string;
410
+ /**
411
+ * Timestamp of last rotation of the Key Vault Key.
412
+ * NOTE: This property will not be serialized. It can only be populated by the server.
413
+ */
414
+ readonly lastKeyRotationTimestamp?: Date;
415
+ /**
416
+ * This is a read only property that represents the expiration time of the current version of the customer managed key used for encryption.
417
+ * NOTE: This property will not be serialized. It can only be populated by the server.
418
+ */
419
+ readonly currentVersionedKeyExpirationTimestamp?: Date;
420
+ }
421
+ /** Encryption identity for the volume group. */
422
+ export interface EncryptionIdentity {
423
+ /** Resource identifier of the UserAssigned identity to be associated with server-side encryption on the volume group. */
424
+ encryptionUserAssignedIdentity?: string;
425
+ }
268
426
  /** A set of rules governing the network accessibility. */
269
427
  export interface NetworkRuleSet {
270
428
  /** The list of virtual network rules. */
@@ -275,28 +433,56 @@ export interface VirtualNetworkRule {
275
433
  /** Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}. */
276
434
  virtualNetworkResourceId: string;
277
435
  /** The action of virtual network rule. */
278
- action?: "Allow";
279
- /**
280
- * Gets the state of virtual network rule.
281
- * NOTE: This property will not be serialized. It can only be populated by the server.
282
- */
283
- readonly state?: State;
436
+ action?: Action;
284
437
  }
285
438
  /** Volume Group request. */
286
439
  export interface VolumeGroupUpdate {
440
+ /** The identity of the resource. */
441
+ identity?: Identity;
442
+ /** Properties of VolumeGroup. */
443
+ properties?: VolumeGroupUpdateProperties;
444
+ }
445
+ /** VolumeGroup response properties. */
446
+ export interface VolumeGroupUpdateProperties {
287
447
  /** Type of storage target */
288
448
  protocolType?: StorageTargetType;
289
449
  /** Type of encryption */
290
450
  encryption?: EncryptionType;
451
+ /** Encryption Properties describing Key Vault and Identity information */
452
+ encryptionProperties?: EncryptionProperties;
291
453
  /** A collection of rules governing the accessibility from specific network locations. */
292
454
  networkAcls?: NetworkRuleSet;
293
455
  }
456
+ /** Volume response properties. */
457
+ export interface VolumeProperties {
458
+ /**
459
+ * Unique Id of the volume in GUID format
460
+ * NOTE: This property will not be serialized. It can only be populated by the server.
461
+ */
462
+ readonly volumeId?: string;
463
+ /** State of the operation on the resource. */
464
+ creationData?: SourceCreationData;
465
+ /** Volume size. */
466
+ sizeGiB: number;
467
+ /**
468
+ * Storage target information
469
+ * NOTE: This property will not be serialized. It can only be populated by the server.
470
+ */
471
+ readonly storageTarget?: IscsiTargetInfo;
472
+ /** Parent resource information. */
473
+ managedBy?: ManagedByInfo;
474
+ /**
475
+ * State of the operation on the resource.
476
+ * NOTE: This property will not be serialized. It can only be populated by the server.
477
+ */
478
+ readonly provisioningState?: ProvisioningStates;
479
+ }
294
480
  /** Data source used when creating the volume. */
295
481
  export interface SourceCreationData {
296
482
  /** This enumerates the possible sources of a volume creation. */
297
- createSource?: "None";
298
- /** If createOption is Copy, this is the ARM id of the source snapshot or disk. If createOption is Restore, this is the ARM-like id of the source disk restore point. */
299
- sourceUri?: string;
483
+ createSource?: VolumeCreateOption;
484
+ /** Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" */
485
+ sourceId?: string;
300
486
  }
301
487
  /** Iscsi target information */
302
488
  export interface IscsiTargetInfo {
@@ -323,10 +509,22 @@ export interface IscsiTargetInfo {
323
509
  /** Operational status of the iSCSI Target. */
324
510
  status?: OperationalStatus;
325
511
  }
512
+ /** Parent resource information. */
513
+ export interface ManagedByInfo {
514
+ /** Resource ID of the resource managing the volume, this is a restricted field and can only be set for internal use. */
515
+ resourceId?: string;
516
+ }
326
517
  /** Response for Volume request. */
327
518
  export interface VolumeUpdate {
519
+ /** Properties of Volume. */
520
+ properties?: VolumeUpdateProperties;
521
+ }
522
+ /** Volume response properties. */
523
+ export interface VolumeUpdateProperties {
328
524
  /** Volume size. */
329
525
  sizeGiB?: number;
526
+ /** Parent resource information. */
527
+ managedBy?: ManagedByInfo;
330
528
  }
331
529
  /** List of Volumes */
332
530
  export interface VolumeList {
@@ -358,34 +556,8 @@ export interface PrivateLinkResourceListResult {
358
556
  */
359
557
  readonly nextLink?: string;
360
558
  }
361
- /** Response for PrivateEndpoint Connection object */
362
- export interface PrivateEndpointConnection extends Resource {
363
- /**
364
- * Provisioning State of Private Endpoint connection resource
365
- * NOTE: This property will not be serialized. It can only be populated by the server.
366
- */
367
- readonly provisioningState?: ProvisioningStates;
368
- /** Private Endpoint resource */
369
- privateEndpoint?: PrivateEndpoint;
370
- /** Private Link Service Connection State. */
371
- privateLinkServiceConnectionState: PrivateLinkServiceConnectionState;
372
- /** List of resources private endpoint is mapped */
373
- groupIds?: string[];
374
- }
375
- /** The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' */
376
- export interface TrackedResource extends Resource {
377
- /** Resource tags. */
378
- tags?: {
379
- [propertyName: string]: string;
380
- };
381
- /** The geo-location where the resource lives */
382
- location: string;
383
- }
384
- /** The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */
385
- export interface ProxyResource extends Resource {
386
- }
387
- /** A private link resource */
388
- export interface PrivateLinkResource extends Resource {
559
+ /** Properties of a private link resource. */
560
+ export interface PrivateLinkResourceProperties {
389
561
  /**
390
562
  * The private link resource group id.
391
563
  * NOTE: This property will not be serialized. It can only be populated by the server.
@@ -399,87 +571,84 @@ export interface PrivateLinkResource extends Resource {
399
571
  /** The private link resource Private link DNS zone name. */
400
572
  requiredZoneNames?: string[];
401
573
  }
402
- /** Response for ElasticSan request. */
403
- export interface ElasticSan extends TrackedResource {
404
- /** resource sku */
405
- sku: Sku;
406
- /** Logical zone for Elastic San resource; example: ["1"]. */
407
- availabilityZones?: string[];
408
- /**
409
- * State of the operation on the resource.
410
- * NOTE: This property will not be serialized. It can only be populated by the server.
411
- */
412
- readonly provisioningState?: ProvisioningStates;
413
- /** Base size of the Elastic San appliance in TiB. */
414
- baseSizeTiB: number;
415
- /** Extended size of the Elastic San appliance in TiB. */
416
- extendedCapacitySizeTiB: number;
417
- /**
418
- * Total size of the provisioned Volumes in GiB.
419
- * NOTE: This property will not be serialized. It can only be populated by the server.
420
- */
421
- readonly totalVolumeSizeGiB?: number;
422
- /**
423
- * Total number of volume groups in this Elastic San appliance.
424
- * NOTE: This property will not be serialized. It can only be populated by the server.
425
- */
426
- readonly volumeGroupCount?: number;
574
+ /** List of Snapshots */
575
+ export interface SnapshotList {
576
+ /** An array of Snapshot objects. */
577
+ value?: Snapshot[];
427
578
  /**
428
- * Total Provisioned IOPS of the Elastic San appliance.
579
+ * URI to fetch the next section of the paginated response.
429
580
  * NOTE: This property will not be serialized. It can only be populated by the server.
430
581
  */
431
- readonly totalIops?: number;
582
+ readonly nextLink?: string;
583
+ }
584
+ /** Properties for Snapshot. */
585
+ export interface SnapshotProperties {
586
+ /** Data used when creating a volume snapshot. */
587
+ creationData: SnapshotCreationData;
432
588
  /**
433
- * Total Provisioned MBps Elastic San appliance.
589
+ * State of the operation on the resource.
434
590
  * NOTE: This property will not be serialized. It can only be populated by the server.
435
591
  */
436
- readonly totalMBps?: number;
592
+ readonly provisioningState?: ProvisioningStates;
437
593
  /**
438
- * Total size of the Elastic San appliance in TB.
594
+ * Size of Source Volume
439
595
  * NOTE: This property will not be serialized. It can only be populated by the server.
440
596
  */
441
- readonly totalSizeTiB?: number;
597
+ readonly sourceVolumeSizeGiB?: number;
442
598
  /**
443
- * The list of Private Endpoint Connections.
599
+ * Source Volume Name of a snapshot
444
600
  * NOTE: This property will not be serialized. It can only be populated by the server.
445
601
  */
446
- readonly privateEndpointConnections?: PrivateEndpointConnection[];
602
+ readonly volumeName?: string;
603
+ }
604
+ /** Data used when creating a volume snapshot. */
605
+ export interface SnapshotCreationData {
606
+ /** Fully qualified resource ID of the volume. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}/volumes/{volumeName}" */
607
+ sourceId: string;
608
+ }
609
+ /** Response for PrivateEndpoint Connection object */
610
+ export interface PrivateEndpointConnection extends Resource {
611
+ /** Private Endpoint Connection Properties. */
612
+ properties: PrivateEndpointConnectionProperties;
613
+ }
614
+ /** The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' */
615
+ export interface TrackedResource extends Resource {
616
+ /** Resource tags. */
617
+ tags?: {
618
+ [propertyName: string]: string;
619
+ };
620
+ /** The geo-location where the resource lives */
621
+ location: string;
622
+ }
623
+ /** The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */
624
+ export interface ProxyResource extends Resource {
625
+ }
626
+ /** A private link resource */
627
+ export interface PrivateLinkResource extends Resource {
628
+ /** Resource properties. */
629
+ properties?: PrivateLinkResourceProperties;
630
+ }
631
+ /** Response for ElasticSan request. */
632
+ export interface ElasticSan extends TrackedResource {
633
+ /** Properties of ElasticSan. */
634
+ properties: ElasticSanProperties;
447
635
  }
448
636
  /** Response for Volume Group request. */
449
637
  export interface VolumeGroup extends ProxyResource {
450
- /**
451
- * State of the operation on the resource.
452
- * NOTE: This property will not be serialized. It can only be populated by the server.
453
- */
454
- readonly provisioningState?: ProvisioningStates;
455
- /** Type of storage target */
456
- protocolType?: StorageTargetType;
457
- /** Type of encryption */
458
- encryption?: EncryptionType;
459
- /** A collection of rules governing the accessibility from specific network locations. */
460
- networkAcls?: NetworkRuleSet;
461
- /**
462
- * The list of Private Endpoint Connections.
463
- * NOTE: This property will not be serialized. It can only be populated by the server.
464
- */
465
- readonly privateEndpointConnections?: PrivateEndpointConnection[];
638
+ /** The identity of the resource. */
639
+ identity?: Identity;
640
+ /** Properties of VolumeGroup. */
641
+ properties?: VolumeGroupProperties;
466
642
  }
467
643
  /** Response for Volume request. */
468
644
  export interface Volume extends ProxyResource {
469
- /**
470
- * Unique Id of the volume in GUID format
471
- * NOTE: This property will not be serialized. It can only be populated by the server.
472
- */
473
- readonly volumeId?: string;
474
- /** State of the operation on the resource. */
475
- creationData?: SourceCreationData;
476
- /** Volume size. */
477
- sizeGiB: number;
478
- /**
479
- * Storage target information
480
- * NOTE: This property will not be serialized. It can only be populated by the server.
481
- */
482
- readonly storageTarget?: IscsiTargetInfo;
645
+ /** Properties of Volume. */
646
+ properties: VolumeProperties;
647
+ }
648
+ /** Response for Volume Snapshot request. */
649
+ export interface Snapshot extends ProxyResource {
650
+ /** Properties of Volume Snapshot. */
651
+ properties: SnapshotProperties;
483
652
  }
484
653
  /** Defines headers for ElasticSans_update operation. */
485
654
  export interface ElasticSansUpdateHeaders {
@@ -509,6 +678,10 @@ export interface VolumesDeleteHeaders {
509
678
  export interface PrivateEndpointConnectionsDeleteHeaders {
510
679
  location?: string;
511
680
  }
681
+ /** Defines headers for VolumeSnapshots_delete operation. */
682
+ export interface VolumeSnapshotsDeleteHeaders {
683
+ location?: string;
684
+ }
512
685
  /** Known values of {@link Origin} that the service accepts. */
513
686
  export declare enum KnownOrigin {
514
687
  /** User */
@@ -648,6 +821,41 @@ export declare enum KnownCreatedByType {
648
821
  * **Key**
649
822
  */
650
823
  export type CreatedByType = string;
824
+ /** Known values of {@link PublicNetworkAccess} that the service accepts. */
825
+ export declare enum KnownPublicNetworkAccess {
826
+ /** Enabled */
827
+ Enabled = "Enabled",
828
+ /** Disabled */
829
+ Disabled = "Disabled"
830
+ }
831
+ /**
832
+ * Defines values for PublicNetworkAccess. \
833
+ * {@link KnownPublicNetworkAccess} can be used interchangeably with PublicNetworkAccess,
834
+ * this enum contains the known values that the service supports.
835
+ * ### Known values supported by the service
836
+ * **Enabled** \
837
+ * **Disabled**
838
+ */
839
+ export type PublicNetworkAccess = string;
840
+ /** Known values of {@link IdentityType} that the service accepts. */
841
+ export declare enum KnownIdentityType {
842
+ /** None */
843
+ None = "None",
844
+ /** SystemAssigned */
845
+ SystemAssigned = "SystemAssigned",
846
+ /** UserAssigned */
847
+ UserAssigned = "UserAssigned"
848
+ }
849
+ /**
850
+ * Defines values for IdentityType. \
851
+ * {@link KnownIdentityType} can be used interchangeably with IdentityType,
852
+ * this enum contains the known values that the service supports.
853
+ * ### Known values supported by the service
854
+ * **None** \
855
+ * **SystemAssigned** \
856
+ * **UserAssigned**
857
+ */
858
+ export type IdentityType = string;
651
859
  /** Known values of {@link StorageTargetType} that the service accepts. */
652
860
  export declare enum KnownStorageTargetType {
653
861
  /** Iscsi */
@@ -667,16 +875,57 @@ export type StorageTargetType = string;
667
875
  /** Known values of {@link EncryptionType} that the service accepts. */
668
876
  export declare enum KnownEncryptionType {
669
877
  /** Volume is encrypted at rest with Platform managed key. It is the default encryption type. */
670
- EncryptionAtRestWithPlatformKey = "EncryptionAtRestWithPlatformKey"
878
+ EncryptionAtRestWithPlatformKey = "EncryptionAtRestWithPlatformKey",
879
+ /** Volume is encrypted at rest with Customer managed key that can be changed and revoked by a customer. */
880
+ EncryptionAtRestWithCustomerManagedKey = "EncryptionAtRestWithCustomerManagedKey"
671
881
  }
672
882
  /**
673
883
  * Defines values for EncryptionType. \
674
884
  * {@link KnownEncryptionType} can be used interchangeably with EncryptionType,
675
885
  * this enum contains the known values that the service supports.
676
886
  * ### Known values supported by the service
677
- * **EncryptionAtRestWithPlatformKey**: Volume is encrypted at rest with Platform managed key. It is the default encryption type.
887
+ * **EncryptionAtRestWithPlatformKey**: Volume is encrypted at rest with Platform managed key. It is the default encryption type. \
888
+ * **EncryptionAtRestWithCustomerManagedKey**: Volume is encrypted at rest with Customer managed key that can be changed and revoked by a customer.
678
889
  */
679
890
  export type EncryptionType = string;
891
+ /** Known values of {@link Action} that the service accepts. */
892
+ export declare enum KnownAction {
893
+ /** Allow */
894
+ Allow = "Allow"
895
+ }
896
+ /**
897
+ * Defines values for Action. \
898
+ * {@link KnownAction} can be used interchangeably with Action,
899
+ * this enum contains the known values that the service supports.
900
+ * ### Known values supported by the service
901
+ * **Allow**
902
+ */
903
+ export type Action = string;
904
+ /** Known values of {@link VolumeCreateOption} that the service accepts. */
905
+ export declare enum KnownVolumeCreateOption {
906
+ /** None */
907
+ None = "None",
908
+ /** VolumeSnapshot */
909
+ VolumeSnapshot = "VolumeSnapshot",
910
+ /** DiskSnapshot */
911
+ DiskSnapshot = "DiskSnapshot",
912
+ /** Disk */
913
+ Disk = "Disk",
914
+ /** DiskRestorePoint */
915
+ DiskRestorePoint = "DiskRestorePoint"
916
+ }
917
+ /**
918
+ * Defines values for VolumeCreateOption. \
919
+ * {@link KnownVolumeCreateOption} can be used interchangeably with VolumeCreateOption,
920
+ * this enum contains the known values that the service supports.
921
+ * ### Known values supported by the service
922
+ * **None** \
923
+ * **VolumeSnapshot** \
924
+ * **DiskSnapshot** \
925
+ * **Disk** \
926
+ * **DiskRestorePoint**
927
+ */
928
+ export type VolumeCreateOption = string;
680
929
  /** Known values of {@link OperationalStatus} that the service accepts. */
681
930
  export declare enum KnownOperationalStatus {
682
931
  /** Invalid */
@@ -711,8 +960,38 @@ export declare enum KnownOperationalStatus {
711
960
  * **Stopped (deallocated)**
712
961
  */
713
962
  export type OperationalStatus = string;
714
- /** Defines values for State. */
715
- export type State = "provisioning" | "deprovisioning" | "succeeded" | "failed" | "networkSourceDeleted";
963
+ /** Known values of {@link XMsDeleteSnapshots} that the service accepts. */
964
+ export declare enum KnownXMsDeleteSnapshots {
965
+ /** True */
966
+ True = "true",
967
+ /** False */
968
+ False = "false"
969
+ }
970
+ /**
971
+ * Defines values for XMsDeleteSnapshots. \
972
+ * {@link KnownXMsDeleteSnapshots} can be used interchangeably with XMsDeleteSnapshots,
973
+ * this enum contains the known values that the service supports.
974
+ * ### Known values supported by the service
975
+ * **true** \
976
+ * **false**
977
+ */
978
+ export type XMsDeleteSnapshots = string;
979
+ /** Known values of {@link XMsForceDelete} that the service accepts. */
980
+ export declare enum KnownXMsForceDelete {
981
+ /** True */
982
+ True = "true",
983
+ /** False */
984
+ False = "false"
985
+ }
986
+ /**
987
+ * Defines values for XMsForceDelete. \
988
+ * {@link KnownXMsForceDelete} can be used interchangeably with XMsForceDelete,
989
+ * this enum contains the known values that the service supports.
990
+ * ### Known values supported by the service
991
+ * **true** \
992
+ * **false**
993
+ */
994
+ export type XMsForceDelete = string;
716
995
  /** Optional parameters. */
717
996
  export interface OperationsListOptionalParams extends coreClient.OperationOptions {
718
997
  }
@@ -835,6 +1114,10 @@ export interface VolumesUpdateOptionalParams extends coreClient.OperationOptions
835
1114
  export type VolumesUpdateResponse = Volume;
836
1115
  /** Optional parameters. */
837
1116
  export interface VolumesDeleteOptionalParams extends coreClient.OperationOptions {
1117
+ /** Optional, used to delete snapshots under volume. Allowed value are only true or false. Default value is false. */
1118
+ xMsDeleteSnapshots?: XMsDeleteSnapshots;
1119
+ /** Optional, used to delete volume if active sessions present. Allowed value are only true or false. Default value is false. */
1120
+ xMsForceDelete?: XMsForceDelete;
838
1121
  /** Delay to wait until next poll, in milliseconds. */
839
1122
  updateIntervalInMs?: number;
840
1123
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
@@ -887,6 +1170,39 @@ export interface PrivateLinkResourcesListByElasticSanOptionalParams extends core
887
1170
  /** Contains response data for the listByElasticSan operation. */
888
1171
  export type PrivateLinkResourcesListByElasticSanResponse = PrivateLinkResourceListResult;
889
1172
  /** Optional parameters. */
1173
+ export interface VolumeSnapshotsListByVolumeGroupOptionalParams extends coreClient.OperationOptions {
1174
+ /** Specify $filter='volumeName eq <volume name>' to filter on volume. */
1175
+ filter?: string;
1176
+ }
1177
+ /** Contains response data for the listByVolumeGroup operation. */
1178
+ export type VolumeSnapshotsListByVolumeGroupResponse = SnapshotList;
1179
+ /** Optional parameters. */
1180
+ export interface VolumeSnapshotsCreateOptionalParams extends coreClient.OperationOptions {
1181
+ /** Delay to wait until next poll, in milliseconds. */
1182
+ updateIntervalInMs?: number;
1183
+ /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
1184
+ resumeFrom?: string;
1185
+ }
1186
+ /** Contains response data for the create operation. */
1187
+ export type VolumeSnapshotsCreateResponse = Snapshot;
1188
+ /** Optional parameters. */
1189
+ export interface VolumeSnapshotsDeleteOptionalParams extends coreClient.OperationOptions {
1190
+ /** Delay to wait until next poll, in milliseconds. */
1191
+ updateIntervalInMs?: number;
1192
+ /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
1193
+ resumeFrom?: string;
1194
+ }
1195
+ /** Optional parameters. */
1196
+ export interface VolumeSnapshotsGetOptionalParams extends coreClient.OperationOptions {
1197
+ }
1198
+ /** Contains response data for the get operation. */
1199
+ export type VolumeSnapshotsGetResponse = Snapshot;
1200
+ /** Optional parameters. */
1201
+ export interface VolumeSnapshotsListByVolumeGroupNextOptionalParams extends coreClient.OperationOptions {
1202
+ }
1203
+ /** Contains response data for the listByVolumeGroupNext operation. */
1204
+ export type VolumeSnapshotsListByVolumeGroupNextResponse = SnapshotList;
1205
+ /** Optional parameters. */
890
1206
  export interface ElasticSanManagementOptionalParams extends coreClient.ServiceClientOptions {
891
1207
  /** server parameter */
892
1208
  $host?: string;