diff options
Diffstat (limited to 'data/zh_cn/emr-serverless-spark/2023-08-08')
| -rw-r--r-- | data/zh_cn/emr-serverless-spark/2023-08-08/api-docs.php | 18107 |
1 files changed, 7328 insertions, 10779 deletions
diff --git a/data/zh_cn/emr-serverless-spark/2023-08-08/api-docs.php b/data/zh_cn/emr-serverless-spark/2023-08-08/api-docs.php index 0d13f08..baaa2a1 100644 --- a/data/zh_cn/emr-serverless-spark/2023-08-08/api-docs.php +++ b/data/zh_cn/emr-serverless-spark/2023-08-08/api-docs.php @@ -1,1160 +1,593 @@ <?php return [ 'version' => '1.0', - 'info' => [ - 'style' => 'ROA', - 'product' => 'emr-serverless-spark', - 'version' => '2023-08-08', - ], + 'info' => ['style' => 'ROA', 'product' => 'emr-serverless-spark', 'version' => '2023-08-08'], 'directories' => [ [ - 'id' => 389575, - 'title' => '权限管理', + 'children' => ['AddMembers', 'ListMembers', 'GrantRoleToUsers'], 'type' => 'directory', - 'children' => [ - 'AddMembers', - 'ListMembers', - 'GrantRoleToUsers', - ], + 'title' => '权限管理', + 'id' => 144143, ], [ - 'id' => 389579, - 'title' => '会话管理', + 'children' => ['GetSessionCluster', 'CreateSessionCluster', 'StopSessionCluster', 'StartSessionCluster', 'ListSessionClusters'], 'type' => 'directory', - 'children' => [ - 'GetSessionCluster', - 'CreateSessionCluster', - 'StopSessionCluster', - 'StartSessionCluster', - 'ListSessionClusters', - ], + 'title' => '会话管理', + 'id' => 144133, ], [ - 'id' => 389585, - 'title' => 'Gateway', - 'type' => 'directory', 'children' => [ [ - 'id' => 389586, + 'children' => ['ListKyuubiSparkApplications', 'CancelKyuubiSparkApplication', 'DeleteKyuubiToken', 'UpdateKyuubiToken', 'GetKyuubiToken', 'CreateKyuubiToken', 'ListKyuubiToken', 'ListKyuubiServices', 'CreateKyuubiService', 'GetKyuubiService', 'UpdateKyuubiService', 'DeleteKyuubiService', 'StartKyuubiService', 'StopKyuubiService'], + 'type' => 'directory', 'title' => 'Kyuubi Gateway', + 'id' => 144148, + ], + [ + 'children' => ['ListLivyComputeSessions', 'DeleteLivyCompute', 'CreateLivyCompute', 'UpdateLivyCompute', 'ListLivyCompute', 'StartLivyCompute', 'RefreshLivyComputeToken', 'GetLivyComputeToken', 'CreateLivyComputeToken', 'DeleteLivyComputeToken', 'StopLivyCompute', 'ListLivyComputeToken', 'GetLivyCompute'], 'type' => 'directory', - 'children' => [ - 'ListKyuubiSparkApplications', - 'CancelKyuubiSparkApplication', - 'DeleteKyuubiToken', - 'UpdateKyuubiToken', - 'GetKyuubiToken', - 'CreateKyuubiToken', - 'ListKyuubiToken', - 'ListKyuubiServices', - 'CreateKyuubiService', - 'GetKyuubiService', - 'UpdateKyuubiService', - 'DeleteKyuubiService', - 'StartKyuubiService', - 'StopKyuubiService', - ], - ], - [ - 'id' => 389601, 'title' => 'Livy Gateway', - 'type' => 'directory', - 'children' => [ - 'ListLivyComputeSessions', - 'DeleteLivyCompute', - 'CreateLivyCompute', - 'UpdateLivyCompute', - 'ListLivyCompute', - 'StartLivyCompute', - 'RefreshLivyComputeToken', - 'GetLivyComputeToken', - 'CreateLivyComputeToken', - 'DeleteLivyComputeToken', - 'StopLivyCompute', - 'StopLivyCompute', - 'ListLivyComputeToken', - 'GetLivyCompute', - ], + 'id' => 144156, ], ], + 'type' => 'directory', + 'title' => 'Gateway', + 'id' => 144147, ], [ - 'id' => 389615, - 'title' => '数据开发', + 'children' => ['TerminateSqlStatement', 'CreateSqlStatement', 'GetSqlStatement', 'ListSqlStatementContents'], 'type' => 'directory', - 'children' => [ - 'GetTemplate', - 'TerminateSqlStatement', - 'CreateSqlStatement', - 'GetSqlStatement', - 'ListSqlStatementContents', - ], + 'title' => '数据开发', + 'id' => 144127, ], [ - 'id' => 389621, - 'title' => '工作空间管理', + 'children' => ['ListWorkspaceQueues', 'EditWorkspaceQueue'], 'type' => 'directory', - 'children' => [ - 'CreateWorkspace', - 'ListWorkspaces', - 'ListWorkspaceQueues', - 'EditWorkspaceQueue', - ], + 'title' => '工作空间管理', + 'id' => 144122, ], [ - 'id' => 389626, - 'title' => 'Spark版本管理', + 'children' => ['ListReleaseVersions'], 'type' => 'directory', - 'children' => [ - 'ListReleaseVersions', - ], + 'title' => 'Spark版本管理', + 'id' => 144112, ], [ - 'id' => 389628, - 'title' => 'Spark任务管理', + 'children' => ['ListJobExecutors', 'ListLogContents', 'GetCuHours', 'GetDoctorApplication', 'CancelJobRun', 'ListJobRuns', 'GetJobRun', 'StartJobRun', 'GetRunConfiguration'], 'type' => 'directory', - 'children' => [ - 'ListJobExecutors', - 'ListLogContents', - 'GetCuHours', - 'GetDoctorApplication', - 'CancelJobRun', - 'ListJobRuns', - 'GetJobRun', - 'StartJobRun', - 'GetRunConfiguration', - ], + 'title' => 'Spark任务管理', + 'id' => 144114, ], [ - 'id' => 389638, - 'title' => '任务编排', + 'children' => ['ListRayLogs', 'GetRayLog', 'CancelRayJob', 'SubmitRayJob', 'ListRayJob', 'GetRayJob'], 'type' => 'directory', - 'children' => [ - 'StartProcessInstance', - 'UpdateProcessDefinitionWithSchedule', - 'CreateProcessDefinitionWithSchedule', - 'GenerateTaskCodes', - ], + 'title' => 'Ray任务管理', + 'id' => 453886, ], [ - 'id' => 389643, - 'title' => '集群管理', + 'children' => ['StartProcessInstance', 'UpdateProcessDefinitionWithSchedule', 'CreateProcessDefinitionWithSchedule', 'GenerateTaskCodes'], 'type' => 'directory', + 'title' => '任务编排', + 'id' => 144139, + ], + [ 'children' => [ [ - 'id' => 389644, - 'title' => 'Ray集群', + 'children' => ['UpdateRayCluster', 'GetRayCluster', 'ListRayCluster', 'StopRayCluster', 'StartRayCluster', 'DeleteRayCluster', 'CreateRayCluster'], 'type' => 'directory', - 'children' => [ - 'UpdateRayCluster', - 'GetRayCluster', - 'ListRayCluster', - 'StopRayCluster', - 'StartRayCluster', - 'DeleteRayCluster', - 'CreateRayCluster', - ], + 'title' => 'Ray集群', + 'id' => 384693, ], ], + 'type' => 'directory', + 'title' => '集群管理', + 'id' => 384692, ], [ - 'id' => 389652, - 'title' => '其他', + 'children' => ['ListNetworkServices', 'CreateNetworkService'], 'type' => 'directory', - 'children' => [ - 'ListCatalogs', - 'ListTemplate', - ], + 'title' => '网络连接', + 'id' => 439891, + ], + [ + 'children' => ['ListCatalogs', 'ListExecutorLogs', 'GetCacheCluster', 'StartCacheCluster', 'StopCacheCluster', 'ActivateAICenter', 'ChangeResourceGroup', 'CreateWorkspace', 'GetAICenterState', 'GetTemplate', 'ListTemplate', 'ListWorkspaces', 'UpdateWorkspace'], + 'type' => 'directory', + 'title' => '其他', + 'id' => 197154, ], ], 'components' => [ 'schemas' => [ - 'Artifact' => [ + 'CacheCluster' => [ + 'title' => 'cache集群'."\n", 'type' => 'object', 'properties' => [ - 'fullPath' => [ - 'title' => '资源文件目录全路径', + 'clusterId' => ['title' => 'cache集群名称', 'type' => 'string'], + 'name' => ['title' => 'cache集群名称'."\n", 'type' => 'string'], + 'state' => ['title' => 'cache集群状态', 'type' => 'string'], + 'creator' => ['title' => '创建者uid', 'type' => 'string'], + 'modifier' => ['title' => '更新者uid', 'type' => 'string'], + 'paymentType' => ['title' => '付费模式', 'type' => 'string'], + 'resourceSpec' => [ + 'title' => 'cache集群规格'."\n", + 'type' => 'object', + 'properties' => [ + 'bandWidth' => ['title' => '带宽'."\n", 'type' => 'integer', 'format' => 'int64'], + 'storage' => ['title' => '物理存储', 'type' => 'integer', 'format' => 'int64'], + 'ha' => ['type' => 'boolean'], + ], + ], + 'regionId' => ['type' => 'string'], + 'usedResourceSpec' => [ + 'type' => 'object', + 'properties' => [ + 'bandWidth' => ['type' => 'integer', 'format' => 'int64'], + 'storage' => ['type' => 'integer', 'format' => 'int64'], + ], + ], + 'gmtCreated' => ['type' => 'integer', 'format' => 'int64'], + 'gmtModified' => ['type' => 'integer', 'format' => 'int64'], + 'configuration' => ['type' => 'string'], + 'resourceGroupId' => ['type' => 'string'], + 'cacheClusterId' => ['type' => 'string'], + 'createTime' => ['type' => 'string'], + 'cacheClusterName' => ['type' => 'string'], + 'version' => ['type' => 'string'], + 'configurations' => [ 'type' => 'array', 'items' => [ - 'type' => 'string', - 'example' => '目录名称', + 'type' => 'object', + 'properties' => [ + 'name' => [ + 'type' => 'string', + 'example' => 'cacheset.xml', + 'default' => 'cacheset.xml', + 'enum' => ['cacheset.xml'], + ], + 'content' => ['type' => 'string'], + ], ], ], - 'gmtModified' => [ - 'title' => '创建时间', - 'type' => 'string', - 'required' => true, - ], - 'creator' => [ - 'title' => '创建者uid', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], - 'credential' => [ - 'title' => '资源文件访问密钥', - '$ref' => '#/components/schemas/Credential', - ], - 'gmtCreated' => [ - 'title' => '最后更新时间', - 'type' => 'string', - 'required' => true, - ], - 'modifier' => [ - 'title' => '最后更新者uid', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], - 'bizId' => [ - 'title' => '资源文件业务id', - 'type' => 'string', - 'required' => true, - ], - 'name' => [ - 'title' => '资源文件名称', - 'type' => 'string', - 'required' => true, + 'bindedWorkspaces' => [ + 'title' => '绑定工作空间', + 'type' => 'array', + 'items' => ['title' => '工作空间id', 'type' => 'string'], ], - 'location' => [ - 'title' => '资源文件地址', - 'type' => 'string', - 'required' => true, + 'cachesets' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'name' => ['type' => 'string'], + 'path' => ['type' => 'string'], + ], + ], ], - 'catagoryBizId' => [ - 'title' => '资源文件所属目录', - 'type' => 'string', + 'tags' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'key' => ['type' => 'string'], + 'value' => ['type' => 'string'], + ], + ], ], - 'modifierName' => [ - 'type' => 'string', + 'tables' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'catalogId' => ['type' => 'string'], + 'catalogProvider' => ['type' => 'string'], + 'database' => ['type' => 'string'], + 'table' => ['type' => 'string'], + 'workspaceId' => ['type' => 'string'], + ], + ], ], + 'extra' => ['type' => 'string'], ], ], 'Category' => [ 'description' => '文件夹信息。', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ 'type' => [ 'title' => '目录类型', 'description' => '文件夹类型。', + 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => 'TASK', + 'checkBlank' => true, + 'backendName' => 'type', + 'bizType' => 'normal', + 'trim' => true, 'default' => 'TASK', - 'enum' => [ - 'TASK', - 'ARTIFACT', - ], - ], - 'gmtModified' => [ - 'title' => '最后更新时间', - 'description' => '最后更新时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2025-03-10T02:02:41.000+00:00', - ], - 'creator' => [ - 'title' => '创建者uid', - 'description' => '创建者UID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '150978934701****', - ], - 'gmtCreated' => [ - 'title' => '创建时间', - 'description' => '创建时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2025-03-10T02:02:41.000+00:00', - ], - 'modifier' => [ - 'title' => '最后更新者uid', - 'description' => '最后更新者UID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '150978934701****', - ], - 'bizId' => [ - 'title' => '目录业务id', - 'description' => '文件夹ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d8********', + 'enum' => ['TASK', 'ARTIFACT'], ], + 'gmtModified' => ['title' => '最后更新时间', 'description' => '最后更新时间。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => '2025-03-10T02:02:41.000+00:00', 'backendName' => 'gmtModified'], + 'creator' => ['title' => '创建者uid', 'description' => '创建者UID。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '150978934701****', 'backendName' => 'creator'], + 'gmtCreated' => ['title' => '创建时间', 'description' => '创建时间。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => '2025-03-10T02:02:41.000+00:00', 'backendName' => 'gmtCreated'], + 'modifier' => ['title' => '最后更新者uid', 'description' => '最后更新者UID。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '150978934701****', 'backendName' => 'modifier'], + 'bizId' => ['title' => '目录业务id', 'description' => '文件夹ID。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => 'w-d8********', 'backendName' => 'bizId'], 'name' => [ - 'title' => '目录名臣', - 'description' => '文件夹名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'name', - 'maxLength' => 64, - 'minLength' => 1, - ], - 'parentBizId' => [ - 'title' => '父目录业务id', - 'description' => '父文件夹ID。', - 'type' => 'string', - 'example' => 'w-d6********', + 'title' => '目录名臣', 'description' => '文件夹名称。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => 'name', 'maxLength' => 64, 'minLength' => 1, 'checkBlank' => true, 'backendName' => 'name', + 'bizType' => 'normal', 'trim' => true, ], + 'parentBizId' => ['title' => '父目录业务id', 'description' => '父文件夹ID。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'w-d6********', 'backendName' => 'parentBizId'], ], ], 'Configuration' => [ 'title' => 'A short description of struct', 'description' => '配置信息。', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ - 'configFileName' => [ - 'title' => '配置文件名称', - 'description' => '配置文件名称。', - 'type' => 'string', - 'example' => 'common.conf', - ], - 'configItemKey' => [ - 'title' => '配置项名称', - 'description' => '配置项名称。', - 'type' => 'string', - 'example' => 'hive.metastore.type', - ], - 'configItemValue' => [ - 'title' => '配置项值', - 'description' => '配置项值。', - 'type' => 'string', - 'example' => 'USER_RDS', - ], - ], - ], - 'ConfigurationOverrides' => [ - 'title' => 'A short description of struct', - 'type' => 'object', - 'properties' => [ - 'configurations' => [ - 'title' => 'configurations', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'configFileName' => [ - 'title' => 'configFileName', - 'type' => 'string', - ], - 'configItemKey' => [ - 'title' => 'configItemKey', - 'type' => 'string', - ], - 'configItemValue' => [ - 'title' => 'configItemValue', - 'type' => 'string', - ], - ], - ], - ], - ], - ], - 'Credential' => [ - 'type' => 'object', - 'properties' => [ - 'securityToken' => [ - 'title' => 'sts token', - 'type' => 'string', - 'required' => true, - ], - 'accessId' => [ - 'title' => 'sts ak', - 'type' => 'string', - 'required' => true, - ], - 'signature' => [ - 'title' => 'oss访问签名', - 'type' => 'string', - 'required' => true, - ], - 'expire' => [ - 'title' => '超时时间', - 'type' => 'string', - 'required' => true, - ], - 'host' => [ - 'title' => 'oss域名', - 'type' => 'string', - 'required' => true, - ], - 'dir' => [ - 'title' => 'oss路径', - 'type' => 'string', - 'required' => true, - ], - 'policy' => [ - 'title' => 'oss访问策略', - 'type' => 'string', - 'required' => true, - ], + 'configFileName' => ['title' => '配置文件名称', 'description' => '配置文件名称。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'common.conf', 'backendName' => 'configFileName'], + 'configItemKey' => ['title' => '配置项名称', 'description' => '配置项名称。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'hive.metastore.type', 'backendName' => 'configItemKey'], + 'configItemValue' => ['title' => '配置项值', 'description' => '配置项值。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'USER_RDS', 'backendName' => 'configItemValue'], ], ], 'JobDriver' => [ 'title' => 'A short description of struct', 'description' => 'Spark作业提交配置信息。', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ 'sparkSubmit' => [ 'title' => 'sparkSubmit', 'description' => 'SparkSubmit配置信息。', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ - 'entryPoint' => [ - 'title' => 'entryPoint', - 'description' => 'Spark主程序。', - 'type' => 'string', - 'example' => 'oss://bucket/path/to/entrypoint.jar', - ], + 'entryPoint' => ['title' => 'entryPoint', 'description' => 'Spark主程序。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'oss://bucket/path/to/entrypoint.jar', 'backendName' => 'entryPoint'], 'entryPointArguments' => [ 'title' => 'entryPointArguments', 'description' => 'Spark主程序参数列表。', + 'visibility' => 'Public', 'type' => 'array', - 'items' => [ - 'description' => 'Spark主程序参数。', - 'type' => 'string', - 'example' => 'arg1', - ], + 'items' => ['description' => 'Spark主程序参数。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'arg1', 'extendType' => 'true'], 'enumValueTitles' => [], + 'backendName' => 'entryPointArguments', ], - 'sparkSubmitParameters' => [ - 'title' => 'sparkSubmitParameters', - 'description' => 'SparkSubmit命令行参数。', - 'type' => 'string', - 'example' => '--conf spark.app.name=test', - ], - ], - ], - ], - ], - 'KerberosConf' => [ - 'type' => 'object', - 'properties' => [ - 'gmtModified' => [ - 'type' => 'string', - ], - 'creator' => [ - 'type' => 'string', - ], - 'krb5Conf' => [ - 'type' => 'string', - ], - 'gmtCreated' => [ - 'type' => 'string', - ], - 'networkServiceId' => [ - 'type' => 'string', - ], - 'name' => [ - 'type' => 'string', - ], - 'kerberosConfId' => [ - 'type' => 'string', - ], - 'keytabs' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', + 'sparkSubmitParameters' => ['title' => 'sparkSubmitParameters', 'description' => 'SparkSubmit命令行参数。', 'visibility' => 'Public', 'type' => 'string', 'example' => '--conf spark.app.name=test', 'backendName' => 'sparkSubmitParameters'], ], - ], - 'enabled' => [ - 'type' => 'boolean', - ], - 'workspaceId' => [ - 'type' => 'string', + 'backendName' => 'sparkSubmit', ], ], ], 'PrincipalAction' => [ 'title' => 'A short description of struct', 'description' => 'ARN', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ - 'principalArn' => [ - 'title' => '主体Arn', - 'description' => '主体ARN。', - 'type' => 'string', - 'example' => 'acs:emr::workspaceId:user/23759369154162****', - ], - 'actionArn' => [ - 'title' => '行为Arn', - 'description' => '行为ARN。', - 'type' => 'string', - 'example' => 'acs:emr::workspaceId:action/create_queue', - ], - ], - ], - 'ReleaseVersionImage' => [ - 'title' => 'A short description of struct', - 'description' => '主版本镜像', - 'type' => 'object', - 'properties' => [ - 'runtimeEngineType' => [ - 'title' => 'runtimeEngineType', - 'type' => 'string', - ], - 'cpuArchitecture' => [ - 'title' => 'cpuArchitecture', - 'type' => 'string', - ], - 'imageId' => [ - 'title' => 'imageId', - 'type' => 'string', - ], + 'principalArn' => ['title' => '主体Arn', 'description' => '主体ARN。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'acs:emr::workspaceId:user/23759369154162****', 'backendName' => 'principalArn'], + 'actionArn' => ['title' => '行为Arn', 'description' => '行为ARN。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'acs:emr::workspaceId:action/create_queue', 'backendName' => 'actionArn'], ], ], 'RunLog' => [ 'title' => 'A short description of struct', 'description' => 'Spark运行日志信息。', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ 'driverStdOut' => [ 'title' => 'driverStdOut', 'description' => 'stdout文件路径。', + 'visibility' => 'Public', 'type' => 'string', 'enumValueTitles' => [], 'example' => 'oss://bucket/path/to/stdout', + 'backendName' => 'driverStdOut', ], - 'driverStdError' => [ - 'title' => 'driverStdError', - 'description' => 'stderr文件路径。', - 'type' => 'string', - 'example' => 'oss://bucket/path/to/stderr', - ], - 'driverSyslog' => [ - 'title' => 'driverSyslog', - 'description' => 'syslog文件路径。', - 'type' => 'string', - 'example' => 'oss://bucket/path/to/syslog', - ], - 'driverStartup' => [ - 'title' => 'driverStartup', - 'description' => 'startup文件路径。', - 'type' => 'string', - 'example' => 'oss://bucket/path/to/startup', - ], + 'driverStdError' => ['title' => 'driverStdError', 'description' => 'stderr文件路径。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'oss://bucket/path/to/stderr', 'backendName' => 'driverStdError'], + 'driverSyslog' => ['title' => 'driverSyslog', 'description' => 'syslog文件路径。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'oss://bucket/path/to/syslog', 'backendName' => 'driverSyslog'], + 'driverStartup' => ['title' => 'driverStartup', 'description' => 'startup文件路径。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'oss://bucket/path/to/startup', 'backendName' => 'driverStartup'], ], ], 'SparkConf' => [ 'description' => 'Spark配置对象。', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ - 'value' => [ - 'title' => 'spark conf value', - 'description' => 'Spark Conf配置value。', - 'type' => 'string', - 'required' => true, - 'example' => 'test_application', - ], - 'key' => [ - 'title' => 'spark conf key', - 'description' => 'Spark Conf配置key。', - 'type' => 'string', - 'required' => true, - 'example' => 'spark.app.name', - ], - ], - ], - 'SqlOutput' => [ - 'title' => '结果集', - 'type' => 'object', - 'properties' => [ - 'schema' => [ - 'title' => '结果集结构', - 'type' => 'object', - 'properties' => [ - 'fields' => [ - 'title' => '结果集', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'name' => [ - 'title' => '名称', - 'type' => 'string', - ], - 'type' => [ - 'title' => '类型', - 'type' => 'string', - ], - 'nullable' => [ - 'title' => '是否可空', - 'type' => 'boolean', - ], - ], - ], - ], - ], - ], - 'rows' => [ - 'title' => '行', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'values' => [ - 'title' => '值列表', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'example' => 'null', - ], - ], - ], - ], + 'value' => ['title' => 'spark conf value', 'description' => 'Spark Conf配置value。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => 'test_application', 'backendName' => 'value'], + 'key' => ['title' => 'spark conf key', 'description' => 'Spark Conf配置key。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => 'spark.app.name', 'backendName' => 'key'], ], ], 'Tag' => [ 'description' => '标签信息。', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ - 'key' => [ - 'title' => '标签key值。', - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'workflowId', - ], - 'value' => [ - 'title' => '标签key值。', - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'wf-123test', - ], + 'key' => ['title' => '标签key值。', 'description' => '标签键。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'workflowId', 'backendName' => 'key'], + 'value' => ['title' => '标签key值。', 'description' => '标签值。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'wf-123test', 'backendName' => 'value'], ], ], 'Task' => [ 'type' => 'object', 'properties' => [ - 'kernelId' => [ - 'type' => 'string', - ], - 'gmtModified' => [ - 'title' => '最后创建时间', - 'type' => 'string', - 'required' => true, - ], - 'defaultSqlComputeId' => [ - 'title' => '默认sql session id', - 'type' => 'string', - ], - 'archives' => [ - 'title' => '--archives参数', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - 'lastRunResourceQueueId' => [ - 'title' => '最后一次运行的资源队列id', - 'type' => 'string', - ], - 'sparkLogLevel' => [ - 'title' => 'spark日志级别', - 'type' => 'string', - 'required' => true, - ], - 'gmtCreated' => [ - 'title' => '创建时间', - 'type' => 'string', - 'required' => true, - ], - 'sparkDriverMemory' => [ - 'title' => 'spark driver内存', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], - 'modifier' => [ - 'title' => '最后一次更新者uid', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], - 'jars' => [ - 'title' => '--jars参数', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - 'sparkExecutorCores' => [ - 'title' => 'spark executor核数', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'sparkArgs' => ['title' => 'spark参数', 'description' => 'spark参数', 'type' => 'string', 'example' => '100'], + 'sparkDriverMemory' => ['title' => 'spark driver内存', 'description' => 'spark driver内存', 'type' => 'integer', 'format' => 'int64', 'required' => true], + 'sparkVersion' => ['title' => 'spark版本', 'description' => 'spark版本', 'type' => 'string', 'required' => true], + 'sparkExecutorMemory' => ['title' => 'spark executor内存', 'description' => 'spark executor内存', 'type' => 'integer', 'format' => 'int64', 'required' => true], + 'sparkLogLevel' => ['title' => 'spark日志级别', 'description' => 'spark日志级别', 'type' => 'string', 'required' => true], + 'sparkEntrypoint' => ['title' => 'spark主类入口', 'description' => 'spark主类入口', 'type' => 'string', 'required' => false], + 'gmtModified' => ['title' => '最后创建时间', 'description' => '最后创建时间', 'type' => 'string', 'required' => true], + 'hasCommited' => ['title' => '是否已提交', 'description' => '是否已提交', 'type' => 'boolean', 'required' => true], + 'sparkLogPath' => ['title' => 'spark日志', 'description' => 'spark日志', 'type' => 'string', 'required' => true], + 'creator' => ['title' => '创建者uid', 'description' => '创建者uid', 'type' => 'integer', 'format' => 'int64', 'required' => true], + 'gmtCreated' => ['title' => '创建时间', 'description' => '创建时间', 'type' => 'string', 'required' => true], + 'name' => ['title' => 'task名称', 'description' => 'task名称', 'type' => 'string', 'required' => true], + 'sparkDriverCores' => ['title' => 'spark driver核数', 'description' => 'spark driver核数', 'type' => 'integer', 'format' => 'int32', 'required' => true], + 'type' => ['title' => 'task类型', 'description' => 'task类型', 'type' => 'string', 'required' => true], + 'sparkExecutorCores' => ['title' => 'spark executor核数', 'description' => 'spark executor核数', 'type' => 'integer', 'format' => 'int32', 'required' => true], + 'content' => ['title' => 'spark作业内容', 'description' => 'spark作业内容', 'type' => 'string', 'required' => false], 'extraArtifactIds' => [ 'title' => 'spark额外资源id', + 'description' => 'spark额外资源id', 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, ], - 'type' => [ - 'title' => 'task类型', - 'type' => 'string', - 'required' => true, - ], - 'content' => [ - 'title' => 'spark作业内容', - 'type' => 'string', - 'required' => false, - ], - 'timeout' => [ - 'title' => '任务超时时间', - 'type' => 'integer', - 'format' => 'int32', - ], - 'sparkVersion' => [ - 'title' => 'spark版本', - 'type' => 'string', - 'required' => true, - ], - 'sparkEntrypoint' => [ - 'title' => 'spark主类入口', - 'type' => 'string', - 'required' => false, - ], - 'sparkArgs' => [ - 'title' => 'spark参数', - 'type' => 'string', - 'example' => '100', - ], - 'environmentId' => [ - 'title' => '环境id', - 'type' => 'string', - ], - 'credential' => [ - 'title' => '直传oss信息', - 'type' => 'object', - 'properties' => [ - 'accessId' => [ - 'title' => 'access id', - 'type' => 'string', - ], - 'securityToken' => [ - 'title' => 'security token', - 'type' => 'string', - ], - 'path' => [ - 'title' => '路径', - 'type' => 'string', - ], - 'signature' => [ - 'title' => '签名', - 'type' => 'string', - ], - 'accessUrl' => [ - 'title' => '访问链接', - 'type' => 'string', - ], - 'expire' => [ - 'title' => '过期时间', - 'type' => 'integer', - 'format' => 'int64', - ], - 'host' => [ - 'title' => '域名', - 'type' => 'string', - ], - 'policy' => [ - 'title' => 'policy', - 'type' => 'string', - ], - ], - ], - 'hasChanged' => [ - 'title' => '最后一次提交后是否变更', - 'type' => 'boolean', - ], - 'extraSparkSubmitParams' => [ - 'title' => '自定义spark submit配置参数', - 'type' => 'string', - ], - 'deploymentId' => [ - 'title' => 'streaming任务部署id', - 'type' => 'string', - ], - 'bizId' => [ - 'title' => '业务id', - 'type' => 'string', - 'required' => true, - ], - 'artifactUrl' => [ - 'title' => '资源文件访问临时url', - 'type' => 'string', - ], - 'defaultResourceQueueId' => [ - 'title' => 'task默认队列id', - 'type' => 'string', - ], - 'defaultDatabase' => [ - 'title' => '默认数据库', - 'type' => 'string', - ], - 'creator' => [ - 'title' => '创建者uid', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], - 'categoryBizId' => [ - 'title' => '目录业务id', - 'type' => 'string', - ], - 'sessionClusterId' => [ - 'type' => 'string', - ], - 'sparkSubmitClause' => [ - 'title' => 'spark submit任务提交语句', - 'type' => 'string', - ], + 'lastRunResourceQueueId' => ['title' => '最后一次运行的资源队列id', 'description' => '最后一次运行的资源队列id', 'type' => 'string'], + 'modifier' => ['title' => '最后一次更新者uid', 'description' => '最后一次更新者uid', 'type' => 'integer', 'format' => 'int64', 'required' => true], 'sparkConf' => [ 'title' => 'spark配置列表', + 'description' => 'spark配置列表', 'type' => 'array', - 'items' => [ - '$ref' => '#/components/schemas/SparkConf', - ], + 'items' => ['$ref' => '#/components/schemas/SparkConf', 'description' => ''], ], - 'params' => [ + 'bizId' => ['title' => '业务id', 'description' => '业务id', 'type' => 'string', 'required' => true], + 'categoryBizId' => ['title' => '目录业务id', 'description' => '目录业务id', 'type' => 'string'], + 'artifactUrl' => ['title' => '资源文件访问临时url', 'description' => '资源文件访问临时url', 'type' => 'string'], + 'defaultResourceQueueId' => ['title' => 'task默认队列id', 'description' => 'task默认队列id', 'type' => 'string'], + 'tags' => [ + 'title' => '任务标签', + 'description' => '任务标签', 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'string', - ], + 'required' => false, + 'additionalProperties' => ['type' => 'string', 'example' => 'tag key', 'description' => ''], ], + 'defaultDatabase' => ['title' => '默认数据库', 'description' => '默认数据库', 'type' => 'string'], + 'hasChanged' => ['title' => '最后一次提交后是否变更', 'description' => '最后一次提交后是否变更', 'type' => 'boolean'], 'pyFiles' => [ 'title' => 'spark pyspark依赖pyfiles', + 'description' => 'spark pyspark依赖pyfiles', 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, ], - 'tags' => [ - 'title' => '任务标签', - 'type' => 'object', - 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'example' => '标签键', - ], - ], - 'defaultCatalogId' => [ - 'title' => '默认catalog id', - 'type' => 'string', - ], - 'sparkExecutorMemory' => [ - 'title' => 'spark executor内存', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], - 'fusion' => [ - 'title' => '是否开启fusion开关', - 'type' => 'boolean', - ], - 'isStreaming' => [ - 'title' => '是否是streaming任务', - 'type' => 'boolean', - ], - 'sparkDriverCores' => [ - 'title' => 'spark driver核数', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], - 'sparkLogPath' => [ - 'title' => 'spark日志', - 'type' => 'string', - 'required' => true, + 'defaultCatalogId' => ['title' => '默认catalog id', 'description' => '默认catalog id', 'type' => 'string'], + 'defaultSqlComputeId' => ['title' => '默认sql session id', 'description' => '默认sql session id', 'type' => 'string'], + 'jars' => [ + 'title' => '--jars参数', + 'description' => '--jars参数', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], ], - 'name' => [ - 'title' => 'task名称', - 'type' => 'string', - 'required' => true, + 'archives' => [ + 'title' => '--archives参数', + 'description' => '--archives参数', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], ], 'files' => [ 'title' => '--files参数', + 'description' => '--files参数', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + ], + 'extraSparkSubmitParams' => ['title' => '自定义spark submit配置参数', 'description' => '自定义spark submit配置参数', 'type' => 'string'], + 'deploymentId' => ['title' => 'streaming任务部署id', 'description' => 'streaming任务部署id', 'type' => 'string'], + 'isStreaming' => ['title' => '是否是streaming任务', 'description' => '是否是streaming任务', 'type' => 'boolean'], + 'sparkSubmitClause' => ['title' => 'spark submit任务提交语句', 'description' => 'spark submit任务提交语句', 'type' => 'string'], + 'fusion' => ['title' => '是否开启fusion开关', 'description' => '是否开启fusion开关', 'type' => 'boolean'], + 'timeout' => ['title' => '任务超时时间', 'description' => '任务超时时间', 'type' => 'integer', 'format' => 'int32'], + 'credential' => [ + 'title' => '直传oss信息', + 'description' => '直传oss信息', + 'type' => 'object', + 'properties' => [ + 'accessId' => ['title' => 'access id', 'description' => 'access id', 'type' => 'string'], + 'securityToken' => ['title' => 'security token', 'description' => 'security token', 'type' => 'string'], + 'policy' => ['title' => 'policy', 'description' => 'policy', 'type' => 'string'], + 'signature' => ['title' => '签名', 'description' => '签名', 'type' => 'string'], + 'path' => ['title' => '路径', 'description' => '路径', 'type' => 'string'], + 'host' => ['title' => '域名', 'description' => '域名', 'type' => 'string'], + 'expire' => ['title' => '过期时间', 'description' => '过期时间', 'type' => 'integer', 'format' => 'int64'], + 'accessUrl' => ['title' => '访问链接', 'description' => '访问链接', 'type' => 'string'], + ], + ], + 'environmentId' => ['title' => '环境id', 'description' => '环境id', 'type' => 'string'], + 'sessionClusterId' => ['type' => 'string', 'description' => ''], + 'kernelId' => ['type' => 'string', 'description' => ''], + 'params' => [ + 'type' => 'object', + 'additionalProperties' => ['type' => 'string', 'description' => ''], + 'description' => '', + ], + 'rayEntrypoint' => ['type' => 'string', 'description' => ''], + 'rayVersion' => ['type' => 'string', 'description' => ''], + 'rayNetworkServiceName' => ['type' => 'string', 'description' => ''], + 'rayRuntimeEnvJson' => ['type' => 'string', 'description' => ''], + 'rayWorkingDir' => ['type' => 'string', 'description' => ''], + 'rayMetadataJson' => ['type' => 'string', 'description' => ''], + 'raySubmissionMode' => ['type' => 'string', 'description' => ''], + 'rayEntrypointNumCpus' => ['type' => 'string', 'description' => ''], + 'rayEntrypointNumGpus' => ['type' => 'string', 'description' => ''], + 'rayEntrypointMemory' => ['type' => 'string', 'description' => ''], + 'rayEntrypointResources' => ['type' => 'string', 'description' => ''], + 'rayShutdownAfterJobFinishes' => ['type' => 'boolean', 'description' => ''], + 'rayTtlSecondsAfterFinished' => ['type' => 'integer', 'format' => 'int64', 'description' => ''], + 'rayActiveDeadlineSeconds' => ['type' => 'integer', 'format' => 'int64', 'description' => ''], + 'rayBackoffLimit' => ['type' => 'integer', 'format' => 'int32', 'description' => ''], + 'rayHeadSpec' => [ + 'type' => 'object', + 'properties' => [ + 'replica' => ['type' => 'integer', 'format' => 'int32', 'description' => ''], + 'enableAutoScaling' => ['type' => 'boolean', 'description' => ''], + 'idleTimeoutSeconds' => ['type' => 'integer', 'format' => 'int64', 'description' => ''], + 'queueName' => ['type' => 'string', 'description' => ''], + 'cpu' => ['type' => 'string', 'description' => ''], + 'memory' => ['type' => 'string', 'description' => ''], + 'gpuSpec' => ['type' => 'string', 'description' => ''], + ], + 'description' => '', + ], + 'rayExtraParam' => ['type' => 'string', 'description' => ''], + 'rayVolumeIds' => [ + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'description' => '', + ], + 'rayWorkerSpec' => [ 'type' => 'array', 'items' => [ - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'groupName' => ['type' => 'string', 'description' => ''], + 'replica' => ['type' => 'integer', 'format' => 'int32', 'description' => ''], + 'minReplica' => ['type' => 'integer', 'format' => 'int32', 'description' => ''], + 'maxReplica' => ['type' => 'integer', 'format' => 'int32', 'description' => ''], + 'queueName' => ['type' => 'string', 'description' => ''], + 'cpu' => ['type' => 'string', 'description' => ''], + 'memory' => ['type' => 'string', 'description' => ''], + 'gpuSpec' => ['type' => 'string', 'description' => ''], + ], + 'description' => '', ], - ], - 'hasCommited' => [ - 'title' => '是否已提交', - 'type' => 'boolean', - 'required' => true, + 'description' => '', ], ], + 'description' => '', ], 'TaskInstance' => [ 'description' => '任务信息。', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ - 'taskInfo' => [ - 'title' => '任务详细信息', - 'description' => '任务详细信息。', - 'required' => false, - '$ref' => '#/components/schemas/Task', - ], - 'workspaceBizId' => [ - 'title' => '工作空间id', - 'description' => '工作空间ID。', - 'type' => 'string', - 'example' => 'w-d2d82aa09151****', - ], - 'taskBizId' => [ - 'title' => '任务业务id', - 'description' => '数据开发任务ID。', - 'type' => 'string', - 'example' => 'TSK-d87******************', - ], - 'taskStatus' => [ - 'title' => '任务实例状态', - 'description' => '任务实例状态。', - 'type' => 'string', - 'example' => 'Running', - ], - 'bizId' => [ - 'title' => '任务实例业务id', - 'description' => '目录业务ID。', - 'type' => 'string', - 'example' => 'w-d8********', - ], - 'fenixRunId' => [ - 'title' => 'fenix run id', - 'description' => '任务运行ID。', - 'type' => 'string', - 'example' => 'jr-93d98d2f7061****', - ], - 'gmtCreated' => [ - 'title' => '创建时间', - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2024-09-05T02:03:19Z', - ], - 'creator' => [ - 'title' => '创建者uid', - 'description' => '创建者UID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '150978934701****', - ], - ], - ], - 'TaskSnapshot' => [ - 'type' => 'object', - 'properties' => [ - 'commiter' => [ - 'title' => '提交者uid', - 'type' => 'integer', - 'format' => 'int64', - ], - 'item' => [ - 'title' => '任务信息', - '$ref' => '#/components/schemas/Task', - ], - 'taskBizId' => [ - 'title' => '任务业务id', - 'type' => 'string', - ], - 'message' => [ - 'title' => '提交信息', - 'type' => 'string', - ], - 'version' => [ - 'title' => '提交版本', - 'type' => 'string', - ], - 'gmtCreated' => [ - 'title' => '创建时间', - 'type' => 'string', - ], - 'bizId' => [ - 'title' => '业务id', - 'type' => 'string', - ], + 'taskInfo' => ['title' => '任务详细信息', 'description' => '任务详细信息。', 'visibility' => 'Public', 'required' => false, 'backendName' => 'taskInfo', '$ref' => '#/components/schemas/Task'], + 'workspaceBizId' => ['title' => '工作空间id', 'description' => '工作空间ID。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'w-d2d82aa09151****', 'backendName' => 'workspaceBizId'], + 'taskBizId' => ['title' => '任务业务id', 'description' => '数据开发任务ID。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'TSK-d87******************', 'backendName' => 'taskBizId'], + 'taskStatus' => ['title' => '任务实例状态', 'description' => '任务实例状态。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'Running', 'backendName' => 'taskStatus'], + 'bizId' => ['title' => '任务实例业务id', 'description' => '目录业务ID。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'w-d8********', 'backendName' => 'bizId'], + 'fenixRunId' => ['title' => 'fenix run id', 'description' => '任务运行ID。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'jr-93d98d2f7061****', 'backendName' => 'fenixRunId'], + 'gmtCreated' => ['title' => '创建时间', 'description' => '创建时间。', 'visibility' => 'Public', 'type' => 'string', 'example' => '2024-09-05T02:03:19Z', 'backendName' => 'gmtCreated'], + 'creator' => ['title' => '创建者uid', 'description' => '创建者UID。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'example' => '150978934701****', 'backendName' => 'creator'], ], ], 'Template' => [ 'description' => 'Spark任务模板对象。', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ - 'templateType' => [ - 'title' => '模板类型', - 'description' => '模板类型。', - 'type' => 'string', - 'example' => 'TASK', - ], - 'gmtModified' => [ - 'title' => '最后更新时间', - 'description' => '最后更新时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2025-03-10T02:02:41.000+00:00', - ], - 'creator' => [ - 'title' => '创建者uid', - 'description' => '创建者UID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '150978934701****', - ], - 'sparkLogLevel' => [ - 'title' => 'spark日志级别', - 'description' => 'Spark日志级别。', - 'type' => 'string', - 'required' => true, - 'example' => 'INFO', - ], - 'gmtCreated' => [ - 'title' => '创建时间', - 'description' => '创建时间。', - 'type' => 'string', - 'required' => true, - 'example' => '2025-03-10T02:02:41.000+00:00'."\n", - ], - 'sparkDriverMemory' => [ - 'title' => 'spark driver内存', - 'description' => 'Spark Driver内存。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1073741824', - ], - 'modifier' => [ - 'title' => '最后更新者uid', - 'description' => '最后更新者UID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '150978934701****'."\n", - ], - 'sparkExecutorCores' => [ - 'title' => 'spark executor核数', - 'description' => 'Spark Executor核数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'templateType' => ['title' => '模板类型', 'description' => '模板类型。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'TASK', 'backendName' => 'templateType'], + 'gmtModified' => ['title' => '最后更新时间', 'description' => '最后更新时间。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => '2025-03-10T02:02:41.000+00:00', 'backendName' => 'gmtModified'], + 'creator' => ['title' => '创建者uid', 'description' => '创建者UID。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '150978934701****', 'backendName' => 'creator'], + 'sparkLogLevel' => ['title' => 'spark日志级别', 'description' => 'Spark日志级别。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => 'INFO', 'backendName' => 'sparkLogLevel'], + 'gmtCreated' => ['title' => '创建时间', 'description' => '创建时间。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => '2025-03-10T02:02:41.000+00:00'."\n", 'backendName' => 'gmtCreated'], + 'sparkDriverMemory' => ['title' => 'spark driver内存', 'description' => 'Spark Driver内存。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1073741824', 'backendName' => 'sparkDriverMemory'], + 'modifier' => ['title' => '最后更新者uid', 'description' => '最后更新者UID。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '150978934701****'."\n", 'backendName' => 'modifier'], + 'sparkExecutorCores' => ['title' => 'spark executor核数', 'description' => 'Spark Executor核数。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1', 'backendName' => 'sparkExecutorCores'], 'sparkConf' => [ 'title' => 'spark conf', 'description' => 'Spark Conf', + 'visibility' => 'Public', 'type' => 'array', - 'items' => [ - 'description' => 'Spark配置对象。', - '$ref' => '#/components/schemas/SparkConf', - ], - ], - 'sparkVersion' => [ - 'title' => 'spark内部release版本', - 'description' => 'Spark内部release版本。', - 'type' => 'string', - 'required' => true, - 'example' => 'esr-4.1.1', - ], - 'sparkExecutorMemory' => [ - 'title' => 'spark executor内存', - 'description' => 'Spark Executor内存。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1073741824', - ], - 'fusion' => [ - 'title' => '是否开启fusion开关', - 'description' => '是否开启fusion开关。', - 'type' => 'boolean', - 'example' => 'false'."\n", - ], - 'isDefault' => [ - 'type' => 'boolean', - ], - 'sparkDriverCores' => [ - 'title' => 'spark driver核数', - 'description' => 'Spark Driver核数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - 'displaySparkVersion' => [ - 'title' => 'SparkVersion展示名', - 'description' => 'Spark引擎显示版本。', - 'type' => 'string', - 'example' => 'esr-4.1.1', - ], - 'sparkLogPath' => [ - 'title' => 'spark日志路径', - 'description' => 'Spark日志路径。', - 'type' => 'string', - 'required' => true, - 'example' => 'oss://your_bucket/path/to/your/log', - ], - 'name' => [ - 'type' => 'string', - ], - 'bizId' => [ - 'type' => 'string', + 'items' => ['description' => 'Spark配置对象。', 'visibility' => 'Public', 'extendType' => 'true', '$ref' => '#/components/schemas/SparkConf'], + 'backendName' => 'sparkConf', ], + 'sparkVersion' => ['title' => 'spark内部release版本', 'description' => 'Spark内部release版本。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => 'esr-4.1.1', 'backendName' => 'sparkVersion'], + 'sparkExecutorMemory' => ['title' => 'spark executor内存', 'description' => 'Spark Executor内存。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1073741824', 'backendName' => 'sparkExecutorMemory'], + 'fusion' => ['title' => '是否开启fusion开关', 'description' => '是否开启fusion开关。', 'visibility' => 'Public', 'type' => 'boolean', 'example' => 'false'."\n", 'backendName' => 'fusion'], + 'isDefault' => ['visibility' => 'Public', 'type' => 'boolean', 'backendName' => 'isDefault'], + 'sparkDriverCores' => ['title' => 'spark driver核数', 'description' => 'Spark Driver核数。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1', 'backendName' => 'sparkDriverCores'], + 'displaySparkVersion' => ['title' => 'SparkVersion展示名', 'description' => 'Spark引擎显示版本。', 'visibility' => 'Public', 'type' => 'string', 'example' => 'esr-4.1.1', 'backendName' => 'displaySparkVersion'], + 'sparkLogPath' => ['title' => 'spark日志路径', 'description' => 'Spark日志路径。', 'visibility' => 'Public', 'type' => 'string', 'required' => true, 'example' => 'oss://your_bucket/path/to/your/log', 'backendName' => 'sparkLogPath'], + 'name' => ['visibility' => 'Public', 'type' => 'string', 'backendName' => 'name'], + 'bizId' => ['visibility' => 'Public', 'type' => 'string', 'backendName' => 'bizId'], ], ], 'TimeRange' => [ 'title' => '时间范围', 'description' => '时间范围', + 'visibility' => 'Public', 'type' => 'object', 'properties' => [ - 'startTime' => [ - 'title' => '时间范围开始时间。', - 'description' => '时间范围开始时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1688370894339', - ], - 'endTime' => [ - 'title' => '时间范围结束时间。', - 'description' => '时间范围结束时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1688370894339', - ], + 'startTime' => ['title' => '时间范围开始时间。', 'description' => '时间范围开始时间。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'example' => '1688370894339', 'backendName' => 'startTime'], + 'endTime' => ['title' => '时间范围结束时间。', 'description' => '时间范围结束时间。', 'visibility' => 'Public', 'type' => 'integer', 'format' => 'int64', 'example' => '1688370894339', 'backendName' => 'endTime'], ], ], ], ], 'apis' => [ + 'ActivateAICenter' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/activateaicenter', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduceLNUXSK'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + ], + ], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '激活AI中心', + 'summary' => '激活ai中心', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], 'AddMembers' => [ 'summary' => '调用AddMembers将RAM用户或RAM角色添加到工作空间作为新成员。', 'path' => '/api/v1/auth/members', - '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' => 'read', 'systemTags' => [ 'abilityTreeCode' => '193369', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce8QU4HW', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], 'parameters' => [ [ @@ -1165,22 +598,17 @@ 'description' => '请求体参数。', 'type' => 'object', 'properties' => [ - 'workspaceId' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-975bcfda9625****', - ], + 'workspaceId' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-975bcfda9625****'], 'memberArns' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, - 'example' => 'Ram User示例值:acs:ram::113545727984****:user/20468369839086****'."\n" - ."\n" - .'Ram Role示例值:acs:ram::113545727984****:role/aliyunemrsparkjobrundefaultrole', - ], + 'items' => ['type' => 'string', 'required' => false, 'example' => 'Ram User示例值:acs:ram::113545727984****:user/20468369839086****'."\n" + ."\n" + .'Ram Role示例值:acs:ram::113545727984****:role/aliyunemrsparkjobrundefaultrole', 'description' => ''], 'required' => true, + 'example' => 'Ram User Example value: acs:ram::113545727984****:user/20468369839086****'."\n" + ."\n" + .'Ram Role Example value: acs:ram::113545727984****:role/aliyunemrsparkjobrundefaultrole', + 'description' => '', ], ], 'required' => false, @@ -1189,13 +617,7 @@ [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -1205,759 +627,568 @@ 'description' => '请求返回体。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], + 'staticInfo' => ['returnType' => 'synchronous'], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', 'title' => '添加成员', - ], - 'ListMembers' => [ - 'summary' => '调用ListMembers查看工作空间成员列表。', - 'path' => '/api/v1/auth/{workspaceId}/members', - 'methods' => [ - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:AddMembers', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CancelJobRun' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/jobRuns/{jobRunId}', + 'methods' => ['delete'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce0SZW92', - ], + 'operationType' => 'delete', + 'abilityTreeCode' => '215798', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'nextToken', - 'in' => 'query', + 'name' => 'workspaceId', + 'in' => 'path', 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '标记当前开始读取的位置。', - 'description' => '标记当前开始读取的位置。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d2d82aa09155****'], ], [ - 'name' => 'maxResults', - 'in' => 'query', + 'name' => 'jobRunId', + 'in' => 'path', 'allowEmptyValue' => false, + 'schema' => ['title' => '任务实例ID。', 'description' => '任务运行ID。', 'type' => 'string', 'required' => true, 'example' => 'jr-f09a8fda2396****'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '一次获取的最大记录数。', - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', + 'title' => '返回数据', + 'description' => '返回数据', + 'type' => 'object', + 'properties' => [ + 'jobRunId' => ['description' => '任务运行ID。', 'type' => 'string', 'example' => 'jr-f09a8fda2396****'], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + ], ], ], + ], + 'title' => '终止Spark任务', + 'summary' => '调用CancelJobRun终止正在运行的Spark任务。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CancelJobRun', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"jobRunId\\": \\"jr-f09a8fda2396****\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'CancelKyuubiSparkApplication' => [ + 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}/application/{applicationId}', + 'methods' => ['delete'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], + ], + 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-975bcfda9625****', - ], + 'schema' => ['description' => '工作空间 ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], + ], + [ + 'name' => 'kyuubiServiceId', + 'in' => 'path', + 'schema' => ['description' => 'Kyuubi 服务 ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'], + ], + [ + 'name' => 'applicationId', + 'in' => 'path', + 'schema' => ['description' => 'Kyuubi 提交的 Spark 应用 ID。', 'type' => 'string', 'required' => false, 'example' => 'spark-339f844005b6404c95f9f7c7a13b****'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '地域 ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据。', + 'title' => 'Schema of Response', + 'description' => '响应结构体。', 'type' => 'object', 'properties' => [ - 'members' => [ - 'description' => '成员列表。', - 'type' => 'array', - 'items' => [ - 'description' => '成员。', - 'type' => 'object', - 'properties' => [ - 'memberArn' => [ - 'title' => '用户 arn。', - 'description' => '用户 arn。', - 'type' => 'string', - 'example' => 'acs:emr::w-1234****abcd:member/202265*****276', - ], - 'userName' => [ - 'title' => '用户名称。', - 'description' => '用户名称。', - 'type' => 'string', - 'example' => 'jia***test@195*****7311.onaliyun.com', - ], - 'displayName' => [ - 'title' => '用户展示名称。', - 'description' => '用户展示名称。', - 'type' => 'string', - 'example' => 'jia***test', - ], - 'userType' => [ - 'title' => '用户类型。', - 'description' => '用户类型。'."\n" - .'- ROLE'."\n" - .'- MEMBER', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'MEMBER', - ], - 'roles' => [ - 'title' => '用户角色列表。', - 'description' => '工作空间内角色列表。', - 'type' => 'array', - 'items' => [ - 'description' => '用户角色。', - 'type' => 'object', - 'properties' => [ - 'roleArn' => [ - 'title' => '角色 arn。', - 'description' => '角色 arn。', - 'type' => 'string', - 'example' => 'acs:emr::w-1234****abcd:role/DataScience', - ], - 'roleName' => [ - 'title' => '角色名称。', - 'description' => '角色名称。', - 'type' => 'string', - 'example' => 'DataScience', - ], - 'description' => [ - 'title' => '描述。', - 'description' => '描述。', - 'type' => 'string', - 'example' => 'DataScience', - ], - 'createTime' => [ - 'title' => '创建时间。', - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1753412502000', - ], - 'actions' => [ - 'title' => '权限列表。', - 'description' => '权限列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'actionArn' => [ - 'title' => '行为 arn。', - 'description' => '行为 arn。', - 'type' => 'string', - 'example' => 'acs:emr::w-1234****abcd:action/add_MEMBER', - ], - 'actionName' => [ - 'title' => '权限名称。', - 'description' => '权限名称。', - 'type' => 'string', - 'example' => 'add', - ], - 'displayName' => [ - 'title' => '权限展示名称。', - 'description' => '权限展示名称。', - 'type' => 'string', - 'example' => 'add members', - ], - 'description' => [ - 'title' => 'action 描述。', - 'description' => 'action 描述。', - 'type' => 'string', - 'example' => 'add members'."\n", - ], - 'dependencies' => [ - 'title' => 'action 依赖列表。', - 'description' => 'action 依赖列表。', - 'type' => 'array', - 'items' => [ - 'description' => '依赖。', - 'type' => 'string', - 'example' => 'VIEW', - ], - 'example' => '["view"]', - ], - ], - ], - ], - ], - ], - ], - 'actions' => [ - 'title' => '针对此用户允许的操作列表。', - 'description' => '针对此用户允许的操作列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'actionArn' => [ - 'title' => '行为 arn。', - 'description' => '行为 arn。', - 'type' => 'string', - 'example' => 'acs:emr::w-1234****abcd:action/add_MEMBER', - ], - 'actionName' => [ - 'title' => '权限名称。', - 'description' => '权限名称。', - 'type' => 'string', - 'example' => 'add', - ], - 'displayName' => [ - 'title' => '权限展示名称。', - 'description' => '权限展示名称。', - 'type' => 'string', - 'example' => 'add members', - ], - 'description' => [ - 'title' => 'action 描述。', - 'description' => 'action 描述。', - 'type' => 'string', - 'example' => 'add members', - ], - 'dependencies' => [ - 'title' => 'action 依赖列表。', - 'description' => 'action 依赖列表。', - 'type' => 'array', - 'items' => [ - 'description' => '依赖。', - 'type' => 'string', - 'example' => 'VIEW', - ], - 'example' => '["view"]', - ], - ], - ], - ], - 'visible' => [ - 'description' => '是否可见。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'createTime' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '1753412502000', - ], - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求 ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'body' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'applicationId' => ['description' => 'Kyuubi 提交的 Spark 应用 ID。', 'type' => 'string', 'example' => 'spark-339f844005b6404c95f9f7c7a13b****'], + 'success' => ['description' => '请求是否成功。'."\n" + ."\n" + .'- true:成功'."\n" + ."\n" + .'- false:失败', 'type' => 'boolean'], ], ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'nextToken' => [ - 'title' => '下一页TOKEN。', - 'description' => '下一页TOKEN。', - 'type' => 'string', - 'example' => '1', - ], - 'maxResults' => [ - 'title' => '一次获取的最大记录数。', - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'totalCount' => [ - 'title' => '记录总数。', - 'description' => '记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '取消Kyuubi提交的Spark应用', + 'summary' => 'CancelKyuubiSparkApplication', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"members\\": [\\n {\\n \\"memberArn\\": \\"acs:emr::w-1234****abcd:member/202265*****276\\",\\n \\"userName\\": \\"jia***test@195*****7311.onaliyun.com\\",\\n \\"displayName\\": \\"jia***test\\",\\n \\"userType\\": \\"MEMBER\\",\\n \\"roles\\": [\\n {\\n \\"roleArn\\": \\"acs:emr::w-1234****abcd:role/DataScience\\",\\n \\"roleName\\": \\"DataScience\\",\\n \\"description\\": \\"DataScience\\",\\n \\"createTime\\": 1753412502000,\\n \\"actions\\": [\\n {\\n \\"actionArn\\": \\"acs:emr::w-1234****abcd:action/add_MEMBER\\",\\n \\"actionName\\": \\"add\\",\\n \\"displayName\\": \\"add members\\",\\n \\"description\\": \\"add members\\\\n\\",\\n \\"dependencies\\": [\\n \\"VIEW\\"\\n ]\\n }\\n ]\\n }\\n ],\\n \\"actions\\": [\\n {\\n \\"actionArn\\": \\"acs:emr::w-1234****abcd:action/add_MEMBER\\",\\n \\"actionName\\": \\"add\\",\\n \\"displayName\\": \\"add members\\",\\n \\"description\\": \\"add members\\",\\n \\"dependencies\\": [\\n \\"VIEW\\"\\n ]\\n }\\n ],\\n \\"visible\\": true,\\n \\"createTime\\": \\"1753412502000\\"\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', - 'title' => '获取成员列表', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"body\\": {\\n \\"applicationId\\": \\"spark-339f844005b6404c95f9f7c7a13b****\\",\\n \\"success\\": true\\n }\\n}","type":"json"}]', ], - 'GrantRoleToUsers' => [ - 'summary' => '调用GrantRoleToUsers为用户授予指定角色权限。', - 'path' => '/api/v1/auth/roles/grant', - 'methods' => [ - 'post', + 'CancelRayJob' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/rayJob/{submissionId}/cancel', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], - 'schemes' => [ - 'http', - 'https', + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], + ], + [ + 'name' => 'submissionId', + 'in' => 'path', + 'schema' => ['title' => 'rayjobID', 'description' => 'rayjob ID。', 'type' => 'string', 'required' => false, 'example' => 'rj-k7nm8ahl5te4tg91'], + ], ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + 'success' => ['title' => '是否成功触发取消', 'description' => '是否成功触发取消', 'type' => 'boolean', 'example' => 'true'], + ], + ], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '停止Ray Job', + 'summary' => '停止RayJob。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"success\\": true\\n}","type":"json"}]', + ], + 'ChangeResourceGroup' => [ + 'path' => '/changeResourceGroup', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], - 'produces' => [ - 'application/json', + 'parameters' => [ + [ + 'name' => 'resourceType', + 'in' => 'query', + 'schema' => ['title' => '资源类型', 'description' => '资源类型', 'type' => 'string', 'required' => false, 'example' => 'Workspace', 'default' => 'Instance'], + ], + [ + 'name' => 'resourceId', + 'in' => 'query', + 'schema' => ['title' => '资源Id', 'description' => '资源Id', 'type' => 'string', 'required' => true, 'example' => 'w-asfx12xxxxxx'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '地域Id', 'description' => '地域Id', 'type' => 'string', 'required' => true, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'resourceGroupId', + 'in' => 'query', + 'schema' => ['title' => '目标资源组', 'description' => '目标资源组', 'type' => 'string', 'required' => true, 'example' => 'rg-aek2thxggoqhmhq'], + ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'update', - 'abilityTreeCode' => '193394', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce8QU4HW', + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '8CE06D75-E6A2-505D-9B4B-31DEE3D98A04'], + ], + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'MissingParameter.RegionId', 'errorMessage' => 'The RegionId parameters that are required for processing this request are missing', 'description' => ''], + ['errorCode' => 'MissingParameter.ResourceId', 'errorMessage' => 'The ResourceId parameters that are required for processing this request are missing', 'description' => ''], + ['errorCode' => 'MissingParameter.ResourceGroupId', 'errorMessage' => 'The ResourceGroupId parameters that are required for processing this request are missing', 'description' => ''], + ['errorCode' => 'InvalidResourceGroup', 'errorMessage' => 'The specified ResourceGroupId is invalid', 'description' => ''], + ['errorCode' => 'InternalError', 'errorMessage' => 'The request processing has failed due to some unknown error.', 'description' => ''], + ['errorCode' => 'ResourceNotFound', 'errorMessage' => ' The specified resource is not found', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'NoPermission.ChangeResourceGroup', 'errorMessage' => 'You are not authorized to change resourcegroup', 'description' => ''], ], ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '修改工作空间资源组', + 'summary' => '修改实例所在资源组', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"8CE06D75-E6A2-505D-9B4B-31DEE3D98A04\\"\\n}","type":"json"}]', + ], + 'CreateKyuubiService' => [ + 'summary' => '创建Kyuubi Gateway。', + 'path' => '/api/v1/kyuubi/{workspaceId}', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], + ], 'parameters' => [ [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间 ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], + ], + [ 'name' => 'body', 'in' => 'body', 'style' => 'json', 'schema' => [ - 'description' => '请求体参数。', + 'description' => '请求结构体。', 'type' => 'object', 'properties' => [ - 'roleArn' => [ - 'description' => '角色ARN。', - 'type' => 'string', - 'required' => false, - 'example' => 'acs:emr::w-975bcfda9625****:role/Owner', - ], - 'userArns' => [ - 'description' => '用户ARN列表。', - 'type' => 'array', - 'items' => [ - 'description' => '用户ARN。', - 'type' => 'string', - 'required' => false, - 'example' => 'acs:emr::w-975bcfda96258dd7:member/20468369839086****', - ], - 'required' => false, - ], + 'kyuubiConfigs' => ['description' => 'Kyuubi Service 配置。', 'type' => 'string', 'required' => false, 'example' => '[{\\"key\\":\\"kyuubi.engine.share.level\\",\\"value\\":\\"USER\\"}]'], + 'sparkConfigs' => ['description' => 'Spark配置。', 'type' => 'string', 'required' => false, 'example' => '[{\\"key\\":\\"spark.app.name\\",\\"value\\":\\"test\\"}]'], + 'name' => ['description' => 'Kyuubi Service 名称。', 'type' => 'string', 'required' => false, 'example' => 'dev_serverless_spark'], + 'queue' => ['description' => 'Kyuubi Service 运行队列。', 'type' => 'string', 'required' => false, 'example' => 'dev_queue'], + 'computeInstance' => ['description' => 'Kyuubi Service 规格。', 'type' => 'string', 'required' => false, 'example' => '2c8g'], + 'releaseVersion' => ['description' => 'Spark 引擎版本。', 'type' => 'string', 'required' => false, 'example' => 'esr-4.6.0 (Spark 3.5.2, Scala 2.12)'], + 'publicEndpointEnabled' => ['description' => '是否开启公网访问。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], + 'replica' => ['description' => '开启高可用副本数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3'], + 'kyuubiReleaseVersion' => ['description' => 'Kyuubi Service 引擎版本。', 'type' => 'string', 'required' => false, 'example' => '1.9.2-0.0.2'], ], 'required' => false, ], ], - [ - 'name' => 'regionId', - 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '请求返回体。', + 'description' => '响应结构体。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', + 'requestId' => ['title' => 'Id of the request', 'description' => '请求 ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n"], + 'data' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'kyuubiServiceId' => ['description' => 'Kyuubi Service ID。', 'type' => 'string', 'example' => 'kb-f99935b350fb4****7ef700b8b4197a3'], + ], ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建 Kyuubi Gateway', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '赋予用户角色', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\",\\n \\"data\\": {\\n \\"kyuubiServiceId\\": \\"kb-f99935b350fb4****7ef700b8b4197a3\\"\\n }\\n}","type":"json"}]', ], - 'GetSessionCluster' => [ - 'summary' => '获取会话详情。', - 'path' => '/api/v1/workspaces/{workspaceId}/sessionClusters/{sessionClusterId}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateKyuubiToken' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/kyuubiService/{kyuubiServiceId}/token', + 'methods' => ['post'], + 'schemes' => ['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' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '203510', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-1234abcd', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'."\n"], ], [ - 'name' => 'sessionClusterId', + 'name' => 'kyuubiServiceId', 'in' => 'path', - 'allowEmptyValue' => false, + 'schema' => ['description' => 'Kyuubi服务ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'."\n"], + ], + [ + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', 'schema' => [ - 'title' => '作业名称。', - 'description' => '作业名称。', - 'type' => 'string', + 'description' => '请求结构体。', + 'type' => 'object', + 'properties' => [ + 'name' => ['description' => 'Token名称。', 'type' => 'string', 'required' => false, 'example' => 'dev_serverless_spark'], + 'token' => ['description' => '长度为32,仅包含小写字母和数字的Token内容。', 'type' => 'string', 'required' => false, 'example' => 'rjy7ejhej9gkzjjuun49jnx2xk8if2cu'], + 'autoExpireConfiguration' => [ + 'description' => '自动过期配置结构体。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => '是否自动过期。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'expireDays' => ['description' => '过期时间(单位:天)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '365'], + ], + 'required' => false, + ], + 'memberArns' => [ + 'description' => '授权用户arn列表。', + 'type' => 'array', + 'items' => ['description' => '授权用户arn。', 'type' => 'string', 'required' => false, 'example' => 'acs:emr::w-d2d82aa09155****:member/195****7311'."\n"], + 'required' => false, + ], + 'sparkRole' => [ + 'type' => 'array', + 'items' => ['type' => 'string'], + ], + ], 'required' => false, - 'example' => 'emr-spark-demo-job', ], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'."\n"], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据。', + 'title' => 'Schema of Response', + 'description' => '请求响应结构体。', 'type' => 'object', 'properties' => [ - 'sessionCluster' => [ - 'description' => '会话对象。', + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'data' => [ + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'workspaceId' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'example' => 'w-1234abcd', - ], - 'sessionClusterId' => [ - 'title' => '交互式作业会话id。', - 'description' => '交互式作业会话ID。', - 'type' => 'string', - 'example' => '1234abcd-12ab-34cd-56ef-1234567890ab', - ], - 'userId' => [ - 'title' => '任务实例ID。', - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '123xxxxxxxx', - ], - 'queueName' => [ - 'title' => '作业实例名称。', - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'dev_queue', - ], - 'state' => [ - 'title' => '作业状态。', - 'description' => '作业状态。'."\n" - .'- Starting:启动中。'."\n" - .'- Running:运行中。'."\n" - .'- Stopping:正在停止。'."\n" - .'- Stopped:已停止。'."\n" - .'- Error:已失败。', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'Running', - ], - 'stateChangeReason' => [ - 'description' => '状态变化原因。', - 'type' => 'object', - 'properties' => [ - 'code' => [ - 'description' => '状态变化编码。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '状态变化消息。', - 'type' => 'string', - 'example' => 'ok', - ], - ], - ], - 'autoStartConfiguration' => [ - 'description' => '配置是否开启自动启动。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => '是否开启自动启动。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'enumValueTitles' => [], - 'example' => 'false', - ], - ], - ], - 'autoStopConfiguration' => [ - 'description' => '配置是否允许自动终止。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => '是否允许自动终止。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'enumValueTitles' => [], - 'example' => 'false', - ], - 'idleTimeoutMinutes' => [ - 'description' => '会话空闲指定分钟数后自动终止。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '60', - ], - ], - ], - 'applicationConfigs' => [ - 'description' => 'Spark应用配置列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Spark应用配置。', - 'type' => 'object', - 'properties' => [ - 'configFileName' => [ - 'description' => '配置文件名。', - 'type' => 'string', - 'example' => 'spark-defaults.conf', - ], - 'configItemKey' => [ - 'description' => '配置键。', - 'type' => 'string', - 'example' => 'spark.app.name', - ], - 'configItemValue' => [ - 'description' => '配置值。', - 'type' => 'string', - 'example' => 'test', - ], - ], - ], - ], - 'releaseVersion' => [ - 'description' => 'Serverless Spark版本。', - 'type' => 'string', - 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)', - ], - 'name' => [ - 'description' => '会话名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'userName' => [ - 'description' => '会话创建者名称。', - 'type' => 'string', - 'example' => 'user1', - ], - 'kind' => [ - 'description' => '生效作业类型,必填,创建后无法修改。'."\n" - .'- SQLSCRIPT:SQL作业。'."\n" - .'- JAR:JAR作业。'."\n" - .'- PYTHON:Python作业。', - 'type' => 'string', - 'example' => 'SQL', - ], - 'webUI' => [ - 'description' => '会话Spark UI链接地址。', - 'type' => 'string', - 'example' => 'https://spark-ui/link', - ], - 'draftId' => [ - 'description' => '会话绑定的开发作业ID。', - 'type' => 'string', - 'example' => 'TSK-xxxxxxxx', - ], - 'domain' => [ - 'description' => '会话Spark UI所属域。', - 'type' => 'string', - 'example' => 'your.domain.com', - ], - 'displayReleaseVersion' => [ - 'description' => '控制台实际展示的版本。', - 'type' => 'string', - 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)', - ], - 'fusion' => [ - 'description' => '是否开启Fusion引擎加速。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'envId' => [ - 'description' => '环境ID。', - 'type' => 'string', - 'example' => 'env-cpv569tlhtgndjl8****', - ], - 'gmtCreate' => [ - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2024-09-01 06:23:01'."\n", - ], - 'startTime' => [ - 'description' => '开始时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2024-09-01 06:23:01', - ], - 'domainInner' => [ - 'description' => '内网域名。', - 'type' => 'string', - 'example' => 'emr-spark-gateway-cn-hangzhou-internal.data.aliyuncs.com', - ], - 'extra' => [ - 'description' => '会话额外元数据。', - 'type' => 'string', - 'example' => '{"extraInfoKey":"extraInfoValue"}', - ], - 'publicEndpointEnabled' => [ - 'type' => 'boolean', - ], - 'connectionToken' => [ - 'type' => 'string', - ], + 'tokenId' => ['description' => 'Token ID。', 'type' => 'string', 'example' => 'tk-zpi0*****hdv4y'."\n"], ], ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sessionCluster\\": {\\n \\"workspaceId\\": \\"w-1234abcd\\",\\n \\"sessionClusterId\\": \\"1234abcd-12ab-34cd-56ef-1234567890ab\\",\\n \\"userId\\": \\"123xxxxxxxx\\",\\n \\"queueName\\": \\"dev_queue\\",\\n \\"state\\": \\"Running\\",\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n },\\n \\"autoStartConfiguration\\": {\\n \\"enable\\": false\\n },\\n \\"autoStopConfiguration\\": {\\n \\"enable\\": false,\\n \\"idleTimeoutMinutes\\": 60\\n },\\n \\"applicationConfigs\\": [\\n {\\n \\"configFileName\\": \\"spark-defaults.conf\\",\\n \\"configItemKey\\": \\"spark.app.name\\",\\n \\"configItemValue\\": \\"test\\"\\n }\\n ],\\n \\"releaseVersion\\": \\"esr-4.0.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"name\\": \\"test\\",\\n \\"userName\\": \\"user1\\",\\n \\"kind\\": \\"SQL\\",\\n \\"webUI\\": \\"https://spark-ui/link\\",\\n \\"draftId\\": \\"TSK-xxxxxxxx\\",\\n \\"domain\\": \\"your.domain.com\\",\\n \\"displayReleaseVersion\\": \\"esr-4.0.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"fusion\\": false,\\n \\"envId\\": \\"env-cpv569tlhtgndjl8****\\",\\n \\"gmtCreate\\": 0,\\n \\"startTime\\": 0,\\n \\"domainInner\\": \\"emr-spark-gateway-cn-hangzhou-internal.data.aliyuncs.com\\",\\n \\"extra\\": \\"{\\\\\\"extraInfoKey\\\\\\":\\\\\\"extraInfoValue\\\\\\"}\\",\\n \\"publicEndpointEnabled\\": true,\\n \\"connectionToken\\": \\"\\"\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '获取会话详情', - ], - 'CreateSessionCluster' => [ - 'summary' => '创建会话。', - 'path' => '/api/v1/workspaces/{workspaceId}/sessionClusters', - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建Kyuubi Gateway认证Token', + 'summary' => '创建Kyuubi Gateway认证Token。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateKyuubiToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"tokenId\\": \\"tk-zpi0*****hdv4y\\\\n\\"\\n }\\n}","type":"json"}]', + ], + 'CreateLivyCompute' => [ + 'summary' => '创建Livy compute。', + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute', + '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' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '202902', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeCode' => '222228', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ + 'name' => 'workspaceBizId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], + ], + [ 'name' => 'body', 'in' => 'body', - 'allowEmptyValue' => false, 'style' => 'json', 'schema' => [ - 'description' => '请求结构体', + 'description' => '请求结构体。', 'type' => 'object', 'properties' => [ - 'queueName' => [ - 'description' => '队列名称', + 'name' => ['description' => 'Livy Gateway名称。', 'type' => 'string', 'required' => false, 'example' => 'testGateway'], + 'livyVersion' => [ + 'description' => 'Livy版本。', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [], + 'example' => '0.8.0', + 'enum' => ['0.8.0'], + ], + 'releaseVersion' => ['description' => 'Spark引擎版本号,已废弃,请使用displayReleaseVersion。', 'type' => 'string', 'required' => false, 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12, Java Runtime)'], + 'queueName' => ['description' => '提交队列名称。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'cpuLimit' => [ + 'description' => 'Livy Server的CPU核数。'."\n" + .'- 1'."\n" + .'- 2'."\n" + .'- 4', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [], + 'example' => '1', + ], + 'memoryLimit' => [ + 'description' => 'Livy Server的内存大小。'."\n" + .'- 4Gi'."\n" + .'- 8Gi'."\n" + .'- 16Gi', 'type' => 'string', 'required' => false, - 'example' => 'root_queue', + 'enumValueTitles' => [], + 'example' => '4Gi', ], 'autoStartConfiguration' => [ - 'description' => '是否开启自动启动。'."\n" - .'- true:是。'."\n" - .'- false:否。', + 'description' => '自动启动配置。', 'type' => 'object', 'properties' => [ - 'enable' => [ - 'description' => '是否开启自动启动。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'enable' => ['description' => '创建后是否自动启动。'."\n" + .'- true:是。'."\n" + .'- false:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], 'required' => false, ], @@ -1965,273 +1196,210 @@ 'description' => '自动终止配置。', 'type' => 'object', 'properties' => [ - 'enable' => [ - 'description' => '是否允许自动终止。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'idleTimeoutMinutes' => [ - 'description' => '会话空闲指定分钟数后自动终止。', - 'type' => 'integer', - 'required' => false, - 'example' => '60', - ], + 'enable' => ['description' => '是否自动终止。'."\n" + .'- true:是。'."\n" + .'- false:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'idleTimeoutMinutes' => ['description' => 'Livy Gateway空闲指定分钟数后自动终止。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '300'], ], 'required' => false, ], - 'applicationConfigs' => [ - 'description' => 'Spark应用配置。', - 'type' => 'array', - 'items' => [ - 'description' => 'Spark应用配置。', - 'type' => 'object', - 'properties' => [ - 'configFileName' => [ - 'description' => '配置文件名。', - 'type' => 'string', - 'required' => false, - 'example' => 'spark-defaults.conf'."\n", - ], - 'configItemKey' => [ - 'description' => 'Spark Conf键。', - 'type' => 'string', - 'required' => false, - 'example' => 'spark.app.name', - ], - 'configItemValue' => [ - 'description' => 'Spark Conf值。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'releaseVersion' => [ - 'description' => 'Spark引擎版本号。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-3.3.1', - ], - 'name' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'spark_job_name', - ], - 'kind' => [ - 'description' => '会话类型。'."\n" - .'- SQL:SQL会话。'."\n" - .'- NOTEBOOK:NOTEBOOK会话。', - 'type' => 'string', - 'required' => false, - 'example' => 'SQL', - 'default' => 'SQL', - ], - 'displayReleaseVersion' => [ - 'description' => '控制台实际展示的版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-3.3.1'."\n", - ], - 'fusion' => [ - 'description' => '是否开启Fusion引擎加速。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'envId' => [ - 'description' => 'Python环境ID,仅对Notebook Session生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'env-cpv569tlhtgndjl86t40', - ], - 'publicEndpointEnabled' => [ - 'type' => 'boolean', - 'required' => false, - 'default' => 'false', - ], - 'clientToken' => [ + 'authType' => [ + 'description' => '认证方式。', 'type' => 'string', 'required' => false, + 'enumValueTitles' => [], + 'example' => 'Token', + 'enum' => ['Token'], ], + 'displayReleaseVersion' => ['description' => 'Spark引擎版本号。', 'type' => 'string', 'required' => false, 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12)'."\n"], + 'fusion' => ['description' => '是否开启Fusion引擎加速。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'environmentId' => ['description' => '运行环境ID。', 'type' => 'string', 'required' => false, 'example' => 'ev-ctfq0fem1hkhgv4hapng'], + 'networkName' => ['description' => '网络连接名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'livyServerConf' => ['description' => 'Livy Gateway配置,JSON格式,支持以下文件:'."\n" + ."\n" + .'- sparkDefaultsConf'."\n" + .'- sparkBlackListConf'."\n" + .'- livyConf'."\n" + .'- livyClientConf', 'type' => 'string', 'required' => false, 'example' => '{'."\n" + .' "sparkDefaultsConf": "spark.driver.cores 1\\nspark.driver.memory 4g\\nspark.executor.cores 1\\nspark.executor.memory 4g\\n",'."\n" + .' "sparkBlackListConf": "spark.driver.cores\\nspark.driver.memory",'."\n" + .' "livyConf": "livy.server.session.timeout 1h\\n",'."\n" + .' "livyClientConf": "livy.rsc.sql.num-rows 1000\\n"'."\n" + .'}'], + 'enablePublic' => ['description' => '公网地址开关状态。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], 'required' => false, ], ], [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-790b443d72394bfc', - ], - ], - [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'sessionClusterId' => [ - 'title' => 'Workspace Id。', - 'description' => '会话ID。', - 'type' => 'string', - 'example' => 'w-******', - ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], + 'data' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'livyComputeId' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'example' => 'lc-i8xogcdfa4fk3yn1'], + ], ], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sessionClusterId\\": \\"w-******\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '创建会话', - ], - 'StopSessionCluster' => [ - 'summary' => '终止session集群。', - 'path' => '/api/v1/workspaces/{workspaceId}/sessionClusters/action/stopSessionCluster', - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建Livy Gateway', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"livyComputeId\\": \\"lc-i8xogcdfa4fk3yn1\\"\\n }\\n}","type":"json"}]', + ], + 'CreateLivyComputeToken' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/token', + 'methods' => ['put'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'abilityTreeCode' => '222305', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], - 'operationType' => 'read', - 'systemTags' => [], 'parameters' => [ [ + 'name' => 'workspaceBizId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], + ], + [ + 'name' => 'livyComputeId', + 'in' => 'path', + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-zm4dzdiubu73w2yx'], + ], + [ 'name' => 'body', 'in' => 'body', - 'allowEmptyValue' => false, 'style' => 'json', 'schema' => [ - 'description' => '请求结构体', + 'description' => '请求结构体。', 'type' => 'object', 'properties' => [ - 'queueName' => [ - 'description' => '队列名称', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', - ], - 'sessionClusterId' => [ - 'description' => '会话ID', - 'type' => 'string', + 'name' => ['description' => 'Token名称。', 'type' => 'string', 'required' => false, 'example' => 'mytoken'], + 'token' => ['description' => 'Token内容,长度需要大于等于16。', 'type' => 'string', 'required' => false, 'example' => 'gs3fy75w4o7hqe5s'], + 'autoExpireConfiguration' => [ + 'description' => 'Token过期信息结构体。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => 'Token是否自动过期。'."\n" + .'- true:是。'."\n" + .'- false:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'expireDays' => ['description' => '过期时间(天)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '7'], + ], 'required' => false, - 'example' => 'sc-xxxxxxxxxxxx', ], ], 'required' => false, ], ], [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], - ], - [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'sessionClusterId' => [ - 'title' => 'Workspace Id。', - 'description' => 'Workspace Id。', - 'type' => 'string', - 'example' => 'w-******', - ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误详情。', 'type' => 'string', 'example' => 'ok'], + 'data' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'tokenId' => ['description' => 'Token ID。', 'type' => 'string', 'example' => 'lctk-xxxxxxxx'], + ], ], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sessionClusterId\\": \\"w-******\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '终止会话', - ], - 'StartSessionCluster' => [ - 'summary' => '启动session集群。', - 'path' => '/api/v1/workspaces/{workspaceId}/sessionClusters/action/startSessionCluster', - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建Livy Gateway的Token', + 'summary' => '创建Livy Gateway的Token。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateLivyComputeToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"tokenId\\": \\"lctk-xxxxxxxx\\"\\n }\\n}","type":"json"}]', + ], + 'CreateNetworkService' => [ + 'summary' => '创建网络连接。', + 'path' => '/api/v1/workspaces/{workspaceId}/networkServices', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', - 'systemTags' => [], + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduceX85SDM'], + ], 'parameters' => [ [ 'name' => 'body', @@ -2239,21 +1407,20 @@ 'allowEmptyValue' => false, 'style' => 'json', 'schema' => [ - 'description' => '请求结构体', + 'description' => '请求结构体。', 'type' => 'object', 'properties' => [ - 'queueName' => [ - 'description' => '队列名称', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', - ], - 'sessionClusterId' => [ - 'description' => '会话ID', - 'type' => 'string', + 'name' => ['description' => '名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'type' => ['description' => '类型。', 'type' => 'string', 'required' => false, 'example' => 'type'], + 'vpcId' => ['description' => 'VPC id。', 'type' => 'string', 'required' => false, 'example' => 'vpc-bp1g14f566kbk8jex****'], + 'vswitchIds' => [ + 'description' => '交换机id列表。', + 'type' => 'array', + 'items' => ['description' => '交换机id。', 'type' => 'string', 'required' => false, 'example' => 'vsw-bp1j94qrn5meu5ft0****'], 'required' => false, - 'example' => 'sc-xxxxxxxxxxx', ], + 'securityGroupId' => ['description' => '安全组id。', 'type' => 'string', 'required' => false, 'example' => ' securityGroupId'], + 'clientToken' => ['description' => '幂等标识。', 'type' => 'string', 'required' => false, 'example' => 'acaf8f54-d40e-4c33-a900-f6c1b345cb47'], ], 'required' => false, ], @@ -2261,23 +1428,12 @@ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => '工作空间id。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -2287,741 +1443,397 @@ 'description' => '返回数据', 'type' => 'object', 'properties' => [ - 'sessionClusterId' => [ - 'title' => 'Workspace Id。', - 'description' => 'Workspace Id。', - 'type' => 'string', - 'example' => 'w-******', - ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'operationId' => ['title' => 'Workspace Id。', 'description' => '工作空间 id。', 'type' => 'string', 'example' => 'w-******'], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sessionClusterId\\": \\"w-******\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '启动会话', - ], - 'ListSessionClusters' => [ - 'summary' => '获取会话列表。', - 'path' => '/api/v1/workspaces/{workspaceId}/sessionClusters', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'title' => '创建网络连接', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"operationId\\": \\"w-******\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'CreateProcessDefinitionWithSchedule' => [ + 'path' => '/dolphinscheduler/projects/{bizId}/process-definition', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '202905', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeCode' => '191322', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'nextToken', + 'name' => 'productNamespace', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '标记当前开始读取的位置。', - 'description' => '标记当前开始读取的位置。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '产品编码。', 'type' => 'string', 'required' => true, 'example' => 'SS'], ], [ - 'name' => 'maxResults', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '一次获取的最大记录数。', - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'name' => 'bizId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d8********'], ], [ - 'name' => 'workspaceId', - 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-1234abcd', - ], + 'name' => 'name', + 'in' => 'query', + 'schema' => ['description' => '工作流名称。', 'type' => 'string', 'required' => true, 'example' => 'ods_batch_workflow'], ], [ - 'name' => 'sessionClusterId', + 'name' => 'description', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '作业名称。', - 'description' => '作业名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'emr-spark-demo-job', - ], + 'schema' => ['description' => '工作流描述。', 'type' => 'string', 'required' => true, 'example' => 'ods batch workflow'], ], [ - 'name' => 'queueName', + 'name' => 'timeout', 'in' => 'query', - 'schema' => [ - 'description' => '队列名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'root', - ], + 'schema' => ['description' => '工作流运行默认timeout。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '60'], ], [ - 'name' => 'kind', + 'name' => 'taskRelationJson', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '会话类型。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'NOTEBOOK' => 'NOTEBOOK', - 'THRIFT' => 'THRIFT', - 'SQL' => 'SQL', + 'description' => '任务依赖关系JSON数组,包含工作流所有任务之间的依赖关系,preTaskCode为上游任务ID,postTaskCode为下游任务ID,每一个任务需有唯一的ID。如果任务节点没有上游任务,也需要增加一个preTaskCode为0的依赖关系。', + 'type' => 'array', + 'items' => [ + 'description' => '任务依赖关系JSON,包含工作流所有任务之间的依赖关系,preTaskCode为上游任务ID,postTaskCode为下游任务,每一个任务需有唯一的ID。如果任务节点没有上游任务,也需要增加一个preTaskCode为0的依赖关系。', + 'type' => 'object', + 'properties' => [ + 'name' => ['description' => '任务拓扑关系名称,填工作流名称即可。', 'type' => 'string', 'required' => true, 'example' => 'ods batch workflow'], + 'preTaskCode' => ['description' => '上游任务ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '16************'], + 'preTaskVersion' => ['description' => '上游任务版本。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + 'postTaskCode' => ['description' => '下游任务ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '28************'], + 'postTaskVersion' => ['description' => '下游任务版本。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + 'required' => true, ], - 'example' => 'SQL', - 'default' => 'SQL', + 'required' => true, ], ], [ - 'name' => 'regionId', + 'name' => 'taskDefinitionJson', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'sessionClusters' => [ - 'description' => '会话列表。', - 'type' => 'array', - 'items' => [ - 'description' => '会话详情。', + 'description' => '任务定义JSON数组,包含工作流所有任务的描述信息。', + 'type' => 'array', + 'items' => [ + 'description' => '任务定义JSON,包含工作流所有任务的描述信息。', + 'type' => 'object', + 'properties' => [ + 'code' => ['description' => '任务定义ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '36************'], + 'description' => ['description' => '任务定义描述。', 'type' => 'string', 'required' => false, 'example' => 'ods transform task'], + 'alertEmailAddress' => ['description' => '告警邮箱地址。', 'type' => 'string', 'required' => false, 'example' => 'foo_bar@spark.alert.invalid.com'], + 'startAlertEnable' => ['description' => '任务启动告警开启。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'failAlertEnable' => ['description' => '任务失败告警开启。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'failRetryTimes' => ['description' => '任务失败重试次数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'name' => [ + 'description' => '任务名称。', + 'type' => 'string', + 'required' => true, + 'enumValueTitles' => [], + 'example' => 'ods_transform_task', + ], + 'taskParams' => [ + 'description' => '任务定义参数。', 'type' => 'object', 'properties' => [ - 'workspaceId' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'example' => 'w-1234abcd', - ], - 'sessionClusterId' => [ - 'title' => '交互式作业会话id。', - 'description' => '会话ID。', - 'type' => 'string', - 'example' => 'sc-123131', - ], - 'userId' => [ - 'title' => '任务实例ID。', - 'description' => '用户ID。', - 'type' => 'string', - 'example' => '123131', - ], - 'queueName' => [ - 'title' => '作业实例名称。', - 'description' => '会话运行队列名称。', - 'type' => 'string', - 'example' => 'dev_queue', - ], - 'state' => [ - 'title' => '作业状态。', - 'description' => '会话状态。'."\n" - .'- Starting:启动中。'."\n" - .'- Running:运行中。'."\n" - .'- Stopping:正在停止。'."\n" - .'- Stopped:已停止。'."\n" - .'- Error:已失败。', - 'type' => 'string', - 'example' => 'Running', - ], - 'stateChangeReason' => [ - 'description' => '会话最近一次状态变化详情。', - 'type' => 'object', - 'properties' => [ - 'code' => [ - 'description' => '状态变化编码。', - 'type' => 'string', - 'example' => '200', - ], - 'message' => [ - 'description' => '状态变化消息。', - 'type' => 'string', - 'example' => 'ok', - ], - ], - ], - 'autoStartConfiguration' => [ - 'description' => '自动启动配置。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => '是否开启自动启动。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - 'autoStopConfiguration' => [ - 'description' => '自动终止配置。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => '是否允许自动终止。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'idleTimeoutMinutes' => [ - 'description' => '会话空闲指定分钟数后自动终止。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '45', + 'workspaceBizId' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d8********'], + 'taskBizId' => ['description' => '数据开发任务ID。', 'type' => 'string', 'required' => true, 'example' => 'TSK-d87******************'], + 'resourceQueueId' => ['description' => 'Spark任务运行的资源队列。', 'type' => 'string', 'required' => true, 'example' => 'root_queue'], + 'sparkDriverCores' => ['description' => 'Spark任务Driver核数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'sparkExecutorCores' => ['description' => 'Spark任务Executor核数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'sparkDriverMemory' => ['description' => 'Spark任务Driver内存。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '4g'], + 'sparkExecutorMemory' => ['description' => 'Spark任务Executor内存。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '4g'], + 'sparkConf' => [ + 'description' => 'Spark任务配置。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'key' => ['description' => 'Spark Conf配置key。', 'type' => 'string', 'required' => false, 'example' => 'spark.dynamicAllocation.enabled'], + 'value' => ['description' => 'Spark Conf配置value。', 'type' => 'string', 'required' => false, 'example' => 'true'], ], + 'required' => false, ], + 'required' => false, ], - 'applicationConfigs' => [ - 'description' => '会话配置,等价于背后运行的Spark作业的配置。', + 'sparkVersion' => ['description' => 'Spark引擎版本。', 'type' => 'string', 'required' => false, 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)'], + 'sparkLogLevel' => ['description' => 'Spark日志级别。', 'type' => 'string', 'required' => false, 'example' => 'INFO'], + 'sparkLogPath' => ['description' => 'Spark任务日志路径。', 'type' => 'string', 'required' => false, 'example' => 'oss://data***/spark/logs'], + 'displaySparkVersion' => ['description' => 'Spark引擎显示版本。', 'type' => 'string', 'required' => false, 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)'], + 'fusion' => ['description' => '是否开启Fusion引擎加速。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'environmentId' => ['description' => '环境id。', 'type' => 'string', 'required' => false, 'example' => 'env-crhq2h5lhtgju93buhkg'], + 'type' => ['description' => 'Spark任务类型。', 'type' => 'string', 'required' => false, 'example' => 'SQL'], + 'localParams' => [ 'type' => 'array', 'items' => [ - 'description' => 'SQL Compute配置,等价于背后运行的spark job的配置。', 'type' => 'object', 'properties' => [ - 'configFileName' => [ - 'description' => '配置文件名。', - 'type' => 'string', - 'example' => 'spark-default.conf', - ], - 'configItemKey' => [ - 'description' => '配置键。', - 'type' => 'string', - 'example' => 'spark.app.name', - ], - 'configItemValue' => [ - 'description' => '配置值。', - 'type' => 'string', - 'example' => 'test_application', - ], + 'prop' => ['type' => 'string', 'required' => false], + 'direct' => ['type' => 'string', 'required' => false], + 'type' => ['type' => 'string', 'required' => false], + 'value' => ['type' => 'string', 'required' => false], ], + 'required' => false, ], - ], - 'name' => [ - 'description' => '会话名称。', - 'type' => 'string', - 'example' => 'adhoc_query', - ], - 'userName' => [ - 'description' => '用户名。', - 'type' => 'string', - 'example' => 'test_user', - ], - 'kind' => [ - 'description' => '会话类型。', - 'type' => 'string', - 'enumValueTitles' => [ - 'NOTEBOOK' => 'NOTEBOOK', - 'THRIFT' => 'THRIFT', - 'SQL' => 'SQL', - ], - 'example' => 'SQL', - ], - 'webUI' => [ - 'description' => '会话SparkUI链接地址。', - 'type' => 'string', - 'example' => 'http://spark-ui-xxxx', - ], - 'releaseVersion' => [ - 'description' => 'Serverless Spark版本。', - 'type' => 'string', - 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)', - ], - 'draftId' => [ - 'description' => '会话绑定的开发作业ID。', - 'type' => 'string', - 'example' => 'TSK-xxxxxxxxx'."\n", - ], - 'domain' => [ - 'description' => 'Thrift server的外网域名。', - 'type' => 'string', - 'example' => 'emr-spark-gateway-cn-hangzhou.data.aliyun.com', - ], - 'displayReleaseVersion' => [ - 'description' => '控制台实际展示的版本。', - 'type' => 'string', - 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)', - ], - 'fusion' => [ - 'description' => '是否开启Fusion引擎加速。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'gmtCreate' => [ - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1732267598000', - ], - 'startTime' => [ - 'description' => '启动时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1732267598000', - ], - 'domainInner' => [ - 'description' => 'Thrift server的内网域名。', - 'type' => 'string', - 'example' => 'emr-spark-gateway-cn-hangzhou-internal.data.aliyuncs.com', - ], - 'extra' => [ - 'description' => '会话额外元数据。', - 'type' => 'string', - 'example' => '{"extraInfoKey":"extraInfoValue"}', - ], - 'publicEndpointEnabled' => [ - 'type' => 'boolean', - ], - 'connectionToken' => [ - 'type' => 'string', + 'required' => false, ], ], + 'required' => true, + ], + 'taskType' => ['description' => '工作流节点类型。', 'type' => 'string', 'required' => true, 'example' => 'EMR_SERVERLESS_SPARK'], + 'timeout' => ['description' => '回调方法的超时时间,单位为秒。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1200'], + 'tags' => [ + 'description' => '标签。', + 'type' => 'object', + 'required' => false, + 'additionalProperties' => ['type' => 'string', 'example' => '“{\\"tagkey\\":\\"tagvalue\\"}”', 'description' => '标签对JSON字符串。'], ], ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'nextToken' => [ - 'title' => '返回读取到的数据位置。', - 'description' => '返回读取到的数据位置。', - 'type' => 'string', - 'example' => '1', - ], - 'maxResults' => [ - 'title' => '本次请求所返回的最大记录条数。', - 'description' => '本次请求所返回的最大记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'totalCount' => [ - 'title' => '本次请求条件下的数据总量。', - 'description' => '本次请求条件下的数据总量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'required' => true, ], + 'required' => true, ], ], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sessionClusters\\": [\\n {\\n \\"workspaceId\\": \\"w-1234abcd\\",\\n \\"sessionClusterId\\": \\"sc-123131\\",\\n \\"userId\\": \\"123131\\",\\n \\"queueName\\": \\"dev_queue\\",\\n \\"state\\": \\"Running\\",\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"200\\",\\n \\"message\\": \\"ok\\"\\n },\\n \\"autoStartConfiguration\\": {\\n \\"enable\\": true\\n },\\n \\"autoStopConfiguration\\": {\\n \\"enable\\": false,\\n \\"idleTimeoutMinutes\\": 45\\n },\\n \\"applicationConfigs\\": [\\n {\\n \\"configFileName\\": \\"spark-default.conf\\",\\n \\"configItemKey\\": \\"spark.app.name\\",\\n \\"configItemValue\\": \\"test_application\\"\\n }\\n ],\\n \\"name\\": \\"adhoc_query\\",\\n \\"userName\\": \\"test_user\\",\\n \\"kind\\": \\"SQL\\",\\n \\"webUI\\": \\"http://spark-ui-xxxx\\",\\n \\"releaseVersion\\": \\"esr-4.0.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"draftId\\": \\"TSK-xxxxxxxxx\\\\n\\",\\n \\"domain\\": \\"emr-spark-gateway-cn-hangzhou.data.aliyun.com\\",\\n \\"displayReleaseVersion\\": \\"esr-4.0.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"fusion\\": false,\\n \\"gmtCreate\\": 1732267598000,\\n \\"startTime\\": 1732267598000,\\n \\"domainInner\\": \\"emr-spark-gateway-cn-hangzhou-internal.data.aliyuncs.com\\",\\n \\"extra\\": \\"{\\\\\\"extraInfoKey\\\\\\":\\\\\\"extraInfoValue\\\\\\"}\\",\\n \\"publicEndpointEnabled\\": true,\\n \\"connectionToken\\": \\"\\"\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', - 'title' => '获取会话列表', - ], - 'ListKyuubiSparkApplications' => [ - 'summary' => 'ListKyuubiSparkApplications', - 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}/applications', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], - ], - 'parameters' => [ [ - 'name' => 'nextToken', + 'name' => 'executionType', 'in' => 'query', - 'schema' => [ - 'description' => '下一页TOKEN。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '执行策略', 'type' => 'string', 'required' => true, 'example' => 'PARALLEL'], ], [ - 'name' => 'maxResults', + 'name' => 'alertEmailAddress', 'in' => 'query', - 'schema' => [ - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => '告警邮箱地址。', 'type' => 'string', 'required' => false, 'example' => 'foo_bar@spark.alert.invalid.com'], ], [ - 'name' => 'workspaceId', - 'in' => 'path', + 'name' => 'schedule', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', + 'description' => '调度结构', + 'type' => 'object', + 'properties' => [ + 'startTime' => ['description' => '调度开始时间。', 'type' => 'string', 'required' => false, 'example' => '2024-12-23 16:13:27'], + 'endTime' => ['description' => '调度结束时间。', 'type' => 'string', 'required' => false, 'example' => '2025-12-23 16:13:27'], + 'crontab' => ['description' => '调度cron表达式。', 'type' => 'string', 'required' => false, 'example' => '0 0 0 * * ?'], + 'timezoneId' => ['description' => '时区ID。', 'type' => 'string', 'required' => false, 'example' => 'Asia/Shanghai'], + ], 'required' => false, - 'example' => 'w-d2d82aa09155****', ], ], [ - 'name' => 'kyuubiServiceId', - 'in' => 'path', - 'schema' => [ - 'title' => 'Kyuubi 服务 ID。', - 'description' => 'Kyuubi服务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****', - ], + 'name' => 'retryTimes', + 'in' => 'query', + 'schema' => ['description' => '重试次数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'applicationId', + 'name' => 'taskParallelism', 'in' => 'query', - 'schema' => [ - 'description' => 'Kyuubi提交的Spark应用ID,用于搜索。', - 'type' => 'string', - 'required' => false, - 'example' => 'spark-339f844005b6404c95f9f7c7a13b****', - ], + 'schema' => ['description' => '任务并发度。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'applicationName', + 'name' => 'resourceQueue', 'in' => 'query', - 'schema' => [ - 'description' => 'Kyuubi提交的Spark应用名,用于搜索。', - 'type' => 'string', - 'required' => false, - 'example' => 'kyuubi-connection-spark-sql-anonymous-fa9a5e73-b4b1-474a-b****', - ], + 'schema' => ['description' => '资源队列。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], ], [ - 'name' => 'startTime', + 'name' => 'tags', 'in' => 'query', 'style' => 'json', 'schema' => [ - 'description' => '任务开始时间范围。', + 'description' => '标签。', 'type' => 'object', - 'properties' => [ - 'startTime' => [ - 'description' => '任务开始时间范围的起点。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1709740800000', - ], - 'endTime' => [ - 'description' => '任务开始时间范围的终点。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1710432000000', - ], - ], 'required' => false, + 'additionalProperties' => ['type' => 'string', 'example' => '“{\\"tagkey\\":\\"tagvalue\\"}”', 'description' => '标签对JSON字符串。'], ], ], [ - 'name' => 'resourceQueueId', + 'name' => 'publish', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '是否发布工作流。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'minDuration', + 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'orderBy', + 'name' => 'runAs', + 'in' => 'query', + 'schema' => ['description' => '执行用户阿里云UID。', 'type' => 'string', 'required' => false, 'example' => '113***************'], + ], + [ + 'name' => 'globalParams', 'in' => 'query', 'style' => 'json', 'schema' => [ 'type' => 'array', 'items' => [ - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'prop' => ['type' => 'string', 'required' => false], + 'value' => ['type' => 'string', 'required' => false], + 'direct' => ['type' => 'string', 'required' => false], + 'type' => ['type' => 'string', 'required' => false], + ], 'required' => false, ], 'required' => false, ], ], - [ - 'name' => 'sort', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], - ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回格式。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'applications' => [ - 'description' => '应用详情列表。', - 'type' => 'array', - 'items' => [ - 'description' => '应用详情。', - 'type' => 'object', - 'properties' => [ - 'applicationId' => [ - 'description' => 'Kyuubi提交的Spark应用ID。', - 'type' => 'string', - 'example' => 'spark-339f844005b6404c95f9f7c7a13b****', - ], - 'applicationName' => [ - 'description' => 'Kyuubi提交的Spark应用名。', - 'type' => 'string', - 'example' => 'kyuubi-connection-spark-sql-anonymous-fa9a5e73-b4b1-474a-b****', - ], - 'webUI' => [ - 'description' => 'Spark应用UI链接地址。', - 'type' => 'string', - 'example' => 'https://emr-spark-ui-cn-hangzhou.data.aliyun.com/history/w-cf351f3b6dcb****-spark-339f844005b6404c95f9f7c7a13b****/jobs/?spm=emr-serverless-spark.gateway_sessions.0.0.711344e3QfMVTz&token=NS9CU1lpWGl1Q2RRdi9sZUtuS3hy****', - ], - 'state' => [ - 'description' => 'Spark应用状态。'."\n" - .'- STARTING:启动中。'."\n" - .'- RUNNING:运行中。'."\n" - .'- TERMINATED:已终止。', - 'type' => 'string', - 'example' => 'STARTING', - ], - 'startTime' => [ - 'description' => '任务开始的时间。', - 'type' => 'string', - 'example' => '2025-02-12 19:59:16', - ], - 'endTime' => [ - 'description' => '任务结束的时间。', - 'type' => 'string', - 'example' => '2025-02-12 20:02:02', - ], - 'cuHours' => [ - 'description' => '任务运行周期内所消耗的 CU 数量(该值为预估值,最终以账单为准)。', - 'type' => 'number', - 'format' => 'double', - 'example' => '0.238302', - ], - 'mbSeconds' => [ - 'description' => '任务已分配的内存总量乘以任务已运行的秒数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3513900', - ], - 'vcoreSeconds' => [ - 'description' => '任务已分配的 vcore 总量乘以任务已运行的秒数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '780', - ], - 'resourceQueueId' => [ - 'description' => 'Spark任务运行的资源队列名称。', - 'type' => 'string', - 'example' => 'dev_queue', - ], - 'exitReason' => [ - 'title' => '退出码。', - 'description' => '退出码。', - 'type' => 'string', - 'example' => 'Exit Code: 137, Exit Reason: OOMKilled', - ], - 'latestSqlStatementStatus' => [ - 'title' => '在该会话内,最近一次任务执行的状态。', - 'description' => '在该会话内,最近一次任务执行的状态。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'runLog' => [ - 'title' => '应用日志。', - 'description' => '应用日志。', - '$ref' => '#/components/schemas/RunLog', - ], - 'kyuubiServiceId' => [ - 'title' => 'Kyuubi 服务 ID。', - 'description' => 'Kyuubi 服务 ID。', - 'type' => 'string', - 'example' => 'kb-2b93ec*******c9440c', - ], - 'tags' => [ - 'title' => '标签。', - 'description' => '标签。', - 'type' => 'array', - 'items' => [ - 'title' => '标签。', - 'description' => '标签。', - '$ref' => '#/components/schemas/Tag', - ], - ], - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => 'API返回编码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1400009'], + 'msg' => ['description' => '请求 code 对应的详细描述信息。', 'type' => 'string', 'example' => 'No permission for resource action'], + 'success' => ['description' => '请求是否成功。', 'type' => 'string', 'example' => 'true'], + 'failed' => ['description' => '请求是否失败。', 'type' => 'string', 'example' => 'false'], + 'data' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'id' => ['description' => '工作流定义编号。', 'type' => 'integer', 'format' => 'int32', 'example' => '12342'], + 'code' => ['description' => '工作流定义ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '160************'], ], ], - 'requestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'nextToken' => [ - 'description' => '下一页TOKEN。', - 'type' => 'string', - 'example' => '1', - ], - 'maxResults' => [ - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'totalCount' => [ - 'description' => '记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'httpStatusCode' => ['description' => 'HTTP状态编码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"applications\\": [\\n {\\n \\"applicationId\\": \\"spark-339f844005b6404c95f9f7c7a13b****\\",\\n \\"applicationName\\": \\"kyuubi-connection-spark-sql-anonymous-fa9a5e73-b4b1-474a-b****\\",\\n \\"webUI\\": \\"https://emr-spark-ui-cn-hangzhou.data.aliyun.com/history/w-cf351f3b6dcb****-spark-339f844005b6404c95f9f7c7a13b****/jobs/?spm=emr-serverless-spark.gateway_sessions.0.0.711344e3QfMVTz&token=NS9CU1lpWGl1Q2RRdi9sZUtuS3hy****\\",\\n \\"state\\": \\"STARTING\\",\\n \\"startTime\\": \\"2025-02-12 19:59:16\\",\\n \\"endTime\\": \\"2025-02-12 20:02:02\\",\\n \\"cuHours\\": 0.238302,\\n \\"mbSeconds\\": 3513900,\\n \\"vcoreSeconds\\": 780,\\n \\"resourceQueueId\\": \\"dev_queue\\",\\n \\"exitReason\\": \\"Exit Code: 137, Exit Reason: OOMKilled\\",\\n \\"latestSqlStatementStatus\\": \\"SUCCESS\\",\\n \\"runLog\\": {\\n \\"driverStdOut\\": \\"\\",\\n \\"driverStdError\\": \\"\\",\\n \\"driverSyslog\\": \\"\\",\\n \\"driverStartup\\": \\"\\"\\n },\\n \\"kyuubiServiceId\\": \\"kb-2b93ec*******c9440c\\",\\n \\"tags\\": [\\n {\\n \\"key\\": \\"workflowId\\",\\n \\"value\\": \\"wf-123test\\"\\n }\\n ]\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', - 'title' => '获取Kyuubi提交的Spark应用详情列表', - ], - 'CancelKyuubiSparkApplication' => [ - 'summary' => 'CancelKyuubiSparkApplication', - 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}/application/{applicationId}', - 'methods' => [ - 'delete', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建工作流定义和调度', + 'summary' => '创建工作流定义。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateProcessDefinitionWithSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": 1400009,\\n \\"msg\\": \\"No permission for resource action\\",\\n \\"success\\": \\"true\\",\\n \\"failed\\": \\"false\\",\\n \\"data\\": {\\n \\"id\\": 12342,\\n \\"code\\": 0\\n },\\n \\"httpStatusCode\\": 200\\n}","type":"json"}]', + ], + 'CreateRayCluster' => [ + 'summary' => '创建Ray集群。', + 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], ], [ - 'name' => 'kyuubiServiceId', - 'in' => 'path', - 'schema' => [ - 'description' => 'Kyuubi 服务 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****', - ], - ], - [ - 'name' => 'applicationId', - 'in' => 'path', - 'schema' => [ - 'description' => 'Kyuubi 提交的 Spark 应用 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'spark-339f844005b6404c95f9f7c7a13b****', - ], - ], - [ - 'name' => 'regionId', - 'in' => 'query', + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', 'schema' => [ - 'description' => '地域 ID。', - 'type' => 'string', + 'title' => '请求结构体。', + 'description' => '请求结构体。', + 'type' => 'object', + 'properties' => [ + 'name' => ['title' => 'Ray集群名称。', 'description' => 'Ray集群名称,长度1到64。', 'type' => 'string', 'required' => false, 'example' => 'testRayCluster'], + 'displayReleaseVersion' => ['title' => 'Ray引擎版本。', 'description' => 'Ray引擎版本。', 'type' => 'string', 'required' => false, 'example' => 'ray-1.0.0 (Ray 2.47.1, Python 3.12)'], + 'description' => ['title' => '描述信息。', 'description' => '描述信息。', 'type' => 'string', 'required' => false, 'example' => 'Ray Cluster for dev.'], + 'networkServiceName' => ['title' => '网络连接名称。', 'description' => '网络连接名称。', 'type' => 'string', 'required' => false, 'example' => 'vpc'], + 'headSpec' => [ + 'title' => 'Ray集群Head节点参数。', + 'description' => 'Ray集群Head节点参数。', + 'type' => 'object', + 'properties' => [ + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'required' => false, 'example' => '2'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'required' => false, 'example' => '8Gi'], + 'enableAutoScaling' => ['title' => '是否开启Worker自动扩缩容。', 'description' => '是否开启Worker自动扩缩容。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'idleTimeoutSeconds' => ['title' => '开启自动扩缩容后Worker Idle时间。', 'description' => '开启自动扩缩容后Worker Idle时间。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '60'], + 'gpuSpec' => ['title' => 'gpu机型。', 'type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], + ], + 'required' => false, + ], + 'workerSpec' => [ + 'title' => 'Ray集群Worker节点参数。', + 'description' => 'Ray集群Worker节点参数,最多50组。', + 'type' => 'array', + 'items' => [ + 'title' => 'Worker节点结构体。', + 'description' => 'Worker节点结构体。', + 'type' => 'object', + 'properties' => [ + 'groupName' => ['title' => 'Worker组名。', 'description' => 'Worker组名。', 'type' => 'string', 'required' => false, 'example' => 'WorkerGroup1'], + 'workerType' => [ + 'title' => 'Worker类型。', + 'description' => 'Worker类型。', + 'type' => 'string', + 'required' => false, + 'example' => 'CPU', + 'enum' => ['CPU'], + ], + 'replica' => ['title' => 'Worker数量。', 'description' => 'Worker数量,最小1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'required' => false, 'example' => '4'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'required' => false, 'example' => '16Gi'], + 'minReplica' => ['title' => '开启自动扩缩容后最小Worker数量。', 'description' => '开启自动扩缩容后最小Worker数量,最小1,必须小于等于maxReplica。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'maxReplica' => ['title' => '开启自动扩缩容后最大Worker数量。', 'description' => '开启自动扩缩容后最大Worker数量,最小1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + 'gpuSpec' => ['title' => 'gpu机型。', 'type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], + ], + 'required' => false, + ], + 'required' => false, + ], + 'extraParam' => ['title' => '额外参数,json格式。', 'description' => '额外参数,必须为json格式。', 'type' => 'string', 'required' => false, 'example' => '{}'], + 'volumeIds' => [ + 'title' => '需要挂载的纳管目录id列表。', + 'type' => 'array', + 'items' => ['title' => '纳管目录id。', 'type' => 'string', 'example' => 'vol-1234567890'], + ], + ], 'required' => false, - 'example' => 'cn-hangzhou', ], ], ], @@ -3029,250 +1841,316 @@ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '响应结构体。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求 ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'body' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'applicationId' => [ - 'description' => 'Kyuubi 提交的 Spark 应用 ID。', - 'type' => 'string', - 'example' => 'spark-339f844005b6404c95f9f7c7a13b****', - ], - 'success' => [ - 'description' => '请求是否成功。'."\n" - ."\n" - .'- true:成功'."\n" - ."\n" - .'- false:失败', - 'type' => 'boolean', - ], - ], - ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + 'clusterId' => ['title' => 'Ray集群ID。', 'description' => 'Ray集群ID。', 'type' => 'string', 'example' => 'ray-k7nm8ahl5te4tg91'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建Ray集群', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"body\\": {\\n \\"applicationId\\": \\"spark-339f844005b6404c95f9f7c7a13b****\\",\\n \\"success\\": true\\n }\\n}","type":"json"}]', - 'title' => '取消Kyuubi提交的Spark应用', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"clusterId\\": \\"ray-k7nm8ahl5te4tg91\\"\\n}","type":"json"}]', ], - 'DeleteKyuubiToken' => [ - 'summary' => '删除Kyuubi Gateway认证Token。', - 'path' => '/api/v1/workspaces/{workspaceId}/kyuubiService/{kyuubiServiceId}/token/{tokenId}', - 'methods' => [ - 'delete', - ], - 'schemes' => [ - 'https', - ], + 'CreateSessionCluster' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/sessionClusters', + 'methods' => ['post'], + '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' => 'delete', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'abilityTreeCode' => '202902', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], - ], - [ - 'name' => 'kyuubiServiceId', - 'in' => 'path', + 'name' => 'body', + 'in' => 'body', + 'allowEmptyValue' => false, + 'style' => 'json', 'schema' => [ - 'description' => 'Kyuubi服务ID。', - 'type' => 'string', + 'description' => '请求结构体', + 'type' => 'object', + 'properties' => [ + 'queueName' => ['description' => '队列名称', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'autoStartConfiguration' => [ + 'description' => '是否开启自动启动。'."\n" + .'- true:是。'."\n" + .'- false:否。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => '是否开启自动启动。'."\n" + .'- true:是。'."\n" + .'- false:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + 'required' => false, + ], + 'autoStopConfiguration' => [ + 'description' => '自动终止配置。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => '是否允许自动终止。'."\n" + .'- true:是。'."\n" + .'- false:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'idleTimeoutMinutes' => ['description' => '会话空闲指定分钟数后自动终止。', 'type' => 'integer', 'required' => false, 'example' => '60'], + ], + 'required' => false, + ], + 'applicationConfigs' => [ + 'description' => 'Spark应用配置。', + 'type' => 'array', + 'items' => [ + 'description' => 'Spark应用配置。', + 'type' => 'object', + 'properties' => [ + 'configFileName' => ['description' => '配置文件名。', 'type' => 'string', 'required' => false, 'example' => 'spark-defaults.conf'."\n"], + 'configItemKey' => ['description' => 'Spark Conf键。', 'type' => 'string', 'required' => false, 'example' => 'spark.app.name'], + 'configItemValue' => ['description' => 'Spark Conf值。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + 'required' => false, + ], + 'required' => false, + ], + 'releaseVersion' => ['description' => 'Spark引擎版本号。', 'type' => 'string', 'required' => false, 'example' => 'esr-3.3.1'], + 'name' => ['description' => '任务名称。', 'type' => 'string', 'required' => false, 'example' => 'spark_job_name'], + 'kind' => ['description' => '会话类型。'."\n" + .'- SQL:SQL会话。'."\n" + .'- NOTEBOOK:NOTEBOOK会话。', 'type' => 'string', 'required' => false, 'example' => 'SQL', 'default' => 'SQL'], + 'displayReleaseVersion' => ['description' => '控制台实际展示的版本。', 'type' => 'string', 'required' => false, 'example' => 'esr-3.3.1'."\n"], + 'fusion' => ['description' => '是否开启Fusion引擎加速。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'envId' => ['description' => 'Python环境ID,仅对Notebook Session生效。', 'type' => 'string', 'required' => false, 'example' => 'env-cpv569tlhtgndjl86t40'], + 'publicEndpointEnabled' => ['type' => 'boolean', 'required' => false, 'default' => 'false'], + 'clientToken' => ['type' => 'string', 'required' => false], + ], 'required' => false, - 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****', ], ], [ - 'name' => 'tokenId', + 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'tk-zpi0*****hdv4y', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-790b443d72394bfc'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '请求响应结构体。', + 'title' => '返回数据', + 'description' => '返回数据', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'sessionClusterId' => ['title' => 'Workspace Id。', 'description' => '会话ID。', 'type' => 'string', 'example' => 'w-******'], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '删除Kyuubi Gateway认证Token', - ], - 'UpdateKyuubiToken' => [ - 'summary' => '更新Kyuubi Gateway认证Token。', - 'path' => '/api/v1/workspaces/{workspaceId}/kyuubiService/{kyuubiServiceId}/token/{tokenId}', - 'methods' => [ - 'put', + 'title' => '创建会话', + 'summary' => '创建会话。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateSessionCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sessionClusterId\\": \\"w-******\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'CreateSqlStatement' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceId}/statement', + 'methods' => ['put'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'write', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'update', + 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'abilityTreeCode' => '224750', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', + 'schema' => ['title' => 'A short description of struct', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-26ca1703f6d****'], + ], + [ + 'name' => 'body', + 'in' => 'body', + 'style' => 'flat', 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', + 'description' => '创建SQL查询请求体。', + 'type' => 'object', + 'properties' => [ + 'codeContent' => ['description' => 'SQL代码。允许传入一条或多条SQL语句进行执行。', 'type' => 'string', 'required' => false, 'example' => 'SHOW TABLES'], + 'defaultDatabase' => ['description' => '默认数据库名。', 'type' => 'string', 'required' => false, 'example' => 'default'], + 'limit' => ['description' => 'limit值,取值范围:1~10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000', 'default' => '1000'], + 'defaultCatalog' => ['description' => '默认DLF Catalog ID。', 'type' => 'string', 'required' => false, 'example' => 'default_catalog'], + 'sqlComputeId' => ['description' => 'SQL会话ID。需要在EMR Serverless Spark工作空间的会话管理模块内创建。', 'type' => 'string', 'required' => false, 'example' => 'sc-dfahdfjafhajd****'], + 'taskBizId' => ['type' => 'string'], + ], 'required' => false, - 'example' => 'w-d2d82aa09155****'."\n", ], ], [ - 'name' => 'kyuubiServiceId', - 'in' => 'path', + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Kyuubi服务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'."\n", + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'data' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'statementId' => ['description' => '交互式查询ID。', 'type' => 'string', 'example' => 'st-1231dfafadfa***'], + ], + ], + 'requestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + ], ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '创建SQL查询', + 'summary' => '创建SQL查询。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'tokenId', - 'in' => 'path', - 'schema' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'tk-zpi0*****hdv4y'."\n", + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateSqlStatement', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"data\\": {\\n \\"statementId\\": \\"st-1231dfafadfa***\\"\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'CreateWorkspace' => [ + 'path' => '/api/v1/workspaces', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '191902', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + ], + 'parameters' => [ [ 'name' => 'body', 'in' => 'body', + 'allowEmptyValue' => false, 'style' => 'json', 'schema' => [ - 'description' => '请求结构体。', + 'description' => '请求结构体', 'type' => 'object', 'properties' => [ - 'name' => [ - 'description' => 'Token名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'dev_serverless_spark'."\n", - ], - 'token' => [ - 'description' => '长度为32,仅包含小写字母和数字的Token内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'rjy7ejhej9gkzjjuun49jnx2xk8if2cu', - ], - 'autoExpireConfiguration' => [ - 'description' => '自动过期配置结构体。', + 'workspaceName' => ['description' => '工作空间名称。', 'type' => 'string', 'required' => false, 'example' => 'default'], + 'resourceSpec' => [ + 'description' => '资源规格。', 'type' => 'object', 'properties' => [ - 'enable' => [ - 'description' => '是否自动过期。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'expireDays' => [ - 'description' => '过期时间(单位:天)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '365', - ], + 'cu' => ['description' => '工作空间资源上限。', 'type' => 'string', 'required' => false, 'example' => '1000'], + 'gpu' => ['type' => 'integer', 'format' => 'int32', 'example' => '100'], ], 'required' => false, ], - 'memberArns' => [ - 'description' => '授权用户arn列表。', + 'ossBucket' => ['description' => 'OSS Bucket。', 'type' => 'string', 'required' => false, 'example' => 'oss://test-bucket/'], + 'dlfCatalogId' => ['description' => 'DLF Catalog信息。', 'type' => 'string', 'required' => false, 'example' => '123xxxxx'], + 'paymentType' => ['description' => '实例的付费模式。可选值:'."\n" + ."\n" + .'- PayAsYouGo:按量付费'."\n" + .'- Pre:包年包月', 'type' => 'string', 'required' => false, 'example' => 'PayAsYouGo'], + 'paymentDurationUnit' => ['description' => '订购周期。', 'type' => 'string', 'required' => false, 'example' => '1000'], + 'duration' => ['description' => '订购周期数量(pre付费类型必填)。', 'type' => 'string', 'required' => false, 'example' => '12452'], + 'autoRenew' => ['description' => '是否自动续费(pre付费类型必填)。', 'type' => 'string', 'required' => false, 'example' => 'false'], + 'autoRenewPeriod' => ['description' => '自动续费时长(pre付费类型必填)。', 'type' => 'string', 'required' => false, 'example' => '100'], + 'autoRenewPeriodUnit' => ['description' => '自动续费周期(pre付费类型必填)。', 'type' => 'string', 'required' => false, 'example' => 'month'], + 'clientToken' => ['description' => '幂等校验TOKEN。', 'type' => 'string', 'required' => false, 'example' => '8e6aae2810c8f67229ca70bb31cd****'], + 'ramRoleName' => ['description' => 'Spark作业执行角色名。', 'type' => 'string', 'required' => false, 'example' => 'AliyunEMRSparkJobRunDefaultRole'], + 'autoStartSessionCluster' => ['description' => '是否自动启动Session。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'releaseType' => ['description' => '版本类型。', 'type' => 'string', 'required' => false, 'example' => 'pro'], + 'dlfType' => ['description' => '绑定dlf类型。', 'type' => 'string', 'required' => false, 'example' => 'dlf1.0', 'default' => '1.0'], + 'tag' => [ + 'description' => '标签列表。', 'type' => 'array', 'items' => [ - 'description' => '授权用户arn。', - 'type' => 'string', + 'description' => '标签。', + 'type' => 'object', + 'properties' => [ + 'key' => ['description' => '标签键。', 'type' => 'string', 'required' => false, 'example' => 'key'], + 'value' => ['description' => '标签值。', 'type' => 'string', 'required' => false, 'example' => 'value'], + ], 'required' => false, - 'example' => 'acs:emr::w-d2d82aa09155****:member/195****7311', ], 'required' => false, + 'maxItems' => 20, + ], + 'resourceGroupId' => ['description' => '资源组 ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmwpi66knkxny'], + 'gpuSpec' => [ + 'type' => 'array', + 'items' => ['type' => 'string', 'example' => 'ecs.gn7i-c8g1.2xlarge'], ], ], 'required' => false, @@ -3281,107 +2159,137 @@ [ 'name' => 'regionId', 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + 'title' => '返回数据', + 'description' => '返回数据', + 'type' => 'object', + 'properties' => [ + 'workspaceId' => ['title' => 'Workspace Id。', 'description' => '工作空间ID。', 'type' => 'string', 'example' => 'w-******'], + 'operationId' => ['title' => 'Operation Id。', 'description' => '操作流程ID。', 'type' => 'string', 'example' => 'op-******'], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + ], ], ], ], + 'title' => '创建工作空间', + 'summary' => '创建工作空间。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateWorkspace', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"workspaceId\\": \\"w-******\\",\\n \\"operationId\\": \\"op-******\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'DeleteKyuubiService' => [ + 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}', + 'methods' => ['delete'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], + ], + [ + 'name' => 'kyuubiServiceId', + 'in' => 'path', + 'schema' => ['description' => 'Kyuubi 服务 ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '请求响应结构体。', + 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n", - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求 ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'data' => ['description' => '返回结果。', 'type' => 'any', 'example' => 'true'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除Kyuubi Gateway', + 'summary' => '删除Kyuubi Gateway。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\"\\n}","type":"json"}]', - 'title' => '更新Kyuubi Gateway认证Token', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": \\"true\\"\\n}","type":"json"}]', ], - 'GetKyuubiToken' => [ - 'summary' => '获取Kyuubi Gateway认证Token。', + 'DeleteKyuubiToken' => [ 'path' => '/api/v1/workspaces/{workspaceId}/kyuubiService/{kyuubiServiceId}/token/{tokenId}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['delete'], + 'schemes' => ['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', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], [ 'name' => 'kyuubiServiceId', 'in' => 'path', - 'schema' => [ - 'description' => 'Kyuubi服务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****', - ], + 'schema' => ['description' => 'Kyuubi服务ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'], ], [ 'name' => 'tokenId', 'in' => 'path', - 'schema' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'tk-zpi0*****hdv4y', - ], + 'schema' => ['description' => 'Token ID。', 'type' => 'string', 'required' => false, 'example' => 'tk-zpi0*****hdv4y'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -3391,194 +2299,287 @@ 'description' => '请求响应结构体。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'data' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'tokenId' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'example' => 'tk-zpi0*****hdv4y', - ], - 'name' => [ - 'description' => 'Token名称。', - 'type' => 'string', - 'example' => 'dev_serverless_spark'."\n", - ], - 'token' => [ - 'description' => '遮蔽处理的Token。', - 'type' => 'string', - 'example' => 'dxj**********wfg'."\n", - ], - 'createdBy' => [ - 'description' => '创建者名称。', - 'type' => 'string', - 'example' => 'admin', - ], - 'createTime' => [ - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456094000', - ], - 'expireTime' => [ - 'description' => '过期时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1753932319390', - ], - 'lastUsedTime' => [ - 'description' => '上次使用时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456098000', - ], - 'autoExpireConfiguration' => [ - 'description' => '自动过期配置结构体。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => '是否自动过期。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'expireDays' => [ - 'description' => '过期时间(单位:天)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '365', - ], - ], - ], - 'memberArns' => [ - 'description' => '授权用户arn列表。', - 'type' => 'array', - 'items' => [ - 'description' => '授权用户arn。', - 'type' => 'string', - 'example' => 'acs:emr::w-d2d82aa09155****:member/195****7311', - ], - ], - ], - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除Kyuubi Gateway认证Token', + 'summary' => '删除Kyuubi Gateway认证Token。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"tokenId\\": \\"tk-zpi0*****hdv4y\\",\\n \\"name\\": \\"dev_serverless_spark\\\\n\\",\\n \\"token\\": \\"dxj**********wfg\\\\n\\",\\n \\"createdBy\\": \\"admin\\",\\n \\"createTime\\": 1749456094000,\\n \\"expireTime\\": 1753932319390,\\n \\"lastUsedTime\\": 1749456098000,\\n \\"autoExpireConfiguration\\": {\\n \\"enable\\": true,\\n \\"expireDays\\": 365\\n },\\n \\"memberArns\\": [\\n \\"acs:emr::w-d2d82aa09155****:member/195****7311\\"\\n ]\\n }\\n}","type":"json"}]', - 'title' => '获取Kyuubi Gateway认证Token', + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:DeleteKyuubiToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', ], - 'CreateKyuubiToken' => [ - 'summary' => '创建Kyuubi Gateway认证Token。', - 'path' => '/api/v1/workspaces/{workspaceId}/kyuubiService/{kyuubiServiceId}/token', - 'methods' => [ - 'post', + 'DeleteLivyCompute' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}', + 'methods' => ['delete'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], ], - 'schemes' => [ - 'https', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'abilityTreeCode' => '222245', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], + 'parameters' => [ + [ + 'name' => 'workspaceBizId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], + ], + [ + 'name' => 'livyComputeId', + 'in' => 'path', + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-i8xogcdfa4fk3yn1'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], + ], + ], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除Livy Gateway', + 'summary' => '删除Livy Gateway。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:DeleteLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', + ], + 'DeleteLivyComputeToken' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/token/{tokenId}', + 'methods' => ['delete'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'abilityTreeCode' => '222309', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], - 'produces' => [ - 'application/json', + 'parameters' => [ + [ + 'name' => 'workspaceBizId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], + ], + [ + 'name' => 'livyComputeId', + 'in' => 'path', + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-zm4dzdiubu73w2yx'], + ], + [ + 'name' => 'tokenId', + 'in' => 'path', + 'schema' => ['description' => 'Token ID。', 'type' => 'string', 'required' => false, 'example' => 'lctk-xxxxxxxxxx'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], + ], + ], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除Livy Gateway的Token', + 'summary' => '删除Livy Gateway的Token。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:DeleteLivyComputeToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', + ], + 'DeleteRayCluster' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster/{clusterId}', + 'methods' => ['delete'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****'."\n", - ], + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-26ca1703f6d11'], ], [ - 'name' => 'kyuubiServiceId', + 'name' => 'clusterId', 'in' => 'path', + 'schema' => ['title' => 'Ray集群ID。', 'description' => 'Ray集群ID。', 'type' => 'string', 'required' => false, 'example' => 'ray-k7nm8ahl5te4tg91'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'Kyuubi服务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'."\n", + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + ], ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '删除Ray集群', + 'summary' => '删除Ray集群。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\"\\n}","type":"json"}]', + ], + 'EditWorkspaceQueue' => [ + 'summary' => '编辑工作空间队列。', + 'path' => '/api/v1/workspaces/queues/action/edit', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '192830', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ [ 'name' => 'body', 'in' => 'body', + 'allowEmptyValue' => false, 'style' => 'json', 'schema' => [ - 'description' => '请求结构体。', + 'description' => '请求结构体', 'type' => 'object', 'properties' => [ - 'name' => [ - 'description' => 'Token名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'dev_serverless_spark', - ], - 'token' => [ - 'description' => '长度为32,仅包含小写字母和数字的Token内容。', - 'type' => 'string', - 'required' => false, - 'example' => 'rjy7ejhej9gkzjjuun49jnx2xk8if2cu', - ], - 'autoExpireConfiguration' => [ - 'description' => '自动过期配置结构体。', + 'workspaceId' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-975bcfda9625****'], + 'resourceSpec' => [ + 'description' => '资源规格。', 'type' => 'object', 'properties' => [ - 'enable' => [ - 'description' => '是否自动过期。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'expireDays' => [ - 'description' => '过期时间(单位:天)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '365', - ], + 'cu' => ['description' => '工作空间队列资源上限。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1000'], + 'maxCu' => ['title' => '最大cu数', 'type' => 'integer', 'format' => 'int64', 'example' => '0.5'], + 'gpu' => ['title' => 'gpu卡数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], ], 'required' => false, ], - 'memberArns' => [ - 'description' => '授权用户arn列表。', + 'workspaceQueueName' => ['description' => '工作空间队列名称。', 'type' => 'string', 'required' => false, 'example' => 'dev_queue'], + 'environments' => [ + 'description' => '队列环境类型', 'type' => 'array', - 'items' => [ - 'description' => '授权用户arn。', - 'type' => 'string', - 'required' => false, - 'example' => 'acs:emr::w-d2d82aa09155****:member/195****7311'."\n", - ], + 'items' => ['description' => '队列环境类型', 'type' => 'string', 'required' => false, 'example' => 'prod'], 'required' => false, ], + 'gpuSpec' => [ + 'title' => 'gpu机型列表。', + 'type' => 'array', + 'items' => ['title' => 'gpu机型。', 'type' => 'string', 'example' => 'ecs.gn7i-c8g1.2xlarge'], + ], ], 'required' => false, ], @@ -3586,657 +2587,368 @@ [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou'."\n", - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '请求响应结构体。', + 'title' => '返回数据', + 'description' => '返回数据', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'data' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'tokenId' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'example' => 'tk-zpi0*****hdv4y'."\n", - ], - ], - ], + 'RequestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"tokenId\\": \\"tk-zpi0*****hdv4y\\\\n\\"\\n }\\n}","type":"json"}]', - 'title' => '创建Kyuubi Gateway认证Token', - ], - 'ListKyuubiToken' => [ - 'summary' => '列出KyuubiServer认证Token。', - 'path' => '/api/v1/workspaces/{workspaceId}/kyuubiService/{kyuubiServiceId}/token', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '编辑工作空间队列', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:EditWorkspaceQueue', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'GenerateTaskCodes' => [ + 'summary' => '上线工作流及其调度', + 'path' => '/dolphinscheduler/projects/{bizId}/task-definition/gen-task-codes', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'read', + 'operationType' => 'readAndWrite', 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], - ], + 'systemTags' => ['operationType' => 'none'], 'parameters' => [ [ - 'name' => 'workspaceId', + 'name' => 'bizId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d8********'."\n"], ], [ - 'name' => 'kyuubiServiceId', - 'in' => 'path', - 'schema' => [ - 'description' => 'Kyuubi服务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****', - ], + 'name' => 'genNum', + 'in' => 'query', + 'schema' => ['description' => '生成数量。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + [ + 'name' => 'productNamespace', + 'in' => 'query', + 'schema' => ['description' => '产品命名空间。', 'type' => 'string', 'required' => true, 'example' => 'SS'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '请求响应结构体。', + 'description' => '响应结构体。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求错误码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000000'], + 'msg' => ['description' => '请求 code 对应的详细描述信息。', 'type' => 'string', 'example' => 'No permission for resource action'], + 'success' => ['description' => '请求是否成功。', 'type' => 'boolean', 'example' => 'true'], + 'failed' => ['description' => '请求是否失败。', 'type' => 'boolean', 'example' => 'false'], 'data' => [ 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'tokens' => [ - 'description' => 'Token列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Token记录。', - 'type' => 'object', - 'properties' => [ - 'tokenId' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'example' => 'tk-zpi0*****hdv4y', - ], - 'name' => [ - 'description' => 'Token名称。', - 'type' => 'string', - 'example' => 'dev_serverless_spark', - ], - 'token' => [ - 'description' => '遮蔽处理的Token。', - 'type' => 'string', - 'example' => 'dxj**********wfg', - ], - 'createdBy' => [ - 'description' => '创建者名称。', - 'type' => 'string', - 'example' => 'admin', - ], - 'createTime' => [ - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1755496031000', - ], - 'expireTime' => [ - 'description' => '过期时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1787033891000', - ], - 'lastUsedTime' => [ - 'description' => '上次使用时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1760366232121', - ], - 'memberArns' => [ - 'description' => '授权用户arn列表。', - 'type' => 'array', - 'items' => [ - 'description' => '授权用户arn。', - 'type' => 'string', - 'example' => 'acs:emr::w-d2d82aa09155****:member/195****7311', - ], - ], - 'accountNames' => [ - 'description' => '授权用户RAM账号名列表。', - 'type' => 'array', - 'items' => [ - 'description' => '授权用户RAM账号名。', - 'type' => 'string', - 'example' => 'dev-serverless-spark', - ], - ], - ], - ], - ], - ], + 'type' => 'array', + 'items' => ['description' => '自动生成的工作流节点定义随机编码。', 'type' => 'integer', 'format' => 'int64', 'example' => '1263424***'], ], + 'httpStatusCode' => ['description' => 'HTTP状态编码', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '生成工作流节点定义编码', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"tokens\\": [\\n {\\n \\"tokenId\\": \\"tk-zpi0*****hdv4y\\",\\n \\"name\\": \\"dev_serverless_spark\\",\\n \\"token\\": \\"dxj**********wfg\\",\\n \\"createdBy\\": \\"admin\\",\\n \\"createTime\\": 1755496031000,\\n \\"expireTime\\": 1787033891000,\\n \\"lastUsedTime\\": 1760366232121,\\n \\"memberArns\\": [\\n \\"acs:emr::w-d2d82aa09155****:member/195****7311\\"\\n ],\\n \\"accountNames\\": [\\n \\"dev-serverless-spark\\"\\n ]\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '列出Kyuubi Gateway认证Token', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": 1000000,\\n \\"msg\\": \\"No permission for resource action\\",\\n \\"success\\": true,\\n \\"failed\\": false,\\n \\"data\\": [\\n 0\\n ],\\n \\"httpStatusCode\\": 200\\n}","type":"json"}]', ], - 'ListKyuubiServices' => [ - 'summary' => '列出Kyuubi Gateway。', - 'path' => '/api/v1/kyuubi/{workspaceId}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'GetAICenterState' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/aicenter', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'abilityTreeNodes' => ['FEATUREemapreduceLNUXSK'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回结构体。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'state' => [ + 'description' => 'AI中心状态:'."\n" + .'* active'."\n" + .'* inactive'."\n" + .'* activating', 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'data' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'kyuubiServices' => [ - 'description' => 'KyuubiServer列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'KyuubiServer记录。', - 'type' => 'object', - 'properties' => [ - 'kyuubiConfigs' => [ - 'description' => 'KyuubiServer配置。', - 'type' => 'string', - 'example' => 'kyuubi.conf.key=value1'."\n" - .'kyuubi.conf.key1=value2', - ], - 'sparkConfigs' => [ - 'description' => 'KyuubiServer启动Spark Application默认配置。', - 'type' => 'string', - 'example' => 'spark.conf.key=value1'."\n" - .'spark.conf.key1=value2', - ], - 'state' => [ - 'description' => 'KyuubiServer状态。', - 'type' => 'string', - 'example' => 'Running', - ], - 'name' => [ - 'description' => 'KyuubiServer名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'queue' => [ - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'dev_queue', - ], - 'createTime' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2025-03-11T08:21:58Z', - ], - 'startTime' => [ - 'description' => 'KyuubiServer最近启动时间。', - 'type' => 'string', - 'example' => '2024-11-23 09:22:00', - ], - 'creator' => [ - 'description' => '创建用户UID。', - 'type' => 'string', - 'example' => '103*******', - ], - 'kyuubiServiceId' => [ - 'description' => 'KyuubiServer ID。', - 'type' => 'string', - 'example' => 'kb-070104e7631242448d12a1377c309f30', - ], - 'innerEndpoint' => [ - 'description' => '内网域名。', - 'type' => 'string', - 'example' => 'kyuubi-cn-hangzhou-internal.spark.emr.aliyuncs.com', - ], - 'publicEndpoint' => [ - 'description' => '公网域名。', - 'type' => 'string', - 'example' => 'emr-spark-kyuubi-gateway-cn-hangzhou.aliyuncs.com', - ], - 'releaseVersion' => [ - 'description' => 'Spark引擎版本号。', - 'type' => 'string', - 'example' => 'esr-4.2.0 (Spark 3.5.2, Scala 2.12)'."\n", - ], - 'computeInstance' => [ - 'description' => 'KyuubiServer实例规格。', - 'type' => 'string', - 'example' => '4C16G', - ], - 'replica' => [ - 'description' => 'KyuubiServer副本数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'kyuubiReleaseVersion' => [ - 'description' => 'KyuubiServer版本。', - 'type' => 'string', - 'example' => '1.9.2-0.0.1', - ], - ], - ], - ], - ], + 'example' => 'Running', + 'enum' => ['active', 'inactive', 'activating'], ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取AI中心状态', + 'summary' => '获取AI中心状态', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"kyuubiServices\\": [\\n {\\n \\"kyuubiConfigs\\": \\"kyuubi.conf.key=value1\\\\nkyuubi.conf.key1=value2\\",\\n \\"sparkConfigs\\": \\"spark.conf.key=value1\\\\nspark.conf.key1=value2\\",\\n \\"state\\": \\"Running\\",\\n \\"name\\": \\"test\\",\\n \\"queue\\": \\"dev_queue\\",\\n \\"createTime\\": \\"2025-03-11T08:21:58Z\\",\\n \\"startTime\\": \\"2024-11-23 09:22:00\\",\\n \\"creator\\": \\"103*******\\",\\n \\"kyuubiServiceId\\": \\"kb-070104e7631242448d12a1377c309f30\\",\\n \\"innerEndpoint\\": \\"kyuubi-cn-hangzhou-internal.spark.emr.aliyuncs.com\\",\\n \\"publicEndpoint\\": \\"emr-spark-kyuubi-gateway-cn-hangzhou.aliyuncs.com\\",\\n \\"releaseVersion\\": \\"esr-4.2.0 (Spark 3.5.2, Scala 2.12)\\\\n\\",\\n \\"computeInstance\\": \\"4C16G\\",\\n \\"replica\\": 3,\\n \\"kyuubiReleaseVersion\\": \\"1.9.2-0.0.1\\"\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '列出Kyuubi Gateway信息', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"state\\": \\"Running\\"\\n}","type":"json"}]', ], - 'CreateKyuubiService' => [ - 'summary' => '创建Kyuubi Gateway。', - 'path' => '/api/v1/kyuubi/{workspaceId}', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'GetCacheCluster' => [ + 'path' => '/api/v1/cache/{cacheClusterId}', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'write', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'workspaceId', + 'name' => 'cacheClusterId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => 'Cache集群ID。', 'type' => 'string', 'required' => false, 'example' => 'spc-xxxxxxx'], ], [ - 'name' => 'body', - 'in' => 'body', - 'style' => 'json', + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '请求结构体。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'kyuubiConfigs' => [ - 'description' => 'Kyuubi Service 配置。', - 'type' => 'string', - 'required' => false, - 'example' => '[{\\"key\\":\\"kyuubi.engine.share.level\\",\\"value\\":\\"USER\\"}]', - ], - 'sparkConfigs' => [ - 'description' => 'Spark配置。', - 'type' => 'string', - 'required' => false, - 'example' => '[{\\"key\\":\\"spark.app.name\\",\\"value\\":\\"test\\"}]', - ], - 'name' => [ - 'description' => 'Kyuubi Service 名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'dev_serverless_spark', - ], - 'queue' => [ - 'description' => 'Kyuubi Service 运行队列。', - 'type' => 'string', - 'required' => false, - 'example' => 'dev_queue', - ], - 'computeInstance' => [ - 'description' => 'Kyuubi Service 规格。', - 'type' => 'string', - 'required' => false, - 'example' => '2c8g', - ], - 'releaseVersion' => [ - 'description' => 'Spark 引擎版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-4.6.0 (Spark 3.5.2, Scala 2.12)', - ], - 'publicEndpointEnabled' => [ - 'description' => '是否开启公网访问。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], - 'replica' => [ - 'description' => '开启高可用副本数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '3', - ], - 'kyuubiReleaseVersion' => [ - 'description' => 'Kyuubi Service 引擎版本。', - 'type' => 'string', - 'required' => false, - 'example' => '1.9.2-0.0.2', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'cacheClusters' => ['description' => 'Cache集群列表', '$ref' => '#/components/schemas/CacheCluster'], ], - 'required' => false, ], ], ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取Cache集群详情', + 'summary' => '获取Cache集群详情', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"cacheClusters\\": {\\n \\"clusterId\\": \\"\\",\\n \\"name\\": \\"\\",\\n \\"state\\": \\"\\",\\n \\"creator\\": \\"\\",\\n \\"modifier\\": \\"\\",\\n \\"paymentType\\": \\"\\",\\n \\"resourceSpec\\": {\\n \\"bandWidth\\": 0,\\n \\"storage\\": 0,\\n \\"ha\\": true\\n },\\n \\"regionId\\": \\"\\",\\n \\"usedResourceSpec\\": {\\n \\"bandWidth\\": 0,\\n \\"storage\\": 0\\n },\\n \\"gmtCreated\\": 0,\\n \\"gmtModified\\": 0,\\n \\"configuration\\": \\"\\",\\n \\"resourceGroupId\\": \\"\\",\\n \\"cacheClusterId\\": \\"\\",\\n \\"createTime\\": \\"\\",\\n \\"cacheClusterName\\": \\"\\",\\n \\"version\\": \\"\\",\\n \\"configurations\\": [\\n {\\n \\"name\\": \\"cacheset.xml\\",\\n \\"content\\": \\"\\"\\n }\\n ],\\n \\"bindedWorkspaces\\": [\\n \\"\\"\\n ],\\n \\"cachesets\\": [\\n {\\n \\"name\\": \\"\\",\\n \\"path\\": \\"\\"\\n }\\n ],\\n \\"tags\\": [\\n {\\n \\"key\\": \\"\\",\\n \\"value\\": \\"\\"\\n }\\n ],\\n \\"tables\\": [\\n {\\n \\"catalogId\\": \\"\\",\\n \\"catalogProvider\\": \\"\\",\\n \\"database\\": \\"\\",\\n \\"table\\": \\"\\",\\n \\"workspaceId\\": \\"\\"\\n }\\n ],\\n \\"extra\\": \\"\\"\\n }\\n}","type":"json"}]', + ], + 'GetCuHours' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/metric/cuHours/{queue}', + 'methods' => ['get'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduceT8XN05'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-dsa23*****'], + ], + [ + 'name' => 'queue', + 'in' => 'path', + 'schema' => ['description' => '队列名称。', 'type' => 'string', 'required' => true, 'example' => 'root_queue'], + ], + [ + 'name' => 'startTime', + 'in' => 'query', + 'schema' => ['description' => '查询时间范围起点。', 'type' => 'string', 'required' => true, 'example' => '2024-01-01 00:00:00'], + ], + [ + 'name' => 'endTime', + 'in' => 'query', + 'schema' => ['description' => '查询时间范围终点。', 'type' => 'string', 'required' => true, 'example' => '2024-01-08 00:00:00'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '响应结构体。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求 ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n", - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], 'data' => [ 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'kyuubiServiceId' => [ - 'description' => 'Kyuubi Service ID。', - 'type' => 'string', - 'example' => 'kb-f99935b350fb4****7ef700b8b4197a3', - ], + 'cuHours' => ['description' => '查询周期内对应查询队列所消耗的CU时(该值为预估值,最终以账单为准)。', 'type' => 'string', 'example' => '{2025-01-09 00:00:00=2.033333, 2025-01-09 01:00:00=2.033333, 2025-01-09 02:00:00=2.033333, 2025-01-09 03:00:00=2.033333, 2025-01-09 04:00:00=2.033333, 2025-01-09 05:00:00=2.033333, 2025-01-09 06:00:00=2.033333, 2025-01-09 07:00:00=2.033333, 2025-01-09 08:00:00=2.033333, 2025-01-09 09:00:00=1.933333, 2025-01-09 10:00:00=2.133333, 2025-01-09 11:00:00=3.100000, 2025-01-09 12:00:00=2.900000}'], ], + 'example' => '{'."\n" + .' "cuHours": "{2025-01-09 00:00:00=2.033333, 2025-01-09 01:00:00=2.033333, 2025-01-09 02:00:00=2.033333, 2025-01-09 03:00:00=2.033333, 2025-01-09 04:00:00=2.033333, 2025-01-09 05:00:00=2.033333, 2025-01-09 06:00:00=2.033333, 2025-01-09 07:00:00=2.033333, 2025-01-09 08:00:00=2.033333, 2025-01-09 09:00:00=1.933333, 2025-01-09 10:00:00=2.133333, 2025-01-09 11:00:00=3.100000, 2025-01-09 12:00:00=2.900000}"'."\n" + .'}', ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\",\\n \\"data\\": {\\n \\"kyuubiServiceId\\": \\"kb-f99935b350fb4****7ef700b8b4197a3\\"\\n }\\n}","type":"json"}]', - 'title' => '创建 Kyuubi Gateway', - ], - 'GetKyuubiService' => [ - 'summary' => '获取 Kyuubi Gateway。', - 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取工作空间队列CU时', + 'summary' => 'GetCuHours', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetCuHours', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"cuHours\\": \\"{2025-01-09 00:00:00=2.033333, 2025-01-09 01:00:00=2.033333, 2025-01-09 02:00:00=2.033333, 2025-01-09 03:00:00=2.033333, 2025-01-09 04:00:00=2.033333, 2025-01-09 05:00:00=2.033333, 2025-01-09 06:00:00=2.033333, 2025-01-09 07:00:00=2.033333, 2025-01-09 08:00:00=2.033333, 2025-01-09 09:00:00=1.933333, 2025-01-09 10:00:00=2.133333, 2025-01-09 11:00:00=3.100000, 2025-01-09 12:00:00=2.900000}\\"\\n }\\n}","type":"json"}]', + ], + 'GetDoctorApplication' => [ + 'summary' => 'get doctor application for serverless spark', + 'path' => '/api/v1/workspaces/{workspaceId}/runs/{runId}/action/getDoctorApplication', + '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' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'abilityTreeCode' => '193399', + 'abilityTreeNodes' => ['FEATUREemapreduce60H0RM'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-cea2c314a****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], [ - 'name' => 'kyuubiServiceId', + 'name' => 'runId', 'in' => 'path', - 'schema' => [ - 'description' => 'Kyuubi 服务 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-415ddee******f1d1eac0388b86', - ], + 'schema' => ['description' => '运行任务id。', 'type' => 'string', 'required' => false, 'example' => 'jr-d2d82aa09155****'], + ], + [ + 'name' => 'queryTime', + 'in' => 'query', + 'schema' => ['description' => '查询时间。', 'type' => 'string', 'required' => false, 'example' => '2024-01-01'], + ], + [ + 'name' => 'locale', + 'in' => 'query', + 'schema' => ['description' => '诊断信息语言。', 'type' => 'string', 'required' => false, 'example' => 'zh-CN', 'default' => 'zh-CN'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '响应结构体。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求 ID。', - 'type' => 'string', - 'example' => '8CE06D75-E6A2-505D-9B4B-31DEE3D98A04', - ], 'data' => [ 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'kyuubiConfigs' => [ - 'description' => 'Kyuubi Service 配置。', - 'type' => 'string', - 'example' => '[]', - ], - 'sparkConfigs' => [ - 'description' => 'Spark 配置。', - 'type' => 'string', - 'example' => '[]', - ], - 'state' => [ - 'description' => 'Kyuubi Service 状态。', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'name' => [ - 'description' => 'Kyuubi Service 名称。', - 'type' => 'string', - 'example' => 'dev_serverless_spark'."\n", - ], - 'queue' => [ - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'dev_queue', - ], - 'createTime' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '1749456094000', - ], - 'startTime' => [ - 'description' => '启动时间。', - 'type' => 'string', - 'example' => '1749456094000', - ], - 'creator' => [ - 'description' => '创建者UID。', - 'type' => 'string', - 'example' => '150978934701****', - ], - 'kyuubiServiceId' => [ - 'description' => 'Kyuubi Service ID。', - 'type' => 'string', - 'example' => 'kb-4e209b04588***95f04ad3538ae4', - ], - 'innerEndpoint' => [ - 'description' => '内网域名。', - 'type' => 'string', - 'example' => 'kyuubi-cn-beijing-internal.spark.emr.aliyuncs.com', - ], - 'publicEndpoint' => [ - 'description' => '公网域名。', - 'type' => 'string', - 'example' => 'emr-spark-kyuubi-gateway-cn-beijing.aliyuncs.com', - ], - 'releaseVersion' => [ - 'description' => 'Spark 引擎版本。', - 'type' => 'string', - 'example' => 'esr-4.6.0 (Spark 3.5.2, Scala 2.12)', - ], - 'computeInstance' => [ - 'description' => 'Kyuubi Service 规格。', - 'type' => 'string', - 'example' => '2c8g', - ], - 'publicEndpointEnabled' => [ - 'description' => '是否开启公网访问。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'replica' => [ - 'description' => '开启高可用副本数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'kyuubiReleaseVersion' => [ - 'description' => 'Kyuubi Service 引擎版本。', - 'type' => 'string', - 'example' => '1.9.2-0.0.2', + 'suggestions' => [ + 'description' => '诊断信息列表。', + 'type' => 'array', + 'items' => ['description' => '诊断信息描述。', 'type' => 'string', 'example' => '正常。'], + 'example' => 'Normal.', ], ], ], @@ -4244,493 +2956,524 @@ ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"8CE06D75-E6A2-505D-9B4B-31DEE3D98A04\\",\\n \\"data\\": {\\n \\"kyuubiConfigs\\": \\"[]\\",\\n \\"sparkConfigs\\": \\"[]\\",\\n \\"state\\": \\"RUNNING\\",\\n \\"name\\": \\"dev_serverless_spark\\\\n\\",\\n \\"queue\\": \\"dev_queue\\",\\n \\"createTime\\": \\"1749456094000\\",\\n \\"startTime\\": \\"1749456094000\\",\\n \\"creator\\": \\"150978934701****\\",\\n \\"kyuubiServiceId\\": \\"kb-4e209b04588***95f04ad3538ae4\\",\\n \\"innerEndpoint\\": \\"kyuubi-cn-beijing-internal.spark.emr.aliyuncs.com\\",\\n \\"publicEndpoint\\": \\"emr-spark-kyuubi-gateway-cn-beijing.aliyuncs.com\\",\\n \\"releaseVersion\\": \\"esr-4.6.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"computeInstance\\": \\"2c8g\\",\\n \\"publicEndpointEnabled\\": true,\\n \\"replica\\": 0,\\n \\"kyuubiReleaseVersion\\": \\"1.9.2-0.0.2\\"\\n }\\n}","type":"json"}]', - 'title' => '获取 Kyuubi Gateway', - ], - 'UpdateKyuubiService' => [ - 'summary' => '更新Kyuubi Gateway。', - 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}', - 'methods' => [ - 'put', + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"data\\": {\\n \\"suggestions\\": [\\n \\"正常。\\"\\n ]\\n }\\n}","type":"json"}]', + 'title' => '获取作业诊断信息', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetDoctorApplication', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetJobRun' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/jobRuns/{jobRunId}', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'abilityTreeCode' => '215794', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d2d82aa09151****'], ], [ - 'name' => 'kyuubiServiceId', + 'name' => 'jobRunId', 'in' => 'path', - 'schema' => [ - 'description' => 'Kyuubi 服务 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '任务实例ID。', 'description' => '任务运行ID。', 'type' => 'string', 'required' => true, 'example' => 'jr-93d98d2f7061****'], ], [ - 'name' => 'body', - 'in' => 'body', - 'style' => 'json', - 'schema' => [ - 'description' => '请求结构体。', - 'type' => 'object', - 'properties' => [ - 'kyuubiConfigs' => [ - 'description' => 'Kyuubi Service配置。', - 'type' => 'string', - 'required' => false, - 'example' => '[]', - ], - 'sparkConfigs' => [ - 'description' => 'Spark 配置。', - 'type' => 'string', - 'required' => false, - 'example' => '[]', - ], - 'name' => [ - 'description' => '名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'dev_serverless_spark'."\n", - ], - 'queue' => [ - 'description' => 'Kyuubi Service 运行队列。', - 'type' => 'string', - 'required' => false, - 'example' => 'dev_queue', - ], - 'releaseVersion' => [ - 'description' => 'Spark引擎版本号。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-4.6.0 (Spark 3.5.2, Scala 2.12)', - ], - 'computeInstance' => [ - 'description' => 'Kyuubi Service 规格。', - 'type' => 'string', - 'required' => false, - 'example' => '2c8g', - ], - 'publicEndpointEnabled' => [ - 'description' => '是否开启公网访问。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'false', - ], - 'replica' => [ - 'description' => '开启高可用副本数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], - 'kyuubiReleaseVersion' => [ - 'description' => 'Kyuubi Service 引擎版本。', - 'type' => 'string', - 'required' => false, - 'example' => '1.9.2-0.0.2', - ], - 'restart' => [ - 'description' => '是否重启。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - 'required' => false, - ], + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '响应结构体。', + 'title' => '返回数据', + 'description' => '返回数据', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求 ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'data' => [ - 'description' => '返回数据。', - 'type' => 'any', - 'example' => 'true', + 'jobRun' => [ + 'description' => '任务详情。', + 'type' => 'object', + 'properties' => [ + 'workspaceId' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'example' => 'w-d2d82aa09155****'], + 'jobRunId' => ['title' => '任务实例ID。', 'description' => '任务运行ID。', 'type' => 'string', 'example' => 'jr-93d98d2f7061****'], + 'name' => ['title' => '作业实例名称。', 'description' => '任务名称。', 'type' => 'string', 'example' => 'jobName'], + 'state' => ['title' => '作业状态。', 'description' => '任务状态。', 'type' => 'string', 'example' => 'Running'], + 'stateChangeReason' => [ + 'description' => '状态变化原因。', + 'type' => 'object', + 'properties' => [ + 'code' => ['description' => '错误码。', 'type' => 'string', 'example' => 'ERR-100000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'connection refused'], + ], + ], + 'submitTime' => ['title' => '作业提交时间。', 'description' => '任务提交时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1684119314000'], + 'endTime' => ['title' => '作业结束时间。', 'description' => '任务结束时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1684122914000'], + 'codeType' => ['title' => '作业代码类型。', 'description' => '任务代码类型。可能值:'."\n" + ."\n" + .'- SQL'."\n" + ."\n" + .'- JAR'."\n" + ."\n" + .'- PYTHON', 'type' => 'string', 'example' => 'SQL'], + 'webUI' => ['title' => '作业web ui。', 'description' => '作业Web UI。', 'type' => 'string', 'example' => 'http://spark-ui'], + 'executionTimeoutSeconds' => ['title' => '运行超时时间。', 'description' => '运行超时时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '3600'], + 'resourceOwnerId' => ['title' => '创建用户Uid。', 'description' => '创建用户UID。', 'type' => 'string', 'example' => '150978934701****'], + 'tags' => [ + 'title' => '标签。', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => ['description' => '标签。', '$ref' => '#/components/schemas/Tag'], + ], + 'log' => ['description' => '运行日志路径。', '$ref' => '#/components/schemas/RunLog'], + 'releaseVersion' => ['description' => '运行任务的Spark引擎版本。', 'type' => 'string', 'example' => 'esr-3.3.1'], + 'resourceQueueId' => ['description' => '运行任务的队列名称。', 'type' => 'string', 'example' => 'root_queue'], + 'jobDriver' => ['description' => 'Spark Driver相关信息。', '$ref' => '#/components/schemas/JobDriver'], + 'configurationOverrides' => [ + 'description' => 'Spark任务配置。', + 'type' => 'object', + 'properties' => [ + 'configurations' => [ + 'description' => '配置列表。', + 'type' => 'array', + 'items' => ['description' => '配置信息。', '$ref' => '#/components/schemas/Configuration'], + ], + ], + ], + 'displayReleaseVersion' => ['description' => '控制台实际展示的版本。', 'type' => 'string', 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)'], + 'fusion' => ['description' => '是否开启 Fusion 引擎加速。', 'type' => 'boolean', 'example' => 'false'], + 'environmentId' => ['description' => '环境 ID。', 'type' => 'string', 'example' => 'env-cpv569tlhtgndjl8****'], + 'notebookAccessUrl' => ['type' => 'string', 'example' => 'http://workflow-ide-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/spark-notebook-output/w-xxxxxxxxx/xxxxxxx'], + 'priority' => ['type' => 'string', 'example' => '5'], + ], ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '获取Spark任务详情', + 'summary' => '调用GetJobRun获取任务详情。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '更新Kyuubi Gateway', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetJobRun', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"jobRun\\": {\\n \\"workspaceId\\": \\"w-d2d82aa09155****\\",\\n \\"jobRunId\\": \\"jr-93d98d2f7061****\\",\\n \\"name\\": \\"jobName\\",\\n \\"state\\": \\"Running\\",\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"ERR-100000\\",\\n \\"message\\": \\"connection refused\\"\\n },\\n \\"submitTime\\": 1684119314000,\\n \\"endTime\\": 1684122914000,\\n \\"codeType\\": \\"SQL\\",\\n \\"webUI\\": \\"http://spark-ui\\",\\n \\"executionTimeoutSeconds\\": 3600,\\n \\"resourceOwnerId\\": \\"150978934701****\\",\\n \\"tags\\": [\\n {\\n \\"key\\": \\"workflowId\\",\\n \\"value\\": \\"wf-123test\\"\\n }\\n ],\\n \\"log\\": {\\n \\"driverStdOut\\": \\"oss://bucket/path/to/stdout\\",\\n \\"driverStdError\\": \\"oss://bucket/path/to/stderr\\",\\n \\"driverSyslog\\": \\"oss://bucket/path/to/syslog\\",\\n \\"driverStartup\\": \\"oss://bucket/path/to/startup\\"\\n },\\n \\"releaseVersion\\": \\"esr-3.3.1\\",\\n \\"resourceQueueId\\": \\"root_queue\\",\\n \\"jobDriver\\": {\\n \\"sparkSubmit\\": {\\n \\"entryPoint\\": \\"oss://bucket/path/to/entrypoint.jar\\",\\n \\"entryPointArguments\\": [\\n \\"arg1\\"\\n ],\\n \\"sparkSubmitParameters\\": \\"--conf spark.app.name=test\\"\\n }\\n },\\n \\"configurationOverrides\\": {\\n \\"configurations\\": [\\n {\\n \\"configFileName\\": \\"common.conf\\",\\n \\"configItemKey\\": \\"hive.metastore.type\\",\\n \\"configItemValue\\": \\"USER_RDS\\"\\n }\\n ]\\n },\\n \\"displayReleaseVersion\\": \\"esr-4.0.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"fusion\\": false,\\n \\"environmentId\\": \\"env-cpv569tlhtgndjl8****\\",\\n \\"notebookAccessUrl\\": \\"http://workflow-ide-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/spark-notebook-output/w-xxxxxxxxx/xxxxxxx\\",\\n \\"priority\\": \\"5\\"\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', ], - 'DeleteKyuubiService' => [ - 'summary' => '删除Kyuubi Gateway。', + 'GetKyuubiService' => [ 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}', - 'methods' => [ - 'delete', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'write', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-cea2c314a****'], ], [ 'name' => 'kyuubiServiceId', 'in' => 'path', - 'schema' => [ - 'description' => 'Kyuubi 服务 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****', - ], + 'schema' => ['description' => 'Kyuubi 服务 ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-415ddee******f1d1eac0388b86'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '返回结果。', + 'description' => '响应结构体。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求 ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求 ID。', 'type' => 'string', 'example' => '8CE06D75-E6A2-505D-9B4B-31DEE3D98A04'], 'data' => [ 'description' => '返回结果。', - 'type' => 'any', - 'example' => 'true', + 'type' => 'object', + 'properties' => [ + 'kyuubiConfigs' => ['description' => 'Kyuubi Service 配置。', 'type' => 'string', 'example' => '[]'], + 'sparkConfigs' => ['description' => 'Spark 配置。', 'type' => 'string', 'example' => '[]'], + 'state' => ['description' => 'Kyuubi Service 状态。', 'type' => 'string', 'example' => 'RUNNING'], + 'name' => ['description' => 'Kyuubi Service 名称。', 'type' => 'string', 'example' => 'dev_serverless_spark'."\n"], + 'queue' => ['description' => '队列名称。', 'type' => 'string', 'example' => 'dev_queue'], + 'createTime' => ['description' => '创建时间。', 'type' => 'string', 'example' => '1749456094000'], + 'startTime' => ['description' => '启动时间。', 'type' => 'string', 'example' => '1749456094000'], + 'creator' => ['description' => '创建者UID。', 'type' => 'string', 'example' => '150978934701****'], + 'kyuubiServiceId' => ['description' => 'Kyuubi Service ID。', 'type' => 'string', 'example' => 'kb-4e209b04588***95f04ad3538ae4'], + 'innerEndpoint' => ['description' => '内网域名。', 'type' => 'string', 'example' => 'kyuubi-cn-beijing-internal.spark.emr.aliyuncs.com'], + 'publicEndpoint' => ['description' => '公网域名。', 'type' => 'string', 'example' => 'emr-spark-kyuubi-gateway-cn-beijing.aliyuncs.com'], + 'releaseVersion' => ['description' => 'Spark 引擎版本。', 'type' => 'string', 'example' => 'esr-4.6.0 (Spark 3.5.2, Scala 2.12)'], + 'computeInstance' => ['description' => 'Kyuubi Service 规格。', 'type' => 'string', 'example' => '2c8g'], + 'publicEndpointEnabled' => ['description' => '是否开启公网访问。', 'type' => 'boolean', 'example' => 'true'], + 'replica' => ['description' => '开启高可用副本数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'kyuubiReleaseVersion' => ['description' => 'Kyuubi Service 引擎版本。', 'type' => 'string', 'example' => '1.9.2-0.0.2'], + ], ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取 Kyuubi Gateway', + 'summary' => '获取 Kyuubi Gateway。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '删除Kyuubi Gateway', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"8CE06D75-E6A2-505D-9B4B-31DEE3D98A04\\",\\n \\"data\\": {\\n \\"kyuubiConfigs\\": \\"[]\\",\\n \\"sparkConfigs\\": \\"[]\\",\\n \\"state\\": \\"RUNNING\\",\\n \\"name\\": \\"dev_serverless_spark\\\\n\\",\\n \\"queue\\": \\"dev_queue\\",\\n \\"createTime\\": \\"1749456094000\\",\\n \\"startTime\\": \\"1749456094000\\",\\n \\"creator\\": \\"150978934701****\\",\\n \\"kyuubiServiceId\\": \\"kb-4e209b04588***95f04ad3538ae4\\",\\n \\"innerEndpoint\\": \\"kyuubi-cn-beijing-internal.spark.emr.aliyuncs.com\\",\\n \\"publicEndpoint\\": \\"emr-spark-kyuubi-gateway-cn-beijing.aliyuncs.com\\",\\n \\"releaseVersion\\": \\"esr-4.6.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"computeInstance\\": \\"2c8g\\",\\n \\"publicEndpointEnabled\\": true,\\n \\"replica\\": 0,\\n \\"kyuubiReleaseVersion\\": \\"1.9.2-0.0.2\\"\\n }\\n}","type":"json"}]', ], - 'StartKyuubiService' => [ - 'summary' => '启动Kyuubi Gateway。', - 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}/start', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'GetKyuubiToken' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/kyuubiService/{kyuubiServiceId}/token/{tokenId}', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'write', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', + 'operationType' => 'get', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-cea2c314a****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], [ 'name' => 'kyuubiServiceId', 'in' => 'path', - 'schema' => [ - 'description' => 'Kyuubi 服务 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-415ddee******f1d1eac0388b86', - ], + 'schema' => ['description' => 'Kyuubi服务ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'], + ], + [ + 'name' => 'tokenId', + 'in' => 'path', + 'schema' => ['description' => 'Token ID。', 'type' => 'string', 'required' => false, 'example' => 'tk-zpi0*****hdv4y'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '响应结构体。', + 'description' => '请求响应结构体。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求 ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], 'data' => [ 'description' => '返回数据。', - 'type' => 'any', - 'example' => 'true', + 'type' => 'object', + 'properties' => [ + 'tokenId' => ['description' => 'Token ID。', 'type' => 'string', 'example' => 'tk-zpi0*****hdv4y'], + 'name' => ['description' => 'Token名称。', 'type' => 'string', 'example' => 'dev_serverless_spark'."\n"], + 'token' => ['description' => '遮蔽处理的Token。', 'type' => 'string', 'example' => 'dxj**********wfg'."\n"], + 'createdBy' => ['description' => '创建者名称。', 'type' => 'string', 'example' => 'admin'], + 'createTime' => ['description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456094000'], + 'expireTime' => ['description' => '过期时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1753932319390'], + 'lastUsedTime' => ['description' => '上次使用时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456098000'], + 'autoExpireConfiguration' => [ + 'description' => '自动过期配置结构体。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => '是否自动过期。', 'type' => 'boolean', 'example' => 'true'], + 'expireDays' => ['description' => '过期时间(单位:天)。', 'type' => 'integer', 'format' => 'int32', 'example' => '365'], + ], + ], + 'memberArns' => [ + 'description' => '授权用户arn列表。', + 'type' => 'array', + 'items' => ['description' => '授权用户arn。', 'type' => 'string', 'example' => 'acs:emr::w-d2d82aa09155****:member/195****7311'], + ], + 'sparkRole' => [ + 'type' => 'array', + 'items' => ['type' => 'string'], + ], + ], ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '启动Kyuubi Gateway', - ], - 'StopKyuubiService' => [ - 'summary' => '停止Kyuubi Gateway。', - 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}/stop', - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取Kyuubi Gateway认证Token', + 'summary' => '获取Kyuubi Gateway认证Token。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetKyuubiToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"tokenId\\": \\"tk-zpi0*****hdv4y\\",\\n \\"name\\": \\"dev_serverless_spark\\\\n\\",\\n \\"token\\": \\"dxj**********wfg\\\\n\\",\\n \\"createdBy\\": \\"admin\\",\\n \\"createTime\\": 1749456094000,\\n \\"expireTime\\": 1753932319390,\\n \\"lastUsedTime\\": 1749456098000,\\n \\"autoExpireConfiguration\\": {\\n \\"enable\\": true,\\n \\"expireDays\\": 365\\n },\\n \\"memberArns\\": [\\n \\"acs:emr::w-d2d82aa09155****:member/195****7311\\"\\n ],\\n \\"sparkRole\\": [\\n \\"\\"\\n ]\\n }\\n}","type":"json"}]', + ], + 'GetLivyCompute' => [ + 'summary' => '获取Livy Gateway信息。', + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}', + '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' => 'none', + 'operationType' => 'get', 'riskType' => 'none', - 'chargeType' => 'paid', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce5JTF6C', - ], + 'chargeType' => 'free', + 'abilityTreeCode' => '222260', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'workspaceId', + 'name' => 'workspaceBizId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], ], [ - 'name' => 'kyuubiServiceId', + 'name' => 'livyComputeId', 'in' => 'path', - 'schema' => [ - 'description' => 'Kyuubi 服务 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'."\n", - ], + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-i8xogcdfa4fk3yn1'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => '响应结构体。', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求 ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n", - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], 'data' => [ - 'description' => '返回数据。', - 'type' => 'any', - 'example' => 'true', + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'computeId' => ['description' => 'Livy Gateway的ID', 'type' => 'string', 'example' => 'lc-xxxxxxxxxxxxx'], + 'name' => ['description' => '名称。', 'type' => 'string', 'example' => 'test'], + 'livyVersion' => [ + 'description' => 'Livy版本。', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => '0.8.0', + 'enum' => ['0.8.0'], + ], + 'releaseVersion' => ['description' => 'Spark引擎版本号,已废弃,请使用displayReleaseVersion。', 'type' => 'string', 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12, Java Runtime)'."\n"], + 'queueName' => ['description' => '队列名称。', 'type' => 'string', 'example' => 'root_queue'], + 'cpuLimit' => [ + 'description' => 'Livy Server的CPU核数。'."\n" + .'- 1'."\n" + .'- 2'."\n" + .'- 4', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => '1', + ], + 'memoryLimit' => [ + 'description' => 'Livy Server的内存大小。'."\n" + .'- 4Gi'."\n" + .'- 8Gi'."\n" + .'- 16Gi', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => '4Gi', + ], + 'autoStopConfiguration' => [ + 'description' => '自动终止配置。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => '是否创建后自动启动。'."\n" + .'- true:是。'."\n" + .'- false:否。', 'type' => 'boolean', 'example' => 'false'], + 'idleTimeoutMinutes' => ['description' => 'Livy Gateway空闲指定分钟数后自动终止。', 'type' => 'integer', 'format' => 'int64', 'example' => '300'], + ], + ], + 'authType' => [ + 'description' => '认证方式。', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'Token', + 'enum' => ['Token'], + ], + 'status' => [ + 'description' => '运行状态。', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'RUNNING', + 'enum' => ['RUNNING', 'STOPPED', 'STARTING', 'STOPPING', 'FAILED'], + ], + 'endpoint' => ['description' => '公网连接地址。', 'type' => 'string', 'example' => 'emr-spark-livy-gateway-cn-hangzhou.data.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx'], + 'createdBy' => ['description' => '创建者名称。', 'type' => 'string', 'example' => 'alice'], + 'ramUserId' => ['description' => '创建人ID。', 'type' => 'string', 'example' => '10000001'], + 'displayReleaseVersion' => ['description' => 'Spark引擎版本号。', 'type' => 'string', 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12)'], + 'fusion' => ['description' => '是否开启fusion开关。', 'type' => 'boolean', 'example' => 'false'."\n"], + 'startTime' => ['description' => '启动时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456094000'], + 'gmtCreate' => ['description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456094000'], + 'environmentId' => ['description' => '运行环境ID。', 'type' => 'string', 'example' => 'ev-cq31c7tlhtgm9nrrlj4g'], + 'endpointInner' => ['description' => '内网连接地址。', 'type' => 'string', 'example' => 'emr-spark-livy-gateway-cn-hangzhou-internal.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx'], + 'networkName' => ['description' => '网络连接名称。', 'type' => 'string', 'example' => 'test'], + 'livyServerConf' => ['description' => 'Livy Gateway配置,JSON格式,支持以下文件:'."\n" + ."\n" + .'- sparkDefaultsConf'."\n" + .'- sparkBlackListConf'."\n" + .'- livyConf'."\n" + .'- livyClientConf', 'type' => 'string', 'example' => ' '."\n" + .'{'."\n" + .' "sparkDefaultsConf": "spark.driver.cores 1\\nspark.driver.memory 4g\\nspark.executor.cores 1\\nspark.executor.memory 4g\\n",'."\n" + .' "sparkBlackListConf": "spark.driver.cores\\nspark.driver.memory",'."\n" + .' "livyConf": "livy.server.session.timeout 1h\\n",'."\n" + .' "livyClientConf": "livy.rsc.sql.num-rows 1000\\n"'."\n" + .'}'], + 'enablePublic' => ['description' => '公网地址开关状态。'."\n", 'type' => 'boolean', 'example' => 'true'], + ], ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\",\\n \\"data\\": \\"true\\"\\n}","type":"json"}]', - 'title' => '停止Kyuubi Gateway', - ], - 'ListLivyComputeSessions' => [ - 'summary' => '获取Livy Gateway的历史Session。', - 'path' => '/api/v1/workspaces/{workspaceId}/livycompute/{livyComputeId}/session', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取Livy Gateway信息', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"computeId\\": \\"lc-xxxxxxxxxxxxx\\",\\n \\"name\\": \\"test\\",\\n \\"livyVersion\\": \\"0.8.0\\",\\n \\"releaseVersion\\": \\"esr-4.3.0 (Spark 3.5.2, Scala 2.12, Java Runtime)\\\\n\\",\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpuLimit\\": \\"1\\",\\n \\"memoryLimit\\": \\"4Gi\\",\\n \\"autoStopConfiguration\\": {\\n \\"enable\\": false,\\n \\"idleTimeoutMinutes\\": 300\\n },\\n \\"authType\\": \\"Token\\",\\n \\"status\\": \\"RUNNING\\",\\n \\"endpoint\\": \\"emr-spark-livy-gateway-cn-hangzhou.data.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx\\",\\n \\"createdBy\\": \\"alice\\",\\n \\"ramUserId\\": \\"10000001\\",\\n \\"displayReleaseVersion\\": \\"esr-4.3.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"fusion\\": true,\\n \\"startTime\\": 1749456094000,\\n \\"gmtCreate\\": 1749456094000,\\n \\"environmentId\\": \\"ev-cq31c7tlhtgm9nrrlj4g\\",\\n \\"endpointInner\\": \\"emr-spark-livy-gateway-cn-hangzhou-internal.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx\\",\\n \\"networkName\\": \\"test\\",\\n \\"livyServerConf\\": \\"\\\\t\\\\n{\\\\n \\\\\\"sparkDefaultsConf\\\\\\": \\\\\\"spark.driver.cores 1\\\\\\\\nspark.driver.memory 4g\\\\\\\\nspark.executor.cores 1\\\\\\\\nspark.executor.memory 4g\\\\\\\\n\\\\\\",\\\\n \\\\\\"sparkBlackListConf\\\\\\": \\\\\\"spark.driver.cores\\\\\\\\nspark.driver.memory\\\\\\",\\\\n \\\\\\"livyConf\\\\\\": \\\\\\"livy.server.session.timeout 1h\\\\\\\\n\\\\\\",\\\\n \\\\\\"livyClientConf\\\\\\": \\\\\\"livy.rsc.sql.num-rows 1000\\\\\\\\n\\\\\\"\\\\n}\\",\\n \\"enablePublic\\": true\\n }\\n}","type":"json"}]', + ], + 'GetLivyComputeToken' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/token/{tokenId}', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'read', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '246258', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce8QU4HW', - ], - 'autoTest' => false, - 'notSupportAutoTestReason' => '不支持', - 'tenantRelevance' => 'tenant', + 'operationType' => 'get', + 'abilityTreeCode' => '222371', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'workspaceId', + 'name' => 'workspaceBizId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d80f373d3ace824f', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], ], [ 'name' => 'livyComputeId', 'in' => 'path', - 'schema' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lc-zm4dzdiubu73w2yx', - ], - ], - [ - 'name' => 'pageNum', - 'in' => 'query', - 'schema' => [ - 'description' => '页码,默认值 1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-6mkvn01zrg8rqhhv'], ], [ - 'name' => 'pageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果的分页数。默认值:20,最小值:1,最大值:100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'name' => 'tokenId', + 'in' => 'path', + 'schema' => ['description' => 'Token ID。', 'type' => 'string', 'required' => false, 'example' => 'lctk-xxxxxxxx'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -4740,110 +3483,28 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '8FAA8EEC-3026-5D15-8733-4E2A3DD970A1', - ], - 'totalCount' => [ - 'description' => '总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'sessions' => [ - 'description' => 'Session列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'name' => [ - 'description' => 'Session名称。', - 'type' => 'string', - 'example' => 'test_session', - ], - 'computeId' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'example' => 'lc-xxxxxx', - ], - 'sessionId' => [ - 'description' => 'Livy Gateway Session的ID。', - 'type' => 'string', - 'example' => 'livy-xxxxxx', - ], - 'sparkConf' => [ - 'description' => 'Spark任务配置。', - 'type' => 'string', - 'example' => '{'."\n" - .' "proxyUser": "test",'."\n" - .' "conf": {'."\n" - .' "spark.driver.cores": 1'."\n" - .' }'."\n" - .'}', - ], - 'state' => [ - 'description' => 'Session状态。'."\n" - .'- starting:启动中。'."\n" - .'- running:运行中。'."\n" - .'- terminating:正在停止。'."\n" - .'- terminated:已停止。'."\n" - .'- error:已失败。', - 'type' => 'string', - 'example' => 'running', - 'enum' => [ - 'starting', - 'running', - 'error', - 'terminated', - 'terminating', - ], - ], - 'info' => [ - 'description' => '运行信息。', - 'type' => 'string', - 'example' => 'null', - ], - 'createTime' => [ - 'description' => '创建时间,unix毫秒级别时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1768213240000', - ], - 'webUI' => [ - 'description' => 'Session的Web UI地址。', - 'type' => 'string', - 'example' => 'http://emr-spark-ui-cn-hangzhou.data.aliyun.com', - ], - 'endTime' => [ - 'description' => '结束时间,unix毫秒级别时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1768213240000', - ], - 'queue' => [ - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'root_queue', - ], - 'cuHours' => [ - 'description' => '任务运行周期内所消耗的 CU 数量(该值为预估值,最终以账单为准)。', - 'type' => 'number', - 'format' => 'double', - 'example' => '322.5', - ], - 'vcoreSeconds' => [ - 'description' => '任务已分配的 vcore 总量乘以任务已运行的秒数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '343', - ], - 'mbSeconds' => [ - 'description' => '任务已分配的内存总量乘以任务已运行的秒数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1098888', + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '484D9DDA-300D-525E-AF7A-0CCCA5C64A7A'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '响应消息。', 'type' => 'string', 'example' => 'ok'], + 'data' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'tokenId' => ['description' => 'Token ID。', 'type' => 'string', 'example' => 'lctk-xxxxxxxxxx'], + 'name' => ['description' => 'Token名称。', 'type' => 'string', 'example' => 'test'], + 'token' => ['description' => 'Token内容。', 'type' => 'string', 'example' => 'd25561157a635bb'], + 'createdBy' => ['description' => '创建者名称。', 'type' => 'string', 'example' => 'alice'], + 'createTime' => ['description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456094000'], + 'expireTime' => ['description' => '过期时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749457994000'], + 'lastUsedTime' => ['description' => '上次使用时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456098000'], + 'autoExpireConfiguration' => [ + 'description' => 'Token过期信息结构体。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => 'Token是否自动过期。'."\n" + .'- true:是。'."\n" + .'- false:否。', 'type' => 'boolean', 'example' => 'false'], + 'expireDays' => ['description' => '过期时间(天)。', 'type' => 'integer', 'format' => 'int32', 'example' => '7'], ], ], ], @@ -4852,72 +3513,58 @@ ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"8FAA8EEC-3026-5D15-8733-4E2A3DD970A1\\",\\n \\"totalCount\\": 10,\\n \\"sessions\\": [\\n {\\n \\"name\\": \\"test_session\\",\\n \\"computeId\\": \\"lc-xxxxxx\\",\\n \\"sessionId\\": \\"livy-xxxxxx\\",\\n \\"sparkConf\\": \\"{\\\\n \\\\\\"proxyUser\\\\\\": \\\\\\"test\\\\\\",\\\\n \\\\\\"conf\\\\\\": {\\\\n \\\\\\"spark.driver.cores\\\\\\": 1\\\\n }\\\\n}\\",\\n \\"state\\": \\"running\\",\\n \\"info\\": \\"null\\",\\n \\"createTime\\": 1768213240000,\\n \\"webUI\\": \\"http://emr-spark-ui-cn-hangzhou.data.aliyun.com\\",\\n \\"endTime\\": 1768213240000,\\n \\"queue\\": \\"root_queue\\",\\n \\"cuHours\\": 322.5,\\n \\"vcoreSeconds\\": 343,\\n \\"mbSeconds\\": 1098888\\n }\\n ]\\n}","type":"json"}]', - 'title' => '列出Livy Gateway的历史Session', - ], - 'DeleteLivyCompute' => [ - 'summary' => '删除Livy Gateway。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}', - 'methods' => [ - 'delete', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取Livy Gateway的Token', + 'summary' => '获取Livy Gateway的Token。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetLivyComputeToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"484D9DDA-300D-525E-AF7A-0CCCA5C64A7A\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"tokenId\\": \\"lctk-xxxxxxxxxx\\",\\n \\"name\\": \\"test\\",\\n \\"token\\": \\"d25561157a635bb\\",\\n \\"createdBy\\": \\"alice\\",\\n \\"createTime\\": 1749456094000,\\n \\"expireTime\\": 1749457994000,\\n \\"lastUsedTime\\": 1749456098000,\\n \\"autoExpireConfiguration\\": {\\n \\"enable\\": false,\\n \\"expireDays\\": 7\\n }\\n }\\n}","type":"json"}]', + ], + 'GetRayCluster' => [ + 'summary' => '获取Ray集群。', + 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster/{clusterId}', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', - 'abilityTreeCode' => '222245', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], 'parameters' => [ [ - 'name' => 'workspaceBizId', + 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], ], [ - 'name' => 'livyComputeId', + 'name' => 'clusterId', 'in' => 'path', - 'schema' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lc-i8xogcdfa4fk3yn1', - ], - ], - [ - 'name' => 'regionId', - 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '集群ID。', 'description' => '集群ID。', 'type' => 'string', 'required' => false, 'example' => 'ray-xxxxxxxxxx'], ], ], 'responses' => [ @@ -4927,238 +3574,350 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + 'clusterId' => ['title' => 'Ray集群ID。'."\n", 'description' => 'Ray集群ID。'."\n", 'type' => 'string', 'example' => 'ray-k7nm8ahl5te4tg91'], + 'name' => ['title' => 'Ray集群名称。', 'description' => 'Ray集群名称。', 'type' => 'string', 'example' => 'myRayCluster'], + 'displayReleaseVersion' => ['title' => 'Ray引擎版本。', 'description' => 'Ray引擎版本。', 'type' => 'string', 'example' => 'ray-1.0.0 (Ray 2.47.1, Python 3.12)'], + 'description' => ['title' => '描述信息。', 'description' => '描述信息。', 'type' => 'string', 'example' => 'Ray Cluster for dev.'], + 'networkServiceName' => ['title' => '网络连接名称。', 'description' => '网络连接名称。', 'type' => 'string', 'example' => 'vpc'], + 'headSpec' => [ + 'title' => 'Ray集群Head节点参数。', + 'description' => 'Ray集群Head节点参数。', + 'type' => 'object', + 'properties' => [ + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'example' => '2'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'example' => '8Gi'], + 'enableAutoScaling' => ['title' => 'Worker节点是否开启自动扩缩容。', 'description' => 'Worker节点是否开启自动扩缩容。', 'type' => 'boolean', 'example' => 'false'], + 'idleTimeoutSeconds' => ['title' => '开启自动扩缩容后Worker节点Idle时间。', 'description' => '开启自动扩缩容后Worker节点Idle时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '60'], + 'replica' => ['title' => '节点数量。', 'description' => '节点数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'gpuSpec' => ['title' => 'gpu机型。', 'type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], + ], ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', + 'state' => [ + 'title' => '会话状态。'."\n" + .'- Starting:启动中。'."\n" + .'- Running:运行中。'."\n" + .'- Stopping:正在停止。'."\n" + .'- Stopped:已停止。'."\n" + .'- Error:已失败。', + 'description' => '会话状态。'."\n" + .'- Starting:启动中。'."\n" + .'- Running:运行中。'."\n" + .'- Stopping:正在停止。'."\n" + .'- Stopped:已停止。'."\n" + .'- Error:已失败。', 'type' => 'string', - 'example' => '1000000', + 'example' => 'Running', + 'enum' => ['Starting', 'Running', 'Stopping', 'Stopped', 'Error'], + ], + 'creator' => ['title' => '创建集群的用户UID。', 'description' => '创建集群的用户UID。', 'type' => 'string', 'example' => '202077646755523991'], + 'creatorName' => ['title' => '创建者昵称。', 'description' => '创建者昵称。', 'type' => 'string', 'example' => 'Alice'], + 'modifier' => ['title' => '集群更新者UID。', 'description' => '集群更新者UID。', 'type' => 'string', 'example' => '202077646755523991'], + 'modifierName' => ['title' => '修改者昵称。', 'description' => '修改者昵称。', 'type' => 'string', 'example' => 'Alice'], + 'userId' => ['title' => '创建者主账号ID。', 'description' => '创建者主账号ID。', 'type' => 'string', 'example' => '123456789012'], + 'dashboardUrl' => ['title' => 'Ray集群Dashboard链接。', 'description' => 'Ray集群Dashboard链接。', 'type' => 'string', 'example' => 'https://emr-ray-gateway-cn-hangzhou.aliyuncs.com/workspace/w-xxxxxxxx/raycluster/ray-xxxxxx/dashboard?token=xxxxxx'], + 'jobUrl' => ['title' => '提交Ray Job的地址。', 'description' => '提交Ray Job的地址(公网)。', 'type' => 'string', 'example' => 'https://emr-spark-ray-gateway-cn-hangzhou.aliyuncs.com'], + 'submitToken' => ['title' => '提交Ray Job时的鉴权Token。', 'description' => '提交Ray Job时的鉴权Token,需要放到请求头中,"ray-token": "token"。', 'type' => 'string', 'example' => '1d06484d3b424f7fa4ab7082a4076da2'], + 'modified' => ['title' => '配置是否修改过。', 'description' => '配置是否修改过。', 'type' => 'boolean', 'example' => 'false'], + 'extraParam' => ['title' => '额外参数,json格式。', 'description' => '额外参数,json格式。', 'type' => 'string', 'example' => '{}'], + 'message' => ['title' => '状态为Error时的错误信息。', 'description' => '状态为Error时的错误信息。', 'type' => 'string', 'example' => 'ok'], + 'instances' => [ + 'title' => 'Ray集群节点ID。', + 'description' => 'Ray集群节点ID。', + 'type' => 'array', + 'items' => [ + 'title' => 'Ray集群节点结构体。', + 'description' => 'Ray集群节点结构体。', + 'type' => 'object', + 'properties' => [ + 'type' => ['title' => '节点类型。', 'description' => '节点类型。', 'type' => 'string', 'example' => 'Head'], + 'instanceId' => ['title' => '节点ID。', 'description' => '节点ID。', 'type' => 'string', 'example' => 'ray-uiulpgow9xljim10-head-7cgta'], + 'containerState' => ['title' => '主容器状态。', 'description' => '主容器状态。', 'type' => 'string', 'example' => 'Running'], + 'reason' => ['title' => '节点信息。', 'description' => '节点信息。', 'type' => 'string', 'example' => 'OOMKilled'], + 'phase' => ['title' => '节点Pod状态。', 'description' => '节点Pod状态。', 'type' => 'string', 'example' => 'Running'], + 'message' => ['title' => '节点Pod状态信息。', 'description' => '节点Pod状态信息。', 'type' => 'string', 'example' => 'ok'], + 'startTime' => ['title' => '启动时间。', 'description' => '启动时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1762946698000'], + 'createTime' => ['title' => '创建时间。', 'description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1735870116167'], + 'containerStateReason' => ['title' => '主容器信息。', 'description' => '主容器信息。', 'type' => 'string', 'example' => 'ok'], + 'containerStateMessage' => ['title' => '主容器状态信息。', 'description' => '主容器状态信息。', 'type' => 'string', 'example' => 'ContainerExit'], + 'containerExitCode' => ['title' => '主容器退出码。', 'description' => '主容器退出码。', 'type' => 'integer', 'format' => 'int32', 'example' => '137'], + ], + ], ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', + 'instanceId' => ['title' => 'Ray集群节点ID。', 'description' => 'Ray集群节点ID。', 'type' => 'string', 'example' => 'ray-k7nm8ahl5te4tg93-xxxxxxx'], + 'workerSpec' => [ + 'title' => 'Ray集群Worker节点信息。', + 'description' => 'Ray集群Worker节点信息。', + 'type' => 'array', + 'items' => [ + 'title' => 'Ray集群Worker节点信息结构体。', + 'description' => 'Ray集群Worker节点信息结构体。', + 'type' => 'object', + 'properties' => [ + 'groupName' => ['title' => 'Worker节点组名称。', 'description' => 'Worker节点组名称。', 'type' => 'string', 'example' => 'WorkerGroup1'], + 'workerType' => [ + 'title' => 'Worker节点组类型。', + 'description' => 'Worker节点组类型。', + 'type' => 'string', + 'example' => 'CPU', + 'enum' => ['CPU'], + ], + 'replica' => ['title' => 'Worker节点数量。', 'description' => 'Worker节点数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'example' => '2'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'example' => '8Gi'], + 'minReplica' => ['title' => 'Worker最小数量', 'description' => 'Worker最小数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'maxReplica' => ['title' => 'Worker最大数量', 'description' => 'Worker最大数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'gpuSpec' => ['title' => 'gpu机型。', 'type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], + ], + ], + ], + 'startTime' => ['title' => '启动时间,Unix时间戳,单位毫秒。', 'description' => '启动时间,Unix时间戳,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1750327083303'], + 'createTime' => ['title' => '创建时间,Unix时间戳,单位毫秒。', 'description' => '创建时间,Unix时间戳,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1750327083303'], + 'modifiedTime' => ['title' => '更新时间,Unix时间戳,单位毫秒。', 'description' => '更新时间,Unix时间戳,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1754274541693'], + 'grpcEndpoint' => ['title' => 'gRPC连接地址。', 'description' => 'gRPC连接地址(内网),其中的域名也可以用作提交ray job。', 'type' => 'string', 'example' => 'ray://emr-spark-ray-gateway-cn-hangzhou-internal.emr.aliyuncs.com:80'], + 'volumeIds' => [ + 'title' => '纳管文件id列表。', + 'type' => 'array', + 'items' => ['title' => '纳管文件id。', 'type' => 'string', 'example' => 'vol-123456789'], ], + 'jobUrlInner' => ['title' => '提交Ray Job的内网地址。', 'type' => 'string', 'example' => 'http://emr-spark-ray-gateway-cn-hangzhou-internal.emr.aliyuncs.com'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', - 'title' => '删除Livy Gateway', - ], - 'CreateLivyCompute' => [ - 'summary' => '创建Livy compute。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute', - 'methods' => [ - 'put', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取Ray集群信息', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetRayCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"clusterId\\": \\"ray-k7nm8ahl5te4tg91\\",\\n \\"name\\": \\"myRayCluster\\",\\n \\"displayReleaseVersion\\": \\"ray-1.0.0 (Ray 2.47.1, Python 3.12)\\",\\n \\"description\\": \\"Ray Cluster for dev.\\",\\n \\"networkServiceName\\": \\"vpc\\",\\n \\"headSpec\\": {\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpu\\": \\"2\\",\\n \\"memory\\": \\"8Gi\\",\\n \\"enableAutoScaling\\": false,\\n \\"idleTimeoutSeconds\\": 60,\\n \\"replica\\": 1,\\n \\"gpuSpec\\": \\"ecs.gn6i-c4g1.xlarge\\"\\n },\\n \\"state\\": \\"Running\\",\\n \\"creator\\": \\"202077646755523991\\",\\n \\"creatorName\\": \\"Alice\\",\\n \\"modifier\\": \\"202077646755523991\\",\\n \\"modifierName\\": \\"Alice\\",\\n \\"userId\\": \\"123456789012\\",\\n \\"dashboardUrl\\": \\"https://emr-ray-gateway-cn-hangzhou.aliyuncs.com/workspace/w-xxxxxxxx/raycluster/ray-xxxxxx/dashboard?token=xxxxxx\\",\\n \\"jobUrl\\": \\"https://emr-spark-ray-gateway-cn-hangzhou.aliyuncs.com\\",\\n \\"submitToken\\": \\"1d06484d3b424f7fa4ab7082a4076da2\\",\\n \\"modified\\": false,\\n \\"extraParam\\": \\"{}\\",\\n \\"message\\": \\"ok\\",\\n \\"instances\\": [\\n {\\n \\"type\\": \\"Head\\",\\n \\"instanceId\\": \\"ray-uiulpgow9xljim10-head-7cgta\\",\\n \\"containerState\\": \\"Running\\",\\n \\"reason\\": \\"OOMKilled\\",\\n \\"phase\\": \\"Running\\",\\n \\"message\\": \\"ok\\",\\n \\"startTime\\": 1762946698000,\\n \\"createTime\\": 1735870116167,\\n \\"containerStateReason\\": \\"ok\\",\\n \\"containerStateMessage\\": \\"ContainerExit\\",\\n \\"containerExitCode\\": 137\\n }\\n ],\\n \\"instanceId\\": \\"ray-k7nm8ahl5te4tg93-xxxxxxx\\",\\n \\"workerSpec\\": [\\n {\\n \\"groupName\\": \\"WorkerGroup1\\",\\n \\"workerType\\": \\"CPU\\",\\n \\"replica\\": 2,\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpu\\": \\"2\\",\\n \\"memory\\": \\"8Gi\\",\\n \\"minReplica\\": 1,\\n \\"maxReplica\\": 10,\\n \\"gpuSpec\\": \\"ecs.gn6i-c4g1.xlarge\\"\\n }\\n ],\\n \\"startTime\\": 1750327083303,\\n \\"createTime\\": 1750327083303,\\n \\"modifiedTime\\": 1754274541693,\\n \\"grpcEndpoint\\": \\"ray://emr-spark-ray-gateway-cn-hangzhou-internal.emr.aliyuncs.com:80\\",\\n \\"volumeIds\\": [\\n \\"vol-123456789\\"\\n ],\\n \\"jobUrlInner\\": \\"http://emr-spark-ray-gateway-cn-hangzhou-internal.emr.aliyuncs.com\\"\\n}","type":"json"}]', + ], + 'GetRayJob' => [ + 'summary' => '获取Ray Job信息。', + 'path' => '/api/v1/workspaces/{workspaceId}/rayJob/{submissionId}', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'write', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '222228', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], 'parameters' => [ [ - 'name' => 'workspaceBizId', + 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], ], [ - 'name' => 'body', - 'in' => 'body', - 'style' => 'json', + 'name' => 'submissionId', + 'in' => 'path', + 'schema' => ['title' => '集群ID。', 'description' => 'Ray Job的id。', 'type' => 'string', 'required' => false, 'example' => 'rj-xxxxxxxxxx'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '请求结构体。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'name' => [ - 'description' => 'Livy Gateway名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'testGateway', - ], - 'livyVersion' => [ - 'description' => 'Livy版本。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => '0.8.0', - 'enum' => [ - '0.8.0', - ], - ], - 'releaseVersion' => [ - 'description' => 'Spark引擎版本号,已废弃,请使用displayReleaseVersion。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12, Java Runtime)', - ], - 'queueName' => [ - 'description' => '提交队列名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', - ], - 'cpuLimit' => [ - 'description' => 'Livy Server的CPU核数。'."\n" - .'- 1'."\n" - .'- 2'."\n" - .'- 4', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => '1', + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + 'submissionId' => ['description' => 'Ray Job的id。', 'type' => 'string', 'example' => 'rj-xxxxxxxxxx'], + 'name' => ['title' => 'Ray集群名称。', 'description' => 'Ray集群名称。', 'type' => 'string', 'example' => 'myRayCluster'], + 'displayReleaseVersion' => ['title' => 'Ray引擎版本。', 'description' => 'Ray引擎版本。', 'type' => 'string', 'example' => 'err-1.2.0 (Ray 2.55.1, Python 3.12)'], + 'tags' => [ + 'description' => '标签。', + 'type' => 'array', + 'items' => ['description' => '标签。', '$ref' => '#/components/schemas/Tag'], ], - 'memoryLimit' => [ - 'description' => 'Livy Server的内存大小。'."\n" - .'- 4Gi'."\n" - .'- 8Gi'."\n" - .'- 16Gi', + 'status' => [ + 'title' => '会话状态。'."\n" + .'- Starting:启动中。'."\n" + .'- Running:运行中。'."\n" + .'- Stopping:正在停止。'."\n" + .'- Stopped:已停止。'."\n" + .'- Error:已失败。', + 'description' => '任务状态'."\n" + .'- Submitted 已提交。'."\n" + .'- Pending:集群创建中。'."\n" + .'- Running:任务运行中。'."\n" + .'- Succeeded:任务已成功。'."\n" + .'- Failed:任务已失败。'."\n" + .'- Cancelling:取消中。'."\n" + .'- Cancelled:已取消。'."\n" + .'- Timeout:超时取消。', 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => '4Gi', + 'example' => 'Running', + 'enum' => ['Submitted', 'Pending', 'Running', 'Succeeded', 'Failed', 'Cancelling', 'Cancelled', 'Timeout'], + ], + 'message' => ['title' => '状态为Error时的错误信息。', 'description' => '执行信息。', 'type' => 'string', 'example' => 'Job finished successfully.'], + 'entrypoint' => ['description' => '启动命令。', 'type' => 'string', 'example' => 'python main.py'], + 'submitTime' => ['description' => '任务提交时间,Unix时间戳,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1750327082303'], + 'startTime' => ['title' => '启动时间,Unix时间戳,单位毫秒。', 'description' => '启动时间,Unix时间戳,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1750327083303'], + 'endTime' => ['description' => '任务结束时间,Unix时间戳,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1762949372000'], + 'duration' => ['description' => '任务持续时间,单位秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '2459764'], + 'networkServiceName' => ['title' => '网络连接名称。', 'description' => '网络连接名称。', 'type' => 'string', 'example' => 'vpc'], + 'runtimeEnvJson' => ['title' => 'Ray runtime environment JSON 字符串。', 'description' => 'Ray runtime environment JSON 字符串。', 'type' => 'string', 'example' => '{"pip":["requests==2.26.0","pendulum==2.1.2"],"env_vars":{"KEY":"VALUE"}}'], + 'workingDir' => ['title' => '任务代码工作目录 URL。', 'description' => '任务代码工作目录 URL。', 'type' => 'string', 'example' => 'oss://mybucket/hello.zip'], + 'submissionMode' => ['title' => '提交作业方式', 'description' => '提交作业方式。', 'type' => 'string', 'example' => 'HTTPMode'], + 'metadataJson' => ['title' => '任务元数据 JSON 字符串。', 'description' => '任务元数据 JSON 字符串。', 'type' => 'string', 'example' => '{"owner": "alice"}'], + 'entrypointNumCpus' => ['title' => '入口任务申请的 CPU 数量。', 'description' => '入口任务申请的 CPU 数量。', 'type' => 'string', 'example' => '1'], + 'entrypointNumGpus' => ['title' => '入口任务申请的 GPU 数量。', 'description' => '入口任务申请的 GPU 数量。', 'type' => 'string', 'example' => '0'], + 'entrypointMemory' => ['title' => '入口任务申请的内存大小。', 'description' => '入口任务申请的内存大小。', 'type' => 'string', 'example' => '4Gi'], + 'entrypointResources' => ['title' => '入口任务自定义资源请求 JSON 字符串。', 'description' => '入口任务自定义资源请求 JSON 字符串。', 'type' => 'string', 'example' => '{"fpu": 1}'], + 'shutdownAfterJobFinishes' => ['title' => '任务完成后是否自动销毁临时集群,默认 true。', 'description' => '任务完成后是否自动销毁临时集群,默认 true。', 'type' => 'boolean', 'example' => 'true'], + 'ttlSecondsAfterFinished' => ['title' => '集群销毁前等待秒数,shutdownAfterJobFinishes 为 true 时有效。', 'description' => '集群销毁前等待秒数,shutdownAfterJobFinishes 为 true 时有效。', 'type' => 'integer', 'format' => 'int32', 'example' => '60'], + 'activeDeadlineSeconds' => ['title' => '超时时间', 'description' => '超时时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '3600'], + 'volumeIds' => [ + 'title' => '纳管文件id列表。', + 'description' => '纳管文件id列表。', + 'type' => 'array', + 'items' => ['title' => '纳管文件id。', 'description' => '纳管文件id。', 'type' => 'string', 'example' => 'vol-123456789'], ], - 'autoStartConfiguration' => [ - 'description' => '自动启动配置。', + 'backoffLimit' => ['title' => '超时时间', 'description' => '失败重试次数,当前固定为0。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'headSpec' => [ + 'title' => 'Ray集群Head节点参数。', + 'description' => 'Ray集群Head节点参数。', 'type' => 'object', 'properties' => [ - 'enable' => [ - 'description' => '创建后是否自动启动。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'replica' => ['title' => '节点数量。', 'description' => '节点数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'enableAutoScaling' => ['title' => 'Worker节点是否开启自动扩缩容。', 'description' => 'Worker节点是否开启自动扩缩容。', 'type' => 'boolean', 'example' => 'true'], + 'idleTimeoutSeconds' => ['title' => '开启自动扩缩容后Worker节点Idle时间。', 'description' => '开启自动扩缩容后Worker节点Idle时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '60'], + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'example' => '2'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'example' => '8Gi'], + 'gpuSpec' => ['title' => 'gpu机型。', 'description' => 'gpu机型。', 'type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], ], - 'required' => false, ], - 'autoStopConfiguration' => [ - 'description' => '自动终止配置。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => '是否自动终止。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'idleTimeoutMinutes' => [ - 'description' => 'Livy Gateway空闲指定分钟数后自动终止。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '300', + 'workerSpecs' => [ + 'title' => 'Ray集群Worker节点信息。', + 'description' => 'Ray集群Worker节点信息。', + 'type' => 'array', + 'items' => [ + 'title' => 'Ray集群Worker节点信息结构体。', + 'description' => 'Ray集群Worker节点信息结构体。', + 'type' => 'object', + 'properties' => [ + 'groupName' => ['title' => 'Worker节点组名称。', 'description' => 'Worker节点组名称。', 'type' => 'string', 'example' => 'WorkerGroup1'], + 'replica' => ['title' => 'Worker节点数量。', 'description' => 'Worker节点数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'minReplica' => ['title' => 'Worker最小数量', 'description' => 'Worker最小数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'maxReplica' => ['title' => 'Worker最大数量', 'description' => 'Worker最大数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'example' => '2'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'example' => '8Gi'], + 'gpuSpec' => ['title' => 'gpu机型。', 'description' => 'gpu机型。', 'type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], ], ], - 'required' => false, ], - 'authType' => [ - 'description' => '认证方式。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'Token', - 'enum' => [ - 'Token', + 'extraParam' => ['title' => '额外参数,json格式。', 'description' => '额外参数,json格式。', 'type' => 'string', 'example' => '{"userDefinedFiles": "oss://mybucket/artifact/config.json,oss://mybucket/artifact/config2.json", "userRequirementsFile": "oss://mybucket/requirements.txt"}'], + 'creatorName' => ['description' => '创建者昵称。', 'type' => 'string', 'example' => 'Alice'], + 'dashboardUrl' => ['title' => 'Ray集群Dashboard链接。', 'description' => 'Ray集群Dashboard链接,Ray集群状态为Running时为Runtime UI,状态为Deleted后为History UI,仅err-1.2.0及以上版本支持History UI。', 'type' => 'string', 'example' => 'https://emr-ray-gateway-cn-hangzhou.aliyuncs.com/workspace/w-xxxxxxxx/raycluster/ray-xxxxxx/dashboard?token=xxxxxx'], + 'logBucketName' => ['title' => 'log bucket名称', 'description' => '存放日志的bucket名称。', 'type' => 'string', 'example' => 'ss-ray-cn-hangzhou'], + 'logPath' => ['title' => 'log路径', 'description' => '存放日志的路径。', 'type' => 'string', 'example' => 'w-xxxxxxx/ray/logs/xxxxxx/'], + 'cuHours' => ['title' => 'cu时', 'description' => '消耗的cu资源,在集群释放后十分钟后返回。', 'type' => 'number', 'format' => 'double', 'example' => '1899'], + 'guHours' => [ + 'description' => '消耗的gpu时间,当前为空。', + 'type' => 'object', + 'properties' => [ + 'gpuSpec' => ['description' => 'gpu机型。', 'type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], + 'gpuHours' => ['description' => '消耗的gpu时间。', 'type' => 'number', 'format' => 'double', 'example' => '2.6'], ], ], - 'displayReleaseVersion' => [ - 'description' => 'Spark引擎版本号。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12)'."\n", - ], - 'fusion' => [ - 'description' => '是否开启Fusion引擎加速。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'environmentId' => [ - 'description' => '运行环境ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ev-ctfq0fem1hkhgv4hapng', - ], - 'networkName' => [ - 'description' => '网络连接名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', + 'dashboardUrlExtra' => [ + 'description' => '额外的dashboard UI链接,当前为空。', + 'type' => 'array', + 'items' => ['description' => '额外的 dashboard UI 链接,当前为空。', 'type' => 'string', 'example' => '-'], ], - 'livyServerConf' => [ - 'description' => 'Livy Gateway配置,JSON格式,支持以下文件:'."\n" - ."\n" - .'- sparkDefaultsConf'."\n" - .'- sparkBlackListConf'."\n" - .'- livyConf'."\n" - .'- livyClientConf', + 'clusterState' => [ + 'description' => '对应的Ray集群的状态。'."\n" + .'- Deleted:已删除。'."\n" + .'- Submitted:已提交未开始创建。'."\n" + .'- Pending:创建中。'."\n" + .'- Running:运行中。', 'type' => 'string', - 'required' => false, - 'example' => '{'."\n" - .' "sparkDefaultsConf": "spark.driver.cores 1\\nspark.driver.memory 4g\\nspark.executor.cores 1\\nspark.executor.memory 4g\\n",'."\n" - .' "sparkBlackListConf": "spark.driver.cores\\nspark.driver.memory",'."\n" - .' "livyConf": "livy.server.session.timeout 1h\\n",'."\n" - .' "livyClientConf": "livy.rsc.sql.num-rows 1000\\n"'."\n" - .'}', - ], - 'enablePublic' => [ - 'description' => '公网地址开关状态。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'example' => 'Running', + 'enum' => ['Deleted', 'Submitted', 'Pending', 'Running'], ], + 'taskBizId' => ['description' => '数据开发任务ID。', 'type' => 'string', 'example' => 'TSK-682e0112f6f24d9f9305b92174846985'], ], - 'required' => false, ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取Ray Job信息', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"submissionId\\": \\"rj-xxxxxxxxxx\\",\\n \\"name\\": \\"myRayCluster\\",\\n \\"displayReleaseVersion\\": \\"err-1.2.0 (Ray 2.55.1, Python 3.12)\\",\\n \\"tags\\": [\\n {\\n \\"key\\": \\"workflowId\\",\\n \\"value\\": \\"wf-123test\\"\\n }\\n ],\\n \\"status\\": \\"Running\\",\\n \\"message\\": \\"Job finished successfully.\\",\\n \\"entrypoint\\": \\"python main.py\\",\\n \\"submitTime\\": 1750327082303,\\n \\"startTime\\": 1750327083303,\\n \\"endTime\\": 1762949372000,\\n \\"duration\\": 2459764,\\n \\"networkServiceName\\": \\"vpc\\",\\n \\"runtimeEnvJson\\": \\"{\\\\\\"pip\\\\\\":[\\\\\\"requests==2.26.0\\\\\\",\\\\\\"pendulum==2.1.2\\\\\\"],\\\\\\"env_vars\\\\\\":{\\\\\\"KEY\\\\\\":\\\\\\"VALUE\\\\\\"}}\\",\\n \\"workingDir\\": \\"oss://mybucket/hello.zip\\",\\n \\"submissionMode\\": \\"HTTPMode\\",\\n \\"metadataJson\\": \\"{\\\\\\"owner\\\\\\": \\\\\\"alice\\\\\\"}\\",\\n \\"entrypointNumCpus\\": \\"1\\",\\n \\"entrypointNumGpus\\": \\"0\\",\\n \\"entrypointMemory\\": \\"4Gi\\",\\n \\"entrypointResources\\": \\"{\\\\\\"fpu\\\\\\": 1}\\",\\n \\"shutdownAfterJobFinishes\\": true,\\n \\"ttlSecondsAfterFinished\\": 60,\\n \\"activeDeadlineSeconds\\": 3600,\\n \\"volumeIds\\": [\\n \\"vol-123456789\\"\\n ],\\n \\"backoffLimit\\": 2,\\n \\"headSpec\\": {\\n \\"replica\\": 1,\\n \\"enableAutoScaling\\": true,\\n \\"idleTimeoutSeconds\\": 60,\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpu\\": \\"2\\",\\n \\"memory\\": \\"8Gi\\",\\n \\"gpuSpec\\": \\"ecs.gn6i-c4g1.xlarge\\"\\n },\\n \\"workerSpecs\\": [\\n {\\n \\"groupName\\": \\"WorkerGroup1\\",\\n \\"replica\\": 1,\\n \\"minReplica\\": 1,\\n \\"maxReplica\\": 10,\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpu\\": \\"2\\",\\n \\"memory\\": \\"8Gi\\",\\n \\"gpuSpec\\": \\"ecs.gn6i-c4g1.xlarge\\"\\n }\\n ],\\n \\"extraParam\\": \\"{\\\\\\"userDefinedFiles\\\\\\": \\\\\\"oss://mybucket/artifact/config.json,oss://mybucket/artifact/config2.json\\\\\\", \\\\\\"userRequirementsFile\\\\\\": \\\\\\"oss://mybucket/requirements.txt\\\\\\"}\\",\\n \\"creatorName\\": \\"Alice\\",\\n \\"dashboardUrl\\": \\"https://emr-ray-gateway-cn-hangzhou.aliyuncs.com/workspace/w-xxxxxxxx/raycluster/ray-xxxxxx/dashboard?token=xxxxxx\\",\\n \\"logBucketName\\": \\"ss-ray-cn-hangzhou\\",\\n \\"logPath\\": \\"w-xxxxxxx/ray/logs/xxxxxx/\\",\\n \\"cuHours\\": 1899,\\n \\"guHours\\": {\\n \\"gpuSpec\\": \\"ecs.gn6i-c4g1.xlarge\\",\\n \\"gpuHours\\": 2.6\\n },\\n \\"dashboardUrlExtra\\": [\\n \\"-\\"\\n ],\\n \\"clusterState\\": \\"Running\\",\\n \\"taskBizId\\": \\"TSK-682e0112f6f24d9f9305b92174846985\\"\\n}","type":"json"}]', + ], + 'GetRayLog' => [ + 'summary' => '获取Ray Job日志。', + 'path' => '/api/interactive/v1/workspace/{workspaceId}/ray/{instanceId}/log', + 'methods' => ['get'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'regionId', + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-790b443d72394bfc'], + ], + [ + 'name' => 'instanceId', + 'in' => 'path', + 'schema' => ['description' => 'Ray Job的id。', 'type' => 'string', 'required' => false, 'example' => 'rj-xxxxxxxx'], + ], + [ + 'name' => 'bucketName', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'bucket名称。', 'type' => 'string', 'required' => false, 'example' => 'mybucket'], + ], + [ + 'name' => 'path', + 'in' => 'query', + 'schema' => ['description' => '日志文件路径。', 'type' => 'string', 'required' => false, 'example' => '/w-xxxxxxx/ray/logs/rj-xxxxxxxxxx_default/xxxx/rj-xxxx_driver.log'], ], ], 'responses' => [ @@ -5168,356 +3927,312 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => 'B06AADC1-1627-5B1C-B62F-A2226C122897'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], 'data' => [ 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'livyComputeId' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'example' => 'lc-i8xogcdfa4fk3yn1', - ], + 'accessUrl' => ['description' => '文件下载链接。', 'type' => 'string', 'example' => 'https://mybucket.cn-hangzhou.com/xxxxxx'], ], ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取Ray Job日志', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"livyComputeId\\": \\"lc-i8xogcdfa4fk3yn1\\"\\n }\\n}","type":"json"}]', - 'title' => '创建Livy Gateway', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"B06AADC1-1627-5B1C-B62F-A2226C122897\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"accessUrl\\": \\"https://mybucket.cn-hangzhou.com/xxxxxx\\"\\n }\\n}","type":"json"}]', ], - 'UpdateLivyCompute' => [ - 'summary' => '更新Livy Gateway', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetRunConfiguration' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/runs/{runId}/action/getRunConfiguration', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '222234', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], - ], + 'operationType' => 'read', + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'workspaceBizId', + 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '工作空间id。', 'description' => '工作空间id。', 'type' => 'string', 'required' => true, 'example' => 'w-d2d82aa09151****'], ], [ - 'name' => 'livyComputeId', + 'name' => 'runId', 'in' => 'path', - 'schema' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lc-i8xogcdfa4fk3yn1', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '任务实例ID。', 'description' => '任务实例ID。', 'type' => 'string', 'required' => true, 'example' => 'jr-93d98d2f7061****'], ], [ - 'name' => 'body', - 'in' => 'body', - 'style' => 'json', + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '请求结构体。', + 'title' => '返回数据', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'name' => [ - 'description' => '名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'livyVersion' => [ - 'description' => 'Livy版本。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => '0.8.0', - 'enum' => [ - '0.8.0', - ], - ], - 'releaseVersion' => [ - 'description' => 'Spark引擎版本号,已废弃,请使用displayReleaseVersion。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12, Java Runtime)'."\n", - ], - 'queueName' => [ - 'description' => '队列名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', - ], - 'cpuLimit' => [ - 'description' => 'Livy Server的CPU核数。'."\n" - .'- 1'."\n" - .'- 2'."\n" - .'- 4', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => '1', - ], - 'memoryLimit' => [ - 'description' => 'Livy Server的内存大小。'."\n" - .'- 4Gi'."\n" - .'- 8Gi'."\n" - .'- 16Gi', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => '4Gi', - ], - 'autoStartConfiguration' => [ - 'description' => '自动启动配置。', + 'runConfiguration' => [ + 'description' => '运行配置。', 'type' => 'object', 'properties' => [ - 'enable' => [ - 'description' => '是否创建后自动启动。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'runtimeConfigs' => [ + 'title' => '运行配置。', + 'description' => '运行时参数列表。', + 'type' => 'array', + 'items' => ['description' => '运行时参数。', '$ref' => '#/components/schemas/Tag'], ], - ], - 'required' => false, - ], - 'autoStopConfiguration' => [ - 'description' => '自动终止配置。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => '是否允许自动终止。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'applicationConfigs' => [ + 'title' => '应用配置项', + 'description' => 'Spark配置参数列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'Spark配置参数。', + 'type' => 'object', + 'properties' => [ + 'configFileName' => ['title' => '应用配置文件名。 应用配置文件名。 ```spark-defaults.conf```', 'description' => '应用配置文件名。 应用配置文件名。', 'type' => 'string', 'example' => 'spark-defaults.conf'], + 'configItemKey' => ['title' => '配置项键。 配置项键。 ```dfs.namenode.checkpoint.period```', 'description' => '配置项键。', 'type' => 'string', 'example' => 'spark.driver.cores'], + 'configItemValue' => ['title' => '配置项值。 配置项值。 ```3600s```', 'description' => '配置项值。', 'type' => 'string', 'example' => '2'], + ], + ], ], - 'idleTimeoutMinutes' => [ - 'description' => 'Livy Gateway空闲指定分钟数后自动终止。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '300', + 'logConfig' => [ + 'description' => '日志配置。', + 'type' => 'object', + 'properties' => [ + 'LogLevel' => ['description' => '日志级别。', 'type' => 'string', 'example' => 'INFO'], + 'LogPath' => ['description' => '日志路径。', 'type' => 'string', 'example' => 'oss://test'], + ], ], ], - 'required' => false, - ], - 'authType' => [ - 'description' => '认证方式。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [], - 'example' => 'Token', - 'enum' => [ - 'Token', - ], - ], - 'displayReleaseVersion' => [ - 'description' => 'Spark引擎版本号。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12)'."\n", - ], - 'fusion' => [ - 'description' => '是否开启Fusion引擎加速。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'environmentId' => [ - 'description' => '运行环境ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ev-cq146allhtgkulp5smk0', - ], - 'networkName' => [ - 'description' => '网络连接名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'livyServerConf' => [ - 'description' => 'Livy Gateway配置,JSON格式,支持以下文件:'."\n" - ."\n" - .'- sparkDefaultsConf'."\n" - .'- sparkBlackListConf'."\n" - .'- livyConf'."\n" - .'- livyClientConf', - 'type' => 'string', - 'required' => false, - 'example' => '{'."\n" - .' "sparkDefaultsConf": "spark.driver.cores 1\\nspark.driver.memory 4g\\nspark.executor.cores 1\\nspark.executor.memory 4g\\n",'."\n" - .' "sparkBlackListConf": "spark.driver.cores\\nspark.driver.memory",'."\n" - .' "livyConf": "livy.server.session.timeout 1h\\n",'."\n" - .' "livyClientConf": "livy.rsc.sql.num-rows 1000\\n"'."\n" - .'}', - ], - 'enablePublic' => [ - 'description' => '公网地址开关状态。'."\n", - 'type' => 'boolean', - 'required' => false, ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], - 'required' => false, ], ], + ], + 'title' => '获取Spark任务配置', + 'summary' => '获取Spark任务配置', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"runConfiguration\\": {\\n \\"runtimeConfigs\\": [\\n {\\n \\"key\\": \\"workflowId\\",\\n \\"value\\": \\"wf-123test\\"\\n }\\n ],\\n \\"applicationConfigs\\": [\\n {\\n \\"configFileName\\": \\"spark-defaults.conf\\",\\n \\"configItemKey\\": \\"spark.driver.cores\\",\\n \\"configItemValue\\": \\"2\\"\\n }\\n ],\\n \\"logConfig\\": {\\n \\"LogLevel\\": \\"INFO\\",\\n \\"LogPath\\": \\"oss://test\\"\\n }\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'GetSessionCluster' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/sessionClusters/{sessionClusterId}', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '203510', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'allowEmptyValue' => false, + 'schema' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-1234abcd'], + ], + [ + 'name' => 'sessionClusterId', + 'in' => 'path', + 'allowEmptyValue' => false, + 'schema' => ['title' => '作业名称。', 'description' => '作业名称。', 'type' => 'string', 'required' => false, 'example' => 'emr-spark-demo-job'], + ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'title' => '返回数据', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', + 'sessionCluster' => [ + 'description' => '会话对象。', + 'type' => 'object', + 'properties' => [ + 'workspaceId' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'example' => 'w-1234abcd'], + 'sessionClusterId' => ['title' => '交互式作业会话id。', 'description' => '交互式作业会话ID。', 'type' => 'string', 'example' => '1234abcd-12ab-34cd-56ef-1234567890ab'], + 'userId' => ['title' => '任务实例ID。', 'description' => '用户ID。', 'type' => 'string', 'example' => '123xxxxxxxx'], + 'queueName' => ['title' => '作业实例名称。', 'description' => '队列名称。', 'type' => 'string', 'example' => 'dev_queue'], + 'state' => [ + 'title' => '作业状态。', + 'description' => '作业状态。'."\n" + .'- Starting:启动中。'."\n" + .'- Running:运行中。'."\n" + .'- Stopping:正在停止。'."\n" + .'- Stopped:已停止。'."\n" + .'- Error:已失败。', + 'type' => 'string', + 'enumValueTitles' => [], + 'example' => 'Running', + ], + 'stateChangeReason' => [ + 'description' => '状态变化原因。', + 'type' => 'object', + 'properties' => [ + 'code' => ['description' => '状态变化编码。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '状态变化消息。', 'type' => 'string', 'example' => 'ok'], + ], + ], + 'autoStartConfiguration' => [ + 'description' => '配置是否开启自动启动。', + 'type' => 'object', + 'properties' => [ + 'enable' => [ + 'description' => '是否开启自动启动。'."\n" + .'- true:是。'."\n" + .'- false:否。', + 'type' => 'boolean', + 'enumValueTitles' => [], + 'example' => 'false', + ], + ], + ], + 'autoStopConfiguration' => [ + 'description' => '配置是否允许自动终止。', + 'type' => 'object', + 'properties' => [ + 'enable' => [ + 'description' => '是否允许自动终止。'."\n" + .'- true:是。'."\n" + .'- false:否。', + 'type' => 'boolean', + 'enumValueTitles' => [], + 'example' => 'false', + ], + 'idleTimeoutMinutes' => ['description' => '会话空闲指定分钟数后自动终止。', 'type' => 'integer', 'format' => 'int32', 'example' => '60'], + ], + ], + 'applicationConfigs' => [ + 'description' => 'Spark应用配置列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'Spark应用配置。', + 'type' => 'object', + 'properties' => [ + 'configFileName' => ['description' => '配置文件名。', 'type' => 'string', 'example' => 'spark-defaults.conf'], + 'configItemKey' => ['description' => '配置键。', 'type' => 'string', 'example' => 'spark.app.name'], + 'configItemValue' => ['description' => '配置值。', 'type' => 'string', 'example' => 'test'], + ], + ], + ], + 'releaseVersion' => ['description' => 'Serverless Spark版本。', 'type' => 'string', 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)'], + 'name' => ['description' => '会话名称。', 'type' => 'string', 'example' => 'test'], + 'userName' => ['description' => '会话创建者名称。', 'type' => 'string', 'example' => 'user1'], + 'kind' => ['description' => '生效作业类型,必填,创建后无法修改。'."\n" + .'- SQLSCRIPT:SQL作业。'."\n" + .'- JAR:JAR作业。'."\n" + .'- PYTHON:Python作业。', 'type' => 'string', 'example' => 'SQL'], + 'webUI' => ['description' => '会话Spark UI链接地址。', 'type' => 'string', 'example' => 'https://spark-ui/link'], + 'draftId' => ['description' => '会话绑定的开发作业ID。', 'type' => 'string', 'example' => 'TSK-xxxxxxxx'], + 'domain' => ['description' => '会话Spark UI所属域。', 'type' => 'string', 'example' => 'your.domain.com'], + 'displayReleaseVersion' => ['description' => '控制台实际展示的版本。', 'type' => 'string', 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)'], + 'fusion' => ['description' => '是否开启Fusion引擎加速。', 'type' => 'boolean', 'example' => 'false'], + 'envId' => ['description' => '环境ID。', 'type' => 'string', 'example' => 'env-cpv569tlhtgndjl8****'], + 'gmtCreate' => ['description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '2024-09-01 06:23:01'."\n"], + 'startTime' => ['description' => '开始时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '2024-09-01 06:23:01'], + 'domainInner' => ['description' => '内网域名。', 'type' => 'string', 'example' => 'emr-spark-gateway-cn-hangzhou-internal.data.aliyuncs.com'], + 'extra' => ['description' => '会话额外元数据。', 'type' => 'string', 'example' => '{"extraInfoKey":"extraInfoValue"}'], + 'publicEndpointEnabled' => ['type' => 'boolean'], + 'connectionToken' => ['type' => 'string'], + ], ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', - 'title' => '更新Livy Gateway', - ], - 'ListLivyCompute' => [ - 'summary' => '列出Livy Gateway。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute', - 'methods' => [ - 'get', + 'title' => '获取会话详情', + 'summary' => '获取会话详情。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetSessionCluster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sessionCluster\\": {\\n \\"workspaceId\\": \\"w-1234abcd\\",\\n \\"sessionClusterId\\": \\"1234abcd-12ab-34cd-56ef-1234567890ab\\",\\n \\"userId\\": \\"123xxxxxxxx\\",\\n \\"queueName\\": \\"dev_queue\\",\\n \\"state\\": \\"Running\\",\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n },\\n \\"autoStartConfiguration\\": {\\n \\"enable\\": false\\n },\\n \\"autoStopConfiguration\\": {\\n \\"enable\\": false,\\n \\"idleTimeoutMinutes\\": 60\\n },\\n \\"applicationConfigs\\": [\\n {\\n \\"configFileName\\": \\"spark-defaults.conf\\",\\n \\"configItemKey\\": \\"spark.app.name\\",\\n \\"configItemValue\\": \\"test\\"\\n }\\n ],\\n \\"releaseVersion\\": \\"esr-4.0.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"name\\": \\"test\\",\\n \\"userName\\": \\"user1\\",\\n \\"kind\\": \\"SQL\\",\\n \\"webUI\\": \\"https://spark-ui/link\\",\\n \\"draftId\\": \\"TSK-xxxxxxxx\\",\\n \\"domain\\": \\"your.domain.com\\",\\n \\"displayReleaseVersion\\": \\"esr-4.0.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"fusion\\": false,\\n \\"envId\\": \\"env-cpv569tlhtgndjl8****\\",\\n \\"gmtCreate\\": 0,\\n \\"startTime\\": 0,\\n \\"domainInner\\": \\"emr-spark-gateway-cn-hangzhou-internal.data.aliyuncs.com\\",\\n \\"extra\\": \\"{\\\\\\"extraInfoKey\\\\\\":\\\\\\"extraInfoValue\\\\\\"}\\",\\n \\"publicEndpointEnabled\\": true,\\n \\"connectionToken\\": \\"\\"\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'GetSqlStatement' => [ + 'summary' => '获取SQL查询详情。', + 'path' => '/api/interactive/v1/workspace/{workspaceId}/statement/{statementId}', + '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' => 'list', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '222250', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeCode' => '224752', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'workspaceBizId', + 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], [ - 'name' => 'environmentId', - 'in' => 'query', - 'schema' => [ - 'description' => '运行环ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ev-cq31c7tlhtgm9nrrlj4g', - ], + 'name' => 'statementId', + 'in' => 'path', + 'schema' => ['description' => '交互式查询ID。', 'type' => 'string', 'required' => false, 'example' => 'st-2dadfhajk11cv****'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -5527,161 +4242,113 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', - ], 'data' => [ 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'livyComputes' => [ - 'description' => 'Livy Gateway列表。', + 'statementId' => ['description' => '查询ID。', 'type' => 'string', 'example' => 'st-1231311abadfaa'], + 'state' => [ + 'description' => '查询状态。', + 'type' => 'string', + 'enumValueTitles' => ['running' => 'running', 'available' => 'available', 'cancelled' => 'cancelled', 'error' => 'error', 'cancelling' => 'cancelling'], + 'example' => 'running', + 'enum' => ['running', 'error', 'waiting', 'cancelling', 'cancelled', 'available', 'success'], + ], + 'sqlOutputs' => [ + 'description' => 'SQL查询结果列表', 'type' => 'array', 'items' => [ + 'description' => '单个SQL查询结果', 'type' => 'object', 'properties' => [ - 'computeId' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'example' => 'lc-xxxxxxxxxxxx', - ], - 'name' => [ - 'description' => '名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'queueName' => [ - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'root_queue', - ], - 'status' => [ - 'description' => '运行状态。', - 'type' => 'string', - 'example' => 'RUNNING', - 'enum' => [ - 'RUNNING', - 'STOPPED', - 'STARTING', - 'STOPPING', - 'FAILED', - ], - ], - 'endpoint' => [ - 'description' => '公网连接地址。', - 'type' => 'string', - 'example' => 'emr-spark-livy-gateway-cn-hangzhou.data.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx', - ], - 'createdBy' => [ - 'description' => '创建者名称。', - 'type' => 'string', - 'example' => 'alice', - ], - 'gmtCreate' => [ - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456094000', - ], - 'startTime' => [ - 'description' => '启动时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456094000', - ], - 'endpointInner' => [ - 'description' => '内网连接地址。', - 'type' => 'string', - 'example' => 'emr-spark-livy-gateway-cn-hangzhou-internal.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx', - ], + 'rows' => ['description' => '查询数据,格式为经过JSON序列化的字符串。', 'type' => 'string', 'example' => '[{\\"values\\":[\\"test_db\\",\\"test_table\\",false]}'], + 'schema' => ['description' => 'Schema的详细信息,格式为经过JSON序列化的字符串。', 'type' => 'string', 'example' => '{\\"type\\":\\"struct\\",\\"fields\\":[{\\"name\\":\\"namespace\\",\\"type\\":\\"string\\",\\"nullable\\":false,\\"metadata\\":{}},{\\"name\\":\\"tableName\\",\\"type\\":\\"string\\",\\"nullable\\":false,\\"metadata\\":{}},{\\"name\\":\\"isTemporary\\",\\"type\\":\\"boolean\\",\\"nullable\\":false,\\"metadata\\":{}}]}'], + 'rowsFilePath' => ['type' => 'string'], ], ], ], + 'sqlErrorCode' => ['description' => 'SQL查询错误码。', 'type' => 'string', 'example' => 'ERROR-102'], + 'sqlErrorMessage' => ['description' => 'SQL查询错误信息。', 'type' => 'string', 'example' => 'error message'], + 'executionTime' => [ + 'description' => 'SQL查询耗时列表。', + 'type' => 'array', + 'items' => ['description' => '每个SQL查询消耗时间,单位毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1717138731701'], + ], ], ], + 'requestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"livyComputes\\": [\\n {\\n \\"computeId\\": \\"lc-xxxxxxxxxxxx\\",\\n \\"name\\": \\"test\\",\\n \\"queueName\\": \\"root_queue\\",\\n \\"status\\": \\"RUNNING\\",\\n \\"endpoint\\": \\"emr-spark-livy-gateway-cn-hangzhou.data.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx\\",\\n \\"createdBy\\": \\"alice\\",\\n \\"gmtCreate\\": 1749456094000,\\n \\"startTime\\": 1749456094000,\\n \\"endpointInner\\": \\"emr-spark-livy-gateway-cn-hangzhou-internal.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx\\"\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '列出Livy Gateway', - ], - 'StartLivyCompute' => [ - 'summary' => '启动Livy Gateway。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/start', - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取SQL查询详情', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetSqlStatement', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"data\\": {\\n \\"statementId\\": \\"st-1231311abadfaa\\",\\n \\"state\\": \\"running\\",\\n \\"sqlOutputs\\": [\\n {\\n \\"rows\\": \\"[{\\\\\\\\\\\\\\"values\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"test_db\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"test_table\\\\\\\\\\\\\\",false]}\\",\\n \\"schema\\": \\"{\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"struct\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"fields\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"namespace\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"string\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"nullable\\\\\\\\\\\\\\":false,\\\\\\\\\\\\\\"metadata\\\\\\\\\\\\\\":{}},{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"tableName\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"string\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"nullable\\\\\\\\\\\\\\":false,\\\\\\\\\\\\\\"metadata\\\\\\\\\\\\\\":{}},{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"isTemporary\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"boolean\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"nullable\\\\\\\\\\\\\\":false,\\\\\\\\\\\\\\"metadata\\\\\\\\\\\\\\":{}}]}\\",\\n \\"rowsFilePath\\": \\"\\"\\n }\\n ],\\n \\"sqlErrorCode\\": \\"ERROR-102\\",\\n \\"sqlErrorMessage\\": \\"error message\\",\\n \\"executionTime\\": [\\n 1717138731701\\n ]\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'GetTemplate' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/template', + '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' => 'none', - 'abilityTreeCode' => '222269', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '191100', + 'abilityTreeNodes' => ['FEATUREemapreduceUECZZL'], ], 'parameters' => [ [ 'name' => 'workspaceBizId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], ], [ - 'name' => 'livyComputeId', - 'in' => 'path', + 'name' => 'templateType', + 'in' => 'query', 'schema' => [ - 'description' => 'Livy Gateway的ID。', + 'description' => '模板类型。', 'type' => 'string', 'required' => false, - 'example' => 'lc-i8xogcdfa4fk3yn1', + 'example' => 'TASK', + 'default' => 'TASK', + 'enum' => ['TASK', 'SESSION'], ], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'templateBizId', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -5691,132 +4358,74 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', - ], + 'httpStatusCode' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '200'], + 'errorCode' => ['description' => '- 当success为false,返回业务错误码。'."\n" + .' '."\n" + .'- 当success为true,返回空值。', 'type' => 'string', 'example' => '040003'], + 'errorMessage' => ['description' => '- 当success为false,返回业务错误信息;'."\n" + ."\n" + .'- 当success为true,返回空值。', 'type' => 'string', 'example' => 'InvalidUser.NotFound'], + 'data' => ['description' => '返回数据。', '$ref' => '#/components/schemas/Template'], + 'success' => ['description' => '请求是否成功。', 'type' => 'boolean', 'example' => 'True'], + 'requestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => '484D9DDA-300D-525E-AF7A-0CCCA5C64A7A'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', - 'title' => '启动Livy Gateway', - ], - 'RefreshLivyComputeToken' => [ - 'summary' => '更新Livy Gateway的Token。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/token/{tokenId}', - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取EMR Serverless Spark任务模板信息', + 'summary' => '获取任务模板。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"httpStatusCode\\": \\"200\\",\\n \\"errorCode\\": \\"040003\\",\\n \\"errorMessage\\": \\"InvalidUser.NotFound\\",\\n \\"data\\": {\\n \\"templateType\\": \\"TASK\\",\\n \\"gmtModified\\": \\"2025-03-10T02:02:41.000+00:00\\",\\n \\"creator\\": 0,\\n \\"sparkLogLevel\\": \\"INFO\\",\\n \\"gmtCreated\\": \\"2025-03-10T02:02:41.000+00:00\\\\n\\",\\n \\"sparkDriverMemory\\": 1073741824,\\n \\"modifier\\": 0,\\n \\"sparkExecutorCores\\": 1,\\n \\"sparkConf\\": [\\n {\\n \\"value\\": \\"test_application\\",\\n \\"key\\": \\"spark.app.name\\"\\n }\\n ],\\n \\"sparkVersion\\": \\"esr-4.1.1\\",\\n \\"sparkExecutorMemory\\": 1073741824,\\n \\"fusion\\": true,\\n \\"isDefault\\": true,\\n \\"sparkDriverCores\\": 1,\\n \\"displaySparkVersion\\": \\"esr-4.1.1\\",\\n \\"sparkLogPath\\": \\"oss://your_bucket/path/to/your/log\\",\\n \\"name\\": \\"\\",\\n \\"bizId\\": \\"\\"\\n },\\n \\"success\\": true,\\n \\"requestId\\": \\"484D9DDA-300D-525E-AF7A-0CCCA5C64A7A\\"\\n}","type":"json"}]', + ], + 'GrantRoleToUsers' => [ + 'summary' => '调用GrantRoleToUsers为用户授予指定角色权限。', + 'path' => '/api/v1/auth/roles/grant', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'deprecated' => false, + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'update', - 'abilityTreeCode' => '222308', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeCode' => '193394', + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], 'parameters' => [ [ - 'name' => 'workspaceBizId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], - ], - [ - 'name' => 'livyComputeId', - 'in' => 'path', - 'schema' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lc-i8xogcdfa4fk3yn1', - ], - ], - [ - 'name' => 'tokenId', - 'in' => 'path', - 'schema' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lctk-xxxxxxxx', - ], - ], - [ 'name' => 'body', 'in' => 'body', 'style' => 'json', 'schema' => [ - 'description' => '请求结构体。', + 'description' => '请求体参数。', 'type' => 'object', 'properties' => [ - 'name' => [ - 'description' => '名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'token' => [ - 'description' => 'Token内容,长度需要大于等于16。', - 'type' => 'string', - 'required' => false, - 'example' => 'fe86812667f04v343', - ], - 'autoExpireConfiguration' => [ - 'description' => 'Token过期信息结构体。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => 'Token是否自动过期。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'expireDays' => [ - 'description' => '过期时间(天)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '7', - ], - ], + 'roleArn' => ['description' => '角色ARN。', 'type' => 'string', 'required' => false, 'example' => 'acs:emr::w-975bcfda9625****:role/Owner'], + 'userArns' => [ + 'description' => '用户ARN列表。', + 'type' => 'array', + 'items' => ['description' => '用户ARN。', 'type' => 'string', 'required' => false, 'example' => 'acs:emr::w-975bcfda96258dd7:member/20468369839086****'], 'required' => false, ], ], @@ -5826,322 +4435,201 @@ [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '请求返回体。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', - 'title' => '更新Livy Gateway的Token', - ], - 'GetLivyComputeToken' => [ - 'summary' => '获取Livy Gateway的Token。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/token/{tokenId}', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '赋予用户角色', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GrantRoleToUsers', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'ListCatalogs' => [ + 'summary' => '查看数据目录列表', + 'path' => '/api/v1/workspaces/{workspaceId}/catalogs', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'deprecated' => false, + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'get', - 'abilityTreeCode' => '222371', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '213262', + 'abilityTreeNodes' => ['FEATUREemapreduceR6MU4Y'], ], 'parameters' => [ [ - 'name' => 'workspaceBizId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], - ], - [ - 'name' => 'livyComputeId', + 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lc-6mkvn01zrg8rqhhv', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], [ - 'name' => 'tokenId', - 'in' => 'path', + 'name' => 'environment', + 'in' => 'query', 'schema' => [ - 'description' => 'Token ID。', + 'description' => '环境类型。', 'type' => 'string', 'required' => false, - 'example' => 'lctk-xxxxxxxx', + 'enumValueTitles' => ['dev' => 'dev', 'production' => 'production'], + 'example' => 'dev', ], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'title' => '返回数据', + 'description' => '返回数据', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '484D9DDA-300D-525E-AF7A-0CCCA5C64A7A', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '响应消息。', - 'type' => 'string', - 'example' => 'ok', - ], - 'data' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'tokenId' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'example' => 'lctk-xxxxxxxxxx', - ], - 'name' => [ - 'description' => 'Token名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'token' => [ - 'description' => 'Token内容。', - 'type' => 'string', - 'example' => 'd25561157a635bb', - ], - 'createdBy' => [ - 'description' => '创建者名称。', - 'type' => 'string', - 'example' => 'alice', - ], - 'createTime' => [ - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456094000', - ], - 'expireTime' => [ - 'description' => '过期时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749457994000', - ], - 'lastUsedTime' => [ - 'description' => '上次使用时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456098000', - ], - 'autoExpireConfiguration' => [ - 'description' => 'Token过期信息结构体。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => 'Token是否自动过期。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'expireDays' => [ - 'description' => '过期时间(天)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '7', - ], + 'catalogs' => [ + 'description' => '数据目录。', + 'type' => 'array', + 'items' => [ + 'description' => '数据目录。', + 'type' => 'object', + 'properties' => [ + 'catalogId' => ['title' => 'regionId。', 'description' => '数据目录ID。', 'type' => 'string', 'example' => '15097**********'], + 'workspaceId' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'example' => 'w-d2d82aa09155****'."\n"], + 'environments' => [ + 'description' => '环境类型。', + 'type' => 'array', + 'items' => ['description' => '环境类型。', 'type' => 'string', 'example' => 'dev,production'], + ], + 'catalogType' => ['description' => '是否为默认数据目录。', 'type' => 'string', 'example' => 'default_catalog'], + 'catalogProvider' => ['description' => '数据目录类型。', 'type' => 'string', 'example' => 'HMS'], + 'gmtCreate' => ['description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1760604889'], + 'gmtModified' => ['description' => '更新时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1760604889'], + 'resourceOwnerId' => ['description' => '资源持有者ID。', 'type' => 'string', 'example' => '15097**********'], + 'alias' => ['title' => 'alias', 'type' => 'string', 'example' => 'alias'], + 'extras' => [ + 'description' => '额外信息。', + 'type' => 'object', + 'additionalProperties' => ['type' => 'string', 'description' => '额外信息。', 'example' => '{"networkName":"hms","metastoreUrl":"thrift://master-1-1.c-70*********.cn-hangzhou.emr.aliyuncs.com:9083","keytabPath":"oss://********/hive.keytab","principal":"hive/master-1-1.c-70****************"}'], ], ], ], ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'nextToken' => ['title' => '下一页TOKEN。', 'description' => '下一页TOKEN。', 'type' => 'string', 'example' => '1'], + 'totalCount' => ['title' => '记录总数。', 'description' => '记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'maxResults' => ['title' => '一次获取的最大记录数。', 'description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"484D9DDA-300D-525E-AF7A-0CCCA5C64A7A\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"tokenId\\": \\"lctk-xxxxxxxxxx\\",\\n \\"name\\": \\"test\\",\\n \\"token\\": \\"d25561157a635bb\\",\\n \\"createdBy\\": \\"alice\\",\\n \\"createTime\\": 1749456094000,\\n \\"expireTime\\": 1749457994000,\\n \\"lastUsedTime\\": 1749456098000,\\n \\"autoExpireConfiguration\\": {\\n \\"enable\\": false,\\n \\"expireDays\\": 7\\n }\\n }\\n}","type":"json"}]', - 'title' => '获取Livy Gateway的Token', - ], - 'CreateLivyComputeToken' => [ - 'summary' => '创建Livy Gateway的Token。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/token', - 'methods' => [ - 'put', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询数据目录列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListCatalogs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"catalogs\\": [\\n {\\n \\"catalogId\\": \\"15097**********\\",\\n \\"workspaceId\\": \\"w-d2d82aa09155****\\\\n\\",\\n \\"environments\\": [\\n \\"dev,production\\"\\n ],\\n \\"catalogType\\": \\"default_catalog\\",\\n \\"catalogProvider\\": \\"HMS\\",\\n \\"gmtCreate\\": 1760604889,\\n \\"gmtModified\\": 1760604889,\\n \\"resourceOwnerId\\": \\"15097**********\\",\\n \\"alias\\": \\"alias\\",\\n \\"extras\\": {\\n \\"key\\": \\"{\\\\\\"networkName\\\\\\":\\\\\\"hms\\\\\\",\\\\\\"metastoreUrl\\\\\\":\\\\\\"thrift://master-1-1.c-70*********.cn-hangzhou.emr.aliyuncs.com:9083\\\\\\",\\\\\\"keytabPath\\\\\\":\\\\\\"oss://********/hive.keytab\\\\\\",\\\\\\"principal\\\\\\":\\\\\\"hive/master-1-1.c-70****************\\\\\\"}\\"\\n }\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"totalCount\\": 200,\\n \\"maxResults\\": 20\\n}","type":"json"}]', + ], + 'ListExecutorLogs' => [ + 'summary' => '列出作业executor的日志文件列表', + 'path' => '/api/v1/workspaces/{workspaceId}/jobRuns/{jobRunId}/executors/{executorId}/logs', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', - 'abilityTreeCode' => '222305', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'operationType' => 'none', + 'abilityTreeCode' => '231264', + 'abilityTreeNodes' => ['FEATUREemapreduceT8XN05'], ], 'parameters' => [ [ - 'name' => 'workspaceBizId', + 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d2d82aa09155****'], ], [ - 'name' => 'livyComputeId', + 'name' => 'jobRunId', 'in' => 'path', - 'schema' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lc-zm4dzdiubu73w2yx', - ], + 'schema' => ['description' => '任务运行ID。', 'type' => 'string', 'required' => true, 'example' => 'jr-f09a8fda2396****'], ], [ - 'name' => 'body', - 'in' => 'body', - 'style' => 'json', - 'schema' => [ - 'description' => '请求结构体。', - 'type' => 'object', - 'properties' => [ - 'name' => [ - 'description' => 'Token名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'mytoken', - ], - 'token' => [ - 'description' => 'Token内容,长度需要大于等于16。', - 'type' => 'string', - 'required' => false, - 'example' => 'gs3fy75w4o7hqe5s', - ], - 'autoExpireConfiguration' => [ - 'description' => 'Token过期信息结构体。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => 'Token是否自动过期。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'expireDays' => [ - 'description' => '过期时间(天)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '7', - ], - ], - 'required' => false, - ], - ], - 'required' => false, - ], + 'name' => 'executorId', + 'in' => 'path', + 'schema' => ['description' => '作业Executor ID。', 'type' => 'string', 'required' => true, 'example' => '1'], + ], + [ + 'name' => 'nextToken', + 'in' => 'query', + 'schema' => ['description' => '下一页TOKEN。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'maxResults', + 'in' => 'query', + 'schema' => ['description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'logType', + 'in' => 'query', + 'schema' => ['description' => '日志类型。', 'type' => 'string', 'required' => false, 'example' => 'log4j'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -6151,30 +4639,22 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '错误详情。', - 'type' => 'string', - 'example' => 'ok', - ], - 'data' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'tokenId' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'example' => 'lctk-xxxxxxxx', + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + 'nextToken' => ['description' => '下一页TOKEN。', 'type' => 'string', 'example' => '2'], + 'maxResults' => ['description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'totalCount' => ['description' => '记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'logs' => [ + 'description' => '获取到的日志,按上下文顺序排列。当根据指定起始日志查询不到上下文日志时,此参数为空。', + 'type' => 'array', + 'items' => [ + 'description' => '获取到的日志,按上下文顺序排列。当根据指定起始日志查询不到上下文日志时,此参数为空。', + 'type' => 'object', + 'properties' => [ + 'logName' => ['description' => '日志名称。', 'type' => 'string', 'example' => 'log4j.log'], + 'logType' => ['description' => '日志类型。', 'type' => 'string', 'example' => 'log4j'], + 'fileName' => ['description' => '文件全路径名称。', 'type' => 'string', 'example' => 'oss://spark-*********/w-*******467/spark/logs/jr-581482ffa9f4e0e8/driver/stdout.log'], + 'updateTime' => ['description' => '日志更新时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1745390462'], + 'fileSize' => ['description' => '文件大小。', 'type' => 'integer', 'format' => 'int64', 'example' => '6383327'], ], ], ], @@ -6182,82 +4662,76 @@ ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"tokenId\\": \\"lctk-xxxxxxxx\\"\\n }\\n}","type":"json"}]', - 'title' => '创建Livy Gateway的Token', - ], - 'DeleteLivyComputeToken' => [ - 'summary' => '删除Livy Gateway的Token。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/token/{tokenId}', - 'methods' => [ - 'delete', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'schemes' => [ - 'http', - 'https', + 'title' => '获取Spark作业日志', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"nextToken\\": \\"2\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200,\\n \\"logs\\": [\\n {\\n \\"logName\\": \\"log4j.log\\",\\n \\"logType\\": \\"log4j\\",\\n \\"fileName\\": \\"oss://spark-*********/w-*******467/spark/logs/jr-581482ffa9f4e0e8/driver/stdout.log\\",\\n \\"updateTime\\": 1745390462,\\n \\"fileSize\\": 6383327\\n }\\n ]\\n}","type":"json"}]', + ], + 'ListJobExecutors' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/jobRuns/{jobRunId}/executors', + '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' => 'delete', - 'abilityTreeCode' => '222309', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '231260', + 'abilityTreeNodes' => ['FEATUREemapreduceT8XN05'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'workspaceBizId', + 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d2d82aa09155****'], ], [ - 'name' => 'livyComputeId', + 'name' => 'jobRunId', 'in' => 'path', - 'schema' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lc-zm4dzdiubu73w2yx', - ], + 'schema' => ['description' => '任务运行ID。', 'type' => 'string', 'required' => true, 'example' => 'jr-f09a8fda2396****'], ], [ - 'name' => 'tokenId', - 'in' => 'path', - 'schema' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lctk-xxxxxxxxxx', - ], + 'name' => 'nextToken', + 'in' => 'query', + 'schema' => ['description' => '下一页TOKEN。', 'type' => 'string', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'maxResults', + 'in' => 'query', + 'schema' => ['description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'status', + 'in' => 'query', + 'schema' => ['description' => 'Executor状态。', 'type' => 'string', 'required' => false, 'example' => 'Dead'], + ], + [ + 'name' => 'executorType', + 'in' => 'query', + 'schema' => ['description' => 'Executor类型。', 'type' => 'string', 'required' => false, 'example' => 'driver'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -6267,261 +4741,397 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'nextToken' => ['description' => '下一页TOKEN。', 'type' => 'string', 'example' => '2'], + 'maxResults' => ['description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'totalCount' => ['description' => '记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'exexutors' => [ + 'description' => 'Executor列表。', + 'type' => 'array', + 'items' => [ + 'description' => '单条Executor信息。', + 'type' => 'object', + 'properties' => [ + 'workspaceId' => ['description' => '工作空间ID。', 'type' => 'string', 'example' => 'w-78faee4da118f02e'], + 'jobRunId' => ['description' => '任务运行ID。', 'type' => 'string', 'example' => 'jr-1fe145df8ade366a'], + 'executorId' => ['description' => '作业Executor ID。', 'type' => 'string', 'example' => '1'], + 'status' => ['description' => 'Executor运行状态。', 'type' => 'string', 'example' => 'Running'], + 'hostPort' => ['description' => 'Executor地址信息。', 'type' => 'string', 'example' => '21.10.x.x:1201x'], + 'rddBlocks' => ['description' => 'Executor管理的RDD Block数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'memoryUsed' => ['description' => 'Executor内存使用率。', 'type' => 'integer', 'format' => 'int64', 'example' => '30'], + 'diskUsed' => ['description' => 'Executor磁盘率。', 'type' => 'integer', 'format' => 'int64', 'example' => '20'], + 'totalCores' => ['description' => 'Executor总核数。', 'type' => 'integer', 'format' => 'int64', 'example' => '4'], + 'activeTasks' => ['description' => 'Executor总执行活跃任务数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'failedTasks' => ['description' => 'Executor总执行失败任务数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + 'completedTasks' => ['description' => 'Executor总执行完成任务数。', 'type' => 'integer', 'format' => 'int64', 'example' => '8'], + 'totalTasks' => ['description' => 'Executor总执行任务数。', 'type' => 'integer', 'format' => 'int64', 'example' => '50'], + 'totalDuration' => ['description' => 'Executor总运行时长。', 'type' => 'integer', 'format' => 'int64', 'example' => '123'], + 'totalGCTime' => ['description' => 'Executor总GC时长', 'type' => 'integer', 'format' => 'int64', 'example' => '3'], + 'totalInputBytes' => ['description' => 'Executor输入数据字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1024'], + 'totalShuffleRead' => ['description' => 'Executor Shuffle Read字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2048'], + 'totalShuffleWrite' => ['description' => 'Executor Shuffle Write字节数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2048'."\n"], + 'maxMemory' => ['description' => 'Executor最大内存。', 'type' => 'integer', 'format' => 'int64', 'example' => '4294967296'], + 'addTime' => ['description' => 'Executor创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1760601***'], + 'executorType' => ['description' => 'Executor类型。', 'type' => 'string', 'example' => 'driver'], + ], + ], ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', - 'title' => '删除Livy Gateway的Token', - ], - 'StopLivyCompute' => [ - 'summary' => '停止Livy Gateway。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/stop', - 'methods' => [ - 'post', + 'title' => '作业Executor列表', + 'summary' => '列出作业的executors', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListJobExecutors', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"2\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200,\\n \\"exexutors\\": [\\n {\\n \\"workspaceId\\": \\"w-78faee4da118f02e\\",\\n \\"jobRunId\\": \\"jr-1fe145df8ade366a\\",\\n \\"executorId\\": \\"1\\",\\n \\"status\\": \\"Running\\",\\n \\"hostPort\\": \\"21.10.x.x:1201x\\",\\n \\"rddBlocks\\": 10,\\n \\"memoryUsed\\": 30,\\n \\"diskUsed\\": 20,\\n \\"totalCores\\": 4,\\n \\"activeTasks\\": 10,\\n \\"failedTasks\\": 2,\\n \\"completedTasks\\": 8,\\n \\"totalTasks\\": 50,\\n \\"totalDuration\\": 123,\\n \\"totalGCTime\\": 3,\\n \\"totalInputBytes\\": 1024,\\n \\"totalShuffleRead\\": 2048,\\n \\"totalShuffleWrite\\": 2048,\\n \\"maxMemory\\": 4294967296,\\n \\"addTime\\": 0,\\n \\"executorType\\": \\"driver\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'ListJobRuns' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/jobRuns', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'deprecated' => false, + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'none', - 'abilityTreeCode' => '222278', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'operationType' => 'list', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '215800', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'workspaceBizId', + 'name' => 'nextToken', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '标记当前开始读取的位置。', 'description' => '标记当前开始读取的位置。', 'type' => 'string', 'required' => false, 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C89568980'], + ], + [ + 'name' => 'maxResults', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '一次获取的最大记录数。', 'description' => '一次获取的最大记录数,最大不超过100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'workspaceId', 'in' => 'path', + 'allowEmptyValue' => false, + 'schema' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d2d82aa09155****'], + ], + [ + 'name' => 'name', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '作业名称。', 'description' => '任务名称。', 'type' => 'string', 'required' => false, 'example' => 'emr-spark-demo-job'], + ], + [ + 'name' => 'creator', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '创建用户Uid。', 'description' => '创建用户UID。', 'type' => 'string', 'required' => false, 'example' => '150976534701****'], + ], + [ + 'name' => 'jobRunId', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '作业id。', 'description' => '任务ID。', 'type' => 'string', 'required' => false, 'example' => 'j-xxx'], + ], + [ + 'name' => 'tags', + 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'json', 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', + 'title' => '标签。', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'description' => '标签对象。', + 'type' => 'object', + 'properties' => [ + 'key' => ['description' => '标签键。', 'type' => 'string', 'required' => false, 'example' => 'tag_key'], + 'value' => ['description' => '标签值。', 'type' => 'string', 'required' => false, 'example' => 'value'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'w-8adde60aa809701f', ], ], [ - 'name' => 'livyComputeId', - 'in' => 'path', + 'name' => 'states', + 'in' => 'query', + 'allowEmptyValue' => false, + 'style' => 'json', 'schema' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', + 'title' => '作业状态。', + 'description' => '任务状态。', + 'type' => 'array', + 'items' => ['description' => '任务状态。取值范围:'."\n" + .'- Submitted:已提交。'."\n" + .'- Pending:待处理。'."\n" + .'- Running:运行中。'."\n" + .'- Success:成功。'."\n" + .'- Failed:失败。'."\n" + .'- Cancelling:取消中。'."\n" + .'- Cancelled:已取消。'."\n" + .'- CancelFailed:取消失败。', 'type' => 'string', 'required' => false, 'example' => 'Running'], 'required' => false, - 'example' => 'lc-6mkvn01zrg8rqhhv', + 'example' => '["Running","Submitted"]', ], ], [ - 'name' => 'regionId', + 'name' => 'startTime', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', + 'description' => '任务开始时间范围。', + 'type' => 'object', + 'properties' => [ + 'startTime' => ['description' => '任务开始时间范围的起点。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1709740800000'], + 'endTime' => ['description' => '任务开始时间范围的终点。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1710432000000'], + ], 'required' => false, - 'example' => 'cn-hangzhou', ], ], + [ + 'name' => 'endTime', + 'in' => 'query', + 'style' => 'json', + 'schema' => [ + 'description' => '任务结束时间范围。', + 'type' => 'object', + 'properties' => [ + 'startTime' => ['description' => '任务结束时间范围的起点。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1709740800000'], + 'endTime' => ['description' => '任务结束时间范围的终点。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1710432000000'], + ], + 'required' => false, + ], + ], + [ + 'name' => 'resourceQueueId', + 'in' => 'query', + 'schema' => ['description' => 'Spark任务运行的资源队列名称。', 'type' => 'string', 'required' => false, 'example' => 'dev_queue'], + ], + [ + 'name' => 'jobRunDeploymentId', + 'in' => 'query', + 'schema' => ['description' => '流任务部署的任务ID。', 'type' => 'string', 'required' => false, 'example' => 'jd-b6d003f1930f****'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + [ + 'name' => 'minDuration', + 'in' => 'query', + 'schema' => ['description' => '任务执行时长的最小值,单位ms。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '60000'], + ], + [ + 'name' => 'isWorkflow', + 'in' => 'query', + 'schema' => ['description' => '是否为工作流任务。', 'type' => 'string', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'runtimeConfigs', + 'in' => 'query', + 'schema' => ['description' => '运行配置。', 'type' => 'string', 'required' => false, 'example' => '[{\\"key\\":\\"mainClass\\",\\"value\\":\\"yourClass\\"}]'], + ], + [ + 'name' => 'applicationConfigs', + 'in' => 'query', + 'schema' => ['description' => 'spark配置。', 'type' => 'string', 'required' => false, 'example' => '[{\\"key\\":\\"spark.app.name\\",\\"value\\":\\"test\\"}]'], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'title' => '返回数据', + 'description' => '返回数据', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '484D9DDA-300D-525E-AF7A-0CCCA5C64A7A', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', + 'jobRuns' => [ + 'description' => 'Spark任务列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'Spark任务对象。', + 'type' => 'object', + 'properties' => [ + 'workspaceId' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'example' => 'w-d2d82aa09155****'], + 'jobRunId' => ['title' => '任务实例ID。', 'description' => '任务ID。', 'type' => 'string', 'example' => 'jr-231231'], + 'name' => ['title' => '作业实例名称。', 'description' => '任务名称。', 'type' => 'string', 'example' => 'jobName'], + 'state' => ['title' => '作业状态。', 'description' => '任务状态。', 'type' => 'string', 'example' => 'Running'], + 'stateChangeReason' => [ + 'description' => '状态变化原因。', + 'type' => 'object', + 'properties' => [ + 'code' => ['description' => '错误码。', 'type' => 'string', 'example' => '0'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'connection refused'."\n"], + ], + ], + 'submitTime' => ['title' => '作业提交时间。', 'description' => '任务提交时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1684119314000'], + 'endTime' => ['title' => '作业结束时间。', 'description' => '任务结束时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1684119314000'], + 'codeType' => ['title' => '作业代码类型。', 'description' => '任务代码类型。取值范围:'."\n" + ."\n" + .'SQL'."\n" + ."\n" + .'JAR'."\n" + ."\n" + .'PYTHON', 'type' => 'string', 'example' => 'SQL'], + 'webUI' => ['title' => '作业web ui。', 'description' => '作业Web UI。', 'type' => 'string', 'example' => 'http://spark-ui'], + 'executionTimeoutSeconds' => ['title' => '运行超时时间。', 'description' => '运行超时时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '3600'], + 'creator' => ['title' => '创建用户Uid。', 'description' => '创建用户UID。', 'type' => 'string', 'example' => '150978934701****'], + 'tags' => [ + 'title' => '标签。', + 'description' => '标签。', + 'type' => 'array', + 'items' => ['description' => '任务标签.', '$ref' => '#/components/schemas/Tag'], + ], + 'log' => ['description' => '运行日志路径。', '$ref' => '#/components/schemas/RunLog'], + 'releaseVersion' => ['description' => '运行任务的Spark引擎版本。', 'type' => 'string', 'example' => 'esr-3.0.0 (Spark 3.4.3, Scala 2.12, Native Runtime)'], + 'jobDriver' => ['description' => 'Spark Driver相关信息,List接口不返回此参数。', '$ref' => '#/components/schemas/JobDriver'], + 'configurationOverrides' => [ + 'description' => 'Spark高级配置,List接口不返回此参数。', + 'type' => 'object', + 'properties' => [ + 'configurations' => [ + 'description' => 'Spark Conf列表。', + 'type' => 'array', + 'items' => ['description' => 'Spark Conf对象。', '$ref' => '#/components/schemas/Configuration'], + ], + ], + ], + 'displayReleaseVersion' => ['description' => '运行任务的Spark引擎版本。', 'type' => 'string', 'example' => 'esr-3.0.0 (Spark 3.4.3, Scala 2.12)'], + 'fusion' => ['description' => '是否开启Fusion引擎加速。', 'type' => 'boolean', 'example' => 'true'], + 'vcoreSeconds' => ['description' => '任务已分配的 vcore 总量乘以任务已运行的秒数。', 'type' => 'integer', 'format' => 'int64', 'example' => '8236'], + 'mbSeconds' => ['description' => '任务已分配的内存总量乘以任务已运行的秒数。', 'type' => 'integer', 'format' => 'int64', 'example' => '33030784'], + 'cuHours' => ['description' => '任务运行周期内所消耗的 CU 数量(该值为预估值,最终以账单为准)。', 'type' => 'number', 'format' => 'double', 'example' => '2.059'], + 'resourceQueueId' => ['type' => 'string', 'example' => 'dev_queue'], + 'priority' => ['type' => 'string', 'example' => '5'], + ], + ], ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'nextToken' => ['title' => '返回读取到的数据位置。', 'description' => '返回读取到的数据位置。', 'type' => 'string', 'example' => '1'], + 'maxResults' => ['title' => '本次请求所返回的最大记录条数。', 'description' => '本次请求所返回的最大记录条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'totalCount' => ['title' => '本次请求条件下的数据总量。', 'description' => '本次请求条件下的数据总量。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'eventInfo' => [ + 'enable' => false, + 'eventNames' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"484D9DDA-300D-525E-AF7A-0CCCA5C64A7A\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', - 'title' => '停止Livy Gateway', - ], - 'ListLivyComputeToken' => [ - 'summary' => '列出Livy Gateway的Token。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/token', - 'methods' => [ - 'get', + 'title' => '获取Spark任务列表', + 'summary' => '调用ListJobRuns获取Spark任务列表。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListJobRuns', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"jobRuns\\": [\\n {\\n \\"workspaceId\\": \\"w-d2d82aa09155****\\",\\n \\"jobRunId\\": \\"jr-231231\\",\\n \\"name\\": \\"jobName\\",\\n \\"state\\": \\"Running\\",\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"0\\",\\n \\"message\\": \\"connection refused\\\\n\\"\\n },\\n \\"submitTime\\": 1684119314000,\\n \\"endTime\\": 1684119314000,\\n \\"codeType\\": \\"SQL\\",\\n \\"webUI\\": \\"http://spark-ui\\",\\n \\"executionTimeoutSeconds\\": 3600,\\n \\"creator\\": \\"150978934701****\\",\\n \\"tags\\": [\\n {\\n \\"key\\": \\"workflowId\\",\\n \\"value\\": \\"wf-123test\\"\\n }\\n ],\\n \\"log\\": {\\n \\"driverStdOut\\": \\"oss://bucket/path/to/stdout\\",\\n \\"driverStdError\\": \\"oss://bucket/path/to/stderr\\",\\n \\"driverSyslog\\": \\"oss://bucket/path/to/syslog\\",\\n \\"driverStartup\\": \\"oss://bucket/path/to/startup\\"\\n },\\n \\"releaseVersion\\": \\"esr-3.0.0 (Spark 3.4.3, Scala 2.12, Native Runtime)\\",\\n \\"jobDriver\\": {\\n \\"sparkSubmit\\": {\\n \\"entryPoint\\": \\"oss://bucket/path/to/entrypoint.jar\\",\\n \\"entryPointArguments\\": [\\n \\"arg1\\"\\n ],\\n \\"sparkSubmitParameters\\": \\"--conf spark.app.name=test\\"\\n }\\n },\\n \\"configurationOverrides\\": {\\n \\"configurations\\": [\\n {\\n \\"configFileName\\": \\"common.conf\\",\\n \\"configItemKey\\": \\"hive.metastore.type\\",\\n \\"configItemValue\\": \\"USER_RDS\\"\\n }\\n ]\\n },\\n \\"displayReleaseVersion\\": \\"esr-3.0.0 (Spark 3.4.3, Scala 2.12)\\",\\n \\"fusion\\": true,\\n \\"vcoreSeconds\\": 8236,\\n \\"mbSeconds\\": 33030784,\\n \\"cuHours\\": 2.059,\\n \\"resourceQueueId\\": \\"dev_queue\\",\\n \\"priority\\": \\"5\\"\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', + ], + 'ListKyuubiServices' => [ + 'path' => '/api/v1/kyuubi/{workspaceId}', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', - 'abilityTreeCode' => '222370', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], ], 'parameters' => [ [ - 'name' => 'workspaceBizId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], - ], - [ - 'name' => 'livyComputeId', + 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'lc-zm4dzdiubu73w2yx', - ], - ], - [ - 'name' => 'regionId', - 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '返回结构体。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], 'data' => [ 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'tokens' => [ - 'description' => 'Token列表。', + 'kyuubiServices' => [ + 'description' => 'KyuubiServer列表。', 'type' => 'array', 'items' => [ - 'description' => 'Token信息。', + 'description' => 'KyuubiServer记录。', 'type' => 'object', 'properties' => [ - 'tokenId' => [ - 'description' => 'Token ID。', - 'type' => 'string', - 'example' => 'lctk-xxxxxxxxxxx', - ], - 'name' => [ - 'description' => 'Token名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'token' => [ - 'description' => 'Token内容。', - 'type' => 'string', - 'example' => '5d37843fb6f1e8', - ], - 'createdby' => [ - 'description' => 'Token创建人。', - 'type' => 'string', - 'example' => 'alice', - ], - 'createTime' => [ - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456094000', - ], - 'expireTime' => [ - 'description' => '过期时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456994000', - ], - 'lastUsedTime' => [ - 'description' => '上次使用时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456098000', - ], + 'kyuubiConfigs' => ['description' => 'KyuubiServer配置。', 'type' => 'string', 'example' => 'kyuubi.conf.key=value1'."\n" + .'kyuubi.conf.key1=value2'], + 'sparkConfigs' => ['description' => 'KyuubiServer启动Spark Application默认配置。', 'type' => 'string', 'example' => 'spark.conf.key=value1'."\n" + .'spark.conf.key1=value2'], + 'state' => ['description' => 'KyuubiServer状态。', 'type' => 'string', 'example' => 'Running'], + 'name' => ['description' => 'KyuubiServer名称。', 'type' => 'string', 'example' => 'test'], + 'queue' => ['description' => '队列名称。', 'type' => 'string', 'example' => 'dev_queue'], + 'createTime' => ['description' => '创建时间。', 'type' => 'string', 'example' => '2025-03-11T08:21:58Z'], + 'startTime' => ['description' => 'KyuubiServer最近启动时间。', 'type' => 'string', 'example' => '2024-11-23 09:22:00'], + 'creator' => ['description' => '创建用户UID。', 'type' => 'string', 'example' => '103*******'], + 'kyuubiServiceId' => ['description' => 'KyuubiServer ID。', 'type' => 'string', 'example' => 'kb-070104e7631242448d12a1377c309f30'], + 'innerEndpoint' => ['description' => '内网域名。', 'type' => 'string', 'example' => 'kyuubi-cn-hangzhou-internal.spark.emr.aliyuncs.com'], + 'publicEndpoint' => ['description' => '公网域名。', 'type' => 'string', 'example' => 'emr-spark-kyuubi-gateway-cn-hangzhou.aliyuncs.com'], + 'releaseVersion' => ['description' => 'Spark引擎版本号。', 'type' => 'string', 'example' => 'esr-4.2.0 (Spark 3.5.2, Scala 2.12)'."\n"], + 'computeInstance' => ['description' => 'KyuubiServer实例规格。', 'type' => 'string', 'example' => '4C16G'], + 'replica' => ['description' => 'KyuubiServer副本数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'kyuubiReleaseVersion' => ['description' => 'KyuubiServer版本。', 'type' => 'string', 'example' => '1.9.2-0.0.1'], ], ], ], @@ -6531,469 +5141,352 @@ ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"tokens\\": [\\n {\\n \\"tokenId\\": \\"lctk-xxxxxxxxxxx\\",\\n \\"name\\": \\"test\\",\\n \\"token\\": \\"5d37843fb6f1e8\\",\\n \\"createdby\\": \\"alice\\",\\n \\"createTime\\": 1749456094000,\\n \\"expireTime\\": 1749456994000,\\n \\"lastUsedTime\\": 1749456098000\\n }\\n ]\\n }\\n}","type":"json"}]', - 'title' => '列出Livy Gateway的Token', - ], - 'GetLivyCompute' => [ - 'summary' => '获取Livy Gateway信息。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '列出Kyuubi Gateway信息', + 'summary' => '列出Kyuubi Gateway。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListKyuubiServices', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"kyuubiServices\\": [\\n {\\n \\"kyuubiConfigs\\": \\"kyuubi.conf.key=value1\\\\nkyuubi.conf.key1=value2\\",\\n \\"sparkConfigs\\": \\"spark.conf.key=value1\\\\nspark.conf.key1=value2\\",\\n \\"state\\": \\"Running\\",\\n \\"name\\": \\"test\\",\\n \\"queue\\": \\"dev_queue\\",\\n \\"createTime\\": \\"2025-03-11T08:21:58Z\\",\\n \\"startTime\\": \\"2024-11-23 09:22:00\\",\\n \\"creator\\": \\"103*******\\",\\n \\"kyuubiServiceId\\": \\"kb-070104e7631242448d12a1377c309f30\\",\\n \\"innerEndpoint\\": \\"kyuubi-cn-hangzhou-internal.spark.emr.aliyuncs.com\\",\\n \\"publicEndpoint\\": \\"emr-spark-kyuubi-gateway-cn-hangzhou.aliyuncs.com\\",\\n \\"releaseVersion\\": \\"esr-4.2.0 (Spark 3.5.2, Scala 2.12)\\\\n\\",\\n \\"computeInstance\\": \\"4C16G\\",\\n \\"replica\\": 3,\\n \\"kyuubiReleaseVersion\\": \\"1.9.2-0.0.1\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'ListKyuubiSparkApplications' => [ + 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}/applications', + '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', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '222260', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], ], 'parameters' => [ [ - 'name' => 'workspaceBizId', + 'name' => 'nextToken', + 'in' => 'query', + 'schema' => ['description' => '下一页TOKEN。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'maxResults', + 'in' => 'query', + 'schema' => ['description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'workspaceId', 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], + ], + [ + 'name' => 'kyuubiServiceId', + 'in' => 'path', + 'schema' => ['description' => 'Kyuubi服务ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'], + ], + [ + 'name' => 'applicationId', + 'in' => 'query', + 'schema' => ['description' => 'Kyuubi提交的Spark应用ID,用于搜索。', 'type' => 'string', 'required' => false, 'example' => 'spark-339f844005b6404c95f9f7c7a13b****'], + ], + [ + 'name' => 'applicationName', + 'in' => 'query', + 'schema' => ['description' => 'Kyuubi提交的Spark应用名,用于搜索。', 'type' => 'string', 'required' => false, 'example' => 'kyuubi-connection-spark-sql-anonymous-fa9a5e73-b4b1-474a-b****'], + ], + [ + 'name' => 'startTime', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', + 'description' => '任务开始时间范围。', + 'type' => 'object', + 'properties' => [ + 'startTime' => ['description' => '任务开始时间范围的起点。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1709740800000'], + 'endTime' => ['description' => '任务开始时间范围的终点。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1710432000000'], + ], 'required' => false, - 'example' => 'w-8adde60aa809701f', ], ], [ - 'name' => 'livyComputeId', - 'in' => 'path', + 'name' => 'resourceQueueId', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'example' => 'root_queue', 'description' => ''], + ], + [ + 'name' => 'minDuration', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '60000', 'description' => ''], + ], + [ + 'name' => 'orderBy', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => 'Livy Gateway的ID。', - 'type' => 'string', + 'type' => 'array', + 'items' => ['type' => 'string', 'required' => false, 'example' => 'startTime', 'description' => ''], 'required' => false, - 'example' => 'lc-i8xogcdfa4fk3yn1', + 'description' => '', ], ], [ - 'name' => 'regionId', + 'name' => 'sort', 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'example' => 'asc', 'description' => ''], + ], + [ + 'name' => 'endTime', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + 'type' => 'object', + 'properties' => [ + 'startTime' => ['type' => 'integer', 'format' => 'int64', 'example' => '1774209636'], + 'endTime' => ['type' => 'integer', 'format' => 'int64', 'example' => '1774209636'], + ], ], ], + [ + 'name' => 'states', + 'in' => 'query', + 'schema' => ['type' => 'string', 'example' => '["ERROR"]'], + ], + [ + 'name' => 'latestSqlStatementStatuses', + 'in' => 'query', + 'schema' => ['type' => 'string', 'example' => '["SUCCESS"]'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '返回格式。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', - 'type' => 'string', - 'example' => '1000000', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', - ], - 'data' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'computeId' => [ - 'description' => 'Livy Gateway的ID', - 'type' => 'string', - 'example' => 'lc-xxxxxxxxxxxxx', - ], - 'name' => [ - 'description' => '名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'livyVersion' => [ - 'description' => 'Livy版本。', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => '0.8.0', - 'enum' => [ - '0.8.0', - ], - ], - 'releaseVersion' => [ - 'description' => 'Spark引擎版本号,已废弃,请使用displayReleaseVersion。', - 'type' => 'string', - 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12, Java Runtime)'."\n", - ], - 'queueName' => [ - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'root_queue', - ], - 'cpuLimit' => [ - 'description' => 'Livy Server的CPU核数。'."\n" - .'- 1'."\n" - .'- 2'."\n" - .'- 4', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => '1', - ], - 'memoryLimit' => [ - 'description' => 'Livy Server的内存大小。'."\n" - .'- 4Gi'."\n" - .'- 8Gi'."\n" - .'- 16Gi', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => '4Gi', - ], - 'autoStopConfiguration' => [ - 'description' => '自动终止配置。', - 'type' => 'object', - 'properties' => [ - 'enable' => [ - 'description' => '是否创建后自动启动。'."\n" - .'- true:是。'."\n" - .'- false:否。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'idleTimeoutMinutes' => [ - 'description' => 'Livy Gateway空闲指定分钟数后自动终止。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '300', - ], - ], - ], - 'authType' => [ - 'description' => '认证方式。', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'Token', - 'enum' => [ - 'Token', - ], - ], - 'status' => [ - 'description' => '运行状态。', - 'type' => 'string', - 'enumValueTitles' => [], - 'example' => 'RUNNING', - 'enum' => [ - 'RUNNING', - 'STOPPED', - 'STARTING', - 'STOPPING', - 'FAILED', + 'applications' => [ + 'description' => '应用详情列表。', + 'type' => 'array', + 'items' => [ + 'description' => '应用详情。', + 'type' => 'object', + 'properties' => [ + 'applicationId' => ['description' => 'Kyuubi提交的Spark应用ID。', 'type' => 'string', 'example' => 'spark-339f844005b6404c95f9f7c7a13b****'], + 'applicationName' => ['description' => 'Kyuubi提交的Spark应用名。', 'type' => 'string', 'example' => 'kyuubi-connection-spark-sql-anonymous-fa9a5e73-b4b1-474a-b****'], + 'webUI' => ['description' => 'Spark应用UI链接地址。', 'type' => 'string', 'example' => 'https://emr-spark-ui-cn-hangzhou.data.aliyun.com/history/w-cf351f3b6dcb****-spark-339f844005b6404c95f9f7c7a13b****/jobs/?spm=emr-serverless-spark.gateway_sessions.0.0.711344e3QfMVTz&token=NS9CU1lpWGl1Q2RRdi9sZUtuS3hy****'], + 'state' => ['description' => 'Spark应用状态。'."\n" + .'- STARTING:启动中。'."\n" + .'- RUNNING:运行中。'."\n" + .'- TERMINATED:已终止。', 'type' => 'string', 'example' => 'STARTING'], + 'startTime' => ['description' => '任务开始的时间。', 'type' => 'string', 'example' => '2025-02-12 19:59:16'], + 'endTime' => ['description' => '任务结束的时间。', 'type' => 'string', 'example' => '2025-02-12 20:02:02'], + 'cuHours' => ['description' => '任务运行周期内所消耗的 CU 数量(该值为预估值,最终以账单为准)。', 'type' => 'number', 'format' => 'double', 'example' => '0.238302'], + 'mbSeconds' => ['description' => '任务已分配的内存总量乘以任务已运行的秒数。', 'type' => 'integer', 'format' => 'int64', 'example' => '3513900'], + 'vcoreSeconds' => ['description' => '任务已分配的 vcore 总量乘以任务已运行的秒数。', 'type' => 'integer', 'format' => 'int64', 'example' => '780'], + 'resourceQueueId' => ['description' => 'Spark任务运行的资源队列名称。', 'type' => 'string', 'example' => 'dev_queue'], + 'exitReason' => ['type' => 'string', 'example' => 'Exit Code: 137, Exit Reason: OOMKilled', 'description' => ''], + 'latestSqlStatementStatus' => ['type' => 'string', 'example' => 'SUCCESS', 'description' => ''], + 'runLog' => ['$ref' => '#/components/schemas/RunLog'], + 'kyuubiServiceId' => ['type' => 'string', 'example' => 'kb-2b93ec*******c9440c'], + 'tags' => [ + 'type' => 'array', + 'items' => ['$ref' => '#/components/schemas/Tag'], ], - ], - 'endpoint' => [ - 'description' => '公网连接地址。', - 'type' => 'string', - 'example' => 'emr-spark-livy-gateway-cn-hangzhou.data.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx', - ], - 'createdBy' => [ - 'description' => '创建者名称。', - 'type' => 'string', - 'example' => 'alice', - ], - 'ramUserId' => [ - 'description' => '创建人ID。', - 'type' => 'string', - 'example' => '10000001', - ], - 'displayReleaseVersion' => [ - 'description' => 'Spark引擎版本号。', - 'type' => 'string', - 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12)', - ], - 'fusion' => [ - 'description' => '是否开启fusion开关。', - 'type' => 'boolean', - 'example' => 'false'."\n", - ], - 'startTime' => [ - 'description' => '启动时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456094000', - ], - 'gmtCreate' => [ - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1749456094000', - ], - 'environmentId' => [ - 'description' => '运行环境ID。', - 'type' => 'string', - 'example' => 'ev-cq31c7tlhtgm9nrrlj4g', - ], - 'endpointInner' => [ - 'description' => '内网连接地址。', - 'type' => 'string', - 'example' => 'emr-spark-livy-gateway-cn-hangzhou-internal.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx', - ], - 'networkName' => [ - 'description' => '网络连接名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'livyServerConf' => [ - 'description' => 'Livy Gateway配置,JSON格式,支持以下文件:'."\n" - ."\n" - .'- sparkDefaultsConf'."\n" - .'- sparkBlackListConf'."\n" - .'- livyConf'."\n" - .'- livyClientConf', - 'type' => 'string', - 'example' => ' '."\n" - .'{'."\n" - .' "sparkDefaultsConf": "spark.driver.cores 1\\nspark.driver.memory 4g\\nspark.executor.cores 1\\nspark.executor.memory 4g\\n",'."\n" - .' "sparkBlackListConf": "spark.driver.cores\\nspark.driver.memory",'."\n" - .' "livyConf": "livy.server.session.timeout 1h\\n",'."\n" - .' "livyClientConf": "livy.rsc.sql.num-rows 1000\\n"'."\n" - .'}', - ], - 'enablePublic' => [ - 'description' => '公网地址开关状态。'."\n", - 'type' => 'boolean', - 'example' => 'true', + 'priority' => ['type' => 'string', 'example' => '5'], ], ], ], + 'requestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'nextToken' => ['description' => '下一页TOKEN。', 'type' => 'string', 'example' => '1'], + 'maxResults' => ['description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'totalCount' => ['description' => '记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"computeId\\": \\"lc-xxxxxxxxxxxxx\\",\\n \\"name\\": \\"test\\",\\n \\"livyVersion\\": \\"0.8.0\\",\\n \\"releaseVersion\\": \\"esr-4.3.0 (Spark 3.5.2, Scala 2.12, Java Runtime)\\\\n\\",\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpuLimit\\": \\"1\\",\\n \\"memoryLimit\\": \\"4Gi\\",\\n \\"autoStopConfiguration\\": {\\n \\"enable\\": false,\\n \\"idleTimeoutMinutes\\": 300\\n },\\n \\"authType\\": \\"Token\\",\\n \\"status\\": \\"RUNNING\\",\\n \\"endpoint\\": \\"emr-spark-livy-gateway-cn-hangzhou.data.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx\\",\\n \\"createdBy\\": \\"alice\\",\\n \\"ramUserId\\": \\"10000001\\",\\n \\"displayReleaseVersion\\": \\"esr-4.3.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"fusion\\": true,\\n \\"startTime\\": 1749456094000,\\n \\"gmtCreate\\": 1749456094000,\\n \\"environmentId\\": \\"ev-cq31c7tlhtgm9nrrlj4g\\",\\n \\"endpointInner\\": \\"emr-spark-livy-gateway-cn-hangzhou-internal.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx\\",\\n \\"networkName\\": \\"test\\",\\n \\"livyServerConf\\": \\"\\\\t\\\\n{\\\\n \\\\\\"sparkDefaultsConf\\\\\\": \\\\\\"spark.driver.cores 1\\\\\\\\nspark.driver.memory 4g\\\\\\\\nspark.executor.cores 1\\\\\\\\nspark.executor.memory 4g\\\\\\\\n\\\\\\",\\\\n \\\\\\"sparkBlackListConf\\\\\\": \\\\\\"spark.driver.cores\\\\\\\\nspark.driver.memory\\\\\\",\\\\n \\\\\\"livyConf\\\\\\": \\\\\\"livy.server.session.timeout 1h\\\\\\\\n\\\\\\",\\\\n \\\\\\"livyClientConf\\\\\\": \\\\\\"livy.rsc.sql.num-rows 1000\\\\\\\\n\\\\\\"\\\\n}\\",\\n \\"enablePublic\\": true\\n }\\n}","type":"json"}]', - 'title' => '获取Livy Gateway信息', - ], - 'GetTemplate' => [ - 'summary' => '获取任务模板。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/template', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取Kyuubi提交的Spark应用详情列表', + 'summary' => 'ListKyuubiSparkApplications', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListKyuubiSparkApplications', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"applications\\": [\\n {\\n \\"applicationId\\": \\"spark-339f844005b6404c95f9f7c7a13b****\\",\\n \\"applicationName\\": \\"kyuubi-connection-spark-sql-anonymous-fa9a5e73-b4b1-474a-b****\\",\\n \\"webUI\\": \\"https://emr-spark-ui-cn-hangzhou.data.aliyun.com/history/w-cf351f3b6dcb****-spark-339f844005b6404c95f9f7c7a13b****/jobs/?spm=emr-serverless-spark.gateway_sessions.0.0.711344e3QfMVTz&token=NS9CU1lpWGl1Q2RRdi9sZUtuS3hy****\\",\\n \\"state\\": \\"STARTING\\",\\n \\"startTime\\": \\"2025-02-12 19:59:16\\",\\n \\"endTime\\": \\"2025-02-12 20:02:02\\",\\n \\"cuHours\\": 0.238302,\\n \\"mbSeconds\\": 3513900,\\n \\"vcoreSeconds\\": 780,\\n \\"resourceQueueId\\": \\"dev_queue\\",\\n \\"exitReason\\": \\"Exit Code: 137, Exit Reason: OOMKilled\\",\\n \\"latestSqlStatementStatus\\": \\"SUCCESS\\",\\n \\"runLog\\": {\\n \\"driverStdOut\\": \\"oss://bucket/path/to/stdout\\",\\n \\"driverStdError\\": \\"oss://bucket/path/to/stderr\\",\\n \\"driverSyslog\\": \\"oss://bucket/path/to/syslog\\",\\n \\"driverStartup\\": \\"oss://bucket/path/to/startup\\"\\n },\\n \\"kyuubiServiceId\\": \\"kb-2b93ec*******c9440c\\",\\n \\"tags\\": [\\n {\\n \\"key\\": \\"workflowId\\",\\n \\"value\\": \\"wf-123test\\"\\n }\\n ],\\n \\"priority\\": \\"5\\"\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', + ], + 'ListKyuubiToken' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/kyuubiService/{kyuubiServiceId}/token', + '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', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '191100', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceUECZZL', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], ], 'parameters' => [ [ - 'name' => 'workspaceBizId', + 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], [ - 'name' => 'templateType', - 'in' => 'query', - 'schema' => [ - 'description' => '模板类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'TASK', - 'default' => 'TASK', - 'enum' => [ - 'TASK', - 'SESSION', - ], - ], + 'name' => 'kyuubiServiceId', + 'in' => 'path', + 'schema' => ['description' => 'Kyuubi服务ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'templateBizId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '请求响应结构体。', 'type' => 'object', 'properties' => [ - 'httpStatusCode' => [ - 'title' => 'Id of the request', - 'description' => 'Id of the request', - 'type' => 'string', - 'example' => '200', - ], - 'errorCode' => [ - 'description' => '- 当success为false,返回业务错误码。'."\n" - .' '."\n" - .'- 当success为true,返回空值。', - 'type' => 'string', - 'example' => '040003', - ], - 'errorMessage' => [ - 'description' => '- 当success为false,返回业务错误信息;'."\n" - ."\n" - .'- 当success为true,返回空值。', - 'type' => 'string', - 'example' => 'InvalidUser.NotFound', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], 'data' => [ 'description' => '返回数据。', - '$ref' => '#/components/schemas/Template', - ], - 'success' => [ - 'description' => '请求是否成功。', - 'type' => 'boolean', - 'example' => 'True', - ], - 'requestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '484D9DDA-300D-525E-AF7A-0CCCA5C64A7A', + 'type' => 'object', + 'properties' => [ + 'tokens' => [ + 'description' => 'Token列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'Token记录。', + 'type' => 'object', + 'properties' => [ + 'tokenId' => ['description' => 'Token ID。', 'type' => 'string', 'example' => 'tk-zpi0*****hdv4y'], + 'name' => ['description' => 'Token名称。', 'type' => 'string', 'example' => 'dev_serverless_spark'], + 'token' => ['description' => '遮蔽处理的Token。', 'type' => 'string', 'example' => 'dxj**********wfg'], + 'createdBy' => ['description' => '创建者名称。', 'type' => 'string', 'example' => 'admin'], + 'createTime' => ['description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1755496031000'], + 'expireTime' => ['description' => '过期时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1787033891000'], + 'lastUsedTime' => ['description' => '上次使用时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1760366232121'], + 'memberArns' => [ + 'description' => '授权用户arn列表。', + 'type' => 'array', + 'items' => ['description' => '授权用户arn。', 'type' => 'string', 'example' => 'acs:emr::w-d2d82aa09155****:member/195****7311'], + ], + 'accountNames' => [ + 'description' => '授权用户RAM账号名列表。', + 'type' => 'array', + 'items' => ['description' => '授权用户RAM账号名。', 'type' => 'string', 'example' => 'dev-serverless-spark'], + ], + 'sparkRole' => [ + 'type' => 'array', + 'items' => ['type' => 'string'], + ], + ], + ], + ], + ], ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"httpStatusCode\\": \\"200\\",\\n \\"errorCode\\": \\"040003\\",\\n \\"errorMessage\\": \\"InvalidUser.NotFound\\",\\n \\"data\\": {\\n \\"templateType\\": \\"\\",\\n \\"gmtModified\\": \\"\\",\\n \\"creator\\": 0,\\n \\"sparkLogLevel\\": \\"\\",\\n \\"gmtCreated\\": \\"\\",\\n \\"sparkDriverMemory\\": 0,\\n \\"modifier\\": 0,\\n \\"sparkExecutorCores\\": 0,\\n \\"sparkConf\\": [\\n {\\n \\"value\\": \\"\\",\\n \\"key\\": \\"\\"\\n }\\n ],\\n \\"sparkVersion\\": \\"\\",\\n \\"sparkExecutorMemory\\": 0,\\n \\"fusion\\": true,\\n \\"isDefault\\": true,\\n \\"sparkDriverCores\\": 0,\\n \\"displaySparkVersion\\": \\"\\",\\n \\"sparkLogPath\\": \\"\\",\\n \\"name\\": \\"\\",\\n \\"bizId\\": \\"\\"\\n },\\n \\"success\\": true,\\n \\"requestId\\": \\"484D9DDA-300D-525E-AF7A-0CCCA5C64A7A\\"\\n}","type":"json"}]', - 'title' => '获取EMR Serverless Spark任务模板信息', - ], - 'TerminateSqlStatement' => [ - 'summary' => '终止正在执行的SQL查询。', - 'path' => '/api/interactive/v1/workspace/{workspaceId}/statement/{statementId}/terminate', - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '列出Kyuubi Gateway认证Token', + 'summary' => '列出KyuubiServer认证Token。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListKyuubiToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"tokens\\": [\\n {\\n \\"tokenId\\": \\"tk-zpi0*****hdv4y\\",\\n \\"name\\": \\"dev_serverless_spark\\",\\n \\"token\\": \\"dxj**********wfg\\",\\n \\"createdBy\\": \\"admin\\",\\n \\"createTime\\": 1755496031000,\\n \\"expireTime\\": 1787033891000,\\n \\"lastUsedTime\\": 1760366232121,\\n \\"memberArns\\": [\\n \\"acs:emr::w-d2d82aa09155****:member/195****7311\\"\\n ],\\n \\"accountNames\\": [\\n \\"dev-serverless-spark\\"\\n ],\\n \\"sparkRole\\": [\\n \\"\\"\\n ]\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'ListLivyCompute' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'readAndWrite', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'delete', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '224753', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeCode' => '222250', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'workspaceId', + 'name' => 'workspaceBizId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], ], [ - 'name' => 'statementId', - 'in' => 'path', - 'schema' => [ - 'description' => '交互式查询ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'st-abcadfadf12****', - ], + 'name' => 'environmentId', + 'in' => 'query', + 'schema' => ['description' => '运行环ID。', 'type' => 'string', 'required' => false, 'example' => 'ev-cq31c7tlhtgm9nrrlj4g'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -7003,123 +5496,113 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], + 'data' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'livyComputes' => [ + 'description' => 'Livy Gateway列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'computeId' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'example' => 'lc-xxxxxxxxxxxx'], + 'name' => ['description' => '名称。', 'type' => 'string', 'example' => 'test'], + 'queueName' => ['description' => '队列名称。', 'type' => 'string', 'example' => 'root_queue'], + 'status' => [ + 'description' => '运行状态。', + 'type' => 'string', + 'example' => 'RUNNING', + 'enum' => ['RUNNING', 'STOPPED', 'STARTING', 'STOPPING', 'FAILED'], + ], + 'endpoint' => ['description' => '公网连接地址。', 'type' => 'string', 'example' => 'emr-spark-livy-gateway-cn-hangzhou.data.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx'], + 'createdBy' => ['description' => '创建者名称。', 'type' => 'string', 'example' => 'alice'], + 'gmtCreate' => ['description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456094000'], + 'startTime' => ['description' => '启动时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456094000'], + 'endpointInner' => ['description' => '内网连接地址。', 'type' => 'string', 'example' => 'emr-spark-livy-gateway-cn-hangzhou-internal.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx'], + ], + ], + ], + ], ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '终止SQL查询', - ], - 'CreateSqlStatement' => [ - 'summary' => '创建SQL查询。', - 'path' => '/api/interactive/v1/workspace/{workspaceId}/statement', - 'methods' => [ - 'put', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '列出Livy Gateway', + 'summary' => '列出Livy Gateway。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"livyComputes\\": [\\n {\\n \\"computeId\\": \\"lc-xxxxxxxxxxxx\\",\\n \\"name\\": \\"test\\",\\n \\"queueName\\": \\"root_queue\\",\\n \\"status\\": \\"RUNNING\\",\\n \\"endpoint\\": \\"emr-spark-livy-gateway-cn-hangzhou.data.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx\\",\\n \\"createdBy\\": \\"alice\\",\\n \\"gmtCreate\\": 1749456094000,\\n \\"startTime\\": 1749456094000,\\n \\"endpointInner\\": \\"emr-spark-livy-gateway-cn-hangzhou-internal.aliyun.com/api/v1/workspace/w-xxxxxxxxx/livycompute/lc-xxxxxxxxxxx\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'ListLivyComputeSessions' => [ + 'summary' => '获取Livy Gateway的历史Session。', + 'path' => '/api/v1/workspaces/{workspaceId}/livycompute/{livyComputeId}/session', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'readAndWrite', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '224750', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeCode' => '246258', + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], + 'autoTest' => false, + 'notSupportAutoTestReason' => '不支持', + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'title' => 'A short description of struct', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-26ca1703f6d****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d80f373d3ace824f'], ], [ - 'name' => 'body', - 'in' => 'body', - 'style' => 'flat', - 'schema' => [ - 'description' => '创建SQL查询请求体。', - 'type' => 'object', - 'properties' => [ - 'codeContent' => [ - 'description' => 'SQL代码。允许传入一条或多条SQL语句进行执行。', - 'type' => 'string', - 'required' => false, - 'example' => 'SHOW TABLES', - ], - 'defaultDatabase' => [ - 'description' => '默认数据库名。', - 'type' => 'string', - 'required' => false, - 'example' => 'default', - ], - 'limit' => [ - 'description' => 'limit值,取值范围:1~10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1000', - 'default' => '1000', - ], - 'defaultCatalog' => [ - 'description' => '默认DLF Catalog ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'default_catalog', - ], - 'sqlComputeId' => [ - 'description' => 'SQL会话ID。需要在EMR Serverless Spark工作空间的会话管理模块内创建。', - 'type' => 'string', - 'required' => false, - 'example' => 'sc-dfahdfjafhajd****', - ], - 'taskBizId' => [ - 'type' => 'string', - 'required' => false, - ], - ], - 'required' => false, - ], + 'name' => 'livyComputeId', + 'in' => 'path', + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-zm4dzdiubu73w2yx'], + ], + [ + 'name' => 'pageNum', + 'in' => 'query', + 'schema' => ['description' => '页码,默认值 1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'pageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果的分页数。默认值:20,最小值:1,最大值:100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -7129,95 +5612,91 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'data' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'statementId' => [ - 'description' => '交互式查询ID。', - 'type' => 'string', - 'example' => 'st-1231dfafadfa***', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '8FAA8EEC-3026-5D15-8733-4E2A3DD970A1'], + 'totalCount' => ['description' => '总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'sessions' => [ + 'description' => 'Session列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'name' => ['description' => 'Session名称。', 'type' => 'string', 'example' => 'test_session'], + 'computeId' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'example' => 'lc-xxxxxx'], + 'sessionId' => ['description' => 'Livy Gateway Session的ID。', 'type' => 'string', 'example' => 'livy-xxxxxx'], + 'sparkConf' => ['description' => 'Spark任务配置。', 'type' => 'string', 'example' => '{'."\n" + .' "proxyUser": "test",'."\n" + .' "conf": {'."\n" + .' "spark.driver.cores": 1'."\n" + .' }'."\n" + .'}'], + 'state' => [ + 'description' => 'Session状态。'."\n" + .'- starting:启动中。'."\n" + .'- running:运行中。'."\n" + .'- terminating:正在停止。'."\n" + .'- terminated:已停止。'."\n" + .'- error:已失败。', + 'type' => 'string', + 'example' => 'running', + 'enum' => ['starting', 'running', 'error', 'terminated', 'terminating'], + ], + 'info' => ['description' => '运行信息。', 'type' => 'string', 'example' => 'null'], + 'createTime' => ['description' => '创建时间,unix毫秒级别时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1768213240000'], + 'webUI' => ['description' => 'Session的Web UI地址。', 'type' => 'string', 'example' => 'http://emr-spark-ui-cn-hangzhou.data.aliyun.com'], + 'endTime' => ['description' => '结束时间,unix毫秒级别时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1768213240000'], + 'queue' => ['description' => '队列名称。', 'type' => 'string', 'example' => 'root_queue'], + 'cuHours' => ['description' => '任务运行周期内所消耗的 CU 数量(该值为预估值,最终以账单为准)。', 'type' => 'number', 'format' => 'double', 'example' => '322.5'], + 'vcoreSeconds' => ['description' => '任务已分配的 vcore 总量乘以任务已运行的秒数。', 'type' => 'integer', 'format' => 'int64', 'example' => '343'], + 'mbSeconds' => ['description' => '任务已分配的内存总量乘以任务已运行的秒数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1098888'], + ], + 'description' => '', ], ], - 'requestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '列出Livy Gateway的历史Session', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"data\\": {\\n \\"statementId\\": \\"st-1231dfafadfa***\\"\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '创建SQL查询', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"8FAA8EEC-3026-5D15-8733-4E2A3DD970A1\\",\\n \\"totalCount\\": 10,\\n \\"sessions\\": [\\n {\\n \\"name\\": \\"test_session\\",\\n \\"computeId\\": \\"lc-xxxxxx\\",\\n \\"sessionId\\": \\"livy-xxxxxx\\",\\n \\"sparkConf\\": \\"{\\\\n \\\\\\"proxyUser\\\\\\": \\\\\\"test\\\\\\",\\\\n \\\\\\"conf\\\\\\": {\\\\n \\\\\\"spark.driver.cores\\\\\\": 1\\\\n }\\\\n}\\",\\n \\"state\\": \\"running\\",\\n \\"info\\": \\"null\\",\\n \\"createTime\\": 1768213240000,\\n \\"webUI\\": \\"http://emr-spark-ui-cn-hangzhou.data.aliyun.com\\",\\n \\"endTime\\": 1768213240000,\\n \\"queue\\": \\"root_queue\\",\\n \\"cuHours\\": 322.5,\\n \\"vcoreSeconds\\": 343,\\n \\"mbSeconds\\": 1098888\\n }\\n ]\\n}","type":"json"}]', ], - 'GetSqlStatement' => [ - 'summary' => '获取SQL查询详情。', - 'path' => '/api/interactive/v1/workspace/{workspaceId}/statement/{statementId}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListLivyComputeToken' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/token', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'read', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '224752', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'operationType' => 'list', + 'abilityTreeCode' => '222370', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'workspaceId', + 'name' => 'workspaceBizId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], ], [ - 'name' => 'statementId', + 'name' => 'livyComputeId', 'in' => 'path', - 'schema' => [ - 'description' => '交互式查询ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'st-2dadfhajk11cv****', - ], + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-zm4dzdiubu73w2yx'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -7227,1236 +5706,870 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], 'data' => [ 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'statementId' => [ - 'description' => '查询ID。', - 'type' => 'string', - 'example' => 'st-1231311abadfaa', - ], - 'state' => [ - 'description' => '查询状态。', - 'type' => 'string', - 'enumValueTitles' => [ - 'running' => 'running', - 'available' => 'available', - 'cancelled' => 'cancelled', - 'error' => 'error', - 'cancelling' => 'cancelling', - ], - 'example' => 'running', - 'enum' => [ - 'running', - 'error', - 'waiting', - 'cancelling', - 'cancelled', - 'available', - 'success', - ], - ], - 'sqlOutputs' => [ - 'description' => 'SQL查询结果列表', + 'tokens' => [ + 'description' => 'Token列表。', 'type' => 'array', 'items' => [ - 'description' => '单个SQL查询结果', + 'description' => 'Token信息。', 'type' => 'object', 'properties' => [ - 'rows' => [ - 'description' => '查询数据,格式为经过JSON序列化的字符串。', - 'type' => 'string', - 'example' => '[{\\"values\\":[\\"test_db\\",\\"test_table\\",false]}', - ], - 'schema' => [ - 'description' => 'Schema的详细信息,格式为经过JSON序列化的字符串。', - 'type' => 'string', - 'example' => '{\\"type\\":\\"struct\\",\\"fields\\":[{\\"name\\":\\"namespace\\",\\"type\\":\\"string\\",\\"nullable\\":false,\\"metadata\\":{}},{\\"name\\":\\"tableName\\",\\"type\\":\\"string\\",\\"nullable\\":false,\\"metadata\\":{}},{\\"name\\":\\"isTemporary\\",\\"type\\":\\"boolean\\",\\"nullable\\":false,\\"metadata\\":{}}]}', - ], - 'rowsFilePath' => [ - 'type' => 'string', - ], + 'tokenId' => ['description' => 'Token ID。', 'type' => 'string', 'example' => 'lctk-xxxxxxxxxxx'], + 'name' => ['description' => 'Token名称。', 'type' => 'string', 'example' => 'test'], + 'token' => ['description' => 'Token内容。', 'type' => 'string', 'example' => '5d37843fb6f1e8'], + 'createdby' => ['description' => 'Token创建人。', 'type' => 'string', 'example' => 'alice'], + 'createTime' => ['description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456094000'], + 'expireTime' => ['description' => '过期时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456994000'], + 'lastUsedTime' => ['description' => '上次使用时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1749456098000'], ], ], ], - 'sqlErrorCode' => [ - 'description' => 'SQL查询错误码。', - 'type' => 'string', - 'example' => 'ERROR-102', - ], - 'sqlErrorMessage' => [ - 'description' => 'SQL查询错误信息。', - 'type' => 'string', - 'example' => 'error message', - ], - 'executionTime' => [ - 'description' => 'SQL查询耗时列表。', - 'type' => 'array', - 'items' => [ - 'description' => '每个SQL查询消耗时间,单位毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1717138731701', - ], - ], ], ], - 'requestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"data\\": {\\n \\"statementId\\": \\"st-1231311abadfaa\\",\\n \\"state\\": \\"running\\",\\n \\"sqlOutputs\\": [\\n {\\n \\"rows\\": \\"[{\\\\\\\\\\\\\\"values\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"test_db\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"test_table\\\\\\\\\\\\\\",false]}\\",\\n \\"schema\\": \\"{\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"struct\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"fields\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"namespace\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"string\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"nullable\\\\\\\\\\\\\\":false,\\\\\\\\\\\\\\"metadata\\\\\\\\\\\\\\":{}},{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"tableName\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"string\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"nullable\\\\\\\\\\\\\\":false,\\\\\\\\\\\\\\"metadata\\\\\\\\\\\\\\":{}},{\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"isTemporary\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"boolean\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"nullable\\\\\\\\\\\\\\":false,\\\\\\\\\\\\\\"metadata\\\\\\\\\\\\\\":{}}]}\\",\\n \\"rowsFilePath\\": \\"\\"\\n }\\n ],\\n \\"sqlErrorCode\\": \\"ERROR-102\\",\\n \\"sqlErrorMessage\\": \\"error message\\",\\n \\"executionTime\\": [\\n 1717138731701\\n ]\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '获取SQL查询详情', - ], - 'ListSqlStatementContents' => [ - 'summary' => '获取sql statement内容。', - 'path' => '/api/v1/workspaces/{workspaceId}/action/listSqlStatementContents', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '列出Livy Gateway的Token', + 'summary' => '列出Livy Gateway的Token。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListLivyComputeToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"tokens\\": [\\n {\\n \\"tokenId\\": \\"lctk-xxxxxxxxxxx\\",\\n \\"name\\": \\"test\\",\\n \\"token\\": \\"5d37843fb6f1e8\\",\\n \\"createdby\\": \\"alice\\",\\n \\"createTime\\": 1749456094000,\\n \\"expireTime\\": 1749456994000,\\n \\"lastUsedTime\\": 1749456098000\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'ListLogContents' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/action/listLogContents', + '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' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceLNUXSK', - ], + 'abilityTreeCode' => '194779', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ 'name' => 'fileName', 'in' => 'query', - 'schema' => [ - 'description' => '文件全路径名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'oss://oss-****.cn-hangzhou.oss-dls.aliyuncs.com/w-86a9a4da*****a1/spark/logs/jr-b737b****6164d/driver/st-afde7******bb3f', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '文件全路径名称。', 'type' => 'string', 'required' => false, 'example' => 'oss://datadev******.cn-hangzhou.oss-dls.aliyuncs.com/w-72704d9fb0******/spark/logs/jr-af51aa63cc******/driver/stdout.log'], ], [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间 ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-72704d9fb0******', - ], + 'name' => 'offset', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['description' => '查询开始行。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], ], [ - 'name' => 'nextToken', + 'name' => 'length', 'in' => 'query', - 'schema' => [ - 'description' => '标记当前开始读取的位置。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '日志长度。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '9999'], ], [ - 'name' => 'maxResults', + 'name' => 'workspaceId', + 'in' => 'path', + 'allowEmptyValue' => false, + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-72704d9fb0******'], + ], + [ + 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2000', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '返回数据。', + 'title' => '返回数据', + 'description' => '返回数据', 'type' => 'object', 'properties' => [ - 'sqlStatementContents' => [ - 'description' => 'SQL执行结果内容。', + 'listLogContent' => [ + 'description' => '日志内容。', 'type' => 'object', 'properties' => [ 'contents' => [ - 'description' => 'SQL执行结果内容列表。', - 'type' => 'string', - 'example' => '[{\\"values\\":[\\"wj*****\\",\\"test\\",\\"2025-04-15\\"]}]', - ], - 'nextToken' => [ - 'description' => '标记当前开始读取的位置。', - 'type' => 'string', - 'example' => '1', - ], - 'maxResults' => [ - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2000', - ], - 'totalCount' => [ - 'description' => '结果总行数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '40000', + 'description' => '日志行内容列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LineContent' => ['description' => '日志行内容。', 'type' => 'string', 'example' => 'spark pi is 3.14\\n'], + ], + ], ], + 'totalLength' => ['description' => '日志总行数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], ], ], - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求 ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n", - ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sqlStatementContents\\": {\\n \\"contents\\": \\"[{\\\\\\\\\\\\\\"values\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"wj*****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"test\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"2025-04-15\\\\\\\\\\\\\\"]}]\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 2000,\\n \\"totalCount\\": 40000\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\"\\n}","type":"json"}]', - 'title' => '查询SQL会话执行结果', - ], - 'CreateWorkspace' => [ - 'summary' => '创建工作空间。', - 'path' => '/api/v1/workspaces', - 'methods' => [ - 'post', + 'title' => '查询日志内容', + 'summary' => '获取日志内容。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListLogContents', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"listLogContent\\": {\\n \\"contents\\": [\\n {\\n \\"LineContent\\": \\"spark pi is 3.14\\\\\\\\n\\"\\n }\\n ],\\n \\"totalLength\\": 10\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'ListMembers' => [ + 'path' => '/api/v1/auth/{workspaceId}/members', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '191902', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce0SZW92'], ], 'parameters' => [ [ - 'name' => 'body', - 'in' => 'body', + 'name' => 'nextToken', + 'in' => 'query', 'allowEmptyValue' => false, - 'style' => 'json', + 'schema' => ['title' => '标记当前开始读取的位置。', 'description' => '标记当前开始读取的位置。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'maxResults', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '一次获取的最大记录数。', 'description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'allowEmptyValue' => false, + 'schema' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-975bcfda9625****'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '请求结构体', + 'title' => '返回数据', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'workspaceName' => [ - 'description' => '工作空间名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'default', - ], - 'resourceSpec' => [ - 'description' => '资源规格。', - 'type' => 'object', - 'properties' => [ - 'cu' => [ - 'description' => '工作空间资源上限。', - 'type' => 'string', - 'required' => false, - 'example' => '1000', - ], - ], - 'required' => false, - ], - 'ossBucket' => [ - 'description' => 'OSS Bucket。', - 'type' => 'string', - 'required' => false, - 'example' => 'oss://test-bucket/', - ], - 'dlfCatalogId' => [ - 'description' => 'DLF Catalog信息。', - 'type' => 'string', - 'required' => false, - 'example' => '123xxxxx', - ], - 'paymentType' => [ - 'description' => '实例的付费模式。可选值:'."\n" - ."\n" - .'- PayAsYouGo:按量付费'."\n" - .'- Pre:包年包月', - 'type' => 'string', - 'required' => false, - 'example' => 'PayAsYouGo', - ], - 'paymentDurationUnit' => [ - 'description' => '订购周期。', - 'type' => 'string', - 'required' => false, - 'example' => '1000', - ], - 'duration' => [ - 'description' => '订购周期数量(pre付费类型必填)。', - 'type' => 'string', - 'required' => false, - 'example' => '12452', - ], - 'autoRenew' => [ - 'description' => '是否自动续费(pre付费类型必填)。', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], - 'autoRenewPeriod' => [ - 'description' => '自动续费时长(pre付费类型必填)。', - 'type' => 'string', - 'required' => false, - 'example' => '100', - ], - 'autoRenewPeriodUnit' => [ - 'description' => '自动续费周期(pre付费类型必填)。', - 'type' => 'string', - 'required' => false, - 'example' => 'month', - ], - 'clientToken' => [ - 'description' => '幂等校验TOKEN。', - 'type' => 'string', - 'required' => false, - 'example' => '8e6aae2810c8f67229ca70bb31cd****', - ], - 'ramRoleName' => [ - 'description' => 'Spark作业执行角色名。', - 'type' => 'string', - 'required' => false, - 'example' => 'AliyunEMRSparkJobRunDefaultRole', - ], - 'autoStartSessionCluster' => [ - 'description' => '是否自动启动Session。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'releaseType' => [ - 'description' => '版本类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'pro', - ], - 'dlfType' => [ - 'description' => '绑定dlf类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'dlf1.0', - 'default' => '1.0', - ], - 'tag' => [ - 'description' => '标签列表。', + 'members' => [ + 'description' => '成员列表。', 'type' => 'array', 'items' => [ - 'description' => '标签。', + 'description' => '成员。', 'type' => 'object', 'properties' => [ - 'key' => [ - 'description' => '标签键。', + 'memberArn' => ['title' => '用户 arn。', 'description' => '用户 arn。', 'type' => 'string', 'example' => 'acs:emr::w-1234****abcd:member/202265*****276'], + 'userName' => ['title' => '用户名称。', 'description' => '用户名称。', 'type' => 'string', 'example' => 'jia***test@195*****7311.onaliyun.com'], + 'displayName' => ['title' => '用户展示名称。', 'description' => '用户展示名称。', 'type' => 'string', 'example' => 'jia***test'], + 'userType' => [ + 'title' => '用户类型。', + 'description' => '用户类型。'."\n" + .'- ROLE'."\n" + .'- MEMBER', 'type' => 'string', - 'required' => false, - 'example' => 'key', + 'enumValueTitles' => [], + 'example' => 'MEMBER', ], - 'value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'required' => false, - 'example' => 'value', + 'roles' => [ + 'title' => '用户角色列表。', + 'description' => '工作空间内角色列表。', + 'type' => 'array', + 'items' => [ + 'description' => '用户角色。', + 'type' => 'object', + 'properties' => [ + 'roleArn' => ['title' => '角色 arn。', 'description' => '角色 arn。', 'type' => 'string', 'example' => 'acs:emr::w-1234****abcd:role/DataScience'], + 'roleName' => ['title' => '角色名称。', 'description' => '角色名称。', 'type' => 'string', 'example' => 'DataScience'], + 'description' => ['title' => '描述。', 'description' => '描述。', 'type' => 'string', 'example' => 'DataScience'], + 'createTime' => ['title' => '创建时间。', 'description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1753412502000'], + 'actions' => [ + 'title' => '权限列表。', + 'description' => '权限列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'actionArn' => ['title' => '行为 arn。', 'description' => '行为 arn。', 'type' => 'string', 'example' => 'acs:emr::w-1234****abcd:action/add_MEMBER'], + 'actionName' => ['title' => '权限名称。', 'description' => '权限名称。', 'type' => 'string', 'example' => 'add'], + 'displayName' => ['title' => '权限展示名称。', 'description' => '权限展示名称。', 'type' => 'string', 'example' => 'add members'], + 'description' => ['title' => 'action 描述。', 'description' => 'action 描述。', 'type' => 'string', 'example' => 'add members'."\n"], + 'dependencies' => [ + 'title' => 'action 依赖列表。', + 'description' => 'action 依赖列表。', + 'type' => 'array', + 'items' => ['description' => '依赖。', 'type' => 'string', 'example' => 'VIEW'], + 'example' => '["view"]', + ], + ], + ], + ], + ], + ], ], + 'actions' => [ + 'title' => '针对此用户允许的操作列表。', + 'description' => '针对此用户允许的操作列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'actionArn' => ['title' => '行为 arn。', 'description' => '行为 arn。', 'type' => 'string', 'example' => 'acs:emr::w-1234****abcd:action/add_MEMBER'], + 'actionName' => ['title' => '权限名称。', 'description' => '权限名称。', 'type' => 'string', 'example' => 'add'], + 'displayName' => ['title' => '权限展示名称。', 'description' => '权限展示名称。', 'type' => 'string', 'example' => 'add members'], + 'description' => ['title' => 'action 描述。', 'description' => 'action 描述。', 'type' => 'string', 'example' => 'add members'], + 'dependencies' => [ + 'title' => 'action 依赖列表。', + 'description' => 'action 依赖列表。', + 'type' => 'array', + 'items' => ['description' => '依赖。', 'type' => 'string', 'example' => 'VIEW'], + 'example' => '["view"]', + ], + ], + ], + ], + 'visible' => ['description' => '是否可见。', 'type' => 'boolean', 'example' => 'true'], + 'createTime' => ['description' => '创建时间。', 'type' => 'string', 'example' => '1753412502000'], ], - 'required' => false, ], - 'required' => false, - 'maxItems' => 20, ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'nextToken' => ['title' => '下一页TOKEN。', 'description' => '下一页TOKEN。', 'type' => 'string', 'example' => '1'], + 'maxResults' => ['title' => '一次获取的最大记录数。', 'description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'totalCount' => ['title' => '记录总数。', 'description' => '记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], - 'required' => false, ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取成员列表', + 'summary' => '调用ListMembers查看工作空间成员列表。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListMembers', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"members\\": [\\n {\\n \\"memberArn\\": \\"acs:emr::w-1234****abcd:member/202265*****276\\",\\n \\"userName\\": \\"jia***test@195*****7311.onaliyun.com\\",\\n \\"displayName\\": \\"jia***test\\",\\n \\"userType\\": \\"MEMBER\\",\\n \\"roles\\": [\\n {\\n \\"roleArn\\": \\"acs:emr::w-1234****abcd:role/DataScience\\",\\n \\"roleName\\": \\"DataScience\\",\\n \\"description\\": \\"DataScience\\",\\n \\"createTime\\": 1753412502000,\\n \\"actions\\": [\\n {\\n \\"actionArn\\": \\"acs:emr::w-1234****abcd:action/add_MEMBER\\",\\n \\"actionName\\": \\"add\\",\\n \\"displayName\\": \\"add members\\",\\n \\"description\\": \\"add members\\\\n\\",\\n \\"dependencies\\": [\\n \\"VIEW\\"\\n ]\\n }\\n ]\\n }\\n ],\\n \\"actions\\": [\\n {\\n \\"actionArn\\": \\"acs:emr::w-1234****abcd:action/add_MEMBER\\",\\n \\"actionName\\": \\"add\\",\\n \\"displayName\\": \\"add members\\",\\n \\"description\\": \\"add members\\",\\n \\"dependencies\\": [\\n \\"VIEW\\"\\n ]\\n }\\n ],\\n \\"visible\\": true,\\n \\"createTime\\": \\"1753412502000\\"\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', + ], + 'ListNetworkServices' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/networkServices', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', + 'systemTags' => [ + 'operationType' => 'list', + 'abilityTreeCode' => '208335', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'allowEmptyValue' => false, + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], + ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => '返回数据', - 'description' => '返回数据', + 'description' => '请求响应结构体。', 'type' => 'object', 'properties' => [ - 'workspaceId' => [ - 'title' => 'Workspace Id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'example' => 'w-******', - ], - 'operationId' => [ - 'title' => 'Operation Id。', - 'description' => '操作流程ID。', - 'type' => 'string', - 'example' => 'op-******', + 'queues' => [ + 'description' => '已过期参数。', + 'type' => 'array', + 'items' => [ + 'description' => '已过期参数。', + 'type' => 'object', + 'properties' => [ + 'workspaceId' => ['description' => '已过期参数。', 'type' => 'string', 'example' => 'w-d2d82aa09155****'], + 'networkServiceId' => ['description' => '已过期参数。', 'type' => 'string', 'example' => 'ns-d7a1d02045fb****'."\n"], + 'name' => ['description' => '已过期参数。', 'type' => 'string', 'example' => 'test'], + 'type' => ['description' => '已过期参数。', 'type' => 'string', 'example' => 'NetworkService'], + 'vpcId' => ['description' => '已过期参数。', 'type' => 'string', 'example' => 'vpc-uf6k2anfa9nzbm4cj****'], + 'vswitchIds' => [ + 'description' => '已过期参数。', + 'type' => 'array', + 'items' => ['description' => '已过期参数。', 'type' => 'string', 'example' => 'vsw-bp1yc4kfdjxq9s1zn****'], + ], + 'state' => ['description' => '已过期参数。', 'type' => 'string', 'example' => 'running'], + 'stateChangeReason' => [ + 'description' => '已过期参数。', + 'type' => 'object', + 'properties' => [ + 'code' => ['description' => '已过期参数。', 'type' => 'string', 'example' => 'code'], + 'message' => ['description' => '已过期参数。', 'type' => 'string', 'example' => 'message'], + ], + ], + ], + ], ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', + 'networkServices' => [ + 'description' => '网络连接列表。', + 'type' => 'array', + 'items' => [ + 'description' => '网络连接。', + 'type' => 'object', + 'properties' => [ + 'workspaceId' => ['description' => '工作空间ID。', 'type' => 'string', 'example' => 'w-d2d82aa09155****'."\n"], + 'networkServiceId' => ['description' => '网络连接id。', 'type' => 'string', 'example' => 'ns-d7a1d02045fb****'], + 'name' => ['description' => '网络连接名称。', 'type' => 'string', 'example' => 'vpc_test'], + 'type' => ['description' => '类型。', 'type' => 'string', 'example' => 'NetworkService'], + 'vpcId' => ['description' => 'VPC id。', 'type' => 'string', 'example' => 'vpc-bp1vt6r7o1w4tw7j6****'], + 'vswitchIds' => [ + 'description' => '交换机id列表。', + 'type' => 'array', + 'items' => ['description' => '交换机id。', 'type' => 'string', 'example' => 'vsw-bp1yc4kfdjxq9s1zn****'], + ], + 'state' => ['description' => '状态。', 'type' => 'string', 'example' => 'running'], + 'stateChangeReason' => [ + 'description' => '状态改变原因。', + 'type' => 'object', + 'properties' => [ + 'code' => ['description' => '状态码。', 'type' => 'string', 'example' => 'code'], + 'message' => ['description' => '响应信息。', 'type' => 'string', 'example' => 'message'], + ], + ], + ], + ], ], + 'nextToken' => ['title' => '下一页TOKEN。', 'description' => '下一页TOKEN。', 'type' => 'string', 'example' => '1'], + 'maxResults' => ['title' => '一次获取的最大记录数。', 'description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'totalCount' => ['title' => '记录总数。', 'description' => '记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'requestId' => ['description' => '请求id。', 'type' => 'string', 'example' => '18C7775A-7995-128A-A10C-9116EA87****'], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"workspaceId\\": \\"w-******\\",\\n \\"operationId\\": \\"op-******\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '创建工作空间', - ], - 'ListWorkspaces' => [ - 'summary' => '调用ListWorkspaces获取工作空间列表。', - 'path' => '/api/v1/workspaces', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取网络连接列表', + 'summary' => '获取网络连接列表。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"queues\\": [\\n {\\n \\"workspaceId\\": \\"w-d2d82aa09155****\\",\\n \\"networkServiceId\\": \\"ns-d7a1d02045fb****\\\\n\\",\\n \\"name\\": \\"test\\",\\n \\"type\\": \\"NetworkService\\",\\n \\"vpcId\\": \\"vpc-uf6k2anfa9nzbm4cj****\\",\\n \\"vswitchIds\\": [\\n \\"vsw-bp1yc4kfdjxq9s1zn****\\"\\n ],\\n \\"state\\": \\"running\\",\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"code\\",\\n \\"message\\": \\"message\\"\\n }\\n }\\n ],\\n \\"networkServices\\": [\\n {\\n \\"workspaceId\\": \\"w-d2d82aa09155****\\\\n\\",\\n \\"networkServiceId\\": \\"ns-d7a1d02045fb****\\",\\n \\"name\\": \\"vpc_test\\",\\n \\"type\\": \\"NetworkService\\",\\n \\"vpcId\\": \\"vpc-bp1vt6r7o1w4tw7j6****\\",\\n \\"vswitchIds\\": [\\n \\"vsw-bp1yc4kfdjxq9s1zn****\\"\\n ],\\n \\"state\\": \\"running\\",\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"code\\",\\n \\"message\\": \\"message\\"\\n }\\n }\\n ],\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200,\\n \\"requestId\\": \\"18C7775A-7995-128A-A10C-9116EA87****\\"\\n}","type":"json"}]', + ], + 'ListRayCluster' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'list', + 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '192019', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], 'parameters' => [ [ - 'name' => 'nextToken', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '标记当前开始读取的位置。', - 'description' => '标记当前开始读取的位置。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'maxResults', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '一次获取的最大记录数。', - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], - ], - [ - 'name' => 'name', - 'in' => 'query', - 'schema' => [ - 'description' => '工作空间的名称,支持根据工作空间名称进行模糊搜索。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_workspace', - ], + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], ], [ - 'name' => 'state', + 'name' => 'pageSize', 'in' => 'query', - 'schema' => [ - 'description' => '工作空间状态', - 'type' => 'string', - 'required' => false, - 'example' => 'running', - ], + 'schema' => ['title' => '返回结果的分页数。默认值:20。', 'description' => '返回结果的分页数。默认值:20,最小1,最大100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ - 'name' => 'regionId', + 'name' => 'pageNum', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'tag', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'key' => [ - 'type' => 'string', - 'required' => false, - ], - 'value' => [ - 'type' => 'string', - 'required' => false, - ], - ], - 'required' => false, - ], - 'required' => false, - ], + 'schema' => ['title' => '页码。', 'description' => '页码。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'workspaces' => [ - 'description' => '工作空间列表。', + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + 'rayClusters' => [ + 'title' => 'Ray集群列表。', + 'description' => 'Ray集群列表。', 'type' => 'array', 'items' => [ - 'description' => '工作空间详情。', + 'title' => 'Ray集群结构体。', + 'description' => 'Ray集群结构体。', 'type' => 'object', 'properties' => [ - 'workspaceId' => [ - 'title' => 'Workspace Id。', - 'description' => 'Workspace ID。', - 'type' => 'string', - 'example' => 'w-******', - ], - 'workspaceName' => [ - 'title' => '工作空间名称。', - 'description' => '工作空间名称。', - 'type' => 'string', - 'example' => 'spark批作业空间-1', - ], - 'resourceSpec' => [ - 'title' => '资源规格。', - 'description' => '资源规格。', - 'type' => 'string', - 'example' => '100cu', - ], - 'storage' => [ - 'title' => 'oss 路径。', - 'description' => 'OSS路径。', - 'type' => 'string', - 'example' => 'spark-result', - ], - 'dlfCatalogId' => [ - 'title' => 'dlf catalog 信息。', - 'description' => 'DLF Catalog信息。', - 'type' => 'string', - 'example' => 'default', - ], - 'paymentType' => [ - 'title' => '付费类型。', - 'description' => '付费类型。', - 'type' => 'string', - 'example' => 'PayAsYouGo or Subscription', - ], - 'paymentDurationUnit' => [ - 'title' => '订购周期(pre付费类型必须)。', - 'description' => '订购周期(pre付费类型必填)。', - 'type' => 'string', - 'example' => 'YEAR, MONTH, WEEK, DAY, HOUR, MINUTE', - ], - 'duration' => [ - 'title' => '订购周期数量(pre付费类型必须)。', - 'description' => '订购周期数量(pre付费类型必填)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'autoRenew' => [ - 'title' => '是否自动续费(pre付费类型必须)。', - 'description' => '是否自动续费(pre付费类型必填)。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'autoRenewPeriod' => [ - 'title' => '自动续费时长(pre付费类型必须)。', - 'description' => '自动续费时长(pre付费类型必填)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'autoRenewPeriodUnit' => [ - 'title' => '自动续费周期(pre付费类型必须)。', - 'description' => '自动续费周期(pre付费类型必填)。', - 'type' => 'string', - 'example' => 'YEAR, MONTH, WEEK, DAY, HOUR, MINUTE', - ], - 'workspaceStatus' => [ - 'title' => '工作空间状态。', - 'description' => '工作空间状态。', - 'type' => 'string', - 'example' => 'STARTING,RUNNING,TERMINATED', - ], - 'failReason' => [ - 'title' => '失败原因。', - 'description' => '失败原因。', - 'type' => 'string', - 'example' => 'out of stock', - ], - 'paymentStatus' => [ - 'title' => '支付状态。', - 'description' => '支付状态。', - 'type' => 'string', - 'example' => 'PAID/UNPAID', - ], - 'regionId' => [ - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'createTime' => [ - 'description' => '工作空间创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1684115879955', - ], - 'endTime' => [ - 'description' => '工作空间释放时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1687103999999', - ], - 'stateChangeReason' => [ - 'description' => '工作空间状态的变更信息。', - 'type' => 'object', - 'properties' => [ - 'code' => [ - 'description' => '错误码。', - 'type' => 'string', - 'example' => '0', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'Success', - ], - ], - ], - 'releaseType' => [ - 'description' => '工作空间释放原因。', - 'type' => 'string', - 'example' => 'SERVICE_RELEASE', - ], - 'dlfType' => [ - 'description' => '绑定dlf类型。', - 'type' => 'string', - 'example' => '1.0', - ], - 'prePaidQuota' => [ - 'description' => '预付费资源配额的信息。', + 'clusterId' => ['title' => '集群ID。', 'description' => '集群ID。', 'type' => 'string', 'example' => 'ray-uiulpgow9xljimm1'], + 'name' => ['title' => 'Ray集群名称。', 'description' => 'Ray集群名称。', 'type' => 'string', 'example' => 'testRayCluster'], + 'displayReleaseVersion' => ['title' => 'Ray引擎版本。', 'description' => 'Ray引擎版本。', 'type' => 'string', 'example' => 'ray-1.0.0 (Ray 2.47.1, Python 3.12)'], + 'description' => ['title' => '描述。', 'description' => '描述。', 'type' => 'string', 'example' => 'Ray Cluster for dev.'], + 'networkServiceName' => ['title' => '网络连接名称。', 'description' => '网络连接名称。', 'type' => 'string', 'example' => 'vpc'], + 'headSpec' => [ + 'title' => 'Ray集群Head节点信息。', + 'description' => 'Ray集群Head节点信息。', 'type' => 'object', 'properties' => [ - 'usedResource' => [ - 'description' => '当前已使用的资源量。', - 'type' => 'string', - 'example' => '{\\"cpu\\":\\"0\\",\\"memory\\":\\"0Gi\\",\\"cu\\":\\"0\\"}', - ], - 'maxResource' => [ - 'description' => '可使用的最大资源量。', - 'type' => 'string', - 'example' => '{\\"cpu\\":\\"1\\",\\"memory\\":\\"4Gi\\",\\"cu\\":\\"1\\"}', - ], - 'allocatedResource' => [ - 'description' => '当前已分配的资源量。', - 'type' => 'string', - 'example' => '{\\"cpu\\":\\"1\\",\\"memory\\":\\"4Gi\\",\\"cu\\":\\"1\\"}', - ], - 'createTime' => [ - 'description' => '资源配额的创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1745683200000', - ], - 'expireTime' => [ - 'description' => '资源配额的过期时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1740537153000', - ], - 'autoRenewal' => [ - 'description' => '资源是否开启了自动续费功能。'."\n" - ."\n" - .'- true:开启自动续费,资源到期后会自动续订。'."\n" - .'- false:未开启自动续费,资源到期后将停止使用。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'paymentStatus' => [ - 'description' => '当前资源的支付状态。取值如下:'."\n" - .'- NORMAL:有效中。'."\n" - .'- WAIT_FOR_EXPIRE:将过期。'."\n" - .'- EXPIRED:已过期。', - 'type' => 'string', - 'example' => 'NORMAL', - ], - 'instanceId' => [ - 'description' => '与该配额关联的资源实例ID。', - 'type' => 'string', - 'example' => 'i-abc12345', - ], - 'orderId' => [ - 'type' => 'string', - ], + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'example' => '2'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'example' => '8Gi'], + 'enableAutoScaling' => ['title' => 'Worker节点是否开启自动扩缩容。', 'description' => 'Worker节点是否开启自动扩缩容。', 'type' => 'boolean', 'example' => 'false'], + 'idleTimeoutSeconds' => ['title' => 'Worker节点Idle时间。', 'description' => 'Worker节点Idle时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '60'], + 'replica' => ['title' => '节点数量。', 'description' => '节点数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'gpuSpec' => ['type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], ], ], - 'tags' => [ + 'workerSpec' => [ + 'title' => 'Ray集群Worker信息。', + 'description' => 'Ray集群Worker信息。', 'type' => 'array', 'items' => [ + 'title' => 'Ray集群Worker信息结构体。', + 'description' => 'Ray集群Worker信息结构体。', 'type' => 'object', 'properties' => [ - 'tagKey' => [ - 'type' => 'string', - ], - 'tagValue' => [ + 'groupName' => ['title' => 'Worker组名称。', 'description' => 'Worker组名称。', 'type' => 'string', 'example' => 'Group1'], + 'workerType' => [ + 'title' => 'Worker类型。', + 'description' => 'Worker类型。', 'type' => 'string', + 'example' => 'CPU', + 'enum' => ['CPU'], ], + 'replica' => ['title' => '节点数量。', 'description' => '节点数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'example' => '2'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'example' => '8Gi'], + 'minReplica' => ['title' => '开启自动扩缩容后最小Worker数量。', 'description' => '开启自动扩缩容后最小Worker数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'maxReplica' => ['title' => '开启自动扩缩容后最大Worker数量。', 'description' => '开启自动扩缩容后最大Worker数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'gpuSpec' => ['type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], ], ], ], + 'state' => [ + 'title' => '集群状态。'."\n" + .'- Starting:启动中。'."\n" + .'- Running:运行中。'."\n" + .'- Stopping:正在停止。'."\n" + .'- Stopped:已停止。'."\n" + .'- Error:已失败。', + 'description' => '集群状态。'."\n" + .'- Starting:启动中。'."\n" + .'- Running:运行中。'."\n" + .'- Stopping:正在停止。'."\n" + .'- Stopped:已停止。'."\n" + .'- Error:已失败。', + 'type' => 'string', + 'example' => 'Running', + 'enum' => ['Starting', 'Running', 'Stopping', 'Stopped', 'Error'], + ], + 'createTime' => ['title' => '创建时间。', 'description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1723722279800'], + 'modifiedTime' => ['title' => '修改时间。', 'description' => '修改时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1723722279800'], + 'creator' => ['title' => '创建用户UID。', 'description' => '创建用户UID。', 'type' => 'string', 'example' => '202077646755123991'], + 'creatorName' => ['title' => '创建者昵称。', 'description' => '创建者昵称。', 'type' => 'string', 'example' => 'Alice'], + 'modifier' => ['title' => '最后更新者UID。', 'description' => '最后更新者UID。', 'type' => 'string', 'example' => '202077646755123991'], + 'modifierName' => ['title' => '修改者昵称。', 'description' => '修改者昵称。', 'type' => 'string', 'example' => 'Alice'], + 'userId' => ['title' => '主账号ID。', 'description' => '主账号ID。', 'type' => 'string', 'example' => '1234567890'], + 'dashboardUrl' => ['title' => 'Ray集群Dashboard链接。', 'description' => 'Ray集群Dashboard链接。', 'type' => 'string', 'example' => 'https://emr-spark-ray-gateway-cn-hangzhou.aliyuncs.com?token=xxxxxxxxx'], + 'modified' => ['title' => '配置是否修改过。', 'description' => '配置是否修改过。', 'type' => 'boolean', 'example' => 'false'], + 'message' => ['title' => '错误信息。', 'description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], + 'instanceId' => ['title' => 'Ray集群实例ID。', 'description' => 'Ray集群实例ID。', 'type' => 'string', 'example' => 'ray-uiulpgow9xljimm1-xxxxxxx'], + 'startTime' => ['title' => '启动时间。', 'description' => '启动时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1723722279800'], + 'grpcEndpoint' => ['title' => 'gRPC连接地址。', 'description' => 'gRPC连接地址(内网),其中域名也可以提交ray job。', 'type' => 'string', 'example' => 'ray://emr-spark-ray-gateway-cn-hanghzou-internal.emr.aliyuncs.com:80'], ], ], ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'nextToken' => [ - 'title' => '下一页TOKEN。', - 'description' => '下一页TOKEN。', - 'type' => 'string', - 'example' => '1', - ], - 'maxResults' => [ - 'title' => '一次获取的最大记录数。', - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'totalCount' => [ - 'title' => '记录总数。', - 'description' => '记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"workspaces\\": [\\n {\\n \\"workspaceId\\": \\"w-******\\",\\n \\"workspaceName\\": \\"spark批作业空间-1\\",\\n \\"resourceSpec\\": \\"100cu\\",\\n \\"storage\\": \\"spark-result\\",\\n \\"dlfCatalogId\\": \\"default\\",\\n \\"paymentType\\": \\"PayAsYouGo or Subscription\\",\\n \\"paymentDurationUnit\\": \\"YEAR, MONTH, WEEK, DAY, HOUR, MINUTE\\",\\n \\"duration\\": 1,\\n \\"autoRenew\\": true,\\n \\"autoRenewPeriod\\": 1,\\n \\"autoRenewPeriodUnit\\": \\"YEAR, MONTH, WEEK, DAY, HOUR, MINUTE\\",\\n \\"workspaceStatus\\": \\"STARTING,RUNNING,TERMINATED\\",\\n \\"failReason\\": \\"out of stock\\",\\n \\"paymentStatus\\": \\"PAID/UNPAID\\",\\n \\"regionId\\": \\"cn-shanghai\\",\\n \\"createTime\\": 1684115879955,\\n \\"endTime\\": 1687103999999,\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"0\\",\\n \\"message\\": \\"Success\\"\\n },\\n \\"releaseType\\": \\"SERVICE_RELEASE\\",\\n \\"dlfType\\": \\"1.0\\",\\n \\"prePaidQuota\\": {\\n \\"usedResource\\": \\"{\\\\\\\\\\\\\\"cpu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"memory\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0Gi\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"}\\",\\n \\"maxResource\\": \\"{\\\\\\\\\\\\\\"cpu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"memory\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"4Gi\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\"}\\",\\n \\"allocatedResource\\": \\"{\\\\\\\\\\\\\\"cpu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"memory\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"4Gi\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\"}\\",\\n \\"createTime\\": 1745683200000,\\n \\"expireTime\\": 1740537153000,\\n \\"autoRenewal\\": true,\\n \\"paymentStatus\\": \\"NORMAL\\",\\n \\"instanceId\\": \\"i-abc12345\\",\\n \\"orderId\\": \\"\\"\\n },\\n \\"tags\\": [\\n {\\n \\"tagKey\\": \\"\\",\\n \\"tagValue\\": \\"\\"\\n }\\n ]\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', - 'title' => '获取工作空间列表', - ], - 'ListWorkspaceQueues' => [ - 'summary' => '查看工作空间的队列列表。', - 'path' => '/api/v1/workspaces/{workspaceId}/queues', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '列出Ray集群', + 'summary' => '列出Ray集群。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListRayCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"rayClusters\\": [\\n {\\n \\"clusterId\\": \\"ray-uiulpgow9xljimm1\\",\\n \\"name\\": \\"testRayCluster\\",\\n \\"displayReleaseVersion\\": \\"ray-1.0.0 (Ray 2.47.1, Python 3.12)\\",\\n \\"description\\": \\"Ray Cluster for dev.\\",\\n \\"networkServiceName\\": \\"vpc\\",\\n \\"headSpec\\": {\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpu\\": \\"2\\",\\n \\"memory\\": \\"8Gi\\",\\n \\"enableAutoScaling\\": false,\\n \\"idleTimeoutSeconds\\": 60,\\n \\"replica\\": 1,\\n \\"gpuSpec\\": \\"ecs.gn6i-c4g1.xlarge\\"\\n },\\n \\"workerSpec\\": [\\n {\\n \\"groupName\\": \\"Group1\\",\\n \\"workerType\\": \\"CPU\\",\\n \\"replica\\": 2,\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpu\\": \\"2\\",\\n \\"memory\\": \\"8Gi\\",\\n \\"minReplica\\": 1,\\n \\"maxReplica\\": 10,\\n \\"gpuSpec\\": \\"ecs.gn6i-c4g1.xlarge\\"\\n }\\n ],\\n \\"state\\": \\"Running\\",\\n \\"createTime\\": 1723722279800,\\n \\"modifiedTime\\": 1723722279800,\\n \\"creator\\": \\"202077646755123991\\",\\n \\"creatorName\\": \\"Alice\\",\\n \\"modifier\\": \\"202077646755123991\\",\\n \\"modifierName\\": \\"Alice\\",\\n \\"userId\\": \\"1234567890\\",\\n \\"dashboardUrl\\": \\"https://emr-spark-ray-gateway-cn-hangzhou.aliyuncs.com?token=xxxxxxxxx\\",\\n \\"modified\\": false,\\n \\"message\\": \\"ok\\",\\n \\"instanceId\\": \\"ray-uiulpgow9xljimm1-xxxxxxx\\",\\n \\"startTime\\": 1723722279800,\\n \\"grpcEndpoint\\": \\"ray://emr-spark-ray-gateway-cn-hanghzou-internal.emr.aliyuncs.com:80\\"\\n }\\n ]\\n}","type":"json"}]', + ], + 'ListRayJob' => [ + 'summary' => '列出Ray Job信息。', + 'path' => '/api/v1/workspaces/{workspaceId}/rayJob', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '192786', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-26ca1703f6d7****', - ], + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], ], [ - 'name' => 'environment', + 'name' => 'pageSize', 'in' => 'query', - 'schema' => [ - 'description' => '环境类型。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'dev' => 'dev', - 'production' => 'production', - ], - 'example' => 'production', - ], + 'schema' => ['title' => '返回结果的分页数。默认值:20。', 'description' => '返回结果的分页数。默认值:20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ - 'name' => 'regionId', + 'name' => 'pageNum', + 'in' => 'query', + 'schema' => ['title' => '页码。', 'description' => '页码,默认值:1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'submissionId', 'in' => 'query', + 'schema' => ['description' => 'Ray Job的提交id。', 'type' => 'string', 'required' => false, 'example' => 'rj-xxxxxxxxxxx'], + ], + [ + 'name' => 'name', + 'in' => 'query', + 'schema' => ['description' => 'Ray Job的名称(精确搜索)。', 'type' => 'string', 'required' => false, 'example' => 'myrayjob'], + ], + [ + 'name' => 'submitTime', + 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'title' => '区域ID。', - 'description' => '地域ID。', - 'type' => 'string', + 'title' => '提交时间', + 'description' => '提交时间范围。', + 'type' => 'object', + 'properties' => [ + 'startTime' => ['description' => '提交时间起始,unix毫秒级别时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1780017822000'], + 'endTime' => ['description' => '提交时间截止,unix毫秒级别时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1780018822000'], + ], 'required' => false, - 'example' => 'cn-hangzhou', ], ], + [ + 'name' => 'taskBizId', + 'in' => 'query', + 'schema' => ['description' => '数据开发任务ID。', 'type' => 'string', 'required' => false, 'example' => 'TSK-db8b870d901e443ba0aebba40c923e02'], + ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'queues' => [ - 'description' => '队列列表', + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + 'totalCount' => ['title' => '总数量', 'description' => '总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'rayJobs' => [ + 'title' => 'Ray集群列表。', + 'description' => 'Ray Job列表。', 'type' => 'array', 'items' => [ - 'description' => '队列详情', + 'title' => 'Ray集群结构体。', + 'description' => 'Ray Job结构体。', 'type' => 'object', 'properties' => [ - 'regionId' => [ - 'title' => 'regionId。', - 'description' => '地域ID。', - 'type' => 'string', - 'example' => 'cn-hangzhou', - ], - 'queueName' => [ - 'title' => '队列名称。', - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'dev_queue', - ], - 'workspaceId' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'example' => 'w-1234abcd', - ], - 'queueType' => [ - 'title' => '队列类型', - 'description' => '队列类型。取值:'."\n" - ."\n" - .'- instance:单一任务类型'."\n" - .'- instanceChildren:父任务类型', - 'type' => 'string', - 'example' => 'instance', - ], - 'properties' => [ - 'title' => '队列Label', - 'description' => '队列Label。', - 'type' => 'string', - 'example' => 'dev_queue', - ], - 'queueScope' => [ - 'title' => '队列架构', - 'description' => '队列架构。', - 'type' => 'string', - 'example' => '{"arch": "x86"}', - ], - 'maxResource' => [ - 'title' => '队列资源最大容量', - 'description' => '队列资源最大容量。', - 'type' => 'string', - 'example' => '{"cpu": "2","memory": "2Gi"}', - ], - 'minResource' => [ - 'title' => '队列资源最小容量', - 'description' => '队列资源最小容量。', - 'type' => 'string', - 'example' => '{"cpu": "2","memory": "2Gi"}', - ], - 'usedResource' => [ - 'title' => '队列资源使用容量', - 'description' => '队列资源使用容量。', - 'type' => 'string', - 'example' => '{"cpu": "2","memory": "2Gi"}', - ], - 'queueStatus' => [ - 'description' => '队列状态。', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'creator' => [ - 'description' => '创建用户UID。', + 'submissionId' => ['title' => '集群ID。', 'description' => 'Ray Job的id。', 'type' => 'string', 'example' => 'rj-uiulpgow9xljimm1'], + 'name' => ['title' => 'Ray集群名称。', 'description' => 'Ray Job的名称。', 'type' => 'string', 'example' => 'testRayJob'], + 'status' => [ + 'title' => '集群状态。'."\n" + .'- Starting:启动中。'."\n" + .'- Running:运行中。'."\n" + .'- Stopping:正在停止。'."\n" + .'- Stopped:已停止。'."\n" + .'- Error:已失败。', + 'description' => '任务状态'."\n" + .'- Submitted 已提交。'."\n" + .'- Pending:集群创建中。'."\n" + .'- Running:任务运行中。'."\n" + .'- Succeeded:任务已成功。'."\n" + .'- Failed:任务已失败。'."\n" + .'- Cancelling:取消中。'."\n" + .'- Cancelled:已取消。'."\n" + .'- Timeout:超时取消。', 'type' => 'string', - 'example' => '237109', - ], - 'allowActions' => [ - 'title' => '队列允许的操作', - 'description' => '队列允许的操作列表', - 'type' => 'array', - 'items' => [ - 'description' => '队列允许的操作', - 'type' => 'object', - 'properties' => [ - 'actionArn' => [ - 'title' => '行为 arn。', - 'description' => '行为 arn。', - 'type' => 'string', - 'example' => 'acs:emr::workspaceId:action/create_queue', - ], - 'actionName' => [ - 'title' => '权限名称。', - 'description' => '权限名称。', - 'type' => 'string', - 'example' => 'view', - ], - 'displayName' => [ - 'title' => '权限展示名称。', - 'description' => '权限展示名称。', - 'type' => 'string', - 'example' => '文件目录遍历、文件浏览', - ], - 'description' => [ - 'title' => 'action 描述。', - 'description' => 'action 描述。', - 'type' => 'string', - 'example' => '文件目录遍历、文件浏览', - ], - 'dependencies' => [ - 'title' => 'action 依赖列表。', - 'description' => 'action 依赖列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'action 依赖。', - 'type' => 'string', - 'example' => 'view', - ], - 'example' => '["view"]', - ], - ], - ], - ], - 'environments' => [ - 'description' => '队列环境类型列表', - 'type' => 'array', - 'items' => [ - 'description' => '队列环境类型', - 'type' => 'string', - 'example' => 'production', - ], - ], - 'paymentType' => [ - 'description' => '付费类型。可选值:'."\n" - ."\n" - .'- PayAsYouGo:按量付费'."\n" - .'- Pre:包年包月', + 'example' => 'Running', + 'enum' => ['Submitted', 'Pending', 'Running', 'Succeeded', 'Failed', 'Cancelling', 'Cancelled', 'Timeout'], + ], + 'resourceQueue' => ['title' => 'Ray引擎版本。', 'description' => 'Ray引擎版本。', 'type' => 'string', 'example' => 'err-1.2.0 (Ray 2.55.1, Python 3.12)'], + 'submitTime' => ['description' => '任务提交时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1776945399000'], + 'startTime' => ['description' => '任务启动时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1776945499000'], + 'endTime' => ['description' => '任务结束时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1776945509000'], + 'duration' => ['description' => '任务执行时间,单位秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '3564'], + 'creatorName' => ['title' => '创建者昵称。', 'description' => '创建者昵称。', 'type' => 'string', 'example' => 'Alice'], + 'dashboardUrl' => ['title' => 'Ray集群Dashboard链接。', 'description' => 'Ray 集群 Dashboard 链接,Ray 集群状态为 Running 时为 Runtime UI,状态为 Deleted 后为 History UI,仅 err-1.2.0 及以上版本支持 History UI。', 'type' => 'string', 'example' => 'https://emr-ray-gateway.aliyuncs.com?token=xxxxxxxxx'], + 'cuHours' => ['description' => '任务运行周期内所消耗的 CU 数量(该值为预估值,最终以账单为准)。', 'type' => 'number', 'format' => 'double', 'example' => '120'], + 'clusterState' => [ + 'description' => '对应的 Ray 集群的状态。'."\n" + .'- Deleted:已删除。'."\n" + .'- Submitted:已提交未开始创建。'."\n" + .'- Pending:创建中。'."\n" + .'- Running:运行中。', 'type' => 'string', - 'example' => 'PayAsYouGo', - ], - 'createTime' => [ - 'description' => '工作空间创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1684115879955', - ], - 'preheat' => [ - 'title' => '是否进行资源预热'."\n", - 'description' => '是否进行资源预热'."\n", - 'type' => 'boolean', + 'example' => 'Running', + 'enum' => ['Deleted', 'Running', 'Submitted', 'Pending'], ], ], ], ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'nextToken' => [ - 'title' => '下一页TOKEN。', - 'description' => '下一页TOKEN。', - 'type' => 'string', - 'example' => '1', - ], - 'maxResults' => [ - 'title' => '一次获取的最大记录数。', - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'totalCount' => [ - 'title' => '记录总数。', - 'description' => '记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '列出Ray Job信息。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"queues\\": [\\n {\\n \\"regionId\\": \\"cn-hangzhou\\",\\n \\"queueName\\": \\"dev_queue\\",\\n \\"workspaceId\\": \\"w-1234abcd\\",\\n \\"queueType\\": \\"instance\\",\\n \\"properties\\": \\"dev_queue\\",\\n \\"queueScope\\": \\"{\\\\\\"arch\\\\\\": \\\\\\"x86\\\\\\"}\\",\\n \\"maxResource\\": \\"{\\\\\\"cpu\\\\\\": \\\\\\"2\\\\\\",\\\\\\"memory\\\\\\": \\\\\\"2Gi\\\\\\"}\\",\\n \\"minResource\\": \\"{\\\\\\"cpu\\\\\\": \\\\\\"2\\\\\\",\\\\\\"memory\\\\\\": \\\\\\"2Gi\\\\\\"}\\",\\n \\"usedResource\\": \\"{\\\\\\"cpu\\\\\\": \\\\\\"2\\\\\\",\\\\\\"memory\\\\\\": \\\\\\"2Gi\\\\\\"}\\",\\n \\"queueStatus\\": \\"RUNNING\\",\\n \\"creator\\": \\"237109\\",\\n \\"allowActions\\": [\\n {\\n \\"actionArn\\": \\"acs:emr::workspaceId:action/create_queue\\",\\n \\"actionName\\": \\"view\\",\\n \\"displayName\\": \\"文件目录遍历、文件浏览\\",\\n \\"description\\": \\"文件目录遍历、文件浏览\\",\\n \\"dependencies\\": [\\n \\"view\\"\\n ]\\n }\\n ],\\n \\"environments\\": [\\n \\"production\\"\\n ],\\n \\"paymentType\\": \\"PayAsYouGo\\",\\n \\"createTime\\": 1684115879955,\\n \\"preheat\\": true\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', - 'title' => '获取工作空间队列列表', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"totalCount\\": 200,\\n \\"rayJobs\\": [\\n {\\n \\"submissionId\\": \\"rj-uiulpgow9xljimm1\\",\\n \\"name\\": \\"testRayJob\\",\\n \\"status\\": \\"Running\\",\\n \\"resourceQueue\\": \\"err-1.2.0 (Ray 2.55.1, Python 3.12)\\",\\n \\"submitTime\\": 1776945399000,\\n \\"startTime\\": 1776945499000,\\n \\"endTime\\": 1776945509000,\\n \\"duration\\": 3564,\\n \\"creatorName\\": \\"Alice\\",\\n \\"dashboardUrl\\": \\"https://emr-ray-gateway.aliyuncs.com?token=xxxxxxxxx\\",\\n \\"cuHours\\": 120,\\n \\"clusterState\\": \\"Running\\"\\n }\\n ]\\n}","type":"json"}]', ], - 'EditWorkspaceQueue' => [ - 'summary' => '编辑工作空间队列。', - 'path' => '/api/v1/workspaces/queues/action/edit', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListRayLogs' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceId}/ray/{instanceId}/logs', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'create', + 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '192830', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], 'parameters' => [ [ - 'name' => 'body', - 'in' => 'body', - 'allowEmptyValue' => false, - 'style' => 'json', - 'schema' => [ - 'description' => '请求结构体', - 'type' => 'object', - 'properties' => [ - 'workspaceId' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-975bcfda9625****', - ], - 'resourceSpec' => [ - 'description' => '资源规格。', - 'type' => 'object', - 'properties' => [ - 'cu' => [ - 'description' => '工作空间队列资源上限。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1000', - ], - 'maxCu' => [ - 'title' => '最大cu数', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '0.5', - ], - ], - 'required' => false, - ], - 'workspaceQueueName' => [ - 'description' => '工作空间队列名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'dev_queue', - ], - 'environments' => [ - 'description' => '队列环境类型', - 'type' => 'array', - 'items' => [ - 'description' => '队列环境类型', - 'type' => 'string', - 'required' => false, - 'example' => 'prod', - ], - 'required' => false, - ], - ], - 'required' => false, - ], + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], ], [ - 'name' => 'regionId', + 'name' => 'instanceId', + 'in' => 'path', + 'schema' => ['description' => 'Ray Job的id。', 'type' => 'string', 'required' => false, 'example' => 'rj-311d343123'], + ], + [ + 'name' => 'bucketName', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => 'bucket名称。', 'type' => 'string', 'required' => false, 'example' => 'mybucket'], + ], + [ + 'name' => 'prefix', + 'in' => 'query', + 'schema' => ['description' => '限定返回文件的 Key 必须以 Prefix 作为前缀。', 'type' => 'string', 'required' => false, 'example' => '/w-xxxxxxx/ray/logs/rj-xxxxxxxxxx_default/ '], + ], + [ + 'name' => 'marker', + 'in' => 'query', + 'schema' => ['description' => '设定从 marker 之后按字母排序开始返回 Object。', 'type' => 'string', 'required' => false, 'example' => 'test1.txt'], + ], + [ + 'name' => 'delimiter', + 'in' => 'query', + 'schema' => ['description' => '对 Object 名字进行分组的字符。所有 Object 名字包含指定的前缀,第一次出现 Delimiter 字符之间的 Object 作为一组元素(即 CommonPrefixes)。', 'type' => 'string', 'required' => false, 'example' => '/'], + ], + [ + 'name' => 'maxKeys', + 'in' => 'query', + 'schema' => ['description' => '指定返回 Object 的最大数。 如果因为 max-keys 的设定无法一次完成列举,返回结果会附加 NextMarker 元素作为下一次列举的 marker。'."\n" + .'取值:大于 0 小于 1000'."\n" + .'默认值:100', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '50'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + 'code' => ['description' => '响应状态码, 1000000表示成功。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], + 'data' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'bucketName' => ['description' => 'OSS Bucket名称。', 'type' => 'string', 'example' => 'mybucket'], + 'prefix' => ['description' => '限定返回文件的 Key 必须以 prefix 作为前缀。', 'type' => 'string', 'example' => '/w-xxxxxxx/ray/logs/rj-xxxxxxxxxx_default/'], + 'marker' => ['description' => '设定从 marker 之后按字母排序开始返回 Object。', 'type' => 'string', 'example' => 'test1.txt'], + 'maxKeys' => ['description' => '指定返回 Object 的最大数。', 'type' => 'integer', 'format' => 'int64', 'example' => '50'], + 'delimiter' => ['description' => '对 Object 名字进行分组的字符。所有 Object 名字包含指定的前缀,第一次出现 delimiter 字符之间的 Object 作为一组元素(即 CommonPrefixes)。', 'type' => 'string', 'example' => '/'], + 'isTruncated' => ['description' => '请求中返回的结果是否被截断。', 'type' => 'boolean', 'example' => 'true'."\n"], + 'nextMarker' => ['description' => '下一次列举文件的起点。', 'type' => 'string', 'example' => 'test2.txt'], + 'objectList' => [ + 'description' => 'Object 元数据列表。', + 'type' => 'array', + 'items' => [ + 'description' => 'Object数据。', + 'type' => 'object', + 'properties' => [ + 'name' => ['description' => '名称。', 'type' => 'string', 'example' => 'test1.txt'], + 'path' => ['description' => '文件路径。', 'type' => 'string', 'example' => '/w-xxxxxxx/ray/logs/rj-xxxxxxxxxx_default/test1.txt'], + 'isDir' => ['description' => '是否为目录。', 'type' => 'boolean', 'example' => 'false'], + 'timeModified' => ['description' => '修改时间,unix毫秒级别时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '17344656363434'], + 'size' => ['description' => '文件大小,单位为字节。', 'type' => 'integer', 'format' => 'int64', 'example' => '535345'], + ], + ], + ], + ], ], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '列出Ray日志列表', + 'summary' => '列出Ray日志列表。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '编辑工作空间队列', + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\",\\n \\"data\\": {\\n \\"bucketName\\": \\"mybucket\\",\\n \\"prefix\\": \\"/w-xxxxxxx/ray/logs/rj-xxxxxxxxxx_default/\\",\\n \\"marker\\": \\"test1.txt\\",\\n \\"maxKeys\\": 50,\\n \\"delimiter\\": \\"/\\",\\n \\"isTruncated\\": true,\\n \\"nextMarker\\": \\"test2.txt\\",\\n \\"objectList\\": [\\n {\\n \\"name\\": \\"test1.txt\\",\\n \\"path\\": \\"/w-xxxxxxx/ray/logs/rj-xxxxxxxxxx_default/test1.txt\\",\\n \\"isDir\\": false,\\n \\"timeModified\\": 17344656363434,\\n \\"size\\": 535345\\n }\\n ]\\n }\\n}","type":"json"}]', ], 'ListReleaseVersions' => [ - 'summary' => '获取发布版本列表。', 'path' => '/api/v1/releaseVersions', - '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', 'systemTags' => [ 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '192442', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ 'name' => 'serviceFilter', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'releaseVersion', 'in' => 'query', - 'schema' => [ - 'description' => 'Serverless Spark版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-2.1 (Spark 3.3.1, Scala 2.12, Java Runtime)', - ], + 'schema' => ['description' => 'Serverless Spark版本。', 'type' => 'string', 'required' => false, 'example' => 'esr-2.1 (Spark 3.3.1, Scala 2.12, Java Runtime)'], ], [ 'name' => 'releaseVersionStatus', @@ -8465,10 +6578,7 @@ 'description' => '版本状态。', 'type' => 'string', 'required' => false, - 'enumValueTitles' => [ - 'ONLINE' => '在线', - 'OFFLINE' => '离线', - ], + 'enumValueTitles' => ['ONLINE' => '在线', 'OFFLINE' => '离线'], 'example' => 'ONLINE', ], ], @@ -8479,33 +6589,19 @@ 'description' => '版本类型。', 'type' => 'string', 'required' => false, - 'enumValueTitles' => [ - 'stable' => '稳定版', - 'beta' => '测试版', - ], + 'enumValueTitles' => ['stable' => '稳定版', 'beta' => '测试版'], 'example' => 'stable', ], ], [ 'name' => 'workspaceId', 'in' => 'query', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -8522,589 +6618,352 @@ 'description' => '版本详情。', 'type' => 'object', 'properties' => [ - 'releaseVersion' => [ - 'description' => '版本号。', - 'type' => 'string', - 'example' => 'esr-2.1 (Spark 3.3.1, Scala 2.12, Java Runtime)', - ], - 'state' => [ - 'description' => '版本状态。', - 'type' => 'string', - 'example' => 'ONLINE', - ], - 'type' => [ - 'description' => '版本类型。', - 'type' => 'string', - 'example' => 'stable', - ], - 'iaasType' => [ - 'description' => 'IaaS层类型。', - 'type' => 'string', - 'example' => 'ASI', - ], - 'gmtCreate' => [ - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1716215854101', - ], - 'scalaVersion' => [ - 'description' => 'Scala版本。', - 'type' => 'string', - 'example' => '2.12', - ], - 'communityVersion' => [ - 'description' => '社区Spark版本号。', - 'type' => 'string', - 'example' => 'Spark 3.3.1', - ], + 'releaseVersion' => ['description' => '版本号。', 'type' => 'string', 'example' => 'esr-2.1 (Spark 3.3.1, Scala 2.12, Java Runtime)'], + 'state' => ['description' => '版本状态。', 'type' => 'string', 'example' => 'ONLINE'], + 'type' => ['description' => '版本类型。', 'type' => 'string', 'example' => 'stable'], + 'iaasType' => ['description' => 'IaaS层类型。', 'type' => 'string', 'example' => 'ASI'], + 'gmtCreate' => ['description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1716215854101'], + 'scalaVersion' => ['description' => 'Scala版本。', 'type' => 'string', 'example' => '2.12'], + 'communityVersion' => ['description' => '社区Spark版本号。', 'type' => 'string', 'example' => 'Spark 3.3.1'], 'cpuArchitectures' => [ 'description' => 'CPU架构列表。', 'type' => 'array', - 'items' => [ - 'description' => 'CPU架构。', - 'type' => 'string', - 'example' => 'x86', - ], - ], - 'displayReleaseVersion' => [ - 'description' => '版本号。', - 'type' => 'string', - 'example' => 'esr-2.1 (Spark 3.3.1, Scala 2.12)', + 'items' => ['description' => 'CPU架构。', 'type' => 'string', 'example' => 'x86'], ], + 'displayReleaseVersion' => ['description' => '版本号。', 'type' => 'string', 'example' => 'esr-2.1 (Spark 3.3.1, Scala 2.12)'], 'fusion' => [ 'description' => '是否开启Fusion引擎加速。', 'type' => 'boolean', - 'enumValueTitles' => [ - 'true' => '是', - 'false' => '否', - ], + 'enumValueTitles' => ['true' => '是', 'false' => '否'], 'example' => 'true', ], ], ], ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'nextToken' => [ - 'title' => '下一页TOKEN。', - 'description' => '下一页TOKEN。', - 'type' => 'string', - 'example' => '1', - ], - 'maxResults' => [ - 'title' => '一次获取的最大记录数。', - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'totalCount' => [ - 'title' => '记录总数。', - 'description' => '记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'nextToken' => ['title' => '下一页TOKEN。', 'description' => '下一页TOKEN。', 'type' => 'string', 'example' => '1'], + 'maxResults' => ['title' => '一次获取的最大记录数。', 'description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'totalCount' => ['title' => '记录总数。', 'description' => '记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"releaseVersions\\": [\\n {\\n \\"releaseVersion\\": \\"esr-2.1 (Spark 3.3.1, Scala 2.12, Java Runtime)\\",\\n \\"state\\": \\"ONLINE\\",\\n \\"type\\": \\"stable\\",\\n \\"iaasType\\": \\"ASI\\",\\n \\"gmtCreate\\": 1716215854101,\\n \\"scalaVersion\\": \\"2.12\\",\\n \\"communityVersion\\": \\"Spark 3.3.1\\",\\n \\"cpuArchitectures\\": [\\n \\"x86\\"\\n ],\\n \\"displayReleaseVersion\\": \\"esr-2.1 (Spark 3.3.1, Scala 2.12)\\",\\n \\"fusion\\": true\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', 'title' => '获取spark版本列表', - ], - 'ListJobExecutors' => [ - 'summary' => '列出作业的executors', - 'path' => '/api/v1/workspaces/{workspaceId}/jobRuns/{jobRunId}/executors', - 'methods' => [ - 'get', + 'summary' => '获取发布版本列表。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListReleaseVersions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"releaseVersions\\": [\\n {\\n \\"releaseVersion\\": \\"esr-2.1 (Spark 3.3.1, Scala 2.12, Java Runtime)\\",\\n \\"state\\": \\"ONLINE\\",\\n \\"type\\": \\"stable\\",\\n \\"iaasType\\": \\"ASI\\",\\n \\"gmtCreate\\": 1716215854101,\\n \\"scalaVersion\\": \\"2.12\\",\\n \\"communityVersion\\": \\"Spark 3.3.1\\",\\n \\"cpuArchitectures\\": [\\n \\"x86\\"\\n ],\\n \\"displayReleaseVersion\\": \\"esr-2.1 (Spark 3.3.1, Scala 2.12)\\",\\n \\"fusion\\": true\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', + ], + 'ListSessionClusters' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/sessionClusters', + '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' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '231260', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceT8XN05', - ], - 'autoTest' => true, - 'tenantRelevance' => 'tenant', + 'abilityTreeCode' => '202905', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d2d82aa09155****', - ], + 'name' => 'nextToken', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '标记当前开始读取的位置。', 'description' => '标记当前开始读取的位置。', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ - 'name' => 'jobRunId', - 'in' => 'path', - 'schema' => [ - 'description' => '任务运行ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'jr-f09a8fda2396****', - ], + 'name' => 'maxResults', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '一次获取的最大记录数。', 'description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ - 'name' => 'nextToken', - 'in' => 'query', - 'schema' => [ - 'description' => '下一页TOKEN。', - 'type' => 'string', - 'required' => false, - 'example' => '2', - ], + 'name' => 'workspaceId', + 'in' => 'path', + 'allowEmptyValue' => false, + 'schema' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-1234abcd'], ], [ - 'name' => 'maxResults', + 'name' => 'sessionClusterId', 'in' => 'query', - 'schema' => [ - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'allowEmptyValue' => false, + 'schema' => ['title' => '作业名称。', 'description' => '作业名称。', 'type' => 'string', 'required' => false, 'example' => 'emr-spark-demo-job'], ], [ - 'name' => 'status', + 'name' => 'queueName', 'in' => 'query', - 'schema' => [ - 'description' => 'Executor状态。', - 'type' => 'string', - 'required' => false, - 'example' => 'Dead', - ], + 'schema' => ['description' => '队列名称。', 'type' => 'string', 'required' => false, 'example' => 'root'], ], [ - 'name' => 'executorType', + 'name' => 'kind', 'in' => 'query', 'schema' => [ - 'description' => 'Executor类型。', + 'description' => '会话类型。', 'type' => 'string', 'required' => false, - 'example' => 'driver', + 'enumValueTitles' => ['NOTEBOOK' => 'NOTEBOOK', 'THRIFT' => 'THRIFT', 'SQL' => 'SQL'], + 'example' => 'SQL', + 'default' => 'SQL', ], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'title' => '返回数据', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => 'Id of the request', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'nextToken' => [ - 'description' => '下一页TOKEN。', - 'type' => 'string', - 'example' => '2', - ], - 'maxResults' => [ - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'totalCount' => [ - 'description' => '记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'exexutors' => [ - 'description' => 'Executor列表。', + 'sessionClusters' => [ + 'description' => '会话列表。', 'type' => 'array', 'items' => [ - 'description' => '单条Executor信息。', + 'description' => '会话详情。', 'type' => 'object', 'properties' => [ - 'workspaceId' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'example' => 'w-78faee4da118f02e', - ], - 'jobRunId' => [ - 'description' => '任务运行ID。', - 'type' => 'string', - 'example' => 'jr-1fe145df8ade366a', - ], - 'executorId' => [ - 'description' => '作业Executor ID。', - 'type' => 'string', - 'example' => '1', - ], - 'status' => [ - 'description' => 'Executor运行状态。', - 'type' => 'string', - 'example' => 'Running', - ], - 'hostPort' => [ - 'description' => 'Executor地址信息。', - 'type' => 'string', - 'example' => '21.10.x.x:1201x', - ], - 'rddBlocks' => [ - 'description' => 'Executor管理的RDD Block数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'memoryUsed' => [ - 'description' => 'Executor内存使用率。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '30', - ], - 'diskUsed' => [ - 'description' => 'Executor磁盘率。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '20', - ], - 'totalCores' => [ - 'description' => 'Executor总核数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4', - ], - 'activeTasks' => [ - 'description' => 'Executor总执行活跃任务数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'failedTasks' => [ - 'description' => 'Executor总执行失败任务数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - 'completedTasks' => [ - 'description' => 'Executor总执行完成任务数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '8', - ], - 'totalTasks' => [ - 'description' => 'Executor总执行任务数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '50', - ], - 'totalDuration' => [ - 'description' => 'Executor总运行时长。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '123', - ], - 'totalGCTime' => [ - 'description' => 'Executor总GC时长', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3', - ], - 'totalInputBytes' => [ - 'description' => 'Executor输入数据字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1024', - ], - 'totalShuffleRead' => [ - 'description' => 'Executor Shuffle Read字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2048', + 'workspaceId' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'example' => 'w-1234abcd'], + 'sessionClusterId' => ['title' => '交互式作业会话id。', 'description' => '会话ID。', 'type' => 'string', 'example' => 'sc-123131'], + 'userId' => ['title' => '任务实例ID。', 'description' => '用户ID。', 'type' => 'string', 'example' => '123131'], + 'queueName' => ['title' => '作业实例名称。', 'description' => '会话运行队列名称。', 'type' => 'string', 'example' => 'dev_queue'], + 'state' => ['title' => '作业状态。', 'description' => '会话状态。'."\n" + .'- Starting:启动中。'."\n" + .'- Running:运行中。'."\n" + .'- Stopping:正在停止。'."\n" + .'- Stopped:已停止。'."\n" + .'- Error:已失败。', 'type' => 'string', 'example' => 'Running'], + 'stateChangeReason' => [ + 'description' => '会话最近一次状态变化详情。', + 'type' => 'object', + 'properties' => [ + 'code' => ['description' => '状态变化编码。', 'type' => 'string', 'example' => '200'], + 'message' => ['description' => '状态变化消息。', 'type' => 'string', 'example' => 'ok'], + ], ], - 'totalShuffleWrite' => [ - 'description' => 'Executor Shuffle Write字节数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2048'."\n", + 'autoStartConfiguration' => [ + 'description' => '自动启动配置。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => '是否开启自动启动。', 'type' => 'boolean', 'example' => 'true'], + ], ], - 'maxMemory' => [ - 'description' => 'Executor最大内存。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '4294967296', + 'autoStopConfiguration' => [ + 'description' => '自动终止配置。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => '是否允许自动终止。', 'type' => 'boolean', 'example' => 'false'], + 'idleTimeoutMinutes' => ['description' => '会话空闲指定分钟数后自动终止。', 'type' => 'integer', 'format' => 'int32', 'example' => '45'], + ], ], - 'addTime' => [ - 'description' => 'Executor创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1760601***', + 'applicationConfigs' => [ + 'description' => '会话配置,等价于背后运行的Spark作业的配置。', + 'type' => 'array', + 'items' => [ + 'description' => 'SQL Compute配置,等价于背后运行的spark job的配置。', + 'type' => 'object', + 'properties' => [ + 'configFileName' => ['description' => '配置文件名。', 'type' => 'string', 'example' => 'spark-default.conf'], + 'configItemKey' => ['description' => '配置键。', 'type' => 'string', 'example' => 'spark.app.name'], + 'configItemValue' => ['description' => '配置值。', 'type' => 'string', 'example' => 'test_application'], + ], + ], ], - 'executorType' => [ - 'description' => 'Executor类型。', + 'name' => ['description' => '会话名称。', 'type' => 'string', 'example' => 'adhoc_query'], + 'userName' => ['description' => '用户名。', 'type' => 'string', 'example' => 'test_user'], + 'kind' => [ + 'description' => '会话类型。', 'type' => 'string', - 'example' => 'driver', + 'enumValueTitles' => ['NOTEBOOK' => 'NOTEBOOK', 'THRIFT' => 'THRIFT', 'SQL' => 'SQL'], + 'example' => 'SQL', ], + 'webUI' => ['description' => '会话SparkUI链接地址。', 'type' => 'string', 'example' => 'http://spark-ui-xxxx'], + 'releaseVersion' => ['description' => 'Serverless Spark版本。', 'type' => 'string', 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)'], + 'draftId' => ['description' => '会话绑定的开发作业ID。', 'type' => 'string', 'example' => 'TSK-xxxxxxxxx'."\n"], + 'domain' => ['description' => 'Thrift server的外网域名。', 'type' => 'string', 'example' => 'emr-spark-gateway-cn-hangzhou.data.aliyun.com'], + 'displayReleaseVersion' => ['description' => '控制台实际展示的版本。', 'type' => 'string', 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)'], + 'fusion' => ['description' => '是否开启Fusion引擎加速。', 'type' => 'boolean', 'example' => 'false'], + 'gmtCreate' => ['description' => '创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1732267598000'], + 'startTime' => ['description' => '启动时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1732267598000'], + 'domainInner' => ['description' => 'Thrift server的内网域名。', 'type' => 'string', 'example' => 'emr-spark-gateway-cn-hangzhou-internal.data.aliyuncs.com'], + 'extra' => ['description' => '会话额外元数据。', 'type' => 'string', 'example' => '{"extraInfoKey":"extraInfoValue"}'], + 'publicEndpointEnabled' => ['type' => 'boolean'], + 'connectionToken' => ['type' => 'string'], ], ], ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'nextToken' => ['title' => '返回读取到的数据位置。', 'description' => '返回读取到的数据位置。', 'type' => 'string', 'example' => '1'], + 'maxResults' => ['title' => '本次请求所返回的最大记录条数。', 'description' => '本次请求所返回的最大记录条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'totalCount' => ['title' => '本次请求条件下的数据总量。', 'description' => '本次请求条件下的数据总量。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'title' => '获取会话列表', + 'summary' => '获取会话列表。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListSessionClusters', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"2\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200,\\n \\"exexutors\\": [\\n {\\n \\"workspaceId\\": \\"w-78faee4da118f02e\\",\\n \\"jobRunId\\": \\"jr-1fe145df8ade366a\\",\\n \\"executorId\\": \\"1\\",\\n \\"status\\": \\"Running\\",\\n \\"hostPort\\": \\"21.10.x.x:1201x\\",\\n \\"rddBlocks\\": 10,\\n \\"memoryUsed\\": 30,\\n \\"diskUsed\\": 20,\\n \\"totalCores\\": 4,\\n \\"activeTasks\\": 10,\\n \\"failedTasks\\": 2,\\n \\"completedTasks\\": 8,\\n \\"totalTasks\\": 50,\\n \\"totalDuration\\": 123,\\n \\"totalGCTime\\": 3,\\n \\"totalInputBytes\\": 1024,\\n \\"totalShuffleRead\\": 2048,\\n \\"totalShuffleWrite\\": 2048,\\n \\"maxMemory\\": 4294967296,\\n \\"addTime\\": 0,\\n \\"executorType\\": \\"driver\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '作业Executor列表', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sessionClusters\\": [\\n {\\n \\"workspaceId\\": \\"w-1234abcd\\",\\n \\"sessionClusterId\\": \\"sc-123131\\",\\n \\"userId\\": \\"123131\\",\\n \\"queueName\\": \\"dev_queue\\",\\n \\"state\\": \\"Running\\",\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"200\\",\\n \\"message\\": \\"ok\\"\\n },\\n \\"autoStartConfiguration\\": {\\n \\"enable\\": true\\n },\\n \\"autoStopConfiguration\\": {\\n \\"enable\\": false,\\n \\"idleTimeoutMinutes\\": 45\\n },\\n \\"applicationConfigs\\": [\\n {\\n \\"configFileName\\": \\"spark-default.conf\\",\\n \\"configItemKey\\": \\"spark.app.name\\",\\n \\"configItemValue\\": \\"test_application\\"\\n }\\n ],\\n \\"name\\": \\"adhoc_query\\",\\n \\"userName\\": \\"test_user\\",\\n \\"kind\\": \\"SQL\\",\\n \\"webUI\\": \\"http://spark-ui-xxxx\\",\\n \\"releaseVersion\\": \\"esr-4.0.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"draftId\\": \\"TSK-xxxxxxxxx\\\\n\\",\\n \\"domain\\": \\"emr-spark-gateway-cn-hangzhou.data.aliyun.com\\",\\n \\"displayReleaseVersion\\": \\"esr-4.0.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"fusion\\": false,\\n \\"gmtCreate\\": 1732267598000,\\n \\"startTime\\": 1732267598000,\\n \\"domainInner\\": \\"emr-spark-gateway-cn-hangzhou-internal.data.aliyuncs.com\\",\\n \\"extra\\": \\"{\\\\\\"extraInfoKey\\\\\\":\\\\\\"extraInfoValue\\\\\\"}\\",\\n \\"publicEndpointEnabled\\": true,\\n \\"connectionToken\\": \\"\\"\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', ], - 'ListLogContents' => [ - 'summary' => '获取日志内容。', - 'path' => '/api/v1/workspaces/{workspaceId}/action/listLogContents', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListSqlStatementContents' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/action/listSqlStatementContents', + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', + 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '194779', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeNodes' => ['FEATUREemapreduceLNUXSK'], ], 'parameters' => [ [ 'name' => 'fileName', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '文件全路径名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'oss://datadev******.cn-hangzhou.oss-dls.aliyuncs.com/w-72704d9fb0******/spark/logs/jr-af51aa63cc******/driver/stdout.log', - ], + 'schema' => ['description' => '文件全路径名称。', 'type' => 'string', 'required' => false, 'example' => 'oss://oss-****.cn-hangzhou.oss-dls.aliyuncs.com/w-86a9a4da*****a1/spark/logs/jr-b737b****6164d/driver/st-afde7******bb3f'], ], [ - 'name' => 'offset', - 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '查询开始行。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间 ID。', 'type' => 'string', 'required' => false, 'example' => 'w-72704d9fb0******'], ], [ - 'name' => 'length', + 'name' => 'nextToken', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '日志长度。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '9999', - ], - ], - [ - 'name' => 'workspaceId', - 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-72704d9fb0******', - ], + 'schema' => ['description' => '标记当前开始读取的位置。', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ - 'name' => 'regionId', + 'name' => 'maxResults', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2000'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据', + 'title' => 'Schema of Response', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'listLogContent' => [ - 'description' => '日志内容。', + 'sqlStatementContents' => [ + 'description' => 'SQL执行结果内容。', 'type' => 'object', 'properties' => [ - 'contents' => [ - 'description' => '日志行内容列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'LineContent' => [ - 'description' => '日志行内容。', - 'type' => 'string', - 'example' => 'spark pi is 3.14\\n', - ], - ], - ], - ], - 'totalLength' => [ - 'description' => '日志总行数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], + 'contents' => ['description' => 'SQL执行结果内容列表。', 'type' => 'string', 'example' => '[{\\"values\\":[\\"wj*****\\",\\"test\\",\\"2025-04-15\\"]}]'], + 'nextToken' => ['description' => '标记当前开始读取的位置。', 'type' => 'string', 'example' => '1'], + 'maxResults' => ['description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2000'], + 'totalCount' => ['description' => '结果总行数。', 'type' => 'integer', 'format' => 'int32', 'example' => '40000'], ], ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求 ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n"], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"listLogContent\\": {\\n \\"contents\\": [\\n {\\n \\"LineContent\\": \\"spark pi is 3.14\\\\\\\\n\\"\\n }\\n ],\\n \\"totalLength\\": 10\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '查询日志内容', - ], - 'GetCuHours' => [ - 'summary' => 'GetCuHours', - 'path' => '/api/v1/workspaces/{workspaceId}/metric/cuHours/{queue}', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '查询SQL会话执行结果', + 'summary' => '获取sql statement内容。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListSqlStatementContents', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sqlStatementContents\\": {\\n \\"contents\\": \\"[{\\\\\\\\\\\\\\"values\\\\\\\\\\\\\\":[\\\\\\\\\\\\\\"wj*****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"test\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"2025-04-15\\\\\\\\\\\\\\"]}]\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 2000,\\n \\"totalCount\\": 40000\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\"\\n}","type":"json"}]', + ], + 'ListTemplate' => [ + 'summary' => '获取任务模板列表。', + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/template/listing', + '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', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceT8XN05', - ], + 'abilityTreeCode' => '191100', + 'abilityTreeNodes' => ['FEATUREemapreduceUECZZL'], ], 'parameters' => [ [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-dsa23*****', - ], - ], - [ - 'name' => 'queue', + 'name' => 'workspaceBizId', 'in' => 'path', - 'schema' => [ - 'description' => '队列名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'root_queue', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], ], [ - 'name' => 'startTime', - 'in' => 'query', - 'schema' => [ - 'description' => '查询时间范围起点。', - 'type' => 'string', - 'required' => true, - 'example' => '2024-01-01 00:00:00', - ], - ], - [ - 'name' => 'endTime', + 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'description' => '查询时间范围终点。', - 'type' => 'string', - 'required' => true, - 'example' => '2024-01-08 00:00:00', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -9114,1005 +6973,562 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'httpStatusCode' => ['title' => 'Id of the request', 'description' => 'http返回码。', 'type' => 'string', 'example' => '200'], + 'errorCode' => ['description' => '- 当success为false,返回业务错误码。'."\n" + .' '."\n" + .'- 当success为true,返回空值。', 'type' => 'string', 'example' => 'ERR-00000000'], + 'errorMessage' => ['description' => '- 当success为false,返回业务错误信息;'."\n" + ."\n" + .'- 当success为true,返回空值。', 'type' => 'string', 'example' => 'ok'], 'data' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'cuHours' => [ - 'description' => '查询周期内对应查询队列所消耗的CU时(该值为预估值,最终以账单为准)。', - 'type' => 'string', - 'example' => '{2025-01-09 00:00:00=2.033333, 2025-01-09 01:00:00=2.033333, 2025-01-09 02:00:00=2.033333, 2025-01-09 03:00:00=2.033333, 2025-01-09 04:00:00=2.033333, 2025-01-09 05:00:00=2.033333, 2025-01-09 06:00:00=2.033333, 2025-01-09 07:00:00=2.033333, 2025-01-09 08:00:00=2.033333, 2025-01-09 09:00:00=1.933333, 2025-01-09 10:00:00=2.133333, 2025-01-09 11:00:00=3.100000, 2025-01-09 12:00:00=2.900000}', - ], - ], - 'example' => '{'."\n" - .' "cuHours": "{2025-01-09 00:00:00=2.033333, 2025-01-09 01:00:00=2.033333, 2025-01-09 02:00:00=2.033333, 2025-01-09 03:00:00=2.033333, 2025-01-09 04:00:00=2.033333, 2025-01-09 05:00:00=2.033333, 2025-01-09 06:00:00=2.033333, 2025-01-09 07:00:00=2.033333, 2025-01-09 08:00:00=2.033333, 2025-01-09 09:00:00=1.933333, 2025-01-09 10:00:00=2.133333, 2025-01-09 11:00:00=3.100000, 2025-01-09 12:00:00=2.900000}"'."\n" - .'}', + 'description' => '数据列表。', + 'type' => 'array', + 'items' => ['description' => 'Spark任务模板对象。', '$ref' => '#/components/schemas/Template'], ], + 'success' => ['description' => '请求是否成功。'."\n" + ."\n" + .'- true:成功'."\n" + ."\n" + .'- false:失败', 'type' => 'boolean', 'example' => 'true'], + 'requestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n"], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"cuHours\\": \\"{2025-01-09 00:00:00=2.033333, 2025-01-09 01:00:00=2.033333, 2025-01-09 02:00:00=2.033333, 2025-01-09 03:00:00=2.033333, 2025-01-09 04:00:00=2.033333, 2025-01-09 05:00:00=2.033333, 2025-01-09 06:00:00=2.033333, 2025-01-09 07:00:00=2.033333, 2025-01-09 08:00:00=2.033333, 2025-01-09 09:00:00=1.933333, 2025-01-09 10:00:00=2.133333, 2025-01-09 11:00:00=3.100000, 2025-01-09 12:00:00=2.900000}\\"\\n }\\n}","type":"json"}]', - 'title' => '获取工作空间队列CU时', - ], - 'GetDoctorApplication' => [ - 'summary' => 'get doctor application for serverless spark', - 'path' => '/api/v1/workspaces/{workspaceId}/runs/{runId}/action/getDoctorApplication', - 'methods' => [ - 'get', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '获取工作空间配置模板列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"httpStatusCode\\": \\"200\\",\\n \\"errorCode\\": \\"ERR-00000000\\",\\n \\"errorMessage\\": \\"ok\\",\\n \\"data\\": [\\n {\\n \\"templateType\\": \\"TASK\\",\\n \\"gmtModified\\": \\"2025-03-10T02:02:41.000+00:00\\",\\n \\"creator\\": 0,\\n \\"sparkLogLevel\\": \\"INFO\\",\\n \\"gmtCreated\\": \\"2025-03-10T02:02:41.000+00:00\\\\n\\",\\n \\"sparkDriverMemory\\": 1073741824,\\n \\"modifier\\": 0,\\n \\"sparkExecutorCores\\": 1,\\n \\"sparkConf\\": [\\n {\\n \\"value\\": \\"test_application\\",\\n \\"key\\": \\"spark.app.name\\"\\n }\\n ],\\n \\"sparkVersion\\": \\"esr-4.1.1\\",\\n \\"sparkExecutorMemory\\": 1073741824,\\n \\"fusion\\": true,\\n \\"isDefault\\": true,\\n \\"sparkDriverCores\\": 1,\\n \\"displaySparkVersion\\": \\"esr-4.1.1\\",\\n \\"sparkLogPath\\": \\"oss://your_bucket/path/to/your/log\\",\\n \\"name\\": \\"\\",\\n \\"bizId\\": \\"\\"\\n }\\n ],\\n \\"success\\": true,\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\"\\n}","type":"json"}]', + ], + 'ListWorkspaceQueues' => [ + 'summary' => '查看工作空间的队列列表。', + 'path' => '/api/v1/workspaces/{workspaceId}/queues', + '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' => 'none', - 'abilityTreeCode' => '193399', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce60H0RM', - ], + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '192786', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', - ], - ], - [ - 'name' => 'runId', - 'in' => 'path', - 'schema' => [ - 'description' => '运行任务id。', - 'type' => 'string', - 'required' => false, - 'example' => 'jr-d2d82aa09155****', - ], - ], - [ - 'name' => 'queryTime', - 'in' => 'query', - 'schema' => [ - 'description' => '查询时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2024-01-01', - ], + 'allowEmptyValue' => false, + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-26ca1703f6d7****'], ], [ - 'name' => 'locale', + 'name' => 'environment', 'in' => 'query', 'schema' => [ - 'description' => '诊断信息语言。', + 'description' => '环境类型。', 'type' => 'string', 'required' => false, - 'example' => 'zh-CN', - 'default' => 'zh-CN', + 'enumValueTitles' => ['dev' => 'dev', 'production' => 'production'], + 'example' => 'production', ], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'title' => '返回数据', + 'description' => '返回数据', 'type' => 'object', 'properties' => [ - 'data' => [ - 'description' => '返回结果。', - 'type' => 'object', - 'properties' => [ - 'suggestions' => [ - 'description' => '诊断信息列表。', - 'type' => 'array', - 'items' => [ - 'description' => '诊断信息描述。', - 'type' => 'string', - 'example' => '正常。', + 'queues' => [ + 'description' => '队列列表', + 'type' => 'array', + 'items' => [ + 'description' => '队列详情', + 'type' => 'object', + 'properties' => [ + 'regionId' => ['title' => 'regionId。', 'description' => '地域ID。', 'type' => 'string', 'example' => 'cn-hangzhou'], + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'example' => 'dev_queue'], + 'workspaceId' => ['title' => '工作空间id。', 'description' => '工作空间ID。', 'type' => 'string', 'example' => 'w-1234abcd'], + 'queueType' => ['title' => '队列类型', 'description' => '队列类型。取值:'."\n" + ."\n" + .'- instance:单一任务类型'."\n" + .'- instanceChildren:父任务类型', 'type' => 'string', 'example' => 'instance'], + 'properties' => ['title' => '队列Label', 'description' => '队列Label。', 'type' => 'string', 'example' => 'dev_queue'], + 'queueScope' => ['title' => '队列架构', 'description' => '队列架构。', 'type' => 'string', 'example' => '{"arch": "x86"}'], + 'maxResource' => ['title' => '队列资源最大容量', 'description' => '队列资源最大容量。', 'type' => 'string', 'example' => '{"cpu": "2","memory": "2Gi"}'], + 'minResource' => ['title' => '队列资源最小容量', 'description' => '队列资源最小容量。', 'type' => 'string', 'example' => '{"cpu": "2","memory": "2Gi"}'], + 'usedResource' => ['title' => '队列资源使用容量', 'description' => '队列资源使用容量。', 'type' => 'string', 'example' => '{"cpu": "2","memory": "2Gi"}'], + 'queueStatus' => ['description' => '队列状态。', 'type' => 'string', 'example' => 'RUNNING'], + 'creator' => ['description' => '创建用户UID。', 'type' => 'string', 'example' => '237109'], + 'allowActions' => [ + 'title' => '队列允许的操作', + 'description' => '队列允许的操作列表', + 'type' => 'array', + 'items' => [ + 'description' => '队列允许的操作', + 'type' => 'object', + 'properties' => [ + 'actionArn' => ['title' => '行为 arn。', 'description' => '行为 arn。', 'type' => 'string', 'example' => 'acs:emr::workspaceId:action/create_queue'], + 'actionName' => ['title' => '权限名称。', 'description' => '权限名称。', 'type' => 'string', 'example' => 'view'], + 'displayName' => ['title' => '权限展示名称。', 'description' => '权限展示名称。', 'type' => 'string', 'example' => '文件目录遍历、文件浏览'], + 'description' => ['title' => 'action 描述。', 'description' => 'action 描述。', 'type' => 'string', 'example' => 'Directory traversal and file browsing'], + 'dependencies' => [ + 'title' => 'action 依赖列表。', + 'description' => 'action 依赖列表。', + 'type' => 'array', + 'items' => ['description' => 'action 依赖。', 'type' => 'string', 'example' => 'view'], + 'example' => '["view"]', + ], + ], + ], + ], + 'environments' => [ + 'description' => '队列环境类型列表', + 'type' => 'array', + 'items' => ['description' => '队列环境类型', 'type' => 'string', 'example' => 'production'], + ], + 'paymentType' => ['description' => '付费类型。可选值:'."\n" + ."\n" + .'- PayAsYouGo:按量付费'."\n" + .'- Pre:包年包月', 'type' => 'string', 'example' => 'PayAsYouGo'], + 'createTime' => ['description' => '工作空间创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1684115879955'], + 'preheat' => ['title' => '是否进行资源预热'."\n", 'type' => 'boolean'], + 'queueCategory' => ['title' => '队列类型,CPU或GPU。', 'type' => 'string', 'example' => 'CPU'], + 'gpuSpec' => [ + 'title' => 'gpu机型列表。', + 'type' => 'array', + 'items' => ['title' => 'gpu机型。', 'type' => 'string', 'example' => 'ecs.gn7i-c8g1.2xlarge'], ], ], ], ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'nextToken' => ['title' => '下一页TOKEN。', 'description' => '下一页TOKEN。', 'type' => 'string', 'example' => '1'], + 'maxResults' => ['title' => '一次获取的最大记录数。', 'description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'totalCount' => ['title' => '记录总数。', 'description' => '记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"data\\": {\\n \\"suggestions\\": [\\n \\"正常。\\"\\n ]\\n }\\n}","type":"json"}]', - 'title' => '获取作业诊断信息', - ], - 'CancelJobRun' => [ - 'summary' => '调用CancelJobRun终止正在运行的Spark任务。', - 'path' => '/api/v1/workspaces/{workspaceId}/jobRuns/{jobRunId}', - 'methods' => [ - 'delete', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'delete', - 'abilityTreeCode' => '215798', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"queues\\": [\\n {\\n \\"regionId\\": \\"cn-hangzhou\\",\\n \\"queueName\\": \\"dev_queue\\",\\n \\"workspaceId\\": \\"w-1234abcd\\",\\n \\"queueType\\": \\"instance\\",\\n \\"properties\\": \\"dev_queue\\",\\n \\"queueScope\\": \\"{\\\\\\"arch\\\\\\": \\\\\\"x86\\\\\\"}\\",\\n \\"maxResource\\": \\"{\\\\\\"cpu\\\\\\": \\\\\\"2\\\\\\",\\\\\\"memory\\\\\\": \\\\\\"2Gi\\\\\\"}\\",\\n \\"minResource\\": \\"{\\\\\\"cpu\\\\\\": \\\\\\"2\\\\\\",\\\\\\"memory\\\\\\": \\\\\\"2Gi\\\\\\"}\\",\\n \\"usedResource\\": \\"{\\\\\\"cpu\\\\\\": \\\\\\"2\\\\\\",\\\\\\"memory\\\\\\": \\\\\\"2Gi\\\\\\"}\\",\\n \\"queueStatus\\": \\"RUNNING\\",\\n \\"creator\\": \\"237109\\",\\n \\"allowActions\\": [\\n {\\n \\"actionArn\\": \\"acs:emr::workspaceId:action/create_queue\\",\\n \\"actionName\\": \\"view\\",\\n \\"displayName\\": \\"文件目录遍历、文件浏览\\",\\n \\"description\\": \\"Directory traversal and file browsing\\",\\n \\"dependencies\\": [\\n \\"view\\"\\n ]\\n }\\n ],\\n \\"environments\\": [\\n \\"production\\"\\n ],\\n \\"paymentType\\": \\"PayAsYouGo\\",\\n \\"createTime\\": 1684115879955,\\n \\"preheat\\": true,\\n \\"queueCategory\\": \\"CPU\\",\\n \\"gpuSpec\\": [\\n \\"ecs.gn7i-c8g1.2xlarge\\"\\n ]\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', + 'title' => '获取工作空间队列列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'parameters' => [ - [ - 'name' => 'workspaceId', - 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d2d82aa09155****', - ], - ], + 'ramActions' => [ [ - 'name' => 'jobRunId', - 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '任务实例ID。', - 'description' => '任务运行ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'jr-f09a8fda2396****', - ], - ], - [ - 'name' => 'regionId', - 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据', - 'type' => 'object', - 'properties' => [ - 'jobRunId' => [ - 'description' => '任务运行ID。', - 'type' => 'string', - 'example' => 'jr-f09a8fda2396****', - ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListWorkspaceQueues', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"jobRunId\\": \\"jr-f09a8fda2396****\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '终止Spark任务', ], - 'ListJobRuns' => [ - 'summary' => '调用ListJobRuns获取Spark任务列表。', - 'path' => '/api/v1/workspaces/{workspaceId}/jobRuns', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListWorkspaces' => [ + 'summary' => '调用ListWorkspaces获取工作空间列表。', + 'path' => '/api/v1/workspaces', + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '215800', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeCode' => '192019', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ 'name' => 'nextToken', 'in' => 'query', 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '标记当前开始读取的位置。', - 'description' => '标记当前开始读取的位置。', - 'type' => 'string', - 'required' => false, - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C89568980', - ], + 'schema' => ['title' => '标记当前开始读取的位置。', 'description' => '标记当前开始读取的位置。', 'type' => 'string', 'required' => false, 'example' => '1'], ], [ 'name' => 'maxResults', 'in' => 'query', 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '一次获取的最大记录数。', - 'description' => '一次获取的最大记录数,最大不超过100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], - ], - [ - 'name' => 'workspaceId', - 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['title' => '一次获取的最大记录数。', 'description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ 'name' => 'name', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '作业名称。', - 'description' => '任务名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'emr-spark-demo-job', - ], + 'schema' => ['description' => '工作空间的名称,支持根据工作空间名称进行模糊搜索。', 'type' => 'string', 'required' => false, 'example' => 'test_workspace', 'title' => '工作空间的名称,支持根据工作空间名称进行模糊搜索。'], ], [ - 'name' => 'creator', + 'name' => 'state', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '创建用户Uid。', - 'description' => '创建用户UID。', - 'type' => 'string', - 'required' => false, - 'example' => '150976534701****', - ], + 'schema' => ['description' => '工作空间状态', 'type' => 'string', 'required' => false, 'example' => 'running', 'title' => '会话状态。'."\n" + .'- Starting:启动中。'."\n" + .'- Running:运行中。'."\n" + .'- Stopping:正在停止。'."\n" + .'- Stopped:已停止。'."\n" + .'- Error:已失败。'], ], [ - 'name' => 'jobRunId', + 'name' => 'regionId', 'in' => 'query', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '作业id。', - 'description' => '任务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'j-xxx', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ - 'name' => 'tags', + 'name' => 'tag', 'in' => 'query', - 'allowEmptyValue' => false, 'style' => 'json', 'schema' => [ - 'title' => '标签。', - 'description' => '标签列表。', 'type' => 'array', 'items' => [ - 'description' => '标签对象。', 'type' => 'object', 'properties' => [ - 'key' => [ - 'description' => '标签键。', - 'type' => 'string', - 'required' => false, - 'example' => 'tag_key', - ], - 'value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'required' => false, - 'example' => 'value', - ], + 'key' => ['type' => 'string', 'required' => false, 'title' => '标签键。', 'example' => 'cn-shenzhen-finance.edas.config.server', 'description' => '标签键。'], + 'value' => ['type' => 'string', 'required' => false, 'example' => 'iPhone disk space remaining rate', 'title' => '标签值。', 'description' => '标签值。'], ], 'required' => false, + 'title' => '标签值。', + 'description' => '标签值。', ], 'required' => false, + 'title' => '标签值。', + 'description' => '标签值。', ], ], [ - 'name' => 'states', - 'in' => 'query', - 'allowEmptyValue' => false, - 'style' => 'json', - 'schema' => [ - 'title' => '作业状态。', - 'description' => '任务状态。', - 'type' => 'array', - 'items' => [ - 'description' => '任务状态。取值范围:'."\n" - .'- Submitted:已提交。'."\n" - .'- Pending:待处理。'."\n" - .'- Running:运行中。'."\n" - .'- Success:成功。'."\n" - .'- Failed:失败。'."\n" - .'- Cancelling:取消中。'."\n" - .'- Cancelled:已取消。'."\n" - .'- CancelFailed:取消失败。', - 'type' => 'string', - 'required' => false, - 'example' => 'Running', - ], - 'required' => false, - 'example' => '["Running","Submitted"]', - ], - ], - [ - 'name' => 'startTime', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '任务开始时间范围。', - 'type' => 'object', - 'properties' => [ - 'startTime' => [ - 'description' => '任务开始时间范围的起点。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1709740800000', - ], - 'endTime' => [ - 'description' => '任务开始时间范围的终点。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1710432000000', - ], - ], - 'required' => false, - ], - ], - [ - 'name' => 'endTime', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '任务结束时间范围。', - 'type' => 'object', - 'properties' => [ - 'startTime' => [ - 'description' => '任务结束时间范围的起点。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1709740800000', - ], - 'endTime' => [ - 'description' => '任务结束时间范围的终点。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1710432000000', - ], - ], - 'required' => false, - ], - ], - [ - 'name' => 'resourceQueueId', - 'in' => 'query', - 'schema' => [ - 'description' => 'Spark任务运行的资源队列名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'dev_queue', - ], - ], - [ - 'name' => 'jobRunDeploymentId', - 'in' => 'query', - 'schema' => [ - 'description' => '流任务部署的任务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'jd-b6d003f1930f****', - ], - ], - [ - 'name' => 'regionId', - 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - [ - 'name' => 'minDuration', - 'in' => 'query', - 'schema' => [ - 'description' => '任务执行时长的最小值,单位ms。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '60000', - ], - ], - [ - 'name' => 'isWorkflow', - 'in' => 'query', - 'schema' => [ - 'description' => '是否为工作流任务。', - 'type' => 'string', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'runtimeConfigs', - 'in' => 'query', - 'schema' => [ - 'description' => '运行配置。', - 'type' => 'string', - 'required' => false, - 'example' => '[{\\"key\\":\\"mainClass\\",\\"value\\":\\"yourClass\\"}]', - ], - ], - [ - 'name' => 'applicationConfigs', + 'name' => 'resourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'spark配置。', - 'type' => 'string', - 'required' => false, - 'example' => '[{\\"key\\":\\"spark.app.name\\",\\"value\\":\\"test\\"}]', - ], + 'schema' => ['title' => '资源组ID', 'type' => 'string', 'example' => 'rg-aek2thxggoqhmhq'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => '返回数据', - 'description' => '返回数据', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'jobRuns' => [ - 'description' => 'Spark任务列表。', + 'workspaces' => [ + 'description' => '工作空间列表。', 'type' => 'array', 'items' => [ - 'description' => 'Spark任务对象。', + 'description' => '工作空间详情。', 'type' => 'object', 'properties' => [ - 'workspaceId' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'example' => 'w-d2d82aa09155****', - ], - 'jobRunId' => [ - 'title' => '任务实例ID。', - 'description' => '任务ID。', - 'type' => 'string', - 'example' => 'jr-231231', - ], - 'name' => [ - 'title' => '作业实例名称。', - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'jobName', - ], - 'state' => [ - 'title' => '作业状态。', - 'description' => '任务状态。', - 'type' => 'string', - 'example' => 'Running', - ], + 'workspaceId' => ['title' => 'Workspace Id。', 'description' => 'Workspace ID。', 'type' => 'string', 'example' => 'w-******'], + 'workspaceName' => ['title' => '工作空间名称。', 'description' => '工作空间名称。', 'type' => 'string', 'example' => 'Spark batch workspace-1'], + 'resourceSpec' => ['title' => '资源规格。', 'description' => '资源规格。', 'type' => 'string', 'example' => '100cu'], + 'storage' => ['title' => 'oss 路径。', 'description' => 'OSS路径。', 'type' => 'string', 'example' => 'spark-result'], + 'dlfCatalogId' => ['title' => 'dlf catalog 信息。', 'description' => 'DLF Catalog信息。', 'type' => 'string', 'example' => 'default'], + 'paymentType' => ['title' => '付费类型。', 'description' => '付费类型。', 'type' => 'string', 'example' => 'PayAsYouGo or Subscription'], + 'paymentDurationUnit' => ['title' => '订购周期(pre付费类型必须)。', 'description' => '订购周期(pre付费类型必填)。', 'type' => 'string', 'example' => 'YEAR, MONTH, WEEK, DAY, HOUR, MINUTE'], + 'duration' => ['title' => '订购周期数量(pre付费类型必须)。', 'description' => '订购周期数量(pre付费类型必填)。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'autoRenew' => ['title' => '是否自动续费(pre付费类型必须)。', 'description' => '是否自动续费(pre付费类型必填)。', 'type' => 'boolean', 'example' => 'true'], + 'autoRenewPeriod' => ['title' => '自动续费时长(pre付费类型必须)。', 'description' => '自动续费时长(pre付费类型必填)。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'autoRenewPeriodUnit' => ['title' => '自动续费周期(pre付费类型必须)。', 'description' => '自动续费周期(pre付费类型必填)。', 'type' => 'string', 'example' => 'YEAR, MONTH, WEEK, DAY, HOUR, MINUTE'], + 'workspaceStatus' => ['title' => '工作空间状态。', 'description' => '工作空间状态。', 'type' => 'string', 'example' => 'STARTING,RUNNING,TERMINATED'], + 'failReason' => ['title' => '失败原因。', 'description' => '失败原因。', 'type' => 'string', 'example' => 'out of stock'], + 'paymentStatus' => ['title' => '支付状态。', 'description' => '支付状态。', 'type' => 'string', 'example' => 'PAID/UNPAID'], + 'regionId' => ['description' => '地域ID。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'createTime' => ['description' => '工作空间创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1684115879955'], + 'endTime' => ['description' => '工作空间释放时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1687103999999'], 'stateChangeReason' => [ - 'description' => '状态变化原因。', + 'description' => '工作空间状态的变更信息。', 'type' => 'object', 'properties' => [ - 'code' => [ - 'description' => '错误码。', - 'type' => 'string', - 'example' => '0', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'connection refused'."\n", - ], + 'code' => ['description' => '错误码。', 'type' => 'string', 'example' => '0'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'Success'], ], ], - 'submitTime' => [ - 'title' => '作业提交时间。', - 'description' => '任务提交时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1684119314000', - ], - 'endTime' => [ - 'title' => '作业结束时间。', - 'description' => '任务结束时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1684119314000', - ], - 'codeType' => [ - 'title' => '作业代码类型。', - 'description' => '任务代码类型。取值范围:'."\n" - ."\n" - .'SQL'."\n" - ."\n" - .'JAR'."\n" - ."\n" - .'PYTHON', - 'type' => 'string', - 'example' => 'SQL', - ], - 'webUI' => [ - 'title' => '作业web ui。', - 'description' => '作业Web UI。', - 'type' => 'string', - 'example' => 'http://spark-ui', - ], - 'executionTimeoutSeconds' => [ - 'title' => '运行超时时间。', - 'description' => '运行超时时间。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3600', - ], - 'creator' => [ - 'title' => '创建用户Uid。', - 'description' => '创建用户UID。', - 'type' => 'string', - 'example' => '150978934701****', + 'releaseType' => ['description' => '工作空间释放原因。', 'type' => 'string', 'example' => 'SERVICE_RELEASE'], + 'dlfType' => ['description' => '绑定dlf类型。', 'type' => 'string', 'example' => '1.0'], + 'prePaidQuota' => [ + 'description' => '预付费资源配额的信息。', + 'type' => 'object', + 'properties' => [ + 'usedResource' => ['description' => '当前已使用的资源量。', 'type' => 'string', 'example' => '{\\"cpu\\":\\"0\\",\\"memory\\":\\"0Gi\\",\\"cu\\":\\"0\\"}'], + 'maxResource' => ['description' => '可使用的最大资源量。', 'type' => 'string', 'example' => '{\\"cpu\\":\\"1\\",\\"memory\\":\\"4Gi\\",\\"cu\\":\\"1\\"}'], + 'allocatedResource' => ['description' => '当前已分配的资源量。', 'type' => 'string', 'example' => '{\\"cpu\\":\\"1\\",\\"memory\\":\\"4Gi\\",\\"cu\\":\\"1\\"}'], + 'createTime' => ['description' => '资源配额的创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1745683200000'], + 'expireTime' => ['description' => '资源配额的过期时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1740537153000'], + 'autoRenewal' => ['description' => '资源是否开启了自动续费功能。'."\n" + ."\n" + .'- true:开启自动续费,资源到期后会自动续订。'."\n" + .'- false:未开启自动续费,资源到期后将停止使用。', 'type' => 'boolean', 'example' => 'true'], + 'paymentStatus' => ['description' => '当前资源的支付状态。取值如下:'."\n" + .'- NORMAL:有效中。'."\n" + .'- WAIT_FOR_EXPIRE:将过期。'."\n" + .'- EXPIRED:已过期。', 'type' => 'string', 'example' => 'NORMAL'], + 'instanceId' => ['description' => '与该配额关联的资源实例ID。', 'type' => 'string', 'example' => 'i-abc12345'], + 'orderId' => ['type' => 'string', 'description' => ''], + ], ], 'tags' => [ - 'title' => '标签。', - 'description' => '标签。', 'type' => 'array', 'items' => [ - 'description' => '任务标签.', - '$ref' => '#/components/schemas/Tag', - ], - ], - 'log' => [ - 'description' => '运行日志路径。', - '$ref' => '#/components/schemas/RunLog', - ], - 'releaseVersion' => [ - 'description' => '运行任务的Spark引擎版本。', - 'type' => 'string', - 'example' => 'esr-3.0.0 (Spark 3.4.3, Scala 2.12, Native Runtime)', - ], - 'jobDriver' => [ - 'description' => 'Spark Driver相关信息,List接口不返回此参数。', - '$ref' => '#/components/schemas/JobDriver', - ], - 'configurationOverrides' => [ - 'description' => 'Spark高级配置,List接口不返回此参数。', - 'type' => 'object', - 'properties' => [ - 'configurations' => [ - 'description' => 'Spark Conf列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Spark Conf对象。', - '$ref' => '#/components/schemas/Configuration', - ], + 'type' => 'object', + 'properties' => [ + 'tagKey' => ['type' => 'string', 'description' => ''], + 'tagValue' => ['type' => 'string', 'description' => ''], ], + 'description' => '', ], + 'description' => '', ], - 'displayReleaseVersion' => [ - 'description' => '运行任务的Spark引擎版本。', - 'type' => 'string', - 'example' => 'esr-3.0.0 (Spark 3.4.3, Scala 2.12)', - ], - 'fusion' => [ - 'description' => '是否开启Fusion引擎加速。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'vcoreSeconds' => [ - 'description' => '任务已分配的 vcore 总量乘以任务已运行的秒数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '8236', - ], - 'mbSeconds' => [ - 'description' => '任务已分配的内存总量乘以任务已运行的秒数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '33030784', - ], - 'cuHours' => [ - 'description' => '任务运行周期内所消耗的 CU 数量(该值为预估值,最终以账单为准)。', - 'type' => 'number', - 'format' => 'double', - 'example' => '2.059', + 'resourceGroupId' => ['type' => 'string', 'example' => 'rg-xxxxxxxxxx'], + 'gpuSpec' => [ + 'title' => 'gpu机型列表。', + 'type' => 'array', + 'items' => ['title' => 'gpu机型。', 'type' => 'string', 'example' => 'ecs.gn7i-c8g1.2xlarge'], ], - 'resourceQueueId' => [ - 'title' => '运行任务的队列名称。', - 'description' => '运行任务的队列名称。', - 'type' => 'string', - 'example' => 'dev_queue', + 'ipWhiteList' => [ + 'title' => '工作空间ip白名单。', + 'type' => 'array', + 'items' => ['title' => '工作空间ip白名单。', 'type' => 'string', 'example' => '0.0.0.1'], ], ], ], ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'nextToken' => [ - 'title' => '返回读取到的数据位置。', - 'description' => '返回读取到的数据位置。', - 'type' => 'string', - 'example' => '1', - ], - 'maxResults' => [ - 'title' => '本次请求所返回的最大记录条数。', - 'description' => '本次请求所返回的最大记录条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'totalCount' => [ - 'title' => '本次请求条件下的数据总量。', - 'description' => '本次请求条件下的数据总量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'nextToken' => ['title' => '下一页TOKEN。', 'description' => '下一页TOKEN。', 'type' => 'string', 'example' => '1'], + 'maxResults' => ['title' => '一次获取的最大记录数。', 'description' => '一次获取的最大记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'totalCount' => ['title' => '记录总数。', 'description' => '记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], ], - 'eventInfo' => [ - 'enable' => false, - 'eventNames' => [], - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"jobRuns\\": [\\n {\\n \\"workspaceId\\": \\"w-d2d82aa09155****\\",\\n \\"jobRunId\\": \\"jr-231231\\",\\n \\"name\\": \\"jobName\\",\\n \\"state\\": \\"Running\\",\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"0\\",\\n \\"message\\": \\"connection refused\\\\n\\"\\n },\\n \\"submitTime\\": 1684119314000,\\n \\"endTime\\": 1684119314000,\\n \\"codeType\\": \\"SQL\\",\\n \\"webUI\\": \\"http://spark-ui\\",\\n \\"executionTimeoutSeconds\\": 3600,\\n \\"creator\\": \\"150978934701****\\",\\n \\"tags\\": [\\n {\\n \\"key\\": \\"workflowId\\",\\n \\"value\\": \\"wf-123test\\"\\n }\\n ],\\n \\"log\\": {\\n \\"driverStdOut\\": \\"\\",\\n \\"driverStdError\\": \\"\\",\\n \\"driverSyslog\\": \\"\\",\\n \\"driverStartup\\": \\"\\"\\n },\\n \\"releaseVersion\\": \\"esr-3.0.0 (Spark 3.4.3, Scala 2.12, Native Runtime)\\",\\n \\"jobDriver\\": {\\n \\"sparkSubmit\\": {\\n \\"entryPoint\\": \\"\\",\\n \\"entryPointArguments\\": [\\n \\"\\"\\n ],\\n \\"sparkSubmitParameters\\": \\"\\"\\n }\\n },\\n \\"configurationOverrides\\": {\\n \\"configurations\\": [\\n {\\n \\"configFileName\\": \\"\\",\\n \\"configItemKey\\": \\"\\",\\n \\"configItemValue\\": \\"\\"\\n }\\n ]\\n },\\n \\"displayReleaseVersion\\": \\"esr-3.0.0 (Spark 3.4.3, Scala 2.12)\\",\\n \\"fusion\\": true,\\n \\"vcoreSeconds\\": 8236,\\n \\"mbSeconds\\": 33030784,\\n \\"cuHours\\": 2.059,\\n \\"resourceQueueId\\": \\"dev_queue\\"\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', - 'title' => '获取Spark任务列表', - ], - 'GetJobRun' => [ - 'summary' => '调用GetJobRun获取任务详情。', - 'path' => '/api/v1/workspaces/{workspaceId}/jobRuns/{jobRunId}', - 'methods' => [ - 'get', + 'title' => '获取工作空间列表', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListWorkspaces', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"workspaces\\": [\\n {\\n \\"workspaceId\\": \\"w-******\\",\\n \\"workspaceName\\": \\"Spark batch workspace-1\\",\\n \\"resourceSpec\\": \\"100cu\\",\\n \\"storage\\": \\"spark-result\\",\\n \\"dlfCatalogId\\": \\"default\\",\\n \\"paymentType\\": \\"PayAsYouGo or Subscription\\",\\n \\"paymentDurationUnit\\": \\"YEAR, MONTH, WEEK, DAY, HOUR, MINUTE\\",\\n \\"duration\\": 1,\\n \\"autoRenew\\": true,\\n \\"autoRenewPeriod\\": 1,\\n \\"autoRenewPeriodUnit\\": \\"YEAR, MONTH, WEEK, DAY, HOUR, MINUTE\\",\\n \\"workspaceStatus\\": \\"STARTING,RUNNING,TERMINATED\\",\\n \\"failReason\\": \\"out of stock\\",\\n \\"paymentStatus\\": \\"PAID/UNPAID\\",\\n \\"regionId\\": \\"cn-shanghai\\",\\n \\"createTime\\": 1684115879955,\\n \\"endTime\\": 1687103999999,\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"0\\",\\n \\"message\\": \\"Success\\"\\n },\\n \\"releaseType\\": \\"SERVICE_RELEASE\\",\\n \\"dlfType\\": \\"1.0\\",\\n \\"prePaidQuota\\": {\\n \\"usedResource\\": \\"{\\\\\\\\\\\\\\"cpu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"memory\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0Gi\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"}\\",\\n \\"maxResource\\": \\"{\\\\\\\\\\\\\\"cpu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"memory\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"4Gi\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\"}\\",\\n \\"allocatedResource\\": \\"{\\\\\\\\\\\\\\"cpu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"memory\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"4Gi\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cu\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\"}\\",\\n \\"createTime\\": 1745683200000,\\n \\"expireTime\\": 1740537153000,\\n \\"autoRenewal\\": true,\\n \\"paymentStatus\\": \\"NORMAL\\",\\n \\"instanceId\\": \\"i-abc12345\\",\\n \\"orderId\\": \\"\\"\\n },\\n \\"tags\\": [\\n {\\n \\"tagKey\\": \\"\\",\\n \\"tagValue\\": \\"\\"\\n }\\n ],\\n \\"resourceGroupId\\": \\"rg-xxxxxxxxxx\\",\\n \\"gpuSpec\\": [\\n \\"ecs.gn7i-c8g1.2xlarge\\"\\n ],\\n \\"ipWhiteList\\": [\\n \\"0.0.0.1\\"\\n ]\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"maxResults\\": 20,\\n \\"totalCount\\": 200\\n}","type":"json"}]', + ], + 'RefreshLivyComputeToken' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/token/{tokenId}', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '215794', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'operationType' => 'update', + 'abilityTreeCode' => '222308', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ - 'name' => 'workspaceId', + 'name' => 'workspaceBizId', 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d2d82aa09151****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], ], [ - 'name' => 'jobRunId', + 'name' => 'livyComputeId', 'in' => 'path', - 'allowEmptyValue' => false, + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-i8xogcdfa4fk3yn1'], + ], + [ + 'name' => 'tokenId', + 'in' => 'path', + 'schema' => ['description' => 'Token ID。', 'type' => 'string', 'required' => false, 'example' => 'lctk-xxxxxxxx'], + ], + [ + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', 'schema' => [ - 'title' => '任务实例ID。', - 'description' => '任务运行ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'jr-93d98d2f7061****', + 'description' => '请求结构体。', + 'type' => 'object', + 'properties' => [ + 'name' => ['description' => '名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'token' => ['description' => 'Token内容,长度需要大于等于16。', 'type' => 'string', 'required' => false, 'example' => 'fe86812667f04v343'], + 'autoExpireConfiguration' => [ + 'description' => 'Token过期信息结构体。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => 'Token是否自动过期。'."\n" + .'- true:是。'."\n" + .'- false:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'expireDays' => ['description' => '过期时间(天)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '7'], + ], + 'required' => false, + ], + ], + 'required' => false, ], ], [ 'name' => 'regionId', 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '区域ID。', - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], + ], + ], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '更新Livy Gateway的Token', + 'summary' => '更新Livy Gateway的Token。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:RefreshLivyComputeToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', + ], + 'StartCacheCluster' => [ + 'path' => '/api/v1/cache/{cacheClusterId}/start', + 'methods' => ['put'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'cacheClusterId', + 'in' => 'path', + 'schema' => ['description' => 'Cache集群ID。', 'type' => 'string', 'required' => false, 'example' => 'spc-xxxxxxxx'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'jobRun' => [ - 'description' => '任务详情。', - 'type' => 'object', - 'properties' => [ - 'workspaceId' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'example' => 'w-d2d82aa09155****', - ], - 'jobRunId' => [ - 'title' => '任务实例ID。', - 'description' => '任务运行ID。', - 'type' => 'string', - 'example' => 'jr-93d98d2f7061****', - ], - 'name' => [ - 'title' => '作业实例名称。', - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'jobName', - ], - 'state' => [ - 'title' => '作业状态。', - 'description' => '任务状态。', - 'type' => 'string', - 'example' => 'Running', - ], - 'stateChangeReason' => [ - 'description' => '状态变化原因。', - 'type' => 'object', - 'properties' => [ - 'code' => [ - 'description' => '错误码。', - 'type' => 'string', - 'example' => 'ERR-100000', - ], - 'message' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'connection refused', - ], - ], - ], - 'submitTime' => [ - 'title' => '作业提交时间。', - 'description' => '任务提交时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1684119314000', - ], - 'endTime' => [ - 'title' => '作业结束时间。', - 'description' => '任务结束时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1684122914000', - ], - 'codeType' => [ - 'title' => '作业代码类型。', - 'description' => '任务代码类型。可能值:'."\n" - ."\n" - .'- SQL'."\n" - ."\n" - .'- JAR'."\n" - ."\n" - .'- PYTHON', - 'type' => 'string', - 'example' => 'SQL', - ], - 'webUI' => [ - 'title' => '作业web ui。', - 'description' => '作业Web UI。', - 'type' => 'string', - 'example' => 'http://spark-ui', - ], - 'executionTimeoutSeconds' => [ - 'title' => '运行超时时间。', - 'description' => '运行超时时间。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3600', - ], - 'resourceOwnerId' => [ - 'title' => '创建用户Uid。', - 'description' => '创建用户UID。', - 'type' => 'string', - 'example' => '150978934701****', - ], - 'tags' => [ - 'title' => '标签。', - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'description' => '标签。', - '$ref' => '#/components/schemas/Tag', - ], - ], - 'log' => [ - 'description' => '运行日志路径。', - '$ref' => '#/components/schemas/RunLog', - ], - 'releaseVersion' => [ - 'description' => '运行任务的Spark引擎版本。', - 'type' => 'string', - 'example' => 'esr-3.3.1', - ], - 'resourceQueueId' => [ - 'description' => '运行任务的队列名称。', - 'type' => 'string', - 'example' => 'root_queue', - ], - 'jobDriver' => [ - 'description' => 'Spark Driver相关信息。', - '$ref' => '#/components/schemas/JobDriver', - ], - 'configurationOverrides' => [ - 'description' => 'Spark任务配置。', - 'type' => 'object', - 'properties' => [ - 'configurations' => [ - 'description' => '配置列表。', - 'type' => 'array', - 'items' => [ - 'description' => '配置信息。', - '$ref' => '#/components/schemas/Configuration', - ], - ], - ], - ], - 'displayReleaseVersion' => [ - 'description' => '控制台实际展示的版本。', - 'type' => 'string', - 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)', - ], - 'fusion' => [ - 'description' => '是否开启 Fusion 引擎加速。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'environmentId' => [ - 'description' => '环境 ID。', - 'type' => 'string', - 'example' => 'env-cpv569tlhtgndjl8****', - ], - 'notebookAccessUrl' => [ - 'title' => '如果Job类型为NOTEBOOK,此参数返回NOTEBOOK文件的下载链接', - 'description' => '如果Job类型为NOTEBOOK,此参数返回NOTEBOOK文件的下载链接', - 'type' => 'string', - 'example' => 'http://workflow-ide-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/spark-notebook-output/w-xxxxxxxxx/xxxxxxx', - ], - ], - ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n"], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"jobRun\\": {\\n \\"workspaceId\\": \\"w-d2d82aa09155****\\",\\n \\"jobRunId\\": \\"jr-93d98d2f7061****\\",\\n \\"name\\": \\"jobName\\",\\n \\"state\\": \\"Running\\",\\n \\"stateChangeReason\\": {\\n \\"code\\": \\"ERR-100000\\",\\n \\"message\\": \\"connection refused\\"\\n },\\n \\"submitTime\\": 1684119314000,\\n \\"endTime\\": 1684122914000,\\n \\"codeType\\": \\"SQL\\",\\n \\"webUI\\": \\"http://spark-ui\\",\\n \\"executionTimeoutSeconds\\": 3600,\\n \\"resourceOwnerId\\": \\"150978934701****\\",\\n \\"tags\\": [\\n {\\n \\"key\\": \\"workflowId\\",\\n \\"value\\": \\"wf-123test\\"\\n }\\n ],\\n \\"log\\": {\\n \\"driverStdOut\\": \\"\\",\\n \\"driverStdError\\": \\"\\",\\n \\"driverSyslog\\": \\"\\",\\n \\"driverStartup\\": \\"\\"\\n },\\n \\"releaseVersion\\": \\"esr-3.3.1\\",\\n \\"resourceQueueId\\": \\"root_queue\\",\\n \\"jobDriver\\": {\\n \\"sparkSubmit\\": {\\n \\"entryPoint\\": \\"\\",\\n \\"entryPointArguments\\": [\\n \\"\\"\\n ],\\n \\"sparkSubmitParameters\\": \\"\\"\\n }\\n },\\n \\"configurationOverrides\\": {\\n \\"configurations\\": [\\n {\\n \\"configFileName\\": \\"\\",\\n \\"configItemKey\\": \\"\\",\\n \\"configItemValue\\": \\"\\"\\n }\\n ]\\n },\\n \\"displayReleaseVersion\\": \\"esr-4.0.0 (Spark 3.5.2, Scala 2.12)\\",\\n \\"fusion\\": false,\\n \\"environmentId\\": \\"env-cpv569tlhtgndjl8****\\",\\n \\"notebookAccessUrl\\": \\"http://workflow-ide-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/spark-notebook-output/w-xxxxxxxxx/xxxxxxx\\"\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '获取Spark任务详情', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '启动Cache集群', + 'summary' => '启动CacheCluster', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\"\\n}","type":"json"}]', ], 'StartJobRun' => [ 'summary' => '调用StartJobRun启动Spark任务。', 'path' => '/api/v1/workspaces/{workspaceId}/jobRuns', - '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' => 'read', 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'paid', 'abilityTreeCode' => '215792', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ @@ -10123,49 +7539,18 @@ 'description' => 'Spark任务请求体。', 'type' => 'object', 'properties' => [ - 'releaseVersion' => [ - 'description' => 'Spark引擎版本号。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-3.3.1', - ], - 'jobId' => [ - 'description' => '任务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'jr-12345', - ], - 'name' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'spark_job_name', - ], - 'resourceQueueId' => [ - 'description' => 'Spark任务运行的资源队列。', - 'type' => 'string', - 'required' => false, - 'example' => 'dev_queue', - ], - 'codeType' => [ - 'description' => '任务类型。取值范围:'."\n" - ."\n" - .'- SQL'."\n" - ."\n" - .'- JAR'."\n" - ."\n" - .'- PYTHON', - 'type' => 'string', - 'required' => false, - 'example' => 'SQL', - ], - 'executionTimeoutSeconds' => [ - 'description' => '任务超时时间。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '100', - ], + 'releaseVersion' => ['description' => 'Spark引擎版本号。', 'type' => 'string', 'required' => false, 'example' => 'esr-3.3.1'], + 'jobId' => ['description' => '任务ID。', 'type' => 'string', 'required' => false, 'example' => 'jr-12345'], + 'name' => ['description' => '任务名称。', 'type' => 'string', 'required' => false, 'example' => 'spark_job_name'], + 'resourceQueueId' => ['description' => 'Spark任务运行的资源队列。', 'type' => 'string', 'required' => false, 'example' => 'dev_queue'], + 'codeType' => ['description' => '任务类型。取值范围:'."\n" + ."\n" + .'- SQL'."\n" + ."\n" + .'- JAR'."\n" + ."\n" + .'- PYTHON', 'type' => 'string', 'required' => false, 'example' => 'SQL'], + 'executionTimeoutSeconds' => ['description' => '任务超时时间。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], 'configurationOverrides' => [ 'description' => 'Spark高级配置。', 'type' => 'object', @@ -10177,24 +7562,9 @@ 'description' => 'Spark Conf对象。', 'type' => 'object', 'properties' => [ - 'configFileName' => [ - 'description' => 'Spark Conf所属配置文件。', - 'type' => 'string', - 'required' => false, - 'example' => 'spark-defaults.conf', - ], - 'configItemKey' => [ - 'description' => 'Spark Conf键。', - 'type' => 'string', - 'required' => false, - 'example' => 'spark.app.name', - ], - 'configItemValue' => [ - 'description' => 'Spark Conf值。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_app', - ], + 'configFileName' => ['description' => 'Spark Conf所属配置文件。', 'type' => 'string', 'required' => false, 'example' => 'spark-defaults.conf'], + 'configItemKey' => ['description' => 'Spark Conf键。', 'type' => 'string', 'required' => false, 'example' => 'spark.app.name'], + 'configItemValue' => ['description' => 'Spark Conf值。', 'type' => 'string', 'required' => false, 'example' => 'test_app'], ], 'required' => false, ], @@ -10206,36 +7576,13 @@ 'tags' => [ 'description' => '任务标签列表。', 'type' => 'array', - 'items' => [ - 'description' => '标签对象。', - 'required' => false, - '$ref' => '#/components/schemas/Tag', - ], - 'required' => false, - ], - 'clientToken' => [ - 'description' => '幂等校验TOKEN。', - 'type' => 'string', - 'required' => false, - 'example' => '8e6aae2810c8f67229ca70bb31cd****', - ], - 'jobDriver' => [ - 'description' => 'Spark Driver相关信息。', + 'items' => ['description' => '标签对象。', 'required' => false, '$ref' => '#/components/schemas/Tag'], 'required' => false, - '$ref' => '#/components/schemas/JobDriver', - ], - 'displayReleaseVersion' => [ - 'description' => '控制台实际展示的版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-3.3.1'."\n", - ], - 'fusion' => [ - 'description' => '是否开启Fusion引擎加速。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', ], + 'clientToken' => ['description' => '幂等校验TOKEN。', 'type' => 'string', 'required' => false, 'example' => '8e6aae2810c8f67229ca70bb31cd****'], + 'jobDriver' => ['description' => 'Spark Driver相关信息。', 'required' => false, '$ref' => '#/components/schemas/JobDriver'], + 'displayReleaseVersion' => ['description' => '控制台实际展示的版本。', 'type' => 'string', 'required' => false, 'example' => 'esr-3.3.1'."\n"], + 'fusion' => ['description' => '是否开启Fusion引擎加速。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], 'required' => false, ], @@ -10243,23 +7590,12 @@ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d2d82aa09155****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d2d82aa09155****'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '地域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -10269,168 +7605,160 @@ 'description' => '返回数据', 'type' => 'object', 'properties' => [ - 'jobRunId' => [ - 'description' => '任务运行ID。', - 'type' => 'string', - 'example' => 'jr-f09a8fda2396****', - ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'jobRunId' => ['description' => '任务运行ID。', 'type' => 'string', 'example' => 'jr-f09a8fda2396****'], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"jobRunId\\": \\"jr-f09a8fda2396****\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', 'title' => '启动Spark任务', - ], - 'GetRunConfiguration' => [ - 'summary' => '获取Spark任务配置', - 'path' => '/api/v1/workspaces/{workspaceId}/runs/{runId}/action/getRunConfiguration', - 'methods' => [ - 'get', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StartJobRun', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"jobRunId\\": \\"jr-f09a8fda2396****\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'StartKyuubiService' => [ + 'summary' => '启动Kyuubi Gateway。', + 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}/start', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], + ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'title' => '工作空间id。', - 'description' => '工作空间id。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d2d82aa09151****', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-cea2c314a****'], ], [ - 'name' => 'runId', + 'name' => 'kyuubiServiceId', 'in' => 'path', - 'allowEmptyValue' => false, + 'schema' => ['description' => 'Kyuubi 服务 ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-415ddee******f1d1eac0388b86'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '任务实例ID。', - 'description' => '任务实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'jr-93d98d2f7061****', + 'title' => 'Schema of Response', + 'description' => '响应结构体。', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求 ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'data' => ['description' => '返回数据。', 'type' => 'any', 'example' => 'true'], + ], ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '启动Kyuubi Gateway', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": \\"true\\"\\n}","type":"json"}]', + ], + 'StartLivyCompute' => [ + 'summary' => '启动Livy Gateway。', + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/start', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'abilityTreeCode' => '222269', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceBizId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], + ], + [ + 'name' => 'livyComputeId', + 'in' => 'path', + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-i8xogcdfa4fk3yn1'], + ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'runConfiguration' => [ - 'description' => '运行配置。', - 'type' => 'object', - 'properties' => [ - 'runtimeConfigs' => [ - 'title' => '运行配置。', - 'description' => '运行时参数列表。', - 'type' => 'array', - 'items' => [ - 'description' => '运行时参数。', - '$ref' => '#/components/schemas/Tag', - ], - ], - 'applicationConfigs' => [ - 'title' => '应用配置项', - 'description' => 'Spark配置参数列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Spark配置参数。', - 'type' => 'object', - 'properties' => [ - 'configFileName' => [ - 'title' => '应用配置文件名。 应用配置文件名。 ```spark-defaults.conf```', - 'description' => '应用配置文件名。 应用配置文件名。', - 'type' => 'string', - 'example' => 'spark-defaults.conf', - ], - 'configItemKey' => [ - 'title' => '配置项键。 配置项键。 ```dfs.namenode.checkpoint.period```', - 'description' => '配置项键。', - 'type' => 'string', - 'example' => 'spark.driver.cores', - ], - 'configItemValue' => [ - 'title' => '配置项值。 配置项值。 ```3600s```', - 'description' => '配置项值。', - 'type' => 'string', - 'example' => '2', - ], - ], - ], - ], - 'logConfig' => [ - 'description' => '日志配置。', - 'type' => 'object', - 'properties' => [ - 'LogLevel' => [ - 'description' => '日志级别。', - 'type' => 'string', - 'example' => 'INFO', - ], - 'LogPath' => [ - 'description' => '日志路径。', - 'type' => 'string', - 'example' => 'oss://test', - ], - ], - ], - ], - ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], ], ], ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"runConfiguration\\": {\\n \\"runtimeConfigs\\": [\\n {\\n \\"key\\": \\"workflowId\\",\\n \\"value\\": \\"wf-123test\\"\\n }\\n ],\\n \\"applicationConfigs\\": [\\n {\\n \\"configFileName\\": \\"spark-defaults.conf\\",\\n \\"configItemKey\\": \\"spark.driver.cores\\",\\n \\"configItemValue\\": \\"2\\"\\n }\\n ],\\n \\"logConfig\\": {\\n \\"LogLevel\\": \\"INFO\\",\\n \\"LogPath\\": \\"oss://test\\"\\n }\\n },\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', - 'title' => '获取Spark任务配置', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '启动Livy Gateway', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StartLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', ], 'StartProcessInstance' => [ - 'summary' => '手动运行工作流。', 'path' => '/dolphinscheduler/projects/{bizId}/executors/start-process-instance', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -10443,125 +7771,68 @@ 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '192046', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceT8XN05', - ], + 'abilityTreeNodes' => ['FEATUREemapreduceT8XN05'], ], 'parameters' => [ [ 'name' => 'productNamespace', 'in' => 'query', - 'schema' => [ - 'description' => '产品编码。', - 'type' => 'string', - 'required' => true, - 'example' => 'SS', - ], + 'schema' => ['description' => '产品编码。', 'type' => 'string', 'required' => true, 'example' => 'SS'], ], [ 'name' => 'bizId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d8********', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d8********'], ], [ 'name' => 'processDefinitionCode', 'in' => 'query', - 'schema' => [ - 'description' => '工作流定义ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '12***********', - ], + 'schema' => ['description' => '工作流定义ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '12***********'], ], [ 'name' => 'versionNumber', 'in' => 'query', - 'schema' => [ - 'description' => '工作流定义版本号。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '工作流定义版本号。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ 'name' => 'isProd', 'in' => 'query', - 'schema' => [ - 'description' => '工作流是否在生产环境运行。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '工作流是否在生产环境运行。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'runtimeQueue', 'in' => 'query', - 'schema' => [ - 'description' => '运行时队列。', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', - ], + 'schema' => ['description' => '运行时队列。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], ], [ 'name' => 'versionHashCode', 'in' => 'query', - 'schema' => [ - 'description' => '版本哈希编码。', - 'type' => 'string', - 'required' => false, - 'example' => 'dh*********', - ], + 'schema' => ['description' => '版本哈希编码。', 'type' => 'string', 'required' => false, 'example' => 'dh*********'], ], [ 'name' => 'regionId', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ 'name' => 'interval', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'action', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'comments', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'email', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -10571,765 +7842,1067 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => 'Id of the request', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => 'API请求后端返回码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1400009', - ], - 'msg' => [ - 'description' => '请求 code 对应的详细描述信息。', - 'type' => 'string', - 'example' => 'No permission for resource action', - ], - 'data' => [ - 'description' => '返回数据。', - 'type' => 'any', - 'example' => 'null', - ], - 'success' => [ - 'description' => '请求是否成功。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'failed' => [ - 'description' => '手动运行工作流是否失败。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'httpStatusCode' => [ - 'description' => 'HTTP状态编码', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => 'API请求后端返回码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1400009'], + 'msg' => ['description' => '请求 code 对应的详细描述信息。', 'type' => 'string', 'example' => 'No permission for resource action'], + 'data' => ['description' => '返回数据。', 'type' => 'any', 'example' => 'null'], + 'success' => ['description' => '请求是否成功。', 'type' => 'boolean', 'example' => 'true'], + 'failed' => ['description' => '手动运行工作流是否失败。', 'type' => 'boolean', 'example' => 'false'], + 'httpStatusCode' => ['description' => 'HTTP状态编码', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": 1400009,\\n \\"msg\\": \\"No permission for resource action\\",\\n \\"data\\": \\"null\\",\\n \\"success\\": true,\\n \\"failed\\": false,\\n \\"httpStatusCode\\": 200\\n}","type":"json"}]', + 'staticInfo' => ['returnType' => 'synchronous'], 'title' => '手动运行工作流', - ], - 'UpdateProcessDefinitionWithSchedule' => [ - 'summary' => '更新工作流定义和定时调度。', - 'path' => '/dolphinscheduler/projects/{bizId}/process-definition/{code}', - 'methods' => [ - 'put', + 'summary' => '手动运行工作流。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StartProcessInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": 1400009,\\n \\"msg\\": \\"No permission for resource action\\",\\n \\"data\\": \\"null\\",\\n \\"success\\": true,\\n \\"failed\\": false,\\n \\"httpStatusCode\\": 200\\n}","type":"json"}]', + ], + 'StartRayCluster' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster/{clusterId}/start', + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '191361', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], + ], + [ + 'name' => 'clusterId', + 'in' => 'path', + 'schema' => ['title' => 'Ray集群ID。', 'description' => 'Ray集群ID。', 'type' => 'string', 'required' => false, 'example' => 'ray-uiulagow9xljimm0'], + ], + [ + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', + 'schema' => [ + 'title' => '请求结构体', + 'description' => '请求结构体', + 'type' => 'object', + 'properties' => [ + 'clientToken' => ['title' => '幂等校验TOKEN。', 'description' => '幂等校验TOKEN。', 'type' => 'string', 'required' => false, 'example' => 'c533e141-bf99-4236-8b6b-30e133db113c'], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => '8CE06D75-E6A2-505D-9B4B-31DEE3D98A04'], + ], + ], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '启动Ray集群', + 'summary' => '启动Ray集群。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"8CE06D75-E6A2-505D-9B4B-31DEE3D98A04\\"\\n}","type":"json"}]', + ], + 'StartSessionCluster' => [ + 'summary' => '启动session集群。', + 'path' => '/api/v1/workspaces/{workspaceId}/sessionClusters/action/startSessionCluster', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], ], ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'productNamespace', - 'in' => 'query', + 'name' => 'body', + 'in' => 'body', + 'allowEmptyValue' => false, + 'style' => 'json', 'schema' => [ - 'description' => '产品编码。', - 'type' => 'string', - 'required' => true, - 'example' => 'SS', + 'description' => '请求结构体', + 'type' => 'object', + 'properties' => [ + 'queueName' => ['description' => '队列名称', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'sessionClusterId' => ['description' => '会话ID', 'type' => 'string', 'required' => false, 'example' => 'sc-xxxxxxxxxxx'], + ], + 'required' => false, ], ], [ - 'name' => 'bizId', + 'name' => 'workspaceId', 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d8********'."\n", + 'title' => '返回数据', + 'description' => '返回数据', + 'type' => 'object', + 'properties' => [ + 'sessionClusterId' => ['title' => 'Workspace Id。', 'description' => 'Workspace Id。', 'type' => 'string', 'example' => 'w-******'], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + ], ], ], + ], + 'title' => '启动会话', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartSessionCluster'], + ], + ], + 'ramActions' => [ [ - 'name' => 'name', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StartSessionCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sessionClusterId\\": \\"w-******\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'StopCacheCluster' => [ + 'path' => '/api/v1/cache/{cacheClusterId}/stop', + 'methods' => ['put'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', + ], + 'parameters' => [ + [ + 'name' => 'cacheClusterId', + 'in' => 'path', + 'schema' => ['description' => 'Cache集群ID。', 'type' => 'string', 'required' => false, 'example' => 'spc-xxxxxxxxx'], + ], + [ + 'name' => 'regionId', 'in' => 'query', + 'schema' => ['description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '工作流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ods_batch_workflow'."\n", + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + ], ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '停止Cache集群', + 'summary' => '停止CacheCluster', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'StopKyuubiService' => [ + 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}/stop', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'code', + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'paid', + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], + ], + [ + 'name' => 'kyuubiServiceId', + 'in' => 'path', + 'schema' => ['description' => 'Kyuubi 服务 ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'."\n"], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '任务定义ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '12************', + 'title' => 'Schema of Response', + 'description' => '响应结构体。', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求 ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n"], + 'data' => ['description' => '返回数据。', 'type' => 'any', 'example' => 'true'], + ], ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '停止Kyuubi Gateway', + 'summary' => '停止Kyuubi Gateway。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\",\\n \\"data\\": \\"true\\"\\n}","type":"json"}]', + ], + 'StopLivyCompute' => [ + 'summary' => '停止Livy Gateway。', + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}/stop', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'description', + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'abilityTreeCode' => '222278', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceBizId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], + ], + [ + 'name' => 'livyComputeId', + 'in' => 'path', + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-6mkvn01zrg8rqhhv'], + ], + [ + 'name' => 'regionId', 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '工作流描述。', - 'type' => 'string', - 'required' => false, - 'example' => 'ods batch workflow', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => '484D9DDA-300D-525E-AF7A-0CCCA5C64A7A'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], + ], ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '停止Livy Gateway', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'timeout', - 'in' => 'query', - 'schema' => [ - 'description' => '工作流运行默认timeout。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '300', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StopLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"484D9DDA-300D-525E-AF7A-0CCCA5C64A7A\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', + ], + 'StopRayCluster' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster/{clusterId}/stop', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'taskDefinitionJson', - 'in' => 'query', + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], + ], + [ + 'name' => 'clusterId', + 'in' => 'path', + 'schema' => ['title' => 'Ray集群ID。', 'description' => 'Ray集群ID。', 'type' => 'string', 'required' => false, 'example' => 'ray-k7nm8ahl5te4tg91'], + ], + [ + 'name' => 'body', + 'in' => 'body', 'style' => 'json', 'schema' => [ - 'description' => '任务定义JSON数组,包含工作流所有任务的描述信息。', - 'type' => 'array', - 'items' => [ - 'description' => '任务定义JSON,包含工作流所有任务的描述信息。', - 'type' => 'object', - 'properties' => [ - 'code' => [ - 'description' => '任务定义ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '23************', - ], - 'description' => [ - 'description' => '任务定义描述。', - 'type' => 'string', - 'required' => false, - 'example' => 'ods transform task'."\n", - ], - 'alertEmailAddress' => [ - 'description' => '告警邮箱地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'foo_bar@spark.alert.invalid.com'."\n", - ], - 'startAlertEnable' => [ - 'description' => '任务启动告警开启。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'failAlertEnable' => [ - 'description' => '任务失败告警开启。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'failRetryTimes' => [ - 'description' => '任务失败重试次数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'name' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ods_transform_task'."\n", - ], - 'taskParams' => [ - 'description' => '任务定义参数。', - 'type' => 'object', - 'properties' => [ - 'workspaceBizId' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d8********'."\n", - ], - 'taskBizId' => [ - 'description' => '数据开发任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'TSK-d87******************'."\n", - ], - 'resourceQueueId' => [ - 'description' => '运行任务的队列名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'root_queue', - ], - 'sparkDriverCores' => [ - 'description' => 'Spark任务Driver核数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'sparkExecutorCores' => [ - 'description' => 'Spark任务Executor核数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'sparkDriverMemory' => [ - 'description' => 'Spark任务Driver内存。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '4g', - ], - 'sparkExecutorMemory' => [ - 'description' => 'Spark任务Executor内存。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '4g', - ], - 'sparkConf' => [ - 'description' => 'Spark任务配置。', - 'type' => 'array', - 'items' => [ - 'description' => 'Spark任务配置。', - 'type' => 'object', - 'properties' => [ - 'key' => [ - 'description' => 'Spark Conf配置key。', - 'type' => 'string', - 'required' => false, - 'example' => 'spark.dynamicAllocation.enabled'."\n", - ], - 'value' => [ - 'description' => 'Spark Conf配置value。', - 'type' => 'string', - 'required' => false, - 'example' => 'true', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'sparkVersion' => [ - 'description' => 'Spark引擎版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)'."\n", - ], - 'sparkLogLevel' => [ - 'description' => 'Spark日志级别。', - 'type' => 'string', - 'required' => false, - 'example' => 'INFO', - ], - 'sparkLogPath' => [ - 'description' => 'Spark任务日志路径。', - 'type' => 'string', - 'required' => false, - 'example' => ' '."\n" - .'oss://data***/spark/logs'."\n", - ], - 'displaySparkVersion' => [ - 'description' => 'Spark引擎显示版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)', - ], - 'fusion' => [ - 'description' => '是否开启Fusion引擎加速。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'environmentId' => [ - 'description' => '环境id。', - 'type' => 'string', - 'required' => false, - 'example' => 'ev-h*************', - ], - 'type' => [ - 'description' => 'Spark作业类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'SQL', - ], - 'localParams' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'prop' => [ - 'type' => 'string', - 'required' => false, - ], - 'direct' => [ - 'type' => 'string', - 'required' => false, - ], - 'type' => [ - 'type' => 'string', - 'required' => false, - ], - 'value' => [ - 'type' => 'string', - 'required' => false, - ], - ], - 'required' => false, - ], - 'required' => false, - ], - ], - 'required' => true, - ], - 'taskType' => [ - 'description' => '工作流节点类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'EMR-SERVERLESS-SPARK', - ], - 'timeout' => [ - 'description' => '任务运行默认timeout。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '30', - ], - 'tags' => [ - 'description' => '标签。', - 'type' => 'object', - 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'example' => ' '."\n" - .'“{\\"tagkey\\":\\"tagvalue\\"}”'."\n", - 'description' => '标签对JSON字符串。', - ], - ], - ], - 'required' => true, + 'title' => '请求结构体。', + 'description' => '请求结构体。', + 'type' => 'object', + 'properties' => [ + 'instanceId' => ['title' => 'Ray集群实例ID。', 'description' => 'Ray集群实例ID。', 'type' => 'string', 'required' => false, 'example' => 'ray-k7nm8ahl5te4tg91-ey7blpbg'], + ], + 'required' => false, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], ], - 'required' => true, ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '停止Ray集群', + 'summary' => '停止Ray集群。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\"\\n}","type":"json"}]', + ], + 'StopSessionCluster' => [ + 'summary' => '终止session集群。', + 'path' => '/api/v1/workspaces/{workspaceId}/sessionClusters/action/stopSessionCluster', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'taskRelationJson', - 'in' => 'query', + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'read', + 'systemTags' => [], + 'parameters' => [ + [ + 'name' => 'body', + 'in' => 'body', + 'allowEmptyValue' => false, 'style' => 'json', 'schema' => [ - 'description' => '任务依赖关系JSON数组,包含工作流所有任务之间的依赖关系,preTaskCode为上游任务ID,postTaskCode为下游任务ID,每一个任务需有唯一的ID。如果任务节点没有上游任务,也需要增加一个preTaskCode为0的依赖关系。', - 'type' => 'array', - 'items' => [ - 'description' => '任务依赖关系JSON,包含工作流所有任务之间的依赖关系,preTaskCode为上游任务ID,postTaskCode为下游任务ID,每一个任务需有唯一的ID。如果任务节点没有上游任务,也需要增加一个preTaskCode为0的依赖关系。', - 'type' => 'object', - 'properties' => [ - 'name' => [ - 'description' => '任务拓扑关系名称,填工作流名称即可。', - 'type' => 'string', - 'required' => true, - 'example' => 'ods batch workflow'."\n", - ], - 'preTaskCode' => [ - 'description' => '上游任务ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '16************'."\n", - ], - 'preTaskVersion' => [ - 'description' => '上游任务版本。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - 'postTaskCode' => [ - 'description' => '下游任务ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '19************'."\n", - ], - 'postTaskVersion' => [ - 'description' => '下游任务版本。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - ], - 'required' => true, + 'description' => '请求结构体', + 'type' => 'object', + 'properties' => [ + 'queueName' => ['description' => '队列名称', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'sessionClusterId' => ['description' => '会话ID', 'type' => 'string', 'required' => false, 'example' => 'sc-xxxxxxxxxxxx'], ], - 'required' => true, + 'required' => false, ], ], [ - 'name' => 'executionType', + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], + ], + [ + 'name' => 'regionId', 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '执行策略', - 'type' => 'string', - 'required' => true, - 'example' => 'PARALLEL', + 'title' => '返回数据', + 'description' => '返回数据', + 'type' => 'object', + 'properties' => [ + 'sessionClusterId' => ['title' => 'Workspace Id。', 'description' => 'Workspace Id。', 'type' => 'string', 'example' => 'w-******'], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + ], ], ], + ], + 'title' => '终止会话', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'alertEmailAddress', - 'in' => 'query', - 'schema' => [ - 'description' => '告警邮箱地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'foo_bar@spark.alert.invalid.com', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StopSessionCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"sessionClusterId\\": \\"w-******\\",\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'SubmitRayJob' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/rayJob', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'schedule', - 'in' => 'query', + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], + ], + [ + 'name' => 'body', + 'in' => 'body', 'style' => 'json', 'schema' => [ - 'description' => '调度结构', + 'title' => '请求结构体。', + 'description' => '请求结构体。', 'type' => 'object', 'properties' => [ - 'startTime' => [ - 'description' => '开始时间。', - 'type' => 'string', + 'entrypoint' => ['title' => '启动命令', 'description' => '启动命令。', 'type' => 'string', 'required' => false, 'example' => 'python -c "print(\'hello ray job\')"'], + 'name' => ['title' => '任务名称', 'description' => '任务名称。', 'type' => 'string', 'required' => false, 'example' => 'my-job'], + 'displayReleaseVersion' => ['title' => 'Ray 版本号。', 'description' => 'Ray引擎版本号。', 'type' => 'string', 'required' => false, 'example' => 'err-1.2.0 (Ray 2.55.1, Python 3.12)'], + 'tags' => [ + 'title' => '标签', + 'description' => '标签。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'key' => ['description' => '键。', 'type' => 'string', 'required' => false, 'example' => 'jobname'], + 'value' => ['description' => '值。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + 'required' => false, + 'description' => '', + ], 'required' => false, - 'example' => '2024-12-23 16:13:27'."\n", ], - 'endTime' => [ - 'description' => '调度结束时间。', - 'type' => 'string', + 'networkServiceName' => ['title' => '网络连接名称。', 'description' => '网络连接名称。', 'type' => 'string', 'required' => false, 'example' => 'vpc'], + 'runtimeEnvJson' => ['title' => 'Ray runtime environment JSON 字符串。', 'description' => 'Ray runtime environment JSON 字符串。', 'type' => 'string', 'required' => false, 'example' => '{"pip":["requests==2.26.0","pendulum==2.1.2"],"env_vars":{"KEY":"VALUE"}}'], + 'workingDir' => ['title' => '任务代码工作目录 URL。', 'description' => '任务代码工作目录 URL。', 'type' => 'string', 'required' => false, 'example' => 'oss://mybucket/rayjob.zip'], + 'metadataJson' => ['title' => '任务元数据 JSON 字符串。', 'description' => '任务元数据 JSON 字符串。', 'type' => 'string', 'required' => false, 'example' => '{"resourceName": "test"}'], + 'submissionMode' => ['title' => '提交作业方式', 'description' => '提交作业方式。', 'type' => 'string', 'required' => false, 'example' => 'HTTPMode'], + 'entrypointNumCpus' => ['title' => '入口任务申请的 CPU 数量。', 'description' => '入口任务申请的 CPU 数量。', 'type' => 'string', 'required' => false, 'example' => '1'], + 'entrypointNumGpus' => ['title' => '入口任务申请的 GPU 数量。', 'description' => '入口任务申请的 GPU 数量。', 'type' => 'string', 'required' => false, 'example' => '0'], + 'entrypointMemory' => ['title' => '入口任务申请的内存大小。', 'description' => '入口任务申请的内存大小。', 'type' => 'string', 'required' => false, 'example' => '4Gi'], + 'entrypointResources' => ['title' => '入口任务自定义资源请求 JSON 字符串。', 'description' => '入口任务自定义资源请求 JSON 字符串。', 'type' => 'string', 'required' => false, 'example' => '{"fpu": 1}'], + 'shutdownAfterJobFinishes' => ['title' => '任务完成后是否自动销毁临时集群,默认 true。', 'description' => '任务完成后是否自动销毁临时集群,默认 true。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'ttlSecondsAfterFinished' => ['title' => '集群销毁前等待秒数,shutdownAfterJobFinishes 为 true 时有效。', 'description' => '集群销毁前等待秒数,shutdownAfterJobFinishes 为 true 时有效。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '60'], + 'activeDeadlineSeconds' => ['title' => '超时时间', 'description' => '任务超时时间,包含集群创建和任务运行时间,超过该时间任务会被取消。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '3600'], + 'volumeIds' => [ + 'title' => '挂载卷 ID 列表。', + 'description' => '挂载卷 ID 列表。', + 'type' => 'array', + 'items' => ['description' => '纳管文件id。', 'type' => 'string', 'required' => false, 'example' => 'vol-12345678'], 'required' => false, - 'example' => '2025-12-23 16:13:27'."\n", ], - 'crontab' => [ - 'description' => '调度cron表达式。', - 'type' => 'string', + 'headSpec' => [ + 'title' => 'Ray集群Head节点参数。', + 'description' => 'Ray集群Head节点参数。', + 'type' => 'object', + 'properties' => [ + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'required' => false, 'example' => '2'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'required' => false, 'example' => '8Gi'], + 'enableAutoScaling' => ['title' => '是否开启Worker自动扩缩容。', 'description' => '是否开启Worker自动扩缩容。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'idleTimeoutSeconds' => ['title' => '开启自动扩缩容后Worker Idle时间。', 'description' => '开启自动扩缩容后Worker Idle时间。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '60'], + 'gpuSpec' => ['title' => 'gpu机型。', 'description' => 'gpu机型。', 'type' => 'string', 'required' => false, 'example' => 'ecs.gn6i-c4g1.xlarge'], + ], 'required' => false, - 'example' => ' '."\n" - .'0 0 0 * * ?'."\n", ], - 'timezoneId' => [ - 'description' => '时区ID。', - 'type' => 'string', + 'workerSpec' => [ + 'title' => 'Ray集群Worker节点参数。', + 'description' => 'Ray集群Worker节点参数。', + 'type' => 'array', + 'items' => [ + 'title' => 'Worker节点结构体。', + 'description' => 'Worker节点结构体。', + 'type' => 'object', + 'properties' => [ + 'groupName' => ['title' => 'Worker组名。', 'description' => 'Worker组名。', 'type' => 'string', 'required' => false, 'example' => 'WorkerGroup1'], + 'workerType' => [ + 'title' => 'Worker类型。', + 'description' => 'Worker类型。', + 'type' => 'string', + 'required' => false, + 'example' => 'CPU', + 'enum' => ['CPU'], + ], + 'replica' => ['title' => 'Worker数量。', 'description' => 'Worker数量。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'required' => false, 'example' => '4'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'required' => false, 'example' => '16Gi'], + 'minReplica' => ['title' => '开启自动扩缩容后最小Worker数量。', 'description' => '开启自动扩缩容后最小Worker数量。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'maxReplica' => ['title' => '开启自动扩缩容后最大Worker数量。', 'description' => '开启自动扩缩容后最大Worker数量。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + 'gpuSpec' => ['title' => 'gpu机型。', 'description' => 'gpu机型。', 'type' => 'string', 'required' => false, 'example' => 'ecs.gn6i-c4g1.xlarge'], + ], + 'required' => false, + ], 'required' => false, - 'example' => 'Asia/Shanghai'."\n", ], + 'extraParam' => ['title' => '额外参数 JSON 字符串。', 'description' => '额外参数 JSON 字符串。', 'type' => 'string', 'required' => false, 'example' => '{"userDefinedFiles": "oss://mybucket/artifact/config.json,oss://mybucket/artifact/config2.json", "userRequirementsFile": "oss://mybucket/requirements.txt"}'], ], 'required' => false, ], ], - [ - 'name' => 'retryTimes', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '重试次数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + 'submissionId' => ['title' => 'Ray Job ID。', 'description' => 'Ray Job ID。', 'type' => 'string', 'example' => 'rj-k7nm8ahl5te4tg91'], + ], ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '提交Ray任务', + 'summary' => '提交Ray Job。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"submissionId\\": \\"rj-k7nm8ahl5te4tg91\\"\\n}","type":"json"}]', + ], + 'TerminateSqlStatement' => [ + 'summary' => '终止正在执行的SQL查询。', + 'path' => '/api/interactive/v1/workspace/{workspaceId}/statement/{statementId}/terminate', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'taskParallelism', - 'in' => 'query', - 'schema' => [ - 'description' => '工作流节点运行并发度。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'AK' => [], ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'delete', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '224753', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + ], + 'parameters' => [ [ - 'name' => 'tags', + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], + ], + [ + 'name' => 'statementId', + 'in' => 'path', + 'schema' => ['description' => '交互式查询ID。', 'type' => 'string', 'required' => false, 'example' => 'st-abcadfadf12****'], + ], + [ + 'name' => 'regionId', 'in' => 'query', - 'style' => 'json', + 'schema' => ['title' => '区域ID。', 'description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '标签。', + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', 'type' => 'object', - 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'example' => ' '."\n" - .'“{\\"tagkey\\":\\"tagvalue\\"}”'."\n", - 'description' => '标签对JSON字符串。', + 'properties' => [ + 'requestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], ], ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '终止SQL查询', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ [ - 'name' => 'resourceQueue', - 'in' => 'query', - 'schema' => [ - 'description' => '资源队列。', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:TerminateSqlStatement', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\"\\n}","type":"json"}]', + ], + 'UpdateKyuubiService' => [ + 'path' => '/api/v1/kyuubi/{workspaceId}/{kyuubiServiceId}', + 'methods' => ['put'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'releaseState', - 'in' => 'query', - 'schema' => [ - 'description' => '工作流上线状态。', - 'type' => 'string', - 'required' => false, - 'example' => 'ONLINE', - ], + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'none', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'], ], [ - 'name' => 'runAs', - 'in' => 'query', - 'schema' => [ - 'description' => '执行用户。', - 'type' => 'string', - 'required' => false, - 'example' => '113***************'."\n", - ], + 'name' => 'kyuubiServiceId', + 'in' => 'path', + 'schema' => ['description' => 'Kyuubi 服务 ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'], ], [ - 'name' => 'publish', - 'in' => 'query', + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', 'schema' => [ - 'description' => '是否发布工作流。', - 'type' => 'boolean', + 'description' => '请求结构体。', + 'type' => 'object', + 'properties' => [ + 'kyuubiConfigs' => ['description' => 'Kyuubi Service配置。', 'type' => 'string', 'required' => false, 'example' => '[]'], + 'sparkConfigs' => ['description' => 'Spark 配置。', 'type' => 'string', 'required' => false, 'example' => '[]'], + 'name' => ['description' => '名称。', 'type' => 'string', 'required' => false, 'example' => 'dev_serverless_spark'."\n"], + 'queue' => ['description' => 'Kyuubi Service 运行队列。', 'type' => 'string', 'required' => false, 'example' => 'dev_queue'], + 'releaseVersion' => ['description' => 'Spark引擎版本号。', 'type' => 'string', 'required' => false, 'example' => 'esr-4.6.0 (Spark 3.5.2, Scala 2.12)'], + 'computeInstance' => ['description' => 'Kyuubi Service 规格。', 'type' => 'string', 'required' => false, 'example' => '2c8g'], + 'publicEndpointEnabled' => ['description' => '是否开启公网访问。', 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'false'], + 'replica' => ['description' => '开启高可用副本数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + 'kyuubiReleaseVersion' => ['description' => 'Kyuubi Service 引擎版本。', 'type' => 'string', 'required' => false, 'example' => '1.9.2-0.0.2'], + 'restart' => ['description' => '是否重启。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], 'required' => false, - 'example' => 'true', ], ], - [ - 'name' => 'regionId', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + 'title' => 'Schema of Response', + 'description' => '响应结构体。', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求 ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'data' => ['description' => '返回数据。', 'type' => 'any', 'example' => 'true'], + ], ], ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '更新Kyuubi Gateway', + 'summary' => '更新Kyuubi Gateway。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": \\"true\\"\\n}","type":"json"}]', + ], + 'UpdateKyuubiToken' => [ + 'path' => '/api/v1/workspaces/{workspaceId}/kyuubiService/{kyuubiServiceId}/token/{tokenId}', + 'methods' => ['put'], + 'schemes' => ['https'], + 'security' => [ [ - 'name' => 'globalParams', - 'in' => 'query', + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155****'."\n"], + ], + [ + 'name' => 'kyuubiServiceId', + 'in' => 'path', + 'schema' => ['description' => 'Kyuubi服务ID。', 'type' => 'string', 'required' => false, 'example' => 'kb-c7141f10c3f549fc9f8b8ae562b8****'."\n"], + ], + [ + 'name' => 'tokenId', + 'in' => 'path', + 'schema' => ['description' => 'Token ID。', 'type' => 'string', 'required' => false, 'example' => 'tk-zpi0*****hdv4y'."\n"], + ], + [ + 'name' => 'body', + 'in' => 'body', 'style' => 'json', 'schema' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'prop' => [ - 'type' => 'string', - 'required' => false, - ], - 'value' => [ - 'type' => 'string', - 'required' => false, - ], - 'direct' => [ - 'type' => 'string', - 'required' => false, - ], - 'type' => [ - 'type' => 'string', - 'required' => false, + 'description' => '请求结构体。', + 'type' => 'object', + 'properties' => [ + 'name' => ['description' => 'Token名称。', 'type' => 'string', 'required' => false, 'example' => 'dev_serverless_spark'."\n"], + 'token' => ['description' => '长度为32,仅包含小写字母和数字的Token内容。', 'type' => 'string', 'required' => false, 'example' => 'rjy7ejhej9gkzjjuun49jnx2xk8if2cu'], + 'autoExpireConfiguration' => [ + 'description' => '自动过期配置结构体。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => '是否自动过期。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'expireDays' => ['description' => '过期时间(单位:天)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '365'], ], + 'required' => false, + ], + 'memberArns' => [ + 'description' => '授权用户arn列表。', + 'type' => 'array', + 'items' => ['description' => '授权用户arn。', 'type' => 'string', 'required' => false, 'example' => 'acs:emr::w-d2d82aa09155****:member/195****7311'], + 'required' => false, + ], + 'sparkRole' => [ + 'type' => 'array', + 'items' => ['type' => 'string'], ], - 'required' => false, ], 'required' => false, ], ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['description' => '地域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', - 'description' => 'Schema of Response', + 'description' => '请求响应结构体。', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n"], + ], + ], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '更新Kyuubi Gateway认证Token', + 'summary' => '更新Kyuubi Gateway认证Token。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], + ], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:UpdateKyuubiToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\"\\n}","type":"json"}]', + ], + 'UpdateLivyCompute' => [ + 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/livycompute/{livyComputeId}', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeCode' => '222234', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], + ], + 'parameters' => [ + [ + 'name' => 'workspaceBizId', + 'in' => 'path', + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-8adde60aa809701f'], + ], + [ + 'name' => 'livyComputeId', + 'in' => 'path', + 'schema' => ['description' => 'Livy Gateway的ID。', 'type' => 'string', 'required' => false, 'example' => 'lc-i8xogcdfa4fk3yn1'], + ], + [ + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', + 'schema' => [ + 'description' => '请求结构体。', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => 'Id of the request', + 'name' => ['description' => '名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'livyVersion' => [ + 'description' => 'Livy版本。', 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => 'API后端返回码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1400009', + 'required' => false, + 'enumValueTitles' => [], + 'example' => '0.8.0', + 'enum' => ['0.8.0'], ], - 'msg' => [ - 'description' => '请求 code 对应的详细描述信息。', + 'releaseVersion' => ['description' => 'Spark引擎版本号,已废弃,请使用displayReleaseVersion。', 'type' => 'string', 'required' => false, 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12, Java Runtime)'."\n"], + 'queueName' => ['description' => '队列名称。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'cpuLimit' => [ + 'description' => 'Livy Server的CPU核数。'."\n" + .'- 1'."\n" + .'- 2'."\n" + .'- 4', 'type' => 'string', - 'example' => 'No permission for resource action', + 'required' => false, + 'enumValueTitles' => [], + 'example' => '1', ], - 'success' => [ - 'description' => '请求是否成功。', + 'memoryLimit' => [ + 'description' => 'Livy Server的内存大小。'."\n" + .'- 4Gi'."\n" + .'- 8Gi'."\n" + .'- 16Gi', 'type' => 'string', - 'example' => 'true', + 'required' => false, + 'enumValueTitles' => [], + 'example' => '4Gi', ], - 'failed' => [ - 'description' => '失败个数。', - 'type' => 'string', - 'example' => 'false', + 'autoStartConfiguration' => [ + 'description' => '自动启动配置。', + 'type' => 'object', + 'properties' => [ + 'enable' => ['description' => '是否创建后自动启动。'."\n" + .'- true:是。'."\n" + .'- false:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + 'required' => false, ], - 'data' => [ - 'description' => '返回数据。', + 'autoStopConfiguration' => [ + 'description' => '自动终止配置。', 'type' => 'object', 'properties' => [ - 'id' => [ - 'description' => '工作流定义编号。', - 'type' => 'string', - 'example' => '123223', - ], - 'code' => [ - 'description' => '工作流定义ID。', - 'type' => 'string', - 'example' => '12***********', - ], - 'name' => [ - 'description' => '工作流定义名称。', - 'type' => 'string', - 'example' => 'ods_batch_workflow', - ], - 'version' => [ - 'description' => '版本号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'releaseState' => [ - 'description' => '工作流上线状态', - 'type' => 'string', - 'example' => 'ONLINE', - ], - 'bizId' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'example' => 'alicloud_ack_one_cluster', - ], - 'description' => [ - 'description' => '任务定义描述。', - 'type' => 'string', - 'example' => '1', - ], - 'createTime' => [ - 'description' => '工作流定义创建时间。', - 'type' => 'string', - 'example' => '2024-09-05T02:03:19Z', - ], - 'updateTime' => [ - 'description' => '工作流定义更新时间。', - 'type' => 'string', - 'example' => '2024-03-05T06:24:27Z', - ], - 'userId' => [ - 'description' => '调度用户ID。', - 'type' => 'string', - 'example' => '113*********', - ], - 'userName' => [ - 'description' => '调度用户名称。', - 'type' => 'string', - 'example' => 'w-********', - ], - 'projectName' => [ - 'description' => '工作流对应项目名称。', - 'type' => 'string', - 'example' => 'w-********', - ], - 'executionType' => [ - 'description' => '执行策略。', - 'type' => 'string', - 'example' => 'SERIAL', - ], - 'alertEmailAddress' => [ - 'description' => '告警邮件地址。', - 'type' => 'string', - 'example' => 'foo_bar@spark.alert.invalid.com'."\n", - ], - 'startTime' => [ - 'description' => '调度开始时间。', - 'type' => 'string', - 'example' => '0', - ], - 'endTime' => [ - 'description' => '任务结束时间范围的终点。', - 'type' => 'string', - 'example' => '1710432000000', - ], - 'timezoneId' => [ - 'description' => '时区ID。', - 'type' => 'string', - 'example' => 'Asia/Shanghai'."\n", - ], - 'crontab' => [ - 'description' => '调度cron表达式。', - 'type' => 'string', - 'example' => '0 0 0 * * ?'."\n", - ], - 'versionHashCode' => [ - 'description' => '版本哈希编码。', - 'type' => 'string', - 'example' => 'dwerf*********', - ], + 'enable' => ['description' => '是否允许自动终止。'."\n" + .'- true:是。'."\n" + .'- false:否。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'idleTimeoutMinutes' => ['description' => 'Livy Gateway空闲指定分钟数后自动终止。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '300'], ], + 'required' => false, ], - 'httpStatusCode' => [ - 'description' => 'HTTP状态编码', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', + 'authType' => [ + 'description' => '认证方式。', + 'type' => 'string', + 'required' => false, + 'enumValueTitles' => [], + 'example' => 'Token', + 'enum' => ['Token'], ], + 'displayReleaseVersion' => ['description' => 'Spark引擎版本号。', 'type' => 'string', 'required' => false, 'example' => 'esr-4.3.0 (Spark 3.5.2, Scala 2.12)'."\n"], + 'fusion' => ['description' => '是否开启Fusion引擎加速。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'environmentId' => ['description' => '运行环境ID。', 'type' => 'string', 'required' => false, 'example' => 'ev-cq146allhtgkulp5smk0'], + 'networkName' => ['description' => '网络连接名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'livyServerConf' => ['description' => 'Livy Gateway配置,JSON格式,支持以下文件:'."\n" + ."\n" + .'- sparkDefaultsConf'."\n" + .'- sparkBlackListConf'."\n" + .'- livyConf'."\n" + .'- livyClientConf', 'type' => 'string', 'required' => false, 'example' => '{'."\n" + .' "sparkDefaultsConf": "spark.driver.cores 1\\nspark.driver.memory 4g\\nspark.executor.cores 1\\nspark.executor.memory 4g\\n",'."\n" + .' "sparkBlackListConf": "spark.driver.cores\\nspark.driver.memory",'."\n" + .' "livyConf": "livy.server.session.timeout 1h\\n",'."\n" + .' "livyClientConf": "livy.rsc.sql.num-rows 1000\\n"'."\n" + .'}'], + 'enablePublic' => ['description' => '公网地址开关状态。'."\n", 'type' => 'boolean', 'required' => false], ], + 'required' => false, ], ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], + ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => 'Schema of Response', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'requestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => '请求返回 code,1000000代表请求成功,其他情况代表请求不成功,具体错误原因描述可通过 message 查看。', 'type' => 'string', 'example' => '1000000'], + 'message' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'ok'], + ], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": 1400009,\\n \\"msg\\": \\"No permission for resource action\\",\\n \\"success\\": \\"true\\",\\n \\"failed\\": \\"false\\",\\n \\"data\\": {\\n \\"id\\": \\"123223\\",\\n \\"code\\": \\"12***********\\",\\n \\"name\\": \\"ods_batch_workflow\\",\\n \\"version\\": 1,\\n \\"releaseState\\": \\"ONLINE\\",\\n \\"bizId\\": \\"alicloud_ack_one_cluster\\",\\n \\"description\\": \\"1\\",\\n \\"createTime\\": \\"2024-09-05T02:03:19Z\\",\\n \\"updateTime\\": \\"2024-03-05T06:24:27Z\\",\\n \\"userId\\": \\"113*********\\",\\n \\"userName\\": \\"w-********\\",\\n \\"projectName\\": \\"w-********\\",\\n \\"executionType\\": \\"SERIAL\\",\\n \\"alertEmailAddress\\": \\"foo_bar@spark.alert.invalid.com\\\\n\\",\\n \\"startTime\\": \\"0\\",\\n \\"endTime\\": \\"1710432000000\\",\\n \\"timezoneId\\": \\"Asia/Shanghai\\\\n\\",\\n \\"crontab\\": \\"0 0 0 * * ?\\\\n\\",\\n \\"versionHashCode\\": \\"dwerf*********\\"\\n },\\n \\"httpStatusCode\\": 200\\n}","type":"json"}]', - 'title' => '更新工作流定义和调度', - ], - 'CreateProcessDefinitionWithSchedule' => [ - 'summary' => '创建工作流定义。', - 'path' => '/dolphinscheduler/projects/{bizId}/process-definition', - 'methods' => [ - 'post', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '更新Livy Gateway', + 'summary' => '更新Livy Gateway', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'schemes' => [ - 'http', - 'https', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:UpdateLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": \\"1000000\\",\\n \\"message\\": \\"ok\\"\\n}","type":"json"}]', + ], + 'UpdateProcessDefinitionWithSchedule' => [ + 'summary' => '更新工作流定义和定时调度。', + 'path' => '/dolphinscheduler/projects/{bizId}/process-definition/{code}', + 'methods' => ['put'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -11341,113 +8914,39 @@ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeCode' => '191322', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceTW58EL', - ], + 'abilityTreeCode' => '191361', + 'abilityTreeNodes' => ['FEATUREemapreduceTW58EL'], ], 'parameters' => [ [ 'name' => 'productNamespace', 'in' => 'query', - 'schema' => [ - 'description' => '产品编码。', - 'type' => 'string', - 'required' => true, - 'example' => 'SS', - ], + 'schema' => ['description' => '产品编码。', 'type' => 'string', 'required' => true, 'example' => 'SS'], ], [ 'name' => 'bizId', 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d8********', - ], + 'schema' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d8********'."\n"], ], [ 'name' => 'name', 'in' => 'query', - 'schema' => [ - 'description' => '工作流名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'ods_batch_workflow', - ], + 'schema' => ['description' => '工作流名称。', 'type' => 'string', 'required' => true, 'example' => 'ods_batch_workflow'."\n"], + ], + [ + 'name' => 'code', + 'in' => 'path', + 'schema' => ['description' => '任务定义ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '12************'], ], [ 'name' => 'description', 'in' => 'query', - 'schema' => [ - 'description' => '工作流描述。', - 'type' => 'string', - 'required' => true, - 'example' => 'ods batch workflow', - ], + 'schema' => ['description' => '工作流描述。', 'type' => 'string', 'required' => false, 'example' => 'ods batch workflow'], ], [ 'name' => 'timeout', 'in' => 'query', - 'schema' => [ - 'description' => '工作流运行默认timeout。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '60', - ], - ], - [ - 'name' => 'taskRelationJson', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '任务依赖关系JSON数组,包含工作流所有任务之间的依赖关系,preTaskCode为上游任务ID,postTaskCode为下游任务ID,每一个任务需有唯一的ID。如果任务节点没有上游任务,也需要增加一个preTaskCode为0的依赖关系。', - 'type' => 'array', - 'items' => [ - 'description' => '任务依赖关系JSON,包含工作流所有任务之间的依赖关系,preTaskCode为上游任务ID,postTaskCode为下游任务,每一个任务需有唯一的ID。如果任务节点没有上游任务,也需要增加一个preTaskCode为0的依赖关系。', - 'type' => 'object', - 'properties' => [ - 'name' => [ - 'description' => '任务拓扑关系名称,填工作流名称即可。', - 'type' => 'string', - 'required' => true, - 'example' => 'ods batch workflow', - ], - 'preTaskCode' => [ - 'description' => '上游任务ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '16************', - ], - 'preTaskVersion' => [ - 'description' => '上游任务版本。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - 'postTaskCode' => [ - 'description' => '下游任务ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '28************', - ], - 'postTaskVersion' => [ - 'description' => '下游任务版本。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - ], - 'required' => true, - ], - 'required' => true, - ], + 'schema' => ['description' => '工作流运行默认timeout。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '300'], ], [ 'name' => 'taskDefinitionJson', @@ -11460,187 +8959,55 @@ 'description' => '任务定义JSON,包含工作流所有任务的描述信息。', 'type' => 'object', 'properties' => [ - 'code' => [ - 'description' => '任务定义ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '36************', - ], - 'description' => [ - 'description' => '任务定义描述。', - 'type' => 'string', - 'required' => false, - 'example' => 'ods transform task', - ], - 'alertEmailAddress' => [ - 'description' => '告警邮箱地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'foo_bar@spark.alert.invalid.com', - ], - 'startAlertEnable' => [ - 'description' => '任务启动告警开启。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'failAlertEnable' => [ - 'description' => '任务失败告警开启。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'failRetryTimes' => [ - 'description' => '任务失败重试次数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'name' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'required' => true, - 'enumValueTitles' => [], - 'example' => 'ods_transform_task', - ], + 'code' => ['description' => '任务定义ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '23************'], + 'description' => ['description' => '任务定义描述。', 'type' => 'string', 'required' => false, 'example' => 'ods transform task'."\n"], + 'alertEmailAddress' => ['description' => '告警邮箱地址。', 'type' => 'string', 'required' => false, 'example' => 'foo_bar@spark.alert.invalid.com'."\n"], + 'startAlertEnable' => ['description' => '任务启动告警开启。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'failAlertEnable' => ['description' => '任务失败告警开启。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'failRetryTimes' => ['description' => '任务失败重试次数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'name' => ['description' => '任务名称。', 'type' => 'string', 'required' => true, 'example' => 'ods_transform_task'."\n"], 'taskParams' => [ 'description' => '任务定义参数。', 'type' => 'object', 'properties' => [ - 'workspaceBizId' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d8********', - ], - 'taskBizId' => [ - 'description' => '数据开发任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'TSK-d87******************', - ], - 'resourceQueueId' => [ - 'description' => 'Spark任务运行的资源队列。', - 'type' => 'string', - 'required' => true, - 'example' => 'root_queue', - ], - 'sparkDriverCores' => [ - 'description' => 'Spark任务Driver核数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'sparkExecutorCores' => [ - 'description' => 'Spark任务Executor核数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'sparkDriverMemory' => [ - 'description' => 'Spark任务Driver内存。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '4g', - ], - 'sparkExecutorMemory' => [ - 'description' => 'Spark任务Executor内存。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '4g', - ], + 'workspaceBizId' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => true, 'example' => 'w-d8********'."\n"], + 'taskBizId' => ['description' => '数据开发任务ID。', 'type' => 'string', 'required' => true, 'example' => 'TSK-d87******************'."\n"], + 'resourceQueueId' => ['description' => '运行任务的队列名称。', 'type' => 'string', 'required' => true, 'example' => 'root_queue'], + 'sparkDriverCores' => ['description' => 'Spark任务Driver核数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'sparkExecutorCores' => ['description' => 'Spark任务Executor核数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'sparkDriverMemory' => ['description' => 'Spark任务Driver内存。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '4g'], + 'sparkExecutorMemory' => ['description' => 'Spark任务Executor内存。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '4g'], 'sparkConf' => [ 'description' => 'Spark任务配置。', 'type' => 'array', 'items' => [ + 'description' => 'Spark任务配置。', 'type' => 'object', 'properties' => [ - 'key' => [ - 'description' => 'Spark Conf配置key。', - 'type' => 'string', - 'required' => false, - 'example' => 'spark.dynamicAllocation.enabled', - ], - 'value' => [ - 'description' => 'Spark Conf配置value。', - 'type' => 'string', - 'required' => false, - 'example' => 'true', - ], + 'key' => ['description' => 'Spark Conf配置key。', 'type' => 'string', 'required' => false, 'example' => 'spark.dynamicAllocation.enabled'."\n"], + 'value' => ['description' => 'Spark Conf配置value。', 'type' => 'string', 'required' => false, 'example' => 'true'], ], 'required' => false, ], 'required' => false, ], - 'sparkVersion' => [ - 'description' => 'Spark引擎版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)', - ], - 'sparkLogLevel' => [ - 'description' => 'Spark日志级别。', - 'type' => 'string', - 'required' => false, - 'example' => 'INFO', - ], - 'sparkLogPath' => [ - 'description' => 'Spark任务日志路径。', - 'type' => 'string', - 'required' => false, - 'example' => 'oss://data***/spark/logs', - ], - 'displaySparkVersion' => [ - 'description' => 'Spark引擎显示版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)', - ], - 'fusion' => [ - 'description' => '是否开启Fusion引擎加速。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'environmentId' => [ - 'description' => '环境id。', - 'type' => 'string', - 'required' => false, - 'example' => 'env-crhq2h5lhtgju93buhkg', - ], - 'type' => [ - 'description' => 'Spark任务类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'SQL', - ], + 'sparkVersion' => ['description' => 'Spark引擎版本。', 'type' => 'string', 'required' => false, 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)'."\n"], + 'sparkLogLevel' => ['description' => 'Spark日志级别。', 'type' => 'string', 'required' => false, 'example' => 'INFO'], + 'sparkLogPath' => ['description' => 'Spark任务日志路径。', 'type' => 'string', 'required' => false, 'example' => ' '."\n" + .'oss://data***/spark/logs'."\n"], + 'displaySparkVersion' => ['description' => 'Spark引擎显示版本。', 'type' => 'string', 'required' => false, 'example' => 'esr-4.0.0 (Spark 3.5.2, Scala 2.12)'], + 'fusion' => ['description' => '是否开启Fusion引擎加速。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'environmentId' => ['description' => '环境id。', 'type' => 'string', 'required' => false, 'example' => 'ev-h*************'], + 'type' => ['description' => 'Spark作业类型。', 'type' => 'string', 'required' => false, 'example' => 'SQL'], 'localParams' => [ 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'prop' => [ - 'type' => 'string', - 'required' => false, - ], - 'direct' => [ - 'type' => 'string', - 'required' => false, - ], - 'type' => [ - 'type' => 'string', - 'required' => false, - ], - 'value' => [ - 'type' => 'string', - 'required' => false, - ], + 'prop' => ['type' => 'string', 'required' => false], + 'direct' => ['type' => 'string', 'required' => false], + 'type' => ['type' => 'string', 'required' => false], + 'value' => ['type' => 'string', 'required' => false], ], 'required' => false, ], @@ -11649,28 +9016,14 @@ ], 'required' => true, ], - 'taskType' => [ - 'description' => '工作流节点类型。', - 'type' => 'string', - 'required' => true, - 'example' => 'EMR_SERVERLESS_SPARK', - ], - 'timeout' => [ - 'description' => '回调方法的超时时间,单位为秒。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1200', - ], + 'taskType' => ['description' => '工作流节点类型。', 'type' => 'string', 'required' => true, 'example' => 'EMR-SERVERLESS-SPARK'], + 'timeout' => ['description' => '任务运行默认timeout。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '30'], 'tags' => [ 'description' => '标签。', 'type' => 'object', 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'example' => '“{\\"tagkey\\":\\"tagvalue\\"}”', - 'description' => '标签对JSON字符串。', - ], + 'additionalProperties' => ['type' => 'string', 'example' => ' '."\n" + .'“{\\"tagkey\\":\\"tagvalue\\"}”'."\n", 'description' => '标签对JSON字符串。'], ], ], 'required' => true, @@ -11679,24 +9032,36 @@ ], ], [ - 'name' => 'executionType', + 'name' => 'taskRelationJson', 'in' => 'query', + 'style' => 'json', 'schema' => [ - 'description' => '执行策略', - 'type' => 'string', + 'description' => '任务依赖关系JSON数组,包含工作流所有任务之间的依赖关系,preTaskCode为上游任务ID,postTaskCode为下游任务ID,每一个任务需有唯一的ID。如果任务节点没有上游任务,也需要增加一个preTaskCode为0的依赖关系。', + 'type' => 'array', + 'items' => [ + 'description' => '任务依赖关系JSON,包含工作流所有任务之间的依赖关系,preTaskCode为上游任务ID,postTaskCode为下游任务ID,每一个任务需有唯一的ID。如果任务节点没有上游任务,也需要增加一个preTaskCode为0的依赖关系。', + 'type' => 'object', + 'properties' => [ + 'name' => ['description' => '任务拓扑关系名称,填工作流名称即可。', 'type' => 'string', 'required' => true, 'example' => 'ods batch workflow'."\n"], + 'preTaskCode' => ['description' => '上游任务ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '16************'."\n"], + 'preTaskVersion' => ['description' => '上游任务版本。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + 'postTaskCode' => ['description' => '下游任务ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '19************'."\n"], + 'postTaskVersion' => ['description' => '下游任务版本。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + 'required' => true, + ], 'required' => true, - 'example' => 'PARALLEL', ], ], [ + 'name' => 'executionType', + 'in' => 'query', + 'schema' => ['description' => '执行策略', 'type' => 'string', 'required' => true, 'example' => 'PARALLEL'], + ], + [ 'name' => 'alertEmailAddress', 'in' => 'query', - 'schema' => [ - 'description' => '告警邮箱地址。', - 'type' => 'string', - 'required' => false, - 'example' => 'foo_bar@spark.alert.invalid.com', - ], + 'schema' => ['description' => '告警邮箱地址。', 'type' => 'string', 'required' => false, 'example' => 'foo_bar@spark.alert.invalid.com'], ], [ 'name' => 'schedule', @@ -11706,30 +9071,11 @@ 'description' => '调度结构', 'type' => 'object', 'properties' => [ - 'startTime' => [ - 'description' => '调度开始时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2024-12-23 16:13:27', - ], - 'endTime' => [ - 'description' => '调度结束时间。', - 'type' => 'string', - 'required' => false, - 'example' => '2025-12-23 16:13:27', - ], - 'crontab' => [ - 'description' => '调度cron表达式。', - 'type' => 'string', - 'required' => false, - 'example' => '0 0 0 * * ?', - ], - 'timezoneId' => [ - 'description' => '时区ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'Asia/Shanghai', - ], + 'startTime' => ['description' => '开始时间。', 'type' => 'string', 'required' => false, 'example' => '2024-12-23 16:13:27'."\n"], + 'endTime' => ['description' => '调度结束时间。', 'type' => 'string', 'required' => false, 'example' => '2025-12-23 16:13:27'."\n"], + 'crontab' => ['description' => '调度cron表达式。', 'type' => 'string', 'required' => false, 'example' => ' '."\n" + .'0 0 0 * * ?'."\n"], + 'timezoneId' => ['description' => '时区ID。', 'type' => 'string', 'required' => false, 'example' => 'Asia/Shanghai'."\n"], ], 'required' => false, ], @@ -11737,34 +9083,12 @@ [ 'name' => 'retryTimes', 'in' => 'query', - 'schema' => [ - 'description' => '重试次数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '重试次数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ 'name' => 'taskParallelism', 'in' => 'query', - 'schema' => [ - 'description' => '任务并发度。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'resourceQueue', - 'in' => 'query', - 'schema' => [ - 'description' => '资源队列。', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', - ], + 'schema' => ['description' => '工作流节点运行并发度。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ 'name' => 'tags', @@ -11774,43 +9098,34 @@ 'description' => '标签。', 'type' => 'object', 'required' => false, - 'additionalProperties' => [ - 'type' => 'string', - 'example' => '“{\\"tagkey\\":\\"tagvalue\\"}”', - 'description' => '标签对JSON字符串。', - ], + 'additionalProperties' => ['type' => 'string', 'example' => ' '."\n" + .'“{\\"tagkey\\":\\"tagvalue\\"}”'."\n", 'description' => '标签对JSON字符串。'], ], ], [ - 'name' => 'publish', + 'name' => 'resourceQueue', 'in' => 'query', - 'schema' => [ - 'description' => '是否发布工作流。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '资源队列。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], ], [ - 'name' => 'regionId', + 'name' => 'releaseState', 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], + 'schema' => ['description' => '工作流上线状态。', 'type' => 'string', 'required' => false, 'example' => 'ONLINE'], ], [ 'name' => 'runAs', 'in' => 'query', - 'schema' => [ - 'description' => '执行用户阿里云UID。', - 'type' => 'string', - 'required' => false, - 'example' => '113***************', - ], + 'schema' => ['description' => '执行用户。', 'type' => 'string', 'required' => false, 'example' => '113***************'."\n"], + ], + [ + 'name' => 'publish', + 'in' => 'query', + 'schema' => ['description' => '是否发布工作流。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], [ 'name' => 'globalParams', @@ -11821,22 +9136,10 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'prop' => [ - 'type' => 'string', - 'required' => false, - ], - 'value' => [ - 'type' => 'string', - 'required' => false, - ], - 'direct' => [ - 'type' => 'string', - 'required' => false, - ], - 'type' => [ - 'type' => 'string', - 'required' => false, - ], + 'prop' => ['type' => 'string', 'required' => false], + 'value' => ['type' => 'string', 'required' => false], + 'direct' => ['type' => 'string', 'required' => false], + 'type' => ['type' => 'string', 'required' => false], ], 'required' => false, ], @@ -11851,243 +9154,91 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => 'API返回编码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1400009', - ], - 'msg' => [ - 'description' => '请求 code 对应的详细描述信息。', - 'type' => 'string', - 'example' => 'No permission for resource action', - ], - 'success' => [ - 'description' => '请求是否成功。', - 'type' => 'string', - 'example' => 'true', - ], - 'failed' => [ - 'description' => '请求是否失败。', - 'type' => 'string', - 'example' => 'false', - ], + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'code' => ['description' => 'API后端返回码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1400009'], + 'msg' => ['description' => '请求 code 对应的详细描述信息。', 'type' => 'string', 'example' => 'No permission for resource action'], + 'success' => ['description' => '请求是否成功。', 'type' => 'string', 'example' => 'true'], + 'failed' => ['description' => '失败个数。', 'type' => 'string', 'example' => 'false'], 'data' => [ - 'description' => '返回结果。', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'id' => [ - 'description' => '工作流定义编号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '12342', - ], - 'code' => [ - 'description' => '工作流定义ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '160************', - ], + 'id' => ['description' => '工作流定义编号。', 'type' => 'string', 'example' => '123223'], + 'code' => ['description' => '工作流定义ID。', 'type' => 'string', 'example' => '12***********'], + 'name' => ['description' => '工作流定义名称。', 'type' => 'string', 'example' => 'ods_batch_workflow'], + 'version' => ['description' => '版本号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'releaseState' => ['description' => '工作流上线状态', 'type' => 'string', 'example' => 'ONLINE'], + 'bizId' => ['description' => '工作空间ID。', 'type' => 'string', 'example' => 'alicloud_ack_one_cluster'], + 'description' => ['description' => '任务定义描述。', 'type' => 'string', 'example' => '1'], + 'createTime' => ['description' => '工作流定义创建时间。', 'type' => 'string', 'example' => '2024-09-05T02:03:19Z'], + 'updateTime' => ['description' => '工作流定义更新时间。', 'type' => 'string', 'example' => '2024-03-05T06:24:27Z'], + 'userId' => ['description' => '调度用户ID。', 'type' => 'string', 'example' => '113*********'], + 'userName' => ['description' => '调度用户名称。', 'type' => 'string', 'example' => 'w-********'], + 'projectName' => ['description' => '工作流对应项目名称。', 'type' => 'string', 'example' => 'w-********'], + 'executionType' => ['description' => '执行策略。', 'type' => 'string', 'example' => 'SERIAL'], + 'alertEmailAddress' => ['description' => '告警邮件地址。', 'type' => 'string', 'example' => 'foo_bar@spark.alert.invalid.com'."\n"], + 'startTime' => ['description' => '调度开始时间。', 'type' => 'string', 'example' => '0'], + 'endTime' => ['description' => '任务结束时间范围的终点。', 'type' => 'string', 'example' => '1710432000000'], + 'timezoneId' => ['description' => '时区ID。', 'type' => 'string', 'example' => 'Asia/Shanghai'."\n"], + 'crontab' => ['description' => '调度cron表达式。', 'type' => 'string', 'example' => '0 0 0 * * ?'."\n"], + 'versionHashCode' => ['description' => '版本哈希编码。', 'type' => 'string', 'example' => 'dwerf*********'], ], ], - 'httpStatusCode' => [ - 'description' => 'HTTP状态编码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'httpStatusCode' => ['description' => 'HTTP状态编码', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": 1400009,\\n \\"msg\\": \\"No permission for resource action\\",\\n \\"success\\": \\"true\\",\\n \\"failed\\": \\"false\\",\\n \\"data\\": {\\n \\"id\\": 12342,\\n \\"code\\": 0\\n },\\n \\"httpStatusCode\\": 200\\n}","type":"json"}]', - 'title' => '创建工作流定义和调度', - ], - 'GenerateTaskCodes' => [ - 'summary' => '上线工作流及其调度。', - 'path' => '/dolphinscheduler/projects/{bizId}/task-definition/gen-task-codes', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'none', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '更新工作流定义和调度', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'parameters' => [ - [ - 'name' => 'bizId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'w-d8********'."\n", - ], - ], - [ - 'name' => 'genNum', - 'in' => 'query', - 'schema' => [ - 'description' => '生成数量。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - ], + 'ramActions' => [ [ - 'name' => 'productNamespace', - 'in' => 'query', - 'schema' => [ - 'description' => '产品命名空间。', - 'type' => 'string', - 'required' => true, - 'example' => 'SS', - ], - ], - [ - 'name' => 'regionId', - 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => '响应结构体。', - 'type' => 'object', - 'properties' => [ - 'requestId' => [ - 'title' => 'Id of the request', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'code' => [ - 'description' => '请求错误码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000000', - ], - 'msg' => [ - 'description' => '请求 code 对应的详细描述信息。', - 'type' => 'string', - 'example' => 'No permission for resource action', - ], - 'success' => [ - 'description' => '请求是否成功。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'failed' => [ - 'description' => '请求是否失败。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'data' => [ - 'description' => '返回数据。', - 'type' => 'array', - 'items' => [ - 'description' => '自动生成的工作流节点定义随机编码。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1263424***', - ], - ], - 'httpStatusCode' => [ - 'description' => 'HTTP状态编码', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:UpdateProcessDefinitionWithSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": 1000000,\\n \\"msg\\": \\"No permission for resource action\\",\\n \\"success\\": true,\\n \\"failed\\": false,\\n \\"data\\": [\\n 0\\n ],\\n \\"httpStatusCode\\": 200\\n}","type":"json"}]', - 'title' => '生成工作流节点定义编码', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"code\\": 1400009,\\n \\"msg\\": \\"No permission for resource action\\",\\n \\"success\\": \\"true\\",\\n \\"failed\\": \\"false\\",\\n \\"data\\": {\\n \\"id\\": \\"123223\\",\\n \\"code\\": \\"12***********\\",\\n \\"name\\": \\"ods_batch_workflow\\",\\n \\"version\\": 1,\\n \\"releaseState\\": \\"ONLINE\\",\\n \\"bizId\\": \\"alicloud_ack_one_cluster\\",\\n \\"description\\": \\"1\\",\\n \\"createTime\\": \\"2024-09-05T02:03:19Z\\",\\n \\"updateTime\\": \\"2024-03-05T06:24:27Z\\",\\n \\"userId\\": \\"113*********\\",\\n \\"userName\\": \\"w-********\\",\\n \\"projectName\\": \\"w-********\\",\\n \\"executionType\\": \\"SERIAL\\",\\n \\"alertEmailAddress\\": \\"foo_bar@spark.alert.invalid.com\\\\n\\",\\n \\"startTime\\": \\"0\\",\\n \\"endTime\\": \\"1710432000000\\",\\n \\"timezoneId\\": \\"Asia/Shanghai\\\\n\\",\\n \\"crontab\\": \\"0 0 0 * * ?\\\\n\\",\\n \\"versionHashCode\\": \\"dwerf*********\\"\\n },\\n \\"httpStatusCode\\": 200\\n}","type":"json"}]', ], 'UpdateRayCluster' => [ - 'summary' => '更新Ray集群。', 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster/{clusterId}', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce8QU4HW', - ], + 'abilityTreeNodes' => ['FEATUREemapreduce8QU4HW'], ], 'parameters' => [ [ 'name' => 'workspaceId', 'in' => 'path', - 'schema' => [ - 'title' => '工作空间ID。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155', - ], + 'schema' => ['title' => '工作空间ID。', 'description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-d2d82aa09155'], ], [ 'name' => 'clusterId', 'in' => 'path', - 'schema' => [ - 'title' => '集群ID。', - 'description' => '集群ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ray-uiulpgow9xljimm1', - ], + 'schema' => ['title' => '集群ID。', 'description' => '集群ID。', 'type' => 'string', 'required' => false, 'example' => 'ray-uiulpgow9xljimm1'], ], [ 'name' => 'body', @@ -12098,75 +9249,21 @@ 'description' => '请求结构体。', 'type' => 'object', 'properties' => [ - 'name' => [ - 'title' => 'Ray集群名称。', - 'description' => 'Ray集群名称,长度1到64。', - 'type' => 'string', - 'required' => false, - 'example' => 'myRayCluster', - ], - 'displayReleaseVersion' => [ - 'title' => 'Ray引擎版本。', - 'description' => 'Ray引擎版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'ray-1.0.0 (Ray 2.47.1, Python 3.12)', - ], - 'description' => [ - 'title' => '描述。', - 'description' => '描述。', - 'type' => 'string', - 'required' => false, - 'example' => 'Ray Cluster for dev.', - ], - 'networkServiceName' => [ - 'title' => '网络连接名称。', - 'description' => '网络连接名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc', - ], + 'name' => ['title' => 'Ray集群名称。', 'description' => 'Ray集群名称,长度1到64。', 'type' => 'string', 'required' => false, 'example' => 'myRayCluster'], + 'displayReleaseVersion' => ['title' => 'Ray引擎版本。', 'description' => 'Ray引擎版本。', 'type' => 'string', 'required' => false, 'example' => 'ray-1.0.0 (Ray 2.47.1, Python 3.12)'], + 'description' => ['title' => '描述。', 'description' => '描述。', 'type' => 'string', 'required' => false, 'example' => 'Ray Cluster for dev.'], + 'networkServiceName' => ['title' => '网络连接名称。', 'description' => '网络连接名称。', 'type' => 'string', 'required' => false, 'example' => 'vpc'], 'headSpec' => [ 'title' => 'Ray集群Head节点信息。', 'description' => 'Ray集群Head节点信息。', 'type' => 'object', 'properties' => [ - 'queueName' => [ - 'title' => '队列名称。', - 'description' => '队列名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', - ], - 'cpu' => [ - 'title' => 'CPU核数。', - 'description' => 'CPU核数。', - 'type' => 'string', - 'required' => false, - 'example' => '2', - ], - 'memory' => [ - 'title' => '内存,单位Gi。', - 'description' => '内存,单位Gi。', - 'type' => 'string', - 'required' => false, - 'example' => '8Gi', - ], - 'enableAutoScaling' => [ - 'title' => '是否开启自动扩缩容。', - 'description' => '是否开启自动扩缩容。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'idleTimeoutSeconds' => [ - 'title' => '开启自动扩缩容后Worker的Idle时间。', - 'description' => '开启自动扩缩容后Worker的Idle时间。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '60', - ], + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'required' => false, 'example' => '2'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'required' => false, 'example' => '8Gi'], + 'enableAutoScaling' => ['title' => '是否开启自动扩缩容。', 'description' => '是否开启自动扩缩容。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + 'idleTimeoutSeconds' => ['title' => '开启自动扩缩容后Worker的Idle时间。', 'description' => '开启自动扩缩容后Worker的Idle时间。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '60'], + 'gpuSpec' => ['type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], ], 'required' => false, ], @@ -12179,79 +9276,31 @@ 'description' => 'Ray集群Worker节点信息结构体。', 'type' => 'object', 'properties' => [ - 'groupName' => [ - 'title' => 'Worker组名称。', - 'description' => 'Worker组名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'WorkerGroup1', - ], + 'groupName' => ['title' => 'Worker组名称。', 'description' => 'Worker组名称。', 'type' => 'string', 'required' => false, 'example' => 'WorkerGroup1'], 'workerType' => [ 'title' => 'Worker类型。', 'description' => 'Worker类型。', 'type' => 'string', 'required' => false, 'example' => 'CPU', - 'enum' => [ - 'CPU', - ], - ], - 'replica' => [ - 'title' => 'Worker数量。', - 'description' => 'Worker数量,最小1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], - 'queueName' => [ - 'title' => '队列名称。', - 'description' => '队列名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', - ], - 'cpu' => [ - 'title' => 'CPU核数。', - 'description' => 'CPU核数。', - 'type' => 'string', - 'required' => false, - 'example' => '2', - ], - 'memory' => [ - 'title' => '内存,单位Gi。', - 'description' => '内存,单位Gi。', - 'type' => 'string', - 'required' => false, - 'example' => '8Gi', - ], - 'minReplica' => [ - 'title' => '最小Worker数量。', - 'description' => '最小Worker数量,最小1,必须小于等于maxReplica。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'maxReplica' => [ - 'title' => '最大Worker数量。', - 'description' => '最大Worker数量,最小1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', + 'enum' => ['CPU'], ], + 'replica' => ['title' => 'Worker数量。', 'description' => 'Worker数量,最小1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + 'queueName' => ['title' => '队列名称。', 'description' => '队列名称。', 'type' => 'string', 'required' => false, 'example' => 'root_queue'], + 'cpu' => ['title' => 'CPU核数。', 'description' => 'CPU核数。', 'type' => 'string', 'required' => false, 'example' => '2'], + 'memory' => ['title' => '内存,单位Gi。', 'description' => '内存,单位Gi。', 'type' => 'string', 'required' => false, 'example' => '8Gi'], + 'minReplica' => ['title' => '最小Worker数量。', 'description' => '最小Worker数量,最小1,必须小于等于maxReplica。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + 'maxReplica' => ['title' => '最大Worker数量。', 'description' => '最大Worker数量,最小1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + 'gpuSpec' => ['type' => 'string', 'example' => 'ecs.gn6i-c4g1.xlarge'], ], 'required' => false, ], 'required' => false, ], - 'extraParam' => [ - 'title' => '额外参数,json格式。'."\n", - 'description' => '额外参数,必须为json格式。', - 'type' => 'string', - 'required' => false, - 'example' => '{}', + 'extraParam' => ['title' => '额外参数,json格式。'."\n", 'description' => '额外参数,必须为json格式。', 'type' => 'string', 'required' => false, 'example' => '{}'], + 'volumeIds' => [ + 'type' => 'array', + 'items' => ['type' => 'string', 'example' => 'vol-1234567890'], ], ], 'required' => false, @@ -12265,80 +9314,97 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944', - ], - 'clusterId' => [ - 'title' => '集群ID。', - 'description' => '集群ID。', - 'type' => 'string', - 'example' => 'ray-xxxxxxxxxxx', - ], + 'requestId' => ['title' => '请求ID。', 'description' => '请求ID。', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944'], + 'clusterId' => ['title' => '集群ID。', 'description' => '集群ID。', 'type' => 'string', 'example' => 'ray-xxxxxxxxxxx'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '更新Ray集群', + 'summary' => '更新Ray集群。', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], + 'ramActions' => [], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"clusterId\\": \\"ray-xxxxxxxxxxx\\"\\n}","type":"json"}]', - 'title' => '更新Ray集群', ], - 'GetRayCluster' => [ - 'summary' => '获取Ray集群。', - 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster/{clusterId}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'UpdateWorkspace' => [ + 'summary' => '更新workspace属性', + 'path' => '/api/v1/workspaces/update', + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'consumes' => [ - 'application/json', - ], - 'produces' => [ - 'application/json', - ], + 'consumes' => ['application/json'], + 'produces' => ['application/json'], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ - 'operationType' => 'get', + 'operationType' => 'update', 'riskType' => 'none', 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce8QU4HW', - ], + 'abilityTreeCode' => '209094', + 'abilityTreeNodes' => ['FEATUREemapreduce5JTF6C'], + 'autoTest' => true, + 'tenantRelevance' => 'tenant', ], 'parameters' => [ [ - 'name' => 'workspaceId', - 'in' => 'path', + 'name' => 'body', + 'in' => 'body', + 'style' => 'json', 'schema' => [ - 'title' => '工作空间ID。', - 'description' => '工作空间ID。', - 'type' => 'string', + 'description' => '请求结构体。', + 'type' => 'object', + 'properties' => [ + 'workspaceId' => ['description' => '工作空间ID。', 'type' => 'string', 'required' => false, 'example' => 'w-975bcfda9625****'], + 'workspaceName' => ['description' => '工作空间名称。', 'type' => 'string', 'required' => false, 'example' => 'default'], + 'cu' => ['description' => '工作空间资源上限。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '5000'], + 'subscription' => [ + 'description' => '按量转包年信息', + 'type' => 'object', + 'properties' => [ + 'queue' => [ + 'description' => '待转换的运行队列列表。', + 'type' => 'array', + 'items' => ['description' => '待转换的运行队列。', 'type' => 'string', 'required' => false, 'example' => 'dev_queue'], + 'required' => false, + ], + 'paymentDurationUnit' => ['description' => '订购周期。', 'type' => 'string', 'required' => false, 'example' => 'MONTH'], + 'duration' => ['description' => '订购周期数量(pre付费类型必填)。', 'type' => 'string', 'required' => false, 'example' => '1799'], + 'autoRenew' => ['description' => '是否自动续费(pre付费类型必填)。', 'type' => 'string', 'required' => false, 'example' => 'true'], + 'autoRenewPeriod' => ['description' => '自动续费时长(pre付费类型必填)。', 'type' => 'string', 'required' => false, 'example' => '1'], + 'autoRenewPeriodUnit' => ['description' => '自动续费周期(pre付费类型必填)。', 'type' => 'string', 'required' => false, 'example' => 'MONTH'], + 'clientToken' => ['description' => '幂等校验TOKEN。', 'type' => 'string', 'required' => false, 'example' => 'my-token-asxkxxxxxxx'], + ], + 'required' => false, + ], + 'resourceGroupId' => ['description' => '资源组 ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmwpi66knkxny'], + 'gpu' => ['title' => 'gpu卡数。', 'description' => 'gpu卡数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '100'], + 'gpuSpec' => [ + 'description' => 'gpu机型。', + 'type' => 'array', + 'items' => ['description' => 'gpu机型。', 'type' => 'string', 'required' => false, 'example' => 'ecs-gpu-8x-large'], + 'required' => false, + ], + 'ipWhiteList' => [ + 'title' => '工作空间ip白名单。', + 'type' => 'array', + 'items' => ['title' => '工作空间ip白名单。', 'type' => 'string', 'example' => '0.0.0.1'], + ], + ], 'required' => false, - 'example' => 'w-d2d82aa09155', ], ], [ - 'name' => 'clusterId', - 'in' => 'path', - 'schema' => [ - 'title' => '集群ID。', - 'description' => '集群ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ray-xxxxxxxxxx', - ], + 'name' => 'regionId', + 'in' => 'query', + 'schema' => ['title' => '区域ID。', 'description' => '区域ID。', 'type' => 'string', 'required' => false, 'example' => 'cn-hangzhou'], ], ], 'responses' => [ @@ -12348,1583 +9414,1066 @@ 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944', - ], - 'clusterId' => [ - 'title' => 'Ray集群ID。'."\n", - 'description' => 'Ray集群ID。'."\n", - 'type' => 'string', - 'example' => 'ray-k7nm8ahl5te4tg91', - ], - 'name' => [ - 'title' => 'Ray集群名称。', - 'description' => 'Ray集群名称。', - 'type' => 'string', - 'example' => 'myRayCluster', - ], - 'displayReleaseVersion' => [ - 'title' => 'Ray引擎版本。', - 'description' => 'Ray引擎版本。', - 'type' => 'string', - 'example' => 'ray-1.0.0 (Ray 2.47.1, Python 3.12)', - ], - 'description' => [ - 'title' => '描述信息。', - 'description' => '描述信息。', - 'type' => 'string', - 'example' => 'Ray Cluster for dev.', - ], - 'networkServiceName' => [ - 'title' => '网络连接名称。', - 'description' => '网络连接名称。', - 'type' => 'string', - 'example' => 'vpc', - ], - 'headSpec' => [ - 'title' => 'Ray集群Head节点参数。', - 'description' => 'Ray集群Head节点参数。', + 'requestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'], + 'data' => [ + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'queueName' => [ - 'title' => '队列名称。', - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'root_queue', - ], - 'cpu' => [ - 'title' => 'CPU核数。', - 'description' => 'CPU核数。', - 'type' => 'string', - 'example' => '2', - ], - 'memory' => [ - 'title' => '内存,单位Gi。', - 'description' => '内存,单位Gi。', - 'type' => 'string', - 'example' => '8Gi', - ], - 'enableAutoScaling' => [ - 'title' => 'Worker节点是否开启自动扩缩容。', - 'description' => 'Worker节点是否开启自动扩缩容。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'idleTimeoutSeconds' => [ - 'title' => '开启自动扩缩容后Worker节点Idle时间。', - 'description' => '开启自动扩缩容后Worker节点Idle时间。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '60', - ], - 'replica' => [ - 'title' => '节点数量。', - 'description' => '节点数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'orderId' => ['description' => '订单ID。', 'type' => 'string', 'example' => '1005565802416783361'], ], ], - 'state' => [ - 'title' => '会话状态。'."\n" - .'- Starting:启动中。'."\n" - .'- Running:运行中。'."\n" - .'- Stopping:正在停止。'."\n" - .'- Stopped:已停止。'."\n" - .'- Error:已失败。', - 'description' => '会话状态。'."\n" - .'- Starting:启动中。'."\n" - .'- Running:运行中。'."\n" - .'- Stopping:正在停止。'."\n" - .'- Stopped:已停止。'."\n" - .'- Error:已失败。', - 'type' => 'string', - 'example' => 'Running', - 'enum' => [ - 'Starting', - 'Running', - 'Stopping', - 'Stopped', - 'Error', - ], - ], - 'creator' => [ - 'title' => '创建集群的用户UID。', - 'description' => '创建集群的用户UID。', - 'type' => 'string', - 'example' => '202077646755523991', - ], - 'creatorName' => [ - 'title' => '创建者昵称。', - 'description' => '创建者昵称。', - 'type' => 'string', - 'example' => 'Alice', - ], - 'modifier' => [ - 'title' => '集群更新者UID。', - 'description' => '集群更新者UID。', - 'type' => 'string', - 'example' => '202077646755523991', - ], - 'modifierName' => [ - 'title' => '修改者昵称。', - 'description' => '修改者昵称。', - 'type' => 'string', - 'example' => 'Alice', - ], - 'userId' => [ - 'title' => '创建者主账号ID。', - 'description' => '创建者主账号ID。', - 'type' => 'string', - 'example' => '123456789012', - ], - 'dashboardUrl' => [ - 'title' => 'Ray集群Dashboard链接。', - 'description' => 'Ray集群Dashboard链接。', - 'type' => 'string', - 'example' => 'https://emr-ray-gateway-cn-hangzhou.aliyuncs.com/workspace/w-xxxxxxxx/raycluster/ray-xxxxxx/dashboard?token=xxxxxx', - ], - 'jobUrl' => [ - 'title' => '提交Ray Job的地址。', - 'description' => '提交Ray Job的地址(公网)。', - 'type' => 'string', - 'example' => 'https://emr-spark-ray-gateway-cn-hangzhou.aliyuncs.com', - ], - 'submitToken' => [ - 'title' => '提交Ray Job时的鉴权Token。', - 'description' => '提交Ray Job时的鉴权Token,需要放到请求头中,"ray-token": "token"。', - 'type' => 'string', - 'example' => '1d06484d3b424f7fa4ab7082a4076da2', - ], - 'modified' => [ - 'title' => '配置是否修改过。', - 'description' => '配置是否修改过。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'extraParam' => [ - 'title' => '额外参数,json格式。', - 'description' => '额外参数,json格式。', - 'type' => 'string', - 'example' => '{}', - ], - 'message' => [ - 'title' => '状态为Error时的错误信息。', - 'description' => '状态为Error时的错误信息。', - 'type' => 'string', - 'example' => 'ok', - ], - 'instances' => [ - 'title' => 'Ray集群节点ID。', - 'description' => 'Ray集群节点ID。', - 'type' => 'array', - 'items' => [ - 'title' => 'Ray集群节点结构体。', - 'description' => 'Ray集群节点结构体。', - 'type' => 'object', - 'properties' => [ - 'type' => [ - 'title' => '节点类型。', - 'description' => '节点类型。', - 'type' => 'string', - 'example' => 'Head', - ], - 'instanceId' => [ - 'title' => '节点ID。', - 'description' => '节点ID。', - 'type' => 'string', - 'example' => 'ray-uiulpgow9xljim10-head-7cgta', - ], - 'containerState' => [ - 'title' => '主容器状态。', - 'description' => '主容器状态。', - 'type' => 'string', - 'example' => 'Running', - ], - 'reason' => [ - 'title' => '节点信息。', - 'description' => '节点信息。', - 'type' => 'string', - 'example' => 'OOMKilled', - ], - 'phase' => [ - 'title' => '节点Pod状态。', - 'description' => '节点Pod状态。', - 'type' => 'string', - 'example' => 'Running', - ], - 'message' => [ - 'title' => '节点Pod状态信息。', - 'description' => '节点Pod状态信息。', - 'type' => 'string', - 'example' => 'ok', - ], - 'startTime' => [ - 'title' => '启动时间。', - 'description' => '启动时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1762946698000', - ], - 'createTime' => [ - 'title' => '创建时间。', - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1735870116167', - ], - 'containerStateReason' => [ - 'title' => '主容器信息。', - 'description' => '主容器信息。', - 'type' => 'string', - 'example' => 'ok', - ], - 'containerStateMessage' => [ - 'title' => '主容器状态信息。', - 'description' => '主容器状态信息。', - 'type' => 'string', - 'example' => 'ContainerExit', - ], - 'containerExitCode' => [ - 'title' => '主容器退出码。', - 'description' => '主容器退出码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '137', - ], - ], - ], - ], - 'instanceId' => [ - 'title' => 'Ray集群节点ID。', - 'description' => 'Ray集群节点ID。', - 'type' => 'string', - 'example' => 'ray-k7nm8ahl5te4tg93-xxxxxxx', - ], - 'workerSpec' => [ - 'title' => 'Ray集群Worker节点信息。', - 'description' => 'Ray集群Worker节点信息。', - 'type' => 'array', - 'items' => [ - 'title' => 'Ray集群Worker节点信息结构体。', - 'description' => 'Ray集群Worker节点信息结构体。', - 'type' => 'object', - 'properties' => [ - 'groupName' => [ - 'title' => 'Worker节点组名称。', - 'description' => 'Worker节点组名称。', - 'type' => 'string', - 'example' => 'WorkerGroup1', - ], - 'workerType' => [ - 'title' => 'Worker节点组类型。', - 'description' => 'Worker节点组类型。', - 'type' => 'string', - 'example' => 'CPU', - 'enum' => [ - 'CPU', - ], - ], - 'replica' => [ - 'title' => 'Worker节点数量。', - 'description' => 'Worker节点数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'queueName' => [ - 'title' => '队列名称。', - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'root_queue', - ], - 'cpu' => [ - 'title' => 'CPU核数。', - 'description' => 'CPU核数。', - 'type' => 'string', - 'example' => '2', - ], - 'memory' => [ - 'title' => '内存,单位Gi。', - 'description' => '内存,单位Gi。', - 'type' => 'string', - 'example' => '8Gi', - ], - 'minReplica' => [ - 'title' => 'Worker最小数量', - 'description' => 'Worker最小数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'maxReplica' => [ - 'title' => 'Worker最大数量', - 'description' => 'Worker最大数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - ], - ], - ], - 'startTime' => [ - 'title' => '启动时间,Unix时间戳,单位毫秒。', - 'description' => '启动时间,Unix时间戳,单位毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1750327083303', - ], - 'createTime' => [ - 'title' => '创建时间,Unix时间戳,单位毫秒。', - 'description' => '创建时间,Unix时间戳,单位毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1750327083303', - ], - 'modifiedTime' => [ - 'title' => '更新时间,Unix时间戳,单位毫秒。', - 'description' => '更新时间,Unix时间戳,单位毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1754274541693', - ], - 'grpcEndpoint' => [ - 'title' => 'gRPC连接地址。', - 'description' => 'gRPC连接地址(内网),其中的域名也可以用作提交ray job。', - 'type' => 'string', - 'example' => 'ray://emr-spark-ray-gateway-cn-hangzhou-internal.emr.aliyuncs.com:80', - ], + 'orderId' => ['description' => '订单ID', 'type' => 'string', 'example' => '979071171373334529'], ], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => '更新工作空间', + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"clusterId\\": \\"ray-k7nm8ahl5te4tg91\\",\\n \\"name\\": \\"myRayCluster\\",\\n \\"displayReleaseVersion\\": \\"ray-1.0.0 (Ray 2.47.1, Python 3.12)\\",\\n \\"description\\": \\"Ray Cluster for dev.\\",\\n \\"networkServiceName\\": \\"vpc\\",\\n \\"headSpec\\": {\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpu\\": \\"2\\",\\n \\"memory\\": \\"8Gi\\",\\n \\"enableAutoScaling\\": false,\\n \\"idleTimeoutSeconds\\": 60,\\n \\"replica\\": 1\\n },\\n \\"state\\": \\"Running\\",\\n \\"creator\\": \\"202077646755523991\\",\\n \\"creatorName\\": \\"Alice\\",\\n \\"modifier\\": \\"202077646755523991\\",\\n \\"modifierName\\": \\"Alice\\",\\n \\"userId\\": \\"123456789012\\",\\n \\"dashboardUrl\\": \\"https://emr-ray-gateway-cn-hangzhou.aliyuncs.com/workspace/w-xxxxxxxx/raycluster/ray-xxxxxx/dashboard?token=xxxxxx\\",\\n \\"jobUrl\\": \\"https://emr-spark-ray-gateway-cn-hangzhou.aliyuncs.com\\",\\n \\"submitToken\\": \\"1d06484d3b424f7fa4ab7082a4076da2\\",\\n \\"modified\\": false,\\n \\"extraParam\\": \\"{}\\",\\n \\"message\\": \\"ok\\",\\n \\"instances\\": [\\n {\\n \\"type\\": \\"Head\\",\\n \\"instanceId\\": \\"ray-uiulpgow9xljim10-head-7cgta\\",\\n \\"containerState\\": \\"Running\\",\\n \\"reason\\": \\"OOMKilled\\",\\n \\"phase\\": \\"Running\\",\\n \\"message\\": \\"ok\\",\\n \\"startTime\\": 1762946698000,\\n \\"createTime\\": 1735870116167,\\n \\"containerStateReason\\": \\"ok\\",\\n \\"containerStateMessage\\": \\"ContainerExit\\",\\n \\"containerExitCode\\": 137\\n }\\n ],\\n \\"instanceId\\": \\"ray-k7nm8ahl5te4tg93-xxxxxxx\\",\\n \\"workerSpec\\": [\\n {\\n \\"groupName\\": \\"WorkerGroup1\\",\\n \\"workerType\\": \\"CPU\\",\\n \\"replica\\": 2,\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpu\\": \\"2\\",\\n \\"memory\\": \\"8Gi\\",\\n \\"minReplica\\": 1,\\n \\"maxReplica\\": 10\\n }\\n ],\\n \\"startTime\\": 1750327083303,\\n \\"createTime\\": 1750327083303,\\n \\"modifiedTime\\": 1754274541693,\\n \\"grpcEndpoint\\": \\"ray://emr-spark-ray-gateway-cn-hangzhou-internal.emr.aliyuncs.com:80\\"\\n}","type":"json"}]', - 'title' => '获取Ray集群信息', + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:UpdateWorkspace', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"data\\": {\\n \\"orderId\\": \\"1005565802416783361\\"\\n },\\n \\"orderId\\": \\"979071171373334529\\"\\n}","type":"json"}]', ], - 'ListRayCluster' => [ - 'summary' => '列出Ray集群。', - 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster', - 'methods' => [ - 'get', + ], + 'endpoints' => [ + ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.cn-beijing.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.cn-beijing.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-zhangjiakou', 'regionName' => '华北3(张家口)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.cn-zhangjiakou.aliyuncs.com'], + ['regionId' => 'cn-wulanchabu', 'regionName' => '华北6(乌兰察布)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.cn-wulanchabu.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.cn-wulanchabu.aliyuncs.com'], + ['regionId' => 'cn-hangzhou', 'regionName' => '华东1(杭州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.cn-hangzhou.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.cn-hangzhou.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.cn-hangzhou.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.cn-shanghai.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.cn-shanghai.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.cn-shenzhen.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.cn-shenzhen.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'cn-chengdu', 'regionName' => '西南1(成都)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.cn-chengdu.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.cn-chengdu.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.cn-chengdu.aliyuncs.com'], + ['regionId' => 'cn-hongkong', 'regionName' => '中国香港', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.cn-hongkong.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.cn-hongkong.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.cn-hongkong.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'regionName' => '日本(东京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.ap-northeast-1.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.ap-northeast-1.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.ap-southeast-1.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.ap-southeast-1.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-5', 'regionName' => '印度尼西亚(雅加达)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'emr-serverless-spark.ap-southeast-5.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.ap-southeast-5.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.ap-southeast-5.aliyuncs.com'], + ['regionId' => 'na-south-1', 'regionName' => '墨西哥', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'emr-serverless-spark.na-south-1.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.na-south-1.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'eu-central-1', 'regionName' => '德国(法兰克福)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'emr-serverless-spark.eu-central-1.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.eu-central-1.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.eu-central-1.aliyuncs.com'], + ['regionId' => 'us-west-1', 'regionName' => '美国(硅谷)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'emr-serverless-spark.us-west-1.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.us-west-1.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.us-west-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'regionName' => '美国(弗吉尼亚)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'emr-serverless-spark.us-east-1.aliyuncs.com', 'endpoint' => 'emr-serverless-spark.us-east-1.aliyuncs.com', 'vpc' => 'emr-serverless-spark-vpc.us-east-1.aliyuncs.com'], + ], + 'errorCodes' => [], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], + ['threshold' => '300', 'countWindow' => 60, 'regionId' => '*', 'api' => 'StartSessionCluster'], + ], + ], + 'ram' => [ + 'productCode' => 'EmrServerlessSpark', + 'productName' => '开源大数据平台 E-MapReduce', + 'ramCodes' => ['emr-serverless-spark'], + 'ramLevel' => '操作级', + 'ramConditions' => [], + 'ramActions' => [ + [ + 'apiName' => 'UpdateWorkspace', + 'description' => '更新工作空间', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:UpdateWorkspace', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'GetRayJob', + 'description' => '获取Ray Job信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetRayJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetRayCluster', + 'description' => '获取Ray集群信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetRayCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'consumes' => [ - 'application/json', + [ + 'apiName' => 'GetAICenterState', + 'description' => '获取AI中心状态', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetAICenterState', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'produces' => [ - 'application/json', + [ + 'apiName' => 'GetSessionCluster', + 'description' => '获取会话详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetSessionCluster', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'ListKyuubiServices', + 'description' => '列出Kyuubi Gateway信息', 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce8QU4HW', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListKyuubiServices', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'title' => '工作空间ID。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155', + [ + 'apiName' => 'SubmitRayJob', + 'description' => '提交Ray任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:SubmitRayJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'pageSize', - 'in' => 'query', - 'schema' => [ - 'title' => '返回结果的分页数。默认值:20。', - 'description' => '返回结果的分页数。默认值:20,最小1,最大100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', + ], + [ + 'apiName' => 'UpdateRayCluster', + 'description' => '更新Ray集群', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:UpdateRayCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'pageNum', - 'in' => 'query', - 'schema' => [ - 'title' => '页码。', - 'description' => '页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + ], + [ + 'apiName' => 'ListLivyComputeToken', + 'description' => '列出Livy Gateway的Token', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListLivyComputeToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944', - ], - 'rayClusters' => [ - 'title' => 'Ray集群列表。', - 'description' => 'Ray集群列表。', - 'type' => 'array', - 'items' => [ - 'title' => 'Ray集群结构体。', - 'description' => 'Ray集群结构体。', - 'type' => 'object', - 'properties' => [ - 'clusterId' => [ - 'title' => '集群ID。', - 'description' => '集群ID。', - 'type' => 'string', - 'example' => 'ray-uiulpgow9xljimm1', - ], - 'name' => [ - 'title' => 'Ray集群名称。', - 'description' => 'Ray集群名称。', - 'type' => 'string', - 'example' => 'testRayCluster', - ], - 'displayReleaseVersion' => [ - 'title' => 'Ray引擎版本。', - 'description' => 'Ray引擎版本。', - 'type' => 'string', - 'example' => 'ray-1.0.0 (Ray 2.47.1, Python 3.12)', - ], - 'description' => [ - 'title' => '描述。', - 'description' => '描述。', - 'type' => 'string', - 'example' => 'Ray Cluster for dev.', - ], - 'networkServiceName' => [ - 'title' => '网络连接名称。', - 'description' => '网络连接名称。', - 'type' => 'string', - 'example' => 'vpc', - ], - 'headSpec' => [ - 'title' => 'Ray集群Head节点信息。', - 'description' => 'Ray集群Head节点信息。', - 'type' => 'object', - 'properties' => [ - 'queueName' => [ - 'title' => '队列名称。', - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'root_queue', - ], - 'cpu' => [ - 'title' => 'CPU核数。', - 'description' => 'CPU核数。', - 'type' => 'string', - 'example' => '2', - ], - 'memory' => [ - 'title' => '内存,单位Gi。', - 'description' => '内存,单位Gi。', - 'type' => 'string', - 'example' => '8Gi', - ], - 'enableAutoScaling' => [ - 'title' => 'Worker节点是否开启自动扩缩容。', - 'description' => 'Worker节点是否开启自动扩缩容。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'idleTimeoutSeconds' => [ - 'title' => 'Worker节点Idle时间。', - 'description' => 'Worker节点Idle时间。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '60', - ], - 'replica' => [ - 'title' => '节点数量。', - 'description' => '节点数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - ], - ], - 'workerSpec' => [ - 'title' => 'Ray集群Worker信息。', - 'description' => 'Ray集群Worker信息。', - 'type' => 'array', - 'items' => [ - 'title' => 'Ray集群Worker信息结构体。', - 'description' => 'Ray集群Worker信息结构体。', - 'type' => 'object', - 'properties' => [ - 'groupName' => [ - 'title' => 'Worker组名称。', - 'description' => 'Worker组名称。', - 'type' => 'string', - 'example' => 'Group1', - ], - 'workerType' => [ - 'title' => 'Worker类型。', - 'description' => 'Worker类型。', - 'type' => 'string', - 'example' => 'CPU', - 'enum' => [ - 'CPU', - ], - ], - 'replica' => [ - 'title' => '节点数量。', - 'description' => '节点数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'queueName' => [ - 'title' => '队列名称。', - 'description' => '队列名称。', - 'type' => 'string', - 'example' => 'root_queue', - ], - 'cpu' => [ - 'title' => 'CPU核数。', - 'description' => 'CPU核数。', - 'type' => 'string', - 'example' => '2', - ], - 'memory' => [ - 'title' => '内存,单位Gi。', - 'description' => '内存,单位Gi。', - 'type' => 'string', - 'example' => '8Gi', - ], - 'minReplica' => [ - 'title' => '开启自动扩缩容后最小Worker数量。', - 'description' => '开启自动扩缩容后最小Worker数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'maxReplica' => [ - 'title' => '开启自动扩缩容后最大Worker数量。', - 'description' => '开启自动扩缩容后最大Worker数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - ], - ], - ], - 'state' => [ - 'title' => '集群状态。'."\n" - .'- Starting:启动中。'."\n" - .'- Running:运行中。'."\n" - .'- Stopping:正在停止。'."\n" - .'- Stopped:已停止。'."\n" - .'- Error:已失败。', - 'description' => '集群状态。'."\n" - .'- Starting:启动中。'."\n" - .'- Running:运行中。'."\n" - .'- Stopping:正在停止。'."\n" - .'- Stopped:已停止。'."\n" - .'- Error:已失败。', - 'type' => 'string', - 'example' => 'Running', - 'enum' => [ - 'Starting', - 'Running', - 'Stopping', - 'Stopped', - 'Error', - ], - ], - 'createTime' => [ - 'title' => '创建时间。', - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1723722279800', - ], - 'modifiedTime' => [ - 'title' => '修改时间。', - 'description' => '修改时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1723722279800', - ], - 'creator' => [ - 'title' => '创建用户UID。', - 'description' => '创建用户UID。', - 'type' => 'string', - 'example' => '202077646755123991', - ], - 'creatorName' => [ - 'title' => '创建者昵称。', - 'description' => '创建者昵称。', - 'type' => 'string', - 'example' => 'Alice', - ], - 'modifier' => [ - 'title' => '最后更新者UID。', - 'description' => '最后更新者UID。', - 'type' => 'string', - 'example' => '202077646755123991', - ], - 'modifierName' => [ - 'title' => '修改者昵称。', - 'description' => '修改者昵称。', - 'type' => 'string', - 'example' => 'Alice', - ], - 'userId' => [ - 'title' => '主账号ID。', - 'description' => '主账号ID。', - 'type' => 'string', - 'example' => '1234567890', - ], - 'dashboardUrl' => [ - 'title' => 'Ray集群Dashboard链接。', - 'description' => 'Ray集群Dashboard链接。', - 'type' => 'string', - 'example' => 'https://emr-spark-ray-gateway-cn-hangzhou.aliyuncs.com?token=xxxxxxxxx', - ], - 'modified' => [ - 'title' => '配置是否修改过。', - 'description' => '配置是否修改过。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'message' => [ - 'title' => '错误信息。', - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'ok', - ], - 'instanceId' => [ - 'title' => 'Ray集群实例ID。', - 'description' => 'Ray集群实例ID。', - 'type' => 'string', - 'example' => 'ray-uiulpgow9xljimm1-xxxxxxx', - ], - 'startTime' => [ - 'title' => '启动时间。', - 'description' => '启动时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1723722279800', - ], - 'grpcEndpoint' => [ - 'title' => 'gRPC连接地址。', - 'description' => 'gRPC连接地址(内网),其中域名也可以提交ray job。', - 'type' => 'string', - 'example' => 'ray://emr-spark-ray-gateway-cn-hanghzou-internal.emr.aliyuncs.com:80', - ], - ], - ], - ], - ], + [ + 'apiName' => 'ListSessionClusters', + 'description' => '获取会话列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListSessionClusters', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', - ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"rayClusters\\": [\\n {\\n \\"clusterId\\": \\"ray-uiulpgow9xljimm1\\",\\n \\"name\\": \\"testRayCluster\\",\\n \\"displayReleaseVersion\\": \\"ray-1.0.0 (Ray 2.47.1, Python 3.12)\\",\\n \\"description\\": \\"Ray Cluster for dev.\\",\\n \\"networkServiceName\\": \\"vpc\\",\\n \\"headSpec\\": {\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpu\\": \\"2\\",\\n \\"memory\\": \\"8Gi\\",\\n \\"enableAutoScaling\\": false,\\n \\"idleTimeoutSeconds\\": 60,\\n \\"replica\\": 1\\n },\\n \\"workerSpec\\": [\\n {\\n \\"groupName\\": \\"Group1\\",\\n \\"workerType\\": \\"CPU\\",\\n \\"replica\\": 2,\\n \\"queueName\\": \\"root_queue\\",\\n \\"cpu\\": \\"2\\",\\n \\"memory\\": \\"8Gi\\",\\n \\"minReplica\\": 1,\\n \\"maxReplica\\": 10\\n }\\n ],\\n \\"state\\": \\"Running\\",\\n \\"createTime\\": 1723722279800,\\n \\"modifiedTime\\": 1723722279800,\\n \\"creator\\": \\"202077646755123991\\",\\n \\"creatorName\\": \\"Alice\\",\\n \\"modifier\\": \\"202077646755123991\\",\\n \\"modifierName\\": \\"Alice\\",\\n \\"userId\\": \\"1234567890\\",\\n \\"dashboardUrl\\": \\"https://emr-spark-ray-gateway-cn-hangzhou.aliyuncs.com?token=xxxxxxxxx\\",\\n \\"modified\\": false,\\n \\"message\\": \\"ok\\",\\n \\"instanceId\\": \\"ray-uiulpgow9xljimm1-xxxxxxx\\",\\n \\"startTime\\": 1723722279800,\\n \\"grpcEndpoint\\": \\"ray://emr-spark-ray-gateway-cn-hanghzou-internal.emr.aliyuncs.com:80\\"\\n }\\n ]\\n}","type":"json"}]', - 'title' => '列出Ray集群', - ], - 'StopRayCluster' => [ - 'summary' => '停止Ray集群。', - 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster/{clusterId}/stop', - 'methods' => [ - 'post', + [ + 'apiName' => 'ListWorkspaces', + 'description' => '获取工作空间列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListWorkspaces', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'CreateSessionCluster', + 'description' => '创建会话', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateSessionCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListJobRuns', + 'description' => '获取Spark任务列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListJobRuns', + 'authLevel' => 'resource', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'consumes' => [ - 'application/json', + [ + 'apiName' => 'EditWorkspaceQueue', + 'description' => '编辑工作空间队列', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:EditWorkspaceQueue', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'produces' => [ - 'application/json', + [ + 'apiName' => 'GenerateTaskCodes', + 'description' => '生成工作流节点定义编码', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GenerateTaskCodes', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'ListKyuubiToken', + 'description' => '列出Kyuubi Gateway认证Token', 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce8QU4HW', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListKyuubiToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'title' => '工作空间ID。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155', + [ + 'apiName' => 'CancelKyuubiSparkApplication', + 'description' => '取消Kyuubi提交的Spark应用', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CancelKyuubiSparkApplication', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'clusterId', - 'in' => 'path', - 'schema' => [ - 'title' => 'Ray集群ID。', - 'description' => 'Ray集群ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ray-k7nm8ahl5te4tg91', + ], + [ + 'apiName' => 'CreateKyuubiService', + 'description' => '创建 Kyuubi Gateway', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateKyuubiService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'body', - 'in' => 'body', - 'style' => 'json', - 'schema' => [ - 'title' => '请求结构体。', - 'description' => '请求结构体。', - 'type' => 'object', - 'properties' => [ - 'instanceId' => [ - 'title' => 'Ray集群实例ID。', - 'description' => 'Ray集群实例ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ray-k7nm8ahl5te4tg91-ey7blpbg', - ], - ], - 'required' => false, + ], + [ + 'apiName' => 'GrantRoleToUsers', + 'description' => '赋予用户角色', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GrantRoleToUsers', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944', - ], - ], + [ + 'apiName' => 'GetJobRun', + 'description' => '获取Spark任务详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetJobRun', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'GetLivyComputeToken', + 'description' => '获取Livy Gateway的Token', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetLivyComputeToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\"\\n}","type":"json"}]', - 'title' => '停止Ray集群', - ], - 'StartRayCluster' => [ - 'summary' => '启动Ray集群。', - 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster/{clusterId}/start', - 'methods' => [ - 'post', + [ + 'apiName' => 'ListLogContents', + 'description' => '查询日志内容', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListLogContents', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'AddMembers', + 'description' => '添加成员', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:AddMembers', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UpdateProcessDefinitionWithSchedule', + 'description' => '更新工作流定义和调度', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:UpdateProcessDefinitionWithSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'consumes' => [ - 'application/json', + [ + 'apiName' => 'CreateProcessDefinitionWithSchedule', + 'description' => '创建工作流定义和调度', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateProcessDefinitionWithSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'produces' => [ - 'application/json', + [ + 'apiName' => 'StartProcessInstance', + 'description' => '手动运行工作流', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StartProcessInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'DeleteKyuubiToken', + 'description' => '删除Kyuubi Gateway认证Token', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:DeleteKyuubiToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'DeleteKyuubiService', + 'description' => '删除Kyuubi Gateway', 'operationType' => 'none', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce8QU4HW', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:DeleteKyuubiService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'title' => '工作空间ID。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155', + [ + 'apiName' => 'GetLivyCompute', + 'description' => '获取Livy Gateway信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'clusterId', - 'in' => 'path', - 'schema' => [ - 'title' => 'Ray集群ID。', - 'description' => 'Ray集群ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ray-uiulagow9xljimm0', + ], + [ + 'apiName' => 'DeleteLivyCompute', + 'description' => '删除Livy Gateway', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:DeleteLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'body', - 'in' => 'body', - 'style' => 'json', - 'schema' => [ - 'title' => '请求结构体', - 'description' => '请求结构体', - 'type' => 'object', - 'properties' => [ - 'clientToken' => [ - 'title' => '幂等校验TOKEN。', - 'description' => '幂等校验TOKEN。', - 'type' => 'string', - 'required' => false, - 'example' => 'c533e141-bf99-4236-8b6b-30e133db113c', - ], - ], - 'required' => false, + ], + [ + 'apiName' => 'GetDoctorApplication', + 'description' => '获取作业诊断信息', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetDoctorApplication', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => '8CE06D75-E6A2-505D-9B4B-31DEE3D98A04', - ], - ], + [ + 'apiName' => 'ListLivyComputeSessions', + 'description' => '列出Livy Gateway的历史Session', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListLivyComputeSessions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'ListJobExecutors', + 'description' => '作业Executor列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListJobExecutors', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"8CE06D75-E6A2-505D-9B4B-31DEE3D98A04\\"\\n}","type":"json"}]', - 'title' => '启动Ray集群', - ], - 'DeleteRayCluster' => [ - 'summary' => '删除Ray集群。', - 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster/{clusterId}', - 'methods' => [ - 'delete', + [ + 'apiName' => 'ListCatalogs', + 'description' => '查询数据目录列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListCatalogs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'ListSqlStatementContents', + 'description' => '查询SQL会话执行结果', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListSqlStatementContents', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'StartLivyCompute', + 'description' => '启动Livy Gateway', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StartLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'consumes' => [ - 'application/json', + [ + 'apiName' => 'CreateRayCluster', + 'description' => '创建Ray集群', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateRayCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'produces' => [ - 'application/json', + [ + 'apiName' => 'ListRayCluster', + 'description' => '列出Ray集群', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListRayCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce8QU4HW', + [ + 'apiName' => 'GetCacheCluster', + 'description' => '获取Cache集群详情', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetCacheCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'title' => '工作空间ID。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-26ca1703f6d11', + [ + 'apiName' => 'StartKyuubiService', + 'description' => '启动Kyuubi Gateway', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StartKyuubiService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'clusterId', - 'in' => 'path', - 'schema' => [ - 'title' => 'Ray集群ID。', - 'description' => 'Ray集群ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'ray-k7nm8ahl5te4tg91', + ], + [ + 'apiName' => 'RefreshLivyComputeToken', + 'description' => '更新Livy Gateway的Token', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:RefreshLivyComputeToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944', - ], - ], + [ + 'apiName' => 'GetTemplate', + 'description' => '获取EMR Serverless Spark任务模板信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'UpdateKyuubiService', + 'description' => '更新Kyuubi Gateway', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:UpdateKyuubiService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\"\\n}","type":"json"}]', - 'title' => '删除Ray集群', - ], - 'CreateRayCluster' => [ - 'summary' => '创建Ray集群。', - 'path' => '/api/v1/workspaces/{workspaceId}/rayCluster', - 'methods' => [ - 'post', + [ + 'apiName' => 'DeleteLivyComputeToken', + 'description' => '删除Livy Gateway的Token', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:DeleteLivyComputeToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'ListTemplate', + 'description' => '获取工作空间配置模板列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'StartJobRun', + 'description' => '启动Spark任务', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StartJobRun', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'consumes' => [ - 'application/json', + [ + 'apiName' => 'GetRunConfiguration', + 'description' => '获取Spark任务配置', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetRunConfiguration', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'produces' => [ - 'application/json', + [ + 'apiName' => 'StopKyuubiService', + 'description' => '停止Kyuubi Gateway', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StopKyuubiService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'operationType' => 'write', - 'deprecated' => false, - 'systemTags' => [ + [ + 'apiName' => 'CreateKyuubiToken', + 'description' => '创建Kyuubi Gateway认证Token', 'operationType' => 'create', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeNodes' => [ - 'FEATUREemapreduce8QU4HW', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateKyuubiToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'workspaceId', - 'in' => 'path', - 'schema' => [ - 'title' => '工作空间ID。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155', + [ + 'apiName' => 'UpdateLivyCompute', + 'description' => '更新Livy Gateway', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:UpdateLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'body', - 'in' => 'body', - 'style' => 'json', - 'schema' => [ - 'title' => '请求结构体。', - 'description' => '请求结构体。', - 'type' => 'object', - 'properties' => [ - 'name' => [ - 'title' => 'Ray集群名称。', - 'description' => 'Ray集群名称,长度1到64。', - 'type' => 'string', - 'required' => false, - 'example' => 'testRayCluster', - ], - 'displayReleaseVersion' => [ - 'title' => 'Ray引擎版本。', - 'description' => 'Ray引擎版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'ray-1.0.0 (Ray 2.47.1, Python 3.12)', - ], - 'description' => [ - 'title' => '描述信息。', - 'description' => '描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'Ray Cluster for dev.', - ], - 'networkServiceName' => [ - 'title' => '网络连接名称。', - 'description' => '网络连接名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'vpc', - ], - 'headSpec' => [ - 'title' => 'Ray集群Head节点参数。', - 'description' => 'Ray集群Head节点参数。', - 'type' => 'object', - 'properties' => [ - 'queueName' => [ - 'title' => '队列名称。', - 'description' => '队列名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', - ], - 'cpu' => [ - 'title' => 'CPU核数。', - 'description' => 'CPU核数。', - 'type' => 'string', - 'required' => false, - 'example' => '2', - ], - 'memory' => [ - 'title' => '内存,单位Gi。', - 'description' => '内存,单位Gi。', - 'type' => 'string', - 'required' => false, - 'example' => '8Gi', - ], - 'enableAutoScaling' => [ - 'title' => '是否开启Worker自动扩缩容。', - 'description' => '是否开启Worker自动扩缩容。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - 'idleTimeoutSeconds' => [ - 'title' => '开启自动扩缩容后Worker Idle时间。', - 'description' => '开启自动扩缩容后Worker Idle时间。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '60', - ], - ], - 'required' => false, - ], - 'workerSpec' => [ - 'title' => 'Ray集群Worker节点参数。', - 'description' => 'Ray集群Worker节点参数,最多50组。', - 'type' => 'array', - 'items' => [ - 'title' => 'Worker节点结构体。', - 'description' => 'Worker节点结构体。', - 'type' => 'object', - 'properties' => [ - 'groupName' => [ - 'title' => 'Worker组名。', - 'description' => 'Worker组名。', - 'type' => 'string', - 'required' => false, - 'example' => 'WorkerGroup1', - ], - 'workerType' => [ - 'title' => 'Worker类型。', - 'description' => 'Worker类型。', - 'type' => 'string', - 'required' => false, - 'example' => 'CPU', - 'enum' => [ - 'CPU', - ], - ], - 'replica' => [ - 'title' => 'Worker数量。', - 'description' => 'Worker数量,最小1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], - 'queueName' => [ - 'title' => '队列名称。', - 'description' => '队列名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'root_queue', - ], - 'cpu' => [ - 'title' => 'CPU核数。', - 'description' => 'CPU核数。', - 'type' => 'string', - 'required' => false, - 'example' => '4', - ], - 'memory' => [ - 'title' => '内存,单位Gi。', - 'description' => '内存,单位Gi。', - 'type' => 'string', - 'required' => false, - 'example' => '16Gi', - ], - 'minReplica' => [ - 'title' => '开启自动扩缩容后最小Worker数量。', - 'description' => '开启自动扩缩容后最小Worker数量,最小1,必须小于等于maxReplica。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - 'maxReplica' => [ - 'title' => '开启自动扩缩容后最大Worker数量。', - 'description' => '开启自动扩缩容后最大Worker数量,最小1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - 'required' => false, - ], - 'required' => false, - ], - 'extraParam' => [ - 'title' => '额外参数,json格式。', - 'description' => '额外参数,必须为json格式。', - 'type' => 'string', - 'required' => false, - 'example' => '{}', - ], - ], - 'required' => false, + ], + [ + 'apiName' => 'CancelJobRun', + 'description' => '终止Spark任务', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CancelJobRun', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944', - ], - 'clusterId' => [ - 'title' => 'Ray集群ID。', - 'description' => 'Ray集群ID。', - 'type' => 'string', - 'example' => 'ray-k7nm8ahl5te4tg91', - ], - ], + [ + 'apiName' => 'StopSessionCluster', + 'description' => '终止会话', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StopSessionCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'CreateWorkspace', + 'description' => '创建工作空间', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateWorkspace', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944\\",\\n \\"clusterId\\": \\"ray-k7nm8ahl5te4tg91\\"\\n}","type":"json"}]', - 'title' => '创建Ray集群', - ], - 'ListCatalogs' => [ - 'summary' => '查看数据目录列表', - 'path' => '/api/v1/workspaces/{workspaceId}/catalogs', - 'methods' => [ - 'get', + [ + 'apiName' => 'ListWorkspaceQueues', + 'description' => '获取工作空间队列列表', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListWorkspaceQueues', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'GetKyuubiToken', + 'description' => '获取Kyuubi Gateway认证Token', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetKyuubiToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'StartSessionCluster', + 'description' => '启动会话', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StartSessionCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateLivyCompute', + 'description' => '创建Livy Gateway', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetKyuubiService', + 'description' => '获取 Kyuubi Gateway', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetKyuubiService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'consumes' => [ - 'application/json', + [ + 'apiName' => 'StartRayCluster', + 'description' => '启动Ray集群', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StartRayCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'produces' => [ - 'application/json', + [ + 'apiName' => 'ListKyuubiSparkApplications', + 'description' => '获取Kyuubi提交的Spark应用详情列表', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListKyuubiSparkApplications', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'operationType' => 'read', - 'systemTags' => [ + [ + 'apiName' => 'ListMembers', + 'description' => '获取成员列表', 'operationType' => 'list', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '213262', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceR6MU4Y', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListMembers', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'workspaceId', - 'in' => 'path', - 'allowEmptyValue' => false, - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-d2d82aa09155****', + [ + 'apiName' => 'ListRayJob', + 'description' => '列出Ray Job信息。', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListRayJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'environment', - 'in' => 'query', - 'schema' => [ - 'description' => '环境类型。', - 'type' => 'string', - 'required' => false, - 'enumValueTitles' => [ - 'dev' => 'dev', - 'production' => 'production', - ], - 'example' => 'dev', + ], + [ + 'apiName' => 'CreateNetworkService', + 'description' => '创建网络连接', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateNetworkService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'regionId', - 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'ListReleaseVersions', + 'description' => '获取spark版本列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListReleaseVersions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => '返回数据', - 'description' => '返回数据', - 'type' => 'object', - 'properties' => [ - 'catalogs' => [ - 'description' => '数据目录。', - 'type' => 'array', - 'items' => [ - 'description' => '数据目录。', - 'type' => 'object', - 'properties' => [ - 'catalogId' => [ - 'title' => 'regionId。', - 'description' => '数据目录ID。', - 'type' => 'string', - 'example' => '15097**********', - ], - 'workspaceId' => [ - 'title' => '工作空间id。', - 'description' => '工作空间ID。', - 'type' => 'string', - 'example' => 'w-d2d82aa09155****'."\n", - ], - 'environments' => [ - 'description' => '环境类型。', - 'type' => 'array', - 'items' => [ - 'description' => '环境类型。', - 'type' => 'string', - 'example' => 'dev,production', - ], - ], - 'catalogType' => [ - 'description' => '是否为默认数据目录。', - 'type' => 'string', - 'example' => 'default_catalog', - ], - 'catalogProvider' => [ - 'description' => '数据目录类型。', - 'type' => 'string', - 'example' => 'HMS', - ], - 'gmtCreate' => [ - 'description' => '创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1760604889', - ], - 'gmtModified' => [ - 'description' => '更新时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1760604889', - ], - 'resourceOwnerId' => [ - 'description' => '资源持有者ID。', - 'type' => 'string', - 'example' => '15097**********', - ], - 'alias' => [ - 'title' => 'alias', - 'description' => 'alias', - 'type' => 'string', - 'example' => 'alias', - ], - 'extras' => [ - 'description' => '额外信息。', - 'type' => 'object', - 'additionalProperties' => [ - 'type' => 'string', - 'description' => '额外信息。', - 'example' => '{"networkName":"hms","metastoreUrl":"thrift://master-1-1.c-70*********.cn-hangzhou.emr.aliyuncs.com:9083","keytabPath":"oss://********/hive.keytab","principal":"hive/master-1-1.c-70****************"}', - ], - ], - ], - ], - ], - 'requestId' => [ - 'title' => '请求ID。', - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****', - ], - 'nextToken' => [ - 'title' => '下一页TOKEN。', - 'description' => '下一页TOKEN。', - 'type' => 'string', - 'example' => '1', - ], - 'totalCount' => [ - 'title' => '记录总数。', - 'description' => '记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'maxResults' => [ - 'title' => '一次获取的最大记录数。', - 'description' => '一次获取的最大记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - ], + [ + 'apiName' => 'StopRayCluster', + 'description' => '停止Ray集群', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StopRayCluster', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'ListExecutorLogs', + 'description' => '获取Spark作业日志', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListExecutorLogs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"catalogs\\": [\\n {\\n \\"catalogId\\": \\"15097**********\\",\\n \\"workspaceId\\": \\"w-d2d82aa09155****\\\\n\\",\\n \\"environments\\": [\\n \\"dev,production\\"\\n ],\\n \\"catalogType\\": \\"default_catalog\\",\\n \\"catalogProvider\\": \\"HMS\\",\\n \\"gmtCreate\\": 1760604889,\\n \\"gmtModified\\": 1760604889,\\n \\"resourceOwnerId\\": \\"15097**********\\",\\n \\"alias\\": \\"alias\\",\\n \\"extras\\": {\\n \\"key\\": \\"{\\\\\\"networkName\\\\\\":\\\\\\"hms\\\\\\",\\\\\\"metastoreUrl\\\\\\":\\\\\\"thrift://master-1-1.c-70*********.cn-hangzhou.emr.aliyuncs.com:9083\\\\\\",\\\\\\"keytabPath\\\\\\":\\\\\\"oss://********/hive.keytab\\\\\\",\\\\\\"principal\\\\\\":\\\\\\"hive/master-1-1.c-70****************\\\\\\"}\\"\\n }\\n }\\n ],\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\",\\n \\"nextToken\\": \\"1\\",\\n \\"totalCount\\": 200,\\n \\"maxResults\\": 20\\n}","type":"json"}]', - 'title' => '查询数据目录列表', - ], - 'ListTemplate' => [ - 'summary' => '获取任务模板列表。', - 'path' => '/api/interactive/v1/workspace/{workspaceBizId}/template/listing', - 'methods' => [ - 'get', + [ + 'apiName' => 'CreateSqlStatement', + 'description' => '创建SQL查询', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateSqlStatement', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'https', + [ + 'apiName' => 'ActivateAICenter', + 'description' => '激活AI中心', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ActivateAICenter', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateLivyComputeToken', + 'description' => '创建Livy Gateway的Token', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:CreateLivyComputeToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'consumes' => [ - 'application/json', + [ + 'apiName' => 'UpdateKyuubiToken', + 'description' => '更新Kyuubi Gateway认证Token', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:UpdateKyuubiToken', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'produces' => [ - 'application/json', + [ + 'apiName' => 'StopLivyCompute', + 'description' => '停止Livy Gateway', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:StopLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - 'riskType' => 'none', - 'chargeType' => 'free', - 'abilityTreeCode' => '191100', - 'abilityTreeNodes' => [ - 'FEATUREemapreduceUECZZL', + [ + 'apiName' => 'ListLivyCompute', + 'description' => '列出Livy Gateway', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListLivyCompute', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'workspaceBizId', - 'in' => 'path', - 'schema' => [ - 'description' => '工作空间ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'w-8adde60aa809701f', + [ + 'apiName' => 'ListNetworkServices', + 'description' => '获取网络连接列表', + 'operationType' => 'list', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:ListNetworkServices', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'regionId', - 'in' => 'query', - 'schema' => [ - 'title' => '区域ID。', - 'description' => '区域ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-hangzhou', + ], + [ + 'apiName' => 'TerminateSqlStatement', + 'description' => '终止SQL查询', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:TerminateSqlStatement', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'title' => 'Schema of Response', - 'description' => 'Schema of Response', - 'type' => 'object', - 'properties' => [ - 'httpStatusCode' => [ - 'title' => 'Id of the request', - 'description' => 'http返回码。', - 'type' => 'string', - 'example' => '200', - ], - 'errorCode' => [ - 'description' => '- 当success为false,返回业务错误码。'."\n" - .' '."\n" - .'- 当success为true,返回空值。', - 'type' => 'string', - 'example' => 'ERR-00000000', - ], - 'errorMessage' => [ - 'description' => '- 当success为false,返回业务错误信息;'."\n" - ."\n" - .'- 当success为true,返回空值。', - 'type' => 'string', - 'example' => 'ok', - ], - 'data' => [ - 'description' => '数据列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'Spark任务模板对象。', - '$ref' => '#/components/schemas/Template', - ], - ], - 'success' => [ - 'description' => '请求是否成功。'."\n" - ."\n" - .'- true:成功'."\n" - ."\n" - .'- false:失败', - 'type' => 'boolean', - 'example' => 'true', - ], - 'requestId' => [ - 'description' => '请求ID。', - 'type' => 'string', - 'example' => 'DD6B1B2A-5837-5237-ABE4-FF0C8944****'."\n", - ], - ], + [ + 'apiName' => 'GetSqlStatement', + 'description' => '获取SQL查询详情', + 'operationType' => 'none', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetSqlStatement', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'staticInfo' => [ - 'returnType' => 'synchronous', + [ + 'apiName' => 'GetCuHours', + 'description' => '获取工作空间队列CU时', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'emr-serverless-spark:GetCuHours', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'EmrServerlessSpark', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"httpStatusCode\\": \\"200\\",\\n \\"errorCode\\": \\"ERR-00000000\\",\\n \\"errorMessage\\": \\"ok\\",\\n \\"data\\": [\\n {\\n \\"templateType\\": \\"\\",\\n \\"gmtModified\\": \\"\\",\\n \\"creator\\": 0,\\n \\"sparkLogLevel\\": \\"\\",\\n \\"gmtCreated\\": \\"\\",\\n \\"sparkDriverMemory\\": 0,\\n \\"modifier\\": 0,\\n \\"sparkExecutorCores\\": 0,\\n \\"sparkConf\\": [\\n {\\n \\"value\\": \\"\\",\\n \\"key\\": \\"\\"\\n }\\n ],\\n \\"sparkVersion\\": \\"\\",\\n \\"sparkExecutorMemory\\": 0,\\n \\"fusion\\": true,\\n \\"isDefault\\": true,\\n \\"sparkDriverCores\\": 0,\\n \\"displaySparkVersion\\": \\"\\",\\n \\"sparkLogPath\\": \\"\\",\\n \\"name\\": \\"\\",\\n \\"bizId\\": \\"\\"\\n }\\n ],\\n \\"success\\": true,\\n \\"requestId\\": \\"DD6B1B2A-5837-5237-ABE4-FF0C8944****\\\\n\\"\\n}","type":"json"}]', - 'title' => '获取工作空间配置模板列表', - ], - ], - 'endpoints' => [ - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'emr-serverless-spark.cn-beijing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-zhangjiakou', - 'endpoint' => 'emr-serverless-spark.cn-zhangjiakou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-wulanchabu', - 'endpoint' => 'emr-serverless-spark.cn-wulanchabu.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hangzhou', - 'endpoint' => 'emr-serverless-spark.cn-hangzhou.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'emr-serverless-spark.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'emr-serverless-spark.cn-shenzhen.aliyuncs.com', ], - [ - 'regionId' => 'cn-chengdu', - 'endpoint' => 'emr-serverless-spark.cn-chengdu.aliyuncs.com', - ], - [ - 'regionId' => 'cn-hongkong', - 'endpoint' => 'emr-serverless-spark.cn-hongkong.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'emr-serverless-spark.ap-northeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'emr-serverless-spark.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-5', - 'endpoint' => 'emr-serverless-spark.ap-southeast-5.aliyuncs.com', - ], - [ - 'regionId' => 'us-east-1', - 'endpoint' => 'emr-serverless-spark.us-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-west-1', - 'endpoint' => 'emr-serverless-spark.us-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'emr-serverless-spark.eu-central-1.aliyuncs.com', - ], - [ - 'regionId' => 'na-south-1', - 'endpoint' => 'emr-serverless-spark.na-south-1.aliyuncs.com', + 'resourceTypes' => [ + ['validationType' => 'always', 'resourceType' => 'Workspace', 'arn' => 'acs:emr:{#regionId}:{#accountId}:'], + ['validationType' => 'always', 'resourceType' => 'Workspace', 'arn' => 'acs:emrserverlessspark:{#regionId}:{#accountId}:workspace/{#WorkspaceId}'], + ['validationType' => 'always', 'resourceType' => 'Workspace', 'arn' => 'acs:emr-serverless-spark:{#regionId}:{#accountId}:workspace/*'], ], ], ]; |
