swagger: '2.0'
info:
version: 2020-08-01-preview
title: Microsoft Azure AccessControlClient AccessConnector Execution API
schemes:
- https
tags:
- name: Execution
paths:
? /execution/v1.0/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}/experiments/{experimentName}/startlocalrun
: post:
tags:
- Execution
summary: Microsoft Azure Start A Run On A Local Machine
description: Starts an experiment run using the provided definition.json file to define the run.
The source code and configuration is defined in a zip archive in project.zip.
operationId: microsoftAzureRunsStartlocalrun
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: Microsoft Azure Start A Run On A Remote Compute Target
description: Starts an experiment run using the provided definition.json file to define the run.
The source code and configuration is defined in a zip archive in project.zip.
operationId: microsoftAzureRunsStartrun
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: Microsoft Azure 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.
The code for the run is retrieved using the snapshotId in definition.json.
operationId: microsoftAzureRunsStartsnapshotrun
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: Microsoft Azure Cancel A Run
description: Cancels a run within an experiment.
operationId: microsoftAzureRunsCancelrunwithuri
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
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
SparkConfiguration:
type: object
properties:
configuration:
type: object
additionalProperties:
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.
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
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
MpiConfiguration:
type: object
properties:
processCountPerNode:
format: int32
description: Number of processes per node.
type: integer
example: '2'
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
ContainerRegistry:
type: object
properties:
address:
type: string
username:
type: string
password:
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.
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."
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
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
HdiConfiguration:
type: object
properties:
yarnDeployMode:
enum:
- None
- Client
- Cluster
type: string
x-ms-enum:
name: YarnDeployMode
modelAsString: false
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
SparkMavenPackage:
type: object
properties:
group:
type: string
artifact:
type: string
version:
type: string
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"]'
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'
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:
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
subscriptionIdParameter:
name: subscriptionId
in: path
description: The Azure Subscription ID.
required: true
type: string
format: uuid
x-ms-parameter-location: method
x-ms-parameterized-host:
hostTemplate: '{endpoint}'
useSchemePrefix: false
parameters:
- $ref: '#/parameters/Endpoint'