@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
@@ -202,6 +202,55 @@ export interface ElasticSanList {
202
202
  readonly nextLink?: string;
203
203
  }
204
204
 
205
+ /** Elastic San response properties. */
206
+ export interface ElasticSanProperties {
207
+ /** resource sku */
208
+ sku: Sku;
209
+ /** Logical zone for Elastic San resource; example: ["1"]. */
210
+ availabilityZones?: string[];
211
+ /**
212
+ * State of the operation on the resource.
213
+ * NOTE: This property will not be serialized. It can only be populated by the server.
214
+ */
215
+ readonly provisioningState?: ProvisioningStates;
216
+ /** Base size of the Elastic San appliance in TiB. */
217
+ baseSizeTiB: number;
218
+ /** Extended size of the Elastic San appliance in TiB. */
219
+ extendedCapacitySizeTiB: number;
220
+ /**
221
+ * Total size of the provisioned Volumes in GiB.
222
+ * NOTE: This property will not be serialized. It can only be populated by the server.
223
+ */
224
+ readonly totalVolumeSizeGiB?: number;
225
+ /**
226
+ * Total number of volume groups in this Elastic San appliance.
227
+ * NOTE: This property will not be serialized. It can only be populated by the server.
228
+ */
229
+ readonly volumeGroupCount?: number;
230
+ /**
231
+ * Total Provisioned IOPS of the Elastic San appliance.
232
+ * NOTE: This property will not be serialized. It can only be populated by the server.
233
+ */
234
+ readonly totalIops?: number;
235
+ /**
236
+ * Total Provisioned MBps Elastic San appliance.
237
+ * NOTE: This property will not be serialized. It can only be populated by the server.
238
+ */
239
+ readonly totalMBps?: number;
240
+ /**
241
+ * Total size of the Elastic San appliance in TB.
242
+ * NOTE: This property will not be serialized. It can only be populated by the server.
243
+ */
244
+ readonly totalSizeTiB?: number;
245
+ /**
246
+ * The list of Private Endpoint Connections.
247
+ * NOTE: This property will not be serialized. It can only be populated by the server.
248
+ */
249
+ readonly privateEndpointConnections?: PrivateEndpointConnection[];
250
+ /** Allow or disallow public network access to ElasticSan. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. */
251
+ publicNetworkAccess?: PublicNetworkAccess;
252
+ }
253
+
205
254
  /** The SKU name. Required for account creation; optional for update. */
206
255
  export interface Sku {
207
256
  /** The sku name. */
@@ -210,6 +259,21 @@ export interface Sku {
210
259
  tier?: SkuTier;
211
260
  }
212
261
 
262
+ /** Response for PrivateEndpoint connection properties */
263
+ export interface PrivateEndpointConnectionProperties {
264
+ /**
265
+ * Provisioning State of Private Endpoint connection resource
266
+ * NOTE: This property will not be serialized. It can only be populated by the server.
267
+ */
268
+ readonly provisioningState?: ProvisioningStates;
269
+ /** Private Endpoint resource */
270
+ privateEndpoint?: PrivateEndpoint;
271
+ /** Private Link Service Connection State. */
272
+ privateLinkServiceConnectionState: PrivateLinkServiceConnectionState;
273
+ /** List of resources private endpoint is mapped */
274
+ groupIds?: string[];
275
+ }
276
+
213
277
  /** Response for PrivateEndpoint */
214
278
  export interface PrivateEndpoint {
215
279
  /**
@@ -271,12 +335,20 @@ export interface SystemData {
271
335
 
272
336
  /** Response for ElasticSan update request. */
273
337
  export interface ElasticSanUpdate {
338
+ /** Properties of ElasticSan. */
339
+ properties?: ElasticSanUpdateProperties;
274
340
  /** Update tags */
275
341
  tags?: { [propertyName: string]: string };
342
+ }
343
+
344
+ /** Elastic San update properties. */
345
+ export interface ElasticSanUpdateProperties {
276
346
  /** Base size of the Elastic San appliance in TiB. */
277
347
  baseSizeTiB?: number;
278
348
  /** Extended size of the Elastic San appliance in TiB. */
279
349
  extendedCapacitySizeTiB?: number;
350
+ /** Allow or disallow public network access to ElasticSan Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. */
351
+ publicNetworkAccess?: PublicNetworkAccess;
280
352
  }
281
353
 
282
354
  /** List of Volume Groups */
@@ -290,6 +362,99 @@ export interface VolumeGroupList {
290
362
  readonly nextLink?: string;
291
363
  }
292
364
 
365
+ /** Identity for the resource. */
366
+ export interface Identity {
367
+ /**
368
+ * The principal ID of resource identity.
369
+ * NOTE: This property will not be serialized. It can only be populated by the server.
370
+ */
371
+ readonly principalId?: string;
372
+ /**
373
+ * The tenant ID of resource.
374
+ * NOTE: This property will not be serialized. It can only be populated by the server.
375
+ */
376
+ readonly tenantId?: string;
377
+ /** The identity type. */
378
+ type: IdentityType;
379
+ /** 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. */
380
+ userAssignedIdentities?: { [propertyName: string]: UserAssignedIdentity };
381
+ }
382
+
383
+ /** UserAssignedIdentity for the resource. */
384
+ export interface UserAssignedIdentity {
385
+ /**
386
+ * The principal ID of the identity.
387
+ * NOTE: This property will not be serialized. It can only be populated by the server.
388
+ */
389
+ readonly principalId?: string;
390
+ /**
391
+ * The client ID of the identity.
392
+ * NOTE: This property will not be serialized. It can only be populated by the server.
393
+ */
394
+ readonly clientId?: string;
395
+ }
396
+
397
+ /** VolumeGroup response properties. */
398
+ export interface VolumeGroupProperties {
399
+ /**
400
+ * State of the operation on the resource.
401
+ * NOTE: This property will not be serialized. It can only be populated by the server.
402
+ */
403
+ readonly provisioningState?: ProvisioningStates;
404
+ /** Type of storage target */
405
+ protocolType?: StorageTargetType;
406
+ /** Type of encryption */
407
+ encryption?: EncryptionType;
408
+ /** Encryption Properties describing Key Vault and Identity information */
409
+ encryptionProperties?: EncryptionProperties;
410
+ /** A collection of rules governing the accessibility from specific network locations. */
411
+ networkAcls?: NetworkRuleSet;
412
+ /**
413
+ * The list of Private Endpoint Connections.
414
+ * NOTE: This property will not be serialized. It can only be populated by the server.
415
+ */
416
+ readonly privateEndpointConnections?: PrivateEndpointConnection[];
417
+ }
418
+
419
+ /** The encryption settings on the volume group. */
420
+ export interface EncryptionProperties {
421
+ /** Properties provided by key vault. */
422
+ keyVaultProperties?: KeyVaultProperties;
423
+ /** The identity to be used with service-side encryption at rest. */
424
+ encryptionIdentity?: EncryptionIdentity;
425
+ }
426
+
427
+ /** Properties of key vault. */
428
+ export interface KeyVaultProperties {
429
+ /** The name of KeyVault key. */
430
+ keyName?: string;
431
+ /** The version of KeyVault key. */
432
+ keyVersion?: string;
433
+ /** The Uri of KeyVault. */
434
+ keyVaultUri?: string;
435
+ /**
436
+ * The object identifier of the current versioned Key Vault Key in use.
437
+ * NOTE: This property will not be serialized. It can only be populated by the server.
438
+ */
439
+ readonly currentVersionedKeyIdentifier?: string;
440
+ /**
441
+ * Timestamp of last rotation of the Key Vault Key.
442
+ * NOTE: This property will not be serialized. It can only be populated by the server.
443
+ */
444
+ readonly lastKeyRotationTimestamp?: Date;
445
+ /**
446
+ * This is a read only property that represents the expiration time of the current version of the customer managed key used for encryption.
447
+ * NOTE: This property will not be serialized. It can only be populated by the server.
448
+ */
449
+ readonly currentVersionedKeyExpirationTimestamp?: Date;
450
+ }
451
+
452
+ /** Encryption identity for the volume group. */
453
+ export interface EncryptionIdentity {
454
+ /** Resource identifier of the UserAssigned identity to be associated with server-side encryption on the volume group. */
455
+ encryptionUserAssignedIdentity?: string;
456
+ }
457
+
293
458
  /** A set of rules governing the network accessibility. */
294
459
  export interface NetworkRuleSet {
295
460
  /** The list of virtual network rules. */
@@ -301,30 +466,60 @@ export interface VirtualNetworkRule {
301
466
  /** Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}. */
302
467
  virtualNetworkResourceId: string;
303
468
  /** The action of virtual network rule. */
304
- action?: "Allow";
305
- /**
306
- * Gets the state of virtual network rule.
307
- * NOTE: This property will not be serialized. It can only be populated by the server.
308
- */
309
- readonly state?: State;
469
+ action?: Action;
310
470
  }
311
471
 
312
472
  /** Volume Group request. */
313
473
  export interface VolumeGroupUpdate {
474
+ /** The identity of the resource. */
475
+ identity?: Identity;
476
+ /** Properties of VolumeGroup. */
477
+ properties?: VolumeGroupUpdateProperties;
478
+ }
479
+
480
+ /** VolumeGroup response properties. */
481
+ export interface VolumeGroupUpdateProperties {
314
482
  /** Type of storage target */
315
483
  protocolType?: StorageTargetType;
316
484
  /** Type of encryption */
317
485
  encryption?: EncryptionType;
486
+ /** Encryption Properties describing Key Vault and Identity information */
487
+ encryptionProperties?: EncryptionProperties;
318
488
  /** A collection of rules governing the accessibility from specific network locations. */
319
489
  networkAcls?: NetworkRuleSet;
320
490
  }
321
491
 
492
+ /** Volume response properties. */
493
+ export interface VolumeProperties {
494
+ /**
495
+ * Unique Id of the volume in GUID format
496
+ * NOTE: This property will not be serialized. It can only be populated by the server.
497
+ */
498
+ readonly volumeId?: string;
499
+ /** State of the operation on the resource. */
500
+ creationData?: SourceCreationData;
501
+ /** Volume size. */
502
+ sizeGiB: number;
503
+ /**
504
+ * Storage target information
505
+ * NOTE: This property will not be serialized. It can only be populated by the server.
506
+ */
507
+ readonly storageTarget?: IscsiTargetInfo;
508
+ /** Parent resource information. */
509
+ managedBy?: ManagedByInfo;
510
+ /**
511
+ * State of the operation on the resource.
512
+ * NOTE: This property will not be serialized. It can only be populated by the server.
513
+ */
514
+ readonly provisioningState?: ProvisioningStates;
515
+ }
516
+
322
517
  /** Data source used when creating the volume. */
323
518
  export interface SourceCreationData {
324
519
  /** This enumerates the possible sources of a volume creation. */
325
- createSource?: "None";
326
- /** 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. */
327
- sourceUri?: string;
520
+ createSource?: VolumeCreateOption;
521
+ /** Fully qualified resource ID for the resource. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" */
522
+ sourceId?: string;
328
523
  }
329
524
 
330
525
  /** Iscsi target information */
@@ -353,10 +548,24 @@ export interface IscsiTargetInfo {
353
548
  status?: OperationalStatus;
354
549
  }
355
550
 
551
+ /** Parent resource information. */
552
+ export interface ManagedByInfo {
553
+ /** Resource ID of the resource managing the volume, this is a restricted field and can only be set for internal use. */
554
+ resourceId?: string;
555
+ }
556
+
356
557
  /** Response for Volume request. */
357
558
  export interface VolumeUpdate {
559
+ /** Properties of Volume. */
560
+ properties?: VolumeUpdateProperties;
561
+ }
562
+
563
+ /** Volume response properties. */
564
+ export interface VolumeUpdateProperties {
358
565
  /** Volume size. */
359
566
  sizeGiB?: number;
567
+ /** Parent resource information. */
568
+ managedBy?: ManagedByInfo;
360
569
  }
361
570
 
362
571
  /** List of Volumes */
@@ -392,34 +601,8 @@ export interface PrivateLinkResourceListResult {
392
601
  readonly nextLink?: string;
393
602
  }
394
603
 
395
- /** Response for PrivateEndpoint Connection object */
396
- export interface PrivateEndpointConnection extends Resource {
397
- /**
398
- * Provisioning State of Private Endpoint connection resource
399
- * NOTE: This property will not be serialized. It can only be populated by the server.
400
- */
401
- readonly provisioningState?: ProvisioningStates;
402
- /** Private Endpoint resource */
403
- privateEndpoint?: PrivateEndpoint;
404
- /** Private Link Service Connection State. */
405
- privateLinkServiceConnectionState: PrivateLinkServiceConnectionState;
406
- /** List of resources private endpoint is mapped */
407
- groupIds?: string[];
408
- }
409
-
410
- /** The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' */
411
- export interface TrackedResource extends Resource {
412
- /** Resource tags. */
413
- tags?: { [propertyName: string]: string };
414
- /** The geo-location where the resource lives */
415
- location: string;
416
- }
417
-
418
- /** The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */
419
- export interface ProxyResource extends Resource {}
420
-
421
- /** A private link resource */
422
- export interface PrivateLinkResource extends Resource {
604
+ /** Properties of a private link resource. */
605
+ export interface PrivateLinkResourceProperties {
423
606
  /**
424
607
  * The private link resource group id.
425
608
  * NOTE: This property will not be serialized. It can only be populated by the server.
@@ -434,89 +617,91 @@ export interface PrivateLinkResource extends Resource {
434
617
  requiredZoneNames?: string[];
435
618
  }
436
619
 
437
- /** Response for ElasticSan request. */
438
- export interface ElasticSan extends TrackedResource {
439
- /** resource sku */
440
- sku: Sku;
441
- /** Logical zone for Elastic San resource; example: ["1"]. */
442
- availabilityZones?: string[];
443
- /**
444
- * State of the operation on the resource.
445
- * NOTE: This property will not be serialized. It can only be populated by the server.
446
- */
447
- readonly provisioningState?: ProvisioningStates;
448
- /** Base size of the Elastic San appliance in TiB. */
449
- baseSizeTiB: number;
450
- /** Extended size of the Elastic San appliance in TiB. */
451
- extendedCapacitySizeTiB: number;
452
- /**
453
- * Total size of the provisioned Volumes in GiB.
454
- * NOTE: This property will not be serialized. It can only be populated by the server.
455
- */
456
- readonly totalVolumeSizeGiB?: number;
620
+ /** List of Snapshots */
621
+ export interface SnapshotList {
622
+ /** An array of Snapshot objects. */
623
+ value?: Snapshot[];
457
624
  /**
458
- * Total number of volume groups in this Elastic San appliance.
459
- * NOTE: This property will not be serialized. It can only be populated by the server.
460
- */
461
- readonly volumeGroupCount?: number;
462
- /**
463
- * Total Provisioned IOPS of the Elastic San appliance.
625
+ * URI to fetch the next section of the paginated response.
464
626
  * NOTE: This property will not be serialized. It can only be populated by the server.
465
627
  */
466
- readonly totalIops?: number;
628
+ readonly nextLink?: string;
629
+ }
630
+
631
+ /** Properties for Snapshot. */
632
+ export interface SnapshotProperties {
633
+ /** Data used when creating a volume snapshot. */
634
+ creationData: SnapshotCreationData;
467
635
  /**
468
- * Total Provisioned MBps Elastic San appliance.
636
+ * State of the operation on the resource.
469
637
  * NOTE: This property will not be serialized. It can only be populated by the server.
470
638
  */
471
- readonly totalMBps?: number;
639
+ readonly provisioningState?: ProvisioningStates;
472
640
  /**
473
- * Total size of the Elastic San appliance in TB.
641
+ * Size of Source Volume
474
642
  * NOTE: This property will not be serialized. It can only be populated by the server.
475
643
  */
476
- readonly totalSizeTiB?: number;
644
+ readonly sourceVolumeSizeGiB?: number;
477
645
  /**
478
- * The list of Private Endpoint Connections.
646
+ * Source Volume Name of a snapshot
479
647
  * NOTE: This property will not be serialized. It can only be populated by the server.
480
648
  */
481
- readonly privateEndpointConnections?: PrivateEndpointConnection[];
649
+ readonly volumeName?: string;
650
+ }
651
+
652
+ /** Data used when creating a volume snapshot. */
653
+ export interface SnapshotCreationData {
654
+ /** Fully qualified resource ID of the volume. E.g. "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}/volumes/{volumeName}" */
655
+ sourceId: string;
656
+ }
657
+
658
+ /** Response for PrivateEndpoint Connection object */
659
+ export interface PrivateEndpointConnection extends Resource {
660
+ /** Private Endpoint Connection Properties. */
661
+ properties: PrivateEndpointConnectionProperties;
662
+ }
663
+
664
+ /** The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location' */
665
+ export interface TrackedResource extends Resource {
666
+ /** Resource tags. */
667
+ tags?: { [propertyName: string]: string };
668
+ /** The geo-location where the resource lives */
669
+ location: string;
670
+ }
671
+
672
+ /** The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location */
673
+ export interface ProxyResource extends Resource {}
674
+
675
+ /** A private link resource */
676
+ export interface PrivateLinkResource extends Resource {
677
+ /** Resource properties. */
678
+ properties?: PrivateLinkResourceProperties;
679
+ }
680
+
681
+ /** Response for ElasticSan request. */
682
+ export interface ElasticSan extends TrackedResource {
683
+ /** Properties of ElasticSan. */
684
+ properties: ElasticSanProperties;
482
685
  }
483
686
 
484
687
  /** Response for Volume Group request. */
485
688
  export interface VolumeGroup extends ProxyResource {
486
- /**
487
- * State of the operation on the resource.
488
- * NOTE: This property will not be serialized. It can only be populated by the server.
489
- */
490
- readonly provisioningState?: ProvisioningStates;
491
- /** Type of storage target */
492
- protocolType?: StorageTargetType;
493
- /** Type of encryption */
494
- encryption?: EncryptionType;
495
- /** A collection of rules governing the accessibility from specific network locations. */
496
- networkAcls?: NetworkRuleSet;
497
- /**
498
- * The list of Private Endpoint Connections.
499
- * NOTE: This property will not be serialized. It can only be populated by the server.
500
- */
501
- readonly privateEndpointConnections?: PrivateEndpointConnection[];
689
+ /** The identity of the resource. */
690
+ identity?: Identity;
691
+ /** Properties of VolumeGroup. */
692
+ properties?: VolumeGroupProperties;
502
693
  }
503
694
 
504
695
  /** Response for Volume request. */
505
696
  export interface Volume extends ProxyResource {
506
- /**
507
- * Unique Id of the volume in GUID format
508
- * NOTE: This property will not be serialized. It can only be populated by the server.
509
- */
510
- readonly volumeId?: string;
511
- /** State of the operation on the resource. */
512
- creationData?: SourceCreationData;
513
- /** Volume size. */
514
- sizeGiB: number;
515
- /**
516
- * Storage target information
517
- * NOTE: This property will not be serialized. It can only be populated by the server.
518
- */
519
- readonly storageTarget?: IscsiTargetInfo;
697
+ /** Properties of Volume. */
698
+ properties: VolumeProperties;
699
+ }
700
+
701
+ /** Response for Volume Snapshot request. */
702
+ export interface Snapshot extends ProxyResource {
703
+ /** Properties of Volume Snapshot. */
704
+ properties: SnapshotProperties;
520
705
  }
521
706
 
522
707
  /** Defines headers for ElasticSans_update operation. */
@@ -554,6 +739,11 @@ export interface PrivateEndpointConnectionsDeleteHeaders {
554
739
  location?: string;
555
740
  }
556
741
 
742
+ /** Defines headers for VolumeSnapshots_delete operation. */
743
+ export interface VolumeSnapshotsDeleteHeaders {
744
+ location?: string;
745
+ }
746
+
557
747
  /** Known values of {@link Origin} that the service accepts. */
558
748
  export enum KnownOrigin {
559
749
  /** User */
@@ -707,6 +897,45 @@ export enum KnownCreatedByType {
707
897
  */
708
898
  export type CreatedByType = string;
709
899
 
900
+ /** Known values of {@link PublicNetworkAccess} that the service accepts. */
901
+ export enum KnownPublicNetworkAccess {
902
+ /** Enabled */
903
+ Enabled = "Enabled",
904
+ /** Disabled */
905
+ Disabled = "Disabled"
906
+ }
907
+
908
+ /**
909
+ * Defines values for PublicNetworkAccess. \
910
+ * {@link KnownPublicNetworkAccess} can be used interchangeably with PublicNetworkAccess,
911
+ * this enum contains the known values that the service supports.
912
+ * ### Known values supported by the service
913
+ * **Enabled** \
914
+ * **Disabled**
915
+ */
916
+ export type PublicNetworkAccess = string;
917
+
918
+ /** Known values of {@link IdentityType} that the service accepts. */
919
+ export enum KnownIdentityType {
920
+ /** None */
921
+ None = "None",
922
+ /** SystemAssigned */
923
+ SystemAssigned = "SystemAssigned",
924
+ /** UserAssigned */
925
+ UserAssigned = "UserAssigned"
926
+ }
927
+
928
+ /**
929
+ * Defines values for IdentityType. \
930
+ * {@link KnownIdentityType} can be used interchangeably with IdentityType,
931
+ * this enum contains the known values that the service supports.
932
+ * ### Known values supported by the service
933
+ * **None** \
934
+ * **SystemAssigned** \
935
+ * **UserAssigned**
936
+ */
937
+ export type IdentityType = string;
938
+
710
939
  /** Known values of {@link StorageTargetType} that the service accepts. */
711
940
  export enum KnownStorageTargetType {
712
941
  /** Iscsi */
@@ -728,7 +957,9 @@ export type StorageTargetType = string;
728
957
  /** Known values of {@link EncryptionType} that the service accepts. */
729
958
  export enum KnownEncryptionType {
730
959
  /** Volume is encrypted at rest with Platform managed key. It is the default encryption type. */
731
- EncryptionAtRestWithPlatformKey = "EncryptionAtRestWithPlatformKey"
960
+ EncryptionAtRestWithPlatformKey = "EncryptionAtRestWithPlatformKey",
961
+ /** Volume is encrypted at rest with Customer managed key that can be changed and revoked by a customer. */
962
+ EncryptionAtRestWithCustomerManagedKey = "EncryptionAtRestWithCustomerManagedKey"
732
963
  }
733
964
 
734
965
  /**
@@ -736,10 +967,53 @@ export enum KnownEncryptionType {
736
967
  * {@link KnownEncryptionType} can be used interchangeably with EncryptionType,
737
968
  * this enum contains the known values that the service supports.
738
969
  * ### Known values supported by the service
739
- * **EncryptionAtRestWithPlatformKey**: Volume is encrypted at rest with Platform managed key. It is the default encryption type.
970
+ * **EncryptionAtRestWithPlatformKey**: Volume is encrypted at rest with Platform managed key. It is the default encryption type. \
971
+ * **EncryptionAtRestWithCustomerManagedKey**: Volume is encrypted at rest with Customer managed key that can be changed and revoked by a customer.
740
972
  */
741
973
  export type EncryptionType = string;
742
974
 
975
+ /** Known values of {@link Action} that the service accepts. */
976
+ export enum KnownAction {
977
+ /** Allow */
978
+ Allow = "Allow"
979
+ }
980
+
981
+ /**
982
+ * Defines values for Action. \
983
+ * {@link KnownAction} can be used interchangeably with Action,
984
+ * this enum contains the known values that the service supports.
985
+ * ### Known values supported by the service
986
+ * **Allow**
987
+ */
988
+ export type Action = string;
989
+
990
+ /** Known values of {@link VolumeCreateOption} that the service accepts. */
991
+ export enum KnownVolumeCreateOption {
992
+ /** None */
993
+ None = "None",
994
+ /** VolumeSnapshot */
995
+ VolumeSnapshot = "VolumeSnapshot",
996
+ /** DiskSnapshot */
997
+ DiskSnapshot = "DiskSnapshot",
998
+ /** Disk */
999
+ Disk = "Disk",
1000
+ /** DiskRestorePoint */
1001
+ DiskRestorePoint = "DiskRestorePoint"
1002
+ }
1003
+
1004
+ /**
1005
+ * Defines values for VolumeCreateOption. \
1006
+ * {@link KnownVolumeCreateOption} can be used interchangeably with VolumeCreateOption,
1007
+ * this enum contains the known values that the service supports.
1008
+ * ### Known values supported by the service
1009
+ * **None** \
1010
+ * **VolumeSnapshot** \
1011
+ * **DiskSnapshot** \
1012
+ * **Disk** \
1013
+ * **DiskRestorePoint**
1014
+ */
1015
+ export type VolumeCreateOption = string;
1016
+
743
1017
  /** Known values of {@link OperationalStatus} that the service accepts. */
744
1018
  export enum KnownOperationalStatus {
745
1019
  /** Invalid */
@@ -775,13 +1049,42 @@ export enum KnownOperationalStatus {
775
1049
  * **Stopped (deallocated)**
776
1050
  */
777
1051
  export type OperationalStatus = string;
778
- /** Defines values for State. */
779
- export type State =
780
- | "provisioning"
781
- | "deprovisioning"
782
- | "succeeded"
783
- | "failed"
784
- | "networkSourceDeleted";
1052
+
1053
+ /** Known values of {@link XMsDeleteSnapshots} that the service accepts. */
1054
+ export enum KnownXMsDeleteSnapshots {
1055
+ /** True */
1056
+ True = "true",
1057
+ /** False */
1058
+ False = "false"
1059
+ }
1060
+
1061
+ /**
1062
+ * Defines values for XMsDeleteSnapshots. \
1063
+ * {@link KnownXMsDeleteSnapshots} can be used interchangeably with XMsDeleteSnapshots,
1064
+ * this enum contains the known values that the service supports.
1065
+ * ### Known values supported by the service
1066
+ * **true** \
1067
+ * **false**
1068
+ */
1069
+ export type XMsDeleteSnapshots = string;
1070
+
1071
+ /** Known values of {@link XMsForceDelete} that the service accepts. */
1072
+ export enum KnownXMsForceDelete {
1073
+ /** True */
1074
+ True = "true",
1075
+ /** False */
1076
+ False = "false"
1077
+ }
1078
+
1079
+ /**
1080
+ * Defines values for XMsForceDelete. \
1081
+ * {@link KnownXMsForceDelete} can be used interchangeably with XMsForceDelete,
1082
+ * this enum contains the known values that the service supports.
1083
+ * ### Known values supported by the service
1084
+ * **true** \
1085
+ * **false**
1086
+ */
1087
+ export type XMsForceDelete = string;
785
1088
 
786
1089
  /** Optional parameters. */
787
1090
  export interface OperationsListOptionalParams
@@ -948,6 +1251,10 @@ export type VolumesUpdateResponse = Volume;
948
1251
  /** Optional parameters. */
949
1252
  export interface VolumesDeleteOptionalParams
950
1253
  extends coreClient.OperationOptions {
1254
+ /** Optional, used to delete snapshots under volume. Allowed value are only true or false. Default value is false. */
1255
+ xMsDeleteSnapshots?: XMsDeleteSnapshots;
1256
+ /** Optional, used to delete volume if active sessions present. Allowed value are only true or false. Default value is false. */
1257
+ xMsForceDelete?: XMsForceDelete;
951
1258
  /** Delay to wait until next poll, in milliseconds. */
952
1259
  updateIntervalInMs?: number;
953
1260
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
@@ -1016,6 +1323,51 @@ export interface PrivateLinkResourcesListByElasticSanOptionalParams
1016
1323
  /** Contains response data for the listByElasticSan operation. */
1017
1324
  export type PrivateLinkResourcesListByElasticSanResponse = PrivateLinkResourceListResult;
1018
1325
 
1326
+ /** Optional parameters. */
1327
+ export interface VolumeSnapshotsListByVolumeGroupOptionalParams
1328
+ extends coreClient.OperationOptions {
1329
+ /** Specify $filter='volumeName eq <volume name>' to filter on volume. */
1330
+ filter?: string;
1331
+ }
1332
+
1333
+ /** Contains response data for the listByVolumeGroup operation. */
1334
+ export type VolumeSnapshotsListByVolumeGroupResponse = SnapshotList;
1335
+
1336
+ /** Optional parameters. */
1337
+ export interface VolumeSnapshotsCreateOptionalParams
1338
+ extends coreClient.OperationOptions {
1339
+ /** Delay to wait until next poll, in milliseconds. */
1340
+ updateIntervalInMs?: number;
1341
+ /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
1342
+ resumeFrom?: string;
1343
+ }
1344
+
1345
+ /** Contains response data for the create operation. */
1346
+ export type VolumeSnapshotsCreateResponse = Snapshot;
1347
+
1348
+ /** Optional parameters. */
1349
+ export interface VolumeSnapshotsDeleteOptionalParams
1350
+ extends coreClient.OperationOptions {
1351
+ /** Delay to wait until next poll, in milliseconds. */
1352
+ updateIntervalInMs?: number;
1353
+ /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
1354
+ resumeFrom?: string;
1355
+ }
1356
+
1357
+ /** Optional parameters. */
1358
+ export interface VolumeSnapshotsGetOptionalParams
1359
+ extends coreClient.OperationOptions {}
1360
+
1361
+ /** Contains response data for the get operation. */
1362
+ export type VolumeSnapshotsGetResponse = Snapshot;
1363
+
1364
+ /** Optional parameters. */
1365
+ export interface VolumeSnapshotsListByVolumeGroupNextOptionalParams
1366
+ extends coreClient.OperationOptions {}
1367
+
1368
+ /** Contains response data for the listByVolumeGroupNext operation. */
1369
+ export type VolumeSnapshotsListByVolumeGroupNextResponse = SnapshotList;
1370
+
1019
1371
  /** Optional parameters. */
1020
1372
  export interface ElasticSanManagementOptionalParams
1021
1373
  extends coreClient.ServiceClientOptions {