From 919ee6a1e233a60dc071c5f640fda7f7e1ca1778 Mon Sep 17 00:00:00 2001 From: haifengwang1987 Date: Sat, 29 Mar 2025 19:33:52 +0800 Subject: [PATCH] Support dynamic mounting of DSW NAS datasets, update pai-dsw sdk. --- .gitignore | 1 + pai/api/job.py | 1 - pai/api/workspace.py | 8 +- pai/common/utils.py | 20 +- pai/dsw.py | 59 +- .../alibabacloud_pai_dsw20220101/__init__.py | 2 +- .../alibabacloud_pai_dsw20220101/client.py | 3602 +++---- .../alibabacloud_pai_dsw20220101/models.py | 8291 ++++++----------- pai/session.py | 5 +- pai/toolkit/helper/utils.py | 5 +- 10 files changed, 4369 insertions(+), 7625 deletions(-) diff --git a/.gitignore b/.gitignore index c1f4183..d91f0fd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ __pycache__/ .DS_Store .idea/ .vscode/ +.lingma/ # C extensions diff --git a/pai/api/job.py b/pai/api/job.py index 143f0f9..62f7efd 100644 --- a/pai/api/job.py +++ b/pai/api/job.py @@ -183,7 +183,6 @@ def list_ecs_specs( page_size=10, sort_by="Gpu", ) -> PaginatedResult: - """List EcsSpecs that DLC service provided.""" request = ListEcsSpecsRequest( diff --git a/pai/api/workspace.py b/pai/api/workspace.py index df82788..949784d 100644 --- a/pai/api/workspace.py +++ b/pai/api/workspace.py @@ -216,9 +216,11 @@ def get_default_workspace(self) -> Dict[str, Any]: def list_configs(self, workspace_id, config_keys: Union[List[str], str]) -> Dict: """List configs used in the Workspace.""" request = ListConfigsRequest( - config_keys=",".join(config_keys) - if isinstance(config_keys, (tuple, list)) - else config_keys, + config_keys=( + ",".join(config_keys) + if isinstance(config_keys, (tuple, list)) + else config_keys + ), ) resp: ListConfigsResponseBody = self._do_request( diff --git a/pai/common/utils.py b/pai/common/utils.py index a326c51..1b17bb8 100644 --- a/pai/common/utils.py +++ b/pai/common/utils.py @@ -230,15 +230,33 @@ def is_dataset_id(item: str) -> bool: """Return True if given input is a dataset ID. Args: - item (str): user input dataset ID. + item (str): user input dataset ID or Dataset ID and dataset version, separated by a slash. Examples: >>> is_dataset_id('d-ybko3rap60c4gs9flc') True + >>> is_dataset_id('d-ybko3rap60c4gs9flc/v1') + True """ return item.startswith("d-") +def is_nas_uri(uri: Union[str, bytes]) -> bool: + """Determines whether the given uri is a NAS uri. + + Args: + uri (Union[str, bytes]): A string in NAS URI schema: + nas://29**d-b12****446.cn-hangzhou.nas.aliyuncs.com/data/path/ + nas://29****123-y**r.cn-hangzhou.extreme.nas.aliyuncs.com/data/path/ + + + Returns: + bool: True if the given uri is a NAS uri, else False. + + """ + return bool(uri and isinstance(uri, (str, bytes)) and str(uri).startswith("nas://")) + + @lru_cache() def is_domain_connectable(domain: str, port: int = 80, timeout: int = 1) -> bool: """Check if the domain is connectable.""" diff --git a/pai/dsw.py b/pai/dsw.py index 3a8e202..cf4ea8b 100644 --- a/pai/dsw.py +++ b/pai/dsw.py @@ -5,8 +5,9 @@ from .common.logging import get_logger from .common.oss_utils import OssUriObj, is_oss_uri -from .common.utils import is_dataset_id +from .common.utils import is_dataset_id, is_nas_uri from .libs.alibabacloud_pai_dsw20220101.models import ( + GetInstanceRequest, GetInstanceResponse, GetInstanceResponseBody, UpdateInstanceRequest, @@ -176,7 +177,8 @@ def __init__(self, instance_id: str): def _get_instance_info(self): session = get_default_session() resp: GetInstanceResponse = session._acs_dsw_client.get_instance( - self.instance_id + self.instance_id, + request=GetInstanceRequest(), ) return resp.body @@ -194,11 +196,10 @@ def default_dynamic_mount_path(self) -> Optional[str]: Returns: str: The default dynamic mount path of the DSW Instance. """ - if ( - not self._instance_info.dynamic_mount.enable - or not self._instance_info.dynamic_mount.mount_points - ): - return + if not self._instance_info.dynamic_mount.enable: + return None + if not self._instance_info.dynamic_mount.mount_points: + return "/mnt/dynamic" return self._instance_info.dynamic_mount.mount_points[0].root_path def mount( @@ -212,9 +213,9 @@ def mount( Dynamic mount a data source to the DSW Instance. Args: - source (str): The source to be mounted, can be a dataset id or an OSS uri. + source (str): The source to be mounted, can be a dataset id or OSS/NAS uri. mount_point (str): Target mount point in the instance, if not specified, the - mount point be generate with given source under the default mount point. + mount point be generated with given source under the default mount point. options (str): Options that apply to when mount a data source, can not be specified with option_type. option_type(str): Preset data source mount options, can not be specified with @@ -233,12 +234,6 @@ def mount( self.instance_id ) ) - if not self._instance_info.dynamic_mount.mount_points: - raise RuntimeError( - "No dynamic mount points found for the DSW instance: {}".format( - self.instance_id - ) - ) sess = get_default_session() default_root_path = self.default_dynamic_mount_path() @@ -251,23 +246,40 @@ def mount( _, dir_path, _ = obj.parse_object_key() uri = f"oss://{obj.bucket_name}.{obj.endpoint}{dir_path}" dataset_id = None + dataset_version = None + elif is_nas_uri(source): + uri = source + dataset_id = None + dataset_version = None else: dataset_id = source uri = None + if "/" in dataset_id: + dataset_id, dataset_version = dataset_id.split("/", 1) + else: + dataset_version = "v1" - if not is_oss_uri(source) and not is_dataset_id(source): - raise ValueError("Source must be oss uri or dataset id") + if ( + not is_oss_uri(source) + and not is_nas_uri(source) + and not is_dataset_id(source) + ): + raise ValueError("Source must be oss uri or nas uri or dataset id") if not mount_point: if is_oss_uri(source): obj = OssUriObj(source) mount_point = f"{obj.bucket_name}/{obj.object_key}" + elif is_nas_uri(source): + raise ValueError("Mount point is required for nas url.") else: mount_point = source if not posixpath.isabs(mount_point): mount_point = posixpath.join(default_root_path, mount_point) - resp: GetInstanceResponse = sess._acs_dsw_client.get_instance(self.instance_id) + resp: GetInstanceResponse = sess._acs_dsw_client.get_instance( + self.instance_id, request=GetInstanceRequest() + ) datasets = [ UpdateInstanceRequestDatasets().from_map(ds.to_map()) for ds in resp.body.datasets @@ -275,6 +287,7 @@ def mount( datasets.append( UpdateInstanceRequestDatasets( dataset_id=dataset_id, + dataset_version=dataset_version, dynamic=True, mount_path=mount_point, option_type=option_type, @@ -285,9 +298,10 @@ def mount( request = UpdateInstanceRequest( datasets=datasets, ) - sess._acs_dsw_client.update_instance( + update_resp = sess._acs_dsw_client.update_instance( instance_id=self.instance_id, request=request ) + print("Mount succeed, request id: {}".format(update_resp.body.request_id)) return mount_point def unmount(self, mount_point: str) -> None: @@ -302,7 +316,9 @@ def unmount(self, mount_point: str) -> None: """ sess = get_default_session() - resp: GetInstanceResponse = sess._acs_dsw_client.get_instance(self.instance_id) + resp: GetInstanceResponse = sess._acs_dsw_client.get_instance( + self.instance_id, request=GetInstanceRequest() + ) datasets = [ UpdateInstanceRequestDatasets().from_map(ds.to_map()) for ds in resp.body.datasets @@ -328,6 +344,7 @@ def unmount(self, mount_point: str) -> None: ) if not request.datasets: request.disassociate_datasets = True - sess._acs_dsw_client.update_instance( + update_resp = sess._acs_dsw_client.update_instance( instance_id=self.instance_id, request=request ) + print("Unmount succeed, request id: {}".format(update_resp.body.request_id)) diff --git a/pai/libs/alibabacloud_pai_dsw20220101/__init__.py b/pai/libs/alibabacloud_pai_dsw20220101/__init__.py index 078a161..e65073e 100644 --- a/pai/libs/alibabacloud_pai_dsw20220101/__init__.py +++ b/pai/libs/alibabacloud_pai_dsw20220101/__init__.py @@ -1 +1 @@ -__version__ = '1.5.4' \ No newline at end of file +__version__ = '1.5.11' \ No newline at end of file diff --git a/pai/libs/alibabacloud_pai_dsw20220101/client.py b/pai/libs/alibabacloud_pai_dsw20220101/client.py index 62fda8b..b7c7aff 100644 --- a/pai/libs/alibabacloud_pai_dsw20220101/client.py +++ b/pai/libs/alibabacloud_pai_dsw20220101/client.py @@ -41,254 +41,6 @@ def get_endpoint( return endpoint_map.get(region_id) return EndpointUtilClient.get_endpoint_rules(product_id, region_id, endpoint_rule, network, suffix) - def check_instance_existence_with_options( - self, - request: pai_dsw_20220101_models.CheckInstanceExistenceRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.CheckInstanceExistenceResponse: - """ - @summary 检查实例是否存在 - - @param request: CheckInstanceExistenceRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: CheckInstanceExistenceResponse - """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.instance_name): - body['InstanceName'] = request.instance_name - if not UtilClient.is_unset(request.workspace_id): - body['WorkspaceId'] = request.workspace_id - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) - ) - params = open_api_models.Params( - action='CheckInstanceExistence', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instances/action/checkexistence', - method='POST', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.CheckInstanceExistenceResponse(), - self.call_api(params, req, runtime) - ) - - async def check_instance_existence_with_options_async( - self, - request: pai_dsw_20220101_models.CheckInstanceExistenceRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.CheckInstanceExistenceResponse: - """ - @summary 检查实例是否存在 - - @param request: CheckInstanceExistenceRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: CheckInstanceExistenceResponse - """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.instance_name): - body['InstanceName'] = request.instance_name - if not UtilClient.is_unset(request.workspace_id): - body['WorkspaceId'] = request.workspace_id - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) - ) - params = open_api_models.Params( - action='CheckInstanceExistence', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instances/action/checkexistence', - method='POST', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.CheckInstanceExistenceResponse(), - await self.call_api_async(params, req, runtime) - ) - - def check_instance_existence( - self, - request: pai_dsw_20220101_models.CheckInstanceExistenceRequest, - ) -> pai_dsw_20220101_models.CheckInstanceExistenceResponse: - """ - @summary 检查实例是否存在 - - @param request: CheckInstanceExistenceRequest - @return: CheckInstanceExistenceResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.check_instance_existence_with_options(request, headers, runtime) - - async def check_instance_existence_async( - self, - request: pai_dsw_20220101_models.CheckInstanceExistenceRequest, - ) -> pai_dsw_20220101_models.CheckInstanceExistenceResponse: - """ - @summary 检查实例是否存在 - - @param request: CheckInstanceExistenceRequest - @return: CheckInstanceExistenceResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.check_instance_existence_with_options_async(request, headers, runtime) - - def create_endpoint_with_options( - self, - request: pai_dsw_20220101_models.CreateEndpointRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.CreateEndpointResponse: - """ - @summary 创建第三方AppEndpoint配置 - - @param request: CreateEndpointRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: CreateEndpointResponse - """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.action): - body['Action'] = request.action - if not UtilClient.is_unset(request.app): - body['App'] = request.app - if not UtilClient.is_unset(request.endpoint): - body['Endpoint'] = request.endpoint - if not UtilClient.is_unset(request.method): - body['Method'] = request.method - if not UtilClient.is_unset(request.path_name): - body['PathName'] = request.path_name - if not UtilClient.is_unset(request.protocol): - body['Protocol'] = request.protocol - if not UtilClient.is_unset(request.req_body_type): - body['ReqBodyType'] = request.req_body_type - if not UtilClient.is_unset(request.style): - body['Style'] = request.style - if not UtilClient.is_unset(request.timeout): - body['Timeout'] = request.timeout - if not UtilClient.is_unset(request.version): - body['Version'] = request.version - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) - ) - params = open_api_models.Params( - action='CreateEndpoint', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/inner/api/thirdParty/endpoints', - method='POST', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateEndpointResponse(), - self.call_api(params, req, runtime) - ) - - async def create_endpoint_with_options_async( - self, - request: pai_dsw_20220101_models.CreateEndpointRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.CreateEndpointResponse: - """ - @summary 创建第三方AppEndpoint配置 - - @param request: CreateEndpointRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: CreateEndpointResponse - """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.action): - body['Action'] = request.action - if not UtilClient.is_unset(request.app): - body['App'] = request.app - if not UtilClient.is_unset(request.endpoint): - body['Endpoint'] = request.endpoint - if not UtilClient.is_unset(request.method): - body['Method'] = request.method - if not UtilClient.is_unset(request.path_name): - body['PathName'] = request.path_name - if not UtilClient.is_unset(request.protocol): - body['Protocol'] = request.protocol - if not UtilClient.is_unset(request.req_body_type): - body['ReqBodyType'] = request.req_body_type - if not UtilClient.is_unset(request.style): - body['Style'] = request.style - if not UtilClient.is_unset(request.timeout): - body['Timeout'] = request.timeout - if not UtilClient.is_unset(request.version): - body['Version'] = request.version - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) - ) - params = open_api_models.Params( - action='CreateEndpoint', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/inner/api/thirdParty/endpoints', - method='POST', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateEndpointResponse(), - await self.call_api_async(params, req, runtime) - ) - - def create_endpoint( - self, - request: pai_dsw_20220101_models.CreateEndpointRequest, - ) -> pai_dsw_20220101_models.CreateEndpointResponse: - """ - @summary 创建第三方AppEndpoint配置 - - @param request: CreateEndpointRequest - @return: CreateEndpointResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.create_endpoint_with_options(request, headers, runtime) - - async def create_endpoint_async( - self, - request: pai_dsw_20220101_models.CreateEndpointRequest, - ) -> pai_dsw_20220101_models.CreateEndpointResponse: - """ - @summary 创建第三方AppEndpoint配置 - - @param request: CreateEndpointRequest - @return: CreateEndpointResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.create_endpoint_with_options_async(request, headers, runtime) - def create_idle_instance_culler_with_options( self, instance_id: str, @@ -325,10 +77,16 @@ def create_idle_instance_culler_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateIdleInstanceCullerResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.CreateIdleInstanceCullerResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.CreateIdleInstanceCullerResponse(), + self.execute(params, req, runtime) + ) async def create_idle_instance_culler_with_options_async( self, @@ -366,10 +124,16 @@ async def create_idle_instance_culler_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateIdleInstanceCullerResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.CreateIdleInstanceCullerResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.CreateIdleInstanceCullerResponse(), + await self.execute_async(params, req, runtime) + ) def create_idle_instance_culler( self, @@ -447,8 +211,8 @@ def create_instance_with_options( body['RequestedResource'] = request.requested_resource if not UtilClient.is_unset(request.resource_id): body['ResourceId'] = request.resource_id - if not UtilClient.is_unset(request.system_image_url): - body['SystemImageUrl'] = request.system_image_url + if not UtilClient.is_unset(request.tag): + body['Tag'] = request.tag if not UtilClient.is_unset(request.user_id): body['UserId'] = request.user_id if not UtilClient.is_unset(request.user_vpc): @@ -472,10 +236,16 @@ def create_instance_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateInstanceResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceResponse(), + self.execute(params, req, runtime) + ) async def create_instance_with_options_async( self, @@ -527,8 +297,8 @@ async def create_instance_with_options_async( body['RequestedResource'] = request.requested_resource if not UtilClient.is_unset(request.resource_id): body['ResourceId'] = request.resource_id - if not UtilClient.is_unset(request.system_image_url): - body['SystemImageUrl'] = request.system_image_url + if not UtilClient.is_unset(request.tag): + body['Tag'] = request.tag if not UtilClient.is_unset(request.user_id): body['UserId'] = request.user_id if not UtilClient.is_unset(request.user_vpc): @@ -552,10 +322,16 @@ async def create_instance_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateInstanceResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceResponse(), + await self.execute_async(params, req, runtime) + ) def create_instance( self, @@ -621,10 +397,16 @@ def create_instance_shutdown_timer_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateInstanceShutdownTimerResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceShutdownTimerResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceShutdownTimerResponse(), + self.execute(params, req, runtime) + ) async def create_instance_shutdown_timer_with_options_async( self, @@ -662,10 +444,16 @@ async def create_instance_shutdown_timer_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateInstanceShutdownTimerResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceShutdownTimerResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceShutdownTimerResponse(), + await self.execute_async(params, req, runtime) + ) def create_instance_shutdown_timer( self, @@ -741,10 +529,16 @@ def create_instance_snapshot_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateInstanceSnapshotResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceSnapshotResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceSnapshotResponse(), + self.execute(params, req, runtime) + ) async def create_instance_snapshot_with_options_async( self, @@ -790,10 +584,16 @@ async def create_instance_snapshot_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateInstanceSnapshotResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceSnapshotResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.CreateInstanceSnapshotResponse(), + await self.execute_async(params, req, runtime) + ) def create_instance_snapshot( self, @@ -825,1169 +625,1363 @@ async def create_instance_snapshot_async( headers = {} return await self.create_instance_snapshot_with_options_async(instance_id, request, headers, runtime) - def create_share_with_options( + def delete_idle_instance_culler_with_options( self, - request: pai_dsw_20220101_models.CreateShareRequest, + instance_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.CreateShareResponse: + ) -> pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse: """ - @param request: CreateShareRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: CreateShareResponse + @return: DeleteIdleInstanceCullerResponse """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.file_name): - body['FileName'] = request.file_name - if not UtilClient.is_unset(request.ttl): - body['Ttl'] = request.ttl - if not UtilClient.is_unset(request.version): - body['Version'] = request.version req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) + headers=headers ) params = open_api_models.Params( - action='CreateShare', + action='DeleteIdleInstanceCuller', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/shares', - method='POST', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/idleinstanceculler', + method='DELETE', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateShareResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse(), + self.execute(params, req, runtime) + ) - async def create_share_with_options_async( + async def delete_idle_instance_culler_with_options_async( self, - request: pai_dsw_20220101_models.CreateShareRequest, + instance_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.CreateShareResponse: + ) -> pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse: """ - @param request: CreateShareRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: CreateShareResponse + @return: DeleteIdleInstanceCullerResponse """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.file_name): - body['FileName'] = request.file_name - if not UtilClient.is_unset(request.ttl): - body['Ttl'] = request.ttl - if not UtilClient.is_unset(request.version): - body['Version'] = request.version req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) + headers=headers ) params = open_api_models.Params( - action='CreateShare', + action='DeleteIdleInstanceCuller', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/shares', - method='POST', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/idleinstanceculler', + method='DELETE', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateShareResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse(), + await self.execute_async(params, req, runtime) + ) - def create_share( + def delete_idle_instance_culler( self, - request: pai_dsw_20220101_models.CreateShareRequest, - ) -> pai_dsw_20220101_models.CreateShareResponse: + instance_id: str, + ) -> pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse: """ - @param request: CreateShareRequest - @return: CreateShareResponse + @return: DeleteIdleInstanceCullerResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.create_share_with_options(request, headers, runtime) + return self.delete_idle_instance_culler_with_options(instance_id, headers, runtime) - async def create_share_async( + async def delete_idle_instance_culler_async( self, - request: pai_dsw_20220101_models.CreateShareRequest, - ) -> pai_dsw_20220101_models.CreateShareResponse: + instance_id: str, + ) -> pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse: """ - @param request: CreateShareRequest - @return: CreateShareResponse + @return: DeleteIdleInstanceCullerResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.create_share_with_options_async(request, headers, runtime) + return await self.delete_idle_instance_culler_with_options_async(instance_id, headers, runtime) - def create_temp_file_with_options( + def delete_instance_with_options( self, - request: pai_dsw_20220101_models.CreateTempFileRequest, + instance_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.CreateTempFileResponse: + ) -> pai_dsw_20220101_models.DeleteInstanceResponse: """ - @summary 创建临时文件 + @summary 删除实例 - @param request: CreateTempFileRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: CreateTempFileResponse + @return: DeleteInstanceResponse """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.capacity): - body['Capacity'] = request.capacity - if not UtilClient.is_unset(request.instance_id): - body['InstanceId'] = request.instance_id - if not UtilClient.is_unset(request.name): - body['Name'] = request.name - if not UtilClient.is_unset(request.prefix): - body['Prefix'] = request.prefix - if not UtilClient.is_unset(request.task_id): - body['TaskId'] = request.task_id req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) + headers=headers ) params = open_api_models.Params( - action='CreateTempFile', + action='DeleteInstance', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/tempfiles', - method='POST', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}', + method='DELETE', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateTempFileResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceResponse(), + self.execute(params, req, runtime) + ) - async def create_temp_file_with_options_async( + async def delete_instance_with_options_async( self, - request: pai_dsw_20220101_models.CreateTempFileRequest, + instance_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.CreateTempFileResponse: + ) -> pai_dsw_20220101_models.DeleteInstanceResponse: """ - @summary 创建临时文件 + @summary 删除实例 - @param request: CreateTempFileRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: CreateTempFileResponse + @return: DeleteInstanceResponse """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.capacity): - body['Capacity'] = request.capacity - if not UtilClient.is_unset(request.instance_id): - body['InstanceId'] = request.instance_id - if not UtilClient.is_unset(request.name): - body['Name'] = request.name - if not UtilClient.is_unset(request.prefix): - body['Prefix'] = request.prefix - if not UtilClient.is_unset(request.task_id): - body['TaskId'] = request.task_id req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) + headers=headers ) params = open_api_models.Params( - action='CreateTempFile', + action='DeleteInstance', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/tempfiles', - method='POST', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}', + method='DELETE', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateTempFileResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceResponse(), + await self.execute_async(params, req, runtime) + ) - def create_temp_file( + def delete_instance( self, - request: pai_dsw_20220101_models.CreateTempFileRequest, - ) -> pai_dsw_20220101_models.CreateTempFileResponse: + instance_id: str, + ) -> pai_dsw_20220101_models.DeleteInstanceResponse: """ - @summary 创建临时文件 + @summary 删除实例 - @param request: CreateTempFileRequest - @return: CreateTempFileResponse + @return: DeleteInstanceResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.create_temp_file_with_options(request, headers, runtime) + return self.delete_instance_with_options(instance_id, headers, runtime) - async def create_temp_file_async( + async def delete_instance_async( self, - request: pai_dsw_20220101_models.CreateTempFileRequest, - ) -> pai_dsw_20220101_models.CreateTempFileResponse: + instance_id: str, + ) -> pai_dsw_20220101_models.DeleteInstanceResponse: """ - @summary 创建临时文件 + @summary 删除实例 - @param request: CreateTempFileRequest - @return: CreateTempFileResponse + @return: DeleteInstanceResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.create_temp_file_with_options_async(request, headers, runtime) + return await self.delete_instance_with_options_async(instance_id, headers, runtime) - def create_temp_file_task_with_options( + def delete_instance_labels_with_options( self, - request: pai_dsw_20220101_models.CreateTempFileTaskRequest, + instance_id: str, + request: pai_dsw_20220101_models.DeleteInstanceLabelsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.CreateTempFileTaskResponse: + ) -> pai_dsw_20220101_models.DeleteInstanceLabelsResponse: """ - @summary 创建临时文件任务 + @summary 删除DSW实例的标签 - @param request: CreateTempFileTaskRequest + @param request: DeleteInstanceLabelsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: CreateTempFileTaskResponse + @return: DeleteInstanceLabelsResponse """ UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.instance_id): - body['InstanceId'] = request.instance_id + query = {} + if not UtilClient.is_unset(request.label_keys): + query['LabelKeys'] = request.label_keys req = open_api_models.OpenApiRequest( headers=headers, - body=OpenApiUtilClient.parse_to_map(body) + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='CreateTempFileTask', + action='DeleteInstanceLabels', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/tempfiletasks', - method='POST', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/labels', + method='DELETE', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateTempFileTaskResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceLabelsResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceLabelsResponse(), + self.execute(params, req, runtime) + ) - async def create_temp_file_task_with_options_async( + async def delete_instance_labels_with_options_async( self, - request: pai_dsw_20220101_models.CreateTempFileTaskRequest, + instance_id: str, + request: pai_dsw_20220101_models.DeleteInstanceLabelsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.CreateTempFileTaskResponse: + ) -> pai_dsw_20220101_models.DeleteInstanceLabelsResponse: """ - @summary 创建临时文件任务 + @summary 删除DSW实例的标签 - @param request: CreateTempFileTaskRequest + @param request: DeleteInstanceLabelsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: CreateTempFileTaskResponse + @return: DeleteInstanceLabelsResponse """ UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.instance_id): - body['InstanceId'] = request.instance_id - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) + query = {} + if not UtilClient.is_unset(request.label_keys): + query['LabelKeys'] = request.label_keys + req = open_api_models.OpenApiRequest( + headers=headers, + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='CreateTempFileTask', + action='DeleteInstanceLabels', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/tempfiletasks', - method='POST', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/labels', + method='DELETE', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.CreateTempFileTaskResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceLabelsResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceLabelsResponse(), + await self.execute_async(params, req, runtime) + ) - def create_temp_file_task( + def delete_instance_labels( self, - request: pai_dsw_20220101_models.CreateTempFileTaskRequest, - ) -> pai_dsw_20220101_models.CreateTempFileTaskResponse: + instance_id: str, + request: pai_dsw_20220101_models.DeleteInstanceLabelsRequest, + ) -> pai_dsw_20220101_models.DeleteInstanceLabelsResponse: """ - @summary 创建临时文件任务 + @summary 删除DSW实例的标签 - @param request: CreateTempFileTaskRequest - @return: CreateTempFileTaskResponse + @param request: DeleteInstanceLabelsRequest + @return: DeleteInstanceLabelsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.create_temp_file_task_with_options(request, headers, runtime) + return self.delete_instance_labels_with_options(instance_id, request, headers, runtime) - async def create_temp_file_task_async( + async def delete_instance_labels_async( self, - request: pai_dsw_20220101_models.CreateTempFileTaskRequest, - ) -> pai_dsw_20220101_models.CreateTempFileTaskResponse: + instance_id: str, + request: pai_dsw_20220101_models.DeleteInstanceLabelsRequest, + ) -> pai_dsw_20220101_models.DeleteInstanceLabelsResponse: """ - @summary 创建临时文件任务 + @summary 删除DSW实例的标签 - @param request: CreateTempFileTaskRequest - @return: CreateTempFileTaskResponse + @param request: DeleteInstanceLabelsRequest + @return: DeleteInstanceLabelsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.create_temp_file_task_with_options_async(request, headers, runtime) + return await self.delete_instance_labels_with_options_async(instance_id, request, headers, runtime) - def delete_idle_instance_culler_with_options( + def delete_instance_shutdown_timer_with_options( self, instance_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse: + ) -> pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse: """ + @summary 删除定时关机任务 + @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteIdleInstanceCullerResponse + @return: DeleteInstanceShutdownTimerResponse """ req = open_api_models.OpenApiRequest( headers=headers ) params = open_api_models.Params( - action='DeleteIdleInstanceCuller', + action='DeleteInstanceShutdownTimer', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/idleinstanceculler', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/shutdowntimer', method='DELETE', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse(), + self.execute(params, req, runtime) + ) - async def delete_idle_instance_culler_with_options_async( + async def delete_instance_shutdown_timer_with_options_async( self, instance_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse: + ) -> pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse: """ + @summary 删除定时关机任务 + @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteIdleInstanceCullerResponse + @return: DeleteInstanceShutdownTimerResponse """ req = open_api_models.OpenApiRequest( headers=headers ) params = open_api_models.Params( - action='DeleteIdleInstanceCuller', + action='DeleteInstanceShutdownTimer', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/idleinstanceculler', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/shutdowntimer', method='DELETE', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse(), + await self.execute_async(params, req, runtime) + ) - def delete_idle_instance_culler( + def delete_instance_shutdown_timer( self, instance_id: str, - ) -> pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse: + ) -> pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse: """ - @return: DeleteIdleInstanceCullerResponse + @summary 删除定时关机任务 + + @return: DeleteInstanceShutdownTimerResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.delete_idle_instance_culler_with_options(instance_id, headers, runtime) + return self.delete_instance_shutdown_timer_with_options(instance_id, headers, runtime) - async def delete_idle_instance_culler_async( + async def delete_instance_shutdown_timer_async( self, instance_id: str, - ) -> pai_dsw_20220101_models.DeleteIdleInstanceCullerResponse: + ) -> pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse: """ - @return: DeleteIdleInstanceCullerResponse + @summary 删除定时关机任务 + + @return: DeleteInstanceShutdownTimerResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.delete_idle_instance_culler_with_options_async(instance_id, headers, runtime) + return await self.delete_instance_shutdown_timer_with_options_async(instance_id, headers, runtime) - def delete_instance_with_options( + def delete_instance_snapshot_with_options( self, instance_id: str, + snapshot_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteInstanceResponse: + ) -> pai_dsw_20220101_models.DeleteInstanceSnapshotResponse: """ - @summary 删除实例 + @summary 获取实例快照详情 @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteInstanceResponse + @return: DeleteInstanceSnapshotResponse """ req = open_api_models.OpenApiRequest( headers=headers ) params = open_api_models.Params( - action='DeleteInstance', + action='DeleteInstanceSnapshot', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/snapshots/{OpenApiUtilClient.get_encode_param(snapshot_id)}', method='DELETE', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteInstanceResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceSnapshotResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceSnapshotResponse(), + self.execute(params, req, runtime) + ) - async def delete_instance_with_options_async( + async def delete_instance_snapshot_with_options_async( self, instance_id: str, + snapshot_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteInstanceResponse: + ) -> pai_dsw_20220101_models.DeleteInstanceSnapshotResponse: """ - @summary 删除实例 + @summary 获取实例快照详情 @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteInstanceResponse + @return: DeleteInstanceSnapshotResponse """ req = open_api_models.OpenApiRequest( headers=headers ) params = open_api_models.Params( - action='DeleteInstance', + action='DeleteInstanceSnapshot', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/snapshots/{OpenApiUtilClient.get_encode_param(snapshot_id)}', method='DELETE', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteInstanceResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceSnapshotResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.DeleteInstanceSnapshotResponse(), + await self.execute_async(params, req, runtime) + ) - def delete_instance( + def delete_instance_snapshot( self, instance_id: str, - ) -> pai_dsw_20220101_models.DeleteInstanceResponse: + snapshot_id: str, + ) -> pai_dsw_20220101_models.DeleteInstanceSnapshotResponse: """ - @summary 删除实例 + @summary 获取实例快照详情 - @return: DeleteInstanceResponse + @return: DeleteInstanceSnapshotResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.delete_instance_with_options(instance_id, headers, runtime) + return self.delete_instance_snapshot_with_options(instance_id, snapshot_id, headers, runtime) - async def delete_instance_async( + async def delete_instance_snapshot_async( self, instance_id: str, - ) -> pai_dsw_20220101_models.DeleteInstanceResponse: + snapshot_id: str, + ) -> pai_dsw_20220101_models.DeleteInstanceSnapshotResponse: """ - @summary 删除实例 + @summary 获取实例快照详情 - @return: DeleteInstanceResponse + @return: DeleteInstanceSnapshotResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.delete_instance_with_options_async(instance_id, headers, runtime) + return await self.delete_instance_snapshot_with_options_async(instance_id, snapshot_id, headers, runtime) - def delete_instance_labels_with_options( + def get_idle_instance_culler_with_options( self, instance_id: str, - request: pai_dsw_20220101_models.DeleteInstanceLabelsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteInstanceLabelsResponse: + ) -> pai_dsw_20220101_models.GetIdleInstanceCullerResponse: """ - @summary 删除DSW实例的标签 - - @param request: DeleteInstanceLabelsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteInstanceLabelsResponse + @return: GetIdleInstanceCullerResponse """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.label_keys): - query['LabelKeys'] = request.label_keys req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) + headers=headers ) params = open_api_models.Params( - action='DeleteInstanceLabels', + action='GetIdleInstanceCuller', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/labels', - method='DELETE', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/idleinstanceculler', + method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteInstanceLabelsResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetIdleInstanceCullerResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetIdleInstanceCullerResponse(), + self.execute(params, req, runtime) + ) - async def delete_instance_labels_with_options_async( + async def get_idle_instance_culler_with_options_async( self, instance_id: str, - request: pai_dsw_20220101_models.DeleteInstanceLabelsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteInstanceLabelsResponse: + ) -> pai_dsw_20220101_models.GetIdleInstanceCullerResponse: """ - @summary 删除DSW实例的标签 - - @param request: DeleteInstanceLabelsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteInstanceLabelsResponse + @return: GetIdleInstanceCullerResponse """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.label_keys): - query['LabelKeys'] = request.label_keys req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) + headers=headers ) params = open_api_models.Params( - action='DeleteInstanceLabels', + action='GetIdleInstanceCuller', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/labels', - method='DELETE', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/idleinstanceculler', + method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteInstanceLabelsResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetIdleInstanceCullerResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetIdleInstanceCullerResponse(), + await self.execute_async(params, req, runtime) + ) - def delete_instance_labels( + def get_idle_instance_culler( self, instance_id: str, - request: pai_dsw_20220101_models.DeleteInstanceLabelsRequest, - ) -> pai_dsw_20220101_models.DeleteInstanceLabelsResponse: + ) -> pai_dsw_20220101_models.GetIdleInstanceCullerResponse: """ - @summary 删除DSW实例的标签 - - @param request: DeleteInstanceLabelsRequest - @return: DeleteInstanceLabelsResponse + @return: GetIdleInstanceCullerResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.delete_instance_labels_with_options(instance_id, request, headers, runtime) + return self.get_idle_instance_culler_with_options(instance_id, headers, runtime) - async def delete_instance_labels_async( + async def get_idle_instance_culler_async( self, instance_id: str, - request: pai_dsw_20220101_models.DeleteInstanceLabelsRequest, - ) -> pai_dsw_20220101_models.DeleteInstanceLabelsResponse: + ) -> pai_dsw_20220101_models.GetIdleInstanceCullerResponse: """ - @summary 删除DSW实例的标签 - - @param request: DeleteInstanceLabelsRequest - @return: DeleteInstanceLabelsResponse + @return: GetIdleInstanceCullerResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.delete_instance_labels_with_options_async(instance_id, request, headers, runtime) + return await self.get_idle_instance_culler_with_options_async(instance_id, headers, runtime) - def delete_instance_shutdown_timer_with_options( + def get_instance_with_options( self, instance_id: str, + request: pai_dsw_20220101_models.GetInstanceRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse: + ) -> pai_dsw_20220101_models.GetInstanceResponse: """ - @summary 删除定时关机任务 + @summary 获取实例详情 + @param request: GetInstanceRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteInstanceShutdownTimerResponse + @return: GetInstanceResponse """ + UtilClient.validate_model(request) + query = {} + if not UtilClient.is_unset(request.token): + query['Token'] = request.token req = open_api_models.OpenApiRequest( - headers=headers + headers=headers, + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='DeleteInstanceShutdownTimer', + action='GetInstance', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/shutdowntimer', - method='DELETE', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}', + method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceResponse(), + self.execute(params, req, runtime) + ) - async def delete_instance_shutdown_timer_with_options_async( + async def get_instance_with_options_async( self, instance_id: str, + request: pai_dsw_20220101_models.GetInstanceRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse: + ) -> pai_dsw_20220101_models.GetInstanceResponse: """ - @summary 删除定时关机任务 + @summary 获取实例详情 + @param request: GetInstanceRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteInstanceShutdownTimerResponse + @return: GetInstanceResponse """ + UtilClient.validate_model(request) + query = {} + if not UtilClient.is_unset(request.token): + query['Token'] = request.token req = open_api_models.OpenApiRequest( - headers=headers + headers=headers, + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='DeleteInstanceShutdownTimer', + action='GetInstance', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/shutdowntimer', - method='DELETE', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}', + method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceResponse(), + await self.execute_async(params, req, runtime) + ) - def delete_instance_shutdown_timer( + def get_instance( self, instance_id: str, - ) -> pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse: + request: pai_dsw_20220101_models.GetInstanceRequest, + ) -> pai_dsw_20220101_models.GetInstanceResponse: """ - @summary 删除定时关机任务 + @summary 获取实例详情 - @return: DeleteInstanceShutdownTimerResponse + @param request: GetInstanceRequest + @return: GetInstanceResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.delete_instance_shutdown_timer_with_options(instance_id, headers, runtime) + return self.get_instance_with_options(instance_id, request, headers, runtime) - async def delete_instance_shutdown_timer_async( + async def get_instance_async( self, instance_id: str, - ) -> pai_dsw_20220101_models.DeleteInstanceShutdownTimerResponse: + request: pai_dsw_20220101_models.GetInstanceRequest, + ) -> pai_dsw_20220101_models.GetInstanceResponse: """ - @summary 删除定时关机任务 + @summary 获取实例详情 - @return: DeleteInstanceShutdownTimerResponse + @param request: GetInstanceRequest + @return: GetInstanceResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.delete_instance_shutdown_timer_with_options_async(instance_id, headers, runtime) + return await self.get_instance_with_options_async(instance_id, request, headers, runtime) - def delete_instance_snapshot_with_options( + def get_instance_events_with_options( self, instance_id: str, - snapshot_id: str, + request: pai_dsw_20220101_models.GetInstanceEventsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteInstanceSnapshotResponse: + ) -> pai_dsw_20220101_models.GetInstanceEventsResponse: """ - @summary 获取实例快照详情 - + @param request: GetInstanceEventsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteInstanceSnapshotResponse + @return: GetInstanceEventsResponse """ + UtilClient.validate_model(request) + query = {} + if not UtilClient.is_unset(request.end_time): + query['EndTime'] = request.end_time + if not UtilClient.is_unset(request.max_events_num): + query['MaxEventsNum'] = request.max_events_num + if not UtilClient.is_unset(request.start_time): + query['StartTime'] = request.start_time + if not UtilClient.is_unset(request.token): + query['Token'] = request.token req = open_api_models.OpenApiRequest( - headers=headers + headers=headers, + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='DeleteInstanceSnapshot', + action='GetInstanceEvents', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/snapshots/{OpenApiUtilClient.get_encode_param(snapshot_id)}', - method='DELETE', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/events', + method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteInstanceSnapshotResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceEventsResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceEventsResponse(), + self.execute(params, req, runtime) + ) - async def delete_instance_snapshot_with_options_async( + async def get_instance_events_with_options_async( self, instance_id: str, - snapshot_id: str, + request: pai_dsw_20220101_models.GetInstanceEventsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteInstanceSnapshotResponse: + ) -> pai_dsw_20220101_models.GetInstanceEventsResponse: """ - @summary 获取实例快照详情 - + @param request: GetInstanceEventsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteInstanceSnapshotResponse + @return: GetInstanceEventsResponse """ + UtilClient.validate_model(request) + query = {} + if not UtilClient.is_unset(request.end_time): + query['EndTime'] = request.end_time + if not UtilClient.is_unset(request.max_events_num): + query['MaxEventsNum'] = request.max_events_num + if not UtilClient.is_unset(request.start_time): + query['StartTime'] = request.start_time + if not UtilClient.is_unset(request.token): + query['Token'] = request.token req = open_api_models.OpenApiRequest( - headers=headers + headers=headers, + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='DeleteInstanceSnapshot', + action='GetInstanceEvents', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/snapshots/{OpenApiUtilClient.get_encode_param(snapshot_id)}', - method='DELETE', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/events', + method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteInstanceSnapshotResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceEventsResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceEventsResponse(), + await self.execute_async(params, req, runtime) + ) - def delete_instance_snapshot( + def get_instance_events( self, instance_id: str, - snapshot_id: str, - ) -> pai_dsw_20220101_models.DeleteInstanceSnapshotResponse: + request: pai_dsw_20220101_models.GetInstanceEventsRequest, + ) -> pai_dsw_20220101_models.GetInstanceEventsResponse: """ - @summary 获取实例快照详情 - - @return: DeleteInstanceSnapshotResponse + @param request: GetInstanceEventsRequest + @return: GetInstanceEventsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.delete_instance_snapshot_with_options(instance_id, snapshot_id, headers, runtime) + return self.get_instance_events_with_options(instance_id, request, headers, runtime) - async def delete_instance_snapshot_async( + async def get_instance_events_async( self, instance_id: str, - snapshot_id: str, - ) -> pai_dsw_20220101_models.DeleteInstanceSnapshotResponse: + request: pai_dsw_20220101_models.GetInstanceEventsRequest, + ) -> pai_dsw_20220101_models.GetInstanceEventsResponse: """ - @summary 获取实例快照详情 - - @return: DeleteInstanceSnapshotResponse + @param request: GetInstanceEventsRequest + @return: GetInstanceEventsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.delete_instance_snapshot_with_options_async(instance_id, snapshot_id, headers, runtime) + return await self.get_instance_events_with_options_async(instance_id, request, headers, runtime) - def delete_temp_file_with_options( + def get_instance_metrics_with_options( self, - temp_file_id: str, + instance_id: str, + request: pai_dsw_20220101_models.GetInstanceMetricsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteTempFileResponse: + ) -> pai_dsw_20220101_models.GetInstanceMetricsResponse: """ - @summary 删除临时文件 - + @param request: GetInstanceMetricsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteTempFileResponse + @return: GetInstanceMetricsResponse """ + UtilClient.validate_model(request) + query = {} + if not UtilClient.is_unset(request.end_time): + query['EndTime'] = request.end_time + if not UtilClient.is_unset(request.metric_type): + query['MetricType'] = request.metric_type + if not UtilClient.is_unset(request.start_time): + query['StartTime'] = request.start_time + if not UtilClient.is_unset(request.time_step): + query['TimeStep'] = request.time_step req = open_api_models.OpenApiRequest( - headers=headers + headers=headers, + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='DeleteTempFile', + action='GetInstanceMetrics', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/tempfiles/{OpenApiUtilClient.get_encode_param(temp_file_id)}', - method='DELETE', + pathname=f'/api/v2/instance/{OpenApiUtilClient.get_encode_param(instance_id)}/metrics', + method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteTempFileResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceMetricsResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceMetricsResponse(), + self.execute(params, req, runtime) + ) - async def delete_temp_file_with_options_async( + async def get_instance_metrics_with_options_async( self, - temp_file_id: str, + instance_id: str, + request: pai_dsw_20220101_models.GetInstanceMetricsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteTempFileResponse: + ) -> pai_dsw_20220101_models.GetInstanceMetricsResponse: """ - @summary 删除临时文件 - + @param request: GetInstanceMetricsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteTempFileResponse + @return: GetInstanceMetricsResponse """ + UtilClient.validate_model(request) + query = {} + if not UtilClient.is_unset(request.end_time): + query['EndTime'] = request.end_time + if not UtilClient.is_unset(request.metric_type): + query['MetricType'] = request.metric_type + if not UtilClient.is_unset(request.start_time): + query['StartTime'] = request.start_time + if not UtilClient.is_unset(request.time_step): + query['TimeStep'] = request.time_step req = open_api_models.OpenApiRequest( - headers=headers + headers=headers, + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='DeleteTempFile', + action='GetInstanceMetrics', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/tempfiles/{OpenApiUtilClient.get_encode_param(temp_file_id)}', - method='DELETE', + pathname=f'/api/v2/instance/{OpenApiUtilClient.get_encode_param(instance_id)}/metrics', + method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteTempFileResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceMetricsResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceMetricsResponse(), + await self.execute_async(params, req, runtime) + ) - def delete_temp_file( + def get_instance_metrics( self, - temp_file_id: str, - ) -> pai_dsw_20220101_models.DeleteTempFileResponse: + instance_id: str, + request: pai_dsw_20220101_models.GetInstanceMetricsRequest, + ) -> pai_dsw_20220101_models.GetInstanceMetricsResponse: """ - @summary 删除临时文件 - - @return: DeleteTempFileResponse + @param request: GetInstanceMetricsRequest + @return: GetInstanceMetricsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.delete_temp_file_with_options(temp_file_id, headers, runtime) + return self.get_instance_metrics_with_options(instance_id, request, headers, runtime) - async def delete_temp_file_async( + async def get_instance_metrics_async( self, - temp_file_id: str, - ) -> pai_dsw_20220101_models.DeleteTempFileResponse: + instance_id: str, + request: pai_dsw_20220101_models.GetInstanceMetricsRequest, + ) -> pai_dsw_20220101_models.GetInstanceMetricsResponse: """ - @summary 删除临时文件 - - @return: DeleteTempFileResponse + @param request: GetInstanceMetricsRequest + @return: GetInstanceMetricsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.delete_temp_file_with_options_async(temp_file_id, headers, runtime) + return await self.get_instance_metrics_with_options_async(instance_id, request, headers, runtime) - def delete_temp_file_task_with_options( + def get_instance_shutdown_timer_with_options( self, - temp_file_task_id: str, + instance_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteTempFileTaskResponse: + ) -> pai_dsw_20220101_models.GetInstanceShutdownTimerResponse: """ - @summary 删除临时文件 + @summary 获取定时关机任务 @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteTempFileTaskResponse + @return: GetInstanceShutdownTimerResponse """ req = open_api_models.OpenApiRequest( headers=headers ) params = open_api_models.Params( - action='DeleteTempFileTask', + action='GetInstanceShutdownTimer', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/tempfiletasks/{OpenApiUtilClient.get_encode_param(temp_file_task_id)}', - method='DELETE', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/shutdowntimer', + method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteTempFileTaskResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceShutdownTimerResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceShutdownTimerResponse(), + self.execute(params, req, runtime) + ) - async def delete_temp_file_task_with_options_async( + async def get_instance_shutdown_timer_with_options_async( self, - temp_file_task_id: str, + instance_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.DeleteTempFileTaskResponse: + ) -> pai_dsw_20220101_models.GetInstanceShutdownTimerResponse: """ - @summary 删除临时文件 + @summary 获取定时关机任务 @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: DeleteTempFileTaskResponse + @return: GetInstanceShutdownTimerResponse """ req = open_api_models.OpenApiRequest( headers=headers ) params = open_api_models.Params( - action='DeleteTempFileTask', + action='GetInstanceShutdownTimer', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/tempfiletasks/{OpenApiUtilClient.get_encode_param(temp_file_task_id)}', - method='DELETE', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/shutdowntimer', + method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.DeleteTempFileTaskResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceShutdownTimerResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceShutdownTimerResponse(), + await self.execute_async(params, req, runtime) + ) - def delete_temp_file_task( + def get_instance_shutdown_timer( self, - temp_file_task_id: str, - ) -> pai_dsw_20220101_models.DeleteTempFileTaskResponse: + instance_id: str, + ) -> pai_dsw_20220101_models.GetInstanceShutdownTimerResponse: """ - @summary 删除临时文件 + @summary 获取定时关机任务 - @return: DeleteTempFileTaskResponse + @return: GetInstanceShutdownTimerResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.delete_temp_file_task_with_options(temp_file_task_id, headers, runtime) + return self.get_instance_shutdown_timer_with_options(instance_id, headers, runtime) - async def delete_temp_file_task_async( + async def get_instance_shutdown_timer_async( self, - temp_file_task_id: str, - ) -> pai_dsw_20220101_models.DeleteTempFileTaskResponse: + instance_id: str, + ) -> pai_dsw_20220101_models.GetInstanceShutdownTimerResponse: """ - @summary 删除临时文件 + @summary 获取定时关机任务 - @return: DeleteTempFileTaskResponse + @return: GetInstanceShutdownTimerResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.delete_temp_file_task_with_options_async(temp_file_task_id, headers, runtime) + return await self.get_instance_shutdown_timer_with_options_async(instance_id, headers, runtime) - def get_idle_instance_culler_with_options( + def get_instance_snapshot_with_options( self, instance_id: str, + snapshot_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetIdleInstanceCullerResponse: + ) -> pai_dsw_20220101_models.GetInstanceSnapshotResponse: """ + @summary 获取实例快照详情 + @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: GetIdleInstanceCullerResponse + @return: GetInstanceSnapshotResponse """ req = open_api_models.OpenApiRequest( headers=headers ) params = open_api_models.Params( - action='GetIdleInstanceCuller', + action='GetInstanceSnapshot', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/idleinstanceculler', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/snapshots/{OpenApiUtilClient.get_encode_param(snapshot_id)}', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetIdleInstanceCullerResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceSnapshotResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceSnapshotResponse(), + self.execute(params, req, runtime) + ) - async def get_idle_instance_culler_with_options_async( + async def get_instance_snapshot_with_options_async( self, instance_id: str, + snapshot_id: str, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetIdleInstanceCullerResponse: + ) -> pai_dsw_20220101_models.GetInstanceSnapshotResponse: """ + @summary 获取实例快照详情 + @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: GetIdleInstanceCullerResponse + @return: GetInstanceSnapshotResponse """ req = open_api_models.OpenApiRequest( headers=headers ) params = open_api_models.Params( - action='GetIdleInstanceCuller', + action='GetInstanceSnapshot', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/idleinstanceculler', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/snapshots/{OpenApiUtilClient.get_encode_param(snapshot_id)}', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetIdleInstanceCullerResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceSnapshotResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetInstanceSnapshotResponse(), + await self.execute_async(params, req, runtime) + ) - def get_idle_instance_culler( + def get_instance_snapshot( self, instance_id: str, - ) -> pai_dsw_20220101_models.GetIdleInstanceCullerResponse: + snapshot_id: str, + ) -> pai_dsw_20220101_models.GetInstanceSnapshotResponse: """ - @return: GetIdleInstanceCullerResponse + @summary 获取实例快照详情 + + @return: GetInstanceSnapshotResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.get_idle_instance_culler_with_options(instance_id, headers, runtime) + return self.get_instance_snapshot_with_options(instance_id, snapshot_id, headers, runtime) - async def get_idle_instance_culler_async( + async def get_instance_snapshot_async( self, instance_id: str, - ) -> pai_dsw_20220101_models.GetIdleInstanceCullerResponse: + snapshot_id: str, + ) -> pai_dsw_20220101_models.GetInstanceSnapshotResponse: """ - @return: GetIdleInstanceCullerResponse + @summary 获取实例快照详情 + + @return: GetInstanceSnapshotResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.get_idle_instance_culler_with_options_async(instance_id, headers, runtime) + return await self.get_instance_snapshot_with_options_async(instance_id, snapshot_id, headers, runtime) - def get_instance_with_options( + def get_lifecycle_with_options( self, instance_id: str, + request: pai_dsw_20220101_models.GetLifecycleRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetInstanceResponse: + ) -> pai_dsw_20220101_models.GetLifecycleResponse: """ - @summary 获取实例详情 - + @param request: GetLifecycleRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: GetInstanceResponse + @return: GetLifecycleResponse """ + UtilClient.validate_model(request) + query = {} + if not UtilClient.is_unset(request.end_time): + query['EndTime'] = request.end_time + if not UtilClient.is_unset(request.limit): + query['Limit'] = request.limit + if not UtilClient.is_unset(request.order): + query['Order'] = request.order + if not UtilClient.is_unset(request.session_number): + query['SessionNumber'] = request.session_number + if not UtilClient.is_unset(request.start_time): + query['StartTime'] = request.start_time + if not UtilClient.is_unset(request.token): + query['Token'] = request.token req = open_api_models.OpenApiRequest( - headers=headers + headers=headers, + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='GetInstance', + action='GetLifecycle', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/lifecycle', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetInstanceResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetLifecycleResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetLifecycleResponse(), + self.execute(params, req, runtime) + ) - async def get_instance_with_options_async( + async def get_lifecycle_with_options_async( self, instance_id: str, + request: pai_dsw_20220101_models.GetLifecycleRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetInstanceResponse: + ) -> pai_dsw_20220101_models.GetLifecycleResponse: """ - @summary 获取实例详情 - + @param request: GetLifecycleRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: GetInstanceResponse + @return: GetLifecycleResponse """ + UtilClient.validate_model(request) + query = {} + if not UtilClient.is_unset(request.end_time): + query['EndTime'] = request.end_time + if not UtilClient.is_unset(request.limit): + query['Limit'] = request.limit + if not UtilClient.is_unset(request.order): + query['Order'] = request.order + if not UtilClient.is_unset(request.session_number): + query['SessionNumber'] = request.session_number + if not UtilClient.is_unset(request.start_time): + query['StartTime'] = request.start_time + if not UtilClient.is_unset(request.token): + query['Token'] = request.token req = open_api_models.OpenApiRequest( - headers=headers + headers=headers, + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='GetInstance', + action='GetLifecycle', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}', + pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/lifecycle', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetInstanceResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetLifecycleResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetLifecycleResponse(), + await self.execute_async(params, req, runtime) + ) - def get_instance( + def get_lifecycle( self, instance_id: str, - ) -> pai_dsw_20220101_models.GetInstanceResponse: + request: pai_dsw_20220101_models.GetLifecycleRequest, + ) -> pai_dsw_20220101_models.GetLifecycleResponse: """ - @summary 获取实例详情 - - @return: GetInstanceResponse + @param request: GetLifecycleRequest + @return: GetLifecycleResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.get_instance_with_options(instance_id, headers, runtime) + return self.get_lifecycle_with_options(instance_id, request, headers, runtime) - async def get_instance_async( + async def get_lifecycle_async( self, instance_id: str, - ) -> pai_dsw_20220101_models.GetInstanceResponse: + request: pai_dsw_20220101_models.GetLifecycleRequest, + ) -> pai_dsw_20220101_models.GetLifecycleResponse: """ - @summary 获取实例详情 - - @return: GetInstanceResponse + @param request: GetLifecycleRequest + @return: GetLifecycleResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.get_instance_with_options_async(instance_id, headers, runtime) + return await self.get_lifecycle_with_options_async(instance_id, request, headers, runtime) - def get_instance_events_with_options( + def get_metrics_with_options( self, instance_id: str, - request: pai_dsw_20220101_models.GetInstanceEventsRequest, + request: pai_dsw_20220101_models.GetMetricsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetInstanceEventsResponse: + ) -> pai_dsw_20220101_models.GetMetricsResponse: """ - @param request: GetInstanceEventsRequest + @summary 获取metrics数据 + + @param request: GetMetricsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: GetInstanceEventsResponse + @return: GetMetricsResponse """ UtilClient.validate_model(request) query = {} + if not UtilClient.is_unset(request.dimensions): + query['Dimensions'] = request.dimensions if not UtilClient.is_unset(request.end_time): query['EndTime'] = request.end_time - if not UtilClient.is_unset(request.max_events_num): - query['MaxEventsNum'] = request.max_events_num + if not UtilClient.is_unset(request.length): + query['Length'] = request.length + if not UtilClient.is_unset(request.metric_name): + query['MetricName'] = request.metric_name + if not UtilClient.is_unset(request.namespace): + query['Namespace'] = request.namespace + if not UtilClient.is_unset(request.next_token): + query['NextToken'] = request.next_token + if not UtilClient.is_unset(request.period): + query['Period'] = request.period if not UtilClient.is_unset(request.start_time): query['StartTime'] = request.start_time req = open_api_models.OpenApiRequest( @@ -1995,40 +1989,58 @@ def get_instance_events_with_options( query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='GetInstanceEvents', + action='GetMetrics', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/events', + pathname=f'/api/v2/instance/{OpenApiUtilClient.get_encode_param(instance_id)}/cms/metrics', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetInstanceEventsResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetMetricsResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetMetricsResponse(), + self.execute(params, req, runtime) + ) - async def get_instance_events_with_options_async( + async def get_metrics_with_options_async( self, instance_id: str, - request: pai_dsw_20220101_models.GetInstanceEventsRequest, + request: pai_dsw_20220101_models.GetMetricsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetInstanceEventsResponse: + ) -> pai_dsw_20220101_models.GetMetricsResponse: """ - @param request: GetInstanceEventsRequest + @summary 获取metrics数据 + + @param request: GetMetricsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: GetInstanceEventsResponse + @return: GetMetricsResponse """ UtilClient.validate_model(request) query = {} + if not UtilClient.is_unset(request.dimensions): + query['Dimensions'] = request.dimensions if not UtilClient.is_unset(request.end_time): query['EndTime'] = request.end_time - if not UtilClient.is_unset(request.max_events_num): - query['MaxEventsNum'] = request.max_events_num + if not UtilClient.is_unset(request.length): + query['Length'] = request.length + if not UtilClient.is_unset(request.metric_name): + query['MetricName'] = request.metric_name + if not UtilClient.is_unset(request.namespace): + query['Namespace'] = request.namespace + if not UtilClient.is_unset(request.next_token): + query['NextToken'] = request.next_token + if not UtilClient.is_unset(request.period): + query['Period'] = request.period if not UtilClient.is_unset(request.start_time): query['StartTime'] = request.start_time req = open_api_models.OpenApiRequest( @@ -2036,842 +2048,232 @@ async def get_instance_events_with_options_async( query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='GetInstanceEvents', + action='GetMetrics', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/events', + pathname=f'/api/v2/instance/{OpenApiUtilClient.get_encode_param(instance_id)}/cms/metrics', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetInstanceEventsResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetMetricsResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetMetricsResponse(), + await self.execute_async(params, req, runtime) + ) - def get_instance_events( + def get_metrics( self, instance_id: str, - request: pai_dsw_20220101_models.GetInstanceEventsRequest, - ) -> pai_dsw_20220101_models.GetInstanceEventsResponse: + request: pai_dsw_20220101_models.GetMetricsRequest, + ) -> pai_dsw_20220101_models.GetMetricsResponse: """ - @param request: GetInstanceEventsRequest - @return: GetInstanceEventsResponse + @summary 获取metrics数据 + + @param request: GetMetricsRequest + @return: GetMetricsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.get_instance_events_with_options(instance_id, request, headers, runtime) + return self.get_metrics_with_options(instance_id, request, headers, runtime) - async def get_instance_events_async( + async def get_metrics_async( self, instance_id: str, - request: pai_dsw_20220101_models.GetInstanceEventsRequest, - ) -> pai_dsw_20220101_models.GetInstanceEventsResponse: + request: pai_dsw_20220101_models.GetMetricsRequest, + ) -> pai_dsw_20220101_models.GetMetricsResponse: """ - @param request: GetInstanceEventsRequest - @return: GetInstanceEventsResponse + @summary 获取metrics数据 + + @param request: GetMetricsRequest + @return: GetMetricsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.get_instance_events_with_options_async(instance_id, request, headers, runtime) + return await self.get_metrics_with_options_async(instance_id, request, headers, runtime) - def get_instance_metrics_with_options( + def get_resource_group_statistics_with_options( self, - instance_id: str, - request: pai_dsw_20220101_models.GetInstanceMetricsRequest, + request: pai_dsw_20220101_models.GetResourceGroupStatisticsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetInstanceMetricsResponse: + ) -> pai_dsw_20220101_models.GetResourceGroupStatisticsResponse: """ - @param request: GetInstanceMetricsRequest + @param request: GetResourceGroupStatisticsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: GetInstanceMetricsResponse + @return: GetResourceGroupStatisticsResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.end_time): query['EndTime'] = request.end_time - if not UtilClient.is_unset(request.metric_type): - query['MetricType'] = request.metric_type + if not UtilClient.is_unset(request.resource_id): + query['ResourceId'] = request.resource_id if not UtilClient.is_unset(request.start_time): query['StartTime'] = request.start_time - if not UtilClient.is_unset(request.time_step): - query['TimeStep'] = request.time_step + if not UtilClient.is_unset(request.workspace_ids): + query['WorkspaceIds'] = request.workspace_ids req = open_api_models.OpenApiRequest( headers=headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='GetInstanceMetrics', + action='GetResourceGroupStatistics', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instance/{OpenApiUtilClient.get_encode_param(instance_id)}/metrics', + pathname=f'/api/v2/resourcegroupstatistics', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetInstanceMetricsResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetResourceGroupStatisticsResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetResourceGroupStatisticsResponse(), + self.execute(params, req, runtime) + ) - async def get_instance_metrics_with_options_async( + async def get_resource_group_statistics_with_options_async( self, - instance_id: str, - request: pai_dsw_20220101_models.GetInstanceMetricsRequest, + request: pai_dsw_20220101_models.GetResourceGroupStatisticsRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetInstanceMetricsResponse: + ) -> pai_dsw_20220101_models.GetResourceGroupStatisticsResponse: """ - @param request: GetInstanceMetricsRequest + @param request: GetResourceGroupStatisticsRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: GetInstanceMetricsResponse + @return: GetResourceGroupStatisticsResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.end_time): query['EndTime'] = request.end_time - if not UtilClient.is_unset(request.metric_type): - query['MetricType'] = request.metric_type + if not UtilClient.is_unset(request.resource_id): + query['ResourceId'] = request.resource_id if not UtilClient.is_unset(request.start_time): query['StartTime'] = request.start_time - if not UtilClient.is_unset(request.time_step): - query['TimeStep'] = request.time_step + if not UtilClient.is_unset(request.workspace_ids): + query['WorkspaceIds'] = request.workspace_ids req = open_api_models.OpenApiRequest( headers=headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='GetInstanceMetrics', + action='GetResourceGroupStatistics', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instance/{OpenApiUtilClient.get_encode_param(instance_id)}/metrics', + pathname=f'/api/v2/resourcegroupstatistics', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetInstanceMetricsResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetResourceGroupStatisticsResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetResourceGroupStatisticsResponse(), + await self.execute_async(params, req, runtime) + ) - def get_instance_metrics( + def get_resource_group_statistics( self, - instance_id: str, - request: pai_dsw_20220101_models.GetInstanceMetricsRequest, - ) -> pai_dsw_20220101_models.GetInstanceMetricsResponse: + request: pai_dsw_20220101_models.GetResourceGroupStatisticsRequest, + ) -> pai_dsw_20220101_models.GetResourceGroupStatisticsResponse: """ - @param request: GetInstanceMetricsRequest - @return: GetInstanceMetricsResponse + @param request: GetResourceGroupStatisticsRequest + @return: GetResourceGroupStatisticsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.get_instance_metrics_with_options(instance_id, request, headers, runtime) + return self.get_resource_group_statistics_with_options(request, headers, runtime) - async def get_instance_metrics_async( + async def get_resource_group_statistics_async( self, - instance_id: str, - request: pai_dsw_20220101_models.GetInstanceMetricsRequest, - ) -> pai_dsw_20220101_models.GetInstanceMetricsResponse: + request: pai_dsw_20220101_models.GetResourceGroupStatisticsRequest, + ) -> pai_dsw_20220101_models.GetResourceGroupStatisticsResponse: """ - @param request: GetInstanceMetricsRequest - @return: GetInstanceMetricsResponse + @param request: GetResourceGroupStatisticsRequest + @return: GetResourceGroupStatisticsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.get_instance_metrics_with_options_async(instance_id, request, headers, runtime) + return await self.get_resource_group_statistics_with_options_async(request, headers, runtime) - def get_instance_shutdown_timer_with_options( + def get_token_with_options( self, - instance_id: str, + request: pai_dsw_20220101_models.GetTokenRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetInstanceShutdownTimerResponse: + ) -> pai_dsw_20220101_models.GetTokenResponse: """ - @summary 获取定时关机任务 - + @param request: GetTokenRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: GetInstanceShutdownTimerResponse + @return: GetTokenResponse """ + UtilClient.validate_model(request) + query = {} + if not UtilClient.is_unset(request.expire_time): + query['ExpireTime'] = request.expire_time + if not UtilClient.is_unset(request.instance_id): + query['InstanceId'] = request.instance_id req = open_api_models.OpenApiRequest( - headers=headers + headers=headers, + query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='GetInstanceShutdownTimer', + action='GetToken', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/shutdowntimer', + pathname=f'/api/v2/tokens', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetInstanceShutdownTimerResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetTokenResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetTokenResponse(), + self.execute(params, req, runtime) + ) - async def get_instance_shutdown_timer_with_options_async( + async def get_token_with_options_async( self, - instance_id: str, + request: pai_dsw_20220101_models.GetTokenRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetInstanceShutdownTimerResponse: + ) -> pai_dsw_20220101_models.GetTokenResponse: """ - @summary 获取定时关机任务 - + @param request: GetTokenRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: GetInstanceShutdownTimerResponse - """ - req = open_api_models.OpenApiRequest( - headers=headers - ) - params = open_api_models.Params( - action='GetInstanceShutdownTimer', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/shutdowntimer', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetInstanceShutdownTimerResponse(), - await self.call_api_async(params, req, runtime) - ) - - def get_instance_shutdown_timer( - self, - instance_id: str, - ) -> pai_dsw_20220101_models.GetInstanceShutdownTimerResponse: - """ - @summary 获取定时关机任务 - - @return: GetInstanceShutdownTimerResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.get_instance_shutdown_timer_with_options(instance_id, headers, runtime) - - async def get_instance_shutdown_timer_async( - self, - instance_id: str, - ) -> pai_dsw_20220101_models.GetInstanceShutdownTimerResponse: - """ - @summary 获取定时关机任务 - - @return: GetInstanceShutdownTimerResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.get_instance_shutdown_timer_with_options_async(instance_id, headers, runtime) - - def get_instance_snapshot_with_options( - self, - instance_id: str, - snapshot_id: str, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetInstanceSnapshotResponse: - """ - @summary 获取实例快照详情 - - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetInstanceSnapshotResponse - """ - req = open_api_models.OpenApiRequest( - headers=headers - ) - params = open_api_models.Params( - action='GetInstanceSnapshot', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/snapshots/{OpenApiUtilClient.get_encode_param(snapshot_id)}', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetInstanceSnapshotResponse(), - self.call_api(params, req, runtime) - ) - - async def get_instance_snapshot_with_options_async( - self, - instance_id: str, - snapshot_id: str, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetInstanceSnapshotResponse: - """ - @summary 获取实例快照详情 - - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetInstanceSnapshotResponse - """ - req = open_api_models.OpenApiRequest( - headers=headers - ) - params = open_api_models.Params( - action='GetInstanceSnapshot', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/snapshots/{OpenApiUtilClient.get_encode_param(snapshot_id)}', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetInstanceSnapshotResponse(), - await self.call_api_async(params, req, runtime) - ) - - def get_instance_snapshot( - self, - instance_id: str, - snapshot_id: str, - ) -> pai_dsw_20220101_models.GetInstanceSnapshotResponse: - """ - @summary 获取实例快照详情 - - @return: GetInstanceSnapshotResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.get_instance_snapshot_with_options(instance_id, snapshot_id, headers, runtime) - - async def get_instance_snapshot_async( - self, - instance_id: str, - snapshot_id: str, - ) -> pai_dsw_20220101_models.GetInstanceSnapshotResponse: - """ - @summary 获取实例快照详情 - - @return: GetInstanceSnapshotResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.get_instance_snapshot_with_options_async(instance_id, snapshot_id, headers, runtime) - - def get_lifecycle_with_options( - self, - instance_id: str, - request: pai_dsw_20220101_models.GetLifecycleRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetLifecycleResponse: - """ - @param request: GetLifecycleRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetLifecycleResponse - """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.end_time): - query['EndTime'] = request.end_time - if not UtilClient.is_unset(request.limit): - query['Limit'] = request.limit - if not UtilClient.is_unset(request.order): - query['Order'] = request.order - if not UtilClient.is_unset(request.session_number): - query['SessionNumber'] = request.session_number - if not UtilClient.is_unset(request.start_time): - query['StartTime'] = request.start_time - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='GetLifecycle', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/lifecycle', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetLifecycleResponse(), - self.call_api(params, req, runtime) - ) - - async def get_lifecycle_with_options_async( - self, - instance_id: str, - request: pai_dsw_20220101_models.GetLifecycleRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetLifecycleResponse: - """ - @param request: GetLifecycleRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetLifecycleResponse - """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.end_time): - query['EndTime'] = request.end_time - if not UtilClient.is_unset(request.limit): - query['Limit'] = request.limit - if not UtilClient.is_unset(request.order): - query['Order'] = request.order - if not UtilClient.is_unset(request.session_number): - query['SessionNumber'] = request.session_number - if not UtilClient.is_unset(request.start_time): - query['StartTime'] = request.start_time - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='GetLifecycle', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instances/{OpenApiUtilClient.get_encode_param(instance_id)}/lifecycle', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetLifecycleResponse(), - await self.call_api_async(params, req, runtime) - ) - - def get_lifecycle( - self, - instance_id: str, - request: pai_dsw_20220101_models.GetLifecycleRequest, - ) -> pai_dsw_20220101_models.GetLifecycleResponse: - """ - @param request: GetLifecycleRequest - @return: GetLifecycleResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.get_lifecycle_with_options(instance_id, request, headers, runtime) - - async def get_lifecycle_async( - self, - instance_id: str, - request: pai_dsw_20220101_models.GetLifecycleRequest, - ) -> pai_dsw_20220101_models.GetLifecycleResponse: - """ - @param request: GetLifecycleRequest - @return: GetLifecycleResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.get_lifecycle_with_options_async(instance_id, request, headers, runtime) - - def get_metrics_with_options( - self, - instance_id: str, - request: pai_dsw_20220101_models.GetMetricsRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetMetricsResponse: - """ - @summary 获取metrics数据 - - @param request: GetMetricsRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetMetricsResponse - """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.dimensions): - query['Dimensions'] = request.dimensions - if not UtilClient.is_unset(request.end_time): - query['EndTime'] = request.end_time - if not UtilClient.is_unset(request.length): - query['Length'] = request.length - if not UtilClient.is_unset(request.metric_name): - query['MetricName'] = request.metric_name - if not UtilClient.is_unset(request.namespace): - query['Namespace'] = request.namespace - if not UtilClient.is_unset(request.next_token): - query['NextToken'] = request.next_token - if not UtilClient.is_unset(request.period): - query['Period'] = request.period - if not UtilClient.is_unset(request.start_time): - query['StartTime'] = request.start_time - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='GetMetrics', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instance/{OpenApiUtilClient.get_encode_param(instance_id)}/cms/metrics', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetMetricsResponse(), - self.call_api(params, req, runtime) - ) - - async def get_metrics_with_options_async( - self, - instance_id: str, - request: pai_dsw_20220101_models.GetMetricsRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetMetricsResponse: - """ - @summary 获取metrics数据 - - @param request: GetMetricsRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetMetricsResponse - """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.dimensions): - query['Dimensions'] = request.dimensions - if not UtilClient.is_unset(request.end_time): - query['EndTime'] = request.end_time - if not UtilClient.is_unset(request.length): - query['Length'] = request.length - if not UtilClient.is_unset(request.metric_name): - query['MetricName'] = request.metric_name - if not UtilClient.is_unset(request.namespace): - query['Namespace'] = request.namespace - if not UtilClient.is_unset(request.next_token): - query['NextToken'] = request.next_token - if not UtilClient.is_unset(request.period): - query['Period'] = request.period - if not UtilClient.is_unset(request.start_time): - query['StartTime'] = request.start_time - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='GetMetrics', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instance/{OpenApiUtilClient.get_encode_param(instance_id)}/cms/metrics', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetMetricsResponse(), - await self.call_api_async(params, req, runtime) - ) - - def get_metrics( - self, - instance_id: str, - request: pai_dsw_20220101_models.GetMetricsRequest, - ) -> pai_dsw_20220101_models.GetMetricsResponse: - """ - @summary 获取metrics数据 - - @param request: GetMetricsRequest - @return: GetMetricsResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.get_metrics_with_options(instance_id, request, headers, runtime) - - async def get_metrics_async( - self, - instance_id: str, - request: pai_dsw_20220101_models.GetMetricsRequest, - ) -> pai_dsw_20220101_models.GetMetricsResponse: - """ - @summary 获取metrics数据 - - @param request: GetMetricsRequest - @return: GetMetricsResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.get_metrics_with_options_async(instance_id, request, headers, runtime) - - def get_resource_group_statistics_with_options( - self, - request: pai_dsw_20220101_models.GetResourceGroupStatisticsRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetResourceGroupStatisticsResponse: - """ - @param request: GetResourceGroupStatisticsRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetResourceGroupStatisticsResponse - """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.end_time): - query['EndTime'] = request.end_time - if not UtilClient.is_unset(request.resource_id): - query['ResourceId'] = request.resource_id - if not UtilClient.is_unset(request.start_time): - query['StartTime'] = request.start_time - if not UtilClient.is_unset(request.workspace_ids): - query['WorkspaceIds'] = request.workspace_ids - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='GetResourceGroupStatistics', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/resourcegroupstatistics', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetResourceGroupStatisticsResponse(), - self.call_api(params, req, runtime) - ) - - async def get_resource_group_statistics_with_options_async( - self, - request: pai_dsw_20220101_models.GetResourceGroupStatisticsRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetResourceGroupStatisticsResponse: - """ - @param request: GetResourceGroupStatisticsRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetResourceGroupStatisticsResponse - """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.end_time): - query['EndTime'] = request.end_time - if not UtilClient.is_unset(request.resource_id): - query['ResourceId'] = request.resource_id - if not UtilClient.is_unset(request.start_time): - query['StartTime'] = request.start_time - if not UtilClient.is_unset(request.workspace_ids): - query['WorkspaceIds'] = request.workspace_ids - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='GetResourceGroupStatistics', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/resourcegroupstatistics', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetResourceGroupStatisticsResponse(), - await self.call_api_async(params, req, runtime) - ) - - def get_resource_group_statistics( - self, - request: pai_dsw_20220101_models.GetResourceGroupStatisticsRequest, - ) -> pai_dsw_20220101_models.GetResourceGroupStatisticsResponse: - """ - @param request: GetResourceGroupStatisticsRequest - @return: GetResourceGroupStatisticsResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.get_resource_group_statistics_with_options(request, headers, runtime) - - async def get_resource_group_statistics_async( - self, - request: pai_dsw_20220101_models.GetResourceGroupStatisticsRequest, - ) -> pai_dsw_20220101_models.GetResourceGroupStatisticsResponse: - """ - @param request: GetResourceGroupStatisticsRequest - @return: GetResourceGroupStatisticsResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.get_resource_group_statistics_with_options_async(request, headers, runtime) - - def get_temp_file_with_options( - self, - temp_file_id: str, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetTempFileResponse: - """ - @summary 获取临时文件详情 - - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetTempFileResponse - """ - req = open_api_models.OpenApiRequest( - headers=headers - ) - params = open_api_models.Params( - action='GetTempFile', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/tempfiles/{OpenApiUtilClient.get_encode_param(temp_file_id)}', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetTempFileResponse(), - self.call_api(params, req, runtime) - ) - - async def get_temp_file_with_options_async( - self, - temp_file_id: str, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetTempFileResponse: - """ - @summary 获取临时文件详情 - - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetTempFileResponse - """ - req = open_api_models.OpenApiRequest( - headers=headers - ) - params = open_api_models.Params( - action='GetTempFile', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/tempfiles/{OpenApiUtilClient.get_encode_param(temp_file_id)}', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetTempFileResponse(), - await self.call_api_async(params, req, runtime) - ) - - def get_temp_file( - self, - temp_file_id: str, - ) -> pai_dsw_20220101_models.GetTempFileResponse: - """ - @summary 获取临时文件详情 - - @return: GetTempFileResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.get_temp_file_with_options(temp_file_id, headers, runtime) - - async def get_temp_file_async( - self, - temp_file_id: str, - ) -> pai_dsw_20220101_models.GetTempFileResponse: - """ - @summary 获取临时文件详情 - - @return: GetTempFileResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.get_temp_file_with_options_async(temp_file_id, headers, runtime) - - def get_token_with_options( - self, - request: pai_dsw_20220101_models.GetTokenRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetTokenResponse: - """ - @param request: GetTokenRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetTokenResponse - """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.expire_time): - query['ExpireTime'] = request.expire_time - if not UtilClient.is_unset(request.instance_id): - query['InstanceId'] = request.instance_id - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='GetToken', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/tokens', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetTokenResponse(), - self.call_api(params, req, runtime) - ) - - async def get_token_with_options_async( - self, - request: pai_dsw_20220101_models.GetTokenRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.GetTokenResponse: - """ - @param request: GetTokenRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: GetTokenResponse + @return: GetTokenResponse """ UtilClient.validate_model(request) query = {} @@ -2894,10 +2296,16 @@ async def get_token_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetTokenResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetTokenResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetTokenResponse(), + await self.execute_async(params, req, runtime) + ) def get_token( self, @@ -2949,10 +2357,16 @@ def get_user_config_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetUserConfigResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetUserConfigResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetUserConfigResponse(), + self.execute(params, req, runtime) + ) async def get_user_config_with_options_async( self, @@ -2980,10 +2394,16 @@ async def get_user_config_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.GetUserConfigResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.GetUserConfigResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.GetUserConfigResponse(), + await self.execute_async(params, req, runtime) + ) def get_user_config(self) -> pai_dsw_20220101_models.GetUserConfigResponse: """ @@ -3005,88 +2425,6 @@ async def get_user_config_async(self) -> pai_dsw_20220101_models.GetUserConfigRe headers = {} return await self.get_user_config_with_options_async(headers, runtime) - def list_app_endpoints_with_options( - self, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.ListAppEndpointsResponse: - """ - @summary 列出第三方AppEndpoint配置 - - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: ListAppEndpointsResponse - """ - req = open_api_models.OpenApiRequest( - headers=headers - ) - params = open_api_models.Params( - action='ListAppEndpoints', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/inner/api/thirdParty/endpoints', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListAppEndpointsResponse(), - self.call_api(params, req, runtime) - ) - - async def list_app_endpoints_with_options_async( - self, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.ListAppEndpointsResponse: - """ - @summary 列出第三方AppEndpoint配置 - - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: ListAppEndpointsResponse - """ - req = open_api_models.OpenApiRequest( - headers=headers - ) - params = open_api_models.Params( - action='ListAppEndpoints', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/inner/api/thirdParty/endpoints', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListAppEndpointsResponse(), - await self.call_api_async(params, req, runtime) - ) - - def list_app_endpoints(self) -> pai_dsw_20220101_models.ListAppEndpointsResponse: - """ - @summary 列出第三方AppEndpoint配置 - - @return: ListAppEndpointsResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.list_app_endpoints_with_options(headers, runtime) - - async def list_app_endpoints_async(self) -> pai_dsw_20220101_models.ListAppEndpointsResponse: - """ - @summary 列出第三方AppEndpoint配置 - - @return: ListAppEndpointsResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.list_app_endpoints_with_options_async(headers, runtime) - def list_ecs_specs_with_options( self, request: pai_dsw_20220101_models.ListEcsSpecsRequest, @@ -3128,10 +2466,16 @@ def list_ecs_specs_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListEcsSpecsResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.ListEcsSpecsResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.ListEcsSpecsResponse(), + self.execute(params, req, runtime) + ) async def list_ecs_specs_with_options_async( self, @@ -3174,10 +2518,16 @@ async def list_ecs_specs_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListEcsSpecsResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.ListEcsSpecsResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.ListEcsSpecsResponse(), + await self.execute_async(params, req, runtime) + ) def list_ecs_specs( self, @@ -3207,110 +2557,6 @@ async def list_ecs_specs_async( headers = {} return await self.list_ecs_specs_with_options_async(request, headers, runtime) - def list_ecs_specs_by_instance_types_with_options( - self, - request: pai_dsw_20220101_models.ListEcsSpecsByInstanceTypesRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.ListEcsSpecsByInstanceTypesResponse: - """ - @summary 获取ECS规格列表 - - @param request: ListEcsSpecsByInstanceTypesRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: ListEcsSpecsByInstanceTypesResponse - """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.instance_types): - body['InstanceTypes'] = request.instance_types - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) - ) - params = open_api_models.Params( - action='ListEcsSpecsByInstanceTypes', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/ecsspecs/action/listEcsSpecsByInstanceTypes', - method='POST', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListEcsSpecsByInstanceTypesResponse(), - self.call_api(params, req, runtime) - ) - - async def list_ecs_specs_by_instance_types_with_options_async( - self, - request: pai_dsw_20220101_models.ListEcsSpecsByInstanceTypesRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.ListEcsSpecsByInstanceTypesResponse: - """ - @summary 获取ECS规格列表 - - @param request: ListEcsSpecsByInstanceTypesRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: ListEcsSpecsByInstanceTypesResponse - """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.instance_types): - body['InstanceTypes'] = request.instance_types - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) - ) - params = open_api_models.Params( - action='ListEcsSpecsByInstanceTypes', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/ecsspecs/action/listEcsSpecsByInstanceTypes', - method='POST', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListEcsSpecsByInstanceTypesResponse(), - await self.call_api_async(params, req, runtime) - ) - - def list_ecs_specs_by_instance_types( - self, - request: pai_dsw_20220101_models.ListEcsSpecsByInstanceTypesRequest, - ) -> pai_dsw_20220101_models.ListEcsSpecsByInstanceTypesResponse: - """ - @summary 获取ECS规格列表 - - @param request: ListEcsSpecsByInstanceTypesRequest - @return: ListEcsSpecsByInstanceTypesResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.list_ecs_specs_by_instance_types_with_options(request, headers, runtime) - - async def list_ecs_specs_by_instance_types_async( - self, - request: pai_dsw_20220101_models.ListEcsSpecsByInstanceTypesRequest, - ) -> pai_dsw_20220101_models.ListEcsSpecsByInstanceTypesResponse: - """ - @summary 获取ECS规格列表 - - @param request: ListEcsSpecsByInstanceTypesRequest - @return: ListEcsSpecsByInstanceTypesResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.list_ecs_specs_by_instance_types_with_options_async(request, headers, runtime) - def list_instance_snapshot_with_options( self, instance_id: str, @@ -3351,10 +2597,16 @@ def list_instance_snapshot_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListInstanceSnapshotResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstanceSnapshotResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstanceSnapshotResponse(), + self.execute(params, req, runtime) + ) async def list_instance_snapshot_with_options_async( self, @@ -3396,10 +2648,16 @@ async def list_instance_snapshot_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListInstanceSnapshotResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstanceSnapshotResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstanceSnapshotResponse(), + await self.execute_async(params, req, runtime) + ) def list_instance_snapshot( self, @@ -3464,10 +2722,16 @@ def list_instance_statistics_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListInstanceStatisticsResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstanceStatisticsResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstanceStatisticsResponse(), + self.execute(params, req, runtime) + ) async def list_instance_statistics_with_options_async( self, @@ -3502,10 +2766,16 @@ async def list_instance_statistics_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListInstanceStatisticsResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstanceStatisticsResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstanceStatisticsResponse(), + await self.execute_async(params, req, runtime) + ) def list_instance_statistics( self, @@ -3529,439 +2799,227 @@ async def list_instance_statistics_async( @summary 获取实例统计信息 @param request: ListInstanceStatisticsRequest - @return: ListInstanceStatisticsResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.list_instance_statistics_with_options_async(request, headers, runtime) - - def list_instances_with_options( - self, - tmp_req: pai_dsw_20220101_models.ListInstancesRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.ListInstancesResponse: - """ - @param tmp_req: ListInstancesRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: ListInstancesResponse - """ - UtilClient.validate_model(tmp_req) - request = pai_dsw_20220101_models.ListInstancesShrinkRequest() - OpenApiUtilClient.convert(tmp_req, request) - if not UtilClient.is_unset(tmp_req.labels): - request.labels_shrink = OpenApiUtilClient.array_to_string_with_specified_style(tmp_req.labels, 'Labels', 'json') - query = {} - if not UtilClient.is_unset(request.accelerator_type): - query['AcceleratorType'] = request.accelerator_type - if not UtilClient.is_unset(request.accessibility): - query['Accessibility'] = request.accessibility - if not UtilClient.is_unset(request.create_user_id): - query['CreateUserId'] = request.create_user_id - if not UtilClient.is_unset(request.gpu_type): - query['GpuType'] = request.gpu_type - if not UtilClient.is_unset(request.image_name): - query['ImageName'] = request.image_name - if not UtilClient.is_unset(request.instance_id): - query['InstanceId'] = request.instance_id - if not UtilClient.is_unset(request.instance_name): - query['InstanceName'] = request.instance_name - if not UtilClient.is_unset(request.labels_shrink): - query['Labels'] = request.labels_shrink - if not UtilClient.is_unset(request.max_cpu): - query['MaxCpu'] = request.max_cpu - if not UtilClient.is_unset(request.max_gpu): - query['MaxGpu'] = request.max_gpu - if not UtilClient.is_unset(request.max_gpu_memory): - query['MaxGpuMemory'] = request.max_gpu_memory - if not UtilClient.is_unset(request.max_memory): - query['MaxMemory'] = request.max_memory - if not UtilClient.is_unset(request.min_cpu): - query['MinCpu'] = request.min_cpu - if not UtilClient.is_unset(request.min_gpu): - query['MinGpu'] = request.min_gpu - if not UtilClient.is_unset(request.min_gpu_memory): - query['MinGpuMemory'] = request.min_gpu_memory - if not UtilClient.is_unset(request.min_memory): - query['MinMemory'] = request.min_memory - if not UtilClient.is_unset(request.order): - query['Order'] = request.order - if not UtilClient.is_unset(request.page_number): - query['PageNumber'] = request.page_number - if not UtilClient.is_unset(request.page_size): - query['PageSize'] = request.page_size - if not UtilClient.is_unset(request.payment_type): - query['PaymentType'] = request.payment_type - if not UtilClient.is_unset(request.resource_id): - query['ResourceId'] = request.resource_id - if not UtilClient.is_unset(request.sort_by): - query['SortBy'] = request.sort_by - if not UtilClient.is_unset(request.status): - query['Status'] = request.status - if not UtilClient.is_unset(request.workspace_id): - query['WorkspaceId'] = request.workspace_id - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='ListInstances', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instances', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListInstancesResponse(), - self.call_api(params, req, runtime) - ) - - async def list_instances_with_options_async( - self, - tmp_req: pai_dsw_20220101_models.ListInstancesRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.ListInstancesResponse: - """ - @param tmp_req: ListInstancesRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: ListInstancesResponse - """ - UtilClient.validate_model(tmp_req) - request = pai_dsw_20220101_models.ListInstancesShrinkRequest() - OpenApiUtilClient.convert(tmp_req, request) - if not UtilClient.is_unset(tmp_req.labels): - request.labels_shrink = OpenApiUtilClient.array_to_string_with_specified_style(tmp_req.labels, 'Labels', 'json') - query = {} - if not UtilClient.is_unset(request.accelerator_type): - query['AcceleratorType'] = request.accelerator_type - if not UtilClient.is_unset(request.accessibility): - query['Accessibility'] = request.accessibility - if not UtilClient.is_unset(request.create_user_id): - query['CreateUserId'] = request.create_user_id - if not UtilClient.is_unset(request.gpu_type): - query['GpuType'] = request.gpu_type - if not UtilClient.is_unset(request.image_name): - query['ImageName'] = request.image_name - if not UtilClient.is_unset(request.instance_id): - query['InstanceId'] = request.instance_id - if not UtilClient.is_unset(request.instance_name): - query['InstanceName'] = request.instance_name - if not UtilClient.is_unset(request.labels_shrink): - query['Labels'] = request.labels_shrink - if not UtilClient.is_unset(request.max_cpu): - query['MaxCpu'] = request.max_cpu - if not UtilClient.is_unset(request.max_gpu): - query['MaxGpu'] = request.max_gpu - if not UtilClient.is_unset(request.max_gpu_memory): - query['MaxGpuMemory'] = request.max_gpu_memory - if not UtilClient.is_unset(request.max_memory): - query['MaxMemory'] = request.max_memory - if not UtilClient.is_unset(request.min_cpu): - query['MinCpu'] = request.min_cpu - if not UtilClient.is_unset(request.min_gpu): - query['MinGpu'] = request.min_gpu - if not UtilClient.is_unset(request.min_gpu_memory): - query['MinGpuMemory'] = request.min_gpu_memory - if not UtilClient.is_unset(request.min_memory): - query['MinMemory'] = request.min_memory - if not UtilClient.is_unset(request.order): - query['Order'] = request.order - if not UtilClient.is_unset(request.page_number): - query['PageNumber'] = request.page_number - if not UtilClient.is_unset(request.page_size): - query['PageSize'] = request.page_size - if not UtilClient.is_unset(request.payment_type): - query['PaymentType'] = request.payment_type - if not UtilClient.is_unset(request.resource_id): - query['ResourceId'] = request.resource_id - if not UtilClient.is_unset(request.sort_by): - query['SortBy'] = request.sort_by - if not UtilClient.is_unset(request.status): - query['Status'] = request.status - if not UtilClient.is_unset(request.workspace_id): - query['WorkspaceId'] = request.workspace_id - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='ListInstances', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/instances', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListInstancesResponse(), - await self.call_api_async(params, req, runtime) - ) - - def list_instances( - self, - request: pai_dsw_20220101_models.ListInstancesRequest, - ) -> pai_dsw_20220101_models.ListInstancesResponse: - """ - @param request: ListInstancesRequest - @return: ListInstancesResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.list_instances_with_options(request, headers, runtime) - - async def list_instances_async( - self, - request: pai_dsw_20220101_models.ListInstancesRequest, - ) -> pai_dsw_20220101_models.ListInstancesResponse: - """ - @param request: ListInstancesRequest - @return: ListInstancesResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.list_instances_with_options_async(request, headers, runtime) - - def list_shares_with_options( - self, - request: pai_dsw_20220101_models.ListSharesRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.ListSharesResponse: - """ - @param request: ListSharesRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: ListSharesResponse - """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.expiration_time_greater_than): - query['ExpirationTimeGreaterThan'] = request.expiration_time_greater_than - if not UtilClient.is_unset(request.expiration_time_less_than): - query['ExpirationTimeLessThan'] = request.expiration_time_less_than - if not UtilClient.is_unset(request.file_name): - query['FileName'] = request.file_name - if not UtilClient.is_unset(request.version): - query['Version'] = request.version - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='ListShares', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/shares', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListSharesResponse(), - self.call_api(params, req, runtime) - ) - - async def list_shares_with_options_async( - self, - request: pai_dsw_20220101_models.ListSharesRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.ListSharesResponse: - """ - @param request: ListSharesRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: ListSharesResponse - """ - UtilClient.validate_model(request) - query = {} - if not UtilClient.is_unset(request.expiration_time_greater_than): - query['ExpirationTimeGreaterThan'] = request.expiration_time_greater_than - if not UtilClient.is_unset(request.expiration_time_less_than): - query['ExpirationTimeLessThan'] = request.expiration_time_less_than - if not UtilClient.is_unset(request.file_name): - query['FileName'] = request.file_name - if not UtilClient.is_unset(request.version): - query['Version'] = request.version - req = open_api_models.OpenApiRequest( - headers=headers, - query=OpenApiUtilClient.query(query) - ) - params = open_api_models.Params( - action='ListShares', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/shares', - method='GET', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListSharesResponse(), - await self.call_api_async(params, req, runtime) - ) - - def list_shares( - self, - request: pai_dsw_20220101_models.ListSharesRequest, - ) -> pai_dsw_20220101_models.ListSharesResponse: - """ - @param request: ListSharesRequest - @return: ListSharesResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.list_shares_with_options(request, headers, runtime) - - async def list_shares_async( - self, - request: pai_dsw_20220101_models.ListSharesRequest, - ) -> pai_dsw_20220101_models.ListSharesResponse: - """ - @param request: ListSharesRequest - @return: ListSharesResponse + @return: ListInstanceStatisticsResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.list_shares_with_options_async(request, headers, runtime) + return await self.list_instance_statistics_with_options_async(request, headers, runtime) - def list_temp_files_with_options( + def list_instances_with_options( self, - request: pai_dsw_20220101_models.ListTempFilesRequest, + tmp_req: pai_dsw_20220101_models.ListInstancesRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.ListTempFilesResponse: + ) -> pai_dsw_20220101_models.ListInstancesResponse: """ - @param request: ListTempFilesRequest + @param tmp_req: ListInstancesRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: ListTempFilesResponse + @return: ListInstancesResponse """ - UtilClient.validate_model(request) + UtilClient.validate_model(tmp_req) + request = pai_dsw_20220101_models.ListInstancesShrinkRequest() + OpenApiUtilClient.convert(tmp_req, request) + if not UtilClient.is_unset(tmp_req.labels): + request.labels_shrink = OpenApiUtilClient.array_to_string_with_specified_style(tmp_req.labels, 'Labels', 'json') + if not UtilClient.is_unset(tmp_req.tag): + request.tag_shrink = OpenApiUtilClient.array_to_string_with_specified_style(tmp_req.tag, 'Tag', 'json') query = {} - if not UtilClient.is_unset(request.delimiter): - query['Delimiter'] = request.delimiter + if not UtilClient.is_unset(request.accelerator_type): + query['AcceleratorType'] = request.accelerator_type + if not UtilClient.is_unset(request.accessibility): + query['Accessibility'] = request.accessibility + if not UtilClient.is_unset(request.create_user_id): + query['CreateUserId'] = request.create_user_id + if not UtilClient.is_unset(request.gpu_type): + query['GpuType'] = request.gpu_type + if not UtilClient.is_unset(request.image_name): + query['ImageName'] = request.image_name if not UtilClient.is_unset(request.instance_id): query['InstanceId'] = request.instance_id - if not UtilClient.is_unset(request.name): - query['Name'] = request.name + if not UtilClient.is_unset(request.instance_name): + query['InstanceName'] = request.instance_name + if not UtilClient.is_unset(request.labels_shrink): + query['Labels'] = request.labels_shrink + if not UtilClient.is_unset(request.max_cpu): + query['MaxCpu'] = request.max_cpu + if not UtilClient.is_unset(request.max_gpu): + query['MaxGpu'] = request.max_gpu + if not UtilClient.is_unset(request.max_gpu_memory): + query['MaxGpuMemory'] = request.max_gpu_memory + if not UtilClient.is_unset(request.max_memory): + query['MaxMemory'] = request.max_memory + if not UtilClient.is_unset(request.min_cpu): + query['MinCpu'] = request.min_cpu + if not UtilClient.is_unset(request.min_gpu): + query['MinGpu'] = request.min_gpu + if not UtilClient.is_unset(request.min_gpu_memory): + query['MinGpuMemory'] = request.min_gpu_memory + if not UtilClient.is_unset(request.min_memory): + query['MinMemory'] = request.min_memory if not UtilClient.is_unset(request.order): query['Order'] = request.order if not UtilClient.is_unset(request.page_number): query['PageNumber'] = request.page_number if not UtilClient.is_unset(request.page_size): query['PageSize'] = request.page_size - if not UtilClient.is_unset(request.prefix): - query['Prefix'] = request.prefix + if not UtilClient.is_unset(request.payment_type): + query['PaymentType'] = request.payment_type + if not UtilClient.is_unset(request.resource_id): + query['ResourceId'] = request.resource_id if not UtilClient.is_unset(request.sort_by): query['SortBy'] = request.sort_by + if not UtilClient.is_unset(request.status): + query['Status'] = request.status + if not UtilClient.is_unset(request.tag_shrink): + query['Tag'] = request.tag_shrink + if not UtilClient.is_unset(request.workspace_id): + query['WorkspaceId'] = request.workspace_id req = open_api_models.OpenApiRequest( headers=headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='ListTempFiles', + action='ListInstances', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/tempfiles', + pathname=f'/api/v2/instances', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListTempFilesResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstancesResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstancesResponse(), + self.execute(params, req, runtime) + ) - async def list_temp_files_with_options_async( + async def list_instances_with_options_async( self, - request: pai_dsw_20220101_models.ListTempFilesRequest, + tmp_req: pai_dsw_20220101_models.ListInstancesRequest, headers: Dict[str, str], runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.ListTempFilesResponse: + ) -> pai_dsw_20220101_models.ListInstancesResponse: """ - @param request: ListTempFilesRequest + @param tmp_req: ListInstancesRequest @param headers: map @param runtime: runtime options for this request RuntimeOptions - @return: ListTempFilesResponse + @return: ListInstancesResponse """ - UtilClient.validate_model(request) + UtilClient.validate_model(tmp_req) + request = pai_dsw_20220101_models.ListInstancesShrinkRequest() + OpenApiUtilClient.convert(tmp_req, request) + if not UtilClient.is_unset(tmp_req.labels): + request.labels_shrink = OpenApiUtilClient.array_to_string_with_specified_style(tmp_req.labels, 'Labels', 'json') + if not UtilClient.is_unset(tmp_req.tag): + request.tag_shrink = OpenApiUtilClient.array_to_string_with_specified_style(tmp_req.tag, 'Tag', 'json') query = {} - if not UtilClient.is_unset(request.delimiter): - query['Delimiter'] = request.delimiter + if not UtilClient.is_unset(request.accelerator_type): + query['AcceleratorType'] = request.accelerator_type + if not UtilClient.is_unset(request.accessibility): + query['Accessibility'] = request.accessibility + if not UtilClient.is_unset(request.create_user_id): + query['CreateUserId'] = request.create_user_id + if not UtilClient.is_unset(request.gpu_type): + query['GpuType'] = request.gpu_type + if not UtilClient.is_unset(request.image_name): + query['ImageName'] = request.image_name if not UtilClient.is_unset(request.instance_id): query['InstanceId'] = request.instance_id - if not UtilClient.is_unset(request.name): - query['Name'] = request.name + if not UtilClient.is_unset(request.instance_name): + query['InstanceName'] = request.instance_name + if not UtilClient.is_unset(request.labels_shrink): + query['Labels'] = request.labels_shrink + if not UtilClient.is_unset(request.max_cpu): + query['MaxCpu'] = request.max_cpu + if not UtilClient.is_unset(request.max_gpu): + query['MaxGpu'] = request.max_gpu + if not UtilClient.is_unset(request.max_gpu_memory): + query['MaxGpuMemory'] = request.max_gpu_memory + if not UtilClient.is_unset(request.max_memory): + query['MaxMemory'] = request.max_memory + if not UtilClient.is_unset(request.min_cpu): + query['MinCpu'] = request.min_cpu + if not UtilClient.is_unset(request.min_gpu): + query['MinGpu'] = request.min_gpu + if not UtilClient.is_unset(request.min_gpu_memory): + query['MinGpuMemory'] = request.min_gpu_memory + if not UtilClient.is_unset(request.min_memory): + query['MinMemory'] = request.min_memory if not UtilClient.is_unset(request.order): query['Order'] = request.order if not UtilClient.is_unset(request.page_number): query['PageNumber'] = request.page_number if not UtilClient.is_unset(request.page_size): query['PageSize'] = request.page_size - if not UtilClient.is_unset(request.prefix): - query['Prefix'] = request.prefix + if not UtilClient.is_unset(request.payment_type): + query['PaymentType'] = request.payment_type + if not UtilClient.is_unset(request.resource_id): + query['ResourceId'] = request.resource_id if not UtilClient.is_unset(request.sort_by): query['SortBy'] = request.sort_by + if not UtilClient.is_unset(request.status): + query['Status'] = request.status + if not UtilClient.is_unset(request.tag_shrink): + query['Tag'] = request.tag_shrink + if not UtilClient.is_unset(request.workspace_id): + query['WorkspaceId'] = request.workspace_id req = open_api_models.OpenApiRequest( headers=headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( - action='ListTempFiles', + action='ListInstances', version='2022-01-01', protocol='HTTPS', - pathname=f'/api/v2/tempfiles', + pathname=f'/api/v2/instances', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.ListTempFilesResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstancesResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.ListInstancesResponse(), + await self.execute_async(params, req, runtime) + ) - def list_temp_files( + def list_instances( self, - request: pai_dsw_20220101_models.ListTempFilesRequest, - ) -> pai_dsw_20220101_models.ListTempFilesResponse: + request: pai_dsw_20220101_models.ListInstancesRequest, + ) -> pai_dsw_20220101_models.ListInstancesResponse: """ - @param request: ListTempFilesRequest - @return: ListTempFilesResponse + @param request: ListInstancesRequest + @return: ListInstancesResponse """ runtime = util_models.RuntimeOptions() headers = {} - return self.list_temp_files_with_options(request, headers, runtime) + return self.list_instances_with_options(request, headers, runtime) - async def list_temp_files_async( + async def list_instances_async( self, - request: pai_dsw_20220101_models.ListTempFilesRequest, - ) -> pai_dsw_20220101_models.ListTempFilesResponse: + request: pai_dsw_20220101_models.ListInstancesRequest, + ) -> pai_dsw_20220101_models.ListInstancesResponse: """ - @param request: ListTempFilesRequest - @return: ListTempFilesResponse + @param request: ListInstancesRequest + @return: ListInstancesResponse """ runtime = util_models.RuntimeOptions() headers = {} - return await self.list_temp_files_with_options_async(request, headers, runtime) + return await self.list_instances_with_options_async(request, headers, runtime) def start_instance_with_options( self, @@ -3990,10 +3048,16 @@ def start_instance_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.StartInstanceResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.StartInstanceResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.StartInstanceResponse(), + self.execute(params, req, runtime) + ) async def start_instance_with_options_async( self, @@ -4022,10 +3086,16 @@ async def start_instance_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.StartInstanceResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.StartInstanceResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.StartInstanceResponse(), + await self.execute_async(params, req, runtime) + ) def start_instance( self, @@ -4087,10 +3157,16 @@ def stop_instance_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.StopInstanceResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.StopInstanceResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.StopInstanceResponse(), + self.execute(params, req, runtime) + ) async def stop_instance_with_options_async( self, @@ -4126,10 +3202,16 @@ async def stop_instance_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.StopInstanceResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.StopInstanceResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.StopInstanceResponse(), + await self.execute_async(params, req, runtime) + ) def stop_instance( self, @@ -4216,8 +3298,6 @@ def update_instance_with_options( body['Priority'] = request.priority if not UtilClient.is_unset(request.requested_resource): body['RequestedResource'] = request.requested_resource - if not UtilClient.is_unset(request.system_image_url): - body['SystemImageUrl'] = request.system_image_url if not UtilClient.is_unset(request.user_id): body['UserId'] = request.user_id if not UtilClient.is_unset(request.user_vpc): @@ -4239,10 +3319,16 @@ def update_instance_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.UpdateInstanceResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.UpdateInstanceResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.UpdateInstanceResponse(), + self.execute(params, req, runtime) + ) async def update_instance_with_options_async( self, @@ -4299,8 +3385,6 @@ async def update_instance_with_options_async( body['Priority'] = request.priority if not UtilClient.is_unset(request.requested_resource): body['RequestedResource'] = request.requested_resource - if not UtilClient.is_unset(request.system_image_url): - body['SystemImageUrl'] = request.system_image_url if not UtilClient.is_unset(request.user_id): body['UserId'] = request.user_id if not UtilClient.is_unset(request.user_vpc): @@ -4322,10 +3406,16 @@ async def update_instance_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.UpdateInstanceResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.UpdateInstanceResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.UpdateInstanceResponse(), + await self.execute_async(params, req, runtime) + ) def update_instance( self, @@ -4391,10 +3481,16 @@ def update_instance_labels_with_options( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.UpdateInstanceLabelsResponse(), - self.call_api(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.UpdateInstanceLabelsResponse(), + self.call_api(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.UpdateInstanceLabelsResponse(), + self.execute(params, req, runtime) + ) async def update_instance_labels_with_options_async( self, @@ -4430,10 +3526,16 @@ async def update_instance_labels_with_options_async( req_body_type='json', body_type='json' ) - return TeaCore.from_map( - pai_dsw_20220101_models.UpdateInstanceLabelsResponse(), - await self.call_api_async(params, req, runtime) - ) + if UtilClient.is_unset(self._signature_version) or not UtilClient.equal_string(self._signature_version, 'v4'): + return TeaCore.from_map( + pai_dsw_20220101_models.UpdateInstanceLabelsResponse(), + await self.call_api_async(params, req, runtime) + ) + else: + return TeaCore.from_map( + pai_dsw_20220101_models.UpdateInstanceLabelsResponse(), + await self.execute_async(params, req, runtime) + ) def update_instance_labels( self, @@ -4464,223 +3566,3 @@ async def update_instance_labels_async( runtime = util_models.RuntimeOptions() headers = {} return await self.update_instance_labels_with_options_async(instance_id, request, headers, runtime) - - def update_temp_file_with_options( - self, - temp_file_id: str, - request: pai_dsw_20220101_models.UpdateTempFileRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.UpdateTempFileResponse: - """ - @summary 更新临时文件 - - @param request: UpdateTempFileRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: UpdateTempFileResponse - """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.gmt_expired_time): - body['GmtExpiredTime'] = request.gmt_expired_time - if not UtilClient.is_unset(request.status): - body['Status'] = request.status - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) - ) - params = open_api_models.Params( - action='UpdateTempFile', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/tempfiles/{OpenApiUtilClient.get_encode_param(temp_file_id)}', - method='PUT', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.UpdateTempFileResponse(), - self.call_api(params, req, runtime) - ) - - async def update_temp_file_with_options_async( - self, - temp_file_id: str, - request: pai_dsw_20220101_models.UpdateTempFileRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.UpdateTempFileResponse: - """ - @summary 更新临时文件 - - @param request: UpdateTempFileRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: UpdateTempFileResponse - """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.gmt_expired_time): - body['GmtExpiredTime'] = request.gmt_expired_time - if not UtilClient.is_unset(request.status): - body['Status'] = request.status - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) - ) - params = open_api_models.Params( - action='UpdateTempFile', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/tempfiles/{OpenApiUtilClient.get_encode_param(temp_file_id)}', - method='PUT', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.UpdateTempFileResponse(), - await self.call_api_async(params, req, runtime) - ) - - def update_temp_file( - self, - temp_file_id: str, - request: pai_dsw_20220101_models.UpdateTempFileRequest, - ) -> pai_dsw_20220101_models.UpdateTempFileResponse: - """ - @summary 更新临时文件 - - @param request: UpdateTempFileRequest - @return: UpdateTempFileResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.update_temp_file_with_options(temp_file_id, request, headers, runtime) - - async def update_temp_file_async( - self, - temp_file_id: str, - request: pai_dsw_20220101_models.UpdateTempFileRequest, - ) -> pai_dsw_20220101_models.UpdateTempFileResponse: - """ - @summary 更新临时文件 - - @param request: UpdateTempFileRequest - @return: UpdateTempFileResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.update_temp_file_with_options_async(temp_file_id, request, headers, runtime) - - def update_temp_file_task_with_options( - self, - temp_file_task_id: str, - request: pai_dsw_20220101_models.UpdateTempFileTaskRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.UpdateTempFileTaskResponse: - """ - @summary 更新临时文件任务 - - @param request: UpdateTempFileTaskRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: UpdateTempFileTaskResponse - """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.gmt_expired_time): - body['GmtExpiredTime'] = request.gmt_expired_time - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) - ) - params = open_api_models.Params( - action='UpdateTempFileTask', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/tempfiletasks/{OpenApiUtilClient.get_encode_param(temp_file_task_id)}', - method='PUT', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.UpdateTempFileTaskResponse(), - self.call_api(params, req, runtime) - ) - - async def update_temp_file_task_with_options_async( - self, - temp_file_task_id: str, - request: pai_dsw_20220101_models.UpdateTempFileTaskRequest, - headers: Dict[str, str], - runtime: util_models.RuntimeOptions, - ) -> pai_dsw_20220101_models.UpdateTempFileTaskResponse: - """ - @summary 更新临时文件任务 - - @param request: UpdateTempFileTaskRequest - @param headers: map - @param runtime: runtime options for this request RuntimeOptions - @return: UpdateTempFileTaskResponse - """ - UtilClient.validate_model(request) - body = {} - if not UtilClient.is_unset(request.gmt_expired_time): - body['GmtExpiredTime'] = request.gmt_expired_time - req = open_api_models.OpenApiRequest( - headers=headers, - body=OpenApiUtilClient.parse_to_map(body) - ) - params = open_api_models.Params( - action='UpdateTempFileTask', - version='2022-01-01', - protocol='HTTPS', - pathname=f'/api/v2/tempfiletasks/{OpenApiUtilClient.get_encode_param(temp_file_task_id)}', - method='PUT', - auth_type='AK', - style='ROA', - req_body_type='json', - body_type='json' - ) - return TeaCore.from_map( - pai_dsw_20220101_models.UpdateTempFileTaskResponse(), - await self.call_api_async(params, req, runtime) - ) - - def update_temp_file_task( - self, - temp_file_task_id: str, - request: pai_dsw_20220101_models.UpdateTempFileTaskRequest, - ) -> pai_dsw_20220101_models.UpdateTempFileTaskResponse: - """ - @summary 更新临时文件任务 - - @param request: UpdateTempFileTaskRequest - @return: UpdateTempFileTaskResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return self.update_temp_file_task_with_options(temp_file_task_id, request, headers, runtime) - - async def update_temp_file_task_async( - self, - temp_file_task_id: str, - request: pai_dsw_20220101_models.UpdateTempFileTaskRequest, - ) -> pai_dsw_20220101_models.UpdateTempFileTaskResponse: - """ - @summary 更新临时文件任务 - - @param request: UpdateTempFileTaskRequest - @return: UpdateTempFileTaskResponse - """ - runtime = util_models.RuntimeOptions() - headers = {} - return await self.update_temp_file_task_with_options_async(temp_file_task_id, request, headers, runtime) diff --git a/pai/libs/alibabacloud_pai_dsw20220101/models.py b/pai/libs/alibabacloud_pai_dsw20220101/models.py index 7b9aa7f..81c8020 100644 --- a/pai/libs/alibabacloud_pai_dsw20220101/models.py +++ b/pai/libs/alibabacloud_pai_dsw20220101/models.py @@ -331,18 +331,24 @@ def from_map(self, m: dict = None): class ForwardInfo(TeaModel): def __init__( self, + access_type: List[str] = None, container_name: str = None, eip_allocation_id: str = None, enable: bool = None, + external_port: str = None, + forward_port: str = None, + name: str = None, nat_gateway_id: str = None, - port: str = None, sshpublic_key: str = None, ): + self.access_type = access_type self.container_name = container_name self.eip_allocation_id = eip_allocation_id self.enable = enable + self.external_port = external_port + self.forward_port = forward_port + self.name = name self.nat_gateway_id = nat_gateway_id - self.port = port self.sshpublic_key = sshpublic_key def validate(self): @@ -354,32 +360,44 @@ def to_map(self): return _map result = dict() + if self.access_type is not None: + result['AccessType'] = self.access_type if self.container_name is not None: result['ContainerName'] = self.container_name if self.eip_allocation_id is not None: result['EipAllocationId'] = self.eip_allocation_id if self.enable is not None: result['Enable'] = self.enable + if self.external_port is not None: + result['ExternalPort'] = self.external_port + if self.forward_port is not None: + result['ForwardPort'] = self.forward_port + if self.name is not None: + result['Name'] = self.name if self.nat_gateway_id is not None: result['NatGatewayId'] = self.nat_gateway_id - if self.port is not None: - result['Port'] = self.port if self.sshpublic_key is not None: result['SSHPublicKey'] = self.sshpublic_key return result def from_map(self, m: dict = None): m = m or dict() + if m.get('AccessType') is not None: + self.access_type = m.get('AccessType') if m.get('ContainerName') is not None: self.container_name = m.get('ContainerName') if m.get('EipAllocationId') is not None: self.eip_allocation_id = m.get('EipAllocationId') if m.get('Enable') is not None: self.enable = m.get('Enable') + if m.get('ExternalPort') is not None: + self.external_port = m.get('ExternalPort') + if m.get('ForwardPort') is not None: + self.forward_port = m.get('ForwardPort') + if m.get('Name') is not None: + self.name = m.get('Name') if m.get('NatGatewayId') is not None: self.nat_gateway_id = m.get('NatGatewayId') - if m.get('Port') is not None: - self.port = m.get('Port') if m.get('SSHPublicKey') is not None: self.sshpublic_key = m.get('SSHPublicKey') return self @@ -504,20 +522,26 @@ def from_map(self, m: dict = None): class ForwardInfoResponse(TeaModel): def __init__( self, + access_type: List[str] = None, connect_info: ForwardInfoResponseConnectInfo = None, container_name: str = None, eip_allocation_id: str = None, enable: bool = None, + external_port: str = None, + forward_port: str = None, + name: str = None, nat_gateway_id: str = None, - port: str = None, sshpublic_key: str = None, ): + self.access_type = access_type self.connect_info = connect_info self.container_name = container_name self.eip_allocation_id = eip_allocation_id self.enable = enable + self.external_port = external_port + self.forward_port = forward_port + self.name = name self.nat_gateway_id = nat_gateway_id - self.port = port self.sshpublic_key = sshpublic_key def validate(self): @@ -530,6 +554,8 @@ def to_map(self): return _map result = dict() + if self.access_type is not None: + result['AccessType'] = self.access_type if self.connect_info is not None: result['ConnectInfo'] = self.connect_info.to_map() if self.container_name is not None: @@ -538,16 +564,22 @@ def to_map(self): result['EipAllocationId'] = self.eip_allocation_id if self.enable is not None: result['Enable'] = self.enable + if self.external_port is not None: + result['ExternalPort'] = self.external_port + if self.forward_port is not None: + result['ForwardPort'] = self.forward_port + if self.name is not None: + result['Name'] = self.name if self.nat_gateway_id is not None: result['NatGatewayId'] = self.nat_gateway_id - if self.port is not None: - result['Port'] = self.port if self.sshpublic_key is not None: result['SSHPublicKey'] = self.sshpublic_key return result def from_map(self, m: dict = None): m = m or dict() + if m.get('AccessType') is not None: + self.access_type = m.get('AccessType') if m.get('ConnectInfo') is not None: temp_model = ForwardInfoResponseConnectInfo() self.connect_info = temp_model.from_map(m['ConnectInfo']) @@ -557,375 +589,19 @@ def from_map(self, m: dict = None): self.eip_allocation_id = m.get('EipAllocationId') if m.get('Enable') is not None: self.enable = m.get('Enable') + if m.get('ExternalPort') is not None: + self.external_port = m.get('ExternalPort') + if m.get('ForwardPort') is not None: + self.forward_port = m.get('ForwardPort') + if m.get('Name') is not None: + self.name = m.get('Name') if m.get('NatGatewayId') is not None: self.nat_gateway_id = m.get('NatGatewayId') - if m.get('Port') is not None: - self.port = m.get('Port') if m.get('SSHPublicKey') is not None: self.sshpublic_key = m.get('SSHPublicKey') return self -class CheckInstanceExistenceRequest(TeaModel): - def __init__( - self, - instance_name: str = None, - workspace_id: str = None, - ): - # This parameter is required. - self.instance_name = instance_name - # This parameter is required. - self.workspace_id = workspace_id - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.instance_name is not None: - result['InstanceName'] = self.instance_name - if self.workspace_id is not None: - result['WorkspaceId'] = self.workspace_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('InstanceName') is not None: - self.instance_name = m.get('InstanceName') - if m.get('WorkspaceId') is not None: - self.workspace_id = m.get('WorkspaceId') - return self - - -class CheckInstanceExistenceResponseBody(TeaModel): - def __init__( - self, - code: str = None, - http_status_code: int = None, - is_existed: bool = None, - message: str = None, - request_id: str = None, - ): - self.code = code - self.http_status_code = http_status_code - self.is_existed = is_existed - self.message = message - self.request_id = request_id - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.is_existed is not None: - result['IsExisted'] = self.is_existed - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('IsExisted') is not None: - self.is_existed = m.get('IsExisted') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - return self - - -class CheckInstanceExistenceResponse(TeaModel): - def __init__( - self, - headers: Dict[str, str] = None, - status_code: int = None, - body: CheckInstanceExistenceResponseBody = None, - ): - self.headers = headers - self.status_code = status_code - self.body = body - - def validate(self): - if self.body: - self.body.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = CheckInstanceExistenceResponseBody() - self.body = temp_model.from_map(m['body']) - return self - - -class CreateEndpointRequest(TeaModel): - def __init__( - self, - action: str = None, - app: str = None, - endpoint: str = None, - method: str = None, - path_name: str = None, - protocol: str = None, - req_body_type: str = None, - style: str = None, - timeout: int = None, - version: str = None, - ): - self.action = action - self.app = app - self.endpoint = endpoint - self.method = method - self.path_name = path_name - self.protocol = protocol - self.req_body_type = req_body_type - self.style = style - self.timeout = timeout - self.version = version - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.action is not None: - result['Action'] = self.action - if self.app is not None: - result['App'] = self.app - if self.endpoint is not None: - result['Endpoint'] = self.endpoint - if self.method is not None: - result['Method'] = self.method - if self.path_name is not None: - result['PathName'] = self.path_name - if self.protocol is not None: - result['Protocol'] = self.protocol - if self.req_body_type is not None: - result['ReqBodyType'] = self.req_body_type - if self.style is not None: - result['Style'] = self.style - if self.timeout is not None: - result['Timeout'] = self.timeout - if self.version is not None: - result['Version'] = self.version - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Action') is not None: - self.action = m.get('Action') - if m.get('App') is not None: - self.app = m.get('App') - if m.get('Endpoint') is not None: - self.endpoint = m.get('Endpoint') - if m.get('Method') is not None: - self.method = m.get('Method') - if m.get('PathName') is not None: - self.path_name = m.get('PathName') - if m.get('Protocol') is not None: - self.protocol = m.get('Protocol') - if m.get('ReqBodyType') is not None: - self.req_body_type = m.get('ReqBodyType') - if m.get('Style') is not None: - self.style = m.get('Style') - if m.get('Timeout') is not None: - self.timeout = m.get('Timeout') - if m.get('Version') is not None: - self.version = m.get('Version') - return self - - -class CreateEndpointResponseBody(TeaModel): - def __init__( - self, - action: str = None, - app: str = None, - code: str = None, - endpoint: str = None, - http_status_code: int = None, - message: str = None, - method: str = None, - path_name: str = None, - protocol: str = None, - req_body_type: str = None, - request_id: str = None, - style: str = None, - success: bool = None, - timeout: int = None, - version: str = None, - ): - self.action = action - self.app = app - self.code = code - self.endpoint = endpoint - self.http_status_code = http_status_code - self.message = message - self.method = method - self.path_name = path_name - self.protocol = protocol - self.req_body_type = req_body_type - self.request_id = request_id - self.style = style - self.success = success - self.timeout = timeout - self.version = version - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.action is not None: - result['Action'] = self.action - if self.app is not None: - result['App'] = self.app - if self.code is not None: - result['Code'] = self.code - if self.endpoint is not None: - result['Endpoint'] = self.endpoint - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message - if self.method is not None: - result['Method'] = self.method - if self.path_name is not None: - result['PathName'] = self.path_name - if self.protocol is not None: - result['Protocol'] = self.protocol - if self.req_body_type is not None: - result['ReqBodyType'] = self.req_body_type - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.style is not None: - result['Style'] = self.style - if self.success is not None: - result['Success'] = self.success - if self.timeout is not None: - result['Timeout'] = self.timeout - if self.version is not None: - result['Version'] = self.version - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Action') is not None: - self.action = m.get('Action') - if m.get('App') is not None: - self.app = m.get('App') - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('Endpoint') is not None: - self.endpoint = m.get('Endpoint') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('Method') is not None: - self.method = m.get('Method') - if m.get('PathName') is not None: - self.path_name = m.get('PathName') - if m.get('Protocol') is not None: - self.protocol = m.get('Protocol') - if m.get('ReqBodyType') is not None: - self.req_body_type = m.get('ReqBodyType') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Style') is not None: - self.style = m.get('Style') - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('Timeout') is not None: - self.timeout = m.get('Timeout') - if m.get('Version') is not None: - self.version = m.get('Version') - return self - - -class CreateEndpointResponse(TeaModel): - def __init__( - self, - headers: Dict[str, str] = None, - status_code: int = None, - body: CreateEndpointResponseBody = None, - ): - self.headers = headers - self.status_code = status_code - self.body = body - - def validate(self): - if self.body: - self.body.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = CreateEndpointResponseBody() - self.body = temp_model.from_map(m['body']) - return self - - class CreateIdleInstanceCullerRequest(TeaModel): def __init__( self, @@ -1209,14 +885,18 @@ class CreateInstanceRequestDatasets(TeaModel): def __init__( self, dataset_id: str = None, + dataset_version: str = None, dynamic: bool = None, + mount_access: str = None, mount_path: str = None, option_type: str = None, options: str = None, uri: str = None, ): self.dataset_id = dataset_id + self.dataset_version = dataset_version self.dynamic = dynamic + self.mount_access = mount_access self.mount_path = mount_path self.option_type = option_type self.options = options @@ -1233,8 +913,12 @@ def to_map(self): result = dict() if self.dataset_id is not None: result['DatasetId'] = self.dataset_id + if self.dataset_version is not None: + result['DatasetVersion'] = self.dataset_version if self.dynamic is not None: result['Dynamic'] = self.dynamic + if self.mount_access is not None: + result['MountAccess'] = self.mount_access if self.mount_path is not None: result['MountPath'] = self.mount_path if self.option_type is not None: @@ -1249,8 +933,12 @@ def from_map(self, m: dict = None): m = m or dict() if m.get('DatasetId') is not None: self.dataset_id = m.get('DatasetId') + if m.get('DatasetVersion') is not None: + self.dataset_version = m.get('DatasetVersion') if m.get('Dynamic') is not None: self.dynamic = m.get('Dynamic') + if m.get('MountAccess') is not None: + self.mount_access = m.get('MountAccess') if m.get('MountPath') is not None: self.mount_path = m.get('MountPath') if m.get('OptionType') is not None: @@ -1346,7 +1034,40 @@ def from_map(self, m: dict = None): return self -class CreateInstanceRequestUserVpc(TeaModel): +class CreateInstanceRequestTag(TeaModel): + def __init__( + self, + key: str = None, + value: str = None, + ): + self.key = key + self.value = value + + def validate(self): + pass + + def to_map(self): + _map = super().to_map() + if _map is not None: + return _map + + result = dict() + if self.key is not None: + result['Key'] = self.key + if self.value is not None: + result['Value'] = self.value + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('Key') is not None: + self.key = m.get('Key') + if m.get('Value') is not None: + self.value = m.get('Value') + return self + + +class CreateInstanceRequestUserVpc(TeaModel): def __init__( self, default_route: str = None, @@ -1431,7 +1152,7 @@ def __init__( priority: int = None, requested_resource: CreateInstanceRequestRequestedResource = None, resource_id: str = None, - system_image_url: str = None, + tag: List[CreateInstanceRequestTag] = None, user_id: str = None, user_vpc: CreateInstanceRequestUserVpc = None, workspace_id: str = None, @@ -1454,7 +1175,7 @@ def __init__( self.priority = priority self.requested_resource = requested_resource self.resource_id = resource_id - self.system_image_url = system_image_url + self.tag = tag self.user_id = user_id self.user_vpc = user_vpc self.workspace_id = workspace_id @@ -1481,6 +1202,10 @@ def validate(self): k.validate() if self.requested_resource: self.requested_resource.validate() + if self.tag: + for k in self.tag: + if k: + k.validate() if self.user_vpc: self.user_vpc.validate() @@ -1530,8 +1255,10 @@ def to_map(self): result['RequestedResource'] = self.requested_resource.to_map() if self.resource_id is not None: result['ResourceId'] = self.resource_id - if self.system_image_url is not None: - result['SystemImageUrl'] = self.system_image_url + result['Tag'] = [] + if self.tag is not None: + for k in self.tag: + result['Tag'].append(k.to_map() if k else None) if self.user_id is not None: result['UserId'] = self.user_id if self.user_vpc is not None: @@ -1591,8 +1318,11 @@ def from_map(self, m: dict = None): self.requested_resource = temp_model.from_map(m['RequestedResource']) if m.get('ResourceId') is not None: self.resource_id = m.get('ResourceId') - if m.get('SystemImageUrl') is not None: - self.system_image_url = m.get('SystemImageUrl') + self.tag = [] + if m.get('Tag') is not None: + for k in m.get('Tag'): + temp_model = CreateInstanceRequestTag() + self.tag.append(temp_model.from_map(k)) if m.get('UserId') is not None: self.user_id = m.get('UserId') if m.get('UserVpc') is not None: @@ -1878,10 +1608,12 @@ def __init__( snapshot_name: str = None, ): self.exclude_paths = exclude_paths + # This parameter is required. self.image_url = image_url self.labels = labels self.overwrite = overwrite self.snapshot_description = snapshot_description + # This parameter is required. self.snapshot_name = snapshot_name def validate(self): @@ -2036,75 +1768,20 @@ def from_map(self, m: dict = None): return self -class CreateShareRequest(TeaModel): - def __init__( - self, - file_name: str = None, - ttl: int = None, - version: str = None, - ): - self.file_name = file_name - self.ttl = ttl - self.version = version - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.file_name is not None: - result['FileName'] = self.file_name - if self.ttl is not None: - result['Ttl'] = self.ttl - if self.version is not None: - result['Version'] = self.version - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('FileName') is not None: - self.file_name = m.get('FileName') - if m.get('Ttl') is not None: - self.ttl = m.get('Ttl') - if m.get('Version') is not None: - self.version = m.get('Version') - return self - - -class CreateShareResponseBody(TeaModel): +class DeleteIdleInstanceCullerResponseBody(TeaModel): def __init__( self, code: str = None, - expiration_time: str = None, - file_name: str = None, - gmt_create_time: str = None, - gmt_modified_time: str = None, - http_status_code: int = None, + instance_id: str = None, message: str = None, request_id: str = None, - resource_url: str = None, success: bool = None, - ttl: int = None, - user_id: str = None, - version: str = None, ): self.code = code - self.expiration_time = expiration_time - self.file_name = file_name - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time - self.http_status_code = http_status_code + self.instance_id = instance_id self.message = message self.request_id = request_id - self.resource_url = resource_url self.success = success - self.ttl = ttl - self.user_id = user_id - self.version = version def validate(self): pass @@ -2117,69 +1794,37 @@ def to_map(self): result = dict() if self.code is not None: result['Code'] = self.code - if self.expiration_time is not None: - result['ExpirationTime'] = self.expiration_time - if self.file_name is not None: - result['FileName'] = self.file_name - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code + if self.instance_id is not None: + result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id - if self.resource_url is not None: - result['ResourceUrl'] = self.resource_url if self.success is not None: result['Success'] = self.success - if self.ttl is not None: - result['Ttl'] = self.ttl - if self.user_id is not None: - result['UserId'] = self.user_id - if self.version is not None: - result['Version'] = self.version return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') - if m.get('ExpirationTime') is not None: - self.expiration_time = m.get('ExpirationTime') - if m.get('FileName') is not None: - self.file_name = m.get('FileName') - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') - if m.get('ResourceUrl') is not None: - self.resource_url = m.get('ResourceUrl') if m.get('Success') is not None: self.success = m.get('Success') - if m.get('Ttl') is not None: - self.ttl = m.get('Ttl') - if m.get('UserId') is not None: - self.user_id = m.get('UserId') - if m.get('Version') is not None: - self.version = m.get('Version') return self -class CreateShareResponse(TeaModel): +class DeleteIdleInstanceCullerResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: CreateShareResponseBody = None, + body: DeleteIdleInstanceCullerResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -2210,78 +1855,27 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = CreateShareResponseBody() + temp_model = DeleteIdleInstanceCullerResponseBody() self.body = temp_model.from_map(m['body']) return self -class CreateTempFileRequest(TeaModel): - def __init__( - self, - capacity: int = None, - instance_id: str = None, - name: str = None, - prefix: str = None, - task_id: str = None, - ): - self.capacity = capacity - self.instance_id = instance_id - self.name = name - self.prefix = prefix - self.task_id = task_id - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.capacity is not None: - result['Capacity'] = self.capacity - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.name is not None: - result['Name'] = self.name - if self.prefix is not None: - result['Prefix'] = self.prefix - if self.task_id is not None: - result['TaskId'] = self.task_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Capacity') is not None: - self.capacity = m.get('Capacity') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('Name') is not None: - self.name = m.get('Name') - if m.get('Prefix') is not None: - self.prefix = m.get('Prefix') - if m.get('TaskId') is not None: - self.task_id = m.get('TaskId') - return self - - -class CreateTempFileResponseBody(TeaModel): +class DeleteInstanceResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, + instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, - temp_file_id: str = None, ): self.code = code self.http_status_code = http_status_code + self.instance_id = instance_id self.message = message self.request_id = request_id self.success = success - self.temp_file_id = temp_file_id def validate(self): pass @@ -2296,14 +1890,14 @@ def to_map(self): result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code + if self.instance_id is not None: + result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id if self.success is not None: result['Success'] = self.success - if self.temp_file_id is not None: - result['TempFileId'] = self.temp_file_id return result def from_map(self, m: dict = None): @@ -2312,23 +1906,23 @@ def from_map(self, m: dict = None): self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Success') is not None: self.success = m.get('Success') - if m.get('TempFileId') is not None: - self.temp_file_id = m.get('TempFileId') return self -class CreateTempFileResponse(TeaModel): +class DeleteInstanceResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: CreateTempFileResponseBody = None, + body: DeleteInstanceResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -2359,17 +1953,18 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = CreateTempFileResponseBody() + temp_model = DeleteInstanceResponseBody() self.body = temp_model.from_map(m['body']) return self -class CreateTempFileTaskRequest(TeaModel): +class DeleteInstanceLabelsRequest(TeaModel): def __init__( self, - instance_id: str = None, + label_keys: str = None, ): - self.instance_id = instance_id + # This parameter is required. + self.label_keys = label_keys def validate(self): pass @@ -2380,33 +1975,23 @@ def to_map(self): return _map result = dict() - if self.instance_id is not None: - result['InstanceId'] = self.instance_id + if self.label_keys is not None: + result['LabelKeys'] = self.label_keys return result def from_map(self, m: dict = None): m = m or dict() - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') + if m.get('LabelKeys') is not None: + self.label_keys = m.get('LabelKeys') return self -class CreateTempFileTaskResponseBody(TeaModel): +class DeleteInstanceLabelsResponseBody(TeaModel): def __init__( self, - code: str = None, - http_status_code: int = None, - message: str = None, request_id: str = None, - success: bool = None, - temp_file_task_id: str = None, ): - self.code = code - self.http_status_code = http_status_code - self.message = message self.request_id = request_id - self.success = success - self.temp_file_task_id = temp_file_task_id def validate(self): pass @@ -2417,43 +2002,23 @@ def to_map(self): return _map result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id - if self.success is not None: - result['Success'] = self.success - if self.temp_file_task_id is not None: - result['TempFileTaskId'] = self.temp_file_task_id return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('TempFileTaskId') is not None: - self.temp_file_task_id = m.get('TempFileTaskId') return self -class CreateTempFileTaskResponse(TeaModel): +class DeleteInstanceLabelsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: CreateTempFileTaskResponseBody = None, + body: DeleteInstanceLabelsResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -2484,21 +2049,23 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = CreateTempFileTaskResponseBody() + temp_model = DeleteInstanceLabelsResponseBody() self.body = temp_model.from_map(m['body']) return self -class DeleteIdleInstanceCullerResponseBody(TeaModel): +class DeleteInstanceShutdownTimerResponseBody(TeaModel): def __init__( self, code: str = None, + http_status_code: int = None, instance_id: str = None, message: str = None, request_id: str = None, success: bool = None, ): self.code = code + self.http_status_code = http_status_code self.instance_id = instance_id self.message = message self.request_id = request_id @@ -2515,6 +2082,8 @@ def to_map(self): result = dict() if self.code is not None: result['Code'] = self.code + if self.http_status_code is not None: + result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: @@ -2529,6 +2098,8 @@ def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') + if m.get('HttpStatusCode') is not None: + self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: @@ -2540,12 +2111,12 @@ def from_map(self, m: dict = None): return self -class DeleteIdleInstanceCullerResponse(TeaModel): +class DeleteInstanceShutdownTimerResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: DeleteIdleInstanceCullerResponseBody = None, + body: DeleteInstanceShutdownTimerResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -2576,12 +2147,12 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = DeleteIdleInstanceCullerResponseBody() + temp_model = DeleteInstanceShutdownTimerResponseBody() self.body = temp_model.from_map(m['body']) return self -class DeleteInstanceResponseBody(TeaModel): +class DeleteInstanceSnapshotResponseBody(TeaModel): def __init__( self, code: str = None, @@ -2589,6 +2160,7 @@ def __init__( instance_id: str = None, message: str = None, request_id: str = None, + snapshot_id: str = None, success: bool = None, ): self.code = code @@ -2596,6 +2168,7 @@ def __init__( self.instance_id = instance_id self.message = message self.request_id = request_id + self.snapshot_id = snapshot_id self.success = success def validate(self): @@ -2617,6 +2190,8 @@ def to_map(self): result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id + if self.snapshot_id is not None: + result['SnapshotId'] = self.snapshot_id if self.success is not None: result['Success'] = self.success return result @@ -2633,17 +2208,19 @@ def from_map(self, m: dict = None): self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') + if m.get('SnapshotId') is not None: + self.snapshot_id = m.get('SnapshotId') if m.get('Success') is not None: self.success = m.get('Success') return self -class DeleteInstanceResponse(TeaModel): +class DeleteInstanceSnapshotResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: DeleteInstanceResponseBody = None, + body: DeleteInstanceSnapshotResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -2674,18 +2251,33 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = DeleteInstanceResponseBody() + temp_model = DeleteInstanceSnapshotResponseBody() self.body = temp_model.from_map(m['body']) return self -class DeleteInstanceLabelsRequest(TeaModel): +class GetIdleInstanceCullerResponseBody(TeaModel): def __init__( self, - label_keys: str = None, + code: str = None, + cpu_percent_threshold: int = None, + gpu_percent_threshold: int = None, + idle_time_in_minutes: int = None, + instance_id: str = None, + max_idle_time_in_minutes: int = None, + message: str = None, + request_id: str = None, + success: bool = None, ): - # This parameter is required. - self.label_keys = label_keys + self.code = code + self.cpu_percent_threshold = cpu_percent_threshold + self.gpu_percent_threshold = gpu_percent_threshold + self.idle_time_in_minutes = idle_time_in_minutes + self.instance_id = instance_id + self.max_idle_time_in_minutes = max_idle_time_in_minutes + self.message = message + self.request_id = request_id + self.success = success def validate(self): pass @@ -2696,50 +2288,55 @@ def to_map(self): return _map result = dict() - if self.label_keys is not None: - result['LabelKeys'] = self.label_keys - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('LabelKeys') is not None: - self.label_keys = m.get('LabelKeys') - return self - - -class DeleteInstanceLabelsResponseBody(TeaModel): - def __init__( - self, - request_id: str = None, - ): - self.request_id = request_id - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.request_id is not None: - result['RequestId'] = self.request_id + if self.code is not None: + result['Code'] = self.code + if self.cpu_percent_threshold is not None: + result['CpuPercentThreshold'] = self.cpu_percent_threshold + if self.gpu_percent_threshold is not None: + result['GpuPercentThreshold'] = self.gpu_percent_threshold + if self.idle_time_in_minutes is not None: + result['IdleTimeInMinutes'] = self.idle_time_in_minutes + if self.instance_id is not None: + result['InstanceId'] = self.instance_id + if self.max_idle_time_in_minutes is not None: + result['MaxIdleTimeInMinutes'] = self.max_idle_time_in_minutes + if self.message is not None: + result['Message'] = self.message + if self.request_id is not None: + result['RequestId'] = self.request_id + if self.success is not None: + result['Success'] = self.success return result def from_map(self, m: dict = None): m = m or dict() + if m.get('Code') is not None: + self.code = m.get('Code') + if m.get('CpuPercentThreshold') is not None: + self.cpu_percent_threshold = m.get('CpuPercentThreshold') + if m.get('GpuPercentThreshold') is not None: + self.gpu_percent_threshold = m.get('GpuPercentThreshold') + if m.get('IdleTimeInMinutes') is not None: + self.idle_time_in_minutes = m.get('IdleTimeInMinutes') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') + if m.get('MaxIdleTimeInMinutes') is not None: + self.max_idle_time_in_minutes = m.get('MaxIdleTimeInMinutes') + if m.get('Message') is not None: + self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') + if m.get('Success') is not None: + self.success = m.get('Success') return self -class DeleteInstanceLabelsResponse(TeaModel): +class GetIdleInstanceCullerResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: DeleteInstanceLabelsResponseBody = None, + body: GetIdleInstanceCullerResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -2770,27 +2367,17 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = DeleteInstanceLabelsResponseBody() + temp_model = GetIdleInstanceCullerResponseBody() self.body = temp_model.from_map(m['body']) return self -class DeleteInstanceShutdownTimerResponseBody(TeaModel): +class GetInstanceRequest(TeaModel): def __init__( self, - code: str = None, - http_status_code: int = None, - instance_id: str = None, - message: str = None, - request_id: str = None, - success: bool = None, + token: str = None, ): - self.code = code - self.http_status_code = http_status_code - self.instance_id = instance_id - self.message = message - self.request_id = request_id - self.success = success + self.token = token def validate(self): pass @@ -2801,51 +2388,26 @@ def to_map(self): return _map result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.success is not None: - result['Success'] = self.success + if self.token is not None: + result['Token'] = self.token return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Success') is not None: - self.success = m.get('Success') + if m.get('Token') is not None: + self.token = m.get('Token') return self -class DeleteInstanceShutdownTimerResponse(TeaModel): +class GetInstanceResponseBodyAffinityCPU(TeaModel): def __init__( self, - headers: Dict[str, str] = None, - status_code: int = None, - body: DeleteInstanceShutdownTimerResponseBody = None, + enable: bool = None, ): - self.headers = headers - self.status_code = status_code - self.body = body + self.enable = enable def validate(self): - if self.body: - self.body.validate() + pass def to_map(self): _map = super().to_map() @@ -2853,47 +2415,27 @@ def to_map(self): return _map result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() + if self.enable is not None: + result['Enable'] = self.enable return result def from_map(self, m: dict = None): m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = DeleteInstanceShutdownTimerResponseBody() - self.body = temp_model.from_map(m['body']) + if m.get('Enable') is not None: + self.enable = m.get('Enable') return self -class DeleteInstanceSnapshotResponseBody(TeaModel): +class GetInstanceResponseBodyAffinity(TeaModel): def __init__( self, - code: str = None, - http_status_code: int = None, - instance_id: str = None, - message: str = None, - request_id: str = None, - snapshot_id: str = None, - success: bool = None, + cpu: GetInstanceResponseBodyAffinityCPU = None, ): - self.code = code - self.http_status_code = http_status_code - self.instance_id = instance_id - self.message = message - self.request_id = request_id - self.snapshot_id = snapshot_id - self.success = success + self.cpu = cpu def validate(self): - pass + if self.cpu: + self.cpu.validate() def to_map(self): _map = super().to_map() @@ -2901,55 +2443,33 @@ def to_map(self): return _map result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.snapshot_id is not None: - result['SnapshotId'] = self.snapshot_id - if self.success is not None: - result['Success'] = self.success + if self.cpu is not None: + result['CPU'] = self.cpu.to_map() return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('SnapshotId') is not None: - self.snapshot_id = m.get('SnapshotId') - if m.get('Success') is not None: - self.success = m.get('Success') + if m.get('CPU') is not None: + temp_model = GetInstanceResponseBodyAffinityCPU() + self.cpu = temp_model.from_map(m['CPU']) return self -class DeleteInstanceSnapshotResponse(TeaModel): +class GetInstanceResponseBodyCloudDisks(TeaModel): def __init__( self, - headers: Dict[str, str] = None, - status_code: int = None, - body: DeleteInstanceSnapshotResponseBody = None, + capacity: str = None, + mount_path: str = None, + path: str = None, + sub_type: str = None, ): - self.headers = headers - self.status_code = status_code - self.body = body + self.capacity = capacity + self.mount_path = mount_path + self.path = path + self.sub_type = sub_type def validate(self): - if self.body: - self.body.validate() + pass def to_map(self): _map = super().to_map() @@ -2957,42 +2477,49 @@ def to_map(self): return _map result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() + if self.capacity is not None: + result['Capacity'] = self.capacity + if self.mount_path is not None: + result['MountPath'] = self.mount_path + if self.path is not None: + result['Path'] = self.path + if self.sub_type is not None: + result['SubType'] = self.sub_type return result def from_map(self, m: dict = None): m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = DeleteInstanceSnapshotResponseBody() - self.body = temp_model.from_map(m['body']) + if m.get('Capacity') is not None: + self.capacity = m.get('Capacity') + if m.get('MountPath') is not None: + self.mount_path = m.get('MountPath') + if m.get('Path') is not None: + self.path = m.get('Path') + if m.get('SubType') is not None: + self.sub_type = m.get('SubType') return self -class DeleteTempFileResponseBody(TeaModel): +class GetInstanceResponseBodyDatasets(TeaModel): def __init__( self, - code: str = None, - http_status_code: int = None, - message: str = None, - request_id: str = None, - success: bool = None, - temp_file_id: str = None, + dataset_id: str = None, + dataset_version: str = None, + dynamic: bool = None, + mount_access: str = None, + mount_path: str = None, + option_type: str = None, + options: str = None, + uri: str = None, ): - self.code = code - self.http_status_code = http_status_code - self.message = message - self.request_id = request_id - self.success = success - self.temp_file_id = temp_file_id + self.dataset_id = dataset_id + self.dataset_version = dataset_version + self.dynamic = dynamic + self.mount_access = mount_access + self.mount_path = mount_path + self.option_type = option_type + self.options = options + self.uri = uri def validate(self): pass @@ -3003,198 +2530,59 @@ def to_map(self): return _map result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.success is not None: - result['Success'] = self.success - if self.temp_file_id is not None: - result['TempFileId'] = self.temp_file_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('TempFileId') is not None: - self.temp_file_id = m.get('TempFileId') - return self - - -class DeleteTempFileResponse(TeaModel): - def __init__( - self, - headers: Dict[str, str] = None, - status_code: int = None, - body: DeleteTempFileResponseBody = None, - ): - self.headers = headers - self.status_code = status_code - self.body = body - - def validate(self): - if self.body: - self.body.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = DeleteTempFileResponseBody() - self.body = temp_model.from_map(m['body']) - return self - - -class DeleteTempFileTaskResponseBody(TeaModel): - def __init__( - self, - code: str = None, - http_status_code: int = None, - message: str = None, - request_id: str = None, - success: bool = None, - temp_file_task_id: str = None, - ): - self.code = code - self.http_status_code = http_status_code - self.message = message - self.request_id = request_id - self.success = success - self.temp_file_task_id = temp_file_task_id - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.success is not None: - result['Success'] = self.success - if self.temp_file_task_id is not None: - result['TempFileTaskId'] = self.temp_file_task_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('TempFileTaskId') is not None: - self.temp_file_task_id = m.get('TempFileTaskId') - return self - - -class DeleteTempFileTaskResponse(TeaModel): - def __init__( - self, - headers: Dict[str, str] = None, - status_code: int = None, - body: DeleteTempFileTaskResponseBody = None, - ): - self.headers = headers - self.status_code = status_code - self.body = body - - def validate(self): - if self.body: - self.body.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() + if self.dataset_id is not None: + result['DatasetId'] = self.dataset_id + if self.dataset_version is not None: + result['DatasetVersion'] = self.dataset_version + if self.dynamic is not None: + result['Dynamic'] = self.dynamic + if self.mount_access is not None: + result['MountAccess'] = self.mount_access + if self.mount_path is not None: + result['MountPath'] = self.mount_path + if self.option_type is not None: + result['OptionType'] = self.option_type + if self.options is not None: + result['Options'] = self.options + if self.uri is not None: + result['Uri'] = self.uri return result def from_map(self, m: dict = None): m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = DeleteTempFileTaskResponseBody() - self.body = temp_model.from_map(m['body']) + if m.get('DatasetId') is not None: + self.dataset_id = m.get('DatasetId') + if m.get('DatasetVersion') is not None: + self.dataset_version = m.get('DatasetVersion') + if m.get('Dynamic') is not None: + self.dynamic = m.get('Dynamic') + if m.get('MountAccess') is not None: + self.mount_access = m.get('MountAccess') + if m.get('MountPath') is not None: + self.mount_path = m.get('MountPath') + if m.get('OptionType') is not None: + self.option_type = m.get('OptionType') + if m.get('Options') is not None: + self.options = m.get('Options') + if m.get('Uri') is not None: + self.uri = m.get('Uri') return self -class GetIdleInstanceCullerResponseBody(TeaModel): +class GetInstanceResponseBodyIdleInstanceCuller(TeaModel): def __init__( self, - code: str = None, cpu_percent_threshold: int = None, gpu_percent_threshold: int = None, idle_time_in_minutes: int = None, instance_id: str = None, max_idle_time_in_minutes: int = None, - message: str = None, - request_id: str = None, - success: bool = None, ): - self.code = code self.cpu_percent_threshold = cpu_percent_threshold self.gpu_percent_threshold = gpu_percent_threshold self.idle_time_in_minutes = idle_time_in_minutes self.instance_id = instance_id self.max_idle_time_in_minutes = max_idle_time_in_minutes - self.message = message - self.request_id = request_id - self.success = success def validate(self): pass @@ -3205,8 +2593,6 @@ def to_map(self): return _map result = dict() - if self.code is not None: - result['Code'] = self.code if self.cpu_percent_threshold is not None: result['CpuPercentThreshold'] = self.cpu_percent_threshold if self.gpu_percent_threshold is not None: @@ -3217,18 +2603,10 @@ def to_map(self): result['InstanceId'] = self.instance_id if self.max_idle_time_in_minutes is not None: result['MaxIdleTimeInMinutes'] = self.max_idle_time_in_minutes - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.success is not None: - result['Success'] = self.success return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') if m.get('CpuPercentThreshold') is not None: self.cpu_percent_threshold = m.get('CpuPercentThreshold') if m.get('GpuPercentThreshold') is not None: @@ -3239,29 +2617,26 @@ def from_map(self, m: dict = None): self.instance_id = m.get('InstanceId') if m.get('MaxIdleTimeInMinutes') is not None: self.max_idle_time_in_minutes = m.get('MaxIdleTimeInMinutes') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Success') is not None: - self.success = m.get('Success') return self -class GetIdleInstanceCullerResponse(TeaModel): +class GetInstanceResponseBodyInstanceShutdownTimer(TeaModel): def __init__( self, - headers: Dict[str, str] = None, - status_code: int = None, - body: GetIdleInstanceCullerResponseBody = None, + due_time: str = None, + gmt_create_time: str = None, + gmt_modified_time: str = None, + instance_id: str = None, + remaining_time_in_ms: int = None, ): - self.headers = headers - self.status_code = status_code - self.body = body + self.due_time = due_time + self.gmt_create_time = gmt_create_time + self.gmt_modified_time = gmt_modified_time + self.instance_id = instance_id + self.remaining_time_in_ms = remaining_time_in_ms def validate(self): - if self.body: - self.body.validate() + pass def to_map(self): _map = super().to_map() @@ -3269,63 +2644,128 @@ def to_map(self): return _map result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() + if self.due_time is not None: + result['DueTime'] = self.due_time + if self.gmt_create_time is not None: + result['GmtCreateTime'] = self.gmt_create_time + if self.gmt_modified_time is not None: + result['GmtModifiedTime'] = self.gmt_modified_time + if self.instance_id is not None: + result['InstanceId'] = self.instance_id + if self.remaining_time_in_ms is not None: + result['RemainingTimeInMs'] = self.remaining_time_in_ms return result def from_map(self, m: dict = None): m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = GetIdleInstanceCullerResponseBody() - self.body = temp_model.from_map(m['body']) + if m.get('DueTime') is not None: + self.due_time = m.get('DueTime') + if m.get('GmtCreateTime') is not None: + self.gmt_create_time = m.get('GmtCreateTime') + if m.get('GmtModifiedTime') is not None: + self.gmt_modified_time = m.get('GmtModifiedTime') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') + if m.get('RemainingTimeInMs') is not None: + self.remaining_time_in_ms = m.get('RemainingTimeInMs') return self -class GetInstanceResponseBodyAffinityCPU(TeaModel): +class GetInstanceResponseBodyInstanceSnapshotList(TeaModel): def __init__( self, - enable: bool = None, + gmt_create_time: str = None, + gmt_modified_time: str = None, + image_id: str = None, + image_name: str = None, + image_url: str = None, + reason_code: str = None, + reason_message: str = None, + repository_url: str = None, + status: str = None, ): - self.enable = enable - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() + # 快照创建时间 + self.gmt_create_time = gmt_create_time + # 快照修改时间 + self.gmt_modified_time = gmt_modified_time + # 镜像Id + self.image_id = image_id + # 镜像名称 + self.image_name = image_name + # 镜像Url + self.image_url = image_url + # 实例快照错误代码 + self.reason_code = reason_code + # 实例快照错误消息 + self.reason_message = reason_message + # 镜像仓库Url + self.repository_url = repository_url + # 实例快照状态 + self.status = status + + def validate(self): + pass + + def to_map(self): + _map = super().to_map() if _map is not None: return _map result = dict() - if self.enable is not None: - result['Enable'] = self.enable + if self.gmt_create_time is not None: + result['GmtCreateTime'] = self.gmt_create_time + if self.gmt_modified_time is not None: + result['GmtModifiedTime'] = self.gmt_modified_time + if self.image_id is not None: + result['ImageId'] = self.image_id + if self.image_name is not None: + result['ImageName'] = self.image_name + if self.image_url is not None: + result['ImageUrl'] = self.image_url + if self.reason_code is not None: + result['ReasonCode'] = self.reason_code + if self.reason_message is not None: + result['ReasonMessage'] = self.reason_message + if self.repository_url is not None: + result['RepositoryUrl'] = self.repository_url + if self.status is not None: + result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Enable') is not None: - self.enable = m.get('Enable') + if m.get('GmtCreateTime') is not None: + self.gmt_create_time = m.get('GmtCreateTime') + if m.get('GmtModifiedTime') is not None: + self.gmt_modified_time = m.get('GmtModifiedTime') + if m.get('ImageId') is not None: + self.image_id = m.get('ImageId') + if m.get('ImageName') is not None: + self.image_name = m.get('ImageName') + if m.get('ImageUrl') is not None: + self.image_url = m.get('ImageUrl') + if m.get('ReasonCode') is not None: + self.reason_code = m.get('ReasonCode') + if m.get('ReasonMessage') is not None: + self.reason_message = m.get('ReasonMessage') + if m.get('RepositoryUrl') is not None: + self.repository_url = m.get('RepositoryUrl') + if m.get('Status') is not None: + self.status = m.get('Status') return self -class GetInstanceResponseBodyAffinity(TeaModel): +class GetInstanceResponseBodyLabels(TeaModel): def __init__( self, - cpu: GetInstanceResponseBodyAffinityCPU = None, + key: str = None, + value: str = None, ): - self.cpu = cpu + self.key = key + self.value = value def validate(self): - if self.cpu: - self.cpu.validate() + pass def to_map(self): _map = super().to_map() @@ -3333,30 +2773,46 @@ def to_map(self): return _map result = dict() - if self.cpu is not None: - result['CPU'] = self.cpu.to_map() + if self.key is not None: + result['Key'] = self.key + if self.value is not None: + result['Value'] = self.value return result def from_map(self, m: dict = None): m = m or dict() - if m.get('CPU') is not None: - temp_model = GetInstanceResponseBodyAffinityCPU() - self.cpu = temp_model.from_map(m['CPU']) + if m.get('Key') is not None: + self.key = m.get('Key') + if m.get('Value') is not None: + self.value = m.get('Value') return self -class GetInstanceResponseBodyCloudDisks(TeaModel): +class GetInstanceResponseBodyLatestSnapshot(TeaModel): def __init__( self, - capacity: str = None, - mount_path: str = None, - path: str = None, - sub_type: str = None, + gmt_create_time: str = None, + gmt_modified_time: str = None, + image_id: str = None, + image_name: str = None, + image_url: str = None, + reason_code: str = None, + reason_message: str = None, + repository_url: str = None, + status: str = None, ): - self.capacity = capacity - self.mount_path = mount_path - self.path = path - self.sub_type = sub_type + self.gmt_create_time = gmt_create_time + self.gmt_modified_time = gmt_modified_time + self.image_id = image_id + self.image_name = image_name + self.image_url = image_url + # 实例快照错误代码 + self.reason_code = reason_code + # 实例快照错误消息 + self.reason_message = reason_message + self.repository_url = repository_url + # 实例快照状态 + self.status = status def validate(self): pass @@ -3367,45 +2823,59 @@ def to_map(self): return _map result = dict() - if self.capacity is not None: - result['Capacity'] = self.capacity - if self.mount_path is not None: - result['MountPath'] = self.mount_path - if self.path is not None: - result['Path'] = self.path - if self.sub_type is not None: - result['SubType'] = self.sub_type + if self.gmt_create_time is not None: + result['GmtCreateTime'] = self.gmt_create_time + if self.gmt_modified_time is not None: + result['GmtModifiedTime'] = self.gmt_modified_time + if self.image_id is not None: + result['ImageId'] = self.image_id + if self.image_name is not None: + result['ImageName'] = self.image_name + if self.image_url is not None: + result['ImageUrl'] = self.image_url + if self.reason_code is not None: + result['ReasonCode'] = self.reason_code + if self.reason_message is not None: + result['ReasonMessage'] = self.reason_message + if self.repository_url is not None: + result['RepositoryUrl'] = self.repository_url + if self.status is not None: + result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Capacity') is not None: - self.capacity = m.get('Capacity') - if m.get('MountPath') is not None: - self.mount_path = m.get('MountPath') - if m.get('Path') is not None: - self.path = m.get('Path') - if m.get('SubType') is not None: - self.sub_type = m.get('SubType') + if m.get('GmtCreateTime') is not None: + self.gmt_create_time = m.get('GmtCreateTime') + if m.get('GmtModifiedTime') is not None: + self.gmt_modified_time = m.get('GmtModifiedTime') + if m.get('ImageId') is not None: + self.image_id = m.get('ImageId') + if m.get('ImageName') is not None: + self.image_name = m.get('ImageName') + if m.get('ImageUrl') is not None: + self.image_url = m.get('ImageUrl') + if m.get('ReasonCode') is not None: + self.reason_code = m.get('ReasonCode') + if m.get('ReasonMessage') is not None: + self.reason_message = m.get('ReasonMessage') + if m.get('RepositoryUrl') is not None: + self.repository_url = m.get('RepositoryUrl') + if m.get('Status') is not None: + self.status = m.get('Status') return self -class GetInstanceResponseBodyDatasets(TeaModel): +class GetInstanceResponseBodyNodeErrorRecovery(TeaModel): def __init__( self, - dataset_id: str = None, - dynamic: bool = None, - mount_path: str = None, - option_type: str = None, - options: str = None, - uri: str = None, + auto_switch_countdown_seconds: int = None, + enable_auto_switch_on_node_error: bool = None, + has_node_error: bool = None, ): - self.dataset_id = dataset_id - self.dynamic = dynamic - self.mount_path = mount_path - self.option_type = option_type - self.options = options - self.uri = uri + self.auto_switch_countdown_seconds = auto_switch_countdown_seconds + self.enable_auto_switch_on_node_error = enable_auto_switch_on_node_error + self.has_node_error = has_node_error def validate(self): pass @@ -3416,51 +2886,39 @@ def to_map(self): return _map result = dict() - if self.dataset_id is not None: - result['DatasetId'] = self.dataset_id - if self.dynamic is not None: - result['Dynamic'] = self.dynamic - if self.mount_path is not None: - result['MountPath'] = self.mount_path - if self.option_type is not None: - result['OptionType'] = self.option_type - if self.options is not None: - result['Options'] = self.options - if self.uri is not None: - result['Uri'] = self.uri + if self.auto_switch_countdown_seconds is not None: + result['autoSwitchCountdownSeconds'] = self.auto_switch_countdown_seconds + if self.enable_auto_switch_on_node_error is not None: + result['enableAutoSwitchOnNodeError'] = self.enable_auto_switch_on_node_error + if self.has_node_error is not None: + result['hasNodeError'] = self.has_node_error return result def from_map(self, m: dict = None): m = m or dict() - if m.get('DatasetId') is not None: - self.dataset_id = m.get('DatasetId') - if m.get('Dynamic') is not None: - self.dynamic = m.get('Dynamic') - if m.get('MountPath') is not None: - self.mount_path = m.get('MountPath') - if m.get('OptionType') is not None: - self.option_type = m.get('OptionType') - if m.get('Options') is not None: - self.options = m.get('Options') - if m.get('Uri') is not None: - self.uri = m.get('Uri') + if m.get('autoSwitchCountdownSeconds') is not None: + self.auto_switch_countdown_seconds = m.get('autoSwitchCountdownSeconds') + if m.get('enableAutoSwitchOnNodeError') is not None: + self.enable_auto_switch_on_node_error = m.get('enableAutoSwitchOnNodeError') + if m.get('hasNodeError') is not None: + self.has_node_error = m.get('hasNodeError') return self -class GetInstanceResponseBodyIdleInstanceCuller(TeaModel): +class GetInstanceResponseBodyRequestedResource(TeaModel): def __init__( self, - cpu_percent_threshold: int = None, - gpu_percent_threshold: int = None, - idle_time_in_minutes: int = None, - instance_id: str = None, - max_idle_time_in_minutes: int = None, + cpu: str = None, + gpu: str = None, + gputype: str = None, + memory: str = None, + shared_memory: str = None, ): - self.cpu_percent_threshold = cpu_percent_threshold - self.gpu_percent_threshold = gpu_percent_threshold - self.idle_time_in_minutes = idle_time_in_minutes - self.instance_id = instance_id - self.max_idle_time_in_minutes = max_idle_time_in_minutes + self.cpu = cpu + self.gpu = gpu + self.gputype = gputype + self.memory = memory + self.shared_memory = shared_memory def validate(self): pass @@ -3471,115 +2929,41 @@ def to_map(self): return _map result = dict() - if self.cpu_percent_threshold is not None: - result['CpuPercentThreshold'] = self.cpu_percent_threshold - if self.gpu_percent_threshold is not None: - result['GpuPercentThreshold'] = self.gpu_percent_threshold - if self.idle_time_in_minutes is not None: - result['IdleTimeInMinutes'] = self.idle_time_in_minutes - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.max_idle_time_in_minutes is not None: - result['MaxIdleTimeInMinutes'] = self.max_idle_time_in_minutes - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('CpuPercentThreshold') is not None: - self.cpu_percent_threshold = m.get('CpuPercentThreshold') - if m.get('GpuPercentThreshold') is not None: - self.gpu_percent_threshold = m.get('GpuPercentThreshold') - if m.get('IdleTimeInMinutes') is not None: - self.idle_time_in_minutes = m.get('IdleTimeInMinutes') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('MaxIdleTimeInMinutes') is not None: - self.max_idle_time_in_minutes = m.get('MaxIdleTimeInMinutes') - return self - - -class GetInstanceResponseBodyInstanceShutdownTimer(TeaModel): - def __init__( - self, - due_time: str = None, - gmt_create_time: str = None, - gmt_modified_time: str = None, - instance_id: str = None, - remaining_time_in_ms: int = None, - ): - self.due_time = due_time - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time - self.instance_id = instance_id - self.remaining_time_in_ms = remaining_time_in_ms - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.due_time is not None: - result['DueTime'] = self.due_time - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.remaining_time_in_ms is not None: - result['RemainingTimeInMs'] = self.remaining_time_in_ms + if self.cpu is not None: + result['CPU'] = self.cpu + if self.gpu is not None: + result['GPU'] = self.gpu + if self.gputype is not None: + result['GPUType'] = self.gputype + if self.memory is not None: + result['Memory'] = self.memory + if self.shared_memory is not None: + result['SharedMemory'] = self.shared_memory return result def from_map(self, m: dict = None): m = m or dict() - if m.get('DueTime') is not None: - self.due_time = m.get('DueTime') - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('RemainingTimeInMs') is not None: - self.remaining_time_in_ms = m.get('RemainingTimeInMs') + if m.get('CPU') is not None: + self.cpu = m.get('CPU') + if m.get('GPU') is not None: + self.gpu = m.get('GPU') + if m.get('GPUType') is not None: + self.gputype = m.get('GPUType') + if m.get('Memory') is not None: + self.memory = m.get('Memory') + if m.get('SharedMemory') is not None: + self.shared_memory = m.get('SharedMemory') return self -class GetInstanceResponseBodyInstanceSnapshotList(TeaModel): +class GetInstanceResponseBodyTags(TeaModel): def __init__( self, - gmt_create_time: str = None, - gmt_modified_time: str = None, - image_id: str = None, - image_name: str = None, - image_url: str = None, - reason_code: str = None, - reason_message: str = None, - repository_url: str = None, - status: str = None, + tag_key: str = None, + tag_value: str = None, ): - # 快照创建时间 - self.gmt_create_time = gmt_create_time - # 快照修改时间 - self.gmt_modified_time = gmt_modified_time - # 镜像Id - self.image_id = image_id - # 镜像名称 - self.image_name = image_name - # 镜像Url - self.image_url = image_url - # 实例快照错误代码 - self.reason_code = reason_code - # 实例快照错误消息 - self.reason_message = reason_message - # 镜像仓库Url - self.repository_url = repository_url - # 实例快照状态 - self.status = status + self.tag_key = tag_key + self.tag_value = tag_value def validate(self): pass @@ -3590,60 +2974,44 @@ def to_map(self): return _map result = dict() - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.image_id is not None: - result['ImageId'] = self.image_id - if self.image_name is not None: - result['ImageName'] = self.image_name - if self.image_url is not None: - result['ImageUrl'] = self.image_url - if self.reason_code is not None: - result['ReasonCode'] = self.reason_code - if self.reason_message is not None: - result['ReasonMessage'] = self.reason_message - if self.repository_url is not None: - result['RepositoryUrl'] = self.repository_url - if self.status is not None: - result['Status'] = self.status + if self.tag_key is not None: + result['TagKey'] = self.tag_key + if self.tag_value is not None: + result['TagValue'] = self.tag_value return result def from_map(self, m: dict = None): m = m or dict() - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('ImageId') is not None: - self.image_id = m.get('ImageId') - if m.get('ImageName') is not None: - self.image_name = m.get('ImageName') - if m.get('ImageUrl') is not None: - self.image_url = m.get('ImageUrl') - if m.get('ReasonCode') is not None: - self.reason_code = m.get('ReasonCode') - if m.get('ReasonMessage') is not None: - self.reason_message = m.get('ReasonMessage') - if m.get('RepositoryUrl') is not None: - self.repository_url = m.get('RepositoryUrl') - if m.get('Status') is not None: - self.status = m.get('Status') + if m.get('TagKey') is not None: + self.tag_key = m.get('TagKey') + if m.get('TagValue') is not None: + self.tag_value = m.get('TagValue') return self -class GetInstanceResponseBodyLabels(TeaModel): +class GetInstanceResponseBodyUserVpc(TeaModel): def __init__( self, - key: str = None, - value: str = None, + default_route: str = None, + extended_cidrs: List[str] = None, + forward_infos: List[ForwardInfoResponse] = None, + security_group_id: str = None, + v_switch_id: str = None, + vpc_id: str = None, ): - self.key = key - self.value = value + self.default_route = default_route + self.extended_cidrs = extended_cidrs + self.forward_infos = forward_infos + self.security_group_id = security_group_id + self.v_switch_id = v_switch_id + # Vpc Id。 + self.vpc_id = vpc_id def validate(self): - pass + if self.forward_infos: + for k in self.forward_infos: + if k: + k.validate() def to_map(self): _map = super().to_map() @@ -3651,49 +3019,188 @@ def to_map(self): return _map result = dict() - if self.key is not None: - result['Key'] = self.key - if self.value is not None: - result['Value'] = self.value + if self.default_route is not None: + result['DefaultRoute'] = self.default_route + if self.extended_cidrs is not None: + result['ExtendedCIDRs'] = self.extended_cidrs + result['ForwardInfos'] = [] + if self.forward_infos is not None: + for k in self.forward_infos: + result['ForwardInfos'].append(k.to_map() if k else None) + if self.security_group_id is not None: + result['SecurityGroupId'] = self.security_group_id + if self.v_switch_id is not None: + result['VSwitchId'] = self.v_switch_id + if self.vpc_id is not None: + result['VpcId'] = self.vpc_id return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Key') is not None: - self.key = m.get('Key') - if m.get('Value') is not None: - self.value = m.get('Value') + if m.get('DefaultRoute') is not None: + self.default_route = m.get('DefaultRoute') + if m.get('ExtendedCIDRs') is not None: + self.extended_cidrs = m.get('ExtendedCIDRs') + self.forward_infos = [] + if m.get('ForwardInfos') is not None: + for k in m.get('ForwardInfos'): + temp_model = ForwardInfoResponse() + self.forward_infos.append(temp_model.from_map(k)) + if m.get('SecurityGroupId') is not None: + self.security_group_id = m.get('SecurityGroupId') + if m.get('VSwitchId') is not None: + self.v_switch_id = m.get('VSwitchId') + if m.get('VpcId') is not None: + self.vpc_id = m.get('VpcId') return self -class GetInstanceResponseBodyLatestSnapshot(TeaModel): +class GetInstanceResponseBody(TeaModel): def __init__( self, + accelerator_type: str = None, + accessibility: str = None, + accumulated_running_time_in_ms: int = None, + affinity: GetInstanceResponseBodyAffinity = None, + cloud_disks: List[GetInstanceResponseBodyCloudDisks] = None, + code: str = None, + credential_config: CredentialConfig = None, + datasets: List[GetInstanceResponseBodyDatasets] = None, + driver: str = None, + dynamic_mount: DynamicMount = None, + ecs_spec: str = None, + environment_variables: Dict[str, str] = None, gmt_create_time: str = None, gmt_modified_time: str = None, + http_status_code: int = None, + idle_instance_culler: GetInstanceResponseBodyIdleInstanceCuller = None, + image_auth: str = None, image_id: str = None, image_name: str = None, image_url: str = None, + instance_id: str = None, + instance_name: str = None, + instance_shutdown_timer: GetInstanceResponseBodyInstanceShutdownTimer = None, + instance_snapshot_list: List[GetInstanceResponseBodyInstanceSnapshotList] = None, + instance_url: str = None, + jupyterlab_url: str = None, + labels: List[GetInstanceResponseBodyLabels] = None, + latest_snapshot: GetInstanceResponseBodyLatestSnapshot = None, + message: str = None, + node_error_recovery: GetInstanceResponseBodyNodeErrorRecovery = None, + payment_type: str = None, + priority: int = None, + proxy_path: str = None, reason_code: str = None, reason_message: str = None, - repository_url: str = None, + request_id: str = None, + requested_resource: GetInstanceResponseBodyRequestedResource = None, + resource_id: str = None, + resource_name: str = None, status: str = None, + success: bool = None, + tags: List[GetInstanceResponseBodyTags] = None, + terminal_url: str = None, + user_id: str = None, + user_name: str = None, + user_vpc: GetInstanceResponseBodyUserVpc = None, + web_ideurl: str = None, + workspace_id: str = None, + workspace_name: str = None, + workspace_source: str = None, ): - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time - self.image_id = image_id - self.image_name = image_name + self.accelerator_type = accelerator_type + self.accessibility = accessibility + self.accumulated_running_time_in_ms = accumulated_running_time_in_ms + self.affinity = affinity + self.cloud_disks = cloud_disks + self.code = code + self.credential_config = credential_config + self.datasets = datasets + self.driver = driver + self.dynamic_mount = dynamic_mount + self.ecs_spec = ecs_spec + self.environment_variables = environment_variables + self.gmt_create_time = gmt_create_time + self.gmt_modified_time = gmt_modified_time + self.http_status_code = http_status_code + self.idle_instance_culler = idle_instance_culler + self.image_auth = image_auth + self.image_id = image_id + self.image_name = image_name self.image_url = image_url - # 实例快照错误代码 + self.instance_id = instance_id + self.instance_name = instance_name + self.instance_shutdown_timer = instance_shutdown_timer + self.instance_snapshot_list = instance_snapshot_list + self.instance_url = instance_url + # Jupyterlab Url。 + self.jupyterlab_url = jupyterlab_url + self.labels = labels + self.latest_snapshot = latest_snapshot + self.message = message + self.node_error_recovery = node_error_recovery + self.payment_type = payment_type + self.priority = priority + self.proxy_path = proxy_path self.reason_code = reason_code - # 实例快照错误消息 self.reason_message = reason_message - self.repository_url = repository_url - # 实例快照状态 + self.request_id = request_id + self.requested_resource = requested_resource + self.resource_id = resource_id + self.resource_name = resource_name self.status = status + self.success = success + self.tags = tags + self.terminal_url = terminal_url + self.user_id = user_id + self.user_name = user_name + self.user_vpc = user_vpc + # Web IDE url。 + self.web_ideurl = web_ideurl + self.workspace_id = workspace_id + self.workspace_name = workspace_name + self.workspace_source = workspace_source def validate(self): - pass + if self.affinity: + self.affinity.validate() + if self.cloud_disks: + for k in self.cloud_disks: + if k: + k.validate() + if self.credential_config: + self.credential_config.validate() + if self.datasets: + for k in self.datasets: + if k: + k.validate() + if self.dynamic_mount: + self.dynamic_mount.validate() + if self.idle_instance_culler: + self.idle_instance_culler.validate() + if self.instance_shutdown_timer: + self.instance_shutdown_timer.validate() + if self.instance_snapshot_list: + for k in self.instance_snapshot_list: + if k: + k.validate() + if self.labels: + for k in self.labels: + if k: + k.validate() + if self.latest_snapshot: + self.latest_snapshot.validate() + if self.node_error_recovery: + self.node_error_recovery.validate() + if self.requested_resource: + self.requested_resource.validate() + if self.tags: + for k in self.tags: + if k: + k.validate() + if self.user_vpc: + self.user_vpc.validate() def to_map(self): _map = super().to_map() @@ -3701,62 +3208,261 @@ def to_map(self): return _map result = dict() + if self.accelerator_type is not None: + result['AcceleratorType'] = self.accelerator_type + if self.accessibility is not None: + result['Accessibility'] = self.accessibility + if self.accumulated_running_time_in_ms is not None: + result['AccumulatedRunningTimeInMs'] = self.accumulated_running_time_in_ms + if self.affinity is not None: + result['Affinity'] = self.affinity.to_map() + result['CloudDisks'] = [] + if self.cloud_disks is not None: + for k in self.cloud_disks: + result['CloudDisks'].append(k.to_map() if k else None) + if self.code is not None: + result['Code'] = self.code + if self.credential_config is not None: + result['CredentialConfig'] = self.credential_config.to_map() + result['Datasets'] = [] + if self.datasets is not None: + for k in self.datasets: + result['Datasets'].append(k.to_map() if k else None) + if self.driver is not None: + result['Driver'] = self.driver + if self.dynamic_mount is not None: + result['DynamicMount'] = self.dynamic_mount.to_map() + if self.ecs_spec is not None: + result['EcsSpec'] = self.ecs_spec + if self.environment_variables is not None: + result['EnvironmentVariables'] = self.environment_variables if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time + if self.http_status_code is not None: + result['HttpStatusCode'] = self.http_status_code + if self.idle_instance_culler is not None: + result['IdleInstanceCuller'] = self.idle_instance_culler.to_map() + if self.image_auth is not None: + result['ImageAuth'] = self.image_auth if self.image_id is not None: result['ImageId'] = self.image_id if self.image_name is not None: result['ImageName'] = self.image_name if self.image_url is not None: result['ImageUrl'] = self.image_url + if self.instance_id is not None: + result['InstanceId'] = self.instance_id + if self.instance_name is not None: + result['InstanceName'] = self.instance_name + if self.instance_shutdown_timer is not None: + result['InstanceShutdownTimer'] = self.instance_shutdown_timer.to_map() + result['InstanceSnapshotList'] = [] + if self.instance_snapshot_list is not None: + for k in self.instance_snapshot_list: + result['InstanceSnapshotList'].append(k.to_map() if k else None) + if self.instance_url is not None: + result['InstanceUrl'] = self.instance_url + if self.jupyterlab_url is not None: + result['JupyterlabUrl'] = self.jupyterlab_url + result['Labels'] = [] + if self.labels is not None: + for k in self.labels: + result['Labels'].append(k.to_map() if k else None) + if self.latest_snapshot is not None: + result['LatestSnapshot'] = self.latest_snapshot.to_map() + if self.message is not None: + result['Message'] = self.message + if self.node_error_recovery is not None: + result['NodeErrorRecovery'] = self.node_error_recovery.to_map() + if self.payment_type is not None: + result['PaymentType'] = self.payment_type + if self.priority is not None: + result['Priority'] = self.priority + if self.proxy_path is not None: + result['ProxyPath'] = self.proxy_path if self.reason_code is not None: result['ReasonCode'] = self.reason_code if self.reason_message is not None: result['ReasonMessage'] = self.reason_message - if self.repository_url is not None: - result['RepositoryUrl'] = self.repository_url + if self.request_id is not None: + result['RequestId'] = self.request_id + if self.requested_resource is not None: + result['RequestedResource'] = self.requested_resource.to_map() + if self.resource_id is not None: + result['ResourceId'] = self.resource_id + if self.resource_name is not None: + result['ResourceName'] = self.resource_name if self.status is not None: result['Status'] = self.status + if self.success is not None: + result['Success'] = self.success + result['Tags'] = [] + if self.tags is not None: + for k in self.tags: + result['Tags'].append(k.to_map() if k else None) + if self.terminal_url is not None: + result['TerminalUrl'] = self.terminal_url + if self.user_id is not None: + result['UserId'] = self.user_id + if self.user_name is not None: + result['UserName'] = self.user_name + if self.user_vpc is not None: + result['UserVpc'] = self.user_vpc.to_map() + if self.web_ideurl is not None: + result['WebIDEUrl'] = self.web_ideurl + if self.workspace_id is not None: + result['WorkspaceId'] = self.workspace_id + if self.workspace_name is not None: + result['WorkspaceName'] = self.workspace_name + if self.workspace_source is not None: + result['WorkspaceSource'] = self.workspace_source return result def from_map(self, m: dict = None): m = m or dict() + if m.get('AcceleratorType') is not None: + self.accelerator_type = m.get('AcceleratorType') + if m.get('Accessibility') is not None: + self.accessibility = m.get('Accessibility') + if m.get('AccumulatedRunningTimeInMs') is not None: + self.accumulated_running_time_in_ms = m.get('AccumulatedRunningTimeInMs') + if m.get('Affinity') is not None: + temp_model = GetInstanceResponseBodyAffinity() + self.affinity = temp_model.from_map(m['Affinity']) + self.cloud_disks = [] + if m.get('CloudDisks') is not None: + for k in m.get('CloudDisks'): + temp_model = GetInstanceResponseBodyCloudDisks() + self.cloud_disks.append(temp_model.from_map(k)) + if m.get('Code') is not None: + self.code = m.get('Code') + if m.get('CredentialConfig') is not None: + temp_model = CredentialConfig() + self.credential_config = temp_model.from_map(m['CredentialConfig']) + self.datasets = [] + if m.get('Datasets') is not None: + for k in m.get('Datasets'): + temp_model = GetInstanceResponseBodyDatasets() + self.datasets.append(temp_model.from_map(k)) + if m.get('Driver') is not None: + self.driver = m.get('Driver') + if m.get('DynamicMount') is not None: + temp_model = DynamicMount() + self.dynamic_mount = temp_model.from_map(m['DynamicMount']) + if m.get('EcsSpec') is not None: + self.ecs_spec = m.get('EcsSpec') + if m.get('EnvironmentVariables') is not None: + self.environment_variables = m.get('EnvironmentVariables') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') + if m.get('HttpStatusCode') is not None: + self.http_status_code = m.get('HttpStatusCode') + if m.get('IdleInstanceCuller') is not None: + temp_model = GetInstanceResponseBodyIdleInstanceCuller() + self.idle_instance_culler = temp_model.from_map(m['IdleInstanceCuller']) + if m.get('ImageAuth') is not None: + self.image_auth = m.get('ImageAuth') if m.get('ImageId') is not None: self.image_id = m.get('ImageId') if m.get('ImageName') is not None: self.image_name = m.get('ImageName') if m.get('ImageUrl') is not None: self.image_url = m.get('ImageUrl') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') + if m.get('InstanceName') is not None: + self.instance_name = m.get('InstanceName') + if m.get('InstanceShutdownTimer') is not None: + temp_model = GetInstanceResponseBodyInstanceShutdownTimer() + self.instance_shutdown_timer = temp_model.from_map(m['InstanceShutdownTimer']) + self.instance_snapshot_list = [] + if m.get('InstanceSnapshotList') is not None: + for k in m.get('InstanceSnapshotList'): + temp_model = GetInstanceResponseBodyInstanceSnapshotList() + self.instance_snapshot_list.append(temp_model.from_map(k)) + if m.get('InstanceUrl') is not None: + self.instance_url = m.get('InstanceUrl') + if m.get('JupyterlabUrl') is not None: + self.jupyterlab_url = m.get('JupyterlabUrl') + self.labels = [] + if m.get('Labels') is not None: + for k in m.get('Labels'): + temp_model = GetInstanceResponseBodyLabels() + self.labels.append(temp_model.from_map(k)) + if m.get('LatestSnapshot') is not None: + temp_model = GetInstanceResponseBodyLatestSnapshot() + self.latest_snapshot = temp_model.from_map(m['LatestSnapshot']) + if m.get('Message') is not None: + self.message = m.get('Message') + if m.get('NodeErrorRecovery') is not None: + temp_model = GetInstanceResponseBodyNodeErrorRecovery() + self.node_error_recovery = temp_model.from_map(m['NodeErrorRecovery']) + if m.get('PaymentType') is not None: + self.payment_type = m.get('PaymentType') + if m.get('Priority') is not None: + self.priority = m.get('Priority') + if m.get('ProxyPath') is not None: + self.proxy_path = m.get('ProxyPath') if m.get('ReasonCode') is not None: self.reason_code = m.get('ReasonCode') if m.get('ReasonMessage') is not None: self.reason_message = m.get('ReasonMessage') - if m.get('RepositoryUrl') is not None: - self.repository_url = m.get('RepositoryUrl') - if m.get('Status') is not None: - self.status = m.get('Status') - return self - + if m.get('RequestId') is not None: + self.request_id = m.get('RequestId') + if m.get('RequestedResource') is not None: + temp_model = GetInstanceResponseBodyRequestedResource() + self.requested_resource = temp_model.from_map(m['RequestedResource']) + if m.get('ResourceId') is not None: + self.resource_id = m.get('ResourceId') + if m.get('ResourceName') is not None: + self.resource_name = m.get('ResourceName') + if m.get('Status') is not None: + self.status = m.get('Status') + if m.get('Success') is not None: + self.success = m.get('Success') + self.tags = [] + if m.get('Tags') is not None: + for k in m.get('Tags'): + temp_model = GetInstanceResponseBodyTags() + self.tags.append(temp_model.from_map(k)) + if m.get('TerminalUrl') is not None: + self.terminal_url = m.get('TerminalUrl') + if m.get('UserId') is not None: + self.user_id = m.get('UserId') + if m.get('UserName') is not None: + self.user_name = m.get('UserName') + if m.get('UserVpc') is not None: + temp_model = GetInstanceResponseBodyUserVpc() + self.user_vpc = temp_model.from_map(m['UserVpc']) + if m.get('WebIDEUrl') is not None: + self.web_ideurl = m.get('WebIDEUrl') + if m.get('WorkspaceId') is not None: + self.workspace_id = m.get('WorkspaceId') + if m.get('WorkspaceName') is not None: + self.workspace_name = m.get('WorkspaceName') + if m.get('WorkspaceSource') is not None: + self.workspace_source = m.get('WorkspaceSource') + return self -class GetInstanceResponseBodyNodeErrorRecovery(TeaModel): + +class GetInstanceResponse(TeaModel): def __init__( self, - auto_switch_countdown_seconds: int = None, - enable_auto_switch_on_node_error: bool = None, - has_node_error: bool = None, + headers: Dict[str, str] = None, + status_code: int = None, + body: GetInstanceResponseBody = None, ): - self.auto_switch_countdown_seconds = auto_switch_countdown_seconds - self.enable_auto_switch_on_node_error = enable_auto_switch_on_node_error - self.has_node_error = has_node_error + self.headers = headers + self.status_code = status_code + self.body = body def validate(self): - pass + if self.body: + self.body.validate() def to_map(self): _map = super().to_map() @@ -3764,39 +3470,38 @@ def to_map(self): return _map result = dict() - if self.auto_switch_countdown_seconds is not None: - result['autoSwitchCountdownSeconds'] = self.auto_switch_countdown_seconds - if self.enable_auto_switch_on_node_error is not None: - result['enableAutoSwitchOnNodeError'] = self.enable_auto_switch_on_node_error - if self.has_node_error is not None: - result['hasNodeError'] = self.has_node_error + if self.headers is not None: + result['headers'] = self.headers + if self.status_code is not None: + result['statusCode'] = self.status_code + if self.body is not None: + result['body'] = self.body.to_map() return result def from_map(self, m: dict = None): m = m or dict() - if m.get('autoSwitchCountdownSeconds') is not None: - self.auto_switch_countdown_seconds = m.get('autoSwitchCountdownSeconds') - if m.get('enableAutoSwitchOnNodeError') is not None: - self.enable_auto_switch_on_node_error = m.get('enableAutoSwitchOnNodeError') - if m.get('hasNodeError') is not None: - self.has_node_error = m.get('hasNodeError') + if m.get('headers') is not None: + self.headers = m.get('headers') + if m.get('statusCode') is not None: + self.status_code = m.get('statusCode') + if m.get('body') is not None: + temp_model = GetInstanceResponseBody() + self.body = temp_model.from_map(m['body']) return self -class GetInstanceResponseBodyRequestedResource(TeaModel): +class GetInstanceEventsRequest(TeaModel): def __init__( self, - cpu: str = None, - gpu: str = None, - gputype: str = None, - memory: str = None, - shared_memory: str = None, + end_time: str = None, + max_events_num: int = None, + start_time: str = None, + token: str = None, ): - self.cpu = cpu - self.gpu = gpu - self.gputype = gputype - self.memory = memory - self.shared_memory = shared_memory + self.end_time = end_time + self.max_events_num = max_events_num + self.start_time = start_time + self.token = token def validate(self): pass @@ -3807,56 +3512,50 @@ def to_map(self): return _map result = dict() - if self.cpu is not None: - result['CPU'] = self.cpu - if self.gpu is not None: - result['GPU'] = self.gpu - if self.gputype is not None: - result['GPUType'] = self.gputype - if self.memory is not None: - result['Memory'] = self.memory - if self.shared_memory is not None: - result['SharedMemory'] = self.shared_memory + if self.end_time is not None: + result['EndTime'] = self.end_time + if self.max_events_num is not None: + result['MaxEventsNum'] = self.max_events_num + if self.start_time is not None: + result['StartTime'] = self.start_time + if self.token is not None: + result['Token'] = self.token return result def from_map(self, m: dict = None): m = m or dict() - if m.get('CPU') is not None: - self.cpu = m.get('CPU') - if m.get('GPU') is not None: - self.gpu = m.get('GPU') - if m.get('GPUType') is not None: - self.gputype = m.get('GPUType') - if m.get('Memory') is not None: - self.memory = m.get('Memory') - if m.get('SharedMemory') is not None: - self.shared_memory = m.get('SharedMemory') + if m.get('EndTime') is not None: + self.end_time = m.get('EndTime') + if m.get('MaxEventsNum') is not None: + self.max_events_num = m.get('MaxEventsNum') + if m.get('StartTime') is not None: + self.start_time = m.get('StartTime') + if m.get('Token') is not None: + self.token = m.get('Token') return self -class GetInstanceResponseBodyUserVpc(TeaModel): +class GetInstanceEventsResponseBody(TeaModel): def __init__( self, - default_route: str = None, - extended_cidrs: List[str] = None, - forward_infos: List[ForwardInfoResponse] = None, - security_group_id: str = None, - v_switch_id: str = None, - vpc_id: str = None, + code: str = None, + events: List[str] = None, + http_status_code: int = None, + instance_id: str = None, + message: str = None, + request_id: str = None, + success: bool = None, ): - self.default_route = default_route - self.extended_cidrs = extended_cidrs - self.forward_infos = forward_infos - self.security_group_id = security_group_id - self.v_switch_id = v_switch_id - # Vpc Id。 - self.vpc_id = vpc_id + self.code = code + self.events = events + self.http_status_code = http_status_code + self.instance_id = instance_id + self.message = message + self.request_id = request_id + self.success = success def validate(self): - if self.forward_infos: - for k in self.forward_infos: - if k: - k.validate() + pass def to_map(self): _map = super().to_map() @@ -3864,178 +3563,226 @@ def to_map(self): return _map result = dict() - if self.default_route is not None: - result['DefaultRoute'] = self.default_route - if self.extended_cidrs is not None: - result['ExtendedCIDRs'] = self.extended_cidrs - result['ForwardInfos'] = [] - if self.forward_infos is not None: - for k in self.forward_infos: - result['ForwardInfos'].append(k.to_map() if k else None) - if self.security_group_id is not None: - result['SecurityGroupId'] = self.security_group_id - if self.v_switch_id is not None: - result['VSwitchId'] = self.v_switch_id - if self.vpc_id is not None: - result['VpcId'] = self.vpc_id + if self.code is not None: + result['Code'] = self.code + if self.events is not None: + result['Events'] = self.events + if self.http_status_code is not None: + result['HttpStatusCode'] = self.http_status_code + if self.instance_id is not None: + result['InstanceId'] = self.instance_id + if self.message is not None: + result['Message'] = self.message + if self.request_id is not None: + result['RequestId'] = self.request_id + if self.success is not None: + result['Success'] = self.success return result def from_map(self, m: dict = None): m = m or dict() - if m.get('DefaultRoute') is not None: - self.default_route = m.get('DefaultRoute') - if m.get('ExtendedCIDRs') is not None: - self.extended_cidrs = m.get('ExtendedCIDRs') - self.forward_infos = [] - if m.get('ForwardInfos') is not None: - for k in m.get('ForwardInfos'): - temp_model = ForwardInfoResponse() - self.forward_infos.append(temp_model.from_map(k)) - if m.get('SecurityGroupId') is not None: - self.security_group_id = m.get('SecurityGroupId') - if m.get('VSwitchId') is not None: - self.v_switch_id = m.get('VSwitchId') - if m.get('VpcId') is not None: - self.vpc_id = m.get('VpcId') + if m.get('Code') is not None: + self.code = m.get('Code') + if m.get('Events') is not None: + self.events = m.get('Events') + if m.get('HttpStatusCode') is not None: + self.http_status_code = m.get('HttpStatusCode') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') + if m.get('Message') is not None: + self.message = m.get('Message') + if m.get('RequestId') is not None: + self.request_id = m.get('RequestId') + if m.get('Success') is not None: + self.success = m.get('Success') return self -class GetInstanceResponseBody(TeaModel): +class GetInstanceEventsResponse(TeaModel): def __init__( self, - accelerator_type: str = None, - accessibility: str = None, - accumulated_running_time_in_ms: int = None, - affinity: GetInstanceResponseBodyAffinity = None, - cloud_disks: List[GetInstanceResponseBodyCloudDisks] = None, - code: str = None, - datasets: List[GetInstanceResponseBodyDatasets] = None, - driver: str = None, - dynamic_mount: DynamicMount = None, - ecs_spec: str = None, - environment_variables: Dict[str, str] = None, - gmt_create_time: str = None, - gmt_modified_time: str = None, - http_status_code: int = None, - idle_instance_culler: GetInstanceResponseBodyIdleInstanceCuller = None, - image_auth: str = None, - image_id: str = None, - image_name: str = None, - image_url: str = None, - instance_id: str = None, - instance_name: str = None, - instance_shutdown_timer: GetInstanceResponseBodyInstanceShutdownTimer = None, - instance_snapshot_list: List[GetInstanceResponseBodyInstanceSnapshotList] = None, - instance_url: str = None, - jupyterlab_url: str = None, - labels: List[GetInstanceResponseBodyLabels] = None, - latest_snapshot: GetInstanceResponseBodyLatestSnapshot = None, - message: str = None, - node_error_recovery: GetInstanceResponseBodyNodeErrorRecovery = None, - payment_type: str = None, - priority: int = None, - reason_code: str = None, - reason_message: str = None, + headers: Dict[str, str] = None, + status_code: int = None, + body: GetInstanceEventsResponseBody = None, + ): + self.headers = headers + self.status_code = status_code + self.body = body + + def validate(self): + if self.body: + self.body.validate() + + def to_map(self): + _map = super().to_map() + if _map is not None: + return _map + + result = dict() + if self.headers is not None: + result['headers'] = self.headers + if self.status_code is not None: + result['statusCode'] = self.status_code + if self.body is not None: + result['body'] = self.body.to_map() + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('headers') is not None: + self.headers = m.get('headers') + if m.get('statusCode') is not None: + self.status_code = m.get('statusCode') + if m.get('body') is not None: + temp_model = GetInstanceEventsResponseBody() + self.body = temp_model.from_map(m['body']) + return self + + +class GetInstanceMetricsRequest(TeaModel): + def __init__( + self, + end_time: str = None, + metric_type: str = None, + start_time: str = None, + time_step: str = None, + ): + self.end_time = end_time + # This parameter is required. + self.metric_type = metric_type + self.start_time = start_time + self.time_step = time_step + + def validate(self): + pass + + def to_map(self): + _map = super().to_map() + if _map is not None: + return _map + + result = dict() + if self.end_time is not None: + result['EndTime'] = self.end_time + if self.metric_type is not None: + result['MetricType'] = self.metric_type + if self.start_time is not None: + result['StartTime'] = self.start_time + if self.time_step is not None: + result['TimeStep'] = self.time_step + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('EndTime') is not None: + self.end_time = m.get('EndTime') + if m.get('MetricType') is not None: + self.metric_type = m.get('MetricType') + if m.get('StartTime') is not None: + self.start_time = m.get('StartTime') + if m.get('TimeStep') is not None: + self.time_step = m.get('TimeStep') + return self + + +class GetInstanceMetricsResponseBodyPodMetricsMetrics(TeaModel): + def __init__( + self, + time: int = None, + value: float = None, + ): + self.time = time + self.value = value + + def validate(self): + pass + + def to_map(self): + _map = super().to_map() + if _map is not None: + return _map + + result = dict() + if self.time is not None: + result['Time'] = self.time + if self.value is not None: + result['Value'] = self.value + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('Time') is not None: + self.time = m.get('Time') + if m.get('Value') is not None: + self.value = m.get('Value') + return self + + +class GetInstanceMetricsResponseBodyPodMetrics(TeaModel): + def __init__( + self, + metrics: List[GetInstanceMetricsResponseBodyPodMetricsMetrics] = None, + pod_id: str = None, + ): + self.metrics = metrics + self.pod_id = pod_id + + def validate(self): + if self.metrics: + for k in self.metrics: + if k: + k.validate() + + def to_map(self): + _map = super().to_map() + if _map is not None: + return _map + + result = dict() + result['Metrics'] = [] + if self.metrics is not None: + for k in self.metrics: + result['Metrics'].append(k.to_map() if k else None) + if self.pod_id is not None: + result['PodId'] = self.pod_id + return result + + def from_map(self, m: dict = None): + m = m or dict() + self.metrics = [] + if m.get('Metrics') is not None: + for k in m.get('Metrics'): + temp_model = GetInstanceMetricsResponseBodyPodMetricsMetrics() + self.metrics.append(temp_model.from_map(k)) + if m.get('PodId') is not None: + self.pod_id = m.get('PodId') + return self + + +class GetInstanceMetricsResponseBody(TeaModel): + def __init__( + self, + code: str = None, + http_status_code: int = None, + instance_id: str = None, + message: str = None, + pod_metrics: List[GetInstanceMetricsResponseBodyPodMetrics] = None, request_id: str = None, - requested_resource: GetInstanceResponseBodyRequestedResource = None, - resource_id: str = None, - resource_name: str = None, - status: str = None, success: bool = None, - system_image_url: str = None, - terminal_url: str = None, - user_id: str = None, - user_name: str = None, - user_vpc: GetInstanceResponseBodyUserVpc = None, - web_ideurl: str = None, - workspace_id: str = None, - workspace_name: str = None, - workspace_source: str = None, ): - self.accelerator_type = accelerator_type - self.accessibility = accessibility - self.accumulated_running_time_in_ms = accumulated_running_time_in_ms - self.affinity = affinity - self.cloud_disks = cloud_disks self.code = code - self.datasets = datasets - self.driver = driver - self.dynamic_mount = dynamic_mount - self.ecs_spec = ecs_spec - self.environment_variables = environment_variables - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time self.http_status_code = http_status_code - self.idle_instance_culler = idle_instance_culler - self.image_auth = image_auth - self.image_id = image_id - self.image_name = image_name - self.image_url = image_url self.instance_id = instance_id - self.instance_name = instance_name - self.instance_shutdown_timer = instance_shutdown_timer - self.instance_snapshot_list = instance_snapshot_list - self.instance_url = instance_url - # Jupyterlab Url。 - self.jupyterlab_url = jupyterlab_url - self.labels = labels - self.latest_snapshot = latest_snapshot self.message = message - self.node_error_recovery = node_error_recovery - self.payment_type = payment_type - self.priority = priority - self.reason_code = reason_code - self.reason_message = reason_message + self.pod_metrics = pod_metrics self.request_id = request_id - self.requested_resource = requested_resource - self.resource_id = resource_id - self.resource_name = resource_name - self.status = status self.success = success - self.system_image_url = system_image_url - self.terminal_url = terminal_url - self.user_id = user_id - self.user_name = user_name - self.user_vpc = user_vpc - # Web IDE url。 - self.web_ideurl = web_ideurl - self.workspace_id = workspace_id - self.workspace_name = workspace_name - self.workspace_source = workspace_source def validate(self): - if self.affinity: - self.affinity.validate() - if self.cloud_disks: - for k in self.cloud_disks: - if k: - k.validate() - if self.datasets: - for k in self.datasets: - if k: - k.validate() - if self.dynamic_mount: - self.dynamic_mount.validate() - if self.idle_instance_culler: - self.idle_instance_culler.validate() - if self.instance_shutdown_timer: - self.instance_shutdown_timer.validate() - if self.instance_snapshot_list: - for k in self.instance_snapshot_list: - if k: - k.validate() - if self.labels: - for k in self.labels: + if self.pod_metrics: + for k in self.pod_metrics: if k: k.validate() - if self.latest_snapshot: - self.latest_snapshot.validate() - if self.node_error_recovery: - self.node_error_recovery.validate() - if self.requested_resource: - self.requested_resource.validate() - if self.user_vpc: - self.user_vpc.validate() def to_map(self): _map = super().to_map() @@ -4043,239 +3790,52 @@ def to_map(self): return _map result = dict() - if self.accelerator_type is not None: - result['AcceleratorType'] = self.accelerator_type - if self.accessibility is not None: - result['Accessibility'] = self.accessibility - if self.accumulated_running_time_in_ms is not None: - result['AccumulatedRunningTimeInMs'] = self.accumulated_running_time_in_ms - if self.affinity is not None: - result['Affinity'] = self.affinity.to_map() - result['CloudDisks'] = [] - if self.cloud_disks is not None: - for k in self.cloud_disks: - result['CloudDisks'].append(k.to_map() if k else None) if self.code is not None: result['Code'] = self.code - result['Datasets'] = [] - if self.datasets is not None: - for k in self.datasets: - result['Datasets'].append(k.to_map() if k else None) - if self.driver is not None: - result['Driver'] = self.driver - if self.dynamic_mount is not None: - result['DynamicMount'] = self.dynamic_mount.to_map() - if self.ecs_spec is not None: - result['EcsSpec'] = self.ecs_spec - if self.environment_variables is not None: - result['EnvironmentVariables'] = self.environment_variables - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code - if self.idle_instance_culler is not None: - result['IdleInstanceCuller'] = self.idle_instance_culler.to_map() - if self.image_auth is not None: - result['ImageAuth'] = self.image_auth - if self.image_id is not None: - result['ImageId'] = self.image_id - if self.image_name is not None: - result['ImageName'] = self.image_name - if self.image_url is not None: - result['ImageUrl'] = self.image_url if self.instance_id is not None: result['InstanceId'] = self.instance_id - if self.instance_name is not None: - result['InstanceName'] = self.instance_name - if self.instance_shutdown_timer is not None: - result['InstanceShutdownTimer'] = self.instance_shutdown_timer.to_map() - result['InstanceSnapshotList'] = [] - if self.instance_snapshot_list is not None: - for k in self.instance_snapshot_list: - result['InstanceSnapshotList'].append(k.to_map() if k else None) - if self.instance_url is not None: - result['InstanceUrl'] = self.instance_url - if self.jupyterlab_url is not None: - result['JupyterlabUrl'] = self.jupyterlab_url - result['Labels'] = [] - if self.labels is not None: - for k in self.labels: - result['Labels'].append(k.to_map() if k else None) - if self.latest_snapshot is not None: - result['LatestSnapshot'] = self.latest_snapshot.to_map() if self.message is not None: result['Message'] = self.message - if self.node_error_recovery is not None: - result['NodeErrorRecovery'] = self.node_error_recovery.to_map() - if self.payment_type is not None: - result['PaymentType'] = self.payment_type - if self.priority is not None: - result['Priority'] = self.priority - if self.reason_code is not None: - result['ReasonCode'] = self.reason_code - if self.reason_message is not None: - result['ReasonMessage'] = self.reason_message + result['PodMetrics'] = [] + if self.pod_metrics is not None: + for k in self.pod_metrics: + result['PodMetrics'].append(k.to_map() if k else None) if self.request_id is not None: result['RequestId'] = self.request_id - if self.requested_resource is not None: - result['RequestedResource'] = self.requested_resource.to_map() - if self.resource_id is not None: - result['ResourceId'] = self.resource_id - if self.resource_name is not None: - result['ResourceName'] = self.resource_name - if self.status is not None: - result['Status'] = self.status if self.success is not None: result['Success'] = self.success - if self.system_image_url is not None: - result['SystemImageUrl'] = self.system_image_url - if self.terminal_url is not None: - result['TerminalUrl'] = self.terminal_url - if self.user_id is not None: - result['UserId'] = self.user_id - if self.user_name is not None: - result['UserName'] = self.user_name - if self.user_vpc is not None: - result['UserVpc'] = self.user_vpc.to_map() - if self.web_ideurl is not None: - result['WebIDEUrl'] = self.web_ideurl - if self.workspace_id is not None: - result['WorkspaceId'] = self.workspace_id - if self.workspace_name is not None: - result['WorkspaceName'] = self.workspace_name - if self.workspace_source is not None: - result['WorkspaceSource'] = self.workspace_source return result def from_map(self, m: dict = None): m = m or dict() - if m.get('AcceleratorType') is not None: - self.accelerator_type = m.get('AcceleratorType') - if m.get('Accessibility') is not None: - self.accessibility = m.get('Accessibility') - if m.get('AccumulatedRunningTimeInMs') is not None: - self.accumulated_running_time_in_ms = m.get('AccumulatedRunningTimeInMs') - if m.get('Affinity') is not None: - temp_model = GetInstanceResponseBodyAffinity() - self.affinity = temp_model.from_map(m['Affinity']) - self.cloud_disks = [] - if m.get('CloudDisks') is not None: - for k in m.get('CloudDisks'): - temp_model = GetInstanceResponseBodyCloudDisks() - self.cloud_disks.append(temp_model.from_map(k)) if m.get('Code') is not None: self.code = m.get('Code') - self.datasets = [] - if m.get('Datasets') is not None: - for k in m.get('Datasets'): - temp_model = GetInstanceResponseBodyDatasets() - self.datasets.append(temp_model.from_map(k)) - if m.get('Driver') is not None: - self.driver = m.get('Driver') - if m.get('DynamicMount') is not None: - temp_model = DynamicMount() - self.dynamic_mount = temp_model.from_map(m['DynamicMount']) - if m.get('EcsSpec') is not None: - self.ecs_spec = m.get('EcsSpec') - if m.get('EnvironmentVariables') is not None: - self.environment_variables = m.get('EnvironmentVariables') - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') - if m.get('IdleInstanceCuller') is not None: - temp_model = GetInstanceResponseBodyIdleInstanceCuller() - self.idle_instance_culler = temp_model.from_map(m['IdleInstanceCuller']) - if m.get('ImageAuth') is not None: - self.image_auth = m.get('ImageAuth') - if m.get('ImageId') is not None: - self.image_id = m.get('ImageId') - if m.get('ImageName') is not None: - self.image_name = m.get('ImageName') - if m.get('ImageUrl') is not None: - self.image_url = m.get('ImageUrl') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') - if m.get('InstanceName') is not None: - self.instance_name = m.get('InstanceName') - if m.get('InstanceShutdownTimer') is not None: - temp_model = GetInstanceResponseBodyInstanceShutdownTimer() - self.instance_shutdown_timer = temp_model.from_map(m['InstanceShutdownTimer']) - self.instance_snapshot_list = [] - if m.get('InstanceSnapshotList') is not None: - for k in m.get('InstanceSnapshotList'): - temp_model = GetInstanceResponseBodyInstanceSnapshotList() - self.instance_snapshot_list.append(temp_model.from_map(k)) - if m.get('InstanceUrl') is not None: - self.instance_url = m.get('InstanceUrl') - if m.get('JupyterlabUrl') is not None: - self.jupyterlab_url = m.get('JupyterlabUrl') - self.labels = [] - if m.get('Labels') is not None: - for k in m.get('Labels'): - temp_model = GetInstanceResponseBodyLabels() - self.labels.append(temp_model.from_map(k)) - if m.get('LatestSnapshot') is not None: - temp_model = GetInstanceResponseBodyLatestSnapshot() - self.latest_snapshot = temp_model.from_map(m['LatestSnapshot']) if m.get('Message') is not None: self.message = m.get('Message') - if m.get('NodeErrorRecovery') is not None: - temp_model = GetInstanceResponseBodyNodeErrorRecovery() - self.node_error_recovery = temp_model.from_map(m['NodeErrorRecovery']) - if m.get('PaymentType') is not None: - self.payment_type = m.get('PaymentType') - if m.get('Priority') is not None: - self.priority = m.get('Priority') - if m.get('ReasonCode') is not None: - self.reason_code = m.get('ReasonCode') - if m.get('ReasonMessage') is not None: - self.reason_message = m.get('ReasonMessage') + self.pod_metrics = [] + if m.get('PodMetrics') is not None: + for k in m.get('PodMetrics'): + temp_model = GetInstanceMetricsResponseBodyPodMetrics() + self.pod_metrics.append(temp_model.from_map(k)) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') - if m.get('RequestedResource') is not None: - temp_model = GetInstanceResponseBodyRequestedResource() - self.requested_resource = temp_model.from_map(m['RequestedResource']) - if m.get('ResourceId') is not None: - self.resource_id = m.get('ResourceId') - if m.get('ResourceName') is not None: - self.resource_name = m.get('ResourceName') - if m.get('Status') is not None: - self.status = m.get('Status') if m.get('Success') is not None: self.success = m.get('Success') - if m.get('SystemImageUrl') is not None: - self.system_image_url = m.get('SystemImageUrl') - if m.get('TerminalUrl') is not None: - self.terminal_url = m.get('TerminalUrl') - if m.get('UserId') is not None: - self.user_id = m.get('UserId') - if m.get('UserName') is not None: - self.user_name = m.get('UserName') - if m.get('UserVpc') is not None: - temp_model = GetInstanceResponseBodyUserVpc() - self.user_vpc = temp_model.from_map(m['UserVpc']) - if m.get('WebIDEUrl') is not None: - self.web_ideurl = m.get('WebIDEUrl') - if m.get('WorkspaceId') is not None: - self.workspace_id = m.get('WorkspaceId') - if m.get('WorkspaceName') is not None: - self.workspace_name = m.get('WorkspaceName') - if m.get('WorkspaceSource') is not None: - self.workspace_source = m.get('WorkspaceSource') return self -class GetInstanceResponse(TeaModel): +class GetInstanceMetricsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: GetInstanceResponseBody = None, + body: GetInstanceMetricsResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -4306,66 +3866,33 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = GetInstanceResponseBody() + temp_model = GetInstanceMetricsResponseBody() self.body = temp_model.from_map(m['body']) return self -class GetInstanceEventsRequest(TeaModel): - def __init__( - self, - end_time: str = None, - max_events_num: int = None, - start_time: str = None, - ): - self.end_time = end_time - self.max_events_num = max_events_num - self.start_time = start_time - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.end_time is not None: - result['EndTime'] = self.end_time - if self.max_events_num is not None: - result['MaxEventsNum'] = self.max_events_num - if self.start_time is not None: - result['StartTime'] = self.start_time - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('EndTime') is not None: - self.end_time = m.get('EndTime') - if m.get('MaxEventsNum') is not None: - self.max_events_num = m.get('MaxEventsNum') - if m.get('StartTime') is not None: - self.start_time = m.get('StartTime') - return self - - -class GetInstanceEventsResponseBody(TeaModel): +class GetInstanceShutdownTimerResponseBody(TeaModel): def __init__( self, code: str = None, - events: List[str] = None, + due_time: str = None, + gmt_create_time: str = None, + gmt_modified_time: str = None, http_status_code: int = None, instance_id: str = None, message: str = None, + remaining_time_in_ms: int = None, request_id: str = None, success: bool = None, ): self.code = code - self.events = events + self.due_time = due_time + self.gmt_create_time = gmt_create_time + self.gmt_modified_time = gmt_modified_time self.http_status_code = http_status_code self.instance_id = instance_id self.message = message + self.remaining_time_in_ms = remaining_time_in_ms self.request_id = request_id self.success = success @@ -4380,14 +3907,20 @@ def to_map(self): result = dict() if self.code is not None: result['Code'] = self.code - if self.events is not None: - result['Events'] = self.events + if self.due_time is not None: + result['DueTime'] = self.due_time + if self.gmt_create_time is not None: + result['GmtCreateTime'] = self.gmt_create_time + if self.gmt_modified_time is not None: + result['GmtModifiedTime'] = self.gmt_modified_time if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.instance_id is not None: result['InstanceId'] = self.instance_id if self.message is not None: result['Message'] = self.message + if self.remaining_time_in_ms is not None: + result['RemainingTimeInMs'] = self.remaining_time_in_ms if self.request_id is not None: result['RequestId'] = self.request_id if self.success is not None: @@ -4398,14 +3931,20 @@ def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') - if m.get('Events') is not None: - self.events = m.get('Events') + if m.get('DueTime') is not None: + self.due_time = m.get('DueTime') + if m.get('GmtCreateTime') is not None: + self.gmt_create_time = m.get('GmtCreateTime') + if m.get('GmtModifiedTime') is not None: + self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') if m.get('Message') is not None: self.message = m.get('Message') + if m.get('RemainingTimeInMs') is not None: + self.remaining_time_in_ms = m.get('RemainingTimeInMs') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Success') is not None: @@ -4413,12 +3952,12 @@ def from_map(self, m: dict = None): return self -class GetInstanceEventsResponse(TeaModel): +class GetInstanceShutdownTimerResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: GetInstanceEventsResponseBody = None, + body: GetInstanceShutdownTimerResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -4449,64 +3988,18 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = GetInstanceEventsResponseBody() + temp_model = GetInstanceShutdownTimerResponseBody() self.body = temp_model.from_map(m['body']) return self -class GetInstanceMetricsRequest(TeaModel): - def __init__( - self, - end_time: str = None, - metric_type: str = None, - start_time: str = None, - time_step: str = None, - ): - self.end_time = end_time - # This parameter is required. - self.metric_type = metric_type - self.start_time = start_time - self.time_step = time_step - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.end_time is not None: - result['EndTime'] = self.end_time - if self.metric_type is not None: - result['MetricType'] = self.metric_type - if self.start_time is not None: - result['StartTime'] = self.start_time - if self.time_step is not None: - result['TimeStep'] = self.time_step - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('EndTime') is not None: - self.end_time = m.get('EndTime') - if m.get('MetricType') is not None: - self.metric_type = m.get('MetricType') - if m.get('StartTime') is not None: - self.start_time = m.get('StartTime') - if m.get('TimeStep') is not None: - self.time_step = m.get('TimeStep') - return self - - -class GetInstanceMetricsResponseBodyPodMetricsMetrics(TeaModel): +class GetInstanceSnapshotResponseBodyLabels(TeaModel): def __init__( self, - time: int = None, - value: float = None, + key: str = None, + value: str = None, ): - self.time = time + self.key = key self.value = value def validate(self): @@ -4518,84 +4011,63 @@ def to_map(self): return _map result = dict() - if self.time is not None: - result['Time'] = self.time + if self.key is not None: + result['Key'] = self.key if self.value is not None: result['Value'] = self.value return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Time') is not None: - self.time = m.get('Time') + if m.get('Key') is not None: + self.key = m.get('Key') if m.get('Value') is not None: self.value = m.get('Value') return self -class GetInstanceMetricsResponseBodyPodMetrics(TeaModel): - def __init__( - self, - metrics: List[GetInstanceMetricsResponseBodyPodMetricsMetrics] = None, - pod_id: str = None, - ): - self.metrics = metrics - self.pod_id = pod_id - - def validate(self): - if self.metrics: - for k in self.metrics: - if k: - k.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - result['Metrics'] = [] - if self.metrics is not None: - for k in self.metrics: - result['Metrics'].append(k.to_map() if k else None) - if self.pod_id is not None: - result['PodId'] = self.pod_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - self.metrics = [] - if m.get('Metrics') is not None: - for k in m.get('Metrics'): - temp_model = GetInstanceMetricsResponseBodyPodMetricsMetrics() - self.metrics.append(temp_model.from_map(k)) - if m.get('PodId') is not None: - self.pod_id = m.get('PodId') - return self - - -class GetInstanceMetricsResponseBody(TeaModel): +class GetInstanceSnapshotResponseBody(TeaModel): def __init__( self, code: str = None, + exclude_paths: List[str] = None, + gmt_create_time: str = None, + gmt_modified_time: str = None, http_status_code: int = None, + image_id: str = None, + image_url: str = None, instance_id: str = None, + labels: List[GetInstanceSnapshotResponseBodyLabels] = None, message: str = None, - pod_metrics: List[GetInstanceMetricsResponseBodyPodMetrics] = None, + reason_code: str = None, + reason_message: str = None, request_id: str = None, + snapshot_id: str = None, + snapshot_name: str = None, + status: str = None, success: bool = None, ): self.code = code + self.exclude_paths = exclude_paths + self.gmt_create_time = gmt_create_time + self.gmt_modified_time = gmt_modified_time self.http_status_code = http_status_code + self.image_id = image_id + self.image_url = image_url self.instance_id = instance_id + self.labels = labels self.message = message - self.pod_metrics = pod_metrics + self.reason_code = reason_code + self.reason_message = reason_message self.request_id = request_id + self.snapshot_id = snapshot_id + self.snapshot_name = snapshot_name + self.status = status self.success = success def validate(self): - if self.pod_metrics: - for k in self.pod_metrics: + if self.labels: + for k in self.labels: if k: k.validate() @@ -4607,18 +4079,38 @@ def to_map(self): result = dict() if self.code is not None: result['Code'] = self.code + if self.exclude_paths is not None: + result['ExcludePaths'] = self.exclude_paths + if self.gmt_create_time is not None: + result['GmtCreateTime'] = self.gmt_create_time + if self.gmt_modified_time is not None: + result['GmtModifiedTime'] = self.gmt_modified_time if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code + if self.image_id is not None: + result['ImageId'] = self.image_id + if self.image_url is not None: + result['ImageUrl'] = self.image_url if self.instance_id is not None: result['InstanceId'] = self.instance_id + result['Labels'] = [] + if self.labels is not None: + for k in self.labels: + result['Labels'].append(k.to_map() if k else None) if self.message is not None: result['Message'] = self.message - result['PodMetrics'] = [] - if self.pod_metrics is not None: - for k in self.pod_metrics: - result['PodMetrics'].append(k.to_map() if k else None) + if self.reason_code is not None: + result['ReasonCode'] = self.reason_code + if self.reason_message is not None: + result['ReasonMessage'] = self.reason_message if self.request_id is not None: result['RequestId'] = self.request_id + if self.snapshot_id is not None: + result['SnapshotId'] = self.snapshot_id + if self.snapshot_name is not None: + result['SnapshotName'] = self.snapshot_name + if self.status is not None: + result['Status'] = self.status if self.success is not None: result['Success'] = self.success return result @@ -4627,30 +4119,50 @@ def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') + if m.get('ExcludePaths') is not None: + self.exclude_paths = m.get('ExcludePaths') + if m.get('GmtCreateTime') is not None: + self.gmt_create_time = m.get('GmtCreateTime') + if m.get('GmtModifiedTime') is not None: + self.gmt_modified_time = m.get('GmtModifiedTime') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') + if m.get('ImageId') is not None: + self.image_id = m.get('ImageId') + if m.get('ImageUrl') is not None: + self.image_url = m.get('ImageUrl') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') + self.labels = [] + if m.get('Labels') is not None: + for k in m.get('Labels'): + temp_model = GetInstanceSnapshotResponseBodyLabels() + self.labels.append(temp_model.from_map(k)) if m.get('Message') is not None: self.message = m.get('Message') - self.pod_metrics = [] - if m.get('PodMetrics') is not None: - for k in m.get('PodMetrics'): - temp_model = GetInstanceMetricsResponseBodyPodMetrics() - self.pod_metrics.append(temp_model.from_map(k)) + if m.get('ReasonCode') is not None: + self.reason_code = m.get('ReasonCode') + if m.get('ReasonMessage') is not None: + self.reason_message = m.get('ReasonMessage') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') + if m.get('SnapshotId') is not None: + self.snapshot_id = m.get('SnapshotId') + if m.get('SnapshotName') is not None: + self.snapshot_name = m.get('SnapshotName') + if m.get('Status') is not None: + self.status = m.get('Status') if m.get('Success') is not None: self.success = m.get('Success') return self -class GetInstanceMetricsResponse(TeaModel): +class GetInstanceSnapshotResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: GetInstanceMetricsResponseBody = None, + body: GetInstanceSnapshotResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -4681,98 +4193,191 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = GetInstanceMetricsResponseBody() + temp_model = GetInstanceSnapshotResponseBody() self.body = temp_model.from_map(m['body']) return self -class GetInstanceShutdownTimerResponseBody(TeaModel): +class GetLifecycleRequest(TeaModel): def __init__( self, - code: str = None, - due_time: str = None, - gmt_create_time: str = None, - gmt_modified_time: str = None, - http_status_code: int = None, - instance_id: str = None, - message: str = None, - remaining_time_in_ms: int = None, - request_id: str = None, - success: bool = None, + end_time: str = None, + limit: int = None, + order: str = None, + session_number: int = None, + start_time: str = None, + token: str = None, ): - self.code = code - self.due_time = due_time - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time - self.http_status_code = http_status_code - self.instance_id = instance_id - self.message = message - self.remaining_time_in_ms = remaining_time_in_ms - self.request_id = request_id - self.success = success - - def validate(self): - pass - - def to_map(self): + self.end_time = end_time + self.limit = limit + self.order = order + self.session_number = session_number + self.start_time = start_time + self.token = token + + def validate(self): + pass + + def to_map(self): _map = super().to_map() if _map is not None: return _map result = dict() - if self.code is not None: - result['Code'] = self.code - if self.due_time is not None: - result['DueTime'] = self.due_time + if self.end_time is not None: + result['EndTime'] = self.end_time + if self.limit is not None: + result['Limit'] = self.limit + if self.order is not None: + result['Order'] = self.order + if self.session_number is not None: + result['SessionNumber'] = self.session_number + if self.start_time is not None: + result['StartTime'] = self.start_time + if self.token is not None: + result['Token'] = self.token + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('EndTime') is not None: + self.end_time = m.get('EndTime') + if m.get('Limit') is not None: + self.limit = m.get('Limit') + if m.get('Order') is not None: + self.order = m.get('Order') + if m.get('SessionNumber') is not None: + self.session_number = m.get('SessionNumber') + if m.get('StartTime') is not None: + self.start_time = m.get('StartTime') + if m.get('Token') is not None: + self.token = m.get('Token') + return self + + +class GetLifecycleResponseBodyLifecycle(TeaModel): + def __init__( + self, + status: str = None, + reason_code: str = None, + reason_message: str = None, + gmt_create_time: str = None, + ): + self.status = status + self.reason_code = reason_code + self.reason_message = reason_message + self.gmt_create_time = gmt_create_time + + def validate(self): + pass + + def to_map(self): + _map = super().to_map() + if _map is not None: + return _map + + result = dict() + if self.status is not None: + result['Status'] = self.status + if self.reason_code is not None: + result['ReasonCode'] = self.reason_code + if self.reason_message is not None: + result['ReasonMessage'] = self.reason_message if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.instance_id is not None: - result['InstanceId'] = self.instance_id + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('Status') is not None: + self.status = m.get('Status') + if m.get('ReasonCode') is not None: + self.reason_code = m.get('ReasonCode') + if m.get('ReasonMessage') is not None: + self.reason_message = m.get('ReasonMessage') + if m.get('GmtCreateTime') is not None: + self.gmt_create_time = m.get('GmtCreateTime') + return self + + +class GetLifecycleResponseBody(TeaModel): + def __init__( + self, + code: str = None, + lifecycle: List[List[GetLifecycleResponseBodyLifecycle]] = None, + message: str = None, + request_id: str = None, + success: bool = None, + total_count: int = None, + ): + self.code = code + self.lifecycle = lifecycle + self.message = message + self.request_id = request_id + self.success = success + self.total_count = total_count + + def validate(self): + if self.lifecycle: + for k in self.lifecycle: + for k1 in k: + if k1: + k1.validate() + + def to_map(self): + _map = super().to_map() + if _map is not None: + return _map + + result = dict() + if self.code is not None: + result['Code'] = self.code + result['Lifecycle'] = [] + if self.lifecycle is not None: + for k in self.lifecycle: + l1 = [] + for k1 in k: + l1.append(k1.to_map() if k1 else None) + result['Lifecycle'].append(l1) if self.message is not None: result['Message'] = self.message - if self.remaining_time_in_ms is not None: - result['RemainingTimeInMs'] = self.remaining_time_in_ms if self.request_id is not None: result['RequestId'] = self.request_id if self.success is not None: result['Success'] = self.success + if self.total_count is not None: + result['TotalCount'] = self.total_count return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') - if m.get('DueTime') is not None: - self.due_time = m.get('DueTime') - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') + self.lifecycle = [] + if m.get('Lifecycle') is not None: + for k in m.get('Lifecycle'): + l1 = [] + for k1 in k: + temp_model = GetLifecycleResponseBodyLifecycle() + l1.append(temp_model.from_map(k1)) + self.lifecycle.append(l1) if m.get('Message') is not None: self.message = m.get('Message') - if m.get('RemainingTimeInMs') is not None: - self.remaining_time_in_ms = m.get('RemainingTimeInMs') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Success') is not None: self.success = m.get('Success') + if m.get('TotalCount') is not None: + self.total_count = m.get('TotalCount') return self -class GetInstanceShutdownTimerResponse(TeaModel): +class GetLifecycleResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: GetInstanceShutdownTimerResponseBody = None, + body: GetLifecycleResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -4803,19 +4408,31 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = GetInstanceShutdownTimerResponseBody() + temp_model = GetLifecycleResponseBody() self.body = temp_model.from_map(m['body']) return self -class GetInstanceSnapshotResponseBodyLabels(TeaModel): +class GetMetricsRequest(TeaModel): def __init__( self, - key: str = None, - value: str = None, + dimensions: str = None, + end_time: str = None, + length: str = None, + metric_name: str = None, + namespace: str = None, + next_token: str = None, + period: str = None, + start_time: str = None, ): - self.key = key - self.value = value + self.dimensions = dimensions + self.end_time = end_time + self.length = length + self.metric_name = metric_name + self.namespace = namespace + self.next_token = next_token + self.period = period + self.start_time = start_time def validate(self): pass @@ -4826,65 +4443,66 @@ def to_map(self): return _map result = dict() - if self.key is not None: - result['Key'] = self.key - if self.value is not None: - result['Value'] = self.value + if self.dimensions is not None: + result['Dimensions'] = self.dimensions + if self.end_time is not None: + result['EndTime'] = self.end_time + if self.length is not None: + result['Length'] = self.length + if self.metric_name is not None: + result['MetricName'] = self.metric_name + if self.namespace is not None: + result['Namespace'] = self.namespace + if self.next_token is not None: + result['NextToken'] = self.next_token + if self.period is not None: + result['Period'] = self.period + if self.start_time is not None: + result['StartTime'] = self.start_time return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Key') is not None: - self.key = m.get('Key') - if m.get('Value') is not None: - self.value = m.get('Value') + if m.get('Dimensions') is not None: + self.dimensions = m.get('Dimensions') + if m.get('EndTime') is not None: + self.end_time = m.get('EndTime') + if m.get('Length') is not None: + self.length = m.get('Length') + if m.get('MetricName') is not None: + self.metric_name = m.get('MetricName') + if m.get('Namespace') is not None: + self.namespace = m.get('Namespace') + if m.get('NextToken') is not None: + self.next_token = m.get('NextToken') + if m.get('Period') is not None: + self.period = m.get('Period') + if m.get('StartTime') is not None: + self.start_time = m.get('StartTime') return self -class GetInstanceSnapshotResponseBody(TeaModel): +class GetMetricsResponseBody(TeaModel): def __init__( self, code: str = None, - exclude_paths: List[str] = None, - gmt_create_time: str = None, - gmt_modified_time: str = None, - http_status_code: int = None, - image_id: str = None, - image_url: str = None, - instance_id: str = None, - labels: List[GetInstanceSnapshotResponseBodyLabels] = None, + datapoints: str = None, message: str = None, - reason_code: str = None, - reason_message: str = None, + next_token: str = None, + period: str = None, request_id: str = None, - snapshot_id: str = None, - snapshot_name: str = None, - status: str = None, success: bool = None, ): self.code = code - self.exclude_paths = exclude_paths - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time - self.http_status_code = http_status_code - self.image_id = image_id - self.image_url = image_url - self.instance_id = instance_id - self.labels = labels + self.datapoints = datapoints self.message = message - self.reason_code = reason_code - self.reason_message = reason_message + self.next_token = next_token + self.period = period self.request_id = request_id - self.snapshot_id = snapshot_id - self.snapshot_name = snapshot_name - self.status = status self.success = success def validate(self): - if self.labels: - for k in self.labels: - if k: - k.validate() + pass def to_map(self): _map = super().to_map() @@ -4894,38 +4512,16 @@ def to_map(self): result = dict() if self.code is not None: result['Code'] = self.code - if self.exclude_paths is not None: - result['ExcludePaths'] = self.exclude_paths - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.image_id is not None: - result['ImageId'] = self.image_id - if self.image_url is not None: - result['ImageUrl'] = self.image_url - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - result['Labels'] = [] - if self.labels is not None: - for k in self.labels: - result['Labels'].append(k.to_map() if k else None) + if self.datapoints is not None: + result['Datapoints'] = self.datapoints if self.message is not None: result['Message'] = self.message - if self.reason_code is not None: - result['ReasonCode'] = self.reason_code - if self.reason_message is not None: - result['ReasonMessage'] = self.reason_message + if self.next_token is not None: + result['NextToken'] = self.next_token + if self.period is not None: + result['Period'] = self.period if self.request_id is not None: result['RequestId'] = self.request_id - if self.snapshot_id is not None: - result['SnapshotId'] = self.snapshot_id - if self.snapshot_name is not None: - result['SnapshotName'] = self.snapshot_name - if self.status is not None: - result['Status'] = self.status if self.success is not None: result['Success'] = self.success return result @@ -4934,50 +4530,27 @@ def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') - if m.get('ExcludePaths') is not None: - self.exclude_paths = m.get('ExcludePaths') - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('ImageId') is not None: - self.image_id = m.get('ImageId') - if m.get('ImageUrl') is not None: - self.image_url = m.get('ImageUrl') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - self.labels = [] - if m.get('Labels') is not None: - for k in m.get('Labels'): - temp_model = GetInstanceSnapshotResponseBodyLabels() - self.labels.append(temp_model.from_map(k)) + if m.get('Datapoints') is not None: + self.datapoints = m.get('Datapoints') if m.get('Message') is not None: self.message = m.get('Message') - if m.get('ReasonCode') is not None: - self.reason_code = m.get('ReasonCode') - if m.get('ReasonMessage') is not None: - self.reason_message = m.get('ReasonMessage') + if m.get('NextToken') is not None: + self.next_token = m.get('NextToken') + if m.get('Period') is not None: + self.period = m.get('Period') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') - if m.get('SnapshotId') is not None: - self.snapshot_id = m.get('SnapshotId') - if m.get('SnapshotName') is not None: - self.snapshot_name = m.get('SnapshotName') - if m.get('Status') is not None: - self.status = m.get('Status') if m.get('Success') is not None: self.success = m.get('Success') return self -class GetInstanceSnapshotResponse(TeaModel): +class GetMetricsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: GetInstanceSnapshotResponseBody = None, + body: GetMetricsResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -5008,25 +4581,27 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = GetInstanceSnapshotResponseBody() + temp_model = GetMetricsResponseBody() self.body = temp_model.from_map(m['body']) return self -class GetLifecycleRequest(TeaModel): +class GetResourceGroupStatisticsRequest(TeaModel): def __init__( self, end_time: str = None, - limit: int = None, - order: str = None, - session_number: int = None, + resource_id: str = None, start_time: str = None, + workspace_ids: str = None, ): + # This parameter is required. self.end_time = end_time - self.limit = limit - self.order = order - self.session_number = session_number + # This parameter is required. + self.resource_id = resource_id + # This parameter is required. self.start_time = start_time + # This parameter is required. + self.workspace_ids = workspace_ids def validate(self): pass @@ -5039,99 +4614,46 @@ def to_map(self): result = dict() if self.end_time is not None: result['EndTime'] = self.end_time - if self.limit is not None: - result['Limit'] = self.limit - if self.order is not None: - result['Order'] = self.order - if self.session_number is not None: - result['SessionNumber'] = self.session_number + if self.resource_id is not None: + result['ResourceId'] = self.resource_id if self.start_time is not None: result['StartTime'] = self.start_time + if self.workspace_ids is not None: + result['WorkspaceIds'] = self.workspace_ids return result def from_map(self, m: dict = None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') - if m.get('Limit') is not None: - self.limit = m.get('Limit') - if m.get('Order') is not None: - self.order = m.get('Order') - if m.get('SessionNumber') is not None: - self.session_number = m.get('SessionNumber') + if m.get('ResourceId') is not None: + self.resource_id = m.get('ResourceId') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') + if m.get('WorkspaceIds') is not None: + self.workspace_ids = m.get('WorkspaceIds') return self -class GetLifecycleResponseBodyLifecycle(TeaModel): - def __init__( - self, - status: str = None, - reason_code: str = None, - reason_message: str = None, - gmt_create_time: str = None, - ): - self.status = status - self.reason_code = reason_code - self.reason_message = reason_message - self.gmt_create_time = gmt_create_time - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.status is not None: - result['Status'] = self.status - if self.reason_code is not None: - result['ReasonCode'] = self.reason_code - if self.reason_message is not None: - result['ReasonMessage'] = self.reason_message - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Status') is not None: - self.status = m.get('Status') - if m.get('ReasonCode') is not None: - self.reason_code = m.get('ReasonCode') - if m.get('ReasonMessage') is not None: - self.reason_message = m.get('ReasonMessage') - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - return self - - -class GetLifecycleResponseBody(TeaModel): +class GetResourceGroupStatisticsResponseBody(TeaModel): def __init__( self, code: str = None, - lifecycle: List[List[GetLifecycleResponseBodyLifecycle]] = None, + http_status_code: int = None, message: str = None, request_id: str = None, + statistics: Dict[str, dict] = None, success: bool = None, - total_count: int = None, ): self.code = code - self.lifecycle = lifecycle + self.http_status_code = http_status_code self.message = message self.request_id = request_id + self.statistics = statistics self.success = success - self.total_count = total_count def validate(self): - if self.lifecycle: - for k in self.lifecycle: - for k1 in k: - if k1: - k1.validate() + pass def to_map(self): _map = super().to_map() @@ -5141,52 +4663,41 @@ def to_map(self): result = dict() if self.code is not None: result['Code'] = self.code - result['Lifecycle'] = [] - if self.lifecycle is not None: - for k in self.lifecycle: - l1 = [] - for k1 in k: - l1.append(k1.to_map() if k1 else None) - result['Lifecycle'].append(l1) + if self.http_status_code is not None: + result['HttpStatusCode'] = self.http_status_code if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id + if self.statistics is not None: + result['Statistics'] = self.statistics if self.success is not None: result['Success'] = self.success - if self.total_count is not None: - result['TotalCount'] = self.total_count return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') - self.lifecycle = [] - if m.get('Lifecycle') is not None: - for k in m.get('Lifecycle'): - l1 = [] - for k1 in k: - temp_model = GetLifecycleResponseBodyLifecycle() - l1.append(temp_model.from_map(k1)) - self.lifecycle.append(l1) + if m.get('HttpStatusCode') is not None: + self.http_status_code = m.get('HttpStatusCode') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') + if m.get('Statistics') is not None: + self.statistics = m.get('Statistics') if m.get('Success') is not None: self.success = m.get('Success') - if m.get('TotalCount') is not None: - self.total_count = m.get('TotalCount') return self -class GetLifecycleResponse(TeaModel): +class GetResourceGroupStatisticsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: GetLifecycleResponseBody = None, + body: GetResourceGroupStatisticsResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -5217,31 +4728,20 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = GetLifecycleResponseBody() + temp_model = GetResourceGroupStatisticsResponseBody() self.body = temp_model.from_map(m['body']) return self -class GetMetricsRequest(TeaModel): +class GetTokenRequest(TeaModel): def __init__( self, - dimensions: str = None, - end_time: str = None, - length: str = None, - metric_name: str = None, - namespace: str = None, - next_token: str = None, - period: str = None, - start_time: str = None, + expire_time: int = None, + instance_id: str = None, ): - self.dimensions = dimensions - self.end_time = end_time - self.length = length - self.metric_name = metric_name - self.namespace = namespace - self.next_token = next_token - self.period = period - self.start_time = start_time + self.expire_time = expire_time + # This parameter is required. + self.instance_id = instance_id def validate(self): pass @@ -5252,63 +4752,35 @@ def to_map(self): return _map result = dict() - if self.dimensions is not None: - result['Dimensions'] = self.dimensions - if self.end_time is not None: - result['EndTime'] = self.end_time - if self.length is not None: - result['Length'] = self.length - if self.metric_name is not None: - result['MetricName'] = self.metric_name - if self.namespace is not None: - result['Namespace'] = self.namespace - if self.next_token is not None: - result['NextToken'] = self.next_token - if self.period is not None: - result['Period'] = self.period - if self.start_time is not None: - result['StartTime'] = self.start_time - return result + if self.expire_time is not None: + result['ExpireTime'] = self.expire_time + if self.instance_id is not None: + result['InstanceId'] = self.instance_id + return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Dimensions') is not None: - self.dimensions = m.get('Dimensions') - if m.get('EndTime') is not None: - self.end_time = m.get('EndTime') - if m.get('Length') is not None: - self.length = m.get('Length') - if m.get('MetricName') is not None: - self.metric_name = m.get('MetricName') - if m.get('Namespace') is not None: - self.namespace = m.get('Namespace') - if m.get('NextToken') is not None: - self.next_token = m.get('NextToken') - if m.get('Period') is not None: - self.period = m.get('Period') - if m.get('StartTime') is not None: - self.start_time = m.get('StartTime') + if m.get('ExpireTime') is not None: + self.expire_time = m.get('ExpireTime') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') return self -class GetMetricsResponseBody(TeaModel): +class GetTokenResponseBody(TeaModel): def __init__( self, code: str = None, - datapoints: str = None, message: str = None, - next_token: str = None, - period: str = None, request_id: str = None, success: bool = None, + token: str = None, ): self.code = code - self.datapoints = datapoints self.message = message - self.next_token = next_token - self.period = period self.request_id = request_id self.success = success + self.token = token def validate(self): pass @@ -5321,45 +4793,37 @@ def to_map(self): result = dict() if self.code is not None: result['Code'] = self.code - if self.datapoints is not None: - result['Datapoints'] = self.datapoints if self.message is not None: result['Message'] = self.message - if self.next_token is not None: - result['NextToken'] = self.next_token - if self.period is not None: - result['Period'] = self.period if self.request_id is not None: result['RequestId'] = self.request_id if self.success is not None: result['Success'] = self.success + if self.token is not None: + result['Token'] = self.token return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') - if m.get('Datapoints') is not None: - self.datapoints = m.get('Datapoints') if m.get('Message') is not None: self.message = m.get('Message') - if m.get('NextToken') is not None: - self.next_token = m.get('NextToken') - if m.get('Period') is not None: - self.period = m.get('Period') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Success') is not None: self.success = m.get('Success') + if m.get('Token') is not None: + self.token = m.get('Token') return self -class GetMetricsResponse(TeaModel): +class GetTokenResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: GetMetricsResponseBody = None, + body: GetTokenResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -5390,27 +4854,39 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = GetMetricsResponseBody() + temp_model = GetTokenResponseBody() self.body = temp_model.from_map(m['body']) return self -class GetResourceGroupStatisticsRequest(TeaModel): +class GetUserConfigResponseBodyFreeTier(TeaModel): def __init__( self, end_time: str = None, - resource_id: str = None, + init_base_unit: str = None, + init_base_value: float = None, + init_show_unit: str = None, + init_show_value: str = None, + is_free_tier_user: bool = None, + period_base_unit: str = None, + period_base_value: float = None, + period_show_unit: str = None, + period_show_value: str = None, start_time: str = None, - workspace_ids: str = None, + status: str = None, ): - # This parameter is required. self.end_time = end_time - # This parameter is required. - self.resource_id = resource_id - # This parameter is required. + self.init_base_unit = init_base_unit + self.init_base_value = init_base_value + self.init_show_unit = init_show_unit + self.init_show_value = init_show_value + self.is_free_tier_user = is_free_tier_user + self.period_base_unit = period_base_unit + self.period_base_value = period_base_value + self.period_show_unit = period_show_unit + self.period_show_value = period_show_value self.start_time = start_time - # This parameter is required. - self.workspace_ids = workspace_ids + self.status = status def validate(self): pass @@ -5423,46 +4899,85 @@ def to_map(self): result = dict() if self.end_time is not None: result['EndTime'] = self.end_time - if self.resource_id is not None: - result['ResourceId'] = self.resource_id + if self.init_base_unit is not None: + result['InitBaseUnit'] = self.init_base_unit + if self.init_base_value is not None: + result['InitBaseValue'] = self.init_base_value + if self.init_show_unit is not None: + result['InitShowUnit'] = self.init_show_unit + if self.init_show_value is not None: + result['InitShowValue'] = self.init_show_value + if self.is_free_tier_user is not None: + result['IsFreeTierUser'] = self.is_free_tier_user + if self.period_base_unit is not None: + result['PeriodBaseUnit'] = self.period_base_unit + if self.period_base_value is not None: + result['PeriodBaseValue'] = self.period_base_value + if self.period_show_unit is not None: + result['PeriodShowUnit'] = self.period_show_unit + if self.period_show_value is not None: + result['PeriodShowValue'] = self.period_show_value if self.start_time is not None: result['StartTime'] = self.start_time - if self.workspace_ids is not None: - result['WorkspaceIds'] = self.workspace_ids + if self.status is not None: + result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() if m.get('EndTime') is not None: self.end_time = m.get('EndTime') - if m.get('ResourceId') is not None: - self.resource_id = m.get('ResourceId') + if m.get('InitBaseUnit') is not None: + self.init_base_unit = m.get('InitBaseUnit') + if m.get('InitBaseValue') is not None: + self.init_base_value = m.get('InitBaseValue') + if m.get('InitShowUnit') is not None: + self.init_show_unit = m.get('InitShowUnit') + if m.get('InitShowValue') is not None: + self.init_show_value = m.get('InitShowValue') + if m.get('IsFreeTierUser') is not None: + self.is_free_tier_user = m.get('IsFreeTierUser') + if m.get('PeriodBaseUnit') is not None: + self.period_base_unit = m.get('PeriodBaseUnit') + if m.get('PeriodBaseValue') is not None: + self.period_base_value = m.get('PeriodBaseValue') + if m.get('PeriodShowUnit') is not None: + self.period_show_unit = m.get('PeriodShowUnit') + if m.get('PeriodShowValue') is not None: + self.period_show_value = m.get('PeriodShowValue') if m.get('StartTime') is not None: self.start_time = m.get('StartTime') - if m.get('WorkspaceIds') is not None: - self.workspace_ids = m.get('WorkspaceIds') + if m.get('Status') is not None: + self.status = m.get('Status') return self -class GetResourceGroupStatisticsResponseBody(TeaModel): +class GetUserConfigResponseBody(TeaModel): def __init__( self, + account_sufficient: bool = None, code: str = None, + enable_eci_disk: bool = None, + free_tier: GetUserConfigResponseBodyFreeTier = None, + free_tier_spec_available: bool = None, http_status_code: int = None, message: str = None, request_id: str = None, - statistics: Dict[str, dict] = None, success: bool = None, ): + self.account_sufficient = account_sufficient self.code = code + self.enable_eci_disk = enable_eci_disk + self.free_tier = free_tier + self.free_tier_spec_available = free_tier_spec_available self.http_status_code = http_status_code self.message = message self.request_id = request_id - self.statistics = statistics self.success = success def validate(self): - pass + if self.free_tier: + self.free_tier.validate() def to_map(self): _map = super().to_map() @@ -5470,43 +4985,56 @@ def to_map(self): return _map result = dict() + if self.account_sufficient is not None: + result['AccountSufficient'] = self.account_sufficient if self.code is not None: result['Code'] = self.code + if self.enable_eci_disk is not None: + result['EnableEciDisk'] = self.enable_eci_disk + if self.free_tier is not None: + result['FreeTier'] = self.free_tier.to_map() + if self.free_tier_spec_available is not None: + result['FreeTierSpecAvailable'] = self.free_tier_spec_available if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id - if self.statistics is not None: - result['Statistics'] = self.statistics if self.success is not None: result['Success'] = self.success return result def from_map(self, m: dict = None): m = m or dict() + if m.get('AccountSufficient') is not None: + self.account_sufficient = m.get('AccountSufficient') if m.get('Code') is not None: self.code = m.get('Code') + if m.get('EnableEciDisk') is not None: + self.enable_eci_disk = m.get('EnableEciDisk') + if m.get('FreeTier') is not None: + temp_model = GetUserConfigResponseBodyFreeTier() + self.free_tier = temp_model.from_map(m['FreeTier']) + if m.get('FreeTierSpecAvailable') is not None: + self.free_tier_spec_available = m.get('FreeTierSpecAvailable') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') - if m.get('Statistics') is not None: - self.statistics = m.get('Statistics') if m.get('Success') is not None: self.success = m.get('Success') return self -class GetResourceGroupStatisticsResponse(TeaModel): +class GetUserConfigResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: GetResourceGroupStatisticsResponseBody = None, + body: GetUserConfigResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -5537,59 +5065,26 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = GetResourceGroupStatisticsResponseBody() + temp_model = GetUserConfigResponseBody() self.body = temp_model.from_map(m['body']) return self -class GetTempFileResponseBody(TeaModel): +class ListEcsSpecsRequest(TeaModel): def __init__( self, - bandwidth: int = None, - capacity: int = None, - code: str = None, - description: str = None, - download_url: str = None, - gmt_create_time: str = None, - gmt_expired_time: str = None, - gmt_modified_time: str = None, - http_status_code: int = None, - instance_id: str = None, - message: str = None, - name: str = None, - owner_id: str = None, - prefix: str = None, - request_id: str = None, - status: str = None, - success: bool = None, - task_id: str = None, - type: str = None, - upload_url: str = None, - user_id: str = None, - uuid: str = None, + accelerator_type: str = None, + order: str = None, + page_number: int = None, + page_size: int = None, + sort_by: str = None, ): - self.bandwidth = bandwidth - self.capacity = capacity - self.code = code - self.description = description - self.download_url = download_url - self.gmt_create_time = gmt_create_time - self.gmt_expired_time = gmt_expired_time - self.gmt_modified_time = gmt_modified_time - self.http_status_code = http_status_code - self.instance_id = instance_id - self.message = message - self.name = name - self.owner_id = owner_id - self.prefix = prefix - self.request_id = request_id - self.status = status - self.success = success - self.task_id = task_id - self.type = type - self.upload_url = upload_url - self.user_id = user_id - self.uuid = uuid + # This parameter is required. + self.accelerator_type = accelerator_type + self.order = order + self.page_number = page_number + self.page_size = page_size + self.sort_by = sort_by def validate(self): pass @@ -5600,115 +5095,44 @@ def to_map(self): return _map result = dict() - if self.bandwidth is not None: - result['Bandwidth'] = self.bandwidth - if self.capacity is not None: - result['Capacity'] = self.capacity - if self.code is not None: - result['Code'] = self.code - if self.description is not None: - result['Description'] = self.description - if self.download_url is not None: - result['DownloadUrl'] = self.download_url - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_expired_time is not None: - result['GmtExpiredTime'] = self.gmt_expired_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.message is not None: - result['Message'] = self.message - if self.name is not None: - result['Name'] = self.name - if self.owner_id is not None: - result['OwnerId'] = self.owner_id - if self.prefix is not None: - result['Prefix'] = self.prefix - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.status is not None: - result['Status'] = self.status - if self.success is not None: - result['Success'] = self.success - if self.task_id is not None: - result['TaskId'] = self.task_id - if self.type is not None: - result['Type'] = self.type - if self.upload_url is not None: - result['UploadUrl'] = self.upload_url - if self.user_id is not None: - result['UserId'] = self.user_id - if self.uuid is not None: - result['Uuid'] = self.uuid + if self.accelerator_type is not None: + result['AcceleratorType'] = self.accelerator_type + if self.order is not None: + result['Order'] = self.order + if self.page_number is not None: + result['PageNumber'] = self.page_number + if self.page_size is not None: + result['PageSize'] = self.page_size + if self.sort_by is not None: + result['SortBy'] = self.sort_by return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Bandwidth') is not None: - self.bandwidth = m.get('Bandwidth') - if m.get('Capacity') is not None: - self.capacity = m.get('Capacity') - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('Description') is not None: - self.description = m.get('Description') - if m.get('DownloadUrl') is not None: - self.download_url = m.get('DownloadUrl') - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtExpiredTime') is not None: - self.gmt_expired_time = m.get('GmtExpiredTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('Name') is not None: - self.name = m.get('Name') - if m.get('OwnerId') is not None: - self.owner_id = m.get('OwnerId') - if m.get('Prefix') is not None: - self.prefix = m.get('Prefix') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Status') is not None: - self.status = m.get('Status') - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('TaskId') is not None: - self.task_id = m.get('TaskId') - if m.get('Type') is not None: - self.type = m.get('Type') - if m.get('UploadUrl') is not None: - self.upload_url = m.get('UploadUrl') - if m.get('UserId') is not None: - self.user_id = m.get('UserId') - if m.get('Uuid') is not None: - self.uuid = m.get('Uuid') + if m.get('AcceleratorType') is not None: + self.accelerator_type = m.get('AcceleratorType') + if m.get('Order') is not None: + self.order = m.get('Order') + if m.get('PageNumber') is not None: + self.page_number = m.get('PageNumber') + if m.get('PageSize') is not None: + self.page_size = m.get('PageSize') + if m.get('SortBy') is not None: + self.sort_by = m.get('SortBy') return self -class GetTempFileResponse(TeaModel): +class ListEcsSpecsResponseBodyEcsSpecsLabels(TeaModel): def __init__( self, - headers: Dict[str, str] = None, - status_code: int = None, - body: GetTempFileResponseBody = None, + key: str = None, + value: str = None, ): - self.headers = headers - self.status_code = status_code - self.body = body + self.key = key + self.value = value def validate(self): - if self.body: - self.body.validate() + pass def to_map(self): _map = super().to_map() @@ -5716,38 +5140,55 @@ def to_map(self): return _map result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() + if self.key is not None: + result['Key'] = self.key + if self.value is not None: + result['Value'] = self.value return result def from_map(self, m: dict = None): m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = GetTempFileResponseBody() - self.body = temp_model.from_map(m['body']) + if m.get('Key') is not None: + self.key = m.get('Key') + if m.get('Value') is not None: + self.value = m.get('Value') return self -class GetTokenRequest(TeaModel): +class ListEcsSpecsResponseBodyEcsSpecs(TeaModel): def __init__( self, - expire_time: int = None, - instance_id: str = None, + accelerator_type: str = None, + cpu: int = None, + currency: str = None, + gpu: int = None, + gputype: str = None, + instance_bandwidth_rx: int = None, + instance_type: str = None, + is_available: bool = None, + labels: List[ListEcsSpecsResponseBodyEcsSpecsLabels] = None, + memory: float = None, + price: float = None, + system_disk_capacity: int = None, ): - self.expire_time = expire_time - # This parameter is required. - self.instance_id = instance_id + self.accelerator_type = accelerator_type + self.cpu = cpu + self.currency = currency + self.gpu = gpu + self.gputype = gputype + self.instance_bandwidth_rx = instance_bandwidth_rx + self.instance_type = instance_type + self.is_available = is_available + self.labels = labels + self.memory = memory + self.price = price + self.system_disk_capacity = system_disk_capacity def validate(self): - pass + if self.labels: + for k in self.labels: + if k: + k.validate() def to_map(self): _map = super().to_map() @@ -5755,38 +5196,90 @@ def to_map(self): return _map result = dict() - if self.expire_time is not None: - result['ExpireTime'] = self.expire_time - if self.instance_id is not None: - result['InstanceId'] = self.instance_id + if self.accelerator_type is not None: + result['AcceleratorType'] = self.accelerator_type + if self.cpu is not None: + result['CPU'] = self.cpu + if self.currency is not None: + result['Currency'] = self.currency + if self.gpu is not None: + result['GPU'] = self.gpu + if self.gputype is not None: + result['GPUType'] = self.gputype + if self.instance_bandwidth_rx is not None: + result['InstanceBandwidthRx'] = self.instance_bandwidth_rx + if self.instance_type is not None: + result['InstanceType'] = self.instance_type + if self.is_available is not None: + result['IsAvailable'] = self.is_available + result['Labels'] = [] + if self.labels is not None: + for k in self.labels: + result['Labels'].append(k.to_map() if k else None) + if self.memory is not None: + result['Memory'] = self.memory + if self.price is not None: + result['Price'] = self.price + if self.system_disk_capacity is not None: + result['SystemDiskCapacity'] = self.system_disk_capacity return result def from_map(self, m: dict = None): m = m or dict() - if m.get('ExpireTime') is not None: - self.expire_time = m.get('ExpireTime') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') + if m.get('AcceleratorType') is not None: + self.accelerator_type = m.get('AcceleratorType') + if m.get('CPU') is not None: + self.cpu = m.get('CPU') + if m.get('Currency') is not None: + self.currency = m.get('Currency') + if m.get('GPU') is not None: + self.gpu = m.get('GPU') + if m.get('GPUType') is not None: + self.gputype = m.get('GPUType') + if m.get('InstanceBandwidthRx') is not None: + self.instance_bandwidth_rx = m.get('InstanceBandwidthRx') + if m.get('InstanceType') is not None: + self.instance_type = m.get('InstanceType') + if m.get('IsAvailable') is not None: + self.is_available = m.get('IsAvailable') + self.labels = [] + if m.get('Labels') is not None: + for k in m.get('Labels'): + temp_model = ListEcsSpecsResponseBodyEcsSpecsLabels() + self.labels.append(temp_model.from_map(k)) + if m.get('Memory') is not None: + self.memory = m.get('Memory') + if m.get('Price') is not None: + self.price = m.get('Price') + if m.get('SystemDiskCapacity') is not None: + self.system_disk_capacity = m.get('SystemDiskCapacity') return self -class GetTokenResponseBody(TeaModel): +class ListEcsSpecsResponseBody(TeaModel): def __init__( self, code: str = None, + ecs_specs: List[ListEcsSpecsResponseBodyEcsSpecs] = None, + http_status_code: int = None, message: str = None, request_id: str = None, success: bool = None, - token: str = None, + total_count: int = None, ): self.code = code + self.ecs_specs = ecs_specs + self.http_status_code = http_status_code self.message = message self.request_id = request_id self.success = success - self.token = token + self.total_count = total_count def validate(self): - pass + if self.ecs_specs: + for k in self.ecs_specs: + if k: + k.validate() def to_map(self): _map = super().to_map() @@ -5796,37 +5289,50 @@ def to_map(self): result = dict() if self.code is not None: result['Code'] = self.code + result['EcsSpecs'] = [] + if self.ecs_specs is not None: + for k in self.ecs_specs: + result['EcsSpecs'].append(k.to_map() if k else None) + if self.http_status_code is not None: + result['HttpStatusCode'] = self.http_status_code if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id if self.success is not None: result['Success'] = self.success - if self.token is not None: - result['Token'] = self.token + if self.total_count is not None: + result['TotalCount'] = self.total_count return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') + self.ecs_specs = [] + if m.get('EcsSpecs') is not None: + for k in m.get('EcsSpecs'): + temp_model = ListEcsSpecsResponseBodyEcsSpecs() + self.ecs_specs.append(temp_model.from_map(k)) + if m.get('HttpStatusCode') is not None: + self.http_status_code = m.get('HttpStatusCode') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Success') is not None: self.success = m.get('Success') - if m.get('Token') is not None: - self.token = m.get('Token') + if m.get('TotalCount') is not None: + self.total_count = m.get('TotalCount') return self -class GetTokenResponse(TeaModel): +class ListEcsSpecsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: GetTokenResponseBody = None, + body: ListEcsSpecsResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -5857,39 +5363,23 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = GetTokenResponseBody() + temp_model = ListEcsSpecsResponseBody() self.body = temp_model.from_map(m['body']) return self -class GetUserConfigResponseBodyFreeTier(TeaModel): +class ListInstanceSnapshotRequest(TeaModel): def __init__( self, - end_time: str = None, - init_base_unit: str = None, - init_base_value: float = None, - init_show_unit: str = None, - init_show_value: str = None, - is_free_tier_user: bool = None, - period_base_unit: str = None, - period_base_value: float = None, - period_show_unit: str = None, - period_show_value: str = None, - start_time: str = None, - status: str = None, + order: str = None, + page_number: int = None, + page_size: int = None, + sort_by: str = None, ): - self.end_time = end_time - self.init_base_unit = init_base_unit - self.init_base_value = init_base_value - self.init_show_unit = init_show_unit - self.init_show_value = init_show_value - self.is_free_tier_user = is_free_tier_user - self.period_base_unit = period_base_unit - self.period_base_value = period_base_value - self.period_show_unit = period_show_unit - self.period_show_value = period_show_value - self.start_time = start_time - self.status = status + self.order = order + self.page_number = page_number + self.page_size = page_size + self.sort_by = sort_by def validate(self): pass @@ -5900,87 +5390,187 @@ def to_map(self): return _map result = dict() - if self.end_time is not None: - result['EndTime'] = self.end_time - if self.init_base_unit is not None: - result['InitBaseUnit'] = self.init_base_unit - if self.init_base_value is not None: - result['InitBaseValue'] = self.init_base_value - if self.init_show_unit is not None: - result['InitShowUnit'] = self.init_show_unit - if self.init_show_value is not None: - result['InitShowValue'] = self.init_show_value - if self.is_free_tier_user is not None: - result['IsFreeTierUser'] = self.is_free_tier_user - if self.period_base_unit is not None: - result['PeriodBaseUnit'] = self.period_base_unit - if self.period_base_value is not None: - result['PeriodBaseValue'] = self.period_base_value - if self.period_show_unit is not None: - result['PeriodShowUnit'] = self.period_show_unit - if self.period_show_value is not None: - result['PeriodShowValue'] = self.period_show_value - if self.start_time is not None: - result['StartTime'] = self.start_time + if self.order is not None: + result['Order'] = self.order + if self.page_number is not None: + result['PageNumber'] = self.page_number + if self.page_size is not None: + result['PageSize'] = self.page_size + if self.sort_by is not None: + result['SortBy'] = self.sort_by + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('Order') is not None: + self.order = m.get('Order') + if m.get('PageNumber') is not None: + self.page_number = m.get('PageNumber') + if m.get('PageSize') is not None: + self.page_size = m.get('PageSize') + if m.get('SortBy') is not None: + self.sort_by = m.get('SortBy') + return self + + +class ListInstanceSnapshotResponseBodySnapshotsLabels(TeaModel): + def __init__( + self, + key: str = None, + value: str = None, + ): + self.key = key + self.value = value + + def validate(self): + pass + + def to_map(self): + _map = super().to_map() + if _map is not None: + return _map + + result = dict() + if self.key is not None: + result['Key'] = self.key + if self.value is not None: + result['Value'] = self.value + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('Key') is not None: + self.key = m.get('Key') + if m.get('Value') is not None: + self.value = m.get('Value') + return self + + +class ListInstanceSnapshotResponseBodySnapshots(TeaModel): + def __init__( + self, + exclude_paths: List[str] = None, + gmt_create_time: str = None, + gmt_modified_time: str = None, + image_id: str = None, + image_url: str = None, + instance_id: str = None, + labels: List[ListInstanceSnapshotResponseBodySnapshotsLabels] = None, + reason_code: str = None, + reason_message: str = None, + snapshot_id: str = None, + snapshot_name: str = None, + status: str = None, + ): + self.exclude_paths = exclude_paths + self.gmt_create_time = gmt_create_time + self.gmt_modified_time = gmt_modified_time + self.image_id = image_id + self.image_url = image_url + self.instance_id = instance_id + self.labels = labels + self.reason_code = reason_code + self.reason_message = reason_message + self.snapshot_id = snapshot_id + self.snapshot_name = snapshot_name + self.status = status + + def validate(self): + if self.labels: + for k in self.labels: + if k: + k.validate() + + def to_map(self): + _map = super().to_map() + if _map is not None: + return _map + + result = dict() + if self.exclude_paths is not None: + result['ExcludePaths'] = self.exclude_paths + if self.gmt_create_time is not None: + result['GmtCreateTime'] = self.gmt_create_time + if self.gmt_modified_time is not None: + result['GmtModifiedTime'] = self.gmt_modified_time + if self.image_id is not None: + result['ImageId'] = self.image_id + if self.image_url is not None: + result['ImageUrl'] = self.image_url + if self.instance_id is not None: + result['InstanceId'] = self.instance_id + result['Labels'] = [] + if self.labels is not None: + for k in self.labels: + result['Labels'].append(k.to_map() if k else None) + if self.reason_code is not None: + result['ReasonCode'] = self.reason_code + if self.reason_message is not None: + result['ReasonMessage'] = self.reason_message + if self.snapshot_id is not None: + result['SnapshotId'] = self.snapshot_id + if self.snapshot_name is not None: + result['SnapshotName'] = self.snapshot_name if self.status is not None: result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() - if m.get('EndTime') is not None: - self.end_time = m.get('EndTime') - if m.get('InitBaseUnit') is not None: - self.init_base_unit = m.get('InitBaseUnit') - if m.get('InitBaseValue') is not None: - self.init_base_value = m.get('InitBaseValue') - if m.get('InitShowUnit') is not None: - self.init_show_unit = m.get('InitShowUnit') - if m.get('InitShowValue') is not None: - self.init_show_value = m.get('InitShowValue') - if m.get('IsFreeTierUser') is not None: - self.is_free_tier_user = m.get('IsFreeTierUser') - if m.get('PeriodBaseUnit') is not None: - self.period_base_unit = m.get('PeriodBaseUnit') - if m.get('PeriodBaseValue') is not None: - self.period_base_value = m.get('PeriodBaseValue') - if m.get('PeriodShowUnit') is not None: - self.period_show_unit = m.get('PeriodShowUnit') - if m.get('PeriodShowValue') is not None: - self.period_show_value = m.get('PeriodShowValue') - if m.get('StartTime') is not None: - self.start_time = m.get('StartTime') + if m.get('ExcludePaths') is not None: + self.exclude_paths = m.get('ExcludePaths') + if m.get('GmtCreateTime') is not None: + self.gmt_create_time = m.get('GmtCreateTime') + if m.get('GmtModifiedTime') is not None: + self.gmt_modified_time = m.get('GmtModifiedTime') + if m.get('ImageId') is not None: + self.image_id = m.get('ImageId') + if m.get('ImageUrl') is not None: + self.image_url = m.get('ImageUrl') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') + self.labels = [] + if m.get('Labels') is not None: + for k in m.get('Labels'): + temp_model = ListInstanceSnapshotResponseBodySnapshotsLabels() + self.labels.append(temp_model.from_map(k)) + if m.get('ReasonCode') is not None: + self.reason_code = m.get('ReasonCode') + if m.get('ReasonMessage') is not None: + self.reason_message = m.get('ReasonMessage') + if m.get('SnapshotId') is not None: + self.snapshot_id = m.get('SnapshotId') + if m.get('SnapshotName') is not None: + self.snapshot_name = m.get('SnapshotName') if m.get('Status') is not None: self.status = m.get('Status') return self -class GetUserConfigResponseBody(TeaModel): +class ListInstanceSnapshotResponseBody(TeaModel): def __init__( self, - account_sufficient: bool = None, code: str = None, - enable_eci_disk: bool = None, - free_tier: GetUserConfigResponseBodyFreeTier = None, - free_tier_spec_available: bool = None, http_status_code: int = None, message: str = None, request_id: str = None, + snapshots: List[ListInstanceSnapshotResponseBodySnapshots] = None, success: bool = None, + total_count: int = None, ): - self.account_sufficient = account_sufficient self.code = code - self.enable_eci_disk = enable_eci_disk - self.free_tier = free_tier - self.free_tier_spec_available = free_tier_spec_available self.http_status_code = http_status_code self.message = message self.request_id = request_id + self.snapshots = snapshots self.success = success + self.total_count = total_count def validate(self): - if self.free_tier: - self.free_tier.validate() + if self.snapshots: + for k in self.snapshots: + if k: + k.validate() def to_map(self): _map = super().to_map() @@ -5988,56 +5578,52 @@ def to_map(self): return _map result = dict() - if self.account_sufficient is not None: - result['AccountSufficient'] = self.account_sufficient if self.code is not None: result['Code'] = self.code - if self.enable_eci_disk is not None: - result['EnableEciDisk'] = self.enable_eci_disk - if self.free_tier is not None: - result['FreeTier'] = self.free_tier.to_map() - if self.free_tier_spec_available is not None: - result['FreeTierSpecAvailable'] = self.free_tier_spec_available if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id + result['Snapshots'] = [] + if self.snapshots is not None: + for k in self.snapshots: + result['Snapshots'].append(k.to_map() if k else None) if self.success is not None: result['Success'] = self.success + if self.total_count is not None: + result['TotalCount'] = self.total_count return result def from_map(self, m: dict = None): m = m or dict() - if m.get('AccountSufficient') is not None: - self.account_sufficient = m.get('AccountSufficient') if m.get('Code') is not None: self.code = m.get('Code') - if m.get('EnableEciDisk') is not None: - self.enable_eci_disk = m.get('EnableEciDisk') - if m.get('FreeTier') is not None: - temp_model = GetUserConfigResponseBodyFreeTier() - self.free_tier = temp_model.from_map(m['FreeTier']) - if m.get('FreeTierSpecAvailable') is not None: - self.free_tier_spec_available = m.get('FreeTierSpecAvailable') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') + self.snapshots = [] + if m.get('Snapshots') is not None: + for k in m.get('Snapshots'): + temp_model = ListInstanceSnapshotResponseBodySnapshots() + self.snapshots.append(temp_model.from_map(k)) if m.get('Success') is not None: self.success = m.get('Success') + if m.get('TotalCount') is not None: + self.total_count = m.get('TotalCount') return self -class GetUserConfigResponse(TeaModel): +class ListInstanceSnapshotResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: GetUserConfigResponseBody = None, + body: ListInstanceSnapshotResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -6068,35 +5654,18 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = GetUserConfigResponseBody() + temp_model = ListInstanceSnapshotResponseBody() self.body = temp_model.from_map(m['body']) return self -class ListAppEndpointsResponseBodyEndpoints(TeaModel): +class ListInstanceStatisticsRequest(TeaModel): def __init__( self, - action: str = None, - app: str = None, - endpoint: str = None, - method: str = None, - path_name: str = None, - protocol: str = None, - req_body_type: str = None, - style: str = None, - timeout: int = None, - version: str = None, - ): - self.action = action - self.app = app - self.endpoint = endpoint - self.method = method - self.path_name = path_name - self.protocol = protocol - self.req_body_type = req_body_type - self.style = style - self.timeout = timeout - self.version = version + workspace_ids: str = None, + ): + # This parameter is required. + self.workspace_ids = workspace_ids def validate(self): pass @@ -6107,77 +5676,36 @@ def to_map(self): return _map result = dict() - if self.action is not None: - result['Action'] = self.action - if self.app is not None: - result['App'] = self.app - if self.endpoint is not None: - result['Endpoint'] = self.endpoint - if self.method is not None: - result['Method'] = self.method - if self.path_name is not None: - result['PathName'] = self.path_name - if self.protocol is not None: - result['Protocol'] = self.protocol - if self.req_body_type is not None: - result['ReqBodyType'] = self.req_body_type - if self.style is not None: - result['Style'] = self.style - if self.timeout is not None: - result['Timeout'] = self.timeout - if self.version is not None: - result['Version'] = self.version - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Action') is not None: - self.action = m.get('Action') - if m.get('App') is not None: - self.app = m.get('App') - if m.get('Endpoint') is not None: - self.endpoint = m.get('Endpoint') - if m.get('Method') is not None: - self.method = m.get('Method') - if m.get('PathName') is not None: - self.path_name = m.get('PathName') - if m.get('Protocol') is not None: - self.protocol = m.get('Protocol') - if m.get('ReqBodyType') is not None: - self.req_body_type = m.get('ReqBodyType') - if m.get('Style') is not None: - self.style = m.get('Style') - if m.get('Timeout') is not None: - self.timeout = m.get('Timeout') - if m.get('Version') is not None: - self.version = m.get('Version') + if self.workspace_ids is not None: + result['WorkspaceIds'] = self.workspace_ids + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('WorkspaceIds') is not None: + self.workspace_ids = m.get('WorkspaceIds') return self -class ListAppEndpointsResponseBody(TeaModel): +class ListInstanceStatisticsResponseBody(TeaModel): def __init__( self, code: str = None, - endpoints: List[ListAppEndpointsResponseBodyEndpoints] = None, http_status_code: int = None, message: str = None, request_id: str = None, + statistics: Dict[str, dict] = None, success: bool = None, - total_count: int = None, ): self.code = code - self.endpoints = endpoints self.http_status_code = http_status_code self.message = message self.request_id = request_id + self.statistics = statistics self.success = success - self.total_count = total_count def validate(self): - if self.endpoints: - for k in self.endpoints: - if k: - k.validate() + pass def to_map(self): _map = super().to_map() @@ -6187,50 +5715,41 @@ def to_map(self): result = dict() if self.code is not None: result['Code'] = self.code - result['Endpoints'] = [] - if self.endpoints is not None: - for k in self.endpoints: - result['Endpoints'].append(k.to_map() if k else None) if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code if self.message is not None: result['Message'] = self.message if self.request_id is not None: result['RequestId'] = self.request_id + if self.statistics is not None: + result['Statistics'] = self.statistics if self.success is not None: result['Success'] = self.success - if self.total_count is not None: - result['TotalCount'] = self.total_count return result def from_map(self, m: dict = None): m = m or dict() if m.get('Code') is not None: self.code = m.get('Code') - self.endpoints = [] - if m.get('Endpoints') is not None: - for k in m.get('Endpoints'): - temp_model = ListAppEndpointsResponseBodyEndpoints() - self.endpoints.append(temp_model.from_map(k)) if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') if m.get('Message') is not None: self.message = m.get('Message') if m.get('RequestId') is not None: self.request_id = m.get('RequestId') + if m.get('Statistics') is not None: + self.statistics = m.get('Statistics') if m.get('Success') is not None: self.success = m.get('Success') - if m.get('TotalCount') is not None: - self.total_count = m.get('TotalCount') return self -class ListAppEndpointsResponse(TeaModel): +class ListInstanceStatisticsResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: ListAppEndpointsResponseBody = None, + body: ListInstanceStatisticsResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -6261,29 +5780,104 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = ListAppEndpointsResponseBody() + temp_model = ListInstanceStatisticsResponseBody() self.body = temp_model.from_map(m['body']) return self -class ListEcsSpecsRequest(TeaModel): +class ListInstancesRequestTag(TeaModel): + def __init__( + self, + key: str = None, + value: str = None, + ): + self.key = key + self.value = value + + def validate(self): + pass + + def to_map(self): + _map = super().to_map() + if _map is not None: + return _map + + result = dict() + if self.key is not None: + result['Key'] = self.key + if self.value is not None: + result['Value'] = self.value + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('Key') is not None: + self.key = m.get('Key') + if m.get('Value') is not None: + self.value = m.get('Value') + return self + + +class ListInstancesRequest(TeaModel): def __init__( self, accelerator_type: str = None, + accessibility: str = None, + create_user_id: str = None, + gpu_type: str = None, + image_name: str = None, + instance_id: str = None, + instance_name: str = None, + labels: Dict[str, Any] = None, + max_cpu: str = None, + max_gpu: str = None, + max_gpu_memory: str = None, + max_memory: str = None, + min_cpu: str = None, + min_gpu: str = None, + min_gpu_memory: str = None, + min_memory: str = None, order: str = None, page_number: int = None, page_size: int = None, + payment_type: str = None, + resource_id: str = None, sort_by: str = None, + status: str = None, + tag: List[ListInstancesRequestTag] = None, + workspace_id: str = None, ): - # This parameter is required. self.accelerator_type = accelerator_type + self.accessibility = accessibility + self.create_user_id = create_user_id + self.gpu_type = gpu_type + self.image_name = image_name + self.instance_id = instance_id + self.instance_name = instance_name + self.labels = labels + self.max_cpu = max_cpu + self.max_gpu = max_gpu + self.max_gpu_memory = max_gpu_memory + self.max_memory = max_memory + self.min_cpu = min_cpu + self.min_gpu = min_gpu + self.min_gpu_memory = min_gpu_memory + self.min_memory = min_memory self.order = order self.page_number = page_number self.page_size = page_size + self.payment_type = payment_type + self.resource_id = resource_id self.sort_by = sort_by + self.status = status + self.tag = tag + self.workspace_id = workspace_id def validate(self): - pass + if self.tag: + for k in self.tag: + if k: + k.validate() def to_map(self): _map = super().to_map() @@ -6293,99 +5887,174 @@ def to_map(self): result = dict() if self.accelerator_type is not None: result['AcceleratorType'] = self.accelerator_type + if self.accessibility is not None: + result['Accessibility'] = self.accessibility + if self.create_user_id is not None: + result['CreateUserId'] = self.create_user_id + if self.gpu_type is not None: + result['GpuType'] = self.gpu_type + if self.image_name is not None: + result['ImageName'] = self.image_name + if self.instance_id is not None: + result['InstanceId'] = self.instance_id + if self.instance_name is not None: + result['InstanceName'] = self.instance_name + if self.labels is not None: + result['Labels'] = self.labels + if self.max_cpu is not None: + result['MaxCpu'] = self.max_cpu + if self.max_gpu is not None: + result['MaxGpu'] = self.max_gpu + if self.max_gpu_memory is not None: + result['MaxGpuMemory'] = self.max_gpu_memory + if self.max_memory is not None: + result['MaxMemory'] = self.max_memory + if self.min_cpu is not None: + result['MinCpu'] = self.min_cpu + if self.min_gpu is not None: + result['MinGpu'] = self.min_gpu + if self.min_gpu_memory is not None: + result['MinGpuMemory'] = self.min_gpu_memory + if self.min_memory is not None: + result['MinMemory'] = self.min_memory if self.order is not None: result['Order'] = self.order if self.page_number is not None: result['PageNumber'] = self.page_number if self.page_size is not None: result['PageSize'] = self.page_size + if self.payment_type is not None: + result['PaymentType'] = self.payment_type + if self.resource_id is not None: + result['ResourceId'] = self.resource_id if self.sort_by is not None: result['SortBy'] = self.sort_by + if self.status is not None: + result['Status'] = self.status + result['Tag'] = [] + if self.tag is not None: + for k in self.tag: + result['Tag'].append(k.to_map() if k else None) + if self.workspace_id is not None: + result['WorkspaceId'] = self.workspace_id return result def from_map(self, m: dict = None): m = m or dict() if m.get('AcceleratorType') is not None: self.accelerator_type = m.get('AcceleratorType') + if m.get('Accessibility') is not None: + self.accessibility = m.get('Accessibility') + if m.get('CreateUserId') is not None: + self.create_user_id = m.get('CreateUserId') + if m.get('GpuType') is not None: + self.gpu_type = m.get('GpuType') + if m.get('ImageName') is not None: + self.image_name = m.get('ImageName') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') + if m.get('InstanceName') is not None: + self.instance_name = m.get('InstanceName') + if m.get('Labels') is not None: + self.labels = m.get('Labels') + if m.get('MaxCpu') is not None: + self.max_cpu = m.get('MaxCpu') + if m.get('MaxGpu') is not None: + self.max_gpu = m.get('MaxGpu') + if m.get('MaxGpuMemory') is not None: + self.max_gpu_memory = m.get('MaxGpuMemory') + if m.get('MaxMemory') is not None: + self.max_memory = m.get('MaxMemory') + if m.get('MinCpu') is not None: + self.min_cpu = m.get('MinCpu') + if m.get('MinGpu') is not None: + self.min_gpu = m.get('MinGpu') + if m.get('MinGpuMemory') is not None: + self.min_gpu_memory = m.get('MinGpuMemory') + if m.get('MinMemory') is not None: + self.min_memory = m.get('MinMemory') if m.get('Order') is not None: self.order = m.get('Order') if m.get('PageNumber') is not None: self.page_number = m.get('PageNumber') if m.get('PageSize') is not None: self.page_size = m.get('PageSize') + if m.get('PaymentType') is not None: + self.payment_type = m.get('PaymentType') + if m.get('ResourceId') is not None: + self.resource_id = m.get('ResourceId') if m.get('SortBy') is not None: self.sort_by = m.get('SortBy') + if m.get('Status') is not None: + self.status = m.get('Status') + self.tag = [] + if m.get('Tag') is not None: + for k in m.get('Tag'): + temp_model = ListInstancesRequestTag() + self.tag.append(temp_model.from_map(k)) + if m.get('WorkspaceId') is not None: + self.workspace_id = m.get('WorkspaceId') return self -class ListEcsSpecsResponseBodyEcsSpecsLabels(TeaModel): +class ListInstancesShrinkRequest(TeaModel): def __init__( self, - key: str = None, - value: str = None, + accelerator_type: str = None, + accessibility: str = None, + create_user_id: str = None, + gpu_type: str = None, + image_name: str = None, + instance_id: str = None, + instance_name: str = None, + labels_shrink: str = None, + max_cpu: str = None, + max_gpu: str = None, + max_gpu_memory: str = None, + max_memory: str = None, + min_cpu: str = None, + min_gpu: str = None, + min_gpu_memory: str = None, + min_memory: str = None, + order: str = None, + page_number: int = None, + page_size: int = None, + payment_type: str = None, + resource_id: str = None, + sort_by: str = None, + status: str = None, + tag_shrink: str = None, + workspace_id: str = None, ): - self.key = key - self.value = value + self.accelerator_type = accelerator_type + self.accessibility = accessibility + self.create_user_id = create_user_id + self.gpu_type = gpu_type + self.image_name = image_name + self.instance_id = instance_id + self.instance_name = instance_name + self.labels_shrink = labels_shrink + self.max_cpu = max_cpu + self.max_gpu = max_gpu + self.max_gpu_memory = max_gpu_memory + self.max_memory = max_memory + self.min_cpu = min_cpu + self.min_gpu = min_gpu + self.min_gpu_memory = min_gpu_memory + self.min_memory = min_memory + self.order = order + self.page_number = page_number + self.page_size = page_size + self.payment_type = payment_type + self.resource_id = resource_id + self.sort_by = sort_by + self.status = status + self.tag_shrink = tag_shrink + self.workspace_id = workspace_id def validate(self): pass - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.key is not None: - result['Key'] = self.key - if self.value is not None: - result['Value'] = self.value - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Key') is not None: - self.key = m.get('Key') - if m.get('Value') is not None: - self.value = m.get('Value') - return self - - -class ListEcsSpecsResponseBodyEcsSpecs(TeaModel): - def __init__( - self, - accelerator_type: str = None, - cpu: int = None, - currency: str = None, - gpu: int = None, - gputype: str = None, - instance_bandwidth_rx: int = None, - instance_type: str = None, - is_available: bool = None, - labels: List[ListEcsSpecsResponseBodyEcsSpecsLabels] = None, - memory: float = None, - price: float = None, - system_disk_capacity: int = None, - ): - self.accelerator_type = accelerator_type - self.cpu = cpu - self.currency = currency - self.gpu = gpu - self.gputype = gputype - self.instance_bandwidth_rx = instance_bandwidth_rx - self.instance_type = instance_type - self.is_available = is_available - self.labels = labels - self.memory = memory - self.price = price - self.system_disk_capacity = system_disk_capacity - - def validate(self): - if self.labels: - for k in self.labels: - if k: - k.validate() - def to_map(self): _map = super().to_map() if _map is not None: @@ -6394,88 +6063,120 @@ def to_map(self): result = dict() if self.accelerator_type is not None: result['AcceleratorType'] = self.accelerator_type - if self.cpu is not None: - result['CPU'] = self.cpu - if self.currency is not None: - result['Currency'] = self.currency - if self.gpu is not None: - result['GPU'] = self.gpu - if self.gputype is not None: - result['GPUType'] = self.gputype - if self.instance_bandwidth_rx is not None: - result['InstanceBandwidthRx'] = self.instance_bandwidth_rx - if self.instance_type is not None: - result['InstanceType'] = self.instance_type - if self.is_available is not None: - result['IsAvailable'] = self.is_available - result['Labels'] = [] - if self.labels is not None: - for k in self.labels: - result['Labels'].append(k.to_map() if k else None) - if self.memory is not None: - result['Memory'] = self.memory - if self.price is not None: - result['Price'] = self.price - if self.system_disk_capacity is not None: - result['SystemDiskCapacity'] = self.system_disk_capacity + if self.accessibility is not None: + result['Accessibility'] = self.accessibility + if self.create_user_id is not None: + result['CreateUserId'] = self.create_user_id + if self.gpu_type is not None: + result['GpuType'] = self.gpu_type + if self.image_name is not None: + result['ImageName'] = self.image_name + if self.instance_id is not None: + result['InstanceId'] = self.instance_id + if self.instance_name is not None: + result['InstanceName'] = self.instance_name + if self.labels_shrink is not None: + result['Labels'] = self.labels_shrink + if self.max_cpu is not None: + result['MaxCpu'] = self.max_cpu + if self.max_gpu is not None: + result['MaxGpu'] = self.max_gpu + if self.max_gpu_memory is not None: + result['MaxGpuMemory'] = self.max_gpu_memory + if self.max_memory is not None: + result['MaxMemory'] = self.max_memory + if self.min_cpu is not None: + result['MinCpu'] = self.min_cpu + if self.min_gpu is not None: + result['MinGpu'] = self.min_gpu + if self.min_gpu_memory is not None: + result['MinGpuMemory'] = self.min_gpu_memory + if self.min_memory is not None: + result['MinMemory'] = self.min_memory + if self.order is not None: + result['Order'] = self.order + if self.page_number is not None: + result['PageNumber'] = self.page_number + if self.page_size is not None: + result['PageSize'] = self.page_size + if self.payment_type is not None: + result['PaymentType'] = self.payment_type + if self.resource_id is not None: + result['ResourceId'] = self.resource_id + if self.sort_by is not None: + result['SortBy'] = self.sort_by + if self.status is not None: + result['Status'] = self.status + if self.tag_shrink is not None: + result['Tag'] = self.tag_shrink + if self.workspace_id is not None: + result['WorkspaceId'] = self.workspace_id return result def from_map(self, m: dict = None): m = m or dict() if m.get('AcceleratorType') is not None: self.accelerator_type = m.get('AcceleratorType') - if m.get('CPU') is not None: - self.cpu = m.get('CPU') - if m.get('Currency') is not None: - self.currency = m.get('Currency') - if m.get('GPU') is not None: - self.gpu = m.get('GPU') - if m.get('GPUType') is not None: - self.gputype = m.get('GPUType') - if m.get('InstanceBandwidthRx') is not None: - self.instance_bandwidth_rx = m.get('InstanceBandwidthRx') - if m.get('InstanceType') is not None: - self.instance_type = m.get('InstanceType') - if m.get('IsAvailable') is not None: - self.is_available = m.get('IsAvailable') - self.labels = [] + if m.get('Accessibility') is not None: + self.accessibility = m.get('Accessibility') + if m.get('CreateUserId') is not None: + self.create_user_id = m.get('CreateUserId') + if m.get('GpuType') is not None: + self.gpu_type = m.get('GpuType') + if m.get('ImageName') is not None: + self.image_name = m.get('ImageName') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') + if m.get('InstanceName') is not None: + self.instance_name = m.get('InstanceName') if m.get('Labels') is not None: - for k in m.get('Labels'): - temp_model = ListEcsSpecsResponseBodyEcsSpecsLabels() - self.labels.append(temp_model.from_map(k)) - if m.get('Memory') is not None: - self.memory = m.get('Memory') - if m.get('Price') is not None: - self.price = m.get('Price') - if m.get('SystemDiskCapacity') is not None: - self.system_disk_capacity = m.get('SystemDiskCapacity') + self.labels_shrink = m.get('Labels') + if m.get('MaxCpu') is not None: + self.max_cpu = m.get('MaxCpu') + if m.get('MaxGpu') is not None: + self.max_gpu = m.get('MaxGpu') + if m.get('MaxGpuMemory') is not None: + self.max_gpu_memory = m.get('MaxGpuMemory') + if m.get('MaxMemory') is not None: + self.max_memory = m.get('MaxMemory') + if m.get('MinCpu') is not None: + self.min_cpu = m.get('MinCpu') + if m.get('MinGpu') is not None: + self.min_gpu = m.get('MinGpu') + if m.get('MinGpuMemory') is not None: + self.min_gpu_memory = m.get('MinGpuMemory') + if m.get('MinMemory') is not None: + self.min_memory = m.get('MinMemory') + if m.get('Order') is not None: + self.order = m.get('Order') + if m.get('PageNumber') is not None: + self.page_number = m.get('PageNumber') + if m.get('PageSize') is not None: + self.page_size = m.get('PageSize') + if m.get('PaymentType') is not None: + self.payment_type = m.get('PaymentType') + if m.get('ResourceId') is not None: + self.resource_id = m.get('ResourceId') + if m.get('SortBy') is not None: + self.sort_by = m.get('SortBy') + if m.get('Status') is not None: + self.status = m.get('Status') + if m.get('Tag') is not None: + self.tag_shrink = m.get('Tag') + if m.get('WorkspaceId') is not None: + self.workspace_id = m.get('WorkspaceId') return self -class ListEcsSpecsResponseBody(TeaModel): +class ListInstancesResponseBodyInstancesAffinityCPU(TeaModel): def __init__( self, - code: str = None, - ecs_specs: List[ListEcsSpecsResponseBodyEcsSpecs] = None, - http_status_code: int = None, - message: str = None, - request_id: str = None, - success: bool = None, - total_count: int = None, + enable: bool = None, ): - self.code = code - self.ecs_specs = ecs_specs - self.http_status_code = http_status_code - self.message = message - self.request_id = request_id - self.success = success - self.total_count = total_count + self.enable = enable def validate(self): - if self.ecs_specs: - for k in self.ecs_specs: - if k: - k.validate() + pass def to_map(self): _map = super().to_map() @@ -6483,60 +6184,27 @@ def to_map(self): return _map result = dict() - if self.code is not None: - result['Code'] = self.code - result['EcsSpecs'] = [] - if self.ecs_specs is not None: - for k in self.ecs_specs: - result['EcsSpecs'].append(k.to_map() if k else None) - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.success is not None: - result['Success'] = self.success - if self.total_count is not None: - result['TotalCount'] = self.total_count + if self.enable is not None: + result['Enable'] = self.enable return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - self.ecs_specs = [] - if m.get('EcsSpecs') is not None: - for k in m.get('EcsSpecs'): - temp_model = ListEcsSpecsResponseBodyEcsSpecs() - self.ecs_specs.append(temp_model.from_map(k)) - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('TotalCount') is not None: - self.total_count = m.get('TotalCount') + if m.get('Enable') is not None: + self.enable = m.get('Enable') return self -class ListEcsSpecsResponse(TeaModel): +class ListInstancesResponseBodyInstancesAffinity(TeaModel): def __init__( self, - headers: Dict[str, str] = None, - status_code: int = None, - body: ListEcsSpecsResponseBody = None, + cpu: ListInstancesResponseBodyInstancesAffinityCPU = None, ): - self.headers = headers - self.status_code = status_code - self.body = body + self.cpu = cpu def validate(self): - if self.body: - self.body.validate() + if self.cpu: + self.cpu.validate() def to_map(self): _map = super().to_map() @@ -6544,32 +6212,30 @@ def to_map(self): return _map result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() + if self.cpu is not None: + result['CPU'] = self.cpu.to_map() return result def from_map(self, m: dict = None): m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = ListEcsSpecsResponseBody() - self.body = temp_model.from_map(m['body']) + if m.get('CPU') is not None: + temp_model = ListInstancesResponseBodyInstancesAffinityCPU() + self.cpu = temp_model.from_map(m['CPU']) return self -class ListEcsSpecsByInstanceTypesRequest(TeaModel): +class ListInstancesResponseBodyInstancesCloudDisks(TeaModel): def __init__( self, - instance_types: str = None, + capacity: str = None, + mount_path: str = None, + path: str = None, + sub_type: str = None, ): - self.instance_types = instance_types + self.capacity = capacity + self.mount_path = mount_path + self.path = path + self.sub_type = sub_type def validate(self): pass @@ -6580,175 +6246,52 @@ def to_map(self): return _map result = dict() - if self.instance_types is not None: - result['InstanceTypes'] = self.instance_types - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('InstanceTypes') is not None: - self.instance_types = m.get('InstanceTypes') - return self - - -class ListEcsSpecsByInstanceTypesResponseBodyEcsSpecsLabels(TeaModel): - def __init__( - self, - key: str = None, - value: Any = None, - ): - self.key = key - self.value = value - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.key is not None: - result['Key'] = self.key - if self.value is not None: - result['Value'] = self.value - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Key') is not None: - self.key = m.get('Key') - if m.get('Value') is not None: - self.value = m.get('Value') - return self - - -class ListEcsSpecsByInstanceTypesResponseBodyEcsSpecs(TeaModel): - def __init__( - self, - accelerator_type: str = None, - cpu: int = None, - currency: str = None, - gpu: int = None, - gputype: str = None, - instance_bandwidth_rx: int = None, - instance_type: str = None, - is_available: bool = None, - labels: List[ListEcsSpecsByInstanceTypesResponseBodyEcsSpecsLabels] = None, - memory: float = None, - price: float = None, - system_disk_capacity: int = None, - ): - self.accelerator_type = accelerator_type - self.cpu = cpu - self.currency = currency - self.gpu = gpu - self.gputype = gputype - self.instance_bandwidth_rx = instance_bandwidth_rx - self.instance_type = instance_type - self.is_available = is_available - self.labels = labels - self.memory = memory - self.price = price - self.system_disk_capacity = system_disk_capacity - - def validate(self): - if self.labels: - for k in self.labels: - if k: - k.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.accelerator_type is not None: - result['AcceleratorType'] = self.accelerator_type - if self.cpu is not None: - result['CPU'] = self.cpu - if self.currency is not None: - result['Currency'] = self.currency - if self.gpu is not None: - result['GPU'] = self.gpu - if self.gputype is not None: - result['GPUType'] = self.gputype - if self.instance_bandwidth_rx is not None: - result['InstanceBandwidthRx'] = self.instance_bandwidth_rx - if self.instance_type is not None: - result['InstanceType'] = self.instance_type - if self.is_available is not None: - result['IsAvailable'] = self.is_available - result['Labels'] = [] - if self.labels is not None: - for k in self.labels: - result['Labels'].append(k.to_map() if k else None) - if self.memory is not None: - result['Memory'] = self.memory - if self.price is not None: - result['Price'] = self.price - if self.system_disk_capacity is not None: - result['SystemDiskCapacity'] = self.system_disk_capacity + if self.capacity is not None: + result['Capacity'] = self.capacity + if self.mount_path is not None: + result['MountPath'] = self.mount_path + if self.path is not None: + result['Path'] = self.path + if self.sub_type is not None: + result['SubType'] = self.sub_type return result def from_map(self, m: dict = None): m = m or dict() - if m.get('AcceleratorType') is not None: - self.accelerator_type = m.get('AcceleratorType') - if m.get('CPU') is not None: - self.cpu = m.get('CPU') - if m.get('Currency') is not None: - self.currency = m.get('Currency') - if m.get('GPU') is not None: - self.gpu = m.get('GPU') - if m.get('GPUType') is not None: - self.gputype = m.get('GPUType') - if m.get('InstanceBandwidthRx') is not None: - self.instance_bandwidth_rx = m.get('InstanceBandwidthRx') - if m.get('InstanceType') is not None: - self.instance_type = m.get('InstanceType') - if m.get('IsAvailable') is not None: - self.is_available = m.get('IsAvailable') - self.labels = [] - if m.get('Labels') is not None: - for k in m.get('Labels'): - temp_model = ListEcsSpecsByInstanceTypesResponseBodyEcsSpecsLabels() - self.labels.append(temp_model.from_map(k)) - if m.get('Memory') is not None: - self.memory = m.get('Memory') - if m.get('Price') is not None: - self.price = m.get('Price') - if m.get('SystemDiskCapacity') is not None: - self.system_disk_capacity = m.get('SystemDiskCapacity') + if m.get('Capacity') is not None: + self.capacity = m.get('Capacity') + if m.get('MountPath') is not None: + self.mount_path = m.get('MountPath') + if m.get('Path') is not None: + self.path = m.get('Path') + if m.get('SubType') is not None: + self.sub_type = m.get('SubType') return self -class ListEcsSpecsByInstanceTypesResponseBody(TeaModel): +class ListInstancesResponseBodyInstancesDatasets(TeaModel): def __init__( self, - code: str = None, - ecs_specs: List[ListEcsSpecsByInstanceTypesResponseBodyEcsSpecs] = None, - http_status_code: int = None, - message: str = None, - request_id: str = None, - success: bool = None, - total_count: int = None, + dataset_id: str = None, + dataset_version: str = None, + dynamic: bool = None, + mount_access: str = None, + mount_path: str = None, + option_type: str = None, + options: str = None, + uri: str = None, ): - self.code = code - self.ecs_specs = ecs_specs - self.http_status_code = http_status_code - self.message = message - self.request_id = request_id - self.success = success - self.total_count = total_count + self.dataset_id = dataset_id + self.dataset_version = dataset_version + self.dynamic = dynamic + self.mount_access = mount_access + self.mount_path = mount_path + self.option_type = option_type + self.options = options + self.uri = uri def validate(self): - if self.ecs_specs: - for k in self.ecs_specs: - if k: - k.validate() + pass def to_map(self): _map = super().to_map() @@ -6756,60 +6299,62 @@ def to_map(self): return _map result = dict() - if self.code is not None: - result['Code'] = self.code - result['EcsSpecs'] = [] - if self.ecs_specs is not None: - for k in self.ecs_specs: - result['EcsSpecs'].append(k.to_map() if k else None) - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.success is not None: - result['Success'] = self.success - if self.total_count is not None: - result['TotalCount'] = self.total_count + if self.dataset_id is not None: + result['DatasetId'] = self.dataset_id + if self.dataset_version is not None: + result['DatasetVersion'] = self.dataset_version + if self.dynamic is not None: + result['Dynamic'] = self.dynamic + if self.mount_access is not None: + result['MountAccess'] = self.mount_access + if self.mount_path is not None: + result['MountPath'] = self.mount_path + if self.option_type is not None: + result['OptionType'] = self.option_type + if self.options is not None: + result['Options'] = self.options + if self.uri is not None: + result['Uri'] = self.uri return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - self.ecs_specs = [] - if m.get('EcsSpecs') is not None: - for k in m.get('EcsSpecs'): - temp_model = ListEcsSpecsByInstanceTypesResponseBodyEcsSpecs() - self.ecs_specs.append(temp_model.from_map(k)) - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('TotalCount') is not None: - self.total_count = m.get('TotalCount') + if m.get('DatasetId') is not None: + self.dataset_id = m.get('DatasetId') + if m.get('DatasetVersion') is not None: + self.dataset_version = m.get('DatasetVersion') + if m.get('Dynamic') is not None: + self.dynamic = m.get('Dynamic') + if m.get('MountAccess') is not None: + self.mount_access = m.get('MountAccess') + if m.get('MountPath') is not None: + self.mount_path = m.get('MountPath') + if m.get('OptionType') is not None: + self.option_type = m.get('OptionType') + if m.get('Options') is not None: + self.options = m.get('Options') + if m.get('Uri') is not None: + self.uri = m.get('Uri') return self -class ListEcsSpecsByInstanceTypesResponse(TeaModel): +class ListInstancesResponseBodyInstancesIdleInstanceCuller(TeaModel): def __init__( self, - headers: Dict[str, str] = None, - status_code: int = None, - body: ListEcsSpecsByInstanceTypesResponseBody = None, + cpu_percent_threshold: int = None, + gpu_percent_threshold: int = None, + idle_time_in_minutes: int = None, + instance_id: str = None, + max_idle_time_in_minutes: int = None, ): - self.headers = headers - self.status_code = status_code - self.body = body + self.cpu_percent_threshold = cpu_percent_threshold + self.gpu_percent_threshold = gpu_percent_threshold + self.idle_time_in_minutes = idle_time_in_minutes + self.instance_id = instance_id + self.max_idle_time_in_minutes = max_idle_time_in_minutes def validate(self): - if self.body: - self.body.validate() + pass def to_map(self): _map = super().to_map() @@ -6817,1687 +6362,50 @@ def to_map(self): return _map result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = ListEcsSpecsByInstanceTypesResponseBody() - self.body = temp_model.from_map(m['body']) - return self - - -class ListInstanceSnapshotRequest(TeaModel): - def __init__( - self, - order: str = None, - page_number: int = None, - page_size: int = None, - sort_by: str = None, - ): - self.order = order - self.page_number = page_number - self.page_size = page_size - self.sort_by = sort_by - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.order is not None: - result['Order'] = self.order - if self.page_number is not None: - result['PageNumber'] = self.page_number - if self.page_size is not None: - result['PageSize'] = self.page_size - if self.sort_by is not None: - result['SortBy'] = self.sort_by - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Order') is not None: - self.order = m.get('Order') - if m.get('PageNumber') is not None: - self.page_number = m.get('PageNumber') - if m.get('PageSize') is not None: - self.page_size = m.get('PageSize') - if m.get('SortBy') is not None: - self.sort_by = m.get('SortBy') - return self - - -class ListInstanceSnapshotResponseBodySnapshotsLabels(TeaModel): - def __init__( - self, - key: str = None, - value: str = None, - ): - self.key = key - self.value = value - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.key is not None: - result['Key'] = self.key - if self.value is not None: - result['Value'] = self.value - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Key') is not None: - self.key = m.get('Key') - if m.get('Value') is not None: - self.value = m.get('Value') - return self - - -class ListInstanceSnapshotResponseBodySnapshots(TeaModel): - def __init__( - self, - exclude_paths: List[str] = None, - gmt_create_time: str = None, - gmt_modified_time: str = None, - image_id: str = None, - image_url: str = None, - instance_id: str = None, - labels: List[ListInstanceSnapshotResponseBodySnapshotsLabels] = None, - reason_code: str = None, - reason_message: str = None, - snapshot_id: str = None, - snapshot_name: str = None, - status: str = None, - ): - self.exclude_paths = exclude_paths - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time - self.image_id = image_id - self.image_url = image_url - self.instance_id = instance_id - self.labels = labels - self.reason_code = reason_code - self.reason_message = reason_message - self.snapshot_id = snapshot_id - self.snapshot_name = snapshot_name - self.status = status - - def validate(self): - if self.labels: - for k in self.labels: - if k: - k.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.exclude_paths is not None: - result['ExcludePaths'] = self.exclude_paths - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.image_id is not None: - result['ImageId'] = self.image_id - if self.image_url is not None: - result['ImageUrl'] = self.image_url - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - result['Labels'] = [] - if self.labels is not None: - for k in self.labels: - result['Labels'].append(k.to_map() if k else None) - if self.reason_code is not None: - result['ReasonCode'] = self.reason_code - if self.reason_message is not None: - result['ReasonMessage'] = self.reason_message - if self.snapshot_id is not None: - result['SnapshotId'] = self.snapshot_id - if self.snapshot_name is not None: - result['SnapshotName'] = self.snapshot_name - if self.status is not None: - result['Status'] = self.status - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('ExcludePaths') is not None: - self.exclude_paths = m.get('ExcludePaths') - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('ImageId') is not None: - self.image_id = m.get('ImageId') - if m.get('ImageUrl') is not None: - self.image_url = m.get('ImageUrl') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - self.labels = [] - if m.get('Labels') is not None: - for k in m.get('Labels'): - temp_model = ListInstanceSnapshotResponseBodySnapshotsLabels() - self.labels.append(temp_model.from_map(k)) - if m.get('ReasonCode') is not None: - self.reason_code = m.get('ReasonCode') - if m.get('ReasonMessage') is not None: - self.reason_message = m.get('ReasonMessage') - if m.get('SnapshotId') is not None: - self.snapshot_id = m.get('SnapshotId') - if m.get('SnapshotName') is not None: - self.snapshot_name = m.get('SnapshotName') - if m.get('Status') is not None: - self.status = m.get('Status') - return self - - -class ListInstanceSnapshotResponseBody(TeaModel): - def __init__( - self, - code: str = None, - http_status_code: int = None, - message: str = None, - request_id: str = None, - snapshots: List[ListInstanceSnapshotResponseBodySnapshots] = None, - success: bool = None, - total_count: int = None, - ): - self.code = code - self.http_status_code = http_status_code - self.message = message - self.request_id = request_id - self.snapshots = snapshots - self.success = success - self.total_count = total_count - - def validate(self): - if self.snapshots: - for k in self.snapshots: - if k: - k.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - result['Snapshots'] = [] - if self.snapshots is not None: - for k in self.snapshots: - result['Snapshots'].append(k.to_map() if k else None) - if self.success is not None: - result['Success'] = self.success - if self.total_count is not None: - result['TotalCount'] = self.total_count - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - self.snapshots = [] - if m.get('Snapshots') is not None: - for k in m.get('Snapshots'): - temp_model = ListInstanceSnapshotResponseBodySnapshots() - self.snapshots.append(temp_model.from_map(k)) - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('TotalCount') is not None: - self.total_count = m.get('TotalCount') - return self - - -class ListInstanceSnapshotResponse(TeaModel): - def __init__( - self, - headers: Dict[str, str] = None, - status_code: int = None, - body: ListInstanceSnapshotResponseBody = None, - ): - self.headers = headers - self.status_code = status_code - self.body = body - - def validate(self): - if self.body: - self.body.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = ListInstanceSnapshotResponseBody() - self.body = temp_model.from_map(m['body']) - return self - - -class ListInstanceStatisticsRequest(TeaModel): - def __init__( - self, - workspace_ids: str = None, - ): - # This parameter is required. - self.workspace_ids = workspace_ids - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.workspace_ids is not None: - result['WorkspaceIds'] = self.workspace_ids - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('WorkspaceIds') is not None: - self.workspace_ids = m.get('WorkspaceIds') - return self - - -class ListInstanceStatisticsResponseBody(TeaModel): - def __init__( - self, - code: str = None, - http_status_code: int = None, - message: str = None, - request_id: str = None, - statistics: Dict[str, dict] = None, - success: bool = None, - ): - self.code = code - self.http_status_code = http_status_code - self.message = message - self.request_id = request_id - self.statistics = statistics - self.success = success - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.statistics is not None: - result['Statistics'] = self.statistics - if self.success is not None: - result['Success'] = self.success - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Statistics') is not None: - self.statistics = m.get('Statistics') - if m.get('Success') is not None: - self.success = m.get('Success') - return self - - -class ListInstanceStatisticsResponse(TeaModel): - def __init__( - self, - headers: Dict[str, str] = None, - status_code: int = None, - body: ListInstanceStatisticsResponseBody = None, - ): - self.headers = headers - self.status_code = status_code - self.body = body - - def validate(self): - if self.body: - self.body.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = ListInstanceStatisticsResponseBody() - self.body = temp_model.from_map(m['body']) - return self - - -class ListInstancesRequest(TeaModel): - def __init__( - self, - accelerator_type: str = None, - accessibility: str = None, - create_user_id: str = None, - gpu_type: str = None, - image_name: str = None, - instance_id: str = None, - instance_name: str = None, - labels: Dict[str, Any] = None, - max_cpu: str = None, - max_gpu: str = None, - max_gpu_memory: str = None, - max_memory: str = None, - min_cpu: str = None, - min_gpu: str = None, - min_gpu_memory: str = None, - min_memory: str = None, - order: str = None, - page_number: int = None, - page_size: int = None, - payment_type: str = None, - resource_id: str = None, - sort_by: str = None, - status: str = None, - workspace_id: str = None, - ): - self.accelerator_type = accelerator_type - self.accessibility = accessibility - self.create_user_id = create_user_id - self.gpu_type = gpu_type - self.image_name = image_name - self.instance_id = instance_id - self.instance_name = instance_name - self.labels = labels - self.max_cpu = max_cpu - self.max_gpu = max_gpu - self.max_gpu_memory = max_gpu_memory - self.max_memory = max_memory - self.min_cpu = min_cpu - self.min_gpu = min_gpu - self.min_gpu_memory = min_gpu_memory - self.min_memory = min_memory - self.order = order - self.page_number = page_number - self.page_size = page_size - self.payment_type = payment_type - self.resource_id = resource_id - self.sort_by = sort_by - self.status = status - self.workspace_id = workspace_id - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.accelerator_type is not None: - result['AcceleratorType'] = self.accelerator_type - if self.accessibility is not None: - result['Accessibility'] = self.accessibility - if self.create_user_id is not None: - result['CreateUserId'] = self.create_user_id - if self.gpu_type is not None: - result['GpuType'] = self.gpu_type - if self.image_name is not None: - result['ImageName'] = self.image_name - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.instance_name is not None: - result['InstanceName'] = self.instance_name - if self.labels is not None: - result['Labels'] = self.labels - if self.max_cpu is not None: - result['MaxCpu'] = self.max_cpu - if self.max_gpu is not None: - result['MaxGpu'] = self.max_gpu - if self.max_gpu_memory is not None: - result['MaxGpuMemory'] = self.max_gpu_memory - if self.max_memory is not None: - result['MaxMemory'] = self.max_memory - if self.min_cpu is not None: - result['MinCpu'] = self.min_cpu - if self.min_gpu is not None: - result['MinGpu'] = self.min_gpu - if self.min_gpu_memory is not None: - result['MinGpuMemory'] = self.min_gpu_memory - if self.min_memory is not None: - result['MinMemory'] = self.min_memory - if self.order is not None: - result['Order'] = self.order - if self.page_number is not None: - result['PageNumber'] = self.page_number - if self.page_size is not None: - result['PageSize'] = self.page_size - if self.payment_type is not None: - result['PaymentType'] = self.payment_type - if self.resource_id is not None: - result['ResourceId'] = self.resource_id - if self.sort_by is not None: - result['SortBy'] = self.sort_by - if self.status is not None: - result['Status'] = self.status - if self.workspace_id is not None: - result['WorkspaceId'] = self.workspace_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('AcceleratorType') is not None: - self.accelerator_type = m.get('AcceleratorType') - if m.get('Accessibility') is not None: - self.accessibility = m.get('Accessibility') - if m.get('CreateUserId') is not None: - self.create_user_id = m.get('CreateUserId') - if m.get('GpuType') is not None: - self.gpu_type = m.get('GpuType') - if m.get('ImageName') is not None: - self.image_name = m.get('ImageName') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('InstanceName') is not None: - self.instance_name = m.get('InstanceName') - if m.get('Labels') is not None: - self.labels = m.get('Labels') - if m.get('MaxCpu') is not None: - self.max_cpu = m.get('MaxCpu') - if m.get('MaxGpu') is not None: - self.max_gpu = m.get('MaxGpu') - if m.get('MaxGpuMemory') is not None: - self.max_gpu_memory = m.get('MaxGpuMemory') - if m.get('MaxMemory') is not None: - self.max_memory = m.get('MaxMemory') - if m.get('MinCpu') is not None: - self.min_cpu = m.get('MinCpu') - if m.get('MinGpu') is not None: - self.min_gpu = m.get('MinGpu') - if m.get('MinGpuMemory') is not None: - self.min_gpu_memory = m.get('MinGpuMemory') - if m.get('MinMemory') is not None: - self.min_memory = m.get('MinMemory') - if m.get('Order') is not None: - self.order = m.get('Order') - if m.get('PageNumber') is not None: - self.page_number = m.get('PageNumber') - if m.get('PageSize') is not None: - self.page_size = m.get('PageSize') - if m.get('PaymentType') is not None: - self.payment_type = m.get('PaymentType') - if m.get('ResourceId') is not None: - self.resource_id = m.get('ResourceId') - if m.get('SortBy') is not None: - self.sort_by = m.get('SortBy') - if m.get('Status') is not None: - self.status = m.get('Status') - if m.get('WorkspaceId') is not None: - self.workspace_id = m.get('WorkspaceId') - return self - - -class ListInstancesShrinkRequest(TeaModel): - def __init__( - self, - accelerator_type: str = None, - accessibility: str = None, - create_user_id: str = None, - gpu_type: str = None, - image_name: str = None, - instance_id: str = None, - instance_name: str = None, - labels_shrink: str = None, - max_cpu: str = None, - max_gpu: str = None, - max_gpu_memory: str = None, - max_memory: str = None, - min_cpu: str = None, - min_gpu: str = None, - min_gpu_memory: str = None, - min_memory: str = None, - order: str = None, - page_number: int = None, - page_size: int = None, - payment_type: str = None, - resource_id: str = None, - sort_by: str = None, - status: str = None, - workspace_id: str = None, - ): - self.accelerator_type = accelerator_type - self.accessibility = accessibility - self.create_user_id = create_user_id - self.gpu_type = gpu_type - self.image_name = image_name - self.instance_id = instance_id - self.instance_name = instance_name - self.labels_shrink = labels_shrink - self.max_cpu = max_cpu - self.max_gpu = max_gpu - self.max_gpu_memory = max_gpu_memory - self.max_memory = max_memory - self.min_cpu = min_cpu - self.min_gpu = min_gpu - self.min_gpu_memory = min_gpu_memory - self.min_memory = min_memory - self.order = order - self.page_number = page_number - self.page_size = page_size - self.payment_type = payment_type - self.resource_id = resource_id - self.sort_by = sort_by - self.status = status - self.workspace_id = workspace_id - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.accelerator_type is not None: - result['AcceleratorType'] = self.accelerator_type - if self.accessibility is not None: - result['Accessibility'] = self.accessibility - if self.create_user_id is not None: - result['CreateUserId'] = self.create_user_id - if self.gpu_type is not None: - result['GpuType'] = self.gpu_type - if self.image_name is not None: - result['ImageName'] = self.image_name - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.instance_name is not None: - result['InstanceName'] = self.instance_name - if self.labels_shrink is not None: - result['Labels'] = self.labels_shrink - if self.max_cpu is not None: - result['MaxCpu'] = self.max_cpu - if self.max_gpu is not None: - result['MaxGpu'] = self.max_gpu - if self.max_gpu_memory is not None: - result['MaxGpuMemory'] = self.max_gpu_memory - if self.max_memory is not None: - result['MaxMemory'] = self.max_memory - if self.min_cpu is not None: - result['MinCpu'] = self.min_cpu - if self.min_gpu is not None: - result['MinGpu'] = self.min_gpu - if self.min_gpu_memory is not None: - result['MinGpuMemory'] = self.min_gpu_memory - if self.min_memory is not None: - result['MinMemory'] = self.min_memory - if self.order is not None: - result['Order'] = self.order - if self.page_number is not None: - result['PageNumber'] = self.page_number - if self.page_size is not None: - result['PageSize'] = self.page_size - if self.payment_type is not None: - result['PaymentType'] = self.payment_type - if self.resource_id is not None: - result['ResourceId'] = self.resource_id - if self.sort_by is not None: - result['SortBy'] = self.sort_by - if self.status is not None: - result['Status'] = self.status - if self.workspace_id is not None: - result['WorkspaceId'] = self.workspace_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('AcceleratorType') is not None: - self.accelerator_type = m.get('AcceleratorType') - if m.get('Accessibility') is not None: - self.accessibility = m.get('Accessibility') - if m.get('CreateUserId') is not None: - self.create_user_id = m.get('CreateUserId') - if m.get('GpuType') is not None: - self.gpu_type = m.get('GpuType') - if m.get('ImageName') is not None: - self.image_name = m.get('ImageName') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('InstanceName') is not None: - self.instance_name = m.get('InstanceName') - if m.get('Labels') is not None: - self.labels_shrink = m.get('Labels') - if m.get('MaxCpu') is not None: - self.max_cpu = m.get('MaxCpu') - if m.get('MaxGpu') is not None: - self.max_gpu = m.get('MaxGpu') - if m.get('MaxGpuMemory') is not None: - self.max_gpu_memory = m.get('MaxGpuMemory') - if m.get('MaxMemory') is not None: - self.max_memory = m.get('MaxMemory') - if m.get('MinCpu') is not None: - self.min_cpu = m.get('MinCpu') - if m.get('MinGpu') is not None: - self.min_gpu = m.get('MinGpu') - if m.get('MinGpuMemory') is not None: - self.min_gpu_memory = m.get('MinGpuMemory') - if m.get('MinMemory') is not None: - self.min_memory = m.get('MinMemory') - if m.get('Order') is not None: - self.order = m.get('Order') - if m.get('PageNumber') is not None: - self.page_number = m.get('PageNumber') - if m.get('PageSize') is not None: - self.page_size = m.get('PageSize') - if m.get('PaymentType') is not None: - self.payment_type = m.get('PaymentType') - if m.get('ResourceId') is not None: - self.resource_id = m.get('ResourceId') - if m.get('SortBy') is not None: - self.sort_by = m.get('SortBy') - if m.get('Status') is not None: - self.status = m.get('Status') - if m.get('WorkspaceId') is not None: - self.workspace_id = m.get('WorkspaceId') - return self - - -class ListInstancesResponseBodyInstancesAffinityCPU(TeaModel): - def __init__( - self, - enable: bool = None, - ): - self.enable = enable - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.enable is not None: - result['Enable'] = self.enable - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Enable') is not None: - self.enable = m.get('Enable') - return self - - -class ListInstancesResponseBodyInstancesAffinity(TeaModel): - def __init__( - self, - cpu: ListInstancesResponseBodyInstancesAffinityCPU = None, - ): - self.cpu = cpu - - def validate(self): - if self.cpu: - self.cpu.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.cpu is not None: - result['CPU'] = self.cpu.to_map() - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('CPU') is not None: - temp_model = ListInstancesResponseBodyInstancesAffinityCPU() - self.cpu = temp_model.from_map(m['CPU']) - return self - - -class ListInstancesResponseBodyInstancesCloudDisks(TeaModel): - def __init__( - self, - capacity: str = None, - mount_path: str = None, - path: str = None, - sub_type: str = None, - ): - self.capacity = capacity - self.mount_path = mount_path - self.path = path - self.sub_type = sub_type - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.capacity is not None: - result['Capacity'] = self.capacity - if self.mount_path is not None: - result['MountPath'] = self.mount_path - if self.path is not None: - result['Path'] = self.path - if self.sub_type is not None: - result['SubType'] = self.sub_type - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Capacity') is not None: - self.capacity = m.get('Capacity') - if m.get('MountPath') is not None: - self.mount_path = m.get('MountPath') - if m.get('Path') is not None: - self.path = m.get('Path') - if m.get('SubType') is not None: - self.sub_type = m.get('SubType') - return self - - -class ListInstancesResponseBodyInstancesDatasets(TeaModel): - def __init__( - self, - dataset_id: str = None, - dynamic: bool = None, - mount_path: str = None, - option_type: str = None, - options: str = None, - uri: str = None, - ): - self.dataset_id = dataset_id - self.dynamic = dynamic - self.mount_path = mount_path - self.option_type = option_type - self.options = options - self.uri = uri - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.dataset_id is not None: - result['DatasetId'] = self.dataset_id - if self.dynamic is not None: - result['Dynamic'] = self.dynamic - if self.mount_path is not None: - result['MountPath'] = self.mount_path - if self.option_type is not None: - result['OptionType'] = self.option_type - if self.options is not None: - result['Options'] = self.options - if self.uri is not None: - result['Uri'] = self.uri - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('DatasetId') is not None: - self.dataset_id = m.get('DatasetId') - if m.get('Dynamic') is not None: - self.dynamic = m.get('Dynamic') - if m.get('MountPath') is not None: - self.mount_path = m.get('MountPath') - if m.get('OptionType') is not None: - self.option_type = m.get('OptionType') - if m.get('Options') is not None: - self.options = m.get('Options') - if m.get('Uri') is not None: - self.uri = m.get('Uri') - return self - - -class ListInstancesResponseBodyInstancesIdleInstanceCuller(TeaModel): - def __init__( - self, - cpu_percent_threshold: int = None, - gpu_percent_threshold: int = None, - idle_time_in_minutes: int = None, - instance_id: str = None, - max_idle_time_in_minutes: int = None, - ): - self.cpu_percent_threshold = cpu_percent_threshold - self.gpu_percent_threshold = gpu_percent_threshold - self.idle_time_in_minutes = idle_time_in_minutes - self.instance_id = instance_id - self.max_idle_time_in_minutes = max_idle_time_in_minutes - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.cpu_percent_threshold is not None: - result['CpuPercentThreshold'] = self.cpu_percent_threshold - if self.gpu_percent_threshold is not None: - result['GpuPercentThreshold'] = self.gpu_percent_threshold - if self.idle_time_in_minutes is not None: - result['IdleTimeInMinutes'] = self.idle_time_in_minutes - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.max_idle_time_in_minutes is not None: - result['MaxIdleTimeInMinutes'] = self.max_idle_time_in_minutes - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('CpuPercentThreshold') is not None: - self.cpu_percent_threshold = m.get('CpuPercentThreshold') - if m.get('GpuPercentThreshold') is not None: - self.gpu_percent_threshold = m.get('GpuPercentThreshold') - if m.get('IdleTimeInMinutes') is not None: - self.idle_time_in_minutes = m.get('IdleTimeInMinutes') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('MaxIdleTimeInMinutes') is not None: - self.max_idle_time_in_minutes = m.get('MaxIdleTimeInMinutes') - return self - - -class ListInstancesResponseBodyInstancesInstanceShutdownTimer(TeaModel): - def __init__( - self, - due_time: str = None, - gmt_create_time: str = None, - gmt_modified_time: str = None, - instance_id: str = None, - remaining_time_in_ms: int = None, - ): - self.due_time = due_time - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time - self.instance_id = instance_id - self.remaining_time_in_ms = remaining_time_in_ms - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.due_time is not None: - result['DueTime'] = self.due_time - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.remaining_time_in_ms is not None: - result['RemainingTimeInMs'] = self.remaining_time_in_ms - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('DueTime') is not None: - self.due_time = m.get('DueTime') - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('RemainingTimeInMs') is not None: - self.remaining_time_in_ms = m.get('RemainingTimeInMs') - return self - - -class ListInstancesResponseBodyInstancesInstanceSnapshotList(TeaModel): - def __init__( - self, - gmt_create_time: str = None, - gmt_modified_time: str = None, - image_id: str = None, - image_name: str = None, - image_url: str = None, - reason_code: str = None, - reason_message: str = None, - repository_url: str = None, - status: str = None, - ): - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time - self.image_id = image_id - self.image_name = image_name - self.image_url = image_url - self.reason_code = reason_code - self.reason_message = reason_message - self.repository_url = repository_url - self.status = status - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.image_id is not None: - result['ImageId'] = self.image_id - if self.image_name is not None: - result['ImageName'] = self.image_name - if self.image_url is not None: - result['ImageUrl'] = self.image_url - if self.reason_code is not None: - result['ReasonCode'] = self.reason_code - if self.reason_message is not None: - result['ReasonMessage'] = self.reason_message - if self.repository_url is not None: - result['RepositoryUrl'] = self.repository_url - if self.status is not None: - result['Status'] = self.status - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('ImageId') is not None: - self.image_id = m.get('ImageId') - if m.get('ImageName') is not None: - self.image_name = m.get('ImageName') - if m.get('ImageUrl') is not None: - self.image_url = m.get('ImageUrl') - if m.get('ReasonCode') is not None: - self.reason_code = m.get('ReasonCode') - if m.get('ReasonMessage') is not None: - self.reason_message = m.get('ReasonMessage') - if m.get('RepositoryUrl') is not None: - self.repository_url = m.get('RepositoryUrl') - if m.get('Status') is not None: - self.status = m.get('Status') - return self - - -class ListInstancesResponseBodyInstancesLabels(TeaModel): - def __init__( - self, - key: str = None, - value: str = None, - ): - self.key = key - self.value = value - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.key is not None: - result['Key'] = self.key - if self.value is not None: - result['Value'] = self.value - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Key') is not None: - self.key = m.get('Key') - if m.get('Value') is not None: - self.value = m.get('Value') - return self - - -class ListInstancesResponseBodyInstancesLatestSnapshot(TeaModel): - def __init__( - self, - gmt_create_time: str = None, - gmt_modified_time: str = None, - image_id: str = None, - image_name: str = None, - image_url: str = None, - reason_code: str = None, - reason_message: str = None, - repository_url: str = None, - status: str = None, - ): - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time - self.image_id = image_id - self.image_name = image_name - self.image_url = image_url - self.reason_code = reason_code - self.reason_message = reason_message - self.repository_url = repository_url - self.status = status - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.image_id is not None: - result['ImageId'] = self.image_id - if self.image_name is not None: - result['ImageName'] = self.image_name - if self.image_url is not None: - result['ImageUrl'] = self.image_url - if self.reason_code is not None: - result['ReasonCode'] = self.reason_code - if self.reason_message is not None: - result['ReasonMessage'] = self.reason_message - if self.repository_url is not None: - result['RepositoryUrl'] = self.repository_url - if self.status is not None: - result['Status'] = self.status - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('ImageId') is not None: - self.image_id = m.get('ImageId') - if m.get('ImageName') is not None: - self.image_name = m.get('ImageName') - if m.get('ImageUrl') is not None: - self.image_url = m.get('ImageUrl') - if m.get('ReasonCode') is not None: - self.reason_code = m.get('ReasonCode') - if m.get('ReasonMessage') is not None: - self.reason_message = m.get('ReasonMessage') - if m.get('RepositoryUrl') is not None: - self.repository_url = m.get('RepositoryUrl') - if m.get('Status') is not None: - self.status = m.get('Status') - return self - - -class ListInstancesResponseBodyInstancesRequestedResource(TeaModel): - def __init__( - self, - cpu: str = None, - gpu: str = None, - gputype: str = None, - memory: str = None, - shared_memory: str = None, - ): - self.cpu = cpu - self.gpu = gpu - self.gputype = gputype - self.memory = memory - self.shared_memory = shared_memory - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.cpu is not None: - result['CPU'] = self.cpu - if self.gpu is not None: - result['GPU'] = self.gpu - if self.gputype is not None: - result['GPUType'] = self.gputype - if self.memory is not None: - result['Memory'] = self.memory - if self.shared_memory is not None: - result['SharedMemory'] = self.shared_memory - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('CPU') is not None: - self.cpu = m.get('CPU') - if m.get('GPU') is not None: - self.gpu = m.get('GPU') - if m.get('GPUType') is not None: - self.gputype = m.get('GPUType') - if m.get('Memory') is not None: - self.memory = m.get('Memory') - if m.get('SharedMemory') is not None: - self.shared_memory = m.get('SharedMemory') - return self - - -class ListInstancesResponseBodyInstancesUserVpc(TeaModel): - def __init__( - self, - default_route: str = None, - extended_cidrs: List[str] = None, - forward_infos: List[ForwardInfoResponse] = None, - security_group_id: str = None, - v_switch_id: str = None, - vpc_id: str = None, - ): - self.default_route = default_route - self.extended_cidrs = extended_cidrs - self.forward_infos = forward_infos - self.security_group_id = security_group_id - self.v_switch_id = v_switch_id - self.vpc_id = vpc_id - - def validate(self): - if self.forward_infos: - for k in self.forward_infos: - if k: - k.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.default_route is not None: - result['DefaultRoute'] = self.default_route - if self.extended_cidrs is not None: - result['ExtendedCIDRs'] = self.extended_cidrs - result['ForwardInfos'] = [] - if self.forward_infos is not None: - for k in self.forward_infos: - result['ForwardInfos'].append(k.to_map() if k else None) - if self.security_group_id is not None: - result['SecurityGroupId'] = self.security_group_id - if self.v_switch_id is not None: - result['VSwitchId'] = self.v_switch_id - if self.vpc_id is not None: - result['VpcId'] = self.vpc_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('DefaultRoute') is not None: - self.default_route = m.get('DefaultRoute') - if m.get('ExtendedCIDRs') is not None: - self.extended_cidrs = m.get('ExtendedCIDRs') - self.forward_infos = [] - if m.get('ForwardInfos') is not None: - for k in m.get('ForwardInfos'): - temp_model = ForwardInfoResponse() - self.forward_infos.append(temp_model.from_map(k)) - if m.get('SecurityGroupId') is not None: - self.security_group_id = m.get('SecurityGroupId') - if m.get('VSwitchId') is not None: - self.v_switch_id = m.get('VSwitchId') - if m.get('VpcId') is not None: - self.vpc_id = m.get('VpcId') - return self - - -class ListInstancesResponseBodyInstances(TeaModel): - def __init__( - self, - accelerator_type: str = None, - accessibility: str = None, - accumulated_running_time_in_ms: int = None, - affinity: ListInstancesResponseBodyInstancesAffinity = None, - cloud_disks: List[ListInstancesResponseBodyInstancesCloudDisks] = None, - datasets: List[ListInstancesResponseBodyInstancesDatasets] = None, - driver: str = None, - dynamic_mount: DynamicMount = None, - ecs_spec: str = None, - environment_variables: Dict[str, str] = None, - gmt_create_time: str = None, - gmt_modified_time: str = None, - idle_instance_culler: ListInstancesResponseBodyInstancesIdleInstanceCuller = None, - image_auth: str = None, - image_id: str = None, - image_name: str = None, - image_url: str = None, - instance_id: str = None, - instance_name: str = None, - instance_shutdown_timer: ListInstancesResponseBodyInstancesInstanceShutdownTimer = None, - instance_snapshot_list: List[ListInstancesResponseBodyInstancesInstanceSnapshotList] = None, - instance_url: str = None, - jupyterlab_url: str = None, - labels: List[ListInstancesResponseBodyInstancesLabels] = None, - latest_snapshot: ListInstancesResponseBodyInstancesLatestSnapshot = None, - payment_type: str = None, - priority: int = None, - reason_code: str = None, - reason_message: str = None, - requested_resource: ListInstancesResponseBodyInstancesRequestedResource = None, - resource_id: str = None, - resource_name: str = None, - status: str = None, - system_image_url: str = None, - terminal_url: str = None, - user_id: str = None, - user_name: str = None, - user_vpc: ListInstancesResponseBodyInstancesUserVpc = None, - web_ideurl: str = None, - workspace_id: str = None, - workspace_name: str = None, - workspace_source: str = None, - ): - self.accelerator_type = accelerator_type - self.accessibility = accessibility - self.accumulated_running_time_in_ms = accumulated_running_time_in_ms - self.affinity = affinity - self.cloud_disks = cloud_disks - self.datasets = datasets - self.driver = driver - self.dynamic_mount = dynamic_mount - self.ecs_spec = ecs_spec - self.environment_variables = environment_variables - self.gmt_create_time = gmt_create_time - self.gmt_modified_time = gmt_modified_time - self.idle_instance_culler = idle_instance_culler - self.image_auth = image_auth - self.image_id = image_id - self.image_name = image_name - self.image_url = image_url - self.instance_id = instance_id - self.instance_name = instance_name - self.instance_shutdown_timer = instance_shutdown_timer - self.instance_snapshot_list = instance_snapshot_list - self.instance_url = instance_url - # Jupyterlab Url。 - self.jupyterlab_url = jupyterlab_url - self.labels = labels - self.latest_snapshot = latest_snapshot - self.payment_type = payment_type - self.priority = priority - self.reason_code = reason_code - self.reason_message = reason_message - self.requested_resource = requested_resource - self.resource_id = resource_id - self.resource_name = resource_name - self.status = status - self.system_image_url = system_image_url - self.terminal_url = terminal_url - self.user_id = user_id - self.user_name = user_name - self.user_vpc = user_vpc - # Web IDE url。 - self.web_ideurl = web_ideurl - self.workspace_id = workspace_id - self.workspace_name = workspace_name - self.workspace_source = workspace_source - - def validate(self): - if self.affinity: - self.affinity.validate() - if self.cloud_disks: - for k in self.cloud_disks: - if k: - k.validate() - if self.datasets: - for k in self.datasets: - if k: - k.validate() - if self.dynamic_mount: - self.dynamic_mount.validate() - if self.idle_instance_culler: - self.idle_instance_culler.validate() - if self.instance_shutdown_timer: - self.instance_shutdown_timer.validate() - if self.instance_snapshot_list: - for k in self.instance_snapshot_list: - if k: - k.validate() - if self.labels: - for k in self.labels: - if k: - k.validate() - if self.latest_snapshot: - self.latest_snapshot.validate() - if self.requested_resource: - self.requested_resource.validate() - if self.user_vpc: - self.user_vpc.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.accelerator_type is not None: - result['AcceleratorType'] = self.accelerator_type - if self.accessibility is not None: - result['Accessibility'] = self.accessibility - if self.accumulated_running_time_in_ms is not None: - result['AccumulatedRunningTimeInMs'] = self.accumulated_running_time_in_ms - if self.affinity is not None: - result['Affinity'] = self.affinity.to_map() - result['CloudDisks'] = [] - if self.cloud_disks is not None: - for k in self.cloud_disks: - result['CloudDisks'].append(k.to_map() if k else None) - result['Datasets'] = [] - if self.datasets is not None: - for k in self.datasets: - result['Datasets'].append(k.to_map() if k else None) - if self.driver is not None: - result['Driver'] = self.driver - if self.dynamic_mount is not None: - result['DynamicMount'] = self.dynamic_mount.to_map() - if self.ecs_spec is not None: - result['EcsSpec'] = self.ecs_spec - if self.environment_variables is not None: - result['EnvironmentVariables'] = self.environment_variables - if self.gmt_create_time is not None: - result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_modified_time is not None: - result['GmtModifiedTime'] = self.gmt_modified_time - if self.idle_instance_culler is not None: - result['IdleInstanceCuller'] = self.idle_instance_culler.to_map() - if self.image_auth is not None: - result['ImageAuth'] = self.image_auth - if self.image_id is not None: - result['ImageId'] = self.image_id - if self.image_name is not None: - result['ImageName'] = self.image_name - if self.image_url is not None: - result['ImageUrl'] = self.image_url + if self.cpu_percent_threshold is not None: + result['CpuPercentThreshold'] = self.cpu_percent_threshold + if self.gpu_percent_threshold is not None: + result['GpuPercentThreshold'] = self.gpu_percent_threshold + if self.idle_time_in_minutes is not None: + result['IdleTimeInMinutes'] = self.idle_time_in_minutes if self.instance_id is not None: result['InstanceId'] = self.instance_id - if self.instance_name is not None: - result['InstanceName'] = self.instance_name - if self.instance_shutdown_timer is not None: - result['InstanceShutdownTimer'] = self.instance_shutdown_timer.to_map() - result['InstanceSnapshotList'] = [] - if self.instance_snapshot_list is not None: - for k in self.instance_snapshot_list: - result['InstanceSnapshotList'].append(k.to_map() if k else None) - if self.instance_url is not None: - result['InstanceUrl'] = self.instance_url - if self.jupyterlab_url is not None: - result['JupyterlabUrl'] = self.jupyterlab_url - result['Labels'] = [] - if self.labels is not None: - for k in self.labels: - result['Labels'].append(k.to_map() if k else None) - if self.latest_snapshot is not None: - result['LatestSnapshot'] = self.latest_snapshot.to_map() - if self.payment_type is not None: - result['PaymentType'] = self.payment_type - if self.priority is not None: - result['Priority'] = self.priority - if self.reason_code is not None: - result['ReasonCode'] = self.reason_code - if self.reason_message is not None: - result['ReasonMessage'] = self.reason_message - if self.requested_resource is not None: - result['RequestedResource'] = self.requested_resource.to_map() - if self.resource_id is not None: - result['ResourceId'] = self.resource_id - if self.resource_name is not None: - result['ResourceName'] = self.resource_name - if self.status is not None: - result['Status'] = self.status - if self.system_image_url is not None: - result['SystemImageUrl'] = self.system_image_url - if self.terminal_url is not None: - result['TerminalUrl'] = self.terminal_url - if self.user_id is not None: - result['UserId'] = self.user_id - if self.user_name is not None: - result['UserName'] = self.user_name - if self.user_vpc is not None: - result['UserVpc'] = self.user_vpc.to_map() - if self.web_ideurl is not None: - result['WebIDEUrl'] = self.web_ideurl - if self.workspace_id is not None: - result['WorkspaceId'] = self.workspace_id - if self.workspace_name is not None: - result['WorkspaceName'] = self.workspace_name - if self.workspace_source is not None: - result['WorkspaceSource'] = self.workspace_source - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('AcceleratorType') is not None: - self.accelerator_type = m.get('AcceleratorType') - if m.get('Accessibility') is not None: - self.accessibility = m.get('Accessibility') - if m.get('AccumulatedRunningTimeInMs') is not None: - self.accumulated_running_time_in_ms = m.get('AccumulatedRunningTimeInMs') - if m.get('Affinity') is not None: - temp_model = ListInstancesResponseBodyInstancesAffinity() - self.affinity = temp_model.from_map(m['Affinity']) - self.cloud_disks = [] - if m.get('CloudDisks') is not None: - for k in m.get('CloudDisks'): - temp_model = ListInstancesResponseBodyInstancesCloudDisks() - self.cloud_disks.append(temp_model.from_map(k)) - self.datasets = [] - if m.get('Datasets') is not None: - for k in m.get('Datasets'): - temp_model = ListInstancesResponseBodyInstancesDatasets() - self.datasets.append(temp_model.from_map(k)) - if m.get('Driver') is not None: - self.driver = m.get('Driver') - if m.get('DynamicMount') is not None: - temp_model = DynamicMount() - self.dynamic_mount = temp_model.from_map(m['DynamicMount']) - if m.get('EcsSpec') is not None: - self.ecs_spec = m.get('EcsSpec') - if m.get('EnvironmentVariables') is not None: - self.environment_variables = m.get('EnvironmentVariables') - if m.get('GmtCreateTime') is not None: - self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtModifiedTime') is not None: - self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('IdleInstanceCuller') is not None: - temp_model = ListInstancesResponseBodyInstancesIdleInstanceCuller() - self.idle_instance_culler = temp_model.from_map(m['IdleInstanceCuller']) - if m.get('ImageAuth') is not None: - self.image_auth = m.get('ImageAuth') - if m.get('ImageId') is not None: - self.image_id = m.get('ImageId') - if m.get('ImageName') is not None: - self.image_name = m.get('ImageName') - if m.get('ImageUrl') is not None: - self.image_url = m.get('ImageUrl') + if self.max_idle_time_in_minutes is not None: + result['MaxIdleTimeInMinutes'] = self.max_idle_time_in_minutes + return result + + def from_map(self, m: dict = None): + m = m or dict() + if m.get('CpuPercentThreshold') is not None: + self.cpu_percent_threshold = m.get('CpuPercentThreshold') + if m.get('GpuPercentThreshold') is not None: + self.gpu_percent_threshold = m.get('GpuPercentThreshold') + if m.get('IdleTimeInMinutes') is not None: + self.idle_time_in_minutes = m.get('IdleTimeInMinutes') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') - if m.get('InstanceName') is not None: - self.instance_name = m.get('InstanceName') - if m.get('InstanceShutdownTimer') is not None: - temp_model = ListInstancesResponseBodyInstancesInstanceShutdownTimer() - self.instance_shutdown_timer = temp_model.from_map(m['InstanceShutdownTimer']) - self.instance_snapshot_list = [] - if m.get('InstanceSnapshotList') is not None: - for k in m.get('InstanceSnapshotList'): - temp_model = ListInstancesResponseBodyInstancesInstanceSnapshotList() - self.instance_snapshot_list.append(temp_model.from_map(k)) - if m.get('InstanceUrl') is not None: - self.instance_url = m.get('InstanceUrl') - if m.get('JupyterlabUrl') is not None: - self.jupyterlab_url = m.get('JupyterlabUrl') - self.labels = [] - if m.get('Labels') is not None: - for k in m.get('Labels'): - temp_model = ListInstancesResponseBodyInstancesLabels() - self.labels.append(temp_model.from_map(k)) - if m.get('LatestSnapshot') is not None: - temp_model = ListInstancesResponseBodyInstancesLatestSnapshot() - self.latest_snapshot = temp_model.from_map(m['LatestSnapshot']) - if m.get('PaymentType') is not None: - self.payment_type = m.get('PaymentType') - if m.get('Priority') is not None: - self.priority = m.get('Priority') - if m.get('ReasonCode') is not None: - self.reason_code = m.get('ReasonCode') - if m.get('ReasonMessage') is not None: - self.reason_message = m.get('ReasonMessage') - if m.get('RequestedResource') is not None: - temp_model = ListInstancesResponseBodyInstancesRequestedResource() - self.requested_resource = temp_model.from_map(m['RequestedResource']) - if m.get('ResourceId') is not None: - self.resource_id = m.get('ResourceId') - if m.get('ResourceName') is not None: - self.resource_name = m.get('ResourceName') - if m.get('Status') is not None: - self.status = m.get('Status') - if m.get('SystemImageUrl') is not None: - self.system_image_url = m.get('SystemImageUrl') - if m.get('TerminalUrl') is not None: - self.terminal_url = m.get('TerminalUrl') - if m.get('UserId') is not None: - self.user_id = m.get('UserId') - if m.get('UserName') is not None: - self.user_name = m.get('UserName') - if m.get('UserVpc') is not None: - temp_model = ListInstancesResponseBodyInstancesUserVpc() - self.user_vpc = temp_model.from_map(m['UserVpc']) - if m.get('WebIDEUrl') is not None: - self.web_ideurl = m.get('WebIDEUrl') - if m.get('WorkspaceId') is not None: - self.workspace_id = m.get('WorkspaceId') - if m.get('WorkspaceName') is not None: - self.workspace_name = m.get('WorkspaceName') - if m.get('WorkspaceSource') is not None: - self.workspace_source = m.get('WorkspaceSource') + if m.get('MaxIdleTimeInMinutes') is not None: + self.max_idle_time_in_minutes = m.get('MaxIdleTimeInMinutes') return self -class ListInstancesResponseBody(TeaModel): +class ListInstancesResponseBodyInstancesInstanceShutdownTimer(TeaModel): def __init__( self, - code: str = None, - http_status_code: int = None, - instances: List[ListInstancesResponseBodyInstances] = None, - message: str = None, - request_id: str = None, - success: bool = None, - total_count: int = None, + due_time: str = None, + gmt_create_time: str = None, + gmt_modified_time: str = None, + instance_id: str = None, + remaining_time_in_ms: int = None, ): - self.code = code - self.http_status_code = http_status_code - self.instances = instances - self.message = message - self.request_id = request_id - self.success = success - self.total_count = total_count + self.due_time = due_time + self.gmt_create_time = gmt_create_time + self.gmt_modified_time = gmt_modified_time + self.instance_id = instance_id + self.remaining_time_in_ms = remaining_time_in_ms def validate(self): - if self.instances: - for k in self.instances: - if k: - k.validate() + pass def to_map(self): _map = super().to_map() @@ -8505,60 +6413,58 @@ def to_map(self): return _map result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - result['Instances'] = [] - if self.instances is not None: - for k in self.instances: - result['Instances'].append(k.to_map() if k else None) - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.success is not None: - result['Success'] = self.success - if self.total_count is not None: - result['TotalCount'] = self.total_count + if self.due_time is not None: + result['DueTime'] = self.due_time + if self.gmt_create_time is not None: + result['GmtCreateTime'] = self.gmt_create_time + if self.gmt_modified_time is not None: + result['GmtModifiedTime'] = self.gmt_modified_time + if self.instance_id is not None: + result['InstanceId'] = self.instance_id + if self.remaining_time_in_ms is not None: + result['RemainingTimeInMs'] = self.remaining_time_in_ms return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - self.instances = [] - if m.get('Instances') is not None: - for k in m.get('Instances'): - temp_model = ListInstancesResponseBodyInstances() - self.instances.append(temp_model.from_map(k)) - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('TotalCount') is not None: - self.total_count = m.get('TotalCount') + if m.get('DueTime') is not None: + self.due_time = m.get('DueTime') + if m.get('GmtCreateTime') is not None: + self.gmt_create_time = m.get('GmtCreateTime') + if m.get('GmtModifiedTime') is not None: + self.gmt_modified_time = m.get('GmtModifiedTime') + if m.get('InstanceId') is not None: + self.instance_id = m.get('InstanceId') + if m.get('RemainingTimeInMs') is not None: + self.remaining_time_in_ms = m.get('RemainingTimeInMs') return self -class ListInstancesResponse(TeaModel): +class ListInstancesResponseBodyInstancesInstanceSnapshotList(TeaModel): def __init__( self, - headers: Dict[str, str] = None, - status_code: int = None, - body: ListInstancesResponseBody = None, + gmt_create_time: str = None, + gmt_modified_time: str = None, + image_id: str = None, + image_name: str = None, + image_url: str = None, + reason_code: str = None, + reason_message: str = None, + repository_url: str = None, + status: str = None, ): - self.headers = headers - self.status_code = status_code - self.body = body + self.gmt_create_time = gmt_create_time + self.gmt_modified_time = gmt_modified_time + self.image_id = image_id + self.image_name = image_name + self.image_url = image_url + self.reason_code = reason_code + self.reason_message = reason_message + self.repository_url = repository_url + self.status = status def validate(self): - if self.body: - self.body.validate() + pass def to_map(self): _map = super().to_map() @@ -8566,38 +6472,57 @@ def to_map(self): return _map result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() + if self.gmt_create_time is not None: + result['GmtCreateTime'] = self.gmt_create_time + if self.gmt_modified_time is not None: + result['GmtModifiedTime'] = self.gmt_modified_time + if self.image_id is not None: + result['ImageId'] = self.image_id + if self.image_name is not None: + result['ImageName'] = self.image_name + if self.image_url is not None: + result['ImageUrl'] = self.image_url + if self.reason_code is not None: + result['ReasonCode'] = self.reason_code + if self.reason_message is not None: + result['ReasonMessage'] = self.reason_message + if self.repository_url is not None: + result['RepositoryUrl'] = self.repository_url + if self.status is not None: + result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = ListInstancesResponseBody() - self.body = temp_model.from_map(m['body']) + if m.get('GmtCreateTime') is not None: + self.gmt_create_time = m.get('GmtCreateTime') + if m.get('GmtModifiedTime') is not None: + self.gmt_modified_time = m.get('GmtModifiedTime') + if m.get('ImageId') is not None: + self.image_id = m.get('ImageId') + if m.get('ImageName') is not None: + self.image_name = m.get('ImageName') + if m.get('ImageUrl') is not None: + self.image_url = m.get('ImageUrl') + if m.get('ReasonCode') is not None: + self.reason_code = m.get('ReasonCode') + if m.get('ReasonMessage') is not None: + self.reason_message = m.get('ReasonMessage') + if m.get('RepositoryUrl') is not None: + self.repository_url = m.get('RepositoryUrl') + if m.get('Status') is not None: + self.status = m.get('Status') return self -class ListSharesRequest(TeaModel): +class ListInstancesResponseBodyInstancesLabels(TeaModel): def __init__( self, - expiration_time_greater_than: str = None, - expiration_time_less_than: str = None, - file_name: str = None, - version: str = None, + key: str = None, + value: str = None, ): - self.expiration_time_greater_than = expiration_time_greater_than - self.expiration_time_less_than = expiration_time_less_than - self.file_name = file_name - self.version = version + self.key = key + self.value = value def validate(self): pass @@ -8608,49 +6533,43 @@ def to_map(self): return _map result = dict() - if self.expiration_time_greater_than is not None: - result['ExpirationTimeGreaterThan'] = self.expiration_time_greater_than - if self.expiration_time_less_than is not None: - result['ExpirationTimeLessThan'] = self.expiration_time_less_than - if self.file_name is not None: - result['FileName'] = self.file_name - if self.version is not None: - result['Version'] = self.version + if self.key is not None: + result['Key'] = self.key + if self.value is not None: + result['Value'] = self.value return result def from_map(self, m: dict = None): m = m or dict() - if m.get('ExpirationTimeGreaterThan') is not None: - self.expiration_time_greater_than = m.get('ExpirationTimeGreaterThan') - if m.get('ExpirationTimeLessThan') is not None: - self.expiration_time_less_than = m.get('ExpirationTimeLessThan') - if m.get('FileName') is not None: - self.file_name = m.get('FileName') - if m.get('Version') is not None: - self.version = m.get('Version') + if m.get('Key') is not None: + self.key = m.get('Key') + if m.get('Value') is not None: + self.value = m.get('Value') return self -class ListSharesResponseBodyShares(TeaModel): +class ListInstancesResponseBodyInstancesLatestSnapshot(TeaModel): def __init__( self, - expiration_time: str = None, - file_name: str = None, gmt_create_time: str = None, gmt_modified_time: str = None, - resource_url: str = None, - ttl: int = None, - user_id: str = None, - version: str = None, + image_id: str = None, + image_name: str = None, + image_url: str = None, + reason_code: str = None, + reason_message: str = None, + repository_url: str = None, + status: str = None, ): - self.expiration_time = expiration_time - self.file_name = file_name self.gmt_create_time = gmt_create_time self.gmt_modified_time = gmt_modified_time - self.resource_url = resource_url - self.ttl = ttl - self.user_id = user_id - self.version = version + self.image_id = image_id + self.image_name = image_name + self.image_url = image_url + self.reason_code = reason_code + self.reason_message = reason_message + self.repository_url = repository_url + self.status = status def validate(self): pass @@ -8661,124 +6580,66 @@ def to_map(self): return _map result = dict() - if self.expiration_time is not None: - result['ExpirationTime'] = self.expiration_time - if self.file_name is not None: - result['FileName'] = self.file_name if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time - if self.resource_url is not None: - result['ResourceUrl'] = self.resource_url - if self.ttl is not None: - result['Ttl'] = self.ttl - if self.user_id is not None: - result['UserId'] = self.user_id - if self.version is not None: - result['Version'] = self.version + if self.image_id is not None: + result['ImageId'] = self.image_id + if self.image_name is not None: + result['ImageName'] = self.image_name + if self.image_url is not None: + result['ImageUrl'] = self.image_url + if self.reason_code is not None: + result['ReasonCode'] = self.reason_code + if self.reason_message is not None: + result['ReasonMessage'] = self.reason_message + if self.repository_url is not None: + result['RepositoryUrl'] = self.repository_url + if self.status is not None: + result['Status'] = self.status return result def from_map(self, m: dict = None): m = m or dict() - if m.get('ExpirationTime') is not None: - self.expiration_time = m.get('ExpirationTime') - if m.get('FileName') is not None: - self.file_name = m.get('FileName') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') - if m.get('ResourceUrl') is not None: - self.resource_url = m.get('ResourceUrl') - if m.get('Ttl') is not None: - self.ttl = m.get('Ttl') - if m.get('UserId') is not None: - self.user_id = m.get('UserId') - if m.get('Version') is not None: - self.version = m.get('Version') - return self - - -class ListSharesResponseBody(TeaModel): - def __init__( - self, - code: str = None, - http_status_code: int = None, - message: str = None, - request_id: str = None, - shares: List[ListSharesResponseBodyShares] = None, - success: bool = None, - ): - self.code = code - self.http_status_code = http_status_code - self.message = message - self.request_id = request_id - self.shares = shares - self.success = success - - def validate(self): - if self.shares: - for k in self.shares: - if k: - k.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - result['Shares'] = [] - if self.shares is not None: - for k in self.shares: - result['Shares'].append(k.to_map() if k else None) - if self.success is not None: - result['Success'] = self.success - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - self.shares = [] - if m.get('Shares') is not None: - for k in m.get('Shares'): - temp_model = ListSharesResponseBodyShares() - self.shares.append(temp_model.from_map(k)) - if m.get('Success') is not None: - self.success = m.get('Success') + if m.get('ImageId') is not None: + self.image_id = m.get('ImageId') + if m.get('ImageName') is not None: + self.image_name = m.get('ImageName') + if m.get('ImageUrl') is not None: + self.image_url = m.get('ImageUrl') + if m.get('ReasonCode') is not None: + self.reason_code = m.get('ReasonCode') + if m.get('ReasonMessage') is not None: + self.reason_message = m.get('ReasonMessage') + if m.get('RepositoryUrl') is not None: + self.repository_url = m.get('RepositoryUrl') + if m.get('Status') is not None: + self.status = m.get('Status') return self -class ListSharesResponse(TeaModel): +class ListInstancesResponseBodyInstancesRequestedResource(TeaModel): def __init__( self, - headers: Dict[str, str] = None, - status_code: int = None, - body: ListSharesResponseBody = None, + cpu: str = None, + gpu: str = None, + gputype: str = None, + memory: str = None, + shared_memory: str = None, ): - self.headers = headers - self.status_code = status_code - self.body = body + self.cpu = cpu + self.gpu = gpu + self.gputype = gputype + self.memory = memory + self.shared_memory = shared_memory def validate(self): - if self.body: - self.body.validate() + pass def to_map(self): _map = super().to_map() @@ -8786,46 +6647,41 @@ def to_map(self): return _map result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() + if self.cpu is not None: + result['CPU'] = self.cpu + if self.gpu is not None: + result['GPU'] = self.gpu + if self.gputype is not None: + result['GPUType'] = self.gputype + if self.memory is not None: + result['Memory'] = self.memory + if self.shared_memory is not None: + result['SharedMemory'] = self.shared_memory return result def from_map(self, m: dict = None): m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = ListSharesResponseBody() - self.body = temp_model.from_map(m['body']) + if m.get('CPU') is not None: + self.cpu = m.get('CPU') + if m.get('GPU') is not None: + self.gpu = m.get('GPU') + if m.get('GPUType') is not None: + self.gputype = m.get('GPUType') + if m.get('Memory') is not None: + self.memory = m.get('Memory') + if m.get('SharedMemory') is not None: + self.shared_memory = m.get('SharedMemory') return self -class ListTempFilesRequest(TeaModel): +class ListInstancesResponseBodyInstancesTags(TeaModel): def __init__( self, - delimiter: str = None, - instance_id: str = None, - name: str = None, - order: str = None, - page_number: int = None, - page_size: int = None, - prefix: str = None, - sort_by: str = None, + tag_key: str = None, + tag_value: str = None, ): - self.delimiter = delimiter - self.instance_id = instance_id - self.name = name - self.order = order - self.page_number = page_number - self.page_size = page_size - self.prefix = prefix - self.sort_by = sort_by + self.tag_key = tag_key + self.tag_value = tag_value def validate(self): pass @@ -8836,60 +6692,43 @@ def to_map(self): return _map result = dict() - if self.delimiter is not None: - result['Delimiter'] = self.delimiter - if self.instance_id is not None: - result['InstanceId'] = self.instance_id - if self.name is not None: - result['Name'] = self.name - if self.order is not None: - result['Order'] = self.order - if self.page_number is not None: - result['PageNumber'] = self.page_number - if self.page_size is not None: - result['PageSize'] = self.page_size - if self.prefix is not None: - result['Prefix'] = self.prefix - if self.sort_by is not None: - result['SortBy'] = self.sort_by + if self.tag_key is not None: + result['TagKey'] = self.tag_key + if self.tag_value is not None: + result['TagValue'] = self.tag_value return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Delimiter') is not None: - self.delimiter = m.get('Delimiter') - if m.get('InstanceId') is not None: - self.instance_id = m.get('InstanceId') - if m.get('Name') is not None: - self.name = m.get('Name') - if m.get('Order') is not None: - self.order = m.get('Order') - if m.get('PageNumber') is not None: - self.page_number = m.get('PageNumber') - if m.get('PageSize') is not None: - self.page_size = m.get('PageSize') - if m.get('Prefix') is not None: - self.prefix = m.get('Prefix') - if m.get('SortBy') is not None: - self.sort_by = m.get('SortBy') + if m.get('TagKey') is not None: + self.tag_key = m.get('TagKey') + if m.get('TagValue') is not None: + self.tag_value = m.get('TagValue') return self -class ListTempFilesResponseBodyQuota(TeaModel): +class ListInstancesResponseBodyInstancesUserVpc(TeaModel): def __init__( self, - total_capacity: int = None, - total_file_num: int = None, - used_capacity: int = None, - used_file_num: int = None, + default_route: str = None, + extended_cidrs: List[str] = None, + forward_infos: List[ForwardInfoResponse] = None, + security_group_id: str = None, + v_switch_id: str = None, + vpc_id: str = None, ): - self.total_capacity = total_capacity - self.total_file_num = total_file_num - self.used_capacity = used_capacity - self.used_file_num = used_file_num + self.default_route = default_route + self.extended_cidrs = extended_cidrs + self.forward_infos = forward_infos + self.security_group_id = security_group_id + self.v_switch_id = v_switch_id + self.vpc_id = vpc_id def validate(self): - pass + if self.forward_infos: + for k in self.forward_infos: + if k: + k.validate() def to_map(self): _map = super().to_map() @@ -8897,70 +6736,172 @@ def to_map(self): return _map result = dict() - if self.total_capacity is not None: - result['TotalCapacity'] = self.total_capacity - if self.total_file_num is not None: - result['TotalFileNum'] = self.total_file_num - if self.used_capacity is not None: - result['UsedCapacity'] = self.used_capacity - if self.used_file_num is not None: - result['UsedFileNum'] = self.used_file_num + if self.default_route is not None: + result['DefaultRoute'] = self.default_route + if self.extended_cidrs is not None: + result['ExtendedCIDRs'] = self.extended_cidrs + result['ForwardInfos'] = [] + if self.forward_infos is not None: + for k in self.forward_infos: + result['ForwardInfos'].append(k.to_map() if k else None) + if self.security_group_id is not None: + result['SecurityGroupId'] = self.security_group_id + if self.v_switch_id is not None: + result['VSwitchId'] = self.v_switch_id + if self.vpc_id is not None: + result['VpcId'] = self.vpc_id return result def from_map(self, m: dict = None): m = m or dict() - if m.get('TotalCapacity') is not None: - self.total_capacity = m.get('TotalCapacity') - if m.get('TotalFileNum') is not None: - self.total_file_num = m.get('TotalFileNum') - if m.get('UsedCapacity') is not None: - self.used_capacity = m.get('UsedCapacity') - if m.get('UsedFileNum') is not None: - self.used_file_num = m.get('UsedFileNum') + if m.get('DefaultRoute') is not None: + self.default_route = m.get('DefaultRoute') + if m.get('ExtendedCIDRs') is not None: + self.extended_cidrs = m.get('ExtendedCIDRs') + self.forward_infos = [] + if m.get('ForwardInfos') is not None: + for k in m.get('ForwardInfos'): + temp_model = ForwardInfoResponse() + self.forward_infos.append(temp_model.from_map(k)) + if m.get('SecurityGroupId') is not None: + self.security_group_id = m.get('SecurityGroupId') + if m.get('VSwitchId') is not None: + self.v_switch_id = m.get('VSwitchId') + if m.get('VpcId') is not None: + self.vpc_id = m.get('VpcId') return self -class ListTempFilesResponseBodyTempFiles(TeaModel): +class ListInstancesResponseBodyInstances(TeaModel): def __init__( self, - bandwidth: int = None, - capacity: int = None, - description: str = None, - download_url: str = None, + accelerator_type: str = None, + accessibility: str = None, + accumulated_running_time_in_ms: int = None, + affinity: ListInstancesResponseBodyInstancesAffinity = None, + cloud_disks: List[ListInstancesResponseBodyInstancesCloudDisks] = None, + credential_config: CredentialConfig = None, + datasets: List[ListInstancesResponseBodyInstancesDatasets] = None, + driver: str = None, + dynamic_mount: DynamicMount = None, + ecs_spec: str = None, + environment_variables: Dict[str, str] = None, gmt_create_time: str = None, - gmt_expired_time: str = None, gmt_modified_time: str = None, + idle_instance_culler: ListInstancesResponseBodyInstancesIdleInstanceCuller = None, + image_auth: str = None, + image_id: str = None, + image_name: str = None, + image_url: str = None, instance_id: str = None, - name: str = None, - owner_id: str = None, - prefix: str = None, + instance_name: str = None, + instance_shutdown_timer: ListInstancesResponseBodyInstancesInstanceShutdownTimer = None, + instance_snapshot_list: List[ListInstancesResponseBodyInstancesInstanceSnapshotList] = None, + instance_url: str = None, + jupyterlab_url: str = None, + labels: List[ListInstancesResponseBodyInstancesLabels] = None, + latest_snapshot: ListInstancesResponseBodyInstancesLatestSnapshot = None, + payment_type: str = None, + priority: int = None, + reason_code: str = None, + reason_message: str = None, + requested_resource: ListInstancesResponseBodyInstancesRequestedResource = None, + resource_id: str = None, + resource_name: str = None, status: str = None, - task_id: str = None, - type: str = None, - upload_url: str = None, + tags: List[ListInstancesResponseBodyInstancesTags] = None, + terminal_url: str = None, user_id: str = None, - uuid: str = None, + user_name: str = None, + user_vpc: ListInstancesResponseBodyInstancesUserVpc = None, + web_ideurl: str = None, + workspace_id: str = None, + workspace_name: str = None, + workspace_source: str = None, ): - self.bandwidth = bandwidth - self.capacity = capacity - self.description = description - self.download_url = download_url + self.accelerator_type = accelerator_type + self.accessibility = accessibility + self.accumulated_running_time_in_ms = accumulated_running_time_in_ms + self.affinity = affinity + self.cloud_disks = cloud_disks + self.credential_config = credential_config + self.datasets = datasets + self.driver = driver + self.dynamic_mount = dynamic_mount + self.ecs_spec = ecs_spec + self.environment_variables = environment_variables self.gmt_create_time = gmt_create_time - self.gmt_expired_time = gmt_expired_time self.gmt_modified_time = gmt_modified_time + self.idle_instance_culler = idle_instance_culler + self.image_auth = image_auth + self.image_id = image_id + self.image_name = image_name + self.image_url = image_url self.instance_id = instance_id - self.name = name - self.owner_id = owner_id - self.prefix = prefix + self.instance_name = instance_name + self.instance_shutdown_timer = instance_shutdown_timer + self.instance_snapshot_list = instance_snapshot_list + self.instance_url = instance_url + # Jupyterlab Url。 + self.jupyterlab_url = jupyterlab_url + self.labels = labels + self.latest_snapshot = latest_snapshot + self.payment_type = payment_type + self.priority = priority + self.reason_code = reason_code + self.reason_message = reason_message + self.requested_resource = requested_resource + self.resource_id = resource_id + self.resource_name = resource_name self.status = status - self.task_id = task_id - self.type = type - self.upload_url = upload_url + self.tags = tags + self.terminal_url = terminal_url self.user_id = user_id - self.uuid = uuid + self.user_name = user_name + self.user_vpc = user_vpc + # Web IDE url。 + self.web_ideurl = web_ideurl + self.workspace_id = workspace_id + self.workspace_name = workspace_name + self.workspace_source = workspace_source def validate(self): - pass + if self.affinity: + self.affinity.validate() + if self.cloud_disks: + for k in self.cloud_disks: + if k: + k.validate() + if self.credential_config: + self.credential_config.validate() + if self.datasets: + for k in self.datasets: + if k: + k.validate() + if self.dynamic_mount: + self.dynamic_mount.validate() + if self.idle_instance_culler: + self.idle_instance_culler.validate() + if self.instance_shutdown_timer: + self.instance_shutdown_timer.validate() + if self.instance_snapshot_list: + for k in self.instance_snapshot_list: + if k: + k.validate() + if self.labels: + for k in self.labels: + if k: + k.validate() + if self.latest_snapshot: + self.latest_snapshot.validate() + if self.requested_resource: + self.requested_resource.validate() + if self.tags: + for k in self.tags: + if k: + k.validate() + if self.user_vpc: + self.user_vpc.validate() def to_map(self): _map = super().to_map() @@ -8968,107 +6909,240 @@ def to_map(self): return _map result = dict() - if self.bandwidth is not None: - result['Bandwidth'] = self.bandwidth - if self.capacity is not None: - result['Capacity'] = self.capacity - if self.description is not None: - result['Description'] = self.description - if self.download_url is not None: - result['DownloadUrl'] = self.download_url + if self.accelerator_type is not None: + result['AcceleratorType'] = self.accelerator_type + if self.accessibility is not None: + result['Accessibility'] = self.accessibility + if self.accumulated_running_time_in_ms is not None: + result['AccumulatedRunningTimeInMs'] = self.accumulated_running_time_in_ms + if self.affinity is not None: + result['Affinity'] = self.affinity.to_map() + result['CloudDisks'] = [] + if self.cloud_disks is not None: + for k in self.cloud_disks: + result['CloudDisks'].append(k.to_map() if k else None) + if self.credential_config is not None: + result['CredentialConfig'] = self.credential_config.to_map() + result['Datasets'] = [] + if self.datasets is not None: + for k in self.datasets: + result['Datasets'].append(k.to_map() if k else None) + if self.driver is not None: + result['Driver'] = self.driver + if self.dynamic_mount is not None: + result['DynamicMount'] = self.dynamic_mount.to_map() + if self.ecs_spec is not None: + result['EcsSpec'] = self.ecs_spec + if self.environment_variables is not None: + result['EnvironmentVariables'] = self.environment_variables if self.gmt_create_time is not None: result['GmtCreateTime'] = self.gmt_create_time - if self.gmt_expired_time is not None: - result['GmtExpiredTime'] = self.gmt_expired_time if self.gmt_modified_time is not None: result['GmtModifiedTime'] = self.gmt_modified_time + if self.idle_instance_culler is not None: + result['IdleInstanceCuller'] = self.idle_instance_culler.to_map() + if self.image_auth is not None: + result['ImageAuth'] = self.image_auth + if self.image_id is not None: + result['ImageId'] = self.image_id + if self.image_name is not None: + result['ImageName'] = self.image_name + if self.image_url is not None: + result['ImageUrl'] = self.image_url if self.instance_id is not None: result['InstanceId'] = self.instance_id - if self.name is not None: - result['Name'] = self.name - if self.owner_id is not None: - result['OwnerId'] = self.owner_id - if self.prefix is not None: - result['Prefix'] = self.prefix + if self.instance_name is not None: + result['InstanceName'] = self.instance_name + if self.instance_shutdown_timer is not None: + result['InstanceShutdownTimer'] = self.instance_shutdown_timer.to_map() + result['InstanceSnapshotList'] = [] + if self.instance_snapshot_list is not None: + for k in self.instance_snapshot_list: + result['InstanceSnapshotList'].append(k.to_map() if k else None) + if self.instance_url is not None: + result['InstanceUrl'] = self.instance_url + if self.jupyterlab_url is not None: + result['JupyterlabUrl'] = self.jupyterlab_url + result['Labels'] = [] + if self.labels is not None: + for k in self.labels: + result['Labels'].append(k.to_map() if k else None) + if self.latest_snapshot is not None: + result['LatestSnapshot'] = self.latest_snapshot.to_map() + if self.payment_type is not None: + result['PaymentType'] = self.payment_type + if self.priority is not None: + result['Priority'] = self.priority + if self.reason_code is not None: + result['ReasonCode'] = self.reason_code + if self.reason_message is not None: + result['ReasonMessage'] = self.reason_message + if self.requested_resource is not None: + result['RequestedResource'] = self.requested_resource.to_map() + if self.resource_id is not None: + result['ResourceId'] = self.resource_id + if self.resource_name is not None: + result['ResourceName'] = self.resource_name if self.status is not None: result['Status'] = self.status - if self.task_id is not None: - result['TaskId'] = self.task_id - if self.type is not None: - result['Type'] = self.type - if self.upload_url is not None: - result['UploadUrl'] = self.upload_url + result['Tags'] = [] + if self.tags is not None: + for k in self.tags: + result['Tags'].append(k.to_map() if k else None) + if self.terminal_url is not None: + result['TerminalUrl'] = self.terminal_url if self.user_id is not None: result['UserId'] = self.user_id - if self.uuid is not None: - result['Uuid'] = self.uuid + if self.user_name is not None: + result['UserName'] = self.user_name + if self.user_vpc is not None: + result['UserVpc'] = self.user_vpc.to_map() + if self.web_ideurl is not None: + result['WebIDEUrl'] = self.web_ideurl + if self.workspace_id is not None: + result['WorkspaceId'] = self.workspace_id + if self.workspace_name is not None: + result['WorkspaceName'] = self.workspace_name + if self.workspace_source is not None: + result['WorkspaceSource'] = self.workspace_source return result def from_map(self, m: dict = None): m = m or dict() - if m.get('Bandwidth') is not None: - self.bandwidth = m.get('Bandwidth') - if m.get('Capacity') is not None: - self.capacity = m.get('Capacity') - if m.get('Description') is not None: - self.description = m.get('Description') - if m.get('DownloadUrl') is not None: - self.download_url = m.get('DownloadUrl') + if m.get('AcceleratorType') is not None: + self.accelerator_type = m.get('AcceleratorType') + if m.get('Accessibility') is not None: + self.accessibility = m.get('Accessibility') + if m.get('AccumulatedRunningTimeInMs') is not None: + self.accumulated_running_time_in_ms = m.get('AccumulatedRunningTimeInMs') + if m.get('Affinity') is not None: + temp_model = ListInstancesResponseBodyInstancesAffinity() + self.affinity = temp_model.from_map(m['Affinity']) + self.cloud_disks = [] + if m.get('CloudDisks') is not None: + for k in m.get('CloudDisks'): + temp_model = ListInstancesResponseBodyInstancesCloudDisks() + self.cloud_disks.append(temp_model.from_map(k)) + if m.get('CredentialConfig') is not None: + temp_model = CredentialConfig() + self.credential_config = temp_model.from_map(m['CredentialConfig']) + self.datasets = [] + if m.get('Datasets') is not None: + for k in m.get('Datasets'): + temp_model = ListInstancesResponseBodyInstancesDatasets() + self.datasets.append(temp_model.from_map(k)) + if m.get('Driver') is not None: + self.driver = m.get('Driver') + if m.get('DynamicMount') is not None: + temp_model = DynamicMount() + self.dynamic_mount = temp_model.from_map(m['DynamicMount']) + if m.get('EcsSpec') is not None: + self.ecs_spec = m.get('EcsSpec') + if m.get('EnvironmentVariables') is not None: + self.environment_variables = m.get('EnvironmentVariables') if m.get('GmtCreateTime') is not None: self.gmt_create_time = m.get('GmtCreateTime') - if m.get('GmtExpiredTime') is not None: - self.gmt_expired_time = m.get('GmtExpiredTime') if m.get('GmtModifiedTime') is not None: self.gmt_modified_time = m.get('GmtModifiedTime') + if m.get('IdleInstanceCuller') is not None: + temp_model = ListInstancesResponseBodyInstancesIdleInstanceCuller() + self.idle_instance_culler = temp_model.from_map(m['IdleInstanceCuller']) + if m.get('ImageAuth') is not None: + self.image_auth = m.get('ImageAuth') + if m.get('ImageId') is not None: + self.image_id = m.get('ImageId') + if m.get('ImageName') is not None: + self.image_name = m.get('ImageName') + if m.get('ImageUrl') is not None: + self.image_url = m.get('ImageUrl') if m.get('InstanceId') is not None: self.instance_id = m.get('InstanceId') - if m.get('Name') is not None: - self.name = m.get('Name') - if m.get('OwnerId') is not None: - self.owner_id = m.get('OwnerId') - if m.get('Prefix') is not None: - self.prefix = m.get('Prefix') + if m.get('InstanceName') is not None: + self.instance_name = m.get('InstanceName') + if m.get('InstanceShutdownTimer') is not None: + temp_model = ListInstancesResponseBodyInstancesInstanceShutdownTimer() + self.instance_shutdown_timer = temp_model.from_map(m['InstanceShutdownTimer']) + self.instance_snapshot_list = [] + if m.get('InstanceSnapshotList') is not None: + for k in m.get('InstanceSnapshotList'): + temp_model = ListInstancesResponseBodyInstancesInstanceSnapshotList() + self.instance_snapshot_list.append(temp_model.from_map(k)) + if m.get('InstanceUrl') is not None: + self.instance_url = m.get('InstanceUrl') + if m.get('JupyterlabUrl') is not None: + self.jupyterlab_url = m.get('JupyterlabUrl') + self.labels = [] + if m.get('Labels') is not None: + for k in m.get('Labels'): + temp_model = ListInstancesResponseBodyInstancesLabels() + self.labels.append(temp_model.from_map(k)) + if m.get('LatestSnapshot') is not None: + temp_model = ListInstancesResponseBodyInstancesLatestSnapshot() + self.latest_snapshot = temp_model.from_map(m['LatestSnapshot']) + if m.get('PaymentType') is not None: + self.payment_type = m.get('PaymentType') + if m.get('Priority') is not None: + self.priority = m.get('Priority') + if m.get('ReasonCode') is not None: + self.reason_code = m.get('ReasonCode') + if m.get('ReasonMessage') is not None: + self.reason_message = m.get('ReasonMessage') + if m.get('RequestedResource') is not None: + temp_model = ListInstancesResponseBodyInstancesRequestedResource() + self.requested_resource = temp_model.from_map(m['RequestedResource']) + if m.get('ResourceId') is not None: + self.resource_id = m.get('ResourceId') + if m.get('ResourceName') is not None: + self.resource_name = m.get('ResourceName') if m.get('Status') is not None: self.status = m.get('Status') - if m.get('TaskId') is not None: - self.task_id = m.get('TaskId') - if m.get('Type') is not None: - self.type = m.get('Type') - if m.get('UploadUrl') is not None: - self.upload_url = m.get('UploadUrl') + self.tags = [] + if m.get('Tags') is not None: + for k in m.get('Tags'): + temp_model = ListInstancesResponseBodyInstancesTags() + self.tags.append(temp_model.from_map(k)) + if m.get('TerminalUrl') is not None: + self.terminal_url = m.get('TerminalUrl') if m.get('UserId') is not None: self.user_id = m.get('UserId') - if m.get('Uuid') is not None: - self.uuid = m.get('Uuid') + if m.get('UserName') is not None: + self.user_name = m.get('UserName') + if m.get('UserVpc') is not None: + temp_model = ListInstancesResponseBodyInstancesUserVpc() + self.user_vpc = temp_model.from_map(m['UserVpc']) + if m.get('WebIDEUrl') is not None: + self.web_ideurl = m.get('WebIDEUrl') + if m.get('WorkspaceId') is not None: + self.workspace_id = m.get('WorkspaceId') + if m.get('WorkspaceName') is not None: + self.workspace_name = m.get('WorkspaceName') + if m.get('WorkspaceSource') is not None: + self.workspace_source = m.get('WorkspaceSource') return self -class ListTempFilesResponseBody(TeaModel): +class ListInstancesResponseBody(TeaModel): def __init__( self, code: str = None, http_status_code: int = None, + instances: List[ListInstancesResponseBodyInstances] = None, message: str = None, - quota: ListTempFilesResponseBodyQuota = None, request_id: str = None, success: bool = None, - temp_files: List[ListTempFilesResponseBodyTempFiles] = None, total_count: int = None, ): self.code = code self.http_status_code = http_status_code + self.instances = instances self.message = message - self.quota = quota self.request_id = request_id self.success = success - self.temp_files = temp_files self.total_count = total_count def validate(self): - if self.quota: - self.quota.validate() - if self.temp_files: - for k in self.temp_files: + if self.instances: + for k in self.instances: if k: k.validate() @@ -9082,18 +7156,16 @@ def to_map(self): result['Code'] = self.code if self.http_status_code is not None: result['HttpStatusCode'] = self.http_status_code + result['Instances'] = [] + if self.instances is not None: + for k in self.instances: + result['Instances'].append(k.to_map() if k else None) if self.message is not None: result['Message'] = self.message - if self.quota is not None: - result['Quota'] = self.quota.to_map() if self.request_id is not None: result['RequestId'] = self.request_id if self.success is not None: result['Success'] = self.success - result['TempFiles'] = [] - if self.temp_files is not None: - for k in self.temp_files: - result['TempFiles'].append(k.to_map() if k else None) if self.total_count is not None: result['TotalCount'] = self.total_count return result @@ -9104,31 +7176,28 @@ def from_map(self, m: dict = None): self.code = m.get('Code') if m.get('HttpStatusCode') is not None: self.http_status_code = m.get('HttpStatusCode') + self.instances = [] + if m.get('Instances') is not None: + for k in m.get('Instances'): + temp_model = ListInstancesResponseBodyInstances() + self.instances.append(temp_model.from_map(k)) if m.get('Message') is not None: self.message = m.get('Message') - if m.get('Quota') is not None: - temp_model = ListTempFilesResponseBodyQuota() - self.quota = temp_model.from_map(m['Quota']) if m.get('RequestId') is not None: self.request_id = m.get('RequestId') if m.get('Success') is not None: self.success = m.get('Success') - self.temp_files = [] - if m.get('TempFiles') is not None: - for k in m.get('TempFiles'): - temp_model = ListTempFilesResponseBodyTempFiles() - self.temp_files.append(temp_model.from_map(k)) if m.get('TotalCount') is not None: self.total_count = m.get('TotalCount') return self -class ListTempFilesResponse(TeaModel): +class ListInstancesResponse(TeaModel): def __init__( self, headers: Dict[str, str] = None, status_code: int = None, - body: ListTempFilesResponseBody = None, + body: ListInstancesResponseBody = None, ): self.headers = headers self.status_code = status_code @@ -9159,7 +7228,7 @@ def from_map(self, m: dict = None): if m.get('statusCode') is not None: self.status_code = m.get('statusCode') if m.get('body') is not None: - temp_model = ListTempFilesResponseBody() + temp_model = ListInstancesResponseBody() self.body = temp_model.from_map(m['body']) return self @@ -9480,14 +7549,18 @@ class UpdateInstanceRequestDatasets(TeaModel): def __init__( self, dataset_id: str = None, + dataset_version: str = None, dynamic: bool = None, + mount_access: str = None, mount_path: str = None, option_type: str = None, options: str = None, uri: str = None, ): self.dataset_id = dataset_id + self.dataset_version = dataset_version self.dynamic = dynamic + self.mount_access = mount_access self.mount_path = mount_path self.option_type = option_type self.options = options @@ -9504,8 +7577,12 @@ def to_map(self): result = dict() if self.dataset_id is not None: result['DatasetId'] = self.dataset_id + if self.dataset_version is not None: + result['DatasetVersion'] = self.dataset_version if self.dynamic is not None: result['Dynamic'] = self.dynamic + if self.mount_access is not None: + result['MountAccess'] = self.mount_access if self.mount_path is not None: result['MountPath'] = self.mount_path if self.option_type is not None: @@ -9520,8 +7597,12 @@ def from_map(self, m: dict = None): m = m or dict() if m.get('DatasetId') is not None: self.dataset_id = m.get('DatasetId') + if m.get('DatasetVersion') is not None: + self.dataset_version = m.get('DatasetVersion') if m.get('Dynamic') is not None: self.dynamic = m.get('Dynamic') + if m.get('MountAccess') is not None: + self.mount_access = m.get('MountAccess') if m.get('MountPath') is not None: self.mount_path = m.get('MountPath') if m.get('OptionType') is not None: @@ -9671,7 +7752,6 @@ def __init__( instance_name: str = None, priority: int = None, requested_resource: UpdateInstanceRequestRequestedResource = None, - system_image_url: str = None, user_id: str = None, user_vpc: UpdateInstanceRequestUserVpc = None, workspace_source: str = None, @@ -9695,7 +7775,6 @@ def __init__( self.instance_name = instance_name self.priority = priority self.requested_resource = requested_resource - self.system_image_url = system_image_url self.user_id = user_id self.user_vpc = user_vpc self.workspace_source = workspace_source @@ -9768,8 +7847,6 @@ def to_map(self): result['Priority'] = self.priority if self.requested_resource is not None: result['RequestedResource'] = self.requested_resource.to_map() - if self.system_image_url is not None: - result['SystemImageUrl'] = self.system_image_url if self.user_id is not None: result['UserId'] = self.user_id if self.user_vpc is not None: @@ -9828,8 +7905,6 @@ def from_map(self, m: dict = None): if m.get('RequestedResource') is not None: temp_model = UpdateInstanceRequestRequestedResource() self.requested_resource = temp_model.from_map(m['RequestedResource']) - if m.get('SystemImageUrl') is not None: - self.system_image_url = m.get('SystemImageUrl') if m.get('UserId') is not None: self.user_id = m.get('UserId') if m.get('UserVpc') is not None: @@ -10077,259 +8152,3 @@ def from_map(self, m: dict = None): return self -class UpdateTempFileRequest(TeaModel): - def __init__( - self, - gmt_expired_time: str = None, - status: str = None, - ): - self.gmt_expired_time = gmt_expired_time - self.status = status - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.gmt_expired_time is not None: - result['GmtExpiredTime'] = self.gmt_expired_time - if self.status is not None: - result['Status'] = self.status - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('GmtExpiredTime') is not None: - self.gmt_expired_time = m.get('GmtExpiredTime') - if m.get('Status') is not None: - self.status = m.get('Status') - return self - - -class UpdateTempFileResponseBody(TeaModel): - def __init__( - self, - code: str = None, - http_status_code: int = None, - message: str = None, - request_id: str = None, - success: bool = None, - temp_file_id: str = None, - ): - self.code = code - self.http_status_code = http_status_code - self.message = message - self.request_id = request_id - self.success = success - self.temp_file_id = temp_file_id - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.success is not None: - result['Success'] = self.success - if self.temp_file_id is not None: - result['TempFileId'] = self.temp_file_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('TempFileId') is not None: - self.temp_file_id = m.get('TempFileId') - return self - - -class UpdateTempFileResponse(TeaModel): - def __init__( - self, - headers: Dict[str, str] = None, - status_code: int = None, - body: UpdateTempFileResponseBody = None, - ): - self.headers = headers - self.status_code = status_code - self.body = body - - def validate(self): - if self.body: - self.body.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = UpdateTempFileResponseBody() - self.body = temp_model.from_map(m['body']) - return self - - -class UpdateTempFileTaskRequest(TeaModel): - def __init__( - self, - gmt_expired_time: str = None, - ): - self.gmt_expired_time = gmt_expired_time - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.gmt_expired_time is not None: - result['GmtExpiredTime'] = self.gmt_expired_time - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('GmtExpiredTime') is not None: - self.gmt_expired_time = m.get('GmtExpiredTime') - return self - - -class UpdateTempFileTaskResponseBody(TeaModel): - def __init__( - self, - code: str = None, - http_status_code: int = None, - message: str = None, - request_id: str = None, - success: bool = None, - temp_file_task_id: str = None, - ): - self.code = code - self.http_status_code = http_status_code - self.message = message - self.request_id = request_id - self.success = success - self.temp_file_task_id = temp_file_task_id - - def validate(self): - pass - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.code is not None: - result['Code'] = self.code - if self.http_status_code is not None: - result['HttpStatusCode'] = self.http_status_code - if self.message is not None: - result['Message'] = self.message - if self.request_id is not None: - result['RequestId'] = self.request_id - if self.success is not None: - result['Success'] = self.success - if self.temp_file_task_id is not None: - result['TempFileTaskId'] = self.temp_file_task_id - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('Code') is not None: - self.code = m.get('Code') - if m.get('HttpStatusCode') is not None: - self.http_status_code = m.get('HttpStatusCode') - if m.get('Message') is not None: - self.message = m.get('Message') - if m.get('RequestId') is not None: - self.request_id = m.get('RequestId') - if m.get('Success') is not None: - self.success = m.get('Success') - if m.get('TempFileTaskId') is not None: - self.temp_file_task_id = m.get('TempFileTaskId') - return self - - -class UpdateTempFileTaskResponse(TeaModel): - def __init__( - self, - headers: Dict[str, str] = None, - status_code: int = None, - body: UpdateTempFileTaskResponseBody = None, - ): - self.headers = headers - self.status_code = status_code - self.body = body - - def validate(self): - if self.body: - self.body.validate() - - def to_map(self): - _map = super().to_map() - if _map is not None: - return _map - - result = dict() - if self.headers is not None: - result['headers'] = self.headers - if self.status_code is not None: - result['statusCode'] = self.status_code - if self.body is not None: - result['body'] = self.body.to_map() - return result - - def from_map(self, m: dict = None): - m = m or dict() - if m.get('headers') is not None: - self.headers = m.get('headers') - if m.get('statusCode') is not None: - self.status_code = m.get('statusCode') - if m.get('body') is not None: - temp_model = UpdateTempFileTaskResponseBody() - self.body = temp_model.from_map(m['body']) - return self - - diff --git a/pai/session.py b/pai/session.py index 6ef6585..1665e26 100644 --- a/pai/session.py +++ b/pai/session.py @@ -35,6 +35,7 @@ from .common.logging import get_logger from .common.oss_utils import CredentialProviderWrapper, OssUriObj from .common.utils import is_domain_connectable, make_list_resource_iterator +from .libs.alibabacloud_pai_dsw20220101.models import GetInstanceRequest logger = get_logger(__name__) @@ -584,7 +585,9 @@ def _get_workspace_id_by_dsw_instance_id( network=network, ) try: - resp = dsw_client.get_instance(dsw_instance_id) + resp = dsw_client.get_instance( + dsw_instance_id, request=GetInstanceRequest() + ) return resp.body.workspace_id except TeaException as e: logger.warning("Failed to get instance info by dsw instance id: %s", e) diff --git a/pai/toolkit/helper/utils.py b/pai/toolkit/helper/utils.py index 69ef10d..3063125 100644 --- a/pai/toolkit/helper/utils.py +++ b/pai/toolkit/helper/utils.py @@ -41,6 +41,7 @@ from ...common.oss_utils import CredentialProviderWrapper, OssUriObj from ...common.utils import is_domain_connectable, make_list_resource_iterator from ...libs.alibabacloud_pai_dsw20220101.client import Client as DswClient +from ...libs.alibabacloud_pai_dsw20220101.models import GetInstanceRequest from ...session import Session logger = get_logger(__name__) @@ -165,7 +166,9 @@ def get_acs_dsw_client(self) -> DswClient: def get_instance_info(self, instance_id: str) -> Dict[str, Any]: dsw_client = self.get_acs_dsw_client() - return dsw_client.get_instance(instance_id).body.to_map() + return dsw_client.get_instance( + instance_id, request=GetInstanceRequest() + ).body.to_map() def get_credential(self): return self._credential_client.get_access_key_id()