Resources/mgmt-plane/L3N1YnNjcmlwdGlvbnMve30vcmVzb3VyY2Vncm91cHMve30vcHJvdmlkZXJzL21pY3Jvc29mdC5lbGFzdGljc2FuL2VsYXN0aWNzYW5zL3t9L3ZvbHVtZWdyb3Vwcy97fQ==/2024-07-01-preview.xml (1,088 lines of code) (raw):
<?xml version='1.0' encoding='utf-8'?>
<CodeGen plane="mgmt-plane">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.elasticsan/elasticsans/{}/volumegroups/{}" version="2024-07-01-preview" swagger="mgmt-plane/elasticsan/ResourceProviders/Microsoft.ElasticSan/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRWxhc3RpY1Nhbi9lbGFzdGljU2Fucy97ZWxhc3RpY1Nhbk5hbWV9L3ZvbHVtZWdyb3Vwcy97dm9sdW1lR3JvdXBOYW1lfQ==/V/MjAyNC0wNy0wMS1wcmV2aWV3"/>
<commandGroup name="elastic-san volume-group">
<command name="show" version="2024-07-01-preview">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.elasticsan/elasticsans/{}/volumegroups/{}" version="2024-07-01-preview" swagger="mgmt-plane/elasticsan/ResourceProviders/Microsoft.ElasticSan/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRWxhc3RpY1Nhbi9lbGFzdGljU2Fucy97ZWxhc3RpY1Nhbk5hbWV9L3ZvbHVtZWdyb3Vwcy97dm9sdW1lR3JvdXBOYW1lfQ==/V/MjAyNC0wNy0wMS1wcmV2aWV3"/>
<argGroup name="">
<arg type="string" var="$Path.elasticSanName" options="elastic-san-name elastic-san e" required="True" group="" idPart="name">
<help short="The name of the ElasticSan."/>
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="24" minLength="3"/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
<arg type="string" var="$Path.volumeGroupName" options="volume-group-name name n" required="True" idPart="child_name_1">
<help short="The name of the VolumeGroup."/>
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="63" minLength="3"/>
</arg>
</argGroup>
<operation operationId="VolumeGroups_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}">
<request method="get">
<path>
<param type="string" name="elasticSanName" arg="$Path.elasticSanName" required="True">
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="24" minLength="3"/>
</param>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True">
<format maxLength="90" minLength="1"/>
</param>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True">
<format minLength="1"/>
</param>
<param type="string" name="volumeGroupName" arg="$Path.volumeGroupName" required="True">
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="63" minLength="3"/>
</param>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2024-07-01-preview""/>
<format minLength="1"/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.ElasticSan/elasticSans/{}/volumegroups/{}"/>
</prop>
<prop type="IdentityObject" name="identity">
<prop readOnly="True" type="string" name="principalId"/>
<prop readOnly="True" type="string" name="tenantId"/>
<prop type="string" name="type" required="True">
<enum>
<item value=""None""/>
<item value=""SystemAssigned""/>
<item value=""UserAssigned""/>
</enum>
</prop>
<prop type="object" name="userAssignedIdentities">
<additionalProp>
<item type="object">
<prop readOnly="True" type="string" name="clientId"/>
<prop readOnly="True" type="string" name="principalId"/>
</item>
</additionalProp>
</prop>
</prop>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="deleteRetentionPolicy">
<prop type="string" name="policyState">
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="integer32" name="retentionPeriodDays">
<format minimum="0"/>
</prop>
</prop>
<prop type="string" name="encryption">
<enum>
<item value=""EncryptionAtRestWithCustomerManagedKey""/>
<item value=""EncryptionAtRestWithPlatformKey""/>
</enum>
</prop>
<prop type="object" name="encryptionProperties">
<prop type="object" name="identity">
<prop type="string" name="userAssignedIdentity"/>
</prop>
<prop type="object" name="keyVaultProperties">
<prop readOnly="True" type="dateTime" name="currentVersionedKeyExpirationTimestamp"/>
<prop readOnly="True" type="string" name="currentVersionedKeyIdentifier"/>
<prop type="string" name="keyName"/>
<prop type="string" name="keyVaultUri"/>
<prop type="string" name="keyVersion"/>
<prop readOnly="True" type="dateTime" name="lastKeyRotationTimestamp"/>
</prop>
</prop>
<prop type="boolean" name="enforceDataIntegrityCheckForIscsi"/>
<prop type="object" name="networkAcls">
<prop type="array<object>" name="virtualNetworkRules">
<item type="object">
<prop type="string" name="action">
<default value=""Allow""/>
<enum>
<item value=""Allow""/>
</enum>
</prop>
<prop type="string" name="id" required="True"/>
</item>
</prop>
</prop>
<prop readOnly="True" type="array<object>" name="privateEndpointConnections">
<item type="object">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.ElasticSan/elasticSans/{}/privateEndpointConnections/{}"/>
</prop>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="array<string>" name="groupIds">
<item type="string"/>
</prop>
<prop type="object" name="privateEndpoint">
<prop readOnly="True" type="string" name="id"/>
</prop>
<prop type="object" name="privateLinkServiceConnectionState" required="True">
<prop type="string" name="actionsRequired"/>
<prop type="string" name="description"/>
<prop type="string" name="status">
<enum>
<item value=""Approved""/>
<item value=""Failed""/>
<item value=""Pending""/>
<item value=""Rejected""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Canceled""/>
<item value=""Creating""/>
<item value=""Deleted""/>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Invalid""/>
<item value=""Pending""/>
<item value=""Restoring""/>
<item value=""SoftDeleting""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="@SystemData_read" name="systemData"/>
<prop readOnly="True" type="string" name="type"/>
</item>
</prop>
<prop type="string" name="protocolType">
<enum>
<item value=""Iscsi""/>
<item value=""None""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Canceled""/>
<item value=""Creating""/>
<item value=""Deleted""/>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Invalid""/>
<item value=""Pending""/>
<item value=""Restoring""/>
<item value=""SoftDeleting""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="object" name="systemData" cls="SystemData_read">
<prop type="dateTime" name="createdAt"/>
<prop type="string" name="createdBy"/>
<prop type="string" name="createdByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
<prop type="dateTime" name="lastModifiedAt"/>
<prop type="string" name="lastModifiedBy"/>
<prop type="string" name="lastModifiedByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@MgmtErrorFormat"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
<command name="delete" version="2024-07-01-preview" confirmation="Are you sure you want to perform this operation?">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.elasticsan/elasticsans/{}/volumegroups/{}" version="2024-07-01-preview" swagger="mgmt-plane/elasticsan/ResourceProviders/Microsoft.ElasticSan/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRWxhc3RpY1Nhbi9lbGFzdGljU2Fucy97ZWxhc3RpY1Nhbk5hbWV9L3ZvbHVtZWdyb3Vwcy97dm9sdW1lR3JvdXBOYW1lfQ==/V/MjAyNC0wNy0wMS1wcmV2aWV3"/>
<argGroup name="">
<arg type="string" var="$Path.elasticSanName" options="elastic-san-name elastic-san e" required="True" group="" idPart="name">
<help short="The name of the ElasticSan."/>
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="24" minLength="3"/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
<arg type="string" var="$Path.volumeGroupName" options="volume-group-name name n" required="True" idPart="child_name_1">
<help short="The name of the VolumeGroup."/>
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="63" minLength="3"/>
</arg>
</argGroup>
<operation operationId="VolumeGroups_Delete">
<longRunning finalStateVia="location"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}">
<request method="delete">
<path>
<param type="string" name="elasticSanName" arg="$Path.elasticSanName" required="True">
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="24" minLength="3"/>
</param>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True">
<format maxLength="90" minLength="1"/>
</param>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True">
<format minLength="1"/>
</param>
<param type="string" name="volumeGroupName" arg="$Path.volumeGroupName" required="True">
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="63" minLength="3"/>
</param>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2024-07-01-preview""/>
<format minLength="1"/>
</const>
</query>
</request>
<response statusCode="200"/>
<response statusCode="202">
<header>
<item name="Location"/>
</header>
</response>
<response statusCode="204"/>
<response isError="True">
<body>
<json>
<schema type="@MgmtErrorFormat"/>
</json>
</body>
</response>
</http>
</operation>
</command>
<command name="create" version="2024-07-01-preview">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.elasticsan/elasticsans/{}/volumegroups/{}" version="2024-07-01-preview" swagger="mgmt-plane/elasticsan/ResourceProviders/Microsoft.ElasticSan/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRWxhc3RpY1Nhbi9lbGFzdGljU2Fucy97ZWxhc3RpY1Nhbk5hbWV9L3ZvbHVtZWdyb3Vwcy97dm9sdW1lR3JvdXBOYW1lfQ==/V/MjAyNC0wNy0wMS1wcmV2aWV3"/>
<argGroup name="">
<arg type="string" var="$Path.elasticSanName" options="elastic-san-name elastic-san e" required="True" group="" idPart="name">
<help short="The name of the ElasticSan."/>
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="24" minLength="3"/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
<arg type="string" var="$Path.volumeGroupName" options="volume-group-name name n" required="True" idPart="child_name_1">
<help short="The name of the VolumeGroup."/>
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="63" minLength="3"/>
</arg>
</argGroup>
<argGroup name="DeleteRetentionPolicy">
<arg type="string" var="$parameters.properties.deleteRetentionPolicy.policyState" options="delete-retention-policy-state delete-retention-state" stage="Preview" group="DeleteRetentionPolicy">
<help short="Manage delete retention policy state"/>
<enum>
<item name="Disabled" value=""Disabled""/>
<item name="Enabled" value=""Enabled""/>
</enum>
</arg>
<arg type="integer32" var="$parameters.properties.deleteRetentionPolicy.retentionPeriodDays" options="delete-retention-period-days retention-period" stage="Preview" group="DeleteRetentionPolicy">
<help short="The number of days to retain the resources after deletion."/>
<format minimum="0"/>
</arg>
</argGroup>
<argGroup name="Parameters">
<arg type="object" var="$parameters.identity" options="identity" group="Parameters">
<help short="The identity of the resource."/>
<arg type="string" var="$parameters.identity.systemAssigned" options="mi-system-assigned system-assigned" hide="True" group="">
<blank value=""True""/>
<help short="Set the system managed identity."/>
</arg>
<arg type="string" var="$parameters.identity.type" options="type" required="True">
<help short="The identity type."/>
<enum>
<item name="None" value=""None""/>
<item name="SystemAssigned" value=""SystemAssigned""/>
<item name="UserAssigned" value=""UserAssigned""/>
</enum>
</arg>
<arg type="array<string>" var="$parameters.identity.userAssigned" options="mi-user-assigned user-assigned" hide="True" group="">
<blank value="[]"/>
<help short="Set the user managed identities."/>
<item type="string"/>
</arg>
<arg type="object" var="$parameters.identity.userAssignedIdentities" options="user-assigned-identities">
<help short="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."/>
<additionalProp>
<item type="object">
<blank value="{}"/>
</item>
</additionalProp>
</arg>
</arg>
</argGroup>
<argGroup name="Properties">
<arg type="string" var="$parameters.properties.encryption" options="encryption" group="Properties">
<help short="Type of encryption"/>
<enum>
<item name="EncryptionAtRestWithCustomerManagedKey" value=""EncryptionAtRestWithCustomerManagedKey""/>
<item name="EncryptionAtRestWithPlatformKey" value=""EncryptionAtRestWithPlatformKey""/>
</enum>
</arg>
<arg type="object" var="$parameters.properties.encryptionProperties" options="encryption-properties" group="Properties">
<help short="Encryption Properties describing Key Vault and Identity information"/>
<arg type="object" var="$parameters.properties.encryptionProperties.identity" options="identity">
<help short="The identity to be used with service-side encryption at rest."/>
<arg type="string" var="$parameters.properties.encryptionProperties.identity.userAssignedIdentity" options="user-assigned-identity">
<help short="Resource identifier of the UserAssigned identity to be associated with server-side encryption on the volume group."/>
</arg>
</arg>
<arg type="object" var="$parameters.properties.encryptionProperties.keyVaultProperties" options="key-vault-properties">
<help short="Properties provided by key vault."/>
<arg type="string" var="$parameters.properties.encryptionProperties.keyVaultProperties.keyName" options="key-name">
<help short="The name of KeyVault key."/>
</arg>
<arg type="string" var="$parameters.properties.encryptionProperties.keyVaultProperties.keyVaultUri" options="key-vault-uri">
<help short="The Uri of KeyVault."/>
</arg>
<arg type="string" var="$parameters.properties.encryptionProperties.keyVaultProperties.keyVersion" options="key-version">
<help short="The version of KeyVault key."/>
</arg>
</arg>
</arg>
<arg type="boolean" var="$parameters.properties.enforceDataIntegrityCheckForIscsi" options="enforce-data-integrity-check-for-iscsi data-integrity-check" group="Properties">
<help short="A boolean indicating whether or not Data Integrity Check is enabled"/>
</arg>
<arg type="object" var="$parameters.properties.networkAcls" options="network-acls" group="Properties">
<help short="A collection of rules governing the accessibility from specific network locations."/>
<arg type="array<object>" var="$parameters.properties.networkAcls.virtualNetworkRules" options="virtual-network-rules">
<help short="The list of virtual network rules."/>
<item type="object">
<arg type="string" var="$parameters.properties.networkAcls.virtualNetworkRules[].action" options="action">
<help short="The action of virtual network rule."/>
<default value=""Allow""/>
<enum>
<item name="Allow" value=""Allow""/>
</enum>
</arg>
<arg type="string" var="$parameters.properties.networkAcls.virtualNetworkRules[].id" options="id" required="True">
<help short="Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}."/>
</arg>
</item>
</arg>
</arg>
<arg type="string" var="$parameters.properties.protocolType" options="protocol-type" group="Properties">
<help short="Type of storage target"/>
<enum>
<item name="Iscsi" value=""Iscsi""/>
<item name="None" value=""None""/>
</enum>
</arg>
</argGroup>
<operation operationId="VolumeGroups_Create">
<longRunning finalStateVia="location"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}">
<request method="put">
<path>
<param type="string" name="elasticSanName" arg="$Path.elasticSanName" required="True">
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="24" minLength="3"/>
</param>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True">
<format maxLength="90" minLength="1"/>
</param>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True">
<format minLength="1"/>
</param>
<param type="string" name="volumeGroupName" arg="$Path.volumeGroupName" required="True">
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="63" minLength="3"/>
</param>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2024-07-01-preview""/>
<format minLength="1"/>
</const>
</query>
<body>
<json>
<schema type="object" name="parameters" required="True" clientFlatten="True">
<prop type="IdentityObject" name="identity" arg="$parameters.identity">
<prop type="string" name="type" arg="$parameters.identity.type" required="True">
<enum>
<item value=""None""/>
<item value=""SystemAssigned""/>
<item value=""UserAssigned""/>
</enum>
</prop>
<prop type="object" name="userAssignedIdentities" arg="$parameters.identity.userAssignedIdentities">
<additionalProp>
<item type="object"/>
</additionalProp>
</prop>
<userAssigned action="create" type="array<string>" name="userAssigned" arg="$parameters.identity.userAssigned">
<item action="create" type="string"/>
</userAssigned>
<systemAssigned action="create" type="string" name="systemAssigned" arg="$parameters.identity.systemAssigned"/>
</prop>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="deleteRetentionPolicy">
<prop type="string" name="policyState" arg="$parameters.properties.deleteRetentionPolicy.policyState">
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="integer32" name="retentionPeriodDays" arg="$parameters.properties.deleteRetentionPolicy.retentionPeriodDays">
<format minimum="0"/>
</prop>
</prop>
<prop type="string" name="encryption" arg="$parameters.properties.encryption">
<enum>
<item value=""EncryptionAtRestWithCustomerManagedKey""/>
<item value=""EncryptionAtRestWithPlatformKey""/>
</enum>
</prop>
<prop type="object" name="encryptionProperties" arg="$parameters.properties.encryptionProperties">
<prop type="object" name="identity" arg="$parameters.properties.encryptionProperties.identity">
<prop type="string" name="userAssignedIdentity" arg="$parameters.properties.encryptionProperties.identity.userAssignedIdentity"/>
</prop>
<prop type="object" name="keyVaultProperties" arg="$parameters.properties.encryptionProperties.keyVaultProperties">
<prop type="string" name="keyName" arg="$parameters.properties.encryptionProperties.keyVaultProperties.keyName"/>
<prop type="string" name="keyVaultUri" arg="$parameters.properties.encryptionProperties.keyVaultProperties.keyVaultUri"/>
<prop type="string" name="keyVersion" arg="$parameters.properties.encryptionProperties.keyVaultProperties.keyVersion"/>
</prop>
</prop>
<prop type="boolean" name="enforceDataIntegrityCheckForIscsi" arg="$parameters.properties.enforceDataIntegrityCheckForIscsi"/>
<prop type="object" name="networkAcls" arg="$parameters.properties.networkAcls">
<prop type="array<object>" name="virtualNetworkRules" arg="$parameters.properties.networkAcls.virtualNetworkRules">
<item type="object">
<prop type="string" name="action" arg="$parameters.properties.networkAcls.virtualNetworkRules[].action">
<default value=""Allow""/>
<enum>
<item value=""Allow""/>
</enum>
</prop>
<prop type="string" name="id" arg="$parameters.properties.networkAcls.virtualNetworkRules[].id" required="True"/>
</item>
</prop>
</prop>
<prop type="string" name="protocolType" arg="$parameters.properties.protocolType">
<enum>
<item value=""Iscsi""/>
<item value=""None""/>
</enum>
</prop>
</prop>
</schema>
</json>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="object">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.ElasticSan/elasticSans/{}/volumegroups/{}"/>
</prop>
<prop type="IdentityObject" name="identity">
<prop readOnly="True" type="string" name="principalId"/>
<prop readOnly="True" type="string" name="tenantId"/>
<prop type="string" name="type" required="True">
<enum>
<item value=""None""/>
<item value=""SystemAssigned""/>
<item value=""UserAssigned""/>
</enum>
</prop>
<prop type="object" name="userAssignedIdentities">
<additionalProp>
<item type="object">
<prop readOnly="True" type="string" name="clientId"/>
<prop readOnly="True" type="string" name="principalId"/>
</item>
</additionalProp>
</prop>
</prop>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="deleteRetentionPolicy">
<prop type="string" name="policyState">
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="integer32" name="retentionPeriodDays">
<format minimum="0"/>
</prop>
</prop>
<prop type="string" name="encryption">
<enum>
<item value=""EncryptionAtRestWithCustomerManagedKey""/>
<item value=""EncryptionAtRestWithPlatformKey""/>
</enum>
</prop>
<prop type="object" name="encryptionProperties">
<prop type="object" name="identity">
<prop type="string" name="userAssignedIdentity"/>
</prop>
<prop type="object" name="keyVaultProperties">
<prop readOnly="True" type="dateTime" name="currentVersionedKeyExpirationTimestamp"/>
<prop readOnly="True" type="string" name="currentVersionedKeyIdentifier"/>
<prop type="string" name="keyName"/>
<prop type="string" name="keyVaultUri"/>
<prop type="string" name="keyVersion"/>
<prop readOnly="True" type="dateTime" name="lastKeyRotationTimestamp"/>
</prop>
</prop>
<prop type="boolean" name="enforceDataIntegrityCheckForIscsi"/>
<prop type="object" name="networkAcls">
<prop type="array<object>" name="virtualNetworkRules">
<item type="object">
<prop type="string" name="action">
<default value=""Allow""/>
<enum>
<item value=""Allow""/>
</enum>
</prop>
<prop type="string" name="id" required="True"/>
</item>
</prop>
</prop>
<prop readOnly="True" type="array<object>" name="privateEndpointConnections">
<item type="object">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.ElasticSan/elasticSans/{}/privateEndpointConnections/{}"/>
</prop>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="array<string>" name="groupIds">
<item type="string"/>
</prop>
<prop type="object" name="privateEndpoint">
<prop readOnly="True" type="string" name="id"/>
</prop>
<prop type="object" name="privateLinkServiceConnectionState" required="True">
<prop type="string" name="actionsRequired"/>
<prop type="string" name="description"/>
<prop type="string" name="status">
<enum>
<item value=""Approved""/>
<item value=""Failed""/>
<item value=""Pending""/>
<item value=""Rejected""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Canceled""/>
<item value=""Creating""/>
<item value=""Deleted""/>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Invalid""/>
<item value=""Pending""/>
<item value=""Restoring""/>
<item value=""SoftDeleting""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="@SystemData_read" name="systemData"/>
<prop readOnly="True" type="string" name="type"/>
</item>
</prop>
<prop type="string" name="protocolType">
<enum>
<item value=""Iscsi""/>
<item value=""None""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Canceled""/>
<item value=""Creating""/>
<item value=""Deleted""/>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Invalid""/>
<item value=""Pending""/>
<item value=""Restoring""/>
<item value=""SoftDeleting""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="object" name="systemData" cls="SystemData_read">
<prop type="dateTime" name="createdAt"/>
<prop type="string" name="createdBy"/>
<prop type="string" name="createdByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
<prop type="dateTime" name="lastModifiedAt"/>
<prop type="string" name="lastModifiedBy"/>
<prop type="string" name="lastModifiedByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@MgmtErrorFormat"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
<command name="update" version="2024-07-01-preview">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.elasticsan/elasticsans/{}/volumegroups/{}" version="2024-07-01-preview" swagger="mgmt-plane/elasticsan/ResourceProviders/Microsoft.ElasticSan/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRWxhc3RpY1Nhbi9lbGFzdGljU2Fucy97ZWxhc3RpY1Nhbk5hbWV9L3ZvbHVtZWdyb3Vwcy97dm9sdW1lR3JvdXBOYW1lfQ==/V/MjAyNC0wNy0wMS1wcmV2aWV3"/>
<argGroup name="">
<arg type="string" var="$Path.elasticSanName" options="elastic-san-name elastic-san e" required="True" group="" idPart="name">
<help short="The name of the ElasticSan."/>
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="24" minLength="3"/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
<arg type="string" var="$Path.volumeGroupName" options="volume-group-name name n" required="True" idPart="child_name_1">
<help short="The name of the VolumeGroup."/>
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="63" minLength="3"/>
</arg>
</argGroup>
<argGroup name="DeleteRetentionPolicy">
<arg nullable="True" type="string" var="$parameters.properties.deleteRetentionPolicy.policyState" options="delete-retention-policy-state delete-retention-state" stage="Preview" group="DeleteRetentionPolicy">
<help short="Manage delete retention policy state"/>
<enum>
<item name="Disabled" value=""Disabled""/>
<item name="Enabled" value=""Enabled""/>
</enum>
</arg>
<arg nullable="True" type="integer32" var="$parameters.properties.deleteRetentionPolicy.retentionPeriodDays" options="delete-retention-period-days retention-period" stage="Preview" group="DeleteRetentionPolicy">
<help short="The number of days to retain the resources after deletion."/>
<format minimum="0"/>
</arg>
</argGroup>
<argGroup name="Parameters">
<arg nullable="True" type="object" var="$parameters.identity" options="identity" group="Parameters">
<help short="The identity of the resource."/>
<arg type="string" var="$parameters.identity.type" options="type">
<help short="The identity type."/>
<enum>
<item name="None" value=""None""/>
<item name="SystemAssigned" value=""SystemAssigned""/>
<item name="UserAssigned" value=""UserAssigned""/>
</enum>
</arg>
<arg nullable="True" type="object" var="$parameters.identity.userAssignedIdentities" options="user-assigned-identities">
<help short="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."/>
<additionalProp>
<item nullable="True" type="object">
<blank value="{}"/>
</item>
</additionalProp>
</arg>
</arg>
</argGroup>
<argGroup name="Properties">
<arg nullable="True" type="string" var="$parameters.properties.encryption" options="encryption" group="Properties">
<help short="Type of encryption"/>
<enum>
<item name="EncryptionAtRestWithCustomerManagedKey" value=""EncryptionAtRestWithCustomerManagedKey""/>
<item name="EncryptionAtRestWithPlatformKey" value=""EncryptionAtRestWithPlatformKey""/>
</enum>
</arg>
<arg nullable="True" type="object" var="$parameters.properties.encryptionProperties" options="encryption-properties" group="Properties">
<help short="Encryption Properties describing Key Vault and Identity information"/>
<arg nullable="True" type="object" var="$parameters.properties.encryptionProperties.identity" options="identity">
<help short="The identity to be used with service-side encryption at rest."/>
<arg nullable="True" type="string" var="$parameters.properties.encryptionProperties.identity.userAssignedIdentity" options="user-assigned-identity">
<help short="Resource identifier of the UserAssigned identity to be associated with server-side encryption on the volume group."/>
</arg>
</arg>
<arg nullable="True" type="object" var="$parameters.properties.encryptionProperties.keyVaultProperties" options="key-vault-properties">
<help short="Properties provided by key vault."/>
<arg nullable="True" type="string" var="$parameters.properties.encryptionProperties.keyVaultProperties.keyName" options="key-name">
<help short="The name of KeyVault key."/>
</arg>
<arg nullable="True" type="string" var="$parameters.properties.encryptionProperties.keyVaultProperties.keyVaultUri" options="key-vault-uri">
<help short="The Uri of KeyVault."/>
</arg>
<arg nullable="True" type="string" var="$parameters.properties.encryptionProperties.keyVaultProperties.keyVersion" options="key-version">
<help short="The version of KeyVault key."/>
</arg>
</arg>
</arg>
<arg nullable="True" type="boolean" var="$parameters.properties.enforceDataIntegrityCheckForIscsi" options="enforce-data-integrity-check-for-iscsi data-integrity-check" group="Properties">
<help short="A boolean indicating whether or not Data Integrity Check is enabled"/>
</arg>
<arg nullable="True" type="object" var="$parameters.properties.networkAcls" options="network-acls" group="Properties">
<help short="A collection of rules governing the accessibility from specific network locations."/>
<arg nullable="True" type="array<object>" var="$parameters.properties.networkAcls.virtualNetworkRules" options="virtual-network-rules">
<help short="The list of virtual network rules."/>
<item nullable="True" type="object">
<arg nullable="True" type="string" var="$parameters.properties.networkAcls.virtualNetworkRules[].action" options="action">
<help short="The action of virtual network rule."/>
<enum>
<item name="Allow" value=""Allow""/>
</enum>
</arg>
<arg type="string" var="$parameters.properties.networkAcls.virtualNetworkRules[].id" options="id">
<help short="Resource ID of a subnet, for example: /subscriptions/{subscriptionId}/resourceGroups/{groupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}."/>
</arg>
</item>
</arg>
</arg>
<arg nullable="True" type="string" var="$parameters.properties.protocolType" options="protocol-type" group="Properties">
<help short="Type of storage target"/>
<enum>
<item name="Iscsi" value=""Iscsi""/>
<item name="None" value=""None""/>
</enum>
</arg>
</argGroup>
<operation operationId="VolumeGroups_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}">
<request method="get">
<path>
<param type="string" name="elasticSanName" arg="$Path.elasticSanName" required="True">
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="24" minLength="3"/>
</param>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True">
<format maxLength="90" minLength="1"/>
</param>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True">
<format minLength="1"/>
</param>
<param type="string" name="volumeGroupName" arg="$Path.volumeGroupName" required="True">
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="63" minLength="3"/>
</param>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2024-07-01-preview""/>
<format minLength="1"/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object" cls="VolumeGroup_read">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.ElasticSan/elasticSans/{}/volumegroups/{}"/>
</prop>
<prop type="IdentityObject" name="identity">
<prop readOnly="True" type="string" name="principalId"/>
<prop readOnly="True" type="string" name="tenantId"/>
<prop type="string" name="type" required="True">
<enum>
<item value=""None""/>
<item value=""SystemAssigned""/>
<item value=""UserAssigned""/>
</enum>
</prop>
<prop type="object" name="userAssignedIdentities">
<additionalProp>
<item type="object">
<prop readOnly="True" type="string" name="clientId"/>
<prop readOnly="True" type="string" name="principalId"/>
</item>
</additionalProp>
</prop>
</prop>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="deleteRetentionPolicy">
<prop type="string" name="policyState">
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="integer32" name="retentionPeriodDays">
<format minimum="0"/>
</prop>
</prop>
<prop type="string" name="encryption">
<enum>
<item value=""EncryptionAtRestWithCustomerManagedKey""/>
<item value=""EncryptionAtRestWithPlatformKey""/>
</enum>
</prop>
<prop type="object" name="encryptionProperties">
<prop type="object" name="identity">
<prop type="string" name="userAssignedIdentity"/>
</prop>
<prop type="object" name="keyVaultProperties">
<prop readOnly="True" type="dateTime" name="currentVersionedKeyExpirationTimestamp"/>
<prop readOnly="True" type="string" name="currentVersionedKeyIdentifier"/>
<prop type="string" name="keyName"/>
<prop type="string" name="keyVaultUri"/>
<prop type="string" name="keyVersion"/>
<prop readOnly="True" type="dateTime" name="lastKeyRotationTimestamp"/>
</prop>
</prop>
<prop type="boolean" name="enforceDataIntegrityCheckForIscsi"/>
<prop type="object" name="networkAcls">
<prop type="array<object>" name="virtualNetworkRules">
<item type="object">
<prop type="string" name="action">
<default value=""Allow""/>
<enum>
<item value=""Allow""/>
</enum>
</prop>
<prop type="string" name="id" required="True"/>
</item>
</prop>
</prop>
<prop readOnly="True" type="array<object>" name="privateEndpointConnections">
<item type="object">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.ElasticSan/elasticSans/{}/privateEndpointConnections/{}"/>
</prop>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties" required="True" clientFlatten="True">
<prop type="array<string>" name="groupIds">
<item type="string"/>
</prop>
<prop type="object" name="privateEndpoint">
<prop readOnly="True" type="string" name="id"/>
</prop>
<prop type="object" name="privateLinkServiceConnectionState" required="True">
<prop type="string" name="actionsRequired"/>
<prop type="string" name="description"/>
<prop type="string" name="status">
<enum>
<item value=""Approved""/>
<item value=""Failed""/>
<item value=""Pending""/>
<item value=""Rejected""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Canceled""/>
<item value=""Creating""/>
<item value=""Deleted""/>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Invalid""/>
<item value=""Pending""/>
<item value=""Restoring""/>
<item value=""SoftDeleting""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="@SystemData_read" name="systemData"/>
<prop readOnly="True" type="string" name="type"/>
</item>
</prop>
<prop type="string" name="protocolType">
<enum>
<item value=""Iscsi""/>
<item value=""None""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Canceled""/>
<item value=""Creating""/>
<item value=""Deleted""/>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Invalid""/>
<item value=""Pending""/>
<item value=""Restoring""/>
<item value=""SoftDeleting""/>
<item value=""Succeeded""/>
<item value=""Updating""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="object" name="systemData" cls="SystemData_read">
<prop type="dateTime" name="createdAt"/>
<prop type="string" name="createdBy"/>
<prop type="string" name="createdByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
<prop type="dateTime" name="lastModifiedAt"/>
<prop type="string" name="lastModifiedBy"/>
<prop type="string" name="lastModifiedByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@MgmtErrorFormat"/>
</json>
</body>
</response>
</http>
</operation>
<operation>
<instanceUpdate ref="$Instance">
<json>
<schema type="object" name="parameters" required="True" clientFlatten="True">
<prop type="IdentityObject" name="identity" arg="$parameters.identity">
<prop type="string" name="type" arg="$parameters.identity.type" required="True">
<enum>
<item value=""None""/>
<item value=""SystemAssigned""/>
<item value=""UserAssigned""/>
</enum>
</prop>
<prop type="object" name="userAssignedIdentities" arg="$parameters.identity.userAssignedIdentities">
<additionalProp>
<item type="object"/>
</additionalProp>
</prop>
</prop>
<prop type="object" name="properties" clientFlatten="True">
<prop type="object" name="deleteRetentionPolicy">
<prop type="string" name="policyState" arg="$parameters.properties.deleteRetentionPolicy.policyState">
<enum>
<item value=""Disabled""/>
<item value=""Enabled""/>
</enum>
</prop>
<prop type="integer32" name="retentionPeriodDays" arg="$parameters.properties.deleteRetentionPolicy.retentionPeriodDays">
<format minimum="0"/>
</prop>
</prop>
<prop type="string" name="encryption" arg="$parameters.properties.encryption">
<enum>
<item value=""EncryptionAtRestWithCustomerManagedKey""/>
<item value=""EncryptionAtRestWithPlatformKey""/>
</enum>
</prop>
<prop type="object" name="encryptionProperties" arg="$parameters.properties.encryptionProperties">
<prop type="object" name="identity" arg="$parameters.properties.encryptionProperties.identity">
<prop type="string" name="userAssignedIdentity" arg="$parameters.properties.encryptionProperties.identity.userAssignedIdentity"/>
</prop>
<prop type="object" name="keyVaultProperties" arg="$parameters.properties.encryptionProperties.keyVaultProperties">
<prop type="string" name="keyName" arg="$parameters.properties.encryptionProperties.keyVaultProperties.keyName"/>
<prop type="string" name="keyVaultUri" arg="$parameters.properties.encryptionProperties.keyVaultProperties.keyVaultUri"/>
<prop type="string" name="keyVersion" arg="$parameters.properties.encryptionProperties.keyVaultProperties.keyVersion"/>
</prop>
</prop>
<prop type="boolean" name="enforceDataIntegrityCheckForIscsi" arg="$parameters.properties.enforceDataIntegrityCheckForIscsi"/>
<prop type="object" name="networkAcls" arg="$parameters.properties.networkAcls">
<prop type="array<object>" name="virtualNetworkRules" arg="$parameters.properties.networkAcls.virtualNetworkRules">
<item type="object">
<prop type="string" name="action" arg="$parameters.properties.networkAcls.virtualNetworkRules[].action">
<default value=""Allow""/>
<enum>
<item value=""Allow""/>
</enum>
</prop>
<prop type="string" name="id" arg="$parameters.properties.networkAcls.virtualNetworkRules[].id" required="True"/>
</item>
</prop>
</prop>
<prop type="string" name="protocolType" arg="$parameters.properties.protocolType">
<enum>
<item value=""Iscsi""/>
<item value=""None""/>
</enum>
</prop>
</prop>
</schema>
</json>
</instanceUpdate>
</operation>
<operation operationId="VolumeGroups_Create">
<longRunning finalStateVia="location"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ElasticSan/elasticSans/{elasticSanName}/volumegroups/{volumeGroupName}">
<request method="put">
<path>
<param type="string" name="elasticSanName" arg="$Path.elasticSanName" required="True">
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="24" minLength="3"/>
</param>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True">
<format maxLength="90" minLength="1"/>
</param>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True">
<format minLength="1"/>
</param>
<param type="string" name="volumeGroupName" arg="$Path.volumeGroupName" required="True">
<format pattern="^[A-Za-z0-9]+((-|_)[a-z0-9A-Z]+)*$" maxLength="63" minLength="3"/>
</param>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2024-07-01-preview""/>
<format minLength="1"/>
</const>
</query>
<body>
<json ref="$Instance"/>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="@VolumeGroup_read"/>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@MgmtErrorFormat"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
</commandGroup>
</CodeGen>