summaryrefslogtreecommitdiff
path: root/data/en_us/pai-dlc
diff options
context:
space:
mode:
authorZhineng Li <[email protected]>2026-02-13 10:54:11 +0800
committerZhineng Li <[email protected]>2026-02-13 10:54:11 +0800
commit7347bac4ab7e136157fc94777e6cf87ef9e08599 (patch)
tree0dec367dac6e152161a6f7cc0dba6ebbef1f34a2 /data/en_us/pai-dlc
downloadacs-metadata-full-main.tar.gz
acs-metadata-full-main.zip
Diffstat (limited to 'data/en_us/pai-dlc')
-rw-r--r--data/en_us/pai-dlc/2020-12-03/api-docs.php6820
1 files changed, 6820 insertions, 0 deletions
diff --git a/data/en_us/pai-dlc/2020-12-03/api-docs.php b/data/en_us/pai-dlc/2020-12-03/api-docs.php
new file mode 100644
index 0000000..4993ed5
--- /dev/null
+++ b/data/en_us/pai-dlc/2020-12-03/api-docs.php
@@ -0,0 +1,6820 @@
+<?php return [
+ 'version' => '1.0',
+ 'info' => [
+ 'style' => 'ROA',
+ 'product' => 'pai-dlc',
+ 'version' => '2020-12-03',
+ ],
+ 'directories' => [
+ [
+ 'id' => 169743,
+ 'title' => 'Tasks',
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateJob',
+ 'DeleteJob',
+ 'UpdateJob',
+ 'StopJob',
+ 'ListJobs',
+ 'GetJob',
+ 'GetJobSanityCheckResult',
+ 'ListJobSanityCheckResults',
+ 'GetPodLogs',
+ 'GetPodEvents',
+ 'GetJobMetrics',
+ 'GetJobEvents',
+ 'ListEcsSpecs',
+ 'GetWebTerminal',
+ 'GetToken',
+ ],
+ ],
+ [
+ 'id' => 169755,
+ 'title' => 'Tensorboard',
+ 'type' => 'directory',
+ 'children' => [
+ 'CreateTensorboard',
+ 'DeleteTensorboard',
+ 'StartTensorboard',
+ 'UpdateTensorboard',
+ 'StopTensorboard',
+ 'ListTensorboards',
+ 'GetTensorboard',
+ 'GetTensorboardSharedUrl',
+ ],
+ ],
+ [
+ 'id' => 208978,
+ 'title' => 'Other',
+ 'type' => 'directory',
+ 'children' => [
+ 'GetRayDashboard',
+ 'GetDashboard',
+ ],
+ ],
+ ],
+ 'components' => [
+ 'schemas' => [
+ 'CodeSourceItem' => [
+ 'title' => '',
+ 'description' => 'The code source configurations returned when the ListCodeSources API operation is called.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'CodeSourceId' => [
+ 'title' => '',
+ 'description' => 'The ID of the code source.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'code-20210111103721-********',
+ 'backendName' => 'CodeSourceId',
+ ],
+ 'DisplayName' => [
+ 'title' => '',
+ 'description' => 'The name of the code source.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'MyCodeSourceName1',
+ 'backendName' => 'DisplayName',
+ ],
+ 'Description' => [
+ 'title' => '',
+ 'description' => 'The description of the code source.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'code source of dlc examples',
+ 'backendName' => 'Description',
+ ],
+ 'CodeRepo' => [
+ 'title' => '',
+ 'description' => 'The URL of the code repository.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'https://code.aliyun.com/pai-dlc/examples.git',
+ 'backendName' => 'CodeRepo',
+ ],
+ 'CodeBranch' => [
+ 'title' => '',
+ 'description' => 'The branch of the code repository. If you configure this parameter when you call the CreateJob API operation, the branch is overwritten.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'master',
+ 'backendName' => 'CodeBranch',
+ ],
+ 'CodeCommit' => [
+ 'title' => '',
+ 'description' => 'The commit ID. If you configure this parameter when you call the CreateJob API operation, the commit is overwritten.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '44da109b59f8596152987eaa8f3b2487bb72ea63',
+ 'backendName' => 'CodeCommit',
+ ],
+ 'CodeRepoUserName' => [
+ 'title' => '',
+ 'description' => 'The username used to access the private code repository.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'user',
+ 'backendName' => 'CodeRepoUserName',
+ ],
+ 'CodeRepoAccessToken' => [
+ 'title' => '',
+ 'description' => 'The access token used to access the code repository.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'xxxx',
+ 'backendName' => 'CodeRepoAccessToken',
+ ],
+ 'UserId' => [
+ 'title' => '',
+ 'description' => 'The UID of the Alibaba Cloud user who creates the code source.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '115729017166****',
+ 'backendName' => 'UserId',
+ ],
+ 'GmtCreateTime' => [
+ 'title' => '',
+ 'description' => 'The time when the code source was created. The time is displayed in UTC.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-18T12:52:15Z',
+ 'backendName' => 'GmtCreateTime',
+ ],
+ 'GmtModifyTime' => [
+ 'title' => '',
+ 'description' => 'The time when the code source was modified. The time is displayed in UTC.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-18T12:52:15Z',
+ 'backendName' => 'GmtModifyTime',
+ ],
+ ],
+ ],
+ 'ContainerSpec' => [
+ 'title' => 'ContainerSpec',
+ 'description' => 'The container parameters.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'title' => '',
+ 'description' => 'The name of the container.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'data-init',
+ 'backendName' => 'Name',
+ ],
+ 'Image' => [
+ 'title' => '',
+ 'description' => 'The endpoint of the container image.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'registry.cn-hangzhou.aliyuncs.com/pai-dlc/curl:v1.0.0',
+ 'backendName' => 'Image',
+ ],
+ 'Command' => [
+ 'title' => '',
+ 'description' => 'The user command.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The command line.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'curl www.aliyun.com',
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'Command',
+ 'itemName' => 'Command',
+ ],
+ 'Args' => [
+ 'title' => '',
+ 'description' => 'The command parameters.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The parameter.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '-v',
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'Args',
+ 'itemName' => 'Args',
+ ],
+ 'WorkingDir' => [
+ 'title' => '',
+ 'description' => 'The working directory in the container.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '/root',
+ 'backendName' => 'WorkingDir',
+ ],
+ 'Env' => [
+ 'title' => '',
+ 'description' => 'The environment variables.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The environment.'."\n",
+ 'visibility' => 'public',
+ 'extendType' => 'true',
+ '$ref' => '#/components/schemas/EnvVar',
+ ],
+ 'backendName' => 'Env',
+ 'itemName' => 'Env',
+ ],
+ 'Resources' => [
+ 'title' => '',
+ 'description' => 'The container resources.'."\n",
+ 'visibility' => 'public',
+ 'backendName' => 'Resources',
+ '$ref' => '#/components/schemas/ResourceRequirements',
+ ],
+ ],
+ ],
+ 'DataJuicerConfig' => [
+ 'description' => '',
+ 'visibility' => 'Public',
+ 'type' => 'object',
+ 'properties' => [
+ 'ExecutionMode' => [
+ 'title' => '',
+ 'description' => '',
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'standalone',
+ 'backendName' => 'ExecutionMode',
+ 'enum' => [
+ 'standalone',
+ 'distributed',
+ ],
+ ],
+ 'CommandType' => [
+ 'title' => '',
+ 'description' => '',
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'config',
+ 'backendName' => 'CommandType',
+ 'enum' => [
+ 'shell',
+ 'config',
+ ],
+ ],
+ ],
+ ],
+ 'DataSourceItem' => [
+ 'title' => '',
+ 'description' => 'The information about the data source.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'DataSourceType' => [
+ 'title' => '',
+ 'description' => 'The data source type. Only File Storage NAS (NAS) file systems are supported.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'nas',
+ 'backendName' => 'DataSourceType',
+ ],
+ 'DataSourceId' => [
+ 'title' => '',
+ 'description' => 'The data source ID.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'data-20210114104214-xxxxxxx',
+ 'backendName' => 'DataSourceId',
+ ],
+ 'DisplayName' => [
+ 'title' => '',
+ 'description' => 'The data source name.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'nas-data',
+ 'backendName' => 'DisplayName',
+ ],
+ 'Description' => [
+ 'title' => '',
+ 'description' => 'The data source description.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'data source of dlc examples',
+ 'backendName' => 'Description',
+ ],
+ 'FileSystemId' => [
+ 'title' => '',
+ 'description' => 'The ID of the NAS file system. For more information, see [Alibaba Cloud documentation](~~185212~~).',
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '1ca404****',
+ 'backendName' => 'FileSystemId',
+ ],
+ 'Path' => [
+ 'title' => '',
+ 'description' => 'The path of the Alibaba Cloud Object Storage Service (OSS) file system.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'oss://mybucket/path/to/dir',
+ 'backendName' => 'Path',
+ ],
+ 'Endpoint' => [
+ 'title' => '',
+ 'description' => 'The endpoint of the Alibaba Cloud OSS file system.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'oss-cn-beijing-internal.aliyuncs.com',
+ 'backendName' => 'Endpoint',
+ ],
+ 'Options' => [
+ 'title' => '',
+ 'description' => 'The configuration options of the Alibaba Cloud OSS file system.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '{"key": "value"}',
+ 'backendName' => 'Options',
+ ],
+ 'MountPath' => [
+ 'title' => '',
+ 'description' => 'The local path of the container that is attached to the runtime of the task.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '/root/data/',
+ 'backendName' => 'MountPath',
+ ],
+ 'UserId' => [
+ 'title' => '',
+ 'description' => 'The ID of the Alibaba Cloud account that creates the data source.',
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '123456789',
+ 'backendName' => 'UserId',
+ ],
+ 'GmtCreateTime' => [
+ 'title' => '',
+ 'description' => 'The time when the data source was created. The time is displayed in UTC.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:35:00Z',
+ 'backendName' => 'GmtCreateTime',
+ ],
+ 'GmtModifyTime' => [
+ 'title' => '',
+ 'description' => 'The time when the data source was last modified. The time is displayed in UTC.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:36:00Z',
+ 'backendName' => 'GmtModifyTime',
+ ],
+ ],
+ ],
+ 'EcsSpec' => [
+ 'title' => 'A short description of struct',
+ 'description' => 'The ECS specifications.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'InstanceType' => [
+ 'title' => '',
+ 'description' => 'The instance type.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'ecs.gn6e-c12g1.3xlarge',
+ 'backendName' => 'InstanceType',
+ ],
+ 'AcceleratorType' => [
+ 'title' => '',
+ 'description' => 'The accelerator type. Valid values:'."\n"
+ ."\n"
+ .'* CPU'."\n"
+ .'* GPU'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'GPU',
+ 'backendName' => 'AcceleratorType',
+ ],
+ 'Cpu' => [
+ 'title' => '',
+ 'description' => 'The number of CPU cores.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '12',
+ 'backendName' => 'Cpu',
+ ],
+ 'Gpu' => [
+ 'title' => '',
+ 'description' => 'The number of GPUs.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ 'backendName' => 'Gpu',
+ ],
+ 'GpuType' => [
+ 'title' => '',
+ 'description' => 'The GPU type.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'NVIDIA v100',
+ 'backendName' => 'GpuType',
+ ],
+ 'Memory' => [
+ 'title' => '',
+ 'description' => 'The memory size. Unit: MiB or GiB.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '92',
+ 'backendName' => 'Memory',
+ ],
+ 'GpuMemory' => [
+ 'title' => '',
+ 'description' => 'The GPU memory size.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '80',
+ 'backendName' => 'GpuMemory',
+ ],
+ 'IsAvailable' => [
+ 'title' => '',
+ 'description' => 'Indicates whether the instance type is available. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'visibility' => 'public',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'backendName' => 'IsAvailable',
+ ],
+ 'ResourceType' => [
+ 'title' => '',
+ 'description' => 'The resource type. Valid values:'."\n"
+ ."\n"
+ .'* ECS'."\n"
+ .'* Lingjun'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'ECS',
+ 'backendName' => 'ResourceType',
+ ],
+ 'DefaultGPUDriver' => [
+ 'title' => '',
+ 'description' => 'The default GPU driver version.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '470.199.02',
+ 'backendName' => 'DefaultGPUDriver',
+ ],
+ 'SupportedGPUDrivers' => [
+ 'title' => '',
+ 'description' => 'The GPU driver versions.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The GPU driver version.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '"470.199.02", "535.54.03"',
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'SupportedGPUDrivers',
+ ],
+ 'SpotStockStatus' => [
+ 'title' => '',
+ 'description' => 'The inventory status of preemptible instance.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'WithStock',
+ 'backendName' => 'SpotStockStatus',
+ ],
+ 'NonProtectSpotDiscount' => [
+ 'title' => '',
+ 'description' => 'The discount on the current price of the preemptible instance.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'number',
+ 'format' => 'float',
+ 'example' => '0.1',
+ 'backendName' => 'NonProtectSpotDiscount',
+ ],
+ 'PaymentTypes' => [
+ 'title' => '',
+ 'description' => 'The billing methods.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The billing method. Valid values:'."\n"
+ ."\n"
+ .'* Spot'."\n"
+ .'* PostPaid'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '"Spot","PostPaid"',
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'PaymentTypes',
+ ],
+ ],
+ ],
+ 'EnvVar' => [
+ 'title' => 'EnvVar',
+ 'description' => 'The environment variables.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'Name' => [
+ 'title' => '',
+ 'description' => 'The name of the environment variable.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'ENABLE_DEBUG',
+ 'backendName' => 'Name',
+ ],
+ 'Value' => [
+ 'title' => '',
+ 'description' => 'The value of the environment variable.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'true',
+ 'backendName' => 'Value',
+ ],
+ ],
+ ],
+ 'ExtraPodSpec' => [
+ 'title' => 'ExtraPodSpec',
+ 'description' => 'The additional pod configurations.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'InitContainers' => [
+ 'title' => '',
+ 'description' => 'The containers to be initialized.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The container configurations.'."\n",
+ 'visibility' => 'public',
+ 'extendType' => 'true',
+ '$ref' => '#/components/schemas/ContainerSpec',
+ ],
+ 'backendName' => 'InitContainers',
+ 'itemName' => 'InitContainers',
+ ],
+ 'PodAnnotations' => [
+ 'title' => '',
+ 'description' => 'The pod annotations.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'deprecated' => true,
+ 'additionalProperties' => [
+ 'description' => 'The annotation. Format: Key=Value.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'example-annotation',
+ ],
+ 'backendName' => 'PodAnnotations',
+ 'itemName' => 'PodAnnotations',
+ ],
+ 'SideCarContainers' => [
+ 'title' => '',
+ 'description' => 'The sidecar containers.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The container configurations.'."\n",
+ 'visibility' => 'public',
+ 'extendType' => 'true',
+ '$ref' => '#/components/schemas/ContainerSpec',
+ ],
+ 'backendName' => 'SideCarContainers',
+ 'itemName' => 'SideCarContainers',
+ ],
+ 'Lifecycle' => [
+ 'description' => 'The lifecycle object.'."\n",
+ 'visibility' => 'Public',
+ 'backendName' => 'Lifecycle',
+ '$ref' => '#/components/schemas/Lifecycle',
+ ],
+ 'MainContainerSecurityContext' => [
+ 'title' => '',
+ 'description' => '',
+ 'visibility' => 'Private',
+ 'backendName' => 'MainContainerSecurityContext',
+ '$ref' => '#/components/schemas/SecurityContext',
+ ],
+ 'SharedVolumeMountPaths' => [
+ 'title' => '',
+ 'description' => 'The local paths shared between containers.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The shared local path.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '/root/share/',
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'SharedVolumeMountPaths',
+ 'itemName' => 'SharedVolumeMountPaths',
+ ],
+ 'PodLabels' => [
+ 'title' => '',
+ 'description' => 'The pod labels.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'deprecated' => true,
+ 'additionalProperties' => [
+ 'description' => 'The label. Format: Key=Value.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'example-lable',
+ ],
+ 'backendName' => 'PodLabels',
+ 'itemName' => 'PodLabels',
+ ],
+ ],
+ ],
+ 'ImageConfig' => [
+ 'title' => 'A short description of struct',
+ 'description' => 'The private image configurations.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'DockerRegistry' => [
+ 'title' => '',
+ 'description' => 'The address of the image repository.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'docker****registry.com',
+ 'backendName' => 'DockerRegistry',
+ ],
+ 'Username' => [
+ 'title' => '',
+ 'description' => 'The username that is used to log on to the image repository.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => ' username',
+ 'backendName' => 'Username',
+ ],
+ 'Password' => [
+ 'title' => '',
+ 'description' => 'The password that is used to log on to the image repository.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'password',
+ 'backendName' => 'Password',
+ ],
+ 'Auth' => [
+ 'title' => '',
+ 'description' => 'The authentication information of the image repository.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'backendName' => 'Auth',
+ ],
+ ],
+ ],
+ 'ImageItem' => [
+ 'title' => '',
+ 'description' => 'The details of the docker image.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'ImageTag' => [
+ 'title' => '',
+ 'description' => 'The tag of the docker image.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'tensorflow-training:2.3-cpu-py36-ubuntu18.04',
+ 'backendName' => 'ImageTag',
+ ],
+ 'ImageUrl' => [
+ 'title' => '',
+ 'description' => 'The image URL address.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'registry.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:2.3-cpu-py36-ubuntu18.04',
+ 'backendName' => 'ImageUrl',
+ ],
+ 'ImageUrlVpc' => [
+ 'title' => '',
+ 'description' => 'The VPC endpoint of the image URL. This address provides faster access speed.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:2.3-cpu-py36-ubuntu18.04',
+ 'backendName' => 'ImageUrlVpc',
+ ],
+ 'ImageProviderType' => [
+ 'title' => '',
+ 'description' => 'The image type. Valid values:'."\n"
+ ."\n"
+ .'* Community'."\n"
+ .'* PAI'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'Community',
+ 'backendName' => 'ImageProviderType',
+ ],
+ 'AcceleratorType' => [
+ 'title' => '',
+ 'description' => 'The type of the image accelerator. Valid values:'."\n"
+ ."\n"
+ .'* cpu'."\n"
+ .'* gpu'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'gpu',
+ 'backendName' => 'AcceleratorType',
+ ],
+ 'Framework' => [
+ 'title' => '',
+ 'description' => 'The computing framework that is encapsulated by the image. Valid values:'."\n"
+ ."\n"
+ .'* TFJob'."\n"
+ .'* PyTorchJob'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'PyTorchJob',
+ 'backendName' => 'Framework',
+ ],
+ 'AuthorId' => [
+ 'title' => '',
+ 'description' => 'The creator of the image.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'ken',
+ 'backendName' => 'AuthorId',
+ ],
+ ],
+ ],
+ 'JobItem' => [
+ 'title' => '',
+ 'description' => 'The job details.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '',
+ 'description' => 'The ID of the job.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'dlc-20210126170216-********',
+ 'nullToEmpty' => true,
+ 'backendName' => 'JobId',
+ ],
+ 'CredentialConfig' => [
+ 'description' => 'The credential configurations associated with the job.'."\n",
+ 'visibility' => 'Public',
+ 'backendName' => 'CredentialConfig',
+ '$ref' => '#/components/schemas/CredentialConfig',
+ ],
+ 'JobType' => [
+ 'title' => '',
+ 'description' => 'The job type. Valid values:'."\n"
+ ."\n"
+ .'* TFJob'."\n"
+ .'* PyTorchJob'."\n"
+ .'* MPIJob'."\n"
+ .'* XGBoostJob'."\n"
+ .'* OneFlowJob'."\n"
+ .'* ElasticBatchJob'."\n"
+ .'* RayJob'."\n"
+ .'* SlurmJob'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'TFJob',
+ 'backendName' => 'JobType',
+ ],
+ 'DisplayName' => [
+ 'title' => '',
+ 'description' => 'The job name.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'tf-mnist-test',
+ 'backendName' => 'DisplayName',
+ ],
+ 'UserVpc' => [
+ 'title' => '',
+ 'description' => 'The user VPC.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'object',
+ 'properties' => [
+ 'VpcId' => [
+ 'title' => 'VPC ID',
+ 'description' => 'VPC ID'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'vpc-2zed***',
+ 'backendName' => 'VpcId',
+ ],
+ 'SwitchId' => [
+ 'title' => '',
+ 'description' => 'The vSwitch ID.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'vsw-2ze6***',
+ 'backendName' => 'SwitchId',
+ ],
+ 'SecurityGroupId' => [
+ 'title' => '',
+ 'description' => 'The security group ID.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'sg-2zeef***',
+ 'backendName' => 'SecurityGroupId',
+ ],
+ 'ExtendedCidrs' => [
+ 'title' => '',
+ 'description' => 'The extended CIDR blocks that need to be connected.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The CIDR block. Example: 10.2.0.0/16.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '10.2.0.0/16',
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'ExtendedCidrs',
+ ],
+ 'DefaultRoute' => [
+ 'title' => '',
+ 'description' => 'The default route. Default value: false. Valid values:'."\n"
+ ."\n"
+ .'* eth0: The default network interface is used to access the Internet through the public gateway.'."\n"
+ .'* eth1: The user\'s Elastic Network Interface is used to access the Internet through the private gateway.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'eth0',
+ 'backendName' => 'DefaultRoute',
+ ],
+ ],
+ 'example' => 'vpc-1',
+ 'backendName' => 'UserVpc',
+ ],
+ 'UserId' => [
+ 'title' => '',
+ 'description' => 'The UID of the user to which the job belongs.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '123456789',
+ 'backendName' => 'UserId',
+ ],
+ 'Username' => [
+ 'title' => '',
+ 'description' => 'The username that is used to submit the job.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'pai-dlc-role',
+ 'backendName' => 'Username',
+ ],
+ 'Status' => [
+ 'title' => '',
+ 'description' => 'The job status. Valid values:'."\n"
+ ."\n"
+ .'* Succeeded'."\n"
+ .'* Failed'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'Stopped',
+ 'backendName' => 'Status',
+ ],
+ 'WorkspaceId' => [
+ 'title' => '',
+ 'description' => 'The ID of the workspace to which the job belongs.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '268',
+ 'backendName' => 'WorkspaceId',
+ ],
+ 'WorkspaceName' => [
+ 'title' => '',
+ 'description' => 'The name of the workspace to which the job belongs.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'dlc-workspace',
+ 'backendName' => 'WorkspaceName',
+ ],
+ 'ResourceId' => [
+ 'title' => '',
+ 'description' => 'The ID of the resource group to which the resource belongs.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'dlc-quota',
+ 'backendName' => 'ResourceId',
+ ],
+ 'ResourceLevel' => [
+ 'title' => '',
+ 'description' => 'The resource level of the job run time.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'L0',
+ 'backendName' => 'ResourceLevel',
+ ],
+ 'ReasonCode' => [
+ 'title' => '',
+ 'description' => 'The reason code for the job to enter the current status. Valid values:'."\n"
+ ."\n"
+ .'* InvalidParameter'."\n"
+ .'* JobSucceeded'."\n"
+ .'* JobStoppedByUser'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'JobStoppedByUser',
+ 'backendName' => 'ReasonCode',
+ ],
+ 'ReasonMessage' => [
+ 'title' => '',
+ 'description' => 'The detailed reason for the job to enter the current status.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'Job is stopped by user.',
+ 'backendName' => 'ReasonMessage',
+ ],
+ 'JobSpecs' => [
+ 'title' => '',
+ 'description' => 'The node configurations of the job run time.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The configuration of the node.'."\n",
+ 'visibility' => 'public',
+ 'extendType' => 'true',
+ '$ref' => '#/components/schemas/JobSpec',
+ ],
+ 'backendName' => 'JobSpecs',
+ 'itemName' => 'JobSpecs',
+ ],
+ 'UserCommand' => [
+ 'title' => '',
+ 'description' => 'The start command for each node of the job.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'python /root/code/mnist.py',
+ 'backendName' => 'UserCommand',
+ ],
+ 'DataSources' => [
+ 'title' => '',
+ 'description' => 'A list of all data sources used by the job.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The data sources.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'DataSourceId' => [
+ 'title' => '',
+ 'description' => 'The data source ID.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'data-20210114104214-********',
+ 'backendName' => 'DataSourceId',
+ ],
+ 'MountPath' => [
+ 'title' => '',
+ 'description' => 'The local mount path of the data source.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '/mnt/data',
+ 'backendName' => 'MountPath',
+ ],
+ ],
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'DataSources',
+ 'itemName' => 'DataSources',
+ ],
+ 'CodeSource' => [
+ 'title' => '',
+ 'description' => 'The code source used by the job.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'CodeSourceId' => [
+ 'title' => '',
+ 'description' => 'The code source ID.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'code-20210111103721-********',
+ 'backendName' => 'CodeSourceId',
+ ],
+ 'Branch' => [
+ 'title' => '',
+ 'description' => 'The code repository branch.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'master',
+ 'backendName' => 'Branch',
+ ],
+ 'Commit' => [
+ 'title' => '',
+ 'description' => 'The CommitID of the code repository used by the job.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '44da109b59f8596152987eaa8f3b2487bb******',
+ 'backendName' => 'Commit',
+ ],
+ 'MountPath' => [
+ 'title' => '',
+ 'description' => 'The local mount path of the code.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '/mnt/data',
+ 'backendName' => 'MountPath',
+ ],
+ ],
+ 'backendName' => 'CodeSource',
+ ],
+ 'ThirdpartyLibs' => [
+ 'title' => '',
+ 'description' => 'The third-party Python libraries required for the job.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A third-party Python library.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'numpy==1.16.1',
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'ThirdpartyLibs',
+ 'itemName' => 'ThirdpartyLibs',
+ ],
+ 'NodeNames' => [
+ 'title' => '',
+ 'description' => 'The node names.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The name of a node.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'i-a',
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'NodeNames',
+ 'itemName' => 'NodeNames',
+ ],
+ 'ThirdpartyLibDir' => [
+ 'title' => '',
+ 'description' => 'The name of the folder in which the requirements.txt file resides.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '/root/code/',
+ 'backendName' => 'ThirdpartyLibDir',
+ ],
+ 'Envs' => [
+ 'title' => '',
+ 'description' => 'The environment variables that are injected into the job run time.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'additionalProperties' => [
+ 'description' => 'The key and value of the environment variable.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'ENABLE_DEBUG_MODE',
+ ],
+ 'backendName' => 'Envs',
+ 'itemName' => 'Envs',
+ ],
+ 'SystemEnvs' => [
+ 'title' => '',
+ 'description' => 'The system environment variables configured.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'object',
+ 'additionalProperties' => [
+ 'description' => 'A system environment variable configured.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'ENABLE_DEBUG_MODE',
+ ],
+ 'backendName' => 'SystemEnvs',
+ 'itemName' => 'SystemEnvs',
+ ],
+ 'GmtCreateTime' => [
+ 'title' => '',
+ 'description' => 'The time when the job was created (UTC).'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:35:01Z',
+ 'backendName' => 'GmtCreateTime',
+ ],
+ 'GmtSubmittedTime' => [
+ 'title' => '',
+ 'description' => 'The time when the job was submitted (UTC).'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:35:01Z',
+ 'backendName' => 'GmtSubmittedTime',
+ ],
+ 'GmtRunningTime' => [
+ 'title' => '',
+ 'description' => 'The time when the job started (UTC).'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:35:01Z',
+ 'backendName' => 'GmtRunningTime',
+ ],
+ 'GmtSuccessedTime' => [
+ 'title' => '',
+ 'description' => 'The time when the job succeeded (UTC).'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:35:01Z',
+ 'backendName' => 'GmtSuccessedTime',
+ ],
+ 'GmtStoppedTime' => [
+ 'title' => '',
+ 'description' => 'The time when the job stopped (UTC).'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:35:01Z',
+ 'backendName' => 'GmtStoppedTime',
+ ],
+ 'GmtFailedTime' => [
+ 'title' => '',
+ 'description' => 'The time when the job failed (UTC).'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:35:01Z',
+ 'backendName' => 'GmtFailedTime',
+ ],
+ 'GmtFinishTime' => [
+ 'title' => '',
+ 'description' => 'The time when the job ended (UTC).'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T15:36:08Z',
+ 'backendName' => 'GmtFinishTime',
+ ],
+ 'GmtModifiedTime' => [
+ 'title' => '',
+ 'description' => 'The time when the job was modified (UTC).'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T15:36:08Z',
+ 'backendName' => 'GmtModifiedTime',
+ ],
+ 'Duration' => [
+ 'title' => '',
+ 'description' => 'The duration of the job. Unit: seconds.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '3602',
+ 'backendName' => 'Duration',
+ ],
+ 'JobMaxRunningTimeMinutes' => [
+ 'title' => '',
+ 'description' => 'The maximum running duration of the job.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ 'backendName' => 'JobMaxRunningTimeMinutes',
+ ],
+ 'Settings' => [
+ 'title' => '',
+ 'description' => 'The extra parameters of the job.'."\n",
+ 'visibility' => 'public',
+ 'backendName' => 'Settings',
+ '$ref' => '#/components/schemas/JobSettings',
+ ],
+ 'EnabledDebugger' => [
+ 'title' => '',
+ 'description' => 'Indicates whether DeBugger is enabled.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'boolean',
+ 'example' => 'false',
+ 'backendName' => 'EnabledDebugger',
+ ],
+ 'IsDeleted' => [
+ 'title' => '',
+ 'description' => 'Indicates whether the job is deleted.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'boolean',
+ 'example' => 'false',
+ 'backendName' => 'IsDeleted',
+ ],
+ 'EnablePreemptibleJob' => [
+ 'title' => '',
+ 'description' => 'Indicates whether PreemptibleJob is enabled.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'boolean',
+ 'example' => 'false',
+ 'backendName' => 'EnablePreemptibleJob',
+ ],
+ 'ResourceName' => [
+ 'title' => '',
+ 'description' => 'The name of the resource on which the job runs.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'my_resource_group',
+ 'backendName' => 'ResourceName',
+ ],
+ 'WorkingDir' => [
+ 'title' => '',
+ 'description' => 'The working path.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '/mnt/data',
+ 'backendName' => 'WorkingDir',
+ ],
+ 'UserScript' => [
+ 'title' => '',
+ 'description' => 'The user script.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'ls ',
+ 'backendName' => 'UserScript',
+ ],
+ 'RestartTimes' => [
+ 'title' => '',
+ 'description' => 'The number of job restarts.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '1',
+ 'backendName' => 'RestartTimes',
+ ],
+ 'RequestCPU' => [
+ 'title' => '',
+ 'description' => 'The requested CPU cores.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ 'backendName' => 'RequestCPU',
+ ],
+ 'RequestMemory' => [
+ 'title' => '',
+ 'description' => 'The requested memory.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '1Gi',
+ 'backendName' => 'RequestMemory',
+ ],
+ 'ResourceQuotaName' => [
+ 'title' => '',
+ 'description' => 'The name of the resource quota.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'test',
+ 'backendName' => 'ResourceQuotaName',
+ ],
+ 'RequestGPU' => [
+ 'title' => '',
+ 'description' => 'The requested GPU cores.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '1',
+ 'backendName' => 'RequestGPU',
+ ],
+ 'NodeCount' => [
+ 'title' => '',
+ 'description' => 'The number of nodes.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '1',
+ 'backendName' => 'NodeCount',
+ ],
+ 'Priority' => [
+ 'title' => '',
+ 'description' => 'The priority of the job.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ 'backendName' => 'Priority',
+ ],
+ 'SubStatus' => [
+ 'title' => '',
+ 'description' => 'The sub-status of the job, such as the preemption and retry status.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'Restarting',
+ 'backendName' => 'SubStatus',
+ ],
+ 'UseOversoldResource' => [
+ 'title' => '',
+ 'description' => 'Indicates whether the job uses idle resources.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'boolean',
+ 'example' => 'false',
+ 'backendName' => 'UseOversoldResource',
+ ],
+ 'ResourceType' => [
+ 'title' => '',
+ 'description' => 'The resource type. Valid values: ECS, Lingjun, and ACS.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'ECS',
+ 'backendName' => 'ResourceType',
+ ],
+ 'Accessibility' => [
+ 'title' => '',
+ 'description' => 'The visibility of the job.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'PUBLIC',
+ 'backendName' => 'Accessibility',
+ ],
+ 'ClusterId' => [
+ 'title' => '',
+ 'description' => 'The cluster ID.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '****1316721349****',
+ 'backendName' => 'ClusterId',
+ ],
+ 'TenantId' => [
+ 'title' => '',
+ 'description' => 'The tenant ID.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '****93955616****',
+ 'backendName' => 'TenantId',
+ ],
+ 'StatusHistory' => [
+ 'title' => 'StatusHistory',
+ 'description' => 'The status history of the job.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The historical status of the job.'."\n",
+ 'visibility' => 'Public',
+ 'extendType' => 'true',
+ '$ref' => '#/components/schemas/StatusTransitionItem',
+ ],
+ 'backendName' => 'StatusHistory',
+ ],
+ 'ElasticSpec' => [
+ 'description' => 'The elastic parameters of the job.'."\n",
+ 'visibility' => 'Public',
+ 'backendName' => 'ElasticSpec',
+ '$ref' => '#/components/schemas/JobElasticSpec',
+ ],
+ 'Pods' => [
+ 'title' => 'Pods',
+ 'description' => 'The pods.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The details of the pod.'."\n",
+ 'visibility' => 'Public',
+ 'extendType' => 'true',
+ '$ref' => '#/components/schemas/PodItem',
+ ],
+ 'backendName' => 'Pods',
+ ],
+ ],
+ ],
+ 'JobSettings' => [
+ 'title' => '',
+ 'description' => 'The additional parameter configurations.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'EnableRDMA' => [
+ 'title' => '',
+ 'description' => 'Whether RDMA is enabled for the job. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'visibility' => 'public',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'backendName' => 'EnableRDMA',
+ ],
+ 'EnableOssAppend' => [
+ 'title' => '',
+ 'description' => 'Whether data is written to Object Storage Service (OSS) in append mode. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'visibility' => 'public',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'backendName' => 'EnableOssAppend',
+ ],
+ 'AllocateAllRDMADevices' => [
+ 'title' => '',
+ 'description' => 'Whether to mount all RDMA network interface controllers'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'boolean',
+ 'backendName' => 'AllocateAllRDMADevices',
+ ],
+ 'EnableTideResource' => [
+ 'title' => '',
+ 'description' => 'Whether tidal resources are allowed for the job. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'visibility' => 'public',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'backendName' => 'EnableTideResource',
+ ],
+ 'JobReservedPolicy' => [
+ 'title' => '',
+ 'description' => 'The retention policy after the job ends.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'Always',
+ 'backendName' => 'JobReservedPolicy',
+ 'enum' => [
+ 'Always',
+ 'OnFailure',
+ 'OnSucceed',
+ ],
+ ],
+ 'ErrorMonitoringArgs' => [
+ 'title' => '',
+ 'description' => 'The configuration parameters after you enable fault tolerance monitoring. For example, you can specify whether to enable log hang-based detection.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '--enable-log-hang-detection true',
+ 'backendName' => 'ErrorMonitoringArgs',
+ ],
+ 'JobReservedMinutes' => [
+ 'title' => '',
+ 'description' => 'The retention period after the job ends. Unit: minutes.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '30',
+ 'backendName' => 'JobReservedMinutes',
+ ],
+ 'Driver' => [
+ 'title' => '',
+ 'description' => 'The NVIDIA driver configurations.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '535.54.03',
+ 'backendName' => 'Driver',
+ ],
+ 'SanityCheckArgs' => [
+ 'title' => '',
+ 'description' => 'The configuration parameters for sanity check.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '--sanity-check-timing=AfterJobFaultTolerant --sanity-check-timeout-ops=MarkJobFail',
+ 'backendName' => 'SanityCheckArgs',
+ ],
+ 'EnableErrorMonitoringInAIMaster' => [
+ 'title' => '',
+ 'description' => 'Whether fault tolerance monitoring is enabled for the job. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'visibility' => 'public',
+ 'type' => 'boolean',
+ 'example' => 'false',
+ 'backendName' => 'EnableErrorMonitoringInAIMaster',
+ ],
+ 'AdvancedSettings' => [
+ 'title' => '',
+ 'description' => 'The additional advanced parameter configurations.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'backendName' => 'AdvancedSettings',
+ ],
+ 'Caller' => [
+ 'title' => '',
+ 'description' => 'The caller.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'SilkFlow',
+ 'backendName' => 'Caller',
+ ],
+ 'PipelineId' => [
+ 'title' => '',
+ 'description' => 'The pipeline ID.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'pid-123456',
+ 'backendName' => 'PipelineId',
+ ],
+ 'BusinessUserId' => [
+ 'title' => '',
+ 'description' => 'The ID of the user associated with the job.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '16****',
+ 'backendName' => 'BusinessUserId',
+ ],
+ 'EnableCPUAffinity' => [
+ 'title' => '',
+ 'description' => 'Whether the CPU affinity is enabled. This parameter takes effect only when you use subscription general computing resources.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'backendName' => 'EnableCPUAffinity',
+ ],
+ 'OversoldType' => [
+ 'title' => '',
+ 'description' => 'Whether the job accepts oversold resources. Valid values: ForbiddenQuotaOverSold, AcceptQuotaOverSold, and ForceQuotaOverSold.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'AcceptQuotaOverSold',
+ 'backendName' => 'OversoldType',
+ ],
+ 'Tags' => [
+ 'title' => '',
+ 'description' => 'The custom tag.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'additionalProperties' => [
+ 'description' => 'The tag.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'key:value',
+ ],
+ 'backendName' => 'Tags',
+ ],
+ 'DisableEcsStockCheck' => [
+ 'title' => '',
+ 'description' => 'Whether inventory check is skipped. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'boolean',
+ 'example' => 'false',
+ 'backendName' => 'DisableEcsStockCheck',
+ ],
+ 'EnableSanityCheck' => [
+ 'title' => '',
+ 'description' => 'Whether sanity check is enabled for the job. Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'boolean',
+ 'example' => 'true',
+ 'backendName' => 'EnableSanityCheck',
+ ],
+ ],
+ 'parseType' => 'struct',
+ ],
+ 'JobSpec' => [
+ 'title' => 'JobSpec',
+ 'description' => 'The detailed configurations of a type of worker, including the hardware specifications, the image run by the worker node, and the number of replicas.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'ImageConfig' => [
+ 'title' => '',
+ 'description' => 'The configuration of the private image.'."\n",
+ 'visibility' => 'public',
+ 'backendName' => 'ImageConfig',
+ '$ref' => '#/components/schemas/ImageConfig',
+ ],
+ 'UseSpotInstance' => [
+ 'title' => '',
+ 'description' => 'Whether to use preemptible instances.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'boolean',
+ 'deprecated' => true,
+ 'example' => 'false',
+ 'backendName' => 'UseSpotInstance',
+ ],
+ 'ServiceSpec' => [
+ 'description' => 'The service configurations.'."\n",
+ 'visibility' => 'Public',
+ 'backendName' => 'ServiceSpec',
+ '$ref' => '#/components/schemas/ServiceSpec',
+ ],
+ 'EcsSpec' => [
+ 'title' => '',
+ 'description' => 'The hardware specifications of the worker. For more information, see [Billing of DLC](~~171758~~) of PAI.'."\n"
+ ."\n"
+ .'> The price varies based on instance types.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'ecs.c6.large',
+ 'backendName' => 'EcsSpec',
+ ],
+ 'AssignNodeSpec' => [
+ 'title' => '',
+ 'description' => 'The scheduling node configurations.'."\n",
+ 'visibility' => 'Public',
+ 'backendName' => 'AssignNodeSpec',
+ '$ref' => '#/components/schemas/AssignNodeSpec',
+ ],
+ 'RestartPolicy' => [
+ 'title' => '',
+ 'description' => 'The restart policy. Valid values: Always, Never, OnFailure, and ExitCode.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'ExitCode',
+ 'backendName' => 'RestartPolicy',
+ ],
+ 'Image' => [
+ 'title' => '',
+ 'description' => 'The address of the image that is run by the worker node. You can call [ListImages](~~449118~~) to obtain the image provided by PAI. You can also specify a third-party public image.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'registry-vpc.cn-hangzhou.aliyuncs.com/cloud-dsw/tensorflow:1.12PAI-gpu-py36-cu101-ubuntu18.04',
+ 'backendName' => 'Image',
+ ],
+ 'PodCount' => [
+ 'title' => '',
+ 'description' => 'The number of replicas.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ 'backendName' => 'PodCount',
+ ],
+ 'Type' => [
+ 'title' => '',
+ 'description' => 'The worker type, which is related to JobType. The valid values of this parameter vary based on the value of JobType.'."\n"
+ ."\n"
+ .'* Valid values when JobType is set to **TFJob**: Chief, PS, Worker, Evaluator, and GraphLearn.'."\n"
+ .'* Valid values when JobType is set to **PyTorchJob**: Worker and Master.'."\n"
+ .'* Valid values when JobType is set to **XGBoostJob**: Worker and Master.'."\n"
+ .'* Valid values when JobType is set to **OneFlowJob**: Worker and Master.'."\n"
+ .'* Valid values when JobType is set to **ElasticBatch**: Worker and Master.'."\n"
+ ."\n"
+ .'The Master node in jobs of the PyTorchJob, XGBoostJob, OneFlowJob, or ElasticBatch type is optional. If you do not specify the Master node, the system automatically uses the first Worker node as the Master node.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'Worker',
+ 'backendName' => 'Type',
+ ],
+ 'SpotSpec' => [
+ 'title' => '',
+ 'description' => 'The configurations of the preemptible instance.'."\n",
+ 'visibility' => 'Public',
+ 'backendName' => 'SpotSpec',
+ '$ref' => '#/components/schemas/SpotSpec',
+ ],
+ 'IsCheif' => [
+ 'title' => '',
+ 'description' => 'Deprecated.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'boolean',
+ 'deprecated' => true,
+ 'backendName' => 'IsCheif',
+ ],
+ 'ResourceConfig' => [
+ 'title' => '',
+ 'description' => 'The resource configurations.'."\n",
+ 'visibility' => 'public',
+ 'backendName' => 'ResourceConfig',
+ '$ref' => '#/components/schemas/ResourceConfig',
+ ],
+ 'AutoScalingSpec' => [
+ 'title' => '',
+ 'description' => 'The auto scaling configurations.'."\n",
+ 'visibility' => 'Public',
+ 'backendName' => 'AutoScalingSpec',
+ '$ref' => '#/components/schemas/AutoScalingSpec',
+ ],
+ 'LocalMountSpecs' => [
+ 'title' => '',
+ 'description' => 'The list of local mount configurations.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '',
+ 'description' => 'Local mount configuration.'."\n",
+ 'visibility' => 'Public',
+ 'extendType' => 'true',
+ '$ref' => '#/components/schemas/LocalMountSpec',
+ ],
+ 'backendName' => 'LocalMountSpecs',
+ ],
+ 'ExtraPodSpec' => [
+ 'title' => '',
+ 'description' => 'The additional pod configurations.'."\n",
+ 'visibility' => 'public',
+ 'backendName' => 'ExtraPodSpec',
+ '$ref' => '#/components/schemas/ExtraPodSpec',
+ ],
+ 'IsChief' => [
+ 'title' => '',
+ 'description' => 'Whether the role is a Chief role. Chief role must be unique.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'boolean',
+ 'backendName' => 'IsChief',
+ ],
+ ],
+ ],
+ 'Metric' => [
+ 'title' => '',
+ 'description' => 'The metric.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'Time' => [
+ 'title' => '',
+ 'description' => 'The timestamp. Unit: milliseconds.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1616987726587',
+ 'backendName' => 'Time',
+ ],
+ 'Value' => [
+ 'title' => '',
+ 'description' => 'The value of the monitoring data.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'number',
+ 'format' => 'float',
+ 'example' => '23.45',
+ 'backendName' => 'Value',
+ ],
+ ],
+ 'parseType' => 'struct',
+ ],
+ 'PodMetric' => [
+ 'title' => '',
+ 'description' => 'The metrics of the job.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'PodId' => [
+ 'title' => '',
+ 'description' => 'The node ID.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'dlc-20210329110128-******-worker-0',
+ 'backendName' => 'PodId',
+ ],
+ 'Metrics' => [
+ 'title' => '',
+ 'description' => 'The metrics list.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The metric.'."\n",
+ 'visibility' => 'public',
+ 'extendType' => 'true',
+ '$ref' => '#/components/schemas/Metric',
+ ],
+ 'backendName' => 'Metrics',
+ 'itemName' => 'Metrics',
+ ],
+ ],
+ ],
+ 'ResourceConfig' => [
+ 'title' => '',
+ 'description' => 'The resource configurations.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'CPU' => [
+ 'title' => '',
+ 'description' => 'The number of vCPUs.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '10',
+ 'backendName' => 'CPU',
+ ],
+ 'GPU' => [
+ 'title' => '',
+ 'description' => 'The number of GPUs.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '3',
+ 'backendName' => 'GPU',
+ ],
+ 'Memory' => [
+ 'title' => '',
+ 'description' => 'The memory size.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '10Gi',
+ 'backendName' => 'Memory',
+ ],
+ 'SharedMemory' => [
+ 'title' => '',
+ 'description' => 'The shared memory capacity.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '5Gi',
+ 'backendName' => 'SharedMemory',
+ ],
+ 'GPUType' => [
+ 'title' => '',
+ 'description' => 'The GPU type.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'Tesla-V100-16G',
+ 'backendName' => 'GPUType',
+ ],
+ ],
+ ],
+ 'ResourceLimit' => [
+ 'description' => 'Limitations of Resource Estimation.',
+ 'visibility' => 'Public',
+ 'type' => 'object',
+ 'properties' => [
+ 'CPU' => [
+ 'title' => '',
+ 'description' => 'The number of GPU cores.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '2',
+ 'backendName' => 'CPU',
+ ],
+ 'Memory' => [
+ 'title' => '',
+ 'description' => 'The memory capacity limit, in Gi.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '10Gi',
+ 'backendName' => 'Memory',
+ ],
+ 'GPU' => [
+ 'title' => '',
+ 'description' => 'The number of GPU cores.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '20',
+ 'backendName' => 'GPU',
+ ],
+ ],
+ ],
+ 'ResourceRequirements' => [
+ 'title' => 'ResourceRequirements',
+ 'description' => 'The container resources.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'Limits' => [
+ 'title' => '',
+ 'description' => 'The resource limit.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'additionalProperties' => [
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '{\'cpu\': \'1\', \'memory\': \'1000Mi\'}',
+ 'description' => '',
+ ],
+ 'backendName' => 'Limits',
+ ],
+ 'Requests' => [
+ 'title' => '',
+ 'description' => 'The resource request.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'additionalProperties' => [
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '{\'cpu\': \'1\', \'memory\': \'1000Mi\'}',
+ 'description' => '',
+ ],
+ 'backendName' => 'Requests',
+ ],
+ ],
+ ],
+ 'SanityCheckResultItem' => [
+ 'title' => '',
+ 'description' => 'The sanity check results.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'object',
+ 'properties' => [
+ 'Phase' => [
+ 'title' => '',
+ 'description' => 'The check phase.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'CheckInit',
+ 'backendName' => 'Phase',
+ ],
+ 'Message' => [
+ 'title' => '',
+ 'description' => 'The detailed information about the check results.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'backendName' => 'Message',
+ ],
+ 'Status' => [
+ 'title' => '',
+ 'description' => 'The check status.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'Succeeded',
+ 'backendName' => 'Status',
+ ],
+ 'StartedAt' => [
+ 'title' => '',
+ 'description' => 'The time when the check starts.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '2023-11-30T16:47:30.343005+08:00',
+ 'backendName' => 'StartedAt',
+ ],
+ 'FinishedAt' => [
+ 'title' => '',
+ 'description' => 'The time when the check ends.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '2023-11-30T16:47:30.378817+08:00',
+ 'backendName' => 'FinishedAt',
+ ],
+ 'CheckNumber' => [
+ 'title' => '',
+ 'description' => 'The nth time the check is performed.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ 'backendName' => 'CheckNumber',
+ ],
+ ],
+ ],
+ 'ServiceSpec' => [
+ 'description' => '',
+ 'visibility' => 'Public',
+ 'type' => 'object',
+ 'properties' => [
+ 'ServiceMode' => [
+ 'title' => '',
+ 'description' => '',
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'enumValueTitles' => [
+ 'PerPod' => 'PerPod',
+ 'PerRole' => 'PerRole',
+ ],
+ 'example' => 'PerRole',
+ 'backendName' => 'ServiceMode',
+ ],
+ 'ExtraPorts' => [
+ 'title' => '',
+ 'description' => '',
+ 'visibility' => 'Public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => '',
+ 'visibility' => 'Public',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8081',
+ 'extendType' => 'true',
+ ],
+ 'backendName' => 'ExtraPorts',
+ ],
+ 'DefaultPort' => [
+ 'title' => '',
+ 'description' => '',
+ 'visibility' => 'Public',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '8080',
+ 'backendName' => 'DefaultPort',
+ ],
+ ],
+ ],
+ 'SpotSpec' => [
+ 'title' => '',
+ 'description' => 'The configurations of the preemptible instance'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'object',
+ 'properties' => [
+ 'SpotStrategy' => [
+ 'title' => '',
+ 'description' => 'The spot policy. Valid values:'."\n"
+ ."\n"
+ .'* SpotWithPriceLimit'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'enumValueTitles' => [
+ 'SpotWithPriceLimit' => 'SpotWithPriceLimit',
+ ],
+ 'example' => 'SpotWithPriceLimit',
+ 'backendName' => 'SpotStrategy',
+ ],
+ 'SpotDiscountLimit' => [
+ 'title' => '',
+ 'description' => 'The maximum discount. Specify only one of SpotDiscountLimit and SpotPriceLimit.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'number',
+ 'format' => 'float',
+ 'example' => '0.8',
+ 'backendName' => 'SpotDiscountLimit',
+ ],
+ 'SpotPriceLimit' => [
+ 'title' => '',
+ 'description' => 'The maximum price. Unit: CNY/minute. Specify only one of SpotDiscountLimit and SpotPriceLimit.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'number',
+ 'format' => 'float',
+ 'example' => '0.4744',
+ 'backendName' => 'SpotPriceLimit',
+ ],
+ ],
+ ],
+ 'Tensorboard' => [
+ 'title' => 'A short description of struct',
+ 'description' => 'The TensorBoard details'."\n",
+ 'visibility' => 'public',
+ 'type' => 'object',
+ 'properties' => [
+ 'TensorboardId' => [
+ 'title' => 'Tensorboard Id',
+ 'description' => 'The TensorBoard ID'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'tensorboard-xxx',
+ 'backendName' => 'TensorboardId',
+ ],
+ 'TensorboardUrl' => [
+ 'title' => 'Tensorboard URL',
+ 'description' => 'The TensorBoard URL.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'http://xxxxxx',
+ 'backendName' => 'TensorboardUrl',
+ ],
+ 'Status' => [
+ 'title' => '',
+ 'description' => 'The status.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'running',
+ 'backendName' => 'Status',
+ ],
+ 'Duration' => [
+ 'title' => '',
+ 'description' => 'The run duration (seconds).'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '1234567',
+ 'backendName' => 'Duration',
+ ],
+ 'GmtCreateTime' => [
+ 'title' => '',
+ 'description' => 'The create time (UTC).'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:35:00Z',
+ 'backendName' => 'GmtCreateTime',
+ ],
+ 'GmtModifyTime' => [
+ 'title' => '',
+ 'description' => 'The modify time (UTC).'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:36:00Z',
+ 'backendName' => 'GmtModifyTime',
+ ],
+ 'GmtFinishTime' => [
+ 'title' => '',
+ 'description' => 'The end time (UTC).'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'null',
+ 'backendName' => 'GmtFinishTime',
+ ],
+ 'RequestId' => [
+ 'title' => '',
+ 'description' => 'The request ID.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ 'backendName' => 'RequestId',
+ ],
+ 'DisplayName' => [
+ 'title' => '',
+ 'description' => 'The display name.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'test',
+ 'backendName' => 'DisplayName',
+ ],
+ 'DataSourceId' => [
+ 'title' => '',
+ 'description' => 'The data source ID.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'datasource-test',
+ 'backendName' => 'DataSourceId',
+ ],
+ 'SummaryPath' => [
+ 'title' => '',
+ 'description' => 'The file path.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => '/root/data',
+ 'backendName' => 'SummaryPath',
+ ],
+ 'UserId' => [
+ 'title' => '',
+ 'description' => 'The ID of the creator.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'lycxxxxx',
+ 'backendName' => 'UserId',
+ ],
+ 'Username' => [
+ 'title' => '',
+ 'description' => 'The username of the creator.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'tensorboard.pai',
+ 'backendName' => 'Username',
+ ],
+ 'ReasonCode' => [
+ 'title' => '',
+ 'description' => 'The status code.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'Delete by user',
+ 'backendName' => 'ReasonCode',
+ ],
+ 'ReasonMessage' => [
+ 'title' => '',
+ 'description' => 'The status details.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'Tensorboard is deleted',
+ 'backendName' => 'ReasonMessage',
+ ],
+ 'JobId' => [
+ 'title' => '',
+ 'description' => 'The job ID.'."\n",
+ 'visibility' => 'public',
+ 'type' => 'string',
+ 'example' => 'dlc-20210114104214-vf9lowjt3pso',
+ 'backendName' => 'JobId',
+ ],
+ 'TensorboardDataSources' => [
+ 'title' => '',
+ 'description' => 'The mounted dataset for the TensorBoard job.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The TensorBoard dataset configurations.'."\n",
+ 'visibility' => 'Public',
+ 'required' => false,
+ 'extendType' => 'true',
+ '$ref' => '#/components/schemas/TensorboardDataSourceSpec',
+ ],
+ 'backendName' => 'TensorboardDataSources',
+ 'itemName' => 'TensorboardDataSource',
+ ],
+ 'TensorboardSpec' => [
+ 'title' => '',
+ 'description' => 'The pay-as-you-go configurations for the TensorBoard job.'."\n",
+ 'visibility' => 'Public',
+ 'backendName' => 'TensorboardSpec',
+ '$ref' => '#/components/schemas/TensorboardSpec',
+ ],
+ 'QuotaId' => [
+ 'title' => '',
+ 'description' => 'The resource group ID used by TensorBoard.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'quota12***',
+ 'backendName' => 'QuotaId',
+ ],
+ 'Priority' => [
+ 'title' => '',
+ 'description' => 'The priority of the TensorBoard job.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '1',
+ 'backendName' => 'Priority',
+ ],
+ 'QuotaName' => [
+ 'title' => '',
+ 'description' => 'The name of the resource quota used by TensorBoard.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'dlc-quota',
+ 'backendName' => 'QuotaName',
+ ],
+ 'Accessibility' => [
+ 'title' => '',
+ 'description' => 'The visibility.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'PRIVATE',
+ 'backendName' => 'Accessibility',
+ ],
+ 'Cpu' => [
+ 'title' => '',
+ 'description' => 'The CPU resources.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1',
+ 'backendName' => 'Cpu',
+ ],
+ 'SummaryRelativePath' => [
+ 'title' => '',
+ 'description' => 'The relative path of Summary.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '/summary/',
+ 'backendName' => 'SummaryRelativePath',
+ ],
+ 'MaxRunningTimeMinutes' => [
+ 'title' => '',
+ 'description' => 'The maximum run time (minutes).'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '240',
+ 'backendName' => 'MaxRunningTimeMinutes',
+ ],
+ 'WorkspaceId' => [
+ 'title' => '',
+ 'description' => 'The workspace ID.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '123***',
+ 'backendName' => 'WorkspaceId',
+ ],
+ 'DataSourceType' => [
+ 'title' => '',
+ 'description' => 'The dataset type.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'OSS',
+ 'backendName' => 'DataSourceType',
+ ],
+ 'Options' => [
+ 'title' => '',
+ 'description' => 'The extended fields of the dataset are in the JSON format. mountpath: the path to mount the custom dataset.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '{"mountpath":"/root/data/"}',
+ 'backendName' => 'Options',
+ ],
+ 'Memory' => [
+ 'title' => '',
+ 'description' => 'The memory size (GB).'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '1000',
+ 'backendName' => 'Memory',
+ ],
+ 'Token' => [
+ 'title' => '',
+ 'description' => 'The value of the token.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'backendName' => 'Token',
+ ],
+ ],
+ ],
+ 'TensorboardDataSourceSpec' => [
+ 'title' => '',
+ 'description' => 'The dataset configurations of the TensorBoard task.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'object',
+ 'properties' => [
+ 'DirectoryName' => [
+ 'title' => '',
+ 'description' => 'The directory prefix of the dataset in the TensorBoard task.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'dlcJobName',
+ 'backendName' => 'DirectoryName',
+ ],
+ 'Name' => [
+ 'title' => '',
+ 'description' => 'The name of the dataset configurations. In most cases, the name of the dataset configurations is the name of a dataset or task.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'dlcJobName',
+ 'backendName' => 'Name',
+ ],
+ 'Id' => [
+ 'title' => 'DataSource Id',
+ 'description' => 'The ID of the dataset configurations. In most cases, the ID of the dataset configurations is the ID of a dataset or task.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'd-vf2fdhxxxxxx',
+ 'backendName' => 'Id',
+ ],
+ 'DataSourceType' => [
+ 'title' => '',
+ 'description' => 'The file type that corresponds to the URI in the dataset configurations.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'OSS',
+ 'backendName' => 'DataSourceType',
+ ],
+ 'Uri' => [
+ 'title' => '',
+ 'description' => 'The file system URI in the dataset configurations.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'oss://.oss-cn-shanghai-finance-1.aliyuncs.com/',
+ 'backendName' => 'Uri',
+ ],
+ 'SourceType' => [
+ 'title' => '',
+ 'description' => 'The dataset type.'."\n"
+ ."\n"
+ .'* datasource: configure a dataset based on the dataset type.'."\n"
+ .'* dlcjob: configure a dataset based on the task type.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'datasource',
+ 'backendName' => 'SourceType',
+ ],
+ 'SummaryPath' => [
+ 'title' => '',
+ 'description' => 'The summary path.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => '/tensorboard/run1',
+ 'backendName' => 'SummaryPath',
+ ],
+ 'FullSummaryPath' => [
+ 'title' => '',
+ 'description' => 'The full summary path.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'oss://xxxxx/tensorboard/run1',
+ 'backendName' => 'FullSummaryPath',
+ ],
+ ],
+ ],
+ 'TensorboardSpec' => [
+ 'title' => '',
+ 'description' => 'The configurations of the pay-as-you-go Tensorboard task.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'object',
+ 'properties' => [
+ 'VpcId' => [
+ 'title' => '',
+ 'description' => 'The ID of the virtual private cloud (VPC) configured for the pay-as-you-go Tensorboard task.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'vpc-xxxx',
+ 'backendName' => 'VpcId',
+ ],
+ 'EcsType' => [
+ 'title' => '',
+ 'description' => 'The specifications of the ECS instance configured for the pay-as-you-go Tensorboard task.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'ecs.g6.large',
+ 'backendName' => 'EcsType',
+ ],
+ 'SecurityGroupId' => [
+ 'title' => '',
+ 'description' => 'The ID of the security group configured for the pay-as-you-go Tensorboard task.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'sg-xxxxx',
+ 'backendName' => 'SecurityGroupId',
+ ],
+ 'SwitchId' => [
+ 'title' => '',
+ 'description' => 'The ID of the vSwitch configured for the pay-as-you-go Tensorboard task.'."\n",
+ 'visibility' => 'Public',
+ 'type' => 'string',
+ 'example' => 'vsw-xxxx',
+ 'backendName' => 'SwitchId',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'apis' => [
+ 'CreateJob' => [
+ 'summary' => 'Creates a job that runs in a cluster. You can configure the data source, code source, startup command, and computing resources of each node on which a job runs.',
+ 'path' => '/api/v1/jobs',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '13110',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnQJXF95',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'body',
+ 'in' => 'body',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The request parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'DisplayName' => [
+ 'title' => '作业显示名称',
+ 'description' => 'The job name. The name must be in the following format:'."\n"
+ ."\n"
+ .'* The name must be 1 to 256 characters in length.'."\n"
+ .'* The name can contain digits, letters, underscores (\\_), periods (.), and hyphens (-).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tf-mnist-test',
+ 'maxLength' => 1024,
+ 'minLength' => 1,
+ ],
+ 'JobType' => [
+ 'title' => '作业类型',
+ 'description' => 'The job type. The value is case-sensitive. The following job types are supported:'."\n"
+ ."\n"
+ .'* TFJob'."\n"
+ .'* PyTorchJob'."\n"
+ .'* MPIJob'."\n"
+ .'* XGBoostJob'."\n"
+ .'* OneFlowJob'."\n"
+ .'* ElasticBatchJob'."\n"
+ .'* SlurmJob'."\n"
+ .'* RayJob'."\n"
+ ."\n"
+ .'Valid values and corresponding frameworks:'."\n"
+ ."\n"
+ .'* OneFlowJob: OneFlow.'."\n"
+ .'* PyTorchJob: PyTorch.'."\n"
+ .'* SlurmJob: Slurm.'."\n"
+ .'* XGBoostJob: XGBoost.'."\n"
+ .'* ElasticBatchJob: ElasticBatch.'."\n"
+ .'* MPIJob: MPIJob.'."\n"
+ .'* TFJob: Tensorflow.'."\n"
+ .'* RayJob: Ray.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'enumValueTitles' => [
+ 'OneFlowJob' => 'OneFlow',
+ 'PyTorchJob' => 'PyTorch',
+ 'SlurmJob' => 'Slurm',
+ 'XGBoostJob' => 'XGBoost',
+ 'ElasticBatchJob' => 'ElasticBatch',
+ 'MPIJob' => 'MPIJob',
+ 'TFJob' => 'Tensorflow',
+ 'RayJob' => 'Ray',
+ ],
+ 'example' => 'TFJob',
+ 'maxLength' => 32,
+ 'minLength' => 1,
+ ],
+ 'JobSpecs' => [
+ 'title' => '作业规格配置',
+ 'description' => '**JobSpecs** describes the configurations for job running, such as the image address, startup command, node resource declaration, and number of replicas.'."\n"
+ ."\n"
+ .'A DLC job consists of different types of nodes. If nodes of the same type have exactly the same configuration, the configuration is called JobSpec. **JobSpecs** specifies the configurations of all types of nodes. The value is of the array type.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The runtime configurations of the job.'."\n",
+ 'required' => false,
+ '$ref' => '#/components/schemas/JobSpec',
+ ],
+ 'required' => true,
+ 'minItems' => 1,
+ ],
+ 'UserCommand' => [
+ 'title' => '作业命令',
+ 'description' => 'The startup command for all nodes of the job.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'python /root/code/mnist.py',
+ ],
+ 'DataSources' => [
+ 'title' => '数据源配置列表',
+ 'description' => 'The data sources for job running.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'All data sources of the job. The data source is mounted to the local path of the container in which each node resides based on the data source configuration. The local path is specified by the MountPath parameter in the data source configuration.'."\n"
+ ."\n"
+ .'The process in the startup command of the job directly accesses the distributed file system that resides in the path specified by the MountPath parameter. Each data source is a distributed file system.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'DataSourceId' => [
+ 'title' => '数据源Id',
+ 'description' => 'The data source ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'd-cn9dl*******',
+ ],
+ 'MountPath' => [
+ 'title' => '本地挂载路径',
+ 'description' => 'The path to which the job is mounted. By default, the mount path in the data source configuration is used. This parameter is optional.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/root/data',
+ ],
+ 'Uri' => [
+ 'title' => '数据源路径',
+ 'description' => 'The data source path.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'oss://bucket.oss-cn-hangzhou-internal.aliyuncs.com/path/',
+ ],
+ 'Options' => [
+ 'description' => 'The mount attribute of the custom dataset. Set the value to OSS.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{'."\n"
+ .' "fs.oss.download.thread.concurrency": "10",'."\n"
+ .' "fs.oss.upload.thread.concurrency": "10",'."\n"
+ .' "fs.jindo.args": "-oattr_timeout=3 -oentry_timeout=0 -onegative_timeout=0 -oauto_cache -ono_symlink"'."\n"
+ .'}',
+ ],
+ 'DataSourceVersion' => [
+ 'type' => 'string',
+ 'required' => false,
+ ],
+ 'MountAccess' => [
+ 'type' => 'string',
+ 'required' => false,
+ ],
+ 'EnableCache' => [
+ 'type' => 'boolean',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'required' => false,
+ ],
+ 'CodeSource' => [
+ 'title' => '代码源配置',
+ 'description' => 'The code source of the job. Before the node of the job runs, DLC automatically downloads the configured code from the code source and mounts the code to the local path of the container.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'CodeSourceId' => [
+ 'title' => '代码源Id',
+ 'description' => 'The ID of the code source.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'code-20210111103721-xxxxxxx',
+ ],
+ 'Branch' => [
+ 'title' => '代码分支',
+ 'description' => 'The branch of the referenced code repository. By default, the branch configured in the code source is used. This parameter is optional.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'master',
+ ],
+ 'Commit' => [
+ 'title' => '代码Commit',
+ 'description' => 'The commit ID of the code to be downloaded. By default, the commit ID configured in the code source is used. This parameter is optional.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '44da109b5******',
+ ],
+ 'MountPath' => [
+ 'title' => '本地挂载路径',
+ 'description' => 'The path to which the job is mounted. By default, the mount path configured in the data source is used. This parameter is optional.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/root/data',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'UserVpc' => [
+ 'title' => '用户VPC',
+ 'description' => 'The VPC settings.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'VpcId' => [
+ 'title' => '用户VPC的id',
+ 'description' => 'The VPC ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vpc-abcdef****',
+ ],
+ 'SwitchId' => [
+ 'title' => '用户交换机的id',
+ 'description' => 'The vSwitch ID. This parameter is optional.'."\n"
+ ."\n"
+ .'* If you leave this parameter empty, the system automatically selects a vSwitch based on the inventory status.'."\n"
+ .'* You can also specify a vSwitch ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'vs-abcdef****',
+ ],
+ 'SecurityGroupId' => [
+ 'title' => '用户安全组的id',
+ 'description' => 'The ID of the security group.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'sg-abcdef****',
+ ],
+ 'ExtendedCIDRs' => [
+ 'title' => '扩展网段',
+ 'description' => 'The extended CIDR block.'."\n"
+ ."\n"
+ .'* If you leave the SwitchId and ExtendedCIDRs parameters empty, the system automatically obtains all CIDR blocks in a VPC.'."\n"
+ .'* If you configure the SwitchId and ExtendedCIDRs parameters, we recommend that you specify all CIDR blocks in a VPC.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The extended CIDR block.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '192.168.0.1/24',
+ ],
+ 'required' => false,
+ ],
+ 'DefaultRoute' => [
+ 'description' => 'The default route. Default value: false. Valid values:'."\n"
+ ."\n"
+ .'* eth0: The default network interface is used to access the Internet through the public gateway.'."\n"
+ .'* eth1: The user\'s elastic network interface (ENI) is used to access the Internet through the private gateway. For more information about the configuration method, see [Enable Internet access for a DSW instance by using a private Internet NAT gateway](~~2525343~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'eth0',
+ ],
+ ],
+ 'required' => false,
+ ],
+ 'ThirdpartyLibs' => [
+ 'title' => '三方库配置列表',
+ 'description' => 'The third-party Python libraries to be installed.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The third-party Python library and its version. Example: `numpy==1.16.1`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'numpy==1.16.1',
+ ],
+ 'required' => false,
+ ],
+ 'ThirdpartyLibDir' => [
+ 'title' => '三方库(requirements.txt)文件路径',
+ 'description' => 'The folder in which the third-party Python library file requirements.txt is stored. Before the startup command specified by the UserCommand parameter is run on each node, DLC fetches the requirements.txt file from the folder and runs `pip install -r` to install the required package and library.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/root/code/',
+ ],
+ 'Envs' => [
+ 'title' => '环境变量配置',
+ 'description' => 'The environment variables.'."\n",
+ 'type' => 'object',
+ 'required' => false,
+ 'additionalProperties' => [
+ 'type' => 'string',
+ 'example' => 'ENABLE_DEBUG_MODE',
+ 'description' => 'The environment variable in the `Key=Value` format.'."\n",
+ ],
+ ],
+ 'JobMaxRunningTimeMinutes' => [
+ 'title' => '作业最大运行时间',
+ 'description' => 'The maximum running duration of the job. Unit: minutes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'minimum' => '1',
+ 'example' => '1024',
+ ],
+ 'WorkspaceId' => [
+ 'title' => '工作空间编号',
+ 'description' => 'The workspace ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ws-20210126170216-xxxxxxx',
+ ],
+ 'ResourceId' => [
+ 'title' => '资源组编号',
+ 'description' => 'The ID of the resource group. This parameter is optional.'."\n"
+ ."\n"
+ .'* If you leave this parameter empty, the job is submitted to a public resource group.'."\n"
+ .'* If a resource quota is bound to the current workspace, you can specify the resource quota ID. For more information about how to query the resource quota ID, see [Manage resource quotas](~~2651299~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'rs-xxx',
+ ],
+ 'Priority' => [
+ 'title' => '作业优先级',
+ 'description' => 'The priority of the job. Default value: 1. Valid values: 1 to 9.'."\n"
+ ."\n"
+ .'* 1 is the lowest priority.'."\n"
+ .'* 9: the highest priority.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '8',
+ ],
+ 'Settings' => [
+ 'description' => 'The additional parameter configurations of the job.'."\n",
+ 'required' => false,
+ '$ref' => '#/components/schemas/JobSettings',
+ ],
+ 'ElasticSpec' => [
+ 'description' => 'This parameter is not supported.'."\n",
+ 'required' => false,
+ '$ref' => '#/components/schemas/JobElasticSpec',
+ ],
+ 'DebuggerConfigContent' => [
+ 'title' => 'debugger参数',
+ 'description' => 'This parameter is not supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '“”',
+ ],
+ 'Options' => [
+ 'description' => 'The additional configuration of the job. You can use this parameter to adjust the behavior of the attached data source. For example, if the attached data source of the job is of the OSS type, you can use this parameter to add the following configurations to override the default parameters of JindoFS: `fs.oss.download.thread.concurrency=4,fs.oss.download.queue.size=16`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'key1=value1,key2=value2',
+ ],
+ 'SuccessPolicy' => [
+ 'title' => '作业成功策略,支持ChiefWorker,AllWorkers,Never',
+ 'description' => 'The policy that is used to check whether a distributed multi-node job is successful. Only TensorFlow distributed multi-node jobs are supported.'."\n"
+ ."\n"
+ .'* ChiefWorker: If you use this policy, the job is considered successful when the pod on the chief node completes operations.'."\n"
+ .'* AllWorkers (default): If you use this policy, the job is considered successful when all worker nodes complete operations.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'AllWorkers',
+ ],
+ 'CredentialConfig' => [
+ 'description' => 'The access credential configuration.'."\n",
+ 'required' => false,
+ '$ref' => '#/components/schemas/CredentialConfig',
+ ],
+ 'Accessibility' => [
+ 'description' => 'The job visibility. Valid values:'."\n"
+ ."\n"
+ .'* PUBLIC: The job is visible to all members in the workspace.'."\n"
+ .'* PRIVATE: The job is visible only to you and the administrator of the workspace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'PRIVATE',
+ ],
+ 'CustomEnvs' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'type' => 'string',
+ ],
+ 'Value' => [
+ 'type' => 'string',
+ ],
+ 'Visible' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ 'TemplateId' => [
+ 'title' => '模板 ID',
+ 'description' => '任务模板的 ID。指定后将基于模板创建作业,作业参数需符合模板约束规则。',
+ 'type' => 'string',
+ 'example' => 'tplxxxxxxxxxxxxxxxx',
+ ],
+ 'TemplateVersion' => [
+ 'title' => '模板版本号',
+ 'description' => '指定使用的模板版本号,不传则使用模板默认版本。',
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '作业Id',
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc7*******',
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The request ID used to troubleshoot issues.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxxx',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc7*******\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-xxxxxxx\\"\\n}","errorExample":""},{"type":"xml","example":"<不支持/>","errorExample":""}]',
+ 'title' => 'CreateJob',
+ 'description' => 'Before you call this operation, make sure that you understand the billing methods and [pricing](~~171758~~) of Deep Learning Containers (DLC) of Platform for AI (PAI).',
+ ],
+ 'DeleteJob' => [
+ 'summary' => 'Deletes a completed or stopped job.',
+ 'path' => '/api/v1/jobs/{JobId}',
+ 'methods' => [
+ 'delete',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '34384',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => '作业Id',
+ 'description' => 'The job ID. For more information about how to query the job ID, see [ListJobs](~~459676~~).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dlc*************',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '作业Id',
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc*************',
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The request ID. You can troubleshoot issues based on the request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc*************\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"< 不支持 />","errorExample":""}]',
+ 'title' => 'DeleteJob',
+ ],
+ 'UpdateJob' => [
+ 'summary' => 'Updates the configuration information of a job. For example, you can modify the priority of a job in a queue.',
+ 'path' => '/api/v1/jobs/{JobId}',
+ 'methods' => [
+ 'put',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'riskType' => 'none',
+ 'chargeType' => 'paid',
+ 'abilityTreeCode' => '119379',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => '作业ID',
+ 'description' => 'The job ID. For more information about how to obtain the ID of a job, see [ListJobs](~~459676~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc*************',
+ ],
+ ],
+ [
+ 'name' => 'body',
+ 'in' => 'body',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The job configurations.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Priority' => [
+ 'title' => '设置优先级',
+ 'description' => 'The job priority. Valid values: 1 to 9.'."\n"
+ ."\n"
+ .'* 1: the lowest priority.'."\n"
+ .'* 9: the highest priority.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '5',
+ ],
+ 'Accessibility' => [
+ 'description' => 'The job visibility. Valid values:'."\n"
+ ."\n"
+ .'* PUBLIC: The job is visible to all members in the workspace.'."\n"
+ .'* PRIVATE: The job is visible only to you and the administrator of the workspace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'PRIVATE',
+ ],
+ 'JobSpecs' => [
+ 'title' => '任务规格定义',
+ 'type' => 'array',
+ 'items' => [
+ '$ref' => '#/components/schemas/JobSpec',
+ ],
+ ],
+ ],
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The returned data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '作业ID',
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc*************',
+ ],
+ 'RequestId' => [
+ 'title' => '请求ID',
+ 'description' => 'The request ID, which is used for diagnostics and Q\\&A.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc*************\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"< 不支持 />","errorExample":""}]',
+ 'title' => 'UpdateJob',
+ ],
+ 'StopJob' => [
+ 'summary' => 'Stops a running job.',
+ 'path' => '/api/v1/jobs/{JobId}/stop',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '13123',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => '作业Id',
+ 'description' => 'The job ID. For more information about how to query the job ID, see [ListJobs](~~459676~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc-20210126170216-xxxxxx',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The returned data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '作业Id',
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc-20210126170216-xxxxxxx',
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The request ID. You can troubleshoot issues based on the request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxx',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc-20210126170216-xxxxxxx\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-xxxxxx\\"\\n}","errorExample":""},{"type":"xml","example":"<不支持/>","errorExample":""}]',
+ 'title' => 'StopJob',
+ ],
+ 'ListJobs' => [
+ 'summary' => 'Queries a list of jobs and supports pagination, sorting, and filtering by conditions.',
+ 'path' => '/api/v1/jobs',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '13122',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnQJXF95',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'DisplayName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '作业显示名称,支持模糊查询',
+ 'description' => 'The job name. Fuzzy query is supported. The name is case-insensitive. Wildcards are not supported. For example, if you enter test, test-job1, job-test, job-test2, or job-test can be matched, and job-t1 cannot be matched. The default value null indicates any job name.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tf-mnist-test',
+ 'maxLength' => 1024,
+ ],
+ ],
+ [
+ 'name' => 'JobType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '作业类型',
+ 'description' => 'The job type. The default value null indicates any type. Valid values:'."\n"
+ ."\n"
+ .'* TFJob'."\n"
+ .'* PyTorchJob'."\n"
+ .'* XGBoostJob'."\n"
+ .'* OneFlowJob'."\n"
+ .'* ElasticBatchJob'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TFJob',
+ 'maxLength' => 32,
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '作业状态',
+ 'description' => 'The job status. Valid values:'."\n"
+ ."\n"
+ .'* Creating'."\n"
+ .'* Queuing'."\n"
+ .'* Bidding (only available for spot jobs that use Lingjun resources)'."\n"
+ .'* EnvPreparing'."\n"
+ .'* SanityChecking'."\n"
+ .'* Running'."\n"
+ .'* Restarting'."\n"
+ .'* Stopping'."\n"
+ .'* SucceededReserving'."\n"
+ .'* FailedReserving'."\n"
+ .'* Succeeded'."\n"
+ .'* Failed'."\n"
+ .'* Stopped'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Running',
+ 'maxLength' => 200,
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '起始时间',
+ 'description' => 'The start time of the query. Use the job creation time to filter data. The default value is the current time minus seven days. In other words, if you do not configure the StartTime and EndTime parameters, the system queries the job list in the last seven days.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-08T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '截止时间',
+ 'description' => 'The end time of the query. Use the job creation time to filter data. The default value is the current time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-09T14:45:00Z',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '当前页',
+ 'description' => 'The number of the page to return for the current query. Minimum value: 1. Default value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '1000',
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '每页返回的作业数',
+ 'description' => 'The number of jobs per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '50',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'SortBy',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '按返回字段排序',
+ 'description' => 'The sorting field. Valid values:'."\n"
+ ."\n"
+ .'* DisplayName'."\n"
+ .'* JobType'."\n"
+ .'* Status'."\n"
+ .'* GmtCreateTime'."\n"
+ .'* GmtFinishTime'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'GmtCreateTime',
+ ],
+ ],
+ [
+ 'name' => 'Order',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '排序顺序',
+ 'description' => 'The sorting order. Valid values:'."\n"
+ ."\n"
+ .'* desc (default)'."\n"
+ .'* asc'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'asc' => 'asc',
+ 'desc' => 'desc',
+ ],
+ 'example' => 'desc',
+ 'default' => 'desc',
+ ],
+ ],
+ [
+ 'name' => 'ShowOwn',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否只返回当前登录者所提交的作业',
+ 'description' => 'Specifies whether to query only the jobs submitted by the current user.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ 'default' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'WorkspaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '工作空间ID',
+ 'description' => 'The workspace ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1****',
+ ],
+ ],
+ [
+ 'name' => 'ResourceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '资源组ID',
+ 'description' => 'The resource group ID. For information about how to obtain the ID of a dedicated resource group, see [Manage resource quota](~~2651299~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'r*****',
+ ],
+ ],
+ [
+ 'name' => 'BusinessUserId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '作业关联用户ID',
+ 'description' => 'The ID of the user associated with the job.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '16****',
+ ],
+ ],
+ [
+ 'name' => 'Caller',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '调用方',
+ 'description' => 'The caller.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'local',
+ ],
+ ],
+ [
+ 'name' => 'Tags',
+ 'in' => 'query',
+ 'style' => 'json',
+ 'schema' => [
+ 'title' => '自定义标签',
+ 'description' => 'The tags.'."\n",
+ 'type' => 'object',
+ 'required' => false,
+ 'additionalProperties' => [
+ 'type' => 'string',
+ 'example' => 'recommandation',
+ 'description' => 'The tag.'."\n",
+ ],
+ ],
+ ],
+ [
+ 'name' => 'PipelineId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '工作流ID',
+ 'description' => 'The specific pipeline ID used to filter jobs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'flow-*******',
+ ],
+ ],
+ [
+ 'name' => 'FromAllWorkspaces',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to query a list of jobs across workspaces. This parameter must be used together with `ShowOwn=true`. You can use this parameter to query a list of jobs recently submitted by the current user.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ ],
+ ],
+ [
+ 'name' => 'JobId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The job ID. Fuzzy query is supported. The name is case-insensitive. Wildcards are not supported. The default value null indicates any job ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc********',
+ ],
+ ],
+ [
+ 'name' => 'UserIdForFilter',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '用于过滤的用户ID',
+ 'description' => 'The user ID used to filter jobs.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '20**************',
+ ],
+ ],
+ [
+ 'name' => 'Username',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '提交作业用户名,支持模糊匹配',
+ 'description' => 'The username used to filter jobs. Fuzzy search is supported. Wildcards are not supported. The default value null indicates that jobs are not filtered by username.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'test***',
+ ],
+ ],
+ [
+ 'name' => 'ResourceQuotaName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '资源组名称',
+ 'description' => 'The resource quota name used to filter jobs. Fuzzy search is supported. Wildcards are not supported. The default value null indicates that jobs are not filtered by resource quota name.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'quota***',
+ ],
+ ],
+ [
+ 'name' => 'Accessibility',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The job visibility. Valid values:'."\n"
+ ."\n"
+ .'* PUBLIC: The job is visible to all members in the workspace.'."\n"
+ .'* PRIVATE: The job is visible only to you and the administrator of the workspace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [
+ 'PUBLIC' => 'PUBLIC',
+ 'PRIVATE' => 'PRIVATE',
+ ],
+ 'example' => 'PRIVATE',
+ ],
+ ],
+ [
+ 'name' => 'OversoldInfo',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The Idle resource information. Valid values:'."\n"
+ ."\n"
+ .'* ForbiddenQuotaOverSold'."\n"
+ .'* ForceQuotaOverSold'."\n"
+ .'* AcceptQuotaOverSold-true (true indicates that the job uses idle resources.)'."\n"
+ .'* AcceptQuotaOverSold-false (false indicates that the job uses guaranteed resources.)'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ForbiddenQuotaOverSold',
+ ],
+ ],
+ [
+ 'name' => 'PaymentType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The type of the resource. Valid values:'."\n"
+ ."\n"
+ .'* PrePaid: Resource quota'."\n"
+ .'* Spot: Preemptible resources'."\n"
+ .'* PostPaid: Public resources'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'PostPaid',
+ ],
+ ],
+ [
+ 'name' => 'JobIds',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ ],
+ ],
+ [
+ 'name' => 'DisplayNameSearchMode',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ [
+ 'name' => 'ReasonSearch',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ [
+ 'name' => 'UserCommandSearch',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ [
+ 'name' => 'ImageSearch',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ [
+ 'name' => 'TimeRangeField',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ [
+ 'name' => 'NumericRangeField',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ [
+ 'name' => 'NumericRangeMin',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'integer',
+ 'format' => 'int64',
+ ],
+ ],
+ [
+ 'name' => 'NumericRangeMax',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'integer',
+ 'format' => 'int64',
+ ],
+ ],
+ [
+ 'name' => 'EnableAssignNode',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ [
+ 'name' => 'TemplateId',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The jobs.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Jobs' => [
+ 'title' => '作业列表',
+ 'description' => 'The jobs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The job.'."\n",
+ '$ref' => '#/components/schemas/JobItem',
+ ],
+ ],
+ 'TotalCount' => [
+ 'title' => '符合过滤条件的总作业数',
+ 'description' => 'The total number of jobs that meet the filter conditions.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '2',
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The request ID used to troubleshoot issues.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Jobs\\": [\\n {\\n \\"JobId\\": \\"dlc-20210126170216-mtl37ge7gkvdz\\",\\n \\"CredentialConfig\\": {\\n \\"EnableCredentialInject\\": true,\\n \\"AliyunEnvRoleKey\\": \\"\\",\\n \\"CredentialConfigItems\\": [\\n {\\n \\"Key\\": \\"\\",\\n \\"Type\\": \\"\\",\\n \\"Roles\\": [\\n {\\n \\"RoleArn\\": \\"\\",\\n \\"RoleType\\": \\"\\",\\n \\"AssumeRoleFor\\": \\"\\",\\n \\"Policy\\": \\"\\",\\n \\"AssumeUserInfo\\": {\\n \\"SecurityToken\\": \\"\\",\\n \\"AccessKeyId\\": \\"\\",\\n \\"Type\\": \\"\\",\\n \\"Id\\": \\"\\"\\n }\\n }\\n ]\\n }\\n ]\\n },\\n \\"JobType\\": \\"TFJob\\",\\n \\"DisplayName\\": \\"tf-mnist-test\\",\\n \\"UserVpc\\": {\\n \\"VpcId\\": \\"\\",\\n \\"SwitchId\\": \\"\\",\\n \\"SecurityGroupId\\": \\"\\",\\n \\"ExtendedCidrs\\": [\\n \\"\\"\\n ],\\n \\"DefaultRoute\\": \\"\\"\\n },\\n \\"UserId\\": \\"123456789\\",\\n \\"Username\\": \\"pai-dlc-role\\",\\n \\"Status\\": \\"Stopped\\",\\n \\"WorkspaceId\\": \\"268\\",\\n \\"WorkspaceName\\": \\"dlc-workspace\\",\\n \\"ResourceId\\": \\"dlc-quota\\",\\n \\"ResourceLevel\\": \\"L0\\",\\n \\"ReasonCode\\": \\"JobStoppedByUser\\",\\n \\"ReasonMessage\\": \\"Job is stopped by user.\\",\\n \\"JobSpecs\\": [\\n {\\n \\"Type\\": \\"Worker\\",\\n \\"Image\\": \\"registry.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:1.12.2PAI-cpu-py27-ubuntu16.04\\",\\n \\"ImageConfig\\": {\\n \\"DockerRegistry\\": \\"registry.cn-hangzhou.aliyuncs.com\\",\\n \\"Username\\": \\"\\",\\n \\"Password\\": \\"\\",\\n \\"Auth\\": \\"\\"\\n },\\n \\"PodCount\\": 1,\\n \\"EcsSpec\\": \\"ecs.c6.large\\",\\n \\"ExtraPodSpec\\": {\\n \\"SideCarContainers\\": [\\n {\\n \\"Name\\": \\"data-init\\",\\n \\"Image\\": \\"registry.cn-hangzhou.aliyuncs.com/pai-dlc/curl:v1.0.0\\",\\n \\"Command\\": [\\n \\"curl www.aliyun.com\\"\\n ],\\n \\"Args\\": [\\n \\"\\"\\n ],\\n \\"WorkingDir\\": \\"/root\\",\\n \\"Env\\": [\\n {\\n \\"Name\\": \\"ENABLE_DEBUG\\",\\n \\"Value\\": \\"true\\"\\n }\\n ],\\n \\"Resources\\": {\\n \\"Limits\\": {\\n \\"key\\": \\"\\"\\n },\\n \\"Requests\\": {\\n \\"key\\": \\"\\"\\n }\\n }\\n }\\n ],\\n \\"InitContainers\\": [\\n {\\n \\"Name\\": \\"data-init\\",\\n \\"Image\\": \\"registry.cn-hangzhou.aliyuncs.com/pai-dlc/curl:v1.0.0\\",\\n \\"Command\\": [\\n \\"curl www.aliyun.com\\"\\n ],\\n \\"Args\\": [\\n \\"\\"\\n ],\\n \\"WorkingDir\\": \\"/root\\",\\n \\"Env\\": [\\n {\\n \\"Name\\": \\"ENABLE_DEBUG\\",\\n \\"Value\\": \\"true\\"\\n }\\n ],\\n \\"Resources\\": {\\n \\"Limits\\": {\\n \\"key\\": \\"\\"\\n },\\n \\"Requests\\": {\\n \\"key\\": \\"\\"\\n }\\n }\\n }\\n ],\\n \\"PodLabels\\": {\\n \\"key\\": \\"\\"\\n },\\n \\"PodAnnotations\\": {\\n \\"key\\": \\"\\"\\n },\\n \\"SharedVolumeMountPaths\\": [\\n \\"/root/share/\\"\\n ],\\n \\"SharedVolumeEphemeralStorageSize\\": \\"\\",\\n \\"Lifecycle\\": {\\n \\"PreStop\\": {\\n \\"Exec\\": {\\n \\"Command\\": [\\n \\"\\"\\n ]\\n }\\n },\\n \\"PostStart\\": {\\n \\"Exec\\": {\\n \\"Command\\": [\\n \\"\\"\\n ]\\n }\\n }\\n },\\n \\"MainContainerSecurityContext\\": {\\n \\"RunAsUser\\": 1000,\\n \\"Privileged\\": true,\\n \\"Capabilities\\": {\\n \\"Add\\": [\\n \\"\\"\\n ],\\n \\"Drop\\": [\\n \\"\\"\\n ]\\n },\\n \\"RunAsGroup\\": 1000,\\n \\"SeccompProfile\\": {\\n \\"Type\\": \\"Unconfined\\",\\n \\"LocalhostProfile\\": \\"my-profiles/profile-allow.json\\"\\n }\\n }\\n },\\n \\"ResourceConfig\\": {\\n \\"CPU\\": \\"10\\",\\n \\"GPU\\": \\"3\\",\\n \\"Memory\\": \\"10Gi\\",\\n \\"SharedMemory\\": \\"5Gi\\",\\n \\"GPUType\\": \\"Tesla-V100-16G\\"\\n },\\n \\"UseSpotInstance\\": false,\\n \\"SpotSpec\\": {\\n \\"SpotStrategy\\": \\"\\",\\n \\"SpotDiscountLimit\\": 0,\\n \\"SpotPriceLimit\\": 0\\n },\\n \\"AssignNodeSpec\\": {\\n \\"EnableAssignNode\\": true,\\n \\"NodeNames\\": \\"lingjxxxxxxxx\\",\\n \\"AntiAffinityNodeNames\\": \\"lingjxxxxxxxx\\",\\n \\"HyperNodes\\": [\\n {\\n \\"HyperNodeName\\": \\"\\",\\n \\"NodeNames\\": \\"\\"\\n }\\n ],\\n \\"AntiAffinityHyperNodes\\": [\\n {\\n \\"HyperNodeName\\": \\"\\",\\n \\"NodeNames\\": \\"\\"\\n }\\n ]\\n },\\n \\"LocalMountSpecs\\": [\\n {\\n \\"MountPath\\": \\"\\",\\n \\"MountMode\\": \\"\\",\\n \\"LocalPath\\": \\"\\"\\n }\\n ],\\n \\"AutoScalingSpec\\": {\\n \\"ScalingStrategy\\": \\"\\",\\n \\"MinReplicas\\": 0,\\n \\"MaxReplicas\\": 0,\\n \\"PodsToDelete\\": [\\n \\"\\"\\n ],\\n \\"AutoscalingMetricSpec\\": {\\n \\"MetricName\\": \\"\\",\\n \\"TargetValue\\": 0\\n }\\n },\\n \\"ServiceSpec\\": {\\n \\"ServiceMode\\": \\"\\",\\n \\"ExtraPorts\\": [\\n 0\\n ],\\n \\"DefaultPort\\": 0\\n },\\n \\"IsCheif\\": true,\\n \\"IsChief\\": true,\\n \\"RestartPolicy\\": \\"\\",\\n \\"SystemDisk\\": {\\n \\"Size\\": 0,\\n \\"Category\\": \\"\\",\\n \\"PerformanceLevel\\": \\"\\"\\n },\\n \\"StartupDependencies\\": [\\n {\\n \\"Type\\": \\"\\",\\n \\"OnPhase\\": \\"\\",\\n \\"MinReplicas\\": \\"\\"\\n }\\n ]\\n }\\n ],\\n \\"UserCommand\\": \\"python /root/code/mnist.py\\",\\n \\"DataSources\\": [\\n {\\n \\"DataSourceId\\": \\"data-20210114104214-vf9lowjt3pso\\",\\n \\"MountPath\\": \\"/mnt/data\\"\\n }\\n ],\\n \\"CodeSource\\": {\\n \\"CodeSourceId\\": \\"code-20210111103721-85qz78ia96lu\\",\\n \\"Branch\\": \\"master\\",\\n \\"Commit\\": \\"44da109b59f8596152987eaa8f3b2487bb72ea63\\",\\n \\"MountPath\\": \\"/mnt/data\\"\\n },\\n \\"ThirdpartyLibs\\": [\\n \\"numpy==1.16.1\\"\\n ],\\n \\"NodeNames\\": [\\n \\"i-a\\"\\n ],\\n \\"ThirdpartyLibDir\\": \\"/root/code/\\",\\n \\"Envs\\": {\\n \\"key\\": \\"ENABLE_DEBUG_MODE\\"\\n },\\n \\"SystemEnvs\\": {\\n \\"key\\": \\"ENABLE_DEBUG_MODE\\"\\n },\\n \\"GmtCreateTime\\": \\"2021-01-12T14:35:01Z\\",\\n \\"GmtSubmittedTime\\": \\"2021-01-12T14:35:01Z\\",\\n \\"GmtRunningTime\\": \\"2021-01-12T14:35:01Z\\",\\n \\"GmtSuccessedTime\\": \\"2021-01-12T14:35:01Z\\",\\n \\"GmtStoppedTime\\": \\"2021-01-12T14:35:01Z\\",\\n \\"GmtFailedTime\\": \\"2021-01-12T14:35:01Z\\",\\n \\"GmtFinishTime\\": \\"2021-01-12T15:36:08Z\\",\\n \\"GmtModifiedTime\\": \\"2021-01-12T15:36:08Z\\",\\n \\"Duration\\": 3602,\\n \\"JobMaxRunningTimeMinutes\\": 1,\\n \\"Settings\\": {\\n \\"BusinessUserId\\": \\"166924\\",\\n \\"Caller\\": \\"SilkFlow\\",\\n \\"Tags\\": {\\n \\"key\\": \\"\\"\\n },\\n \\"PipelineId\\": \\"pid-123456\\",\\n \\"EnableTideResource\\": true,\\n \\"EnableErrorMonitoringInAIMaster\\": false,\\n \\"ErrorMonitoringArgs\\": \\"--enable-log-hang-detection true\\",\\n \\"EnableRDMA\\": true,\\n \\"EnableOssAppend\\": true,\\n \\"OversoldType\\": \\"AcceptQuotaOverSold\\",\\n \\"AdvancedSettings\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"Driver\\": \\"535.54.03\\",\\n \\"EnableSanityCheck\\": true,\\n \\"SanityCheckArgs\\": \\"--sanity-check-timing=AfterJobFaultTolerant --sanity-check-timeout-ops=MarkJobFai\\",\\n \\"JobReservedMinutes\\": 30,\\n \\"JobReservedPolicy\\": \\"Always\\",\\n \\"EnableCPUAffinity\\": true,\\n \\"DisableEcsStockCheck\\": false,\\n \\"AllocateAllRDMADevices\\": true,\\n \\"EnableDSWDev\\": true,\\n \\"DataJuicerConfig\\": {\\n \\"ExecutionMode\\": \\"\\",\\n \\"CommandType\\": \\"\\",\\n \\"EnableResourceEstimation\\": true,\\n \\"ResourceLimit\\": {\\n \\"CPU\\": \\"\\",\\n \\"Memory\\": \\"\\",\\n \\"GPU\\": \\"\\"\\n }\\n },\\n \\"ModelConfig\\": {\\n \\"ModelName\\": \\"\\",\\n \\"ModelTemplate\\": {\\n \\"ModelName\\": \\"\\",\\n \\"Provider\\": \\"\\",\\n \\"Collections\\": \\"\\"\\n }\\n },\\n \\"AllowUnschedulableNodes\\": true\\n },\\n \\"EnabledDebugger\\": false,\\n \\"IsDeleted\\": false,\\n \\"EnablePreemptibleJob\\": false,\\n \\"ResourceName\\": \\"my_resource_group\\",\\n \\"WorkingDir\\": \\"/mnt/data\\",\\n \\"UserScript\\": \\"ls \\",\\n \\"RestartTimes\\": \\"1\\",\\n \\"RequestCPU\\": 1,\\n \\"RequestMemory\\": \\"1Gi\\",\\n \\"ResourceQuotaName\\": \\"test\\",\\n \\"RequestGPU\\": \\"1\\",\\n \\"NodeCount\\": \\"1\\",\\n \\"Priority\\": 1,\\n \\"SubStatus\\": \\"Restarting\\",\\n \\"UseOversoldResource\\": false,\\n \\"ResourceType\\": \\"ECS\\",\\n \\"Accessibility\\": \\"PUBLIC\\",\\n \\"ClusterId\\": \\"\\",\\n \\"TenantId\\": \\"\\",\\n \\"StatusHistory\\": [\\n {\\n \\"Status\\": \\"\\",\\n \\"StartTime\\": \\"\\",\\n \\"EndTime\\": \\"\\",\\n \\"ReasonCode\\": \\"\\",\\n \\"ReasonMessage\\": \\"\\"\\n }\\n ],\\n \\"ElasticSpec\\": {\\n \\"EnableElasticTraining\\": true,\\n \\"MinParallelism\\": 1,\\n \\"MaxParallelism\\": 8,\\n \\"AIMasterType\\": \\"\\",\\n \\"AIMasterDockerImage\\": \\"\\",\\n \\"EnablePsJobElasticWorker\\": true,\\n \\"EnableAIMaster\\": true,\\n \\"EnablePsResourceEstimate\\": true,\\n \\"EnablePsJobElasticPS\\": true,\\n \\"PSMinParallelism\\": 4,\\n \\"PSMaxParallelism\\": 10,\\n \\"ElasticStrategy\\": \\"\\",\\n \\"EnableEDP\\": true,\\n \\"EDPMaxParallelism\\": 16,\\n \\"EDPMinParallelism\\": 8\\n },\\n \\"Pods\\": [\\n {\\n \\"Type\\": \\"Worker\\",\\n \\"PodId\\": \\"dlc-20210126170216-mtl37ge7gkvdz-worker-0\\",\\n \\"PodUid\\": \\"fe846462-af2c-4521-bd6f-96787a57591d\\",\\n \\"Status\\": \\"Stopped\\",\\n \\"Ip\\": \\"10.0.1.2\\",\\n \\"GmtCreateTime\\": \\"2021-01-12T14:36:01Z\\",\\n \\"GmtStartTime\\": \\"2021-01-12T14:36:05Z\\",\\n \\"GmtFinishTime\\": \\"2021-01-12T15:36:05Z\\",\\n \\"HistoryPods\\": [\\n {\\n \\"Type\\": \\"Worker\\",\\n \\"PodId\\": \\"dlc-20210126170216-mtl37ge7gkvdz-worker-0\\",\\n \\"PodUid\\": \\"fe846462-af2c-4521-bd6f-96787a57591d\\",\\n \\"Status\\": \\"Stopped\\",\\n \\"Ip\\": \\"10.0.1.2\\",\\n \\"GmtCreateTime\\": \\"2021-01-12T14:36:01Z\\",\\n \\"GmtStartTime\\": \\"2021-01-12T14:36:05Z\\",\\n \\"GmtFinishTime\\": \\"2021-01-12T15:36:05Z\\",\\n \\"HistoryPods\\": [\\n {\\n \\"Type\\": \\"Worker\\",\\n \\"PodId\\": \\"dlc-20210126170216-mtl37ge7gkvdz-worker-0\\",\\n \\"PodUid\\": \\"fe846462-af2c-4521-bd6f-96787a57591d\\",\\n \\"Status\\": \\"Stopped\\",\\n \\"Ip\\": \\"10.0.1.2\\",\\n \\"GmtCreateTime\\": \\"2021-01-12T14:36:01Z\\",\\n \\"GmtStartTime\\": \\"2021-01-12T14:36:05Z\\",\\n \\"GmtFinishTime\\": \\"2021-01-12T15:36:05Z\\",\\n \\"HistoryPods\\": [],\\n \\"SubStatus\\": \\"\\",\\n \\"NodeName\\": \\"\\",\\n \\"PodIp\\": \\"\\",\\n \\"PodIps\\": [\\n {\\n \\"InterfaceName\\": \\"\\",\\n \\"Ip\\": \\"\\"\\n }\\n ]\\n }\\n ],\\n \\"SubStatus\\": \\"\\",\\n \\"NodeName\\": \\"\\",\\n \\"PodIp\\": \\"\\",\\n \\"PodIps\\": [\\n {\\n \\"InterfaceName\\": \\"\\",\\n \\"Ip\\": \\"\\"\\n }\\n ]\\n }\\n ],\\n \\"SubStatus\\": \\"\\",\\n \\"NodeName\\": \\"\\",\\n \\"PodIp\\": \\"\\",\\n \\"PodIps\\": [\\n {\\n \\"InterfaceName\\": \\"\\",\\n \\"Ip\\": \\"\\"\\n }\\n ]\\n }\\n ],\\n \\"TemplateId\\": \\"\\",\\n \\"TemplateName\\": \\"\\",\\n \\"JobReplicaStatuses\\": [\\n {\\n \\"Type\\": \\"\\",\\n \\"Active\\": 0,\\n \\"EstimatedPodCount\\": 0,\\n \\"EstimatedAutoScalingSpec\\": {\\n \\"ScalingStrategy\\": \\"\\",\\n \\"MinReplicas\\": 0,\\n \\"MaxReplicas\\": 0,\\n \\"PodsToDelete\\": [\\n \\"\\"\\n ],\\n \\"AutoscalingMetricSpec\\": {\\n \\"MetricName\\": \\"\\",\\n \\"TargetValue\\": 0\\n }\\n },\\n \\"EstimatedResourceConfig\\": {\\n \\"CPU\\": \\"10\\",\\n \\"GPU\\": \\"3\\",\\n \\"Memory\\": \\"10Gi\\",\\n \\"SharedMemory\\": \\"5Gi\\",\\n \\"GPUType\\": \\"Tesla-V100-16G\\"\\n },\\n \\"Queuing\\": 0,\\n \\"Dequeued\\": 0\\n }\\n ]\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<不支持/>","errorExample":""}]',
+ 'title' => 'ListJobs',
+ 'translator' => 'machine',
+ ],
+ 'GetJob' => [
+ 'summary' => 'Obtains the configuration and runtime information of a job.',
+ 'path' => '/api/v1/jobs/{JobId}',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeCode' => '13115',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnQJXF95',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => '作业Id',
+ 'description' => 'The job ID. Call [ListJobs](~~459676~~) to get the job ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dlc*******',
+ 'maxLength' => 256,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'NeedDetail',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否返回作业详情信息,默认为true',
+ 'description' => 'Specifies whether to return the job details. Default value: true.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'A JSON string.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '作业Id',
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc*******',
+ ],
+ 'JobType' => [
+ 'title' => '作业类型',
+ 'description' => 'The job type. Specified by the JobType parameter of the [CreateJob](~~459672~~) operation.'."\n",
+ 'type' => 'string',
+ 'example' => 'TFJob',
+ ],
+ 'DisplayName' => [
+ 'title' => '作业显示名称',
+ 'description' => 'The job name.'."\n",
+ 'type' => 'string',
+ 'example' => 'tf-mnist-test',
+ ],
+ 'UserId' => [
+ 'title' => '作业提交人Id',
+ 'description' => 'The UID of the Alibaba Cloud account who submitted the job.'."\n",
+ 'type' => 'string',
+ 'example' => '12*********',
+ ],
+ 'Status' => [
+ 'title' => '作业状态',
+ 'description' => 'The status of the job. Valid values:'."\n"
+ ."\n"
+ .'* Creating'."\n"
+ .'* Queuing'."\n"
+ .'* Bidding (Only for Lingjun preemptible jobs)'."\n"
+ .'* EnvPreparing'."\n"
+ .'* SanityChecking'."\n"
+ .'* Running'."\n"
+ .'* Restarting'."\n"
+ .'* Stopping'."\n"
+ .'* SucceededReserving'."\n"
+ .'* FailedReserving'."\n"
+ .'* Succeeded'."\n"
+ .'* Failed'."\n"
+ .'* Stopped'."\n",
+ 'type' => 'string',
+ 'example' => 'Stopped',
+ ],
+ 'WorkspaceId' => [
+ 'title' => '作业所属工作空间ID',
+ 'description' => 'The ID of the workspace to which the job belongs.'."\n",
+ 'type' => 'string',
+ 'example' => '268',
+ ],
+ 'WorkspaceName' => [
+ 'title' => '作业所属工作空间名称',
+ 'description' => 'The name of the workspace to which the job belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc-workspace',
+ ],
+ 'ResourceId' => [
+ 'title' => '作业运行所在的资源组ID',
+ 'description' => 'The ID of the resource group to which the job belongs.'."\n",
+ 'type' => 'string',
+ 'example' => 'r******',
+ ],
+ 'ResourceLevel' => [
+ 'title' => '作业运行时使用的资源级别',
+ 'description' => 'The resource level that the job uses.'."\n",
+ 'type' => 'string',
+ 'example' => 'L0',
+ ],
+ 'ReasonCode' => [
+ 'title' => '状态详情码',
+ 'description' => 'The status detail code, which is a sub-status under the current status.'."\n",
+ 'type' => 'string',
+ 'example' => 'JobStoppedByUser',
+ ],
+ 'ReasonMessage' => [
+ 'title' => '状态详情',
+ 'description' => 'The description of the status detail code.'."\n",
+ 'type' => 'string',
+ 'example' => 'Job is stopped by user.',
+ ],
+ 'JobSpecs' => [
+ 'title' => '作业规格配置',
+ 'description' => 'The node configuration of the job, which is **JobSpecs** in the CreateJob operation.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The configurations of a node type.'."\n",
+ '$ref' => '#/components/schemas/JobSpec',
+ ],
+ ],
+ 'UserCommand' => [
+ 'title' => '用户命令',
+ 'description' => 'The command that is run to start each node.'."\n",
+ 'type' => 'string',
+ 'example' => 'python /root/code/mnist.py',
+ ],
+ 'DataSources' => [
+ 'title' => '数据源配置列表',
+ 'description' => 'The data sources.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The data source.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'DataSourceId' => [
+ 'title' => '数据源Id',
+ 'description' => 'The data source ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'd*******',
+ ],
+ 'MountPath' => [
+ 'title' => '本地挂载路径',
+ 'description' => 'The local mount path. This parameter is optional. The default value is empty, which specifies that the mount path in the data source is used.'."\n",
+ 'type' => 'string',
+ 'example' => '/mnt/data/',
+ ],
+ 'Uri' => [
+ 'title' => '数据源路径',
+ 'description' => 'The data source URL.'."\n",
+ 'type' => 'string',
+ 'example' => 'oss://bucket.oss-cn-hangzhou-internal.aliyuncs.com/path/',
+ ],
+ ],
+ ],
+ ],
+ 'CodeSource' => [
+ 'title' => '代码源配置',
+ 'description' => 'The code source.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'CodeSourceId' => [
+ 'title' => '代码源Id',
+ 'description' => 'The code source ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'code******',
+ ],
+ 'Branch' => [
+ 'title' => '代码分支',
+ 'description' => 'The code branch.'."\n",
+ 'type' => 'string',
+ 'example' => 'master',
+ ],
+ 'Commit' => [
+ 'title' => '代码Commit',
+ 'description' => 'The code commit ID'."\n",
+ 'type' => 'string',
+ 'example' => '44da109b59f8596152987eaa8f3b2487xxxxxx',
+ ],
+ 'MountPath' => [
+ 'title' => '本地挂载路径',
+ 'description' => 'The local mount path.'."\n",
+ 'type' => 'string',
+ 'example' => '/mnt/data',
+ ],
+ ],
+ ],
+ 'ThirdpartyLibs' => [
+ 'title' => '三方库配置列表',
+ 'description' => 'The third-party Python libraries to be installed.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The third-party Python library.'."\n",
+ 'type' => 'string',
+ 'example' => 'numpy==1.16.1',
+ ],
+ ],
+ 'ThirdpartyLibDir' => [
+ 'title' => '三方库(requirements.txt)文件路径',
+ 'description' => 'The directory that contains requirements.txt.'."\n",
+ 'type' => 'string',
+ 'example' => '/root/code/',
+ ],
+ 'Envs' => [
+ 'title' => '环境变量配置',
+ 'description' => 'The configurations of environment variables.'."\n",
+ 'type' => 'object',
+ 'additionalProperties' => [
+ 'type' => 'string',
+ 'example' => 'ENABLE_DEBUG_MODE',
+ 'description' => 'The key and value of the environment variable.'."\n",
+ ],
+ ],
+ 'UserVpc' => [
+ 'title' => '用户VPC',
+ 'description' => 'The VPC of the user.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'VpcId' => [
+ 'title' => '用户VPC的id',
+ 'description' => 'The VPC ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'vpc-abcdef****',
+ ],
+ 'SwitchId' => [
+ 'title' => '用户交换机的id',
+ 'description' => 'The vSwitch ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'vs-abcdef****',
+ ],
+ 'SecurityGroupId' => [
+ 'title' => '用户安全组的id',
+ 'description' => 'The security group ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'sg-abcdef****',
+ ],
+ 'ExtendedCidrs' => [
+ 'title' => '扩展网段,示例:192.168.0.1/24',
+ 'description' => 'The extended CIDR block. Example: 192.168.0.1/24.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'string',
+ 'example' => '192.168.0.1/24',
+ 'description' => '',
+ 'title' => '扩展网段',
+ ],
+ ],
+ 'DefaultRoute' => [
+ 'title' => '默认路由。此参数只在通用计算资源下有效,取值如下:'."\n"
+ ."\n"
+ .'eth0:表示使用默认网卡,通过公共网关访问外部网络。'."\n"
+ .'eth1:表示使用用户弹性网卡,通过私有网关访问外部网络。',
+ 'description' => 'The default router. This parameter is valid only for general-purpose computing resources. Valid values:'."\n"
+ ."\n"
+ .'eth0: The default network interface is used to access the Internet through the public gateway. eth1: The user\'s Elastic Network Interface is used to access the Internet through the private gateway.'."\n",
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ 'GmtCreateTime' => [
+ 'title' => '作业创建时间(UTC)',
+ 'description' => 'The time when the job was created (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:35:01Z',
+ ],
+ 'GmtSubmittedTime' => [
+ 'description' => 'The time when the job was submitted to the cluster (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:36:01Z',
+ 'title' => '作业提交时间(UTC)',
+ ],
+ 'GmtRunningTime' => [
+ 'description' => 'The start time of the job (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:36:21Z',
+ 'title' => '作业运行时间(UTC)',
+ ],
+ 'GmtSuccessedTime' => [
+ 'description' => 'The time when the job succeeded (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T15:36:08Z',
+ 'title' => '作业成功时间(UTC)',
+ ],
+ 'GmtStoppedTime' => [
+ 'description' => 'The time when the job stopped (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T15:36:08Z',
+ 'title' => '作业停止时间(UTC)',
+ ],
+ 'GmtFailedTime' => [
+ 'description' => 'The time of the job failed (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T15:36:08Z',
+ 'title' => '作业失败时间(UTC)',
+ ],
+ 'Duration' => [
+ 'title' => '作业运行时长(s)',
+ 'description' => 'The duration of the job (seconds).'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '3602',
+ ],
+ 'Pods' => [
+ 'title' => '作业所以运行Pod列表',
+ 'description' => 'All running nodes of the job.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The nodes.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Type' => [
+ 'title' => 'Pod类型',
+ 'description' => 'The node type, which corresponds to a specific JobSpec in JobSpecs of the CreateJob operation.'."\n",
+ 'type' => 'string',
+ 'example' => 'Worker',
+ ],
+ 'PodId' => [
+ 'title' => 'Pod Id',
+ 'description' => 'The node ID. It can be used in the GetPodLogs and GetPodEvents operations to obtain the detailed logs and events of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'Worker',
+ ],
+ 'PodUid' => [
+ 'title' => 'Pod UId',
+ 'description' => 'The UID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'fe846462-af2c-4521-bd6f-96787a57591d',
+ ],
+ 'Status' => [
+ 'title' => 'Pod状态',
+ 'description' => 'The status of the node. Valid values:'."\n"
+ ."\n"
+ .'* Pending'."\n"
+ .'* Running'."\n"
+ .'* Succeeded'."\n"
+ .'* Failed'."\n"
+ .'* Unknown'."\n",
+ 'type' => 'string',
+ 'example' => 'Running',
+ ],
+ 'Ip' => [
+ 'title' => 'Pod Ip',
+ 'description' => 'The IP address of the node.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.1.2',
+ ],
+ 'GmtCreateTime' => [
+ 'title' => 'Pod创建时间(UTC)',
+ 'description' => 'The time when the node was created (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:36:01Z',
+ ],
+ 'GmtStartTime' => [
+ 'title' => 'Pod启动时间(UTC)',
+ 'description' => 'The start time of the node (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:36:01Z',
+ ],
+ 'GmtFinishTime' => [
+ 'title' => 'Pod结束时间(UTC)',
+ 'description' => 'The end time of the node (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T15:36:05Z',
+ ],
+ 'HistoryPods' => [
+ 'title' => '历史Pods',
+ 'description' => 'The historical nodes.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The array of historical nodes.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Type' => [
+ 'title' => 'Pod类型',
+ 'description' => 'The type of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'Worker',
+ ],
+ 'PodId' => [
+ 'title' => 'Pod Id',
+ 'description' => 'The ID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'Worker',
+ ],
+ 'PodUid' => [
+ 'title' => 'Pod UId',
+ 'description' => 'The UID of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'fe846462-af2c-4521-bd6f-96787a57591d',
+ ],
+ 'Status' => [
+ 'title' => 'Pod状态',
+ 'description' => 'The status of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'Failed',
+ ],
+ 'Ip' => [
+ 'title' => 'Pod Ip',
+ 'description' => 'The IP address of the node.'."\n",
+ 'type' => 'string',
+ 'example' => '10.0.1.3',
+ ],
+ 'GmtCreateTime' => [
+ 'title' => 'Pod创建时间(UTC)',
+ 'description' => 'The time when the node was created (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:36:01Z',
+ ],
+ 'GmtStartTime' => [
+ 'title' => 'Pod启动时间(UTC)',
+ 'description' => 'The start time of the node (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:36:01Z',
+ ],
+ 'GmtFinishTime' => [
+ 'title' => 'Pod结束时间(UTC)',
+ 'description' => 'The end time of the node (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T14:36:01Z',
+ ],
+ 'SubStatus' => [
+ 'title' => 'Pod子状态,如抢占状态',
+ 'description' => 'The sub-status of the node, such as its preemption status. Valid values:'."\n"
+ ."\n"
+ .'* Normal'."\n"
+ .'* Evicted'."\n",
+ 'type' => 'string',
+ 'example' => 'Normal',
+ ],
+ 'ResourceType' => [
+ 'title' => 'Pod资源使用类型',
+ 'description' => 'The resource type of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'Normal',
+ ],
+ 'Duration' => [
+ 'title' => 'Pod运行时长',
+ 'type' => 'number',
+ 'format' => 'double',
+ ],
+ 'NodeName' => [
+ 'title' => '节点名称',
+ 'type' => 'string',
+ ],
+ 'PodIps' => [
+ 'title' => 'Pod的IP地址',
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '每张网卡对应的IP地址',
+ '$ref' => '#/components/schemas/PodNetworkInterface',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'SubStatus' => [
+ 'title' => 'Pod子状态,如抢占状态',
+ 'description' => 'The sub-status of the node, such as its preemption status. Valid values:'."\n"
+ ."\n"
+ .'* Normal'."\n"
+ .'* Evicted'."\n",
+ 'type' => 'string',
+ 'example' => 'Normal',
+ ],
+ 'ResourceType' => [
+ 'title' => 'Pod资源使用类型',
+ 'description' => 'The resource type of the node.'."\n",
+ 'type' => 'string',
+ 'example' => 'Normal',
+ ],
+ 'Duration' => [
+ 'title' => 'Pod运行时长',
+ 'type' => 'number',
+ 'format' => 'double',
+ ],
+ 'NodeName' => [
+ 'title' => '节点名称',
+ 'type' => 'string',
+ ],
+ 'PodIps' => [
+ 'title' => 'Pod的IP地址',
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '每张网卡对应的IP地址',
+ '$ref' => '#/components/schemas/PodNetworkInterface',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The request ID, which can be used for troubleshooting.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxxxx',
+ ],
+ 'Settings' => [
+ 'title' => '作业额外参数配置',
+ 'description' => 'The additional parameter configurations of the job.'."\n",
+ '$ref' => '#/components/schemas/JobSettings',
+ ],
+ 'ClusterId' => [
+ 'title' => '集群ID',
+ 'description' => 'The cluster ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'a*****',
+ ],
+ 'ElasticSpec' => [
+ 'title' => '弹性任务参数',
+ 'description' => 'The elastic job parameters.'."\n",
+ '$ref' => '#/components/schemas/JobElasticSpec',
+ ],
+ 'EnabledDebugger' => [
+ 'title' => '是否开启debugger任务',
+ 'description' => 'Specifies whether to enable the debugger job.'."\n",
+ 'type' => 'boolean',
+ 'example' => 'false',
+ ],
+ 'Priority' => [
+ 'title' => '任务的优先级',
+ 'description' => 'The priority of the job. Valid values: 1 to 9.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '1',
+ ],
+ 'SubStatus' => [
+ 'title' => '作业子状态,如抢占重试状态',
+ 'description' => 'The sub-status of the job, such as its preemption status.'."\n",
+ 'type' => 'string',
+ 'example' => 'Restarting',
+ ],
+ 'RestartTimes' => [
+ 'title' => '作业已使用的重试次数和最大重试次数',
+ 'description' => 'The number of retries and the maximum number of retries used by the job.'."\n",
+ 'type' => 'string',
+ 'example' => '0/10',
+ ],
+ 'StatusHistory' => [
+ 'description' => 'The status history.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A historical status'."\n",
+ '$ref' => '#/components/schemas/StatusTransitionItem',
+ ],
+ 'title' => '作业历史的状态',
+ ],
+ 'TenantId' => [
+ 'description' => 'The tenant ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'GAR***W134',
+ 'title' => '租户ID',
+ ],
+ 'ResourceType' => [
+ 'title' => '资源类型,可选值:ECS,Lingjun,ACS',
+ 'description' => 'The resource type. Valid values: ECS, Lingjun, and ACS.'."\n",
+ 'type' => 'string',
+ 'example' => 'ECS',
+ ],
+ 'CredentialConfig' => [
+ 'description' => 'The access credential configurations.'."\n",
+ '$ref' => '#/components/schemas/CredentialConfig',
+ 'title' => '凭证配置',
+ ],
+ 'Accessibility' => [
+ 'description' => 'The visibility of the job. Valid values:'."\n"
+ ."\n"
+ .'* PUBLIC: The code is public in the workspace.'."\n"
+ .'* PRIVATE: The workspace is visible only to you and the administrator of the workspace. This is the default value.'."\n",
+ 'type' => 'string',
+ 'example' => 'PRIVATE',
+ 'title' => '可访问性',
+ ],
+ 'RestartRecord' => [
+ 'title' => '作业重启记录',
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '作业重启记录',
+ 'type' => 'object',
+ 'properties' => [
+ 'DetailErrorInfoList' => [
+ 'title' => '错误信息列表',
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '错误信息',
+ 'type' => 'object',
+ 'properties' => [
+ 'AddJobLevelBlacklist' => [
+ 'title' => '作业黑名单',
+ 'type' => 'boolean',
+ ],
+ 'AddNodeToBlacklist' => [
+ 'title' => '节点黑名单',
+ 'type' => 'boolean',
+ ],
+ 'DetailErrorMsg' => [
+ 'title' => '详细错误信息',
+ 'type' => 'string',
+ ],
+ 'ErrorCode' => [
+ 'title' => '错误码',
+ 'type' => 'string',
+ ],
+ 'ErrorMsg' => [
+ 'title' => '错误信息',
+ 'type' => 'string',
+ ],
+ 'ErrorSource' => [
+ 'title' => '错误源',
+ 'type' => 'string',
+ ],
+ 'Node' => [
+ 'title' => '节点',
+ 'type' => 'string',
+ ],
+ 'Pod' => [
+ 'title' => '实例',
+ 'type' => 'string',
+ ],
+ 'TriggerRestart' => [
+ 'title' => '是否触发重启',
+ 'type' => 'boolean',
+ ],
+ ],
+ ],
+ ],
+ 'JobRestartCount' => [
+ 'title' => '作业重启次数',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ ],
+ 'OccurPhase' => [
+ 'title' => '发生的阶段',
+ 'type' => 'string',
+ ],
+ 'OccurTime' => [
+ 'title' => '发生的时间',
+ 'type' => 'string',
+ ],
+ 'Reason' => [
+ 'title' => '原因',
+ 'type' => 'string',
+ ],
+ 'RestartDurationInSec' => [
+ 'title' => '重启时间',
+ 'type' => 'integer',
+ 'format' => 'int64',
+ ],
+ 'RestartFailReason' => [
+ 'title' => '重启失败原因',
+ 'type' => 'string',
+ ],
+ 'RestartStatus' => [
+ 'title' => '重启状态',
+ 'type' => 'string',
+ ],
+ 'TriggerID' => [
+ 'title' => 'TriggerID',
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ 'JobReplicaStatuses' => [
+ 'title' => '作业副本状态',
+ 'type' => 'array',
+ 'items' => [
+ 'title' => '作业副本状态',
+ '$ref' => '#/components/schemas/JobReplicaStatus',
+ ],
+ ],
+ 'GmtFinishTime' => [
+ 'title' => '作业结束时间(UTC)',
+ 'description' => 'The time when the job ended (UTC).'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-12T15:36:08Z',
+ ],
+ 'CustomEnvs' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Key' => [
+ 'type' => 'string',
+ ],
+ 'Value' => [
+ 'type' => 'string',
+ ],
+ 'Visible' => [
+ 'type' => 'string',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc*******\\",\\n \\"JobType\\": \\"TFJob\\",\\n \\"DisplayName\\": \\"tf-mnist-test\\",\\n \\"UserId\\": \\"12*********\\",\\n \\"Status\\": \\"Stopped\\",\\n \\"WorkspaceId\\": \\"268\\",\\n \\"WorkspaceName\\": \\"dlc-workspace\\",\\n \\"ResourceId\\": \\"r******\\",\\n \\"ResourceLevel\\": \\"L0\\",\\n \\"ReasonCode\\": \\"JobStoppedByUser\\",\\n \\"ReasonMessage\\": \\"Job is stopped by user.\\",\\n \\"JobSpecs\\": [\\n {\\n \\"Type\\": \\"Worker\\",\\n \\"Image\\": \\"registry.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:1.12.2PAI-cpu-py27-ubuntu16.04\\",\\n \\"ImageConfig\\": {\\n \\"DockerRegistry\\": \\"registry.cn-hangzhou.aliyuncs.com\\",\\n \\"Username\\": \\"\\",\\n \\"Password\\": \\"\\",\\n \\"Auth\\": \\"\\"\\n },\\n \\"PodCount\\": 1,\\n \\"EcsSpec\\": \\"ecs.c6.large\\",\\n \\"ExtraPodSpec\\": {\\n \\"SideCarContainers\\": [\\n {\\n \\"Name\\": \\"data-init\\",\\n \\"Image\\": \\"registry.cn-hangzhou.aliyuncs.com/pai-dlc/curl:v1.0.0\\",\\n \\"Command\\": [\\n \\"curl www.aliyun.com\\"\\n ],\\n \\"Args\\": [\\n \\"\\"\\n ],\\n \\"WorkingDir\\": \\"/root\\",\\n \\"Env\\": [\\n {\\n \\"Name\\": \\"ENABLE_DEBUG\\",\\n \\"Value\\": \\"true\\"\\n }\\n ],\\n \\"Resources\\": {\\n \\"Limits\\": {\\n \\"key\\": \\"\\"\\n },\\n \\"Requests\\": {\\n \\"key\\": \\"\\"\\n }\\n }\\n }\\n ],\\n \\"InitContainers\\": [\\n {\\n \\"Name\\": \\"data-init\\",\\n \\"Image\\": \\"registry.cn-hangzhou.aliyuncs.com/pai-dlc/curl:v1.0.0\\",\\n \\"Command\\": [\\n \\"curl www.aliyun.com\\"\\n ],\\n \\"Args\\": [\\n \\"\\"\\n ],\\n \\"WorkingDir\\": \\"/root\\",\\n \\"Env\\": [\\n {\\n \\"Name\\": \\"ENABLE_DEBUG\\",\\n \\"Value\\": \\"true\\"\\n }\\n ],\\n \\"Resources\\": {\\n \\"Limits\\": {\\n \\"key\\": \\"\\"\\n },\\n \\"Requests\\": {\\n \\"key\\": \\"\\"\\n }\\n }\\n }\\n ],\\n \\"PodLabels\\": {\\n \\"key\\": \\"\\"\\n },\\n \\"PodAnnotations\\": {\\n \\"key\\": \\"\\"\\n },\\n \\"SharedVolumeMountPaths\\": [\\n \\"/root/share/\\"\\n ],\\n \\"SharedVolumeEphemeralStorageSize\\": \\"\\",\\n \\"Lifecycle\\": {\\n \\"PreStop\\": {\\n \\"Exec\\": {\\n \\"Command\\": [\\n \\"\\"\\n ]\\n }\\n },\\n \\"PostStart\\": {\\n \\"Exec\\": {\\n \\"Command\\": [\\n \\"\\"\\n ]\\n }\\n }\\n },\\n \\"MainContainerSecurityContext\\": {\\n \\"RunAsUser\\": 1000,\\n \\"Privileged\\": true,\\n \\"Capabilities\\": {\\n \\"Add\\": [\\n \\"\\"\\n ],\\n \\"Drop\\": [\\n \\"\\"\\n ]\\n },\\n \\"RunAsGroup\\": 1000,\\n \\"SeccompProfile\\": {\\n \\"Type\\": \\"Unconfined\\",\\n \\"LocalhostProfile\\": \\"my-profiles/profile-allow.json\\"\\n }\\n }\\n },\\n \\"ResourceConfig\\": {\\n \\"CPU\\": \\"10\\",\\n \\"GPU\\": \\"3\\",\\n \\"Memory\\": \\"10Gi\\",\\n \\"SharedMemory\\": \\"5Gi\\",\\n \\"GPUType\\": \\"Tesla-V100-16G\\"\\n },\\n \\"UseSpotInstance\\": false,\\n \\"SpotSpec\\": {\\n \\"SpotStrategy\\": \\"\\",\\n \\"SpotDiscountLimit\\": 0,\\n \\"SpotPriceLimit\\": 0\\n },\\n \\"AssignNodeSpec\\": {\\n \\"EnableAssignNode\\": true,\\n \\"NodeNames\\": \\"lingjxxxxxxxx\\",\\n \\"AntiAffinityNodeNames\\": \\"lingjxxxxxxxx\\",\\n \\"HyperNodes\\": [\\n {\\n \\"HyperNodeName\\": \\"\\",\\n \\"NodeNames\\": \\"\\"\\n }\\n ],\\n \\"AntiAffinityHyperNodes\\": [\\n {\\n \\"HyperNodeName\\": \\"\\",\\n \\"NodeNames\\": \\"\\"\\n }\\n ]\\n },\\n \\"LocalMountSpecs\\": [\\n {\\n \\"MountPath\\": \\"\\",\\n \\"MountMode\\": \\"\\",\\n \\"LocalPath\\": \\"\\"\\n }\\n ],\\n \\"AutoScalingSpec\\": {\\n \\"ScalingStrategy\\": \\"\\",\\n \\"MinReplicas\\": 0,\\n \\"MaxReplicas\\": 0,\\n \\"PodsToDelete\\": [\\n \\"\\"\\n ],\\n \\"AutoscalingMetricSpec\\": {\\n \\"MetricName\\": \\"\\",\\n \\"TargetValue\\": 0\\n }\\n },\\n \\"ServiceSpec\\": {\\n \\"ServiceMode\\": \\"\\",\\n \\"ExtraPorts\\": [\\n 0\\n ],\\n \\"DefaultPort\\": 0\\n },\\n \\"IsCheif\\": true,\\n \\"IsChief\\": true,\\n \\"RestartPolicy\\": \\"\\",\\n \\"SystemDisk\\": {\\n \\"Size\\": 0,\\n \\"Category\\": \\"\\",\\n \\"PerformanceLevel\\": \\"\\"\\n },\\n \\"StartupDependencies\\": [\\n {\\n \\"Type\\": \\"\\",\\n \\"OnPhase\\": \\"\\",\\n \\"MinReplicas\\": \\"\\"\\n }\\n ]\\n }\\n ],\\n \\"UserCommand\\": \\"python /root/code/mnist.py\\",\\n \\"DataSources\\": [\\n {\\n \\"DataSourceId\\": \\"d*******\\",\\n \\"MountPath\\": \\"/mnt/data/\\",\\n \\"Uri\\": \\"oss://bucket.oss-cn-hangzhou-internal.aliyuncs.com/path/\\"\\n }\\n ],\\n \\"CodeSource\\": {\\n \\"CodeSourceId\\": \\"code******\\",\\n \\"Branch\\": \\"master\\",\\n \\"Commit\\": \\"44da109b59f8596152987eaa8f3b2487xxxxxx\\",\\n \\"MountPath\\": \\"/mnt/data\\"\\n },\\n \\"ThirdpartyLibs\\": [\\n \\"numpy==1.16.1\\"\\n ],\\n \\"ThirdpartyLibDir\\": \\"/root/code/\\",\\n \\"Envs\\": {\\n \\"key\\": \\"ENABLE_DEBUG_MODE\\"\\n },\\n \\"UserVpc\\": {\\n \\"VpcId\\": \\"vpc-abcdef****\\",\\n \\"SwitchId\\": \\"vs-abcdef****\\",\\n \\"SecurityGroupId\\": \\"sg-abcdef****\\",\\n \\"ExtendedCidrs\\": [\\n \\"192.168.0.1/24\\"\\n ],\\n \\"DefaultRoute\\": \\"\\"\\n },\\n \\"GmtCreateTime\\": \\"2021-01-12T14:35:01Z\\",\\n \\"GmtSubmittedTime\\": \\"2021-01-12T14:36:01Z\\",\\n \\"GmtRunningTime\\": \\"2021-01-12T14:36:21Z\\",\\n \\"GmtSuccessedTime\\": \\"2021-01-12T15:36:08Z\\",\\n \\"GmtStoppedTime\\": \\"2021-01-12T15:36:08Z\\",\\n \\"GmtFailedTime\\": \\"2021-01-12T15:36:08Z\\",\\n \\"Duration\\": 3602,\\n \\"Pods\\": [\\n {\\n \\"Type\\": \\"Worker\\",\\n \\"PodId\\": \\"Worker\\",\\n \\"PodUid\\": \\"fe846462-af2c-4521-bd6f-96787a57591d\\",\\n \\"Status\\": \\"Running\\",\\n \\"Ip\\": \\"10.0.1.2\\",\\n \\"GmtCreateTime\\": \\"2021-01-12T14:36:01Z\\",\\n \\"GmtStartTime\\": \\"2021-01-12T14:36:01Z\\",\\n \\"GmtFinishTime\\": \\"2021-01-12T15:36:05Z\\",\\n \\"HistoryPods\\": [\\n {\\n \\"Type\\": \\"Worker\\",\\n \\"PodId\\": \\"Worker\\",\\n \\"PodUid\\": \\"fe846462-af2c-4521-bd6f-96787a57591d\\",\\n \\"Status\\": \\"Failed\\",\\n \\"Ip\\": \\"10.0.1.3\\",\\n \\"GmtCreateTime\\": \\"2021-01-12T14:36:01Z\\",\\n \\"GmtStartTime\\": \\"2021-01-12T14:36:01Z\\",\\n \\"GmtFinishTime\\": \\"2021-01-12T14:36:01Z\\",\\n \\"SubStatus\\": \\"Normal\\",\\n \\"ResourceType\\": \\"Normal\\",\\n \\"Duration\\": 0,\\n \\"NodeName\\": \\"\\",\\n \\"PodIps\\": [\\n {\\n \\"InterfaceName\\": \\"\\",\\n \\"Ip\\": \\"\\"\\n }\\n ]\\n }\\n ],\\n \\"SubStatus\\": \\"Normal\\",\\n \\"ResourceType\\": \\"Normal\\",\\n \\"Duration\\": 0,\\n \\"NodeName\\": \\"\\",\\n \\"PodIps\\": [\\n {\\n \\"InterfaceName\\": \\"\\",\\n \\"Ip\\": \\"\\"\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-xxxxxxxx\\",\\n \\"Settings\\": {\\n \\"BusinessUserId\\": \\"166924\\",\\n \\"Caller\\": \\"SilkFlow\\",\\n \\"Tags\\": {\\n \\"key\\": \\"\\"\\n },\\n \\"PipelineId\\": \\"pid-123456\\",\\n \\"EnableTideResource\\": true,\\n \\"EnableErrorMonitoringInAIMaster\\": false,\\n \\"ErrorMonitoringArgs\\": \\"--enable-log-hang-detection true\\",\\n \\"EnableRDMA\\": true,\\n \\"EnableOssAppend\\": true,\\n \\"OversoldType\\": \\"AcceptQuotaOverSold\\",\\n \\"AdvancedSettings\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"Driver\\": \\"535.54.03\\",\\n \\"EnableSanityCheck\\": true,\\n \\"SanityCheckArgs\\": \\"--sanity-check-timing=AfterJobFaultTolerant --sanity-check-timeout-ops=MarkJobFai\\",\\n \\"JobReservedMinutes\\": 30,\\n \\"JobReservedPolicy\\": \\"Always\\",\\n \\"EnableCPUAffinity\\": true,\\n \\"DisableEcsStockCheck\\": false,\\n \\"AllocateAllRDMADevices\\": true,\\n \\"EnableDSWDev\\": true,\\n \\"DataJuicerConfig\\": {\\n \\"ExecutionMode\\": \\"\\",\\n \\"CommandType\\": \\"\\",\\n \\"EnableResourceEstimation\\": true,\\n \\"ResourceLimit\\": {\\n \\"CPU\\": \\"\\",\\n \\"Memory\\": \\"\\",\\n \\"GPU\\": \\"\\"\\n }\\n },\\n \\"ModelConfig\\": {\\n \\"ModelName\\": \\"\\",\\n \\"ModelTemplate\\": {\\n \\"ModelName\\": \\"\\",\\n \\"Provider\\": \\"\\",\\n \\"Collections\\": \\"\\"\\n }\\n },\\n \\"AllowUnschedulableNodes\\": true\\n },\\n \\"ClusterId\\": \\"a*****\\",\\n \\"ElasticSpec\\": {\\n \\"EnableElasticTraining\\": true,\\n \\"MinParallelism\\": 1,\\n \\"MaxParallelism\\": 8,\\n \\"AIMasterType\\": \\"\\",\\n \\"AIMasterDockerImage\\": \\"\\",\\n \\"EnablePsJobElasticWorker\\": true,\\n \\"EnableAIMaster\\": true,\\n \\"EnablePsResourceEstimate\\": true,\\n \\"EnablePsJobElasticPS\\": true,\\n \\"PSMinParallelism\\": 4,\\n \\"PSMaxParallelism\\": 10,\\n \\"ElasticStrategy\\": \\"\\",\\n \\"EnableEDP\\": true,\\n \\"EDPMaxParallelism\\": 16,\\n \\"EDPMinParallelism\\": 8\\n },\\n \\"EnabledDebugger\\": false,\\n \\"Priority\\": 1,\\n \\"SubStatus\\": \\"Restarting\\",\\n \\"RestartTimes\\": \\"0/10\\",\\n \\"StatusHistory\\": [\\n {\\n \\"Status\\": \\"\\",\\n \\"StartTime\\": \\"\\",\\n \\"EndTime\\": \\"\\",\\n \\"ReasonCode\\": \\"\\",\\n \\"ReasonMessage\\": \\"\\"\\n }\\n ],\\n \\"TenantId\\": \\"GAR***W134\\",\\n \\"ResourceType\\": \\"ECS\\",\\n \\"CredentialConfig\\": {\\n \\"EnableCredentialInject\\": true,\\n \\"AliyunEnvRoleKey\\": \\"\\",\\n \\"CredentialConfigItems\\": [\\n {\\n \\"Key\\": \\"\\",\\n \\"Type\\": \\"\\",\\n \\"Roles\\": [\\n {\\n \\"RoleArn\\": \\"\\",\\n \\"RoleType\\": \\"\\",\\n \\"AssumeRoleFor\\": \\"\\",\\n \\"Policy\\": \\"\\",\\n \\"AssumeUserInfo\\": {\\n \\"SecurityToken\\": \\"\\",\\n \\"AccessKeyId\\": \\"\\",\\n \\"Type\\": \\"\\",\\n \\"Id\\": \\"\\"\\n }\\n }\\n ]\\n }\\n ]\\n },\\n \\"Accessibility\\": \\"PRIVATE\\",\\n \\"RestartRecord\\": [\\n {\\n \\"DetailErrorInfoList\\": [\\n {\\n \\"AddJobLevelBlacklist\\": true,\\n \\"AddNodeToBlacklist\\": true,\\n \\"DetailErrorMsg\\": \\"\\",\\n \\"ErrorCode\\": \\"\\",\\n \\"ErrorMsg\\": \\"\\",\\n \\"ErrorSource\\": \\"\\",\\n \\"Node\\": \\"\\",\\n \\"Pod\\": \\"\\",\\n \\"TriggerRestart\\": true\\n }\\n ],\\n \\"JobRestartCount\\": 0,\\n \\"OccurPhase\\": \\"\\",\\n \\"OccurTime\\": \\"\\",\\n \\"Reason\\": \\"\\",\\n \\"RestartDurationInSec\\": 0,\\n \\"RestartFailReason\\": \\"\\",\\n \\"RestartStatus\\": \\"\\",\\n \\"TriggerID\\": \\"\\"\\n }\\n ],\\n \\"JobReplicaStatuses\\": [\\n {\\n \\"Type\\": \\"\\",\\n \\"Active\\": 0,\\n \\"EstimatedPodCount\\": 0,\\n \\"EstimatedAutoScalingSpec\\": {\\n \\"ScalingStrategy\\": \\"\\",\\n \\"MinReplicas\\": 0,\\n \\"MaxReplicas\\": 0,\\n \\"PodsToDelete\\": [\\n \\"\\"\\n ],\\n \\"AutoscalingMetricSpec\\": {\\n \\"MetricName\\": \\"\\",\\n \\"TargetValue\\": 0\\n }\\n },\\n \\"EstimatedResourceConfig\\": {\\n \\"CPU\\": \\"10\\",\\n \\"GPU\\": \\"3\\",\\n \\"Memory\\": \\"10Gi\\",\\n \\"SharedMemory\\": \\"5Gi\\",\\n \\"GPUType\\": \\"Tesla-V100-16G\\"\\n },\\n \\"Queuing\\": 0,\\n \\"Dequeued\\": 0\\n }\\n ],\\n \\"GmtFinishTime\\": \\"2021-01-12T15:36:08Z\\",\\n \\"CustomEnvs\\": [\\n {\\n \\"Key\\": \\"\\",\\n \\"Value\\": \\"\\",\\n \\"Visible\\": \\"\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<不支持/>","errorExample":""}]',
+ 'title' => 'GetJob',
+ ],
+ 'GetJobSanityCheckResult' => [
+ 'summary' => 'Obtains specified job sanity check result in a Deep Learning Containers (DLC) job.',
+ 'path' => '/api/v1/jobs/{JobId}/sanitycheckresult',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '203880',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'description' => 'The job ID. For more information about how to obtain a job ID, see [ListJobs](~~459676~~).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dlcl5qxoxxxxx5iq',
+ ],
+ ],
+ [
+ 'name' => 'SanityCheckNumber',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => [
+ 'description' => 'The nth time for which the job sanity check is performed.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => true,
+ 'minimum' => '1',
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'SanityCheckPhase',
+ 'in' => 'query',
+ 'allowEmptyValue' => true,
+ 'schema' => [
+ 'description' => 'The phase in which the job sanity check is performed.'."\n"
+ ."\n"
+ .'* CheckInit'."\n"
+ .'* DeviceCheck'."\n"
+ .'* SingleNodeCommCheck'."\n"
+ .'* TwoNodeCommCheck'."\n"
+ .'* AllNodeCommCheck'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'DeviceCheck',
+ ],
+ ],
+ [
+ 'name' => 'Token',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The token information for job sharing. For more information about how to obtain the token information, see [GetToken](~~2557812~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'eyJhbG******zI1NiIsInR5cCI6IkpXVCJ9.eyJle****jE3MDk1Mzk0NDIsImlhdCI6MTcwODkzNDY0MiwidXNlcl9pZCI6IjE3NTgwNTQxNjI0Mzg2NTUiLCJ0YXJnZXRfaWQiOiJkbGM1OGh1a2xyYzZwdGMyIiwidGFyZ2V0X3R5cGUiOiJqb2IifQ.GNL7jo6****mgKKv0QeGIYgvBufSU-PH_EQttX****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The specified job sanity check result.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc-20210126170216-xxxxxx',
+ ],
+ 'SanityCheckResult' => [
+ 'description' => 'The job sanity check result.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The phase in which the job sanity check is performed. Valid values:'."\n"
+ ."\n"
+ .'* Phase'."\n"
+ .'* Message'."\n"
+ .'* StartedAt'."\n"
+ .'* FinishedAt'."\n"
+ .'* Status'."\n"
+ .'* CheckNumber'."\n",
+ '$ref' => '#/components/schemas/SanityCheckResultItem',
+ ],
+ ],
+ 'RequestID' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'B3789344-F1xxxBE-5xx2-A04D-xxxxx',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"dlc-20210126170216-xxxxxx\\",\\n \\"SanityCheckResult\\": [\\n {\\n \\"Phase\\": \\"CheckInit\\",\\n \\"Message\\": \\"\\",\\n \\"Status\\": \\"Succeeded\\",\\n \\"StartedAt\\": \\"”2023-11-30T16:47:30.343005+08:00“\\",\\n \\"FinishedAt\\": \\"”2023-11-30T16:47:30.378817+08:00\\\\\\"\\",\\n \\"CheckNumber\\": 1\\n }\\n ],\\n \\"RequestID\\": \\"B3789344-F1xxxBE-5xx2-A04D-xxxxx\\"\\n}","type":"json"}]',
+ 'title' => 'GetJobSanityCheckResult',
+ ],
+ 'ListJobSanityCheckResults' => [
+ 'summary' => 'Obtains the results of all sanity checks for a DLC job.',
+ 'path' => '/api/v1/jobs/{JobId}/sanitycheckresults',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '204035',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'description' => 'The job ID. Call [ListJobs](~~459676~~) to get the job ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dlc-20210114104214-xxxx',
+ ],
+ ],
+ [
+ 'name' => 'Order',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The sorting order:'."\n"
+ ."\n"
+ .'* desc: descending order'."\n"
+ .'* asc: ascending order'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'desc',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The results of all sanity checks for a DLC job.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'SanityCheckResults' => [
+ 'description' => 'The sanity check results.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'A complete sanity check result.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The sanity check result of a check phase. Valid values:'."\n"
+ ."\n"
+ .'* Phase: the check phase'."\n"
+ .'* Message: the check result message'."\n"
+ .'* StartedAt: the start time of the check'."\n"
+ .'* FinishedAt: the end time of the check'."\n"
+ .'* Status: the check status'."\n"
+ .'* CheckNumber: the sequence number of the check'."\n",
+ '$ref' => '#/components/schemas/SanityCheckResultItem',
+ ],
+ ],
+ ],
+ 'TotalCount' => [
+ 'description' => 'The total number of results that meet the filter conditions.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'example' => '10',
+ ],
+ 'RequestID' => [
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '1AC9xxx-3xxx-5xxx2-xxxx-FA5',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SanityCheckResults\\": [\\n [\\n {\\n \\"Phase\\": \\"CheckInit\\",\\n \\"Message\\": \\"\\",\\n \\"Status\\": \\"Succeeded\\",\\n \\"StartedAt\\": \\"”2023-11-30T16:47:30.343005+08:00“\\",\\n \\"FinishedAt\\": \\"”2023-11-30T16:47:30.378817+08:00\\\\\\"\\",\\n \\"CheckNumber\\": 1\\n }\\n ]\\n ],\\n \\"TotalCount\\": 10,\\n \\"RequestID\\": \\"1AC9xxx-3xxx-5xxx2-xxxx-FA5\\"\\n}","type":"json"}]',
+ 'title' => 'ListJobSanityCheckResults',
+ ],
+ 'GetPodLogs' => [
+ 'summary' => 'Obtains or downloads the logs of a node for a task. The logs are from the stdout and stderr of the system and user scripts.',
+ 'path' => '/api/v1/jobs/{JobId}/pods/{PodId}/logs',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '13118',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => '作业ID',
+ 'description' => 'The job ID. For more information about how to obtain a job ID, see [ListJobs](~~459676~~).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dlc-20210126170216-*****',
+ ],
+ ],
+ [
+ 'name' => 'PodId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => '实例ID',
+ 'description' => 'The node ID. For more information about how to obtain a node ID, see [GetJob](~~459677~~).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dlc-20210126170216-*****-chief-0',
+ ],
+ ],
+ [
+ 'name' => 'PodUid',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The node UID. For more information about how to obtain a node UID, see [GetJob](~~459677~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [],
+ 'example' => 'fe846462-af2c-4521-bd6f-96787a57****',
+ ],
+ ],
+ [
+ 'name' => 'MaxLines',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '返回的日志的最大行数,默认值:2000。',
+ 'description' => 'The maximum number of log entries. Default value: 2000.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '100',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '查询的起始时间,默认值:7天前。',
+ 'description' => 'The start time of the query. Default value: 7 days ago.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-08T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '查询的截止时间,默认值:当前。',
+ 'description' => 'The end time of the query. Default value: current time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-08T17:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'DownloadToFile',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否下载日志文件,默认:false。',
+ 'description' => 'Specifies whether to download the log file. Default value: false. Valid values:'."\n"
+ ."\n"
+ .'* false'."\n"
+ .'* true'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '返回值',
+ 'description' => 'The data returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '作业ID',
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc-20210126170216-******',
+ ],
+ 'PodId' => [
+ 'title' => '实例ID',
+ 'description' => 'The node ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc-20210126170216-****-chief-0',
+ ],
+ 'PodUid' => [
+ 'title' => '实例UID',
+ 'description' => 'The instance UID.'."\n",
+ 'type' => 'string',
+ 'example' => '94a7cc7c-0033-48b5-85bd-71c63592c268',
+ ],
+ 'Logs' => [
+ 'title' => '日志列表',
+ 'description' => 'The logs.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The log.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-28 14:07:45 My Job started.',
+ ],
+ ],
+ 'RequestId' => [
+ 'title' => '请求ID',
+ 'description' => 'The request ID which is used for diagnostics and Q\\&A.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc-20210126170216-******\\",\\n \\"PodId\\": \\"dlc-20210126170216-****-chief-0\\",\\n \\"PodUid\\": \\"94a7cc7c-0033-48b5-85bd-71c63592c268\\",\\n \\"Logs\\": [\\n \\"2021-01-28 14:07:45 My Job started.\\"\\n ],\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<JobId>dlc-20210126170216-******</JobId>\\n<PodId>dlc-20210126170216-****-chief-0</PodId>\\n<Logs>2021-01-28 14:07:45 My Job started.</Logs>\\n<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>","errorExample":""}]',
+ 'title' => 'GetPodLogs',
+ ],
+ 'GetPodEvents' => [
+ 'summary' => 'Obtains the system events of a specific node in a job to locate and troubleshoot issues.',
+ 'path' => '/api/v1/jobs/{JobId}/pods/{PodId}/events',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '13117',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'allowEmptyValue' => true,
+ 'schema' => [
+ 'title' => '作业ID',
+ 'description' => 'The job ID. Call [ListJobs](~~459676~~) to get the job ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dlc-20210126170216-*****',
+ ],
+ ],
+ [
+ 'name' => 'PodId',
+ 'in' => 'path',
+ 'allowEmptyValue' => true,
+ 'schema' => [
+ 'title' => '运行实例ID',
+ 'description' => 'The node ID. Call [GetJob](~~459677~~) to get the node ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dlc-20210126170216-mtl37ge7gkvdz-chief-0',
+ ],
+ ],
+ [
+ 'name' => 'PodUid',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '运行实例UID',
+ 'description' => 'The node UID. Call [GetJob](~~459677~~) to get the node UID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc-20210126170216-*****-chief-0',
+ ],
+ ],
+ [
+ 'name' => 'MaxEventsNum',
+ 'in' => 'query',
+ 'allowEmptyValue' => false,
+ 'schema' => [
+ 'title' => '返回的事件最大数量',
+ 'description' => 'The maximum number of events that can be returned.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '100',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '起始时间',
+ 'description' => 'The start time (UTC).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-08T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '截止时间',
+ 'description' => 'The end time (UTC).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-09T16:00:00Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The details of the job event.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '作业ID',
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc-20210126170216-*****',
+ ],
+ 'PodId' => [
+ 'title' => '运行示例ID',
+ 'description' => 'The node ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dlc-20210126170216-*****-chief-0',
+ ],
+ 'PodUid' => [
+ 'description' => 'The node UID.'."\n",
+ 'type' => 'string',
+ 'example' => '94a7cc7c-0033-48b5-85bd-71c63592c268',
+ ],
+ 'Events' => [
+ 'title' => '事件列表',
+ 'description' => 'The events returned.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The event.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-28 14:07:45 Successfully pulled image.',
+ ],
+ ],
+ 'RequestId' => [
+ 'title' => '请求ID',
+ 'description' => 'The request ID, which can be used for troubleshooting.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc-20210126170216-*****\\",\\n \\"PodId\\": \\"dlc-20210126170216-*****-chief-0\\",\\n \\"PodUid\\": \\"94a7cc7c-0033-48b5-85bd-71c63592c268\\",\\n \\"Events\\": [\\n \\"2021-01-28 14:07:45 Successfully pulled image.\\"\\n ],\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<JobId>dlc-20210126170216-*****</JobId>\\n<PodId>dlc-20210126170216-*****-chief-0</PodId>\\n<Events>2021-01-28 14:07:45 Successfully pulled image.</Events>\\n<RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>","errorExample":""}]',
+ 'title' => 'GetPodEvents',
+ ],
+ 'GetJobMetrics' => [
+ 'summary' => 'Obtains the monitoring data of a job, including the CPU, GPU, and memory utilization, network, and disk read/write rate. ⚠️ Note: Except for pay-as-you-go tasks based on general-purpose computing resources, all task types are connected to CloudMonitor. Use the CloudMonitor API to call related monitoring. The overwritten features in the original API are no longer maintained. For more information, see \\\\[Training monitoring and alerting]\\\\(https://www.alibabacloud.com/help/zh/pai/user-guide/training-monitoring-and-alerting).',
+ 'path' => '/api/v1/jobs/{JobId}/metrics',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '21204',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => '作业ID',
+ 'description' => 'The job ID. You can call [ListJobs](~~459676~~) to query all job IDs.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'dlc-20210126170216-*******',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '起始时间',
+ 'description' => 'The beginning of the time range to query monitoring data. The time is displayed in UTC. The default value is the time 1 hour before the current time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-08T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '截止时间',
+ 'description' => 'The end time of the time range to query monitoring data. The time is displayed in UTC. The default value is the current time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-09T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'TimeStep',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '时间间隔',
+ 'description' => 'The interval at which monitoring data is returned. Default value: 5. Unit: minutes.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '5m',
+ ],
+ ],
+ [
+ 'name' => 'MetricType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '指标类型',
+ 'description' => 'The type of the monitoring metrics. Valid values:'."\n"
+ ."\n"
+ .'* GpuCoreUsage: GPU utilization'."\n"
+ .'* GpuMemoryUsage: GPU memory utilization'."\n"
+ .'* CpuCoreUsage: CPU utilization'."\n"
+ .'* MemoryUsage: memory utilization'."\n"
+ .'* NetworkInputRate: the network write in rate.'."\n"
+ .'* NetworkOutputRate: the network write out rate'."\n"
+ .'* DiskReadRate: the disk read rate'."\n"
+ .'* DiskWriteRate: the disk write rate'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'GpuMemoryUsage',
+ ],
+ ],
+ [
+ 'name' => 'Token',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'Token',
+ 'description' => 'The temporary token used for authentication.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'eyXXXX-XXXX.XXXXX',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => '作业监控指标',
+ 'description' => 'The monitoring data of the job.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '作业ID',
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc-20210126170216-*******',
+ ],
+ 'PodMetrics' => [
+ 'title' => '任务监控指标序列集合',
+ 'description' => 'The monitoring metrics of the job.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The monitoring metric of the job.'."\n",
+ '$ref' => '#/components/schemas/PodMetric',
+ ],
+ ],
+ 'RequestId' => [
+ 'title' => '请求ID',
+ 'description' => 'The request ID. You can troubleshoot issues based on the request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc-20210126170216-*******\\",\\n \\"PodMetrics\\": [\\n {\\n \\"PodId\\": \\"dlc-20210329110128-746bf7cl47pr8-worker-0\\",\\n \\"Metrics\\": [\\n {\\n \\"Time\\": 1616987726587,\\n \\"Value\\": 23.45\\n }\\n ]\\n }\\n ],\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<GetJobMetricsResponse>\\n <JobId>dlc-20210126170216-*******</JobId>\\n <PodMetrics>\\n <PodId>dlc-20210329110128-******-worker-0</PodId>\\n <Metrics>\\n <Time>1616987726587</Time>\\n <Value>23.45</Value>\\n </Metrics>\\n </PodMetrics>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</GetJobMetricsResponse>","errorExample":""}]',
+ 'title' => 'GetJobMetrics',
+ ],
+ 'GetJobEvents' => [
+ 'summary' => 'Obtains the system events of a job.',
+ 'path' => '/api/v1/jobs/{JobId}/events',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '13116',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnQJXF95',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => '作业ID',
+ 'description' => 'The job ID. Call [ListJobs](~~459676~~) to get the job ID.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'docRequired' => true,
+ 'example' => 'dlc-20210126170216-*******',
+ ],
+ ],
+ [
+ 'name' => 'MaxEventsNum',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '获取事件的最大数目,默认值:2000',
+ 'description' => 'The maximum number of events that can be returned. Default value: 2000.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '10000',
+ 'minimum' => '1',
+ 'example' => '100',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '查询事件的时间区间的起始时间,默认值是7天前。',
+ 'description' => 'The start time (UTC) of the time range for querying events. The default value is 7 days ago.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-08T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '查询事件的时间区间的截止时间,默认值是当前。',
+ 'description' => 'The end time (UTC) of the time range for querying events. The default value is the current time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-08T18:00:00Z',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The details of the returned system events.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '作业ID',
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc-20210126170216-******',
+ ],
+ 'Events' => [
+ 'title' => '事件',
+ 'description' => 'The events.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The content of the event.'."\n",
+ 'type' => 'string',
+ 'example' => '2021-01-28 14:07:24 Created pod: dlc-20210128140506-oms3s46wcfl6g-worker-0',
+ ],
+ ],
+ 'RequestId' => [
+ 'title' => '请求ID',
+ 'description' => 'The request ID, which can be used for troubleshooting.'."\n",
+ 'type' => 'string',
+ 'example' => '78F6FCE2-278F-4C4A-A6B7-DD8ECEA9C456',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc-20210126170216-******\\",\\n \\"Events\\": [\\n \\"2021-01-28 14:07:24 Created pod: dlc-20210128140506-oms3s46wcfl6g-worker-0\\"\\n ],\\n \\"RequestId\\": \\"78F6FCE2-278F-4C4A-A6B7-DD8ECEA9C456\\"\\n}","errorExample":""},{"type":"xml","example":"<JobId>dlc-20210126170216-******</JobId>\\n<Events>2021-01-28 14:07:24 Created pod: dlc-20210128140506-oms3s46wcfl6g-worker-0</Events>","errorExample":""}]',
+ 'title' => 'GetJobEvents',
+ ],
+ 'ListEcsSpecs' => [
+ 'summary' => 'Queries the list of supported instance types.',
+ 'path' => '/api/v1/ecsspecs',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'AcceleratorType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '按加速器类型过滤',
+ 'description' => 'Filter by accelerator type. Valid values:'."\n"
+ ."\n"
+ .'* CPU'."\n"
+ .'* GPU'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'GPU',
+ ],
+ ],
+ [
+ 'name' => 'SortBy',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '按返回字段排序,可选值:Cpu, Gpu, Memory, InstanceType, ResourceType, GpuType, AcceleratorType',
+ 'description' => 'The field based on which the results are sorted. Valid values:'."\n"
+ ."\n"
+ .'* CPU'."\n"
+ .'* GPU'."\n"
+ .'* Memory'."\n"
+ .'* GmtCreateTime'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Gpu',
+ ],
+ ],
+ [
+ 'name' => 'Order',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '排序顺序,可选值:desc, asc',
+ 'description' => 'The sorting order. Valid values:'."\n"
+ ."\n"
+ .'* desc: descending order.'."\n"
+ .'* asc: ascending order.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'desc',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '查询第几页数据',
+ 'description' => 'The number of the page to query. The start value is 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '设置查询的分页大写',
+ 'description' => 'The number of entries returned per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'example' => '10',
+ ],
+ ],
+ [
+ 'name' => 'InstanceTypes',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '需要查询机器规格列表,以逗号分隔',
+ 'description' => 'The instance types to query. Separate the types with commas (,).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ecs.g6.large,ecs.g6.xlarge',
+ ],
+ ],
+ [
+ 'name' => 'ResourceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '资源类型,可选值:ECS、Lingjun',
+ 'description' => 'The type of the resource. Valid values:'."\n"
+ ."\n"
+ .'* ECS'."\n"
+ .'* Lingjun'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'ECS',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The returned data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'EcsSpecs' => [
+ 'title' => 'ECS规格列表',
+ 'description' => 'The list of ECS specifications.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The specification parameters.'."\n",
+ '$ref' => '#/components/schemas/EcsSpec',
+ ],
+ ],
+ 'TotalCount' => [
+ 'title' => '符合过滤条件的总数量',
+ 'description' => 'The number of types that meet the filter conditions.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '10',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"EcsSpecs\\": [\\n {\\n \\"InstanceType\\": \\"ecs.gn6e-c12g1.3xlarge\\",\\n \\"AcceleratorType\\": \\"GPU\\",\\n \\"Cpu\\": 12,\\n \\"Gpu\\": 1,\\n \\"GpuType\\": \\"NVIDIA v100\\",\\n \\"Memory\\": 92,\\n \\"GpuMemory\\": 80,\\n \\"IsAvailable\\": true,\\n \\"ResourceType\\": \\"ECS\\",\\n \\"DefaultGPUDriver\\": \\"470.199.02\\",\\n \\"SupportedGPUDrivers\\": [\\n \\"[\\\\\\"470.199.02\\\\\\", \\\\\\"535.54.03\\\\\\"]\\"\\n ],\\n \\"SpotStockStatus\\": \\"WithStock\\",\\n \\"NonProtectSpotDiscount\\": 0.1,\\n \\"PaymentTypes\\": [\\n \\"[\\\\\\"Spot\\\\\\",\\\\\\"PostPaid\\\\\\"]\\"\\n ]\\n }\\n ],\\n \\"TotalCount\\": 10\\n}","errorExample":""},{"type":"xml","example":"<不支持/>","errorExample":""}]',
+ 'title' => 'ListEcsSpecs',
+ ],
+ 'GetWebTerminal' => [
+ 'summary' => 'Provides methods and steps to obtain a HTTP link for accessing a container.',
+ 'path' => '/api/v1/jobs/{JobId}/pods/{PodId}/webterminal',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'JobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'description' => 'The task ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc-20210126170216-******',
+ ],
+ ],
+ [
+ 'name' => 'PodId',
+ 'in' => 'path',
+ 'schema' => [
+ 'description' => 'The ID of the pod in the task.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc-20210126170216-****-chief-0',
+ ],
+ ],
+ [
+ 'name' => 'PodUid',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The pod UID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '94a7cc7c-0033-48b5-85bd-71c63592c268',
+ ],
+ ],
+ [
+ 'name' => 'IsShared',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'Specifies whether to create a shareable link to access the container. Valid values:'."\n"
+ ."\n"
+ .'* true: returns a shareable link to access the container. The link will expire after 30 seconds and can only be used once. After you access the container by using the link, other requests that use this link to access the container become invalid.'."\n"
+ .'* false: returns a common shareable link to access the container. If you use a common shareable link to access a container, Alibaba Cloud identity authentication is required. The link will expire after 30 seconds.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The returned data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'description' => 'The request ID which is used for diagnostics and Q\\&A.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'WebTerminalUrl' => [
+ 'description' => 'The WebSocket URI for accessing the container. You must build a WebSocket client. For more information about the communication format, see the following code:'."\n"
+ ."\n"
+ .' ws = new WebSocket('."\n"
+ .' `wss://xxxxx`,'."\n"
+ .' );'."\n"
+ .' ws.onopen = function open() {'."\n"
+ .' console.warn(\'connected\');'."\n"
+ .' term.write(\'\\r\');'."\n"
+ .' };'."\n"
+ ."\n"
+ .' ws.onclose = function close() {'."\n"
+ .' console.warn(\'disconnected\');'."\n"
+ .' term.write(\'Connection closed\');'."\n"
+ .' };'."\n"
+ ."\n"
+ .' // Return the following information in the backend.'."\n"
+ .' ws.onmessage = function incoming(event) {'."\n"
+ .' const msg = JSON.parse(event.data);'."\n"
+ .' console.warn(msg);'."\n"
+ .' if (msg.operation === \'stdout\') {'."\n"
+ .' term.write(msg.data);'."\n"
+ .' } else {'."\n"
+ .' console.warn(\'invalid msg operation: \' + msg);'."\n"
+ .' }'."\n"
+ .' };'."\n"
+ ."\n"
+ .' // Enter the following code in the console.'."\n"
+ .' term.onData(data => {'."\n"
+ .' const msg = { operation: \'stdin\', data: data };'."\n"
+ .' ws.send(JSON.stringify(msg));'."\n"
+ .' });'."\n"
+ ."\n"
+ .' term.onResize(size => {'."\n"
+ .' const msg = { operation: \'resize\', cols: size.cols, rows: size.rows };'."\n"
+ .' ws.send(JSON.stringify(msg));'."\n"
+ .' });'."\n"
+ ."\n"
+ .' fitAddon.fit();'."\n"
+ .' };'."\n",
+ 'type' => 'string',
+ 'example' => 'wss://*****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"WebTerminalUrl\\": \\"wss://*****\\"\\n}","type":"json"}]',
+ 'title' => 'GetWebTerminal',
+ ],
+ 'GetToken' => [
+ 'summary' => 'Obtains the sharing token of a DLC job. This token is used to view the information about the shared job.',
+ 'path' => '/api/v1/tokens',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '44246',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'TargetType',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'TargetType',
+ 'description' => 'The type of the job that you want to share. Valid values: job and tensorboard.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'job',
+ ],
+ ],
+ [
+ 'name' => 'TargetId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'TargetId',
+ 'description' => 'The ID of the job to be shared.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc*******',
+ ],
+ ],
+ [
+ 'name' => 'ExpireTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'ExpireTime',
+ 'description' => 'The time when the share link expires. Default value: 604800. Minimum value: 0. Unit: seconds.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '60',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The results returned.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'RequestId',
+ 'description' => 'The request ID, which is used to troubleshoot issues.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxxxx',
+ ],
+ 'Token' => [
+ 'title' => 'Token',
+ 'description' => 'The sharing token, used to view the information about the shared job.'."\n",
+ 'type' => 'string',
+ 'example' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9*****',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-xxxxxxxx\\",\\n \\"Token\\": \\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9*****\\"\\n}","type":"json"}]',
+ 'title' => 'GetToken',
+ ],
+ 'CreateTensorboard' => [
+ 'summary' => 'Creates a TensorBoard by using a job or specifying a data source configuration.',
+ 'path' => '/api/v1/tensorboards',
+ 'methods' => [
+ 'post',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'create',
+ 'abilityTreeCode' => '18654',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnVD2RKE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'body',
+ 'in' => 'body',
+ 'style' => 'json',
+ 'schema' => [
+ 'description' => 'The request body.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'WorkspaceId' => [
+ 'description' => 'The workspace ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '123***',
+ ],
+ 'JobId' => [
+ 'title' => '任务Id',
+ 'description' => 'The job ID. For more information about how to query the job ID, see [ListJobs](~~459676~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc-20210126170216-mtl37ge7gkvdz',
+ ],
+ 'DataSourceId' => [
+ 'title' => 'DataSource Id',
+ 'description' => 'The dataset ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'd-xxxxxxxx',
+ ],
+ 'DataSourceType' => [
+ 'description' => 'The dataset type. Valid values:'."\n"
+ ."\n"
+ .'* OSS'."\n"
+ .'* NAS'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'enumValueTitles' => [],
+ 'example' => 'OSS',
+ ],
+ 'Uri' => [
+ 'description' => 'The dataset URI:'."\n"
+ ."\n"
+ .'* Value format when DataSourceType is set to OSS: `oss://[oss-bucket].[endpoint]/[path]`.'."\n"
+ .'* Value format when DataSourceType is set to NAS:`nas://[nas-filesystem-id].[region]/[path]`.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'oss://.oss-cn-shanghai-finance-1.aliyuncs.com/',
+ ],
+ 'Options' => [
+ 'description' => 'The extended fields of the dataset are in the JSON format. MountPath: the path to mount the dataset.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '{"mountpath":"/root/data/"}',
+ ],
+ 'SummaryPath' => [
+ 'title' => 'Summary 目录',
+ 'description' => 'The directory of summary.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/root/data/',
+ ],
+ 'SummaryRelativePath' => [
+ 'description' => 'The relative path of summary.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '/summary/',
+ ],
+ 'DisplayName' => [
+ 'title' => 'Tensorboard名称',
+ 'description' => 'The TensorBoard name'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tensorboard',
+ ],
+ 'SourceType' => [
+ 'description' => 'The source type.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'job',
+ ],
+ 'SourceId' => [
+ 'description' => 'The source ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc-xxxxxx',
+ ],
+ 'MaxRunningTimeMinutes' => [
+ 'title' => '最长运行时长',
+ 'description' => 'The maximum running duration. Unit: minutes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '240',
+ ],
+ 'DataSources' => [
+ 'description' => 'The configurations of the data source.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the data source.'."\n",
+ 'required' => false,
+ '$ref' => '#/components/schemas/DataSourceItem',
+ ],
+ 'required' => false,
+ ],
+ 'Cpu' => [
+ 'description' => 'The number of vCPU cores.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ 'Memory' => [
+ 'description' => 'The memory size. Unit: GB.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '1000',
+ ],
+ 'TensorboardDataSources' => [
+ 'description' => 'The configurations of datasets mounted with the TensorBoard job.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The TensorBoard dataset configuration information, which is used to mount multiple datasets. Currently, configuration by dataset (datasource) and configuration by job (dlc) are supported. When this parameter is not empty, the DataSourceId, Uri, and DataSourceType parameters do not take effect.'."\n",
+ 'required' => false,
+ '$ref' => '#/components/schemas/TensorboardDataSourceSpec',
+ ],
+ 'required' => false,
+ ],
+ 'TensorboardSpec' => [
+ 'description' => 'The pay-as-you-go configuration of TensorBoard, which is used to create TensorBoard jobs that use pay-as-you-go resources.'."\n",
+ 'required' => false,
+ '$ref' => '#/components/schemas/TensorboardSpec',
+ ],
+ 'QuotaId' => [
+ 'description' => 'The resource quota ID. This parameter is required when you create a TensorBoard job by using a resource quota.'."\n"
+ ."\n"
+ .'This feature is currently limited to whitelisted users. If you need to use this feature, contact us.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'quota12345',
+ ],
+ 'Priority' => [
+ 'description' => 'The priority of the job. Default value: 1. Valid values: 1 to 9.'."\n"
+ ."\n"
+ .'* 1 is the lowest priority.'."\n"
+ .'* 9 is the highest priority.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '1',
+ ],
+ 'Accessibility' => [
+ 'description' => 'The job visibility. Valid values:'."\n"
+ ."\n"
+ .'* PUBLIC: Visible to all members in the workspace.'."\n"
+ .'* PRIVATE: Visible only to you and the administrator of the workspace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'PRIVATE',
+ ],
+ ],
+ 'required' => false,
+ 'example' => '380',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'JobId' => [
+ 'title' => '任务Id',
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'dlc-20210126170216-xxxxxxxx',
+ ],
+ 'DataSourceId' => [
+ 'title' => 'DataSourceId',
+ 'description' => 'The dataset ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'ds-20210126170216-xxxxxxxx',
+ ],
+ 'TensorboardId' => [
+ 'title' => 'Tensorboard id',
+ 'description' => 'TensorBoard ID'."\n",
+ 'type' => 'string',
+ 'example' => 'tbxxxxxxxx',
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc-20210126170216-xxxxxxxx\\",\\n \\"DataSourceId\\": \\"ds-20210126170216-xxxxxxxx\\",\\n \\"TensorboardId\\": \\"tbxxxxxxxx\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<CreateTensorboardResponse>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</CreateTensorboardResponse>","errorExample":""}]',
+ 'title' => 'CreateTensorboard',
+ ],
+ 'DeleteTensorboard' => [
+ 'summary' => 'Deletes a stopped TensorBoard.',
+ 'path' => '/api/v1/tensorboards/{TensorboardId}',
+ 'methods' => [
+ 'delete',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'delete',
+ 'abilityTreeCode' => '20380',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'WorkspaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '工作空间ID',
+ 'description' => 'The workspace ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '46099',
+ ],
+ ],
+ [
+ 'name' => 'TensorboardId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => 'Tensorboad Id',
+ 'description' => 'The TensorBoard ID. For more information about how to obtain the TensorBoard ID, see [ListTensorboards](~~459689~~).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tensorboard-20210114104214-xxxxxxxx',
+ 'maxLength' => 256,
+ 'minLength' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'TensorboardId' => [
+ 'title' => 'Tensorboad Id',
+ 'description' => 'The TensorBoard ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'tensorboard-20210114104214-vf9lowjt3pso',
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TensorboardId\\": \\"tensorboard-20210114104214-vf9lowjt3pso\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<DeleteTensorboardResponse>\\n <TensorboardId>tensorboard-20210114104214-vf9lowjt3pso</TensorboardId>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</DeleteTensorboardResponse>","errorExample":""}]',
+ 'title' => 'DeleteTensorboard',
+ ],
+ 'StartTensorboard' => [
+ 'summary' => 'Starts a TensorBoard instance.',
+ 'path' => '/api/v1/tensorboards/{TensorboardId}/start',
+ 'methods' => [
+ 'put',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '40265',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnQJXF95',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'WorkspaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '工作空间ID',
+ 'description' => 'The workspace ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '380',
+ ],
+ ],
+ [
+ 'name' => 'TensorboardId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => 'Tensorboad Id',
+ 'description' => 'The TensorBoard instance ID. For more information about how to obtain the TensorBoard instance ID, see [ListTensorboards](~~459689~~).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tensorboard-20210114104214-vf9lowjt3pso',
+ 'maxLength' => 256,
+ 'minLength' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'TensorboardId' => [
+ 'title' => 'Tensorboad Id',
+ 'description' => 'The TensorBoard instance ID.'."\n",
+ 'type' => 'string',
+ 'example' => 'tensorboard-20210114104214-vf9lowjt3pso',
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TensorboardId\\": \\"tensorboard-20210114104214-vf9lowjt3pso\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<StartTensorboardResponse>\\n <TensorboardId>tensorboard-20210114104214-vf9lowjt3pso</TensorboardId>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</StartTensorboardResponse>","errorExample":""}]',
+ 'title' => 'StartTensorboard',
+ ],
+ 'UpdateTensorboard' => [
+ 'summary' => 'Updates a TensorBoard instance.',
+ 'path' => '/api/v1/tensorboards/{TensorboardId}',
+ 'methods' => [
+ 'put',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '40264',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'WorkspaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '工作空间ID',
+ 'description' => 'The workspace ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '380',
+ ],
+ ],
+ [
+ 'name' => 'TensorboardId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => 'Tensorboad Id',
+ 'description' => 'The ID of the TensorBoard instance. For more information about how to query the ID of the TensorBoard instance, see [ListTensorboards](~~459689~~).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tensorboard-20210114104214-vf9lowjt3pso',
+ 'maxLength' => 256,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'MaxRunningTimeMinutes',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'MaxRunningTimeMinutes',
+ 'description' => 'The maximum running time. Unit: minutes.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'required' => false,
+ 'example' => '300',
+ ],
+ ],
+ [
+ 'name' => 'Accessibility',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The visibility of the jobs. Valid values:'."\n"
+ ."\n"
+ .'* PUBLIC: The jobs are public in the workspace.'."\n"
+ .'* PRIVATE: The jobs are visible only to you and the administrator of the workspace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'PRIVATE',
+ ],
+ ],
+ [
+ 'name' => 'Priority',
+ 'in' => 'query',
+ 'schema' => [
+ 'type' => 'string',
+ 'required' => false,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'TensorboardId' => [
+ 'title' => 'Tensorboad Id',
+ 'description' => 'The ID of the TensorBoard instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'tensorboard-20210114104214-xxxxxxxx',
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TensorboardId\\": \\"tensorboard-20210114104214-xxxxxxxx\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<UpdateTensorboardResponse>\\n <TensorboardId>tensorboard-20210114104214-xxxxxxxx</TensorboardId>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</UpdateTensorboardResponse>","errorExample":""}]',
+ 'title' => 'UpdateTensorboard',
+ ],
+ 'StopTensorboard' => [
+ 'summary' => 'Stops a TensorBoard instance.',
+ 'path' => '/api/v1/tensorboards/{TensorboardId}/stop',
+ 'methods' => [
+ 'put',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'write',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'update',
+ 'abilityTreeCode' => '40266',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnQJXF95',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'WorkspaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '工作空间ID',
+ 'description' => 'The workspace ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '380',
+ ],
+ ],
+ [
+ 'name' => 'TensorboardId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => 'Tensorboad Id',
+ 'description' => 'The ID of the TensorBoard instance. For more information about how to query the Tensorboard instance ID, see [ListTensorboards](~~459689~~).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tensorboard-20210114104214-vf9lowjt3pso',
+ 'maxLength' => 256,
+ 'minLength' => 1,
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'TensorboardId' => [
+ 'title' => 'Tensorboad Id',
+ 'description' => 'The ID of the TensorBoard instance.'."\n",
+ 'type' => 'string',
+ 'example' => 'tensorboard-20210114104214-xxxxxxxx',
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The ID of the request.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ 'description' => '',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TensorboardId\\": \\"tensorboard-20210114104214-xxxxxxxx\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<StopTensorboardResponse>\\n <TensorboardId>tensorboard-20210114104214-xxxxxxxx</TensorboardId>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</StopTensorboardResponse>","errorExample":""}]',
+ 'title' => 'StopTensorboard',
+ ],
+ 'ListTensorboards' => [
+ 'summary' => 'Queries a list of TensorBoard instances.',
+ 'path' => '/api/v1/tensorboards',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ [
+ 'APP' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '20382',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnVD2RKE',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'Verbose',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否显示详情',
+ 'description' => 'Specifies whether to return the information about the TensorBoard instance.'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'WorkspaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '工作空间ID',
+ 'description' => 'The workspace ID. Obtain a list of TensorBoard instances based on the workspace ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '380',
+ ],
+ ],
+ [
+ 'name' => 'SourceType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The data source associated with the TensorBoard instance. This parameter is no longer used. Only Deep Learning Containers (DLC) training jobs are supported.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'job',
+ ],
+ ],
+ [
+ 'name' => 'SourceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The data source ID. For more information about how to obtain the ID of a job, see [ListJobs](~~459676~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc-xxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'DisplayName',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '展示名称',
+ 'description' => 'The TensorBoard instance name.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'TestTensorboard',
+ ],
+ ],
+ [
+ 'name' => 'Status',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '根据状态过滤',
+ 'description' => 'The TensorBoard instance status. Valid values:'."\n"
+ ."\n"
+ .'* Creating'."\n"
+ .'* Running'."\n"
+ .'* Stopped'."\n"
+ .'* Succeeded'."\n"
+ .'* Failed'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Running',
+ ],
+ ],
+ [
+ 'name' => 'StartTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '起始时间',
+ 'description' => 'The start time of the query. Use the UTC time when the TensorBoard instance is created to filter data. If you leave this parameter empty, the default value is seven days before the current time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-08T16:00:00Z',
+ ],
+ ],
+ [
+ 'name' => 'EndTime',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '截止时间',
+ 'description' => 'The end time of the query. Use the UTC time when the TensorBoard instance is created to filter data. If you leave this parameter empty, the default value is the current time.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '2020-11-09T14:45:00Z',
+ ],
+ ],
+ [
+ 'name' => 'SortBy',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '按返回字段排序',
+ 'description' => 'The returned field used to sort TensorBoard instances.'."\n"
+ ."\n"
+ .'* DisplayName: the name of the TensorBoard instance.'."\n"
+ .'* GmtCreateTime: the time when the TensorBoard instance is created.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'GmtCreateTime',
+ ],
+ ],
+ [
+ 'name' => 'PageNumber',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '当前页',
+ 'description' => 'The page number. Minimum value: 1.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '1000',
+ 'minimum' => '1',
+ 'example' => '1',
+ 'default' => '1',
+ ],
+ ],
+ [
+ 'name' => 'PageSize',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '每页返回的作业数',
+ 'description' => 'The number of TensorBoard instances per page.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int32',
+ 'required' => false,
+ 'maximum' => '100',
+ 'minimum' => '1',
+ 'example' => '50',
+ 'default' => '10',
+ ],
+ ],
+ [
+ 'name' => 'Order',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '排序顺序',
+ 'description' => 'The sorting order.'."\n"
+ ."\n"
+ .'* desc'."\n"
+ .'* asc'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'desc',
+ ],
+ ],
+ [
+ 'name' => 'JobId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'JobId',
+ 'description' => 'The job ID used to filter TensorBoard instances. For more information about how to obtain the ID of a job, see [ListJobs](~~459676~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc-xxx',
+ ],
+ ],
+ [
+ 'name' => 'TensorboardId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'TensorboardId',
+ 'description' => 'The TensorBoard instance ID used to filter TensorBoard instances.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'tensorboard-xxx',
+ ],
+ ],
+ [
+ 'name' => 'ShowOwn',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否只返回当前登录者所创建的Tensorboard',
+ 'description' => 'Specifies whether to return only the TensorBoard instances created by the current logon account.'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ 'default' => 'true',
+ ],
+ ],
+ [
+ 'name' => 'PaymentType',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The billing method of TensorBoard instances.'."\n"
+ ."\n"
+ .'* Free: the TensorBoard instance that uses free resources.'."\n"
+ .'* Postpaid: the TensorBoard instance that uses pay-as-you-go resources.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'Postpaid',
+ ],
+ ],
+ [
+ 'name' => 'UserId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The user ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '161****3000',
+ ],
+ ],
+ [
+ 'name' => 'Username',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The username.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'she****mo',
+ ],
+ ],
+ [
+ 'name' => 'QuotaId',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The resource quota ID.'."\n"
+ ."\n"
+ .'> '."\n"
+ ."\n"
+ .'* Only whitelisted users can use resource quotas to create TensorBoard instances. If you want to use this feature, contact us.'."\n"
+ ."\n"
+ .'* This parameter takes effect only when TensorBoard instances use resource quotas.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'quota12***'."\n",
+ ],
+ ],
+ [
+ 'name' => 'Accessibility',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The instance visibility.'."\n"
+ ."\n"
+ .'* PUBLIC: TensorBoard instances are visible to all members in the workspace.'."\n"
+ .'* PRIVATE: TensorBoard instances are visible only to you and the administrator of the workspace.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'PRIVATE',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The returned data.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'Tensorboards' => [
+ 'title' => 'Tensorboard 列表',
+ 'description' => 'The TensorBoard instances.'."\n",
+ 'type' => 'array',
+ 'items' => [
+ 'description' => 'The information about the TensorBoard instance.'."\n",
+ '$ref' => '#/components/schemas/Tensorboard',
+ ],
+ ],
+ 'TotalCount' => [
+ 'title' => '符合条件的数据源总数量',
+ 'description' => 'The total number of data sources that meet the conditions.'."\n",
+ 'type' => 'integer',
+ 'format' => 'int64',
+ 'example' => '100',
+ ],
+ 'RequestId' => [
+ 'title' => '请求Id',
+ 'description' => 'The request ID.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Tensorboards\\": [\\n {\\n \\"TensorboardId\\": \\"tensorboard-xxx\\",\\n \\"TensorboardUrl\\": \\"http://xxxxxx\\",\\n \\"Status\\": \\"running\\",\\n \\"Duration\\": \\"1234567\\",\\n \\"GmtCreateTime\\": \\"2021-01-12T14:35:00Z\\",\\n \\"GmtModifyTime\\": \\"2021-01-12T14:36:00Z\\",\\n \\"GmtFinishTime\\": \\"2021-01-12T14:36:00Z\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"DisplayName\\": \\"test\\",\\n \\"DataSourceId\\": \\"datasource-test\\",\\n \\"SummaryPath\\": \\"/root/data\\",\\n \\"UserId\\": \\"lycxxxxx\\",\\n \\"Username\\": \\"tensorboard.pai\\",\\n \\"ReasonCode\\": \\"Delete by user\\",\\n \\"ReasonMessage\\": \\"Tensorboard is deleted\\",\\n \\"JobId\\": \\"dlc-20210114104214-vf9lowjt3pso\\",\\n \\"TensorboardDataSources\\": [\\n {\\n \\"DirectoryName\\": \\"dlcJobName\\",\\n \\"Name\\": \\"dlcJobName\\",\\n \\"Id\\": \\"d-vf2fdhxxxxxx\\",\\n \\"DataSourceType\\": \\"OSS\\",\\n \\"Uri\\": \\"oss://.oss-cn-shanghai-finance-1.aliyuncs.com/\\",\\n \\"SourceType\\": \\"datasource\\",\\n \\"SummaryPath\\": \\"/tensorboard/run1\\",\\n \\"FullSummaryPath\\": \\"oss://xxxxx/tensorboard/run1\\"\\n }\\n ],\\n \\"TensorboardSpec\\": {\\n \\"VpcId\\": \\"vpc-xxxx\\",\\n \\"EcsType\\": \\"ecs.g6.large\\",\\n \\"SecurityGroupId\\": \\"sg-xxxxx\\",\\n \\"SwitchId\\": \\"vsw-xxxx\\"\\n },\\n \\"QuotaId\\": \\"\\",\\n \\"Priority\\": \\"\\",\\n \\"QuotaName\\": \\"\\",\\n \\"Accessibility\\": \\"\\",\\n \\"Cpu\\": 0,\\n \\"SummaryRelativePath\\": \\"\\",\\n \\"MaxRunningTimeMinutes\\": 0,\\n \\"WorkspaceId\\": \\"\\",\\n \\"DataSourceType\\": \\"\\",\\n \\"Options\\": \\"\\",\\n \\"Memory\\": 0,\\n \\"Token\\": \\"\\"\\n }\\n ],\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"<ListTensorboardsResponse>\\n <Tensorboards/>\\n <TotalCount>100</TotalCount>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n</ListTensorboardsResponse>","errorExample":""}]',
+ 'title' => 'ListTensorboards',
+ ],
+ 'GetTensorboard' => [
+ 'summary' => 'Queries the information of a TensorBoard instance.',
+ 'path' => '/api/v1/tensorboards/{TensorboardId}',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '20371',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnWA9VRC',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'WorkspaceId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '工作空间ID',
+ 'description' => 'The workspace ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '46099',
+ ],
+ ],
+ [
+ 'name' => 'TensorboardId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => 'TensorboardId Id',
+ 'description' => 'The ID of the TensorBoard instance. For more information about how to obtain the ID of the TensorBoard instance, see [ListTensorboards](~~459689~~).'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tb-20210114104214-xxxxx',
+ 'maxLength' => 256,
+ 'minLength' => 1,
+ ],
+ ],
+ [
+ 'name' => 'JodId',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => 'JodId',
+ 'description' => 'The job ID. For more information about how to query the job ID, see [ListJob](~~459676~~).'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc-xxxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'Token',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The information about the shared token. You can specify this parameter to obtain the permission to view a TensorBoard job based on the shared token information. You can execute [GetTensorboardSharedUrl](~~2557813~~) and extract the shared token from the obtained information.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e'."\n"
+ .'yJleHAiOjE2OTUyODA0NTMsImlhdCI6MTY5NTE5NDA1MywidXNlcl9pZCI6IjExN'."\n"
+ .'Tc3MDMyNzA5OTQ5MDEiLCJ0YXJnZXRfaWQiOiJ0YjRrOGxjNXhmdTM2b3B0Iiw'."\n"
+ .'idGFyZ2V0X3R5cGUiOiJ0ZW5zb3Jib2FyZCJ9.6eT68J-KMBwwfN2d7fj7u6vyPcf0erfqYeizd2N****',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'description' => 'The details of the TensorBoard instance.'."\n",
+ '$ref' => '#/components/schemas/Tensorboard',
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"TensorboardId\\": \\"tensorboard-xxx\\",\\n \\"TensorboardUrl\\": \\"http://xxxxxx\\",\\n \\"Status\\": \\"running\\",\\n \\"Duration\\": \\"1234567\\",\\n \\"GmtCreateTime\\": \\"2021-01-12T14:35:00Z\\",\\n \\"GmtModifyTime\\": \\"2021-01-12T14:36:00Z\\",\\n \\"GmtFinishTime\\": \\"2021-01-12T14:36:00Z\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"DisplayName\\": \\"test\\",\\n \\"DataSourceId\\": \\"datasource-test\\",\\n \\"SummaryPath\\": \\"/root/data\\",\\n \\"UserId\\": \\"lycxxxxx\\",\\n \\"Username\\": \\"tensorboard.pai\\",\\n \\"ReasonCode\\": \\"Delete by user\\",\\n \\"ReasonMessage\\": \\"Tensorboard is deleted\\",\\n \\"JobId\\": \\"dlc-20210114104214-vf9lowjt3pso\\",\\n \\"TensorboardDataSources\\": [\\n {\\n \\"DirectoryName\\": \\"dlcJobName\\",\\n \\"Name\\": \\"dlcJobName\\",\\n \\"Id\\": \\"d-vf2fdhxxxxxx\\",\\n \\"DataSourceType\\": \\"OSS\\",\\n \\"Uri\\": \\"oss://.oss-cn-shanghai-finance-1.aliyuncs.com/\\",\\n \\"SourceType\\": \\"datasource\\",\\n \\"SummaryPath\\": \\"/tensorboard/run1\\",\\n \\"FullSummaryPath\\": \\"oss://xxxxx/tensorboard/run1\\"\\n }\\n ],\\n \\"TensorboardSpec\\": {\\n \\"VpcId\\": \\"vpc-xxxx\\",\\n \\"EcsType\\": \\"ecs.g6.large\\",\\n \\"SecurityGroupId\\": \\"sg-xxxxx\\",\\n \\"SwitchId\\": \\"vsw-xxxx\\"\\n },\\n \\"QuotaId\\": \\"\\",\\n \\"Priority\\": \\"\\",\\n \\"QuotaName\\": \\"\\",\\n \\"Accessibility\\": \\"\\",\\n \\"Cpu\\": 0,\\n \\"SummaryRelativePath\\": \\"\\",\\n \\"MaxRunningTimeMinutes\\": 0,\\n \\"WorkspaceId\\": \\"\\",\\n \\"DataSourceType\\": \\"\\",\\n \\"Options\\": \\"\\",\\n \\"Memory\\": 0,\\n \\"Token\\": \\"\\"\\n}","errorExample":""},{"type":"xml","example":"<GetTensorboardResponse>\\n <TensorboardId>tensorboard-xxx</TensorboardId>\\n <TensorboardUrl>http://xxxxxx</TensorboardUrl>\\n <Status>running</Status>\\n <Duration>1234567</Duration>\\n <GmtCreateTime>2021-01-12T14:35:00Z</GmtCreateTime>\\n <GmtModifyTime>2021-01-12T14:36:00Z</GmtModifyTime>\\n <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E</RequestId>\\n <DisplayName>test</DisplayName>\\n <DataSourceId>datasource-test</DataSourceId>\\n <SummaryPath>/root/data</SummaryPath>\\n <UserId>lycxxxxx</UserId>\\n <ReasonCode>Delete by user</ReasonCode>\\n <ReasonMessage>Tensorboard is deleted</ReasonMessage>\\n <JobId>dlc-20210114104214-vf9lowjt3pso</JobId>\\n</GetTensorboardResponse>","errorExample":""}]',
+ 'title' => 'GetTensorboard',
+ ],
+ 'GetTensorboardSharedUrl' => [
+ 'summary' => 'Obtains the shareable link of a TensorBoard task. The link contains digital tokens. You can use a shareable link to access a TensorBoard task.',
+ 'path' => '/api/v1/tensorboards/{TensorboardId}/sharedurl',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'abilityTreeCode' => '189994',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnQJXF95',
+ ],
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'TensorboardId',
+ 'in' => 'path',
+ 'schema' => [
+ 'description' => 'The ID of the TensorBoard task.'."\n",
+ 'type' => 'string',
+ 'required' => true,
+ 'example' => 'tbxxxxxx',
+ ],
+ ],
+ [
+ 'name' => 'ExpireTimeSeconds',
+ 'in' => 'query',
+ 'schema' => [
+ 'description' => 'The validity period of the shareable link. Unit: seconds. Maximum value: 604800.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => '86400',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'The response parameters.'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'RequestId' => [
+ 'title' => 'Id of the request',
+ 'description' => 'The request ID which is used for troubleshooting.'."\n",
+ 'type' => 'string',
+ 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E',
+ ],
+ 'TensorboardSharedUrl' => [
+ 'description' => 'The shareable link of the TensorBoard task.'."\n",
+ 'type' => 'string',
+ 'example' => 'http://pai-dlc-proxy-xxx.alicyuncs.com/xxx/xxx/token/',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"TensorboardSharedUrl\\": \\"http://pai-dlc-proxy-xxx.alicyuncs.com/xxx/xxx/token/\\"\\n}","type":"json"}]',
+ 'title' => 'GetTensorboardSharedUrl',
+ ],
+ 'GetRayDashboard' => [
+ 'summary' => 'Obtains a Ray Dashboard URL.',
+ 'path' => '/api/v1/jobs/{jobId}/rayDashboard',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnQJXF95',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'jobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => '任务ID'."\n",
+ 'description' => 'The job ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc1k7426goc7bvy',
+ ],
+ ],
+ [
+ 'name' => 'isShared',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否为分享链接。若为是,目前同时必填token'."\n",
+ 'description' => 'Specifies whether the link is a sharing link. If yes, a token is required.'."\n"
+ ."\n"
+ .'Valid values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ 'enum' => [
+ 'true',
+ 'false',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'token',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '从GetToken获取的token'."\n",
+ 'description' => 'The token obtained from GetToken'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'some_token_value',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'url' => [
+ 'title' => 'Ray Dashboard 的 URL'."\n",
+ 'description' => 'The Ray Dashboard URL'."\n",
+ 'type' => 'string',
+ 'example' => 'https://pre-pai-dlc-proxy-cn-hangzhou.aliyun.com/ray/dashboard/dlc1k7426goc7bvy',
+ ],
+ 'metricsEnabled' => [
+ 'title' => '该dashboard是否已经集成云监控支持展示ray metrics'."\n",
+ 'description' => 'Indicates whether the dashboard has been integrated with CloudMonitor and supports ray metrics'."\n",
+ 'type' => 'string',
+ 'example' => 'true',
+ 'enum' => [
+ 'true',
+ 'false',
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"url\\": \\"https://pre-pai-dlc-proxy-cn-hangzhou.aliyun.com/ray/dashboard/dlc1k7426goc7bvy\\",\\n \\"metricsEnabled\\": \\"true\\"\\n}","type":"json"}]',
+ 'title' => 'GetRayDashboard',
+ 'description' => 'Before you call this operation, make sure that you understand the billing methods and [pricing](~~171758~~) of Deep Learning Containers (DLC) of Platform for AI (PAI).'."\n",
+ ],
+ 'GetDashboard' => [
+ 'summary' => 'Gets the DLC task\'s Dashboard URL, if one exists.',
+ 'path' => '/api/v1/jobs/{jobId}/dashboard',
+ 'methods' => [
+ 'get',
+ ],
+ 'schemes' => [
+ 'http',
+ 'https',
+ ],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'consumes' => [
+ 'application/json',
+ ],
+ 'produces' => [
+ 'application/json',
+ ],
+ 'operationType' => 'read',
+ 'deprecated' => false,
+ 'systemTags' => [
+ 'operationType' => 'get',
+ 'riskType' => 'none',
+ 'chargeType' => 'free',
+ 'abilityTreeNodes' => [
+ 'FEATURElearnQJXF95',
+ ],
+ 'autoTest' => true,
+ 'tenantRelevance' => 'tenant',
+ ],
+ 'parameters' => [
+ [
+ 'name' => 'jobId',
+ 'in' => 'path',
+ 'schema' => [
+ 'title' => '任务ID'."\n",
+ 'description' => 'The task ID.'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'dlc1k7426goc7bvy',
+ ],
+ ],
+ [
+ 'name' => 'isShared',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '是否为分享链接。若为是,目前同时必填token'."\n",
+ 'description' => 'Specifies whether the link is a sharing link. If yes, a token is required.'."\n"
+ ."\n"
+ .'Enumerated values:'."\n"
+ ."\n"
+ .'* true'."\n"
+ .'* false'."\n",
+ 'type' => 'boolean',
+ 'required' => false,
+ 'example' => 'false',
+ 'enum' => [
+ 'true',
+ 'false',
+ ],
+ ],
+ ],
+ [
+ 'name' => 'token',
+ 'in' => 'query',
+ 'schema' => [
+ 'title' => '从GetToken获取的token'."\n",
+ 'description' => 'The token obtained from GetToken'."\n",
+ 'type' => 'string',
+ 'required' => false,
+ 'example' => 'some_token_value',
+ ],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'title' => 'Schema of Response',
+ 'description' => 'Schema of Response'."\n",
+ 'type' => 'object',
+ 'properties' => [
+ 'url' => [
+ 'title' => 'Dashboard 的 URL'."\n",
+ 'description' => 'The Dashboard URL'."\n",
+ 'type' => 'string',
+ 'example' => 'https://dlcj1jzm1p01saqw-spark.pre-dsw-gateway-cn-hangzhou.data.aliyun.com',
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'staticInfo' => [
+ 'returnType' => 'synchronous',
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"url\\": \\"https://dlcj1jzm1p01saqw-spark.pre-dsw-gateway-cn-hangzhou.data.aliyun.com\\"\\n}","type":"json"}]',
+ 'title' => 'GetDashboard',
+ 'description' => 'Before you call this operation, make sure that you understand the billing methods and [pricing](~~171758~~) of Deep Learning Containers (DLC) of Platform for AI (PAI).'."\n",
+ ],
+ ],
+ 'endpoints' => [
+ [
+ 'regionId' => 'cn-beijing',
+ 'endpoint' => 'pai-dlc.cn-beijing.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-wulanchabu',
+ 'endpoint' => 'pai-dlc.cn-wulanchabu.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hangzhou',
+ 'endpoint' => 'pai-dlc.cn-hangzhou.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai',
+ 'endpoint' => 'pai-dlc.cn-shanghai.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shenzhen',
+ 'endpoint' => 'pai-dlc.cn-shenzhen.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-guangzhou',
+ 'endpoint' => 'pai-dlc.cn-guangzhou.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-hongkong',
+ 'endpoint' => 'pai-dlc.cn-hongkong.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-northeast-1',
+ 'endpoint' => 'pai-dlc.ap-northeast-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-1',
+ 'endpoint' => 'pai-dlc.ap-southeast-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-3',
+ 'endpoint' => 'pai-dlc.ap-southeast-3.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-5',
+ 'endpoint' => 'pai-dlc.ap-southeast-5.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'us-east-1',
+ 'endpoint' => 'pai-dlc.us-east-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'us-west-1',
+ 'endpoint' => 'pai-dlc.us-west-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'eu-central-1',
+ 'endpoint' => 'pai-dlc.eu-central-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'cn-shanghai-finance-1',
+ 'endpoint' => 'pai-dlc.cn-shanghai-finance-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'ap-southeast-7',
+ 'endpoint' => 'pai-dlc.ap-southeast-7.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'us-southeast-1',
+ 'endpoint' => 'pai-dlc.us-southeast-1.aliyuncs.com',
+ ],
+ [
+ 'regionId' => 'me-east-1',
+ 'endpoint' => 'pai-dlc.me-east-1.aliyuncs.com',
+ ],
+ ],
+];