From 62e7683b3cd1e6e6f2cc7ca01612566ea4f6452d Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 29 Mar 2021 13:16:59 -0700 Subject: [PATCH 01/43] [Track2 Data Plane SDK] prepare folder Add a new folder Azure.ContainerRegistry with a copy of preview/2019-08-15 specs in preparation of further changes to make better codegen of Track 2 data plane SDK libraries --- .../preview/2019-08-15/containerregistry.json | 2676 +++++++++++++++++ .../2019-08-15/examples/CancelBlobUpload.json | 9 + .../2019-08-15/examples/CheckBlob.json | 19 + .../2019-08-15/examples/CheckBlobChunk.json | 16 + .../2019-08-15/examples/CreateManifest.json | 18 + .../examples/DeleteAcrRepository.json | 18 + .../2019-08-15/examples/DeleteBlob.json | 12 + .../2019-08-15/examples/DeleteManifest.json | 10 + .../2019-08-15/examples/DeleteTag.json | 10 + .../2019-08-15/examples/EndBlobUpload.json | 16 + .../2019-08-15/examples/GetAccessToken.json | 14 + .../preview/2019-08-15/examples/GetBlob.json | 20 + .../2019-08-15/examples/GetBlobChunk.json | 17 + .../2019-08-15/examples/GetBlobStatus.json | 14 + .../examples/GetDockerRegistryV2Support.json | 8 + .../2019-08-15/examples/GetManifest.json | 48 + .../examples/GetManifestAttributes.json | 34 + .../2019-08-15/examples/GetManifestList.json | 54 + .../examples/GetRepositoryAttributes.json | 24 + .../examples/GetRepositoryList.json | 15 + .../2019-08-15/examples/GetTagAttributes.json | 28 + .../2019-08-15/examples/GetTagList.json | 42 + .../2019-08-15/examples/MountBlob.json | 16 + .../2019-08-15/examples/PostAccessToken.json | 16 + .../2019-08-15/examples/PostRefreshToken.json | 16 + .../2019-08-15/examples/StartBlobUpload.json | 15 + .../examples/UpdateManifestAttributes.json | 11 + .../examples/UpdateRepositoryAttributes.json | 12 + .../examples/UpdateTagAttributes.json | 11 + .../2019-08-15/examples/UploadBlob.json | 16 + 30 files changed, 3235 insertions(+) create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CancelBlobUpload.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlob.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlobChunk.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CreateManifest.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteAcrRepository.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteBlob.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteManifest.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteTag.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/EndBlobUpload.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetAccessToken.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlob.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobChunk.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobStatus.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetDockerRegistryV2Support.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifest.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestAttributes.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestList.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryAttributes.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryList.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagAttributes.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagList.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/MountBlob.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostAccessToken.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostRefreshToken.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/StartBlobUpload.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateManifestAttributes.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateRepositoryAttributes.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateTagAttributes.json create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UploadBlob.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json new file mode 100644 index 000000000000..711ad07777ff --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json @@ -0,0 +1,2676 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Container Registry", + "description": "Metadata API definition for the Azure Container Registry runtime", + "version": "2019-08-15-preview" + }, + "x-ms-parameterized-host": { + "hostTemplate": "{url}", + "useSchemePrefix": false, + "positionInOperation": "first", + "parameters": [ + { + "$ref": "#/parameters/Url" + } + ] + }, + "securityDefinitions": { + "registry_auth": { + "type": "basic" + }, + "registry_oauth2": { + "type": "apiKey", + "in": "header", + "name": "Authorization" + } + }, + "security": [ + { + "registry_auth": [], + "registry_oauth2": [] + } + ], + "tags": [ + { + "name": "v2", + "description": "Root API" + }, + { + "name": "Manifest", + "description": "Everything about manifests" + }, + { + "name": "Tag", + "description": "Everything about tags" + }, + { + "name": "Layer", + "description": "Everything about layers" + }, + { + "name": "Repository", + "description": "Everything about repository" + }, + { + "name": "AcrRepository", + "description": "ACR APIs related to repositories" + }, + { + "name": "AcrManifest", + "description": "ACR APIs related to manifests" + }, + { + "name": "AcrTag", + "description": "ACR APIs related to tags" + } + ], + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v2/": { + "get": { + "tags": [ + "v2" + ], + "description": "Tells whether this Docker Registry instance supports Docker Registry HTTP API v2", + "operationId": "V2Support_Check", + "x-ms-examples": { + "Check Docker Registry V2 Support": { + "$ref": "./examples/GetDockerRegistryV2Support.json" + } + }, + "responses": { + "200": { + "description": "Successful response. API v2 supported" + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + } + }, + "/v2/{name}/manifests/{reference}": { + "get": { + "tags": [ + "Manifest" + ], + "description": "Get the manifest identified by `name` and `reference` where `reference` can be a tag or digest.", + "x-ms-examples": { + "Get manifest": { + "$ref": "./examples/GetManifest.json" + } + }, + "operationId": "Manifests_Get", + "parameters": [ + { + "$ref": "#/parameters/ImageName" + }, + { + "$ref": "#/parameters/ImageReference" + }, + { + "name": "accept", + "in": "header", + "description": "Accept header string delimited by comma. For example, application/vnd.docker.distribution.manifest.v2+json", + "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" + } + } + } + }, + "put": { + "tags": [ + "Manifest" + ], + "x-ms-long-running-operation": false, + "description": "Put the manifest identified by `name` and `reference` where `reference` can be a tag or digest.", + "x-ms-examples": { + "Put manifest": { + "$ref": "./examples/CreateManifest.json" + } + }, + "consumes": [ + "application/vnd.docker.distribution.manifest.v2+json" + ], + "operationId": "Manifests_Create", + "parameters": [ + { + "$ref": "#/parameters/ImageName" + }, + { + "$ref": "#/parameters/ImageReference" + }, + { + "$ref": "#/parameters/ManifestBody" + } + ], + "responses": { + "201": { + "description": "The manifest is updated", + "schema": {}, + "headers": { + "Docker-Content-Digest": { + "type": "string", + "description": "Identifies the docker upload uuid for the current request." + }, + "Location": { + "type": "string", + "description": "The canonical location url of the uploaded manifest." + }, + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The length of the requested blob content." + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + }, + "delete": { + "tags": [ + "Manifest" + ], + "description": "Delete the manifest identified by `name` and `reference`. Note that a manifest can _only_ be deleted by `digest`.", + "x-ms-examples": { + "Delete manifest": { + "$ref": "./examples/DeleteManifest.json" + } + }, + "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" + } + } + } + } + }, + "/v2/{name}/blobs/{digest}": { + "get": { + "produces": [ + "application/octet-stream" + ], + "tags": [ + "Layer" + ], + "parameters": [ + { + "$ref": "#/parameters/ImageName" + }, + { + "$ref": "#/parameters/Digest" + } + ], + "x-ms-examples": { + "Get a blob from digest": { + "$ref": "./examples/GetBlob.json" + } + }, + "description": "Retrieve the blob from the registry identified by digest.", + "operationId": "Blob_Get", + "responses": { + "200": { + "description": "The blob identified by digest is available. The blob content will be present in the body of the response.", + "schema": { + "description": "blob binary data", + "type": "file", + "format": "file" + }, + "headers": { + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The length of the requested blob content." + }, + "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": { + "type": "string", + "description": "The location where the layer should be accessible." + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + }, + "head": { + "tags": [ + "Layer" + ], + "description": "Same as GET, except only the headers are returned.", + "operationId": "Blob_Check", + "x-ms-examples": { + "Head for a Blob Chunk": { + "$ref": "./examples/CheckBlob.json" + } + }, + "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": { + "type": "integer", + "format": "int64", + "description": "The length of the requested blob content." + }, + "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": { + "type": "string", + "description": "The location where the layer should be accessible." + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + }, + "delete": { + "parameters": [ + { + "$ref": "#/parameters/ImageName" + }, + { + "$ref": "#/parameters/Digest" + } + ], + "description": "Removes an already uploaded blob.", + "produces": [ + "application/octet-stream" + ], + "tags": [ + "Layer" + ], + "operationId": "Blob_Delete", + "x-ms-examples": { + "Delete a blob": { + "$ref": "./examples/DeleteBlob.json" + } + }, + "responses": { + "202": { + "description": "The blob identified by digest is available. The blob content will be present in the body of the response.", + "schema": { + "description": "blob binary data", + "type": "file", + "format": "file" + }, + "headers": { + "Docker-Content-Digest": { + "description": "Digest of the targeted content for the request.", + "type": "string" + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + } + }, + "/v2/{name}/blobs/uploads/": { + "post": { + "tags": [ + "Layer" + ], + "description": "Mount a blob identified by the `mount` parameter from another repository.", + "operationId": "Blob_Mount", + "x-ms-examples": { + "Mount a blob from repository": { + "$ref": "./examples/MountBlob.json" + } + }, + "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": { + "Location": { + "description": "Provided location for blob", + "type": "string" + }, + "Docker-Upload-UUID": { + "description": "Identifies the docker upload uuid for the current request.", + "type": "string" + }, + "Docker-Content-Digest": { + "description": "Digest of the targeted content for the request.", + "type": "string" + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + } + }, + "/{nextBlobUuidLink}": { + "get": { + "tags": [ + "Layer" + ], + "parameters": [ + { + "$ref": "#/parameters/NextLink" + } + ], + "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", + "x-ms-examples": { + "Get blob status": { + "$ref": "./examples/GetBlobStatus.json" + } + }, + "responses": { + "204": { + "description": "The upload is known and in progress. The last received offset is available in the Range header.", + "headers": { + "Range": { + "description": "Range indicating the current progress of the upload.", + "type": "string" + }, + "Docker-Upload-UUID": { + "description": "Identifies the docker upload uuid for the current request.", + "type": "string" + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + }, + "patch": { + "security": [ + { + "registry_auth": [], + "registry_oauth2": [] + } + ], + "tags": [ + "Layer" + ], + "description": "Upload a stream of data without completing the upload.", + "operationId": "Blob_Upload", + "x-ms-examples": { + "Upload Blob": { + "$ref": "./examples/UploadBlob.json" + } + }, + "consumes": [ + "application/octet-stream" + ], + "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": { + "Location": { + "description": "Provided location for blob", + "type": "string" + }, + "Range": { + "description": "Range indicating the current progress of the upload.", + "type": "string" + }, + "Docker-Upload-UUID": { + "description": "Identifies the docker upload uuid for the current request.", + "type": "string" + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + }, + "put": { + "tags": [ + "Layer" + ], + "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", + "x-ms-examples": { + "End a blob upload": { + "$ref": "./examples/EndBlobUpload.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/BlobQueryDigest" + }, + { + "$ref": "#/parameters/RawDataOptional" + }, + { + "$ref": "#/parameters/NextLink" + } + ], + "responses": { + "201": { + "description": "The upload has been completed and accepted by the registry.", + "headers": { + "Location": { + "description": "Provided location for blob", + "type": "string" + }, + "Range": { + "description": "Range indicating the current progress of the upload.", + "type": "string" + }, + "Docker-Content-Digest": { + "description": "Digest of the targeted content for the request.", + "type": "string" + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + }, + "delete": { + "tags": [ + "Layer" + ], + "parameters": [ + { + "$ref": "#/parameters/NextLink" + } + ], + "description": "Cancel outstanding upload processes, releasing associated resources. If this is not called, the unfinished uploads will eventually timeout.", + "operationId": "Blob_CancelUpload", + "x-ms-examples": { + "End a blob upload": { + "$ref": "./examples/CancelBlobUpload.json" + } + }, + "responses": { + "204": { + "description": "The upload has been successfully deleted." + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + } + }, + "/acr/v1/_catalog": { + "get": { + "tags": [ + "AcrRepository" + ], + "description": "List repositories", + "operationId": "Repository_GetList", + "x-ms-examples": { + "Get repositories in a registry": { + "$ref": "./examples/GetRepositoryList.json" + } + }, + "parameters": [ + { + "$ref": "#/parameters/QueryLast" + }, + { + "$ref": "#/parameters/QueryNum" + } + ], + "responses": { + "200": { + "headers": { + "Link": { + "description": "next paginated result", + "type": "string" + } + }, + "description": "Returns a list of repositories", + "schema": { + "$ref": "#/definitions/Repositories" + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + } + }, + "/acr/v1/{name}": { + "get": { + "tags": [ + "AcrRepository", + "AcrMetadata" + ], + "description": "Get repository attributes", + "operationId": "Repository_GetAttributes", + "x-ms-examples": { + "Get details of repository": { + "$ref": "./examples/GetRepositoryAttributes.json" + } + }, + "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" + } + } + } + }, + "delete": { + "tags": [ + "AcrRepository" + ], + "description": "Delete the repository identified by `name`", + "operationId": "Repository_Delete", + "x-ms-examples": { + "Delete a repository": { + "$ref": "./examples/DeleteAcrRepository.json" + } + }, + "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" + } + } + } + }, + "patch": { + "tags": [ + "AcrRepository", + "AcrMetadata" + ], + "description": "Update the attribute identified by `name` where `reference` is the name of the repository.", + "operationId": "Repository_UpdateAttributes", + "x-ms-examples": { + "Update repository attributes": { + "$ref": "./examples/UpdateRepositoryAttributes.json" + } + }, + "consumes": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ImageName" + }, + { + "name": "value", + "in": "body", + "description": "Repository attribute 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" + } + } + } + } + }, + "/acr/v1/{name}/_tags": { + "get": { + "tags": [ + "AcrTag", + "AcrMetadata" + ], + "description": "List tags of a repository", + "operationId": "Tag_GetList", + "x-ms-examples": { + "Get tags of a repository": { + "$ref": "./examples/GetTagList.json" + } + }, + "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" + } + } + } + } + }, + "/acr/v1/{name}/_tags/{reference}": { + "get": { + "tags": [ + "AcrTag", + "AcrMetadata" + ], + "description": "Get tag attributes by tag", + "operationId": "Tag_GetAttributes", + "x-ms-examples": { + "Get tag attributes": { + "$ref": "./examples/GetTagAttributes.json" + } + }, + "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" + } + } + } + }, + "patch": { + "tags": [ + "AcrTag", + "AcrMetadata" + ], + "description": "Update tag attributes", + "operationId": "Tag_UpdateAttributes", + "consumes": [ + "application/json" + ], + "x-ms-examples": { + "Update attributes of a tag": { + "$ref": "./examples/UpdateTagAttributes.json" + } + }, + "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" + } + } + } + }, + "delete": { + "tags": [ + "AcrTag", + "AcrMetadata" + ], + "description": "Delete tag", + "operationId": "Tag_Delete", + "consumes": [ + "application/json" + ], + "x-ms-examples": { + "Delete a tag": { + "$ref": "./examples/DeleteTag.json" + } + }, + "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" + } + } + } + } + }, + "/acr/v1/{name}/_manifests": { + "get": { + "tags": [ + "AcrManifest", + "AcrMetadata" + ], + "description": "List manifests of a repository", + "operationId": "Manifests_GetList", + "x-ms-examples": { + "Get list of available manifests": { + "$ref": "./examples/GetManifestList.json" + } + }, + "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" + } + } + } + } + }, + "/acr/v1/{name}/_manifests/{reference}": { + "get": { + "tags": [ + "AcrManifest", + "AcrMetadata" + ], + "description": "Get manifest attributes", + "operationId": "Manifests_GetAttributes", + "x-ms-examples": { + "Get manifest attributes": { + "$ref": "./examples/GetManifestAttributes.json" + } + }, + "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" + } + } + } + }, + "patch": { + "tags": [ + "AcrManifest", + "AcrMetadata" + ], + "description": "Update attributes of a manifest", + "operationId": "Manifests_UpdateAttributes", + "consumes": [ + "application/json" + ], + "x-ms-examples": { + "Update attributes of a manifest": { + "$ref": "./examples/UpdateManifestAttributes.json" + } + }, + "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" + } + } + } + } + }, + "/oauth2/exchange": { + "post": { + "tags": [ + "AcrToken", + "RefreshToken" + ], + "description": "Exchange AAD tokens for an ACR refresh Token", + "operationId": "RefreshTokens_GetFromExchange", + "consumes": [ + "application/x-www-form-urlencoded" + ], + "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": [], + "x-ms-examples": { + "Exchange AAD Token for ACR Refresh": { + "$ref": "./examples/PostRefreshToken.json" + } + } + } + }, + "/oauth2/token": { + "post": { + "tags": [ + "AcrToken", + "AccessToken" + ], + "description": "Exchange ACR Refresh token for an ACR Access Token", + "operationId": "AccessTokens_Get", + "consumes": [ + "application/x-www-form-urlencoded" + ], + "parameters": [ + { + "name": "grant_type", + "in": "formData", + "description": "Grant type is expected to be refresh_token", + "required": true, + "type": "string", + "enum": [ + "refresh_token" + ] + }, + { + "$ref": "#/parameters/Service" + }, + { + "name": "scope", + "in": "formData", + "required": true, + "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.", + "type": "string" + }, + { + "name": "refresh_token", + "in": "formData", + "required": true, + "description": "Must be a valid ACR refresh token", + "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": [], + "x-ms-examples": { + "Get Access Token with Refresh Token": { + "$ref": "./examples/PostAccessToken.json" + } + } + }, + "get": { + "tags": [ + "AcrToken", + "AccessToken", + "userLogin" + ], + "description": "Exchange Username, Password and Scope an ACR Access Token", + "operationId": "AccessTokens_GetFromLogin", + "parameters": [ + { + "name": "service", + "in": "query", + "required": true, + "description": "Indicates the name of your Azure container registry.", + "type": "string" + }, + { + "name": "scope", + "in": "query", + "required": true, + "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.", + "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": [] + } + ], + "x-ms-examples": { + "Get Access Token with username and password": { + "$ref": "./examples/GetAccessToken.json" + } + } + } + } + }, + "x-ms-paths": { + "/v2/{name}/blobs/uploads/?mode=resumable": { + "post": { + "tags": [ + "Layer" + ], + "description": "Initiate a resumable blob upload with an empty request body.", + "operationId": "Blob_StartUpload", + "x-ms-examples": { + "Start a blob upload": { + "$ref": "./examples/StartBlobUpload.json" + } + }, + "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": { + "Location": { + "description": "Provided location for blob", + "type": "string" + }, + "Range": { + "description": "Range indicating the current progress of the upload.", + "type": "string" + }, + "Docker-Upload-UUID": { + "description": "Identifies the docker upload uuid for the current request.", + "type": "string" + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + } + }, + "/v2/{name}/blobs/{digest}?mode=chunk": { + "get": { + "produces": [ + "application/octet-stream" + ], + "tags": [ + "Layer" + ], + "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" + } + ], + "x-ms-examples": { + "Get a blob Chunk": { + "$ref": "./examples/GetBlobChunk.json" + } + }, + "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.", + "schema": { + "description": "blob binary data", + "type": "file", + "format": "file" + }, + "headers": { + "Content-Length": { + "type": "integer", + "format": "int64", + "description": "The length of the requested blob content." + }, + "Content-Range": { + "type": "string", + "description": "Content range of blob chunk." + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + }, + "head": { + "tags": [ + "Layer" + ], + "parameters": [ + { + "$ref": "#/parameters/ImageName" + }, + { + "$ref": "#/parameters/Digest" + }, + { + "$ref": "#/parameters/Range" + } + ], + "description": "Same as GET, except only the headers are returned.", + "operationId": "Blob_CheckChunk", + "x-ms-examples": { + "Get headers without blob Chunk": { + "$ref": "./examples/CheckBlobChunk.json" + } + }, + "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": { + "type": "integer", + "format": "int64", + "description": "The length of the requested blob content." + }, + "Content-Range": { + "type": "string", + "description": "Content range of blob chunk." + } + } + }, + "default": { + "description": "ACR error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/AcrErrors" + } + } + } + } + } + }, + "definitions": { + "RepositoryAttributes": { + "type": "object", + "description": "Repository attributes", + "properties": { + "registry": { + "type": "string", + "description": "Registry name" + }, + "imageName": { + "type": "string", + "description": "Image name" + }, + "createdTime": { + "type": "string", + "description": "Image created time" + }, + "lastUpdateTime": { + "type": "string", + "description": "Image last update time" + }, + "manifestCount": { + "type": "integer", + "description": "Number of the manifests" + }, + "tagCount": { + "type": "integer", + "description": "Number of the tags" + }, + "changeableAttributes": { + "description": "Changeable attributes", + "$ref": "#/definitions/ChangeableAttributes" + } + }, + "example": { + "registry": "registryname.azurecr.io", + "changeableAttributes": { + "readEnabled": true, + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true + }, + "imageName": "imageName", + "createdTime": "2018-09-07T16:30:46.6583219Z", + "tagCount": 6, + "manifestCount": 2, + "lastUpdateTime": "2018-09-07T16:30:46.6583219Z" + } + }, + "TagList": { + "description": "List of tag details", + "properties": { + "registry": { + "type": "string", + "description": "Registry name" + }, + "imageName": { + "type": "string", + "description": "Image name" + }, + "tags": { + "type": "array", + "description": "List of tag attribute details", + "items": { + "$ref": "#/definitions/TagAttributesBase" + } + } + }, + "example": { + "registry": "registry", + "imageName": "imageName", + "tags": [ + { + "changeableAttributes": { + "readEnabled": true, + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true + }, + "name": "name", + "digest": "digest", + "createdTime": "createdTime", + "signed": true, + "lastUpdateTime": "lastUpdateTime" + }, + { + "changeableAttributes": { + "readEnabled": true, + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true + }, + "name": "name", + "digest": "digest", + "createdTime": "createdTime", + "signed": true, + "lastUpdateTime": "lastUpdateTime" + } + ] + } + }, + "TagAttributes": { + "description": "Tag attributes", + "properties": { + "registry": { + "type": "string", + "description": "Registry name" + }, + "imageName": { + "type": "string", + "description": "Image name" + }, + "tag": { + "x-ms-client-name": "attributes", + "description": "List of tag attribute details", + "$ref": "#/definitions/TagAttributesBase" + } + }, + "example": { + "registry": "registry", + "imageName": "imageName", + "tag": { + "changeableAttributes": { + "readEnabled": true, + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true + }, + "name": "name", + "digest": "digest", + "createdTime": "createdTime", + "signed": true, + "lastUpdateTime": "lastUpdateTime" + } + } + }, + "TagAttributesBase": { + "description": "Tag attribute details", + "properties": { + "name": { + "type": "string", + "description": "Tag name" + }, + "digest": { + "type": "string", + "description": "Tag digest" + }, + "createdTime": { + "type": "string", + "description": "Tag created time" + }, + "lastUpdateTime": { + "type": "string", + "description": "Tag last update time" + }, + "signed": { + "type": "boolean", + "description": "Is signed" + }, + "changeableAttributes": { + "$ref": "#/definitions/ChangeableAttributes", + "description": "Changeable attributes" + } + }, + "example": { + "changeableAttributes": { + "readEnabled": true, + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true + }, + "name": "tagname", + "digest": "sha256:0873c923e00e0fd2ba78041bfb64a105e1ecb7678916d1f7776311e45bf5634b", + "createdTime": "2018-08-10T17:28:44.1082945Z", + "signed": true, + "lastUpdateTime": "2018-08-10T17:28:44.1082945Z" + } + }, + "AcrManifests": { + "description": "Manifest attributes", + "properties": { + "registry": { + "type": "string", + "description": "Registry name" + }, + "imageName": { + "type": "string", + "description": "Image name" + }, + "manifests": { + "x-ms-client-name": "ManifestsAttributes", + "type": "array", + "description": "List of manifests", + "items": { + "$ref": "#/definitions/ManifestAttributesBase", + "description": "Manifest details" + } + } + }, + "example": { + "registry": "registry", + "imageName": "imageName", + "manifests": [ + { + "changeableAttributes": { + "quarantineDetails": "quarantineDetails", + "readEnabled": true, + "quarantineState": "quarantineState", + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true + }, + "os": "os", + "digest": "digest", + "imageSize": 2401606, + "createdTime": "createdTime", + "mediaType": "mediaType", + "configMediaType": "configMediaType", + "lastUpdateTime": "lastUpdateTime", + "architecture": "architecture", + "tags": [ + "tags", + "tags" + ] + }, + { + "changeableAttributes": { + "quarantineDetails": "quarantineDetails", + "readEnabled": true, + "quarantineState": "quarantineState", + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true + }, + "os": "os", + "digest": "digest", + "imageSize": 2401606, + "createdTime": "createdTime", + "mediaType": "mediaType", + "configMediaType": "configMediaType", + "lastUpdateTime": "lastUpdateTime", + "architecture": "architecture", + "tags": [ + "tags", + "tags" + ] + } + ] + } + }, + "ManifestAttributes": { + "description": "Manifest attributes details", + "properties": { + "registry": { + "description": "Registry name", + "type": "string" + }, + "imageName": { + "description": "Image name", + "type": "string" + }, + "manifest": { + "x-ms-client-name": "attributes", + "description": "Manifest attributes", + "$ref": "#/definitions/ManifestAttributesBase" + } + }, + "example": { + "registry": "acrapi.azurecr-test.io", + "imageName": "nanoserver", + "manifest": { + "digest": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086", + "imageSize": 2401606, + "createdTime": "2018-09-06T06:17:20.9983915Z", + "lastUpdateTime": "2018-09-06T06:17:20.9983915Z", + "architecture": "amd64", + "os": "windows", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "configMediaType": "application/vnd.docker.container.image.v1+json", + "tags": [ + "4.7.2-20180905-nanoserver-1803" + ], + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": true, + "readEnabled": true, + "listEnabled": true + } + } + } + }, + "ManifestAttributesBase": { + "type": "object", + "description": "Manifest details", + "properties": { + "digest": { + "type": "string", + "description": "Manifest" + }, + "imageSize": { + "type": "integer", + "format": "int64", + "description": "Image size" + }, + "createdTime": { + "type": "string", + "description": "Created time" + }, + "lastUpdateTime": { + "type": "string", + "description": "Last update time" + }, + "architecture": { + "type": "string", + "description": "CPU architecture" + }, + "os": { + "type": "string", + "description": "Operating system" + }, + "mediaType": { + "type": "string", + "description": "Media type" + }, + "configMediaType": { + "type": "string", + "description": "Config blob media type" + }, + "tags": { + "type": "array", + "description": "List of tags", + "items": { + "type": "string", + "description": "Tag name" + } + }, + "changeableAttributes": { + "$ref": "#/definitions/ChangeableAttributes", + "description": "Changeable attributes" + } + }, + "example": { + "changeableAttributes": { + "readEnabled": true, + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true + }, + "os": "os", + "digest": "digest", + "imageSize": 2401606, + "createdTime": "createdTime", + "mediaType": "mediaType", + "configMediaType": "configMediaType", + "lastUpdateTime": "lastUpdateTime", + "architecture": "architecture", + "tags": [ + "tags", + "tags" + ] + } + }, + "RefreshToken": { + "type": "object", + "properties": { + "refresh_token": { + "description": "The refresh token to be used for generating access tokens", + "type": "string" + } + } + }, + "AccessToken": { + "type": "object", + "properties": { + "access_token": { + "description": "The access token for performing authenticated requests", + "type": "string" + } + } + }, + "AcrErrors": { + "description": "Acr error response describing why the operation failed", + "properties": { + "errors": { + "type": "array", + "description": "Array of detailed error", + "items": { + "$ref": "#/definitions/AcrErrorInfo" + } + } + } + }, + "RepositoryTags": { + "description": "Result of the request to list tags of the image", + "properties": { + "name": { + "type": "string", + "description": "Name of the image" + }, + "tags": { + "type": "array", + "description": "List of tags", + "items": { + "type": "string", + "description": "Tag name" + } + } + }, + "example": { + "name": "name", + "tags": [ + "tags", + "tags" + ] + } + }, + "ImageSignature": { + "description": "Signature of a signed manifest", + "properties": { + "header": { + "description": "A JSON web signature", + "$ref": "#/definitions/JWK" + }, + "signature": { + "type": "string", + "description": "A signature for the image manifest, signed by a libtrust private key" + }, + "protected": { + "type": "string", + "description": "The signed protected header" + } + }, + "example": { + "header": { + "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" + }, + "alg": "ES256" + }, + "signature": "p73LfotMGD8nNXz2g9YX2XtSllb4GI5-b3vjqP5N0nkv8QXg-r5z_omGiVbOZE2BYG1X_4TIN23l1KSEqsXxOg", + "protected": "eyJmb3JtYXRMZW5ndGgiOjI5ODYsImZvcm1hdFRhaWwiOiJDbjAiLCJ0aW1lIjoiMjAxOC0wOS0yMFQyMzo0MTo1MloifQ" + } + }, + "JWK": { + "description": "A JSON web signature", + "properties": { + "jwk": { + "$ref": "#/definitions/JWKHeader" + }, + "alg": { + "type": "string", + "description": "The algorithm used to sign or encrypt the JWT" + } + } + }, + "JWKHeader": { + "description": "JSON web key parameter", + "properties": { + "crv": { + "type": "string", + "description": "crv value" + }, + "kid": { + "type": "string", + "description": "kid value" + }, + "kty": { + "type": "string", + "description": "kty value" + }, + "x": { + "type": "string", + "description": "x value" + }, + "y": { + "type": "string", + "description": "y value" + } + } + }, + "History": { + "description": "A list of unstructured historical data for v1 compatibility", + "properties": { + "v1Compatibility": { + "type": "string", + "description": "The raw v1 compatibility information" + } + }, + "example": { + "v1Compatibility": "v1 compatibility info" + } + }, + "Repositories": { + "description": "List of repositories", + "properties": { + "repositories": { + "type": "array", + "x-ms-client-name": "Names", + "description": "Repository names", + "items": { + "type": "string" + } + } + }, + "example": { + "repositories": [ + "production/alpine", + "testing/alpine" + ] + } + }, + "DeletedRepository": { + "description": "Deleted repository", + "properties": { + "manifestsDeleted": { + "type": "array", + "description": "SHA of the deleted image", + "items": { + "type": "string" + } + }, + "tagsDeleted": { + "type": "array", + "description": "Tag of the deleted image", + "items": { + "type": "string" + } + } + } + }, + "AcrErrorInfo": { + "description": "Error information", + "properties": { + "code": { + "description": "Error code", + "type": "string" + }, + "message": { + "type": "string", + "description": "Error message" + }, + "detail": { + "type": "object", + "description": "Error details" + } + } + }, + "FsLayer": { + "description": "Image layer information", + "properties": { + "blobSum": { + "type": "string", + "description": "SHA of an image layer" + } + }, + "example": { + "blobSum": "sha256:1f7d468f830cb0ed4beb8edc9438f18096e8c682e56a35242f60e6c61b718b30" + } + }, + "Descriptor": { + "description": "Docker V2 image layer descriptor including config and layers", + "properties": { + "mediaType": { + "type": "string", + "description": "Layer media type" + }, + "size": { + "type": "integer", + "format": "int64", + "description": "Layer size" + }, + "digest": { + "type": "string", + "description": "Layer digest" + }, + "urls": { + "type": "array", + "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" + } + }, + "annotations": { + "$ref": "#/definitions/Annotations" + } + }, + "example": { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 2107098, + "digest": "sha256:5d20c808ce198565ff70b3ed23a991dd49afac45dece63474b27ce6ed036adc6" + } + }, + "ChangeableAttributes": { + "properties": { + "deleteEnabled": { + "type": "boolean", + "description": "Delete enabled" + }, + "writeEnabled": { + "type": "boolean", + "description": "Write enabled" + }, + "listEnabled": { + "type": "boolean", + "description": "List enabled" + }, + "readEnabled": { + "type": "boolean", + "description": "Read enabled" + } + }, + "example": { + "readEnabled": true, + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true + } + }, + "TagAttributes_tag": { + "description": "Tag", + "properties": { + "signatureRecord": { + "description": "SignatureRecord value", + "type": "string" + } + }, + "example": { + "signatureRecord": "signatureRecord" + } + }, + "ManifestAttributes_manifest_references": { + "description": "Manifest attributes details", + "properties": { + "digest": { + "type": "string", + "description": "Manifest digest" + }, + "architecture": { + "type": "string", + "description": "CPU architecture" + }, + "os": { + "type": "string", + "description": "Operating system" + } + }, + "example": { + "os": "os", + "digest": "digest", + "architecture": "architecture" + } + }, + "ManifestAttributes_manifest": { + "description": "List of manifest attributes", + "properties": { + "references": { + "type": "array", + "description": "List of manifest attributes details", + "items": { + "$ref": "#/definitions/ManifestAttributes_manifest_references", + "description": "Manifest attributes details" + } + }, + "quarantineTag": { + "type": "string", + "description": "Quarantine tag name" + } + }, + "example": { + "quarantineTag": "quarantineTag", + "references": [ + { + "os": "os", + "digest": "digest", + "architecture": "architecture" + }, + { + "os": "os", + "digest": "digest", + "architecture": "architecture" + } + ] + } + }, + "ManifestChangeableAttributes": { + "description": "Changeable attributes", + "properties": { + "deleteEnabled": { + "type": "boolean", + "description": "Delete enabled" + }, + "writeEnabled": { + "type": "boolean", + "description": "Write enabled" + }, + "listEnabled": { + "type": "boolean", + "description": "List enabled" + }, + "readEnabled": { + "type": "boolean", + "description": "Read enabled" + }, + "quarantineState": { + "type": "string", + "description": "Quarantine state" + }, + "quarantineDetails": { + "type": "string", + "description": "Quarantine details" + } + }, + "example": { + "quarantineDetails": "quarantineDetails", + "readEnabled": true, + "quarantineState": "quarantineState", + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true + } + }, + "Manifest": { + "description": "Returns the requested manifest file", + "properties": { + "schemaVersion": { + "type": "integer", + "description": "Schema version" + } + } + }, + "ManifestWrapper": { + "description": "Returns the requested manifest file", + "properties": { + "mediaType": { + "type": "string", + "description": "Media type for this Manifest" + }, + "manifests": { + "type": "array", + "description": "(ManifestList, OCIIndex) List of V2 image layer information", + "items": { + "$ref": "#/definitions/ManifestListAttributes" + } + }, + "config": { + "description": "(V2, OCI) Image config descriptor", + "$ref": "#/definitions/Descriptor" + }, + "layers": { + "type": "array", + "description": "(V2, OCI) List of V2 image layer information", + "items": { + "$ref": "#/definitions/Descriptor" + } + }, + "annotations": { + "description": "(OCI, OCIIndex) Additional metadata", + "$ref": "#/definitions/Annotations" + }, + "architecture": { + "type": "string", + "description": "(V1) CPU architecture" + }, + "name": { + "type": "string", + "description": "(V1) Image name" + }, + "tag": { + "type": "string", + "description": "(V1) Image tag" + }, + "fsLayers": { + "type": "array", + "description": "(V1) List of layer information", + "items": { + "$ref": "#/definitions/FsLayer" + } + }, + "history": { + "type": "array", + "description": "(V1) Image history", + "items": { + "$ref": "#/definitions/History" + } + }, + "signatures": { + "type": "array", + "description": "(V1) Image signature", + "items": { + "$ref": "#/definitions/ImageSignature" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/Manifest" + } + ] + }, + "ManifestList": { + "x-ms-discriminator-value": "application/vnd.docker.distribution.manifest.list.v2+json", + "description": "Returns the requested Docker multi-arch-manifest file", + "properties": { + "mediaType": { + "type": "string", + "description": "Media type for this Manifest" + }, + "manifests": { + "type": "array", + "description": "List of V2 image layer information", + "items": { + "$ref": "#/definitions/ManifestListAttributes" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/Manifest" + } + ] + }, + "ManifestListAttributes": { + "properties": { + "mediaType": { + "type": "string", + "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" + }, + "size": { + "type": "integer", + "format": "int64", + "description": "The size in bytes of the object" + }, + "digest": { + "type": "string", + "description": "The digest of the content, as defined by the Registry V2 HTTP API Specification" + }, + "platform": { + "$ref": "#/definitions/Platform" + } + } + }, + "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": { + "type": "string", + "description": "Specifies the CPU architecture, for example amd64 or ppc64le." + }, + "os": { + "type": "string", + "description": "The os field specifies the operating system, for example linux or windows." + }, + "os.version": { + "type": "string", + "description": "The optional os.version field specifies the operating system version, for example 10.0.10586." + }, + "os.features": { + "type": "array", + "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" + } + }, + "variant": { + "type": "string", + "description": "The optional variant field specifies a variant of the CPU, for example armv6l to specify a particular CPU variant of the ARM CPU." + }, + "features": { + "type": "array", + "description": "The optional features field specifies an array of strings, each listing a required CPU feature (for example sse4 or aes", + "items": { + "type": "string" + } + } + } + }, + "V2Manifest": { + "x-ms-discriminator-value": "application/vnd.docker.distribution.manifest.v2+json", + "description": "Returns the requested Docker V2 Manifest file", + "properties": { + "mediaType": { + "type": "string", + "description": "Media type for this Manifest" + }, + "config": { + "description": "V2 image config descriptor", + "$ref": "#/definitions/Descriptor" + }, + "layers": { + "type": "array", + "description": "List of V2 image layer information", + "items": { + "$ref": "#/definitions/Descriptor" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/Manifest" + } + ], + "example": { + "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" + } + ] + } + }, + "OCIManifest": { + "x-ms-discriminator-value": "application/vnd.oci.image.manifest.v1+json", + "description": "Returns the requested OCI Manifest file", + "properties": { + "config": { + "description": "V2 image config descriptor", + "$ref": "#/definitions/Descriptor" + }, + "layers": { + "type": "array", + "description": "List of V2 image layer information", + "items": { + "$ref": "#/definitions/Descriptor" + } + }, + "annotations": { + "$ref": "#/definitions/Annotations" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Manifest" + } + ] + }, + "OCIIndex": { + "x-ms-discriminator-value": "application/vnd.oci.image.index.v1+json", + "description": "Returns the requested OCI index file", + "properties": { + "manifests": { + "type": "array", + "description": "List of OCI image layer information", + "items": { + "$ref": "#/definitions/ManifestListAttributes" + } + }, + "annotations": { + "$ref": "#/definitions/Annotations" + } + }, + "allOf": [ + { + "$ref": "#/definitions/Manifest" + } + ] + }, + "V1Manifest": { + "description": "Returns the requested V1 manifest file", + "x-ms-discriminator-value": "application/vnd.oci.image.manifest.v1+json", + "properties": { + "architecture": { + "type": "string", + "description": "CPU architecture" + }, + "name": { + "type": "string", + "description": "Image name" + }, + "tag": { + "type": "string", + "description": "Image tag" + }, + "fsLayers": { + "type": "array", + "description": "List of layer information", + "items": { + "$ref": "#/definitions/FsLayer" + } + }, + "history": { + "type": "array", + "description": "Image history", + "items": { + "$ref": "#/definitions/History" + } + }, + "signatures": { + "type": "array", + "description": "Image signature", + "items": { + "$ref": "#/definitions/ImageSignature" + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/Manifest" + } + ] + }, + "Annotations": { + "description": "Additional information provided through arbitrary metadata.", + "type": "object", + "x-nullable": true, + "additionalProperties": { + "type": "object" + }, + "properties": { + "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)", + "type": "string", + "format": "date-time", + "x-ms-client-name": "Created" + }, + "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.url": { + "description": "URL to find more information on the image.", + "type": "string", + "x-ms-client-name": "Url" + }, + "org.opencontainers.image.documentation": { + "description": "URL to get documentation on the image.", + "type": "string", + "x-ms-client-name": "Documentation" + }, + "org.opencontainers.image.source": { + "description": "URL to get source code for building the image.", + "type": "string", + "x-ms-client-name": "Source" + }, + "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" + }, + "org.opencontainers.image.revision": { + "description": "Source control revision identifier for the packaged software.", + "type": "string", + "x-ms-client-name": "Revision" + }, + "org.opencontainers.image.vendor": { + "description": "Name of the distributing entity, organization or individual.", + "type": "string", + "x-ms-client-name": "Vendor" + }, + "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.title": { + "description": "Human-readable title of the image", + "type": "string", + "x-ms-client-name": "Title" + }, + "org.opencontainers.image.description": { + "description": "Human-readable description of the software packaged in the image", + "type": "string", + "x-ms-client-name": "Description" + } + } + } + }, + "parameters": { + "Url": { + "name": "url", + "x-ms-client-name": "loginUri", + "description": "Registry login URL", + "required": true, + "type": "string", + "in": "path", + "x-ms-skip-url-encoding": true, + "x-ms-parameter-location": "client" + }, + "ImageReference": { + "name": "reference", + "in": "path", + "description": "A tag or a digest, pointing to a specific image", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ManifestReference": { + "name": "reference", + "in": "path", + "description": "Tag or digest of the target manifest", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "TagReference": { + "name": "reference", + "in": "path", + "description": "Tag name", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "Digest": { + "name": "digest", + "in": "path", + "description": "Digest of a BLOB", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "BlobQueryDigest": { + "name": "digest", + "in": "query", + "description": "Digest of a BLOB", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "RepoValue": { + "name": "value", + "in": "body", + "description": "Repository attribute value", + "required": false, + "schema": { + "$ref": "#/definitions/ChangeableAttributes" + }, + "x-ms-parameter-location": "method" + }, + "QueryOrderBy": { + "name": "orderby", + "in": "query", + "description": "orderby query parameter", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "QueryNum": { + "name": "n", + "in": "query", + "description": "query parameter for max number of items", + "required": false, + "type": "integer", + "x-ms-parameter-location": "method" + }, + "QueryLast": { + "name": "last", + "in": "query", + "description": "Query parameter for the last item in previous query. Result set will include values lexically after last.", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "QueryDigest": { + "name": "digest", + "in": "query", + "description": "filter by digest", + "required": false, + "type": "string", + "x-ms-parameter-location": "method" + }, + "Grant_type": { + "name": "grant_type", + "description": "Can take a value of access_token_refresh_token, or access_token, or refresh_token", + "type": "string", + "in": "formData", + "required": true, + "enum": [ + "access_token_refresh_token", + "access_token", + "refresh_token" + ], + "x-ms-parameter-location": "method" + }, + "Service": { + "name": "service", + "in": "formData", + "required": true, + "description": "Indicates the name of your Azure container registry.", + "type": "string", + "x-ms-parameter-location": "method" + }, + "Tenant": { + "name": "tenant", + "in": "formData", + "required": false, + "description": "AAD tenant associated to the AAD credentials.", + "type": "string", + "x-ms-parameter-location": "method" + }, + "Scope": { + "name": "scope", + "in": "formData", + "required": true, + "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.", + "type": "string", + "x-ms-parameter-location": "method" + }, + "RefreshToken": { + "name": "refresh_token", + "in": "formData", + "required": false, + "description": "AAD refresh token, mandatory when grant_type is access_token_refresh_token or refresh_token", + "type": "string", + "x-ms-parameter-location": "method" + }, + "AccessToken": { + "name": "access_token", + "in": "formData", + "required": false, + "description": "AAD access token, mandatory when grant_type is access_token_refresh_token or access_token.", + "type": "string", + "x-ms-parameter-location": "method" + }, + "ImageName": { + "name": "name", + "in": "path", + "description": "Name of the image (including the namespace)", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "ManifestBody": { + "description": "Manifest body, can take v1 or v2 values depending on accept header", + "name": "payload", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Manifest" + }, + "x-ms-parameter-location": "method" + }, + "RawData": { + "name": "value", + "description": "Raw data of blob", + "in": "body", + "schema": { + "type": "object", + "format": "file" + }, + "required": true, + "x-ms-parameter-location": "method" + }, + "RawDataOptional": { + "name": "value", + "description": "Optional raw data of blob", + "in": "body", + "schema": { + "type": "object", + "format": "file" + }, + "required": false, + "x-ms-parameter-location": "method" + }, + "From": { + "name": "from", + "type": "string", + "in": "query", + "description": "Name of the source repository.", + "required": true, + "x-ms-parameter-location": "method" + }, + "Mount": { + "name": "mount", + "description": "Digest of blob to mount from the source repository.", + "type": "string", + "in": "query", + "required": true, + "x-ms-parameter-location": "method" + }, + "Uuid": { + "name": "uuid", + "description": "A uuid identifying the upload.", + "type": "string", + "in": "path", + "required": true, + "x-ms-parameter-location": "method" + }, + "Content-Range": { + "name": "Content-Range", + "in": "header", + "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.", + "type": "string", + "required": true, + "x-ms-parameter-location": "method" + }, + "Range": { + "name": "Range", + "type": "string", + "description": "Format : bytes=-, HTTP Range header specifying blob chunk.", + "in": "header", + "required": true, + "x-ms-parameter-location": "method" + }, + "NoUploadCache": { + "description": "Acquired from NextLink", + "name": "_nouploadcache", + "in": "query", + "type": "boolean", + "required": false, + "x-ms-parameter-location": "method" + }, + "State": { + "description": "Acquired from NextLink", + "name": "_state", + "in": "query", + "type": "string", + "required": false, + "x-ms-parameter-location": "method" + }, + "NextLink": { + "name": "nextBlobUuidLink", + "x-ms-client-name": "location", + "type": "string", + "description": "Link acquired from upload start or previous chunk. Note, do not include initial / (must do substring(1) )", + "in": "path", + "required": true, + "x-ms-parameter-location": "method", + "x-ms-skip-url-encoding": true + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CancelBlobUpload.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CancelBlobUpload.json new file mode 100644 index 000000000000..1a32d216e7bd --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CancelBlobUpload.json @@ -0,0 +1,9 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "nextBlobUuidLink": "v2/blobland/blobs/uploads/2b28c60d-d296-44b7-b2b4-1f01c63195c6?_nouploadcache=false&_state=VYABvUSCNW2yY5e5VabLHppXqwU0K7cvT0YUdq57KBt7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiIyYjI4YzYwZC1kMjk2LTQ0YjctYjJiNC0xZjAxYzYzMTk1YzYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTktMDgtMjdUMjM6NTI6NDcuMDUzNjU2Mjg1WiJ9" + }, + "responses": { + "204": {} + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlob.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlob.json new file mode 100644 index 000000000000..519425f52232 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlob.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "prod/bash", + "digest": "sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39" + }, + "responses": { + "200": { + "headers": { + "Content-Length": 5635 + } + }, + "307": { + "headers": { + "Location": "https://csharpsdktest.azurecr.io/v2/prod/bash/blobs/sha256:3131d2b2b3352091117a3abe745d01a3fed472b7327c3183602247937800e3a6" + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlobChunk.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlobChunk.json new file mode 100644 index 000000000000..49fddb0cd1b9 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlobChunk.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "prod/bash", + "digest": "sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39", + "Range": "bytes=0-299" + }, + "responses": { + "200": { + "headers": { + "Content-Length": "300", + "Content-Range": "bytes 0-299/5635" + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CreateManifest.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CreateManifest.json new file mode 100644 index 000000000000..9009925c6027 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CreateManifest.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "hello-world", + "reference": "a20190628-081044z", + "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\"}]}" + }, + "responses": { + "201": { + "headers": { + "Docker-Content-Digest": "sha256:15685c48490175b7dde62e6bfcfb54d9420c6495ea6404776e2facca3da93cd8", + "Location": "/v2/hello-world/manifests/sha256:15685c48490175b7dde62e6bfcfb54d9420c6495ea6404776e2facca3da93cd8", + "Content-Length": 0 + }, + "body": {} + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteAcrRepository.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteAcrRepository.json new file mode 100644 index 000000000000..8449e47855ec --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteAcrRepository.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "nanoserver" + }, + "responses": { + "202": { + "body": { + "manifestsDeleted": [ + "sha256:e31831d63f77a0a6d74ef5b16df619a50808dac842190d07ae24e8b520d159fa" + ], + "tagsDeleted": [ + "4.7.2-20180814-windowsservercore-1709" + ] + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteBlob.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteBlob.json new file mode 100644 index 000000000000..8852e49d5c19 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteBlob.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "prod/bash", + "digest": "sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39" + }, + "responses": { + "202": { + "body": "" + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteManifest.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteManifest.json new file mode 100644 index 000000000000..50afe0bd523e --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteManifest.json @@ -0,0 +1,10 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "alpine", + "reference": "3.7" + }, + "responses": { + "202": {} + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteTag.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteTag.json new file mode 100644 index 000000000000..fec441eeaf12 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteTag.json @@ -0,0 +1,10 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "nanoserver", + "reference": "4.7.2-20180905-nanoserver-1803" + }, + "responses": { + "202": {} + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/EndBlobUpload.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/EndBlobUpload.json new file mode 100644 index 000000000000..82f0c9c35538 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/EndBlobUpload.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "nextBlobUuidLink": "v2/blobland/blobs/uploads/2b28c60d-d296-44b7-b2b4-1f01c63195c6?_nouploadcache=false&_state=VYABvUSCNW2yY5e5VabLHppXqwU0K7cvT0YUdq57KBt7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiIyYjI4YzYwZC1kMjk2LTQ0YjctYjJiNC0xZjAxYzYzMTk1YzYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTktMDgtMjdUMjM6NTI6NDcuMDUzNjU2Mjg1WiJ9", + "digest": "sha256:a05a7abc31b0caadd5058069eaa623cdd0538512dbddacc7ca5bad73c3957c5e", + "value": "usuallyEmpty" + }, + "responses": { + "201": { + "headers": { + "Location": "/v2/blobland/blobs/sha256:a05a7abc31b0caadd5058069eaa623cdd0538512dbddacc7ca5bad73c3957c5e", + "Docker-Content-Digest": "sha256:a05a7abc31b0caadd5058069eaa623cdd0538512dbddacc7ca5bad73c3957c5e" + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetAccessToken.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetAccessToken.json new file mode 100644 index 000000000000..416fd08ca49b --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetAccessToken.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "service": "someregistry.azurecr.io", + "scope": "registry:catalog:*" + }, + "responses": { + "200": { + "body": { + "access_token": "eyJ0eXAiOiJKJhbGcigdCI6IkN0ZlFaOExlLTMejlnIiwidGlkIjoiNzbmOTgWItMmQ3Y2QwMTFkYjQ3Ii..." + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlob.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlob.json new file mode 100644 index 000000000000..b50eee9da47c --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlob.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "prod/bash", + "digest": "sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39" + }, + "responses": { + "200": { + "body": "eyJhcmNoaXRlY3R1cmUiOiJhbWQ2NCIsImNvbmZpZyI6eyJIb3N0bmFtZSI6IiIsIkRvbWFpbm5hbWUiOiIiLCJVc2VyIjoiIiwiQXR0YWNoU3RkaW4iOmZhbHNlLCJBdHRhY2hTdGRvdXQiOmZhbHNlLCJBdHRhY2hTdGRlcnIiOmZhbHNlLCJUdHkiOmZhbHNlLCJPcGVuU3RkaW4iOmZhbHNlLCJTdGRpbk9uY2UiOmZhbHNlLCJFbnYiOlsiUEFUSD0vdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4iLCJfQkFTSF9HUEdfS0VZPTdDMDEzNUZCMDg4QUFGNkM2NkM2NTBCOUJCNTg2OUYwNjRFQTc0QUIiLCJfQkFTSF9WRVJTSU9OPTUuMCIsIl9CQVNIX1BBVENIX0xFVkVMPTAiLCJfQkFTSF9MQVRFU1RfUEFUQ0g9NyJdLCJDbWQiOlsiYmFzaCJdLCJBcmdzRXNjYXBlZCI6dHJ1ZSwiSW1hZ2UiOiJzaGEyNTY6MzhhZDJmYmM5ZjljMGE4N2RmZTBhMmIxOWJkY2E5NGJlNDVmNDY2M2Y3M2ZkMDlmZWZlZTQ5MmFmZDJjMDE0NCIsIlZvbHVtZXMiOm51bGwsIldvcmtpbmdEaXIiOiIiLCJFbnRyeXBvaW50IjpbImRvY2tlci1lbnRyeXBvaW50LnNoIl0sIk9uQnVpbGQiOm51bGwsIkxhYmVscyI6bnVsbH0sImNvbnRhaW5lciI6IjRiMDU0NmZhNDlkZjVkY2FlZDViNjYzNzE3ZjQ0MmNlZjcxYTFiOTVjMGZmYjQyYzhjNWNlNzIzMWI5MGMwMjYiLCJjb250YWluZXJfY29uZmlnIjp7Ikhvc3RuYW1lIjoiNGIwNTQ2ZmE0OWRmIiwiRG9tYWlubmFtZSI6IiIsIlVzZXIiOiIiLCJBdHRhY2hTdGRpbiI6ZmFsc2UsIkF0dGFjaFN0ZG91dCI6ZmFsc2UsIkF0dGFjaFN0ZGVyciI6ZmFsc2UsIlR0eSI6ZmFsc2UsIk9wZW5TdGRpbiI6ZmFsc2UsIlN0ZGluT25jZSI6ZmFsc2UsIkVudiI6WyJQQVRIPS91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL3NiaW46L3Vzci9iaW46L3NiaW46L2JpbiIsIl9CQVNIX0dQR19LRVk9N0MwMTM1RkIwODhBQUY2QzY2QzY1MEI5QkI1ODY5RjA2NEVBNzRBQiIsIl9CQVNIX1ZFUlNJT049NS4wIiwiX0JBU0hfUEFUQ0hfTEVWRUw9MCIsIl9CQVNIX0xBVEVTVF9QQVRDSD03Il0sIkNtZCI6WyIvYmluL3NoIiwiLWMiLCIjKG5vcCkgIiwiQ01EIFtcImJhc2hcIl0iXSwiQXJnc0VzY2FwZWQiOnRydWUsIkltYWdlIjoic2hhMjU2OjM4YWQyZmJjOWY5YzBhODdkZmUwYTJiMTliZGNhOTRiZTQ1ZjQ2NjNmNzNmZDA5ZmVmZWU0OTJhZmQyYzAxNDQiLCJWb2x1bWVzIjpudWxsLCJXb3JraW5nRGlyIjoiIiwiRW50cnlwb2ludCI6WyJkb2NrZXItZW50cnlwb2ludC5zaCJdLCJPbkJ1aWxkIjpudWxsLCJMYWJlbHMiOnt9fSwiY3JlYXRlZCI6IjIwMTktMDctMTNUMDE6MTY6MDYuNTI3NTE1OTAyWiIsImRvY2tlcl92ZXJzaW9uIjoiMTguMDYuMS1jZSIsImhpc3RvcnkiOlt7ImNyZWF0ZWQiOiIyMDE5LTA3LTExVDIyOjIwOjUyLjEzOTcwOTM1NVoiLCJjcmVhdGVkX2J5IjoiL2Jpbi9zaCAtYyAjKG5vcCkgQUREIGZpbGU6MGViNWVhMzU3NDFkMjNmZTM5Y2JhYzI0NWIzYTVkODQ4NTZlZDYzODRmNGZmMDdkNDk2MzY5ZWU2ZDk2MGJhZCBpbiAvICJ9LHsiY3JlYXRlZCI6IjIwMTktMDctMTFUMjI6MjA6NTIuMzc1Mjg2NDA0WiIsImNyZWF0ZWRfYnkiOiIvYmluL3NoIC1jICMobm9wKSAgQ01EIFtcIi9iaW4vc2hcIl0iLCJlbXB0eV9sYXllciI6dHJ1ZX0seyJjcmVhdGVkIjoiMjAxOS0wNy0xM1QwMToxNToxMy41Njc2Njk4MTJaIiwiY3JlYXRlZF9ieSI6Ii9iaW4vc2ggLWMgIyhub3ApICBFTlYgX0JBU0hfR1BHX0tFWT03QzAxMzVGQjA4OEFBRjZDNjZDNjUwQjlCQjU4NjlGMDY0RUE3NEFCIiwiZW1wdHlfbGF5ZXIiOnRydWV9LHsiY3JlYXRlZCI6IjIwMTktMDctMTNUMDE6MTU6MTMuNzQ1NjUyMDk4WiIsImNyZWF0ZWRfYnkiOiIvYmluL3NoIC1jICMobm9wKSAgRU5WIF9CQVNIX1ZFUlNJT049NS4wIiwiZW1wdHlfbGF5ZXIiOnRydWV9LHsiY3JlYXRlZCI6IjIwMTktMDctMTNUMDE6MTU6MTMuOTQwNDU1NDE5WiIsImNyZWF0ZWRfYnkiOiIvYmluL3NoIC1jICMobm9wKSAgRU5WIF9CQVNIX1BBVENIX0xFVkVMPTAiLCJlbXB0eV9sYXllciI6dHJ1ZX0seyJjcmVhdGVkIjoiMjAxOS0wNy0xM1QwMToxNToxNC4wOTkzMDAwNzVaIiwiY3JlYXRlZF9ieSI6Ii9iaW4vc2ggLWMgIyhub3ApICBFTlYgX0JBU0hfTEFURVNUX1BBVENIPTciLCJlbXB0eV9sYXllciI6dHJ1ZX0seyJjcmVhdGVkIjoiMjAxOS0wNy0xM1QwMToxNjowNS45Mjg0MjkyNjJaIiwiY3JlYXRlZF9ieSI6Ii9iaW4vc2ggLWMgc2V0IC1ldXg7IFx0XHRhcGsgYWRkIC0tbm8tY2FjaGUgLS12aXJ0dWFsIC5idWlsZC1kZXBzIFx0XHRiaXNvbiBcdFx0Y29yZXV0aWxzIFx0XHRkcGtnLWRldiBkcGtnIFx0XHRnY2MgXHRcdGdudXBnIFx0XHRsaWJjLWRldiBcdFx0bWFrZSBcdFx0bmN1cnNlcy1kZXYgXHRcdHBhdGNoIFx0XHR0YXIgXHQ7IFx0XHR2ZXJzaW9uPVwiJF9CQVNIX1ZFUlNJT05cIjsgXHRpZiBbIFwiJF9CQVNIX1BBVENIX0xFVkVMXCIgLWd0IDAgXTsgdGhlbiBcdFx0dmVyc2lvbj1cIiR2ZXJzaW9uLiRfQkFTSF9QQVRDSF9MRVZFTFwiOyBcdGZpOyBcdHdnZXQgLU8gYmFzaC50YXIuZ3ogXCJodHRwczovL2Z0cC5nbnUub3JnL2dudS9iYXNoL2Jhc2gtJHZlcnNpb24udGFyLmd6XCI7IFx0d2dldCAtTyBiYXNoLnRhci5nei5zaWcgXCJodHRwczovL2Z0cC5nbnUub3JnL2dudS9iYXNoL2Jhc2gtJHZlcnNpb24udGFyLmd6LnNpZ1wiOyBcdFx0aWYgWyBcIiRfQkFTSF9MQVRFU1RfUEFUQ0hcIiAtZ3QgXCIkX0JBU0hfUEFUQ0hfTEVWRUxcIiBdOyB0aGVuIFx0XHRta2RpciAtcCBiYXNoLXBhdGNoZXM7IFx0XHRmaXJzdD1cIiQocHJpbnRmICclMDNkJyBcIiQoKCBfQkFTSF9QQVRDSF9MRVZFTCArIDEgKSlcIilcIjsgXHRcdGxhc3Q9XCIkKHByaW50ZiAnJTAzZCcgXCIkX0JBU0hfTEFURVNUX1BBVENIXCIpXCI7IFx0XHRmb3IgcGF0Y2ggaW4gJChzZXEgLXcgXCIkZmlyc3RcIiBcIiRsYXN0XCIpOyBkbyBcdFx0XHR1cmw9XCJodHRwczovL2Z0cC5nbnUub3JnL2dudS9iYXNoL2Jhc2gtJF9CQVNIX1ZFUlNJT04tcGF0Y2hlcy9iYXNoJHtfQkFTSF9WRVJTSU9OLy8uL30tJHBhdGNoXCI7IFx0XHRcdHdnZXQgLU8gXCJiYXNoLXBhdGNoZXMvJHBhdGNoXCIgXCIkdXJsXCI7IFx0XHRcdHdnZXQgLU8gXCJiYXNoLXBhdGNoZXMvJHBhdGNoLnNpZ1wiIFwiJHVybC5zaWdcIjsgXHRcdGRvbmU7IFx0Zmk7IFx0XHRleHBvcnQgR05VUEdIT01FPVwiJChta3RlbXAgLWQpXCI7IFx0Z3BnIC0tYmF0Y2ggLS1rZXlzZXJ2ZXIgaGEucG9vbC5za3Mta2V5c2VydmVycy5uZXQgLS1yZWN2LWtleXMgXCIkX0JBU0hfR1BHX0tFWVwiOyBcdGdwZyAtLWJhdGNoIC0tdmVyaWZ5IGJhc2gudGFyLmd6LnNpZyBiYXNoLnRhci5nejsgXHRncGdjb25mIC0ta2lsbCBhbGw7IFx0cm0gYmFzaC50YXIuZ3ouc2lnOyBcdGlmIFsgLWQgYmFzaC1wYXRjaGVzIF07IHRoZW4gXHRcdGZvciBzaWcgaW4gYmFzaC1wYXRjaGVzLyouc2lnOyBkbyBcdFx0XHRwPVwiJHtzaWclLnNpZ31cIjsgXHRcdFx0Z3BnIC0tYmF0Y2ggLS12ZXJpZnkgXCIkc2lnXCIgXCIkcFwiOyBcdFx0XHRybSBcIiRzaWdcIjsgXHRcdGRvbmU7IFx0Zmk7IFx0cm0gLXJmIFwiJEdOVVBHSE9NRVwiOyBcdFx0bWtkaXIgLXAgL3Vzci9zcmMvYmFzaDsgXHR0YXIgXHRcdC0tZXh0cmFjdCBcdFx0LS1maWxlPWJhc2gudGFyLmd6IFx0XHQtLXN0cmlwLWNvbXBvbmVudHM9MSBcdFx0LS1kaXJlY3Rvcnk9L3Vzci9zcmMvYmFzaCBcdDsgXHRybSBiYXNoLnRhci5nejsgXHRcdGlmIFsgLWQgYmFzaC1wYXRjaGVzIF07IHRoZW4gXHRcdGZvciBwIGluIGJhc2gtcGF0Y2hlcy8qOyBkbyBcdFx0XHRwYXRjaCBcdFx0XHRcdC0tZGlyZWN0b3J5PS91c3Ivc3JjL2Jhc2ggXHRcdFx0XHQtLWlucHV0PVwiJChyZWFkbGluayAtZiBcIiRwXCIpXCIgXHRcdFx0XHQtLXN0cmlwPTAgXHRcdFx0OyBcdFx0XHRybSBcIiRwXCI7IFx0XHRkb25lOyBcdFx0cm1kaXIgYmFzaC1wYXRjaGVzOyBcdGZpOyBcdFx0Y2QgL3Vzci9zcmMvYmFzaDsgXHRnbnVBcmNoPVwiJChkcGtnLWFyY2hpdGVjdHVyZSAtLXF1ZXJ5IERFQl9CVUlMRF9HTlVfVFlQRSlcIjsgXHQuL2NvbmZpZ3VyZSBcdFx0LS1idWlsZD1cIiRnbnVBcmNoXCIgXHRcdC0tZW5hYmxlLXJlYWRsaW5lIFx0XHQtLXdpdGgtY3Vyc2VzIFx0XHQtLXdpdGhvdXQtYmFzaC1tYWxsb2MgXHR8fCB7IFx0XHRjYXQgXHUwMDNlXHUwMDI2MiBjb25maWcubG9nOyBcdFx0ZmFsc2U7IFx0fTsgXHRtYWtlIC1qIFwiJChucHJvYylcIjsgXHRtYWtlIGluc3RhbGw7IFx0Y2QgLzsgXHRybSAtciAvdXNyL3NyYy9iYXNoOyBcdFx0cm0gLXIgXHRcdC91c3IvbG9jYWwvc2hhcmUvZG9jL2Jhc2gvKi5odG1sIFx0XHQvdXNyL2xvY2FsL3NoYXJlL2luZm8gXHRcdC91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIFx0XHQvdXNyL2xvY2FsL3NoYXJlL21hbiBcdDsgXHRcdHJ1bkRlcHM9XCIkKCBcdFx0c2NhbmVsZiAtLW5lZWRlZCAtLW5vYmFubmVyIC0tZm9ybWF0ICclbiNwJyAtLXJlY3Vyc2l2ZSAvdXNyL2xvY2FsIFx0XHRcdHwgdHIgJywnICdcXG4nIFx0XHRcdHwgc29ydCAtdSBcdFx0XHR8IGF3ayAnc3lzdGVtKFwiWyAtZSAvdXNyL2xvY2FsL2xpYi9cIiAkMSBcIiBdXCIpID09IDAgeyBuZXh0IH0geyBwcmludCBcInNvOlwiICQxIH0nIFx0KVwiOyBcdGFwayBhZGQgLS1uby1jYWNoZSAtLXZpcnR1YWwgLmJhc2gtcnVuZGVwcyAkcnVuRGVwczsgXHRhcGsgZGVsIC5idWlsZC1kZXBzOyBcdFx0WyBcIiQod2hpY2ggYmFzaClcIiA9ICcvdXNyL2xvY2FsL2Jpbi9iYXNoJyBdOyBcdGJhc2ggLS12ZXJzaW9uOyBcdFsgXCIkKGJhc2ggLWMgJ2VjaG8gXCIke0JBU0hfVkVSU0lPTiUlW14wLTkuXSp9XCInKVwiID0gXCIke19CQVNIX1ZFUlNJT04lJS0qfS4kX0JBU0hfTEFURVNUX1BBVENIXCIgXTsifSx7ImNyZWF0ZWQiOiIyMDE5LTA3LTEzVDAxOjE2OjA2LjE2NDEyODQxMloiLCJjcmVhdGVkX2J5IjoiL2Jpbi9zaCAtYyAjKG5vcCkgQ09QWSBmaWxlOjY1MWIzYmViZWJhOGJlOTE2MmM1NmIzZWI1NjExOTk5MDUyMzVmM2UxYzc4MTEyMzJiNmM5ZjQ4YWMzMzM2NTEgaW4gL3Vzci9sb2NhbC9iaW4vICJ9LHsiY3JlYXRlZCI6IjIwMTktMDctMTNUMDE6MTY6MDYuMzE5Mzc1ODg0WiIsImNyZWF0ZWRfYnkiOiIvYmluL3NoIC1jICMobm9wKSAgRU5UUllQT0lOVCBbXCJkb2NrZXItZW50cnlwb2ludC5zaFwiXSIsImVtcHR5X2xheWVyIjp0cnVlfSx7ImNyZWF0ZWQiOiIyMDE5LTA3LTEzVDAxOjE2OjA2LjUyNzUxNTkwMloiLCJjcmVhdGVkX2J5IjoiL2Jpbi9zaCAtYyAjKG5vcCkgIENNRCBbXCJiYXNoXCJdIiwiZW1wdHlfbGF5ZXIiOnRydWV9XSwib3MiOiJsaW51eCIsInJvb3RmcyI6eyJ0eXBlIjoibGF5ZXJzIiwiZGlmZl9pZHMiOlsic2hhMjU2OjFiZmVlYmQ2NTMyM2I4ZGRmNWJkNmE1MWNjNzA5N2I3Mjc4OGJjOTgyZTlhYjMyODBkNTNkM2M2MTNhZGZmYTciLCJzaGEyNTY6NDgzYzk4MGFjNmFiZjYzZmM0ZDcyNjJiMTdhMTk1NGQ2MjI2NmRhYzMwMjliNWJlMzg0ZDAzYjM5MjI5ODAzZSIsInNoYTI1Njo1ZjVmOTNhOTMzMDUyMTBhOTZjYzQxN2Y1NzlkNzBhNDk2YmJmMGRiOGU4MGVhMWU5NDM2NjgyYzM3OWYyNWQ5Il19fQ==", + "headers": { + "Content-Length": 5635 + } + }, + "307": { + "headers": { + "Location": "https://csharpsdktest.azurecr.io/v2/prod/bash/blobs/sha256:3131d2b2b3352091117a3abe745d01a3fed472b7327c3183602247937800e3a6" + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobChunk.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobChunk.json new file mode 100644 index 000000000000..12671ea6b036 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobChunk.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "prod/bash", + "digest": "sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39", + "Range": "bytes=0-299" + }, + "responses": { + "206": { + "body": "eyJhcmNoaXRlY3R1cmUiOiJhbWQ2NCIsImNvbmZpZyI6eyJIb3N0bmFtZSI6IiIsIkRvbWFpbm5hbWUiOiIiLCJVc2VyIjoiIiwiQXR0YWNoU3RkaW4iOmZhbHNlLCJBdHRhY2hTdGRvdXQiOmZhbHNlLCJBdHRhY2hTdGRlcnIiOmZhbHNlLCJUdHkiOmZhbHNlLCJPcGVuU3RkaW4iOmZhbHNlLCJTdGRpbk9uY2UiOmZhbHNlLCJFbnYiOlsiUEFUSD0vdXNyL2xvY2FsL3NiaW46L3Vzci9sb2NhbC9iaW46L3Vzci9zYmluOi91c3IvYmluOi9zYmluOi9iaW4iLCJfQkFTSF9HUEdfS0VZPTdDMDEzNUZCMDg4QUFGNkM2NkM2NTBCOUJC", + "headers": { + "Content-Length": "300", + "Content-Range": "bytes 0-299/5635" + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobStatus.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobStatus.json new file mode 100644 index 000000000000..03da3ca3fcd9 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobStatus.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "nextBlobUuidLink": "v2/blobland/blobs/uploads/2b28c60d-d296-44b7-b2b4-1f01c63195c6?_nouploadcache=false&_state=VYABvUSCNW2yY5e5VabLHppXqwU0K7cvT0YUdq57KBt7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiIyYjI4YzYwZC1kMjk2LTQ0YjctYjJiNC0xZjAxYzYzMTk1YzYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTktMDgtMjdUMjM6NTI6NDcuMDUzNjU2Mjg1WiJ9" + }, + "responses": { + "204": { + "headers": { + "Range": "0-0", + "Docker-Upload-Uuid": "2b28c60d-d296-44b7-b2b4-1f01c63195c6" + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetDockerRegistryV2Support.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetDockerRegistryV2Support.json new file mode 100644 index 000000000000..181e2eec438e --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetDockerRegistryV2Support.json @@ -0,0 +1,8 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io" + }, + "responses": { + "200": {} + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifest.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifest.json new file mode 100644 index 000000000000..2768e76d6a0d --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifest.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "hello-world-dangling", + "reference": "20190628-033033z", + "accept": "application/vnd.docker.distribution.manifest.v2+json" + }, + "responses": { + "200": { + "body": { + "schemaVersion": 2, + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "config": { + "mediaType": "application/vnd.docker.container.image.v1+json", + "size": 5824, + "digest": "sha256:691fbc2d44fff48357bba69ab0505b9bf12b2b250a925a84a0b8e8e7eed390b2" + }, + "layers": [ + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 2014658, + "digest": "sha256:a073c86ecf9e0f29180e80e9638d4c741970695851ea48247276c32c57e40282" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 19778035, + "digest": "sha256:0e28711eb56d78f1e3dfde1807eba529d1346222bcd07d1cb1e436a18a0388bd" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 1074044, + "digest": "sha256:e460dd483fddb555911f7ed188c319fd97542c60e36843dcb1c5d753f733e1fa" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 5827, + "digest": "sha256:6aa301222093bfb8cf424ccb387f59e2c9510c3a30cca7fbcf8c954f88e6600c" + }, + { + "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", + "size": 568, + "digest": "sha256:9c5d80083a57d565f684e0155707204d497a5ad965279f92927452f15dae17e6" + } + ] + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestAttributes.json new file mode 100644 index 000000000000..a8163814b8c1 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestAttributes.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "nanoserver", + "reference": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086" + }, + "responses": { + "200": { + "body": { + "registry": "acrapi.azurecr-test.io", + "imageName": "nanoserver", + "manifest": { + "digest": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086", + "imageSize": 2401606, + "createdTime": "2018-09-06T06:17:20.9983915Z", + "lastUpdateTime": "2018-09-06T06:17:20.9983915Z", + "architecture": "amd64", + "os": "windows", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "configMediaType": "application/vnd.docker.container.image.v1+json", + "tags": [ + "4.7.2-20180905-nanoserver-1803" + ], + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": true, + "readEnabled": true, + "listEnabled": true + } + } + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestList.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestList.json new file mode 100644 index 000000000000..08eaec214eca --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestList.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "nanoserver" + }, + "responses": { + "200": { + "body": { + "registry": "acrapi.azurecr-test.io", + "imageName": "nanoserver", + "manifests": [ + { + "digest": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086", + "imageSize": 2401606, + "createdTime": "2018-09-06T06:17:20.9983915Z", + "lastUpdateTime": "2018-09-06T06:17:20.9983915Z", + "architecture": "amd64", + "os": "windows", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "configMediaType": "application/vnd.docker.container.image.v1+json", + "tags": [ + "4.7.2-20180905-nanoserver-1803" + ], + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": true, + "readEnabled": true, + "listEnabled": true + } + }, + { + "digest": "sha256:7af5cd1dde3e8f5c2c9103860afa4ca871a6075373b6564b0e7b1b47866dab52", + "imageSize": 4135121, + "createdTime": "2018-09-07T16:30:46.5651701Z", + "lastUpdateTime": "2018-09-07T16:30:46.5651701Z", + "architecture": "amd64", + "os": "windows", + "mediaType": "application/vnd.docker.distribution.manifest.v2+json", + "configMediaType": "application/vnd.docker.container.image.v1+json", + "tags": [ + "4.7.2-20180906-nanoserver-1803" + ], + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": true, + "readEnabled": true, + "listEnabled": true + } + } + ] + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryAttributes.json new file mode 100644 index 000000000000..c6791683bfd2 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryAttributes.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "nanoserver" + }, + "responses": { + "200": { + "body": { + "registry": "acrapi.azurecr-test.io", + "imageName": "nanoserver", + "createdTime": "2018-09-06T06:17:20.9531248Z", + "lastUpdateTime": "2018-09-07T16:30:46.6583219Z", + "manifestCount": 2, + "tagCount": 2, + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": true, + "readEnabled": true, + "listEnabled": true + } + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryList.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryList.json new file mode 100644 index 000000000000..4b6864e0ea95 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryList.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io" + }, + "responses": { + "200": { + "body": { + "repositories": [ + "production/alpine", + "testing/alpine" + ] + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagAttributes.json new file mode 100644 index 000000000000..ed58c44d6f71 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagAttributes.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "test/bash", + "reference": "sha256:eabe547f78d4c18c708dd97ec3166cf7464cc651f1cbb67e7afas407405b7ad7b6" + }, + "responses": { + "200": { + "body": { + "registry": "acrapi.azurecr-test.io", + "imageName": "test/bash", + "tag": { + "name": "tagName", + "digest": "sha256:eabe547f78d4c18c708dd97ec3166cf7464cc651f1cbb67e70d407405b7ad7b6", + "createdTime": "2018-10-05T20:54:24.1286047Z", + "lastUpdateTime": "2018-10-05T20:54:24.1286047Z", + "signed": false, + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": false, + "readEnabled": true, + "listEnabled": true + } + } + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagList.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagList.json new file mode 100644 index 000000000000..e5342cd2295f --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagList.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "nanoserver" + }, + "responses": { + "200": { + "body": { + "registry": "acrapi.azurecr-test.io", + "imageName": "nanoserver", + "tags": [ + { + "name": "4.7.2-20180905-nanoserver-1803", + "digest": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086", + "createdTime": "2018-09-06T06:17:21.0856539Z", + "lastUpdateTime": "2018-09-06T06:17:21.0856539Z", + "signed": false, + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": true, + "readEnabled": true, + "listEnabled": true + } + }, + { + "name": "4.7.2-20180906-nanoserver-1803", + "digest": "sha256:7af5cd1dde3e8f5c2c9103860afa4ca871a6075373b6564b0e7b1b47866dab52", + "createdTime": "2018-09-06T16:30:43.3860166Z", + "lastUpdateTime": "2018-09-07T16:30:46.7022734Z", + "signed": false, + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": true, + "readEnabled": true, + "listEnabled": true + } + } + ] + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/MountBlob.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/MountBlob.json new file mode 100644 index 000000000000..45623b98265b --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/MountBlob.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "newimage", + "mount": "prod/bash", + "from": "sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39" + }, + "responses": { + "201": { + "headers": { + "Location": "/v2/somethingnew/blobs/sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39", + "Docker-Content-Digest": "sha256:16463e0c481e161aabb735437d30b3c9c7391c2747cc564bb927e843b73dcb39" + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostAccessToken.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostAccessToken.json new file mode 100644 index 000000000000..a4e6293133b5 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostAccessToken.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "grant_type": "refresh_token", + "service": "someregistry.azurecr.io", + "scope": "registry:catalog:*", + "refresh_token": "eyJ0eXAiOiJKJhbGci1dCI6IkN0ZlFDOExlLTMejlnIiwidGlkIjoiNzJmOTgWItMmQ3Y2QwMTFkYjQ3Ii..." + }, + "responses": { + "200": { + "body": { + "access_token": "eyJ0eXAiOiJKJhbGcigdCI6IkN0ZlFaOExlLTMejlnIiwidGlkIjoiNzbmOTgWItMmQ3Y2QwMTFkYjQ3Ii..." + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostRefreshToken.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostRefreshToken.json new file mode 100644 index 000000000000..768ca1680ba1 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostRefreshToken.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "grant_type": "access_token", + "url": "acrapi.azurecr-test.io", + "service": "someregistry.azurecr.io", + "tenant": "02f900bf-86f1-31af-p1ab-2b7cd0nndb47", + "accessToken": "eyJ0eXAiOiJKJhbGci1dCI6IkN0ZlFDOExlLTMejlnIiwidGlkIjoiNzJmOTgWItMmQ3Y2QwMTFkYjQ3Ii..." + }, + "responses": { + "200": { + "body": { + "refresh_token": "eyJ0eXAiOiJKJhbGcigdCI6IkN0ZlFaOExlLTMejlnIiwidGlkIjoiNzbmOTgWItMmQ3Y2QwMTFkYjQ3Ii..." + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/StartBlobUpload.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/StartBlobUpload.json new file mode 100644 index 000000000000..38d70c467e5f --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/StartBlobUpload.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "newimg" + }, + "responses": { + "202": { + "headers": { + "Location": "/v2/blobland/blobs/uploads/f6d3451c-3352-43ff-b67c-fd0cfc793066?_nouploadcache=false&_state=iWTaVpaWiz23JTt8ZsYFPEU5JwLOFgdumWOmqGxIYGt7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiJmNmQzNDUxYy0zMzUyLTQzZmYtYjY3Yy1mZDBjZmM3OTMwNjYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTktMDgtMjdUMjM6NTI6NTQuNTM1MDQ5ODY1WiJ9", + "Range": "0-0", + "Docker-Upload-Uuid": "f6d3451c-3352-43ff-b67c-fd0cfc793066" + } + } + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateManifestAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateManifestAttributes.json new file mode 100644 index 000000000000..4c25514ab2f2 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateManifestAttributes.json @@ -0,0 +1,11 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "nanoserver", + "reference": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086", + "value": "{\"writeEnabled\": false}" + }, + "responses": { + "200": {} + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateRepositoryAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateRepositoryAttributes.json new file mode 100644 index 000000000000..14a61f118d0f --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateRepositoryAttributes.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "nanoserver", + "value": { + "writeEnabled": false + } + }, + "responses": { + "200": {} + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateTagAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateTagAttributes.json new file mode 100644 index 000000000000..16e13e3c4ec2 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateTagAttributes.json @@ -0,0 +1,11 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "name": "nanoserver", + "reference": "4.7.2-20180905-nanoserver-1803", + "value": "{\"writeEnabled\": false}" + }, + "responses": { + "200": {} + } +} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UploadBlob.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UploadBlob.json new file mode 100644 index 000000000000..7add0750729c --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UploadBlob.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "url": "acrapi.azurecr-test.io", + "nextBlobUuidLink": "v2/blobland/blobs/uploads/2b28c60d-d296-44b7-b2b4-1f01c63195c6?_nouploadcache=false&_state=VYABvUSCNW2yY5e5VabLHppXqwU0K7cvT0YUdq57KBt7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiIyYjI4YzYwZC1kMjk2LTQ0YjctYjJiNC0xZjAxYzYzMTk1YzYiLCJPZmZzZXQiOjAsIlN0YXJ0ZWRBdCI6IjIwMTktMDgtMjdUMjM6NTI6NDcuMDUzNjU2Mjg1WiJ9", + "value": "U29tZXRoaW5nRWxzZQ==" + }, + "responses": { + "202": { + "headers": { + "Location": "/v2/blobland/blobs/uploads/f6d3451c-3352-43ff-b67c-fd0cfc793066?_nouploadcache=false&_state=9G2t2KQOw-ANeo5TrnwVb5OeAUIe0NaEJ2jxwLT6Y1J7Ik5hbWUiOiJibG9ibGFuZCIsIlVVSUQiOiJmNmQzNDUxYy0zMzUyLTQzZmYtYjY3Yy1mZDBjZmM3OTMwNjYiLCJPZmZzZXQiOjEzLCJTdGFydGVkQXQiOiIyMDE5LTA4LTI3VDIzOjUyOjU0WiJ9", + "Range": "0-12", + "Docker-Upload-Uuid": "f6d3451c-3352-43ff-b67c-fd0cfc793066" + } + } + } +} From cf1dccf0df780d4a8d2bc4b532070cc810b51dab Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 29 Mar 2021 13:20:05 -0700 Subject: [PATCH 02/43] Add Track 2 customizations --- .../preview/2019-08-15/containerregistry.json | 524 ++++++++++-------- 1 file changed, 301 insertions(+), 223 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json index 711ad07777ff..cf83bf82d0c7 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json @@ -1,7 +1,7 @@ { "swagger": "2.0", "info": { - "title": "Azure Container Registry", + "title": "Container Registry", "description": "Metadata API definition for the Azure Container Registry runtime", "version": "2019-08-15-preview" }, @@ -33,36 +33,16 @@ ], "tags": [ { - "name": "v2", - "description": "Root API" + "name": "ContainerRegistry", + "description": "Registry Operations" }, { - "name": "Manifest", - "description": "Everything about manifests" + "name": "ContainerRegistryRepository", + "description": "Repository Operations" }, { - "name": "Tag", - "description": "Everything about tags" - }, - { - "name": "Layer", - "description": "Everything about layers" - }, - { - "name": "Repository", - "description": "Everything about repository" - }, - { - "name": "AcrRepository", - "description": "ACR APIs related to repositories" - }, - { - "name": "AcrManifest", - "description": "ACR APIs related to manifests" - }, - { - "name": "AcrTag", - "description": "ACR APIs related to tags" + "name": "ContainerRegistryBlob", + "description": "Blob Operations" } ], "schemes": [ @@ -75,10 +55,10 @@ "/v2/": { "get": { "tags": [ - "v2" + "Registry" ], "description": "Tells whether this Docker Registry instance supports Docker Registry HTTP API v2", - "operationId": "V2Support_Check", + "operationId": "ContainerRegistry_CheckDockerV2Support", "x-ms-examples": { "Check Docker Registry V2 Support": { "$ref": "./examples/GetDockerRegistryV2Support.json" @@ -100,7 +80,7 @@ "/v2/{name}/manifests/{reference}": { "get": { "tags": [ - "Manifest" + "Repository" ], "description": "Get the manifest identified by `name` and `reference` where `reference` can be a tag or digest.", "x-ms-examples": { @@ -108,7 +88,7 @@ "$ref": "./examples/GetManifest.json" } }, - "operationId": "Manifests_Get", + "operationId": "ContainerRegistryRepository_GetManifest", "parameters": [ { "$ref": "#/parameters/ImageName" @@ -128,7 +108,7 @@ "200": { "description": "Returns the requested manifest file in a larger combined group", "schema": { - "$ref": "#/definitions/ManifestWrapper" + "$ref": "#/definitions/Manifest" } }, "default": { @@ -141,7 +121,7 @@ }, "put": { "tags": [ - "Manifest" + "Repository" ], "x-ms-long-running-operation": false, "description": "Put the manifest identified by `name` and `reference` where `reference` can be a tag or digest.", @@ -153,7 +133,7 @@ "consumes": [ "application/vnd.docker.distribution.manifest.v2+json" ], - "operationId": "Manifests_Create", + "operationId": "ContainerRegistryRepository_CreateManifest", "parameters": [ { "$ref": "#/parameters/ImageName" @@ -169,6 +149,7 @@ "201": { "description": "The manifest is updated", "schema": {}, + "headers": { "Docker-Content-Digest": { "type": "string", @@ -195,7 +176,7 @@ }, "delete": { "tags": [ - "Manifest" + "Repository" ], "description": "Delete the manifest identified by `name` and `reference`. Note that a manifest can _only_ be deleted by `digest`.", "x-ms-examples": { @@ -203,13 +184,13 @@ "$ref": "./examples/DeleteManifest.json" } }, - "operationId": "Manifests_Delete", + "operationId": "ContainerRegistryRepository_DeleteManifest", "parameters": [ { "$ref": "#/parameters/ImageName" }, { - "$ref": "#/parameters/ImageReference" + "$ref": "#/parameters/DigestReference" } ], "responses": { @@ -231,7 +212,7 @@ "application/octet-stream" ], "tags": [ - "Layer" + "ContainerRegistryBlob" ], "parameters": [ { @@ -247,7 +228,7 @@ } }, "description": "Retrieve the blob from the registry identified by digest.", - "operationId": "Blob_Get", + "operationId": "ContainerRegistryBlob_GetBlob", "responses": { "200": { "description": "The blob identified by digest is available. The blob content will be present in the body of the response.", @@ -287,10 +268,10 @@ }, "head": { "tags": [ - "Layer" + "ContainerRegistryBlob" ], "description": "Same as GET, except only the headers are returned.", - "operationId": "Blob_Check", + "operationId": "ContainerRegistryBlob_CheckBlobExists", "x-ms-examples": { "Head for a Blob Chunk": { "$ref": "./examples/CheckBlob.json" @@ -350,9 +331,9 @@ "application/octet-stream" ], "tags": [ - "Layer" + "ContainerRegistryBlob" ], - "operationId": "Blob_Delete", + "operationId": "ContainerRegistryBlob_DeleteBlob", "x-ms-examples": { "Delete a blob": { "$ref": "./examples/DeleteBlob.json" @@ -385,10 +366,10 @@ "/v2/{name}/blobs/uploads/": { "post": { "tags": [ - "Layer" + "ContainerRegistryBlob" ], "description": "Mount a blob identified by the `mount` parameter from another repository.", - "operationId": "Blob_Mount", + "operationId": "ContainerRegistryBlob_MountBlob", "x-ms-examples": { "Mount a blob from repository": { "$ref": "./examples/MountBlob.json" @@ -435,7 +416,7 @@ "/{nextBlobUuidLink}": { "get": { "tags": [ - "Layer" + "ContainerRegistryBlob" ], "parameters": [ { @@ -443,7 +424,7 @@ } ], "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", + "operationId": "ContainerRegistryBlob_GetUploadStatus", "x-ms-examples": { "Get blob status": { "$ref": "./examples/GetBlobStatus.json" @@ -479,10 +460,10 @@ } ], "tags": [ - "Layer" + "ContainerRegistryBlob" ], "description": "Upload a stream of data without completing the upload.", - "operationId": "Blob_Upload", + "operationId": "ContainerRegistryBlob_UploadChunk", "x-ms-examples": { "Upload Blob": { "$ref": "./examples/UploadBlob.json" @@ -527,13 +508,13 @@ }, "put": { "tags": [ - "Layer" + "ContainerRegistryBlob" ], "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", + "operationId": "ContainerRegistryBlob_CompleteUpload", "x-ms-examples": { "End a blob upload": { "$ref": "./examples/EndBlobUpload.json" @@ -578,7 +559,7 @@ }, "delete": { "tags": [ - "Layer" + "ContainerRegistryBlob" ], "parameters": [ { @@ -586,7 +567,7 @@ } ], "description": "Cancel outstanding upload processes, releasing associated resources. If this is not called, the unfinished uploads will eventually timeout.", - "operationId": "Blob_CancelUpload", + "operationId": "ContainerRegistryBlob_CancelUpload", "x-ms-examples": { "End a blob upload": { "$ref": "./examples/CancelBlobUpload.json" @@ -608,10 +589,14 @@ "/acr/v1/_catalog": { "get": { "tags": [ - "AcrRepository" + "Registry" ], "description": "List repositories", - "operationId": "Repository_GetList", + "operationId": "ContainerRegistry_GetRepositories", + "x-ms-pageable": { + "itemName": "repositories", + "nextLinkName": "link" + }, "x-ms-examples": { "Get repositories in a registry": { "$ref": "./examples/GetRepositoryList.json" @@ -650,11 +635,10 @@ "/acr/v1/{name}": { "get": { "tags": [ - "AcrRepository", - "AcrMetadata" + "Registry" ], "description": "Get repository attributes", - "operationId": "Repository_GetAttributes", + "operationId": "ContainerRegistryRepository_GetProperties", "x-ms-examples": { "Get details of repository": { "$ref": "./examples/GetRepositoryAttributes.json" @@ -682,10 +666,10 @@ }, "delete": { "tags": [ - "AcrRepository" + "Registry" ], "description": "Delete the repository identified by `name`", - "operationId": "Repository_Delete", + "operationId": "ContainerRegistry_DeleteRepository", "x-ms-examples": { "Delete a repository": { "$ref": "./examples/DeleteAcrRepository.json" @@ -713,11 +697,10 @@ }, "patch": { "tags": [ - "AcrRepository", - "AcrMetadata" + "Registry" ], "description": "Update the attribute identified by `name` where `reference` is the name of the repository.", - "operationId": "Repository_UpdateAttributes", + "operationId": "ContainerRegistryRepository_SetProperties", "x-ms-examples": { "Update repository attributes": { "$ref": "./examples/UpdateRepositoryAttributes.json" @@ -756,16 +739,19 @@ "/acr/v1/{name}/_tags": { "get": { "tags": [ - "AcrTag", - "AcrMetadata" + "Repository" ], "description": "List tags of a repository", - "operationId": "Tag_GetList", + "operationId": "ContainerRegistryRepository_GetTags", "x-ms-examples": { "Get tags of a repository": { "$ref": "./examples/GetTagList.json" } }, + "x-ms-pageable": { + "itemName": "tags", + "nextLinkName": "link" + }, "parameters": [ { "$ref": "#/parameters/ImageName" @@ -785,6 +771,12 @@ ], "responses": { "200": { + "headers": { + "Link": { + "description": "next paginated result", + "type": "string" + } + }, "description": "Tag details of a repository", "schema": { "$ref": "#/definitions/TagList" @@ -802,11 +794,10 @@ "/acr/v1/{name}/_tags/{reference}": { "get": { "tags": [ - "AcrTag", - "AcrMetadata" + "Repository" ], "description": "Get tag attributes by tag", - "operationId": "Tag_GetAttributes", + "operationId": "ContainerRegistryRepository_GetTagProperties", "x-ms-examples": { "Get tag attributes": { "$ref": "./examples/GetTagAttributes.json" @@ -837,11 +828,10 @@ }, "patch": { "tags": [ - "AcrTag", - "AcrMetadata" + "Repository" ], "description": "Update tag attributes", - "operationId": "Tag_UpdateAttributes", + "operationId": "ContainerRegistryRepository_UpdateTagAttributes", "consumes": [ "application/json" ], @@ -875,11 +865,10 @@ }, "delete": { "tags": [ - "AcrTag", - "AcrMetadata" + "Repository" ], "description": "Delete tag", - "operationId": "Tag_Delete", + "operationId": "ContainerRegistryRepository_DeleteTag", "consumes": [ "application/json" ], @@ -912,16 +901,19 @@ "/acr/v1/{name}/_manifests": { "get": { "tags": [ - "AcrManifest", - "AcrMetadata" + "Repository" ], "description": "List manifests of a repository", - "operationId": "Manifests_GetList", + "operationId": "ContainerRegistryRepository_GetManifests", "x-ms-examples": { "Get list of available manifests": { "$ref": "./examples/GetManifestList.json" } }, + "x-ms-pageable": { + "itemName": "manifests", + "nextLinkName": "link" + }, "parameters": [ { "$ref": "#/parameters/ImageName" @@ -938,6 +930,12 @@ ], "responses": { "200": { + "headers": { + "Link": { + "description": "next paginated result", + "type": "string" + } + }, "description": "Returns a list of manifests", "schema": { "$ref": "#/definitions/AcrManifests" @@ -952,14 +950,13 @@ } } }, - "/acr/v1/{name}/_manifests/{reference}": { + "/acr/v1/{name}/_manifests/{digest}": { "get": { "tags": [ - "AcrManifest", - "AcrMetadata" + "Repository" ], "description": "Get manifest attributes", - "operationId": "Manifests_GetAttributes", + "operationId": "ContainerRegistryRepository_GetRegistryArtifactProperties", "x-ms-examples": { "Get manifest attributes": { "$ref": "./examples/GetManifestAttributes.json" @@ -970,7 +967,7 @@ "$ref": "#/parameters/ImageName" }, { - "$ref": "#/parameters/ImageReference" + "$ref": "#/parameters/Digest" } ], "responses": { @@ -990,11 +987,10 @@ }, "patch": { "tags": [ - "AcrManifest", - "AcrMetadata" + "Repository" ], "description": "Update attributes of a manifest", - "operationId": "Manifests_UpdateAttributes", + "operationId": "ContainerRegistryRepository_UpdateManifestAttributes", "consumes": [ "application/json" ], @@ -1008,7 +1004,7 @@ "$ref": "#/parameters/ImageName" }, { - "$ref": "#/parameters/ImageReference" + "$ref": "#/parameters/Digest" }, { "$ref": "#/parameters/RepoValue" @@ -1034,7 +1030,7 @@ "RefreshToken" ], "description": "Exchange AAD tokens for an ACR refresh Token", - "operationId": "RefreshTokens_GetFromExchange", + "operationId": "Authentication_ExchangeAadAccessTokenForAcrRefreshToken", "consumes": [ "application/x-www-form-urlencoded" ], @@ -1045,19 +1041,13 @@ { "$ref": "#/parameters/Service" }, - { - "$ref": "#/parameters/Tenant" - }, - { - "$ref": "#/parameters/RefreshToken" - }, { "$ref": "#/parameters/AccessToken" } ], "responses": { "200": { - "description": "Refresh token acquired", + "description": "ACR refresh token acquired", "schema": { "$ref": "#/definitions/RefreshToken" } @@ -1084,7 +1074,7 @@ "AccessToken" ], "description": "Exchange ACR Refresh token for an ACR Access Token", - "operationId": "AccessTokens_Get", + "operationId": "Authentication_ExchangeAcrRefreshTokenForAcrAccessToken", "consumes": [ "application/x-www-form-urlencoded" ], @@ -1111,6 +1101,7 @@ }, { "name": "refresh_token", + "x-ms-client-name": "acrRefreshToken", "in": "formData", "required": true, "description": "Must be a valid ACR refresh token", @@ -1119,7 +1110,7 @@ ], "responses": { "200": { - "description": "Access token acquired", + "description": "ACR access token acquired", "schema": { "$ref": "#/definitions/AccessToken" } @@ -1137,55 +1128,6 @@ "$ref": "./examples/PostAccessToken.json" } } - }, - "get": { - "tags": [ - "AcrToken", - "AccessToken", - "userLogin" - ], - "description": "Exchange Username, Password and Scope an ACR Access Token", - "operationId": "AccessTokens_GetFromLogin", - "parameters": [ - { - "name": "service", - "in": "query", - "required": true, - "description": "Indicates the name of your Azure container registry.", - "type": "string" - }, - { - "name": "scope", - "in": "query", - "required": true, - "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.", - "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": [] - } - ], - "x-ms-examples": { - "Get Access Token with username and password": { - "$ref": "./examples/GetAccessToken.json" - } - } } } }, @@ -1193,10 +1135,10 @@ "/v2/{name}/blobs/uploads/?mode=resumable": { "post": { "tags": [ - "Layer" + "ContainerRegistryBlob" ], "description": "Initiate a resumable blob upload with an empty request body.", - "operationId": "Blob_StartUpload", + "operationId": "ContainerRegistryBlob_StartUpload", "x-ms-examples": { "Start a blob upload": { "$ref": "./examples/StartBlobUpload.json" @@ -1240,10 +1182,10 @@ "application/octet-stream" ], "tags": [ - "Layer" + "ContainerRegistryBlob" ], "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", + "operationId": "ContainerRegistryBlob_GetChunk", "parameters": [ { "$ref": "#/parameters/ImageName" @@ -1290,7 +1232,7 @@ }, "head": { "tags": [ - "Layer" + "ContainerRegistryBlob" ], "parameters": [ { @@ -1304,7 +1246,7 @@ } ], "description": "Same as GET, except only the headers are returned.", - "operationId": "Blob_CheckChunk", + "operationId": "ContainerRegistryBlob_CheckChunkExists", "x-ms-examples": { "Get headers without blob Chunk": { "$ref": "./examples/CheckBlobChunk.json" @@ -1337,36 +1279,48 @@ }, "definitions": { "RepositoryAttributes": { + "required": [ + "imageName", + "createdTime", + "lastUpdateTime", + "manifestCount", + "tagCount", + "changeableAttributes" + ], + "x-ms-client-name": "RepositoryProperties", "type": "object", "description": "Repository attributes", "properties": { - "registry": { - "type": "string", - "description": "Registry name" - }, "imageName": { "type": "string", - "description": "Image name" + "description": "Image name", + "x-ms-client-name": "name" }, "createdTime": { "type": "string", - "description": "Image created time" + "format": "date-time", + "description": "Image created time", + "x-ms-client-name": "createdOn" }, "lastUpdateTime": { "type": "string", - "description": "Image last update time" + "format": "date-time", + "description": "Image last update time", + "x-ms-client-name": "lastUpdatedOn" }, "manifestCount": { "type": "integer", - "description": "Number of the manifests" + "description": "Number of the manifests", + "x-ms-client-name": "registryArtifactCount" }, "tagCount": { "type": "integer", "description": "Number of the tags" }, "changeableAttributes": { - "description": "Changeable attributes", - "$ref": "#/definitions/ChangeableAttributes" + "description": "Writeable properties of the resource", + "$ref": "#/definitions/ChangeableAttributes", + "x-ms-client-name": "writeableProperties" } }, "example": { @@ -1385,22 +1339,28 @@ } }, "TagList": { + "required": [ + "imageName" + ], "description": "List of tag details", + "x-accessibility": "internal", "properties": { - "registry": { - "type": "string", - "description": "Registry name" - }, "imageName": { "type": "string", - "description": "Image name" + "description": "Image name", + "x-ms-client-name": "repository" }, "tags": { "type": "array", - "description": "List of tag attribute details", + "description": "List of tag attribute details", + "x-ms-client-name": "TagAttributeBases", + "x-accessibility": "internal", "items": { "$ref": "#/definitions/TagAttributesBase" } + }, + "link": { + "type": "string" } }, "example": { @@ -1437,18 +1397,20 @@ } }, "TagAttributes": { + "required": [ + "imageName", + "tag" + ], + "x-ms-client-name": "TagProperties", "description": "Tag attributes", "properties": { - "registry": { - "type": "string", - "description": "Registry name" - }, "imageName": { "type": "string", - "description": "Image name" + "description": "Image name", + "x-ms-client-name": "repository" }, "tag": { - "x-ms-client-name": "attributes", + "x-ms-client-flatten": true, "description": "List of tag attribute details", "$ref": "#/definitions/TagAttributesBase" } @@ -1472,7 +1434,12 @@ } }, "TagAttributesBase": { + "required": [ + "createdTime", + "lastUpdateTime" + ], "description": "Tag attribute details", + "x-accessibility": "internal", "properties": { "name": { "type": "string", @@ -1484,19 +1451,20 @@ }, "createdTime": { "type": "string", - "description": "Tag created time" + "format": "date-time", + "description": "Tag created time", + "x-ms-client-name": "createdOn" }, "lastUpdateTime": { "type": "string", - "description": "Tag last update time" - }, - "signed": { - "type": "boolean", - "description": "Is signed" + "format": "date-time", + "description": "Tag last update time", + "x-ms-client-name": "lastUpdatedOn" }, "changeableAttributes": { "$ref": "#/definitions/ChangeableAttributes", - "description": "Changeable attributes" + "description": "Writeable properties of the resource", + "x-ms-client-name": "writeableProperties" } }, "example": { @@ -1513,27 +1481,51 @@ "lastUpdateTime": "2018-08-10T17:28:44.1082945Z" } }, + "TagOrderBy": { + "type": "string", + "enum": [ + "timedesc", + "timeasc" + ], + "x-ms-enum": { + "name": "TagOrderBy", + "modelAsString": true, + "values": [ + { + "value": "timedesc", + "name": "LastUpdatedOnDescending", + "description": "Order tags by LastUpdatedOn field, from most recently updated to least recently updated." + }, + { + "value": "timeasc", + "name": "LastUpdatedOnAscending", + "description": "Order tags by LastUpdatedOn field, from least recently updated to most recently updated." + } + ] + }, + "x-accessibility": "public" + }, "AcrManifests": { "description": "Manifest attributes", "properties": { - "registry": { - "type": "string", - "description": "Registry name" - }, "imageName": { "type": "string", - "description": "Image name" + "description": "Image name", + "x-ms-client-name": "repository" }, "manifests": { - "x-ms-client-name": "ManifestsAttributes", "type": "array", "description": "List of manifests", "items": { "$ref": "#/definitions/ManifestAttributesBase", "description": "Manifest details" } + }, + "link": { + "type": "string" } }, + "x-accessibility": "internal", "example": { "registry": "registry", "imageName": "imageName", @@ -1586,18 +1578,16 @@ } }, "ManifestAttributes": { + "x-ms-client-name": "RegistryArtifactProperties", "description": "Manifest attributes details", "properties": { - "registry": { - "description": "Registry name", - "type": "string" - }, "imageName": { "description": "Image name", - "type": "string" + "type": "string", + "x-ms-client-name": "repository" }, "manifest": { - "x-ms-client-name": "attributes", + "x-ms-client-flatten": true, "description": "Manifest attributes", "$ref": "#/definitions/ManifestAttributesBase" } @@ -1627,8 +1617,12 @@ } }, "ManifestAttributesBase": { + "required": [ + "digest" + ], "type": "object", "description": "Manifest details", + "x-accessibility": "internal", "properties": { "digest": { "type": "string", @@ -1637,31 +1631,39 @@ "imageSize": { "type": "integer", "format": "int64", - "description": "Image size" + "description": "Image size", + "x-ms-client-name": "size" }, "createdTime": { "type": "string", - "description": "Created time" + "format": "date-time", + "description": "Created time", + "x-ms-client-name": "createdOn" }, "lastUpdateTime": { "type": "string", - "description": "Last update time" + "format": "date-time", + "description": "Last update time", + "x-ms-client-name": "lastUpdatedOn" }, "architecture": { "type": "string", - "description": "CPU architecture" + "description": "CPU architecture", + "x-ms-client-name": "cpuArchitecture" }, "os": { "type": "string", - "description": "Operating system" - }, - "mediaType": { - "type": "string", - "description": "Media type" + "description": "Operating system", + "x-ms-client-name": "operatingSystem" }, - "configMediaType": { - "type": "string", - "description": "Config blob media type" + "references": { + "x-accessibility": "internal", + "type": "array", + "description": "List of manifest attributes details", + "items": { + "$ref": "#/definitions/ManifestAttributes_manifest_references", + "description": "Manifest attributes details" + } }, "tags": { "type": "array", @@ -1673,7 +1675,8 @@ }, "changeableAttributes": { "$ref": "#/definitions/ChangeableAttributes", - "description": "Changeable attributes" + "description": "Writeable properties of the resource", + "x-ms-client-name": "writeableProperties" } }, "example": { @@ -1704,7 +1707,35 @@ "description": "The refresh token to be used for generating access tokens", "type": "string" } - } + }, + "x-accessibility": "internal", + "x-ms-client-name": "AcrRefreshToken" + }, + "ManifestOrderBy": { + "type": "string", + "enum": [ + "timedesc", + "timeasc" + ], + "x-ms-enum": { + "name": "RegistryArtifactOrderBy", + "modelAsString": true, + "values": [ + { + "value": "timedesc", + "name": "LastUpdatedOnDescending", + "description": "Order registry artifacts by LastUpdatedOn field, from most recently updated to least recently updated." + }, + { + "value": "timeasc", + "name": "LastUpdatedOnAscending", + "description": "Order registry artifacts by LastUpdatedOn field, from least recently updated to most recently updated." + } + ] + }, + "default": "none", + "description": "Sort options for ordering registry artifacts in a collection.", + "x-accessibility": "public" }, "AccessToken": { "type": "object", @@ -1713,7 +1744,9 @@ "description": "The access token for performing authenticated requests", "type": "string" } - } + }, + "x-accessibility": "internal", + "x-ms-client-name": "AcrAccessToken" }, "AcrErrors": { "description": "Acr error response describing why the operation failed", @@ -1729,6 +1762,7 @@ }, "RepositoryTags": { "description": "Result of the request to list tags of the image", + "x-accessibility": "internal", "properties": { "name": { "type": "string", @@ -1753,6 +1787,7 @@ }, "ImageSignature": { "description": "Signature of a signed manifest", + "x-accessibility": "internal", "properties": { "header": { "description": "A JSON web signature", @@ -1784,6 +1819,7 @@ }, "JWK": { "description": "A JSON web signature", + "x-accessibility": "internal", "properties": { "jwk": { "$ref": "#/definitions/JWKHeader" @@ -1796,6 +1832,7 @@ }, "JWKHeader": { "description": "JSON web key parameter", + "x-accessibility": "internal", "properties": { "crv": { "type": "string", @@ -1821,6 +1858,7 @@ }, "History": { "description": "A list of unstructured historical data for v1 compatibility", + "x-accessibility": "internal", "properties": { "v1Compatibility": { "type": "string", @@ -1836,13 +1874,16 @@ "properties": { "repositories": { "type": "array", - "x-ms-client-name": "Names", "description": "Repository names", "items": { "type": "string" } + }, + "link": { + "type": "string" } }, + "x-accessibility": "internal", "example": { "repositories": [ "production/alpine", @@ -1851,6 +1892,7 @@ } }, "DeletedRepository": { + "x-ms-client-name": "DeleteRepositoryResult", "description": "Deleted repository", "properties": { "manifestsDeleted": { @@ -1858,14 +1900,16 @@ "description": "SHA of the deleted image", "items": { "type": "string" - } + }, + "x-ms-client-name": "deletedRegistryArtifactDigests" }, "tagsDeleted": { "type": "array", "description": "Tag of the deleted image", "items": { "type": "string" - } + }, + "x-ms-client-name": "deletedTags" } } }, @@ -1888,6 +1932,7 @@ }, "FsLayer": { "description": "Image layer information", + "x-accessibility": "internal", "properties": { "blobSum": { "type": "string", @@ -1900,6 +1945,7 @@ }, "Descriptor": { "description": "Docker V2 image layer descriptor including config and layers", + "x-accessibility": "internal", "properties": { "mediaType": { "type": "string", @@ -1933,22 +1979,28 @@ } }, "ChangeableAttributes": { + "description": "Changeable attributes", + "x-ms-client-name": "ContentProperties", "properties": { "deleteEnabled": { "type": "boolean", - "description": "Delete enabled" + "description": "Delete enabled", + "x-ms-client-name": "canDelete" }, "writeEnabled": { "type": "boolean", - "description": "Write enabled" + "description": "Write enabled", + "x-ms-client-name": "canWrite" }, "listEnabled": { "type": "boolean", - "description": "List enabled" + "description": "List enabled", + "x-ms-client-name": "canList" }, "readEnabled": { "type": "boolean", - "description": "Read enabled" + "description": "Read enabled", + "x-ms-client-name": "canRead" } }, "example": { @@ -1971,6 +2023,11 @@ } }, "ManifestAttributes_manifest_references": { + "required": [ + "digest", + "architecture", + "os" + ], "description": "Manifest attributes details", "properties": { "digest": { @@ -1979,11 +2036,13 @@ }, "architecture": { "type": "string", - "description": "CPU architecture" + "description": "CPU architecture", + "x-ms-client-name": "cpuArchitecture" }, "os": { "type": "string", - "description": "Operating system" + "description": "Operating system", + "x-ms-client-name": "operatingSystem" } }, "example": { @@ -2026,6 +2085,7 @@ }, "ManifestChangeableAttributes": { "description": "Changeable attributes", + "x-accessibility": "internal", "properties": { "deleteEnabled": { "type": "boolean", @@ -2063,6 +2123,7 @@ }, "Manifest": { "description": "Returns the requested manifest file", + "x-accessibility": "internal", "properties": { "schemaVersion": { "type": "integer", @@ -2072,6 +2133,7 @@ }, "ManifestWrapper": { "description": "Returns the requested manifest file", + "x-accessibility": "internal", "properties": { "mediaType": { "type": "string", @@ -2142,6 +2204,7 @@ "ManifestList": { "x-ms-discriminator-value": "application/vnd.docker.distribution.manifest.list.v2+json", "description": "Returns the requested Docker multi-arch-manifest file", + "x-accessibility": "internal", "properties": { "mediaType": { "type": "string", @@ -2162,6 +2225,7 @@ ] }, "ManifestListAttributes": { + "x-accessibility": "internal", "properties": { "mediaType": { "type": "string", @@ -2183,6 +2247,7 @@ }, "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", + "x-accessibility": "internal", "properties": { "architecture": { "type": "string", @@ -2218,6 +2283,7 @@ }, "V2Manifest": { "x-ms-discriminator-value": "application/vnd.docker.distribution.manifest.v2+json", + "x-accessibility": "internal", "description": "Returns the requested Docker V2 Manifest file", "properties": { "mediaType": { @@ -2260,6 +2326,7 @@ }, "OCIManifest": { "x-ms-discriminator-value": "application/vnd.oci.image.manifest.v1+json", + "x-accessibility": "internal", "description": "Returns the requested OCI Manifest file", "properties": { "config": { @@ -2285,6 +2352,7 @@ }, "OCIIndex": { "x-ms-discriminator-value": "application/vnd.oci.image.index.v1+json", + "x-accessibility": "internal", "description": "Returns the requested OCI index file", "properties": { "manifests": { @@ -2307,6 +2375,7 @@ "V1Manifest": { "description": "Returns the requested V1 manifest file", "x-ms-discriminator-value": "application/vnd.oci.image.manifest.v1+json", + "x-accessibility": "internal", "properties": { "architecture": { "type": "string", @@ -2350,6 +2419,7 @@ }, "Annotations": { "description": "Additional information provided through arbitrary metadata.", + "x-accessibility": "internal", "type": "object", "x-nullable": true, "additionalProperties": { @@ -2463,6 +2533,14 @@ "type": "string", "x-ms-parameter-location": "method" }, + "DigestReference": { + "name": "reference", + "in": "path", + "description": "Digest of a BLOB", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, "BlobQueryDigest": { "name": "digest", "in": "query", @@ -2515,16 +2593,15 @@ }, "Grant_type": { "name": "grant_type", - "description": "Can take a value of access_token_refresh_token, or access_token, or refresh_token", + "description": "Can take a value of access_token", "type": "string", "in": "formData", "required": true, "enum": [ - "access_token_refresh_token", - "access_token", - "refresh_token" + "access_token" ], - "x-ms-parameter-location": "method" + "x-ms-parameter-location": "method", + "x-accessibility": "internal" }, "Service": { "name": "service", @@ -2560,8 +2637,9 @@ }, "AccessToken": { "name": "access_token", + "x-ms-client-name": "aadAccesstoken", "in": "formData", - "required": false, + "required": true, "description": "AAD access token, mandatory when grant_type is access_token_refresh_token or access_token.", "type": "string", "x-ms-parameter-location": "method" From dbd1dccfe2802010a0abc76e250ccbd55f4f2837 Mon Sep 17 00:00:00 2001 From: Anne Loomis Thompson Date: Fri, 2 Apr 2021 11:29:51 -0700 Subject: [PATCH 03/43] update PATCH return types --- .../preview/2019-08-15/containerregistry.json | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json index cf83bf82d0c7..c1f3822b34f3 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json @@ -725,7 +725,10 @@ ], "responses": { "200": { - "description": "The attributes are updated" + "description": "The attributes are updated", + "schema": { + "$ref": "#/definitions/RepositoryAttributes" + } }, "default": { "description": "ACR error response describing why the operation failed.", @@ -853,7 +856,10 @@ ], "responses": { "200": { - "description": "The attributes are updated" + "description": "The attributes are updated", + "schema": { + "$ref": "#/definitions/TagAttributes" + } }, "default": { "description": "ACR error response describing why the operation failed.", @@ -1012,7 +1018,10 @@ ], "responses": { "200": { - "description": "The attributes are updated" + "description": "The attributes are updated", + "schema": { + "$ref": "#/definitions/ManifestAttributes" + } }, "default": { "description": "ACR error response describing why the operation failed.", From 099d7917ac3751cfc7c8cdb7da8d78c4f155ba84 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Fri, 2 Apr 2021 16:27:17 -0700 Subject: [PATCH 04/43] Add a preliminary readme.md --- .../Azure.ContainerRegistry/readme.md | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md new file mode 100644 index 000000000000..4d68b52c21b8 --- /dev/null +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md @@ -0,0 +1,185 @@ +# ContainerRegistry + +> see https://aka.ms/autorest + +This is the AutoRest configuration file for ContainerRegistry. + +--- + +## Getting Started + +To build the SDK for ContainerRegistry, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: + +> `autorest` + +To see additional help and options, run: + +> `autorest --help` +--- + +## Configuration + +### Basic Information + +These are the global settings for the ContainerRegistry API. + +``` yaml +# common +openapi-type: data-plane +tag: package-2019-08 +``` +### Tag: package-2019-08 + +These settings apply only when `--tag=package-2019-08` is specified on the command line. + +``` yaml $(tag) == 'package-2019-08' +input-file: +- preview/2019-08-15/containerregistry.json +# This override adds support for directly passing in the acquired location link (Since it starts with /) +# It also caters to passing it without / as some implementations may remove the initial / . +directive: + - from: source-file-csharp + where: $ + transform: >- + return $. + replace( /_url = _url.Replace\("\{nextBlobUuidLink\}", location\);/g, "_url = _url.Replace(location.StartsWith(\"/\") ? \"/{nextBlobUuidLink}\" : \"{nextBlobUuidLink}\", location);") +``` + +--- + +## Swagger to SDK + +This section describes what SDK should be generated by the automatic system. +This is not used by Autorest itself. + +``` yaml $(swagger-to-sdk) +swagger-to-sdk: + - repo: azure-sdk-for-net + - repo: azure-sdk-for-java + - repo: azure-sdk-for-js + - repo: azure-sdk-for-python +``` + +## C# + +These settings apply only when `--csharp` is specified on the command line. +Please also specify `--csharp-sdks-folder=`. + +``` yaml $(csharp) +csharp: + model-namespace: false +directive: + - from: swagger-document + where: $.definitions.DeletedRepository + transform: > + $["x-accessibility"] = "internal" + + - from: swagger-document + where: $.definitions.ManifestAttributes_manifest_references + transform: > + $["x-accessibility"] = "internal" +``` + +## Java + +These settings apply only when `--java` is specified on the command line. + +``` yaml $(java) +java: true +``` + +## TypeScript + +These settings apply only when `--typescript` is specified on the command line. + +``` yaml $(typescript) +typescript: true +v3: true +package-name: "@azure/container-registry" +title: GeneratedClient +description: Container Registry Client +generate-metadata: false +license-header: MICROSOFT_MIT_NO_VERSION +output-folder: ../ +source-code-folder-path: ./src/generated +add-credentials: false +override-client-name: GeneratedClient +disable-async-iterators: true +hide-clients: true +use-core-v2: true +use-extension: + "@autorest/typescript": "C:/github/autorest.typescript" +``` + +## Python +These settings apply only when `--python` is specified on the command line. + +``` yaml $(python) +python: true +``` + +## Suppression + +``` yaml +directive: + - suppress: DefinitionsPropertiesNamesCamelCase + from: containerregistry.json + where: $.definitions.AccessToken.properties.access_token + reason: Property name is used in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/registry/spec/auth/oauth/ + - suppress: DefinitionsPropertiesNamesCamelCase + from: containerregistry.json + where: $.definitions.RefreshToken.properties.refresh_token + reason: Property name is used in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/registry/spec/auth/oauth/ + - suppress: LROStatusCodesReturnTypeSchema + reason: No content is returned by put Manifest in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/registry/spec/api/#put-manifest + from: containerregistry.json + where: $.paths["/v2/{name}/manifests/{reference}"].put.responses["201"] + - suppress: LROStatusCodesReturnTypeSchema + reason: No content is returned by put End Upload in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/v17.12/registry/spec/api/ + from: containerregistry.json + where: $.paths["/{nextBlobUuidLink}"].put.responses["201"] + - suppress: DefinitionsPropertiesNamesCamelCase + reason: These default values are specified by the Open Container Initiative. Used for cross compatibility. Specifics https://github.com/opencontainers/image-spec/blob/master/annotations.md#rules + from: containerregistry.json + where: + - $.definitions.Platform.properties["os.version"] + - $.definitions.Platform.properties["os.features"] + - $.definitions.Annotations.properties["org.opencontainers.image.created"] + - $.definitions.Annotations.properties["org.opencontainers.image.authors"] + - $.definitions.Annotations.properties["org.opencontainers.image.url"] + - $.definitions.Annotations.properties["org.opencontainers.image.documentation"] + - $.definitions.Annotations.properties["org.opencontainers.image.source"] + - $.definitions.Annotations.properties["org.opencontainers.image.version"] + - $.definitions.Annotations.properties["org.opencontainers.image.revision"] + - $.definitions.Annotations.properties["org.opencontainers.image.vendor"] + - $.definitions.Annotations.properties["org.opencontainers.image.licenses"] + - $.definitions.Annotations.properties["org.opencontainers.image.ref.name"] + - $.definitions.Annotations.properties["org.opencontainers.image.title"] + - $.definitions.Annotations.properties["org.opencontainers.image.description"] +``` + +## Multi-API/Profile support for AutoRest v3 generators + +AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files. + +This block is updated by an automatic script. Edits may be lost! + +``` yaml $(tag) == 'all-api-versions' /* autogenerated */ +# include the azure profile definitions from the standard location +require: $(this-folder)/../../../profiles/readme.md + +# all the input files across all versions +input-file: + - $(this-folder)/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json + - $(this-folder)/Microsoft.ContainerRegistry/preview/2019-07-15/containerregistry.json + - $(this-folder)/Microsoft.ContainerRegistry/preview/2018-08-10/containerregistry.json + +``` + +If there are files that should not be in the `all-api-versions` set, +uncomment the `exclude-file` section below and add the file paths. + +``` yaml $(tag) == 'all-api-versions' +#exclude-file: +# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json +``` From 56e1e8f660d3fd84e7fd6fc2f80ab28b1fedeeff Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 12 Apr 2021 10:49:28 -0700 Subject: [PATCH 05/43] Fix CI Avocado failures - rename folder to be consistent with api version - remove GetAccessToken.json example as the endpoint was removed in this swagger --- .../containerregistry.json | 0 .../examples/CancelBlobUpload.json | 0 .../examples/CheckBlob.json | 0 .../examples/CheckBlobChunk.json | 0 .../examples/CreateManifest.json | 0 .../examples/DeleteAcrRepository.json | 0 .../examples/DeleteBlob.json | 0 .../examples/DeleteManifest.json | 0 .../examples/DeleteTag.json | 0 .../examples/EndBlobUpload.json | 0 .../examples/GetBlob.json | 0 .../examples/GetBlobChunk.json | 0 .../examples/GetBlobStatus.json | 0 .../examples/GetDockerRegistryV2Support.json | 0 .../examples/GetManifest.json | 0 .../examples/GetManifestAttributes.json | 0 .../examples/GetManifestList.json | 0 .../examples/GetRepositoryAttributes.json | 0 .../examples/GetRepositoryList.json | 0 .../examples/GetTagAttributes.json | 0 .../examples/GetTagList.json | 0 .../examples/MountBlob.json | 0 .../examples/PostAccessToken.json | 0 .../examples/PostRefreshToken.json | 0 .../examples/StartBlobUpload.json | 0 .../examples/UpdateManifestAttributes.json | 0 .../examples/UpdateRepositoryAttributes.json | 0 .../examples/UpdateTagAttributes.json | 0 .../examples/UploadBlob.json | 0 .../2019-08-15/examples/GetAccessToken.json | 14 ------- .../Azure.ContainerRegistry/readme.md | 41 ++++--------------- 31 files changed, 9 insertions(+), 46 deletions(-) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/containerregistry.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/CancelBlobUpload.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/CheckBlob.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/CheckBlobChunk.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/CreateManifest.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/DeleteAcrRepository.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/DeleteBlob.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/DeleteManifest.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/DeleteTag.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/EndBlobUpload.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetBlob.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetBlobChunk.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetBlobStatus.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetDockerRegistryV2Support.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetManifest.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetManifestAttributes.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetManifestList.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetRepositoryAttributes.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetRepositoryList.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetTagAttributes.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/GetTagList.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/MountBlob.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/PostAccessToken.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/PostRefreshToken.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/StartBlobUpload.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/UpdateManifestAttributes.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/UpdateRepositoryAttributes.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/UpdateTagAttributes.json (100%) rename specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/{2019-08-15 => 2019-08-15-preview}/examples/UploadBlob.json (100%) delete mode 100644 specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetAccessToken.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/containerregistry.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CancelBlobUpload.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/CancelBlobUpload.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CancelBlobUpload.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/CancelBlobUpload.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlob.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/CheckBlob.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlob.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/CheckBlob.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlobChunk.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/CheckBlobChunk.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CheckBlobChunk.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/CheckBlobChunk.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CreateManifest.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/CreateManifest.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/CreateManifest.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/CreateManifest.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteAcrRepository.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteAcrRepository.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteAcrRepository.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteAcrRepository.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteBlob.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteBlob.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteBlob.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteBlob.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteManifest.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteManifest.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteManifest.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteManifest.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteTag.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteTag.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/DeleteTag.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteTag.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/EndBlobUpload.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/EndBlobUpload.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/EndBlobUpload.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/EndBlobUpload.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlob.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetBlob.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlob.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetBlob.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobChunk.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetBlobChunk.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobChunk.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetBlobChunk.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobStatus.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetBlobStatus.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetBlobStatus.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetBlobStatus.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetDockerRegistryV2Support.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetDockerRegistryV2Support.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetDockerRegistryV2Support.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetDockerRegistryV2Support.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifest.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifest.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifest.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifest.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestAttributes.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestAttributes.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestAttributes.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestList.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestList.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetManifestList.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestList.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetRepositoryAttributes.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryAttributes.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetRepositoryAttributes.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryList.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetRepositoryList.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetRepositoryList.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetRepositoryList.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagAttributes.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagAttributes.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagAttributes.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagList.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagList.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetTagList.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagList.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/MountBlob.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/MountBlob.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/MountBlob.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/MountBlob.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostAccessToken.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/PostAccessToken.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostAccessToken.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/PostAccessToken.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostRefreshToken.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/PostRefreshToken.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/PostRefreshToken.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/PostRefreshToken.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/StartBlobUpload.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/StartBlobUpload.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/StartBlobUpload.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/StartBlobUpload.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateManifestAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateManifestAttributes.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateManifestAttributes.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateManifestAttributes.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateRepositoryAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateRepositoryAttributes.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateRepositoryAttributes.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateRepositoryAttributes.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateTagAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateTagAttributes.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UpdateTagAttributes.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateTagAttributes.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UploadBlob.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UploadBlob.json similarity index 100% rename from specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/UploadBlob.json rename to specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UploadBlob.json diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetAccessToken.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetAccessToken.json deleted file mode 100644 index 416fd08ca49b..000000000000 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15/examples/GetAccessToken.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "parameters": { - "url": "acrapi.azurecr-test.io", - "service": "someregistry.azurecr.io", - "scope": "registry:catalog:*" - }, - "responses": { - "200": { - "body": { - "access_token": "eyJ0eXAiOiJKJhbGcigdCI6IkN0ZlFaOExlLTMejlnIiwidGlkIjoiNzbmOTgWItMmQ3Y2QwMTFkYjQ3Ii..." - } - } - } -} diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md index 4d68b52c21b8..0d60236704c2 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md @@ -25,6 +25,7 @@ These are the global settings for the ContainerRegistry API. ``` yaml # common +title: ContainerRegistryClient openapi-type: data-plane tag: package-2019-08 ``` @@ -34,31 +35,11 @@ These settings apply only when `--tag=package-2019-08` is specified on the comma ``` yaml $(tag) == 'package-2019-08' input-file: -- preview/2019-08-15/containerregistry.json -# This override adds support for directly passing in the acquired location link (Since it starts with /) -# It also caters to passing it without / as some implementations may remove the initial / . -directive: - - from: source-file-csharp - where: $ - transform: >- - return $. - replace( /_url = _url.Replace\("\{nextBlobUuidLink\}", location\);/g, "_url = _url.Replace(location.StartsWith(\"/\") ? \"/{nextBlobUuidLink}\" : \"{nextBlobUuidLink}\", location);") + - $(this-folder)/preview/2019-08-15-preview/containerregistry.json ``` --- - -## Swagger to SDK - -This section describes what SDK should be generated by the automatic system. -This is not used by Autorest itself. - -``` yaml $(swagger-to-sdk) -swagger-to-sdk: - - repo: azure-sdk-for-net - - repo: azure-sdk-for-java - - repo: azure-sdk-for-js - - repo: azure-sdk-for-python -``` +# Code Generation ## C# @@ -66,15 +47,15 @@ These settings apply only when `--csharp` is specified on the command line. Please also specify `--csharp-sdks-folder=`. ``` yaml $(csharp) -csharp: - model-namespace: false +csharp: true +model-namespace: false directive: - - from: swagger-document + - from: containerregistry.json where: $.definitions.DeletedRepository transform: > $["x-accessibility"] = "internal" - - from: swagger-document + - from: containerregistry.json where: $.definitions.ManifestAttributes_manifest_references transform: > $["x-accessibility"] = "internal" @@ -96,7 +77,6 @@ These settings apply only when `--typescript` is specified on the command line. typescript: true v3: true package-name: "@azure/container-registry" -title: GeneratedClient description: Container Registry Client generate-metadata: false license-header: MICROSOFT_MIT_NO_VERSION @@ -166,14 +146,11 @@ This block is updated by an automatic script. Edits may be lost! ``` yaml $(tag) == 'all-api-versions' /* autogenerated */ # include the azure profile definitions from the standard location -require: $(this-folder)/../../../profiles/readme.md +require: $(this-folder)/../../../../profiles/readme.md # all the input files across all versions input-file: - - $(this-folder)/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json - - $(this-folder)/Microsoft.ContainerRegistry/preview/2019-07-15/containerregistry.json - - $(this-folder)/Microsoft.ContainerRegistry/preview/2018-08-10/containerregistry.json - + - $(this-folder)/preview/2019-08-15-preview/containerregistry.json ``` If there are files that should not be in the `all-api-versions` set, From b71903815cb7dce5421498c498d3b5dcfc8d3422 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 19 Apr 2021 15:29:44 -0700 Subject: [PATCH 06/43] Add timeasc and timedesc to custom-words.txt also remove sections unrelated to Track 2 SDK --- custom-words.txt | 4 +- .../Azure.ContainerRegistry/readme.md | 78 ------------------- 2 files changed, 3 insertions(+), 79 deletions(-) diff --git a/custom-words.txt b/custom-words.txt index 51bde359afed..8ac36af97416 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -1846,6 +1846,8 @@ Tful Tfvc tileset tilesets +timeasc +timedesc timeframe timegrain timeseries @@ -2114,4 +2116,4 @@ ziplist Zoho zoneinfo zset -BMSAAD \ No newline at end of file +BMSAAD diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md index 0d60236704c2..180899216a53 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md @@ -6,17 +6,6 @@ This is the AutoRest configuration file for ContainerRegistry. --- -## Getting Started - -To build the SDK for ContainerRegistry, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: - -> `autorest` - -To see additional help and options, run: - -> `autorest --help` ---- - ## Configuration ### Basic Information @@ -44,7 +33,6 @@ input-file: ## C# These settings apply only when `--csharp` is specified on the command line. -Please also specify `--csharp-sdks-folder=`. ``` yaml $(csharp) csharp: true @@ -86,9 +74,6 @@ add-credentials: false override-client-name: GeneratedClient disable-async-iterators: true hide-clients: true -use-core-v2: true -use-extension: - "@autorest/typescript": "C:/github/autorest.typescript" ``` ## Python @@ -97,66 +82,3 @@ These settings apply only when `--python` is specified on the command line. ``` yaml $(python) python: true ``` - -## Suppression - -``` yaml -directive: - - suppress: DefinitionsPropertiesNamesCamelCase - from: containerregistry.json - where: $.definitions.AccessToken.properties.access_token - reason: Property name is used in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/registry/spec/auth/oauth/ - - suppress: DefinitionsPropertiesNamesCamelCase - from: containerregistry.json - where: $.definitions.RefreshToken.properties.refresh_token - reason: Property name is used in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/registry/spec/auth/oauth/ - - suppress: LROStatusCodesReturnTypeSchema - reason: No content is returned by put Manifest in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/registry/spec/api/#put-manifest - from: containerregistry.json - where: $.paths["/v2/{name}/manifests/{reference}"].put.responses["201"] - - suppress: LROStatusCodesReturnTypeSchema - reason: No content is returned by put End Upload in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/v17.12/registry/spec/api/ - from: containerregistry.json - where: $.paths["/{nextBlobUuidLink}"].put.responses["201"] - - suppress: DefinitionsPropertiesNamesCamelCase - reason: These default values are specified by the Open Container Initiative. Used for cross compatibility. Specifics https://github.com/opencontainers/image-spec/blob/master/annotations.md#rules - from: containerregistry.json - where: - - $.definitions.Platform.properties["os.version"] - - $.definitions.Platform.properties["os.features"] - - $.definitions.Annotations.properties["org.opencontainers.image.created"] - - $.definitions.Annotations.properties["org.opencontainers.image.authors"] - - $.definitions.Annotations.properties["org.opencontainers.image.url"] - - $.definitions.Annotations.properties["org.opencontainers.image.documentation"] - - $.definitions.Annotations.properties["org.opencontainers.image.source"] - - $.definitions.Annotations.properties["org.opencontainers.image.version"] - - $.definitions.Annotations.properties["org.opencontainers.image.revision"] - - $.definitions.Annotations.properties["org.opencontainers.image.vendor"] - - $.definitions.Annotations.properties["org.opencontainers.image.licenses"] - - $.definitions.Annotations.properties["org.opencontainers.image.ref.name"] - - $.definitions.Annotations.properties["org.opencontainers.image.title"] - - $.definitions.Annotations.properties["org.opencontainers.image.description"] -``` - -## Multi-API/Profile support for AutoRest v3 generators - -AutoRest V3 generators require the use of `--tag=all-api-versions` to select api files. - -This block is updated by an automatic script. Edits may be lost! - -``` yaml $(tag) == 'all-api-versions' /* autogenerated */ -# include the azure profile definitions from the standard location -require: $(this-folder)/../../../../profiles/readme.md - -# all the input files across all versions -input-file: - - $(this-folder)/preview/2019-08-15-preview/containerregistry.json -``` - -If there are files that should not be in the `all-api-versions` set, -uncomment the `exclude-file` section below and add the file paths. - -``` yaml $(tag) == 'all-api-versions' -#exclude-file: -# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json -``` From 24dc979306900050d522b9732c8b07e020ddd294 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Tue, 20 Apr 2021 09:21:03 -0700 Subject: [PATCH 07/43] Update typescript customization --- .../data-plane/Azure.ContainerRegistry/readme.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md index 180899216a53..b829f430d534 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md @@ -23,8 +23,7 @@ tag: package-2019-08 These settings apply only when `--tag=package-2019-08` is specified on the command line. ``` yaml $(tag) == 'package-2019-08' -input-file: - - $(this-folder)/preview/2019-08-15-preview/containerregistry.json +input-file: preview/2019-08-15-preview/containerregistry.json ``` --- @@ -65,6 +64,7 @@ These settings apply only when `--typescript` is specified on the command line. typescript: true v3: true package-name: "@azure/container-registry" +title: GeneratedClient description: Container Registry Client generate-metadata: false license-header: MICROSOFT_MIT_NO_VERSION @@ -74,6 +74,9 @@ add-credentials: false override-client-name: GeneratedClient disable-async-iterators: true hide-clients: true +use-core-v2: true +use-extension: + "@autorest/typescript": "C:/github/autorest.typescript" ``` ## Python From b78c1bc520f38232cfeed4e4171b6e579b7b9b87 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Tue, 20 Apr 2021 10:46:40 -0700 Subject: [PATCH 08/43] Fix required-ness for some properties Fix casing aadAccesstoken => aadAccessToken --- .../preview/2019-08-15-preview/containerregistry.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index c1f3822b34f3..fc1acde5d973 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1349,7 +1349,8 @@ }, "TagList": { "required": [ - "imageName" + "imageName", + "tags" ], "description": "List of tag details", "x-accessibility": "internal", @@ -1444,8 +1445,11 @@ }, "TagAttributesBase": { "required": [ + "name", + "digest", "createdTime", - "lastUpdateTime" + "lastUpdateTime", + "changeableAttributes" ], "description": "Tag attribute details", "x-accessibility": "internal", @@ -2646,7 +2650,7 @@ }, "AccessToken": { "name": "access_token", - "x-ms-client-name": "aadAccesstoken", + "x-ms-client-name": "aadAccessToken", "in": "formData", "required": true, "description": "AAD access token, mandatory when grant_type is access_token_refresh_token or access_token.", From 0fcd264af3d50b1db2cc68fe7eb79aa319c9d981 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Tue, 20 Apr 2021 10:50:01 -0700 Subject: [PATCH 09/43] Run prettier --- .../preview/2019-08-15-preview/containerregistry.json | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index fc1acde5d973..8d8e27a1e8d8 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -149,7 +149,6 @@ "201": { "description": "The manifest is updated", "schema": {}, - "headers": { "Docker-Content-Digest": { "type": "string", @@ -1362,7 +1361,7 @@ }, "tags": { "type": "array", - "description": "List of tag attribute details", + "description": "List of tag attribute details", "x-ms-client-name": "TagAttributeBases", "x-accessibility": "internal", "items": { @@ -1515,9 +1514,9 @@ "description": "Order tags by LastUpdatedOn field, from least recently updated to most recently updated." } ] - }, - "x-accessibility": "public" }, + "x-accessibility": "public" + }, "AcrManifests": { "description": "Manifest attributes", "properties": { @@ -1688,8 +1687,8 @@ }, "changeableAttributes": { "$ref": "#/definitions/ChangeableAttributes", - "description": "Writeable properties of the resource", - "x-ms-client-name": "writeableProperties" + "description": "Writeable properties of the resource", + "x-ms-client-name": "writeableProperties" } }, "example": { From 5cdb3c1b1fea7a84f3409e7820b7ad945e4098ac Mon Sep 17 00:00:00 2001 From: Anne Loomis Thompson Date: Thu, 22 Apr 2021 14:53:31 -0700 Subject: [PATCH 10/43] updates to swagger for Beta 2 API --- .../2019-08-15-preview/containerregistry.json | 223 ++++++++++++++++-- 1 file changed, 203 insertions(+), 20 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 8d8e27a1e8d8..91f148dbfa3a 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -36,10 +36,6 @@ "name": "ContainerRegistry", "description": "Registry Operations" }, - { - "name": "ContainerRegistryRepository", - "description": "Repository Operations" - }, { "name": "ContainerRegistryBlob", "description": "Blob Operations" @@ -88,7 +84,7 @@ "$ref": "./examples/GetManifest.json" } }, - "operationId": "ContainerRegistryRepository_GetManifest", + "operationId": "ContainerRegistry_GetManifest", "parameters": [ { "$ref": "#/parameters/ImageName" @@ -133,7 +129,7 @@ "consumes": [ "application/vnd.docker.distribution.manifest.v2+json" ], - "operationId": "ContainerRegistryRepository_CreateManifest", + "operationId": "ContainerRegistry_CreateManifest", "parameters": [ { "$ref": "#/parameters/ImageName" @@ -183,7 +179,7 @@ "$ref": "./examples/DeleteManifest.json" } }, - "operationId": "ContainerRegistryRepository_DeleteManifest", + "operationId": "ContainerRegistry_DeleteManifest", "parameters": [ { "$ref": "#/parameters/ImageName" @@ -637,7 +633,7 @@ "Registry" ], "description": "Get repository attributes", - "operationId": "ContainerRegistryRepository_GetProperties", + "operationId": "ContainerRegistry_GetProperties", "x-ms-examples": { "Get details of repository": { "$ref": "./examples/GetRepositoryAttributes.json" @@ -699,7 +695,7 @@ "Registry" ], "description": "Update the attribute identified by `name` where `reference` is the name of the repository.", - "operationId": "ContainerRegistryRepository_SetProperties", + "operationId": "ContainerRegistry_SetProperties", "x-ms-examples": { "Update repository attributes": { "$ref": "./examples/UpdateRepositoryAttributes.json" @@ -744,7 +740,7 @@ "Repository" ], "description": "List tags of a repository", - "operationId": "ContainerRegistryRepository_GetTags", + "operationId": "ContainerRegistry_GetTags", "x-ms-examples": { "Get tags of a repository": { "$ref": "./examples/GetTagList.json" @@ -799,7 +795,7 @@ "Repository" ], "description": "Get tag attributes by tag", - "operationId": "ContainerRegistryRepository_GetTagProperties", + "operationId": "ContainerRegistry_GetTagProperties", "x-ms-examples": { "Get tag attributes": { "$ref": "./examples/GetTagAttributes.json" @@ -833,7 +829,7 @@ "Repository" ], "description": "Update tag attributes", - "operationId": "ContainerRegistryRepository_UpdateTagAttributes", + "operationId": "ContainerRegistry_UpdateTagAttributes", "consumes": [ "application/json" ], @@ -873,7 +869,7 @@ "Repository" ], "description": "Delete tag", - "operationId": "ContainerRegistryRepository_DeleteTag", + "operationId": "ContainerRegistry_DeleteTag", "consumes": [ "application/json" ], @@ -909,7 +905,7 @@ "Repository" ], "description": "List manifests of a repository", - "operationId": "ContainerRegistryRepository_GetManifests", + "operationId": "ContainerRegistry_GetManifests", "x-ms-examples": { "Get list of available manifests": { "$ref": "./examples/GetManifestList.json" @@ -961,7 +957,7 @@ "Repository" ], "description": "Get manifest attributes", - "operationId": "ContainerRegistryRepository_GetRegistryArtifactProperties", + "operationId": "ContainerRegistry_GetRegistryArtifactProperties", "x-ms-examples": { "Get manifest attributes": { "$ref": "./examples/GetManifestAttributes.json" @@ -995,7 +991,7 @@ "Repository" ], "description": "Update attributes of a manifest", - "operationId": "ContainerRegistryRepository_UpdateManifestAttributes", + "operationId": "ContainerRegistry_UpdateManifestAttributes", "consumes": [ "application/json" ], @@ -1512,6 +1508,193 @@ "value": "timeasc", "name": "LastUpdatedOnAscending", "description": "Order tags by LastUpdatedOn field, from least recently updated to most recently updated." + } + ] + }, + "x-accessibility": "public" +}, +"ArtifactArchitecture": { + "type": "string", + "enum": [ + "386", + "amd64", + "arm", + "arm64", + "mips", + "mipsle", + "mips64", + "mips64le", + "ppc64", + "ppc641e", + "riscv64", + "s390x", + "wasm" + ], + "x-ms-enum": { + "name": "ArtifactArchitecture", + "modelAsString": true, + "values": [ + { + "value": "386", + "name": "I386", + "description": "" + }, + { + "value": "amd64", + "name": "Amd64", + "description": "" + }, + { + "value": "arm", + "name": "Arm", + "description": "" + }, + { + "value": "arm64", + "name": "Arm64", + "description": "" + }, + { + "value": "mips", + "name": "Mips64", + "description": "" + }, + { + "value": "mipsle", + "name": "Mips64", + "description": "" + }, + { + "value": "mips64", + "name": "Mips64", + "description": "" + }, + { + "value": "mips64le", + "name": "Mips64le", + "description": "" + }, + { + "value": "ppc64", + "name": "Ppc64", + "description": "" + }, + { + "value": "ppc641e", + "name": "Ppc641e", + "description": "" + }, + { + "value": "riscv64", + "name": "Riscv64", + "description": "" + }, + { + "value": "s390x", + "name": "S390x", + "description": "" + }, + { + "value": "wasm", + "name": "Wasm", + "description": "" + } + ] + }, + "default": "none", + "x-accessibility": "public" +}, +"ArtifactOperatingSystem": { + "type": "string", + "enum": [ + "aix", + "android", + "darwin", + "dragonfly", + "freebsd", + "illumos", + "ios", + "js", + "linux", + "netbsd", + "openbsd", + "plan9", + "solaris", + "windows" + ], + "x-ms-enum": { + "name": "ArtifactOperatingSystem", + "modelAsString": true, + "values": [ + { + "value": "aix", + "name": "Aix", + "description": "" + }, + { + "value": "android", + "name": "Android", + "description": "" + }, + { + "value": "darwin", + "name": "Darwin", + "description": "" + }, + { + "value": "dragonfly", + "name": "Dragonfly", + "description": "" + }, + { + "value": "freebsd", + "name": "FreeBsd", + "description": "" + }, + { + "value": "illumos", + "name": "Illumos", + "description": "" + }, + { + "value": "ios", + "name": "IOs", + "description": "" + }, + { + "value": "js", + "name": "Js", + "description": "" + }, + { + "value": "linux", + "name": "Linux", + "description": "" + }, + { + "value": "netbsd", + "name": "NetBsd", + "description": "" + }, + { + "value": "openbsd", + "name": "OpenBsd", + "description": "" + }, + { + "value": "plan9", + "name": "Plan9", + "description": "" + }, + { + "value": "solaris", + "name": "Solaris", + "description": "" + }, + { + "value": "windows", + "name": "Windows", + "description": "" } ] }, @@ -1590,7 +1773,7 @@ } }, "ManifestAttributes": { - "x-ms-client-name": "RegistryArtifactProperties", + "x-ms-client-name": "ManifestProperties", "description": "Manifest attributes details", "properties": { "imageName": { @@ -1661,7 +1844,7 @@ "architecture": { "type": "string", "description": "CPU architecture", - "x-ms-client-name": "cpuArchitecture" + "x-ms-client-name": "architecture" }, "os": { "type": "string", @@ -1730,7 +1913,7 @@ "timeasc" ], "x-ms-enum": { - "name": "RegistryArtifactOrderBy", + "name": "ManifestOrderBy", "modelAsString": true, "values": [ { @@ -1913,7 +2096,7 @@ "items": { "type": "string" }, - "x-ms-client-name": "deletedRegistryArtifactDigests" + "x-ms-client-name": "deletedManifests" }, "tagsDeleted": { "type": "array", From 69b205cf23b4dd8a8ad78aee73ac5bae51116232 Mon Sep 17 00:00:00 2001 From: Anne Loomis Thompson Date: Fri, 23 Apr 2021 09:19:38 -0700 Subject: [PATCH 11/43] bug fix in arch enum --- .../2019-08-15-preview/containerregistry.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 91f148dbfa3a..8534818660c1 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1556,12 +1556,12 @@ }, { "value": "mips", - "name": "Mips64", + "name": "Mips", "description": "" }, { "value": "mipsle", - "name": "Mips64", + "name": "MipsLe", "description": "" }, { @@ -1571,7 +1571,7 @@ }, { "value": "mips64le", - "name": "Mips64le", + "name": "Mips64Le", "description": "" }, { @@ -1580,13 +1580,13 @@ "description": "" }, { - "value": "ppc641e", - "name": "Ppc641e", + "value": "ppc64le", + "name": "Ppc64Le", "description": "" }, { "value": "riscv64", - "name": "Riscv64", + "name": "RiscV64", "description": "" }, { From d69d9bdde06a44b4e058a09adcd9395101c76b47 Mon Sep 17 00:00:00 2001 From: Anne Loomis Thompson Date: Fri, 23 Apr 2021 10:22:13 -0700 Subject: [PATCH 12/43] updates per apiview feedback --- .../2019-08-15-preview/containerregistry.json | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 8534818660c1..ef99a77a1660 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -957,7 +957,7 @@ "Repository" ], "description": "Get manifest attributes", - "operationId": "ContainerRegistry_GetRegistryArtifactProperties", + "operationId": "ContainerRegistry_GetManifestProperties", "x-ms-examples": { "Get manifest attributes": { "$ref": "./examples/GetManifestAttributes.json" @@ -990,8 +990,8 @@ "tags": [ "Repository" ], - "description": "Update attributes of a manifest", - "operationId": "ContainerRegistry_UpdateManifestAttributes", + "description": "Update properties of a manifest", + "operationId": "ContainerRegistry_UpdateManifestProperties", "consumes": [ "application/json" ], @@ -1314,8 +1314,7 @@ }, "manifestCount": { "type": "integer", - "description": "Number of the manifests", - "x-ms-client-name": "registryArtifactCount" + "description": "Number of the manifests" }, "tagCount": { "type": "integer", @@ -1406,7 +1405,7 @@ "imageName", "tag" ], - "x-ms-client-name": "TagProperties", + "x-ms-client-name": "ArtifactTagProperties", "description": "Tag attributes", "properties": { "imageName": { @@ -1492,13 +1491,18 @@ "TagOrderBy": { "type": "string", "enum": [ + "none", "timedesc", "timeasc" ], "x-ms-enum": { "name": "TagOrderBy", - "modelAsString": true, "values": [ + { + "value": "none", + "name": "None", + "description": "Do not provide an orderby value in the request." + }, { "value": "timedesc", "name": "LastUpdatedOnDescending", @@ -1773,13 +1777,13 @@ } }, "ManifestAttributes": { - "x-ms-client-name": "ManifestProperties", + "x-ms-client-name": "ArtifactManifestProperties", "description": "Manifest attributes details", "properties": { "imageName": { - "description": "Image name", + "description": "Repository name", "type": "string", - "x-ms-client-name": "repository" + "x-ms-client-name": "repositoryName" }, "manifest": { "x-ms-client-flatten": true, @@ -1909,27 +1913,32 @@ "ManifestOrderBy": { "type": "string", "enum": [ + "none", "timedesc", "timeasc" ], "x-ms-enum": { "name": "ManifestOrderBy", - "modelAsString": true, "values": [ + { + "value": "none", + "name": "None", + "description": "Do not provide an orderby value in the request." + }, { "value": "timedesc", "name": "LastUpdatedOnDescending", - "description": "Order registry artifacts by LastUpdatedOn field, from most recently updated to least recently updated." + "description": "Order manifests by LastUpdatedOn field, from most recently updated to least recently updated." }, { "value": "timeasc", "name": "LastUpdatedOnAscending", - "description": "Order registry artifacts by LastUpdatedOn field, from least recently updated to most recently updated." + "description": "Order manifest by LastUpdatedOn field, from least recently updated to most recently updated." } ] }, "default": "none", - "description": "Sort options for ordering registry artifacts in a collection.", + "description": "Sort options for ordering manifests in a collection.", "x-accessibility": "public" }, "AccessToken": { From 96bdb14b80d5542ea6982cd766be19e7c8c58c86 Mon Sep 17 00:00:00 2001 From: Anne Loomis Thompson Date: Fri, 23 Apr 2021 13:09:46 -0700 Subject: [PATCH 13/43] updates to manifest properties --- .../preview/2019-08-15-preview/containerregistry.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index ef99a77a1660..6abf92afad0b 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1846,14 +1846,16 @@ "x-ms-client-name": "lastUpdatedOn" }, "architecture": { - "type": "string", + "$ref": "#/definitions/ArtifactArchitecture", "description": "CPU architecture", - "x-ms-client-name": "architecture" + "x-ms-client-name": "architecture", + "x-nullable": true }, "os": { - "type": "string", + "$ref": "#/definitions/ArtifactOperatingSystem", "description": "Operating system", - "x-ms-client-name": "operatingSystem" + "x-ms-client-name": "operatingSystem", + "x-nullable": true }, "references": { "x-accessibility": "internal", From 5f06905bc9def9dc111af115ec68f5237b444f83 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Tue, 27 Apr 2021 16:23:33 -0700 Subject: [PATCH 14/43] Move some customization into swagger --- .../2019-08-15-preview/containerregistry.json | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 6abf92afad0b..603a09a40fd0 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1297,32 +1297,38 @@ "properties": { "imageName": { "type": "string", + "readOnly": true, "description": "Image name", "x-ms-client-name": "name" }, "createdTime": { "type": "string", + "readOnly": true, "format": "date-time", "description": "Image created time", "x-ms-client-name": "createdOn" }, "lastUpdateTime": { "type": "string", + "readOnly": true, "format": "date-time", "description": "Image last update time", "x-ms-client-name": "lastUpdatedOn" }, "manifestCount": { "type": "integer", + "readOnly": true, "description": "Number of the manifests" }, "tagCount": { "type": "integer", + "readOnly": true, "description": "Number of the tags" }, "changeableAttributes": { "description": "Writeable properties of the resource", "$ref": "#/definitions/ChangeableAttributes", + "readOnly": true, "x-ms-client-name": "writeableProperties" } }, @@ -1410,12 +1416,14 @@ "properties": { "imageName": { "type": "string", + "readOnly": true, "description": "Image name", "x-ms-client-name": "repository" }, "tag": { "x-ms-client-flatten": true, "description": "List of tag attribute details", + "readOnly": true, "$ref": "#/definitions/TagAttributesBase" } }, @@ -1450,20 +1458,24 @@ "properties": { "name": { "type": "string", + "readOnly": true, "description": "Tag name" }, "digest": { "type": "string", + "readOnly": true, "description": "Tag digest" }, "createdTime": { "type": "string", + "readOnly": true, "format": "date-time", "description": "Tag created time", "x-ms-client-name": "createdOn" }, "lastUpdateTime": { "type": "string", + "readOnly": true, "format": "date-time", "description": "Tag last update time", "x-ms-client-name": "lastUpdatedOn" @@ -1471,6 +1483,7 @@ "changeableAttributes": { "$ref": "#/definitions/ChangeableAttributes", "description": "Writeable properties of the resource", + "readOnly": true, "x-ms-client-name": "writeableProperties" } }, @@ -1783,10 +1796,12 @@ "imageName": { "description": "Repository name", "type": "string", + "readOnly": true, "x-ms-client-name": "repositoryName" }, "manifest": { "x-ms-client-flatten": true, + "readOnly": true, "description": "Manifest attributes", "$ref": "#/definitions/ManifestAttributesBase" } @@ -1825,22 +1840,26 @@ "properties": { "digest": { "type": "string", + "readOnly": true, "description": "Manifest" }, "imageSize": { "type": "integer", + "readOnly": true, "format": "int64", "description": "Image size", "x-ms-client-name": "size" }, "createdTime": { "type": "string", + "readOnly": true, "format": "date-time", "description": "Created time", "x-ms-client-name": "createdOn" }, "lastUpdateTime": { "type": "string", + "readOnly": true, "format": "date-time", "description": "Last update time", "x-ms-client-name": "lastUpdatedOn" @@ -1849,17 +1868,20 @@ "$ref": "#/definitions/ArtifactArchitecture", "description": "CPU architecture", "x-ms-client-name": "architecture", + "readOnly": true, "x-nullable": true }, "os": { "$ref": "#/definitions/ArtifactOperatingSystem", "description": "Operating system", "x-ms-client-name": "operatingSystem", + "readOnly": true, "x-nullable": true }, "references": { "x-accessibility": "internal", "type": "array", + "readOnly": true, "description": "List of manifest attributes details", "items": { "$ref": "#/definitions/ManifestAttributes_manifest_references", @@ -1868,6 +1890,7 @@ }, "tags": { "type": "array", + "readOnly": true, "description": "List of tags", "items": { "type": "string", @@ -1877,6 +1900,7 @@ "changeableAttributes": { "$ref": "#/definitions/ChangeableAttributes", "description": "Writeable properties of the resource", + "readOnly": true, "x-ms-client-name": "writeableProperties" } }, @@ -2103,6 +2127,7 @@ "properties": { "manifestsDeleted": { "type": "array", + "readOnly": true, "description": "SHA of the deleted image", "items": { "type": "string" @@ -2111,6 +2136,7 @@ }, "tagsDeleted": { "type": "array", + "readOnly": true, "description": "Tag of the deleted image", "items": { "type": "string" @@ -2234,6 +2260,7 @@ "architecture", "os" ], + "x-accessibility": "internal", "description": "Manifest attributes details", "properties": { "digest": { From 4e2c8e4cb34415de37d9bfea477f9b34e5cfb335 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Fri, 30 Apr 2021 12:25:15 -0700 Subject: [PATCH 15/43] Undo client name customization for `architecture` Now that we use `architecture` in the new API design. --- .../preview/2019-08-15-preview/containerregistry.json | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 603a09a40fd0..783af8d053f1 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1867,7 +1867,6 @@ "architecture": { "$ref": "#/definitions/ArtifactArchitecture", "description": "CPU architecture", - "x-ms-client-name": "architecture", "readOnly": true, "x-nullable": true }, @@ -2269,8 +2268,7 @@ }, "architecture": { "type": "string", - "description": "CPU architecture", - "x-ms-client-name": "cpuArchitecture" + "description": "CPU architecture" }, "os": { "type": "string", From 40e8bf1504ed672e86027b240dddd9ca94a15d4c Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Fri, 30 Apr 2021 13:31:15 -0700 Subject: [PATCH 16/43] Update arch and os types and set readOnly: true --- .../preview/2019-08-15-preview/containerregistry.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 783af8d053f1..828a53b392f9 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -2264,14 +2264,17 @@ "properties": { "digest": { "type": "string", + "readOnly": true, "description": "Manifest digest" }, "architecture": { - "type": "string", + "$ref": "#/definitions/ArtifactArchitecture", + "readOnly": true, "description": "CPU architecture" }, "os": { - "type": "string", + "$ref": "#/definitions/ArtifactOperatingSystem", + "readOnly": true, "description": "Operating system", "x-ms-client-name": "operatingSystem" } From b32177d9c30b9c3ec1eaad4d22bb1a3194bb631a Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Thu, 6 May 2021 14:33:46 -0400 Subject: [PATCH 17/43] make change for grant type = password --- .../preview/2019-08-15/containerregistry.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json b/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json index 711ad07777ff..71b38f667062 100644 --- a/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json +++ b/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json @@ -1096,8 +1096,10 @@ "required": true, "type": "string", "enum": [ - "refresh_token" - ] + "refresh_token", + "password" + ], + "x-ms-client-default": "refresh_token" }, { "$ref": "#/parameters/Service" From 3002654477e26553f67ca23c2ea8b0ad9892030b Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Thu, 6 May 2021 15:07:19 -0400 Subject: [PATCH 18/43] editing the correct swagger --- .../preview/2019-08-15-preview/containerregistry.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 828a53b392f9..2c04341392f0 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1090,8 +1090,10 @@ "required": true, "type": "string", "enum": [ - "refresh_token" - ] + "refresh_token", + "password" + ], + "x-ms-client-default": "refresh_token" }, { "$ref": "#/parameters/Service" From 5f46ed2f7b443e16d6ee8286f62e686063d08c05 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Thu, 6 May 2021 15:09:05 -0400 Subject: [PATCH 19/43] undoing changes to the wrong swagger --- .../preview/2019-08-15/containerregistry.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json b/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json index 71b38f667062..711ad07777ff 100644 --- a/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json +++ b/specification/containerregistry/data-plane/Microsoft.ContainerRegistry/preview/2019-08-15/containerregistry.json @@ -1096,10 +1096,8 @@ "required": true, "type": "string", "enum": [ - "refresh_token", - "password" - ], - "x-ms-client-default": "refresh_token" + "refresh_token" + ] }, { "$ref": "#/parameters/Service" From 73800e82e3afb8f2966c2caa1dd8dc451a7c03e5 Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Thu, 6 May 2021 18:20:41 -0400 Subject: [PATCH 20/43] adding internal enum for grant type --- .../preview/2019-08-15-preview/containerregistry.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 2c04341392f0..056a96918b1c 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1093,6 +1093,10 @@ "refresh_token", "password" ], + "x-ms-enum": { + "name": "TokenGrantType" + }, + "x-accessibility" : "internal", "x-ms-client-default": "refresh_token" }, { From 4af460b1ba17b339869775ca9fb1df3ebfe7c15a Mon Sep 17 00:00:00 2001 From: seankane-msft Date: Thu, 6 May 2021 18:52:59 -0400 Subject: [PATCH 21/43] moving grant_type to the end of the parameters for .net --- .../2019-08-15-preview/containerregistry.json | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 056a96918b1c..4e01391393d5 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1083,22 +1083,6 @@ "application/x-www-form-urlencoded" ], "parameters": [ - { - "name": "grant_type", - "in": "formData", - "description": "Grant type is expected to be refresh_token", - "required": true, - "type": "string", - "enum": [ - "refresh_token", - "password" - ], - "x-ms-enum": { - "name": "TokenGrantType" - }, - "x-accessibility" : "internal", - "x-ms-client-default": "refresh_token" - }, { "$ref": "#/parameters/Service" }, @@ -1116,6 +1100,22 @@ "required": true, "description": "Must be a valid ACR refresh token", "type": "string" + }, + { + "name": "grant_type", + "in": "formData", + "description": "Grant type is expected to be refresh_token", + "required": true, + "type": "string", + "enum": [ + "refresh_token", + "password" + ], + "x-ms-enum": { + "name": "TokenGrantType" + }, + "x-accessibility" : "internal", + "x-ms-client-default": "refresh_token" } ], "responses": { From 0abaa3b8b64ec21eca0ba8f44dd0bb1fb67e2758 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Thu, 13 May 2021 11:47:41 -0700 Subject: [PATCH 22/43] Incorporate Anne's beta.3 swagger update and make ManifestAttributes.manifest required so its flattened `digest` property can have their proper required-ness. --- .../2019-08-15-preview/containerregistry.json | 106 ++++++++++++++---- 1 file changed, 83 insertions(+), 23 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 4e01391393d5..26200fa8e839 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -709,13 +709,7 @@ "$ref": "#/parameters/ImageName" }, { - "name": "value", - "in": "body", - "description": "Repository attribute value", - "required": false, - "schema": { - "$ref": "#/definitions/ChangeableAttributes" - } + "$ref": "#/parameters/RepositoryAttributeValue" } ], "responses": { @@ -846,7 +840,7 @@ "$ref": "#/parameters/TagReference" }, { - "$ref": "#/parameters/RepoValue" + "$ref": "#/parameters/TagAttributeValue" } ], "responses": { @@ -1008,7 +1002,7 @@ "$ref": "#/parameters/Digest" }, { - "$ref": "#/parameters/RepoValue" + "$ref": "#/parameters/ManifestAttributeValue" } ], "responses": { @@ -1333,7 +1327,7 @@ }, "changeableAttributes": { "description": "Writeable properties of the resource", - "$ref": "#/definitions/ChangeableAttributes", + "$ref": "#/definitions/RepositoryChangeableAttributes", "readOnly": true, "x-ms-client-name": "writeableProperties" } @@ -1487,7 +1481,7 @@ "x-ms-client-name": "lastUpdatedOn" }, "changeableAttributes": { - "$ref": "#/definitions/ChangeableAttributes", + "$ref": "#/definitions/TagChangeableAttributes", "description": "Writeable properties of the resource", "readOnly": true, "x-ms-client-name": "writeableProperties" @@ -1796,6 +1790,9 @@ } }, "ManifestAttributes": { + "required": [ + "manifest" + ], "x-ms-client-name": "ArtifactManifestProperties", "description": "Manifest attributes details", "properties": { @@ -1903,7 +1900,7 @@ } }, "changeableAttributes": { - "$ref": "#/definitions/ChangeableAttributes", + "$ref": "#/definitions/ManifestChangeableAttributes", "description": "Writeable properties of the resource", "readOnly": true, "x-ms-client-name": "writeableProperties" @@ -2215,9 +2212,9 @@ "digest": "sha256:5d20c808ce198565ff70b3ed23a991dd49afac45dece63474b27ce6ed036adc6" } }, - "ChangeableAttributes": { + "TagChangeableAttributes": { "description": "Changeable attributes", - "x-ms-client-name": "ContentProperties", + "x-ms-client-name": "TagWriteableProperties", "properties": { "deleteEnabled": { "type": "boolean", @@ -2325,31 +2322,37 @@ }, "ManifestChangeableAttributes": { "description": "Changeable attributes", - "x-accessibility": "internal", + "x-ms-client-name": "ManifestWriteableProperties", "properties": { "deleteEnabled": { "type": "boolean", - "description": "Delete enabled" + "description": "Delete enabled", + "x-ms-client-name": "canDelete" }, "writeEnabled": { "type": "boolean", - "description": "Write enabled" + "description": "Write enabled", + "x-ms-client-name": "canWrite" }, "listEnabled": { "type": "boolean", - "description": "List enabled" + "description": "List enabled", + "x-ms-client-name": "canList" }, "readEnabled": { "type": "boolean", - "description": "Read enabled" + "description": "Read enabled", + "x-ms-client-name": "canRead" }, "quarantineState": { "type": "string", - "description": "Quarantine state" + "description": "Quarantine state", + "x-accessibility": "internal" }, "quarantineDetails": { "type": "string", - "description": "Quarantine details" + "description": "Quarantine details", + "x-accessibility": "internal" } }, "example": { @@ -2361,6 +2364,43 @@ "writeEnabled": true } }, + "RepositoryChangeableAttributes": { + "description": "Changeable attributes for Repository", + "x-ms-client-name": "RepositoryWriteableProperties", + "properties": { + "deleteEnabled": { + "type": "boolean", + "description": "Delete enabled", + "x-ms-client-name": "canDelete" + }, + "writeEnabled": { + "type": "boolean", + "description": "Write enabled", + "x-ms-client-name": "canWrite" + }, + "listEnabled": { + "type": "boolean", + "description": "List enabled", + "x-ms-client-name": "canList" + }, + "readEnabled": { + "type": "boolean", + "description": "Read enabled", + "x-ms-client-name": "canRead" + }, + "teleportEnabled": { + "type": "boolean", + "description": "Enables Teleport functionality on new images in the repository improving Container startup performance" + } + }, + "example": { + "readEnabled": true, + "listEnabled": true, + "deleteEnabled": true, + "writeEnabled": true, + "teleportEnabled": true + } + }, "Manifest": { "description": "Returns the requested manifest file", "x-accessibility": "internal", @@ -2789,13 +2829,33 @@ "type": "string", "x-ms-parameter-location": "method" }, - "RepoValue": { + "RepositoryAttributeValue": { "name": "value", "in": "body", "description": "Repository attribute value", "required": false, "schema": { - "$ref": "#/definitions/ChangeableAttributes" + "$ref": "#/definitions/RepositoryChangeableAttributes" + }, + "x-ms-parameter-location": "method" + }, + "TagAttributeValue": { + "name": "value", + "in": "body", + "description": "Tag attribute value", + "required": false, + "schema": { + "$ref": "#/definitions/TagChangeableAttributes" + }, + "x-ms-parameter-location": "method" + }, + "ManifestAttributeValue": { + "name": "value", + "in": "body", + "description": "Manifest attribute value", + "required": false, + "schema": { + "$ref": "#/definitions/ManifestChangeableAttributes" }, "x-ms-parameter-location": "method" }, From 82c504dd1e1eae673a810c4b13361e350e7d0b95 Mon Sep 17 00:00:00 2001 From: Anne Loomis Thompson Date: Thu, 13 May 2021 15:18:13 -0700 Subject: [PATCH 23/43] small name changes --- .../preview/2019-08-15-preview/containerregistry.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 26200fa8e839..e113c38f2055 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1418,7 +1418,7 @@ "type": "string", "readOnly": true, "description": "Image name", - "x-ms-client-name": "repository" + "x-ms-client-name": "repositoryName" }, "tag": { "x-ms-client-flatten": true, @@ -1675,12 +1675,12 @@ }, { "value": "ios", - "name": "IOs", + "name": "iOS", "description": "" }, { "value": "js", - "name": "Js", + "name": "JS", "description": "" }, { From 2523b2ab13289ba640aa621951bc41073d3bfd3f Mon Sep 17 00:00:00 2001 From: Anne Loomis Thompson Date: Fri, 14 May 2021 10:28:22 -0700 Subject: [PATCH 24/43] updates to separate out ArtifactManifestReference --- .../preview/2019-08-15-preview/containerregistry.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index e113c38f2055..adc9cc7afb66 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1881,10 +1881,10 @@ "x-nullable": true }, "references": { - "x-accessibility": "internal", "type": "array", "readOnly": true, - "description": "List of manifest attributes details", + "description": "List of manifests referenced by this manifest list. List will be empty if this manifest is not a manifest list.", + "x-ms-client-name": "manifestReferences", "items": { "$ref": "#/definitions/ManifestAttributes_manifest_references", "description": "Manifest attributes details" @@ -2262,7 +2262,7 @@ "architecture", "os" ], - "x-accessibility": "internal", + "x-ms-client-name": "ArtifactManifestReference", "description": "Manifest attributes details", "properties": { "digest": { From 7d61610b5b54f21de3c95b64c341c7bde385c994 Mon Sep 17 00:00:00 2001 From: Anne Loomis Thompson Date: Mon, 17 May 2021 12:58:47 -0700 Subject: [PATCH 25/43] flatten writeable property types; add registry property back --- .../2019-08-15-preview/containerregistry.json | 47 ++++++++++++++++--- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index adc9cc7afb66..8379f10dc85c 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1284,6 +1284,7 @@ "definitions": { "RepositoryAttributes": { "required": [ + "registry", "imageName", "createdTime", "lastUpdateTime", @@ -1295,6 +1296,12 @@ "type": "object", "description": "Repository attributes", "properties": { + "registry": { + "type": "string", + "readOnly": true, + "description": "Registry login server name. This is likely to be similar to {registry-name}.azurecr.io", + "x-ms-client-name": "registryLoginServer" + }, "imageName": { "type": "string", "readOnly": true, @@ -1328,8 +1335,7 @@ "changeableAttributes": { "description": "Writeable properties of the resource", "$ref": "#/definitions/RepositoryChangeableAttributes", - "readOnly": true, - "x-ms-client-name": "writeableProperties" + "x-ms-client-flatten": true } }, "example": { @@ -1349,12 +1355,18 @@ }, "TagList": { "required": [ + "registry", "imageName", "tags" ], "description": "List of tag details", "x-accessibility": "internal", "properties": { + "registry": { + "type": "string", + "description": "Registry login server name. This is likely to be similar to {registry-name}.azurecr.io", + "x-ms-client-name": "RegistryLoginServer" + }, "imageName": { "type": "string", "description": "Image name", @@ -1408,12 +1420,19 @@ }, "TagAttributes": { "required": [ + "registry", "imageName", "tag" ], "x-ms-client-name": "ArtifactTagProperties", "description": "Tag attributes", "properties": { + "registry": { + "type": "string", + "readOnly": true, + "description": "Registry login server name. This is likely to be similar to {registry-name}.azurecr.io", + "x-ms-client-name": "registryLoginServer" + }, "imageName": { "type": "string", "readOnly": true, @@ -1483,8 +1502,7 @@ "changeableAttributes": { "$ref": "#/definitions/TagChangeableAttributes", "description": "Writeable properties of the resource", - "readOnly": true, - "x-ms-client-name": "writeableProperties" + "x-ms-client-flatten": true } }, "example": { @@ -1720,6 +1738,11 @@ "AcrManifests": { "description": "Manifest attributes", "properties": { + "registry": { + "type": "string", + "description": "Registry login server name. This is likely to be similar to {registry-name}.azurecr.io", + "x-ms-client-name": "registryLoginServer" + }, "imageName": { "type": "string", "description": "Image name", @@ -1796,6 +1819,12 @@ "x-ms-client-name": "ArtifactManifestProperties", "description": "Manifest attributes details", "properties": { + "registry": { + "description": "Registry login server name. This is likely to be similar to {registry-name}.azurecr.io", + "readOnly": true, + "type": "string", + "x-ms-client-name": "registryLoginServer" + }, "imageName": { "description": "Repository name", "type": "string", @@ -1835,7 +1864,9 @@ }, "ManifestAttributesBase": { "required": [ - "digest" + "digest", + "createdTime", + "lastUpdateTime" ], "type": "object", "description": "Manifest details", @@ -1902,8 +1933,7 @@ "changeableAttributes": { "$ref": "#/definitions/ManifestChangeableAttributes", "description": "Writeable properties of the resource", - "readOnly": true, - "x-ms-client-name": "writeableProperties" + "x-ms-client-flatten": true } }, "example": { @@ -2215,6 +2245,7 @@ "TagChangeableAttributes": { "description": "Changeable attributes", "x-ms-client-name": "TagWriteableProperties", + "x-accessibility": "internal", "properties": { "deleteEnabled": { "type": "boolean", @@ -2323,6 +2354,7 @@ "ManifestChangeableAttributes": { "description": "Changeable attributes", "x-ms-client-name": "ManifestWriteableProperties", + "x-accessibility": "internal", "properties": { "deleteEnabled": { "type": "boolean", @@ -2367,6 +2399,7 @@ "RepositoryChangeableAttributes": { "description": "Changeable attributes for Repository", "x-ms-client-name": "RepositoryWriteableProperties", + "x-accessibility": "internal", "properties": { "deleteEnabled": { "type": "boolean", From cd283e32ca0e4374fb9b5971403ec546782892fa Mon Sep 17 00:00:00 2001 From: Pallavi Taneja Date: Mon, 24 May 2021 10:45:45 -0700 Subject: [PATCH 26/43] update the delete methods --- .../2019-08-15-preview/containerregistry.json | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 8379f10dc85c..cb01665c8d96 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -192,6 +192,9 @@ "202": { "description": "The manifest has been deleted" }, + "404": { + "description": "The manifest was not found" + }, "default": { "description": "ACR error response describing why the operation failed.", "schema": { @@ -677,10 +680,10 @@ ], "responses": { "202": { - "description": "The repository is deleted", - "schema": { - "$ref": "#/definitions/DeletedRepository" - } + "description": "The repository is deleted" + }, + "404": { + "description": "The repository was not found" }, "default": { "description": "ACR error response describing why the operation failed.", @@ -884,6 +887,9 @@ "202": { "description": "The tag is deleted" }, + "404": { + "description": "The tag was not found" + }, "default": { "description": "ACR error response describing why the operation failed.", "schema": { @@ -3084,4 +3090,4 @@ "x-ms-skip-url-encoding": true } } -} +} \ No newline at end of file From 4eba58a49bfd3a3e51219c90f583521391596218 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 24 May 2021 14:58:14 -0700 Subject: [PATCH 27/43] Remove property required-ness as they are used for input and cannot be used together with "readOnly" --- .../2019-08-15-preview/containerregistry.json | 41 +------------------ 1 file changed, 1 insertion(+), 40 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index cb01665c8d96..e1809deb01f7 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1289,15 +1289,6 @@ }, "definitions": { "RepositoryAttributes": { - "required": [ - "registry", - "imageName", - "createdTime", - "lastUpdateTime", - "manifestCount", - "tagCount", - "changeableAttributes" - ], "x-ms-client-name": "RepositoryProperties", "type": "object", "description": "Repository attributes", @@ -1360,11 +1351,6 @@ } }, "TagList": { - "required": [ - "registry", - "imageName", - "tags" - ], "description": "List of tag details", "x-accessibility": "internal", "properties": { @@ -1425,11 +1411,6 @@ } }, "TagAttributes": { - "required": [ - "registry", - "imageName", - "tag" - ], "x-ms-client-name": "ArtifactTagProperties", "description": "Tag attributes", "properties": { @@ -1471,13 +1452,6 @@ } }, "TagAttributesBase": { - "required": [ - "name", - "digest", - "createdTime", - "lastUpdateTime", - "changeableAttributes" - ], "description": "Tag attribute details", "x-accessibility": "internal", "properties": { @@ -1819,9 +1793,6 @@ } }, "ManifestAttributes": { - "required": [ - "manifest" - ], "x-ms-client-name": "ArtifactManifestProperties", "description": "Manifest attributes details", "properties": { @@ -1869,11 +1840,6 @@ } }, "ManifestAttributesBase": { - "required": [ - "digest", - "createdTime", - "lastUpdateTime" - ], "type": "object", "description": "Manifest details", "x-accessibility": "internal", @@ -2294,11 +2260,6 @@ } }, "ManifestAttributes_manifest_references": { - "required": [ - "digest", - "architecture", - "os" - ], "x-ms-client-name": "ArtifactManifestReference", "description": "Manifest attributes details", "properties": { @@ -3090,4 +3051,4 @@ "x-ms-skip-url-encoding": true } } -} \ No newline at end of file +} From ccc990988cf6d5d351fcac230028c4b7cdcbcf46 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 24 May 2021 15:00:27 -0700 Subject: [PATCH 28/43] Run prettier --- .../2019-08-15-preview/containerregistry.json | 308 +++++++++--------- 1 file changed, 154 insertions(+), 154 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index e1809deb01f7..8364c17fd7a0 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -698,7 +698,7 @@ "Registry" ], "description": "Update the attribute identified by `name` where `reference` is the name of the repository.", - "operationId": "ContainerRegistry_SetProperties", + "operationId": "ContainerRegistry_SetProperties", "x-ms-examples": { "Update repository attributes": { "$ref": "./examples/UpdateRepositoryAttributes.json" @@ -712,7 +712,7 @@ "$ref": "#/parameters/ImageName" }, { - "$ref": "#/parameters/RepositoryAttributeValue" + "$ref": "#/parameters/RepositoryAttributeValue" } ], "responses": { @@ -1114,7 +1114,7 @@ "x-ms-enum": { "name": "TokenGrantType" }, - "x-accessibility" : "internal", + "x-accessibility": "internal", "x-ms-client-default": "refresh_token" } ], @@ -1523,14 +1523,14 @@ "value": "timeasc", "name": "LastUpdatedOnAscending", "description": "Order tags by LastUpdatedOn field, from least recently updated to most recently updated." - } + } ] + }, + "x-accessibility": "public" }, - "x-accessibility": "public" -}, -"ArtifactArchitecture": { - "type": "string", - "enum": [ + "ArtifactArchitecture": { + "type": "string", + "enum": [ "386", "amd64", "arm", @@ -1544,84 +1544,84 @@ "riscv64", "s390x", "wasm" - ], - "x-ms-enum": { + ], + "x-ms-enum": { "name": "ArtifactArchitecture", "modelAsString": true, "values": [ - { - "value": "386", - "name": "I386", - "description": "" - }, - { - "value": "amd64", - "name": "Amd64", - "description": "" - }, - { - "value": "arm", - "name": "Arm", - "description": "" - }, - { - "value": "arm64", - "name": "Arm64", - "description": "" - }, - { - "value": "mips", - "name": "Mips", - "description": "" - }, - { - "value": "mipsle", - "name": "MipsLe", - "description": "" - }, - { - "value": "mips64", - "name": "Mips64", - "description": "" - }, - { - "value": "mips64le", - "name": "Mips64Le", - "description": "" - }, - { - "value": "ppc64", - "name": "Ppc64", - "description": "" - }, - { - "value": "ppc64le", - "name": "Ppc64Le", - "description": "" - }, - { - "value": "riscv64", - "name": "RiscV64", - "description": "" - }, - { - "value": "s390x", - "name": "S390x", - "description": "" - }, - { - "value": "wasm", - "name": "Wasm", - "description": "" - } + { + "value": "386", + "name": "I386", + "description": "" + }, + { + "value": "amd64", + "name": "Amd64", + "description": "" + }, + { + "value": "arm", + "name": "Arm", + "description": "" + }, + { + "value": "arm64", + "name": "Arm64", + "description": "" + }, + { + "value": "mips", + "name": "Mips", + "description": "" + }, + { + "value": "mipsle", + "name": "MipsLe", + "description": "" + }, + { + "value": "mips64", + "name": "Mips64", + "description": "" + }, + { + "value": "mips64le", + "name": "Mips64Le", + "description": "" + }, + { + "value": "ppc64", + "name": "Ppc64", + "description": "" + }, + { + "value": "ppc64le", + "name": "Ppc64Le", + "description": "" + }, + { + "value": "riscv64", + "name": "RiscV64", + "description": "" + }, + { + "value": "s390x", + "name": "S390x", + "description": "" + }, + { + "value": "wasm", + "name": "Wasm", + "description": "" + } ] + }, + "default": "none", + "x-accessibility": "public" }, - "default": "none", - "x-accessibility": "public" -}, -"ArtifactOperatingSystem": { - "type": "string", - "enum": [ + "ArtifactOperatingSystem": { + "type": "string", + "enum": [ "aix", "android", "darwin", @@ -1636,80 +1636,80 @@ "plan9", "solaris", "windows" - ], - "x-ms-enum": { + ], + "x-ms-enum": { "name": "ArtifactOperatingSystem", "modelAsString": true, "values": [ - { - "value": "aix", - "name": "Aix", - "description": "" - }, - { - "value": "android", - "name": "Android", - "description": "" - }, - { - "value": "darwin", - "name": "Darwin", - "description": "" - }, - { - "value": "dragonfly", - "name": "Dragonfly", - "description": "" - }, - { - "value": "freebsd", - "name": "FreeBsd", - "description": "" - }, - { - "value": "illumos", - "name": "Illumos", - "description": "" - }, - { - "value": "ios", - "name": "iOS", - "description": "" - }, - { - "value": "js", - "name": "JS", - "description": "" - }, - { - "value": "linux", - "name": "Linux", - "description": "" - }, - { - "value": "netbsd", - "name": "NetBsd", - "description": "" - }, - { - "value": "openbsd", - "name": "OpenBsd", - "description": "" - }, - { - "value": "plan9", - "name": "Plan9", - "description": "" - }, - { - "value": "solaris", - "name": "Solaris", - "description": "" - }, - { - "value": "windows", - "name": "Windows", - "description": "" + { + "value": "aix", + "name": "Aix", + "description": "" + }, + { + "value": "android", + "name": "Android", + "description": "" + }, + { + "value": "darwin", + "name": "Darwin", + "description": "" + }, + { + "value": "dragonfly", + "name": "Dragonfly", + "description": "" + }, + { + "value": "freebsd", + "name": "FreeBsd", + "description": "" + }, + { + "value": "illumos", + "name": "Illumos", + "description": "" + }, + { + "value": "ios", + "name": "iOS", + "description": "" + }, + { + "value": "js", + "name": "JS", + "description": "" + }, + { + "value": "linux", + "name": "Linux", + "description": "" + }, + { + "value": "netbsd", + "name": "NetBsd", + "description": "" + }, + { + "value": "openbsd", + "name": "OpenBsd", + "description": "" + }, + { + "value": "plan9", + "name": "Plan9", + "description": "" + }, + { + "value": "solaris", + "name": "Solaris", + "description": "" + }, + { + "value": "windows", + "name": "Windows", + "description": "" } ] }, @@ -2136,7 +2136,7 @@ "items": { "type": "string" }, - "x-ms-client-name": "deletedManifests" + "x-ms-client-name": "deletedManifests" }, "tagsDeleted": { "type": "array", From 5dd9f6c998c0a347005d06c0724dd2aba3786550 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 24 May 2021 15:13:07 -0700 Subject: [PATCH 29/43] Fix linting errors in examples --- .../examples/DeleteAcrRepository.json | 11 ++---- .../examples/DeleteManifest.json | 3 +- .../examples/GetManifest.json | 35 +------------------ .../examples/GetManifestAttributes.json | 2 +- .../examples/GetManifestList.json | 4 --- .../examples/GetTagAttributes.json | 1 - .../examples/GetTagList.json | 2 -- .../examples/PostRefreshToken.json | 2 +- .../examples/UpdateTagAttributes.json | 19 +++++++++- 9 files changed, 25 insertions(+), 54 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteAcrRepository.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteAcrRepository.json index 8449e47855ec..5dbd1b271850 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteAcrRepository.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteAcrRepository.json @@ -4,15 +4,8 @@ "name": "nanoserver" }, "responses": { - "202": { - "body": { - "manifestsDeleted": [ - "sha256:e31831d63f77a0a6d74ef5b16df619a50808dac842190d07ae24e8b520d159fa" - ], - "tagsDeleted": [ - "4.7.2-20180814-windowsservercore-1709" - ] - } + "202": {}, + "404": {} } } } diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteManifest.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteManifest.json index 50afe0bd523e..136be72af409 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteManifest.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteManifest.json @@ -5,6 +5,7 @@ "reference": "3.7" }, "responses": { - "202": {} + "202": {}, + "404": {} } } diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifest.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifest.json index 2768e76d6a0d..21e956b58cf3 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifest.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifest.json @@ -8,40 +8,7 @@ "responses": { "200": { "body": { - "schemaVersion": 2, - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", - "config": { - "mediaType": "application/vnd.docker.container.image.v1+json", - "size": 5824, - "digest": "sha256:691fbc2d44fff48357bba69ab0505b9bf12b2b250a925a84a0b8e8e7eed390b2" - }, - "layers": [ - { - "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", - "size": 2014658, - "digest": "sha256:a073c86ecf9e0f29180e80e9638d4c741970695851ea48247276c32c57e40282" - }, - { - "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", - "size": 19778035, - "digest": "sha256:0e28711eb56d78f1e3dfde1807eba529d1346222bcd07d1cb1e436a18a0388bd" - }, - { - "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", - "size": 1074044, - "digest": "sha256:e460dd483fddb555911f7ed188c319fd97542c60e36843dcb1c5d753f733e1fa" - }, - { - "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", - "size": 5827, - "digest": "sha256:6aa301222093bfb8cf424ccb387f59e2c9510c3a30cca7fbcf8c954f88e6600c" - }, - { - "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", - "size": 568, - "digest": "sha256:9c5d80083a57d565f684e0155707204d497a5ad965279f92927452f15dae17e6" - } - ] + "schemaVersion": 2 } } } diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestAttributes.json index a8163814b8c1..75a75dc5780d 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestAttributes.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestAttributes.json @@ -2,7 +2,7 @@ "parameters": { "url": "acrapi.azurecr-test.io", "name": "nanoserver", - "reference": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086" + "digest": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086" }, "responses": { "200": { diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestList.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestList.json index 08eaec214eca..7b82d487513a 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestList.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestList.json @@ -16,8 +16,6 @@ "lastUpdateTime": "2018-09-06T06:17:20.9983915Z", "architecture": "amd64", "os": "windows", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", - "configMediaType": "application/vnd.docker.container.image.v1+json", "tags": [ "4.7.2-20180905-nanoserver-1803" ], @@ -35,8 +33,6 @@ "lastUpdateTime": "2018-09-07T16:30:46.5651701Z", "architecture": "amd64", "os": "windows", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", - "configMediaType": "application/vnd.docker.container.image.v1+json", "tags": [ "4.7.2-20180906-nanoserver-1803" ], diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagAttributes.json index ed58c44d6f71..6238aebb8b96 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagAttributes.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagAttributes.json @@ -14,7 +14,6 @@ "digest": "sha256:eabe547f78d4c18c708dd97ec3166cf7464cc651f1cbb67e70d407405b7ad7b6", "createdTime": "2018-10-05T20:54:24.1286047Z", "lastUpdateTime": "2018-10-05T20:54:24.1286047Z", - "signed": false, "changeableAttributes": { "deleteEnabled": true, "writeEnabled": false, diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagList.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagList.json index e5342cd2295f..54af71dbac6a 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagList.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetTagList.json @@ -14,7 +14,6 @@ "digest": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086", "createdTime": "2018-09-06T06:17:21.0856539Z", "lastUpdateTime": "2018-09-06T06:17:21.0856539Z", - "signed": false, "changeableAttributes": { "deleteEnabled": true, "writeEnabled": true, @@ -27,7 +26,6 @@ "digest": "sha256:7af5cd1dde3e8f5c2c9103860afa4ca871a6075373b6564b0e7b1b47866dab52", "createdTime": "2018-09-06T16:30:43.3860166Z", "lastUpdateTime": "2018-09-07T16:30:46.7022734Z", - "signed": false, "changeableAttributes": { "deleteEnabled": true, "writeEnabled": true, diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/PostRefreshToken.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/PostRefreshToken.json index 768ca1680ba1..4176aaccecfd 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/PostRefreshToken.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/PostRefreshToken.json @@ -4,7 +4,7 @@ "url": "acrapi.azurecr-test.io", "service": "someregistry.azurecr.io", "tenant": "02f900bf-86f1-31af-p1ab-2b7cd0nndb47", - "accessToken": "eyJ0eXAiOiJKJhbGci1dCI6IkN0ZlFDOExlLTMejlnIiwidGlkIjoiNzJmOTgWItMmQ3Y2QwMTFkYjQ3Ii..." + "access_token": "eyJ0eXAiOiJKJhbGci1dCI6IkN0ZlFDOExlLTMejlnIiwidGlkIjoiNzJmOTgWItMmQ3Y2QwMTFkYjQ3Ii..." }, "responses": { "200": { diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateTagAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateTagAttributes.json index 16e13e3c4ec2..37f164b29436 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateTagAttributes.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateTagAttributes.json @@ -6,6 +6,23 @@ "value": "{\"writeEnabled\": false}" }, "responses": { - "200": {} + "200": { + "body": { + "registry": "acrapi.azurecr-test.io", + "imageName": "test/bash", + "tag": { + "name": "tagName", + "digest": "sha256:eabe547f78d4c18c708dd97ec3166cf7464cc651f1cbb67e70d407405b7ad7b6", + "createdTime": "2018-10-05T20:54:24.1286047Z", + "lastUpdateTime": "2018-10-05T20:54:24.1286047Z", + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": false, + "readEnabled": true, + "listEnabled": true + } + } + } + } } } From d062ebc52453cede23ddf268d8799d8263745c94 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 24 May 2021 15:26:51 -0700 Subject: [PATCH 30/43] Remove extraneous brace --- .../preview/2019-08-15-preview/examples/DeleteAcrRepository.json | 1 - 1 file changed, 1 deletion(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteAcrRepository.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteAcrRepository.json index 5dbd1b271850..a827c298d237 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteAcrRepository.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteAcrRepository.json @@ -6,6 +6,5 @@ "responses": { "202": {}, "404": {} - } } } From 66bff96c09fcf97750d29c9a7bf2a9b6102762b5 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 24 May 2021 15:31:41 -0700 Subject: [PATCH 31/43] Add custom word for ACR --- custom-words.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/custom-words.txt b/custom-words.txt index 7e8b9d031f1b..292ed39ca98b 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -830,6 +830,7 @@ IDRG IKEV ilearner iloveyou +illumos IMAGEBUILDER Imagelist imagelists @@ -1103,6 +1104,7 @@ minidump minimalmetadata ministamps Minkowski +mipsle mixedreality Mkdirs mktorest From f7df590c111a56f04794d229ef7f7a598b294fdf Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 24 May 2021 15:37:11 -0700 Subject: [PATCH 32/43] Fix more linting errors in examples --- .../examples/DeleteTag.json | 3 +- .../examples/GetManifestAttributes.json | 2 -- .../examples/UpdateManifestAttributes.json | 30 +++++++++++++++++-- .../examples/UpdateRepositoryAttributes.json | 17 ++++++++++- 4 files changed, 45 insertions(+), 7 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteTag.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteTag.json index fec441eeaf12..eda882dea680 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteTag.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/DeleteTag.json @@ -5,6 +5,7 @@ "reference": "4.7.2-20180905-nanoserver-1803" }, "responses": { - "202": {} + "202": {}, + "404": {} } } diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestAttributes.json index 75a75dc5780d..980d97942be7 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestAttributes.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/GetManifestAttributes.json @@ -16,8 +16,6 @@ "lastUpdateTime": "2018-09-06T06:17:20.9983915Z", "architecture": "amd64", "os": "windows", - "mediaType": "application/vnd.docker.distribution.manifest.v2+json", - "configMediaType": "application/vnd.docker.container.image.v1+json", "tags": [ "4.7.2-20180905-nanoserver-1803" ], diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateManifestAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateManifestAttributes.json index 4c25514ab2f2..83e9868d303f 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateManifestAttributes.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateManifestAttributes.json @@ -2,10 +2,34 @@ "parameters": { "url": "acrapi.azurecr-test.io", "name": "nanoserver", - "reference": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086", - "value": "{\"writeEnabled\": false}" + "digest": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086", + "value": { + "writeEnabled": false + } }, "responses": { - "200": {} + "200": { + "body": { + "registry": "acrapi.azurecr-test.io", + "imageName": "nanoserver", + "manifest": { + "digest": "sha256:110d2b6c84592561338aa040b1b14b7ab81c2f9edbd564c2285dd7d70d777086", + "imageSize": 2401606, + "createdTime": "2018-09-06T06:17:20.9983915Z", + "lastUpdateTime": "2018-09-06T06:17:20.9983915Z", + "architecture": "amd64", + "os": "windows", + "tags": [ + "4.7.2-20180905-nanoserver-1803" + ], + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": false, + "readEnabled": true, + "listEnabled": true + } + } + } + } } } diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateRepositoryAttributes.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateRepositoryAttributes.json index 14a61f118d0f..8077b21fbdd9 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateRepositoryAttributes.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/examples/UpdateRepositoryAttributes.json @@ -7,6 +7,21 @@ } }, "responses": { - "200": {} + "200": { + "body": { + "registry": "acrapi.azurecr-test.io", + "imageName": "nanoserver", + "createdTime": "2018-09-06T06:17:20.9531248Z", + "lastUpdateTime": "2018-09-07T16:30:46.6583219Z", + "manifestCount": 2, + "tagCount": 2, + "changeableAttributes": { + "deleteEnabled": true, + "writeEnabled": false, + "readEnabled": true, + "listEnabled": true + } + } + } } } From c46bd86466db9e6987269ee0cd92965e78257c5d Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Tue, 25 May 2021 15:22:38 -0700 Subject: [PATCH 33/43] Revert "Remove property required-ness" This reverts commit 4eba58a49bfd3a3e51219c90f583521391596218. --- .../2019-08-15-preview/containerregistry.json | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 8364c17fd7a0..7bf1577bad93 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1289,6 +1289,15 @@ }, "definitions": { "RepositoryAttributes": { + "required": [ + "registry", + "imageName", + "createdTime", + "lastUpdateTime", + "manifestCount", + "tagCount", + "changeableAttributes" + ], "x-ms-client-name": "RepositoryProperties", "type": "object", "description": "Repository attributes", @@ -1351,6 +1360,11 @@ } }, "TagList": { + "required": [ + "registry", + "imageName", + "tags" + ], "description": "List of tag details", "x-accessibility": "internal", "properties": { @@ -1411,6 +1425,11 @@ } }, "TagAttributes": { + "required": [ + "registry", + "imageName", + "tag" + ], "x-ms-client-name": "ArtifactTagProperties", "description": "Tag attributes", "properties": { @@ -1452,6 +1471,13 @@ } }, "TagAttributesBase": { + "required": [ + "name", + "digest", + "createdTime", + "lastUpdateTime", + "changeableAttributes" + ], "description": "Tag attribute details", "x-accessibility": "internal", "properties": { @@ -1793,6 +1819,9 @@ } }, "ManifestAttributes": { + "required": [ + "manifest" + ], "x-ms-client-name": "ArtifactManifestProperties", "description": "Manifest attributes details", "properties": { @@ -1840,6 +1869,11 @@ } }, "ManifestAttributesBase": { + "required": [ + "digest", + "createdTime", + "lastUpdateTime" + ], "type": "object", "description": "Manifest details", "x-accessibility": "internal", @@ -2260,6 +2294,11 @@ } }, "ManifestAttributes_manifest_references": { + "required": [ + "digest", + "architecture", + "os" + ], "x-ms-client-name": "ArtifactManifestReference", "description": "Manifest attributes details", "properties": { @@ -3051,4 +3090,4 @@ "x-ms-skip-url-encoding": true } } -} +} \ No newline at end of file From 3c744fd6b0cec8b1ef5490b1caf746cc94945817 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Tue, 25 May 2021 16:03:03 -0700 Subject: [PATCH 34/43] Remove default value of "none" for architecture enum --- .../preview/2019-08-15-preview/containerregistry.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 7bf1577bad93..b49a04a3fed9 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1290,7 +1290,7 @@ "definitions": { "RepositoryAttributes": { "required": [ - "registry", + "registry", "imageName", "createdTime", "lastUpdateTime", @@ -1361,7 +1361,7 @@ }, "TagList": { "required": [ - "registry", + "registry", "imageName", "tags" ], @@ -1426,7 +1426,7 @@ }, "TagAttributes": { "required": [ - "registry", + "registry", "imageName", "tag" ], @@ -1642,7 +1642,6 @@ } ] }, - "default": "none", "x-accessibility": "public" }, "ArtifactOperatingSystem": { @@ -3090,4 +3089,4 @@ "x-ms-skip-url-encoding": true } } -} \ No newline at end of file +} From 5bcf8b9ce0d230830b172c2d9753cbbb4abf325b Mon Sep 17 00:00:00 2001 From: Anne Loomis Thompson Date: Wed, 26 May 2021 16:20:30 -0700 Subject: [PATCH 35/43] renames per arch board review --- .../2019-08-15-preview/containerregistry.json | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index b49a04a3fed9..91ef4b97483c 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -698,7 +698,7 @@ "Registry" ], "description": "Update the attribute identified by `name` where `reference` is the name of the repository.", - "operationId": "ContainerRegistry_SetProperties", + "operationId": "ContainerRegistry_UpdateProperties", "x-ms-examples": { "Update repository attributes": { "$ref": "./examples/UpdateRepositoryAttributes.json" @@ -1298,9 +1298,9 @@ "tagCount", "changeableAttributes" ], - "x-ms-client-name": "RepositoryProperties", + "x-ms-client-name": "ContainerRepositoryProperties", "type": "object", - "description": "Repository attributes", + "description": "Properties of this repository.", "properties": { "registry": { "type": "string", @@ -1533,7 +1533,7 @@ "timeasc" ], "x-ms-enum": { - "name": "TagOrderBy", + "name": "ArtifactTagOrderBy", "values": [ { "value": "none", @@ -1919,8 +1919,8 @@ "references": { "type": "array", "readOnly": true, - "description": "List of manifests referenced by this manifest list. List will be empty if this manifest is not a manifest list.", - "x-ms-client-name": "manifestReferences", + "description": "List of artifacts that are referenced by this manifest list, with information about the platform each supports. This list will be empty if this is a leaf manifest and not a manifest list.", + "x-ms-client-name": "relatedArtifacts", "items": { "$ref": "#/definitions/ManifestAttributes_manifest_references", "description": "Manifest attributes details" @@ -1981,7 +1981,7 @@ "timeasc" ], "x-ms-enum": { - "name": "ManifestOrderBy", + "name": "ArtifactManifestOrderBy", "values": [ { "value": "none", @@ -2294,11 +2294,9 @@ }, "ManifestAttributes_manifest_references": { "required": [ - "digest", - "architecture", - "os" + "digest" ], - "x-ms-client-name": "ArtifactManifestReference", + "x-ms-client-name": "ArtifactManifestPlatform", "description": "Manifest attributes details", "properties": { "digest": { From 0e3467e11aaefd656a1e835756e678c29ec2e74f Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 14 Jun 2021 14:29:29 -0700 Subject: [PATCH 36/43] Copy the existing suppression from master --- .../Azure.ContainerRegistry/readme.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md index b829f430d534..11dbf3eb432c 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md @@ -85,3 +85,43 @@ These settings apply only when `--python` is specified on the command line. ``` yaml $(python) python: true ``` + +## Suppression + +``` yaml +directive: + - suppress: DefinitionsPropertiesNamesCamelCase + from: containerregistry.json + where: $.definitions.AccessToken.properties.access_token + reason: Property name is used in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/registry/spec/auth/oauth/ + - suppress: DefinitionsPropertiesNamesCamelCase + from: containerregistry.json + where: $.definitions.RefreshToken.properties.refresh_token + reason: Property name is used in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/registry/spec/auth/oauth/ + - suppress: LROStatusCodesReturnTypeSchema + reason: No content is returned by put Manifest in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/registry/spec/api/#put-manifest + from: containerregistry.json + where: $.paths["/v2/{name}/manifests/{reference}"].put.responses["201"] + - suppress: LROStatusCodesReturnTypeSchema + reason: No content is returned by put End Upload in compliance with Docker's own specs for compatibility purposes. Specifics https://docs.docker.com/v17.12/registry/spec/api/ + from: containerregistry.json + where: $.paths["/{nextBlobUuidLink}"].put.responses["201"] + - suppress: DefinitionsPropertiesNamesCamelCase + reason: These default values are specified by the Open Container Initiative. Used for cross compatibility. Specifics https://github.com/opencontainers/image-spec/blob/master/annotations.md#rules + from: containerregistry.json + where: + - $.definitions.Platform.properties["os.version"] + - $.definitions.Platform.properties["os.features"] + - $.definitions.Annotations.properties["org.opencontainers.image.created"] + - $.definitions.Annotations.properties["org.opencontainers.image.authors"] + - $.definitions.Annotations.properties["org.opencontainers.image.url"] + - $.definitions.Annotations.properties["org.opencontainers.image.documentation"] + - $.definitions.Annotations.properties["org.opencontainers.image.source"] + - $.definitions.Annotations.properties["org.opencontainers.image.version"] + - $.definitions.Annotations.properties["org.opencontainers.image.revision"] + - $.definitions.Annotations.properties["org.opencontainers.image.vendor"] + - $.definitions.Annotations.properties["org.opencontainers.image.licenses"] + - $.definitions.Annotations.properties["org.opencontainers.image.ref.name"] + - $.definitions.Annotations.properties["org.opencontainers.image.title"] + - $.definitions.Annotations.properties["org.opencontainers.image.description"] +``` From 03e6f0579a2de63d81febe7f5b7473b74645f727 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 14 Jun 2021 14:40:26 -0700 Subject: [PATCH 37/43] Fix spellcheck errors Add words to custom-words.txt --- custom-words.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/custom-words.txt b/custom-words.txt index 292ed39ca98b..47aeb15b330d 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -686,6 +686,7 @@ FPGA fqdn FQDNs Français +freebad freeflow frontdoor fsaction @@ -1185,6 +1186,7 @@ nchar ndjson Neighbourhood netapp +netbsd netdev Netdev netezza @@ -2077,6 +2079,8 @@ Walser WANAs WANs WASB +wasm +Wasm watchlist Watchlist watchlists From ce3564bff8422c7d2d39d7cb97034918b2dc510d Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Mon, 14 Jun 2021 14:53:06 -0700 Subject: [PATCH 38/43] More spelling fix --- custom-words.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/custom-words.txt b/custom-words.txt index 47aeb15b330d..63973cbdb304 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -686,7 +686,7 @@ FPGA fqdn FQDNs Français -freebad +freebsd freeflow frontdoor fsaction @@ -1266,6 +1266,7 @@ onpremises oobe Oozie openapi +openbsd opencode opencontainers openid From 010a71666a44fa52e7d1e2433a5278e2026f828f Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Fri, 18 Jun 2021 15:18:30 -0700 Subject: [PATCH 39/43] Suppress R2056 RequiredReadOnlyProperties Reasoning at https://github.com/Azure/azure-openapi-validator/issues/243 --- .../Azure.ContainerRegistry/readme.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md index 11dbf3eb432c..e0b46d9fe04a 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md @@ -124,4 +124,22 @@ directive: - $.definitions.Annotations.properties["org.opencontainers.image.ref.name"] - $.definitions.Annotations.properties["org.opencontainers.image.title"] - $.definitions.Annotations.properties["org.opencontainers.image.description"] + - suppress: RequiredReadOnlyProperties + reason: These are used in output types to mark readonly properties as non-optional. It should be allowed: https://github.com/Azure/azure-openapi-validator/issues/243 + from: containerregistry.json + where: + - $.definitions.RepositoryAttributes.properties["registry"] + - $.definitions.RepositoryAttributes.properties["imageName"] + - $.definitions.RepositoryAttributes.properties["createdTime"] + - $.definitions.RepositoryAttributes.properties["lastUpdateTime"] + - $.definitions.RepositoryAttributes.properties["manifestCount"] + - $.definitions.RepositoryAttributes.properties["tagCount"] + - $.definitions.TagAttributes.properties["registry"] + - $.definitions.TagAttributes.properties["imageName"] + - $.definitions.TagAttributes.properties["tag"] + - $.definitions.TagAttributesBase.properties["name"] + - $.definitions.TagAttributesBase.properties["digest"] + - $.definitions.TagAttributesBase.properties["createdTime"] + - $.definitions.TagAttributesBase.properties["lastUpdateTime"] + - $.definitions.ManifestAttributes_manifest_references.properties["digest"] ``` From 1ac819bf41b4053c4d64a85105073289bea255e1 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Fri, 18 Jun 2021 16:04:05 -0700 Subject: [PATCH 40/43] Remove `:` in reason value it breaks yaml --- .../data-plane/Azure.ContainerRegistry/readme.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md index e0b46d9fe04a..c3a26ecea424 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md @@ -125,7 +125,7 @@ directive: - $.definitions.Annotations.properties["org.opencontainers.image.title"] - $.definitions.Annotations.properties["org.opencontainers.image.description"] - suppress: RequiredReadOnlyProperties - reason: These are used in output types to mark readonly properties as non-optional. It should be allowed: https://github.com/Azure/azure-openapi-validator/issues/243 + reason: These are used in output types to mark readonly properties as non-optional. It should be allowed https://github.com/Azure/azure-openapi-validator/issues/243 from: containerregistry.json where: - $.definitions.RepositoryAttributes.properties["registry"] @@ -142,4 +142,8 @@ directive: - $.definitions.TagAttributesBase.properties["createdTime"] - $.definitions.TagAttributesBase.properties["lastUpdateTime"] - $.definitions.ManifestAttributes_manifest_references.properties["digest"] + - $.definitions.ManifestAttributesBase.properties["digest"] + - $.definitions.ManifestAttributesBase.properties["createdTime"] + - $.definitions.ManifestAttributesBase.properties["lastUpdateTime"] + - $.definitions.ManifestAttributes.properties["manifest"] ``` From 60aac95c5773bb5f17989f9602ef3b0e18ca387c Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Tue, 22 Jun 2021 11:43:34 -0700 Subject: [PATCH 41/43] Update description of registryLoginServer as `azurecr.io` is kust for public cloud and the format can be different for every cloud or vanity URLs. --- .../preview/2019-08-15-preview/containerregistry.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index 91ef4b97483c..db2bab22b2bc 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1305,7 +1305,7 @@ "registry": { "type": "string", "readOnly": true, - "description": "Registry login server name. This is likely to be similar to {registry-name}.azurecr.io", + "description": "Registry login server.", "x-ms-client-name": "registryLoginServer" }, "imageName": { @@ -1370,7 +1370,7 @@ "properties": { "registry": { "type": "string", - "description": "Registry login server name. This is likely to be similar to {registry-name}.azurecr.io", + "description": "Registry login server.", "x-ms-client-name": "RegistryLoginServer" }, "imageName": { @@ -1436,7 +1436,7 @@ "registry": { "type": "string", "readOnly": true, - "description": "Registry login server name. This is likely to be similar to {registry-name}.azurecr.io", + "description": "Registry login server.", "x-ms-client-name": "registryLoginServer" }, "imageName": { @@ -1745,7 +1745,7 @@ "properties": { "registry": { "type": "string", - "description": "Registry login server name. This is likely to be similar to {registry-name}.azurecr.io", + "description": "Registry login server.", "x-ms-client-name": "registryLoginServer" }, "imageName": { @@ -1825,7 +1825,7 @@ "description": "Manifest attributes details", "properties": { "registry": { - "description": "Registry login server name. This is likely to be similar to {registry-name}.azurecr.io", + "description": "Registry login server.", "readOnly": true, "type": "string", "x-ms-client-name": "registryLoginServer" From 6e96fae1ac4427acba1b7bd467bcf85d02538753 Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Thu, 24 Jun 2021 15:08:31 -0700 Subject: [PATCH 42/43] Address PR feedback - Add "Azure" to title - add `"teleportEnabled": false` to example --- .../preview/2019-08-15-preview/containerregistry.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json index db2bab22b2bc..58f36202266b 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/preview/2019-08-15-preview/containerregistry.json @@ -1,7 +1,7 @@ { "swagger": "2.0", "info": { - "title": "Container Registry", + "title": "Azure Container Registry", "description": "Metadata API definition for the Azure Container Registry runtime", "version": "2019-08-15-preview" }, @@ -1350,7 +1350,8 @@ "readEnabled": true, "listEnabled": true, "deleteEnabled": true, - "writeEnabled": true + "writeEnabled": true, + "teleportEnabled": false }, "imageName": "imageName", "createdTime": "2018-09-07T16:30:46.6583219Z", From c96f0cc4d5031742fe64432027b91697fd313d6f Mon Sep 17 00:00:00 2001 From: Jeremy Meng Date: Fri, 25 Jun 2021 11:54:09 -0700 Subject: [PATCH 43/43] Minor update to tyepscript codegen customization section --- .../data-plane/Azure.ContainerRegistry/readme.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md index c3a26ecea424..81347188f7fa 100644 --- a/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md +++ b/specification/containerregistry/data-plane/Azure.ContainerRegistry/readme.md @@ -68,15 +68,14 @@ title: GeneratedClient description: Container Registry Client generate-metadata: false license-header: MICROSOFT_MIT_NO_VERSION -output-folder: ../ -source-code-folder-path: ./src/generated add-credentials: false override-client-name: GeneratedClient disable-async-iterators: true hide-clients: true -use-core-v2: true use-extension: - "@autorest/typescript": "C:/github/autorest.typescript" + "@autorest/typescript": "6.0.0-beta.4" +output-folder: ../ +source-code-folder-path: ./src/generated ``` ## Python