swagger: "2.0"
schemes:
  - https
host: azure.local
info:
  description: Metadata API definition for the Azure Container Registry runtime
  title: Azure Container Registry
  version: 2019-08-15-preview
  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/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: containerregistry
  x-tags:
    - Azure
    - Microsoft
produces:
  - application/json
securityDefinitions:
  registry_auth:
    type: basic
  registry_oauth2:
    in: header
    name: Authorization
    type: apiKey
security:
  - registry_auth: []
    registry_oauth2: []
parameters:
  AccessToken:
    description: AAD access token, mandatory when grant_type is access_token_refresh_token or access_token.
    in: formData
    name: access_token
    required: false
    type: string
    x-ms-parameter-location: method
  BlobQueryDigest:
    description: Digest of a BLOB
    in: query
    name: digest
    required: true
    type: string
    x-ms-parameter-location: method
  Content-Range:
    description: Range of bytes identifying the desired block of content represented by the body. Start must the end offset retrieved via status check plus one. Note that this is a non-standard use of the `Content-Range` header.
    in: header
    name: Content-Range
    required: true
    type: string
    x-ms-parameter-location: method
  Digest:
    description: Digest of a BLOB
    in: path
    name: digest
    required: true
    type: string
    x-ms-parameter-location: method
  From:
    description: Name of the source repository.
    in: query
    name: from
    required: true
    type: string
    x-ms-parameter-location: method
  Grant_type:
    description: Can take a value of access_token_refresh_token, or access_token, or refresh_token
    enum:
      - access_token_refresh_token
      - access_token
      - refresh_token
    in: formData
    name: grant_type
    required: true
    type: string
    x-ms-parameter-location: method
  ImageName:
    description: Name of the image (including the namespace)
    in: path
    name: name
    required: true
    type: string
    x-ms-parameter-location: method
  ImageReference:
    description: A tag or a digest, pointing to a specific image
    in: path
    name: reference
    required: true
    type: string
    x-ms-parameter-location: method
  ManifestBody:
    description: Manifest body, can take v1 or v2 values depending on accept header
    in: body
    name: payload
    required: true
    schema:
      $ref: "#/definitions/Manifest"
    x-ms-parameter-location: method
  ManifestReference:
    description: Tag or digest of the target manifest
    in: path
    name: reference
    required: true
    type: string
    x-ms-parameter-location: method
  Mount:
    description: Digest of blob to mount from the source repository.
    in: query
    name: mount
    required: true
    type: string
    x-ms-parameter-location: method
  NextLink:
    description: Link acquired from upload start or previous chunk. Note, do not include initial / (must do substring(1) )
    in: path
    name: nextBlobUuidLink
    required: true
    type: string
    x-ms-client-name: location
    x-ms-parameter-location: method
    x-ms-skip-url-encoding: true
  NoUploadCache:
    description: Acquired from NextLink
    in: query
    name: _nouploadcache
    required: false
    type: boolean
    x-ms-parameter-location: method
  QueryDigest:
    description: filter by digest
    in: query
    name: digest
    required: false
    type: string
    x-ms-parameter-location: method
  QueryLast:
    description: Query parameter for the last item in previous query. Result set will include values lexically after last.
    in: query
    name: last
    required: false
    type: string
    x-ms-parameter-location: method
  QueryNum:
    description: query parameter for max number of items
    in: query
    name: n
    required: false
    type: integer
    x-ms-parameter-location: method
  QueryOrderBy:
    description: orderby query parameter
    in: query
    name: orderby
    required: false
    type: string
    x-ms-parameter-location: method
  Range:
    description: "Format : bytes=<start>-<end>,  HTTP Range header specifying blob chunk."
    in: header
    name: Range
    required: true
    type: string
    x-ms-parameter-location: method
  RawData:
    description: Raw data of blob
    in: body
    name: value
    required: true
    schema:
      format: file
      type: object
    x-ms-parameter-location: method
  RawDataOptional:
    description: Optional raw data of blob
    in: body
    name: value
    required: false
    schema:
      format: file
      type: object
    x-ms-parameter-location: method
  RefreshToken:
    description: AAD refresh token, mandatory when grant_type is access_token_refresh_token or refresh_token
    in: formData
    name: refresh_token
    required: false
    type: string
    x-ms-parameter-location: method
  RepoValue:
    description: Repository attribute value
    in: body
    name: value
    required: false
    schema:
      $ref: "#/definitions/ChangeableAttributes"
    x-ms-parameter-location: method
  Scope:
    description: Which is expected to be a valid scope, and can be specified more than once for multiple scope requests. You can obtain this from the Www-Authenticate response header from the challenge.
    in: formData
    name: scope
    required: true
    type: string
    x-ms-parameter-location: method
  Service:
    description: Indicates the name of your Azure container registry.
    in: formData
    name: service
    required: true
    type: string
    x-ms-parameter-location: method
  State:
    description: Acquired from NextLink
    in: query
    name: _state
    required: false
    type: string
    x-ms-parameter-location: method
  TagReference:
    description: Tag name
    in: path
    name: reference
    required: true
    type: string
    x-ms-parameter-location: method
  Tenant:
    description: AAD tenant associated to the AAD credentials.
    in: formData
    name: tenant
    required: false
    type: string
    x-ms-parameter-location: method
  Url:
    description: Registry login URL
    in: path
    name: url
    required: true
    type: string
    x-ms-client-name: loginUri
    x-ms-parameter-location: client
    x-ms-skip-url-encoding: true
  Uuid:
    description: A uuid identifying the upload.
    in: path
    name: uuid
    required: true
    type: string
    x-ms-parameter-location: method
tags:
  - description: Root API
    name: v2
  - description: Everything about manifests
    name: Manifest
  - description: Everything about tags
    name: Tag
  - description: Everything about layers
    name: Layer
  - description: Everything about repository
    name: Repository
  - description: ACR APIs related to repositories
    name: AcrRepository
  - description: ACR APIs related to manifests
    name: AcrManifest
  - description: ACR APIs related to tags
    name: AcrTag
paths:
  /acr/v1/_catalog:
    get:
      description: List repositories
      operationId: Repository_GetList
      parameters:
        - $ref: "#/parameters/QueryLast"
        - $ref: "#/parameters/QueryNum"
      responses:
        "200":
          description: Returns a list of repositories
          headers:
            Link:
              description: next paginated result
              type: string
          schema:
            $ref: "#/definitions/Repositories"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrRepository
      x-ms-examples:
        Get repositories in a registry:
          parameters:
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body:
                repositories:
                  - production/alpine
                  - testing/alpine
  "/acr/v1/{name}":
    delete:
      description: Delete the repository identified by `name`
      operationId: Repository_Delete
      parameters:
        - $ref: "#/parameters/ImageName"
      responses:
        "202":
          description: The repository is deleted
          schema:
            $ref: "#/definitions/DeletedRepository"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrRepository
      x-ms-examples:
        Delete a repository:
          parameters:
            name: nanoserver
            url: acrapi.azurecr-test.io
          responses:
            "202":
              body:
                manifestsDeleted:
                  - sha256:e31831d63f77a0a6d74ef5b16df619a50808dac842190d07ae24e8b520d159fa
                tagsDeleted:
                  - 4.7.2-20180814-windowsservercore-1709
    get:
      description: Get repository attributes
      operationId: Repository_GetAttributes
      parameters:
        - $ref: "#/parameters/ImageName"
      responses:
        "200":
          description: Returns a list of attributes
          schema:
            $ref: "#/definitions/RepositoryAttributes"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrRepository
        - AcrMetadata
      x-ms-examples:
        Get details of repository:
          parameters:
            name: nanoserver
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body:
                changeableAttributes:
                  deleteEnabled: true
                  listEnabled: true
                  readEnabled: true
                  writeEnabled: true
                createdTime: 2018-09-06T06:17:20.9531248Z
                imageName: nanoserver
                lastUpdateTime: 2018-09-07T16:30:46.6583219Z
                manifestCount: 2
                registry: acrapi.azurecr-test.io
                tagCount: 2
    patch:
      consumes:
        - application/json
      description: Update the attribute identified by `name` where `reference` is the name of the repository.
      operationId: Repository_UpdateAttributes
      parameters:
        - $ref: "#/parameters/ImageName"
        - description: Repository attribute value
          in: body
          name: value
          required: false
          schema:
            $ref: "#/definitions/ChangeableAttributes"
      responses:
        "200":
          description: The attributes are updated
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrRepository
        - AcrMetadata
      x-ms-examples:
        Update repository attributes:
          parameters:
            name: nanoserver
            url: acrapi.azurecr-test.io
            value:
              writeEnabled: false
          responses:
            "200": {}
  "/acr/v1/{name}/_manifests":
    get:
      description: List manifests of a repository
      operationId: Manifests_GetList
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/QueryLast"
        - $ref: "#/parameters/QueryNum"
        - $ref: "#/parameters/QueryOrderBy"
      responses:
        "200":
          description: Returns a list of manifests
          schema:
            $ref: "#/definitions/AcrManifests"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrManifest
        - AcrMetadata
      x-ms-examples:
        Get list of available manifests:
          parameters:
            name: nanoserver
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body:
                imageName: nanoserver
                manifests:
                  - architecture: amd64
                    changeableAttributes:
                      deleteEnabled: true
                      listEnabled: true
                      readEnabled: true
                      writeEnabled: true
                    configMediaType: application/vnd.docker.container.image.v1+json
                    createdTime: 2018-09-06T06:17:20.9983915Z
                    digest: sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086
                    imageSize: 2401606
                    lastUpdateTime: 2018-09-06T06:17:20.9983915Z
                    mediaType: application/vnd.docker.distribution.manifest.v2+json
                    os: windows
                    tags:
                      - 4.7.2-20180905-nanoserver-1803
                  - architecture: amd64
                    changeableAttributes:
                      deleteEnabled: true
                      listEnabled: true
                      readEnabled: true
                      writeEnabled: true
                    configMediaType: application/vnd.docker.container.image.v1+json
                    createdTime: 2018-09-07T16:30:46.5651701Z
                    digest: sha256:7af5cd1dde3e8f5c2c9103860afa4ca871a6075373b6564b0e7b1b47866dab52
                    imageSize: 4135121
                    lastUpdateTime: 2018-09-07T16:30:46.5651701Z
                    mediaType: application/vnd.docker.distribution.manifest.v2+json
                    os: windows
                    tags:
                      - 4.7.2-20180906-nanoserver-1803
                registry: acrapi.azurecr-test.io
  "/acr/v1/{name}/_manifests/{reference}":
    get:
      description: Get manifest attributes
      operationId: Manifests_GetAttributes
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/ImageReference"
      responses:
        "200":
          description: List of attributes
          schema:
            $ref: "#/definitions/ManifestAttributes"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrManifest
        - AcrMetadata
      x-ms-examples:
        Get manifest attributes:
          parameters:
            name: nanoserver
            reference: sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body:
                imageName: nanoserver
                manifest:
                  architecture: amd64
                  changeableAttributes:
                    deleteEnabled: true
                    listEnabled: true
                    readEnabled: true
                    writeEnabled: true
                  configMediaType: application/vnd.docker.container.image.v1+json
                  createdTime: 2018-09-06T06:17:20.9983915Z
                  digest: sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086
                  imageSize: 2401606
                  lastUpdateTime: 2018-09-06T06:17:20.9983915Z
                  mediaType: application/vnd.docker.distribution.manifest.v2+json
                  os: windows
                  tags:
                    - 4.7.2-20180905-nanoserver-1803
                registry: acrapi.azurecr-test.io
    patch:
      consumes:
        - application/json
      description: Update attributes of a manifest
      operationId: Manifests_UpdateAttributes
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/ImageReference"
        - $ref: "#/parameters/RepoValue"
      responses:
        "200":
          description: The attributes are updated
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrManifest
        - AcrMetadata
      x-ms-examples:
        Update attributes of a manifest:
          parameters:
            name: nanoserver
            reference: sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086
            url: acrapi.azurecr-test.io
            value: '{"writeEnabled": false}'
          responses:
            "200": {}
  "/acr/v1/{name}/_tags":
    get:
      description: List tags of a repository
      operationId: Tag_GetList
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/QueryLast"
        - $ref: "#/parameters/QueryNum"
        - $ref: "#/parameters/QueryOrderBy"
        - $ref: "#/parameters/QueryDigest"
      responses:
        "200":
          description: Tag details of a repository
          schema:
            $ref: "#/definitions/TagList"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrTag
        - AcrMetadata
      x-ms-examples:
        Get tags of a repository:
          parameters:
            name: nanoserver
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body:
                imageName: nanoserver
                registry: acrapi.azurecr-test.io
                tags:
                  - changeableAttributes:
                      deleteEnabled: true
                      listEnabled: true
                      readEnabled: true
                      writeEnabled: true
                    createdTime: 2018-09-06T06:17:21.0856539Z
                    digest: sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086
                    lastUpdateTime: 2018-09-06T06:17:21.0856539Z
                    name: 4.7.2-20180905-nanoserver-1803
                    signed: false
                  - changeableAttributes:
                      deleteEnabled: true
                      listEnabled: true
                      readEnabled: true
                      writeEnabled: true
                    createdTime: 2018-09-06T16:30:43.3860166Z
                    digest: sha256:7af5cd1dde3e8f5c2c9103860afa4ca871a6075373b6564b0e7b1b47866dab52
                    lastUpdateTime: 2018-09-07T16:30:46.7022734Z
                    name: 4.7.2-20180906-nanoserver-1803
                    signed: false
  "/acr/v1/{name}/_tags/{reference}":
    delete:
      consumes:
        - application/json
      description: Delete tag
      operationId: Tag_Delete
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/TagReference"
      responses:
        "202":
          description: The tag is deleted
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrTag
        - AcrMetadata
      x-ms-examples:
        Delete a tag:
          parameters:
            name: nanoserver
            reference: 4.7.2-20180905-nanoserver-1803
            url: acrapi.azurecr-test.io
          responses:
            "202": {}
    get:
      description: Get tag attributes by tag
      operationId: Tag_GetAttributes
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/TagReference"
      responses:
        "200":
          description: Tag attributes
          schema:
            $ref: "#/definitions/TagAttributes"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrTag
        - AcrMetadata
      x-ms-examples:
        Get tag attributes:
          parameters:
            name: test/bash
            reference: sha256:eabe547f78d4c18c708dd97ec3166cf7464cc651f1cbb67e7afas407405b7ad7b6
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body:
                imageName: test/bash
                registry: acrapi.azurecr-test.io
                tag:
                  changeableAttributes:
                    deleteEnabled: true
                    listEnabled: true
                    readEnabled: true
                    writeEnabled: false
                  createdTime: 2018-10-05T20:54:24.1286047Z
                  digest: sha256:eabe547f78d4c18c708dd97ec3166cf7464cc651f1cbb67e70d407405b7ad7b6
                  lastUpdateTime: 2018-10-05T20:54:24.1286047Z
                  name: tagName
                  signed: false
    patch:
      consumes:
        - application/json
      description: Update tag attributes
      operationId: Tag_UpdateAttributes
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/TagReference"
        - $ref: "#/parameters/RepoValue"
      responses:
        "200":
          description: The attributes are updated
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - AcrTag
        - AcrMetadata
      x-ms-examples:
        Update attributes of a tag:
          parameters:
            name: nanoserver
            reference: 4.7.2-20180905-nanoserver-1803
            url: acrapi.azurecr-test.io
            value: '{"writeEnabled": false}'
          responses:
            "200": {}
  /oauth2/exchange:
    post:
      consumes:
        - application/x-www-form-urlencoded
      description: Exchange AAD tokens for an ACR refresh Token
      operationId: RefreshTokens_GetFromExchange
      parameters:
        - $ref: "#/parameters/Grant_type"
        - $ref: "#/parameters/Service"
        - $ref: "#/parameters/Tenant"
        - $ref: "#/parameters/RefreshToken"
        - $ref: "#/parameters/AccessToken"
      responses:
        "200":
          description: Refresh token acquired
          schema:
            $ref: "#/definitions/RefreshToken"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      security: []
      tags:
        - AcrToken
        - RefreshToken
      x-ms-examples:
        Exchange AAD Token for ACR Refresh:
          parameters:
            accessToken: eyJ0eXAiOiJKJhbGci1dCI6IkN0ZlFDOExlLTMejlnIiwidGlkIjoiNzJmOTgWItMmQ3Y2QwMTFkYjQ3Ii...
            grant_type: access_token
            service: someregistry.azurecr.io
            tenant: 02f900bf-86f1-31af-p1ab-2b7cd0nndb47
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body:
                refresh_token: eyJ0eXAiOiJKJhbGcigdCI6IkN0ZlFaOExlLTMejlnIiwidGlkIjoiNzbmOTgWItMmQ3Y2QwMTFkYjQ3Ii...
  /oauth2/token:
    get:
      description: Exchange Username, Password and Scope an ACR Access Token
      operationId: AccessTokens_GetFromLogin
      parameters:
        - description: Indicates the name of your Azure container registry.
          in: query
          name: service
          required: true
          type: string
        - description: Expected to be a valid scope, and can be specified more than once for multiple scope requests. You can obtain this from the Www-Authenticate response header from the challenge.
          in: query
          name: scope
          required: true
          type: string
      responses:
        "200":
          description: Access token acquired
          schema:
            $ref: "#/definitions/AccessToken"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      security:
        - registry_auth: []
      tags:
        - AcrToken
        - AccessToken
        - userLogin
      x-ms-examples:
        Get Access Token with username and password:
          parameters:
            scope: registry:catalog:*
            service: someregistry.azurecr.io
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body:
                access_token: eyJ0eXAiOiJKJhbGcigdCI6IkN0ZlFaOExlLTMejlnIiwidGlkIjoiNzbmOTgWItMmQ3Y2QwMTFkYjQ3Ii...
    post:
      consumes:
        - application/x-www-form-urlencoded
      description: Exchange ACR Refresh token for an ACR Access Token
      operationId: AccessTokens_Get
      parameters:
        - description: Grant type is expected to be refresh_token
          enum:
            - refresh_token
          in: formData
          name: grant_type
          required: true
          type: string
        - $ref: "#/parameters/Service"
        - description: Which is expected to be a valid scope, and can be specified more than once for multiple scope requests. You obtained this from the Www-Authenticate response header from the challenge.
          in: formData
          name: scope
          required: true
          type: string
        - description: Must be a valid ACR refresh token
          in: formData
          name: refresh_token
          required: true
          type: string
      responses:
        "200":
          description: Access token acquired
          schema:
            $ref: "#/definitions/AccessToken"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      security: []
      tags:
        - AcrToken
        - AccessToken
      x-ms-examples:
        Get Access Token with Refresh Token:
          parameters:
            grant_type: refresh_token
            refresh_token: eyJ0eXAiOiJKJhbGci1dCI6IkN0ZlFDOExlLTMejlnIiwidGlkIjoiNzJmOTgWItMmQ3Y2QwMTFkYjQ3Ii...
            scope: registry:catalog:*
            service: someregistry.azurecr.io
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body:
                access_token: eyJ0eXAiOiJKJhbGcigdCI6IkN0ZlFaOExlLTMejlnIiwidGlkIjoiNzbmOTgWItMmQ3Y2QwMTFkYjQ3Ii...
  /v2/:
    get:
      description: Tells whether this Docker Registry instance supports Docker Registry HTTP API v2
      operationId: V2Support_Check
      responses:
        "200":
          description: Successful response. API v2 supported
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - v2
      x-ms-examples:
        Check Docker Registry V2 Support:
          parameters:
            url: acrapi.azurecr-test.io
          responses:
            "200": {}
  "/v2/{name}/blobs/uploads/":
    post:
      description: Mount a blob identified by the `mount` parameter from another repository.
      operationId: Blob_Mount
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/From"
        - $ref: "#/parameters/Mount"
      responses:
        "201":
          description: The blob has been created in the registry and is available at the provided location.
          headers:
            Docker-Content-Digest:
              description: Digest of the targeted content for the request.
              type: string
            Docker-Upload-UUID:
              description: Identifies the docker upload uuid for the current request.
              type: string
            Location:
              description: Provided location for blob
              type: string
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Layer
      x-ms-examples:
        Mount a blob from repository:
          parameters:
            from: sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39
            mount: prod/bash
            name: newimage
            url: acrapi.azurecr-test.io
          responses:
            "201":
              headers:
                Docker-Content-Digest: sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39
                Location: /v2/somethingnew/blobs/sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39
  "/v2/{name}/blobs/{digest}":
    delete:
      description: Removes an already uploaded blob.
      operationId: Blob_Delete
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/Digest"
      produces:
        - application/octet-stream
      responses:
        "202":
          description: The blob identified by digest is available. The blob content will be present in the body of the response.
          headers:
            Docker-Content-Digest:
              description: Digest of the targeted content for the request.
              type: string
          schema:
            description: blob binary data
            format: file
            type: file
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Layer
      x-ms-examples:
        Delete a blob:
          parameters:
            digest: sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39
            name: prod/bash
            url: acrapi.azurecr-test.io
          responses:
            "202":
              body: ""
    get:
      description: Retrieve the blob from the registry identified by digest.
      operationId: Blob_Get
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/Digest"
      produces:
        - application/octet-stream
      responses:
        "200":
          description: The blob identified by digest is available. The blob content will be present in the body of the response.
          headers:
            Content-Length:
              description: The length of the requested blob content.
              format: int64
              type: integer
            Docker-Content-Digest:
              description: Digest of the targeted content for the request.
              type: string
          schema:
            description: blob binary data
            format: file
            type: file
        "307":
          description: The blob identified by digest is available at the provided location.
          headers:
            Location:
              description: The location where the layer should be accessible.
              type: string
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Layer
      x-ms-examples:
        Get a blob from digest:
          parameters:
            digest: sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39
            name: prod/bash
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body: eyJhcmNoaXRlY3R1cmUiOiJhbWQ2NCIsImNvbmZpZyI6eyJIb3N0bmFtZSI6IiIsIkRvbWFpbm5hbWUiOiIiLCJVc2VyIjoiIiwiQXR0YWNoU3RkaW4iOmZhbHNlLCJBdHRhY2hTdGRvdXQiOmZhbHNlLCJBdHRhY2hTdGRlcnIiOmZhbHNlLCJUdHkiOmZhbHNlLCJPcGVuU3RkaW4iOmZhbHNlLCJTdGRpbk9uY2UiOmZhbHNlLCJFbnYiOlsiUEFUSD0vdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4iLCJfQkFTSF9HUEdfS0VZPTdDMDEzNUZCMDg4QUFGNkM2NkM2NTBCOUJCNTg2OUYwNjRFQTc0QUIiLCJfQkFTSF9WRVJTSU9OPTUuMCIsIl9CQVNIX1BBVENIX0xFVkVMPTAiLCJfQkFTSF9MQVRFU1RfUEFUQ0g9NyJdLCJDbWQiOlsiYmFzaCJdLCJBcmdzRXNjYXBlZCI6dHJ1ZSwiSW1hZ2UiOiJzaGEyNTY6MzhhZDJmYmM5ZjljMGE4N2RmZTBhMmIxOWJkY2E5NGJlNDVmNDY2M2Y3M2ZkMDlmZWZlZTQ5MmFmZDJjMDE0NCIsIlZvbHVtZXMiOm51bGwsIldvcmtpbmdEaXIiOiIiLCJFbnRyeXBvaW50IjpbImRvY2tlci1lbnRyeXBvaW50LnNoIl0sIk9uQnVpbGQiOm51bGwsIkxhYmVscyI6bnVsbH0sImNvbnRhaW5lciI6IjRiMDU0NmZhNDlkZjVkY2FlZDViNjYzNzE3ZjQ0MmNlZjcxYTFiOTVjMGZmYjQyYzhjNWNlNzIzMWI5MGMwMjYiLCJjb250YWluZXJfY29uZmlnIjp7Ikhvc3RuYW1lIjoiNGIwNTQ2ZmE0OWRmIiwiRG9tYWlubmFtZSI6IiIsIlVzZXIiOiIiLCJBdHRhY2hTdGRpbiI6ZmFsc2UsIkF0dGFjaFN0ZG91dCI6ZmFsc2UsIkF0dGFjaFN0ZGVyciI6ZmFsc2UsIlR0eSI6ZmFsc2UsIk9wZW5TdGRpbiI6ZmFsc2UsIlN0ZGluT25jZSI6ZmFsc2UsIkVudiI6WyJQQVRIPS91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbiIsIl9CQVNIX0dQR19LRVk9N0MwMTM1RkIwODhBQUY2QzY2QzY1MEI5QkI1ODY5RjA2NEVBNzRBQiIsIl9CQVNIX1ZFUlNJT049NS4wIiwiX0JBU0hfUEFUQ0hfTEVWRUw9MCIsIl9CQVNIX0xBVEVTVF9QQVRDSD03Il0sIkNtZCI6WyIvYmluL3NoIiwiLWMiLCIjKG5vcCkgIiwiQ01EIFtcImJhc2hcIl0iXSwiQXJnc0VzY2FwZWQiOnRydWUsIkltYWdlIjoic2hhMjU2OjM4YWQyZmJjOWY5YzBhODdkZmUwYTJiMTliZGNhOTRiZTQ1ZjQ2NjNmNzNmZDA5ZmVmZWU0OTJhZmQyYzAxNDQiLCJWb2x1bWVzIjpudWxsLCJXb3JraW5nRGlyIjoiIiwiRW50cnlwb2ludCI6WyJkb2NrZXItZW50cnlwb2ludC5zaCJdLCJPbkJ1aWxkIjpudWxsLCJMYWJlbHMiOnt9fSwiY3JlYXRlZCI6IjIwMTktMDctMTNUMDE6MTY6MDYuNTI3NTE1OTAyWiIsImRvY2tlcl92ZXJzaW9uIjoiMTguMDYuMS1jZSIsImhpc3RvcnkiOlt7ImNyZWF0ZWQiOiIyMDE5LTA3LTExVDIyOjIwOjUyLjEzOTcwOTM1NVoiLCJjcmVhdGVkX2J5IjoiL2Jpbi9zaCAtYyAjKG5vcCkgQUREIGZpbGU6MGViNWVhMzU3NDFkMjNmZTM5Y2JhYzI0NWIzYTVkODQ4NTZlZDYzODRmNGZmMDdkNDk2MzY5ZWU2ZDk2MGJhZCBpbiAvICJ9LHsiY3JlYXRlZCI6IjIwMTktMDctMTFUMjI6MjA6NTIuMzc1Mjg2NDA0WiIsImNyZWF0ZWRfYnkiOiIvYmluL3NoIC1jICMobm9wKSAgQ01EIFtcIi9iaW4vc2hcIl0iLCJlbXB0eV9sYXllciI6dHJ1ZX0seyJjcmVhdGVkIjoiMjAxOS0wNy0xM1QwMToxNToxMy41Njc2Njk4MTJaIiwiY3JlYXRlZF9ieSI6Ii9iaW4vc2ggLWMgIyhub3ApICBFTlYgX0JBU0hfR1BHX0tFWT03QzAxMzVGQjA4OEFBRjZDNjZDNjUwQjlCQjU4NjlGMDY0RUE3NEFCIiwiZW1wdHlfbGF5ZXIiOnRydWV9LHsiY3JlYXRlZCI6IjIwMTktMDctMTNUMDE6MTU6MTMuNzQ1NjUyMDk4WiIsImNyZWF0ZWRfYnkiOiIvYmluL3NoIC1jICMobm9wKSAgRU5WIF9CQVNIX1ZFUlNJT049NS4wIiwiZW1wdHlfbGF5ZXIiOnRydWV9LHsiY3JlYXRlZCI6IjIwMTktMDctMTNUMDE6MTU6MTMuOTQwNDU1NDE5WiIsImNyZWF0ZWRfYnkiOiIvYmluL3NoIC1jICMobm9wKSAgRU5WIF9CQVNIX1BBVENIX0xFVkVMPTAiLCJlbXB0eV9sYXllciI6dHJ1ZX0seyJjcmVhdGVkIjoiMjAxOS0wNy0xM1QwMToxNToxNC4wOTkzMDAwNzVaIiwiY3JlYXRlZF9ieSI6Ii9iaW4vc2ggLWMgIyhub3ApICBFTlYgX0JBU0hfTEFURVNUX1BBVENIPTciLCJlbXB0eV9sYXllciI6dHJ1ZX0seyJjcmVhdGVkIjoiMjAxOS0wNy0xM1QwMToxNjowNS45Mjg0MjkyNjJaIiwiY3JlYXRlZF9ieSI6Ii9iaW4vc2ggLWMgc2V0IC1ldXg7IFx0XHRhcGsgYWRkIC0tbm8tY2FjaGUgLS12aXJ0dWFsIC5idWlsZC1kZXBzIFx0XHRiaXNvbiBcdFx0Y29yZXV0aWxzIFx0XHRkcGtnLWRldiBkcGtnIFx0XHRnY2MgXHRcdGdudXBnIFx0XHRsaWJjLWRldiBcdFx0bWFrZSBcdFx0bmN1cnNlcy1kZXYgXHRcdHBhdGNoIFx0XHR0YXIgXHQ7IFx0XHR2ZXJzaW9uPVwiJF9CQVNIX1ZFUlNJT05cIjsgXHRpZiBbIFwiJF9CQVNIX1BBVENIX0xFVkVMXCIgLWd0IDAgXTsgdGhlbiBcdFx0dmVyc2lvbj1cIiR2ZXJzaW9uLiRfQkFTSF9QQVRDSF9MRVZFTFwiOyBcdGZpOyBcdHdnZXQgLU8gYmFzaC50YXIuZ3ogXCJodHRwczovL2Z0cC5nbnUub3JnL2dudS9iYXNoL2Jhc2gtJHZlcnNpb24udGFyLmd6XCI7IFx0d2dldCAtTyBiYXNoLnRhci5nei5zaWcgXCJodHRwczovL2Z0cC5nbnUub3JnL2dudS9iYXNoL2Jhc2gtJHZlcnNpb24udGFyLmd6LnNpZ1wiOyBcdFx0aWYgWyBcIiRfQkFTSF9MQVRFU1RfUEFUQ0hcIiAtZ3QgXCIkX0JBU0hfUEFUQ0hfTEVWRUxcIiBdOyB0aGVuIFx0XHRta2RpciAtcCBiYXNoLXBhdGNoZXM7IFx0XHRmaXJzdD1cIiQocHJpbnRmICclMDNkJyBcIiQoKCBfQkFTSF9QQVRDSF9MRVZFTCArIDEgKSlcIilcIjsgXHRcdGxhc3Q9XCIkKHByaW50ZiAnJTAzZCcgXCIkX0JBU0hfTEFURVNUX1BBVENIXCIpXCI7IFx0XHRmb3IgcGF0Y2ggaW4gJChzZXEgLXcgXCIkZmlyc3RcIiBcIiRsYXN0XCIpOyBkbyBcdFx0XHR1cmw9XCJodHRwczovL2Z0cC5nbnUub3JnL2dudS9iYXNoL2Jhc2gtJF9CQVNIX1ZFUlNJT04tcGF0Y2hlcy9iYXNoJHtfQkFTSF9WRVJTSU9OLy8uL30tJHBhdGNoXCI7IFx0XHRcdHdnZXQgLU8gXCJiYXNoLXBhdGNoZXMvJHBhdGNoXCIgXCIkdXJsXCI7IFx0XHRcdHdnZXQgLU8gXCJiYXNoLXBhdGNoZXMvJHBhdGNoLnNpZ1wiIFwiJHVybC5zaWdcIjsgXHRcdGRvbmU7IFx0Zmk7IFx0XHRleHBvcnQgR05VUEdIT01FPVwiJChta3RlbXAgLWQpXCI7IFx0Z3BnIC0tYmF0Y2ggLS1rZXlzZXJ2ZXIgaGEucG9vbC5za3Mta2V5c2VydmVycy5uZXQgLS1yZWN2LWtleXMgXCIkX0JBU0hfR1BHX0tFWVwiOyBcdGdwZyAtLWJhdGNoIC0tdmVyaWZ5IGJhc2gudGFyLmd6LnNpZyBiYXNoLnRhci5nejsgXHRncGdjb25mIC0ta2lsbCBhbGw7IFx0cm0gYmFzaC50YXIuZ3ouc2lnOyBcdGlmIFsgLWQgYmFzaC1wYXRjaGVzIF07IHRoZW4gXHRcdGZvciBzaWcgaW4gYmFzaC1wYXRjaGVzLyouc2lnOyBkbyBcdFx0XHRwPVwiJHtzaWclLnNpZ31cIjsgXHRcdFx0Z3BnIC0tYmF0Y2ggLS12ZXJpZnkgXCIkc2lnXCIgXCIkcFwiOyBcdFx0XHRybSBcIiRzaWdcIjsgXHRcdGRvbmU7IFx0Zmk7IFx0cm0gLXJmIFwiJEdOVVBHSE9NRVwiOyBcdFx0bWtkaXIgLXAgL3Vzci9zcmMvYmFzaDsgXHR0YXIgXHRcdC0tZXh0cmFjdCBcdFx0LS1maWxlPWJhc2gudGFyLmd6IFx0XHQtLXN0cmlwLWNvbXBvbmVudHM9MSBcdFx0LS1kaXJlY3Rvcnk9L3Vzci9zcmMvYmFzaCBcdDsgXHRybSBiYXNoLnRhci5nejsgXHRcdGlmIFsgLWQgYmFzaC1wYXRjaGVzIF07IHRoZW4gXHRcdGZvciBwIGluIGJhc2gtcGF0Y2hlcy8qOyBkbyBcdFx0XHRwYXRjaCBcdFx0XHRcdC0tZGlyZWN0b3J5PS91c3Ivc3JjL2Jhc2ggXHRcdFx0XHQtLWlucHV0PVwiJChyZWFkbGluayAtZiBcIiRwXCIpXCIgXHRcdFx0XHQtLXN0cmlwPTAgXHRcdFx0OyBcdFx0XHRybSBcIiRwXCI7IFx0XHRkb25lOyBcdFx0cm1kaXIgYmFzaC1wYXRjaGVzOyBcdGZpOyBcdFx0Y2QgL3Vzci9zcmMvYmFzaDsgXHRnbnVBcmNoPVwiJChkcGtnLWFyY2hpdGVjdHVyZSAtLXF1ZXJ5IERFQl9CVUlMRF9HTlVfVFlQRSlcIjsgXHQuL2NvbmZpZ3VyZSBcdFx0LS1idWlsZD1cIiRnbnVBcmNoXCIgXHRcdC0tZW5hYmxlLXJlYWRsaW5lIFx0XHQtLXdpdGgtY3Vyc2VzIFx0XHQtLXdpdGhvdXQtYmFzaC1tYWxsb2MgXHR8fCB7IFx0XHRjYXQgXHUwMDNlXHUwMDI2MiBjb25maWcubG9nOyBcdFx0ZmFsc2U7IFx0fTsgXHRtYWtlIC1qIFwiJChucHJvYylcIjsgXHRtYWtlIGluc3RhbGw7IFx0Y2QgLzsgXHRybSAtciAvdXNyL3NyYy9iYXNoOyBcdFx0cm0gLXIgXHRcdC91c3IvbG9jYWwvc2hhcmUvZG9jL2Jhc2gvKi5odG1sIFx0XHQvdXNyL2xvY2FsL3NoYXJlL2luZm8gXHRcdC91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIFx0XHQvdXNyL2xvY2FsL3NoYXJlL21hbiBcdDsgXHRcdHJ1bkRlcHM9XCIkKCBcdFx0c2NhbmVsZiAtLW5lZWRlZCAtLW5vYmFubmVyIC0tZm9ybWF0ICclbiNwJyAtLXJlY3Vyc2l2ZSAvdXNyL2xvY2FsIFx0XHRcdHwgdHIgJywnICdcXG4nIFx0XHRcdHwgc29ydCAtdSBcdFx0XHR8IGF3ayAnc3lzdGVtKFwiWyAtZSAvdXNyL2xvY2FsL2xpYi9cIiAkMSBcIiBdXCIpID09IDAgeyBuZXh0IH0geyBwcmludCBcInNvOlwiICQxIH0nIFx0KVwiOyBcdGFwayBhZGQgLS1uby1jYWNoZSAtLXZpcnR1YWwgLmJhc2gtcnVuZGVwcyAkcnVuRGVwczsgXHRhcGsgZGVsIC5idWlsZC1kZXBzOyBcdFx0WyBcIiQod2hpY2ggYmFzaClcIiA9ICcvdXNyL2xvY2FsL2Jpbi9iYXNoJyBdOyBcdGJhc2ggLS12ZXJzaW9uOyBcdFsgXCIkKGJhc2ggLWMgJ2VjaG8gXCIke0JBU0hfVkVSU0lPTiUlW14wLTkuXSp9XCInKVwiID0gXCIke19CQVNIX1ZFUlNJT04lJS0qfS4kX0JBU0hfTEFURVNUX1BBVENIXCIgXTsifSx7ImNyZWF0ZWQiOiIyMDE5LTA3LTEzVDAxOjE2OjA2LjE2NDEyODQxMloiLCJjcmVhdGVkX2J5IjoiL2Jpbi9zaCAtYyAjKG5vcCkgQ09QWSBmaWxlOjY1MWIzYmViZWJhOGJlOTE2MmM1NmIzZWI1NjExOTk5MDUyMzVmM2UxYzc4MTEyMzJiNmM5ZjQ4YWMzMzM2NTEgaW4gL3Vzci9sb2NhbC9iaW4vICJ9LHsiY3JlYXRlZCI6IjIwMTktMDctMTNUMDE6MTY6MDYuMzE5Mzc1ODg0WiIsImNyZWF0ZWRfYnkiOiIvYmluL3NoIC1jICMobm9wKSAgRU5UUllQT0lOVCBbXCJkb2NrZXItZW50cnlwb2ludC5zaFwiXSIsImVtcHR5X2xheWVyIjp0cnVlfSx7ImNyZWF0ZWQiOiIyMDE5LTA3LTEzVDAxOjE2OjA2LjUyNzUxNTkwMloiLCJjcmVhdGVkX2J5IjoiL2Jpbi9zaCAtYyAjKG5vcCkgIENNRCBbXCJiYXNoXCJdIiwiZW1wdHlfbGF5ZXIiOnRydWV9XSwib3MiOiJsaW51eCIsInJvb3RmcyI6eyJ0eXBlIjoibGF5ZXJzIiwiZGlmZl9pZHMiOlsic2hhMjU2OjFiZmVlYmQ2NTMyM2I4ZGRmNWJkNmE1MWNjNzA5N2I3Mjc4OGJjOTgyZTlhYjMyODBkNTNkM2M2MTNhZGZmYTciLCJzaGEyNTY6NDgzYzk4MGFjNmFiZjYzZmM0ZDcyNjJiMTdhMTk1NGQ2MjI2NmRhYzMwMjliNWJlMzg0ZDAzYjM5MjI5ODAzZSIsInNoYTI1Njo1ZjVmOTNhOTMzMDUyMTBhOTZjYzQxN2Y1NzlkNzBhNDk2YmJmMGRiOGU4MGVhMWU5NDM2NjgyYzM3OWYyNWQ5Il19fQ==
              headers:
                Content-Length: 5635
            "307":
              headers:
                Location: https://csharpsdktest.azurecr.io/v2/prod/bash/blobs/sha256:3131d2b2b3352091117a3abe745d01a3fed472b7327c3183602247937800e3a6
    head:
      description: Same as GET, except only the headers are returned.
      operationId: Blob_Check
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/Digest"
      responses:
        "200":
          description: The blob identified by digest is available. The blob content will be present in the body of the response.
          headers:
            Content-Length:
              description: The length of the requested blob content.
              format: int64
              type: integer
            Docker-Content-Digest:
              description: Digest of the targeted content for the request.
              type: string
        "307":
          description: The blob identified by digest is available at the provided location.
          headers:
            Location:
              description: The location where the layer should be accessible.
              type: string
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Layer
      x-ms-examples:
        Head for a Blob Chunk:
          parameters:
            digest: sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39
            name: prod/bash
            url: acrapi.azurecr-test.io
          responses:
            "200":
              headers:
                Content-Length: 5635
            "307":
              headers:
                Location: https://csharpsdktest.azurecr.io/v2/prod/bash/blobs/sha256:3131d2b2b3352091117a3abe745d01a3fed472b7327c3183602247937800e3a6
  "/v2/{name}/manifests/{reference}":
    delete:
      description: Delete the manifest identified by `name` and `reference`. Note that a manifest can _only_ be deleted by `digest`.
      operationId: Manifests_Delete
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/ImageReference"
      responses:
        "202":
          description: The manifest has been deleted
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Manifest
      x-ms-examples:
        Delete manifest:
          parameters:
            name: alpine
            reference: "3.7"
            url: acrapi.azurecr-test.io
          responses:
            "202": {}
    get:
      description: Get the manifest identified by `name` and `reference` where `reference` can be a tag or digest.
      operationId: Manifests_Get
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/ImageReference"
        - description: Accept header string delimited by comma. For example, application/vnd.docker.distribution.manifest.v2+json
          in: header
          name: accept
          required: false
          type: string
      responses:
        "200":
          description: Returns the requested manifest file in a larger combined group
          schema:
            $ref: "#/definitions/ManifestWrapper"
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Manifest
      x-ms-examples:
        Get manifest:
          parameters:
            accept: application/vnd.docker.distribution.manifest.v2+json
            name: hello-world-dangling
            reference: 20190628-033033z
            url: acrapi.azurecr-test.io
          responses:
            "200":
              body:
                config:
                  digest: sha256:691fbc2d44fff48357bba69ab0505b9bf12b2b250a925a84a0b8e8e7eed390b2
                  mediaType: application/vnd.docker.container.image.v1+json
                  size: 5824
                layers:
                  - digest: sha256:a073c86ecf9e0f29180e80e9638d4c741970695851ea48247276c32c57e40282
                    mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
                    size: 2014658
                  - digest: sha256:0e28711eb56d78f1e3dfde1807eba529d1346222bcd07d1cb1e436a18a0388bd
                    mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
                    size: 19778035
                  - digest: sha256:e460dd483fddb555911f7ed188c319fd97542c60e36843dcb1c5d753f733e1fa
                    mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
                    size: 1074044
                  - digest: sha256:6aa301222093bfb8cf424ccb387f59e2c9510c3a30cca7fbcf8c954f88e6600c
                    mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
                    size: 5827
                  - digest: sha256:9c5d80083a57d565f684e0155707204d497a5ad965279f92927452f15dae17e6
                    mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
                    size: 568
                mediaType: application/vnd.docker.distribution.manifest.v2+json
                schemaVersion: 2
    put:
      consumes:
        - application/vnd.docker.distribution.manifest.v2+json
      description: Put the manifest identified by `name` and `reference` where `reference` can be a tag or digest.
      operationId: Manifests_Create
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/ImageReference"
        - $ref: "#/parameters/ManifestBody"
      responses:
        "201":
          description: The manifest is updated
          headers:
            Content-Length:
              description: The length of the requested blob content.
              format: int64
              type: integer
            Docker-Content-Digest:
              description: Identifies the docker upload uuid for the current request.
              type: string
            Location:
              description: The canonical location url of the uploaded manifest.
              type: string
          schema: {}
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Manifest
      x-ms-examples:
        Put manifest:
          parameters:
            name: hello-world
            payload: '{"schemaVersion":2,"mediaType":"application/vnd.docker.distribution.manifest.v2+json","config":{"mediaType":"application/vnd.docker.container.image.v1+json","size":1512,"digest":"sha256:6d1ef012b5674ad8a127ecfa9b5e6f5178d171b90ee462846974177fd9bdd39f"},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","size":2107098,"digest":"sha256:5d20c808ce198565ff70b3ed23a991dd49afac45dece63474b27ce6ed036adc6"}]}'
            reference: a20190628-081044z
            url: acrapi.azurecr-test.io
          responses:
            "201":
              body: {}
              headers:
                Content-Length: 0
                Docker-Content-Digest: sha256:15685c48490175b7dde62e6bfcfb54d9420c6495ea6404776e2facca3da93cd8
                Location: /v2/hello-world/manifests/sha256:15685c48490175b7dde62e6bfcfb54d9420c6495ea6404776e2facca3da93cd8
      x-ms-long-running-operation: false
  "/{nextBlobUuidLink}":
    delete:
      description: Cancel outstanding upload processes, releasing associated resources. If this is not called, the unfinished uploads will eventually timeout.
      operationId: Blob_CancelUpload
      parameters:
        - $ref: "#/parameters/NextLink"
      responses:
        "204":
          description: The upload has been successfully deleted.
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Layer
      x-ms-examples:
        End a blob upload:
          parameters:
            nextBlobUuidLink: v2/blobland/blobs/uploads/2b28c60d-d296-44b7-b2b4-1f01c63195c6?_nouploadcache=false&_state=VYABvUSCNW2yY5e5VabLHppXqwU0K7cvT0YUdq57KBt7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiIyYjI4YzYwZC1kMjk2LTQ0YjctYjJiNC0xZjAxYzYzMTk1YzYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTktMDgtMjdUMjM6NTI6NDcuMDUzNjU2Mjg1WiJ9
            url: acrapi.azurecr-test.io
          responses:
            "204": {}
    get:
      description: Retrieve status of upload identified by uuid. The primary purpose of this endpoint is to resolve the current status of a resumable upload.
      operationId: Blob_GetStatus
      parameters:
        - $ref: "#/parameters/NextLink"
      responses:
        "204":
          description: The upload is known and in progress. The last received offset is available in the Range header.
          headers:
            Docker-Upload-UUID:
              description: Identifies the docker upload uuid for the current request.
              type: string
            Range:
              description: Range indicating the current progress of the upload.
              type: string
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Layer
      x-ms-examples:
        Get blob status:
          parameters:
            nextBlobUuidLink: v2/blobland/blobs/uploads/2b28c60d-d296-44b7-b2b4-1f01c63195c6?_nouploadcache=false&_state=VYABvUSCNW2yY5e5VabLHppXqwU0K7cvT0YUdq57KBt7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiIyYjI4YzYwZC1kMjk2LTQ0YjctYjJiNC0xZjAxYzYzMTk1YzYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTktMDgtMjdUMjM6NTI6NDcuMDUzNjU2Mjg1WiJ9
            url: acrapi.azurecr-test.io
          responses:
            "204":
              headers:
                Docker-Upload-Uuid: 2b28c60d-d296-44b7-b2b4-1f01c63195c6
                Range: 0-0
    patch:
      consumes:
        - application/octet-stream
      description: Upload a stream of data without completing the upload.
      operationId: Blob_Upload
      parameters:
        - $ref: "#/parameters/RawData"
        - $ref: "#/parameters/NextLink"
      responses:
        "202":
          description: The stream of data has been accepted and the current progress is available in the range header. The updated upload location is available in the Location header.
          headers:
            Docker-Upload-UUID:
              description: Identifies the docker upload uuid for the current request.
              type: string
            Location:
              description: Provided location for blob
              type: string
            Range:
              description: Range indicating the current progress of the upload.
              type: string
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      security:
        - registry_auth: []
          registry_oauth2: []
      tags:
        - Layer
      x-ms-examples:
        Upload Blob:
          parameters:
            nextBlobUuidLink: v2/blobland/blobs/uploads/2b28c60d-d296-44b7-b2b4-1f01c63195c6?_nouploadcache=false&_state=VYABvUSCNW2yY5e5VabLHppXqwU0K7cvT0YUdq57KBt7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiIyYjI4YzYwZC1kMjk2LTQ0YjctYjJiNC0xZjAxYzYzMTk1YzYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTktMDgtMjdUMjM6NTI6NDcuMDUzNjU2Mjg1WiJ9
            url: acrapi.azurecr-test.io
            value: U29tZXRoaW5nRWxzZQ==
          responses:
            "202":
              headers:
                Docker-Upload-Uuid: f6d3451c-3352-43ff-b67c-fd0cfc793066
                Location: /v2/blobland/blobs/uploads/f6d3451c-3352-43ff-b67c-fd0cfc793066?_nouploadcache=false&_state=9G2t2KQOw-ANeo5TrnwVb5OeAUIe0NaEJ2jxwLT6Y1J7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiJmNmQzNDUxYy0zMzUyLTQzZmYtYjY3Yy1mZDBjZmM3OTMwNjYiLCJPZmZzZXQiOjEzLCJTdGFydGVkQXQiOiIyMDE5LTA4LTI3VDIzOjUyOjU0WiJ9
                Range: 0-12
    put:
      consumes:
        - application/octet-stream
      description: Complete the upload, providing all the data in the body, if necessary. A request without a body will just complete the upload with previously uploaded content.
      operationId: Blob_EndUpload
      parameters:
        - $ref: "#/parameters/BlobQueryDigest"
        - $ref: "#/parameters/RawDataOptional"
        - $ref: "#/parameters/NextLink"
      responses:
        "201":
          description: The upload has been completed and accepted by the registry.
          headers:
            Docker-Content-Digest:
              description: Digest of the targeted content for the request.
              type: string
            Location:
              description: Provided location for blob
              type: string
            Range:
              description: Range indicating the current progress of the upload.
              type: string
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Layer
      x-ms-examples:
        End a blob upload:
          parameters:
            digest: sha256:a05a7abc31b0caadd5058069eaa623cdd0538512dbddacc7ca5bad73c3957c5e
            nextBlobUuidLink: v2/blobland/blobs/uploads/2b28c60d-d296-44b7-b2b4-1f01c63195c6?_nouploadcache=false&_state=VYABvUSCNW2yY5e5VabLHppXqwU0K7cvT0YUdq57KBt7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiIyYjI4YzYwZC1kMjk2LTQ0YjctYjJiNC0xZjAxYzYzMTk1YzYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTktMDgtMjdUMjM6NTI6NDcuMDUzNjU2Mjg1WiJ9
            url: acrapi.azurecr-test.io
            value: usuallyEmpty
          responses:
            "201":
              headers:
                Docker-Content-Digest: sha256:a05a7abc31b0caadd5058069eaa623cdd0538512dbddacc7ca5bad73c3957c5e
                Location: /v2/blobland/blobs/sha256:a05a7abc31b0caadd5058069eaa623cdd0538512dbddacc7ca5bad73c3957c5e
definitions:
  AccessToken:
    properties:
      access_token:
        description: The access token for performing authenticated requests
        type: string
    type: object
  AcrErrorInfo:
    description: Error information
    properties:
      code:
        description: Error code
        type: string
      detail:
        description: Error details
        type: object
      message:
        description: Error message
        type: string
  AcrErrors:
    description: Acr error response describing why the operation failed
    properties:
      errors:
        description: Array of detailed error
        items:
          $ref: "#/definitions/AcrErrorInfo"
        type: array
  AcrManifests:
    description: Manifest attributes
    example:
      imageName: imageName
      manifests:
        - architecture: architecture
          changeableAttributes:
            deleteEnabled: true
            listEnabled: true
            quarantineDetails: quarantineDetails
            quarantineState: quarantineState
            readEnabled: true
            writeEnabled: true
          configMediaType: configMediaType
          createdTime: createdTime
          digest: digest
          imageSize: 2401606
          lastUpdateTime: lastUpdateTime
          mediaType: mediaType
          os: os
          tags:
            - tags
            - tags
        - architecture: architecture
          changeableAttributes:
            deleteEnabled: true
            listEnabled: true
            quarantineDetails: quarantineDetails
            quarantineState: quarantineState
            readEnabled: true
            writeEnabled: true
          configMediaType: configMediaType
          createdTime: createdTime
          digest: digest
          imageSize: 2401606
          lastUpdateTime: lastUpdateTime
          mediaType: mediaType
          os: os
          tags:
            - tags
            - tags
      registry: registry
    properties:
      imageName:
        description: Image name
        type: string
      manifests:
        description: List of manifests
        items:
          $ref: "#/definitions/ManifestAttributesBase"
          description: Manifest details
        type: array
        x-ms-client-name: ManifestsAttributes
      registry:
        description: Registry name
        type: string
  Annotations:
    additionalProperties:
      type: object
    description: Additional information provided through arbitrary metadata.
    properties:
      org.opencontainers.image.authors:
        description: Contact details of the people or organization responsible for the image.
        type: string
        x-ms-client-name: Authors
      org.opencontainers.image.created:
        description: Date and time on which the image was built (string, date-time as defined by https://tools.ietf.org/html/rfc3339#section-5.6)
        format: date-time
        type: string
        x-ms-client-name: Created
      org.opencontainers.image.description:
        description: Human-readable description of the software packaged in the image
        type: string
        x-ms-client-name: Description
      org.opencontainers.image.documentation:
        description: URL to get documentation on the image.
        type: string
        x-ms-client-name: Documentation
      org.opencontainers.image.licenses:
        description: License(s) under which contained software is distributed as an SPDX License Expression.
        type: string
        x-ms-client-name: Licenses
      org.opencontainers.image.ref.name:
        description: Name of the reference for a target.
        type: string
        x-ms-client-name: Name
      org.opencontainers.image.revision:
        description: Source control revision identifier for the packaged software.
        type: string
        x-ms-client-name: Revision
      org.opencontainers.image.source:
        description: URL to get source code for building the image.
        type: string
        x-ms-client-name: Source
      org.opencontainers.image.title:
        description: Human-readable title of the image
        type: string
        x-ms-client-name: Title
      org.opencontainers.image.url:
        description: URL to find more information on the image.
        type: string
        x-ms-client-name: Url
      org.opencontainers.image.vendor:
        description: Name of the distributing entity, organization or individual.
        type: string
        x-ms-client-name: Vendor
      org.opencontainers.image.version:
        description: Version of the packaged software. The version MAY match a label or tag in the source code repository, may also be Semantic versioning-compatible
        type: string
        x-ms-client-name: Version
    type: object
    x-nullable: true
  ChangeableAttributes:
    example:
      deleteEnabled: true
      listEnabled: true
      readEnabled: true
      writeEnabled: true
    properties:
      deleteEnabled:
        description: Delete enabled
        type: boolean
      listEnabled:
        description: List enabled
        type: boolean
      readEnabled:
        description: Read enabled
        type: boolean
      writeEnabled:
        description: Write enabled
        type: boolean
  DeletedRepository:
    description: Deleted repository
    properties:
      manifestsDeleted:
        description: SHA of the deleted image
        items:
          type: string
        type: array
      tagsDeleted:
        description: Tag of the deleted image
        items:
          type: string
        type: array
  Descriptor:
    description: Docker V2 image layer descriptor including config and layers
    example:
      digest: sha256:5d20c808ce198565ff70b3ed23a991dd49afac45dece63474b27ce6ed036adc6
      mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
      size: 2107098
    properties:
      annotations:
        $ref: "#/definitions/Annotations"
      digest:
        description: Layer digest
        type: string
      mediaType:
        description: Layer media type
        type: string
      size:
        description: Layer size
        format: int64
        type: integer
      urls:
        description: Specifies a list of URIs from which this object may be downloaded.
        items:
          description: Must conform to RFC 3986. Entries should use the http and https schemes, as defined in RFC 7230.
          type: string
        type: array
  FsLayer:
    description: Image layer information
    example:
      blobSum: sha256:1f7d468f830cb0ed4beb8edc9438f18096e8c682e56a35242f60e6c61b718b30
    properties:
      blobSum:
        description: SHA of an image layer
        type: string
  History:
    description: A list of unstructured historical data for v1 compatibility
    example:
      v1Compatibility: v1 compatibility info
    properties:
      v1Compatibility:
        description: The raw v1 compatibility information
        type: string
  ImageSignature:
    description: Signature of a signed manifest
    example:
      header:
        alg: ES256
        jwk:
          crv: P-256
          kid: WGXM:EYWQ:DA53:LQUP:BCWG:5RDG:S3ZM:ETH7:VMQS:WWKZ:EWDG:V74Q
          kty: EC
          x: OxZ9k5BVjPZ7jb3BmBD4X0d8MVPJqfF4NeSe8reoqnY
          y: EaCqTe4-vYwhk7qU6Bs2-AeLGOVtCe_-IY2MdE0Vfyc
      protected: eyJmb3JtYXRMZW5ndGgiOjI5ODYsImZvcm1hdFRhaWwiOiJDbjAiLCJ0aW1lIjoiMjAxOC0wOS0yMFQyMzo0MTo1MloifQ
      signature: p73LfotMGD8nNXz2g9YX2XtSllb4GI5-b3vjqP5N0nkv8QXg-r5z_omGiVbOZE2BYG1X_4TIN23l1KSEqsXxOg
    properties:
      header:
        $ref: "#/definitions/JWK"
        description: A JSON web signature
      protected:
        description: The signed protected header
        type: string
      signature:
        description: A signature for the image manifest, signed by a libtrust private key
        type: string
  JWK:
    description: A JSON web signature
    properties:
      alg:
        description: The algorithm used to sign or encrypt the JWT
        type: string
      jwk:
        $ref: "#/definitions/JWKHeader"
  JWKHeader:
    description: JSON web key parameter
    properties:
      crv:
        description: crv value
        type: string
      kid:
        description: kid value
        type: string
      kty:
        description: kty value
        type: string
      x:
        description: x value
        type: string
      y:
        description: y value
        type: string
  Manifest:
    description: Returns the requested manifest file
    properties:
      schemaVersion:
        description: Schema version
        type: integer
  ManifestAttributes:
    description: Manifest attributes details
    example:
      imageName: nanoserver
      manifest:
        architecture: amd64
        changeableAttributes:
          deleteEnabled: true
          listEnabled: true
          readEnabled: true
          writeEnabled: true
        configMediaType: application/vnd.docker.container.image.v1+json
        createdTime: 2018-09-06T06:17:20.9983915Z
        digest: sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086
        imageSize: 2401606
        lastUpdateTime: 2018-09-06T06:17:20.9983915Z
        mediaType: application/vnd.docker.distribution.manifest.v2+json
        os: windows
        tags:
          - 4.7.2-20180905-nanoserver-1803
      registry: acrapi.azurecr-test.io
    properties:
      imageName:
        description: Image name
        type: string
      manifest:
        $ref: "#/definitions/ManifestAttributesBase"
        description: Manifest attributes
        x-ms-client-name: attributes
      registry:
        description: Registry name
        type: string
  ManifestAttributesBase:
    description: Manifest details
    example:
      architecture: architecture
      changeableAttributes:
        deleteEnabled: true
        listEnabled: true
        readEnabled: true
        writeEnabled: true
      configMediaType: configMediaType
      createdTime: createdTime
      digest: digest
      imageSize: 2401606
      lastUpdateTime: lastUpdateTime
      mediaType: mediaType
      os: os
      tags:
        - tags
        - tags
    properties:
      architecture:
        description: CPU architecture
        type: string
      changeableAttributes:
        $ref: "#/definitions/ChangeableAttributes"
        description: Changeable attributes
      configMediaType:
        description: Config blob media type
        type: string
      createdTime:
        description: Created time
        type: string
      digest:
        description: Manifest
        type: string
      imageSize:
        description: Image size
        format: int64
        type: integer
      lastUpdateTime:
        description: Last update time
        type: string
      mediaType:
        description: Media type
        type: string
      os:
        description: Operating system
        type: string
      tags:
        description: List of tags
        items:
          description: Tag name
          type: string
        type: array
    type: object
  ManifestAttributes_manifest:
    description: List of manifest attributes
    example:
      quarantineTag: quarantineTag
      references:
        - architecture: architecture
          digest: digest
          os: os
        - architecture: architecture
          digest: digest
          os: os
    properties:
      quarantineTag:
        description: Quarantine tag name
        type: string
      references:
        description: List of manifest attributes details
        items:
          $ref: "#/definitions/ManifestAttributes_manifest_references"
          description: Manifest attributes details
        type: array
  ManifestAttributes_manifest_references:
    description: Manifest attributes details
    example:
      architecture: architecture
      digest: digest
      os: os
    properties:
      architecture:
        description: CPU architecture
        type: string
      digest:
        description: Manifest digest
        type: string
      os:
        description: Operating system
        type: string
  ManifestChangeableAttributes:
    description: Changeable attributes
    example:
      deleteEnabled: true
      listEnabled: true
      quarantineDetails: quarantineDetails
      quarantineState: quarantineState
      readEnabled: true
      writeEnabled: true
    properties:
      deleteEnabled:
        description: Delete enabled
        type: boolean
      listEnabled:
        description: List enabled
        type: boolean
      quarantineDetails:
        description: Quarantine details
        type: string
      quarantineState:
        description: Quarantine state
        type: string
      readEnabled:
        description: Read enabled
        type: boolean
      writeEnabled:
        description: Write enabled
        type: boolean
  ManifestList:
    allOf:
      - $ref: "#/definitions/Manifest"
    description: Returns the requested Docker multi-arch-manifest file
    properties:
      manifests:
        description: List of V2 image layer information
        items:
          $ref: "#/definitions/ManifestListAttributes"
        type: array
      mediaType:
        description: Media type for this Manifest
        type: string
    x-ms-discriminator-value: application/vnd.docker.distribution.manifest.list.v2+json
  ManifestListAttributes:
    properties:
      digest:
        description: The digest of the content, as defined by the Registry V2 HTTP API Specification
        type: string
      mediaType:
        description: The MIME type of the referenced object. This will generally be application/vnd.docker.image.manifest.v2+json, but it could also be application/vnd.docker.image.manifest.v1+json
        type: string
      platform:
        $ref: "#/definitions/Platform"
      size:
        description: The size in bytes of the object
        format: int64
        type: integer
  ManifestWrapper:
    allOf:
      - $ref: "#/definitions/Manifest"
    description: Returns the requested manifest file
    properties:
      annotations:
        $ref: "#/definitions/Annotations"
        description: (OCI, OCIIndex) Additional metadata
      architecture:
        description: (V1) CPU architecture
        type: string
      config:
        $ref: "#/definitions/Descriptor"
        description: (V2, OCI) Image config descriptor
      fsLayers:
        description: (V1) List of layer information
        items:
          $ref: "#/definitions/FsLayer"
        type: array
      history:
        description: (V1) Image history
        items:
          $ref: "#/definitions/History"
        type: array
      layers:
        description: (V2, OCI) List of V2 image layer information
        items:
          $ref: "#/definitions/Descriptor"
        type: array
      manifests:
        description: (ManifestList, OCIIndex) List of V2 image layer information
        items:
          $ref: "#/definitions/ManifestListAttributes"
        type: array
      mediaType:
        description: Media type for this Manifest
        type: string
      name:
        description: (V1) Image name
        type: string
      signatures:
        description: (V1) Image signature
        items:
          $ref: "#/definitions/ImageSignature"
        type: array
      tag:
        description: (V1) Image tag
        type: string
  OCIIndex:
    allOf:
      - $ref: "#/definitions/Manifest"
    description: Returns the requested OCI index file
    properties:
      annotations:
        $ref: "#/definitions/Annotations"
      manifests:
        description: List of OCI image layer information
        items:
          $ref: "#/definitions/ManifestListAttributes"
        type: array
    x-ms-discriminator-value: application/vnd.oci.image.index.v1+json
  OCIManifest:
    allOf:
      - $ref: "#/definitions/Manifest"
    description: Returns the requested OCI Manifest file
    properties:
      annotations:
        $ref: "#/definitions/Annotations"
      config:
        $ref: "#/definitions/Descriptor"
        description: V2 image config descriptor
      layers:
        description: List of V2 image layer information
        items:
          $ref: "#/definitions/Descriptor"
        type: array
    x-ms-discriminator-value: application/vnd.oci.image.manifest.v1+json
  Platform:
    description: The platform object describes the platform which the image in the manifest runs on. A full list of valid operating system and architecture values are listed in the Go language documentation for $GOOS and $GOARCH
    properties:
      architecture:
        description: Specifies the CPU architecture, for example amd64 or ppc64le.
        type: string
      features:
        description: The optional features field specifies an array of strings, each listing a required CPU feature (for example sse4 or aes
        items:
          type: string
        type: array
      os:
        description: The os field specifies the operating system, for example linux or windows.
        type: string
      os.features:
        description: The optional os.features field specifies an array of strings, each listing a required OS feature (for example on Windows win32k
        items:
          type: string
        type: array
      os.version:
        description: The optional os.version field specifies the operating system version, for example 10.0.10586.
        type: string
      variant:
        description: The optional variant field specifies a variant of the CPU, for example armv6l to specify a particular CPU variant of the ARM CPU.
        type: string
  RefreshToken:
    properties:
      refresh_token:
        description: The refresh token to be used for generating access tokens
        type: string
    type: object
  Repositories:
    description: List of repositories
    example:
      repositories:
        - production/alpine
        - testing/alpine
    properties:
      repositories:
        description: Repository names
        items:
          type: string
        type: array
        x-ms-client-name: Names
  RepositoryAttributes:
    description: Repository attributes
    example:
      changeableAttributes:
        deleteEnabled: true
        listEnabled: true
        readEnabled: true
        writeEnabled: true
      createdTime: 2018-09-07T16:30:46.6583219Z
      imageName: imageName
      lastUpdateTime: 2018-09-07T16:30:46.6583219Z
      manifestCount: 2
      registry: registryname.azurecr.io
      tagCount: 6
    properties:
      changeableAttributes:
        $ref: "#/definitions/ChangeableAttributes"
        description: Changeable attributes
      createdTime:
        description: Image created time
        type: string
      imageName:
        description: Image name
        type: string
      lastUpdateTime:
        description: Image last update time
        type: string
      manifestCount:
        description: Number of the manifests
        type: integer
      registry:
        description: Registry name
        type: string
      tagCount:
        description: Number of the tags
        type: integer
    type: object
  RepositoryTags:
    description: Result of the request to list tags of the image
    example:
      name: name
      tags:
        - tags
        - tags
    properties:
      name:
        description: Name of the image
        type: string
      tags:
        description: List of tags
        items:
          description: Tag name
          type: string
        type: array
  TagAttributes:
    description: Tag attributes
    example:
      imageName: imageName
      registry: registry
      tag:
        changeableAttributes:
          deleteEnabled: true
          listEnabled: true
          readEnabled: true
          writeEnabled: true
        createdTime: createdTime
        digest: digest
        lastUpdateTime: lastUpdateTime
        name: name
        signed: true
    properties:
      imageName:
        description: Image name
        type: string
      registry:
        description: Registry name
        type: string
      tag:
        $ref: "#/definitions/TagAttributesBase"
        description: List of tag attribute details
        x-ms-client-name: attributes
  TagAttributesBase:
    description: Tag attribute details
    example:
      changeableAttributes:
        deleteEnabled: true
        listEnabled: true
        readEnabled: true
        writeEnabled: true
      createdTime: 2018-08-10T17:28:44.1082945Z
      digest: sha256:0873c923e00e0fd2ba78041bfb64a105e1ecb7678916d1f7776311e45bf5634b
      lastUpdateTime: 2018-08-10T17:28:44.1082945Z
      name: tagname
      signed: true
    properties:
      changeableAttributes:
        $ref: "#/definitions/ChangeableAttributes"
        description: Changeable attributes
      createdTime:
        description: Tag created time
        type: string
      digest:
        description: Tag digest
        type: string
      lastUpdateTime:
        description: Tag last update time
        type: string
      name:
        description: Tag name
        type: string
      signed:
        description: Is signed
        type: boolean
  TagAttributes_tag:
    description: Tag
    example:
      signatureRecord: signatureRecord
    properties:
      signatureRecord:
        description: SignatureRecord value
        type: string
  TagList:
    description: List of tag details
    example:
      imageName: imageName
      registry: registry
      tags:
        - changeableAttributes:
            deleteEnabled: true
            listEnabled: true
            readEnabled: true
            writeEnabled: true
          createdTime: createdTime
          digest: digest
          lastUpdateTime: lastUpdateTime
          name: name
          signed: true
        - changeableAttributes:
            deleteEnabled: true
            listEnabled: true
            readEnabled: true
            writeEnabled: true
          createdTime: createdTime
          digest: digest
          lastUpdateTime: lastUpdateTime
          name: name
          signed: true
    properties:
      imageName:
        description: Image name
        type: string
      registry:
        description: Registry name
        type: string
      tags:
        description: List of tag attribute details
        items:
          $ref: "#/definitions/TagAttributesBase"
        type: array
  V1Manifest:
    allOf:
      - $ref: "#/definitions/Manifest"
    description: Returns the requested V1 manifest file
    properties:
      architecture:
        description: CPU architecture
        type: string
      fsLayers:
        description: List of layer information
        items:
          $ref: "#/definitions/FsLayer"
        type: array
      history:
        description: Image history
        items:
          $ref: "#/definitions/History"
        type: array
      name:
        description: Image name
        type: string
      signatures:
        description: Image signature
        items:
          $ref: "#/definitions/ImageSignature"
        type: array
      tag:
        description: Image tag
        type: string
    x-ms-discriminator-value: application/vnd.oci.image.manifest.v1+json
  V2Manifest:
    allOf:
      - $ref: "#/definitions/Manifest"
    description: Returns the requested Docker V2 Manifest file
    example:
      config:
        digest: sha256:6d1ef012b5674ad8a127ecfa9b5e6f5178d171b90ee462846974177fd9bdd39f
        mediaType: application/vnd.docker.container.image.v1+json
        size: 1512
      layers:
        - digest: sha256:5d20c808ce198565ff70b3ed23a991dd49afac45dece63474b27ce6ed036adc6
          mediaType: application/vnd.docker.image.rootfs.diff.tar.gzip
          size: 2107098
      mediaType: application/vnd.docker.distribution.manifest.v2+json
      schemaVersion: 2
    properties:
      config:
        $ref: "#/definitions/Descriptor"
        description: V2 image config descriptor
      layers:
        description: List of V2 image layer information
        items:
          $ref: "#/definitions/Descriptor"
        type: array
      mediaType:
        description: Media type for this Manifest
        type: string
    x-ms-discriminator-value: application/vnd.docker.distribution.manifest.v2+json
x-ms-parameterized-host:
  hostTemplate: "{url}"
  parameters:
    - $ref: "#/parameters/Url"
  positionInOperation: first
  useSchemePrefix: false
x-ms-paths:
  "/v2/{name}/blobs/uploads/?mode=resumable":
    post:
      description: Initiate a resumable blob upload with an empty request body.
      operationId: Blob_StartUpload
      parameters:
        - $ref: "#/parameters/ImageName"
      responses:
        "202":
          description: The upload has been created. The Location header must be used to complete the upload. The response should be identical to a GET request on the contents of the returned Location header.
          headers:
            Docker-Upload-UUID:
              description: Identifies the docker upload uuid for the current request.
              type: string
            Location:
              description: Provided location for blob
              type: string
            Range:
              description: Range indicating the current progress of the upload.
              type: string
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Layer
      x-ms-examples:
        Start a blob upload:
          parameters:
            name: newimg
            url: acrapi.azurecr-test.io
          responses:
            "202":
              headers:
                Docker-Upload-Uuid: f6d3451c-3352-43ff-b67c-fd0cfc793066
                Location: /v2/blobland/blobs/uploads/f6d3451c-3352-43ff-b67c-fd0cfc793066?_nouploadcache=false&_state=iWTaVpaWiz23JTt8ZsYFPEU5JwLOFgdumWOmqGxIYGt7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiJmNmQzNDUxYy0zMzUyLTQzZmYtYjY3Yy1mZDBjZmM3OTMwNjYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTktMDgtMjdUMjM6NTI6NTQuNTM1MDQ5ODY1WiJ9
                Range: 0-0
  "/v2/{name}/blobs/{digest}?mode=chunk":
    get:
      description: "Retrieve the blob from the registry identified by `digest`. This endpoint may also support RFC7233 compliant range requests. Support can be detected by issuing a HEAD request. If the header `Accept-Range: bytes` is returned, range requests can be used to fetch partial content."
      operationId: Blob_GetChunk
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/Digest"
        - $ref: "#/parameters/Range"
      produces:
        - application/octet-stream
      responses:
        "206":
          description: The blob identified by digest is available. The specified chunk of blob content will be present in the body of the request.
          headers:
            Content-Length:
              description: The length of the requested blob content.
              format: int64
              type: integer
            Content-Range:
              description: Content range of blob chunk.
              type: string
          schema:
            description: blob binary data
            format: file
            type: file
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Layer
      x-ms-examples:
        Get a blob Chunk:
          parameters:
            Range: bytes=0-299
            digest: sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39
            name: prod/bash
            url: acrapi.azurecr-test.io
          responses:
            "206":
              body: eyJhcmNoaXRlY3R1cmUiOiJhbWQ2NCIsImNvbmZpZyI6eyJIb3N0bmFtZSI6IiIsIkRvbWFpbm5hbWUiOiIiLCJVc2VyIjoiIiwiQXR0YWNoU3RkaW4iOmZhbHNlLCJBdHRhY2hTdGRvdXQiOmZhbHNlLCJBdHRhY2hTdGRlcnIiOmZhbHNlLCJUdHkiOmZhbHNlLCJPcGVuU3RkaW4iOmZhbHNlLCJTdGRpbk9uY2UiOmZhbHNlLCJFbnYiOlsiUEFUSD0vdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4iLCJfQkFTSF9HUEdfS0VZPTdDMDEzNUZCMDg4QUFGNkM2NkM2NTBCOUJC
              headers:
                Content-Length: "300"
                Content-Range: bytes 0-299/5635
    head:
      description: Same as GET, except only the headers are returned.
      operationId: Blob_CheckChunk
      parameters:
        - $ref: "#/parameters/ImageName"
        - $ref: "#/parameters/Digest"
        - $ref: "#/parameters/Range"
      responses:
        "200":
          description: The blob identified by digest is available. The specified chunk of blob content will be present in the body of the request.
          headers:
            Content-Length:
              description: The length of the requested blob content.
              format: int64
              type: integer
            Content-Range:
              description: Content range of blob chunk.
              type: string
        default:
          description: ACR error response describing why the operation failed.
          schema:
            $ref: "#/definitions/AcrErrors"
      tags:
        - Layer
      x-ms-examples:
        Get headers without blob Chunk:
          parameters:
            Range: bytes=0-299
            digest: sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39
            name: prod/bash
            url: acrapi.azurecr-test.io
          responses:
            "200":
              headers:
                Content-Length: "300"
                Content-Range: bytes 0-299/5635
