diff options
Diffstat (limited to 'data/en_us/pai-dlc')
| -rw-r--r-- | data/en_us/pai-dlc/2020-12-03/api-docs.php | 10129 |
1 files changed, 4857 insertions, 5272 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 index 4993ed5..09927e1 100644 --- a/data/en_us/pai-dlc/2020-12-03/api-docs.php +++ b/data/en_us/pai-dlc/2020-12-03/api-docs.php @@ -1,1982 +1,1272 @@ <?php return [ 'version' => '1.0', - 'info' => [ - 'style' => 'ROA', - 'product' => 'pai-dlc', - 'version' => '2020-12-03', - ], + 'info' => ['style' => 'ROA', 'product' => 'pai-dlc', 'version' => '2020-12-03'], 'directories' => [ [ - 'id' => 169743, - 'title' => 'Tasks', + 'children' => ['CreateJob', 'UpdateJob', 'ListJobs', 'GetJob'], 'type' => 'directory', - 'children' => [ - 'CreateJob', - 'DeleteJob', - 'UpdateJob', - 'StopJob', - 'ListJobs', - 'GetJob', - 'GetJobSanityCheckResult', - 'ListJobSanityCheckResults', - 'GetPodLogs', - 'GetPodEvents', - 'GetJobMetrics', - 'GetJobEvents', - 'ListEcsSpecs', - 'GetWebTerminal', - 'GetToken', - ], + 'title' => 'Node', + ], + [ + 'children' => ['CreateJobTemplate', 'GetJobTemplate', 'DeleteJobTemplate', 'UpdateJobTemplate', 'ListJobTemplates', 'SetJobTemplateDefaultVersion'], + 'type' => 'directory', + 'title' => 'Node template', ], [ - 'id' => 169755, + 'children' => ['UpdateTensorboard', 'ListTensorboards', 'GetTensorboard'], + 'type' => 'directory', 'title' => 'Tensorboard', + ], + [ + 'children' => ['CreateRayHistoryServer', 'GetRayHistoryServer', 'ListRayHistoryServers', 'StartRayHistoryServer', 'StopRayHistoryServer', 'DeleteRayHistoryServer'], 'type' => 'directory', - 'children' => [ - 'CreateTensorboard', - 'DeleteTensorboard', - 'StartTensorboard', - 'UpdateTensorboard', - 'StopTensorboard', - 'ListTensorboards', - 'GetTensorboard', - 'GetTensorboardSharedUrl', - ], + 'title' => 'RayHistoryServer', ], [ - 'id' => 208978, - 'title' => 'Other', + 'children' => ['GetDashboard', 'GetRayDashboard', 'GetMetrics', 'CreateTensorboard', 'DeleteJob', 'DeleteTensorboard', 'GetJobEvents', 'GetJobMetrics', 'GetJobSanityCheckResult', 'GetPodEvents', 'GetPodLogs', 'GetTensorboardSharedUrl', 'GetToken', 'GetWebTerminal', 'ListEcsSpecs', 'ListJobSanityCheckResults', 'StartTensorboard', 'StopJob', 'StopTensorboard'], 'type' => 'directory', - 'children' => [ - 'GetRayDashboard', - 'GetDashboard', - ], + 'title' => 'Others', ], ], 'components' => [ 'schemas' => [ - 'CodeSourceItem' => [ + 'AliyunAccounts' => [ + 'title' => 'A short description of struct', + 'description' => 'aliyunaccounts', + 'type' => 'object', + 'properties' => [ + 'AliyunUid' => ['title' => 'Aliyun账号的UID', 'type' => 'string'], + 'EmployeeId' => ['title' => '弹内用户的工号', 'type' => 'string'], + 'GmtCreateTime' => ['title' => '这条记录的创建时间', 'type' => 'string'], + 'GmtModifyTime' => ['title' => '这条记录的上次修改时间', 'type' => 'string'], + ], + ], + 'AssignNodeSpec' => [ 'title' => '', - 'description' => 'The code source configurations returned when the ListCodeSources API operation is called.'."\n", - 'visibility' => 'public', + 'description' => '指定调度节点详情', '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' => [ + 'EnableAssignNode' => ['title' => '', 'type' => 'boolean', 'example' => 'true', 'backendName' => 'EnableAssignNode', 'description' => ''], + 'NodeNames' => ['title' => '', 'type' => 'string', 'example' => 'lingjxxxxxxxx', 'backendName' => 'NodeNames', 'description' => ''], + 'AntiAffinityNodeNames' => ['title' => '', 'type' => 'string', 'example' => 'lingjxxxxxxxx', 'backendName' => 'AntiAffinityNodeNames', 'description' => ''], + 'HyperNodes' => [ + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/HyperNodeSpec', 'description' => '', 'title' => '', 'example' => ''], + 'backendName' => 'HyperNodes', + 'description' => '', 'title' => '', - 'description' => 'The UID of the Alibaba Cloud user who creates the code source.'."\n", - 'visibility' => 'public', - 'type' => 'string', - 'example' => '115729017166****', - 'backendName' => 'UserId', + 'example' => '', ], - 'GmtCreateTime' => [ + 'AntiAffinityHyperNodes' => [ + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/HyperNodeSpec', 'description' => '', 'title' => '', 'example' => ''], + 'backendName' => 'AntiAffinityHyperNodes', + 'description' => '', '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', + 'example' => '', ], - 'GmtModifyTime' => [ + ], + 'example' => '', + ], + 'AssumeUserInfo' => [ + 'title' => '', + 'type' => 'object', + 'properties' => [ + 'SecurityToken' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'AccessKeyId' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'Type' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'Id' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + ], + 'description' => '', + 'example' => '', + ], + 'AutoscalingMetricSpec' => [ + 'type' => 'object', + 'properties' => [ + 'MetricName' => ['description' => 'The name of the metric for autoscaling. This can be a predefined or a custom metric.', 'type' => 'string', 'title' => '', 'example' => ''], + 'TargetValue' => ['description' => 'The target value for the specified metric. The autoscaling service tries to maintain the metric at or near this value.', 'type' => 'integer', 'title' => '', 'example' => '', 'format' => 'int32'], + 'StabilizationWindowSeconds' => ['description' => 'The cooldown period, in seconds, after a scaling activity. This prevents the service from initiating another scaling action before the effects of the previous one are observable, stabilizing resource fluctuations.', 'type' => 'integer', 'title' => '', 'example' => '', 'format' => 'int32'], + 'Tolerance' => ['description' => 'The acceptable deviation from the `TargetValue`, specified as a percentage string. A scaling action is triggered only if the metric value moves outside the range defined by the `TargetValue` and this tolerance. This prevents scaling actions based on minor fluctuations.', 'type' => 'string', 'title' => '', 'example' => ''], + ], + 'description' => 'Defines the metric used in an autoscaling policy.', + 'title' => '', + 'example' => '', + ], + 'AutoScalingSpec' => [ + 'type' => 'object', + 'properties' => [ + 'ScalingStrategy' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'MinReplicas' => ['title' => '', 'type' => 'integer', 'format' => 'int32', 'description' => '', 'example' => ''], + 'MaxReplicas' => ['title' => '', 'type' => 'integer', 'format' => 'int32', 'description' => '', 'example' => ''], + 'PodsToDelete' => [ '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', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'description' => '', + 'example' => '', ], + 'AutoscalingMetricSpec' => ['title' => '', '$ref' => '#/components/schemas/AutoscalingMetricSpec', 'description' => '', 'example' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'CodeSourceItem' => [ + 'title' => '', + 'description' => 'The code source configurations returned when the ListCodeSources API operation is called.'."\n", + 'type' => 'object', + 'properties' => [ + 'CodeRepo' => ['title' => '', 'description' => 'The URL of the code repository.'."\n", 'type' => 'string', 'example' => 'https://code.aliyun.com/pai-dlc/examples.git'], + 'Description' => ['title' => '', 'description' => 'The description of the code source.'."\n", 'type' => 'string', 'example' => 'code source of dlc examples'], + 'CodeRepoAccessToken' => ['title' => '', 'description' => 'The access token used to access the code repository.'."\n", 'type' => 'string', 'example' => 'xxxx'], + 'GmtModifyTime' => ['title' => '', 'description' => 'The time when the code source was modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-01-18T12:52:15Z'], + 'UserId' => ['title' => '', 'description' => 'The UID of the Alibaba Cloud user who creates the code source.'."\n", 'type' => 'string', 'example' => '115729017166****'], + 'CodeCommit' => ['title' => '', 'description' => 'The commit ID. If you configure this parameter when you call the CreateJob API operation, the commit is overwritten.'."\n", 'type' => 'string', 'example' => '44da109b59f8596152987eaa8f3b2487bb72ea63'], + 'DisplayName' => ['title' => '', 'description' => 'The name of the code source.'."\n", 'type' => 'string', 'example' => 'MyCodeSourceName1'], + 'CodeSourceId' => ['title' => '', 'description' => 'The ID of the code source.'."\n", 'type' => 'string', 'example' => 'code-20210111103721-********'], + '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", 'type' => 'string', 'example' => 'master'], + 'CodeRepoUserName' => ['title' => '', 'description' => 'The username used to access the private code repository.'."\n", 'type' => 'string', 'example' => 'user'], + 'GmtCreateTime' => ['title' => '', 'description' => 'The time when the code source was created. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-01-18T12:52:15Z'], + ], + 'example' => '', ], 'ContainerSpec' => [ - 'title' => 'ContainerSpec', + 'title' => '', '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', - ], + 'Name' => ['title' => '', 'description' => 'The name of the container.'."\n", 'type' => 'string', 'example' => 'data-init'], + 'Image' => ['title' => '', 'description' => 'The endpoint of the container image.'."\n", 'type' => 'string', 'example' => 'registry.cn-hangzhou.aliyuncs.com/pai-dlc/curl:v1.0.0'], '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', + 'items' => ['description' => 'The command line.'."\n", 'type' => 'string', 'example' => 'curl www.aliyun.com', 'title' => ''], + 'example' => '', ], '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', + 'items' => ['description' => 'The parameter.'."\n", 'type' => 'string', 'example' => '-v', 'title' => ''], + 'example' => '', ], + 'WorkingDir' => ['title' => '', 'description' => 'The working directory in the container.'."\n", 'type' => 'string', 'example' => '/root'], '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', + 'items' => ['description' => 'The environment.'."\n", '$ref' => '#/components/schemas/EnvVar', 'title' => '', 'example' => ''], + 'example' => '', ], - 'Resources' => [ + 'Resources' => ['title' => '', 'description' => 'The container resources.'."\n", '$ref' => '#/components/schemas/ResourceRequirements', 'example' => ''], + ], + 'example' => '', + ], + 'CredentialConfig' => [ + 'title' => '', + 'description' => 'A short description of struct.', + 'type' => 'object', + 'properties' => [ + 'EnableCredentialInject' => ['title' => '', 'description' => 'Specifies whether to enable credential injection.', 'type' => 'boolean', 'example' => ''], + 'AliyunEnvRoleKey' => ['title' => '', 'description' => 'The role identity key injected into environment variables.', 'type' => 'string', 'example' => ''], + 'CredentialConfigItems' => [ 'title' => '', - 'description' => 'The container resources.'."\n", - 'visibility' => 'public', - 'backendName' => 'Resources', - '$ref' => '#/components/schemas/ResourceRequirements', + 'description' => 'The list of credential configuration items.', + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/CredentialConfigItem', 'description' => '', 'title' => '', 'example' => ''], + 'example' => '', ], ], + 'example' => '', ], - 'DataJuicerConfig' => [ + 'CredentialConfigItem' => [ + 'title' => '', + 'type' => 'object', + 'properties' => [ + 'Key' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'Type' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'Roles' => [ + 'title' => '', + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/CredentialRole', 'description' => '', 'title' => '', 'example' => ''], + 'description' => '', + 'example' => '', + ], + ], + 'description' => '', + 'example' => '', + ], + 'CredentialRole' => [ + 'title' => '', + 'type' => 'object', + 'properties' => [ + 'RoleArn' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'RoleType' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'AssumeRoleFor' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'Policy' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'AssumeUserInfo' => ['$ref' => '#/components/schemas/AssumeUserInfo', 'description' => '', 'title' => '', 'example' => ''], + ], 'description' => '', - 'visibility' => 'Public', + 'example' => '', + ], + 'DataJuicerConfig' => [ + 'description' => 'The configuration for a DataJuicer task.', 'type' => 'object', 'properties' => [ 'ExecutionMode' => [ 'title' => '', - 'description' => '', - 'visibility' => 'Public', + 'description' => 'The execution mode.'."\n" + ."\n" + .'- standalone: Single node.'."\n" + ."\n" + .'- distributed: Distributed.', 'type' => 'string', 'required' => false, 'example' => 'standalone', - 'backendName' => 'ExecutionMode', - 'enum' => [ - 'standalone', - 'distributed', - ], + 'enum' => ['standalone', 'distributed'], ], 'CommandType' => [ 'title' => '', - 'description' => '', - 'visibility' => 'Public', + 'description' => 'The command type.'."\n" + ."\n" + .'- shell: A shell command.'."\n" + ."\n" + .'- config: The YAML configuration for DataJuicer.', 'type' => 'string', 'example' => 'config', - 'backendName' => 'CommandType', - 'enum' => [ - 'shell', - 'config', - ], + 'enum' => ['shell', 'config'], ], + 'EnableResourceEstimation' => ['title' => '', 'description' => 'Specifies whether to enable resource estimation.', 'type' => 'boolean', 'example' => ''], + 'ResourceLimit' => ['description' => '', 'title' => '', 'example' => '', '$ref' => '#/components/schemas/ResourceLimit'], ], + 'title' => '', + 'example' => '', ], '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' => [ + 'DataSourceType' => ['title' => '', 'description' => 'The data source type. Only File Storage NAS (NAS) file systems are supported.'."\n", 'type' => 'string', 'example' => 'NAS'], + 'DataSourceId' => ['title' => '', 'description' => 'The data source ID.'."\n", 'type' => 'string', 'example' => 'data-20210114104214-xxxxxxx'], + 'DisplayName' => ['title' => '', 'description' => 'The data source name.'."\n", 'type' => 'string', 'example' => 'nas-data'], + 'Description' => ['title' => '', 'description' => 'The data source description.'."\n", 'type' => 'string', 'example' => 'data source of dlc examples'], + 'FileSystemId' => ['title' => '', 'description' => 'The ID of the NAS file system. For more information, see [Alibaba Cloud documentation](~~185212~~).', 'type' => 'string', 'example' => '1ca404****'], + 'Path' => ['title' => '', 'description' => 'The path of the Alibaba Cloud Object Storage Service (OSS) file system.'."\n", 'type' => 'string', 'example' => 'oss://mybucket/path/to/dir'], + 'Endpoint' => ['title' => '', 'description' => 'The endpoint of the Alibaba Cloud OSS file system.'."\n", 'type' => 'string', 'example' => 'oss-cn-beijing-internal.aliyuncs.com'], + 'Options' => ['title' => '', 'description' => 'The configuration options of the Alibaba Cloud OSS file system.'."\n", 'type' => 'string', 'example' => '{"key": "value"}'], + 'MountPath' => ['title' => '', 'description' => 'The local path of the container that is attached to the runtime of the task.'."\n", 'type' => 'string', 'example' => '/root/data/'], + 'UserId' => ['title' => '', 'description' => 'The ID of the Alibaba Cloud account that creates the data source.', 'type' => 'string', 'example' => '123456789'], + 'GmtCreateTime' => ['title' => '', 'description' => 'The time when the data source was created. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-01-12T14:35:00Z'], + 'GmtModifyTime' => ['title' => '', 'description' => 'The time when the data source was last modified. The time is displayed in UTC.'."\n", 'type' => 'string', 'example' => '2021-01-12T14:36:00Z'], + ], + 'example' => '', + ], + 'DebuggerConfig' => [ + 'title' => 'debugger参数配置项', + 'description' => 'debug配置参数项', + 'type' => 'object', + 'properties' => [ + 'DebuggerConfigId' => ['title' => '系统生成的debug config唯一ID', 'type' => 'string', 'example' => 'dc-vf9lowjt3pso'], + 'DisplayName' => ['title' => '模板配置项名称', 'type' => 'string', 'example' => 'Pytorch Experiment Config'], + 'Description' => ['title' => '配置项描述', 'type' => 'string', 'example' => '这是一个Pytorch的基础配置模板'], + 'GmtCreateTime' => ['title' => '创建时间(UTC)', 'type' => 'string', 'example' => '2021-01-12T14:35:00Z'], + 'GmtModifyTime' => ['title' => '修改时间(UTC)', 'type' => 'string', 'example' => '2021-01-12T14:36:00Z'], + 'Content' => ['title' => '配置项细节,json结构', 'type' => 'string', 'example' => '{\\"description\\":\\"这是一个新的pytorchjob模板\\"}'], + ], + ], + 'DownloadJobResult' => [ + 'type' => 'object', + 'properties' => [ + 'DownloadJobId' => ['description' => 'The ID of the download job.', 'type' => 'string', 'title' => '', 'example' => ''], + 'UserId' => ['description' => 'The ID of the user who created the job.', 'type' => 'string', 'title' => '', 'example' => ''], + 'TenantId' => ['description' => 'The ID of the tenant that the job belongs to.', 'type' => 'string', 'title' => '', 'example' => ''], + 'WorkspaceId' => ['description' => 'The ID of the workspace where the job was created.', 'type' => 'string', 'title' => '', 'example' => ''], + 'Type' => ['description' => 'The type of the download job.', 'type' => 'string', 'title' => '', 'example' => ''], + 'SourceJobId' => ['description' => 'The ID of the source job whose results are downloaded.', 'type' => 'string', 'title' => '', 'example' => ''], + 'StartTime' => ['description' => 'The start time of the download job, in UTC format.', 'type' => 'string', 'title' => '', 'example' => ''], + 'EndTime' => ['description' => 'The completion time of the download job, in UTC format.', 'type' => 'string', 'title' => '', 'example' => ''], + 'LogCount' => ['description' => 'The number of log entries included in the download.', 'type' => 'integer', 'title' => '', 'example' => '', 'format' => 'int32'], + 'Status' => ['description' => 'The status of the download job. Valid values: `Running`, `Succeeded`, and `Failed`.', 'type' => 'string', 'title' => '', 'example' => ''], + 'DownloadUrl' => ['description' => 'A temporary, pre-signed URL for downloading the result file.', 'type' => 'string', 'title' => '', 'example' => ''], + 'UrlExpireTime' => ['description' => 'The time when the download URL expires, in UTC format.', 'type' => 'string', 'title' => '', 'example' => ''], + 'GmtCreated' => ['description' => 'The creation time of the download job, in UTC format.', 'type' => 'string', 'title' => '', 'example' => ''], + 'GmtModified' => ['description' => 'The last modification time of the download job, in UTC format.', 'type' => 'string', 'title' => '', 'example' => ''], + 'DisplayName' => ['description' => 'The display name of the download job.', 'type' => 'string', 'title' => '', 'example' => ''], + 'PodIds' => [ + 'type' => 'array', + 'items' => ['description' => 'A pod ID.', 'type' => 'string', 'title' => '', 'example' => ''], + 'description' => 'The IDs of the pods for the source job.', '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', + 'example' => '', ], - 'GmtModifyTime' => [ + 'PodUids' => [ + 'type' => 'array', + 'items' => ['description' => 'A pod UID.', 'type' => 'string', 'title' => '', 'example' => ''], + 'description' => 'The UIDs of the pods for the source job.', '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', + 'example' => '', ], + 'FileType' => ['description' => 'The type of file to download, such as `logs` or `output`.', 'type' => 'string', 'title' => '', 'example' => ''], ], + 'description' => 'Details of the download job.', + 'title' => '', + 'example' => '', ], 'EcsSpec' => [ - 'title' => 'A short description of struct', + 'title' => '', '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', - ], + 'InstanceType' => ['title' => '', 'description' => 'The instance type.'."\n", 'type' => 'string', 'example' => 'ecs.gn6e-c12g1.3xlarge'], + 'AcceleratorType' => ['title' => '', 'description' => 'The accelerator type. Valid values:'."\n" + ."\n" + .'* CPU'."\n" + .'* GPU'."\n", 'type' => 'string', 'example' => 'GPU'], + 'Cpu' => ['title' => '', 'description' => 'The number of CPU cores.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '12'], + 'Gpu' => ['title' => '', 'description' => 'The number of GPUs.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'GpuType' => ['title' => '', 'description' => 'The GPU type.'."\n", 'type' => 'string', 'example' => 'NVIDIA v100'], + 'Memory' => ['title' => '', 'description' => 'The memory size. Unit: MiB or GiB.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '92'], + 'GpuMemory' => ['title' => '', 'description' => 'The GPU memory size.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'IsAvailable' => ['title' => '', 'description' => 'Indicates whether the instance type is available. Valid values:'."\n" + ."\n" + .'* true'."\n" + .'* false'."\n", 'type' => 'boolean', 'example' => 'true'], + 'ResourceType' => ['title' => '', 'description' => 'The resource type. Valid values:'."\n" + ."\n" + .'* ECS'."\n" + .'* Lingjun'."\n", 'type' => 'string', 'example' => 'ECS'], + 'DefaultGPUDriver' => ['title' => '', 'description' => 'The default GPU driver version.'."\n", 'type' => 'string', 'example' => '470.199.02'], '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', + 'items' => ['description' => 'The GPU driver version.'."\n", 'type' => 'string', 'example' => '470.199.02, 535.54.03', 'title' => ''], + 'example' => '', ], + 'SpotStockStatus' => ['title' => '', 'description' => 'The inventory status of preemptible instance.'."\n", 'type' => 'string', 'example' => 'WithStock'], + 'NonProtectSpotDiscount' => ['title' => '', 'description' => 'The discount on the current price of the preemptible instance.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '0.1'], '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', + 'items' => ['description' => 'The billing method. Valid values:'."\n" + ."\n" + .'* Spot'."\n" + .'* PostPaid'."\n", 'type' => 'string', 'example' => 'Spot,PostPaid', 'title' => ''], + 'example' => '', ], ], + 'example' => '', + ], + 'ElasticSpotSpec' => [ + 'type' => 'object', + 'properties' => [ + 'InstanceType' => ['title' => '', 'description' => 'The spot instance type.', 'type' => 'string', 'example' => ''], + 'SpotPriceLimit' => ['title' => '', 'description' => 'The maximum hourly price you are willing to pay for a spot instance. If omitted, the on-demand price is the default.', 'type' => 'number', 'example' => '', 'format' => 'double'], + 'SpotDiscountLimit' => ['title' => '', 'description' => 'The maximum discount percentage for the spot instance. The system does not select an instance if its discount exceeds this limit. For example, if you set this parameter to `90`, the system considers only instances with a discount of 90% or less.', 'type' => 'number', 'example' => '', 'format' => 'double'], + 'SpotStrategy' => ['title' => '', 'description' => 'The strategy for allocating spot instances. Valid values:'."\n" + ."\n" + .'- `LowestPrice`: Launches instances from the spot capacity pool offering the lowest price. This is the default strategy.'."\n" + ."\n" + .'- `CapacityOptimized`: Launches instances from the spot capacity pool offering optimal capacity.', 'type' => 'string', 'example' => ''], + ], + 'description' => 'Configuration for creating spot instances.', + 'title' => '', + 'example' => '', ], 'EnvVar' => [ - 'title' => 'EnvVar', + 'title' => '', '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', - ], + 'Name' => ['title' => '', 'description' => 'The name of the environment variable.'."\n", 'type' => 'string', 'example' => 'ENABLE_DEBUG'], + 'Value' => ['title' => '', 'description' => 'The value of the environment variable.'."\n", 'type' => 'string', 'example' => 'true'], + ], + 'example' => '', + ], + 'EventInfo' => [ + 'title' => 'A short description of struct', + 'description' => 'DLC任务的事件信息', + 'type' => 'object', + 'properties' => [ + 'PodId' => ['title' => '事件所属的Pod的Id', 'type' => 'string'], + 'PodUid' => ['title' => '事件所属的Pod的Uid', 'type' => 'string'], + 'Id' => ['title' => '事件的ID信息,用于获取相关上下文', 'type' => 'string'], + 'Time' => ['title' => '事件的时间戳信息,该时间为UTC时间', 'type' => 'string'], + 'Content' => ['title' => '事件的文本内容', 'type' => 'string'], ], ], 'ExtraPodSpec' => [ - 'title' => 'ExtraPodSpec', - 'description' => 'The additional pod configurations.'."\n", - 'visibility' => 'public', + 'title' => '', + 'description' => 'Additional pod configurations.', 'type' => 'object', 'properties' => [ + 'SideCarContainers' => [ + 'title' => '', + 'description' => 'A list of sidecar containers.', + 'type' => 'array', + 'items' => ['description' => 'Configuration for a sidecar container.', '$ref' => '#/components/schemas/ContainerSpec', 'title' => '', 'example' => ''], + 'example' => '', + ], 'InitContainers' => [ 'title' => '', - 'description' => 'The containers to be initialized.'."\n", - 'visibility' => 'public', + 'description' => 'A list of init containers that run to completion before the main container starts.', 'type' => 'array', - 'items' => [ - 'description' => 'The container configurations.'."\n", - 'visibility' => 'public', - 'extendType' => 'true', - '$ref' => '#/components/schemas/ContainerSpec', - ], - 'backendName' => 'InitContainers', - 'itemName' => 'InitContainers', + 'items' => ['description' => 'Configuration for an init container.', '$ref' => '#/components/schemas/ContainerSpec', 'title' => '', 'example' => ''], + 'example' => '', ], - 'PodAnnotations' => [ + 'PodLabels' => [ 'title' => '', - 'description' => 'The pod annotations.'."\n", - 'visibility' => 'public', + 'description' => 'Key-value pairs to apply to the pod as labels. Use labels to organize and select pods.', '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', + 'additionalProperties' => ['description' => 'The value for the label.', 'type' => 'string', 'example' => 'example-lable', 'title' => ''], + 'example' => '', ], - 'Lifecycle' => [ - 'description' => 'The lifecycle object.'."\n", - 'visibility' => 'Public', - 'backendName' => 'Lifecycle', - '$ref' => '#/components/schemas/Lifecycle', - ], - 'MainContainerSecurityContext' => [ + 'PodAnnotations' => [ 'title' => '', - 'description' => '', - 'visibility' => 'Private', - 'backendName' => 'MainContainerSecurityContext', - '$ref' => '#/components/schemas/SecurityContext', + 'description' => 'Key-value pairs to apply to the pod as annotations. Use annotations to attach arbitrary, non-identifying metadata.', + 'type' => 'object', + 'deprecated' => true, + 'additionalProperties' => ['description' => 'The value for the annotation.', 'type' => 'string', 'example' => 'example-annotation', 'title' => ''], + 'example' => '', ], 'SharedVolumeMountPaths' => [ 'title' => '', - 'description' => 'The local paths shared between containers.'."\n", - 'visibility' => 'public', + 'description' => 'A list of local directory paths to mount and share among all containers in the pod.', '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', + 'items' => ['description' => 'A shared local directory path.', 'type' => 'string', 'example' => '/root/share/', 'title' => ''], + 'example' => '', ], + 'Lifecycle' => ['description' => 'Defines lifecycle hooks for the main container.', '$ref' => '#/components/schemas/Lifecycle', 'title' => '', 'example' => ''], + 'MainContainerSecurityContext' => ['title' => '', 'description' => 'Defines the security context for the main container.', '$ref' => '#/components/schemas/SecurityContext', 'example' => ''], ], + 'example' => '', ], - 'ImageConfig' => [ + 'FreeResourceItem' => [ + 'title' => '空闲资源信息', + 'type' => 'object', + 'properties' => [ + 'FreeResourceId' => ['title' => '空闲资源Id', 'type' => 'string', 'example' => 'freeres-whateversth'], + 'RegionID' => ['title' => '域Id', 'type' => 'string', 'example' => 'inner'], + 'ClusterID' => ['title' => '集群Id', 'type' => 'string'], + 'ClusterName' => ['title' => '集群名', 'type' => 'string'], + 'ResourceType' => ['title' => '资源类型', 'type' => 'string', 'example' => 'cpu'], + 'AvailableNumber' => ['title' => '资源数量', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'GmtCreateTime' => ['title' => '创建时间', 'type' => 'string', 'example' => '2021-01-18T12:52:15Z'], + 'GmtModifyTime' => ['title' => '修改时间', 'type' => 'string', 'example' => '2021-01-18T12:52:15Z'], + ], + ], + 'GPUDetail' => [ 'title' => 'A short description of struct', - 'description' => 'The private image configurations.'."\n", - 'visibility' => 'public', + 'description' => 'GPU详情', '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', - ], + 'GPU' => ['title' => 'GPU卡数', 'type' => 'string'], + 'GPUType' => ['title' => 'GPU卡型', 'type' => 'string', 'example' => 'Tesla-V100-32G'], + 'GPUTypeFullName' => ['title' => 'GPU卡型全名', 'type' => 'string', 'example' => 'nvidia.com/gpu-tesla-v100-sxm2-16gb'], ], ], + 'HyperNodeSpec' => [ + 'type' => 'object', + 'properties' => [ + 'HyperNodeName' => ['type' => 'string', 'backendName' => 'HyperNodeName', 'description' => '', 'title' => '', 'example' => ''], + 'NodeNames' => ['type' => 'string', 'backendName' => 'NodeNames', 'description' => '', 'title' => '', 'example' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'ImageConfig' => [ + 'title' => '', + 'description' => 'Private image configuration', + 'type' => 'object', + 'properties' => [ + 'DockerRegistry' => ['title' => '', 'description' => 'Image repository address', 'type' => 'string', 'example' => 'docker****registry.com'], + 'Username' => ['title' => '', 'description' => 'Image repository username', 'type' => 'string', 'example' => ' username'], + 'Password' => ['title' => '', 'description' => 'Image repository password', 'type' => 'string', 'example' => 'password'], + 'Auth' => ['title' => '', 'description' => 'Image repository authentication information', 'type' => 'string', 'example' => ''], + ], + 'example' => '', + ], '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', - ], + 'ImageTag' => ['title' => '', 'description' => 'The tag of the docker image.'."\n", 'type' => 'string', 'example' => 'tensorflow-training:2.3-cpu-py36-ubuntu18.04'], + 'ImageUrl' => ['title' => '', 'description' => 'The image URL address.'."\n", 'type' => 'string', 'example' => 'registry.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:2.3-cpu-py36-ubuntu18.04'], + 'ImageUrlVpc' => ['title' => '', 'description' => 'The VPC endpoint of the image URL. This address provides faster access speed.'."\n", 'type' => 'string', 'example' => 'registry-vpc.cn-beijing.aliyuncs.com/pai-dlc/tensorflow-training:2.3-cpu-py36-ubuntu18.04'], + 'ImageProviderType' => ['title' => '', 'description' => 'The image type. Valid values:'."\n" + ."\n" + .'* Community'."\n" + .'* PAI'."\n", 'type' => 'string', 'example' => 'Community'], + 'AcceleratorType' => ['title' => '', 'description' => 'The type of the image accelerator. Valid values:'."\n" + ."\n" + .'* cpu'."\n" + .'* gpu'."\n", 'type' => 'string', 'example' => 'gpu'], + 'Framework' => ['title' => '', 'description' => 'The computing framework that is encapsulated by the image. Valid values:'."\n" + ."\n" + .'* TFJob'."\n" + .'* PyTorchJob'."\n", 'type' => 'string', 'example' => 'PyTorchJob'], + 'AuthorId' => ['title' => '', 'description' => 'The creator of the image.'."\n", 'type' => 'string', 'example' => 'ken'], + ], + 'example' => '', + ], + 'JobElasticSpec' => [ + 'title' => '', + 'type' => 'object', + 'properties' => [ + 'EnableElasticTraining' => ['title' => '', 'type' => 'boolean', 'example' => 'true', 'description' => ''], + 'MinParallelism' => ['title' => '', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'description' => ''], + 'MaxParallelism' => ['title' => '', 'type' => 'integer', 'format' => 'int32', 'example' => '8', 'description' => ''], + 'AIMasterType' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'AIMasterDockerImage' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'EnablePsJobElasticWorker' => ['title' => '', 'type' => 'boolean', 'description' => '', 'example' => ''], + 'EnableAIMaster' => ['title' => '', 'type' => 'boolean', 'description' => '', 'example' => ''], + 'EnablePsResourceEstimate' => ['title' => '', 'type' => 'boolean', 'example' => 'true', 'description' => ''], + 'EnablePsJobElasticPS' => ['title' => '', 'type' => 'boolean', 'example' => 'true', 'description' => ''], + 'PSMinParallelism' => ['title' => '', 'type' => 'integer', 'format' => 'int32', 'example' => '4', 'description' => ''], + 'PSMaxParallelism' => ['title' => '', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'description' => ''], + 'ElasticStrategy' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'EnableEDP' => ['title' => '', 'type' => 'boolean', 'example' => 'true', 'description' => ''], + 'EDPMaxParallelism' => ['title' => '', 'type' => 'integer', 'format' => 'int32', 'example' => '16', 'description' => ''], + 'EDPMinParallelism' => ['title' => '', 'type' => 'integer', 'format' => 'int32', 'example' => '8', 'description' => ''], ], + 'description' => '', + 'example' => '', ], 'JobItem' => [ 'title' => '', - 'description' => 'The job details.'."\n", - 'visibility' => 'public', + 'description' => 'The job details.', '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', - ], + 'JobId' => ['title' => '', 'description' => 'The job ID.', 'type' => 'string', 'example' => 'dlc-20210126170216-********'], + 'CredentialConfig' => ['description' => 'The access credential configuration associated with the job.', '$ref' => '#/components/schemas/CredentialConfig', 'title' => '', 'example' => ''], + 'JobType' => ['title' => '', 'description' => 'The job type. Valid values:'."\n" + .'- TFJob'."\n" + .'- PyTorchJob'."\n" + .'- MPIJob'."\n" + .'- XGBoostJob'."\n" + .'- OneFlowJob'."\n" + .'- ElasticBatchJob'."\n" + .'- RayJob'."\n" + .'- SlurmJob', 'type' => 'string', 'example' => 'TFJob'], + 'DisplayName' => ['title' => '', 'description' => 'The job name.', 'type' => 'string', 'example' => 'tf-mnist-test'], 'UserVpc' => [ 'title' => '', - 'description' => 'The user VPC.'."\n", - 'visibility' => 'Public', + 'description' => 'The user VPC.', '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', - ], + 'VpcId' => ['title' => '', 'description' => 'VPC ID', 'type' => 'string', 'example' => 'vpc-2zed***'], + 'SwitchId' => ['title' => '', 'description' => 'The vSwitch ID.', 'type' => 'string', 'example' => 'vsw-2ze6***'], + 'SecurityGroupId' => ['title' => '', 'description' => 'The security group ID.', 'type' => 'string', 'example' => 'sg-2zeef***'], 'ExtendedCidrs' => [ 'title' => '', - 'description' => 'The extended CIDR blocks that need to be connected.'."\n", - 'visibility' => 'Public', + 'description' => 'The extended CIDR blocks to connect.', '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', + 'items' => ['description' => 'The CIDR block of the network segment, such as 10.2.0.0/16.', 'type' => 'string', 'example' => '10.2.0.0/16', 'title' => ''], + 'example' => '', ], + 'DefaultRoute' => ['title' => '', 'description' => 'The default routing. Valid values:'."\n" + .'- eth0: uses the default network interface controller (NIC) to access external networks through the public gateway.'."\n" + .'- eth1: uses the user elastic network interfaces (ENIs) to access external networks through the private gateway.', 'type' => 'string', 'example' => 'eth0'], ], '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', ], + 'UserId' => ['title' => '', 'description' => 'The UID of the user who owns the job.', 'type' => 'string', 'example' => '123456789'], + 'Username' => ['title' => '', 'description' => 'The username of the user who submitted the job.', 'type' => 'string', 'example' => 'pai-dlc-role'], + 'Status' => ['title' => '', 'description' => 'The job status. Valid values:'."\n" + .'- Succeeded'."\n" + .'- Failed', 'type' => 'string', 'example' => 'Stopped'], + 'WorkspaceId' => ['title' => '', 'description' => 'The ID of the workspace to which the job belongs.', 'type' => 'string', 'example' => '268'], + 'WorkspaceName' => ['title' => '', 'description' => 'The name of the workspace to which the job belongs.', 'type' => 'string', 'example' => 'dlc-workspace'], + 'ResourceId' => ['title' => '', 'description' => 'The ID of the resource group in which the job runs.', 'type' => 'string', 'example' => 'dlc-quota'], + 'ResourceLevel' => ['title' => '', 'description' => 'The resource level of the job at runtime.', 'type' => 'string', 'example' => 'L0'], + 'ReasonCode' => ['title' => '', 'description' => 'The reason code for the current job status. Valid values:'."\n" + .'- InvalidParameter'."\n" + .'- JobSucceeded'."\n" + .'- JobStoppedByUser', 'type' => 'string', 'example' => 'JobStoppedByUser'], + 'ReasonMessage' => ['title' => '', 'description' => 'The detailed description of the reason for the current job status.', 'type' => 'string', 'example' => 'Job is stopped by user.'], 'JobSpecs' => [ 'title' => '', - 'description' => 'The node configurations of the job run time.'."\n", - 'visibility' => 'public', + 'description' => 'The node configurations of the job at runtime.', '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', + 'items' => ['description' => 'The node configuration.', '$ref' => '#/components/schemas/JobSpec', 'title' => '', 'example' => ''], + 'example' => '', ], + 'UserCommand' => ['title' => '', 'description' => 'The startup command that runs on each node of the job.', 'type' => 'string', 'example' => 'python /root/code/mnist.py'], 'DataSources' => [ 'title' => '', - 'description' => 'A list of all data sources used by the job.'."\n", - 'visibility' => 'public', + 'description' => 'The list of all datasource configs used by this job.', 'type' => 'array', 'items' => [ - 'description' => 'The data sources.'."\n", - 'visibility' => 'public', + 'description' => 'The data source list.', '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', - ], + 'DataSourceId' => ['title' => '', 'description' => 'The datasource config ID.', 'type' => 'string', 'example' => 'data-20210114104214-********'], + 'MountPath' => ['title' => '', 'description' => 'The local mount path of the data source.', 'type' => 'string', 'example' => '/mnt/data'], ], - 'extendType' => 'true', + 'title' => '', + 'example' => '', ], - 'backendName' => 'DataSources', - 'itemName' => 'DataSources', + 'example' => '', ], 'CodeSource' => [ 'title' => '', - 'description' => 'The code source used by the job.'."\n", - 'visibility' => 'public', + 'description' => 'The code source configuration used by this job.', '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', - ], + 'CodeSourceId' => ['title' => '', 'description' => 'The code source configuration ID.', 'type' => 'string', 'example' => 'code-20210111103721-********'], + 'Branch' => ['title' => '', 'description' => 'The code repository branch.', 'type' => 'string', 'example' => 'master'], + 'Commit' => ['title' => '', 'description' => 'The commit ID of the code repository used for this job.', 'type' => 'string', 'example' => '44da109b59f8596152987eaa8f3b2487bb******'], + 'MountPath' => ['title' => '', 'description' => 'The local mount path of the code.', 'type' => 'string', 'example' => '/mnt/data'], ], - 'backendName' => 'CodeSource', + 'example' => '', ], 'ThirdpartyLibs' => [ 'title' => '', - 'description' => 'The third-party Python libraries required for the job.'."\n", - 'visibility' => 'public', + 'description' => 'The list of third-party Python libraries installed before the job runs.', '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', + 'items' => ['description' => 'A Python third-party library.', 'type' => 'string', 'example' => 'numpy==1.16.1', 'title' => ''], + 'example' => '', ], 'NodeNames' => [ 'title' => '', - 'description' => 'The node names.'."\n", - 'visibility' => 'Public', + 'description' => 'The node names.', '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', + 'items' => ['description' => 'The node name.', 'type' => 'string', 'example' => 'i-a', 'title' => ''], + 'example' => '', ], + 'ThirdpartyLibDir' => ['title' => '', 'description' => 'The directory where the third-party library file Requirements.txt is located.', 'type' => 'string', 'example' => '/root/code/'], 'Envs' => [ 'title' => '', - 'description' => 'The environment variables that are injected into the job run time.'."\n", - 'visibility' => 'public', + 'description' => 'The environment variables injected at job runtime.', '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', + 'additionalProperties' => ['description' => 'The key and value of the environment variable.', 'type' => 'string', 'example' => 'ENABLE_DEBUG_MODE', 'title' => ''], + 'example' => '', ], 'SystemEnvs' => [ 'title' => '', - 'description' => 'The system environment variables configured.'."\n", - 'visibility' => 'Public', + 'description' => 'The system environment variable configurations.', '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' => [ + 'additionalProperties' => ['description' => 'The system environment variable configurations.', 'type' => 'string', 'example' => 'ENABLE_DEBUG_MODE', 'title' => ''], + 'example' => '', + ], + 'GmtCreateTime' => ['title' => '', 'description' => 'The time when the job was created, in UTC format.', 'type' => 'string', 'example' => '2025-04-16T07:25:34Z'], + 'GmtSubmittedTime' => ['title' => '', 'description' => 'The time when the job was submitted, in UTC format.', 'type' => 'string', 'example' => '2025-04-16T07:26:14Z'], + 'GmtRunningTime' => ['title' => '', 'description' => 'The time when the job started running, in UTC format.', 'type' => 'string', 'example' => '2025-04-16T07:26:41Z'], + 'GmtSuccessedTime' => ['title' => '', 'description' => 'The time when the job completed successfully, in UTC format.', 'type' => 'string', 'example' => '2025-04-16T07:28:20Z'], + 'GmtStoppedTime' => ['title' => '', 'description' => 'The time when the job was stopped, in UTC format.', 'type' => 'string', 'example' => 'null'], + 'GmtFailedTime' => ['title' => '', 'description' => 'The time when the job failed, in UTC format.', 'type' => 'string', 'example' => 'null'], + 'GmtFinishTime' => ['title' => '', 'description' => 'The time when the job finished, in UTC format.', 'type' => 'string', 'example' => '2025-04-16T07:28:20Z'], + 'GmtModifiedTime' => ['title' => '', 'description' => 'The time when the job was last modified, in UTC format.', 'type' => 'string', 'example' => '2025-04-16T07:28:22Z'], + 'Duration' => ['title' => '', 'description' => 'The job running duration, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '243'], + 'JobMaxRunningTimeMinutes' => ['title' => '', 'description' => 'The maximum running duration of the job.', 'type' => 'integer', 'format' => 'int64', 'example' => '0'], + 'Settings' => ['title' => '', 'description' => 'The additional parameters of the job.', '$ref' => '#/components/schemas/JobSettings', 'example' => ''], + 'EnabledDebugger' => ['title' => '', 'description' => 'Indicates whether Debugger analysis is enabled.', 'type' => 'boolean', 'example' => 'false'], + 'IsDeleted' => ['title' => '', 'description' => 'Indicates whether the job is deleted.', 'type' => 'boolean', 'example' => 'false'], + 'EnablePreemptibleJob' => ['title' => '', 'description' => 'Indicates whether PreemptibleJob is enabled.', 'type' => 'boolean', 'example' => 'false'], + 'ResourceName' => ['title' => '', 'description' => 'The name of the resource on which the job runs.', 'type' => 'string', 'example' => 'my_resource_group'], + 'WorkingDir' => ['title' => '', 'description' => 'The working directory.', 'type' => 'string', 'example' => '/mnt/data'], + 'UserScript' => ['title' => '', 'description' => 'The user script.', 'type' => 'string', 'example' => 'ls '], + 'RestartTimes' => ['title' => '', 'description' => 'The number of times the job has been restarted.', 'type' => 'string', 'example' => '1'], + 'RequestCPU' => ['title' => '', 'description' => 'The requested CPU resources.', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'RequestMemory' => ['title' => '', 'description' => 'The requested memory resources.', 'type' => 'string', 'example' => '1Gi'], + 'ResourceQuotaName' => ['title' => '', 'description' => 'The resource quota name.', 'type' => 'string', 'example' => 'test'], + 'RequestGPU' => ['title' => '', 'description' => 'The requested GPU resources.', 'type' => 'string', 'example' => '1'], + 'NodeCount' => ['title' => '', 'description' => 'The number of nodes.', 'type' => 'string', 'example' => '1'], + 'Priority' => ['title' => '', 'description' => 'The job priority.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'SubStatus' => ['title' => '', 'description' => 'The job substatus, such as the preemption retry status.', 'type' => 'string', 'example' => 'Restarting'], + 'UseOversoldResource' => ['title' => '', 'description' => 'Indicates whether the job uses idle resources.', 'type' => 'boolean', 'example' => 'false'], + 'ResourceType' => ['title' => '', 'description' => 'The resource type. Valid values: ECS, Lingjun, and ACS.', 'type' => 'string', 'example' => 'ECS'], + 'Accessibility' => ['title' => '', 'description' => 'The visibility.', 'type' => 'string', 'example' => 'PUBLIC'], + 'ClusterId' => ['title' => '', 'description' => 'The cluster ID.', 'type' => 'string', 'example' => '****1316721349****'], + 'TenantId' => ['title' => '', 'description' => 'The tenant ID.', 'type' => 'string', 'example' => '****93955616****'], + 'StatusHistory' => [ 'title' => '', - 'description' => 'The cluster ID.'."\n", - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '****1316721349****', - 'backendName' => 'ClusterId', + 'description' => 'The job status transition history.', + 'type' => 'array', + 'items' => ['description' => 'The job status transition entry.', '$ref' => '#/components/schemas/StatusTransitionItem', 'title' => '', 'example' => ''], + 'example' => '', ], - 'TenantId' => [ + 'ElasticSpec' => ['description' => 'The elastic job parameters.', '$ref' => '#/components/schemas/JobElasticSpec', 'title' => '', 'example' => ''], + 'Pods' => [ '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', + 'description' => 'The pods.', 'type' => 'array', - 'items' => [ - 'description' => 'The historical status of the job.'."\n", - 'visibility' => 'Public', - 'extendType' => 'true', - '$ref' => '#/components/schemas/StatusTransitionItem', - ], - 'backendName' => 'StatusHistory', + 'items' => ['description' => 'The detailed information about the pod.', '$ref' => '#/components/schemas/PodItem', 'title' => '', 'example' => ''], + 'example' => '', ], - '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', + 'TemplateId' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'TemplateName' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'JobReplicaStatuses' => [ 'type' => 'array', - 'items' => [ - 'description' => 'The details of the pod.'."\n", - 'visibility' => 'Public', - 'extendType' => 'true', - '$ref' => '#/components/schemas/PodItem', - ], - 'backendName' => 'Pods', + 'items' => ['description' => '', 'title' => '', 'example' => '', '$ref' => '#/components/schemas/JobReplicaStatus'], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'SchedulingStrategy' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'RetryCount' => ['type' => 'integer', 'description' => '', 'title' => '', 'example' => '', 'format' => 'int32'], ], + 'example' => '', + ], + 'JobReplicaStatus' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The type of the job replica.', 'type' => 'string', 'title' => '', 'example' => ''], + 'Active' => ['description' => 'The number of active pods for this replica type.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => ''], + 'EstimatedPodCount' => ['description' => 'The estimated number of pods for this replica type, used for auto scaling.', 'type' => 'integer', 'format' => 'int64', 'title' => '', 'example' => ''], + 'EstimatedAutoScalingSpec' => ['description' => 'The estimated auto scaling specification.', '$ref' => '#/components/schemas/AutoScalingSpec', 'title' => '', 'example' => ''], + 'EstimatedResourceConfig' => ['description' => 'The estimated resource configuration.', '$ref' => '#/components/schemas/ResourceConfig', 'title' => '', 'example' => ''], + 'Queuing' => ['description' => 'The number of queued pods.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => ''], + 'Dequeued' => ['description' => 'The number of dequeued pods.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => ''], + 'CurrentSpotInstanceType' => ['description' => 'The type of spot instance in use, if any.', 'type' => 'string', 'title' => '', 'example' => ''], + ], + 'description' => 'The status of a job replica.', + 'title' => '', + 'example' => '', ], 'JobSettings' => [ 'title' => '', - 'description' => 'The additional parameter configurations.'."\n", - 'visibility' => 'public', + 'description' => 'The additional parameter settings.', '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' => [ + 'BusinessUserId' => ['title' => '', 'description' => 'The user ID associated with the job.', 'type' => 'string', 'example' => '16****'], + 'Caller' => ['title' => '', 'description' => 'The caller.', 'type' => 'string', 'example' => 'SilkFlow'], + 'Tags' => [ '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', - ], + 'description' => 'The custom tags.', + 'type' => 'object', + 'additionalProperties' => ['description' => '标签。', 'type' => 'string', 'example' => 'key:value', 'title' => ''], + 'example' => '', + ], + 'PipelineId' => ['title' => '', 'description' => 'The workflow ID.', 'type' => 'string', 'example' => 'pid-12****'], + 'EnableTideResource' => ['title' => '', 'description' => 'Specifies whether the job is allowed to use tidal resources. Valid values:'."\n" + .'- true'."\n" + .'- false.', 'type' => 'boolean', 'example' => 'true'], + 'EnableErrorMonitoringInAIMaster' => ['title' => '', 'description' => 'Specifies whether to enable fault tolerance monitoring for the job. Valid values:'."\n" + .'- true'."\n" + .'- false.', 'type' => 'boolean', 'example' => 'false'], + 'ErrorMonitoringArgs' => ['title' => '', 'description' => 'The configuration parameters for fault tolerance monitoring after it is enabled. For example, you can specify whether to enable log hang-based detection.', 'type' => 'string', 'example' => '--enable-log-hang-detection true'], + 'EnableRDMA' => ['title' => '', 'description' => 'Specifies whether the job is allowed to use RDMA. Valid values:'."\n" + .'- true'."\n" + .'- false.', 'type' => 'boolean', 'example' => 'true'], + 'EnableOssAppend' => ['title' => '', 'description' => 'Specifies whether OSS append writes are allowed. Valid values:'."\n" + .'- true'."\n" + .'- false.', 'type' => 'boolean', 'example' => 'true'], + 'OversoldType' => ['title' => '', 'description' => 'The oversold resource usage mode for the job (not accepted, acceptable, or only accepted).', 'type' => 'string', 'example' => 'AcceptQuotaOverSold'], + 'AdvancedSettings' => ['title' => '', 'description' => 'The additional advanced parameter settings.', 'type' => 'object', 'example' => ''], + 'Driver' => ['title' => '', 'description' => 'The NVIDIA driver configuration.', 'type' => 'string', 'example' => '535.54.03'], + 'EnableSanityCheck' => ['title' => '', 'description' => 'Specifies whether to enable computing power health check for the job. Valid values:'."\n" + .'- true'."\n" + .'- false.', 'type' => 'boolean', 'example' => 'true'], + 'SanityCheckArgs' => ['title' => '', 'description' => 'The configuration parameters for computing power health check.', 'type' => 'string', 'example' => '--sanity-check-timing=AfterJobFaultTolerant --sanity-check-timeout-ops=MarkJobFail'], + 'JobReservedMinutes' => ['title' => '', 'description' => 'The duration (in minutes) for which the job is retained after it ends.', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], 'JobReservedPolicy' => [ 'title' => '', - 'description' => 'The retention policy after the job ends.'."\n", - 'visibility' => 'Public', + 'description' => 'The retention policy after the job ends.', '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', + 'enum' => ['Always', 'OnFailure', 'OnSucceed'], + ], + 'EnableCPUAffinity' => ['title' => '', 'description' => 'The CPU affinity setting. This setting takes effect only when general-purpose prepaid computing resources are used.', 'type' => 'boolean', 'example' => 'true'], + 'DisableEcsStockCheck' => ['title' => '', 'description' => 'Specifies whether to skip inventory check. Valid values:'."\n" + .'- true'."\n" + .'- false.', 'type' => 'boolean', 'example' => 'false'], + 'AllocateAllRDMADevices' => ['title' => '', 'description' => 'Specifies whether to mount all RDMA network interfaces.', 'type' => 'boolean', 'example' => ''], + 'EnableDSWDev' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''], + 'DataJuicerConfig' => ['description' => 'The DataJuicer task configuration.', 'title' => '', 'example' => '', '$ref' => '#/components/schemas/DataJuicerConfig'], + 'ModelConfig' => ['title' => '', 'description' => 'The output model configuration. This parameter currently takes effect only in federated training scenarios.', 'example' => '', '$ref' => '#/components/schemas/ModelConfig'], + 'AllowUnschedulableNodes' => ['type' => 'boolean', 'description' => '', 'title' => '', 'example' => ''], + 'Shell' => [ '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' => [ + 'description' => '', 'title' => '', - 'description' => 'The NVIDIA driver configurations.'."\n", - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '535.54.03', - 'backendName' => 'Driver', + 'example' => '/bin/bash', + 'enum' => ['/bin/sh', '/bin/bash'], ], - 'SanityCheckArgs' => [ + ], + 'example' => '', + ], + 'JobSpec' => [ + 'title' => '', + 'description' => 'Describes the detailed configuration for a type of worker. This includes the device specification, runtime image, and number of replicas.', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The role type. It is determined by the job type, as different job types support different roles.'."\n" + ."\n" + .'- **TFJob**: Supports Chief, PS, Worker, Evaluator, and GraphLearn.'."\n" + ."\n" + .'- **PyTorchJob**: Supports Master and Worker.'."\n" + ."\n" + .'- **XGBoostJob**: Supports Master and Worker.'."\n" + ."\n" + .'- **OneFlowJob**: Supports Master and Worker.'."\n" + ."\n" + .'- **ElasticBatch**: Supports Master and Worker.'."\n" + ."\n" + .'- **RayJob**: Supports Head, Worker, and Worker\\[-xxx].'."\n" + ."\n" + .'For PyTorchJob, XGBoostJob, OneFlowJob, and ElasticBatch, the Master role is optional. If you do not specify a Master, the system designates the first Worker pod as the Master.', 'type' => 'string', 'title' => '', 'example' => 'Worker'], + 'Image' => ['description' => 'The Registry Address of the runtime image for this worker type. Call [ListImages](~~449118~~) to get the runtime images that PAI provides. You can also specify a public third-party runtime image.', 'type' => 'string', 'title' => '', 'example' => 'registry-vpc.cn-hangzhou.aliyuncs.com/cloud-dsw/tensorflow:1.12PAI-gpu-py36-cu101-ubuntu18.04'], + 'ImageConfig' => ['description' => 'The configuration for a private runtime image.', 'title' => '', '$ref' => '#/components/schemas/ImageConfig', 'example' => ''], + 'PodCount' => ['description' => 'The number of replicas.', 'type' => 'integer', 'title' => '', 'format' => 'int64', 'example' => '1'], + 'ExtraPodSpec' => ['description' => 'The extra pod configuration.', 'title' => '', '$ref' => '#/components/schemas/ExtraPodSpec', 'example' => ''], + 'ResourceConfig' => ['description' => 'The resource configuration.', 'title' => '', '$ref' => '#/components/schemas/ResourceConfig', 'example' => ''], + 'UseSpotInstance' => ['description' => 'Specifies whether to use spot instances.', 'type' => 'boolean', 'title' => '', 'deprecated' => true, 'example' => 'false'], + 'SpotSpec' => ['description' => 'The spot instance configuration.', 'title' => '', '$ref' => '#/components/schemas/SpotSpec', 'example' => ''], + 'AssignNodeSpec' => ['description' => 'The configuration for the specified scheduling node.', 'title' => '', '$ref' => '#/components/schemas/AssignNodeSpec', 'example' => ''], + 'LocalMountSpecs' => [ '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', + 'description' => 'A list of local mount configurations.', + 'type' => 'array', + 'items' => ['description' => 'The local mount configuration.', 'title' => '', '$ref' => '#/components/schemas/LocalMountSpec', 'example' => ''], + 'example' => '', + ], + 'AutoScalingSpec' => ['description' => 'The auto scaling configuration.', 'title' => '', '$ref' => '#/components/schemas/AutoScalingSpec', 'example' => ''], + 'ServiceSpec' => ['description' => 'The service configuration.', '$ref' => '#/components/schemas/ServiceSpec', 'title' => '', 'example' => ''], + 'IsCheif' => ['description' => 'This parameter is misspelled and deprecated.', 'type' => 'boolean', 'title' => '', 'deprecated' => true, 'example' => ''], + 'IsChief' => ['description' => 'Marks whether this role is the Chief role. There can be only one Chief role.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'RestartPolicy' => ['description' => 'The restart policy. Valid values are Always, Never, OnFailure, and ExitCode.', 'type' => 'string', 'title' => '', 'example' => 'ExitCode'], + 'SystemDisk' => ['description' => '', 'title' => '', 'example' => '', '$ref' => '#/components/schemas/SystemDisk'], + 'EcsSpec' => ['description' => 'The device specification of the worker. For a detailed list of specifications, see [PAI-DLC billing](~~171758~~).><notice>Prices vary based on the specification.></notice>', 'type' => 'string', 'title' => '', 'example' => 'ecs.c6.large'], + 'QuotaId' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'ConsiderInSuccessPolicy' => ['description' => 'Indicates whether this role\'s completion is required for the job to succeed. This setting applies only when the job\'s success policy is `Partial`.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'StartupDependencies' => [ + 'title' => '', + 'description' => 'The dependencies required before this role can start.', + 'type' => 'array', + 'items' => ['description' => '', 'title' => '', 'example' => '', '$ref' => '#/components/schemas/StartupDependency'], + 'example' => '', ], - 'EnableErrorMonitoringInAIMaster' => [ + 'ElasticSpotSpecs' => [ + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/ElasticSpotSpec', 'description' => '', 'title' => '', 'example' => ''], + 'description' => '', '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', + 'example' => '', ], - 'AdvancedSettings' => [ - 'title' => '', - 'description' => 'The additional advanced parameter configurations.'."\n", - 'visibility' => 'public', + ], + 'example' => '', + ], + 'JobTemplateVersionDetail' => [ + 'type' => 'object', + 'properties' => [ + 'Version' => ['title' => '版本号', 'description' => 'Template version number', 'type' => 'integer', 'example' => '', 'format' => 'int32'], + 'Content' => ['title' => '模板内容', 'description' => 'Configuration content of the job template. It supports all parameter fields of the CreateJob API and is stored as a JSON object.', 'type' => 'string', 'example' => ''], + 'CreatedBy' => ['title' => '版本创建者', 'description' => 'User ID that created this version', 'type' => 'string', 'example' => ''], + 'GmtCreated' => ['title' => '版本创建时间', 'description' => 'Creation time of this version', 'type' => 'string', 'example' => '', 'format' => 'iso8601_normal'], + 'Constraints' => [ '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' => [ + 'additionalProperties' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'description' => '', 'title' => '', - 'description' => 'Whether the job accepts oversold resources. Valid values: ForbiddenQuotaOverSold, AcceptQuotaOverSold, and ForceQuotaOverSold.'."\n", - 'visibility' => 'public', - 'type' => 'string', - 'example' => 'AcceptQuotaOverSold', - 'backendName' => 'OversoldType', + 'example' => '', ], - 'Tags' => [ + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Lifecycle' => [ + 'title' => '', + 'type' => 'object', + 'properties' => [ + 'PreStop' => [ 'title' => '', - 'description' => 'The custom tag.'."\n", - 'visibility' => 'public', 'type' => 'object', - 'additionalProperties' => [ - 'description' => 'The tag.'."\n", - 'visibility' => 'public', - 'type' => 'string', - 'example' => 'key:value', + 'properties' => [ + 'Exec' => [ + 'title' => '', + 'type' => 'object', + 'properties' => [ + 'Command' => [ + 'title' => '', + 'type' => 'array', + 'items' => ['type' => 'string', 'title' => '', 'description' => '', 'example' => ''], + 'description' => '', + 'example' => '', + ], + ], + 'description' => '', + 'example' => '', + ], ], - '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', + 'description' => '', + 'example' => '', ], - 'EnableSanityCheck' => [ + 'PostStart' => [ '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', + 'type' => 'object', + 'properties' => [ + 'Exec' => [ + 'title' => '', + 'type' => 'object', + 'properties' => [ + 'Command' => [ + 'title' => '', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'description' => '', + 'example' => '', + ], + ], + 'description' => '', + 'example' => '', + ], + ], + 'description' => '', + 'example' => '', ], ], - 'parseType' => 'struct', + 'description' => '', + 'example' => '', ], - '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', + 'LocalMountSpec' => [ + 'title' => '', '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', - ], + 'MountMode' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'LocalPath' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'MountPath' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + ], + 'description' => '', + 'example' => '', + ], + 'LogInfo' => [ + 'title' => 'A short description of struct', + 'type' => 'object', + 'properties' => [ + 'PodUid' => ['title' => '日志所属的Pod的Uid', 'type' => 'string'], + 'Content' => ['title' => '日志的文本内容', 'type' => 'string'], + 'Time' => ['title' => '日志的时间戳信息,该时间为UTC时间', 'type' => 'string'], + 'IsTruncated' => ['title' => '标志日志是否被截断的属性。若为true,则代表该日志被截断。若为false,则代表日志未被截断。', 'type' => 'boolean'], + 'PodId' => ['title' => '日志所属的Pod的Id', 'type' => 'string'], + 'Id' => ['title' => '日志的ID信息,用于获取相关上下文', 'type' => 'string'], + 'Source' => ['title' => '日志的来源', 'type' => 'string', 'example' => 'stderr, stdout'], + ], + ], + 'Member' => [ + 'title' => 'A short description of struct', + 'description' => '工作空间成员', + 'type' => 'object', + 'properties' => [ + 'MemberId' => ['title' => '成员id', 'type' => 'string', 'example' => 'ken_12345'], + 'MemberType' => ['title' => '成员角色', 'type' => 'string', 'example' => 'WorkspaceAdmin'], ], ], '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', + 'Time' => ['title' => '', 'description' => 'The timestamp. Unit: milliseconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1616987726587'], + 'Value' => ['title' => '', 'description' => 'The value of the monitoring data.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '23.45'], + ], + 'example' => '', + ], + 'ModelConfig' => [ + 'type' => 'object', + 'properties' => [ + 'ModelName' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'ModelTemplate' => ['title' => '', 'description' => '', 'example' => '', '$ref' => '#/components/schemas/ModelTemplate'], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'ModelTemplate' => [ + 'type' => 'object', + 'properties' => [ + 'ModelName' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'Provider' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'Collections' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'PodItem' => [ + 'title' => 'A short description of struct', + 'description' => 'Pod的详细信息', + 'type' => 'object', + 'properties' => [ + 'Type' => ['title' => 'Pod类型', 'type' => 'string', 'example' => 'Worker'], + 'PodId' => ['title' => 'Pod Id', 'type' => 'string', 'example' => 'dlc-20210126170216-mtl37ge7gkvdz-worker-0'], + 'PodUid' => ['title' => 'Pod Uid', 'type' => 'string', 'example' => 'fe846462-af2c-4521-bd6f-96787a57591d'], + 'Status' => ['title' => 'Pod状态', 'type' => 'string', 'example' => 'Stopped'], + 'Ip' => ['title' => 'Pod Ip', 'type' => 'string', 'example' => '10.0.1.2'], + 'GmtCreateTime' => ['title' => 'Pod创建时间(UTC)', 'type' => 'string', 'example' => '2021-01-12T14:36:01Z'], + 'GmtStartTime' => ['title' => 'Pod启动时间(UTC)', 'type' => 'string', 'example' => '2021-01-12T14:36:05Z'], + 'GmtFinishTime' => ['title' => 'Pod结束时间(UTC)', 'type' => 'string', 'example' => '2021-01-12T15:36:05Z'], + 'HistoryPods' => [ + 'title' => '历史Pods', + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/PodItem'], + ], + 'SubStatus' => ['type' => 'string'], + 'NodeName' => ['type' => 'string'], + 'PodIp' => ['type' => 'string'], + 'PodIps' => [ + 'title' => '灵骏智算:用户VPC net0;管控VPC net;Pod间通信ethx'."\n" + .'通用计算:用户VPC eth1 专有网关默认路由;管控VPC eth0 公有网关默认路由;Pod间通信 net eRDMA', + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/PodNetworkInterface'], ], ], - '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', - ], + 'PodId' => ['title' => '', 'description' => 'The node ID.'."\n", 'type' => 'string', 'example' => 'dlc-20210329110128-******-worker-0'], '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', + 'items' => ['description' => 'The metric.'."\n", '$ref' => '#/components/schemas/Metric', 'title' => '', 'example' => ''], + 'example' => '', + ], + ], + 'example' => '', + ], + 'PodNetworkInterface' => [ + 'type' => 'object', + 'properties' => [ + 'InterfaceName' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'Ip' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Quota' => [ + 'title' => '资源配额', + 'description' => '资源配额详情', + 'type' => 'object', + 'properties' => [ + 'QuotaId' => ['title' => '资源配额id', 'type' => 'string', 'example' => 'quotamtl37ge7gkvdz'], + 'QuotaName' => ['title' => '资源配额名称', 'type' => 'string', 'example' => 'dlc-quota'], + 'QuotaType' => ['title' => '资源配额类型', 'type' => 'string', 'example' => 'asiquota'], + 'UsedQuota' => ['title' => '资源用量', '$ref' => '#/components/schemas/QuotaDetail'], + 'TotalQuota' => ['title' => '资源总量', '$ref' => '#/components/schemas/QuotaDetail'], + 'ClusterId' => ['title' => '集群id', 'type' => 'string'], + 'ClusterName' => ['title' => '集群名称', 'type' => 'string'], + 'TotalTideQuota' => ['title' => '潮汐资源总量', '$ref' => '#/components/schemas/QuotaDetail'], + 'UsedTideQuota' => ['title' => '潮汐资源用量', '$ref' => '#/components/schemas/QuotaDetail'], + 'QuotaConfig' => ['title' => '资源配额设置', '$ref' => '#/components/schemas/QuotaConfig'], + ], + ], + 'QuotaConfig' => [ + 'title' => '资源配额度设置', + 'description' => '资源组配置', + 'type' => 'object', + 'properties' => [ + 'EnableTideResource' => ['title' => '是否使用潮汐资源', 'type' => 'boolean'], + 'ResourceLevel' => ['title' => '资源级别(L0, L1)', 'type' => 'string'], + 'AllowedMaxPriority' => ['title' => '允许的最大优先级', 'type' => 'integer', 'format' => 'int32'], + 'EnableDLC' => ['title' => '是否开启DLC', 'type' => 'boolean'], + 'EnableDSW' => ['title' => '是否开启DSW', 'type' => 'boolean'], + ], + ], + 'QuotaDetail' => [ + 'title' => 'A short description of struct', + 'description' => '资源配额详情', + 'type' => 'object', + 'properties' => [ + 'CPU' => ['title' => 'CPU核数', 'type' => 'string', 'example' => '2'], + 'Memory' => ['title' => '内存容量', 'type' => 'string', 'example' => '10Gi'], + 'GPU' => ['title' => 'GPU卡数', 'type' => 'string', 'example' => '5'], + 'GPUType' => ['title' => 'GPU卡型', 'type' => 'string', 'example' => 'Tesla-V100'], + 'GPUTypeFullName' => ['title' => 'GPU卡型全名', 'type' => 'string', 'example' => 'nvidia.com/gpu'], + 'GPUDetails' => [ + 'title' => 'GPU详情', + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/GPUDetail'], ], ], ], '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', - ], + 'CPU' => ['title' => '', 'description' => 'The number of vCPUs.'."\n", 'type' => 'string', 'example' => '10'], + 'GPU' => ['title' => '', 'description' => 'The number of GPUs.'."\n", 'type' => 'string', 'example' => '3'], + 'Memory' => ['title' => '', 'description' => 'The memory size.'."\n", 'type' => 'string', 'example' => '10Gi'], + 'SharedMemory' => ['title' => '', 'description' => 'The shared memory capacity.'."\n", 'type' => 'string', 'example' => '5Gi'], + 'GPUType' => ['title' => '', 'description' => 'The GPU type.'."\n", 'type' => 'string', 'example' => 'Tesla-V100-16G'], ], + 'example' => '', ], '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', - ], + 'CPU' => ['title' => '', 'description' => 'The number of GPU cores.'."\n", 'type' => 'string', 'example' => '2'], + 'Memory' => ['title' => '', 'description' => 'The memory capacity limit, in Gi.'."\n", 'type' => 'string', 'example' => '10Gi'], + 'GPU' => ['title' => '', 'description' => 'The number of GPU cores.'."\n", 'type' => 'string', 'example' => '20'], ], + 'title' => '', + 'example' => '', ], 'ResourceRequirements' => [ - 'title' => 'ResourceRequirements', - 'description' => 'The container resources.'."\n", - 'visibility' => 'public', + 'title' => '', + 'description' => 'Container resources', 'type' => 'object', 'properties' => [ 'Limits' => [ 'title' => '', - 'description' => 'The resource limit.'."\n", - 'visibility' => 'public', + 'description' => 'Resource limits', 'type' => 'object', - 'additionalProperties' => [ - 'visibility' => 'public', - 'type' => 'string', - 'example' => '{\'cpu\': \'1\', \'memory\': \'1000Mi\'}', - 'description' => '', - ], - 'backendName' => 'Limits', + 'additionalProperties' => ['type' => 'string', 'example' => '{\'cpu\': \'1\', \'memory\': \'1000Mi\'}', 'description' => '', 'title' => ''], + 'example' => '', ], 'Requests' => [ 'title' => '', - 'description' => 'The resource request.'."\n", - 'visibility' => 'public', + 'description' => 'Resource requests', 'type' => 'object', - 'additionalProperties' => [ - 'visibility' => 'public', - 'type' => 'string', - 'example' => '{\'cpu\': \'1\', \'memory\': \'1000Mi\'}', - 'description' => '', - ], - 'backendName' => 'Requests', + 'additionalProperties' => ['type' => 'string', 'example' => '{\'cpu\': \'1\', \'memory\': \'1000Mi\'}', 'description' => '', 'title' => ''], + 'example' => '', ], ], + 'example' => '', + ], + 'Resources' => [ + 'title' => 'A short description of struct', + 'description' => '资源量', + 'type' => 'object', + 'properties' => [ + 'CPU' => ['title' => 'CPU核心数', 'type' => 'string', 'example' => '10'], + 'GPU' => ['title' => 'GPU卡数', 'type' => 'string', 'example' => '8'], + 'Memory' => ['title' => '内存大小', 'type' => 'string', 'example' => '1024(单位GB)'], + ], ], 'SanityCheckResultItem' => [ 'title' => '', - 'description' => 'The sanity check results.'."\n", - 'visibility' => 'Public', + 'description' => 'The SanityCheck result.', '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' => [ + 'Phase' => ['title' => '', 'description' => 'The phase of the check.', 'type' => 'string', 'example' => 'CheckInit'], + 'Message' => ['title' => '', 'description' => 'The details of the check result.', 'type' => 'string', 'example' => ''], + 'Status' => ['title' => '', 'description' => 'The status of the check.', 'type' => 'string', 'example' => 'Succeeded'], + 'StartedAt' => ['title' => '', 'description' => 'The start time of the check.', 'type' => 'string', 'example' => '2023-11-30T16:47:30.343005+08:00'], + 'FinishedAt' => ['title' => '', 'description' => 'The end time of the check.', 'type' => 'string', 'example' => '2023-11-30T16:47:30.378817+08:00'], + 'CheckNumber' => ['title' => '', 'description' => 'The sequence number of the check.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + ], + 'example' => '', + ], + 'SeccompProfile' => [ + 'title' => '', + 'description' => 'The SecurityContext configuration that filters system calls of a process.', + 'type' => 'object', + 'properties' => [ + 'Type' => ['title' => '', 'description' => 'The Seccomp configuration type. Valid values: Localhost, RuntimeDefault, Unconfined.', 'type' => 'string', 'example' => 'Unconfined'], + 'LocalhostProfile' => ['title' => '', 'description' => 'The path of the Seccomp profile on the node. This parameter takes effect only when Type is set to Localhost.', 'type' => 'string', 'example' => 'my-profiles/profile-allow.json'], + ], + 'example' => '', + ], + 'SecurityContext' => [ + 'title' => '', + 'description' => 'The container security context configuration.', + 'type' => 'object', + 'properties' => [ + 'RunAsUser' => ['title' => '', 'description' => 'The UID of the user that runs the container.', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'RunAsGroup' => ['title' => '', 'description' => 'The GID of the user that runs the container.', 'type' => 'integer', 'format' => 'int64', 'example' => '1000'], + 'SeccompProfile' => ['title' => '', 'description' => 'The Seccomp profile configuration.', '$ref' => '#/components/schemas/SeccompProfile', 'example' => ''], + 'Privileged' => ['title' => '', 'description' => 'Specifies whether to enable privileged mode. This option is available only for specific Lingjun AI Computing Service subscription user scenarios.', 'type' => 'boolean', 'example' => ''], + 'Capabilities' => ['title' => '', 'description' => 'The Linux capabilities configuration of the container.', '$ref' => '#/components/schemas/SecurityContextCapabilities', 'example' => ''], + ], + 'example' => '', + ], + 'SecurityContextCapabilities' => [ + 'title' => '', + 'type' => 'object', + 'properties' => [ + 'Add' => [ 'title' => '', - 'description' => 'The time when the check ends.'."\n", - 'visibility' => 'Public', - 'type' => 'string', - 'example' => '2023-11-30T16:47:30.378817+08:00', - 'backendName' => 'FinishedAt', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'description' => '', + 'example' => '', ], - 'CheckNumber' => [ + 'Drop' => [ 'title' => '', - 'description' => 'The nth time the check is performed.'."\n", - 'visibility' => 'Public', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - 'backendName' => 'CheckNumber', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'description' => '', + 'example' => '', ], ], + 'description' => '', + 'example' => '', + ], + 'ServiceExposure' => [ + 'type' => 'object', + 'properties' => [ + 'ServiceId' => ['type' => 'string'], + 'DisplayName' => ['type' => 'string'], + 'JobId' => ['type' => 'string'], + 'PodId' => ['type' => 'string'], + 'Type' => ['type' => 'string'], + 'Port' => ['type' => 'integer', 'format' => 'int32'], + 'Status' => ['type' => 'string'], + 'Message' => ['type' => 'string'], + ], ], 'ServiceSpec' => [ - 'description' => '', - 'visibility' => 'Public', + 'description' => 'Service configuration details.', 'type' => 'object', 'properties' => [ + 'DefaultPort' => ['title' => '', 'description' => 'The default port for the service.', 'type' => 'integer', 'format' => 'int32', 'example' => '8080'], 'ServiceMode' => [ 'title' => '', - 'description' => '', - 'visibility' => 'Public', + 'description' => 'The service pattern. Valid values are PerRole and PerPod. The default value is PerPod.', + 'enumValueTitles' => ['PerPod' => 'PerPod', 'PerRole' => 'PerRole'], 'type' => 'string', - 'enumValueTitles' => [ - 'PerPod' => 'PerPod', - 'PerRole' => 'PerRole', - ], 'example' => 'PerRole', - 'backendName' => 'ServiceMode', ], 'ExtraPorts' => [ 'title' => '', - 'description' => '', - 'visibility' => 'Public', + 'description' => 'The list of extra ports for the service.', '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', + 'items' => ['description' => 'An extra port for the service.', 'type' => 'integer', 'format' => 'int32', 'example' => '8081', 'title' => ''], + 'example' => '', ], ], + 'title' => '', + 'example' => '', + ], + 'SmartCache' => [ + 'title' => 'A short description of struct', + 'type' => 'object', + 'properties' => [ + 'Path' => ['title' => 'OSS数据源路径', 'type' => 'string', 'example' => 'oss://buc/path/to/dir'], + 'Status' => ['title' => '运行状态', 'type' => 'string', 'example' => 'Running'], + 'Options' => ['title' => '可选的超参数', 'type' => 'string', 'example' => '{"num_threads": 32}'], + 'Description' => ['title' => 'SmartCache 描述', 'type' => 'string', 'example' => 'test'], + 'Duration' => ['title' => '已运行时长', 'type' => 'string', 'example' => '123456'], + 'SmartCacheId' => ['title' => 'SmartCacheId', 'type' => 'string', 'example' => 'smartcache-20210114104214-vf9lowjt3pso'], + 'CacheWorkerNum' => ['title' => 'cache worker的数量单位是个', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'MountPath' => ['title' => '数据源本地挂载目录', 'type' => 'string', 'example' => '/root/data/'], + 'CacheWorkerSize' => ['title' => '每个cache worker的cache大小单位是GB', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'Type' => ['title' => '挂载的数据类型', 'type' => 'string', 'example' => 'oss'], + 'Endpoint' => ['title' => 'OSS Endpoint', 'type' => 'string', 'example' => 'oss-cn-beijing-internal.aliyuncs.com'], + 'GmtModifyTime' => ['title' => '修改时间(UTC)', 'type' => 'string', 'example' => '2021-01-12T23:36:01Z'], + 'UserId' => ['title' => '创建者Id', 'type' => 'string', 'example' => '189xxx'], + 'DisplayName' => ['title' => 'SmartCache 名称', 'type' => 'string', 'example' => 'test'], + 'FileSystemId' => ['title' => '阿里云的NAS文件系统ID', 'type' => 'string', 'example' => '1ca404****'], + 'GmtCreateTime' => ['title' => '创建时间(UTC)', 'type' => 'string', 'example' => '2021-01-12T14:36:01Z'], + ], ], 'SpotSpec' => [ 'title' => '', 'description' => 'The configurations of the preemptible instance'."\n", - 'visibility' => 'Public', 'type' => 'object', 'properties' => [ 'SpotStrategy' => [ @@ -1984,402 +1274,142 @@ 'description' => 'The spot policy. Valid values:'."\n" ."\n" .'* SpotWithPriceLimit'."\n", - 'visibility' => 'Public', 'type' => 'string', - 'enumValueTitles' => [ - 'SpotWithPriceLimit' => 'SpotWithPriceLimit', - ], + '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', ], + 'SpotDiscountLimit' => ['title' => '', 'description' => 'The maximum discount. Specify only one of SpotDiscountLimit and SpotPriceLimit.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '0.8'], + 'SpotPriceLimit' => ['title' => '', 'description' => 'The maximum price. Unit: CNY/minute. Specify only one of SpotDiscountLimit and SpotPriceLimit.'."\n", 'type' => 'number', 'format' => 'float', 'example' => '0.4744'], + ], + 'example' => '', + ], + 'StartupDependency' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['title' => '', 'type' => 'string', 'required' => false, 'description' => '', 'example' => ''], + 'OnPhase' => ['title' => '', 'type' => 'string', 'required' => false, 'description' => '', 'example' => ''], + 'MinReplicas' => ['title' => '', 'type' => 'string', 'required' => false, 'description' => '', 'example' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'StatusTransitionItem' => [ + 'title' => '', + 'description' => 'The job status transition entry.', + 'type' => 'object', + 'properties' => [ + 'Status' => ['title' => '', 'description' => 'The job status.', 'type' => 'string', 'example' => ''], + 'StartTime' => ['title' => '', 'description' => 'The start time of this status (UTC).', 'type' => 'string', 'example' => ''], + 'EndTime' => ['title' => '', 'description' => 'The end time of this status (UTC).', 'type' => 'string', 'example' => ''], + 'ReasonCode' => ['title' => '', 'description' => 'The reason code for this status.', 'type' => 'string', 'example' => ''], + 'ReasonMessage' => ['title' => '', 'description' => 'The detailed message for this status.', 'type' => 'string', 'example' => ''], ], + 'example' => '', + ], + 'SystemDisk' => [ + 'title' => '', + 'type' => 'object', + 'properties' => [ + 'Size' => ['title' => '', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'description' => '', 'example' => ''], + 'Category' => ['title' => '', 'type' => 'string', 'required' => false, 'description' => '', 'example' => ''], + 'PerformanceLevel' => ['title' => '', 'type' => 'string', 'required' => false, 'description' => '', 'example' => ''], + ], + 'description' => '', + 'example' => '', ], 'Tensorboard' => [ - 'title' => 'A short description of struct', - 'description' => 'The TensorBoard details'."\n", - 'visibility' => 'public', + 'title' => '', + 'description' => 'Tensorboard description.', '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', - ], + 'TensorboardId' => ['title' => '', 'description' => 'Tensorboard ID.', 'type' => 'string', 'example' => 'tensorboard-xxx'], + 'TensorboardUrl' => ['title' => '', 'description' => 'Tensorboard URL.', 'type' => 'string', 'example' => 'http://xxxxxx'], + 'Status' => ['title' => '', 'description' => 'Status.', 'type' => 'string', 'example' => 'running'], + 'Duration' => ['title' => '', 'description' => 'Runtime duration (seconds).', 'type' => 'string', 'example' => '60'], + 'GmtCreateTime' => ['title' => '', 'description' => 'Creation time (UTC).', 'type' => 'string', 'example' => '2021-01-12T14:35:00Z'], + 'GmtModifyTime' => ['title' => '', 'description' => 'Modification time (UTC).', 'type' => 'string', 'example' => '2021-01-12T14:36:00Z'], + 'GmtFinishTime' => ['title' => '', 'description' => 'End time (UTC).', 'type' => 'string', 'example' => 'null'], + 'RequestId' => ['title' => '', 'description' => 'Request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], + 'DisplayName' => ['title' => '', 'description' => 'Display name.', 'type' => 'string', 'example' => 'test'], + 'DataSourceId' => ['title' => '', 'description' => 'Data source ID.', 'type' => 'string', 'example' => 'datasource-test'], + 'SummaryPath' => ['title' => '', 'description' => 'File path.', 'type' => 'string', 'example' => '/root/data'], + 'UserId' => ['title' => '', 'description' => 'Creator ID.', 'type' => 'string', 'example' => 'lycxxxxx'], + 'Username' => ['title' => '', 'description' => 'Creator username.', 'type' => 'string', 'example' => 'tensorboard.pai'], + 'ReasonCode' => ['title' => '', 'description' => 'Status details code.', 'type' => 'string', 'example' => '""'], + 'ReasonMessage' => ['title' => '', 'description' => 'Status details.', 'type' => 'string', 'example' => '""'], + 'JobId' => ['title' => '', 'description' => 'Job ID.', 'type' => 'string', 'example' => 'dlc-20210114104214-vf9lowjt3pso'], 'TensorboardDataSources' => [ 'title' => '', - 'description' => 'The mounted dataset for the TensorBoard job.'."\n", - 'visibility' => 'Public', + 'description' => 'Datasets mounted by the Tensorboard Job.', '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', + 'items' => ['description' => 'Tensorboard dataset configuration description.', 'required' => false, '$ref' => '#/components/schemas/TensorboardDataSourceSpec', 'title' => '', 'example' => ''], + 'example' => '', ], + 'TensorboardSpec' => ['title' => '', 'description' => 'Pay-as-you-go configuration for the Tensorboard Job.', '$ref' => '#/components/schemas/TensorboardSpec', 'example' => ''], + 'QuotaId' => ['title' => '', 'description' => 'Resource group ID used by Tensorboard.', 'type' => 'string', 'example' => 'quota12***'], + 'Priority' => ['title' => '', 'description' => 'Tensorboard Job priority.', 'type' => 'string', 'example' => '1'], + 'QuotaName' => ['title' => '', 'description' => 'Name of the resource quota used by Tensorboard.', 'type' => 'string', 'example' => 'dlc-quota'], + 'Accessibility' => ['title' => '', 'description' => 'Visibility.', 'type' => 'string', 'example' => 'PRIVATE'], ], + 'example' => '', ], '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', - ], - ], + 'DirectoryName' => ['title' => '', 'description' => 'The directory prefix of the dataset in the TensorBoard task.'."\n", 'type' => 'string', 'example' => 'dlcJobName'], + '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", 'type' => 'string', 'example' => 'dlcJobName'], + 'Id' => ['title' => '', '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", 'type' => 'string', 'example' => 'd-vf2fdhxxxxxx'], + 'DataSourceType' => ['title' => '', 'description' => 'The file type that corresponds to the URI in the dataset configurations.'."\n", 'type' => 'string', 'example' => 'OSS'], + 'Uri' => ['title' => '', 'description' => 'The file system URI in the dataset configurations.'."\n", 'type' => 'string', 'example' => 'oss://examplebucket.oss-cn-shanghai-internal.aliyuncs.com/'], + '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", 'type' => 'string', 'example' => 'datasource'], + 'SummaryPath' => ['title' => '', 'description' => 'The summary path.'."\n", 'type' => 'string', 'example' => '/tensorboard/run1'], + 'FullSummaryPath' => ['title' => '', 'description' => 'The full summary path.'."\n", 'type' => 'string', 'example' => 'oss://xxxxx/tensorboard/run1'], + ], + 'example' => '', ], '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', + 'VpcId' => ['title' => '', 'description' => 'The ID of the virtual private cloud (VPC) configured for the pay-as-you-go Tensorboard task.'."\n", 'type' => 'string', 'example' => 'vpc-xxxx'], + 'EcsType' => ['title' => '', 'description' => 'The specifications of the ECS instance configured for the pay-as-you-go Tensorboard task.'."\n", 'type' => 'string', 'example' => 'ecs.g6.large'], + 'SecurityGroupId' => ['title' => '', 'description' => 'The ID of the security group configured for the pay-as-you-go Tensorboard task.'."\n", 'type' => 'string', 'example' => 'sg-xxxxx'], + 'SwitchId' => ['title' => '', 'description' => 'The ID of the vSwitch configured for the pay-as-you-go Tensorboard task.'."\n", 'type' => 'string', 'example' => 'vsw-xxxx'], + ], + 'example' => '', + ], + 'Workspace' => [ + 'title' => 'A short description of struct', + 'description' => '工作空间', + 'type' => 'object', + 'properties' => [ + 'WorkspaceId' => ['title' => '工作空间id', 'type' => 'string', 'example' => 'ws-20210126170216-mtl37ge7gkvdz'], + 'WorkspaceName' => ['title' => '工作空间名称', 'type' => 'string', 'example' => 'dlc-workspace'], + 'Creator' => ['title' => '创建者', 'type' => 'string', 'example' => 'ken'], + 'GmtCreateTime' => ['title' => '创建时间', 'type' => 'string', 'example' => '2021-01-12T14:36:01Z'], + 'GmtModifyTime' => ['title' => '最近修改时间', 'type' => 'string', 'example' => '2021-01-12T14:36:01Z'], + 'Quotas' => [ + 'title' => '资源配额列表', + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/Quota'], ], - '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', + 'TotalResources' => ['title' => '资源总量', '$ref' => '#/components/schemas/Resources'], + 'Members' => [ + 'title' => '成员列表', + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/Member'], ], - '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', + 'WorkspaceAdmins' => [ + 'title' => '管理员列表', + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/Member'], ], ], ], @@ -2387,26 +1417,17 @@ ], '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.', + 'summary' => 'Creates a job and runs it in a cluster. You can specify the datasource config, code source configuration, startup command, and compute resource configuration for each node on which the job runs.', 'path' => '/api/v1/jobs', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ @@ -2414,9 +1435,7 @@ 'riskType' => 'none', 'chargeType' => 'paid', 'abilityTreeCode' => '13110', - 'abilityTreeNodes' => [ - 'FEATURElearnQJXF95', - ], + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ @@ -2424,445 +1443,277 @@ 'in' => 'body', 'style' => 'json', 'schema' => [ - 'description' => 'The request parameters.'."\n", + 'description' => 'The request body parameters.', '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, - ], + 'DisplayName' => ['title' => '', 'description' => 'The name of the job. The name must meet the following requirements:'."\n" + .'- The name cannot exceed 256 characters in length.'."\n" + .'- The name can contain digits, letters, underscores (_), periods (.), and hyphens (-).', '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", + 'title' => '', + 'description' => 'The job type. This parameter is case-sensitive. Valid values:'."\n" + .'- TFJob'."\n" + .'- PyTorchJob'."\n" + .'- MPIJob'."\n" + .'- XGBoostJob'."\n" + .'- OneFlowJob'."\n" + .'- ElasticBatchJob'."\n" + .'- SlurmJob'."\n" + .'- RayJob'."\n" + .'- DataJuicerJob.', + 'enumValueTitles' => ['OneFlowJob' => 'OneFlow', 'PyTorchJob' => 'PyTorch', 'SlurmJob' => 'Slurm', 'XGBoostJob' => 'XGBoost', 'ElasticBatchJob' => 'ElasticBatch', 'DataJuicerJob' => 'DataJuicer', 'MPIJob' => 'MPIJob', 'TFJob' => 'Tensorflow', 'RayJob' => 'Ray'], '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" + 'title' => '', + 'description' => 'The various runtime configurations of the job, such as the image address, startup command, node resource declarations, 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", + .'A DLC job consists of different types of nodes. Nodes of the same type share identical configurations, which is called a JobSpec. **JobSpecs** describes the configurations of all node types and is an array of JobSpec objects.', 'type' => 'array', - 'items' => [ - 'description' => 'The runtime configurations of the job.'."\n", - 'required' => false, - '$ref' => '#/components/schemas/JobSpec', - ], + 'items' => ['description' => 'The runtime configuration of the job.', '$ref' => '#/components/schemas/JobSpec', 'required' => false, 'title' => '', 'example' => ''], 'required' => true, 'minItems' => 1, + 'example' => '', ], - 'UserCommand' => [ - 'title' => '作业命令', - 'description' => 'The startup command for all nodes of the job.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'python /root/code/mnist.py', - ], + 'UserCommand' => ['title' => '', 'description' => 'The startup command for all nodes of the job.', 'type' => 'string', 'required' => true, 'example' => 'python /root/code/mnist.py'], 'DataSources' => [ - 'title' => '数据源配置列表', - 'description' => 'The data sources for job running.'."\n", + 'title' => '', + 'description' => 'The list of data sources used by the job.', '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" + 'description' => 'The list of all data sources used by this job. Each data source is mounted to the local directory of the container on each node based on the configuration in the data source. The local directory 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", + .'Processes in the startup command of the job can directly access the distributed file system represented by each data source by using MountPath as the path.', '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', - ], + 'DataSourceId' => ['title' => '', 'description' => 'The ID of the data source. <props="china">For information about how to obtain the data source ID, see [ListDatasets](~~457222~~).</props>.', 'type' => 'string', 'example' => 'd-cn9dl*******', 'required' => false], + 'MountPath' => ['title' => '', 'description' => 'The mount path for this job. This parameter is optional. By default, the mount path configured in the data source is used.', 'type' => 'string', 'example' => '/root/data', 'required' => false], + 'Uri' => ['title' => '', 'description' => 'The data source path.', 'type' => 'string', 'example' => 'oss://bucket.oss-cn-hangzhou-internal.aliyuncs.com/path/', 'required' => false], + 'Options' => ['description' => 'The custom dataset mount properties. Only OSS is supported.', '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" + .'}', 'title' => ''], + 'DataSourceVersion' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], + 'MountAccess' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], + 'EnableCache' => ['type' => 'boolean', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], + 'AccessPointId' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], + 'RoleChain' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], ], 'required' => false, + 'title' => '', + 'example' => '', ], 'required' => false, + 'example' => '', ], '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", + 'title' => '', + 'description' => 'The code source used by this job. Before the job nodes start, DLC automatically downloads the code configured in the code source and mounts it to a local directory of the container.', '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', - ], + 'CodeSourceId' => ['title' => '', 'description' => 'The code source ID. <props="china">For information about how to obtain the code source ID, see [ListCodeSources](~~459922~~).</props>.', 'type' => 'string', 'example' => 'code-20210111103721-xxxxxxx', 'required' => false], + 'Branch' => ['title' => '', 'description' => 'The branch of the code repository referenced at runtime. This parameter is optional. By default, the branch configured in the code source is used.', 'type' => 'string', 'example' => 'master', 'required' => false], + 'Commit' => ['title' => '', 'description' => 'The commit ID of the code to download for this job. This parameter is optional. By default, the commit ID configured in the code source is used.', 'type' => 'string', 'example' => '44da109b5******', 'required' => false], + 'MountPath' => ['title' => '', 'description' => 'The mount path for this job. This parameter is optional. By default, the mount path configured in the code source is used.', 'type' => 'string', 'example' => '/root/data', 'required' => false], ], 'required' => false, + 'example' => '', ], 'UserVpc' => [ - 'title' => '用户VPC', - 'description' => 'The VPC settings.'."\n", + 'title' => '', + 'description' => 'The user VPC configuration.', '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****', - ], + 'VpcId' => ['title' => '', 'description' => 'The ID of the user VPC.', 'type' => 'string', 'example' => 'vpc-abcdef****', 'required' => false], + 'SwitchId' => ['title' => '', 'description' => 'The ID of the user vSwitch. This parameter is optional.'."\n" + .'- If this parameter is left empty, the system automatically selects an appropriate vSwitch based on inventory.'."\n" + .'- You can also specify a vSwitch ID.', 'type' => 'string', 'example' => 'vs-abcdef****', 'required' => false], + 'SecurityGroupId' => ['title' => '', 'description' => 'The ID of the user security group.', 'type' => 'string', 'example' => 'sg-abcdef****', 'required' => false], '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", + 'title' => '', + 'description' => 'The extended CIDR blocks.'."\n" + .'- If the vSwitch ID is empty, this parameter is not required. The system automatically obtains all CIDR blocks under the VPC.'."\n" + .'- If the vSwitch ID is specified, this parameter is required. Specify all CIDR blocks under the VPC.', 'type' => 'array', - 'items' => [ - 'description' => 'The extended CIDR block.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '192.168.0.1/24', - ], + 'items' => ['description' => 'The extended CIDR block.', 'type' => 'string', 'example' => '192.168.0.1/24', 'required' => false, 'title' => ''], 'required' => false, + 'example' => '', ], - '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', - ], + 'DefaultRoute' => ['description' => 'The default routing. Valid values:'."\n" + .'- eth0: uses the default network interface controller (NIC) to access external networks through the public gateway.'."\n" + .'- eth1: uses the user elastic network interfaces (ENIs) to access external networks through the private gateway. For the specific configuration method, see [Configure a DSW instance to access the Internet through a dedicated public gateway](~~2525343~~).', 'type' => 'string', 'required' => false, 'example' => 'eth0', 'title' => ''], ], 'required' => false, + 'example' => '', ], 'ThirdpartyLibs' => [ - 'title' => '三方库配置列表', - 'description' => 'The third-party Python libraries to be installed.'."\n", + 'title' => '', + 'description' => 'The list of third-party Python libraries to install.', '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', - ], + 'items' => ['description' => 'Specifies a third-party Python library and its version requirement, such as `numpy==1.16.1`.', 'type' => 'string', 'example' => 'numpy==1.16.1', 'required' => false, 'title' => ''], 'required' => false, + 'example' => '', ], - '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/', - ], + 'ThirdpartyLibDir' => ['title' => '', 'description' => 'The name of the folder that contains the third-party Python library file (requirements.txt). Before running the specified UserCommand on each node, PAI-DLC retrieves the requirements.txt file from the specified folder and runs `pip install -r` to install the libraries.', 'type' => 'string', 'example' => '/root/code/', 'required' => false], 'Envs' => [ - 'title' => '环境变量配置', - 'description' => 'The environment variables.'."\n", + 'title' => '', + 'description' => 'The environment variable configuration.', '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", + 'additionalProperties' => ['description' => '一个环境变量,格式:`Key=Value`。'."\n" + .'><notice>环境变量需遵循POSIX标准></notice>', 'type' => 'string', 'example' => 'ENABLE_DEBUG_MODE', 'title' => ''], + 'example' => '', + ], + 'JobMaxRunningTimeMinutes' => ['title' => '', 'description' => 'The maximum running duration of the job, in minutes.', 'type' => 'integer', 'format' => 'int64', 'minimum' => '1', 'example' => '1024', 'required' => false], + 'WorkspaceId' => ['title' => '', 'description' => 'The workspace ID. <props="china">For information about how to obtain the workspace ID, see [ListWorkspaces](~~449124~~).</props>.', 'type' => 'string', 'example' => 'ws-20210126170216-xxxxxxx', 'required' => false], + 'ResourceId' => ['title' => '', 'description' => 'The resource group ID. This parameter is optional.'."\n" + .'- If this parameter is left empty, the job is submitted to the public resource group.'."\n" + .'- If the current workspace has an attached resource quota, you can specify the corresponding resource quota ID. For details about how to query the resource quota ID, see [Manage resource quotas](~~2651299~~).', 'type' => 'string', 'example' => 'rs-xxx', 'required' => false], + 'Priority' => ['title' => '', 'description' => 'The priority of the job. This parameter is optional. Default value: 1. Valid values: 1 to 9.'."\n" + ."\n" + .'- 1: the lowest priority.'."\n" + .'- 9: the highest priority.', 'type' => 'integer', 'format' => 'int32', 'example' => '8', 'required' => false], + 'Settings' => ['description' => 'The additional parameter settings for the job.', '$ref' => '#/components/schemas/JobSettings', 'required' => false, 'title' => '', 'example' => ''], + 'ElasticSpec' => ['description' => 'This parameter is not supported. Ignore this parameter.', '$ref' => '#/components/schemas/JobElasticSpec', 'required' => false, 'title' => '', 'example' => ''], + 'DebuggerConfigContent' => ['title' => '', 'description' => 'This parameter is not supported. Ignore this parameter.', 'type' => 'string', 'required' => false, 'example' => '“”'], + 'Options' => ['description' => 'The additional configuration for this node. You can use this parameter to adjust the behavior of mounted data sources. For example, if the node has an OSS data source mounted, you can set this parameter to `fs.oss.download.thread.concurrency=4,fs.oss.download.queue.size=16` to overwrite the default JindoFS parameter settings.', 'type' => 'string', 'required' => false, 'example' => 'key1=value1,key2=value2', 'title' => ''], + 'SuccessPolicy' => ['title' => '', 'description' => 'The success policy for distributed multi-node jobs. Only TensorFlow multi-node jobs support this parameter. Valid values:'."\n" + .'- ChiefWorker: the entire job is considered successful when the Chief pod finishes successfully.'."\n" + .'- AllWorkers (default): the entire job is considered successful only when all Worker pods finish successfully.', 'type' => 'string', 'required' => false, 'example' => 'AllWorkers'], + 'CredentialConfig' => ['description' => 'The access credential configuration.', '$ref' => '#/components/schemas/CredentialConfig', 'required' => false, 'title' => '', 'example' => ''], + 'Accessibility' => ['description' => 'The visibility of the job. Valid values:'."\n" + .'- PUBLIC: visible to all members in the workspace.'."\n" + .'- PRIVATE: visible only to you and administrators in the workspace.', 'type' => 'string', 'required' => false, 'example' => 'PRIVATE', 'title' => ''], + 'TemplateId' => ['title' => '', 'description' => 'The job template ID.', 'type' => 'string', 'example' => 'tplabc1234567', 'required' => false], + 'TemplateVersion' => ['title' => '', 'description' => 'The job template version.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'required' => false], + 'Description' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'SchedulingStrategy' => [ + 'title' => '', 'type' => 'string', - 'required' => false, - 'example' => 'PRIVATE', + 'example' => 'Auto', + 'default' => 'Auto', + 'enum' => ['Auto', 'Binpack', 'Spread'], + 'description' => '', ], 'CustomEnvs' => [ 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Key' => [ - 'type' => 'string', - ], - 'Value' => [ - 'type' => 'string', - ], - 'Visible' => [ - 'type' => 'string', - ], + 'Key' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], + 'Value' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], + 'Visible' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], ], + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', ], - ], - 'TemplateId' => [ - 'title' => '模板 ID', - 'description' => '任务模板的 ID。指定后将基于模板创建作业,作业参数需符合模板约束规则。', - 'type' => 'string', - 'example' => 'tplxxxxxxxxxxxxxxxx', - ], - 'TemplateVersion' => [ - 'title' => '模板版本号', - 'description' => '指定使用的模板版本号,不传则使用模板默认版本。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'required' => false, + 'description' => '', + 'title' => '', + 'example' => '', ], ], 'required' => false, + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The response parameters.'."\n", + 'description' => 'The response in JSON format.', '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', - ], + 'JobId' => ['title' => '', 'description' => 'The ID of the job created by this call.', 'type' => 'string', 'example' => 'dlc7*******'], + 'RequestId' => ['title' => '', 'description' => 'The request ID, used for diagnostics and troubleshooting.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxxx'], ], + 'title' => '', + 'example' => '', ], ], ], - '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', + 'title' => 'Create a job', + 'description' => 'Before you call this operation, make sure that you are familiar with the billing and [pricing](~~171758~~) of PAI-DLC.'."\n" + .'><notice>The total length of CreateJob request parameters, including system-generated parameters, cannot exceed 65,536 bytes.></notice>.', + 'changeSet' => [ + ['createdAt' => '2025-07-30T08:02:39.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-05-20T12:11:56.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-04-02T12:02:35.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-12-18T06:03:20.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-08-09T08:19:35.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-07-05T02:28:26.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-12-08T08:06:18.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-09-11T11:52:02.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-12-13T02:00:39.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '150', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateJob'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'paidlc:CreateJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"dlc7*******\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-xxxxxxx\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'CreateJobTemplate' => [ + 'summary' => 'Creates a job template.', + 'path' => '/api/v1/jobtemplates', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'abilityTreeCode' => '34384', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ - 'name' => 'JobId', - 'in' => 'path', + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', '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*************', + 'type' => 'object', + 'properties' => [ + 'TemplateName' => ['description' => 'The name of the job template.', 'type' => 'string', 'required' => true, 'maxLength' => 1024, 'minLength' => 1, 'title' => '', 'example' => 'job-template-example-1778047**** '], + 'Description' => ['description' => 'The description of the job template.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'Template description '], + 'WorkspaceId' => ['description' => 'The ID of the workspace that contains the job template.', 'type' => 'string', 'required' => true, 'maxLength' => 128, 'title' => '', 'example' => '15****05'], + 'Metadata' => ['description' => 'User-defined key-value metadata.', 'type' => 'object', 'title' => '', 'required' => false, 'example' => '{}'], + 'Content' => ['description' => 'The configuration of the job template, which must be a JSON string containing the job configuration parameters.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '{\\"WorkspaceId\\":\\"15****05\\",\\"JobType\\":\\"PyTorchJob\\",\\"UserCommand\\":\\"echo hello\\",\\"JobSpecs\\":[{\\"Type\\":\\"Worker\\",\\"PodCount\\":1,\\"Image\\":\\"dsw-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai/pytorch:2.8.0-gpu-py313-cu129-ubuntu22.04-3995b779-1764361782\\",\\"EcsSpec\\":\\"ecs.gn7i-c8g1.2xlarge\\"}],\\"ResourceType\\":\\"ECS\\",\\"_ResourcePaymentType\\":\\"PostPaid\\",\\"CredentialConfig\\":{\\"EnableCredentialInject\\":false},\\"Accessibility\\":\\"PRIVATE\\",\\"Settings\\":{\\"JobReservedMinutes\\":0,\\"Tags\\":{}}} '], + 'Constraints' => ['description' => 'The field constraint rules. The key is a JSONPath expression, and the value is a constraint type: `locked` (cannot be overridden), `overridable` (can be overridden), or `required` (must be specified).', 'type' => 'object', 'title' => '', 'required' => false, 'example' => '{\\"JobSpecs[0].Image\\":\\"locked\\",\\"UserCommand\\":\\"locked\\",\\"JobType\\":\\"locked\\"}'], + ], + 'description' => 'The request body.', + 'required' => false, + 'title' => '', + 'example' => '', ], ], ], @@ -2871,701 +1722,588 @@ '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', - ], + 'TemplateId' => ['description' => 'The unique ID of the job template.', 'type' => 'string', 'title' => '', 'example' => 'tplmceolmf2****'], + 'TemplateName' => ['description' => 'The name of the job template.', 'type' => 'string', 'title' => '', 'example' => 'job-template-example-1778047**** '], + 'Description' => ['description' => 'The description of the job template.', 'type' => 'string', 'title' => '', 'example' => 'Template description'."\n"], + 'Metadata' => ['description' => 'User-defined key-value metadata.', 'type' => 'object', 'title' => '', 'example' => '{}'], + 'WorkspaceId' => ['description' => 'The ID of the workspace that contains the job template.', 'type' => 'string', 'title' => '', 'example' => '15****05'], + 'UserId' => ['description' => 'The ID of the user who created the job template.', 'type' => 'string', 'title' => '', 'example' => '20**************02'], + 'TenantId' => ['description' => 'The ID of the tenant that contains the job template.', 'type' => 'string', 'title' => '', 'example' => '10**************14'], + 'DefaultVersion' => ['description' => 'The default version number of the job template.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'], + 'Version' => ['description' => 'The version number of the created job template.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'], + 'GmtCreateTime' => ['description' => 'The creation time of the job template.', 'type' => 'string', 'format' => 'iso8601', 'title' => '', 'example' => '2025-12-31T02:18:09Z'], + 'GmtModifyTime' => ['description' => 'The last modification time of the job template.', 'type' => 'string', 'format' => 'iso8601', 'title' => '', 'example' => '2026-01-12T14:36:00Z'], + 'RequestId' => ['description' => 'The ID of the request, used for troubleshooting.', 'type' => 'string', 'title' => '', 'example' => '8762921A-911C-515F-A3A4-*********'], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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', + 'title' => 'CreateJobTemplate', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'paidlc:CreateJobTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TemplateId\\": \\"tplmceolmf2****\\",\\n \\"TemplateName\\": \\"job-template-example-1778047****\\\\t\\",\\n \\"Description\\": \\"Template description\\\\n\\",\\n \\"Metadata\\": {},\\n \\"WorkspaceId\\": \\"15****05\\",\\n \\"UserId\\": \\"20**************02\\",\\n \\"TenantId\\": \\"10**************14\\",\\n \\"DefaultVersion\\": 1,\\n \\"Version\\": 1,\\n \\"GmtCreateTime\\": \\"2025-12-31T02:18:09Z\\",\\n \\"GmtModifyTime\\": \\"2026-01-12T14:36:00Z\\",\\n \\"RequestId\\": \\"8762921A-911C-515F-A3A4-*********\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'CreateRayHistoryServer' => [ + 'summary' => 'Creates a RayHistoryServer.', + 'path' => '/api/v1/rayhistoryservers', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid', - 'abilityTreeCode' => '119379', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ - 'name' => 'JobId', - 'in' => 'path', + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', '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', + 'description' => 'The request body parameters.', + 'type' => 'object', + 'properties' => [ + 'DisplayName' => ['description' => 'The display name of the job.', 'type' => 'string', 'required' => true, 'example' => 'my-ray-history-server', 'title' => ''], + 'StoragePath' => ['description' => 'The storage path for Ray logs.', 'type' => 'string', 'required' => true, 'example' => 'oss://bucket-test-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/tmp', 'title' => ''], + 'WorkspaceId' => ['description' => 'The workspace ID. <props="china">For information about how to obtain the workspace ID, see [ListWorkspaces](~~449124~~).</props>.', 'type' => 'string', 'required' => true, 'example' => '12345', 'title' => ''], + 'ResourceId' => ['description' => 'The resource group ID. This parameter is optional.'."\n" + .'- If this parameter is left empty, the job is committed to the public resource group.'."\n" + .'- If the current workspace is attached to a resource quota, you can specify the corresponding resource quota ID. For details about how to query the resource quota ID, see [Manage resource quotas](~~2651299~~).', 'type' => 'string', 'required' => false, 'example' => 'quotaxxx', 'title' => ''], + 'EcsSpec' => ['description' => 'The hardware specifications of the public resource group. To access the detailed list of specifications, see [PAI-DLC billing](~~171758~~).><notice>Prices vary depending on the specifications.></notice>.', 'type' => 'string', 'required' => false, 'example' => 'ecs.c6.large', 'title' => ''], + 'MaxRuntimeMinutes' => ['description' => 'The maximum runtime in minutes.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000', 'title' => ''], + 'Accessibility' => ['description' => 'The visibility of the job. Valid values:'."\n" + .'- PUBLIC: visible to all members in the workspace.'."\n" + .'- PRIVATE: visible only to you and administrators in the workspace.', 'type' => 'string', 'required' => false, 'example' => 'PRIVATE', 'title' => ''], + ], 'required' => false, - 'example' => 'dlc*************', + 'title' => '', + 'example' => '', + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The request ID of this call, used for diagnostics and troubleshooting.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxxx', 'title' => ''], + 'RayHistoryServerId' => ['description' => 'The ID of the created Ray History Server.', 'type' => 'string', 'example' => 'rhsxxxx', 'title' => ''], + ], + 'title' => '', + 'description' => 'The root node.', + 'example' => '', ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create a rayHistoryServer', + 'description' => 'Before you use this operation, make sure that you are familiar with the billing of PAI-DLC and the [pricing](~~171758~~).'."\n" + .'><notice>The total length of CreateJob request parameters, including system-generated parameters, cannot exceed 65,536 bytes.></notice>.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-xxxxxxx\\",\\n \\"RayHistoryServerId\\": \\"rhsxxxx\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + '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 job configurations.'."\n", + 'description' => 'The request body.'."\n", 'type' => 'object', 'properties' => [ - 'Priority' => [ - 'title' => '设置优先级', - 'description' => 'The job priority. Valid values: 1 to 9.'."\n" + 'WorkspaceId' => ['description' => 'The workspace ID.'."\n", 'type' => 'string', 'required' => false, 'example' => '123***', 'title' => ''], + 'JobId' => ['title' => '', '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' => '', 'description' => 'The dataset ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'd-xxxxxxxx'], + 'DataSourceType' => [ + 'description' => 'The dataset type. Valid values:'."\n" ."\n" - .'* 1: the lowest priority.'."\n" - .'* 9: the highest priority.'."\n", - 'type' => 'integer', - 'format' => 'int32', + .'* OSS'."\n" + .'* NAS'."\n", + 'type' => 'string', 'required' => false, - 'example' => '5', + 'enumValueTitles' => [], + 'example' => 'OSS', + 'title' => '', ], - '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', + '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/', 'title' => ''], + '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/"}', 'title' => ''], + 'SummaryPath' => ['title' => '', '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/', 'title' => ''], + 'DisplayName' => ['title' => '', 'description' => 'The TensorBoard name'."\n", 'type' => 'string', 'required' => false, 'example' => 'tensorboard'], + 'SourceType' => ['description' => 'The source type.'."\n", 'type' => 'string', 'required' => false, 'example' => 'job', 'title' => ''], + 'SourceId' => ['description' => 'The source ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'dlc-xxxxxx', 'title' => ''], + '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', 'title' => '', 'example' => ''], 'required' => false, - 'example' => 'PRIVATE', + 'title' => '', + 'example' => '', ], - 'JobSpecs' => [ - 'title' => '任务规格定义', + 'Cpu' => ['description' => 'The number of vCPU cores.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1', 'title' => ''], + 'Memory' => ['description' => 'The memory size. Unit: GB.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1000', 'title' => ''], + 'TensorboardDataSources' => [ + 'description' => 'The configurations of datasets mounted with the TensorBoard job.'."\n", 'type' => 'array', - 'items' => [ - '$ref' => '#/components/schemas/JobSpec', - ], + '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', 'title' => '', 'example' => ''], + 'required' => false, + 'title' => '', + 'example' => '', ], + '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', 'title' => '', 'example' => ''], + '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', 'title' => ''], + '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', 'title' => ''], + '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', 'title' => ''], ], 'required' => false, + 'example' => '380', + 'title' => '', ], ], ], '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', - ], + 'JobId' => ['title' => '', 'description' => 'The job ID.'."\n", 'type' => 'string', 'example' => 'dlc-20210126170216-xxxxxxxx'], + 'DataSourceId' => ['title' => '', 'description' => 'The dataset ID.'."\n", 'type' => 'string', 'example' => 'ds-20210126170216-xxxxxxxx'], + 'TensorboardId' => ['title' => '', 'description' => 'TensorBoard ID'."\n", 'type' => 'string', 'example' => 'tbxxxxxxxx'], + 'RequestId' => ['title' => '', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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', + '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', + 'changeSet' => [ + ['createdAt' => '2024-07-11T11:23:57.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-03-28T07:37:36.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'paidlc:CreateTensorboard', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateTensorboard'], + ], ], + ], + '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', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '13123', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + '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' => false, - 'example' => 'dlc-20210126170216-xxxxxx', - ], + 'schema' => ['title' => '', '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' => [ - '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', - ], + 'JobId' => ['title' => '', 'description' => 'The job ID.'."\n", 'type' => 'string', 'example' => 'dlc*************'], + 'RequestId' => ['title' => '', 'description' => 'The request ID. You can troubleshoot issues based on the request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc*************\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', + 'title' => 'DeleteJob', + 'changeSet' => [ + ['createdAt' => '2024-08-22T10:38:05.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-01-06T07:37:50.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'paidlc:DeleteJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteJob'], + ], ], + ], + 'DeleteJobTemplate' => [ + 'path' => '/api/v1/jobtemplates/{TemplateId}', + 'methods' => ['delete'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'read', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '13122', - 'abilityTreeNodes' => [ - 'FEATURElearnQJXF95', - ], + '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' => 'TemplateId', + 'in' => 'path', + 'schema' => ['description' => 'The template ID.', 'type' => 'string', 'required' => true, 'maxLength' => 128, 'title' => '', 'example' => 'tplwk80096dw**** '], ], - [ - 'name' => 'EndTime', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ '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', + 'type' => 'object', + 'properties' => [ + 'TemplateId' => ['description' => 'The template ID.', 'type' => 'string', 'title' => '', 'example' => 'tplwk80096dw****'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '78F6FCE2-278F-4C4A-A6B7-DD8ECEA****'], + ], + 'description' => 'Template deletion information', + 'title' => '', + 'example' => '', ], ], + ], + 'title' => 'DeleteJobTemplate', + 'summary' => 'Deletes a job template. You cannot delete a job template that is in use by a job.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - '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', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'paidlc:DeleteJobTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TemplateId\\": \\"tplwk80096dw****\\",\\n \\"RequestId\\": \\"78F6FCE2-278F-4C4A-A6B7-DD8ECEA****\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'DeleteRayHistoryServer' => [ + 'path' => '/api/v1/rayhistoryservers/{RayHistoryServerId}', + 'methods' => ['delete'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - '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', - ], + 'AK' => [], ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], + ], + 'parameters' => [ [ - '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' => 'RayHistoryServerId', + 'in' => 'path', + 'schema' => ['description' => 'The ID of the Ray History Server to delete.', 'type' => 'string', 'required' => false, 'example' => 'rhsxxx', 'title' => ''], ], - [ - 'name' => 'Order', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '排序顺序', - 'description' => 'The sorting order. Valid values:'."\n" - ."\n" - .'* desc (default)'."\n" - .'* asc'."\n", - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'asc' => 'asc', - 'desc' => 'desc', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '78F6FCE2-278F-4C4A-A6B7-DD8ECEA9C456', 'title' => ''], ], - 'example' => 'desc', - 'default' => 'desc', + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'DeleteRayHistoryServer', + 'summary' => 'Deletes a Ray History Server.', + 'description' => 'Before calling this API, ensure you understand the billing methods and [Pricing](~~171758~~) of PAI-DLC.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"78F6FCE2-278F-4C4A-A6B7-DD8ECEA9C456\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'DeleteTensorboard' => [ + 'summary' => 'Deletes a stopped TensorBoard.', + 'path' => '/api/v1/tensorboards/{TensorboardId}', + 'methods' => ['delete'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - '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', - ], + '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' => '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*****', - ], + 'schema' => ['title' => '', 'description' => 'The workspace ID.'."\n", 'type' => 'string', 'required' => false, 'example' => '46099'], ], [ - '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' => 'TensorboardId', + 'in' => 'path', + 'schema' => ['title' => '', '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], ], - [ - 'name' => 'Tags', - 'in' => 'query', - 'style' => 'json', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '自定义标签', - 'description' => 'The tags.'."\n", 'type' => 'object', - 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'example' => 'recommandation', - 'description' => 'The tag.'."\n", + 'properties' => [ + 'TensorboardId' => ['title' => '', 'description' => 'The TensorBoard ID.'."\n", 'type' => 'string', 'example' => 'tensorboard-20210114104214-vf9lowjt3pso'], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], - [ - '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', + ], + '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', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'paidlc:DeleteTensorboard', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], ], - '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', - ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteTensorboard'], ], + ], + ], + 'GetDashboard' => [ + 'summary' => 'Retrieves the Dashboard URL for a DLC job, if available.', + 'path' => '/api/v1/jobs/{jobId}/dashboard', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'NumericRangeMin', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + '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' => 'NumericRangeMax', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'name' => 'jobId', + 'in' => 'path', + 'schema' => ['description' => 'Job ID', 'type' => 'string', 'example' => 'dlc1k7426goc7bvy', 'title' => '', 'required' => false], ], [ - 'name' => 'EnableAssignNode', + 'name' => 'isShared', 'in' => 'query', 'schema' => [ - 'type' => 'string', + 'description' => 'Indicates whether this is a shared link. If it is, the \\`token\\` parameter is also required.', + 'type' => 'boolean', + 'enum' => ['true', 'false'], + 'title' => '', + 'required' => false, + 'example' => 'false', ], ], [ - 'name' => 'TemplateId', + 'name' => 'token', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - ], + 'schema' => ['description' => 'The token obtained from GetToken.', 'type' => 'string', 'example' => 'some_token_value', 'title' => '', 'required' => false], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The jobs.'."\n", + 'title' => '', + 'description' => 'Schema of Response', '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', - ], + 'url' => ['description' => 'The Dashboard URL.', 'type' => 'string', 'example' => 'https://dlcj1jzm1p01saqw-spark.pre-dsw-gateway-cn-hangzhou.data.aliyun.com', 'title' => ''], ], + 'example' => '', ], ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetDashboard', + 'description' => 'Before using this API, review the billing methods and [pricing](~~171758~~) for PAI-DLC.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"url\\": \\"https://dlcj1jzm1p01saqw-spark.pre-dsw-gateway-cn-hangzhou.data.aliyun.com\\"\\n}","type":"json"}]', + 'translator' => 'manual', ], 'GetJob' => [ - 'summary' => 'Obtains the configuration and runtime information of a job.', + 'summary' => 'Retrieves the detailed configuration and runtime information of a job.', 'path' => '/api/v1/jobs/{JobId}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ @@ -3573,1861 +2311,1441 @@ 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '13115', - 'abilityTreeNodes' => [ - 'FEATURElearnQJXF95', - ], + '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, - ], + 'schema' => ['title' => '', 'description' => 'The job ID. For information about how to obtain the job ID, see [ListJobs](~~459676~~).', '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', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to return job details. Default value: true.', 'type' => 'boolean', 'example' => 'true', 'required' => false], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'A JSON string.'."\n", + 'description' => 'A JSON-formatted string.', '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.', - ], + 'JobId' => ['title' => '', 'description' => 'The job ID.', 'type' => 'string', 'example' => 'dlc*******'], + 'JobType' => ['title' => '', 'description' => 'The job type. This value is specified by the JobType parameter in the [CreateJob](~~459672~~) operation.', 'type' => 'string', 'example' => 'TFJob'], + 'DisplayName' => ['title' => '', 'description' => 'The job name.', 'type' => 'string', 'example' => 'tf-mnist-test'], + 'UserId' => ['title' => '', 'description' => 'The Alibaba Cloud UID of the user who submitted the job.', 'type' => 'string', 'example' => '12*********'], + 'Status' => ['title' => '', 'description' => 'The job status. Valid values:'."\n" + .'- Creating'."\n" + .'- Queuing'."\n" + .'- Bidding (currently only for Lingjun spot jobs)'."\n" + .'- EnvPreparing'."\n" + .'- SanityChecking'."\n" + .'- Running'."\n" + .'- Restarting'."\n" + .'- Stopping'."\n" + .'- SucceededReserving'."\n" + .'- FailedReserving'."\n" + .'- Succeeded'."\n" + .'- Failed'."\n" + .'- Stopped.', 'type' => 'string', 'example' => 'Stopped'], + 'WorkspaceId' => ['title' => '', 'description' => 'The ID of the workspace to which the job belongs.', 'type' => 'string', 'example' => '268'], + 'WorkspaceName' => ['title' => '', 'description' => 'The name of the workspace to which the job belongs.', 'type' => 'string', 'example' => 'dlc-workspace'], + 'ResourceId' => ['title' => '', 'description' => 'The ID of the resource group in which the job runs.', 'type' => 'string', 'example' => 'r******'], + 'ResourceLevel' => ['title' => '', 'description' => 'The resource level used by the job at runtime.', 'type' => 'string', 'example' => 'L0'], + 'ReasonCode' => ['title' => '', 'description' => 'The status detail code, which is a subcategory of the current status (Status).', 'type' => 'string', 'example' => 'JobStoppedByUser'], + 'ReasonMessage' => ['title' => '', 'description' => 'The detailed description of the status.', '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", + 'title' => '', + 'description' => 'The node configurations of the job. For more information, see the **JobSpecs** parameter in the CreateJob operation.', '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', + 'items' => ['description' => 'The detailed configuration of a node type.', '$ref' => '#/components/schemas/JobSpec', 'title' => '', 'example' => ''], + 'example' => '', ], + 'UserCommand' => ['title' => '', 'description' => 'The startup command for each node.', 'type' => 'string', 'example' => 'python /root/code/mnist.py'], 'DataSources' => [ - 'title' => '数据源配置列表', - 'description' => 'The data sources.'."\n", + 'title' => '', + 'description' => 'The list of data sources.', 'type' => 'array', 'items' => [ - 'description' => 'The data source.'."\n", + 'description' => 'The data source.', '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/', - ], + 'DataSourceId' => ['title' => '', 'description' => 'The data source ID.', 'type' => 'string', 'example' => 'd*******'], + 'MountPath' => ['title' => '', 'description' => 'The local mount path. This is an optional parameter. If left empty, the mount path specified in the data source is used.', 'type' => 'string', 'example' => '/mnt/data/'], + 'Uri' => ['title' => '', 'description' => 'The data source path.', 'type' => 'string', 'example' => 'oss://bucket.oss-cn-hangzhou-internal.aliyuncs.com/path/'], ], + 'title' => '', + 'example' => '', ], + 'example' => '', ], 'CodeSource' => [ - 'title' => '代码源配置', - 'description' => 'The code source.'."\n", + 'title' => '', + 'description' => 'The code source.', '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', - ], + 'CodeSourceId' => ['title' => '', 'description' => 'The code source ID.', 'type' => 'string', 'example' => 'code******'], + 'Branch' => ['title' => '', 'description' => 'The code branch.', 'type' => 'string', 'example' => 'master'], + 'Commit' => ['title' => '', 'description' => 'The code commit ID.', 'type' => 'string', 'example' => '44da109b59f8596152987eaa8f3b2487xxxxxx'], + 'MountPath' => ['title' => '', 'description' => 'The local mount path.', 'type' => 'string', 'example' => '/mnt/data'], ], + 'example' => '', ], 'ThirdpartyLibs' => [ - 'title' => '三方库配置列表', - 'description' => 'The third-party Python libraries to be installed.'."\n", + 'title' => '', + 'description' => 'The list of third-party Python libraries to install.', '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/', + 'items' => ['description' => 'The third-party Python library.', 'type' => 'string', 'example' => 'numpy==1.16.1', 'title' => ''], + 'example' => '', ], + 'ThirdpartyLibDir' => ['title' => '', 'description' => 'The folder that contains the third-party library (requirements.txt) file.', 'type' => 'string', 'example' => '/root/code/'], 'Envs' => [ - 'title' => '环境变量配置', - 'description' => 'The configurations of environment variables.'."\n", + 'title' => '', + 'description' => 'The environment variable configurations.', 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'string', - 'example' => 'ENABLE_DEBUG_MODE', - 'description' => 'The key and value of the environment variable.'."\n", - ], + 'additionalProperties' => ['description' => '环境变量Key和Value。', 'type' => 'string', 'example' => 'ENABLE_DEBUG_MODE', 'title' => ''], + 'example' => '', ], 'UserVpc' => [ - 'title' => '用户VPC', - 'description' => 'The VPC of the user.'."\n", + 'title' => '', + 'description' => 'The user VPC.', '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****', - ], + 'VpcId' => ['title' => '', 'description' => 'The ID of the user VPC.', 'type' => 'string', 'example' => 'vpc-abcdef****'], + 'SwitchId' => ['title' => '', 'description' => 'The ID of the user vSwitch.', 'type' => 'string', 'example' => 'vs-abcdef****'], + 'SecurityGroupId' => ['title' => '', 'description' => 'The ID of the user security group.', 'type' => 'string', 'example' => 'sg-abcdef****'], 'ExtendedCidrs' => [ - 'title' => '扩展网段,示例:192.168.0.1/24', - 'description' => 'The extended CIDR block. Example: 192.168.0.1/24.'."\n", + 'title' => '', + 'description' => 'The extended CIDR blocks. Example: 192.168.0.1/24.', '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', + 'items' => ['title' => '', 'description' => 'The extended CIDR block.', 'type' => 'string', 'example' => '192.168.0.1/24'], + 'example' => '', ], + 'DefaultRoute' => ['title' => '', 'description' => 'The default route. This parameter is valid only for general computing resources. Valid values:'."\n" + ."\n" + .'eth0: uses the default network interface controller (NIC) to access external networks through the public gateway.'."\n" + .'eth1: uses the user elastic network interfaces (ENIs) to access external networks through the private gateway.', 'type' => 'string', 'example' => ''], ], - ], - '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', - ], + 'example' => '', + ], + 'GmtCreateTime' => ['title' => '', 'description' => 'The time when the job was created (UTC).', 'type' => 'string', 'example' => '2021-01-12T14:35:01Z'], + 'GmtSubmittedTime' => ['title' => '', 'description' => 'The time when the job was submitted to the cluster (UTC).', 'type' => 'string', 'example' => '2021-01-12T14:36:01Z'], + 'GmtRunningTime' => ['title' => '', 'description' => 'The time when the job started running (UTC).', 'type' => 'string', 'example' => '2021-01-12T14:36:21Z'], + 'GmtSuccessedTime' => ['title' => '', 'description' => 'The time when the job completed successfully (UTC).', 'type' => 'string', 'example' => '2021-01-12T15:36:08Z'], + 'GmtStoppedTime' => ['title' => '', 'description' => 'The time when the job was stopped (UTC).', 'type' => 'string', 'example' => '2021-01-12T15:36:08Z'], + 'GmtFailedTime' => ['title' => '', 'description' => 'The time when the job failed (UTC).', 'type' => 'string', 'example' => '2021-01-12T15:36:08Z'], + 'Duration' => ['title' => '', 'description' => 'The job running duration, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '3602'], 'Pods' => [ - 'title' => '作业所以运行Pod列表', - 'description' => 'All running nodes of the job.'."\n", + 'title' => '', + 'description' => 'All nodes running in the job.', 'type' => 'array', 'items' => [ - 'description' => 'The nodes.'."\n", + 'description' => 'The node array.', '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', - ], + 'Type' => ['title' => '', 'description' => 'The node type, which corresponds to a JobSpec in the JobSpecs parameter of the CreateJob operation.', 'type' => 'string', 'example' => 'Worker'], + 'PodId' => ['title' => '', 'description' => 'The node ID. You can use this ID with the GetPodLogs and GetPodEvents operations to retrieve detailed logs and events for the node.', 'type' => 'string', 'example' => 'Worker'], + 'PodUid' => ['title' => '', 'description' => 'Pod UID。', 'type' => 'string', 'example' => 'fe846462-af2c-4521-bd6f-96787a57591d'], + 'Status' => ['title' => '', 'description' => 'The node status. Valid values:'."\n" + ."\n" + .'- Pending'."\n" + .'- Running'."\n" + .'- Succeeded'."\n" + .'- Failed'."\n" + .'- Unknown.', 'type' => 'string', 'example' => 'Running'], + 'Ip' => ['title' => '', 'description' => 'The network IP address of the node.', 'type' => 'string', 'example' => '10.0.1.2'], + 'GmtCreateTime' => ['title' => '', 'description' => 'The time when the pod was created (UTC).', 'type' => 'string', 'example' => '2021-01-12T14:36:01Z'], + 'GmtStartTime' => ['title' => '', 'description' => 'The time when the node started (UTC).', 'type' => 'string', 'example' => '2021-01-12T14:36:01Z'], + 'GmtFinishTime' => ['title' => '', 'description' => 'The time when the node finished (UTC).', 'type' => 'string', 'example' => '2021-01-12T15:36:05Z'], 'HistoryPods' => [ - 'title' => '历史Pods', - 'description' => 'The historical nodes.'."\n", + 'title' => '', + 'description' => 'The historical pods.', 'type' => 'array', 'items' => [ - 'description' => 'The array of historical nodes.'."\n", + 'description' => 'The historical pod array.', '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', - ], + 'Type' => ['title' => '', 'description' => 'The pod type.', 'type' => 'string', 'example' => 'Worker'], + 'PodId' => ['title' => '', 'description' => 'Pod ID。', 'type' => 'string', 'example' => 'Worker'], + 'PodUid' => ['title' => '', 'description' => 'Pod UID。', 'type' => 'string', 'example' => 'fe846462-af2c-4521-bd6f-96787a57591d'], + 'Status' => ['title' => '', 'description' => 'The pod status.', 'type' => 'string', 'example' => 'Failed'], + 'Ip' => ['title' => '', 'description' => 'Pod IP。', 'type' => 'string', 'example' => '10.0.1.3'], + 'GmtCreateTime' => ['title' => '', 'description' => 'The time when the pod was created (UTC).', 'type' => 'string', 'example' => '2021-01-12T14:36:01Z'], + 'GmtStartTime' => ['title' => '', 'description' => 'The time when the pod started (UTC).', 'type' => 'string', 'example' => '2021-01-12T14:36:01Z'], + 'GmtFinishTime' => ['title' => '', 'description' => 'The time when the pod finished (UTC).', 'type' => 'string', 'example' => '2021-01-12T14:36:01Z'], + 'SubStatus' => ['title' => '', 'description' => 'The pod substatus, such as preemption status. Valid values:'."\n" + .'- Normal'."\n" + .'- Evicted.', 'type' => 'string', 'example' => 'Normal'], + 'ResourceType' => ['title' => '', 'description' => 'The resource usage type of the pod.', 'type' => 'string', 'example' => 'Normal'], + 'Duration' => ['title' => '', 'description' => 'The running duration of the pod.', 'type' => 'number', 'format' => 'double', 'example' => ''], + 'NodeName' => ['title' => '', 'description' => 'The node name.', 'type' => 'string', 'example' => ''], 'PodIps' => [ - 'title' => 'Pod的IP地址', + 'title' => '', + 'description' => 'The IP addresses of the pod.', 'type' => 'array', - 'items' => [ - 'title' => '每张网卡对应的IP地址', - '$ref' => '#/components/schemas/PodNetworkInterface', - ], + 'items' => ['title' => '', 'description' => 'The IP address corresponding to each NIC.', '$ref' => '#/components/schemas/PodNetworkInterface', 'example' => ''], + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], + 'example' => '', ], - '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', - ], + 'SubStatus' => ['title' => '', 'description' => 'The pod substatus, such as preemption status. Valid values:'."\n" + .'- Normal'."\n" + .'- Evicted.', 'type' => 'string', 'example' => 'Normal'], + 'ResourceType' => ['title' => '', 'description' => 'The resource usage type of the pod.', 'type' => 'string', 'example' => 'Normal'], + 'Duration' => ['title' => '', 'description' => 'The running duration of the pod.', 'type' => 'number', 'format' => 'double', 'example' => ''], + 'NodeName' => ['title' => '', 'description' => 'The node name.', 'type' => 'string', 'example' => ''], 'PodIps' => [ - 'title' => 'Pod的IP地址', + 'title' => '', + 'description' => 'The IP addresses of the pod.', 'type' => 'array', - 'items' => [ - 'title' => '每张网卡对应的IP地址', - '$ref' => '#/components/schemas/PodNetworkInterface', - ], + 'items' => ['title' => '', 'description' => 'The IP address corresponding to each NIC.', '$ref' => '#/components/schemas/PodNetworkInterface', 'example' => ''], + 'example' => '', ], ], + 'title' => '', + 'example' => '', ], - ], - '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', - ], + 'example' => '', + ], + 'RequestId' => ['title' => '', 'description' => 'The request ID, used for diagnostics and troubleshooting.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxxxx'], + 'Settings' => ['title' => '', 'description' => 'The additional parameter settings of the job.', '$ref' => '#/components/schemas/JobSettings', 'example' => ''], + 'ClusterId' => ['title' => '', 'description' => 'The cluster ID.', 'type' => 'string', 'example' => 'a*****'], + 'ElasticSpec' => ['title' => '', 'description' => 'The elastic job parameters.', '$ref' => '#/components/schemas/JobElasticSpec', 'example' => ''], + 'EnabledDebugger' => ['title' => '', 'description' => 'Indicates whether the debugger mode is enabled for the job.', 'type' => 'boolean', 'example' => 'false'], + 'Priority' => ['title' => '', 'description' => 'The priority of the job. Valid values: 1 to 9.', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'SubStatus' => ['title' => '', 'description' => 'The job substatus, such as preemption retry status.', 'type' => 'string', 'example' => 'Restarting'], + 'RestartTimes' => ['title' => '', 'description' => 'The number of retries used and the maximum number of retries for the job.', 'type' => 'string', 'example' => '0/10'], 'StatusHistory' => [ - 'description' => 'The status history.'."\n", + 'title' => '', + 'description' => 'The historical statuses.', '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' => '可访问性', - ], + 'items' => ['description' => 'The historical statuses.', '$ref' => '#/components/schemas/StatusTransitionItem', 'title' => '', 'example' => ''], + 'example' => '', + ], + 'TenantId' => ['title' => '', 'description' => 'The tenant ID.', 'type' => 'string', 'example' => 'GAR***W134'], + 'ResourceType' => ['title' => '', 'description' => 'The resource type. Valid values: ECS, Lingjun, and ACS.', 'type' => 'string', 'example' => 'ECS'], + 'CredentialConfig' => ['title' => '', 'description' => 'The access credential configuration.', '$ref' => '#/components/schemas/CredentialConfig', 'example' => ''], + 'Accessibility' => ['title' => '', 'description' => 'The visibility of the job. Valid values:'."\n" + .'- PUBLIC: Visible to all users in the workspace.'."\n" + .'- PRIVATE (default): Visible only to you and administrators in the workspace.', 'type' => 'string', 'example' => 'PRIVATE'], 'RestartRecord' => [ - 'title' => '作业重启记录', + 'title' => '', + 'description' => 'The job restart records.', 'type' => 'array', 'items' => [ - 'title' => '作业重启记录', + 'title' => '', + 'description' => 'The job restart records.', 'type' => 'object', 'properties' => [ 'DetailErrorInfoList' => [ - 'title' => '错误信息列表', + 'title' => '', + 'description' => 'The list of fault error messages.', 'type' => 'array', 'items' => [ - 'title' => '错误信息', + 'title' => '', + 'description' => 'The fault error message.', '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', - ], + 'AddJobLevelBlacklist' => ['title' => '', 'description' => 'The job-level blacklist.', 'type' => 'boolean', 'example' => ''], + 'AddNodeToBlacklist' => ['title' => '', 'description' => 'The node blacklist.', 'type' => 'boolean', 'example' => ''], + 'DetailErrorMsg' => ['title' => '', 'description' => 'The detailed error message.', 'type' => 'string', 'example' => ''], + 'ErrorCode' => ['title' => '', 'description' => 'The error code.', 'type' => 'string', 'example' => ''], + 'ErrorMsg' => ['title' => '', 'description' => 'The fault error message.', 'type' => 'string', 'example' => ''], + 'ErrorSource' => ['title' => '', 'description' => 'The error source.', 'type' => 'string', 'example' => ''], + 'Node' => ['title' => '', 'description' => 'The node.', 'type' => 'string', 'example' => ''], + 'Pod' => ['title' => '', 'description' => 'The pod.', 'type' => 'string', 'example' => ''], + 'TriggerRestart' => ['title' => '', 'description' => 'Indicates whether a restart was triggered.', 'type' => 'boolean', 'example' => ''], ], + 'example' => '', ], + 'example' => '', ], - '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', - ], + 'JobRestartCount' => ['title' => '', 'description' => 'The number of job restarts.', 'type' => 'integer', 'format' => 'int64', 'example' => ''], + 'OccurPhase' => ['title' => '', 'description' => 'The phase in which the event occurred.', 'type' => 'string', 'example' => ''], + 'OccurTime' => ['title' => '', 'description' => 'The time when the event occurred.', 'type' => 'string', 'example' => ''], + 'Reason' => ['title' => '', 'description' => 'The reason.', 'type' => 'string', 'example' => ''], + 'RestartDurationInSec' => ['title' => '', 'description' => 'The restart duration, in seconds.', 'type' => 'integer', 'format' => 'int64', 'example' => ''], + 'RestartFailReason' => ['title' => '', 'description' => 'The reason for the restart failure.', 'type' => 'string', 'example' => ''], + 'RestartStatus' => ['title' => '', 'description' => 'The restart status.', 'type' => 'string', 'example' => ''], + 'TriggerID' => ['title' => '', 'description' => 'TriggerID', 'type' => 'string', 'example' => ''], + 'RestartLevelType' => ['title' => '', 'type' => 'string', 'description' => '', 'example' => ''], ], + 'example' => '', ], + 'example' => '', ], 'JobReplicaStatuses' => [ - 'title' => '作业副本状态', + 'title' => '', + 'description' => 'The job replica statuses.', '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', + 'items' => ['title' => '', 'description' => 'The job replica statuses.', '$ref' => '#/components/schemas/JobReplicaStatus', 'example' => ''], + 'example' => '', ], + 'GmtFinishTime' => ['title' => '', 'description' => 'The time when the job finished (UTC).', 'type' => 'string', 'example' => '2021-01-12T15:36:08Z'], 'CustomEnvs' => [ 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Key' => [ - 'type' => 'string', - ], - 'Value' => [ - 'type' => 'string', - ], - 'Visible' => [ - 'type' => 'string', - ], + 'Key' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'Value' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'Visible' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'RoleSystemEnvs' => [ + 'type' => 'object', + 'additionalProperties' => [ + 'type' => 'object', + 'additionalProperties' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'description' => '', + 'title' => '', + 'example' => '', ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'Description' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + 'SchedulingStrategy' => [ + 'title' => '', + 'type' => 'string', + 'example' => 'Auto', + 'enum' => ['Auto', 'Binpack', 'Spread'], + 'description' => '', ], ], + 'title' => '', + 'example' => '', ], ], ], - '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', + 'title' => 'Get job details', + 'changeSet' => [ + ['createdAt' => '2025-11-18T03:50:35.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-10-23T08:44:29.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2025-09-15T09:29:03.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-10-23T02:31:33.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-07-09T04:17:55.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-01-24T10:35:10.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-01-05T02:50:41.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2024-01-03T08:01:46.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2023-12-08T08:06:18.000Z', 'description' => 'Response parameters changed, Response parameters changed'], + ['createdAt' => '2022-07-21T11:12:45.000Z', 'description' => 'Response parameters changed'], + ['createdAt' => '2022-01-11T07:54:01.000Z', 'description' => 'Response parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJob'], + ], ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","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-vpc.cn-hangzhou.aliyuncs.com/cloud-dsw/tensorflow:1.12PAI-gpu-py36-cu101-ubuntu18.04\\",\\n \\"ImageConfig\\": {\\n \\"DockerRegistry\\": \\"docker****registry.com\\",\\n \\"Username\\": \\" username\\",\\n \\"Password\\": \\"password\\",\\n \\"Auth\\": \\"\\"\\n },\\n \\"PodCount\\": 1,\\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 \\"-v\\"\\n ],\\n \\"WorkingDir\\": \\"/root\\",\\n \\"Env\\": [\\n {\\n \\"Name\\": \\"ENABLE_DEBUG\\",\\n \\"Value\\": \\"true\\"\\n }\\n ],\\n \\"Resources\\": {\\n \\"Limits\\": {\\n \\"key\\": \\"{\'cpu\': \'1\', \'memory\': \'1000Mi\'}\\"\\n },\\n \\"Requests\\": {\\n \\"key\\": \\"{\'cpu\': \'1\', \'memory\': \'1000Mi\'}\\"\\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 \\"-v\\"\\n ],\\n \\"WorkingDir\\": \\"/root\\",\\n \\"Env\\": [\\n {\\n \\"Name\\": \\"ENABLE_DEBUG\\",\\n \\"Value\\": \\"true\\"\\n }\\n ],\\n \\"Resources\\": {\\n \\"Limits\\": {\\n \\"key\\": \\"{\'cpu\': \'1\', \'memory\': \'1000Mi\'}\\"\\n },\\n \\"Requests\\": {\\n \\"key\\": \\"{\'cpu\': \'1\', \'memory\': \'1000Mi\'}\\"\\n }\\n }\\n }\\n ],\\n \\"PodLabels\\": {\\n \\"key\\": \\"example-lable\\"\\n },\\n \\"PodAnnotations\\": {\\n \\"key\\": \\"example-annotation\\"\\n },\\n \\"SharedVolumeMountPaths\\": [\\n \\"/root/share/\\"\\n ],\\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 \\"RunAsGroup\\": 1000,\\n \\"SeccompProfile\\": {\\n \\"Type\\": \\"Unconfined\\",\\n \\"LocalhostProfile\\": \\"my-profiles/profile-allow.json\\"\\n },\\n \\"Privileged\\": false,\\n \\"Capabilities\\": {\\n \\"Add\\": [\\n \\"\\"\\n ],\\n \\"Drop\\": [\\n \\"\\"\\n ]\\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\\": \\"SpotWithPriceLimit\\",\\n \\"SpotDiscountLimit\\": 0.8,\\n \\"SpotPriceLimit\\": 0.4744\\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 \\"MountMode\\": \\"\\",\\n \\"LocalPath\\": \\"\\",\\n \\"MountPath\\": \\"\\"\\n }\\n ],\\n \\"AutoScalingSpec\\": {\\n \\"ScalingStrategy\\": \\"\\",\\n \\"MinReplicas\\": 0,\\n \\"MaxReplicas\\": 0,\\n \\"PodsToDelete\\": [\\n \\"\\"\\n ],\\n \\"AutoscalingMetricSpec\\": {\\n \\"MetricName\\": \\"\\",\\n \\"TargetValue\\": 0,\\n \\"StabilizationWindowSeconds\\": 0,\\n \\"Tolerance\\": \\"\\"\\n }\\n },\\n \\"ServiceSpec\\": {\\n \\"DefaultPort\\": 8080,\\n \\"ServiceMode\\": \\"PerRole\\",\\n \\"ExtraPorts\\": [\\n 8081\\n ]\\n },\\n \\"IsCheif\\": false,\\n \\"IsChief\\": false,\\n \\"RestartPolicy\\": \\"ExitCode\\",\\n \\"SystemDisk\\": {\\n \\"Size\\": 0,\\n \\"Category\\": \\"\\",\\n \\"PerformanceLevel\\": \\"\\"\\n },\\n \\"EcsSpec\\": \\"ecs.c6.large\\",\\n \\"QuotaId\\": \\"\\",\\n \\"ConsiderInSuccessPolicy\\": false,\\n \\"StartupDependencies\\": [\\n {\\n \\"Type\\": \\"\\",\\n \\"OnPhase\\": \\"\\",\\n \\"MinReplicas\\": \\"\\"\\n }\\n ],\\n \\"ElasticSpotSpecs\\": [\\n {\\n \\"InstanceType\\": \\"\\",\\n \\"SpotPriceLimit\\": 0,\\n \\"SpotDiscountLimit\\": 0,\\n \\"SpotStrategy\\": \\"\\"\\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\\": \\"16****\\",\\n \\"Caller\\": \\"SilkFlow\\",\\n \\"Tags\\": {\\n \\"key\\": \\"key:value\\"\\n },\\n \\"PipelineId\\": \\"pid-12****\\",\\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=MarkJobFail\\",\\n \\"JobReservedMinutes\\": 30,\\n \\"JobReservedPolicy\\": \\"Always\\",\\n \\"EnableCPUAffinity\\": true,\\n \\"DisableEcsStockCheck\\": false,\\n \\"AllocateAllRDMADevices\\": false,\\n \\"EnableDSWDev\\": false,\\n \\"DataJuicerConfig\\": {\\n \\"ExecutionMode\\": \\"standalone\\",\\n \\"CommandType\\": \\"config\\",\\n \\"EnableResourceEstimation\\": false,\\n \\"ResourceLimit\\": {\\n \\"CPU\\": \\"2\\",\\n \\"Memory\\": \\"10Gi\\",\\n \\"GPU\\": \\"20\\"\\n }\\n },\\n \\"ModelConfig\\": {\\n \\"ModelName\\": \\"\\",\\n \\"ModelTemplate\\": {\\n \\"ModelName\\": \\"\\",\\n \\"Provider\\": \\"\\",\\n \\"Collections\\": \\"\\"\\n }\\n },\\n \\"AllowUnschedulableNodes\\": false,\\n \\"Shell\\": \\"/bin/bash\\"\\n },\\n \\"ClusterId\\": \\"a*****\\",\\n \\"ElasticSpec\\": {\\n \\"EnableElasticTraining\\": true,\\n \\"MinParallelism\\": 1,\\n \\"MaxParallelism\\": 8,\\n \\"AIMasterType\\": \\"\\",\\n \\"AIMasterDockerImage\\": \\"\\",\\n \\"EnablePsJobElasticWorker\\": false,\\n \\"EnableAIMaster\\": false,\\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\\": false,\\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\\": false,\\n \\"AddNodeToBlacklist\\": false,\\n \\"DetailErrorMsg\\": \\"\\",\\n \\"ErrorCode\\": \\"\\",\\n \\"ErrorMsg\\": \\"\\",\\n \\"ErrorSource\\": \\"\\",\\n \\"Node\\": \\"\\",\\n \\"Pod\\": \\"\\",\\n \\"TriggerRestart\\": false\\n }\\n ],\\n \\"JobRestartCount\\": 0,\\n \\"OccurPhase\\": \\"\\",\\n \\"OccurTime\\": \\"\\",\\n \\"Reason\\": \\"\\",\\n \\"RestartDurationInSec\\": 0,\\n \\"RestartFailReason\\": \\"\\",\\n \\"RestartStatus\\": \\"\\",\\n \\"TriggerID\\": \\"\\",\\n \\"RestartLevelType\\": \\"\\"\\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 \\"StabilizationWindowSeconds\\": 0,\\n \\"Tolerance\\": \\"\\"\\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 \\"CurrentSpotInstanceType\\": \\"\\"\\n }\\n ],\\n \\"GmtFinishTime\\": \\"2021-01-12T15:36:08Z\\",\\n \\"CustomEnvs\\": [\\n {\\n \\"Key\\": \\"\\",\\n \\"Value\\": \\"\\",\\n \\"Visible\\": \\"\\"\\n }\\n ],\\n \\"RoleSystemEnvs\\": {\\n \\"key\\": {\\n \\"key\\": \\"\\"\\n }\\n },\\n \\"Description\\": \\"\\",\\n \\"SchedulingStrategy\\": \\"Auto\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + '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', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '13116', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], - 'produces' => [ - 'application/json', + 'parameters' => [ + [ + 'name' => 'JobId', + 'in' => 'path', + 'schema' => ['title' => '', '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' => '', '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' => '', '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' => '', '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', 'title' => ''], + 'example' => '', + ], + 'RequestId' => ['title' => '', 'description' => 'The request ID, which can be used for troubleshooting.'."\n", 'type' => 'string', 'example' => '78F6FCE2-278F-4C4A-A6B7-DD8ECEA9C456'], + ], + 'title' => '', + 'example' => '', + ], + ], + ], + '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', + 'changeSet' => [ + ['createdAt' => '2023-03-22T06:25:27.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJobEvents', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobEvents'], + ], + ], + ], + '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' => '203880', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + 'abilityTreeCode' => '21204', + 'abilityTreeNodes' => ['FEATURElearnWA9VRC'], ], 'parameters' => [ [ 'name' => 'JobId', 'in' => 'path', + 'schema' => ['title' => '', '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' => '', 'description' => 'The temporary token used for authentication.'."\n", 'type' => 'string', 'required' => false, 'example' => 'eyXXXX-XXXX.XXXXX'], + ], + ], + 'responses' => [ + 200 => [ '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', + 'title' => '', + 'description' => 'The monitoring data of the job.'."\n", + 'type' => 'object', + 'properties' => [ + 'JobId' => ['title' => '', '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', 'title' => '', 'example' => ''], + 'example' => '', + ], + 'RequestId' => ['title' => '', 'description' => 'The request ID. You can troubleshoot issues based on the request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], + ], + 'example' => '', + ], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc-20210126170216-*******\\",\\n \\"PodMetrics\\": [\\n {\\n \\"PodId\\": \\"dlc-20210329110128-******-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', + 'changeSet' => [ + ['createdAt' => '2021-04-23T06:37:52.000Z', 'description' => 'OpenAPI offline'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJobMetrics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobMetrics'], + ], + ], + ], + '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', 'title' => ''], + ], [ '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', - ], + 'schema' => ['description' => 'The nth time for which the job sanity check is performed.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'minimum' => '1', 'example' => '1', 'title' => ''], ], [ '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', - ], + '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', 'title' => ''], ], [ '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****', - ], + '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****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', + 'title' => '', 'description' => 'The specified job sanity check result.'."\n", 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => 'The job ID.'."\n", - 'type' => 'string', - 'example' => 'dlc-20210126170216-xxxxxx', - ], + 'JobId' => ['description' => 'The job ID.'."\n", 'type' => 'string', 'example' => 'dlc-20210126170216-xxxxxx', 'title' => ''], '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', + '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', 'title' => '', 'example' => ''], + 'title' => '', + 'example' => '', ], + 'RequestID' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => 'B3789344-F1xxxBE-5xx2-A04D-xxxxx', 'title' => ''], ], + 'example' => '', ], ], ], - '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"}]', + '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', + 'changeSet' => [ + ['createdAt' => '2024-02-26T03:31:14.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-01-08T08:09:54.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJobSanityCheckResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobSanityCheckResult'], + ], ], + ], + 'GetJobTemplate' => [ + 'path' => '/api/v1/jobtemplates/{TemplateId}', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', - 'abilityTreeCode' => '204035', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ - 'name' => 'JobId', + 'name' => 'TemplateId', 'in' => 'path', - 'schema' => [ - 'description' => 'The job ID. Call [ListJobs](~~459676~~) to get the job ID.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'dlc-20210114104214-xxxx', - ], + 'schema' => ['description' => 'The ID of the job template.', 'type' => 'string', 'required' => true, 'maxLength' => 128, 'title' => '', 'example' => 'tplmceolmf2****'], ], [ - 'name' => 'Order', + 'name' => 'Version', 'in' => 'query', - 'schema' => [ - 'description' => 'The sorting order:'."\n" - ."\n" - .'* desc: descending order'."\n" - .'* asc: ascending order'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'desc', - ], + 'schema' => ['description' => 'The version to retrieve. If omitted, the default version is returned. Specify `all` to retrieve all versions.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'all'], ], ], '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", + 'TemplateId' => ['description' => 'The ID of the job template.', 'type' => 'string', 'title' => '', 'example' => 'tplmceolmf2****'], + 'TemplateName' => ['description' => 'The name of the job template.', 'type' => 'string', 'title' => '', 'example' => 'job-template-example-1778047****'], + 'Description' => ['description' => 'A description of the job template.', 'type' => 'string', 'title' => '', 'example' => 'job template description'], + 'Metadata' => ['description' => 'A collection of user-defined key-value pairs.', 'type' => 'object', 'title' => '', 'example' => '{}'], + 'UserId' => ['description' => 'The ID of the user who created the job template.', 'type' => 'string', 'title' => '', 'example' => '20**************26'], + 'WorkspaceId' => ['description' => 'The ID of the workspace that contains the job template.', 'type' => 'string', 'title' => '', 'example' => '4***9'], + 'TenantId' => ['description' => 'The ID of the tenant that owns the job template.', 'type' => 'string', 'title' => '', 'example' => '142388383837****'], + 'DefaultVersion' => ['description' => 'The default version of the job template.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], + 'GmtCreateTime' => ['description' => 'The time the job template was created.', 'type' => 'string', 'format' => 'iso8601', 'title' => '', 'example' => '2026-01-08T14:17:55Z'], + 'GmtModifyTime' => ['description' => 'The time the job template was last modified.', 'type' => 'string', 'format' => 'iso8601', 'title' => '', 'example' => '2026-03-03T05:48:02Z'], + 'ModifiedBy' => ['description' => 'The ID of the user who last modified the job template.', 'type' => 'string', 'title' => '', 'example' => '20**************26'], + 'Versions' => [ + 'description' => 'An array of template versions. This array contains only one version if a specific version is requested, or all versions if `all` is specified.', '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', + 'type' => 'object', + 'properties' => [ + 'Version' => ['description' => 'The version number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], + 'Content' => ['description' => 'The configuration of the version, in JSON format.', 'type' => 'any', 'title' => '', 'example' => '{\\"WorkspaceId\\":\\"15****05\\",\\"JobType\\":\\"PyTorchJob\\",\\"UserCommand\\":\\"echo hello\\",\\"JobSpecs\\":[{\\"Type\\":\\"Worker\\",\\"PodCount\\":1,\\"Image\\":\\"dsw-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai/pytorch:2.8.0-gpu-py313-cu129-ubuntu22.04-3995b779-1764361782\\",\\"EcsSpec\\":\\"ecs.gn7i-c8g1.2xlarge\\"}],\\"ResourceType\\":\\"ECS\\",\\"_ResourcePaymentType\\":\\"PostPaid\\",\\"CredentialConfig\\":{\\"EnableCredentialInject\\":false},\\"Accessibility\\":\\"PRIVATE\\",\\"Settings\\":{\\"JobReservedMinutes\\":0,\\"Tags\\":{}}}'], + 'Constraints' => ['description' => 'The field constraint rules. The key is a JSONPath expression and the value is a constraint type.', 'type' => 'object', 'title' => '', 'example' => '{\\"JobSpecs[0].Image\\":\\"locked\\",\\"UserCommand\\":\\"locked\\",\\"JobType\\":\\"locked\\"}'], + 'CreatedBy' => ['description' => 'The ID of the user who created the version.', 'type' => 'string', 'title' => '', 'example' => '20**************26'], + 'GmtCreateTime' => ['description' => 'The time the version was created.', 'type' => 'string', 'format' => 'iso8601', 'title' => '', 'example' => '2026-01-08T14:17:55Z'], ], + 'description' => 'Details of a template version.', + 'title' => '', + 'example' => '', ], + 'title' => '', + 'example' => '', ], - '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', - ], + 'TotalCount' => ['description' => 'The total number of versions returned. This value is 1 if a specific version is queried, or the total count if all versions are queried.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'], + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3****'], ], + 'description' => 'Details of the job template.', + 'title' => '', + 'example' => '', ], ], ], - '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', + 'title' => 'GetJobTemplate', + 'summary' => 'Retrieves the details of a job template.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJobTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TemplateId\\": \\"tplmceolmf2****\\",\\n \\"TemplateName\\": \\"job-template-example-1778047****\\",\\n \\"Description\\": \\"job template description\\",\\n \\"Metadata\\": {},\\n \\"UserId\\": \\"20**************26\\",\\n \\"WorkspaceId\\": \\"4***9\\",\\n \\"TenantId\\": \\"142388383837****\\",\\n \\"DefaultVersion\\": 2,\\n \\"GmtCreateTime\\": \\"2026-01-08T14:17:55Z\\",\\n \\"GmtModifyTime\\": \\"2026-03-03T05:48:02Z\\",\\n \\"ModifiedBy\\": \\"20**************26\\",\\n \\"Versions\\": [\\n {\\n \\"Version\\": 2,\\n \\"Content\\": \\"{\\\\\\\\\\\\\\"WorkspaceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"15****05\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"JobType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"PyTorchJob\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"UserCommand\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"echo hello\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"JobSpecs\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"Type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Worker\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"PodCount\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"Image\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"dsw-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai/pytorch:2.8.0-gpu-py313-cu129-ubuntu22.04-3995b779-1764361782\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EcsSpec\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"ecs.gn7i-c8g1.2xlarge\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"ResourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"ECS\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"_ResourcePaymentType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"PostPaid\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"CredentialConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"EnableCredentialInject\\\\\\\\\\\\\\":false},\\\\\\\\\\\\\\"Accessibility\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"PRIVATE\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"Settings\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"JobReservedMinutes\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"Tags\\\\\\\\\\\\\\":{}}}\\",\\n \\"Constraints\\": {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n },\\n \\"CreatedBy\\": \\"20**************26\\",\\n \\"GmtCreateTime\\": \\"2026-01-08T14:17:55Z\\"\\n }\\n ],\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3****\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'GetMetrics' => [ + 'summary' => 'Retrieve metrics data.', + 'path' => '/api/v1/cms/metrics', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '13118', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '203098', + 'abilityTreeNodes' => ['FEATURElearn8Y18OQ'], ], 'parameters' => [ [ + 'name' => 'Namespace', + 'in' => 'query', + 'schema' => ['description' => 'The namespace for cloud service monitoring data. For more information about namespaces, see cloud service monitoring metrics.', 'type' => 'string', 'required' => false, 'example' => 'acs_pai_dlc', 'title' => ''], + ], + [ '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-*****', - ], + 'in' => 'query', + 'schema' => ['description' => 'The job ID.', 'type' => 'string', 'required' => false, 'example' => 'dlckjd5hm84tmjec', 'title' => ''], ], [ - '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' => 'Dimensions', + 'in' => 'query', + 'schema' => ['description' => '(Required) Request parameter.', 'type' => 'string', 'required' => false, 'example' => '[{\\"jobId\\":\\"dlcdpfpc96mh63mg\\",\\"pod\\":\\"dlcdpfpc96mh63mg-worker-748\\",\\"regionId\\":\\"cn-wulanchabu\\",\\"userId\\":\\"1458867964644701\\"}]', 'title' => ''], ], [ - 'name' => 'PodUid', + 'name' => 'Length', '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****', - ], + 'schema' => ['description' => 'The number of records per query for paged queries. Default value: 1000.', 'type' => 'string', 'required' => false, 'example' => '5000', 'title' => ''], ], [ - 'name' => 'MaxLines', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'title' => '返回的日志的最大行数,默认值:2000。', - 'description' => 'The maximum number of log entries. Default value: 2000.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], + 'schema' => ['description' => 'The end time of the query. Default value: current time.', 'type' => 'string', 'required' => false, 'example' => '2020-11-09T16:00:00Z', 'title' => ''], ], [ - 'name' => 'StartTime', + 'name' => 'Period', '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', - ], + 'schema' => ['description' => 'The statistical period for monitoring data. Unit: seconds. Valid values: 15, 60, 900, and 3600.', 'type' => 'string', 'required' => false, 'example' => '5', 'title' => ''], ], [ - 'name' => 'EndTime', + 'name' => 'NextToken', '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', - ], + 'schema' => ['description' => 'The pagination cursor token. If you do not set this parameter, the first page of data is returned. When a NextToken value is returned, more data is available. Use the returned NextToken as a parameter in your next request to retrieve the next page. Repeat until NextToken returns null, which means all data has been retrieved.', 'type' => 'string', 'required' => false, 'example' => '2c6b65b6f9d625d4716568ca19b2064be0b5e8707e68181f', 'title' => ''], ], [ - 'name' => 'DownloadToFile', + 'name' => 'MetricName', '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', - ], + 'schema' => ['description' => 'Metric name. Not filled. Not in use.', 'type' => 'string', 'required' => false, 'example' => 'JOB_MEMORY_FREE', 'title' => ''], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The start time of the monitoring data query interval (UTC). Default value: one hour ago.', 'type' => 'string', 'required' => false, 'example' => '2020-11-08T16:00:00Z', 'title' => ''], + ], + [ + 'name' => 'Token', + 'in' => 'query', + 'schema' => ['description' => 'A temporary token used for authentication.', 'type' => 'string', 'required' => false, 'example' => 'eyXXXX-XXXX.XXXXX', 'title' => ''], ], ], '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', - ], + 'NextToken' => ['description' => 'Id of the request', 'type' => 'string', 'title' => '', 'example' => 'AAAAAV3MpHK1AP0pfERHZN5pu6lESTRpd5hnHNnmKOP/+w9F'], + 'Success' => ['description' => 'Indicates whether the operation succeeded. Valid values: true (success) and false (failure).', 'type' => 'boolean', 'example' => 'True', 'title' => ''], + 'DataPoints' => ['description' => 'The monitoring metric data.', 'type' => 'string', 'example' => '[{\'Content\': \'\', \'OperationName\': \'purchase\', \'Success\': 1, \'Id\': \'217\', \'LogDatetime\': 1687679582923}]', 'title' => ''], + 'Code' => ['description' => 'The status code. A value of 200 indicates success.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'Message' => ['description' => 'Detailed result message.', 'type' => 'string', 'example' => 'Success.', 'title' => ''], + 'Period' => ['description' => 'The statistical period for monitoring data. Valid values: 15, 60, 900, and 3600. Unit: seconds. If you do not specify a statistical period, the system uses the reporting period registered for the metric. Each cloud service metric (MetricName) may have a different statistical period. For more information, see cloud service monitoring metrics.', 'type' => 'string', 'example' => '5', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', 'title' => ''], + ], + 'title' => '', + 'description' => 'Schema of Response', + 'example' => '', + ], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetMetrics', + 'description' => '## Request description'."\n" + ."\n" + .'- This API retrieves monitoring metrics for a specific job (JobId) or dimensions under a given namespace.'."\n" + ."\n" + .'- It supports custom time ranges. By default, it returns data from the last hour.'."\n" + ."\n" + .'- Select different time intervals (Period) to obtain data points with finer or coarser granularity.'."\n" + ."\n" + .'- To paginate through large datasets, use the `NextToken` parameter.'."\n" + ."\n" + .'- The `MetricName` parameter is required and specifies the monitoring metric to query.'."\n" + ."\n" + .'- For advanced features or specific metric types, see the related documentation.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'paidlc:GetMetrics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], - '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', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"NextToken\\": \\"AAAAAV3MpHK1AP0pfERHZN5pu6lESTRpd5hnHNnmKOP/+w9F\\",\\n \\"Success\\": true,\\n \\"DataPoints\\": \\"[{\'Content\': \'\', \'OperationName\': \'purchase\', \'Success\': 1, \'Id\': \'217\', \'LogDatetime\': 1687679582923}]\\",\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"Success.\\",\\n \\"Period\\": \\"5\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]', + 'translator' => 'machine', ], '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', - ], + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'abilityTreeCode' => '13117', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + '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-*****', - ], + 'schema' => ['title' => '', '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', - ], + 'schema' => ['title' => '', 'description' => 'The node ID. Call [GetJob](~~459677~~) to get the node ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'dlc-20210126170216-mtl37ge7g****-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', - ], + 'schema' => ['title' => '', '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', - ], + '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', - ], + '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', - ], + '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', + 'title' => '', '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', - ], + 'JobId' => ['title' => '', 'description' => 'The job ID.'."\n", 'type' => 'string', 'example' => 'dlc-20210126170216-*****'], + 'PodId' => ['title' => '', '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', 'title' => ''], 'Events' => [ - 'title' => '事件列表', + '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', + 'items' => ['description' => 'The event.'."\n", 'type' => 'string', 'example' => '2021-01-28 14:07:45 Successfully pulled image.', 'title' => ''], + 'example' => '', ], + 'RequestId' => ['title' => '', 'description' => 'The request ID, which can be used for troubleshooting.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], ], + 'example' => '', ], ], ], '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', + 'changeSet' => [ + ['createdAt' => '2021-02-01T09:20:07.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetPodEvents', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPodEvents'], + ], ], + ], + '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', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', - 'abilityTreeCode' => '21204', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + 'abilityTreeCode' => '13118', + '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-*******', - ], + 'schema' => ['title' => '', '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' => 'StartTime', + 'name' => 'PodId', + 'in' => 'path', + 'schema' => ['title' => '', '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' => [ - '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", + 'description' => 'The node UID. For more information about how to obtain a node UID, see [GetJob](~~459677~~).'."\n", 'type' => 'string', 'required' => false, - 'example' => '2020-11-08T16:00:00Z', + 'enumValueTitles' => [], + 'example' => 'fe846462-af2c-4521-bd6f-96787a57****', + 'title' => '', ], ], [ - 'name' => 'EndTime', + 'name' => 'MaxLines', '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', - ], + 'schema' => ['title' => '', 'description' => 'The maximum number of log entries. Default value: 2000.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], ], [ - 'name' => 'TimeStep', + 'name' => 'StartTime', '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', - ], + 'schema' => ['title' => '', 'description' => 'The start time of the query. Default value: 7 days ago.'."\n", 'type' => 'string', 'required' => false, 'example' => '2020-11-08T16:00:00Z'], ], [ - 'name' => 'MetricType', + 'name' => 'EndTime', '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', - ], + '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' => 'Token', + 'name' => 'DownloadToFile', 'in' => 'query', - 'schema' => [ - 'title' => 'Token', - 'description' => 'The temporary token used for authentication.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'eyXXXX-XXXX.XXXXX', - ], + 'schema' => ['title' => '', '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 monitoring data of the job.'."\n", + 'title' => '', + 'description' => 'The data returned.'."\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", + 'JobId' => ['title' => '', 'description' => 'The job ID.'."\n", 'type' => 'string', 'example' => 'dlc-20210126170216-******'], + 'PodId' => ['title' => '', 'description' => 'The node ID.'."\n", 'type' => 'string', 'example' => 'dlc-20210126170216-****-chief-0'], + 'PodUid' => ['title' => '', 'description' => 'The instance UID.'."\n", 'type' => 'string', 'example' => '94a7cc7c-0033-48b5-85bd-71c63592c268'], + 'Logs' => [ + 'title' => '', + 'description' => 'The logs.'."\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', + 'items' => ['description' => 'The log.'."\n", 'type' => 'string', 'example' => '2021-01-28 14:07:45 My Job started.', 'title' => ''], + 'example' => '', ], + 'RequestId' => ['title' => '', 'description' => 'The request ID which is used for diagnostics and Q\\&A.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], ], + 'example' => '', ], ], ], - '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', + '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', + 'changeSet' => [ + ['createdAt' => '2021-02-01T09:20:04.000Z', 'description' => 'Request parameters changed, Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetPodLogs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPodLogs'], + ], ], + ], + 'GetRayDashboard' => [ + 'path' => '/api/v1/jobs/{jobId}/rayDashboard', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', - 'abilityTreeCode' => '13116', - 'abilityTreeNodes' => [ - 'FEATURElearnQJXF95', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'JobId', + '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', - ], + 'schema' => ['description' => 'Job ID', 'type' => 'string', 'example' => 'dlc1k7426goc7bvy', 'title' => '', 'required' => false], ], [ - 'name' => 'StartTime', + 'name' => 'isShared', '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', + 'description' => 'Set to true to generate a shareable link. If you set this parameter to true, you must also specify the token parameter.', + 'type' => 'boolean', + 'enum' => ['true', 'false'], + 'title' => '', 'required' => false, - 'example' => '2020-11-08T16:00:00Z', + 'example' => 'false', ], ], [ - 'name' => 'EndTime', + 'name' => 'token', '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', - ], + 'schema' => ['description' => 'The token returned by GetToken', 'type' => 'string', 'example' => 'some_token_value', 'title' => '', 'required' => false], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The details of the returned system events.'."\n", + 'title' => '', + 'description' => 'Response schema', '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", + 'url' => ['description' => 'The Ray Dashboard URL', 'type' => 'string', 'example' => 'https://pre-pai-dlc-proxy-cn-hangzhou.aliyun.com/ray/dashboard/dlc1k7426goc7bvy', 'title' => ''], + 'metricsEnabled' => [ + 'description' => 'Indicates whether Cloud Monitor is enabled for this dashboard to display Ray metrics', 'type' => 'string', - 'example' => '78F6FCE2-278F-4C4A-A6B7-DD8ECEA9C456', + 'enum' => ['true', 'false'], + 'title' => '', + 'example' => 'true', ], ], + 'example' => '', ], ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetRayDashboard', + 'summary' => 'Retrieve the Ray Dashboard URL.', + 'description' => 'Before you use this operation, review the PAI-DLC billing model and [pricing](~~171758~~).', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"url\\": \\"https://pre-pai-dlc-proxy-cn-hangzhou.aliyun.com/ray/dashboard/dlc1k7426goc7bvy\\",\\n \\"metricsEnabled\\": \\"true\\"\\n}","type":"json"}]', + 'translator' => 'manual', + ], + 'GetRayHistoryServer' => [ + 'summary' => 'Retrieves the details of a specific RayHistoryServer.', + 'path' => '/api/v1/rayhistoryservers/{RayHistoryServerId}', + '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' => [ - 'FEATURElearnWA9VRC', - ], + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ - 'name' => 'AcceleratorType', - 'in' => 'query', + 'name' => 'RayHistoryServerId', + 'in' => 'path', + 'schema' => ['description' => 'The ID of the Ray history server.', 'type' => 'string', 'required' => true, 'example' => 'rhsxxx', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '按加速器类型过滤', - 'description' => 'Filter by accelerator type. Valid values:'."\n" - ."\n" - .'* CPU'."\n" - .'* GPU'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'GPU', + 'type' => 'object', + 'properties' => [ + 'WorkspaceId' => ['description' => 'The ID of the workspace to which the job belongs.', 'type' => 'string', 'example' => '46099', 'title' => ''], + 'DisplayName' => ['description' => 'The display name of the job.', 'type' => 'string', 'example' => 'my-ray-history-server', 'title' => ''], + 'UserId' => ['description' => 'The ID of the user who creates the job.', 'type' => 'string', 'example' => '123456789', 'title' => ''], + 'Username' => ['description' => 'The username of the user who creates the job.', 'type' => 'string', 'example' => 'myusername', 'title' => ''], + 'TenantId' => ['description' => 'The tenant ID.', 'type' => 'string', 'example' => '10**************14', 'title' => ''], + 'RayHistoryServerId' => ['description' => 'The ID of the Ray history server.', 'type' => 'string', 'example' => 'rhsxxx', 'title' => ''], + 'RayHistoryServerUrl' => ['description' => 'The URL of the Ray dashboard.', 'type' => 'string', 'example' => 'https://rhsxxx-dashboard.dsw-gateway-cn-wulanchabu.data.aliyun.com/', 'title' => ''], + 'StoragePath' => ['description' => 'The storage path of Ray logs.', 'type' => 'string', 'example' => 'oss://bucket-test-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/tmp', 'title' => ''], + 'ResourceId' => ['description' => 'The ID of the resource group to which the job belongs.', 'type' => 'string', 'example' => 'quotaxxx', 'title' => ''], + 'ResourceName' => ['description' => 'The name of the resource on which the job runs.', 'type' => 'string', 'example' => 'my-resource-name', 'title' => ''], + 'Status' => ['description' => 'The status of the job.', 'type' => 'string', 'example' => 'running', 'title' => ''], + 'ReasonCode' => ['description' => 'The code of the job status.', 'type' => 'string', 'example' => 'NotFound', 'title' => ''], + 'ReasonMessage' => ['description' => 'The message that describes the job status.', 'type' => 'string', 'example' => '""', 'title' => ''], + 'GmtCreateTime' => ['description' => 'The time when the job was created. The time is in UTC.', 'type' => 'string', 'example' => '2021-01-12T14:35:01Z', 'title' => ''], + 'GmtModifyTime' => ['description' => 'The time when the job was last modified. The time is in UTC.', 'type' => 'string', 'example' => '2021-01-12T14:36:00Z', 'title' => ''], + 'GmtFinishTime' => ['description' => 'The time when the job is complete. The time is in UTC.', 'type' => 'string', 'example' => '2021-01-12T15:36:08Z', 'title' => ''], + 'MaxRuntimeMinutes' => ['description' => 'The maximum running time. Unit: minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '1000', 'title' => ''], + 'EcsSpec' => ['description' => 'The specifications of the public resource group. For a list of supported instance types, see [PAI-DLC billing](~~171758~~).><notice>Pricing varies based on the specifications.></notice>', 'type' => 'string', 'example' => 'ecs.g6.large', 'title' => ''], + 'Accessibility' => ['description' => 'The visibility of the job.', 'type' => 'string', 'example' => 'PRIVATE', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'errorCodes' => [ + 404 => [ + ['errorCode' => 'InvalidRayHistoryServer.NotFound', 'errorMessage' => 'The specified RayHistoryServer does not exist.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'GetRayHistoryServer', + 'description' => 'Before you call this API operation, make sure that you understand the billing methods and [pricing](~~171758~~) of PAI-DLC.><notice>The total length of the parameters for the CreateJob API, including system-generated parameters, cannot exceed 65,536 bytes.></notice>', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - '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', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetRayHistoryServer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"WorkspaceId\\": \\"46099\\",\\n \\"DisplayName\\": \\"my-ray-history-server\\",\\n \\"UserId\\": \\"123456789\\",\\n \\"Username\\": \\"myusername\\",\\n \\"TenantId\\": \\"10**************14\\",\\n \\"RayHistoryServerId\\": \\"rhsxxx\\",\\n \\"RayHistoryServerUrl\\": \\"https://rhsxxx-dashboard.dsw-gateway-cn-wulanchabu.data.aliyun.com/\\",\\n \\"StoragePath\\": \\"oss://bucket-test-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/tmp\\",\\n \\"ResourceId\\": \\"quotaxxx\\",\\n \\"ResourceName\\": \\"my-resource-name\\",\\n \\"Status\\": \\"running\\",\\n \\"ReasonCode\\": \\"NotFound\\",\\n \\"ReasonMessage\\": \\"\\\\\\"\\\\\\"\\",\\n \\"GmtCreateTime\\": \\"2021-01-12T14:35:01Z\\",\\n \\"GmtModifyTime\\": \\"2021-01-12T14:36:00Z\\",\\n \\"GmtFinishTime\\": \\"2021-01-12T15:36:08Z\\",\\n \\"MaxRuntimeMinutes\\": 1000,\\n \\"EcsSpec\\": \\"ecs.g6.large\\",\\n \\"Accessibility\\": \\"PRIVATE\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'GetTensorboard' => [ + 'summary' => 'Retrieves the details of a Tensorboard instance.', + 'path' => '/api/v1/tensorboards/{TensorboardId}', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - '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', - ], + 'AK' => [], ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'abilityTreeCode' => '20371', + 'abilityTreeNodes' => ['FEATURElearnWA9VRC'], + ], + 'parameters' => [ [ - 'name' => 'PageNumber', + 'name' => 'WorkspaceId', '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', - ], + 'schema' => ['title' => '', 'description' => 'The workspace ID. <props="china">Refer to [ListWorkspaces](~~449124~~) to obtain the workspace ID.</props>.', 'type' => 'string', 'example' => '46099', 'required' => false], ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'title' => '设置查询的分页大写', - 'description' => 'The number of entries returned per page.'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'name' => 'TensorboardId', + 'in' => 'path', + 'schema' => ['title' => '', 'description' => 'The Tensorboard ID. Refer to [ListTensorboards](~~459689~~) to obtain the Tensorboard ID.', 'type' => 'string', 'required' => true, 'example' => 'tb-20210114104214-xxxxx', 'maxLength' => 256, 'minLength' => 1], ], [ - 'name' => 'InstanceTypes', + 'name' => 'JodId', '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', - ], + 'schema' => ['title' => '', 'description' => 'The job ID. Refer to [ListJobs](~~459676~~) to obtain the job ID.', 'type' => 'string', 'example' => 'dlc-xxxxxxxx', 'required' => false], ], [ - 'name' => 'ResourceType', + 'name' => 'Token', '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', - ], + 'schema' => ['description' => 'The sharing token. Specify this parameter to use the sharing token to obtain the permission to view a specific Tensorboard job. You can extract the token from the URL returned by calling [GetTensorboardSharedUrl](~~2557813~~).', 'type' => 'string', 'required' => false, 'example' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e'."\n" + .'yJleHAiOjE2OTUyODA0NTMsImlhdCI6MTY5NTE5NDA1MywidXNlcl9pZCI6IjExN'."\n" + .'Tc3MDMyNzA5OTQ5MDEiLCJ0YXJnZXRfaWQiOiJ0YjRrOGxjNXhmdTM2b3B0Iiw'."\n" + .'idGFyZ2V0X3R5cGUiOiJ0ZW5zb3Jib2FyZCJ9.6eT68J-KMBwwfN2d7fj7u6vyPcf0erfqYeizd2N****', 'title' => ''], ], ], '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', - ], + 'schema' => ['description' => 'The Tensorboard details.', '$ref' => '#/components/schemas/Tensorboard', 'title' => '', 'example' => ''], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TensorboardId\\": \\"tensorboard-xxx\\",\\n \\"TensorboardUrl\\": \\"http://xxxxxx\\",\\n \\"Status\\": \\"running\\",\\n \\"Duration\\": \\"60\\",\\n \\"GmtCreateTime\\": \\"2021-01-12T14:35:00Z\\",\\n \\"GmtModifyTime\\": \\"2021-01-12T14:36:00Z\\",\\n \\"GmtFinishTime\\": \\"null\\",\\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\\": \\"\\\\\\"\\\\\\"\\",\\n \\"ReasonMessage\\": \\"\\\\\\"\\\\\\"\\",\\n \\"JobId\\": \\"dlc-20210114104214-vf9lowjt3pso\\",\\n \\"TensorboardDataSources\\": [\\n {\\n \\"DirectoryName\\": \\"dlcJobName\\",\\n \\"Name\\": \\"dlcJobName\\",\\n \\"Id\\": \\"d-vf2fdhxxxxxx\\",\\n \\"DataSourceType\\": \\"OSS\\",\\n \\"Uri\\": \\"oss://examplebucket.oss-cn-shanghai-internal.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\\": \\"quota12***\\",\\n \\"Priority\\": \\"1\\",\\n \\"QuotaName\\": \\"dlc-quota\\",\\n \\"Accessibility\\": \\"PRIVATE\\"\\n}","type":"json"}]', + 'title' => 'Get tensorboard details', + 'changeSet' => [ + ['createdAt' => '2023-08-11T05:54:35.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetTensorboard', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], - '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', + 'translator' => 'machine', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => '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', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', + 'abilityTreeCode' => '189994', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ - 'name' => 'JobId', - 'in' => 'path', - 'schema' => [ - 'description' => 'The task ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'dlc-20210126170216-******', - ], - ], - [ - 'name' => 'PodId', + 'name' => 'TensorboardId', 'in' => 'path', - 'schema' => [ - 'description' => 'The ID of the pod in the task.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'dlc-20210126170216-****-chief-0', - ], + 'schema' => ['description' => 'The ID of the TensorBoard task.'."\n", 'type' => 'string', 'required' => true, 'example' => 'tbxxxxxx', 'title' => ''], ], [ - 'name' => 'PodUid', - 'in' => 'query', - 'schema' => [ - 'description' => 'The pod UID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '94a7cc7c-0033-48b5-85bd-71c63592c268', - ], - ], - [ - 'name' => 'IsShared', + 'name' => 'ExpireTimeSeconds', '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', - ], + 'schema' => ['description' => 'The validity period of the shareable link. Unit: seconds. Maximum value: 604800.'."\n", 'type' => 'string', 'required' => false, 'example' => '86400', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'The returned data.'."\n", + 'title' => '', + 'description' => 'The response parameters.'."\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://*****', - ], + 'RequestId' => ['title' => '', '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/', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + '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', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetTensorboardSharedUrl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetTensorboardSharedUrl'], + ], ], - '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', - ], + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'abilityTreeCode' => '44246', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + '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', - ], + 'schema' => ['title' => '', '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*******', - ], + 'schema' => ['title' => '', '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', - ], + 'schema' => ['title' => '', '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' => [ @@ -5436,587 +3754,942 @@ '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*****', - ], + 'RequestId' => ['title' => '', 'description' => 'The request ID, which is used to troubleshoot issues.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxxxx'], + 'Token' => ['title' => '', 'description' => 'The sharing token, used to view the information about the shared job.'."\n", 'type' => 'string', 'example' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9*****'], ], + 'title' => '', + 'example' => '', ], ], ], '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', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetToken'], + ], ], + ], + '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', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '18654', - 'abilityTreeNodes' => [ - 'FEATURElearnVD2RKE', - ], - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'body', - 'in' => 'body', - 'style' => 'json', + 'name' => 'JobId', + 'in' => 'path', + 'schema' => ['description' => 'The task ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'dlc-20210126170216-******', 'title' => ''], + ], + [ + 'name' => 'PodId', + 'in' => 'path', + 'schema' => ['description' => 'The ID of the pod in the task.'."\n", 'type' => 'string', 'required' => false, 'example' => 'dlc-20210126170216-****-chief-0', 'title' => ''], + ], + [ + 'name' => 'PodUid', + 'in' => 'query', + 'schema' => ['description' => 'The pod UID.'."\n", 'type' => 'string', 'required' => false, 'example' => '94a7cc7c-0033-48b5-85bd-71c63592c268', 'title' => ''], + ], + [ + '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', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'The request body.'."\n", + 'title' => '', + 'description' => 'The returned data.'."\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', - ], + 'RequestId' => ['description' => 'The request ID which is used for diagnostics and Q\\&A.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', 'title' => ''], + '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://*****', 'title' => ''], ], - 'required' => false, - 'example' => '380', + 'example' => '', ], ], ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\",\\n \\"WebTerminalUrl\\": \\"wss://*****\\"\\n}","type":"json"}]', + 'title' => 'GetWebTerminal', + 'changeSet' => [ + ['createdAt' => '2023-11-07T07:13:57.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-07-21T08:19:02.000Z', 'description' => 'Response parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetWebTerminal', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetWebTerminal'], + ], + ], + ], + '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' => '', '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' => '', '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' => '', 'description' => 'The type of the resource. Valid values:'."\n" + ."\n" + .'* ECS'."\n" + .'* Lingjun'."\n", 'type' => 'string', 'required' => false, 'example' => 'ECS'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'The returned data.'."\n", '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', + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], + 'EcsSpecs' => [ + 'title' => '', + 'description' => 'The list of ECS specifications.'."\n", + 'type' => 'array', + 'items' => ['description' => 'The specification parameters.'."\n", '$ref' => '#/components/schemas/EcsSpec', 'title' => '', 'example' => ''], + 'example' => '', ], + 'TotalCount' => ['title' => '', 'description' => 'The number of types that meet the filter conditions.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '10'], ], - 'description' => '', + 'example' => '', ], ], ], - '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', + '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', + 'changeSet' => [ + ['createdAt' => '2024-01-24T10:35:10.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2021-08-25T03:51:33.000Z', 'description' => 'Request parameters changed'], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListEcsSpecs'], + ], ], + ], + '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' => 'write', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'abilityTreeCode' => '20380', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + 'operationType' => 'get', + 'abilityTreeCode' => '204035', + 'abilityTreeNodes' => ['FEATURElearnWA9VRC'], ], 'parameters' => [ [ - 'name' => 'WorkspaceId', - 'in' => 'query', - 'schema' => [ - 'title' => '工作空间ID', - 'description' => 'The workspace ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '46099', - ], + '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', 'title' => ''], ], [ - '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, - ], + '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', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'title' => '', + 'description' => 'The results of all sanity checks for a DLC job.'."\n", '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', + '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', 'title' => '', 'example' => ''], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], + 'TotalCount' => ['description' => 'The total number of results that meet the filter conditions.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], + 'RequestID' => ['description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '1AC9xxx-3xxx-5xxx2-xxxx-FA5', 'title' => ''], ], - 'description' => '', + 'example' => '', ], ], ], - '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', + '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', + 'changeSet' => [ + ['createdAt' => '2024-02-26T03:31:14.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:ListJobSanityCheckResults', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListJobSanityCheckResults'], + ], ], + ], + 'ListJobTemplates' => [ + 'path' => '/api/v1/jobtemplates', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'write', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '40265', - 'abilityTreeNodes' => [ - 'FEATURElearnQJXF95', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ 'name' => 'WorkspaceId', 'in' => 'query', + 'schema' => ['description' => 'The ID of the workspace.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '4***9'], + ], + [ + 'name' => 'UserId', + 'in' => 'query', + 'schema' => ['description' => 'The ID of the creator. Use this parameter to filter results by a specific creator.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '20**************02'], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => ['description' => 'The job template ID. Use this parameter to filter for an exact match.', 'type' => 'string', 'maxLength' => 128, 'title' => '', 'required' => false, 'example' => 'tpl1****6jcq2q'], + ], + [ + 'name' => 'TemplateName', + 'in' => 'query', + 'schema' => ['description' => 'The job template name. Use this parameter to filter for a partial match.', 'type' => 'string', 'maxLength' => 256, 'title' => '', 'required' => false, 'example' => 'job-template-example-1778047****'], + ], + [ + 'name' => 'SortBy', + 'in' => 'query', 'schema' => [ - 'title' => '工作空间ID', - 'description' => 'The workspace ID.'."\n", + 'description' => 'The field to sort the results by. Default value: `GmtCreateTime`.', 'type' => 'string', + 'default' => 'GmtCreateTime', + 'enum' => ['GmtCreateTime', 'GmtModifyTime', 'TemplateName'], + 'title' => '', 'required' => false, - 'example' => '380', + 'example' => 'GmtCreateTime', ], ], [ - 'name' => 'TensorboardId', - 'in' => 'path', + 'name' => 'Order', + 'in' => 'query', 'schema' => [ - 'title' => 'Tensorboad Id', - 'description' => 'The TensorBoard instance ID. For more information about how to obtain the TensorBoard instance ID, see [ListTensorboards](~~459689~~).'."\n", + 'description' => 'The sort order. Valid values: `asc` for ascending and `desc` for descending. Default value: `desc`.', 'type' => 'string', - 'required' => true, - 'example' => 'tensorboard-20210114104214-vf9lowjt3pso', - 'maxLength' => 256, - 'minLength' => 1, + 'default' => 'desc', + 'enum' => ['asc', 'desc'], + 'title' => '', + 'required' => false, + 'example' => 'desc', ], ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number to retrieve.', 'type' => 'integer', 'format' => 'int32', 'minimum' => '1', 'default' => '1', 'title' => '', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of results to return per page.', 'type' => 'integer', 'format' => 'int32', 'maximum' => '100', 'minimum' => '1', 'default' => '20', 'title' => '', 'required' => false, 'example' => '10'], + ], ], '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', + 'JobTemplates' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TemplateId' => ['description' => 'The ID of the job template.', 'type' => 'string', 'title' => '', 'example' => 'tpl1r5g9ait7****'], + 'TemplateName' => ['description' => 'The name of the job template.', 'type' => 'string', 'title' => '', 'example' => 'job-template-1772516653885'], + 'Description' => ['description' => 'The description of the job template.', 'type' => 'string', 'title' => '', 'example' => 'job description'], + 'Metadata' => ['description' => 'Custom metadata, represented as a collection of key-value pairs.', 'type' => 'object', 'title' => '', 'example' => '{}'], + 'UserId' => ['description' => 'The ID of the creator.', 'type' => 'string', 'title' => '', 'example' => '20**************26'], + 'WorkspaceId' => ['description' => 'The ID of the workspace.', 'type' => 'string', 'title' => '', 'example' => '88****'], + 'TenantId' => ['description' => 'The ID of the tenant.', 'type' => 'string', 'title' => '', 'example' => '142388383837****'], + 'DefaultVersion' => ['description' => 'The default version number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], + 'GmtCreateTime' => ['description' => 'The creation time of the template, in UTC and ISO 8601 format.', 'type' => 'string', 'format' => 'iso8601', 'title' => '', 'example' => '2026-01-23T07:29:06Z'], + 'GmtModifyTime' => ['description' => 'The modification time of the template, in UTC and ISO 8601 format.', 'type' => 'string', 'format' => 'iso8601', 'title' => '', 'example' => '2026-03-03T05:48:02Z'], + 'ModifiedBy' => ['description' => 'The ID of the modifier.', 'type' => 'string', 'title' => '', 'example' => '20**************26'], + ], + 'description' => 'The details of a job template.', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'description' => 'The list of job templates.', + 'example' => '', ], + 'TotalCount' => ['description' => 'The total number of job templates that match the filter conditions.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '100'], + 'PageNumber' => ['description' => 'The current page number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '1'], + 'PageSize' => ['description' => 'The number of results on the current page.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '50'], + 'RequestId' => ['description' => 'The unique ID of the request. Use this ID to troubleshoot issues.', 'type' => 'string', 'title' => '', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0D*****'], ], - 'description' => '', + 'description' => 'The response body.', + 'title' => '', + 'example' => '', ], ], ], - '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', + 'title' => 'ListJobTemplates', + 'summary' => 'Lists job templates in a specified workspace. You can paginate, sort, and filter the results by creator, `TemplateId`, or `TemplateName`.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'paidlc:ListJobTemplates', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobTemplates\\": [\\n {\\n \\"TemplateId\\": \\"tpl1r5g9ait7****\\",\\n \\"TemplateName\\": \\"job-template-1772516653885\\",\\n \\"Description\\": \\"job description\\",\\n \\"Metadata\\": {},\\n \\"UserId\\": \\"20**************26\\",\\n \\"WorkspaceId\\": \\"88****\\",\\n \\"TenantId\\": \\"142388383837****\\",\\n \\"DefaultVersion\\": 2,\\n \\"GmtCreateTime\\": \\"2026-01-23T07:29:06Z\\",\\n \\"GmtModifyTime\\": \\"2026-03-03T05:48:02Z\\",\\n \\"ModifiedBy\\": \\"20**************26\\"\\n }\\n ],\\n \\"TotalCount\\": 100,\\n \\"PageNumber\\": 1,\\n \\"PageSize\\": 50,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0D*****\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'ListJobs' => [ + 'path' => '/api/v1/jobs', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'write', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '40264', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '13122', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ - 'name' => 'WorkspaceId', + 'name' => 'DisplayName', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The job name. Supports fuzzy match and is case-insensitive. Wildcards are not supported.'."\n" + .'For example, entering test matches test-job1, job-test, job-test2, or job-Test, but does not match job-t1.'."\n" + .'Default value: empty, which indicates all job names.', 'type' => 'string', 'required' => false, 'example' => 'tf-mnist-test', 'maxLength' => 1024], + ], + [ + 'name' => 'JobType', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The job type. Default value: empty, which indicates all types. Valid values:'."\n" + .'- TFJob'."\n" + .'- PyTorchJob'."\n" + .'- XGBoostJob'."\n" + .'- OneFlowJob'."\n" + .'- ElasticBatchJob', 'type' => 'string', 'required' => false, 'example' => 'TFJob', 'maxLength' => 32], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The job status. Valid values:'."\n" + .'- Creating'."\n" + .'- Queuing'."\n" + .'- Bidding (currently only for Lingjun Spot jobs)'."\n" + .'- EnvPreparing'."\n" + .'- SanityChecking'."\n" + .'- Running'."\n" + .'- Restarting'."\n" + .'- Stopping'."\n" + .'- SucceededReserving'."\n" + .'- FailedReserving'."\n" + .'- Succeeded'."\n" + .'- Failed'."\n" + .'- Stopped', 'type' => 'string', 'required' => false, 'example' => 'Running', 'maxLength' => 200], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The start time of the query range. Jobs are filtered by creation time. Default value: the current time minus 7 days. If neither StartTime nor EndTime is specified, jobs created in the last 7 days are returned.', 'type' => 'string', 'required' => false, 'example' => '2025-04-16T07:25:34Z'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The end time of the query range. Jobs are filtered by creation time. Default value: the current time.', 'type' => 'string', 'required' => false, 'example' => '2025-04-16T07:26:41Z'], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The page number for paging. Minimum value: 1. Default value: 1.', '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 to return per page.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '50', 'default' => '10'], + ], + [ + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The field by which to sort results. Valid values:'."\n" + ."\n" + .'- DisplayName'."\n" + .'- JobType'."\n" + .'- Status'."\n" + .'- GmtCreateTime'."\n" + .'- GmtFinishTime', 'type' => 'string', 'required' => false, 'example' => 'GmtCreateTime'], + ], + [ + 'name' => 'Order', 'in' => 'query', 'schema' => [ - 'title' => '工作空间ID', - 'description' => 'The workspace ID.'."\n", + 'title' => '', + 'description' => 'The sort order. Valid values:'."\n" + ."\n" + .'- desc: Descending order. This is the default value.'."\n" + .'- asc: Ascending order.', + 'enumValueTitles' => ['asc' => 'asc', 'desc' => 'desc'], 'type' => 'string', + 'example' => 'desc', + 'default' => 'desc', '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' => 'ShowOwn', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Specifies whether to return only jobs submitted by the current user.', 'type' => 'boolean', 'example' => 'true', 'default' => 'true', 'required' => false], ], [ - 'name' => 'MaxRunningTimeMinutes', + 'name' => 'WorkspaceId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The workspace ID.<props="china"> For information about how to obtain the workspace ID, see [ListWorkspaces](~~449124~~).</props>', 'type' => 'string', 'example' => '1****', 'required' => false], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The resource group ID. For details about how to obtain the dedicated resource group ID, see [Manage resource quotas](~~2651299~~).', 'type' => 'string', 'example' => 'r*****', 'required' => false], + ], + [ + 'name' => 'BusinessUserId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The user ID associated with the job.', 'type' => 'string', 'example' => '16****', 'required' => false], + ], + [ + 'name' => 'Caller', 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The caller.', 'type' => 'string', 'example' => 'local', 'required' => false], + ], + [ + 'name' => 'Tags', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => 'MaxRunningTimeMinutes', - 'description' => 'The maximum running time. Unit: minutes.'."\n", - 'type' => 'integer', - 'format' => 'int64', + 'title' => '', + 'description' => 'The tags used for filtering.', + 'type' => 'object', 'required' => false, - 'example' => '300', + 'additionalProperties' => ['description' => 'A single tag.', 'type' => 'string', 'example' => 'recommandation', 'title' => ''], + 'example' => '', ], ], [ + 'name' => 'PipelineId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Filters jobs created by the specified workflow ID.', 'type' => 'string', 'example' => 'flow-*******', 'required' => false], + ], + [ + 'name' => 'FromAllWorkspaces', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to retrieve jobs across all workspaces. This parameter must be used together with `ShowOwn=true` to query jobs recently submitted by the current user.', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['description' => 'The job ID. Fuzzy match is not supported. Case-insensitive. Wildcards are not supported.'."\n" + .'Default value: empty, which indicates all job IDs.', 'type' => 'string', 'required' => false, 'example' => 'dlc********', 'title' => ''], + ], + [ + 'name' => 'UserIdForFilter', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The user ID of the job submitter, used to filter the job list.', 'type' => 'string', 'required' => false, 'example' => '20**************'], + ], + [ + 'name' => 'Username', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The username of the job submitter, used to filter the job list. Supports fuzzy match. Wildcards are not supported. Default value: empty, which indicates no filtering by username.', 'type' => 'string', 'required' => false, 'example' => 'test***'], + ], + [ + 'name' => 'ResourceQuotaName', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The name of the resource quota, used to filter the job list. Supports fuzzy match. Wildcards are not supported. Default value: empty, which indicates no filtering by resource quota.', 'type' => 'string', 'required' => false, 'example' => 'quota***'], + ], + [ '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", + 'description' => 'The visibility of the job. Valid values:'."\n" + .'- PUBLIC: Visible to all users in the workspace.'."\n" + .'- PRIVATE (default): Visible only to you and administrators in the workspace.', + 'enumValueTitles' => ['PUBLIC' => 'PUBLIC', 'PRIVATE' => 'PRIVATE'], 'type' => 'string', 'required' => false, 'example' => 'PRIVATE', + 'title' => '', ], ], [ - 'name' => 'Priority', + 'name' => 'OversoldInfo', + 'in' => 'query', + 'schema' => ['description' => 'The off-peak resource information. Valid values:'."\n" + .'- ForbiddenQuotaOverSold'."\n" + .'- ForceQuotaOverSold'."\n" + .'- AcceptQuotaOverSold-true (true indicates the job actually used off-peak resources)'."\n" + .'- AcceptQuotaOverSold-false (false indicates the job actually used guaranteed resources)', 'type' => 'string', 'required' => false, 'example' => 'ForbiddenQuotaOverSold', 'title' => ''], + ], + [ + 'name' => 'PaymentType', + 'in' => 'query', + 'schema' => ['description' => 'The resource type. Valid values:'."\n" + .'- PrePaid: resource quota'."\n" + .'- Spot: preemptible resources'."\n" + .'- PostPaid: public resources', 'type' => 'string', 'required' => false, 'example' => 'PostPaid', 'title' => ''], + ], + [ + 'name' => 'JobIds', + 'in' => 'query', + 'schema' => ['description' => 'A list of job IDs separated by commas. If both JobIds and JobId are specified, JobId takes precedence.', 'type' => 'string', 'required' => false, 'example' => 'dlc123abc', 'title' => ''], + ], + [ + 'name' => 'DisplayNameSearchMode', 'in' => 'query', 'schema' => [ + 'description' => 'The search mode for DisplayName. Default value: wildcard match.', + 'enumValueTitles' => ['prefix' => 'prefix', 'fulltext' => 'fulltext', 'term' => 'term', 'wildcard' => 'wildcard'], 'type' => 'string', 'required' => false, + 'example' => 'wildcard', + 'title' => '', ], ], + [ + 'name' => 'ReasonSearch', + 'in' => 'query', + 'schema' => ['description' => 'Performs a full-text index retrieve in the node failed reason (reason) field. Supports Chinese and English tokenization.', 'type' => 'string', 'required' => false, 'example' => 'OOM', 'title' => ''], + ], + [ + 'name' => 'UserCommandSearch', + 'in' => 'query', + 'schema' => ['description' => 'Performs a full-text index retrieve in the user command (user_command) field. Supports Chinese and English tokenization.', 'type' => 'string', 'required' => false, 'example' => 'python train.py', 'title' => ''], + ], + [ + 'name' => 'ImageSearch', + 'in' => 'query', + 'schema' => ['description' => 'Performs a full-text index retrieve in the image (images) field. Supports Chinese and English tokenization.', 'type' => 'string', 'required' => false, 'example' => 'pytorch', 'title' => ''], + ], + [ + 'name' => 'TimeRangeField', + 'in' => 'query', + 'schema' => ['description' => 'The time field used for StartTime/EndTime filtering. Default value: creation time.', 'type' => 'string', 'required' => false, 'example' => 'GmtFinishTime', 'title' => ''], + ], + [ + 'name' => 'NumericRangeField', + 'in' => 'query', + 'schema' => ['description' => 'The field name for numeric range filtering. Must be used together with NumericRangeMin or NumericRangeMax.', 'type' => 'string', 'required' => false, 'example' => 'RequestGPU', 'title' => ''], + ], + [ + 'name' => 'NumericRangeMin', + 'in' => 'query', + 'schema' => ['description' => 'The minimum value (inclusive) for numeric range filtering. Must be used together with NumericRangeField.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '4 ', 'title' => ''], + ], + [ + 'name' => 'NumericRangeMax', + 'in' => 'query', + 'schema' => ['description' => 'The maximum value (inclusive) for numeric range filtering. Must be used together with NumericRangeField.', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '8', 'title' => ''], + ], + [ + 'name' => 'EnableAssignNode', + 'in' => 'query', + 'schema' => [ + 'description' => 'Specifies whether to filter jobs that have designated node assignment enabled.', + 'enumValueTitles' => ['true' => 'true', 'false' => 'false'], + 'type' => 'string', + 'required' => false, + 'example' => 'true', + 'title' => '', + ], + ], + [ + 'name' => 'TemplateId', + 'in' => 'query', + 'schema' => ['description' => 'The template ID, used to filter jobs created from the specified template.', 'type' => 'string', 'required' => false, 'example' => 'tmlabc123 ', 'title' => ''], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['type' => 'string', 'description' => '', 'title' => '', 'example' => ''], + ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => 'The job list.', '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', + 'Jobs' => [ + 'title' => '', + 'description' => 'The job list.', + 'type' => 'array', + 'items' => ['description' => 'A single job.', '$ref' => '#/components/schemas/JobItem', 'title' => '', 'example' => ''], + 'example' => '', ], + 'TotalCount' => ['title' => '', 'description' => 'The total number of jobs that match the filter criteria.', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'RequestId' => ['title' => '', 'description' => 'The request ID, used for diagnostics and troubleshooting.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], ], - 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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', + 'title' => 'Retrieve job list', + 'summary' => 'Retrieves a list of jobs with support for pagination, sorting, and conditional filtering.', + 'changeSet' => [ + ['createdAt' => '2025-10-17T07:03:51.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-09-09T06:27:28.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-05-07T12:37:04.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2025-01-09T12:43:08.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-11-21T12:36:46.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-04-09T02:18:24.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-01-12T05:43:52.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-12-14T10:35:38.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2022-11-29T12:19:51.000Z', 'description' => 'Request parameters changed'], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListJobs'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:ListJobs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'translator' => 'machine', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Jobs\\": [\\n {\\n \\"JobId\\": \\"dlc-20210126170216-********\\",\\n \\"CredentialConfig\\": {\\n \\"EnableCredentialInject\\": false,\\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\\": \\"vpc-2zed***\\",\\n \\"SwitchId\\": \\"vsw-2ze6***\\",\\n \\"SecurityGroupId\\": \\"sg-2zeef***\\",\\n \\"ExtendedCidrs\\": [\\n \\"10.2.0.0/16\\"\\n ],\\n \\"DefaultRoute\\": \\"eth0\\"\\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-vpc.cn-hangzhou.aliyuncs.com/cloud-dsw/tensorflow:1.12PAI-gpu-py36-cu101-ubuntu18.04\\",\\n \\"ImageConfig\\": {\\n \\"DockerRegistry\\": \\"docker****registry.com\\",\\n \\"Username\\": \\" username\\",\\n \\"Password\\": \\"password\\",\\n \\"Auth\\": \\"\\"\\n },\\n \\"PodCount\\": 1,\\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 \\"-v\\"\\n ],\\n \\"WorkingDir\\": \\"/root\\",\\n \\"Env\\": [\\n {\\n \\"Name\\": \\"ENABLE_DEBUG\\",\\n \\"Value\\": \\"true\\"\\n }\\n ],\\n \\"Resources\\": {\\n \\"Limits\\": {\\n \\"key\\": \\"{\'cpu\': \'1\', \'memory\': \'1000Mi\'}\\"\\n },\\n \\"Requests\\": {\\n \\"key\\": \\"{\'cpu\': \'1\', \'memory\': \'1000Mi\'}\\"\\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 \\"-v\\"\\n ],\\n \\"WorkingDir\\": \\"/root\\",\\n \\"Env\\": [\\n {\\n \\"Name\\": \\"ENABLE_DEBUG\\",\\n \\"Value\\": \\"true\\"\\n }\\n ],\\n \\"Resources\\": {\\n \\"Limits\\": {\\n \\"key\\": \\"{\'cpu\': \'1\', \'memory\': \'1000Mi\'}\\"\\n },\\n \\"Requests\\": {\\n \\"key\\": \\"{\'cpu\': \'1\', \'memory\': \'1000Mi\'}\\"\\n }\\n }\\n }\\n ],\\n \\"PodLabels\\": {\\n \\"key\\": \\"example-lable\\"\\n },\\n \\"PodAnnotations\\": {\\n \\"key\\": \\"example-annotation\\"\\n },\\n \\"SharedVolumeMountPaths\\": [\\n \\"/root/share/\\"\\n ],\\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 \\"RunAsGroup\\": 1000,\\n \\"SeccompProfile\\": {\\n \\"Type\\": \\"Unconfined\\",\\n \\"LocalhostProfile\\": \\"my-profiles/profile-allow.json\\"\\n },\\n \\"Privileged\\": false,\\n \\"Capabilities\\": {\\n \\"Add\\": [\\n \\"\\"\\n ],\\n \\"Drop\\": [\\n \\"\\"\\n ]\\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\\": \\"SpotWithPriceLimit\\",\\n \\"SpotDiscountLimit\\": 0.8,\\n \\"SpotPriceLimit\\": 0.4744\\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 \\"MountMode\\": \\"\\",\\n \\"LocalPath\\": \\"\\",\\n \\"MountPath\\": \\"\\"\\n }\\n ],\\n \\"AutoScalingSpec\\": {\\n \\"ScalingStrategy\\": \\"\\",\\n \\"MinReplicas\\": 0,\\n \\"MaxReplicas\\": 0,\\n \\"PodsToDelete\\": [\\n \\"\\"\\n ],\\n \\"AutoscalingMetricSpec\\": {\\n \\"MetricName\\": \\"\\",\\n \\"TargetValue\\": 0,\\n \\"StabilizationWindowSeconds\\": 0,\\n \\"Tolerance\\": \\"\\"\\n }\\n },\\n \\"ServiceSpec\\": {\\n \\"DefaultPort\\": 8080,\\n \\"ServiceMode\\": \\"PerRole\\",\\n \\"ExtraPorts\\": [\\n 8081\\n ]\\n },\\n \\"IsCheif\\": false,\\n \\"IsChief\\": false,\\n \\"RestartPolicy\\": \\"ExitCode\\",\\n \\"SystemDisk\\": {\\n \\"Size\\": 0,\\n \\"Category\\": \\"\\",\\n \\"PerformanceLevel\\": \\"\\"\\n },\\n \\"EcsSpec\\": \\"ecs.c6.large\\",\\n \\"QuotaId\\": \\"\\",\\n \\"ConsiderInSuccessPolicy\\": false,\\n \\"StartupDependencies\\": [\\n {\\n \\"Type\\": \\"\\",\\n \\"OnPhase\\": \\"\\",\\n \\"MinReplicas\\": \\"\\"\\n }\\n ],\\n \\"ElasticSpotSpecs\\": [\\n {\\n \\"InstanceType\\": \\"\\",\\n \\"SpotPriceLimit\\": 0,\\n \\"SpotDiscountLimit\\": 0,\\n \\"SpotStrategy\\": \\"\\"\\n }\\n ]\\n }\\n ],\\n \\"UserCommand\\": \\"python /root/code/mnist.py\\",\\n \\"DataSources\\": [\\n {\\n \\"DataSourceId\\": \\"data-20210114104214-********\\",\\n \\"MountPath\\": \\"/mnt/data\\"\\n }\\n ],\\n \\"CodeSource\\": {\\n \\"CodeSourceId\\": \\"code-20210111103721-********\\",\\n \\"Branch\\": \\"master\\",\\n \\"Commit\\": \\"44da109b59f8596152987eaa8f3b2487bb******\\",\\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\\": \\"2025-04-16T07:25:34Z\\",\\n \\"GmtSubmittedTime\\": \\"2025-04-16T07:26:14Z\\",\\n \\"GmtRunningTime\\": \\"2025-04-16T07:26:41Z\\",\\n \\"GmtSuccessedTime\\": \\"2025-04-16T07:28:20Z\\",\\n \\"GmtStoppedTime\\": \\"null\\",\\n \\"GmtFailedTime\\": \\"null\\",\\n \\"GmtFinishTime\\": \\"2025-04-16T07:28:20Z\\",\\n \\"GmtModifiedTime\\": \\"2025-04-16T07:28:22Z\\",\\n \\"Duration\\": 243,\\n \\"JobMaxRunningTimeMinutes\\": 0,\\n \\"Settings\\": {\\n \\"BusinessUserId\\": \\"16****\\",\\n \\"Caller\\": \\"SilkFlow\\",\\n \\"Tags\\": {\\n \\"key\\": \\"key:value\\"\\n },\\n \\"PipelineId\\": \\"pid-12****\\",\\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=MarkJobFail\\",\\n \\"JobReservedMinutes\\": 30,\\n \\"JobReservedPolicy\\": \\"Always\\",\\n \\"EnableCPUAffinity\\": true,\\n \\"DisableEcsStockCheck\\": false,\\n \\"AllocateAllRDMADevices\\": false,\\n \\"EnableDSWDev\\": false,\\n \\"DataJuicerConfig\\": {\\n \\"ExecutionMode\\": \\"standalone\\",\\n \\"CommandType\\": \\"config\\",\\n \\"EnableResourceEstimation\\": false,\\n \\"ResourceLimit\\": {\\n \\"CPU\\": \\"2\\",\\n \\"Memory\\": \\"10Gi\\",\\n \\"GPU\\": \\"20\\"\\n }\\n },\\n \\"ModelConfig\\": {\\n \\"ModelName\\": \\"\\",\\n \\"ModelTemplate\\": {\\n \\"ModelName\\": \\"\\",\\n \\"Provider\\": \\"\\",\\n \\"Collections\\": \\"\\"\\n }\\n },\\n \\"AllowUnschedulableNodes\\": false,\\n \\"Shell\\": \\"/bin/bash\\"\\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\\": \\"****1316721349****\\",\\n \\"TenantId\\": \\"****93955616****\\",\\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\\": false,\\n \\"EnableAIMaster\\": false,\\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 \\"StabilizationWindowSeconds\\": 0,\\n \\"Tolerance\\": \\"\\"\\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 \\"CurrentSpotInstanceType\\": \\"\\"\\n }\\n ],\\n \\"SchedulingStrategy\\": \\"\\",\\n \\"RetryCount\\": 0\\n }\\n ],\\n \\"TotalCount\\": 1,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]', + ], + 'ListRayHistoryServers' => [ + 'summary' => 'Lists RayHistoryServer resources.', + 'path' => '/api/v1/rayhistoryservers', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'write', - 'deprecated' => false, + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '40266', - 'abilityTreeNodes' => [ - 'FEATURElearnQJXF95', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ 'name' => 'WorkspaceId', 'in' => 'query', - 'schema' => [ - 'title' => '工作空间ID', - 'description' => 'The workspace ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '380', - ], + 'schema' => ['description' => 'The workspace ID. <props="china">For information about how to obtain the workspace ID, see [ListWorkspaces](~~449124~~).</props>.', 'type' => 'string', 'required' => false, 'example' => '268', 'title' => ''], ], [ - '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, - ], + 'name' => 'DisplayName', + 'in' => 'query', + 'schema' => ['description' => 'The display name of the job.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['description' => 'The RayHistoryServer status. Valid values:'."\n" + .'- Creating: being created.'."\n" + .'- Queuing: waiting in queue.'."\n" + .'- Running: running.'."\n" + .'- Stopped: stopped.'."\n" + .'- Failed: failed.', 'type' => 'string', 'required' => false, 'example' => 'running', 'title' => ''], + ], + [ + 'name' => 'PageNumber', + 'in' => 'query', + 'schema' => ['description' => 'The page number of the page to return in a paged query. Paging starts from page 1.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'title' => ''], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => 'The number of RayHistoryServer entries to return on each page in a paged query. Paging is used to return results in batches.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'title' => ''], + ], + [ + 'name' => 'SortBy', + 'in' => 'query', + 'schema' => ['description' => 'The field by which to sort the returned results. Valid values:'."\n" + .'- DisplayName'."\n" + .'- GmtCreateTime'."\n" + .'- UserId'."\n" + .'- ResourceId'."\n" + .'- Status'."\n" + .'- GmtModifyTime.', 'type' => 'string', 'required' => false, 'example' => 'GmtCreateTime', 'title' => ''], + ], + [ + 'name' => 'Order', + 'in' => 'query', + 'schema' => ['description' => 'The sort order. Valid values:'."\n" + .'- desc: descending order.'."\n" + .'- asc: ascending order.', 'type' => 'string', 'required' => false, 'example' => 'desc', 'title' => ''], + ], + [ + 'name' => 'ShowOwn', + 'in' => 'query', + 'schema' => ['description' => 'Specifies whether to return only the RayHistoryServer entries created by the current user.', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'title' => ''], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => 'The start time.', 'type' => 'string', 'required' => false, 'example' => '2020-11-08T16:00:00Z', 'title' => ''], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => 'The end time of the query range. The job creation time is used for filtering.', 'type' => 'string', 'required' => false, 'example' => '2020-11-09T16:00:00Z', 'title' => ''], + ], + [ + 'name' => 'ModifiedAfter', + 'in' => 'query', + 'schema' => ['description' => 'Filters results by the time after which they were modified.', 'type' => 'string', 'required' => false, 'example' => '2020-11-09T16:00:00Z', 'title' => ''], + ], + [ + 'name' => 'ResourceId', + 'in' => 'query', + 'schema' => ['description' => 'The resource group ID. For information about how to query the ID of a dedicated resource group, see [Manage resource quotas](~~2651299~~).', 'type' => 'string', 'required' => false, 'example' => 'quotaxxx', 'title' => ''], + ], + [ + 'name' => 'PaymentType', + 'in' => 'query', + 'schema' => ['description' => 'The billing method. Valid values:'."\n" + .'- PrePaid'."\n" + .'- PostPaid.', 'type' => 'string', 'required' => false, 'example' => 'Postpaid', 'title' => ''], + ], + [ + 'name' => 'IdPrefix', + 'in' => 'query', + 'schema' => ['description' => 'The ID prefix.', 'type' => 'string', 'required' => false, 'example' => '按ID前缀过滤', 'title' => ''], + ], + [ + 'name' => 'UserIdForFilter', + 'in' => 'query', + 'schema' => ['description' => 'Filters results by user ID.', 'type' => 'string', 'required' => false, 'example' => '123456789', 'title' => ''], + ], + [ + 'name' => 'Username', + 'in' => 'query', + 'schema' => ['description' => 'Filters results by username.', 'type' => 'string', 'required' => false, 'example' => 'myusername', 'title' => ''], + ], + [ + 'name' => 'StoragePath', + 'in' => 'query', + 'schema' => ['description' => 'The storage path of Ray logs.', 'type' => 'string', 'required' => false, 'example' => 'oss://bucket-test-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/tmp', 'title' => ''], ], ], 'responses' => [ @@ -6024,36 +4697,84 @@ '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', + 'RequestId' => ['description' => 'The request ID, which is used for diagnostics and troubleshooting.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxxx', 'title' => ''], + 'TotalCount' => ['description' => 'The total number of entries that match the filter conditions.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RayHistoryServers' => [ + 'description' => 'The list of RayHistoryServer entries.', + 'type' => 'array', + 'items' => [ + 'description' => 'The list of RayHistoryServer entries.', + 'type' => 'object', + 'properties' => [ + 'WorkspaceId' => ['description' => 'The workspace ID. <props="china">For information about how to obtain the workspace ID, see [ListWorkspaces](~~449124~~).</props>.', 'type' => 'string', 'example' => '153466', 'title' => ''], + 'DisplayName' => ['description' => 'The display name of the job.', 'type' => 'string', 'example' => 'AEB-RECHARGE-TASK-14478-1778466397-main-4-', 'title' => ''], + 'UserId' => ['description' => 'The user ID.', 'type' => 'string', 'example' => '123456789', 'title' => ''], + 'Username' => ['description' => 'The username.', 'type' => 'string', 'example' => 'myusername', 'title' => ''], + 'TenantId' => ['description' => 'The tenant ID.', 'type' => 'string', 'example' => '1335237941080704', 'title' => ''], + 'RayHistoryServerId' => ['description' => 'The ID of the created RayHistoryServer.', 'type' => 'string', 'example' => 'rhsxxx', 'title' => ''], + 'RayHistoryServerUrl' => ['description' => 'Ray Dashboard URL。', 'type' => 'string', 'example' => 'https://rhsxxx-dashboard.dsw-gateway-cn-wulanchabu.data.aliyun.com/', 'title' => ''], + 'StoragePath' => ['description' => 'The storage path of Ray logs.', 'type' => 'string', 'example' => 'oss://bucket-test-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/tmp', 'title' => ''], + 'ResourceId' => ['description' => 'The resource group ID. For information about how to query the ID of a dedicated resource group, see [Manage resource quotas](~~2651299~~).', 'type' => 'string', 'example' => 'quotazoqd53w0q75', 'title' => ''], + 'ResourceName' => ['description' => 'The name of the resource on which the job runs.', 'type' => 'string', 'example' => 'OWNER_REPO', 'title' => ''], + 'EcsSpec' => ['description' => 'The hardware specifications of the public resource group. Visit [PAI-DLC billing](~~171758~~) for a detailed list of specifications.><notice>Prices vary depending on the specifications.></notice>.', 'type' => 'string', 'example' => 'ecs.g6.xlarge', 'title' => ''], + 'Accessibility' => ['description' => 'The visibility of the job. Valid values:'."\n" + .'- PUBLIC: visible to all users in the workspace.'."\n" + .'- PRIVATE (default): visible only to you and administrators in the workspace.', 'type' => 'string', 'example' => 'PUBLIC', 'title' => ''], + 'Status' => ['description' => 'The RayHistoryServer status. Valid values:'."\n" + .'- Creating: being created.'."\n" + .'- Running: running.'."\n" + .'- Stopped: stopped.'."\n" + .'- Succeeded: succeeded.'."\n" + .'- Failed: failed.', 'type' => 'string', 'example' => 'Created', 'title' => ''], + 'ReasonCode' => ['description' => 'The status detail code.', 'type' => 'string', 'example' => 'InvalidParameter', 'title' => ''], + 'ReasonMessage' => ['description' => 'The status details.', 'type' => 'string', 'example' => 'PyTorchJob dlc1tx4b9lw3ntb9 is running.', 'title' => ''], + 'GmtCreateTime' => ['description' => 'The time when the job was created, in UTC.', 'type' => 'string', 'example' => '2025-12-30T02:43:52Z', 'title' => ''], + 'GmtModifyTime' => ['description' => 'The time when the job was last modified, in UTC.', 'type' => 'string', 'example' => '2026-05-19T04:05:46Z', 'title' => ''], + 'GmtFinishTime' => ['description' => 'The time when the job ended, in UTC.', 'type' => 'string', 'example' => '2026-01-27T09:17:11Z', 'title' => ''], + 'MaxRuntimeMinutes' => ['description' => 'The maximum runtime in minutes.', 'type' => 'integer', 'format' => 'int32', 'example' => '1000', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', ], ], 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'List rayHistoryServer resources', + 'description' => 'Before you use this operation, make sure that you are familiar with the billing and [pricing](~~171758~~) of Platform for AI - Deep Learning Containers (PAI-DLC).'."\n" + .'><notice>The total length of the CreateJob operation parameters, including system-generated parameters, cannot exceed 65,536 bytes.></notice>.', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'paidlc:ListRayHistoryServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-xxxxxxx\\",\\n \\"TotalCount\\": 1,\\n \\"RayHistoryServers\\": [\\n {\\n \\"WorkspaceId\\": \\"153466\\",\\n \\"DisplayName\\": \\"AEB-RECHARGE-TASK-14478-1778466397-main-4-\\",\\n \\"UserId\\": \\"123456789\\",\\n \\"Username\\": \\"myusername\\",\\n \\"TenantId\\": \\"1335237941080704\\",\\n \\"RayHistoryServerId\\": \\"rhsxxx\\",\\n \\"RayHistoryServerUrl\\": \\"https://rhsxxx-dashboard.dsw-gateway-cn-wulanchabu.data.aliyun.com/\\",\\n \\"StoragePath\\": \\"oss://bucket-test-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/tmp\\",\\n \\"ResourceId\\": \\"quotazoqd53w0q75\\",\\n \\"ResourceName\\": \\"OWNER_REPO\\",\\n \\"EcsSpec\\": \\"ecs.g6.xlarge\\",\\n \\"Accessibility\\": \\"PUBLIC\\",\\n \\"Status\\": \\"Created\\",\\n \\"ReasonCode\\": \\"InvalidParameter\\",\\n \\"ReasonMessage\\": \\"PyTorchJob dlc1tx4b9lw3ntb9 is running.\\",\\n \\"GmtCreateTime\\": \\"2025-12-30T02:43:52Z\\",\\n \\"GmtModifyTime\\": \\"2026-05-19T04:05:46Z\\",\\n \\"GmtFinishTime\\": \\"2026-01-27T09:17:11Z\\",\\n \\"MaxRuntimeMinutes\\": 1000\\n }\\n ]\\n}","type":"json"}]', + 'translator' => 'machine', ], 'ListTensorboards' => [ - 'summary' => 'Queries a list of TensorBoard instances.', + 'summary' => 'Queries a list of created Tensorboard instances.', 'path' => '/api/v1/tensorboards', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -6062,759 +4783,1623 @@ 'APP' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'abilityTreeCode' => '20382', - 'abilityTreeNodes' => [ - 'FEATURElearnVD2RKE', - ], + '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', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to display details.'."\n" + .'- true: Display details.'."\n" + .'- false: Do not display details.', 'type' => 'boolean', 'example' => 'true', 'required' => false], ], [ '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', - ], + 'schema' => ['title' => '', 'description' => 'The workspace ID. Tensorboard instances are filtered by workspace ID. <props="china">Call [ListWorkspaces](~~449124~~) to obtain the workspace ID.</props>.', 'type' => 'string', 'example' => '380', 'required' => false], ], [ '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', - ], + 'schema' => ['description' => 'The data source type. Currently, only DLC training jobs are supported, which means the value is job.', 'type' => 'string', 'required' => false, 'example' => 'job', 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'The data source ID. Call [ListJobs](~~459676~~) to obtain the job ID.', 'type' => 'string', 'required' => false, 'example' => 'dlc-xxxxxx', 'title' => ''], ], [ 'name' => 'DisplayName', 'in' => 'query', - 'schema' => [ - 'title' => '展示名称', - 'description' => 'The TensorBoard instance name.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TestTensorboard', - ], + 'schema' => ['title' => '', 'description' => 'The display name of the Tensorboard instance.', 'type' => 'string', 'example' => 'TestTensorboard', 'required' => false], ], [ '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', - ], + 'schema' => ['title' => '', 'description' => 'The Tensorboard status. Valid values:'."\n" + .'- Creating: being created.'."\n" + .'- Running: running.'."\n" + .'- Stopped: stopped.'."\n" + .'- Succeeded: succeeded.'."\n" + .'- Failed: failed.', 'type' => 'string', 'example' => 'Running', 'required' => false], ], [ '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', - ], + 'schema' => ['title' => '', 'description' => 'The start time of the query range. Tensorboard instances are filtered by their creation time in UTC. If this parameter is left empty, the default value is 7 days before the current time.', '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', - ], + 'schema' => ['title' => '', 'description' => 'The end time of the query range. Tensorboard instances are filtered by their creation time in UTC. If this parameter is left empty, the default value is the current time.', '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', - ], + 'schema' => ['title' => '', 'description' => 'The field by which the results are sorted. Valid values:'."\n" + .'- DisplayName: the job name.'."\n" + .'- GmtCreateTime: the job creation time.', 'type' => 'string', 'example' => 'GmtCreateTime', 'required' => false], ], [ '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', - ], + 'schema' => ['title' => '', 'description' => 'The page number for paging. The value starts from 1.', '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', - ], + 'schema' => ['title' => '', 'description' => 'The number of Tensorboard instances to return on each page for paging.', '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', - ], + 'schema' => ['title' => '', 'description' => 'The sort order. Valid values:'."\n" + .'- desc: descending order.'."\n" + .'- asc: ascending order.', 'type' => 'string', 'example' => 'desc', 'required' => false], ], [ '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', - ], + 'schema' => ['title' => '', 'description' => 'The DLC job ID used to filter Tensorboard instances. Call [ListJobs](~~459676~~) to obtain the job ID.', 'type' => 'string', 'example' => 'dlc-xxx', 'required' => false], ], [ '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', - ], + 'schema' => ['title' => '', 'description' => 'The Tensorboard ID used to filter the Tensorboard list.', 'type' => 'string', 'example' => 'tensorboard-xxx', 'required' => false], ], [ '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', - ], + 'schema' => ['title' => '', 'description' => 'Specifies whether to return only Tensorboard instances created by the current user.', 'type' => 'boolean', 'required' => false, 'default' => 'true', 'example' => 'false'], ], [ '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', - ], + 'schema' => ['description' => 'The billing method of the Tensorboard instance. Valid values:'."\n" + .'- Free: a Tensorboard instance that uses free resources.'."\n" + .'- Postpaid: a Tensorboard instance that uses pay-as-you-go resources.', 'type' => 'string', 'required' => false, 'example' => 'Postpaid', 'title' => ''], ], [ 'name' => 'UserId', 'in' => 'query', - 'schema' => [ - 'description' => 'The user ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '161****3000', - ], + 'schema' => ['description' => 'The user ID.', 'type' => 'string', 'required' => false, 'example' => '161****3000', 'title' => ''], ], [ 'name' => 'Username', 'in' => 'query', - 'schema' => [ - 'description' => 'The username.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'she****mo', - ], + 'schema' => ['description' => 'The username.', 'type' => 'string', 'required' => false, 'example' => 'she****mo', 'title' => ''], ], [ '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", - ], + 'schema' => ['description' => 'The resource quota ID.'."\n" + .'> - Currently, only whitelisted users can use resource quota resources to create Tensorboard instances. To use this feature, contact us.'."\n" + .'> - This parameter takes effect only when the Tensorboard instance uses resource quota resources.', 'type' => 'string', 'required' => false, 'example' => 'quota12***'."\n", 'title' => ''], ], [ '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', - ], + 'schema' => ['description' => 'The visibility of the Tensorboard instance. Valid values:'."\n" + .'- PUBLIC: visible to all members in the workspace.'."\n" + .'- PRIVATE: visible only to you and administrators in the workspace.', 'type' => 'string', 'required' => false, 'example' => 'PRIVATE', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The returned data.'."\n", + 'description' => 'The response.', 'type' => 'object', 'properties' => [ 'Tensorboards' => [ - 'title' => 'Tensorboard 列表', - 'description' => 'The TensorBoard instances.'."\n", + 'title' => '', + 'description' => 'The list and details of Tensorboard instances.', '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', + 'items' => ['description' => 'The Tensorboard details.', '$ref' => '#/components/schemas/Tensorboard', 'title' => '', 'example' => ''], + 'example' => '', ], + 'TotalCount' => ['title' => '', 'description' => 'The total number of Tensorboard instances that match the specified conditions.', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], ], + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Tensorboards\\": [\\n {\\n \\"TensorboardId\\": \\"tensorboard-xxx\\",\\n \\"TensorboardUrl\\": \\"http://xxxxxx\\",\\n \\"Status\\": \\"running\\",\\n \\"Duration\\": \\"60\\",\\n \\"GmtCreateTime\\": \\"2021-01-12T14:35:00Z\\",\\n \\"GmtModifyTime\\": \\"2021-01-12T14:36:00Z\\",\\n \\"GmtFinishTime\\": \\"null\\",\\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\\": \\"\\\\\\"\\\\\\"\\",\\n \\"ReasonMessage\\": \\"\\\\\\"\\\\\\"\\",\\n \\"JobId\\": \\"dlc-20210114104214-vf9lowjt3pso\\",\\n \\"TensorboardDataSources\\": [\\n {\\n \\"DirectoryName\\": \\"dlcJobName\\",\\n \\"Name\\": \\"dlcJobName\\",\\n \\"Id\\": \\"d-vf2fdhxxxxxx\\",\\n \\"DataSourceType\\": \\"OSS\\",\\n \\"Uri\\": \\"oss://examplebucket.oss-cn-shanghai-internal.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\\": \\"quota12***\\",\\n \\"Priority\\": \\"1\\",\\n \\"QuotaName\\": \\"dlc-quota\\",\\n \\"Accessibility\\": \\"PRIVATE\\"\\n }\\n ],\\n \\"TotalCount\\": 100,\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]', + 'title' => 'Query tensorboard list', + 'changeSet' => [ + ['createdAt' => '2024-07-11T11:23:57.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-06-06T07:48:17.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-03-28T07:37:35.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2023-08-03T11:01:35.000Z', 'description' => 'Request parameters changed'], ], - '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', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:ListTensorboards', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'translator' => 'machine', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTensorboards'], + ], ], + ], + 'SetJobTemplateDefaultVersion' => [ + 'summary' => 'Sets the default version of a job template.', + 'path' => '/api/v1/jobtemplates/{TemplateId}/defaultversion', + 'methods' => ['put'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '20371', - 'abilityTreeNodes' => [ - 'FEATURElearnWA9VRC', - ], + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ - 'name' => 'WorkspaceId', - 'in' => 'query', + 'name' => 'TemplateId', + 'in' => 'path', + 'schema' => ['description' => 'The template ID.', 'type' => 'string', 'required' => true, 'maxLength' => 128, 'title' => '', 'example' => 'tplmceolmf2****'], + ], + [ + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', 'schema' => [ - 'title' => '工作空间ID', - 'description' => 'The workspace ID.'."\n", - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'Version' => ['description' => 'The version number to set as the default.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'minimum' => '1', 'title' => '', 'example' => '2'], + ], + 'description' => 'The request body.', 'required' => false, - 'example' => '46099', + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'TensorboardId', - 'in' => 'path', + ], + 'responses' => [ + 200 => [ '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, + 'type' => 'object', + 'properties' => [ + 'DefaultVersion' => ['description' => 'The current default version number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], + 'GmtModifyTime' => ['description' => 'The time the template was last modified.', 'type' => 'string', 'format' => 'iso8601', 'title' => '', 'example' => '2021-01-12T14:36:00Z'], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'title' => '', 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxxx'], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'title' => 'SetJobTemplateDefaultVersion', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"DefaultVersion\\": 2,\\n \\"GmtModifyTime\\": \\"2021-01-12T14:36:00Z\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-xxxxxxx\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'StartRayHistoryServer' => [ + 'path' => '/api/v1/rayhistoryservers/{RayHistoryServerId}/start', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - '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', - ], + 'AK' => [], ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], + ], + 'parameters' => [ [ - '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****', - ], + 'name' => 'RayHistoryServerId', + 'in' => 'path', + 'schema' => ['description' => 'The ID of the Ray History Server.', 'type' => 'string', 'required' => false, 'example' => 'rhsxxx', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => 'The details of the TensorBoard instance.'."\n", - '$ref' => '#/components/schemas/Tensorboard', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], + ], + 'title' => '', + 'description' => 'The response schema.', + 'example' => '', ], ], ], - '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', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'StartRayHistoryServer', + 'summary' => 'Starts a Ray History Server.', + 'description' => 'Before calling this operation, familiarize yourself with the billing methods and [pricing](~~171758~~) of PAI-DLC.><notice>The total length of the API parameters for the CreateJob operation, including system-generated parameters, cannot exceed 65,536 bytes.></notice>', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + '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' => 'read', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '189994', - 'abilityTreeNodes' => [ - 'FEATURElearnQJXF95', - ], + 'operationType' => 'update', + 'abilityTreeCode' => '40265', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ + 'name' => 'WorkspaceId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The workspace ID.'."\n", 'type' => 'string', 'required' => false, 'example' => '380'], + ], + [ 'name' => 'TensorboardId', 'in' => 'path', + 'schema' => ['title' => '', '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' => [ - 'description' => 'The ID of the TensorBoard task.'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'tbxxxxxx', + 'type' => 'object', + 'properties' => [ + 'TensorboardId' => ['title' => '', 'description' => 'The TensorBoard instance ID.'."\n", 'type' => 'string', 'example' => 'tensorboard-20210114104214-vf9lowjt3pso'], + 'RequestId' => ['title' => '', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], + ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + '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', + 'changeSet' => [], + 'ramActions' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartTensorboard'], + ], + ], + ], + 'StopJob' => [ + 'summary' => 'Stops a running job.', + 'path' => '/api/v1/jobs/{JobId}/stop', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - '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', - ], + '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' => '', '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' => [ - 'title' => 'Schema of Response', - 'description' => 'The response parameters.'."\n", + 'description' => 'The returned data.'."\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/', - ], + 'JobId' => ['title' => '', 'description' => 'The job ID.'."\n", 'type' => 'string', 'example' => 'dlc-20210126170216-xxxxxxx'], + 'RequestId' => ['title' => '', 'description' => 'The request ID. You can troubleshoot issues based on the request ID.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxx'], ], + 'title' => '', + 'example' => '', ], ], ], - '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', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"JobId\\": \\"dlc-20210126170216-xxxxxxx\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-xxxxxx\\"\\n}","errorExample":""},{"type":"xml","example":"","errorExample":""}]', + 'title' => 'StopJob', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'paidlc:StopJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopJob'], + ], ], + ], + 'StopRayHistoryServer' => [ + 'path' => '/api/v1/rayhistoryservers/{RayHistoryServerId}/stop', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'read', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElearnQJXF95', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ - 'name' => 'jobId', + 'name' => 'RayHistoryServerId', 'in' => 'path', + 'schema' => ['description' => 'The ID of the Ray History Server.', 'type' => 'string', 'required' => false, 'example' => 'rhsxxx', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '任务ID'."\n", - 'description' => 'The job ID.'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'dlc1k7426goc7bvy', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'title' => '', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], + ], + 'title' => '', + 'description' => 'The response schema.', + 'example' => '', ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'StopRayHistoryServer', + 'summary' => 'Stops a Ray History Server.', + 'description' => 'Before calling this operation, ensure you understand the billing methods and [pricing](~~171758~~) for PAI-DLC.><notice>The total length of the parameters for the CreateJob interface, including system-generated parameters, cannot exceed 65,536 bytes.></notice>', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'StopTensorboard' => [ + 'summary' => 'Stops a TensorBoard instance.', + 'path' => '/api/v1/tensorboards/{TensorboardId}/stop', + 'methods' => ['put'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'isShared', + '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' => '', 'description' => 'The workspace ID.'."\n", 'type' => 'string', 'required' => false, 'example' => '380'], + ], + [ + 'name' => 'TensorboardId', + 'in' => 'path', + 'schema' => ['title' => '', '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' => [ - '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', + 'type' => 'object', + 'properties' => [ + 'TensorboardId' => ['title' => '', 'description' => 'The ID of the TensorBoard instance.'."\n", 'type' => 'string', 'example' => 'tensorboard-20210114104214-xxxxxxxx'], + 'RequestId' => ['title' => '', 'description' => 'The ID of the request.'."\n", 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E'], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + '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', + 'changeSet' => [], + 'ramActions' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopTensorboard'], + ], + ], + ], + 'UpdateJob' => [ + 'summary' => 'Updates a job\'s configuration, such as its priority.', + 'path' => '/api/v1/jobs/{JobId}', + 'methods' => ['put'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'token', - 'in' => 'query', + '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' => ['description' => 'The ID of the job to update. To obtain this ID, see [ListJobs](~~459676~~).', 'type' => 'string', 'example' => 'dlc*************', 'title' => '', 'required' => false], + ], + [ + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', 'schema' => [ - 'title' => '从GetToken获取的token'."\n", - 'description' => 'The token obtained from GetToken'."\n", - 'type' => 'string', + 'description' => 'The job configuration.', + 'type' => 'object', + 'properties' => [ + 'Priority' => ['description' => 'The priority of the job. Valid values range from 1 to 9:'."\n" + ."\n" + .'- 1 indicates the lowest priority.'."\n" + ."\n" + .'- 9 indicates the highest priority.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => '', 'required' => false], + 'Accessibility' => ['description' => 'The job\'s visibility. You can only increase, not decrease, the visibility. Valid value:'."\n" + ."\n" + .'- `PUBLIC`: The job is visible to all users in the workspace.', 'type' => 'string', 'required' => false, 'example' => 'PUBLIC', 'title' => ''], + 'JobSpecs' => [ + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/JobSpec', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], + 'title' => '', + 'description' => 'The job specifications.', + 'example' => '', + 'required' => false, + ], + 'Description' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], + ], 'required' => false, - 'example' => 'some_token_value', + 'title' => '', + 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response'."\n", + 'title' => '', + 'description' => 'The response body.', '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', - ], - ], + 'JobId' => ['description' => 'The ID of the job.', 'type' => 'string', 'example' => 'dlc*************', 'title' => ''], + 'RequestId' => ['description' => 'The request ID, used for diagnostics and support.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', 'title' => ''], ], + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => 'UpdateJob', + 'changeSet' => [ + ['createdAt' => '2025-11-10T06:08:17.000Z', 'description' => 'Request parameters changed'], ], - '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', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateJob'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'paidlc:UpdateJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"JobId\\": \\"dlc*************\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'UpdateJobTemplate' => [ + 'summary' => 'Updates a job template.', + 'path' => '/api/v1/jobtemplates/{TemplateId}', + 'methods' => ['put'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'read', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATURElearnQJXF95', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATURElearnQJXF95'], ], 'parameters' => [ [ - 'name' => 'jobId', + 'name' => 'TemplateId', 'in' => 'path', + 'schema' => ['description' => 'The unique identifier of the job template.', 'type' => 'string', 'required' => true, 'maxLength' => 128, 'title' => '', 'example' => 'tplmceolmf2****'], + ], + [ + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', 'schema' => [ - 'title' => '任务ID'."\n", - 'description' => 'The task ID.'."\n", - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'TemplateName' => ['description' => 'The name of the job template.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => 'job-template-example-1778047**** '], + 'Description' => ['description' => 'The description of the job template.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => ' '."\n" + .'Template description'."\n"], + 'Metadata' => ['description' => 'User-defined key-value pairs.', 'type' => 'object', 'title' => '', 'required' => false, 'example' => '{}'], + 'Content' => ['description' => 'The configuration content of the job template. This parameter supports all fields from the `CreateJob` operation and must be in JSON format. Specifying this parameter creates a new version.', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '{\\"WorkspaceId\\":\\"15****05\\",\\"JobType\\":\\"PyTorchJob\\",\\"UserCommand\\":\\"echo hello\\",\\"JobSpecs\\":[{\\"Type\\":\\"Worker\\",\\"PodCount\\":1,\\"Image\\":\\"dsw-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai/pytorch:2.8.0-gpu-py313-cu129-ubuntu22.04-3995b779-1764361782\\",\\"EcsSpec\\":\\"ecs.gn7i-c8g1.2xlarge\\"}],\\"ResourceType\\":\\"ECS\\",\\"_ResourcePaymentType\\":\\"PostPaid\\",\\"CredentialConfig\\":{\\"EnableCredentialInject\\":false},\\"Accessibility\\":\\"PRIVATE\\",\\"Settings\\":{\\"JobReservedMinutes\\":0,\\"Tags\\":{}}} '], + 'Constraints' => ['description' => 'The field constraints. The key is a JSONPath expression and the value is the constraint type. Valid values are `locked`, `overridable`, and `required`. This parameter must be specified with `Content` and cannot be updated on its own.', 'type' => 'object', 'title' => '', 'required' => false, 'example' => '{\\"JobSpecs[0].Image\\":\\"locked\\",\\"UserCommand\\":\\"locked\\",\\"JobType\\":\\"locked\\"}'], + 'SetAsDefault' => ['description' => 'If `true`, the new version becomes the default version.', 'type' => 'boolean', 'default' => 'false', 'title' => '', 'required' => false, 'example' => 'true'], + 'version' => ['description' => 'This field is not supported.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '无效字段', 'title' => ''], + ], + 'description' => 'The request body.', 'required' => false, - 'example' => 'dlc1k7426goc7bvy', + 'title' => '', + 'example' => '', ], ], - [ - 'name' => 'isShared', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ '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', + 'type' => 'object', + 'properties' => [ + 'Version' => ['description' => 'The version number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], + 'VersionCreated' => ['description' => 'Indicates whether a new version was created.', 'type' => 'boolean', 'title' => '', 'example' => 'true'], + 'DefaultVersion' => ['description' => 'The default version number.', 'type' => 'integer', 'format' => 'int32', 'title' => '', 'example' => '2'], + 'GmtModifyTime' => ['description' => 'The time the template was last modified.', 'type' => 'string', 'format' => 'iso8601', 'title' => '', 'example' => '2021-01-12T14:36:00Z'], + 'RequestId' => ['description' => 'The request ID, used for diagnostics and troubleshooting.', 'type' => 'string', 'title' => '', 'example' => '473469C7-AA6F-4DC5-B3DB-xxxxxxx'], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], + ], + 'title' => 'UpdateJobTemplate', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'token', - 'in' => 'query', - 'schema' => [ - 'title' => '从GetToken获取的token'."\n", - 'description' => 'The token obtained from GetToken'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'some_token_value', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'paidlc:UpdateJobTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], ], ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Version\\": 2,\\n \\"VersionCreated\\": true,\\n \\"DefaultVersion\\": 2,\\n \\"GmtModifyTime\\": \\"2021-01-12T14:36:00Z\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-xxxxxxx\\"\\n}","type":"json"}]', + 'translator' => 'machine', + ], + 'UpdateTensorboard' => [ + 'summary' => 'Update a Tensorboard.', + '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' => ['description' => 'Workspace ID. For more information about how to get a workspace ID, see [ListWorkspaces]().', 'type' => 'string', 'example' => '380', 'title' => '', 'required' => false], + ], + [ + 'name' => 'TensorboardId', + 'in' => 'path', + 'schema' => ['title' => '', 'description' => 'Tensorboard ID. For more information about how to get a Tensorboard ID, see [ListTensorboards]().', 'type' => 'string', 'required' => true, 'example' => 'tensorboard-20210114104214-vf9lowjt3pso', 'maxLength' => 256, 'minLength' => 1], + ], + [ + 'name' => 'MaxRunningTimeMinutes', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Maximum runtime. Unit: minutes.', 'type' => 'integer', 'format' => 'int64', 'example' => '300', 'required' => false], + ], + [ + 'name' => 'Accessibility', + 'in' => 'query', + 'schema' => ['description' => 'Visibility of the task. Valid values:'."\n" + ."\n" + .'- PUBLIC: Visible to all users in this workspace.'."\n" + ."\n" + .'- PRIVATE: Visible only to you and administrators in this workspace.', 'type' => 'string', 'required' => false, 'example' => 'PRIVATE', 'title' => ''], + ], + [ + 'name' => 'Priority', + 'in' => 'query', + 'schema' => ['type' => 'string', 'description' => '', 'required' => false, 'title' => '', 'example' => ''], + ], + ], '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', - ], + 'TensorboardId' => ['title' => '', 'description' => 'Tensorboard ID.', 'type' => 'string', 'example' => 'tensorboard-20210114104214-xxxxxxxx'], + 'RequestId' => ['description' => 'Request ID.', 'type' => 'string', 'example' => '473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E', 'title' => ''], ], + 'description' => '', + 'title' => '', + 'example' => '', ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"TensorboardId\\": \\"tensorboard-20210114104214-xxxxxxxx\\",\\n \\"RequestId\\": \\"473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E\\"\\n}","type":"json"}]', + 'title' => 'UpdateTensorboard', + 'changeSet' => [ + ['createdAt' => '2024-11-18T09:25:05.000Z', 'description' => 'Request parameters changed'], + ['createdAt' => '2024-08-22T09:59:42.000Z', 'description' => 'Request parameters changed'], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'paidlc:UpdateTensorboard', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'translator' => 'machine', + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateTensorboard'], + ], ], - '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-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.cn-shenzhen.aliyuncs.com', 'endpoint' => 'pai-dlc.cn-shenzhen.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'cn-wulanchabu', 'regionName' => 'China (Ulanqab)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'pai-dlc.cn-wulanchabu.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.cn-wulanchabu.aliyuncs.com'], + ['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.cn-beijing.aliyuncs.com', 'endpoint' => 'pai-dlc.cn-beijing.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.cn-beijing.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.ap-northeast-1.aliyuncs.com', 'endpoint' => 'pai-dlc.ap-northeast-1.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.cn-shanghai.aliyuncs.com', 'endpoint' => 'pai-dlc.cn-shanghai.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-guangzhou', 'regionName' => 'China (Guangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.cn-guangzhou.aliyuncs.com', 'endpoint' => 'pai-dlc.cn-guangzhou.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.cn-guangzhou.aliyuncs.com'], + ['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.cn-hongkong.aliyuncs.com', 'endpoint' => 'pai-dlc.cn-hongkong.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.cn-hongkong.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.ap-southeast-1.aliyuncs.com', 'endpoint' => 'pai-dlc.ap-southeast-1.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-3', 'regionName' => 'Malaysia (Kuala Lumpur)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.ap-southeast-3.aliyuncs.com', 'endpoint' => 'pai-dlc.ap-southeast-3.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.ap-southeast-3.aliyuncs.com'], + ['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.ap-southeast-5.aliyuncs.com', 'endpoint' => 'pai-dlc.ap-southeast-5.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.ap-southeast-5.aliyuncs.com'], + ['regionId' => 'ap-southeast-7', 'regionName' => 'Thailand (Bangkok)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.ap-southeast-7.aliyuncs.com', 'endpoint' => 'pai-dlc.ap-southeast-7.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.ap-southeast-7.aliyuncs.com'], + ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.cn-hangzhou.aliyuncs.com', 'endpoint' => 'pai-dlc.cn-hangzhou.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.cn-hangzhou.aliyuncs.com'], + ['regionId' => 'ap-southeast-8', 'regionName' => 'Malaysia (Johor)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'pai-dlc.ap-southeast-8.aliyuncs.com', 'endpoint' => 'pai-dlc.ap-southeast-8.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.ap-southeast-8.aliyuncs.com'], + ['regionId' => 'us-west-1', 'regionName' => 'US (Silicon Valley)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'pai-dlc.us-west-1.aliyuncs.com', 'endpoint' => 'pai-dlc.us-west-1.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.us-west-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'regionName' => 'US (Virginia)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'pai-dlc.us-east-1.aliyuncs.com', 'endpoint' => 'pai-dlc.us-east-1.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.us-east-1.aliyuncs.com'], + ['regionId' => 'us-southeast-1', 'regionName' => 'US(Atlanta)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'pai-dlc.us-southeast-1.aliyuncs.com', 'endpoint' => 'pai-dlc.us-southeast-1.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.us-southeast-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'pai-dlc.eu-central-1.aliyuncs.com', 'endpoint' => 'pai-dlc.eu-central-1.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.eu-central-1.aliyuncs.com'], + ['regionId' => 'me-east-1', 'regionName' => 'UAE (Dubai)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'pai-dlc.me-east-1.aliyuncs.com', 'endpoint' => 'pai-dlc.me-east-1.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.me-east-1.aliyuncs.com'], + ['regionId' => 'cn-shanghai-finance-1', 'regionName' => 'China East 2 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'pai-dlc.cn-shanghai-finance-1.aliyuncs.com', 'endpoint' => 'pai-dlc.cn-shanghai-finance-1.aliyuncs.com', 'vpc' => 'pai-dlc-vpc.cn-shanghai-finance-1.aliyuncs.com'], + ], + 'errorCodes' => [ + ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => 500, 'description' => ''], + ], + 'changeSet' => [ + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetJob'], + ], + 'createdAt' => '2025-11-18T03:50:52.000Z', + 'description' => '', + ], [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'pai-dlc.cn-beijing.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'UpdateJob'], + ], + 'createdAt' => '2025-11-10T06:08:35.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-wulanchabu', - 'endpoint' => 'pai-dlc.cn-wulanchabu.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetJob'], + ], + 'createdAt' => '2025-10-23T08:44:46.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hangzhou', - 'endpoint' => 'pai-dlc.cn-hangzhou.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListJobs'], + ], + 'createdAt' => '2025-10-17T07:04:05.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'pai-dlc.cn-shanghai.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListJobs'], + ], + 'createdAt' => '2025-01-09T12:43:22.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'pai-dlc.cn-shenzhen.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateJob'], + ], + 'createdAt' => '2024-12-18T06:03:34.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-guangzhou', - 'endpoint' => 'pai-dlc.cn-guangzhou.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListJobs'], + ], + 'createdAt' => '2024-11-21T12:37:00.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-hongkong', - 'endpoint' => 'pai-dlc.cn-hongkong.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'UpdateTensorboard'], + ], + 'createdAt' => '2024-11-18T09:25:18.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'pai-dlc.ap-northeast-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetJob'], + ], + 'createdAt' => '2024-10-23T02:31:53.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'pai-dlc.ap-southeast-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'DeleteJob'], + ], + 'createdAt' => '2024-08-22T10:40:26.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-3', - 'endpoint' => 'pai-dlc.ap-southeast-3.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'UpdateTensorboard'], + ], + 'createdAt' => '2024-08-22T10:01:45.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-5', - 'endpoint' => 'pai-dlc.ap-southeast-5.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateJob'], + ], + 'createdAt' => '2024-08-09T08:19:50.000Z', + 'description' => '', ], [ - 'regionId' => 'us-east-1', - 'endpoint' => 'pai-dlc.us-east-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateTensorboard'], + ['description' => 'Request parameters changed', 'api' => 'ListTensorboards'], + ], + 'createdAt' => '2024-07-11T11:25:05.000Z', + 'description' => '', ], [ - 'regionId' => 'us-west-1', - 'endpoint' => 'pai-dlc.us-west-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetJob'], + ], + 'createdAt' => '2024-07-09T04:18:10.000Z', + 'description' => '', ], [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'pai-dlc.eu-central-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateJob'], + ], + 'createdAt' => '2024-07-05T02:28:40.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListTensorboards'], + ], + 'createdAt' => '2024-06-06T07:48:57.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListJobs'], + ], + 'createdAt' => '2024-04-09T02:18:50.000Z', + 'description' => '', ], [ - 'regionId' => 'cn-shanghai-finance-1', - 'endpoint' => 'pai-dlc.cn-shanghai-finance-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateTensorboard'], + ['description' => 'Request parameters changed', 'api' => 'ListTensorboards'], + ], + 'createdAt' => '2024-03-28T07:38:15.000Z', + 'description' => '', ], [ - 'regionId' => 'ap-southeast-7', - 'endpoint' => 'pai-dlc.ap-southeast-7.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'GetJobSanityCheckResult'], + ['description' => 'Request parameters changed', 'api' => 'ListJobSanityCheckResults'], + ], + 'createdAt' => '2024-02-26T03:31:30.000Z', + 'description' => '', ], [ - 'regionId' => 'us-southeast-1', - 'endpoint' => 'pai-dlc.us-southeast-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetJob'], + ['description' => 'Request parameters changed', 'api' => 'ListEcsSpecs'], + ], + 'createdAt' => '2024-01-24T10:35:25.000Z', + 'description' => '', ], [ - 'regionId' => 'me-east-1', - 'endpoint' => 'pai-dlc.me-east-1.aliyuncs.com', + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListJobs'], + ], + 'createdAt' => '2024-01-12T05:44:09.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'GetJobSanityCheckResult'], + ], + 'createdAt' => '2024-01-08T08:10:08.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetJob'], + ], + 'createdAt' => '2024-01-05T02:50:55.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetJob'], + ], + 'createdAt' => '2024-01-03T08:01:59.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListJobs'], + ], + 'createdAt' => '2023-12-14T10:35:51.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateJob'], + ['description' => 'Response parameters changed, Response parameters changed', 'api' => 'GetJob'], + ], + 'createdAt' => '2023-12-08T09:51:35.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'GetWebTerminal'], + ], + 'createdAt' => '2023-11-08T00:26:31.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateJob'], + ], + 'createdAt' => '2023-09-11T11:52:13.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'GetTensorboard'], + ], + 'createdAt' => '2023-08-11T05:55:33.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListTensorboards'], + ], + 'createdAt' => '2023-08-03T11:01:38.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetWebTerminal'], + ], + 'createdAt' => '2023-07-21T08:19:30.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetJobEvents'], + ], + 'createdAt' => '2023-03-24T08:20:24.000Z', + 'description' => '', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'DeleteJob'], + ], + 'createdAt' => '2023-01-06T07:38:55.000Z', + 'description' => 'DeleteJob API的文档更新:JobId修改为必选参数', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateJob'], + ], + 'createdAt' => '2022-12-27T06:55:39.000Z', + 'description' => '增加对私有镜像仓库的Username/Password的配置', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListJobs'], + ], + 'createdAt' => '2022-11-29T12:21:37.000Z', + 'description' => 'ListJobs API添加参数JobId,以支持用户通过JobId进行任务搜索的功能', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetJob'], + ], + 'createdAt' => '2022-07-22T03:24:55.000Z', + 'description' => '更新一些字段说明', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListCodeSources'], + ], + 'createdAt' => '2022-07-21T04:27:30.000Z', + 'description' => '更新部分字段的描述信息', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'ListImages'], + ], + 'createdAt' => '2022-07-05T06:35:28.000Z', + 'description' => 'Improve CreateJob and ListImages API', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'CreateSmartCache'], + ['description' => 'OpenAPI offline', 'api' => 'DeleteSmartCache'], + ['description' => 'OpenAPI offline', 'api' => 'GetSmartCache'], + ['description' => 'OpenAPI offline', 'api' => 'ListSmartCaches'], + ['description' => 'OpenAPI offline', 'api' => 'StopSmartCache'], + ], + 'createdAt' => '2022-06-16T03:00:19.000Z', + 'description' => '上线', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'GetJob'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'GetPodEvents'], + ['description' => 'Request parameters changed, Response parameters changed', 'api' => 'GetPodLogs'], + ['description' => 'Request parameters changed', 'api' => 'ListEcsSpecs'], + ], + 'createdAt' => '2022-05-13T03:11:19.000Z', + 'description' => 'api 更新', + ], + [ + 'apis' => [ + ['description' => 'Response parameters changed', 'api' => 'ListDebuggerConfigs'], + ['description' => 'Response parameters changed', 'api' => 'ListDebuggerConfigTemplates'], + ['description' => 'Response parameters changed', 'api' => 'ListDebuggerJobs'], + ], + 'createdAt' => '2022-04-13T05:38:58.000Z', + 'description' => '变更debugger的listdebuggerconfigtemplate、listdebuggerconfig接口中返回值为array类型', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'DeleteJobs'], + ['description' => 'OpenAPI offline', 'api' => 'StopJobs'], + ], + 'createdAt' => '2022-03-22T07:11:16.000Z', + 'description' => '批量删除作业、批量停止作业', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'ListDebuggerConfigs'], + ['description' => 'OpenAPI offline', 'api' => 'ListDebuggerConfigTemplates'], + ['description' => 'OpenAPI offline', 'api' => 'ListDebuggerJobs'], + ], + 'createdAt' => '2022-03-21T01:35:07.000Z', + 'description' => '上线原因为:debugger相关业务上线。POP接口新增接口:GetJobDebuggerConfigCreateDebuggerConfigCreateDebuggerJobIssueStopDebuggerJobsListDebuggerJobPodsGetDebuggerJobListDebuggerJobsGetDebuggerResultDeleteDebuggerConfigUpdateDebuggerConfigGetDebuggerConfigListDebuggerConfigsListDebuggerConfigTemplates新增结构体:DebuggerJobJobDebuggerConfigDebuggerJobIssueDebuggerResultDebuggerConfig修改接口:GetJob增加EnabledDebugger属性CreateJob增加非必填DebuggerConfigContent字段修改结构体:JobItem结构体增加EnabledDebugger属性', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'GetJobWorkflow'], + ], + 'createdAt' => '2022-02-15T03:27:09.000Z', + 'description' => '离线混部ev_predict任务支持,获取执行flow', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'JobDispatchQuery'], + ['description' => 'OpenAPI offline', 'api' => 'JobDispatchSubmit'], + ], + 'createdAt' => '2022-01-11T07:47:31.000Z', + 'description' => '1. DLC Quota/Job支持 潮汐资源 配置', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'GetAuthorization'], + ], + 'createdAt' => '2021-04-25T07:57:37.000Z', + 'description' => 'API上线:RAM角色授权校验', + ], + [ + 'apis' => [ + ['description' => 'OpenAPI offline', 'api' => 'GetJobMetrics'], + ], + 'createdAt' => '2021-04-25T07:56:39.000Z', + 'description' => '已上线:作业资源监控API', + ], + [ + 'apis' => [ + ['description' => 'Request parameters changed', 'api' => 'CreateDataSource'], + ['description' => 'Response parameters changed', 'api' => 'GetDataSource'], + ], + 'createdAt' => '2021-04-14T07:07:20.000Z', + 'description' => '在 DataSource 中添加可选参数,支持 OSS 所需的 Path、Endpoint 等信息。', + ], + ], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobSanityCheckResult'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobMetrics'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJob'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPodEvents'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTensorboards'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetWebTerminal'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetPodLogs'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateJob'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteTensorboard'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopTensorboard'], + ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopJob'], + ['threshold' => '150', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateJob'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetJobEvents'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteJob'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListEcsSpecs'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetTensorboardSharedUrl'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListJobSanityCheckResults'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartTensorboard'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetTensorboard'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetToken'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateTensorboard'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateTensorboard'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListJobs'], + ], + ], + 'ram' => [ + 'productCode' => 'PAI', + 'productName' => 'Platform for AI', + 'ramCodes' => ['paiplugin', 'eas', 'pai', 'datasetacc', 'featurestore', 'paidlc', 'paiitag', 'paidesigner', 'paitraining', 'paiartlab', 'paicomponentmanagement'], + 'ramLevel' => 'OPERATION', + 'ramConditions' => [], + 'ramActions' => [ + [ + 'apiName' => 'UpdateJobTemplate', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'paidlc:UpdateJobTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteTensorboard', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'paidlc:DeleteTensorboard', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetJob', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetJobSanityCheckResult', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJobSanityCheckResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ListRayHistoryServers', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'paidlc:ListRayHistoryServers', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ListJobSanityCheckResults', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:ListJobSanityCheckResults', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'StopJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'paidlc:StopJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteJob', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'paidlc:DeleteJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetToken', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetWebTerminal', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetWebTerminal', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateJobTemplate', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'paidlc:CreateJobTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetDashboard', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateTensorboard', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'paidlc:CreateTensorboard', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UpdateTensorboard', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'paidlc:UpdateTensorboard', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetJobMetrics', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJobMetrics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetPodLogs', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetPodLogs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'StartTensorboard', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'paidlc:StartTensorboard', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteJobTemplate', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'paidlc:DeleteJobTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetJobTemplate', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJobTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ListJobTemplates', + 'description' => '', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'paidlc:ListJobTemplates', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateJob', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'paidlc:CreateJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetRayHistoryServer', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetRayHistoryServer', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetPodEvents', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetPodEvents', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ListJobs', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:ListJobs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetMetrics', + 'description' => '', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'paidlc:GetMetrics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetJobEvents', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJobEvents', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UpdateJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'paidlc:UpdateJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'ListTensorboards', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:ListTensorboards', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetTensorboardSharedUrl', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetTensorboardSharedUrl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetRayDashboard', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetJob', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetTensorboard', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'paidlc:GetTensorboard', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'PAI', 'resourceType' => 'All Resource', 'arn' => '*'], + ], + ], + ], + ], + 'resourceTypes' => [ + ['validationType' => 'always', 'resourceType' => 'RayHistoryServer', 'arn' => 'acs:paiplugin:{#regionId}:{#accountId}:rayhistoryserver/*'], + ['validationType' => 'always', 'resourceType' => 'Job', 'arn' => 'acs:paidlc:{#regionId}:{#accountId}:job/{#JobId}'], ], ], ]; |
