@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api StorageManagementClient
@base https://management.azure.com
@version 2019-04-01
@auth OAuth2
@endpoints 16
@toc subscriptions(16)

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices
@desc List blob services of storage account. It returns a collection of one object named default.
@returns(200) OK -- List blob services operation completed successfully.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/{BlobServicesName}
@desc Sets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
@required {BlobServicesName: any # The name of the blob Service within the specified storage account. Blob Service Name must be 'default', parameters: any # The properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.}
@returns(200) OK -- Sets The properties of a storage account’s Blob service successfully.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/{BlobServicesName}
@desc Gets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
@required {BlobServicesName: any # The name of the blob Service within the specified storage account. Blob Service Name must be 'default'}
@returns(200) OK -- returned the properties of a storage account’s Blob service.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers
@desc Lists all containers and does not support a prefix like data plane. Also SRP today does not return continuation token.
@optional {$skipToken: any # Optional. Continuation token for the list operation., $maxpagesize: any # Optional. Specified maximum number of containers that can be included in the list., $filter: any # Optional. When specified, only container names starting with the filter will be listed.}
@returns(200) OK -- List Container operation completed successfully.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}
@desc Creates a new container under the specified account as described by request body. The container resource includes metadata and properties for that container. It does not include a list of the blobs contained by the container.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number., blobContainer: any # Properties of the blob container to create.}
@returns(200) OK -- The Container is already created.
@returns(201) Created -- Create Container operation completed successfully.

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}
@desc Updates container properties as specified in request body. Properties not mentioned in the request will be unchanged. Update fails if the specified container doesn't already exist.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number., blobContainer: any # Properties to update for the blob container.}
@returns(200) OK -- Update Container operation completed successfully.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}
@desc Gets properties of a specified container.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.}
@returns(200) OK -- Get Container operation completed successfully.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}
@desc Deletes specified container under its account.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.}
@returns(200) OK -- Delete Container operation completed successfully.
@returns(204) No Content -- The Container not exist.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/setLegalHold
@desc Sets legal hold tags. Setting the same tag results in an idempotent operation. SetLegalHold follows an append pattern and does not clear out the existing tags that are not specified in the request.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number., LegalHold: any # The LegalHold property that will be set to a blob container.}
@returns(200) OK -- Set legal hold tags for Container completed successfully.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/clearLegalHold
@desc Clears legal hold tags. Clearing the same or non-existent tag results in an idempotent operation. ClearLegalHold clears out only the specified tags in the request.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number., LegalHold: any # The LegalHold property that will be clear from a blob container.}
@returns(200) OK -- Clear legal hold tags for Container completed successfully.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/{immutabilityPolicyName}
@desc Creates or updates an unlocked immutability policy. ETag in If-Match is honored if given but not required for this operation.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number., immutabilityPolicyName: any # The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'}
@optional {parameters: any # The ImmutabilityPolicy Properties that will be created or updated to a blob container., If-Match: any # The entity state (ETag) version of the immutability policy to update. A value of "*" can be used to apply the operation only if the immutability policy already exists. If omitted, this operation will always be applied.}
@returns(200) OK -- Creates or updates container ImmutabilityPolicy operation completed successfully.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/{immutabilityPolicyName}
@desc Gets the existing immutability policy along with the corresponding ETag in response headers and body.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number., immutabilityPolicyName: any # The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'}
@optional {If-Match: any # The entity state (ETag) version of the immutability policy to update. A value of "*" can be used to apply the operation only if the immutability policy already exists. If omitted, this operation will always be applied.}
@returns(200) OK -- Gets container ImmutabilityPolicy operation completed successfully.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/{immutabilityPolicyName}
@desc Aborts an unlocked immutability policy. The response of delete has immutabilityPeriodSinceCreationInDays set to 0. ETag in If-Match is required for this operation. Deleting a locked immutability policy is not allowed, only way is to delete the container after deleting all blobs inside the container.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number., immutabilityPolicyName: any # The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default', If-Match: any # The entity state (ETag) version of the immutability policy to update. A value of "*" can be used to apply the operation only if the immutability policy already exists. If omitted, this operation will always be applied.}
@returns(200) OK -- Deletes container ImmutabilityPolicy operation completed successfully.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default/lock
@desc Sets the ImmutabilityPolicy to Locked state. The only action allowed on a Locked policy is ExtendImmutabilityPolicy action. ETag in If-Match is required for this operation.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number., If-Match: any # The entity state (ETag) version of the immutability policy to update. A value of "*" can be used to apply the operation only if the immutability policy already exists. If omitted, this operation will always be applied.}
@returns(200) OK -- Locks container ImmutabilityPolicy operation completed successfully.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default/extend
@desc Extends the immutabilityPeriodSinceCreationInDays of a locked immutabilityPolicy. The only action allowed on a Locked policy will be this action. ETag in If-Match is required for this operation.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number., If-Match: any # The entity state (ETag) version of the immutability policy to update. A value of "*" can be used to apply the operation only if the immutability policy already exists. If omitted, this operation will always be applied.}
@optional {parameters: any # The ImmutabilityPolicy Properties that will be extended for a blob container.}
@returns(200) OK -- Extends container ImmutabilityPolicy operation completed successfully..

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/lease
@desc The Lease Container operation establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite.
@required {containerName: any # The name of the blob container within the specified storage account. Blob container names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.}
@optional {parameters: any # Lease Container request body.}
@returns(200) OK -- Lease Container operation completed successfully.

@end
