From 0d7a1cf1d52ac815a349037021d47f33c97cd836 Mon Sep 17 00:00:00 2001 From: Pramit Gupta <36869364+pgmisc@users.noreply.github.com> Date: Wed, 2 Oct 2019 14:20:41 -0700 Subject: [PATCH 01/10] Create new preview branch and bump version --- .../preview/2019-09-30/artifact.json | 1546 +++++++++++++++++ 1 file changed, 1546 insertions(+) create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/artifact.json diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/artifact.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/artifact.json new file mode 100644 index 000000000000..dc432c7e3d02 --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/artifact.json @@ -0,0 +1,1546 @@ +{ + "swagger": "2.0", + "info": { + "version": "2019-09-30", + "title": "Artifact API" + }, + "schemes": [ + "https" + ], + "paths": { + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/metadata": { + "post": { + "tags": [ + "Artifact" + ], + "summary": "Create Artifact.", + "description": "Create an Artifact.", + "operationId": "Artifacts_Create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "artifact", + "in": "body", + "description": "The Artifact details.", + "required": true, + "schema": { + "$ref": "#/definitions/Artifact" + } + } + ], + "responses": { + "200": { + "description": "The Artifact is created successfully.", + "schema": { + "$ref": "#/definitions/Artifact" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/register": { + "post": { + "tags": [ + "Artifact" + ], + "summary": "Create an Artifact for an existing data location.", + "description": "Create an Artifact for an existing dataPath.", + "operationId": "Artifacts_Register", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "artifact", + "in": "body", + "description": "The Artifact creation details.", + "required": true, + "schema": { + "$ref": "#/definitions/Artifact" + } + } + ], + "responses": { + "200": { + "description": "The Artifact is created successfully.", + "schema": { + "$ref": "#/definitions/Artifact" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/metadata": { + "get": { + "tags": [ + "Artifact" + ], + "summary": "Get Artifact metadata by Id.", + "description": "Get Artifact metadata for a specific Id.", + "operationId": "Artifacts_Get", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The details of the Artifact are returned successfully.", + "schema": { + "$ref": "#/definitions/Artifact" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Artifact" + ], + "summary": "Delete Artifact Metadata.", + "description": "Delete an Artifact Metadata.", + "operationId": "Artifacts_DeleteMetaData", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + }, + { + "name": "hardDelete", + "in": "query", + "description": "If set to true. The delete cannot be revert at later time.", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "The Artifact metadata deleted successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}": { + "get": { + "tags": [ + "Artifact" + ], + "summary": "Get Artifacts metadata in a container or path.", + "description": "Get Artifacts metadata in a specific container or path.", + "operationId": "Artifacts_ListInContainer", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + }, + { + "name": "continuationToken", + "in": "query", + "description": "The continuation token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The details of the Artifacts are returned successfully.", + "schema": { + "$ref": "#/definitions/PaginatedArtifactList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/content": { + "get": { + "tags": [ + "Artifact" + ], + "summary": "Get Artifact content by Id.", + "description": "Get Artifact content of a specific Id.", + "operationId": "Artifacts_Download", + "consumes": [], + "produces": [ + "application/json", + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "File Response", + "schema": { + "format": "byte", + "type": "file" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "post": { + "tags": [ + "Artifact" + ], + "summary": "Upload Artifact content.", + "description": "Upload content to an Artifact.", + "operationId": "Artifacts_Upload", + "consumes": [ + "application/octet-stream" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + }, + { + "name": "index", + "in": "query", + "description": "The index.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "append", + "in": "query", + "description": "Whether or not to append the content or replace it.", + "required": false, + "type": "boolean", + "default": false + }, + { + "name": "allowOverwrite", + "in": "query", + "description": "whether to allow overwrite if Artifact Content exist already. when set to true, Overwrite happens if Artifact Content already exists", + "required": false, + "type": "boolean", + "default": false + }, + { + "name": "content", + "in": "body", + "description": "The file upload.", + "required": true, + "schema": { + "format": "binary", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "The Artifact content is uploaded successfully.", + "schema": { + "$ref": "#/definitions/Artifact" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/contentinfo": { + "get": { + "tags": [ + "Artifact" + ], + "summary": "Get Artifact content information.", + "description": "Get content information of an Artifact.", + "operationId": "Artifacts_GetContentInformation", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The Artifact content information is returned successfully.", + "schema": { + "$ref": "#/definitions/ArtifactContentInformation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/contentinfo/storageuri": { + "get": { + "tags": [ + "Artifact" + ], + "summary": "Get Artifact storage content information.", + "description": "Get storage content information of an Artifact.", + "operationId": "Artifacts_GetStorageContentInformation", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The Artifact storage content information is returned successfully.", + "schema": { + "$ref": "#/definitions/ArtifactContentInformation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/write": { + "get": { + "tags": [ + "Artifact" + ], + "summary": "Get writable shared access signature for Artifact.", + "description": "Get writable shared access signature for a specific Artifact.", + "operationId": "Artifacts_GetSas", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The Artifact writable shared access signature is returned successfully.", + "schema": { + "$ref": "#/definitions/ArtifactContentInformation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/prefix/contentinfo": { + "get": { + "tags": [ + "Artifact" + ], + "summary": "Get shared access signature for an Artifact", + "description": "Get shared access signature for an Artifact in specific path.", + "operationId": "Artifacts_ListSasByPrefix", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + }, + { + "name": "continuationToken", + "in": "query", + "description": "The continuation token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The Artifact writable shared access signature is returned successfully.", + "schema": { + "$ref": "#/definitions/PaginatedArtifactContentInformationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/prefix/contentinfo/storageuri": { + "get": { + "tags": [ + "Artifact" + ], + "summary": "Get storage Uri for Artifacts in a path.", + "description": "Get storage Uri for Artifacts in a specific path.", + "operationId": "Artifacts_ListStorageUriByPrefix", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + }, + { + "name": "continuationToken", + "in": "query", + "description": "The continuation token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The Artifact storage uri is returned successfully.", + "schema": { + "$ref": "#/definitions/PaginatedArtifactContentInformationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/batch/metadata": { + "post": { + "tags": [ + "Artifact" + ], + "summary": "Get Batch Artifacts by Ids.", + "description": "Get Batch Artifacts by the specific Ids.", + "operationId": "Artifacts_BatchGetById", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "artifactIds", + "in": "body", + "description": "The command for Batch Artifact get request.", + "required": true, + "schema": { + "$ref": "#/definitions/ArtifactIdList" + } + } + ], + "responses": { + "200": { + "description": "The requested Batch Artifacts are returned successfully.", + "schema": { + "$ref": "#/definitions/BatchArtifactContentInformationResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/storageuri/batch/metadata": { + "post": { + "tags": [ + "Artifact" + ], + "summary": "Get Batch Artifacts storage by Ids.", + "description": "Get Batch Artifacts storage by specific Ids.", + "operationId": "Artifacts_BatchGetStorageById", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "artifactIds", + "in": "body", + "description": "The list of artifactIds to get.", + "required": true, + "schema": { + "$ref": "#/definitions/ArtifactIdList" + } + } + ], + "responses": { + "200": { + "description": "The Batch Artifact's storage are returned successfully.", + "schema": { + "$ref": "#/definitions/BatchArtifactContentInformationResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/batch/ingest/containersas": { + "post": { + "tags": [ + "Artifact" + ], + "summary": "Batch ingest using shared access signature.", + "description": "Ingest Batch Artifacts using shared access signature.", + "operationId": "Artifacts_BatchIngestFromSas", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "artifactContainerSas", + "in": "body", + "description": "The artifact container shared access signature to use for batch ingest.", + "required": true, + "schema": { + "$ref": "#/definitions/ArtifactContainerSas" + } + } + ], + "responses": { + "200": { + "description": "The Batch is ingested using shared access signature successfully.", + "schema": { + "$ref": "#/definitions/PaginatedArtifactList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/batch/metadata": { + "post": { + "tags": [ + "Artifact" + ], + "summary": "Create a batch of empty Artifacts.", + "description": "Create a Batch of empty Artifacts from the supplied paths.", + "operationId": "Artifacts_BatchCreateEmptyArtifacts", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "artifactPaths", + "in": "body", + "description": "The list of Artifact paths to create.", + "required": true, + "schema": { + "$ref": "#/definitions/ArtifactPathList" + } + } + ], + "responses": { + "200": { + "description": "The Batch of empty Artifacts created successfully.", + "schema": { + "$ref": "#/definitions/BatchArtifactContentInformationResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/batch/metadata:delete": { + "post": { + "tags": [ + "Artifact" + ], + "summary": "Delete Batch of Artifact Metadata.", + "description": "Delete a Batch of Artifact Metadata.", + "operationId": "Artifacts_DeleteBatchMetaData", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "artifactPaths", + "in": "body", + "description": "The list of Artifact paths to delete.", + "required": true, + "schema": { + "$ref": "#/definitions/ArtifactPathList" + } + }, + { + "name": "hardDelete", + "in": "query", + "description": "If set to true, the delete cannot be reverted at a later time.", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "The batch delete of Artifact metadata completed successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/artifact/v2.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/artifacts/{origin}/{container}/batch": { + "delete": { + "tags": [ + "Artifact" + ], + "summary": "Delete Artifact Metadata.", + "description": "Delete Artifact Metadata in a specific container.", + "operationId": "Artifacts_DeleteMetaDataInContainer", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "origin", + "in": "path", + "description": "The origin of the Artifact.", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "description": "The container name.", + "required": true, + "type": "string" + }, + { + "name": "hardDelete", + "in": "query", + "description": "If set to true. The delete cannot be revert at later time.", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "The Artifact metadata deleted successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + } + }, + "definitions": { + "Artifact": { + "description": "Details of an Artifact.", + "required": [ + "origin", + "container", + "path" + ], + "type": "object", + "properties": { + "artifactId": { + "description": "The identifier of an Artifact. Format of ArtifactId - {Origin}/{Container}/{Path}.", + "type": "string" + }, + "origin": { + "description": "The origin of the Artifact creation request. Available origins are 'ExperimentRun', 'LocalUpload', 'WebUpload', 'Dataset' and 'Unknown'.", + "type": "string" + }, + "container": { + "description": "The name of container. Artifacts can be grouped by container.", + "type": "string" + }, + "path": { + "description": "The path to the Artifact in a container.", + "type": "string" + }, + "etag": { + "description": "The Etag of the Artifact.", + "type": "string", + "readOnly": true + }, + "createdTime": { + "format": "date-time", + "description": "The Date and Time at which the Artifact is created. The DateTime is in UTC.", + "type": "string", + "readOnly": true + }, + "dataPath": { + "$ref": "#/definitions/DataPath" + } + } + }, + "DataPath": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string" + }, + "relativePath": { + "type": "string" + }, + "sqlDataPath": { + "$ref": "#/definitions/SqlDataPath" + } + } + }, + "SqlDataPath": { + "type": "object", + "properties": { + "sqlTableName": { + "type": "string" + }, + "sqlQuery": { + "type": "string" + }, + "sqlStoredProcedureName": { + "type": "string" + }, + "sqlStoredProcedureParams": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/StoredProcedureParameter" + } + } + } + }, + "StoredProcedureParameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "type": { + "enum": [ + "String", + "Int", + "Decimal", + "Guid", + "Boolean", + "Date" + ], + "type": "string", + "x-ms-enum": { + "name": "StoredProcedureParameterType", + "modelAsString": false + } + } + } + }, + "PaginatedArtifactList": { + "description": "A paginated list of Artifacts.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type Artifact.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Artifact" + } + }, + "continuationToken": { + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "type": "string" + }, + "nextLink": { + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "type": "string" + } + } + }, + "ArtifactContentInformation": { + "description": "Details of an Artifact Content Information.", + "type": "object", + "properties": { + "contentUri": { + "description": "The URI of the content.", + "type": "string" + }, + "origin": { + "description": "The origin of the Artifact creation request. Available origins are 'ExperimentRun', 'LocalUpload', 'WebUpload', 'Dataset', 'ComputeRecord', 'Metric', and 'Unknown'.", + "type": "string" + }, + "container": { + "description": "The name of container. Artifacts can be grouped by container.", + "type": "string" + }, + "path": { + "description": "The path to the Artifact in a container.", + "type": "string" + } + } + }, + "PaginatedArtifactContentInformationList": { + "description": "A paginated list of ArtifactContentInformations.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type ArtifactContentInformation.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ArtifactContentInformation" + } + }, + "continuationToken": { + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "type": "string" + }, + "nextLink": { + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "type": "string" + } + } + }, + "ArtifactIdList": { + "description": "Contains list of Artifact Ids.", + "required": [ + "artifactIds" + ], + "type": "object", + "properties": { + "artifactIds": { + "description": "List of Artifacts Ids.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "BatchArtifactContentInformationResult": { + "description": "Results of the Batch Artifact Content Information request.", + "type": "object", + "properties": { + "artifacts": { + "description": "Artifact details of the Artifact Ids requested.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Artifact" + } + }, + "artifactContentInformation": { + "description": "Artifact Content Information details of the Artifact Ids requested.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ArtifactContentInformation" + } + }, + "errors": { + "description": "Errors occurred while fetching the requested Artifact Ids.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "ErrorResponse": { + "description": "The error response.", + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/RootError", + "description": "The top level error that occurred." + }, + "correlation": { + "description": "Dictionary containing correlation details for the error.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "environment": { + "description": "The hosting environment.", + "type": "string" + }, + "location": { + "description": "The Azure region.", + "type": "string" + }, + "time": { + "format": "date-time", + "description": "The time in UTC.", + "type": "string" + } + } + }, + "RootError": { + "description": "The root error.", + "type": "object", + "properties": { + "code": { + "description": "The service-defined error code. Supported error codes: ServiceError, UserError, ValidationError, AzureStorageError, TransientError, RequestThrottled.", + "type": "string" + }, + "message": { + "description": "A human-readable representation of the error.", + "type": "string" + }, + "target": { + "description": "The target of the error (e.g., the name of the property in error).", + "type": "string" + }, + "details": { + "description": "The related errors that occurred during the request.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetails" + } + }, + "innerError": { + "$ref": "#/definitions/InnerErrorResponse", + "description": "A nested list of inner errors. When evaluating errors, clients MUST traverse through all of the nested “innerErrors” and choose the deepest one that they understand." + } + } + }, + "ErrorDetails": { + "description": "The error details.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string" + }, + "message": { + "description": "The error message.", + "type": "string" + }, + "target": { + "description": "The target of the error (e.g., the name of the property in error).", + "type": "string" + } + } + }, + "InnerErrorResponse": { + "description": "A nested structure of errors.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string" + }, + "innerError": { + "$ref": "#/definitions/InnerErrorResponse", + "description": "A nested list of inner errors. When evaluating errors, clients MUST traverse through all of the nested “innerErrors” and choose the deepest one that they understand." + } + } + }, + "ArtifactContainerSas": { + "description": "Details of the Artifact Container's shared access signature.", + "required": [ + "containerSas", + "containerUri" + ], + "type": "object", + "properties": { + "containerSas": { + "description": "The shared access signature of the Container.", + "type": "string" + }, + "containerUri": { + "description": "The URI of the Container.", + "type": "string" + }, + "prefix": { + "description": "The Prefix to the Blobs in the Container.", + "type": "string" + }, + "artifactPrefix": { + "description": "The Prefix to the Artifact in the Blob.", + "type": "string" + } + } + }, + "ArtifactPathList": { + "description": "Contains list of Artifact Paths.", + "required": [ + "paths" + ], + "type": "object", + "properties": { + "paths": { + "description": "List of Artifact Paths.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ArtifactPath" + } + } + } + }, + "ArtifactPath": { + "description": "Details of an Artifact Path.", + "required": [ + "path" + ], + "type": "object", + "properties": { + "path": { + "description": "The path to the Artifact in a container.", + "type": "string" + } + } + } + }, + "parameters": { + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The Azure Subscription ID.", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + }, + "resourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The Name of the resource group in which the workspace is located.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "workspaceNameParameter": { + "name": "workspaceName", + "in": "path", + "description": "The name of the workspace.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "type": "oauth2" + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "tags": [] +} From 1e43e5a6bd9623af9324e60ed14220106fc22f58 Mon Sep 17 00:00:00 2001 From: Pramit Gupta <36869364+pgmisc@users.noreply.github.com> Date: Wed, 2 Oct 2019 14:39:59 -0700 Subject: [PATCH 02/10] Add more files --- .../preview/2019-09-30/datastore.json | 925 +++++ .../preview/2019-09-30/execution.json | 827 ++++ .../preview/2019-09-30/hyperdrive.json | 575 +++ .../preview/2019-09-30/modelManagement.json | 3603 +++++++++++++++++ .../preview/2019-09-30/runHistory.json | 2701 ++++++++++++ 5 files changed, 8631 insertions(+) create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/execution.json create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/hyperdrive.json create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/modelManagement.json create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/runHistory.json diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json new file mode 100644 index 000000000000..4a63c4d13073 --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json @@ -0,0 +1,925 @@ +{ + "swagger": "2.0", + "info": { + "version": "2019-09-30", + "title": "Azure Machine Learning Datastore Management Client" + }, + "schemes": [ + "https" + ], + "paths": { + "/datastore/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/datastores": { + "get": { + "tags": [ + "DataStore" + ], + "summary": "Get Datastores list.", + "description": "Get the list of Datastores attached to the workspace.", + "operationId": "List", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "dataStoreNames", + "in": "query", + "description": "List of Datastore names.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "uniqueItems": false + }, + { + "name": "continuationToken", + "in": "query", + "description": "The Continuation Token.", + "required": false, + "type": "string" + }, + { + "name": "count", + "in": "query", + "description": "Count of Datastores to be returned.", + "required": false, + "type": "integer", + "format": "int32", + "default": 30 + }, + { + "name": "includeSecret", + "in": "query", + "description": "Whether to include the datastore secret in the response.", + "required": false, + "type": "boolean", + "default": true + } + ], + "responses": { + "200": { + "description": "The list of Datastores are returned successfully.", + "schema": { + "$ref": "#/definitions/PaginatedDataStoreList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "tags": [ + "DataStore" + ], + "summary": "Create or update a Datastore.", + "description": "Create or update a Datastore in the given workspace.", + "operationId": "Create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "dto", + "in": "body", + "description": "The Datastore details.", + "required": false, + "schema": { + "$ref": "#/definitions/DataStore" + } + }, + { + "name": "createIfNotExists", + "in": "query", + "description": "If set to true, the call will create an Datastore if it doesn't exist.", + "required": false, + "type": "boolean", + "default": false + }, + { + "name": "skipValidation", + "in": "query", + "description": "If set to true, the call will skip Datastore validation.", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "The Datastore is created/updated successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "DataStore" + ], + "summary": "Delete all Datastores.", + "description": "Delete all Datastores in the workspace.", + "operationId": "DeleteAll", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + } + ], + "responses": { + "200": { + "description": "All the Datastores in the workspace are deleted successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/datastore/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/datastores/{name}": { + "get": { + "tags": [ + "DataStore" + ], + "summary": "Get Datastore details.", + "description": "Get details of a Datastore with a specific name.", + "operationId": "Get", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "The Datastore name.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The Datastore details are returned successfully.", + "schema": { + "$ref": "#/definitions/DataStore" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "tags": [ + "DataStore" + ], + "summary": "Update or create a Datastore.", + "description": "Update or create a Datastore in the given workspace.", + "operationId": "Update", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "The Datastore name.", + "required": true, + "type": "string" + }, + { + "name": "dto", + "in": "body", + "description": "The Datastore details.", + "required": false, + "schema": { + "$ref": "#/definitions/DataStore" + } + }, + { + "name": "createIfNotExists", + "in": "query", + "description": "If set to true, the call will create an Datastore if it doesn't exist.", + "required": false, + "type": "boolean", + "default": false + }, + { + "name": "skipValidation", + "in": "query", + "description": "If set to true, the call will skip Datastore validation.", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "The Datastore is created/updated successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "DataStore" + ], + "summary": "Delete a Datastore.", + "description": "Delete a Datastore with a specific name.", + "operationId": "Delete", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "The Datastore name.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The Datastore is deleted successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/datastore/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/default/{name}": { + "put": { + "tags": [ + "DataStoreDefault" + ], + "summary": "Set a default Datastore.", + "description": "Set a default Datastore in the workspace.", + "operationId": "SetDefault", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "The Datastore name.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The default Datastore is set successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/datastore/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/default": { + "get": { + "tags": [ + "DataStoreDefault" + ], + "summary": "Get the default Datastore.", + "description": "Get the default Datastore in the workspace.", + "operationId": "GetDefault", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + } + ], + "responses": { + "200": { + "description": "The default Datastore is returned successfully.", + "schema": { + "$ref": "#/definitions/DataStore" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + } + }, + "definitions": { + "PaginatedDataStoreList": { + "description": "A paginated list of DataStores.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type DataStore.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/DataStore" + } + }, + "continuationToken": { + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "type": "string" + }, + "nextLink": { + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "type": "string" + } + } + }, + "DataStore": { + "type": "object", + "properties": { + "name": { + "description": "Name of the datastore", + "type": "string" + }, + "dataStoreType": { + "description": "The Azure storage service this datastore points to.", + "enum": [ + "AzureBlob", + "AzureFile", + "AzureDataLake", + "AzureSqlDatabase", + "AzurePostgreSql", + "DBFS", + "AzureDataLakeGen2", + "GlusterFs" + ], + "type": "string", + "x-ms-enum": { + "name": "DataStoreType", + "modelAsString": false + } + }, + "hasBeenValidated": { + "description": "A read only property that denotes whether the service datastore has been validated with credentials.", + "type": "boolean" + }, + "tags": { + "description": "Tags to datastore", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "azureStorageSection": { + "$ref": "#/definitions/AzureStorage", + "description": "Data specific to azure storage" + }, + "azureDataLakeSection": { + "$ref": "#/definitions/AzureDataLake", + "description": "Data Specific to azure data lake" + }, + "azureSqlDatabaseSection": { + "$ref": "#/definitions/AzureSqlDatabase", + "description": "Data specific to azure SQL database" + }, + "azurePostgreSqlSection": { + "$ref": "#/definitions/AzurePostgreSql", + "description": "Data specific to azure PostgreSQL" + }, + "glusterFsSection": { + "$ref": "#/definitions/GlusterFs", + "description": "Data specific to GlusterFS" + } + } + }, + "AzureStorage": { + "type": "object", + "properties": { + "accountName": { + "description": "Storage Account Name", + "type": "string" + }, + "containerName": { + "description": "The storage container name", + "type": "string" + }, + "endpoint": { + "description": "The host of the container", + "type": "string" + }, + "protocol": { + "description": "The protocol to use. Defaults to https", + "type": "string" + }, + "credentialType": { + "description": "The credential type", + "enum": [ + "None", + "Sas", + "AccountKey", + "ClientCredentials" + ], + "type": "string", + "x-ms-enum": { + "name": "AzureStorageCredentialTypes", + "modelAsString": false + } + }, + "credential": { + "description": "The credential", + "type": "string" + }, + "clientCredentials": { + "$ref": "#/definitions/ClientCredentials", + "description": "Service principal credential when credential type is Microsoft.MachineLearning.DataStore.Contracts.AzureStorageCredentialTypes.ClientCredentials" + }, + "blobCacheTimeout": { + "format": "int32", + "description": "If this is an Microsoft.MachineLearning.DataStore.Contracts.DataStoreType.AzureBlob, the length of time (in seconds) to cache files locally after they are accessed (downloaded).", + "type": "integer" + }, + "isSas": { + "description": "Indicate if we are using SAS token or Account Key (Deprecated)", + "type": "boolean" + }, + "accountKey": { + "description": "Storage Account Key (Deprecated)", + "type": "string" + }, + "sasToken": { + "description": "SAS Token for the container (Deprecated)", + "type": "string" + }, + "areWorkspaceManagedIdentitiesAllowed": { + "description": "Indicate if we are using Workspace ManagedIdentities/MSI token", + "type": "boolean" + }, + "subscriptionId": { + "format": "uuid", + "description": "Subscription Id", + "type": "string" + }, + "resourceGroup": { + "description": "Resource Group Name", + "type": "string" + } + } + }, + "AzureDataLake": { + "type": "object", + "properties": { + "storeName": { + "description": "The Azure Data Lake store name", + "type": "string" + }, + "clientId": { + "format": "uuid", + "description": "The Client ID/Application ID", + "type": "string" + }, + "tenantId": { + "format": "uuid", + "description": "The ID of the tenant the service principal/app belongs to", + "type": "string" + }, + "isCertAuth": { + "description": "Is it using certificate to authenticate. If false then use client secret", + "type": "boolean" + }, + "certificate": { + "description": "The content of the certificate used for authentication", + "type": "string" + }, + "thumbprint": { + "description": "The thumbprint of the certificate above", + "type": "string" + }, + "clientSecret": { + "description": "The client secret", + "type": "string" + }, + "authorityUrl": { + "description": "The authority URL used for authentication", + "type": "string" + }, + "resourceUri": { + "description": "The resource the service principal/app has access to", + "type": "string" + }, + "subscriptionId": { + "format": "uuid", + "description": "Subscription Id", + "type": "string" + }, + "resourceGroup": { + "description": "Resource Group Name", + "type": "string" + } + } + }, + "AzureSqlDatabase": { + "type": "object", + "properties": { + "serverName": { + "description": "The Azure SQL server name", + "type": "string" + }, + "databaseName": { + "description": "The Azure SQL database name", + "type": "string" + }, + "endpoint": { + "description": "The server host endpoint", + "type": "string" + }, + "clientId": { + "format": "uuid", + "description": "The Client ID/Application ID", + "type": "string" + }, + "tenantId": { + "format": "uuid", + "description": "The ID of the tenant the service principal/app belongs to", + "type": "string" + }, + "isCertAuth": { + "description": "Is it using certificate to authenticate. If false then use client secret", + "type": "boolean" + }, + "certificate": { + "description": "The content of the certificate used for authentication", + "type": "string" + }, + "thumbprint": { + "description": "The thumbprint of the certificate above", + "type": "string" + }, + "clientSecret": { + "description": "The client secret", + "type": "string" + }, + "authorityUrl": { + "description": "The authority URL used for authentication", + "type": "string" + }, + "resourceUri": { + "description": "The resource the service principal/app has access to", + "type": "string" + }, + "subscriptionId": { + "format": "uuid", + "description": "Subscription Id", + "type": "string" + }, + "resourceGroup": { + "description": "Resource Group Name", + "type": "string" + } + } + }, + "AzurePostgreSql": { + "type": "object", + "properties": { + "serverName": { + "description": "The Azure PostgreSQL server name", + "type": "string" + }, + "databaseName": { + "description": "The Azure PostgreSQL database name", + "type": "string" + }, + "userId": { + "description": "The Azure PostgreSQL user id", + "type": "string" + }, + "userPassword": { + "description": "The Azure PostgreSQL user password", + "type": "string" + }, + "portNumber": { + "description": "The Azure PostgreSQL port number", + "type": "string" + }, + "endpoint": { + "description": "The Azure PostgreSQL server host endpoint", + "type": "string" + }, + "subscriptionId": { + "format": "uuid", + "description": "Subscription Id", + "type": "string" + }, + "resourceGroup": { + "description": "Resource Group Name", + "type": "string" + } + } + }, + "GlusterFs": { + "type": "object", + "properties": { + "serverAddress": { + "description": "The server address of one of the servers that hosts the GlusterFS. Can be either the IP address\r\nor server name.", + "type": "string" + }, + "volumeName": { + "description": "The name of the created GlusterFS volume.", + "type": "string" + } + } + }, + "ClientCredentials": { + "type": "object", + "properties": { + "clientId": { + "format": "uuid", + "description": "The Client ID/Application ID", + "type": "string" + }, + "tenantId": { + "format": "uuid", + "description": "The ID of the tenant the service principal/app belongs to", + "type": "string" + }, + "isCertAuth": { + "description": "Is it using certificate to authenticate. If false then use client secret", + "type": "boolean" + }, + "certificate": { + "description": "The content of the certificate used for authentication", + "type": "string" + }, + "thumbprint": { + "description": "The thumbprint of the certificate above", + "type": "string" + }, + "clientSecret": { + "description": "The client secret", + "type": "string" + }, + "authorityUrl": { + "description": "The authority URL used for authentication", + "type": "string" + }, + "resourceUri": { + "description": "The resource the service principal/app has access to", + "type": "string" + }, + "subscriptionId": { + "format": "uuid", + "description": "Subscription Id", + "type": "string" + }, + "resourceGroup": { + "description": "Resource Group Name", + "type": "string" + } + } + }, + "ErrorResponse": { + "description": "The error response.", + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/RootError", + "description": "The top level error that occurred." + }, + "correlation": { + "description": "Dictionary containing correlation details for the error.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "environment": { + "description": "The hosting environment.", + "type": "string" + }, + "location": { + "description": "The Azure region.", + "type": "string" + }, + "time": { + "format": "date-time", + "description": "The time in UTC.", + "type": "string" + } + } + }, + "RootError": { + "description": "The root error.", + "type": "object", + "properties": { + "code": { + "description": "The service-defined error code. Supported error codes: ServiceError, UserError, ValidationError, AzureStorageError, TransientError, RequestThrottled.", + "type": "string" + }, + "message": { + "description": "A human-readable representation of the error.", + "type": "string" + }, + "target": { + "description": "The target of the error (e.g., the name of the property in error).", + "type": "string" + }, + "details": { + "description": "The related errors that occurred during the request.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetails" + } + }, + "innerError": { + "$ref": "#/definitions/InnerErrorResponse", + "description": "A nested list of inner errors. When evaluating errors, clients MUST traverse through all of the nested “innerErrors” and choose the deepest one that they understand." + } + } + }, + "ErrorDetails": { + "description": "The error details.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string" + }, + "message": { + "description": "The error message.", + "type": "string" + }, + "target": { + "description": "The target of the error (e.g., the name of the property in error).", + "type": "string" + } + } + }, + "InnerErrorResponse": { + "description": "A nested structure of errors.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string" + }, + "innerError": { + "$ref": "#/definitions/InnerErrorResponse", + "description": "A nested list of inner errors. When evaluating errors, clients MUST traverse through all of the nested “innerErrors” and choose the deepest one that they understand." + } + } + } + }, + "parameters": { + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The Azure Subscription ID.", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + }, + "resourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The Name of the resource group in which the workspace is located.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "workspaceNameParameter": { + "name": "workspaceName", + "in": "path", + "description": "The name of the workspace.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "type": "oauth2" + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/execution.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/execution.json new file mode 100644 index 000000000000..16dd23a5fd44 --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/execution.json @@ -0,0 +1,827 @@ +{ + "swagger": "2.0", + "info": { + "version": "2019-09-30", + "title": "Execution Service API" + }, + "schemes": [ + "https" + ], + "paths": { + "/execution/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/startlocalrun": { + "post": { + "tags": [ + "Execution" + ], + "summary": "Start a run on a local machine.", + "description": "Starts an experiment run using the provided definition.json file to define the run.\r\n The source code and configuration is defined in a zip archive in project.zip.", + "operationId": "Execution_StartLocalRun", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json", + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "definition", + "in": "body", + "description": "A JSON run definition structure.", + "required": true, + "schema": { + "$ref": "#/definitions/RunDefinition" + } + }, + { + "name": "runId", + "in": "query", + "description": "A run id. If not supplied a run id will be created automatically.", + "required": false, + "type": "string", + "pattern": "^[a-zA-Z0-9][\\w-]{0,255}$" + } + ], + "responses": { + "200": { + "description": "File Response", + "schema": { + "format": "byte", + "type": "file" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Start a local run": { + "$ref": "./examples/startLocalRun.json" + } + } + } + }, + "/execution/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/startrun": { + "post": { + "tags": [ + "Execution" + ], + "summary": "Start a run on a remote compute target.", + "description": "Starts an experiment run using the provided definition.json file to define the run.\r\n The source code and configuration is defined in a zip archive in project.zip.", + "operationId": "Execution_StartRun", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runDefinitionFile", + "in": "formData", + "description": "The JSON file containing the RunDefinition", + "required": true, + "type": "file" + }, + { + "name": "projectZipFile", + "in": "formData", + "description": "The zip archive of the project folder containing the source code to use for the run.", + "required": true, + "type": "file" + }, + { + "name": "runId", + "in": "query", + "description": "A run id. If not supplied a run id will be created automatically.", + "required": false, + "type": "string", + "pattern": "^[a-zA-Z0-9][\\w-]{0,255}$" + } + ], + "responses": { + "200": { + "description": "A run was successfully started.", + "schema": { + "$ref": "#/definitions/StartRunResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Start a run": { + "$ref": "./examples/startRun.json" + } + } + } + }, + "/execution/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/snapshotrun": { + "post": { + "tags": [ + "Execution" + ], + "summary": "Start a run from a snapshot on a remote compute target.", + "description": "Starts an experiment run on the remote compute target using the provided definition.json file to define the run.\r\n The code for the run is retrieved using the snapshotId in definition.json.", + "operationId": "Execution_StartSnapshotRun", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "definition", + "in": "body", + "description": "A JSON run definition structure.", + "required": true, + "schema": { + "$ref": "#/definitions/RunDefinition" + } + }, + { + "name": "runId", + "in": "query", + "description": "A run id. If not supplied a run id will be created automatically.", + "required": false, + "type": "string", + "pattern": "^[a-zA-Z0-9][\\w-]{0,255}$" + } + ], + "responses": { + "200": { + "description": "A snapshot run was successfully started.", + "schema": { + "$ref": "#/definitions/StartRunResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Start a snapshot run": { + "$ref": "./examples/startSnapshotRun.json" + } + } + } + }, + "/execution/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runId/{runId}/cancel": { + "post": { + "tags": [ + "Execution" + ], + "summary": "Cancel a run.", + "description": "Cancels a run within an experiment.", + "operationId": "Execution_CancelRunWithUri", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The id of the run to cancel.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][\\w-]{0,255}$" + } + ], + "responses": { + "200": { + "description": "The run was successfully cancelled.", + "schema": { + "$ref": "#/definitions/StartRunResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Cancel a run with URI": { + "$ref": "./examples/cancelRunWithUri.json" + } + } + } + } + }, + "definitions": { + "RunDefinition": { + "type": "object", + "properties": { + "configuration": { + "$ref": "#/definitions/RunConfiguration", + "description": "Fully specified configuration information for the run. Even when that information\r\nis contained in configuration files within the project folder, the client collapses\r\nit all and inlines it into the run definition when submitting a run." + }, + "snapshotId": { + "format": "uuid", + "description": "Snapshots are user project folders that have been uploaded to the cloud for subsequent\r\nexecution. This field is required when executing against cloud-based compute targets\r\nunless the run submission was against the API endpoint that takes a zipped project folder\r\ninline with the request.", + "type": "string" + }, + "parentRunId": { + "description": "Specifies that the run history entry for this execution should be scoped within\r\nan existing run as a child. Defaults to null, meaning the run has no parent.\r\nThis is intended for first-party service integration, not third-party API users.", + "type": "string", + "example": "myexperiment_155000000001_0" + }, + "runType": { + "description": "Specifies the runsource property for this run. The default value is \"experiment\" if not specified.", + "type": "string", + "example": "experiment" + } + } + }, + "RunConfiguration": { + "type": "object", + "properties": { + "script": { + "description": "The relative path to the python script file. The file path is relative to the source_directory passed to submit run.", + "type": "string", + "example": "findsquare.py" + }, + "arguments": { + "description": "Command line arguments for the python script file.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + }, + "example": "[\"234\"]" + }, + "framework": { + "description": "The supported frameworks are Python, PySpark, CNTK, TensorFlow, and PyTorch. Use Tensorflow for AmlCompute clusters, and Python for distributed training jobs.", + "enum": [ + "Python", + "PySpark", + "Cntk", + "TensorFlow", + "PyTorch" + ], + "type": "string", + "example": "Python", + "x-ms-enum": { + "name": "Framework", + "modelAsString": false + } + }, + "communicator": { + "description": "The supported communicators are None, ParameterServer, OpenMpi, and IntelMpi Keep in mind that OpenMpi requires a custom image with OpenMpi installed.\r\nUse ParameterServer or OpenMpi for AmlCompute clusters. Use IntelMpi for distributed training jobs.", + "enum": [ + "None", + "ParameterServer", + "Gloo", + "Mpi", + "Nccl" + ], + "type": "string", + "example": "None", + "x-ms-enum": { + "name": "Communicator", + "modelAsString": false + } + }, + "target": { + "description": "Target refers to compute where the job is scheduled for execution. The default target is \"local\" referring to the local machine.", + "type": "string", + "example": "amlcompute" + }, + "dataReferences": { + "description": "All the data sources are made available to the run during execution based on each configuration.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/DataReferenceConfiguration" + } + }, + "jobName": { + "description": "This is primarily intended for notebooks to override the default job name.\r\nDefaults to ArgumentVector[0] if not specified.", + "type": "string", + "example": "FindSquaresJob" + }, + "maxRunDurationSeconds": { + "format": "int64", + "description": "Maximum allowed time for the run. The system will attempt to automatically cancel the run if it took longer than this value.\r\nMaxRunDurationSeconds=null means infinite duration.", + "type": "integer", + "example": "84000" + }, + "nodeCount": { + "format": "int32", + "description": "Number of compute nodes to run the job on. Only applies to AMLCompute.", + "type": "integer", + "example": "1" + }, + "environment": { + "$ref": "#/definitions/EnvironmentDefinition", + "description": "The environment definition, This field configures the python environment.\r\nIt can be configured to use an existing Python environment or configured to setup a temp environment for the experiment.\r\nThe definition is also responsible for setting the required application dependencies." + }, + "history": { + "$ref": "#/definitions/HistoryConfiguration", + "description": "This section is used to disable and enable experiment history logging features." + }, + "spark": { + "$ref": "#/definitions/SparkConfiguration", + "description": "When the platform is set to Pyspark, The spark configuration is used to set the default sparkconf for the submitted job." + }, + "tensorflow": { + "$ref": "#/definitions/TensorflowConfiguration", + "description": "The attribute is used to configure the distributed tensorflow parameters.\r\nThis attribute takes effect only when the framework is set to TensorFlow, and the communicator to ParameterServer.\r\nAmlCompute is the only supported compute for this configuration." + }, + "mpi": { + "$ref": "#/definitions/MpiConfiguration", + "description": "The attribute is used to configure the distributed MPI job parameters.\r\nThis attribute takes effect only when the framework is set to Python, and the communicator to OpenMpi or IntelMpi.\r\nAmlCompute is the only supported compute type for this configuration." + }, + "hdi": { + "$ref": "#/definitions/HdiConfiguration", + "description": "This attribute takes effect only when the target is set to an Azure HDI compute.\r\nThe HDI Configuration is used to set the YARN deployment mode. It is defaulted to cluster mode." + } + } + }, + "DataReferenceConfiguration": { + "description": "A class for managing DataReferenceConfiguration.", + "type": "object", + "properties": { + "dataStoreName": { + "description": "The name of the data store.", + "type": "string", + "example": "myblobstore" + }, + "mode": { + "description": "Operation on the datastore, mount, download, upload.", + "enum": [ + "Mount", + "Download", + "Upload" + ], + "type": "string", + "example": "Mount", + "x-ms-enum": { + "name": "DataStoreMode", + "modelAsString": false + } + }, + "pathOnDataStore": { + "description": "Relative path on the datastore.", + "type": "string", + "example": "/images/validation" + }, + "pathOnCompute": { + "description": "The path on the compute target.", + "type": "string" + }, + "overwrite": { + "description": "Whether to overwrite the data if existing.", + "type": "boolean" + } + } + }, + "EnvironmentDefinition": { + "type": "object", + "properties": { + "name": { + "description": "The name of the environment.", + "type": "string", + "example": "mydevenvironment" + }, + "version": { + "description": "The environment version.", + "type": "string", + "example": "1" + }, + "python": { + "$ref": "#/definitions/PythonSection", + "description": "Settings for a Python environment." + }, + "environmentVariables": { + "description": "Definition of environment variables to be defined in the environment.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "docker": { + "$ref": "#/definitions/DockerSection", + "description": "The definition of a Docker container." + }, + "spark": { + "$ref": "#/definitions/SparkSection", + "description": "The configuration for a Spark environment." + }, + "inferencingStackVersion": { + "description": "The inferencing stack version added to the image. To avoid adding an inferencing stack, do not set this value. Valid values: \"latest\".", + "type": "string", + "example": "latest" + } + } + }, + "HistoryConfiguration": { + "type": "object", + "properties": { + "outputCollection": { + "description": "Set to true to collect outputs and store in run history.", + "type": "boolean" + }, + "directoriesToWatch": { + "description": "The list of directories to monitor and upload files from.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + }, + "example": "[\"logs\", \"outputs\"]" + } + } + }, + "SparkConfiguration": { + "type": "object", + "properties": { + "configuration": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "TensorflowConfiguration": { + "type": "object", + "properties": { + "workerCount": { + "format": "int32", + "description": "The number of workers.", + "type": "integer", + "example": "2" + }, + "parameterServerCount": { + "format": "int32", + "description": "Number of parameter servers.", + "type": "integer", + "example": "1" + } + } + }, + "MpiConfiguration": { + "type": "object", + "properties": { + "processCountPerNode": { + "format": "int32", + "description": "Number of processes per node.", + "type": "integer", + "example": "2" + } + } + }, + "HdiConfiguration": { + "type": "object", + "properties": { + "yarnDeployMode": { + "enum": [ + "None", + "Client", + "Cluster" + ], + "type": "string", + "x-ms-enum": { + "name": "YarnDeployMode", + "modelAsString": false + } + } + } + }, + "PythonSection": { + "type": "object", + "properties": { + "interpreterPath": { + "description": "The python interpreter path. This is only used when user_managed_dependencies=True.", + "type": "string" + }, + "userManagedDependencies": { + "description": "True means that AzureML reuses an existing python environment; False means that AzureML will create a python environment based on the Conda dependencies specification.", + "type": "boolean" + }, + "condaDependencies": { + "type": "object" + }, + "baseCondaEnvironment": { + "type": "string" + } + } + }, + "DockerSection": { + "type": "object", + "properties": { + "baseImage": { + "description": "Base image used for Docker-based runs. Mutually exclusive with BaseDockerfile.", + "type": "string", + "example": "ubuntu:latest" + }, + "baseDockerfile": { + "description": "Base Dockerfile used for Docker-based runs. Mutually exclusive with BaseImage.", + "type": "string", + "example": "FROM ubuntu:latest\r\nRUN echo \"Hello world!\"" + }, + "enabled": { + "description": "Set true to perform this run inside a Docker container.", + "type": "boolean" + }, + "sharedVolumes": { + "description": "Set false to disable AzureML's usage of the Docker shared volumes feature to work around bugs in certain versions of Docker for Windows.", + "type": "boolean" + }, + "arguments": { + "description": "Extra arguments to the Docker run command.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + }, + "baseImageRegistry": { + "$ref": "#/definitions/ContainerRegistry", + "description": "Image registry that contains the base image." + } + } + }, + "SparkSection": { + "type": "object", + "properties": { + "repositories": { + "description": "The list of spark repositories.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + }, + "packages": { + "description": "The Spark packages to use.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/SparkMavenPackage" + } + }, + "precachePackages": { + "description": "Whether to precache the packages.", + "type": "boolean" + } + } + }, + "ContainerRegistry": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "SparkMavenPackage": { + "type": "object", + "properties": { + "group": { + "type": "string" + }, + "artifact": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "StartRunResult": { + "description": "Contains the details of a run.", + "required": [ + "runId" + ], + "type": "object", + "properties": { + "runId": { + "description": "The identifier for a run.", + "type": "string", + "example": "myexperiment_155000000001_0" + } + } + }, + "ErrorResponse": { + "description": "The error response.", + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/RootError", + "description": "The top level error that occurred." + }, + "correlation": { + "description": "Dictionary containing correlation details for the error.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "environment": { + "description": "The hosting environment.", + "type": "string" + }, + "location": { + "description": "The Azure region.", + "type": "string" + }, + "time": { + "format": "date-time", + "description": "The time in UTC.", + "type": "string" + } + } + }, + "RootError": { + "description": "The root error.", + "type": "object", + "properties": { + "code": { + "description": "The service-defined error code. Supported error codes: ServiceError, UserError, ValidationError, AzureStorageError, TransientError, RequestThrottled.", + "type": "string" + }, + "message": { + "description": "A human-readable representation of the error.", + "type": "string" + }, + "target": { + "description": "The target of the error (e.g., the name of the property in error).", + "type": "string" + }, + "details": { + "description": "The related errors that occurred during the request.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetails" + } + }, + "innerError": { + "$ref": "#/definitions/InnerErrorResponse", + "description": "A nested list of inner errors. When evaluating errors, clients MUST traverse through all of the nested “innerErrors” and choose the deepest one that they understand." + } + } + }, + "ErrorDetails": { + "description": "The error details.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string" + }, + "message": { + "description": "The error message.", + "type": "string" + }, + "target": { + "description": "The target of the error (e.g., the name of the property in error).", + "type": "string" + } + } + }, + "InnerErrorResponse": { + "description": "A nested structure of errors.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string" + }, + "innerError": { + "$ref": "#/definitions/InnerErrorResponse", + "description": "A nested list of inner errors. When evaluating errors, clients MUST traverse through all of the nested “innerErrors” and choose the deepest one that they understand." + } + } + } + }, + "parameters": { + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The Azure Subscription ID.", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + }, + "resourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The Name of the resource group in which the workspace is located.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "workspaceNameParameter": { + "name": "workspaceName", + "in": "path", + "description": "The name of the workspace.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "type": "oauth2" + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/hyperdrive.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/hyperdrive.json new file mode 100644 index 000000000000..7e5dab1fd1ca --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/hyperdrive.json @@ -0,0 +1,575 @@ +{ + "swagger": "2.0", + "info": { + "description": "HyperDrive REST API", + "version": "2019-09-30", + "title": "HyperDrive" + }, + "tags": [], + "schemes": [ + "https" + ], + "paths": { + "/hyperdrive/v1.0/{armScope}/runs": { + "post": { + "tags": [ + "HyperDriveExperiment" + ], + "summary": "Create an Experiment.", + "description": "Create a HyperDrive Experiment.", + "operationId": "HyperDrive_CreateExperiment", + "consumes": [ + "multipart/form-data" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ArmScopeParameter" + }, + { + "in": "formData", + "name": "config", + "description": "The configuration file with experiment JSON content. A text file that is a JSON-serialized '#/definitions/HyperDriveCreateExperiment' object.", + "type": "file", + "required": true + } + ], + "responses": { + "201": { + "description": "OK", + "schema": { + "$ref": "#/definitions/HyperDriveExperimentResponse" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "#/definitions/HyperDriveErrorResponse" + } + } + }, + "x-ms-examples": { + "Create a HyperDrive experiment": { + "$ref": "./examples/createHyperDriveExperiment.json" + } + } + } + }, + "/hyperdrive/v1.0/{armScope}/runs/{runId}/cancel": { + "post": { + "tags": [ + "HyperDriveExperiment" + ], + "summary": "Cancel an Experiment.", + "description": "Cancel a HyperDrive Experiment.", + "operationId": "HyperDrive_CancelExperiment", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ArmScopeParameter" + }, + { + "name": "runId", + "in": "path", + "description": "Hyperdrive run id to cancel.", + "required": true, + "type": "string" + }, + { + "in": "header", + "name": "RunHistoryHost", + "description": "The host for run location.", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/HyperDriveCancelExperimentResponse" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "#/definitions/HyperDriveErrorResponse" + } + } + }, + "x-ms-examples": { + "Cancel a HyperDrive experiment": { + "$ref": "./examples/cancelHyperDriveExperiment.json" + } + } + } + } + }, + "definitions": { + "HyperDriveErrorResponse": { + "properties": { + "code": { + "format": "int32", + "type": "integer", + "description": "Error response code." + }, + "message": { + "type": "string", + "description": "Error message." + } + }, + "required": [ + "code", + "message" + ], + "type": "object", + "description": "Response in case of an error." + }, + "HyperDriveCancelExperimentResponse": { + "properties": { + "code": { + "format": "int32", + "type": "integer", + "description": "Response code." + }, + "result": { + "type": "string", + "description": "Message indicating operation success." + } + }, + "required": [ + "code", + "result" + ], + "type": "object", + "description": "Response for HyperDrive_CancelExperiment in case of success." + }, + "HyperDriveExperimentBase": { + "description": "Base object for both request and response of HyperDrive_CreateExperiment api.", + "properties": { + "description": { + "maxLength": 511, + "type": "string", + "x-nullable": true, + "description": "The description for Hyperdrive run." + }, + "generator_config": { + "description": "Hyperparameter space and the sampling method configuration.", + "properties": { + "name": { + "type": "string", + "enum": [ + "RANDOM", + "GRID", + "BAYESIANOPTIMIZATION" + ], + "description": "Hyperparameter sampling method.", + "x-ms-enum": { + "name": "Name", + "modelAsString": true + } + }, + "parameter_space": { + "type": "object", + "additionalProperties":{ + "type": "array", + "items": {}, + "minItems": 2, + "maxItems": 2, + "description": "The first element in the array is a string identifying the parameter expression type like choice, uniform etc. The second element is a parameter expressions corresponding to the type.\r\n Please refer to https://docs.microsoft.com/en-us/python/api/azureml-train-core/azureml.train.hyperdrive.parameter_expressions?view=azure-ml-py for a list of supported types and options for each type.\r\n choice parameters are specified as ['choice', [[1, 2, 3, 4]]]. randint is in format ['randint', [1]].\r\n uniform, loguniform, normal, lognormal are in format [expression type, [0.01, 0.05]].\r\n quniform, qloguniform, qnormal, qlognormal are in format [expression type, [0.01, 0.05, 3]].\r\n", + "example": ["choice", [[1, 2, 3, 4]]] + }, + "description": "Dictionary specifying hyperparameter space." + } + }, + "required": [ + "name", + "parameter_space" + ], + "type": "object" + }, + "max_concurrent_jobs": { + "format": "int32", + "maximum": 100, + "minimum": 1, + "type": "integer", + "description": "Maximum number of runs to run concurrently." + }, + "max_duration_minutes": { + "format": "int32", + "maximum": 43200, + "minimum": 1, + "type": "integer", + "description": "Maximum duration of the Hyperdrive run." + }, + "max_total_jobs": { + "format": "int32", + "maximum": 1000, + "minimum": 1, + "type": "integer", + "description": "Maximum number of runs." + }, + "name": { + "maxLength": 255, + "type": "string", + "description": "Name of the Hyperdrive run." + }, + "platform": { + "type": "string", + "enum": [ + "AML" + ], + "description": "Platform of the Hyperdrive run.", + "x-ms-enum": { + "name": "Platform", + "modelAsString": true + } + }, + "platform_config": { + "type": "object", + "description": "Platform config object specifying the run definition structure." + }, + "policy_config": { + "description": "Early termination policy configuration.", + "$ref": "#/definitions/HyperDrivePolicyConfigBase" + }, + "primary_metric_config": { + "description": "Name of the primary metric and goal of optimizing.", + "properties": { + "goal": { + "type": "string", + "enum": [ + "MAXIMIZE", + "MINIMIZE" + ], + "description": "Determines if the primary metric has to be minimized/maximized.", + "x-ms-enum": { + "name": "Goal", + "modelAsString": true + } + }, + "name": { + "type": "string", + "description": "Name of the primary metric reported by runs." + } + }, + "required": [ + "goal", + "name" + ], + "type": "object" + }, + "study_id": { + "format": "int32", + "minimum": 0, + "type": "integer", + "x-nullable": true, + "description": "Study Id of the Hyperdrive run." + } + }, + "required": [ + "generator_config", + "name", + "platform", + "platform_config", + "policy_config", + "primary_metric_config" + ], + "type": "object" + }, + "HyperDriveExperiment": { + "type": "object", + "description": "Part of response for HyperDrive_CreateExperiment in case of success. Contains details about the created hyperdrive run.", + "allOf": [ + { + "$ref": "#/definitions/HyperDriveExperimentBase" + }, + { + "type": "object", + "properties": { + "all_jobs_generated": { + "type": "boolean", + "description": "Indicates if all runs have been generated." + }, + "cancellation_requested": { + "type": "boolean", + "description": "Indicates if cancellation has been requested for this Hyperdrive run." + }, + "created": { + "format": "date-time", + "type": "string", + "description": "Hyperdrive run creation time." + }, + "created_by_user_id": { + "format": "int32", + "type": "integer", + "description": "Id of the user who created the Hyperdrive run." + }, + "experiment_id": { + "type": "string", + "description": "Hyperdrive run id." + }, + "experiment_uri": { + "type": "string", + "description": "Hyperdrive run Uri." + }, + "modified": { + "format": "date-time", + "type": "string", + "description": "Hyperdrive run modification time." + }, + "status": { + "type": "string", + "description": "Hyperdrive run status." + }, + "study_uri": { + "type": "string", + "description": "Study Uri of the Hyperdrive run." + }, + "hyperdrive_run_id": { + "type": "string", + "description": "Hyperdrive run id." + } + }, + "required": [ + "all_jobs_generated", + "cancellation_requested", + "created", + "created_by_user_id", + "experiment_id", + "modified", + "status", + "hyperdrive_run_id" + ] + } + ], + "properties": {} + }, + "HyperDriveCreateExperiment": { + "type": "object", + "description": "Part of request for HyperDrive_CreateExperiment. Contains configuration details required to create hyperdrive run.", + "allOf": [ + { + "$ref": "#/definitions/HyperDriveExperimentBase" + }, + { + "type": "object", + "properties": { + "user": { + "maxLength": 255, + "type": "string", + "description": "User who is creating the Hyperdrive run." + } + }, + "required": [ + "user" + ] + } + ], + "properties": {} + }, + "HyperDrivePolicyConfigBase": { + "description": "Early termination policy configuration.", + "properties": { + "name": { + "type": "string", + "enum": [ + "Default", + "Bandit", + "MedianStopping", + "TruncationSelection" + ], + "description": "Type of early termination policy.", + "x-ms-enum": { + "name": "Name", + "modelAsString": true + } + } + }, + "required": [ + "name" + ], + "type": "object", + "discriminator": "name" + }, + "HyperDriveDefaultPolicy": { + "type": "object", + "description": "No early termination is applied in the case of DefaultPolicy", + "allOf": [ + { + "$ref": "#/definitions/HyperDrivePolicyConfigBase" + } + ], + "properties": {}, + "x-ms-discriminator-value": "Default" + }, + "HyperDriveBanditPolicy": { + "type": "object", + "description": "Bandit Policy configuration. Please refer https://docs.microsoft.com/en-us/python/api/azureml-train-core/azureml.train.hyperdrive.banditpolicy?view=azure-ml-py for more information.", + "allOf": [ + { + "$ref": "#/definitions/HyperDrivePolicyConfigBase" + }, + { + "type": "object", + "properties": { + "properties": { + "type": "object", + "description": "Policy configuration properties.", + "properties": { + "evaluation_interval": { + "format": "int32", + "type": "integer", + "description": "Evaluation interval of the policy." + }, + "delay_evaluation": { + "format": "int32", + "type": "integer", + "description": "Value indicating the number of sequences for which the first evaluation is delayed." + }, + "slack_factor": { + "format": "float", + "type": "number", + "description": "Slack factor." + }, + "slack_amount": { + "format": "float", + "type": "number", + "description": "Slack amount." + } + } + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "Bandit" + }, + "HyperDriveMedianStoppingPolicy": { + "type": "object", + "description": "Median stopping policy configuration. Please refer https://docs.microsoft.com/en-us/python/api/azureml-train-core/azureml.train.hyperdrive.medianstoppingpolicy?view=azure-ml-py for more information.", + "allOf": [ + { + "$ref": "#/definitions/HyperDrivePolicyConfigBase" + }, + { + "type": "object", + "properties": { + "properties": { + "type": "object", + "description": "Policy configuration properties.", + "properties": { + "evaluation_interval": { + "format": "int32", + "type": "integer", + "description": "Evaluation interval of the policy." + }, + "delay_evaluation": { + "format": "int32", + "type": "integer", + "description": "Value indicating the number of sequences for which the first evaluation is delayed." + } + } + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "MedianStopping" + }, + "HyperDriveTruncationSelectionPolicy": { + "type": "object", + "description": "Truncation selection policy configuration. Please refer https://docs.microsoft.com/en-us/python/api/azureml-train-core/azureml.train.hyperdrive.truncationselectionpolicy?view=azure-ml-py for more information.", + "allOf": [ + { + "$ref": "#/definitions/HyperDrivePolicyConfigBase" + }, + { + "type": "object", + "properties": { + "properties": { + "type": "object", + "description": "Policy configuration properties.", + "properties": { + "evaluation_interval": { + "format": "int32", + "type": "integer", + "description": "Evaluation interval of the policy." + }, + "delay_evaluation": { + "format": "int32", + "type": "integer", + "description": "Value indicating the number of sequences for which the first evaluation is delayed." + }, + "truncation_percentage": { + "format": "int32", + "type": "integer", + "description": "Truncation percentage value." + }, + "exclude_finished_jobs": { + "type": "boolean", + "description": "Boolean indicating if metrics from finished jobs should be excluded in the policy decision process." + } + } + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "TruncationSelection" + }, + "HyperDriveExperimentResponse": { + "description": "Response for HyperDrive_CreateExperiment in case of success.", + "properties": { + "code": { + "format": "int32", + "type": "integer", + "description": "Response code." + }, + "result": { + "description": "Details about created Hyperdrive run.", + "$ref": "#/definitions/HyperDriveExperiment" + } + }, + "required": [ + "code", + "result" + ], + "type": "object" + } + }, + "parameters": { + "ArmScopeParameter": { + "name": "armScope", + "in": "path", + "description": "The ARM scope passed in through URL with format:\r\n subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}.\r\n", + "required": true, + "type": "string", + "x-ms-skip-url-encoding": true, + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "type": "oauth2" + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ] +} \ No newline at end of file diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/modelManagement.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/modelManagement.json new file mode 100644 index 000000000000..aa003a50c808 --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/modelManagement.json @@ -0,0 +1,3603 @@ +{ + "swagger": "2.0", + "info": { + "version": "2019-09-30", + "title": "Azure Machine Learning Model Management Service", + "description": "These APIs allow end users to manage Azure Machine Learning Models, Images, Profiles, and Services." + }, + "paths": { + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/assets": { + "get": { + "tags": [ + "Asset" + ], + "summary": "Query the list of Assets in a workspace.", + "description": "If no filter is passed, the query lists all the Assets in the given workspace. The returned list is paginated and the count of items in each page is an optional parameter.", + "operationId": "Assets_ListQuery", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "runId", + "in": "query", + "description": "The run Id associated with the Assets.", + "required": false, + "type": "string" + }, + { + "name": "name", + "in": "query", + "description": "The object name.", + "required": false, + "type": "string" + }, + { + "name": "count", + "in": "query", + "description": "The number of items to retrieve in a page.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$skipToken", + "in": "query", + "description": "The continuation token to retrieve the next page.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "A set of tags with which to filter the returned models.\r\n It is a comma separated string of tags key or tags key=value\r\n Example: tagKey1,tagKey2,tagKey3=value3", + "required": false, + "type": "string" + }, + { + "name": "properties", + "in": "query", + "description": "A set of properties with which to filter the returned models.\r\n It is a comma separated string of properties key and/or properties key=value\r\n Example: propKey1,propKey2,propKey3=value3", + "required": false, + "type": "string" + }, + { + "name": "orderby", + "in": "query", + "description": "An option for specifying how to order the list.", + "required": false, + "type": "string", + "default": "CreatedAtDesc", + "enum": [ + "CreatedAtDesc", + "CreatedAtAsc", + "UpdatedAtDesc", + "UpdatedAtAsc" + ] + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PaginatedAssetList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "tags": [ + "Asset" + ], + "summary": "Create an Asset.", + "description": "Create an Asset from the provided payload.", + "operationId": "Assets_Create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "asset", + "in": "body", + "description": "The Asset to be created.", + "required": false, + "schema": { + "$ref": "#/definitions/Asset" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Asset" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/assets/{id}": { + "get": { + "tags": [ + "Asset" + ], + "summary": "Get an Asset.", + "description": "Get an Asset by Id.", + "operationId": "Assets_QueryById", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The Asset Id.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Asset" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Asset" + ], + "summary": "Delete an Asset.", + "description": "Delete the specified Asset.", + "operationId": "Assets_Delete", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The Id of the Asset to delete.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The resource exists and was deleted successfully." + }, + "204": { + "description": "The resource does not exist and the request was well formed." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + }, + "patch": { + "tags": [ + "Asset" + ], + "summary": "Update an Asset.", + "description": "Patch a specific Asset.", + "operationId": "Assets_Patch", + "consumes": [ + "application/json-patch+json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The Id of the Asset to patch.", + "required": true, + "type": "string" + }, + { + "name": "patch", + "in": "body", + "description": "The payload that is used to patch an Asset.", + "required": true, + "schema": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/JsonPatchOperation" + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Asset" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/models/{id}": { + "get": { + "tags": [ + "Model" + ], + "summary": "Gets a model.", + "description": "Gets a model by model id.", + "operationId": "MLModels_QueryById", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The model id.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Model" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Model" + ], + "summary": "Delete the specified Model.", + "description": "Deletes a model if it exists.", + "operationId": "MLModels_Delete", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The model id.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The resource exists and was deleted successfully." + }, + "204": { + "description": "The resource does not exist and the request was well formed." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + }, + "patch": { + "tags": [ + "Model" + ], + "summary": "Patch a specific model.", + "description": "Updates an existing model with the specified patch.", + "operationId": "MLModels_Patch", + "consumes": [ + "application/json-patch+json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The model id.", + "required": true, + "type": "string" + }, + { + "name": "patch", + "in": "body", + "description": "The payload that is used to patch the model.", + "required": true, + "schema": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/JsonPatchOperation" + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Model" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/models": { + "get": { + "tags": [ + "Model" + ], + "summary": "Query the list of Models in a workspace.", + "description": "The result list can be filtered using tag and name. If no filter is passed, the query lists all the Models in the given workspace. The returned list is paginated and the count of items in each page is an optional parameter.", + "operationId": "MLModels_ListQuery", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "name", + "in": "query", + "description": "The object name.", + "required": false, + "type": "string" + }, + { + "name": "framework", + "in": "query", + "description": "The framework.", + "required": false, + "type": "string" + }, + { + "name": "description", + "in": "query", + "description": "The object description.", + "required": false, + "type": "string" + }, + { + "name": "count", + "in": "query", + "description": "The number of items to retrieve in a page.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$skipToken", + "in": "query", + "description": "The continuation token to retrieve the next page.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "A set of tags with which to filter the returned models.\r\n It is a comma separated string of tags key or tags key=value\r\n Example: tagKey1,tagKey2,tagKey3=value3", + "required": false, + "type": "string" + }, + { + "name": "properties", + "in": "query", + "description": "A set of properties with which to filter the returned models.\r\n It is a comma separated string of properties key and/or properties key=value\r\n Example: propKey1,propKey2,propKey3=value3", + "required": false, + "type": "string" + }, + { + "name": "runId", + "in": "query", + "description": "The runId which created the model.", + "required": false, + "type": "string" + }, + { + "name": "orderBy", + "in": "query", + "description": "An option to specify how the models are ordered in the response.", + "required": false, + "type": "string", + "default": "CreatedAtDesc", + "enum": [ + "CreatedAtDesc", + "CreatedAtAsc", + "UpdatedAtDesc", + "UpdatedAtAsc" + ] + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PaginatedModelList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "tags": [ + "Model" + ], + "summary": "Register a model.", + "description": "Register the model provided.", + "operationId": "MLModels_Register", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "model", + "in": "body", + "description": "The payload that is used to register the model.", + "required": true, + "schema": { + "$ref": "#/definitions/Model" + } + } + ], + "responses": { + "200": { + "description": "The model registration was successful.", + "schema": { + "$ref": "#/definitions/Model" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/models/{id}/metrics": { + "get": { + "tags": [ + "Model" + ], + "summary": "Retrieve the metrics for a Model.", + "description": "The operational events collected for the Model are returned.", + "operationId": "MLModels_GetMetrics", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The Model Id.", + "required": true, + "type": "string" + }, + { + "name": "startDate", + "in": "query", + "description": "The start date from which to retrieve metrics, ISO 8601 literal format.", + "required": false, + "type": "string" + }, + { + "name": "endDate", + "in": "query", + "description": "The end date from which to retrieve metrics, ISO 8601 literal format.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ModelOperationalState" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/operations/{id}": { + "get": { + "tags": [ + "Operations" + ], + "summary": "Get the status of an async operation.", + "description": "Get the status of an async operation by operation id.", + "operationId": "Operations_Get", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The operation id.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AsyncOperationStatus" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/images/{imageId}/profiles/{id}": { + "get": { + "tags": [ + "Profile" + ], + "summary": "Get a Profile.", + "description": "Get the Profile for an Image.", + "operationId": "Profiles_QueryById", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "imageId", + "in": "path", + "description": "The Image Id.", + "required": true, + "type": "string" + }, + { + "name": "id", + "in": "path", + "description": "The Profile Id.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ProfileResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/images/{imageId}/profiles": { + "get": { + "tags": [ + "Profile" + ], + "summary": "Get a list of Image Profiles.", + "description": "If no filter is passed, the query lists all Profiles for the Image. The returned list is paginated and the count of items in each page is an optional parameter.", + "operationId": "Profiles_ListQuery", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "imageId", + "in": "path", + "description": "The Image Id.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "query", + "description": "The Profile name.", + "required": false, + "type": "string" + }, + { + "name": "description", + "in": "query", + "description": "The Profile description.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "A set of tags with which to filter the returned models.\r\n It is a comma separated string of tags key or tags key=value\r\n Example: tagKey1,tagKey2,tagKey3=value3", + "required": false, + "type": "string" + }, + { + "name": "properties", + "in": "query", + "description": "A set of properties with which to filter the returned models.\r\n It is a comma separated string of properties key and/or properties key=value\r\n Example: propKey1,propKey2,propKey3=value3", + "required": false, + "type": "string" + }, + { + "name": "count", + "in": "query", + "description": "The number of items to retrieve in a page.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$skipToken", + "in": "query", + "description": "The continuation token to retrieve the next page.", + "required": false, + "type": "string" + }, + { + "name": "orderBy", + "in": "query", + "description": "The option to order the response.", + "required": false, + "type": "string", + "default": "CreatedAtDesc", + "enum": [ + "CreatedAtDesc", + "CreatedAtAsc", + "UpdatedAtDesc", + "UpdatedAtAsc" + ] + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PaginatedProfileResponseList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "tags": [ + "Profile" + ], + "summary": "Create a Profile.", + "description": "Create a Profile for an Image.", + "operationId": "Profiles_Create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "imageId", + "in": "path", + "description": "The Image Id.", + "required": true, + "type": "string" + }, + { + "name": "inputRequest", + "in": "body", + "description": "The payload that is used to create the Profile.", + "required": true, + "schema": { + "$ref": "#/definitions/ProfileRequestBase" + } + } + ], + "responses": { + "202": { + "description": "The request was accepted. The header 'Operation-Location' contains the async operation location URL. Accessing this URL with a GET call will return the status of the background task." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/services/{id}": { + "get": { + "tags": [ + "Service" + ], + "summary": "Get a Service.", + "description": "Get a Service by Id.", + "operationId": "Services_QueryById", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The Service Id.", + "required": true, + "type": "string" + }, + { + "name": "expand", + "in": "query", + "description": "Set to True to include Model details.", + "required": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ServiceResponseBase" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + }, + "delete": { + "tags": [ + "Service" + ], + "summary": "Delete a Service.", + "description": "Delete a specific Service.", + "operationId": "Services_Delete", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The Service Id.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The resource exists and was deleted successfully." + }, + "202": { + "description": "Success" + }, + "204": { + "description": "The resource does not exist and the request was well formed." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + }, + "patch": { + "tags": [ + "Service" + ], + "summary": "Patch a Service.", + "description": "Patch a specific Service.", + "operationId": "Services_Patch", + "consumes": [ + "application/json-patch+json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The Service Id.", + "required": true, + "type": "string" + }, + { + "name": "patch", + "in": "body", + "description": "The payload that is used to patch the Service.", + "required": true, + "schema": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/JsonPatchOperation" + } + } + } + ], + "responses": { + "200": { + "description": "Success" + }, + "202": { + "description": "The request was accepted. The header 'Operation-Location' contains the async operation location URL. Accessing this URL with a GET call will return the status of the background task." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/services": { + "get": { + "tags": [ + "Service" + ], + "summary": "Query the list of Services in a Workspace.", + "description": "If no filter is passed, the query lists all Services in the Workspace. The returned list is paginated and the count of item in each page is an optional parameter.", + "operationId": "Services_ListQuery", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "imageId", + "in": "query", + "description": "The Image Id.", + "required": false, + "type": "string" + }, + { + "name": "imageName", + "in": "query", + "description": "The Image name.", + "required": false, + "type": "string" + }, + { + "name": "modelId", + "in": "query", + "description": "The Model Id.", + "required": false, + "type": "string" + }, + { + "name": "modelName", + "in": "query", + "description": "The Model name.", + "required": false, + "type": "string" + }, + { + "name": "name", + "in": "query", + "description": "The object name.", + "required": false, + "type": "string" + }, + { + "name": "count", + "in": "query", + "description": "The number of items to retrieve in a page.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "computeType", + "in": "query", + "description": "The compute environment type.", + "required": false, + "type": "string" + }, + { + "name": "$skipToken", + "in": "query", + "description": "The continuation token to retrieve the next page.", + "required": false, + "type": "string" + }, + { + "name": "tags", + "in": "query", + "description": "A set of tags with which to filter the returned models.\r\n It is a comma separated string of tags key or tags key=value\r\n Example: tagKey1,tagKey2,tagKey3=value3", + "required": false, + "type": "string" + }, + { + "name": "properties", + "in": "query", + "description": "A set of properties with which to filter the returned models.\r\n It is a comma separated string of properties key and/or properties key=value\r\n Example: propKey1,propKey2,propKey3=value3", + "required": false, + "type": "string" + }, + { + "name": "expand", + "in": "query", + "description": "Set to True to include Model details.", + "required": false, + "type": "boolean", + "default": false + }, + { + "name": "orderby", + "in": "query", + "description": "The option to order the response.", + "required": false, + "type": "string", + "default": "UpdatedAtDesc", + "enum": [ + "CreatedAtDesc", + "CreatedAtAsc", + "UpdatedAtDesc", + "UpdatedAtAsc" + ] + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PaginatedServiceList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + }, + "post": { + "tags": [ + "Service" + ], + "summary": "Create a Service.", + "description": "Create a Service with the specified payload.", + "operationId": "Services_Create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "request", + "in": "body", + "description": "The payload that is used to create the Service.", + "required": true, + "schema": { + "$ref": "#/definitions/CreateServiceRequest" + } + } + ], + "responses": { + "202": { + "description": "The request was accepted. The header 'Operation-Location' contains the async operation location URL. Accessing this URL with a GET call will return the status of the background task." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/services/{id}/listkeys": { + "post": { + "tags": [ + "Service", + "Keys" + ], + "summary": "Lists Service keys.", + "description": "Gets a list of Service keys.", + "operationId": "Services_ListServiceKeys", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The Service Id.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AuthKeys" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/services/{id}/regenerateKeys": { + "post": { + "tags": [ + "Service", + "Keys" + ], + "summary": "Regenerate Service Keys.", + "description": "Regenerate and return the Service keys.", + "operationId": "Services_RegenerateServiceKeys", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The Service Id.", + "required": true, + "type": "string" + }, + { + "name": "request", + "in": "body", + "description": "The payload that is used to regenerate keys.", + "required": true, + "schema": { + "$ref": "#/definitions/RegenerateServiceKeysRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AuthKeys" + } + }, + "202": { + "description": "The request was accepted. The header 'Operation-Location' contains the async operation location URL. Accessing this URL with a GET call will return the status of the background task." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + }, + "/modelmanagement/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.MachineLearningServices/workspaces/{workspace}/services/{id}/token": { + "post": { + "tags": [ + "Service", + "Token" + ], + "summary": "Generate Service Access Token.", + "description": "Gets access token that can be used for calling service.", + "operationId": "Services_GetServiceToken", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupParameter" + }, + { + "$ref": "#/parameters/workspaceParameter" + }, + { + "name": "id", + "in": "path", + "description": "The Service Id.", + "required": true, + "type": "string" + } + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AuthToken" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ModelErrorResponse" + } + } + } + } + } + }, + "definitions": { + "Asset": { + "description": "The Asset definition.", + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "description": "The Asset Id.", + "type": "string" + }, + "name": { + "description": "The name of the Asset.", + "type": "string" + }, + "description": { + "description": "The Asset description.", + "type": "string" + }, + "artifacts": { + "description": "A list of child artifacts.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ArtifactDetails" + } + }, + "kvTags": { + "description": "The Asset tag dictionary. Tags are mutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "description": "The Asset property dictionary. Properties are immutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "runid": { + "description": "The RunId associated with this Asset.", + "type": "string" + }, + "meta": { + "description": "A dictionary containing metadata about the Asset.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "createdTime": { + "format": "date-time", + "description": "The time the Asset was created in UTC.", + "type": "string", + "readOnly": true + } + } + }, + "ArtifactDetails": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "prefix": { + "type": "string" + } + } + }, + "PaginatedAssetList": { + "description": "A paginated list of Assets.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type Asset.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Asset" + } + }, + "nextLink": { + "description": "A continuation link (absolute URI) to the next page of results in the list.", + "type": "string" + } + } + }, + "JsonPatchOperation": { + "description": "The Json Patch definition.", + "type": "object", + "properties": { + "value": { + "description": "The value.", + "type": "object" + }, + "path": { + "description": "The target location.", + "type": "string" + }, + "op": { + "description": "The operation.", + "type": "string" + }, + "from": { + "description": "The source location.", + "type": "string" + } + } + }, + "Model": { + "description": "An Azure Machine Learning Model.", + "required": [ + "name", + "url", + "mimeType" + ], + "type": "object", + "properties": { + "id": { + "description": "The Model Id.", + "type": "string", + "example": "sklearn_mnist:1" + }, + "name": { + "description": "The Model name.", + "type": "string", + "example": "sklearn_mnist" + }, + "framework": { + "description": "The Model framework.", + "type": "string" + }, + "frameworkVersion": { + "description": "The Model framework version.", + "type": "string" + }, + "version": { + "format": "int64", + "description": "The Model version assigned by Model Management Service.", + "type": "integer", + "example": "1" + }, + "datasets": { + "description": "The list of datasets associated with the model.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/DatasetReference" + } + }, + "url": { + "description": "The URL of the Model. Usually a SAS URL.", + "type": "string" + }, + "mimeType": { + "description": "The MIME type of Model content. For more details about MIME type, please open https://www.iana.org/assignments/media-types/media-types.xhtml", + "type": "string" + }, + "description": { + "description": "The Model description text.", + "type": "string", + "example": "A mnist model, first version." + }, + "createdTime": { + "format": "date-time", + "description": "The Model creation time (UTC).", + "type": "string", + "readOnly": true + }, + "modifiedTime": { + "format": "date-time", + "description": "The Model last modified time (UTC).", + "type": "string", + "readOnly": true + }, + "unpack": { + "description": "Indicates whether we need to unpack the Model during docker Image creation.", + "type": "boolean" + }, + "parentModelId": { + "description": "The Parent Model Id.", + "type": "string", + "example": "sklearn_mnist_root:1" + }, + "runId": { + "description": "The RunId that created this model.", + "type": "string" + }, + "experimentName": { + "description": "The name of the experiment where this model was created.", + "type": "string" + }, + "kvTags": { + "description": "The Model tag dictionary. Items are mutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "description": "The Model property dictionary. Properties are immutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "DatasetReference": { + "description": "The dataset reference object.", + "type": "object", + "properties": { + "name": { + "description": "The name of the dataset reference.", + "type": "string" + }, + "id": { + "description": "The id of the dataset reference.", + "type": "string" + } + } + }, + "PaginatedModelList": { + "description": "A paginated list of Models.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type Model.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Model" + } + }, + "nextLink": { + "description": "A continuation link (absolute URI) to the next page of results in the list.", + "type": "string" + } + } + }, + "ModelOperationalState": { + "description": "The operational state of the Model.", + "type": "object", + "properties": { + "deploymentSummary": { + "$ref": "#/definitions/DeploymentSummary", + "description": "The summary of the deployment." + }, + "endTime": { + "description": "The deployment end time.", + "type": "string" + }, + "startTime": { + "description": "The deployment start time.", + "type": "string" + } + } + }, + "DeploymentSummary": { + "description": "The deployment summary.", + "type": "object", + "properties": { + "successfulDeployments": { + "format": "int32", + "description": "The number of successful deployments.", + "type": "integer" + }, + "unsuccessfulDeployments": { + "format": "int32", + "description": "The number of unsuccessful deployments.", + "type": "integer" + } + } + }, + "AsyncOperationStatus": { + "description": "The async operation status.", + "type": "object", + "properties": { + "id": { + "description": "The async operation id.", + "type": "string" + }, + "operationType": { + "description": "The async operation type.", + "type": "string" + }, + "state": { + "description": "The async operation state.", + "enum": [ + "NotStarted", + "Running", + "Cancelled", + "Succeeded", + "Failed", + "TimedOut" + ], + "type": "string", + "x-ms-enum": { + "name": "AsyncOperationState", + "modelAsString": false + } + }, + "createdTime": { + "format": "date-time", + "description": "The async operation creation time (UTC).", + "type": "string" + }, + "endTime": { + "format": "date-time", + "description": "The async operation end time (UTC)l", + "type": "string" + }, + "error": { + "$ref": "#/definitions/ModelErrorResponse", + "description": "The error details." + }, + "resourceLocation": { + "description": "The resource created/updated by the async operation.", + "type": "string" + }, + "operationLog": { + "description": "The async operation log.", + "type": "string" + }, + "operationDetails": { + "$ref": "#/definitions/AsyncOperationDetails", + "description": "The async operation details." + }, + "parentRequestId": { + "description": "The request id that created this operation", + "type": "string" + } + } + }, + "ModelErrorResponse": { + "description": "The Model Management Service Error object.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string" + }, + "statusCode": { + "format": "int32", + "description": "The HTTP status code.", + "type": "integer" + }, + "message": { + "description": "The error message.", + "type": "string" + }, + "details": { + "description": "An array of error detail objects.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetails" + } + } + } + }, + "AsyncOperationDetails": { + "description": "The async operation details.", + "type": "object", + "properties": { + "subOperationType": { + "description": "The suboperation type.", + "type": "string" + }, + "subOperationState": { + "description": "The suboperation state.", + "type": "string" + } + } + }, + "ErrorDetails": { + "description": "The error details.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string" + }, + "message": { + "description": "The error message.", + "type": "string" + }, + "target": { + "description": "The target of the error (e.g., the name of the property in error).", + "type": "string" + } + } + }, + "ProfileResponse": { + "description": "The profile response.", + "type": "object", + "properties": { + "name": { + "description": "The profile name.", + "type": "string" + }, + "description": { + "description": "The profile description.", + "type": "string" + }, + "imageId": { + "description": "The Image Id.", + "type": "string" + }, + "inputData": { + "description": "The input data.", + "type": "string" + }, + "state": { + "description": "The state of the profile.", + "type": "string" + }, + "createdTime": { + "format": "date-time", + "description": "The profile creation time (UTC).", + "type": "string" + }, + "kvTags": { + "description": "The profile tags dictionary. Tags are mutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "description": "The profile properties dictionary. Properties are immutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "recommendedMemoryInGB": { + "format": "double", + "description": "The recommended amount of memory to allocate in GB.", + "type": "number" + }, + "recommendedCpu": { + "format": "double", + "description": "The recommended CPU allocation.", + "type": "number" + }, + "recommendationLatencyInMs": { + "format": "double", + "description": "Latency associated with the recommended memory/cpu config", + "type": "number" + }, + "profileRunResult": { + "description": "The profile run result.", + "type": "string" + }, + "error": { + "$ref": "#/definitions/ModelErrorResponse", + "description": "The error details." + }, + "profilingErrorLogs": { + "description": "The profiling error logs.", + "type": "string" + } + } + }, + "PaginatedProfileResponseList": { + "description": "A paginated list of ProfileResponses.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type ProfileResponse.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ProfileResponse" + } + }, + "nextLink": { + "description": "A continuation link (absolute URI) to the next page of results in the list.", + "type": "string" + } + } + }, + "ProfileRequestBase": { + "description": "The request for creating a profile.", + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "description": "The profile name.", + "type": "string" + }, + "description": { + "description": "The profile description.", + "type": "string" + }, + "inputData": { + "description": "The profile input data.", + "type": "string" + }, + "kvTags": { + "description": "The tags dictionary.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "description": "The properties dictionary.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "ServiceResponseBase": { + "description": "The base service response. The correct inherited response based on computeType will be returned (ex. ACIServiceResponse)", + "required": [ + "computeType" + ], + "type": "object", + "properties": { + "id": { + "description": "The service Id.", + "type": "string" + }, + "name": { + "description": "The service name.", + "type": "string" + }, + "description": { + "description": "The service description.", + "type": "string" + }, + "kvTags": { + "description": "The service tag dictionary. Tags are mutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "description": "The service property dictionary. Properties are immutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "operationId": { + "description": "The ID of the latest asynchronous operation for this service.", + "type": "string" + }, + "state": { + "description": "The current state of the service.", + "enum": [ + "Transitioning", + "Healthy", + "Unhealthy", + "Failed" + ], + "type": "string", + "example": "Healthy", + "x-ms-enum": { + "name": "WebServiceState", + "modelAsString": false + } + }, + "createdTime": { + "format": "date-time", + "description": "The time the service was created.", + "type": "string" + }, + "updatedTime": { + "format": "date-time", + "description": "The time the service was updated.", + "type": "string" + }, + "error": { + "$ref": "#/definitions/ModelErrorResponse", + "description": "The error details." + }, + "computeType": { + "description": "The compute environment type for the service.", + "enum": [ + "ACI", + "AKS", + "AMLCOMPUTE", + "IOT", + "AKSENDPOINT", + "UNKNOWN" + ], + "type": "string", + "example": "AKS", + "x-ms-enum": { + "name": "ComputeEnvironmentType", + "modelAsString": false + } + }, + "deploymentType": { + "description": "The deployment type for the service.", + "enum": [ + "GRPCRealtimeEndpoint", + "HttpRealtimeEndpoint", + "Batch" + ], + "type": "string", + "example": "HttpRealtimeEndpoint", + "x-ms-enum": { + "name": "DeploymentType", + "modelAsString": false + } + } + }, + "discriminator": "computeType" + }, + "PaginatedServiceList": { + "description": "A paginated list of Services.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type Service.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ServiceResponseBase" + } + }, + "nextLink": { + "description": "A continuation link (absolute URI) to the next page of results in the list.", + "type": "string" + } + } + }, + "CreateServiceRequest": { + "description": "The base class for creating a service.", + "required": [ + "name", + "computeType" + ], + "type": "object", + "properties": { + "name": { + "description": "The service name.", + "type": "string" + }, + "description": { + "description": "The description of the service.", + "type": "string" + }, + "kvTags": { + "description": "The service tag dictionary. Tags are mutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "description": "The service properties dictionary. Properties are immutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "keys": { + "$ref": "#/definitions/AuthKeys", + "description": "The authentication keys." + }, + "computeType": { + "description": "The compute environment type for the service.", + "enum": [ + "ACI", + "AKS", + "AMLCOMPUTE", + "IOT", + "AKSENDPOINT", + "UNKNOWN" + ], + "type": "string", + "example": "AKS", + "x-ms-enum": { + "name": "ComputeEnvironmentType", + "modelAsString": false + } + }, + "deploymentType": { + "description": "The deployment type for the service.", + "enum": [ + "GRPCRealtimeEndpoint", + "HttpRealtimeEndpoint", + "Batch" + ], + "type": "string", + "example": "HttpRealtimeEndpoint", + "x-ms-enum": { + "name": "DeploymentType", + "modelAsString": false + } + }, + "imageId": { + "description": "The Image Id.", + "type": "string" + }, + "environmentImageRequest": { + "$ref": "#/definitions/EnvironmentImageRequest", + "description": "The Environment, models and assets needed for inferencing." + }, + "location": { + "description": "The location of the service.", + "type": "string" + } + }, + "discriminator": "computeType" + }, + "AuthKeys": { + "type": "object", + "properties": { + "primaryKey": { + "description": "The primary key.", + "type": "string" + }, + "secondaryKey": { + "description": "The secondary key.", + "type": "string" + } + } + }, + "ACIServiceResponse": { + "description": "The response for an ACI service.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ServiceResponseBase" + }, + { + "type": "object", + "properties": { + "containerResourceRequirements": { + "$ref": "#/definitions/ContainerResourceRequirements", + "description": "The container resource requirements." + }, + "imageId": { + "description": "The Id of the Image.", + "type": "string" + }, + "imageDetails": { + "$ref": "#/definitions/DockerImageResponse", + "description": "The Image details." + }, + "scoringUri": { + "description": "The Uri for sending scoring requests.", + "type": "string" + }, + "location": { + "description": "The location of the service.", + "type": "string" + }, + "authEnabled": { + "description": "Whether or not authentication is enabled on the service.", + "type": "boolean" + }, + "sslEnabled": { + "description": "Whether or not SSL is enabled.", + "type": "boolean" + }, + "appInsightsEnabled": { + "description": "Whether or not Application Insights is enabled.", + "type": "boolean" + }, + "dataCollection": { + "$ref": "#/definitions/ModelDataCollection", + "description": "Details of the data collection options specified." + }, + "sslCertificate": { + "description": "The SSL certificate to use if SSL is enabled.", + "type": "string" + }, + "sslKey": { + "description": "The SSL key for the certificate.", + "type": "string" + }, + "cname": { + "description": "The CName for the service.", + "type": "string" + }, + "publicIp": { + "description": "The public IP address for the service.", + "type": "string" + }, + "publicFqdn": { + "description": "The public Fqdn for the service.", + "type": "string" + }, + "swaggerUri": { + "description": "The Uri for sending swagger requests.", + "type": "string" + }, + "modelConfigMap": { + "description": "Details on the models and configurations.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "environment": { + "$ref": "#/definitions/ModelEnvironmentDefinition", + "description": "Details on the Environment." + }, + "models": { + "description": "The list of models.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Model" + } + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "ACI" + }, + "EnvironmentImageRequest": { + "description": "Request to create a Docker image based on Environment.", + "type": "object", + "properties": { + "driverProgram": { + "description": "The name of the driver file.", + "type": "string" + }, + "assets": { + "description": "The list of assets.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentImageAsset" + } + }, + "modelIds": { + "description": "The list of model Ids.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + }, + "example": "[mymodel:1, mymodel:2]" + }, + "environment": { + "$ref": "#/definitions/ModelEnvironmentDefinition", + "description": "The details of the AZURE ML environment." + } + } + }, + "EnvironmentImageAsset": { + "description": "An Image asset.", + "type": "object", + "properties": { + "id": { + "description": "The Asset Id.", + "type": "string" + }, + "mimeType": { + "description": "The mime type.", + "type": "string" + }, + "url": { + "description": "The Url of the Asset.", + "type": "string" + }, + "unpack": { + "description": "Whether the Asset is unpacked.", + "type": "boolean" + } + } + }, + "ModelEnvironmentDefinition": { + "type": "object", + "properties": { + "name": { + "description": "The name of the environment.", + "type": "string", + "example": "mydevenvironment" + }, + "version": { + "description": "The environment version.", + "type": "string", + "example": "1" + }, + "python": { + "$ref": "#/definitions/ModelPythonSection", + "description": "Settings for a Python environment." + }, + "environmentVariables": { + "description": "Definition of environment variables to be defined in the environment.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "docker": { + "$ref": "#/definitions/ModelDockerSection", + "description": "The definition of a Docker container." + }, + "spark": { + "$ref": "#/definitions/ModelSparkSection", + "description": "The configuration for a Spark environment." + }, + "inferencingStackVersion": { + "description": "The Inferencing stack version.", + "type": "string", + "example": "latest" + } + } + }, + "ModelPythonSection": { + "type": "object", + "properties": { + "interpreterPath": { + "description": "The python interpreter path. This is only used when user_managed_dependencies=True.", + "type": "string" + }, + "userManagedDependencies": { + "description": "True means that AzureML reuses an existing python environment; False means that AzureML will create a python environment based on the Conda dependencies specification.", + "type": "boolean" + }, + "condaDependencies": { + "type": "object" + }, + "baseCondaEnvironment": { + "type": "string" + } + } + }, + "ModelDockerSection": { + "type": "object", + "properties": { + "baseImage": { + "description": "Base image used for Docker-based runs. Mutually exclusive with BaseDockerfile.", + "type": "string", + "example": "ubuntu:latest" + }, + "baseDockerfile": { + "description": "Base Dockerfile used for Docker-based runs. Mutually exclusive with BaseImage.", + "type": "string", + "example": "FROM ubuntu:latest\r\nRUN echo \"Hello world!\"" + }, + "enabled": { + "description": "Set True to perform this run inside a Docker container.", + "type": "boolean", + "example": "True" + }, + "sharedVolumes": { + "description": "Set False if necessary to work around shared volume bugs on Windows.", + "type": "boolean", + "example": "True" + }, + "gpuSupport": { + "description": "Run with NVidia Docker extension to support GPUs.", + "type": "boolean", + "example": "False" + }, + "shmSize": { + "description": "The shared memory size setting for NVidia GPUs.", + "type": "string", + "example": "1g" + }, + "arguments": { + "description": "Extra arguments to the Docker run command.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + }, + "baseImageRegistry": { + "$ref": "#/definitions/ContainerRegistry", + "description": "Image registry that contains the base image." + } + } + }, + "ModelSparkSection": { + "type": "object", + "properties": { + "repositories": { + "description": "The list of spark repositories.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + }, + "packages": { + "description": "The Spark packages to use.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/SparkMavenPackage" + } + }, + "precachePackages": { + "description": "Whether to precache the packages.", + "type": "boolean", + "example": "True" + } + } + }, + "ContainerRegistry": { + "type": "object", + "properties": { + "address": { + "type": "string" + }, + "username": { + "type": "string" + }, + "password": { + "type": "string" + } + } + }, + "SparkMavenPackage": { + "type": "object", + "properties": { + "group": { + "type": "string" + }, + "artifact": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "RegenerateServiceKeysRequest": { + "type": "object", + "properties": { + "keyType": { + "format": "int32", + "description": "Specification for which type of key to generate.", + "enum": [ + "Primary", + "Secondary" + ], + "type": "integer", + "example": "Primary", + "x-ms-enum": { + "name": "KeyType", + "modelAsString": false + } + }, + "keyValue": { + "description": "The value the key is set to.", + "type": "string" + } + } + }, + "AuthToken": { + "description": "Service Token", + "type": "object", + "properties": { + "accessToken": { + "description": "Access token.", + "type": "string" + }, + "tokenType": { + "description": "Access token type.", + "type": "string" + }, + "expiryOn": { + "format": "int64", + "description": "Access token expiry time (UTC).", + "type": "integer" + }, + "refreshAfter": { + "format": "int64", + "description": "Refresh access token after time (UTC).", + "type": "integer" + } + } + }, + "ContainerResourceRequirements": { + "description": "The resource requirements for the container (cpu and memory).", + "type": "object", + "properties": { + "cpu": { + "format": "double", + "description": "The number of CPU cores on the container.", + "type": "number", + "example": "4" + }, + "memoryInGB": { + "format": "double", + "description": "The amount of memory on the container in GB.", + "type": "number", + "example": "64" + }, + "gpu": { + "format": "int32", + "description": "The number of GPU cores in the container.", + "type": "integer" + }, + "fpga": { + "format": "int32", + "description": "The number of FPGA PCIE devices exposed to the container. Must be multiple of 2.", + "type": "integer" + } + } + }, + "DockerImageResponse": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ImageResponseBase" + }, + { + "type": "object", + "properties": { + "driverProgram": { + "description": "The name of the driver file.", + "type": "string" + }, + "assets": { + "description": "The list of assets.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/EnvironmentImageAsset" + } + }, + "targetRuntime": { + "$ref": "#/definitions/TargetRuntime", + "description": "The target runtime." + }, + "dockerFileUri": { + "description": "The Uri to the docker file.", + "type": "string" + }, + "generatedDockerFileUri": { + "description": "The Uri to the generated docker file.", + "type": "string" + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "WEBAPICONTAINER" + }, + "ModelDataCollection": { + "description": "The Model data collection properties.", + "type": "object", + "properties": { + "eventHubEnabled": { + "description": "Option for enabling/disabling Event Hub.", + "type": "boolean" + }, + "storageEnabled": { + "description": "Option for enabling/disabling storage.", + "type": "boolean" + } + } + }, + "RegistryInfo": { + "description": "Contains registry information.", + "required": [ + "user", + "location", + "password" + ], + "type": "object", + "properties": { + "user": { + "description": "The user.", + "type": "string" + }, + "location": { + "description": "The location.", + "type": "string" + }, + "password": { + "description": "The password.", + "type": "string" + } + } + }, + "TargetRuntime": { + "description": "The target runtime.", + "type": "object", + "properties": { + "targetArchitecture": { + "description": "The target architecture.", + "enum": [ + "Amd64", + "Arm32v7" + ], + "type": "string", + "example": "Amd64", + "x-ms-enum": { + "name": "ArchitectureType", + "modelAsString": false + } + }, + "osType": { + "description": "The target operating system.", + "enum": [ + "Linux", + "Windows" + ], + "type": "string", + "example": "linux", + "x-ms-enum": { + "name": "OSType", + "modelAsString": false + } + }, + "runtimeType": { + "description": "The target runtime type.", + "enum": [ + "SparkPython", + "Tlc37", + "Tlc38", + "Tlc310", + "Python", + "PythonSlim", + "PythonCustom" + ], + "type": "string", + "example": "Python", + "x-ms-enum": { + "name": "RuntimeType", + "modelAsString": false + } + }, + "properties": { + "description": "The properties dictionary.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "readOnly": true + } + } + }, + "AKSEndpointResponse": { + "description": "The response for an AKS Endpoint.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ServiceResponseBase" + }, + { + "type": "object", + "properties": { + "computeName": { + "description": "The name of the compute resource.", + "type": "string" + }, + "namespace": { + "description": "The Kubernetes namespace of the deployment.", + "type": "string" + }, + "appInsightsEnabled": { + "description": "Whether or not Application Insights is enabled.", + "type": "boolean" + }, + "authEnabled": { + "description": "Whether or not authentication is enabled.", + "type": "boolean" + }, + "aadAuthEnabled": { + "description": "Whether or not AAD authentication is enabled.", + "type": "boolean" + }, + "swaggerUri": { + "description": "The Uri for sending swagger requests.", + "type": "string" + }, + "scoringUri": { + "description": "The Uri for sending scoring requests.", + "type": "string" + }, + "variants": { + "description": "All the variants that belongs to this endpoint.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/AKSServiceResponse" + } + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "AKSENDPOINT" + }, + "AKSServiceResponse": { + "description": "The response for an AKS service.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/AKSVariantResponse" + }, + { + "type": "object", + "properties": { + "imageDetails": { + "$ref": "#/definitions/ImageResponseBase", + "description": "The Docker Image details." + }, + "imageId": { + "description": "The Id of the Image.", + "type": "string" + }, + "models": { + "description": "The list of models.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Model" + } + }, + "containerResourceRequirements": { + "$ref": "#/definitions/ContainerResourceRequirements", + "description": "The container resource requirements." + }, + "maxConcurrentRequestsPerContainer": { + "format": "int32", + "description": "The maximum number of concurrent requests per container.", + "type": "integer" + }, + "maxQueueWaitMs": { + "format": "int32", + "description": "Maximum time a request will wait in the queue (in milliseconds). After this time, the service will return 503 (Service Unavailable)", + "type": "integer" + }, + "computeName": { + "description": "The name of the compute resource.", + "type": "string" + }, + "namespace": { + "description": "The Kubernetes namespace of the deployment.", + "type": "string" + }, + "numReplicas": { + "format": "int32", + "description": "The number of replicas on the cluster.", + "type": "integer" + }, + "dataCollection": { + "$ref": "#/definitions/ModelDataCollection", + "description": "Details of the data collection options specified." + }, + "appInsightsEnabled": { + "description": "Whether or not Application Insights is enabled.", + "type": "boolean" + }, + "autoScaler": { + "$ref": "#/definitions/AutoScaler", + "description": "The auto scaler properties." + }, + "scoringUri": { + "description": "The Uri for sending scoring requests.", + "type": "string" + }, + "deploymentStatus": { + "$ref": "#/definitions/AKSReplicaStatus", + "description": "The deployment status." + }, + "scoringTimeoutMs": { + "format": "int32", + "description": "The scoring timeout in milliseconds.", + "type": "integer" + }, + "livenessProbeRequirements": { + "$ref": "#/definitions/LivenessProbeRequirements", + "description": "The liveness probe requirements." + }, + "authEnabled": { + "description": "Whether or not authentication is enabled.", + "type": "boolean" + }, + "aadAuthEnabled": { + "description": "Whether or not AAD authentication is enabled.", + "type": "boolean" + }, + "swaggerUri": { + "description": "The Uri for sending swagger requests.", + "type": "string" + }, + "modelConfigMap": { + "description": "Details on the models and configurations.", + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "environment": { + "$ref": "#/definitions/ModelEnvironmentDefinition", + "description": "Details on the Environment." + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "AKS" + }, + "ImageResponseBase": { + "required": [ + "imageFlavor" + ], + "type": "object", + "properties": { + "id": { + "description": "The image Id.", + "type": "string", + "example": "myimage:3" + }, + "name": { + "description": "The image name.", + "type": "string", + "example": "myimage:3" + }, + "version": { + "format": "int64", + "description": "The image version.", + "type": "integer", + "example": "3" + }, + "description": { + "description": "The image description.", + "type": "string", + "example": "My docker image." + }, + "kvTags": { + "description": "The image tag dictionary. Tags are mutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "description": "The image properties dictionary. Properties are immutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "createdTime": { + "format": "date-time", + "description": "The time the image was created.", + "type": "string" + }, + "modifiedTime": { + "format": "date-time", + "description": "The time the image was last modified.", + "type": "string" + }, + "autoDelete": { + "description": "Whether the image will be automatically deleted with the last service using it.", + "type": "boolean" + }, + "imageType": { + "description": "The type of the image.", + "enum": [ + "Docker" + ], + "type": "string", + "example": "Docker", + "x-ms-enum": { + "name": "ImageType", + "modelAsString": false + } + }, + "imageFlavor": { + "description": "The flavor of the image.", + "enum": [ + "WebApiContainer", + "BatchContainer", + "IoTContainer", + "AccelContainer", + "UserProvidedContainer" + ], + "type": "string", + "example": "WebApiContainer", + "x-ms-enum": { + "name": "ImageFlavor", + "modelAsString": false + } + }, + "creationState": { + "description": "The state of the operation.", + "enum": [ + "NotStarted", + "Running", + "Cancelled", + "Succeeded", + "Failed", + "TimedOut" + ], + "type": "string", + "example": "Running", + "x-ms-enum": { + "name": "AsyncOperationState", + "modelAsString": false + } + }, + "error": { + "$ref": "#/definitions/ModelErrorResponse", + "description": "The error response." + }, + "modelIds": { + "description": "The list of model Ids.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + }, + "modelDetails": { + "description": "The list of models.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Model" + } + }, + "imageLocation": { + "description": "The Image location string.", + "type": "string" + }, + "imageBuildLogUri": { + "description": "The Uri to the image build logs.", + "type": "string" + }, + "operationId": { + "description": "The ID of the asynchronous operation for this image.", + "type": "string" + } + }, + "discriminator": "imageFlavor" + }, + "AutoScaler": { + "description": "The Auto Scaler properties.", + "type": "object", + "properties": { + "autoscaleEnabled": { + "description": "Option to enable/disable auto scaling.", + "type": "boolean" + }, + "minReplicas": { + "format": "int32", + "description": "The minimum number of replicas to scale down to.", + "type": "integer", + "example": "1" + }, + "maxReplicas": { + "format": "int32", + "description": "The maximum number of replicas in the cluster.", + "type": "integer", + "example": "3" + }, + "targetUtilization": { + "format": "int32", + "description": "The target utilization percentage to use for determining whether to scale the cluster.", + "type": "integer", + "example": "70" + }, + "refreshPeriodInSeconds": { + "format": "int32", + "description": "The amount of seconds to wait between auto scale updates.", + "type": "integer", + "example": "120" + } + } + }, + "AKSReplicaStatus": { + "type": "object", + "properties": { + "desiredReplicas": { + "format": "int32", + "description": "The desired number of replicas.", + "type": "integer", + "example": "2" + }, + "updatedReplicas": { + "format": "int32", + "description": "The number of updated replicas.", + "type": "integer", + "example": "1" + }, + "availableReplicas": { + "format": "int32", + "description": "The number of available replicas.", + "type": "integer", + "example": "1" + }, + "error": { + "$ref": "#/definitions/ModelErrorResponse", + "description": "The error details." + } + } + }, + "LivenessProbeRequirements": { + "description": "The liveness probe requirements.", + "type": "object", + "properties": { + "failureThreshold": { + "format": "int32", + "description": "The number of failures to allow before returning an unhealthy status.", + "type": "integer" + }, + "successThreshold": { + "format": "int32", + "description": "The number of successful probes before returning a healthy status.", + "type": "integer" + }, + "timeoutSeconds": { + "format": "int32", + "description": "The probe timeout in seconds.", + "type": "integer" + }, + "periodSeconds": { + "format": "int32", + "description": "The length of time between probes in seconds.", + "type": "integer" + }, + "initialDelaySeconds": { + "format": "int32", + "description": "The delay before the first probe in seconds.", + "type": "integer" + } + } + }, + "AKSVariantResponse": { + "description": "The response for an AKS variant.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ServiceResponseBase" + }, + { + "type": "object", + "properties": { + "isDefault": { + "description": "Is this the default variant.", + "type": "boolean" + }, + "trafficPercentile": { + "format": "float", + "description": "The amount of traffic variant receives.", + "type": "number" + }, + "type": { + "description": "The type of the variant.", + "enum": [ + "Control", + "Treatment" + ], + "type": "string", + "x-ms-enum": { + "name": "VariantType", + "modelAsString": false + } + } + } + } + ], + "properties": {} + }, + "BatchServiceResponse": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ServiceResponseBase" + }, + { + "type": "object", + "properties": { + "modelIds": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + }, + "computeName": { + "type": "string" + }, + "environmentName": { + "type": "string" + }, + "environmentVersion": { + "type": "string" + }, + "scoringUri": { + "type": "string" + }, + "appInsightsEnabled": { + "type": "boolean" + }, + "modelDataCollection": { + "$ref": "#/definitions/ModelDataCollection" + }, + "entryScript": { + "type": "string" + }, + "inputFormat": { + "type": "string" + }, + "outputAction": { + "type": "string" + }, + "miniBatchSize": { + "format": "int32", + "type": "integer" + }, + "errorThreshold": { + "format": "double", + "type": "number" + }, + "nodeCount": { + "format": "int32", + "type": "integer" + }, + "processCountPerNode": { + "format": "int32", + "type": "integer" + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "AMLCOMPUTE" + }, + "IotServiceResponse": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ServiceResponseBase" + }, + { + "type": "object", + "properties": { + "iotDeviceId": { + "type": "string" + }, + "routes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "computeName": { + "type": "string" + }, + "iotEdgeModules": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/IotModuleSettings" + } + }, + "authEnabled": { + "type": "boolean" + }, + "imageDetails": { + "$ref": "#/definitions/ImageResponseBase" + }, + "imageId": { + "type": "string" + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "IOT" + }, + "IotModuleSettings": { + "type": "object", + "properties": { + "imageLocation": { + "type": "string" + }, + "moduleName": { + "type": "string" + }, + "propertiesDesired": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "createOptions": { + "type": "string" + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "UnknownServiceResponse": { + "description": "The response for an unsupported Service\r\nDefines the basic service properties", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ServiceResponseBase" + }, + { + "type": "object", + "properties": {} + } + ], + "properties": {}, + "x-ms-discriminator-value": "UNKNOWON" + }, + "ACIServiceCreateRequest": { + "required": [ + "name" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/CreateServiceRequest" + }, + { + "type": "object", + "properties": { + "containerResourceRequirements": { + "$ref": "#/definitions/ContainerResourceRequirements", + "description": "The container resource requirements." + }, + "authEnabled": { + "description": "Whether or not authentication is enabled on the service.", + "default": false, + "type": "boolean" + }, + "sslEnabled": { + "description": "Whether or not SSL is enabled.", + "default": false, + "type": "boolean" + }, + "appInsightsEnabled": { + "description": "Whether or not Application Insights is enabled.", + "default": false, + "type": "boolean" + }, + "dataCollection": { + "$ref": "#/definitions/ModelDataCollection", + "description": "Details of the data collection options specified." + }, + "sslCertificate": { + "description": "The SSL certificate to use if SSL is enabled.", + "type": "string" + }, + "sslKey": { + "description": "The SSL key for the certificate.", + "type": "string" + }, + "cname": { + "description": "The CName for the service.", + "type": "string" + }, + "dnsNameLabel": { + "description": "The Dns label for the service.", + "type": "string" + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "ACI" + }, + "AKSServiceCreateRequest": { + "description": "The request to create an AKS service.", + "required": [ + "name" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/CreateEndpointVariantRequest" + }, + { + "type": "object", + "properties": { + "numReplicas": { + "format": "int32", + "description": "The number of replicas on the cluster.", + "type": "integer" + }, + "dataCollection": { + "$ref": "#/definitions/ModelDataCollection", + "description": "Details of the data collection options specified." + }, + "computeName": { + "description": "The name of the compute resource.", + "type": "string" + }, + "appInsightsEnabled": { + "description": "Whether or not Application Insights is enabled.", + "type": "boolean" + }, + "autoScaler": { + "$ref": "#/definitions/AutoScaler", + "description": "The auto scaler properties." + }, + "containerResourceRequirements": { + "$ref": "#/definitions/ContainerResourceRequirements", + "description": "The container resource requirements." + }, + "maxConcurrentRequestsPerContainer": { + "format": "int32", + "description": "The maximum number of concurrent requests per container.", + "type": "integer" + }, + "maxQueueWaitMs": { + "format": "int32", + "description": "Maximum time a request will wait in the queue (in milliseconds). After this time, the service will return 503 (Service Unavailable)", + "type": "integer" + }, + "namespace": { + "description": "Kubernetes namespace for the service.", + "type": "string" + }, + "scoringTimeoutMs": { + "format": "int32", + "description": "The scoring timeout in milliseconds.", + "type": "integer" + }, + "authEnabled": { + "description": "Whether or not authentication is enabled.", + "type": "boolean" + }, + "livenessProbeRequirements": { + "$ref": "#/definitions/LivenessProbeRequirements", + "description": "The liveness probe requirements." + }, + "aadAuthEnabled": { + "description": "Whether or not AAD authentication is enabled.", + "type": "boolean" + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "AKS" + }, + "CreateEndpointRequest": { + "description": "The request to create an Endpoint in the AKS.", + "required": [ + "name" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/CreateServiceRequest" + }, + { + "type": "object", + "properties": { + "computeName": { + "description": "The name of the compute resource.", + "type": "string" + }, + "appInsightsEnabled": { + "description": "Whether or not Application Insights is enabled.", + "type": "boolean" + }, + "authEnabled": { + "description": "Whether or not authentication is enabled.", + "type": "boolean" + }, + "aadAuthEnabled": { + "description": "Whether or not AAD authentication is enabled.", + "type": "boolean" + }, + "namespace": { + "description": "Kubernetes namespace for the service.", + "type": "string" + }, + "variants": { + "description": "The service tag list.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/AKSServiceCreateRequest" + } + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "AKSENDPOINT" + }, + "CreateEndpointVariantRequest": { + "description": "The Variant properties.", + "required": [ + "name" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/CreateServiceRequest" + }, + { + "type": "object", + "properties": { + "isDefault": { + "description": "Is this the default variant.", + "type": "boolean" + }, + "trafficPercentile": { + "format": "float", + "description": "The amount of traffic variant receives.", + "type": "number" + }, + "type": { + "description": "The type of the variant.", + "enum": [ + "Control", + "Treatment" + ], + "type": "string", + "x-ms-enum": { + "name": "VariantType", + "modelAsString": false + } + } + } + } + ], + "properties": {} + }, + "CreateIotServiceRequest": { + "required": [ + "name" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/CreateServiceRequest" + }, + { + "type": "object", + "properties": { + "iotDeviceId": { + "type": "string" + }, + "routes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "iotEdgeUserModule": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/IotModuleSettings" + } + }, + "iotEdgeModule": { + "$ref": "#/definitions/IotBaseModuleSettings" + }, + "computeName": { + "type": "string" + }, + "acrCredentials": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/RegistryInfo" + } + }, + "authEnabled": { + "type": "boolean" + } + } + } + ], + "properties": {}, + "x-ms-discriminator-value": "IOT" + }, + "IotBaseModuleSettings": { + "type": "object", + "properties": { + "moduleName": { + "type": "string" + }, + "propertiesDesired": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "createOptions": { + "type": "string" + }, + "environmentVariables": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "FPGADockerImageResponse": { + "description": "The FPGA Docker Image response.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/ImageResponseBase" + }, + { + "type": "object", + "properties": {} + } + ], + "properties": {}, + "x-ms-discriminator-value": "ACCELCONTAINER" + } + }, + "parameters": { + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The Azure Subscription ID.", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + }, + "resourceGroupParameter": { + "name": "resourceGroup", + "in": "path", + "description": "The Name of the resource group in which the workspace is located.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "workspaceParameter": { + "name": "workspace", + "in": "path", + "description": "The name of the workspace.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "type": "oauth2" + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/runHistory.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/runHistory.json new file mode 100644 index 000000000000..9ca184ed90dc --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/runHistory.json @@ -0,0 +1,2701 @@ +{ + "swagger": "2.0", + "info": { + "version": "2019-09-30", + "title": "Run History APIs" + }, + "schemes": [ + "https" + ], + "paths": { + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/batch/events": { + "post": { + "tags": [ + "Events" + ], + "summary": "Batch post event data.", + "description": "Post event data to a specific Run Id.", + "operationId": "Events_BatchPost", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "batchEventCommand", + "in": "body", + "description": "The batch of Event details.", + "required": false, + "schema": { + "$ref": "#/definitions/BatchEventCommand" + } + } + ], + "responses": { + "200": { + "description": "The batch of Events is posted successfully.", + "schema": { + "$ref": "#/definitions/BatchEventCommandResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/events": { + "post": { + "tags": [ + "Events" + ], + "summary": "Post event data.", + "description": "Post event data to a specific Run Id.", + "operationId": "Events_Post", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + }, + { + "name": "eventMessage", + "in": "body", + "description": "The Event details.", + "required": false, + "schema": { + "$ref": "#/definitions/BaseEvent" + } + } + ], + "responses": { + "200": { + "description": "The Event is posted successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}": { + "get": { + "tags": [ + "Experiments" + ], + "summary": "Get details of an Experiment.", + "description": "Get details of an Experiment with specific Experiment name.", + "operationId": "Experiments_Get", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The details of the Experiment are returned successfully.", + "schema": { + "$ref": "#/definitions/Experiment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "post": { + "tags": [ + "Experiments" + ], + "summary": "Create an Experiment.", + "description": "Create a new Experiment.", + "operationId": "Experiments_Create", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The Experiment is created successfully.", + "schema": { + "$ref": "#/definitions/Experiment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experimentids/{experimentId}": { + "get": { + "tags": [ + "Experiments" + ], + "summary": "Get details of an Experiment.", + "description": "Get details of an Experiment with specific Experiment Id.", + "operationId": "Experiments_GetById", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentId", + "in": "path", + "description": "The identifier of the experiment.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Experiment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "patch": { + "tags": [ + "Experiments" + ], + "summary": "Update details of an Experiment.", + "description": "Update details of an Experiment with specific Experiment Id.", + "operationId": "Experiments_Update", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentId", + "in": "path", + "description": "The identifier of the experiment.", + "required": true, + "type": "string" + }, + { + "name": "modifyExperimentDto", + "in": "body", + "description": "Experiment details which needs to be updated.", + "required": false, + "schema": { + "$ref": "#/definitions/ModifyExperiment" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Experiment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments:query": { + "post": { + "tags": [ + "Experiments" + ], + "summary": "Get all Experiments in a specific workspace.", + "description": "Get all experiments in a specific workspace with the specified query filters.", + "operationId": "Experiments_GetByQuery", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "queryParams", + "in": "body", + "description": "Query parameters for data sorting and filtering.", + "required": false, + "schema": { + "$ref": "#/definitions/QueryParams" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PaginatedExperimentList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experimentids/{experimentId}/tags": { + "delete": { + "tags": [ + "Experiments" + ], + "summary": "Delete list of Tags in an Experiment.", + "description": "Delete list of Tags from a specific Experiment Id.", + "operationId": "Experiments_DeleteTags", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentId", + "in": "path", + "description": "The identifier of the experiment.", + "required": true, + "type": "string" + }, + { + "name": "tags", + "in": "body", + "description": "The requested tags list to be deleted.", + "required": false, + "schema": { + "$ref": "#/definitions/DeleteTagsCommand" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Experiment" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/children": { + "get": { + "tags": [ + "Run" + ], + "summary": "Get details of all child runs.", + "description": "Get details of all child runs for the specified Run Id with the specified filters.", + "operationId": "Runs_GetChild", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + }, + { + "name": "$filter", + "in": "query", + "description": "Allows for filtering the collection of resources.\r\nThe expression specified is evaluated for each resource in the collection, and only items where the expression evaluates to true are included in the response.", + "required": false, + "type": "string" + }, + { + "name": "$continuationtoken", + "in": "query", + "description": "The continuation token to use for getting the next set of resources.", + "required": false, + "type": "string" + }, + { + "name": "$orderby", + "in": "query", + "description": "The list of resource properties to use for sorting the requested resources.", + "required": false, + "type": "array", + "items": { + "type": "string" + }, + "collectionFormat": "multi", + "uniqueItems": false + }, + { + "name": "$sortorder", + "in": "query", + "description": "The sort order of the returned resources. Not used, specify asc or desc after each property name in the OrderBy parameter.", + "required": false, + "type": "string", + "enum": [ + "Asc", + "Desc" + ] + }, + { + "name": "$top", + "in": "query", + "description": "The maximum number of items in the resource collection to be included in the result.\r\nIf not specified, all items are returned.", + "required": false, + "type": "integer", + "format": "int32" + }, + { + "name": "$count", + "in": "query", + "description": "Whether to include a count of the matching resources along with the resources returned in the response.", + "required": false, + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "The details of the child Runs are returned successfully.", + "schema": { + "$ref": "#/definitions/PaginatedRunList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/details": { + "get": { + "tags": [ + "Run" + ], + "summary": "Get Run Details.", + "description": "Get Run Details for a specific Run Id.", + "operationId": "Runs_GetDetails", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The details of the Run are returned successfully.", + "schema": { + "$ref": "#/definitions/RunDetails" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/batch/runs": { + "patch": { + "tags": [ + "Run" + ], + "summary": "Add or Modify a batch of Runs.", + "description": "Add or Modify a batch of Runs for a given experiment.", + "operationId": "Runs_BatchAddOrModify", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "requestDto", + "in": "body", + "description": "The list of requested Run Additions/modifications in an Experiment.", + "required": false, + "schema": { + "$ref": "#/definitions/BatchAddOrModifyRunRequest" + } + } + ], + "responses": { + "200": { + "description": "The Batch Runs are added/modified successfully.", + "schema": { + "$ref": "#/definitions/BatchAddOrModifyRunResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}": { + "get": { + "tags": [ + "Run" + ], + "summary": "Get Run details.", + "description": "Get Run details of a specific Run Id.", + "operationId": "Runs_Get", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The details of the Run are returned successfully.", + "schema": { + "$ref": "#/definitions/Run" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "patch": { + "tags": [ + "Run" + ], + "summary": "Add or Modify a Run.", + "description": "Add a new Run or Modify an existing Run.", + "operationId": "Runs_Patch", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9][\\w-]{0,255}$" + }, + { + "name": "createRunDto", + "in": "body", + "description": "The requested Run parameter Additions/modifications.", + "required": false, + "schema": { + "$ref": "#/definitions/CreateRun" + } + } + ], + "responses": { + "200": { + "description": "The Run is added/modified successfully.", + "schema": { + "$ref": "#/definitions/Run" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/tags": { + "delete": { + "tags": [ + "Run" + ], + "summary": "Delete list of Tags in a Run.", + "description": "Delete list of Tags from a specific Run Id.", + "operationId": "Runs_DeleteTags", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + }, + { + "name": "tags", + "in": "body", + "description": "The requested tags list to be deleted.", + "required": false, + "schema": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Run" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs:query": { + "post": { + "tags": [ + "Run" + ], + "summary": "Get all Runs for a specific Experiment.", + "description": "Get all Runs for a specific Experiment with the specified query filters.", + "operationId": "Runs_GetByQuery", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "queryParams", + "in": "body", + "description": "Query parameters for data sorting and filtering.", + "required": false, + "schema": { + "$ref": "#/definitions/QueryParams" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PaginatedRunList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/artifacts": { + "get": { + "tags": [ + "RunArtifacts" + ], + "summary": "Get Artifacts in a container.", + "description": "Get Artifacts in container for a specific Run Id.", + "operationId": "RunArtifacts_ListInContainer", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + }, + { + "name": "continuationToken", + "in": "query", + "description": "The Continuation Token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The Artifacts in Container are returned successfully.", + "schema": { + "$ref": "#/definitions/PaginatedArtifactList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/artifacts/path": { + "get": { + "tags": [ + "RunArtifacts" + ], + "summary": "Get Artifacts in the provided path.", + "description": "Get Artifacts in the provided path for a specific Run Id.", + "operationId": "RunArtifacts_ListInPath", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + }, + { + "name": "continuationToken", + "in": "query", + "description": "The Continuation Token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PaginatedArtifactList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/artifacts/metadata": { + "get": { + "tags": [ + "RunArtifacts" + ], + "summary": "Get Artifact by Id.", + "description": "Get Artifact for a specific Id.", + "operationId": "RunArtifacts_GetById", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Artifact" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/artifacts/contentinfo": { + "get": { + "tags": [ + "RunArtifacts" + ], + "summary": "Get Artifact content information.", + "description": "Get Artifact content information for give Run Id.", + "operationId": "RunArtifacts_GetContentInformation", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The Artifact content information is returned successfully.", + "schema": { + "$ref": "#/definitions/ArtifactContentInformation" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/artifacts/artifacturi": { + "get": { + "tags": [ + "RunArtifacts" + ], + "summary": "Get URI of an Artifact.", + "description": "Get URI of an Artifact for a specific Run Id.", + "operationId": "RunArtifacts_GetSasUri", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "string" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/artifacts/prefix/contentinfo": { + "get": { + "tags": [ + "RunArtifacts" + ], + "summary": "Get SAS of an Artifact.", + "description": "Get SAS of an Artifact in the specified path.", + "operationId": "RunArtifacts_ListSasByPrefix", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + }, + { + "name": "path", + "in": "query", + "description": "The Artifact Path.", + "required": false, + "type": "string" + }, + { + "name": "continuationToken", + "in": "query", + "description": "The Continuation Token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PaginatedArtifactContentInformationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/artifacts/batch/metadata": { + "post": { + "tags": [ + "RunArtifacts" + ], + "summary": "Create a batch of empty Artifacts.", + "description": "Create a batch of empty Artifacts in a specific Run.", + "operationId": "RunArtifacts_BatchCreateEmptyArtifacts", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier of the Run.", + "required": true, + "type": "string" + }, + { + "name": "artifactPaths", + "in": "body", + "description": "The list of artifact paths.", + "required": false, + "schema": { + "$ref": "#/definitions/ArtifactPathList" + } + } + ], + "responses": { + "200": { + "description": "The Batch Artifacts are created successfully.", + "schema": { + "$ref": "#/definitions/BatchArtifactContentInformationResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/metrics": { + "post": { + "tags": [ + "RunMetrics" + ], + "summary": "Post Metric to a Run.", + "description": "Post a Metric to a specific Run Id.", + "operationId": "RunMetrics_Post", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier for a run.", + "required": true, + "type": "string" + }, + { + "name": "metricDto", + "in": "body", + "description": "Details of the metric which will be added to the Run Id.", + "required": false, + "schema": { + "$ref": "#/definitions/Metric" + } + } + ], + "responses": { + "200": { + "description": "The Run Metric is posted successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/runs/{runId}/batch/metrics": { + "post": { + "tags": [ + "RunMetrics" + ], + "summary": "Post Metrics to a Run.", + "description": "Post Metrics to a specific Run Id.", + "operationId": "RunMetrics_BatchPost", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "runId", + "in": "path", + "description": "The identifier for a run.", + "required": true, + "type": "string" + }, + { + "name": "batchMetricDto", + "in": "body", + "description": "Details of the Metrics which will be added to the Run Id.", + "required": false, + "schema": { + "$ref": "#/definitions/BatchMetric" + } + } + ], + "responses": { + "200": { + "description": "The Run Metrics are posted successfully." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/metrics/{metricId}": { + "get": { + "tags": [ + "RunMetrics" + ], + "summary": "Get Metric details.", + "description": "Get Metric details for a specific Metric Id.", + "operationId": "RunMetrics_Get", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "metricId", + "in": "path", + "description": "The identifier for a Metric.", + "required": true, + "type": "string", + "format": "uuid" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/RunMetric" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + } + }, + "/history/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/metrics:query": { + "post": { + "tags": [ + "RunMetrics" + ], + "summary": "Get all Run Metrics for the specific Experiment.", + "description": "Get all Run Metrics for the specific Experiment with the specified query filters.", + "operationId": "RunMetrics_GetByQuery", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "$ref": "#/parameters/workspaceNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "The experiment name.", + "required": true, + "type": "string" + }, + { + "name": "queryParams", + "in": "body", + "description": "Query Parameters for data sorting and filtering.", + "required": false, + "schema": { + "$ref": "#/definitions/QueryParams" + } + }, + { + "name": "MergeStrategyType", + "in": "query", + "description": "The type of merge strategy. Currently supported strategies are:\r\nNone - all logged values are returned as individual metrics.\r\nMergeToVector - merges multiple values into a vector of values.\r\nDefault - the system determines the behavior.", + "required": false, + "type": "string", + "enum": [ + "Default", + "None", + "MergeToVector" + ] + }, + { + "name": "MergeStrategyOptions", + "in": "query", + "description": "Controls behavior of the merge strategy in certain cases; e.g. when a metric is not merged.", + "required": false, + "type": "string", + "enum": [ + "None", + "ReportUnmergedMetricsValues" + ] + }, + { + "name": "MergeStrategySettings.Version", + "in": "query", + "description": "The strategy settings version.", + "required": false, + "type": "string" + }, + { + "name": "MergeStrategySettings.SelectMetrics", + "in": "query", + "description": "Defines how to select metrics when merging them together.", + "required": false, + "type": "string", + "enum": [ + "SelectAll", + "SelectByFirstValueSchema", + "SelectByFirstValueSchemaMergeNumericValues" + ] + } + ], + "responses": { + "200": { + "description": "The Run Metrics are returned successfully.", + "schema": { + "$ref": "#/definitions/PaginatedRunMetricList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "BatchEventCommand": { + "type": "object", + "properties": { + "events": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/BaseEvent" + } + } + } + }, + "BaseEvent": { + "description": "Base event is the envelope used to post event data to the Event controller", + "type": "object", + "properties": { + "timestamp": { + "format": "date-time", + "type": "string" + }, + "name": { + "type": "string" + }, + "data": { + "type": "object" + } + } + }, + "BatchEventCommandResult": { + "type": "object", + "properties": { + "errors": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/KeyValuePairBaseEventErrorResponse" + } + } + } + }, + "KeyValuePairBaseEventErrorResponse": { + "type": "object", + "properties": { + "key": { + "$ref": "#/definitions/BaseEvent", + "readOnly": true + }, + "value": { + "$ref": "#/definitions/ErrorResponse", + "readOnly": true + } + } + }, + "ErrorResponse": { + "description": "The error response.", + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/RootError", + "description": "The top level error that occurred." + }, + "correlation": { + "description": "Dictionary containing correlation details for the error.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "environment": { + "description": "The hosting environment.", + "type": "string" + }, + "location": { + "description": "The Azure region.", + "type": "string" + }, + "time": { + "format": "date-time", + "description": "The time in UTC.", + "type": "string" + } + } + }, + "RootError": { + "description": "The root error.", + "type": "object", + "properties": { + "code": { + "description": "The service-defined error code. Supported error codes: ServiceError, UserError, ValidationError, AzureStorageError, TransientError, RequestThrottled.", + "type": "string" + }, + "message": { + "description": "A human-readable representation of the error.", + "type": "string" + }, + "target": { + "description": "The target of the error (e.g., the name of the property in error).", + "type": "string" + }, + "details": { + "description": "The related errors that occurred during the request.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ErrorDetails" + } + }, + "innerError": { + "$ref": "#/definitions/InnerErrorResponse", + "description": "A nested list of inner errors. When evaluating errors, clients MUST traverse through all of the nested “innerErrors” and choose the deepest one that they understand." + } + } + }, + "ErrorDetails": { + "description": "The error details.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string" + }, + "message": { + "description": "The error message.", + "type": "string" + }, + "target": { + "description": "The target of the error (e.g., the name of the property in error).", + "type": "string" + } + } + }, + "InnerErrorResponse": { + "description": "A nested structure of errors.", + "type": "object", + "properties": { + "code": { + "description": "The error code.", + "type": "string" + }, + "innerError": { + "$ref": "#/definitions/InnerErrorResponse", + "description": "A nested list of inner errors. When evaluating errors, clients MUST traverse through all of the nested “innerErrors” and choose the deepest one that they understand." + } + } + }, + "Experiment": { + "type": "object", + "properties": { + "experimentId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "createdUtc": { + "format": "date-time", + "type": "string" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "archivedTime": { + "format": "date-time", + "type": "string" + }, + "latestCreatedRunCreatedUtc": { + "format": "date-time", + "type": "string" + }, + "latestCreatedRunId": { + "type": "string" + } + } + }, + "ModifyExperiment": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "archive": { + "type": "boolean" + } + } + }, + "QueryParams": { + "description": "The set of supported filters.", + "type": "object", + "properties": { + "filter": { + "description": "Allows for filtering the collection of resources.\r\nThe expression specified is evaluated for each resource in the collection, and only items where the expression evaluates to true are included in the response.\r\nSee https://docs.microsoft.com/en-us/azure/search/query-odata-filter-orderby-syntax for details on the expression syntax.", + "type": "string" + }, + "continuationToken": { + "description": "The continuation token to use for getting the next set of resources.", + "type": "string" + }, + "orderBy": { + "description": "The comma separated list of resource properties to use for sorting the requested resources.\r\nOptionally, can be followed by either 'asc' or 'desc'", + "type": "string", + "example": "Color, Size desc" + }, + "top": { + "format": "int32", + "description": "The maximum number of items in the resource collection to be included in the result.\r\nIf not specified, all items are returned.", + "type": "integer" + } + } + }, + "PaginatedExperimentList": { + "description": "A paginated list of Experiments.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type Experiment.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Experiment" + } + }, + "continuationToken": { + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "type": "string" + }, + "nextLink": { + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "type": "string" + } + } + }, + "DeleteTagsCommand": { + "type": "object", + "properties": { + "tags": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PaginatedRunList": { + "description": "A paginated list of Runs.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type Run.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Run" + } + }, + "continuationToken": { + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "type": "string" + }, + "nextLink": { + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "type": "string" + } + } + }, + "Run": { + "description": "The definition of a Run.", + "type": "object", + "properties": { + "runNumber": { + "format": "int32", + "type": "integer" + }, + "rootRunId": { + "type": "string" + }, + "experimentId": { + "description": "The Id of the experiment that created this run.", + "type": "string" + }, + "createdUtc": { + "format": "date-time", + "description": "The time the run was created in UTC.", + "type": "string" + }, + "createdBy": { + "$ref": "#/definitions/CreatedBy", + "description": "The details of the user who created the run." + }, + "userId": { + "description": "The Id of the user that created the run.", + "type": "string" + }, + "token": { + "description": "A token used for authenticating a run.", + "type": "string" + }, + "tokenExpiryTimeUtc": { + "format": "date-time", + "description": "The Token expiration time in UTC.", + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResponse", + "description": "If an error occurred during the run, this will be populated." + }, + "warnings": { + "description": "A list of warnings that occurred during the run.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/RunDetailsWarning" + } + }, + "revision": { + "format": "int32", + "type": "integer" + }, + "runId": { + "description": "The identifier for the run. Run IDs must be less than 256 characters and contain only alphanumeric characters with dashes and underscores.", + "type": "string" + }, + "parentRunId": { + "description": "The parent of the run if the run is hierarchical; otherwise, Null.", + "type": "string" + }, + "status": { + "description": "The status of the run. The Status string value maps to the RunStatus Enum.", + "type": "string" + }, + "startTimeUtc": { + "format": "date-time", + "description": "The start time of the run in UTC.", + "type": "string" + }, + "endTimeUtc": { + "format": "date-time", + "description": "The end time of the run in UTC.", + "type": "string" + }, + "heartbeatEnabled": { + "type": "boolean" + }, + "options": { + "$ref": "#/definitions/RunOptions" + }, + "name": { + "type": "string" + }, + "dataContainerId": { + "type": "string" + }, + "description": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "runType": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "scriptName": { + "type": "string" + }, + "target": { + "type": "string" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "runDefinition": { + "type": "object" + }, + "createdFrom": { + "$ref": "#/definitions/CreatedFrom" + }, + "cancelUri": { + "type": "string" + }, + "diagnosticsUri": { + "type": "string" + } + } + }, + "CreatedBy": { + "type": "object", + "properties": { + "userObjectId": { + "description": "A user or service principal's object ID.\r\nThis is PII and should never be logged.", + "type": "string" + }, + "userTenantId": { + "description": "A user or service principal's tenant ID.", + "type": "string" + }, + "userName": { + "description": "A user's full name or a service principal's app ID.\r\nThis is PII and should never be logged.", + "type": "string" + } + } + }, + "RunDetailsWarning": { + "type": "object", + "properties": { + "source": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "RunOptions": { + "type": "object", + "properties": { + "generateDataContainerIdIfNotSpecified": { + "type": "boolean" + } + } + }, + "CreatedFrom": { + "type": "object", + "properties": { + "type": { + "enum": [ + "Notebook" + ], + "type": "string", + "x-ms-enum": { + "name": "CreatedFromType", + "modelAsString": false + } + }, + "locationType": { + "enum": [ + "ArtifactId" + ], + "type": "string", + "x-ms-enum": { + "name": "CreatedFromLocationType", + "modelAsString": false + } + }, + "location": { + "type": "string" + } + } + }, + "RunDetails": { + "description": "The details of the run.", + "type": "object", + "properties": { + "runId": { + "description": "The identifier for the run.", + "type": "string" + }, + "target": { + "description": "The name of the compute target where the run is executed.", + "type": "string" + }, + "status": { + "description": "The status of the run. The Status string value maps to the RunStatus Enum.", + "type": "string" + }, + "parentRunId": { + "description": "The parent of the run if the run is hierarchical.", + "type": "string" + }, + "startTimeUtc": { + "format": "date-time", + "description": "The start time of the run in UTC.", + "type": "string" + }, + "endTimeUtc": { + "format": "date-time", + "description": "The end time of the run in UTC.", + "type": "string" + }, + "error": { + "$ref": "#/definitions/ErrorResponse", + "description": "If an error occurred during the run, this will be populated." + }, + "warnings": { + "description": "A list of warnings that occurred during the run.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/RunDetailsWarning" + } + }, + "tags": { + "description": "The tag dictionary for the run. Tags are mutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "properties": { + "description": "The properties dictionary for the run. Properties are immutable.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "runDefinition": { + "description": "The run definition specification.", + "type": "object" + }, + "logFiles": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "revision": { + "format": "int32", + "type": "integer" + } + } + }, + "BatchAddOrModifyRunRequest": { + "type": "object", + "properties": { + "runs": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/CreateRun" + } + } + } + }, + "CreateRun": { + "type": "object", + "properties": { + "runId": { + "description": "The identifier for the run. Run IDs must be less than 256 characters and contain only alphanumeric characters with dashes and underscores.", + "type": "string" + }, + "parentRunId": { + "description": "The parent of the run if the run is hierarchical; otherwise, Null.", + "type": "string" + }, + "status": { + "description": "The status of the run. The Status string value maps to the RunStatus Enum.", + "type": "string" + }, + "startTimeUtc": { + "format": "date-time", + "description": "The start time of the run in UTC.", + "type": "string" + }, + "endTimeUtc": { + "format": "date-time", + "description": "The end time of the run in UTC.", + "type": "string" + }, + "heartbeatEnabled": { + "type": "boolean" + }, + "options": { + "$ref": "#/definitions/RunOptions" + }, + "name": { + "type": "string" + }, + "dataContainerId": { + "type": "string" + }, + "description": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "runType": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "scriptName": { + "type": "string" + }, + "target": { + "type": "string" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "runDefinition": { + "type": "object" + }, + "createdFrom": { + "$ref": "#/definitions/CreatedFrom" + }, + "cancelUri": { + "type": "string" + }, + "diagnosticsUri": { + "type": "string" + } + } + }, + "BatchAddOrModifyRunResult": { + "type": "object", + "properties": { + "runs": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Run" + } + }, + "errors": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "PaginatedArtifactList": { + "description": "A paginated list of Artifacts.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type Artifact.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Artifact" + } + }, + "continuationToken": { + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "type": "string" + }, + "nextLink": { + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "type": "string" + } + } + }, + "Artifact": { + "description": "Details of an Artifact.", + "required": [ + "origin", + "container", + "path" + ], + "type": "object", + "properties": { + "artifactId": { + "description": "The identifier of an Artifact. Format of ArtifactId - {Origin}/{Container}/{Path}.", + "type": "string" + }, + "origin": { + "description": "The origin of the Artifact creation request. Available origins are 'ExperimentRun', 'LocalUpload', 'WebUpload', 'Dataset' and 'Unknown'.", + "type": "string" + }, + "container": { + "description": "The name of container. Artifacts can be grouped by container.", + "type": "string" + }, + "path": { + "description": "The path to the Artifact in a container.", + "type": "string" + }, + "etag": { + "description": "The Etag of the Artifact.", + "type": "string", + "readOnly": true + }, + "createdTime": { + "format": "date-time", + "description": "The Date and Time at which the Artifact is created. The DateTime is in UTC.", + "type": "string", + "readOnly": true + }, + "dataPath": { + "$ref": "#/definitions/DataPath" + } + } + }, + "DataPath": { + "type": "object", + "properties": { + "dataStoreName": { + "type": "string" + }, + "relativePath": { + "type": "string" + }, + "sqlDataPath": { + "$ref": "#/definitions/SqlDataPath" + } + } + }, + "SqlDataPath": { + "type": "object", + "properties": { + "sqlTableName": { + "type": "string" + }, + "sqlQuery": { + "type": "string" + }, + "sqlStoredProcedureName": { + "type": "string" + }, + "sqlStoredProcedureParams": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/StoredProcedureParameter" + } + } + } + }, + "StoredProcedureParameter": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "type": { + "enum": [ + "String", + "Int", + "Decimal", + "Guid", + "Boolean", + "Date" + ], + "type": "string", + "x-ms-enum": { + "name": "StoredProcedureParameterType", + "modelAsString": false + } + } + } + }, + "ArtifactContentInformation": { + "description": "Details of an Artifact Content Information.", + "type": "object", + "properties": { + "contentUri": { + "description": "The URI of the content.", + "type": "string" + }, + "origin": { + "description": "The origin of the Artifact creation request. Available origins are 'ExperimentRun', 'LocalUpload', 'WebUpload', 'Dataset', 'ComputeRecord', 'Metric', and 'Unknown'.", + "type": "string" + }, + "container": { + "description": "The name of container. Artifacts can be grouped by container.", + "type": "string" + }, + "path": { + "description": "The path to the Artifact in a container.", + "type": "string" + } + } + }, + "PaginatedArtifactContentInformationList": { + "description": "A paginated list of ArtifactContentInformations.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type ArtifactContentInformation.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ArtifactContentInformation" + } + }, + "continuationToken": { + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "type": "string" + }, + "nextLink": { + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "type": "string" + } + } + }, + "ArtifactPathList": { + "description": "Contains list of Artifact Paths.", + "required": [ + "paths" + ], + "type": "object", + "properties": { + "paths": { + "description": "List of Artifact Paths.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/ArtifactPath" + } + } + } + }, + "ArtifactPath": { + "description": "Details of an Artifact Path.", + "required": [ + "path" + ], + "type": "object", + "properties": { + "path": { + "description": "The path to the Artifact in a container.", + "type": "string" + } + } + }, + "BatchArtifactContentInformationResult": { + "description": "Results of the Batch Artifact Content Information request.", + "type": "object", + "properties": { + "artifacts": { + "description": "Artifact details of the Artifact Ids requested.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Artifact" + } + }, + "artifactContentInformation": { + "description": "Artifact Content Information details of the Artifact Ids requested.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ArtifactContentInformation" + } + }, + "errors": { + "description": "Errors occurred while fetching the requested Artifact Ids.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/ErrorResponse" + } + } + } + }, + "Metric": { + "type": "object", + "properties": { + "metricId": { + "format": "uuid", + "type": "string" + }, + "dataContainerId": { + "type": "string" + }, + "metricType": { + "type": "string" + }, + "createdUtc": { + "format": "date-time", + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string" + }, + "numCells": { + "format": "int32", + "type": "integer" + }, + "dataLocation": { + "type": "string" + }, + "cells": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "schema": { + "$ref": "#/definitions/MetricSchema" + } + } + }, + "MetricSchema": { + "type": "object", + "properties": { + "numProperties": { + "format": "int32", + "type": "integer" + }, + "properties": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/MetricSchemaProperty" + } + } + } + }, + "MetricSchemaProperty": { + "type": "object", + "properties": { + "propertyId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "BatchMetric": { + "type": "object", + "properties": { + "values": { + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Metric" + } + } + } + }, + "RunMetric": { + "type": "object", + "properties": { + "runId": { + "type": "string" + }, + "metricId": { + "format": "uuid", + "type": "string" + }, + "dataContainerId": { + "type": "string" + }, + "metricType": { + "type": "string" + }, + "createdUtc": { + "format": "date-time", + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string" + }, + "numCells": { + "format": "int32", + "type": "integer" + }, + "dataLocation": { + "type": "string" + }, + "cells": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "schema": { + "$ref": "#/definitions/MetricSchema" + } + } + }, + "PaginatedRunMetricList": { + "description": "A paginated list of RunMetrics.", + "type": "object", + "properties": { + "value": { + "description": "An array of objects of type RunMetric.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/RunMetric" + } + }, + "continuationToken": { + "description": "The token used in retrieving the next page. If null, there are no additional pages.", + "type": "string" + }, + "nextLink": { + "description": "The link to the next page constructed using the continuationToken. If null, there are no additional pages.", + "type": "string" + } + } + } + }, + "parameters": { + "subscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "The Azure Subscription ID.", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-parameter-location": "method" + }, + "resourceGroupNameParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The Name of the resource group in which the workspace is located.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "workspaceNameParameter": { + "name": "workspaceName", + "in": "path", + "description": "The name of the workspace.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + }, + "securityDefinitions": { + "azure_auth": { + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + }, + "type": "oauth2" + } + }, + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "tags": [] +} \ No newline at end of file From 9dc2774d29ecd834aacb80c9e88738438ced835e Mon Sep 17 00:00:00 2001 From: Pramit Gupta <36869364+pgmisc@users.noreply.github.com> Date: Wed, 2 Oct 2019 14:44:12 -0700 Subject: [PATCH 03/10] Update readme.md --- .../data-plane/readme.md | 158 ++++++++---------- 1 file changed, 70 insertions(+), 88 deletions(-) diff --git a/specification/machinelearningservices/data-plane/readme.md b/specification/machinelearningservices/data-plane/readme.md index 3da680e4ba65..503f9a7502f1 100644 --- a/specification/machinelearningservices/data-plane/readme.md +++ b/specification/machinelearningservices/data-plane/readme.md @@ -1,38 +1,70 @@ -# AzureMachineLearning - +# Auto Generate Rest Client with AutoRest > see https://aka.ms/autorest -This is the AutoRest configuration file for AzureMachineLearning. +**Warnings: DO NOT manually edit auto-generated files**. + ---- ## Getting Started -To build the SDK for AzureMachineLearning, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: -> `autorest` +To build the SDKs for Rest APIs, simply install AutoRest via `npm` (`npm install -g autorest`), move command prompt to 'AzureMlRestAPISwaggers' folder, and run: +> `autorest readme.md` To see additional help and options, run: - > `autorest --help` ---- -## Configuration +For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. +## Revert the auto generated changes for [\_restclient\\_\_init__.py](_restclient\__init__.py) and [\_restclient\version.py.](_restclient\version.py.) +We want to keep the version number as the same as SDK, not the swagger file version, so revert the autogen changes to [\_restclient\\_\_init__.py](_restclient\__init__.py) and [\_restclient\version.py.](_restclient\version.py.) +## Edit Swagger Specification File for Update +- These input files are listed in swagger_files_new folder. Edit these files for updating client definition. +- You can learn [how to write this specification](https://github.com/Azure/autorest/blob/master/docs/developer/guide/defining-clients-swagger.md) -### Basic Information -These are the global settings for the AzureMachineLearning API. +## Inputs +We want a single client to be created from the following OpenAPI definition files: ``` yaml +azure-arm: false +openapi-type: data-plane +azure-validator: true +tag: package-2019-09-30 +``` + +### Tag: package-2019-09-30 + +These settings apply only when `--tag=package-2019-09-30` is specified on the command line. + +```yaml $(tag) == 'package-2019-09-30' +input-file: + - Microsoft.MachineLearningServices\preview\2019-09-30\artifact.json + - Microsoft.MachineLearningServices\preview\2019-09-30\datastore.json + - Microsoft.MachineLearningServices\preview\2019-09-30\execution.json + - Microsoft.MachineLearningServices\preview\2019-09-30\hyperdrive.json + - Microsoft.MachineLearningServices\preview\2019-09-30\modelManagement.json + - Microsoft.MachineLearningServices\preview\2019-09-30\runHistory.json +``` +### Tag: package-2019-08-01 + +These settings apply only when `--tag=package-2019-08-01` is specified on the command line. + +```yaml $(tag) == 'package-2019-08-01' +input-file: + - Microsoft.MachineLearningServices\preview\2019-08-01\execution.json + - Microsoft.MachineLearningServices\preview\2019-08-01\modelManagement.json + - Microsoft.MachineLearningServices\preview\2019-08-01\runHistory.json + - Microsoft.MachineLearningServices\preview\2019-08-01\datastore.json + - Microsoft.MachineLearningServices\preview\2019-08-01\artifact.json + - Microsoft.MachineLearningServices\preview\2019-08-01\hyperdrive.json +``` + +Since the info sections of the OpenAPI definition files differ, we choose a new title for the overall client: +```yaml title: Azure Machine Learning Service description: These APIs allow end users to manage Azure Machine Learning Services. -openapi-type: data-plane -tag: package-2019-08-preview -use-internal-constructors: true -add-credentials: true ``` ## Suppression - ``` yaml directive: - suppress: AvoidNestedProperties @@ -48,88 +80,38 @@ directive: reason: Existing service; would be a breaking change ``` -### Tag: package-2019-08-preview - -These settings apply only when `--tag=package-2019-08-preview` is specified on the command line. +## Generation +```yaml +#csharp: +# add-credentials: true +# namespace: Azure.MachineLearning.Services.Generated +# license-header: MICROSOFT_MIT +# base-folder: dotnet\Client +# output-folder: Generated -``` yaml $(tag) == 'package-2019-08-preview' -input-file: - - Microsoft.MachineLearningServices/preview/2019-08-01/execution.json - - Microsoft.MachineLearningServices/preview/2019-08-01/modelManagement.json - - Microsoft.MachineLearningServices/preview/2019-08-01/runHistory.json - - Microsoft.MachineLearningServices/preview/2019-08-01/datastore.json - - Microsoft.MachineLearningServices/preview/2019-08-01/artifact.json - - Microsoft.MachineLearningServices/preview/2019-08-01/hyperdrive.json ``` +## Temporary output folder to save output-artifact and source maps files. Please do not check in these files. ---- -# Code Generation - - -## Swagger to SDK - -Swagger to SDK has been intentionally disabled for this spec. - -## C# - -These settings apply only when `--csharp` is specified on the command line. -Please also specify `--csharp-sdks-folder=`. - -``` yaml $(csharp) -csharp: - azure-arm: true - license-header: MICROSOFT_MIT_NO_VERSION - namespace: Microsoft.Azure.MachineLearning.Services - output-folder: $(csharp-sdks-folder)/MachineLearning/Services/Generated - clear-output-folder: true +``` yaml +output-folder: swagger_generation_log ``` +### Fully resolved OpenAPI definition -## Python - -Python generation is intentionally disabled. Please use the published Python package for Azure Machine Learning on PyPi. - - -## Java - -These settings apply only when `--java` is specified on the command line. -Please also specify `--azure-libraries-for-java-folder=`. +To support tools unable to process multiple OpenAPI definitions or definitions with external references (`$ref: "#/definitions/SomeModel"`), AutoRest allows exporting a single, fully resolved OpenAPI definition without any external references that tools should be able to consume. -``` yaml $(java) -java: - azure-arm: true - namespace: com.microsoft.azure.machinelearning.services - license-header: MICROSOFT_MIT_NO_CODEGEN - output-folder: $(azure-libraries-for-java-folder)/azure-machinelearning-services +``` yaml +output-artifact: + - swagger-document.norm.json ``` -## 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.MachineLearningServices/preview/2019-08-01/execution.json - - $(this-folder)/Microsoft.MachineLearningServices/preview/2019-08-01/modelManagement.json - - $(this-folder)/Microsoft.MachineLearningServices/preview/2019-08-01/runHistory.json - - $(this-folder)/Microsoft.MachineLearningServices/preview/2019-08-01/datastore.json - - $(this-folder)/Microsoft.MachineLearningServices/preview/2019-08-01/artifact.json - - $(this-folder)/Microsoft.MachineLearningServices/preview/2019-08-01/hyperdrive.json - -``` +### Source maps -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. +AutoRest tries to create source maps for output artifacts. These will relate the artifact with the original input files which may be helpful for tools created around AutoRest. +For example, AutoRest uses the source map internally in order to relate validation messages back to the original files. -``` yaml $(tag) == 'all-api-versions' -#exclude-file: -# - $(this-folder)/Microsoft.Example/stable/2010-01-01/somefile.json +``` yaml +output-artifact: + - swagger-document.norm.json.map ``` - From 076fd9a688ae885da445e9edcb6dcc4ceec0c5fb Mon Sep 17 00:00:00 2001 From: Pramit Gupta <36869364+pgmisc@users.noreply.github.com> Date: Wed, 2 Oct 2019 14:46:21 -0700 Subject: [PATCH 04/10] Create cancelHyperDriveExperiment.json --- .../examples/cancelHyperDriveExperiment.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/cancelHyperDriveExperiment.json diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/cancelHyperDriveExperiment.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/cancelHyperDriveExperiment.json new file mode 100644 index 000000000000..ba759fa0ea93 --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/cancelHyperDriveExperiment.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "region": "eastus", + "dnsSuffix": "api.azureml.ms", + "armScope": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace/experiments/demo_experiment", + "runId": "demorun_1558388311" + }, + "responses": { + "200": { + "body": { + "code": 200, + "result": "Cancellation requested for demorun_1558388311" + } + } + } +} From bb315761ccb5498a7ea54ce9625e8007e839a360 Mon Sep 17 00:00:00 2001 From: Pramit Gupta <36869364+pgmisc@users.noreply.github.com> Date: Wed, 2 Oct 2019 14:46:45 -0700 Subject: [PATCH 05/10] Add files via upload --- .../2019-09-30/examples/cancelRunWithUri.json | 18 +++++++ .../examples/createHyperDriveExperiment.json | 49 +++++++++++++++++ .../2019-09-30/examples/startLocalRun.json | 54 +++++++++++++++++++ .../preview/2019-09-30/examples/startRun.json | 19 +++++++ .../2019-09-30/examples/startSnapshotRun.json | 53 ++++++++++++++++++ 5 files changed, 193 insertions(+) create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/cancelRunWithUri.json create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/createHyperDriveExperiment.json create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startLocalRun.json create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startRun.json create mode 100644 specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startSnapshotRun.json diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/cancelRunWithUri.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/cancelRunWithUri.json new file mode 100644 index 000000000000..77caa918c1f9 --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/cancelRunWithUri.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "region": "eastus", + "dnsSuffix": "api.azureml.ms", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "demo_resource_group", + "workspaceName": "demo_workspace", + "experimentName": "demo_experiment", + "runId": "demorun_15501234342_0" + }, + "responses": { + "200": { + "body": { + "runId": "demorun_15501234342_0" + } + } + } +} \ No newline at end of file diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/createHyperDriveExperiment.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/createHyperDriveExperiment.json new file mode 100644 index 000000000000..b1000c1dbb6a --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/createHyperDriveExperiment.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "region": "eastus", + "dnsSuffix": "api.azureml.ms", + "armScope": "subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demo_resource_group/providers/Microsoft.MachineLearningServices/workspaces/demo_workspace/experiments/demo_experiment", + "config": "multipart-form-data" + }, + "responses": { + "201": { + "body": { + "code": 201, + "result": { + "all_jobs_generated": false, + "cancellation_requested": false, + "created": "2019-05-23T20:00:00.0Z", + "created_by_user_id": 0, + "description": null, + "experiment_id": "demo_experiment_1", + "experiment_uri": null, + "generator_config": { + "name": "BAYESIANOPTIMIZATION", + "parameter_space": { + "--param1": ["uniform", [0, 1]] + } + }, + "max_concurrent_jobs": 1, + "max_duration_minutes": 10080, + "max_total_jobs": 4, + "modified": "2019-05-23T20:00:00.0Z", + "name": "demo_experiment", + "platform": "AML", + "platform_config": { + }, + "policy_config": { + "name": "DEFAULT" + }, + "primary_metric_config": { + "name": "accuracy", + "goal": "MAXIMIZE" + }, + "status": "Running", + "study_id": 0, + "study_uri": null, + "hyperdrive_run_id": "" + } + } + } + } +} \ No newline at end of file diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startLocalRun.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startLocalRun.json new file mode 100644 index 000000000000..c4d0601bca44 --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startLocalRun.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "region": "eastus", + "dnsSuffix": "api.azureml.ms", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "demo_resource_group", + "workspaceName": "demo_workspace", + "experimentName": "demo_experiment", + "definition": { + "snapshotId": "00000000-0000-0000-0000-000000000000", + "configuration": { + "script": "findsquare.py", + "arguments": [ + "234" + ], + "framework": "Python", + "communicator": "None", + "target": "batchai", + "maxRunDurationSeconds": 1200, + "nodeCount": 1, + "environment": { + "python": { + "interpreterPath": "python", + "userManagedDependencies": false, + "condaDependencies": { + "name": "project_environment", + "dependencies": [ + "python=3.6.2", + { + "pip": [ + "azureml-defaults" + ] + } + ] + } + }, + "docker": { + "baseImage": "mcr.microsoft.com/azureml/base:0.2.2" + } + }, + "history": { + } + } + } + }, + "responses": { + "200": { + "schema": { + "format": "byte", + "type": "file" + } + } + } +} \ No newline at end of file diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startRun.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startRun.json new file mode 100644 index 000000000000..756f8c57af7b --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startRun.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "region": "eastus", + "dnsSuffix": "api.azureml.ms", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "demo_resource_group", + "workspaceName": "demo_workspace", + "experimentName": "demo_experiment", + "runDefinitionFile": "multipart-form-data", + "projectZipFile": "multipart-form-data" + }, + "responses": { + "200": { + "body": { + "runId": "demorun_15501234342_0" + } + } + } +} diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startSnapshotRun.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startSnapshotRun.json new file mode 100644 index 000000000000..13209f323a84 --- /dev/null +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/examples/startSnapshotRun.json @@ -0,0 +1,53 @@ +{ + "parameters": { + "region": "eastus", + "dnsSuffix": "api.azureml.ms", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "demo_resource_group", + "workspaceName": "demo_workspace", + "experimentName": "demo_experiment", + "definition": { + "snapshotId": "00000000-0000-0000-0000-000000000000", + "configuration": { + "script": "findsquare.py", + "arguments": [ + "234" + ], + "framework": "Python", + "communicator": "None", + "target": "batchai", + "maxRunDurationSeconds": 1200, + "nodeCount": 1, + "environment": { + "python": { + "interpreterPath": "python", + "userManagedDependencies": false, + "condaDependencies": { + "name": "project_environment", + "dependencies": [ + "python=3.6.2", + { + "pip": [ + "azureml-defaults" + ] + } + ] + } + }, + "docker": { + "baseImage": "mcr.microsoft.com/azureml/base:0.2.2" + } + }, + "history": { + } + } + } + }, + "responses": { + "200": { + "body": { + "runId": "demorun_15501234342_0" + } + } + } +} \ No newline at end of file From 7e8dd07a8daa46aab3b0a9775861a0a462a67059 Mon Sep 17 00:00:00 2001 From: Pramit Gupta <36869364+pgmisc@users.noreply.github.com> Date: Wed, 2 Oct 2019 14:56:30 -0700 Subject: [PATCH 06/10] Restore readme.md --- .../data-plane/readme.md | 158 ++++++++++-------- 1 file changed, 88 insertions(+), 70 deletions(-) diff --git a/specification/machinelearningservices/data-plane/readme.md b/specification/machinelearningservices/data-plane/readme.md index 503f9a7502f1..3da680e4ba65 100644 --- a/specification/machinelearningservices/data-plane/readme.md +++ b/specification/machinelearningservices/data-plane/readme.md @@ -1,70 +1,38 @@ -# Auto Generate Rest Client with AutoRest -> see https://aka.ms/autorest +# AzureMachineLearning -**Warnings: DO NOT manually edit auto-generated files**. +> see https://aka.ms/autorest +This is the AutoRest configuration file for AzureMachineLearning. +--- ## Getting Started +To build the SDK for AzureMachineLearning, simply [Install AutoRest](https://aka.ms/autorest/install) and in this folder, run: -To build the SDKs for Rest APIs, simply install AutoRest via `npm` (`npm install -g autorest`), move command prompt to 'AzureMlRestAPISwaggers' folder, and run: -> `autorest readme.md` +> `autorest` To see additional help and options, run: + > `autorest --help` +--- -For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. +## Configuration -## Revert the auto generated changes for [\_restclient\\_\_init__.py](_restclient\__init__.py) and [\_restclient\version.py.](_restclient\version.py.) -We want to keep the version number as the same as SDK, not the swagger file version, so revert the autogen changes to [\_restclient\\_\_init__.py](_restclient\__init__.py) and [\_restclient\version.py.](_restclient\version.py.) -## Edit Swagger Specification File for Update -- These input files are listed in swagger_files_new folder. Edit these files for updating client definition. -- You can learn [how to write this specification](https://github.com/Azure/autorest/blob/master/docs/developer/guide/defining-clients-swagger.md) -## Inputs -We want a single client to be created from the following OpenAPI definition files: +### Basic Information +These are the global settings for the AzureMachineLearning API. ``` yaml -azure-arm: false -openapi-type: data-plane -azure-validator: true -tag: package-2019-09-30 -``` - -### Tag: package-2019-09-30 - -These settings apply only when `--tag=package-2019-09-30` is specified on the command line. - -```yaml $(tag) == 'package-2019-09-30' -input-file: - - Microsoft.MachineLearningServices\preview\2019-09-30\artifact.json - - Microsoft.MachineLearningServices\preview\2019-09-30\datastore.json - - Microsoft.MachineLearningServices\preview\2019-09-30\execution.json - - Microsoft.MachineLearningServices\preview\2019-09-30\hyperdrive.json - - Microsoft.MachineLearningServices\preview\2019-09-30\modelManagement.json - - Microsoft.MachineLearningServices\preview\2019-09-30\runHistory.json -``` -### Tag: package-2019-08-01 - -These settings apply only when `--tag=package-2019-08-01` is specified on the command line. - -```yaml $(tag) == 'package-2019-08-01' -input-file: - - Microsoft.MachineLearningServices\preview\2019-08-01\execution.json - - Microsoft.MachineLearningServices\preview\2019-08-01\modelManagement.json - - Microsoft.MachineLearningServices\preview\2019-08-01\runHistory.json - - Microsoft.MachineLearningServices\preview\2019-08-01\datastore.json - - Microsoft.MachineLearningServices\preview\2019-08-01\artifact.json - - Microsoft.MachineLearningServices\preview\2019-08-01\hyperdrive.json -``` - -Since the info sections of the OpenAPI definition files differ, we choose a new title for the overall client: -```yaml title: Azure Machine Learning Service description: These APIs allow end users to manage Azure Machine Learning Services. +openapi-type: data-plane +tag: package-2019-08-preview +use-internal-constructors: true +add-credentials: true ``` ## Suppression + ``` yaml directive: - suppress: AvoidNestedProperties @@ -80,38 +48,88 @@ directive: reason: Existing service; would be a breaking change ``` -## Generation -```yaml -#csharp: -# add-credentials: true -# namespace: Azure.MachineLearning.Services.Generated -# license-header: MICROSOFT_MIT -# base-folder: dotnet\Client -# output-folder: Generated +### Tag: package-2019-08-preview + +These settings apply only when `--tag=package-2019-08-preview` is specified on the command line. +``` yaml $(tag) == 'package-2019-08-preview' +input-file: + - Microsoft.MachineLearningServices/preview/2019-08-01/execution.json + - Microsoft.MachineLearningServices/preview/2019-08-01/modelManagement.json + - Microsoft.MachineLearningServices/preview/2019-08-01/runHistory.json + - Microsoft.MachineLearningServices/preview/2019-08-01/datastore.json + - Microsoft.MachineLearningServices/preview/2019-08-01/artifact.json + - Microsoft.MachineLearningServices/preview/2019-08-01/hyperdrive.json ``` -## Temporary output folder to save output-artifact and source maps files. Please do not check in these files. -``` yaml -output-folder: swagger_generation_log +--- +# Code Generation + + +## Swagger to SDK + +Swagger to SDK has been intentionally disabled for this spec. + +## C# + +These settings apply only when `--csharp` is specified on the command line. +Please also specify `--csharp-sdks-folder=`. + +``` yaml $(csharp) +csharp: + azure-arm: true + license-header: MICROSOFT_MIT_NO_VERSION + namespace: Microsoft.Azure.MachineLearning.Services + output-folder: $(csharp-sdks-folder)/MachineLearning/Services/Generated + clear-output-folder: true ``` -### Fully resolved OpenAPI definition -To support tools unable to process multiple OpenAPI definitions or definitions with external references (`$ref: "#/definitions/SomeModel"`), AutoRest allows exporting a single, fully resolved OpenAPI definition without any external references that tools should be able to consume. +## Python -``` yaml -output-artifact: - - swagger-document.norm.json +Python generation is intentionally disabled. Please use the published Python package for Azure Machine Learning on PyPi. + + +## Java + +These settings apply only when `--java` is specified on the command line. +Please also specify `--azure-libraries-for-java-folder=`. + +``` yaml $(java) +java: + azure-arm: true + namespace: com.microsoft.azure.machinelearning.services + license-header: MICROSOFT_MIT_NO_CODEGEN + output-folder: $(azure-libraries-for-java-folder)/azure-machinelearning-services ``` -### Source maps +## Multi-API/Profile support for AutoRest v3 generators -AutoRest tries to create source maps for output artifacts. These will relate the artifact with the original input files which may be helpful for tools created around AutoRest. -For example, AutoRest uses the source map internally in order to relate validation messages back to the original files. +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.MachineLearningServices/preview/2019-08-01/execution.json + - $(this-folder)/Microsoft.MachineLearningServices/preview/2019-08-01/modelManagement.json + - $(this-folder)/Microsoft.MachineLearningServices/preview/2019-08-01/runHistory.json + - $(this-folder)/Microsoft.MachineLearningServices/preview/2019-08-01/datastore.json + - $(this-folder)/Microsoft.MachineLearningServices/preview/2019-08-01/artifact.json + - $(this-folder)/Microsoft.MachineLearningServices/preview/2019-08-01/hyperdrive.json -``` yaml -output-artifact: - - swagger-document.norm.json.map ``` + +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 ba417ffd02adc997354481950e0dffabf9fb9f03 Mon Sep 17 00:00:00 2001 From: Pramit Gupta <36869364+pgmisc@users.noreply.github.com> Date: Wed, 2 Oct 2019 15:04:23 -0700 Subject: [PATCH 07/10] Update readme.md --- .../data-plane/readme.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/specification/machinelearningservices/data-plane/readme.md b/specification/machinelearningservices/data-plane/readme.md index 3da680e4ba65..f669447efdf6 100644 --- a/specification/machinelearningservices/data-plane/readme.md +++ b/specification/machinelearningservices/data-plane/readme.md @@ -26,7 +26,7 @@ These are the global settings for the AzureMachineLearning API. title: Azure Machine Learning Service description: These APIs allow end users to manage Azure Machine Learning Services. openapi-type: data-plane -tag: package-2019-08-preview +tag: package-2019-09-preview use-internal-constructors: true add-credentials: true ``` @@ -48,6 +48,20 @@ directive: reason: Existing service; would be a breaking change ``` +### Tag: package-2019-09-preview + +These settings apply only when `--tag=package-2019-09-preview` is specified on the command line. + +```yaml $(tag) == 'package-2019-09-preview' +input-file: + - Microsoft.MachineLearningServices\preview\2019-09-30\execution.json + - Microsoft.MachineLearningServices\preview\2019-09-30\modelManagement.json + - Microsoft.MachineLearningServices\preview\2019-09-30\runHistory.json + - Microsoft.MachineLearningServices\preview\2019-09-30\datastore.json + - Microsoft.MachineLearningServices\preview\2019-09-30\artifact.json + - Microsoft.MachineLearningServices\preview\2019-09-30\hyperdrive.json +``` + ### Tag: package-2019-08-preview These settings apply only when `--tag=package-2019-08-preview` is specified on the command line. @@ -62,7 +76,6 @@ input-file: - Microsoft.MachineLearningServices/preview/2019-08-01/hyperdrive.json ``` - --- # Code Generation From ce5ac6ef644952472285d6ba0180b9f4d2a48a95 Mon Sep 17 00:00:00 2001 From: Pramit Gupta <36869364+pgmisc@users.noreply.github.com> Date: Wed, 2 Oct 2019 18:40:09 -0700 Subject: [PATCH 08/10] Update datastore.json --- .../preview/2019-09-30/datastore.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json index 4a63c4d13073..dcf8aa03fb63 100644 --- a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json @@ -15,7 +15,7 @@ ], "summary": "Get Datastores list.", "description": "Get the list of Datastores attached to the workspace.", - "operationId": "List", + "operationId": "DataStores_List", "consumes": [], "produces": [ "application/json" @@ -91,7 +91,7 @@ ], "summary": "Create or update a Datastore.", "description": "Create or update a Datastore in the given workspace.", - "operationId": "Create", + "operationId": "DataStores_Create", "consumes": [ "application/json" ], @@ -152,7 +152,7 @@ ], "summary": "Delete all Datastores.", "description": "Delete all Datastores in the workspace.", - "operationId": "DeleteAll", + "operationId": "DataStores_DeleteAll", "consumes": [], "produces": [ "application/json" @@ -188,7 +188,7 @@ ], "summary": "Get Datastore details.", "description": "Get details of a Datastore with a specific name.", - "operationId": "Get", + "operationId": "DataStores_Get", "consumes": [], "produces": [ "application/json" @@ -232,7 +232,7 @@ ], "summary": "Update or create a Datastore.", "description": "Update or create a Datastore in the given workspace.", - "operationId": "Update", + "operationId": "DataStores_Update", "consumes": [ "application/json" ], @@ -300,7 +300,7 @@ ], "summary": "Delete a Datastore.", "description": "Delete a Datastore with a specific name.", - "operationId": "Delete", + "operationId": "DataStores_Delete", "consumes": [], "produces": [ "application/json" @@ -343,7 +343,7 @@ ], "summary": "Set a default Datastore.", "description": "Set a default Datastore in the workspace.", - "operationId": "SetDefault", + "operationId": "DataStores_SetDefault", "consumes": [], "produces": [ "application/json" @@ -386,7 +386,7 @@ ], "summary": "Get the default Datastore.", "description": "Get the default Datastore in the workspace.", - "operationId": "GetDefault", + "operationId": "DataStores_GetDefault", "consumes": [], "produces": [ "application/json" @@ -922,4 +922,4 @@ } ], "tags": [] -} \ No newline at end of file +} From fbd09e2b171a43646c466e5cd39bc1a37be7b04b Mon Sep 17 00:00:00 2001 From: Pramit Gupta <36869364+pgmisc@users.noreply.github.com> Date: Wed, 2 Oct 2019 19:05:02 -0700 Subject: [PATCH 09/10] Revert DataStore json changes --- .../preview/2019-09-30/datastore.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json index dcf8aa03fb63..72359af64e8d 100644 --- a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json @@ -15,7 +15,7 @@ ], "summary": "Get Datastores list.", "description": "Get the list of Datastores attached to the workspace.", - "operationId": "DataStores_List", + "operationId": "List", "consumes": [], "produces": [ "application/json" @@ -91,7 +91,7 @@ ], "summary": "Create or update a Datastore.", "description": "Create or update a Datastore in the given workspace.", - "operationId": "DataStores_Create", + "operationId": "Create", "consumes": [ "application/json" ], @@ -152,7 +152,7 @@ ], "summary": "Delete all Datastores.", "description": "Delete all Datastores in the workspace.", - "operationId": "DataStores_DeleteAll", + "operationId": "DeleteAll", "consumes": [], "produces": [ "application/json" @@ -188,7 +188,7 @@ ], "summary": "Get Datastore details.", "description": "Get details of a Datastore with a specific name.", - "operationId": "DataStores_Get", + "operationId": "Get", "consumes": [], "produces": [ "application/json" @@ -232,7 +232,7 @@ ], "summary": "Update or create a Datastore.", "description": "Update or create a Datastore in the given workspace.", - "operationId": "DataStores_Update", + "operationId": "Update", "consumes": [ "application/json" ], @@ -300,7 +300,7 @@ ], "summary": "Delete a Datastore.", "description": "Delete a Datastore with a specific name.", - "operationId": "DataStores_Delete", + "operationId": "Delete", "consumes": [], "produces": [ "application/json" @@ -343,7 +343,7 @@ ], "summary": "Set a default Datastore.", "description": "Set a default Datastore in the workspace.", - "operationId": "DataStores_SetDefault", + "operationId": "SetDefault", "consumes": [], "produces": [ "application/json" @@ -386,7 +386,7 @@ ], "summary": "Get the default Datastore.", "description": "Get the default Datastore in the workspace.", - "operationId": "DataStores_GetDefault", + "operationId": "GetDefault", "consumes": [], "produces": [ "application/json" From 631b0568a37685eab5d61e4fb2f86baeabc39713 Mon Sep 17 00:00:00 2001 From: Pramit Gupta <36869364+pgmisc@users.noreply.github.com> Date: Fri, 4 Oct 2019 10:56:36 -0700 Subject: [PATCH 10/10] Update operationId for several service jsons (#1) * Update datastore.json * Update execution.json * Update hyperdrive.json --- .../preview/2019-09-30/datastore.json | 16 ++++++++-------- .../preview/2019-09-30/execution.json | 10 +++++----- .../preview/2019-09-30/hyperdrive.json | 6 +++--- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json index 72359af64e8d..dcf8aa03fb63 100644 --- a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/datastore.json @@ -15,7 +15,7 @@ ], "summary": "Get Datastores list.", "description": "Get the list of Datastores attached to the workspace.", - "operationId": "List", + "operationId": "DataStores_List", "consumes": [], "produces": [ "application/json" @@ -91,7 +91,7 @@ ], "summary": "Create or update a Datastore.", "description": "Create or update a Datastore in the given workspace.", - "operationId": "Create", + "operationId": "DataStores_Create", "consumes": [ "application/json" ], @@ -152,7 +152,7 @@ ], "summary": "Delete all Datastores.", "description": "Delete all Datastores in the workspace.", - "operationId": "DeleteAll", + "operationId": "DataStores_DeleteAll", "consumes": [], "produces": [ "application/json" @@ -188,7 +188,7 @@ ], "summary": "Get Datastore details.", "description": "Get details of a Datastore with a specific name.", - "operationId": "Get", + "operationId": "DataStores_Get", "consumes": [], "produces": [ "application/json" @@ -232,7 +232,7 @@ ], "summary": "Update or create a Datastore.", "description": "Update or create a Datastore in the given workspace.", - "operationId": "Update", + "operationId": "DataStores_Update", "consumes": [ "application/json" ], @@ -300,7 +300,7 @@ ], "summary": "Delete a Datastore.", "description": "Delete a Datastore with a specific name.", - "operationId": "Delete", + "operationId": "DataStores_Delete", "consumes": [], "produces": [ "application/json" @@ -343,7 +343,7 @@ ], "summary": "Set a default Datastore.", "description": "Set a default Datastore in the workspace.", - "operationId": "SetDefault", + "operationId": "DataStores_SetDefault", "consumes": [], "produces": [ "application/json" @@ -386,7 +386,7 @@ ], "summary": "Get the default Datastore.", "description": "Get the default Datastore in the workspace.", - "operationId": "GetDefault", + "operationId": "DataStores_GetDefault", "consumes": [], "produces": [ "application/json" diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/execution.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/execution.json index 16dd23a5fd44..70eb8c090f93 100644 --- a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/execution.json +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/execution.json @@ -15,7 +15,7 @@ ], "summary": "Start a run on a local machine.", "description": "Starts an experiment run using the provided definition.json file to define the run.\r\n The source code and configuration is defined in a zip archive in project.zip.", - "operationId": "Execution_StartLocalRun", + "operationId": "Runs_StartLocalRun", "consumes": [ "application/json" ], @@ -87,7 +87,7 @@ ], "summary": "Start a run on a remote compute target.", "description": "Starts an experiment run using the provided definition.json file to define the run.\r\n The source code and configuration is defined in a zip archive in project.zip.", - "operationId": "Execution_StartRun", + "operationId": "Runs_StartRun", "consumes": [ "multipart/form-data" ], @@ -162,7 +162,7 @@ ], "summary": "Start a run from a snapshot on a remote compute target.", "description": "Starts an experiment run on the remote compute target using the provided definition.json file to define the run.\r\n The code for the run is retrieved using the snapshotId in definition.json.", - "operationId": "Execution_StartSnapshotRun", + "operationId": "Runs_StartSnapshotRun", "consumes": [ "application/json" ], @@ -232,7 +232,7 @@ ], "summary": "Cancel a run.", "description": "Cancels a run within an experiment.", - "operationId": "Execution_CancelRunWithUri", + "operationId": "Runs_CancelRunWithUri", "consumes": [], "produces": [ "application/json" @@ -824,4 +824,4 @@ } ], "tags": [] -} \ No newline at end of file +} diff --git a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/hyperdrive.json b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/hyperdrive.json index 7e5dab1fd1ca..f7c2b2b018d1 100644 --- a/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/hyperdrive.json +++ b/specification/machinelearningservices/data-plane/Microsoft.MachineLearningServices/preview/2019-09-30/hyperdrive.json @@ -17,7 +17,7 @@ ], "summary": "Create an Experiment.", "description": "Create a HyperDrive Experiment.", - "operationId": "HyperDrive_CreateExperiment", + "operationId": "HyperparameterTuning_CreateExperiment", "consumes": [ "multipart/form-data" ], @@ -64,7 +64,7 @@ ], "summary": "Cancel an Experiment.", "description": "Cancel a HyperDrive Experiment.", - "operationId": "HyperDrive_CancelExperiment", + "operationId": "HyperparameterTuning_CancelExperiment", "consumes": [ "application/json" ], @@ -572,4 +572,4 @@ ] } ] -} \ No newline at end of file +}