swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The Azure Storage Management API.
  title: StorageManagementClient
  version: 2019-04-01
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/blob.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: storage-blob
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  BlobServicesName:
    description: The name of the blob Service within the specified storage account. Blob Service Name must be 'default'
    enum:
      - default
    in: path
    name: BlobServicesName
    required: true
    type: string
    x-ms-parameter-location: method
  ContainerName:
    description: 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.
    in: path
    maxLength: 63
    minLength: 3
    name: containerName
    required: true
    type: string
    x-ms-parameter-location: method
  ImmutabilityPolicyName:
    description: The name of the blob container immutabilityPolicy within the specified storage account. ImmutabilityPolicy Name must be 'default'
    enum:
      - default
    in: path
    name: immutabilityPolicyName
    required: true
    type: string
    x-ms-parameter-location: method
paths:
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices":
    get:
      description: List blob services of storage account. It returns a collection of one object named default.
      operationId: BlobServices_List
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: OK -- List blob services operation completed successfully.
          schema:
            $ref: "#/definitions/BlobServiceItems"
      tags:
        - BlobService
      x-ms-examples:
        ListBlobServices:
          parameters:
            accountName: sto8607
            api-version: 2019-04-01
            monitor: "true"
            resourceGroupName: res4410
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                value:
                  - id: /subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default
                    name: default
                    properties:
                      automaticSnapshotPolicyEnabled: true
                      changeFeed:
                        enabled: true
                      cors:
                        corsRules:
                          - allowedHeaders:
                              - x-ms-meta-abc
                              - x-ms-meta-data*
                              - x-ms-meta-target*
                            allowedMethods:
                              - GET
                              - HEAD
                              - POST
                              - OPTIONS
                              - MERGE
                              - PUT
                            allowedOrigins:
                              - http://www.contoso.com
                              - http://www.fabrikam.com
                            exposedHeaders:
                              - x-ms-meta-*
                            maxAgeInSeconds: 100
                          - allowedHeaders:
                              - "*"
                            allowedMethods:
                              - GET
                            allowedOrigins:
                              - "*"
                            exposedHeaders:
                              - "*"
                            maxAgeInSeconds: 2
                          - allowedHeaders:
                              - x-ms-meta-12345675754564*
                            allowedMethods:
                              - GET
                              - PUT
                            allowedOrigins:
                              - http://www.abc23.com
                              - https://www.fabrikam.com/*
                            exposedHeaders:
                              - x-ms-meta-abc
                              - x-ms-meta-data*
                              - x -ms-meta-target*
                            maxAgeInSeconds: 2000
                      defaultServiceVersion: 2017-07-29
                      deleteRetentionPolicy:
                        days: 300
                        enabled: true
                    type: Microsoft.Storage/storageAccounts/blobServices
      x-ms-pageable:
        nextLinkName: null
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers":
    get:
      description: Lists all containers and does not support a prefix like data plane. Also SRP today does not return continuation token.
      operationId: BlobContainers_List
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: Optional. Continuation token for the list operation.
          in: query
          name: $skipToken
          type: string
        - description: Optional. Specified maximum number of containers that can be included in the list.
          in: query
          name: $maxpagesize
          type: string
        - description: Optional. When specified, only container names starting with the filter will be listed.
          in: query
          name: $filter
          type: string
      responses:
        "200":
          description: OK -- List Container operation completed successfully.
          schema:
            $ref: "#/definitions/ListContainerItems"
      tags:
        - BlobContainers
      x-ms-examples:
        ListContainers:
          parameters:
            accountName: sto1590
            api-version: 2019-04-01
            monitor: "true"
            resourceGroupName: res9290
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                nextLink: https://sto1590endpoint/subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers?api-version=2019-04-01&$maxpagesize=2&$skipToken=/sto1590/container5103
                value:
                  - etag: '"0x8D589847D51C7DE"'
                    id: /subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container1644
                    name: container1644
                    properties:
                      hasImmutabilityPolicy: false
                      hasLegalHold: false
                      lastModifiedTime: 2018-03-14T08:20:47Z
                      leaseState: Available
                      leaseStatus: Unlocked
                      publicAccess: Container
                    type: Microsoft.Storage/storageAccounts/blobServices/containers
                  - etag: '"0x8D589847DAB5AF9"'
                    id: /subscriptions/{subscription-id}/resourceGroups/res9290/providers/Microsoft.Storage/storageAccounts/sto1590/blobServices/default/containers/container4052
                    name: container4052
                    properties:
                      hasImmutabilityPolicy: false
                      hasLegalHold: false
                      lastModifiedTime: 2018-03-14T08:20:47Z
                      leaseState: Available
                      leaseStatus: Unlocked
                      publicAccess: None
                    type: Microsoft.Storage/storageAccounts/blobServices/containers
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}":
    delete:
      description: Deletes specified container under its account.
      operationId: BlobContainers_Delete
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: OK -- Delete Container operation completed successfully.
        "204":
          description: No Content -- The Container not exist.
      tags:
        - BlobContainers
      x-ms-examples:
        DeleteContainers:
          parameters:
            accountName: sto4506
            api-version: 2019-04-01
            containerName: container9689
            monitor: "true"
            resourceGroupName: res4079
            subscriptionId: "{subscription-id}"
          responses:
            "200": {}
            "204": {}
    get:
      description: "Gets properties of a specified container. "
      operationId: BlobContainers_Get
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: OK -- Get Container operation completed successfully.
          schema:
            $ref: "#/definitions/BlobContainer"
      tags:
        - BlobContainers
      x-ms-examples:
        GetContainers:
          parameters:
            accountName: sto6217
            api-version: 2019-04-01
            containerName: container1634
            monitor: "true"
            resourceGroupName: res9871
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                etag: '"0x8D592D74CC20EBA"'
                id: /subscriptions/{subscription-id}/resourceGroups/res9871/providers/Microsoft.Storage/storageAccounts/sto6217/blobServices/default/containers/container1634
                name: container1634
                properties:
                  hasImmutabilityPolicy: true
                  hasLegalHold: true
                  immutabilityPolicy:
                    etag: '"8d592d74cb3011a"'
                    properties:
                      immutabilityPeriodSinceCreationInDays: 100
                      state: Locked
                    updateHistory:
                      - immutabilityPeriodSinceCreationInDays: 3
                        objectIdentifier: ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b
                        tenantId: 72f988bf-86f1-41af-91ab-2d7cd011db47
                        timestamp: 2018-03-26T05:06:11.431403Z
                        update: put
                      - immutabilityPeriodSinceCreationInDays: 3
                        objectIdentifier: ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b
                        tenantId: 72f988bf-86f1-41af-91ab-2d7cd011db47
                        timestamp: 2018-03-26T05:06:13.0907641Z
                        update: lock
                      - immutabilityPeriodSinceCreationInDays: 100
                        objectIdentifier: ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b
                        tenantId: 72f988bf-86f1-41af-91ab-2d7cd011db47
                        timestamp: 2018-03-26T05:06:14.7097716Z
                        update: extend
                  lastModifiedTime: 2018-03-26T05:06:14Z
                  leaseState: Available
                  leaseStatus: Unlocked
                  legalHold:
                    hasLegalHold: true
                    tags:
                      - objectIdentifier: ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b
                        tag: tag1
                        tenantId: 72f988bf-86f1-41af-91ab-2d7cd011db47
                        timestamp: 2018-03-26T05:06:09.6964643Z
                      - objectIdentifier: ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b
                        tag: tag2
                        tenantId: 72f988bf-86f1-41af-91ab-2d7cd011db47
                        timestamp: 2018-03-26T05:06:09.6964643Z
                      - objectIdentifier: ce7cd28a-fc25-4bf1-8fb9-e1b9833ffd4b
                        tag: tag3
                        tenantId: 72f988bf-86f1-41af-91ab-2d7cd011db47
                        timestamp: 2018-03-26T05:06:09.6964643Z
                  publicAccess: None
                type: Microsoft.Storage/storageAccounts/blobServices/containers
    patch:
      description: "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. "
      operationId: BlobContainers_Update
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - description: Properties to update for the blob container.
          in: body
          name: blobContainer
          required: true
          schema:
            $ref: "#/definitions/BlobContainer"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: OK -- Update Container operation completed successfully.
          schema:
            $ref: "#/definitions/BlobContainer"
            description: Properties of the updated blob container.
      tags:
        - BlobContainers
      x-ms-examples:
        UpdateContainers:
          parameters:
            accountName: sto328
            api-version: 2019-04-01
            blobContainer:
              properties:
                metadata:
                  metadata: "true"
                publicAccess: Container
            containerName: container6185
            monitor: "true"
            resourceGroupName: res3376
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185
                name: container6185
                properties:
                  hasImmutabilityPolicy: false
                  hasLegalHold: false
                  metadata:
                    metadata: "true"
                  publicAccess: Container
                type: Microsoft.Storage/storageAccounts/blobServices/containers
    put:
      description: "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. "
      operationId: BlobContainers_Create
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - description: Properties of the blob container to create.
          in: body
          name: blobContainer
          required: true
          schema:
            $ref: "#/definitions/BlobContainer"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: OK -- The Container is already created.
          schema:
            $ref: "#/definitions/BlobContainer"
        "201":
          description: Created -- Create Container operation completed successfully.
          schema:
            $ref: "#/definitions/BlobContainer"
      tags:
        - BlobContainers
      x-ms-examples:
        PutContainers:
          parameters:
            accountName: sto328
            api-version: 2019-04-01
            blobContainer: {}
            containerName: container6185
            monitor: "true"
            resourceGroupName: res3376
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185
                name: container6185
                type: Microsoft.Storage/storageAccounts/blobServices/containers
            "201":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185
                name: container6185
                type: Microsoft.Storage/storageAccounts/blobServices/containers
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/clearLegalHold":
    post:
      description: 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.
      operationId: BlobContainers_ClearLegalHold
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: The LegalHold property that will be clear from a blob container.
          in: body
          name: LegalHold
          required: true
          schema:
            $ref: "#/definitions/LegalHold"
      responses:
        "200":
          description: OK -- Clear legal hold tags for Container completed successfully.
          schema:
            $ref: "#/definitions/LegalHold"
      tags:
        - BlobContainers
      x-ms-examples:
        ClearLegalHoldContainers:
          parameters:
            LegalHold:
              tags:
                - tag1
                - tag2
                - tag3
            accountName: sto7280
            api-version: 2019-04-01
            containerName: container8723
            monitor: "true"
            resourceGroupName: res4303
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                hasLegalHold: false
                tags: []
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default/extend":
    post:
      description: 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.
      operationId: BlobContainers_ExtendImmutabilityPolicy
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: The ImmutabilityPolicy Properties that will be extended for a blob container.
          in: body
          name: parameters
          schema:
            $ref: "#/definitions/ImmutabilityPolicy"
        - description: 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.
          in: header
          name: If-Match
          required: true
          type: string
      responses:
        "200":
          description: OK -- Extends container ImmutabilityPolicy operation completed successfully..
          headers:
            ETag:
              description: The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
              type: string
          schema:
            $ref: "#/definitions/ImmutabilityPolicy"
      tags:
        - BlobContainers
      x-ms-examples:
        ExtendImmutabilityPolicy:
          parameters:
            If-Match: '"8d59f830d0c3bf9"'
            accountName: sto232
            api-version: 2019-04-01
            containerName: container5023
            monitor: "true"
            parameters:
              properties:
                immutabilityPeriodSinceCreationInDays: 100
            resourceGroupName: res6238
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                etag: '"8d57a8b2ff50332"'
                id: /subscriptions/{subscription-id}/resourceGroups/res6238/providers/Microsoft.Storage/storageAccounts/sto232/blobServices/default/containers/container5023/immutabilityPolicies/default
                name: default
                properties:
                  immutabilityPeriodSinceCreationInDays: 100
                  state: Locked
                type: Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/default/lock":
    post:
      description: 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.
      operationId: BlobContainers_LockImmutabilityPolicy
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: 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.
          in: header
          name: If-Match
          required: true
          type: string
      responses:
        "200":
          description: OK -- Locks container ImmutabilityPolicy operation completed successfully.
          headers:
            ETag:
              description: The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
              type: string
          schema:
            $ref: "#/definitions/ImmutabilityPolicy"
      tags:
        - BlobContainers
      x-ms-examples:
        LockImmutabilityPolicy:
          parameters:
            If-Match: '"8d59f825b721dd3"'
            accountName: sto5009
            api-version: 2019-04-01
            containerName: container1631
            monitor: "true"
            resourceGroupName: res2702
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                etag: '"8d57a8a5edb084a"'
                id: /subscriptions/{subscription-id}/resourceGroups/res2702/providers/Microsoft.Storage/storageAccounts/sto5009/blobServices/default/containers/container1631/immutabilityPolicies/default
                name: default
                properties:
                  immutabilityPeriodSinceCreationInDays: 3
                  state: Locked
                type: Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/immutabilityPolicies/{immutabilityPolicyName}":
    delete:
      description: 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.
      operationId: BlobContainers_DeleteImmutabilityPolicy
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - $ref: "#/parameters/ImmutabilityPolicyName"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: 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.
          in: header
          name: If-Match
          required: true
          type: string
      responses:
        "200":
          description: OK -- Deletes container ImmutabilityPolicy operation completed successfully.
          headers:
            ETag:
              description: The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
              type: string
          schema:
            $ref: "#/definitions/ImmutabilityPolicy"
      tags:
        - BlobContainers
      x-ms-examples:
        DeleteImmutabilityPolicy:
          parameters:
            If-Match: '"8d59f81a7fa7be0"'
            accountName: sto9621
            api-version: 2019-04-01
            containerName: container4910
            immutabilityPolicyName: default
            monitor: "true"
            resourceGroupName: res1581
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                etag: '"8d59f81a87b40c0"'
                id: /subscriptions/{subscription-id}/resourceGroups/res1581/providers/Microsoft.Storage/storageAccounts/sto9621/blobServices/default/containers/container4910/immutabilityPolicies/default
                name: default
                properties:
                  immutabilityPeriodSinceCreationInDays: 0
                  state: Unlocked
                type: Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies
    get:
      description: Gets the existing immutability policy along with the corresponding ETag in response headers and body.
      operationId: BlobContainers_GetImmutabilityPolicy
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - $ref: "#/parameters/ImmutabilityPolicyName"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: 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.
          in: header
          name: If-Match
          required: false
          type: string
      responses:
        "200":
          description: OK -- Gets container ImmutabilityPolicy operation completed successfully.
          headers:
            ETag:
              description: The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
              type: string
          schema:
            $ref: "#/definitions/ImmutabilityPolicy"
      tags:
        - BlobContainers
      x-ms-examples:
        GetImmutabilityPolicy:
          parameters:
            accountName: sto9177
            api-version: 2019-04-01
            containerName: container3489
            immutabilityPolicyName: default
            monitor: "true"
            resourceGroupName: res5221
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                etag: '"8d59f828e64b75c"'
                id: /subscriptions/{subscription-id}/resourceGroups/res5221/providers/Microsoft.Storage/storageAccounts/sto9177/blobServices/default/containers/container3489/immutabilityPolicies/default
                name: default
                properties:
                  immutabilityPeriodSinceCreationInDays: 5
                  state: Unlocked
                type: Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies
    put:
      description: Creates or updates an unlocked immutability policy. ETag in If-Match is honored if given but not required for this operation.
      operationId: BlobContainers_CreateOrUpdateImmutabilityPolicy
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - $ref: "#/parameters/ImmutabilityPolicyName"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: The ImmutabilityPolicy Properties that will be created or updated to a blob container.
          in: body
          name: parameters
          schema:
            $ref: "#/definitions/ImmutabilityPolicy"
        - description: 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.
          in: header
          name: If-Match
          required: false
          type: string
      responses:
        "200":
          description: OK -- Creates or updates container ImmutabilityPolicy operation completed successfully.
          headers:
            ETag:
              description: The ETag HTTP response header. This is an opaque string. You can use it to detect whether the resource has changed between requests. In particular, you can pass the ETag to one of the If-Match or If-None-Match headers.
              type: string
          schema:
            $ref: "#/definitions/ImmutabilityPolicy"
      tags:
        - BlobContainers
      x-ms-examples:
        CreateOrUpdateImmutabilityPolicy:
          parameters:
            accountName: sto7069
            api-version: 2019-04-01
            containerName: container6397
            immutabilityPolicyName: default
            monitor: "true"
            parameters:
              properties:
                immutabilityPeriodSinceCreationInDays: 3
            resourceGroupName: res1782
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                etag: '"8d59f830cb130e5"'
                id: /subscriptions/{subscription-id}/resourceGroups/res1782/providers/Microsoft.Storage/storageAccounts/sto7069/blobServices/default/containers/container6397/immutabilityPolicies/default
                name: default
                properties:
                  immutabilityPeriodSinceCreationInDays: 3
                  state: Unlocked
                type: Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/lease":
    post:
      description: 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.
      operationId: BlobContainers_Lease
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: Lease Container request body.
          in: body
          name: parameters
          schema:
            $ref: "#/definitions/LeaseContainerRequest"
      responses:
        "200":
          description: OK -- Lease Container operation completed successfully.
          schema:
            $ref: "#/definitions/LeaseContainerResponse"
      tags:
        - BlobContainers
      x-ms-examples:
        Acquire a lease on a container:
          parameters:
            accountName: sto328
            api-version: 2019-04-01
            containerName: container6185
            monitor: "true"
            parameters:
              action: Acquire
              breakPeriod: null
              leaseDuration: -1
              leaseId: null
              proposedLeaseId: null
            resourceGroupName: res3376
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                leaseId: 8698f513-fa75-44a1-b8eb-30ba336af27d
        Break a lease on a container:
          parameters:
            accountName: sto328
            api-version: 2019-04-01
            containerName: container6185
            monitor: "true"
            parameters:
              action: Break
              breakPeriod: null
              leaseDuration: null
              leaseId: 8698f513-fa75-44a1-b8eb-30ba336af27d
              proposedLeaseId: null
            resourceGroupName: res3376
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                leaseTimeSeconds: "0"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/setLegalHold":
    post:
      description: 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.
      operationId: BlobContainers_SetLegalHold
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - $ref: "#/parameters/ContainerName"
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - description: The LegalHold property that will be set to a blob container.
          in: body
          name: LegalHold
          required: true
          schema:
            $ref: "#/definitions/LegalHold"
      responses:
        "200":
          description: OK -- Set legal hold tags for Container completed successfully.
          schema:
            $ref: "#/definitions/LegalHold"
      tags:
        - BlobContainers
      x-ms-examples:
        SetLegalHoldContainers:
          parameters:
            LegalHold:
              tags:
                - tag1
                - tag2
                - tag3
            accountName: sto7280
            api-version: 2019-04-01
            containerName: container8723
            monitor: "true"
            resourceGroupName: res4303
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                hasLegalHold: true
                tags:
                  - tag1
                  - tag2
                  - tag3
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/{BlobServicesName}":
    get:
      description: Gets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
      operationId: BlobServices_GetServiceProperties
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - $ref: "#/parameters/BlobServicesName"
      responses:
        "200":
          description: OK -- returned the properties of a storage account’s Blob service.
          schema:
            $ref: "#/definitions/BlobServiceProperties"
      tags:
        - BlobService
      x-ms-examples:
        GetBlobServices:
          parameters:
            BlobServicesName: default
            accountName: sto8607
            api-version: 2019-04-01
            monitor: "true"
            resourceGroupName: res4410
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default
                name: default
                properties:
                  automaticSnapshotPolicyEnabled: true
                  changeFeed:
                    enabled: true
                  cors:
                    corsRules:
                      - allowedHeaders:
                          - x-ms-meta-abc
                          - x-ms-meta-data*
                          - x-ms-meta-target*
                        allowedMethods:
                          - GET
                          - HEAD
                          - POST
                          - OPTIONS
                          - MERGE
                          - PUT
                        allowedOrigins:
                          - http://www.contoso.com
                          - http://www.fabrikam.com
                        exposedHeaders:
                          - x-ms-meta-*
                        maxAgeInSeconds: 100
                      - allowedHeaders:
                          - "*"
                        allowedMethods:
                          - GET
                        allowedOrigins:
                          - "*"
                        exposedHeaders:
                          - "*"
                        maxAgeInSeconds: 2
                      - allowedHeaders:
                          - x-ms-meta-12345675754564*
                        allowedMethods:
                          - GET
                          - PUT
                        allowedOrigins:
                          - http://www.abc23.com
                          - https://www.fabrikam.com/*
                        exposedHeaders:
                          - x-ms-meta-abc
                          - x-ms-meta-data*
                          - x -ms-meta-target*
                        maxAgeInSeconds: 2000
                  defaultServiceVersion: 2017-07-29
                  deleteRetentionPolicy:
                    days: 300
                    enabled: true
                type: Microsoft.Storage/storageAccounts/blobServices
    put:
      description: "Sets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules. "
      operationId: BlobServices_SetServiceProperties
      parameters:
        - description: The name of the resource group within the user's subscription. The name is case insensitive.
          in: path
          maxLength: 90
          minLength: 1
          name: resourceGroupName
          pattern: ^[-\w\._\(\)]+$
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
          in: path
          maxLength: 24
          minLength: 3
          name: accountName
          required: true
          type: string
          x-ms-parameter-location: method
        - description: The API version to use for this operation.
          in: query
          minLength: 1
          name: api-version
          required: true
          type: string
        - description: The ID of the target subscription.
          in: path
          minLength: 1
          name: subscriptionId
          required: true
          type: string
        - $ref: "#/parameters/BlobServicesName"
        - description: The properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/BlobServiceProperties"
      responses:
        "200":
          description: OK -- Sets The properties of a storage account’s Blob service successfully.
          schema:
            $ref: "#/definitions/BlobServiceProperties"
      tags:
        - BlobService
      x-ms-examples:
        PutBlobServices:
          parameters:
            BlobServicesName: default
            accountName: sto8607
            api-version: 2019-04-01
            monitor: "true"
            parameters:
              properties:
                automaticSnapshotPolicyEnabled: true
                changeFeed:
                  enabled: true
                cors:
                  corsRules:
                    - allowedHeaders:
                        - x-ms-meta-abc
                        - x-ms-meta-data*
                        - x-ms-meta-target*
                      allowedMethods:
                        - GET
                        - HEAD
                        - POST
                        - OPTIONS
                        - MERGE
                        - PUT
                      allowedOrigins:
                        - http://www.contoso.com
                        - http://www.fabrikam.com
                      exposedHeaders:
                        - x-ms-meta-*
                      maxAgeInSeconds: 100
                    - allowedHeaders:
                        - "*"
                      allowedMethods:
                        - GET
                      allowedOrigins:
                        - "*"
                      exposedHeaders:
                        - "*"
                      maxAgeInSeconds: 2
                    - allowedHeaders:
                        - x-ms-meta-12345675754564*
                      allowedMethods:
                        - GET
                        - PUT
                      allowedOrigins:
                        - http://www.abc23.com
                        - https://www.fabrikam.com/*
                      exposedHeaders:
                        - x-ms-meta-abc
                        - x-ms-meta-data*
                        - x -ms-meta-target*
                      maxAgeInSeconds: 2000
                defaultServiceVersion: 2017-07-29
                deleteRetentionPolicy:
                  days: 300
                  enabled: true
            resourceGroupName: res4410
            subscriptionId: "{subscription-id}"
          responses:
            "200":
              body:
                id: /subscriptions/{subscription-id}/resourceGroups/res4410/providers/Microsoft.Storage/storageAccounts/sto8607/blobServices/default
                name: default
                properties:
                  automaticSnapshotPolicyEnabled: true
                  changeFeed:
                    enabled: true
                  cors:
                    corsRules:
                      - allowedHeaders:
                          - x-ms-meta-abc
                          - x-ms-meta-data*
                          - x-ms-meta-target*
                        allowedMethods:
                          - GET
                          - HEAD
                          - POST
                          - OPTIONS
                          - MERGE
                          - PUT
                        allowedOrigins:
                          - http://www.contoso.com
                          - http://www.fabrikam.com
                        exposedHeaders:
                          - x-ms-meta-*
                        maxAgeInSeconds: 100
                      - allowedHeaders:
                          - "*"
                        allowedMethods:
                          - GET
                        allowedOrigins:
                          - "*"
                        exposedHeaders:
                          - "*"
                        maxAgeInSeconds: 2
                      - allowedHeaders:
                          - x-ms-meta-12345675754564*
                        allowedMethods:
                          - GET
                          - PUT
                        allowedOrigins:
                          - http://www.abc23.com
                          - https://www.fabrikam.com/*
                        exposedHeaders:
                          - x-ms-meta-abc
                          - x-ms-meta-data*
                          - x -ms-meta-target*
                        maxAgeInSeconds: 2000
                  defaultServiceVersion: 2017-07-29
                  deleteRetentionPolicy:
                    days: 300
                    enabled: true
                type: Microsoft.Storage/storageAccounts/blobServices
definitions:
  BlobContainer:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a Azure Resource Manager resource with an etag.
        properties:
          etag:
            description: Resource Etag.
            readOnly: true
            type: string
        x-ms-client-name: AzureEntityResource
    description: Properties of the blob container, including Id, resource name, resource type, Etag.
    properties:
      properties:
        $ref: "#/definitions/ContainerProperties"
        description: Properties of the blob container.
        x-ms-client-flatten: true
        x-ms-client-name: ContainerProperties
  BlobServiceItems:
    properties:
      value:
        description: List of blob services returned.
        items:
          $ref: "#/definitions/BlobServiceProperties"
        readOnly: true
        type: array
  BlobServiceProperties:
    allOf:
      - properties:
          id:
            description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
            readOnly: true
            type: string
          name:
            description: The name of the resource
            readOnly: true
            type: string
          type:
            description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
            readOnly: true
            type: string
        x-ms-azure-resource: true
    description: The properties of a storage account’s Blob service.
    properties:
      properties:
        description: The properties of a storage account’s Blob service.
        properties:
          automaticSnapshotPolicyEnabled:
            description: Automatic Snapshot is enabled if set to true.
            type: boolean
          changeFeed:
            $ref: "#/definitions/ChangeFeed"
            description: The blob service properties for change feed events.
          cors:
            $ref: "#/definitions/CorsRules"
            description: Specifies CORS rules for the Blob service. You can include up to five CorsRule elements in the request. If no CorsRule elements are included in the request body, all CORS rules will be deleted, and CORS will be disabled for the Blob service.
          defaultServiceVersion:
            description: DefaultServiceVersion indicates the default version to use for requests to the Blob service if an incoming request’s version is not specified. Possible values include version 2008-10-27 and all more recent versions.
            type: string
          deleteRetentionPolicy:
            $ref: "#/definitions/DeleteRetentionPolicy"
            description: The blob service properties for soft delete.
        x-ms-client-flatten: true
        x-ms-client-name: BlobServiceProperties
  ChangeFeed:
    description: The blob service properties for change feed events.
    properties:
      enabled:
        description: Indicates whether change feed event logging is enabled for the Blob service.
        type: boolean
  ContainerProperties:
    description: The properties of a container.
    properties:
      hasImmutabilityPolicy:
        description: The hasImmutabilityPolicy public property is set to true by SRP if ImmutabilityPolicy has been created for this container. The hasImmutabilityPolicy public property is set to false by SRP if ImmutabilityPolicy has not been created for this container.
        readOnly: true
        type: boolean
      hasLegalHold:
        description: The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account.
        readOnly: true
        type: boolean
      immutabilityPolicy:
        $ref: "#/definitions/ImmutabilityPolicyProperties"
        description: The ImmutabilityPolicy property of the container.
        readOnly: true
        x-ms-client-name: ImmutabilityPolicy
      lastModifiedTime:
        description: Returns the date and time the container was last modified.
        format: date-time
        readOnly: true
        type: string
      leaseDuration:
        description: Specifies whether the lease on a container is of infinite or fixed duration, only when the container is leased.
        enum:
          - Infinite
          - Fixed
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: LeaseDuration
      leaseState:
        description: Lease state of the container.
        enum:
          - Available
          - Leased
          - Expired
          - Breaking
          - Broken
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: LeaseState
      leaseStatus:
        description: The lease status of the container.
        enum:
          - Locked
          - Unlocked
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: LeaseStatus
      legalHold:
        $ref: "#/definitions/LegalHoldProperties"
        description: The LegalHold property of the container.
        readOnly: true
      metadata:
        additionalProperties:
          type: string
        description: A name-value pair to associate with the container as metadata.
        type: object
      publicAccess:
        description: Specifies whether data in the container may be accessed publicly and the level of access.
        enum:
          - Container
          - Blob
          - None
        type: string
        x-ms-enum:
          modelAsString: false
          name: PublicAccess
  CorsRule:
    description: Specifies a CORS rule for the Blob service.
    properties:
      allowedHeaders:
        description: Required if CorsRule element is present. A list of headers allowed to be part of the cross-origin request.
        items:
          type: string
        type: array
      allowedMethods:
        description: Required if CorsRule element is present. A list of HTTP methods that are allowed to be executed by the origin.
        items:
          enum:
            - DELETE
            - GET
            - HEAD
            - MERGE
            - POST
            - OPTIONS
            - PUT
          type: string
        type: array
      allowedOrigins:
        description: Required if CorsRule element is present. A list of origin domains that will be allowed via CORS, or "*" to allow all domains
        items:
          type: string
        type: array
      exposedHeaders:
        description: Required if CorsRule element is present. A list of response headers to expose to CORS clients.
        items:
          type: string
        type: array
      maxAgeInSeconds:
        description: Required if CorsRule element is present. The number of seconds that the client/browser should cache a preflight response.
        type: integer
    required:
      - allowedOrigins
      - allowedMethods
      - maxAgeInSeconds
      - exposedHeaders
      - allowedHeaders
  CorsRules:
    description: "Sets the CORS rules. You can include up to five CorsRule elements in the request. "
    properties:
      corsRules:
        description: "The List of CORS rules. You can include up to five CorsRule elements in the request. "
        items:
          $ref: "#/definitions/CorsRule"
          description: "Specifies a CORS rule for the Blob service. "
        type: array
  DeleteRetentionPolicy:
    description: The blob service properties for soft delete.
    properties:
      days:
        description: Indicates the number of days that the deleted blob should be retained. The minimum specified value can be 1 and the maximum value can be 365.
        maximum: 365
        minimum: 1
        type: integer
      enabled:
        description: Indicates whether DeleteRetentionPolicy is enabled for the Blob service.
        type: boolean
  ImmutabilityPolicy:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a Azure Resource Manager resource with an etag.
        properties:
          etag:
            description: Resource Etag.
            readOnly: true
            type: string
        x-ms-client-name: AzureEntityResource
    description: The ImmutabilityPolicy property of a blob container, including Id, resource name, resource type, Etag.
    properties:
      properties:
        $ref: "#/definitions/ImmutabilityPolicyProperty"
        description: The properties of an ImmutabilityPolicy of a blob container.
        x-ms-client-flatten: true
    required:
      - properties
  ImmutabilityPolicyProperties:
    description: The properties of an ImmutabilityPolicy of a blob container.
    properties:
      etag:
        description: ImmutabilityPolicy Etag.
        readOnly: true
        type: string
      properties:
        $ref: "#/definitions/ImmutabilityPolicyProperty"
        description: The properties of an ImmutabilityPolicy of a blob container.
        x-ms-client-flatten: true
      updateHistory:
        description: The ImmutabilityPolicy update history of the blob container.
        items:
          $ref: "#/definitions/UpdateHistoryProperty"
        readOnly: true
        type: array
  ImmutabilityPolicyProperty:
    description: The properties of an ImmutabilityPolicy of a blob container.
    properties:
      immutabilityPeriodSinceCreationInDays:
        description: The immutability period for the blobs in the container since the policy creation, in days.
        type: integer
      state:
        description: "The ImmutabilityPolicy state of a blob container, possible values include: Locked and Unlocked."
        enum:
          - Locked
          - Unlocked
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: ImmutabilityPolicyState
    required:
      - immutabilityPeriodSinceCreationInDays
  LeaseContainerRequest:
    description: Lease Container request schema.
    properties:
      action:
        description: Specifies the lease action. Can be one of the available actions.
        enum:
          - Acquire
          - Renew
          - Change
          - Release
          - Break
        type: string
      breakPeriod:
        description: Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60.
        type: integer
      leaseDuration:
        description: Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires.
        type: integer
      leaseId:
        description: Identifies the lease. Can be specified in any valid GUID string format.
        type: string
      proposedLeaseId:
        description: Optional for acquire, required for change. Proposed lease ID, in a GUID string format.
        type: string
    required:
      - action
  LeaseContainerResponse:
    description: Lease Container response schema.
    properties:
      leaseId:
        description: Returned unique lease ID that must be included with any request to delete the container, or to renew, change, or release the lease.
        type: string
      leaseTimeSeconds:
        description: Approximate time remaining in the lease period, in seconds.
        type: string
  LegalHold:
    description: The LegalHold property of a blob container.
    properties:
      hasLegalHold:
        description: The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account.
        readOnly: true
        type: boolean
      tags:
        description: Each tag should be 3 to 23 alphanumeric characters and is normalized to lower case at SRP.
        items:
          maxLength: 23
          minLength: 3
          type: string
        type: array
    required:
      - tags
  LegalHoldProperties:
    description: The LegalHold property of a blob container.
    properties:
      hasLegalHold:
        description: The hasLegalHold public property is set to true by SRP if there are at least one existing tag. The hasLegalHold public property is set to false by SRP if all existing legal hold tags are cleared out. There can be a maximum of 1000 blob containers with hasLegalHold=true for a given account.
        readOnly: true
        type: boolean
      tags:
        description: The list of LegalHold tags of a blob container.
        items:
          $ref: "#/definitions/TagProperty"
        type: array
  ListContainerItem:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a Azure Resource Manager resource with an etag.
        properties:
          etag:
            description: Resource Etag.
            readOnly: true
            type: string
        x-ms-client-name: AzureEntityResource
    description: The blob container properties be listed out.
    properties:
      properties:
        $ref: "#/definitions/ContainerProperties"
        description: The blob container properties be listed out.
        x-ms-client-flatten: true
  ListContainerItems:
    description: Response schema. Contains list of blobs returned, and if paging is requested or required, a URL to next page of containers.
    properties:
      nextLink:
        description: Request URL that can be used to query next page of containers. Returned when total number of requested containers exceed maximum page size.
        readOnly: true
        type: string
      value:
        description: List of blobs containers returned.
        items:
          $ref: "#/definitions/ListContainerItem"
        readOnly: true
        type: array
  TagProperty:
    description: A tag of the LegalHold of a blob container.
    properties:
      objectIdentifier:
        description: Returns the Object ID of the user who added the tag.
        readOnly: true
        type: string
      tag:
        description: The tag value.
        readOnly: true
        type: string
      tenantId:
        description: Returns the Tenant ID that issued the token for the user who added the tag.
        readOnly: true
        type: string
      timestamp:
        description: Returns the date and time the tag was added.
        format: date-time
        readOnly: true
        type: string
      upn:
        description: Returns the User Principal Name of the user who added the tag.
        readOnly: true
        type: string
  UpdateHistoryProperty:
    description: An update history of the ImmutabilityPolicy of a blob container.
    properties:
      immutabilityPeriodSinceCreationInDays:
        description: The immutability period for the blobs in the container since the policy creation, in days.
        readOnly: true
        type: integer
      objectIdentifier:
        description: Returns the Object ID of the user who updated the ImmutabilityPolicy.
        readOnly: true
        type: string
      tenantId:
        description: Returns the Tenant ID that issued the token for the user who updated the ImmutabilityPolicy.
        readOnly: true
        type: string
      timestamp:
        description: Returns the date and time the ImmutabilityPolicy was updated.
        format: date-time
        readOnly: true
        type: string
      update:
        description: "The ImmutabilityPolicy update type of a blob container, possible values include: put, lock and extend."
        enum:
          - put
          - lock
          - extend
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: ImmutabilityPolicyUpdateType
      upn:
        description: Returns the User Principal Name of the user who updated the ImmutabilityPolicy.
        readOnly: true
        type: string
