cloudphone-20201230/alibabacloud_cloudphone20201230/models.py (5,967 lines of code) (raw):
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
from Tea.model import TeaModel
from typing import Dict, List
class CancelTaskRequest(TeaModel):
def __init__(
self,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
task_id: str = None,
):
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
# The task ID.
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.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
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('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class CancelTaskResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CancelTaskResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CancelTaskResponseBody = 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 = CancelTaskResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CopyImageRequest(TeaModel):
def __init__(
self,
client_token: str = None,
description: str = None,
destination_region_id: str = None,
image_id: str = None,
image_name: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see How to ensure idempotence.
self.client_token = client_token
# The image description. The description must be 2 to 256 characters in length but cannot start with http:// or https://.
self.description = description
# The destination region to which you want to copy the image.
self.destination_region_id = destination_region_id
# The ID of the image that you want to copy.
self.image_id = image_id
# The image name. The name must be 2 to 128 characters in length. The name can contain letters, digits, colons (:), underscores (\_), and hyphens (-). The name can contain letters, digits, colons (:), underscores (\_), and hyphens (-). It must start with a letter but cannot start with http:// or https://.
self.image_name = image_name
self.owner_account = owner_account
self.owner_id = owner_id
# The source region from which you want to copy the image.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_token is not None:
result['ClientToken'] = self.client_token
if self.description is not None:
result['Description'] = self.description
if self.destination_region_id is not None:
result['DestinationRegionId'] = self.destination_region_id
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.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientToken') is not None:
self.client_token = m.get('ClientToken')
if m.get('Description') is not None:
self.description = m.get('Description')
if m.get('DestinationRegionId') is not None:
self.destination_region_id = m.get('DestinationRegionId')
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('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class CopyImageResponseBody(TeaModel):
def __init__(
self,
image_id: str = None,
request_id: str = None,
):
# The ID of the image that is copied to the destination region.
self.image_id = image_id
# The request ID.
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.image_id is not None:
result['ImageId'] = self.image_id
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('ImageId') is not None:
self.image_id = m.get('ImageId')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CopyImageResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CopyImageResponseBody = 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 = CopyImageResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CreateImageRequest(TeaModel):
def __init__(
self,
client_token: str = None,
description: str = None,
image_name: str = None,
instance_id: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see How to ensure idempotence.
self.client_token = client_token
# The image description. The description must be 2 to 256 characters in length. It cannot start with `http://` or `https://`.
self.description = description
# The image name. The name must be 2 to 128 characters in length. It can contain letters, digits, colons (:), underscores (\_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.
self.image_name = image_name
# The instance ID.
self.instance_id = instance_id
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_token is not None:
result['ClientToken'] = self.client_token
if self.description is not None:
result['Description'] = self.description
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.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientToken') is not None:
self.client_token = m.get('ClientToken')
if m.get('Description') is not None:
self.description = m.get('Description')
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('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class CreateImageResponseBody(TeaModel):
def __init__(
self,
image_id: str = None,
request_id: str = None,
):
# The custom image ID.
self.image_id = image_id
# The request ID.
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.image_id is not None:
result['ImageId'] = self.image_id
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('ImageId') is not None:
self.image_id = m.get('ImageId')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CreateImageResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CreateImageResponseBody = 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 = CreateImageResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteImagesRequest(TeaModel):
def __init__(
self,
force: bool = None,
image_id: List[str] = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# Specifies whether to forcefully delete the image. Default value: false
self.force = force
# The image IDs. You can specify up to 100 images.
self.image_id = image_id
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.force is not None:
result['Force'] = self.force
if self.image_id is not None:
result['ImageId'] = self.image_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Force') is not None:
self.force = m.get('Force')
if m.get('ImageId') is not None:
self.image_id = m.get('ImageId')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class DeleteImagesResponseBodyImageResponsesImageResponse(TeaModel):
def __init__(
self,
code: str = None,
image_id: str = None,
message: str = None,
):
# The HTTP status code that is returned when the image is deleted.
self.code = code
# The ID of the image that is requested for deletion.
self.image_id = image_id
# The message that is returned when the image is deleted.
self.message = message
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.image_id is not None:
result['ImageId'] = self.image_id
if self.message is not None:
result['Message'] = self.message
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('ImageId') is not None:
self.image_id = m.get('ImageId')
if m.get('Message') is not None:
self.message = m.get('Message')
return self
class DeleteImagesResponseBodyImageResponses(TeaModel):
def __init__(
self,
image_response: List[DeleteImagesResponseBodyImageResponsesImageResponse] = None,
):
self.image_response = image_response
def validate(self):
if self.image_response:
for k in self.image_response:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['ImageResponse'] = []
if self.image_response is not None:
for k in self.image_response:
result['ImageResponse'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.image_response = []
if m.get('ImageResponse') is not None:
for k in m.get('ImageResponse'):
temp_model = DeleteImagesResponseBodyImageResponsesImageResponse()
self.image_response.append(temp_model.from_map(k))
return self
class DeleteImagesResponseBody(TeaModel):
def __init__(
self,
image_responses: DeleteImagesResponseBodyImageResponses = None,
request_id: str = None,
):
# Details about images that are deleted.
self.image_responses = image_responses
# The request ID.
self.request_id = request_id
def validate(self):
if self.image_responses:
self.image_responses.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.image_responses is not None:
result['ImageResponses'] = self.image_responses.to_map()
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('ImageResponses') is not None:
temp_model = DeleteImagesResponseBodyImageResponses()
self.image_responses = temp_model.from_map(m['ImageResponses'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DeleteImagesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteImagesResponseBody = 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 = DeleteImagesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteInstancesRequest(TeaModel):
def __init__(
self,
force: bool = None,
instance_id: List[str] = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# Specifies whether to forcefully release the instance if it is in the Running status. Valid values:
#
# * true. If you set the Force parameter to true, temporary data in the memory and storage of the instance is erased and cannot be restored after you call the operation, which is similar to the effect of a power-off action.
# * false (default)
self.force = force
# The instance IDs. Valid values of N: 1 to 100.
self.instance_id = instance_id
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.force is not None:
result['Force'] = self.force
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Force') is not None:
self.force = m.get('Force')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class DeleteInstancesResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DeleteInstancesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteInstancesResponseBody = 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 = DeleteInstancesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteKeyPairsRequest(TeaModel):
def __init__(
self,
key_pair_name: List[str] = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The name of the key pair that the cloud phone uses. The value can be a JSON array that consists of up to 100 SSH key pair names. Separate multiple key pair names with commas (,).
self.key_pair_name = key_pair_name
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID of the key pair that you want to delete.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_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_pair_name is not None:
result['KeyPairName'] = self.key_pair_name
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('KeyPairName') is not None:
self.key_pair_name = m.get('KeyPairName')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class DeleteKeyPairsResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DeleteKeyPairsResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteKeyPairsResponseBody = 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 = DeleteKeyPairsResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class FetchFileRequest(TeaModel):
def __init__(
self,
instance_id: str = None,
oss_bucket: str = None,
oss_object: str = None,
owner_account: str = None,
owner_id: int = None,
path: str = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The ID of the instance on which you want to run the command. Valid values of N: 1 to 10.
self.instance_id = instance_id
# The OSS bucket to which the file that you want to upload.
#
# > Before you import an APK file to the OSS bucket for the first time, add a Resource Access Management (RAM) policy. Otherwise, NoSetRoletoECSServiceAcount appears.
self.oss_bucket = oss_bucket
# The name that you want to save to OSS.
self.oss_object = oss_object
self.owner_account = owner_account
self.owner_id = owner_id
# The path in which you want to store the file in the cloud phone.
self.path = path
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_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_id is not None:
result['InstanceId'] = self.instance_id
if self.oss_bucket is not None:
result['OssBucket'] = self.oss_bucket
if self.oss_object is not None:
result['OssObject'] = self.oss_object
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.path is not None:
result['Path'] = self.path
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
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('OssBucket') is not None:
self.oss_bucket = m.get('OssBucket')
if m.get('OssObject') is not None:
self.oss_object = m.get('OssObject')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('Path') is not None:
self.path = m.get('Path')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class FetchFileResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
task_id: str = None,
):
# The request ID.
self.request_id = request_id
# The task ID.
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.request_id is not None:
result['RequestId'] = self.request_id
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('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class FetchFileResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: FetchFileResponseBody = 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 = FetchFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ImportImageRequest(TeaModel):
def __init__(
self,
client_token: str = None,
description: str = None,
format: str = None,
image_name: str = None,
oss_bucket: str = None,
oss_object: str = None,
owner_account: str = None,
owner_id: int = None,
platform: str = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must ensure that the value is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see [How to ensure idempotence](~~25693~~).
self.client_token = client_token
# The image description. The description must be 2 to 256 characters in length, and cannot start with `http://` or `https://`.
self.description = description
# The image format. Valid values:
#
# * RAW
# * QCOW2
self.format = format
# The image name. The name must be 2 to 128 characters in length. The name can contain letters, digits, colons (:), underscores (\_), and hyphens (-). It must start with a letter and cannot start with `http://` or `https://`.
self.image_name = image_name
# The OSS bucket to which you want to import the image.
self.oss_bucket = oss_bucket
# The name (key) of the image file that you want to use as an OSS object.
self.oss_object = oss_object
self.owner_account = owner_account
self.owner_id = owner_id
# The OS distribution. Valid values:
#
# * Android 9.0
self.platform = platform
# The ID of the region where you want to import the image to the ECP instance.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_token is not None:
result['ClientToken'] = self.client_token
if self.description is not None:
result['Description'] = self.description
if self.format is not None:
result['Format'] = self.format
if self.image_name is not None:
result['ImageName'] = self.image_name
if self.oss_bucket is not None:
result['OssBucket'] = self.oss_bucket
if self.oss_object is not None:
result['OssObject'] = self.oss_object
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.platform is not None:
result['Platform'] = self.platform
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientToken') is not None:
self.client_token = m.get('ClientToken')
if m.get('Description') is not None:
self.description = m.get('Description')
if m.get('Format') is not None:
self.format = m.get('Format')
if m.get('ImageName') is not None:
self.image_name = m.get('ImageName')
if m.get('OssBucket') is not None:
self.oss_bucket = m.get('OssBucket')
if m.get('OssObject') is not None:
self.oss_object = m.get('OssObject')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('Platform') is not None:
self.platform = m.get('Platform')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ImportImageResponseBody(TeaModel):
def __init__(
self,
image_id: str = None,
request_id: str = None,
):
# The ID of the image that is imported to the instance.
self.image_id = image_id
# The request ID.
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.image_id is not None:
result['ImageId'] = self.image_id
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('ImageId') is not None:
self.image_id = m.get('ImageId')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ImportImageResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ImportImageResponseBody = 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 = ImportImageResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ImportKeyPairRequest(TeaModel):
def __init__(
self,
key_pair_name: str = None,
owner_account: str = None,
owner_id: int = None,
public_key_body: str = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The name of the key pair. The name must be globally unique. The name must be 2 to 128 characters in length. The name must start with a letter but cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (\_), and hyphens (-).
self.key_pair_name = key_pair_name
self.owner_account = owner_account
self.owner_id = owner_id
# The public key of the key pair.
self.public_key_body = public_key_body
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_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_pair_name is not None:
result['KeyPairName'] = self.key_pair_name
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.public_key_body is not None:
result['PublicKeyBody'] = self.public_key_body
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('KeyPairName') is not None:
self.key_pair_name = m.get('KeyPairName')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PublicKeyBody') is not None:
self.public_key_body = m.get('PublicKeyBody')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ImportKeyPairResponseBody(TeaModel):
def __init__(
self,
key_pair_finger_print: str = None,
key_pair_name: str = None,
request_id: str = None,
):
# The fingerprint of the key pair. The message-digest algorithm 5 (MD5) is used based on the public key fingerprint format defined in RFC 4716.
self.key_pair_finger_print = key_pair_finger_print
# The name of the key pair.
self.key_pair_name = key_pair_name
# The request ID.
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.key_pair_finger_print is not None:
result['KeyPairFingerPrint'] = self.key_pair_finger_print
if self.key_pair_name is not None:
result['KeyPairName'] = self.key_pair_name
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('KeyPairFingerPrint') is not None:
self.key_pair_finger_print = m.get('KeyPairFingerPrint')
if m.get('KeyPairName') is not None:
self.key_pair_name = m.get('KeyPairName')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ImportKeyPairResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ImportKeyPairResponseBody = 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 = ImportKeyPairResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class InstallApplicationRequest(TeaModel):
def __init__(
self,
instance_id: List[str] = None,
oss_bucket: str = None,
oss_object: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The IDs of the instances on which you want to run the command. Valid values of N: 1 to 10.
self.instance_id = instance_id
# The Object Storage Service (OSS) bucket in which you want to store the application file.
#
# > Before you import application files to the OSS bucket for the first time, add a Resource Access Management (RAM) policy. Otherwise, NoSetRoletoECSServiceAcount appears.
self.oss_bucket = oss_bucket
# The name (key) of the application file that is used as an OSS object.
self.oss_object = oss_object
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_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_id is not None:
result['InstanceId'] = self.instance_id
if self.oss_bucket is not None:
result['OssBucket'] = self.oss_bucket
if self.oss_object is not None:
result['OssObject'] = self.oss_object
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
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('OssBucket') is not None:
self.oss_bucket = m.get('OssBucket')
if m.get('OssObject') is not None:
self.oss_object = m.get('OssObject')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class InstallApplicationResponseBodyTaskId(TeaModel):
def __init__(
self,
task_id: List[str] = None,
):
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.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('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class InstallApplicationResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
task_id: InstallApplicationResponseBodyTaskId = None,
):
# The request ID.
self.request_id = request_id
# The task IDs.
self.task_id = task_id
def validate(self):
if self.task_id:
self.task_id.validate()
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.task_id is not None:
result['TaskId'] = self.task_id.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TaskId') is not None:
temp_model = InstallApplicationResponseBodyTaskId()
self.task_id = temp_model.from_map(m['TaskId'])
return self
class InstallApplicationResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: InstallApplicationResponseBody = 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 = InstallApplicationResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListImageSharePermissionRequest(TeaModel):
def __init__(
self,
image_id: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The ID of the image that you want to import to the instance.
self.image_id = image_id
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.image_id is not None:
result['ImageId'] = self.image_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ImageId') is not None:
self.image_id = m.get('ImageId')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ListImageSharePermissionResponseBodyAccountsAccount(TeaModel):
def __init__(
self,
aliyun_id: str = None,
):
# The ID of the Alibaba Cloud account.
self.aliyun_id = aliyun_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.aliyun_id is not None:
result['AliyunId'] = self.aliyun_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AliyunId') is not None:
self.aliyun_id = m.get('AliyunId')
return self
class ListImageSharePermissionResponseBodyAccounts(TeaModel):
def __init__(
self,
account: List[ListImageSharePermissionResponseBodyAccountsAccount] = None,
):
self.account = account
def validate(self):
if self.account:
for k in self.account:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['Account'] = []
if self.account is not None:
for k in self.account:
result['Account'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.account = []
if m.get('Account') is not None:
for k in m.get('Account'):
temp_model = ListImageSharePermissionResponseBodyAccountsAccount()
self.account.append(temp_model.from_map(k))
return self
class ListImageSharePermissionResponseBody(TeaModel):
def __init__(
self,
accounts: ListImageSharePermissionResponseBodyAccounts = None,
request_id: str = None,
):
# The list of Alibaba Cloud accounts.
self.accounts = accounts
# The request ID.
self.request_id = request_id
def validate(self):
if self.accounts:
self.accounts.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.accounts is not None:
result['Accounts'] = self.accounts.to_map()
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('Accounts') is not None:
temp_model = ListImageSharePermissionResponseBodyAccounts()
self.accounts = temp_model.from_map(m['Accounts'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListImageSharePermissionResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListImageSharePermissionResponseBody = 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 = ListImageSharePermissionResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListImagesRequest(TeaModel):
def __init__(
self,
image_category: str = None,
image_id: List[str] = None,
image_name: str = None,
instance_type: str = None,
max_results: int = None,
next_token: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
status: str = None,
):
# The image source. Valid values:
#
# * system: public images provided by Alibaba Cloud.
# * self: custom images that you create.
# * others: shared images from other Alibaba Cloud accounts.
self.image_category = image_category
# The image IDs. Valid values of N: 1 to 100.
self.image_id = image_id
# The image name. The name must be 2 to 128 characters in length. It can contain letters, digits, colons (:), underscores (\_), and hyphens (-). The name must start with a letter but cannot start with `http://` or `https://`.
self.image_name = image_name
# The instance type.
self.instance_type = instance_type
# The maximum number of entries to return on each page. Valid values: 1 to 100.
self.max_results = max_results
# The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.
self.next_token = next_token
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
# The image state. Valid values:
#
# * Waiting
# * Creating
# * Copying
# * Importing
# * Available (default)
# * CreateFailed
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.image_category is not None:
result['ImageCategory'] = self.image_category
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.instance_type is not None:
result['InstanceType'] = self.instance_type
if self.max_results is not None:
result['MaxResults'] = self.max_results
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
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('ImageCategory') is not None:
self.image_category = m.get('ImageCategory')
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('InstanceType') is not None:
self.instance_type = m.get('InstanceType')
if m.get('MaxResults') is not None:
self.max_results = m.get('MaxResults')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('Status') is not None:
self.status = m.get('Status')
return self
class ListImagesResponseBodyImagesImage(TeaModel):
def __init__(
self,
creation_time: str = None,
description: str = None,
image_category: str = None,
image_id: str = None,
image_name: str = None,
is_self_shared: bool = None,
osname: str = None,
osname_en: str = None,
ostype: str = None,
platform: str = None,
progress: str = None,
status: str = None,
usage: str = None,
):
# The time when the image was created. The time follows the ISO 8601 standard.
self.creation_time = creation_time
# The image description.
self.description = description
# The image type.
self.image_category = image_category
# The image ID.
self.image_id = image_id
# The image name.
self.image_name = image_name
# Indicates whether the image is shared with other Alibaba Cloud accounts.
self.is_self_shared = is_self_shared
# The display name of the OS in Chinese.
self.osname = osname
# The display name of the OS in English.
self.osname_en = osname_en
# The image OS.
self.ostype = ostype
# The OS distribution.
self.platform = platform
# The progress of image creation.
self.progress = progress
# The image state.
self.status = status
# Indicates whether the image is used by instances. Valid values:
#
# * none: The image is idle.
# * instance: The image is used by instances.
self.usage = usage
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.creation_time is not None:
result['CreationTime'] = self.creation_time
if self.description is not None:
result['Description'] = self.description
if self.image_category is not None:
result['ImageCategory'] = self.image_category
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.is_self_shared is not None:
result['IsSelfShared'] = self.is_self_shared
if self.osname is not None:
result['OSName'] = self.osname
if self.osname_en is not None:
result['OSNameEn'] = self.osname_en
if self.ostype is not None:
result['OSType'] = self.ostype
if self.platform is not None:
result['Platform'] = self.platform
if self.progress is not None:
result['Progress'] = self.progress
if self.status is not None:
result['Status'] = self.status
if self.usage is not None:
result['Usage'] = self.usage
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CreationTime') is not None:
self.creation_time = m.get('CreationTime')
if m.get('Description') is not None:
self.description = m.get('Description')
if m.get('ImageCategory') is not None:
self.image_category = m.get('ImageCategory')
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('IsSelfShared') is not None:
self.is_self_shared = m.get('IsSelfShared')
if m.get('OSName') is not None:
self.osname = m.get('OSName')
if m.get('OSNameEn') is not None:
self.osname_en = m.get('OSNameEn')
if m.get('OSType') is not None:
self.ostype = m.get('OSType')
if m.get('Platform') is not None:
self.platform = m.get('Platform')
if m.get('Progress') is not None:
self.progress = m.get('Progress')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('Usage') is not None:
self.usage = m.get('Usage')
return self
class ListImagesResponseBodyImages(TeaModel):
def __init__(
self,
image: List[ListImagesResponseBodyImagesImage] = None,
):
self.image = image
def validate(self):
if self.image:
for k in self.image:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['Image'] = []
if self.image is not None:
for k in self.image:
result['Image'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.image = []
if m.get('Image') is not None:
for k in m.get('Image'):
temp_model = ListImagesResponseBodyImagesImage()
self.image.append(temp_model.from_map(k))
return self
class ListImagesResponseBody(TeaModel):
def __init__(
self,
images: ListImagesResponseBodyImages = None,
max_results: int = None,
next_token: str = None,
region_id: str = None,
request_id: str = None,
total_count: int = None,
):
# The list of images.
self.images = images
# The maximum number of entries that is returned on each page. Valid values: 1 to 100.
self.max_results = max_results
# A pagination token. It can be used in the next request to retrieve a new page of results.
self.next_token = next_token
# The region ID.
self.region_id = region_id
# The request ID.
self.request_id = request_id
# The total number of images.
self.total_count = total_count
def validate(self):
if self.images:
self.images.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.images is not None:
result['Images'] = self.images.to_map()
if self.max_results is not None:
result['MaxResults'] = self.max_results
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.request_id is not None:
result['RequestId'] = self.request_id
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('Images') is not None:
temp_model = ListImagesResponseBodyImages()
self.images = temp_model.from_map(m['Images'])
if m.get('MaxResults') is not None:
self.max_results = m.get('MaxResults')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TotalCount') is not None:
self.total_count = m.get('TotalCount')
return self
class ListImagesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListImagesResponseBody = 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 = ListImagesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListInstanceTypesRequest(TeaModel):
def __init__(
self,
instance_type: List[str] = None,
instance_type_family: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The names of the instance types. Valid values of N: 1 to 100.
self.instance_type = instance_type
# The instance type family.
self.instance_type_family = instance_type_family
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_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_type is not None:
result['InstanceType'] = self.instance_type
if self.instance_type_family is not None:
result['InstanceTypeFamily'] = self.instance_type_family
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('InstanceType') is not None:
self.instance_type = m.get('InstanceType')
if m.get('InstanceTypeFamily') is not None:
self.instance_type_family = m.get('InstanceTypeFamily')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ListInstanceTypesResponseBodyInstanceTypesInstanceTypeResolutions(TeaModel):
def __init__(
self,
resolution: List[str] = None,
):
self.resolution = resolution
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.resolution is not None:
result['Resolution'] = self.resolution
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Resolution') is not None:
self.resolution = m.get('Resolution')
return self
class ListInstanceTypesResponseBodyInstanceTypesInstanceType(TeaModel):
def __init__(
self,
cpu_core_count: int = None,
default_resolution: str = None,
instance_type: str = None,
instance_type_family: str = None,
memory_size: str = None,
name: str = None,
name_en: str = None,
resolutions: ListInstanceTypesResponseBodyInstanceTypesInstanceTypeResolutions = None,
):
# The number of vCPUs supported by the instance type.
self.cpu_core_count = cpu_core_count
# The default resolution supported by the instance type.
self.default_resolution = default_resolution
# The instance type.
self.instance_type = instance_type
# The instance type family.
self.instance_type_family = instance_type_family
# The memory size supported by the instance type. Unit: GiB.
self.memory_size = memory_size
# The name of the instance type in Chinese.
self.name = name
# The name of the instance type in English.
self.name_en = name_en
# The resolutions supported by the instance type.
self.resolutions = resolutions
def validate(self):
if self.resolutions:
self.resolutions.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.cpu_core_count is not None:
result['CpuCoreCount'] = self.cpu_core_count
if self.default_resolution is not None:
result['DefaultResolution'] = self.default_resolution
if self.instance_type is not None:
result['InstanceType'] = self.instance_type
if self.instance_type_family is not None:
result['InstanceTypeFamily'] = self.instance_type_family
if self.memory_size is not None:
result['MemorySize'] = self.memory_size
if self.name is not None:
result['Name'] = self.name
if self.name_en is not None:
result['NameEn'] = self.name_en
if self.resolutions is not None:
result['Resolutions'] = self.resolutions.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CpuCoreCount') is not None:
self.cpu_core_count = m.get('CpuCoreCount')
if m.get('DefaultResolution') is not None:
self.default_resolution = m.get('DefaultResolution')
if m.get('InstanceType') is not None:
self.instance_type = m.get('InstanceType')
if m.get('InstanceTypeFamily') is not None:
self.instance_type_family = m.get('InstanceTypeFamily')
if m.get('MemorySize') is not None:
self.memory_size = m.get('MemorySize')
if m.get('Name') is not None:
self.name = m.get('Name')
if m.get('NameEn') is not None:
self.name_en = m.get('NameEn')
if m.get('Resolutions') is not None:
temp_model = ListInstanceTypesResponseBodyInstanceTypesInstanceTypeResolutions()
self.resolutions = temp_model.from_map(m['Resolutions'])
return self
class ListInstanceTypesResponseBodyInstanceTypes(TeaModel):
def __init__(
self,
instance_type: List[ListInstanceTypesResponseBodyInstanceTypesInstanceType] = None,
):
self.instance_type = instance_type
def validate(self):
if self.instance_type:
for k in self.instance_type:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['InstanceType'] = []
if self.instance_type is not None:
for k in self.instance_type:
result['InstanceType'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.instance_type = []
if m.get('InstanceType') is not None:
for k in m.get('InstanceType'):
temp_model = ListInstanceTypesResponseBodyInstanceTypesInstanceType()
self.instance_type.append(temp_model.from_map(k))
return self
class ListInstanceTypesResponseBody(TeaModel):
def __init__(
self,
instance_types: ListInstanceTypesResponseBodyInstanceTypes = None,
request_id: str = None,
):
# The instance types.
self.instance_types = instance_types
# The request ID.
self.request_id = request_id
def validate(self):
if self.instance_types:
self.instance_types.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.instance_types is not None:
result['InstanceTypes'] = self.instance_types.to_map()
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('InstanceTypes') is not None:
temp_model = ListInstanceTypesResponseBodyInstanceTypes()
self.instance_types = temp_model.from_map(m['InstanceTypes'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListInstanceTypesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListInstanceTypesResponseBody = 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 = ListInstanceTypesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListInstanceVncUrlRequest(TeaModel):
def __init__(
self,
instance_id: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The instance ID.
self.instance_id = instance_id
self.owner_account = owner_account
self.owner_id = owner_id
# The ID of the region where the instance resides.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_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_id is not None:
result['InstanceId'] = self.instance_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
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('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ListInstanceVncUrlResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
vnc_url: str = None,
web_rtc_token: str = None,
):
# The request ID.
self.request_id = request_id
# The Virtual Network Computing (VNC) connection URL.
self.vnc_url = vnc_url
# The token that is used for WebRTC logon.
self.web_rtc_token = web_rtc_token
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.vnc_url is not None:
result['VncUrl'] = self.vnc_url
if self.web_rtc_token is not None:
result['WebRtcToken'] = self.web_rtc_token
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('VncUrl') is not None:
self.vnc_url = m.get('VncUrl')
if m.get('WebRtcToken') is not None:
self.web_rtc_token = m.get('WebRtcToken')
return self
class ListInstanceVncUrlResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListInstanceVncUrlResponseBody = 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 = ListInstanceVncUrlResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListInstancesRequestFilter(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 ListInstancesRequestTag(TeaModel):
def __init__(
self,
key: str = None,
value: str = None,
):
# The tag key of the instance. Valid values of N: 1 to 20.
self.key = key
# The tag value of the instance. Valid values of N: 1 to 20.
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,
charge_type: str = None,
filter: List[ListInstancesRequestFilter] = None,
image_id: str = None,
instance_id: List[str] = None,
instance_name: str = None,
instance_type: str = None,
key_pair_name: str = None,
max_results: int = None,
next_token: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resolution: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
show_web_rtc_token: bool = None,
status: str = None,
tag: List[ListInstancesRequestTag] = None,
zone_id: str = None,
):
# The billing method. Valid values:
#
# * PrePaid: subscription
# * PostPaid: pay-as-you-go
self.charge_type = charge_type
self.filter = filter
# The image ID.
self.image_id = image_id
# The instance IDs. Valid values of N: 1 to 100.
self.instance_id = instance_id
# The instance name.
self.instance_name = instance_name
# The instance type.
self.instance_type = instance_type
# The key pair name. The name must be globally unique. The name must be 2 to 128 characters in length. The name must start with a letter and cannot start with http:// or https://. The name can contain letters, digits, colons (:), underscores (\_), and hyphens (-).
self.key_pair_name = key_pair_name
# The maximum number of entries returned on each page. Valid values: 1 to 100.
self.max_results = max_results
# The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.
self.next_token = next_token
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
# The instance resolution.
self.resolution = resolution
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
# Specifies whether webRtcToken is returned in the query result.
self.show_web_rtc_token = show_web_rtc_token
# The instance status. Valid values:
#
# * Pending: The instance is being created.
# * Running: The instance is running.
# * Starting: The instance is being started.
# * Stopping: The instance is being stopped.
# * Stopped: The instance is stopped.
# * Expired: The instance has expired.
self.status = status
# The instances that you want to filter by using a specified tag.
self.tag = tag
# The ID of the zone where the instance resides.
self.zone_id = zone_id
def validate(self):
if self.filter:
for k in self.filter:
if k:
k.validate()
if self.tag:
for k in self.tag:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.charge_type is not None:
result['ChargeType'] = self.charge_type
result['Filter'] = []
if self.filter is not None:
for k in self.filter:
result['Filter'].append(k.to_map() if k else None)
if self.image_id is not None:
result['ImageId'] = self.image_id
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_type is not None:
result['InstanceType'] = self.instance_type
if self.key_pair_name is not None:
result['KeyPairName'] = self.key_pair_name
if self.max_results is not None:
result['MaxResults'] = self.max_results
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resolution is not None:
result['Resolution'] = self.resolution
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.show_web_rtc_token is not None:
result['ShowWebRtcToken'] = self.show_web_rtc_token
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.zone_id is not None:
result['ZoneId'] = self.zone_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ChargeType') is not None:
self.charge_type = m.get('ChargeType')
self.filter = []
if m.get('Filter') is not None:
for k in m.get('Filter'):
temp_model = ListInstancesRequestFilter()
self.filter.append(temp_model.from_map(k))
if m.get('ImageId') is not None:
self.image_id = m.get('ImageId')
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('InstanceType') is not None:
self.instance_type = m.get('InstanceType')
if m.get('KeyPairName') is not None:
self.key_pair_name = m.get('KeyPairName')
if m.get('MaxResults') is not None:
self.max_results = m.get('MaxResults')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('Resolution') is not None:
self.resolution = m.get('Resolution')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('ShowWebRtcToken') is not None:
self.show_web_rtc_token = m.get('ShowWebRtcToken')
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('ZoneId') is not None:
self.zone_id = m.get('ZoneId')
return self
class ListInstancesResponseBodyInstancesInstanceEipAddress(TeaModel):
def __init__(
self,
allocation_id: str = None,
bandwidth: int = None,
internet_charge_type: str = None,
ip_address: str = None,
):
# The ID of the EIP that is used by the instance.
self.allocation_id = allocation_id
# The bandwidth of the EIP.
self.bandwidth = bandwidth
# The billing method of the EIP.
self.internet_charge_type = internet_charge_type
# The EIP.
self.ip_address = ip_address
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.allocation_id is not None:
result['AllocationId'] = self.allocation_id
if self.bandwidth is not None:
result['Bandwidth'] = self.bandwidth
if self.internet_charge_type is not None:
result['InternetChargeType'] = self.internet_charge_type
if self.ip_address is not None:
result['IpAddress'] = self.ip_address
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AllocationId') is not None:
self.allocation_id = m.get('AllocationId')
if m.get('Bandwidth') is not None:
self.bandwidth = m.get('Bandwidth')
if m.get('InternetChargeType') is not None:
self.internet_charge_type = m.get('InternetChargeType')
if m.get('IpAddress') is not None:
self.ip_address = m.get('IpAddress')
return self
class ListInstancesResponseBodyInstancesInstanceTagsTag(TeaModel):
def __init__(
self,
key: str = None,
value: str = None,
):
# The tag key of the instance.
self.key = key
# The tag value of the instance.
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 ListInstancesResponseBodyInstancesInstanceTags(TeaModel):
def __init__(
self,
tag: List[ListInstancesResponseBodyInstancesInstanceTagsTag] = None,
):
self.tag = tag
def validate(self):
if self.tag:
for k in self.tag:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['Tag'] = []
if self.tag is not None:
for k in self.tag:
result['Tag'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.tag = []
if m.get('Tag') is not None:
for k in m.get('Tag'):
temp_model = ListInstancesResponseBodyInstancesInstanceTagsTag()
self.tag.append(temp_model.from_map(k))
return self
class ListInstancesResponseBodyInstancesInstanceVpcAttributes(TeaModel):
def __init__(
self,
private_ip_address: str = None,
v_switch_id: str = None,
):
# The private IP address.
self.private_ip_address = private_ip_address
# The vSwitch ID.
self.v_switch_id = v_switch_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.private_ip_address is not None:
result['PrivateIpAddress'] = self.private_ip_address
if self.v_switch_id is not None:
result['VSwitchId'] = self.v_switch_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PrivateIpAddress') is not None:
self.private_ip_address = m.get('PrivateIpAddress')
if m.get('VSwitchId') is not None:
self.v_switch_id = m.get('VSwitchId')
return self
class ListInstancesResponseBodyInstancesInstance(TeaModel):
def __init__(
self,
auto_renew: bool = None,
charge_type: str = None,
creation_time: str = None,
description: str = None,
eip_address: ListInstancesResponseBodyInstancesInstanceEipAddress = None,
expired_time: str = None,
image_id: str = None,
instance_id: str = None,
instance_name: str = None,
instance_type: str = None,
key_pair_name: str = None,
os_name: str = None,
os_name_en: str = None,
region_id: str = None,
resolution: str = None,
security_group_id: str = None,
status: str = None,
tags: ListInstancesResponseBodyInstancesInstanceTags = None,
vpc_attributes: ListInstancesResponseBodyInstancesInstanceVpcAttributes = None,
web_rtc_token: str = None,
zone_id: str = None,
):
# Indicates whether auto-renewal is enabled. This parameter takes effect only for subscription instances.
self.auto_renew = auto_renew
# The billing method of the instance.
self.charge_type = charge_type
# The time when the image was created. The time follows the ISO 8601 standard.
self.creation_time = creation_time
# The instance description.
self.description = description
# The information about the elastic IP address (EIP) of the instance.
self.eip_address = eip_address
# The time when the subscription instance expires.
self.expired_time = expired_time
# The image ID.
self.image_id = image_id
# The instance ID.
self.instance_id = instance_id
# The instance name.
self.instance_name = instance_name
# The instance type.
self.instance_type = instance_type
# The name of the key pair for the instance.
self.key_pair_name = key_pair_name
# The display name of the OS in Chinese.
self.os_name = os_name
# The display name of the OS in English.
self.os_name_en = os_name_en
# The region ID.
self.region_id = region_id
# The resolution of the instance.
self.resolution = resolution
# The ID of the security group that the instance uses. The security group is the same as that of the Elastic Compute Service (ECS) instance that you use.
self.security_group_id = security_group_id
# The instance state. Valid values:
#
# * Pending: The instance is being created.
# * Running: The instance is running.
# * Starting: The instance is being started.
# * Stopping: The instance is being stopped.
# * Stopped: The instance is stopped.
self.status = status
# The tags of the instance.
self.tags = tags
# The information about the virtual private cloud (VPC) in which the instance is deployed.
self.vpc_attributes = vpc_attributes
# The information about webRtcToken.
self.web_rtc_token = web_rtc_token
# The zone ID.
self.zone_id = zone_id
def validate(self):
if self.eip_address:
self.eip_address.validate()
if self.tags:
self.tags.validate()
if self.vpc_attributes:
self.vpc_attributes.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.auto_renew is not None:
result['AutoRenew'] = self.auto_renew
if self.charge_type is not None:
result['ChargeType'] = self.charge_type
if self.creation_time is not None:
result['CreationTime'] = self.creation_time
if self.description is not None:
result['Description'] = self.description
if self.eip_address is not None:
result['EipAddress'] = self.eip_address.to_map()
if self.expired_time is not None:
result['ExpiredTime'] = self.expired_time
if self.image_id is not None:
result['ImageId'] = self.image_id
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_type is not None:
result['InstanceType'] = self.instance_type
if self.key_pair_name is not None:
result['KeyPairName'] = self.key_pair_name
if self.os_name is not None:
result['OsName'] = self.os_name
if self.os_name_en is not None:
result['OsNameEn'] = self.os_name_en
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resolution is not None:
result['Resolution'] = self.resolution
if self.security_group_id is not None:
result['SecurityGroupId'] = self.security_group_id
if self.status is not None:
result['Status'] = self.status
if self.tags is not None:
result['Tags'] = self.tags.to_map()
if self.vpc_attributes is not None:
result['VpcAttributes'] = self.vpc_attributes.to_map()
if self.web_rtc_token is not None:
result['WebRtcToken'] = self.web_rtc_token
if self.zone_id is not None:
result['ZoneId'] = self.zone_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AutoRenew') is not None:
self.auto_renew = m.get('AutoRenew')
if m.get('ChargeType') is not None:
self.charge_type = m.get('ChargeType')
if m.get('CreationTime') is not None:
self.creation_time = m.get('CreationTime')
if m.get('Description') is not None:
self.description = m.get('Description')
if m.get('EipAddress') is not None:
temp_model = ListInstancesResponseBodyInstancesInstanceEipAddress()
self.eip_address = temp_model.from_map(m['EipAddress'])
if m.get('ExpiredTime') is not None:
self.expired_time = m.get('ExpiredTime')
if m.get('ImageId') is not None:
self.image_id = m.get('ImageId')
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('InstanceType') is not None:
self.instance_type = m.get('InstanceType')
if m.get('KeyPairName') is not None:
self.key_pair_name = m.get('KeyPairName')
if m.get('OsName') is not None:
self.os_name = m.get('OsName')
if m.get('OsNameEn') is not None:
self.os_name_en = m.get('OsNameEn')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('Resolution') is not None:
self.resolution = m.get('Resolution')
if m.get('SecurityGroupId') is not None:
self.security_group_id = m.get('SecurityGroupId')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('Tags') is not None:
temp_model = ListInstancesResponseBodyInstancesInstanceTags()
self.tags = temp_model.from_map(m['Tags'])
if m.get('VpcAttributes') is not None:
temp_model = ListInstancesResponseBodyInstancesInstanceVpcAttributes()
self.vpc_attributes = temp_model.from_map(m['VpcAttributes'])
if m.get('WebRtcToken') is not None:
self.web_rtc_token = m.get('WebRtcToken')
if m.get('ZoneId') is not None:
self.zone_id = m.get('ZoneId')
return self
class ListInstancesResponseBodyInstances(TeaModel):
def __init__(
self,
instance: List[ListInstancesResponseBodyInstancesInstance] = None,
):
self.instance = instance
def validate(self):
if self.instance:
for k in self.instance:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['Instance'] = []
if self.instance is not None:
for k in self.instance:
result['Instance'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.instance = []
if m.get('Instance') is not None:
for k in m.get('Instance'):
temp_model = ListInstancesResponseBodyInstancesInstance()
self.instance.append(temp_model.from_map(k))
return self
class ListInstancesResponseBody(TeaModel):
def __init__(
self,
instances: ListInstancesResponseBodyInstances = None,
max_results: int = None,
next_token: str = None,
request_id: str = None,
total_count: int = None,
):
# Details of the instances.
self.instances = instances
# The maximum number of entries returned on each page. Valid values: 1 to 100.
self.max_results = max_results
# A pagination token. It can be used in the next request to retrieve a new page of results.
self.next_token = next_token
# The request ID.
self.request_id = request_id
# The total number of entries that is returned.
self.total_count = total_count
def validate(self):
if self.instances:
self.instances.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.instances is not None:
result['Instances'] = self.instances.to_map()
if self.max_results is not None:
result['MaxResults'] = self.max_results
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.request_id is not None:
result['RequestId'] = self.request_id
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('Instances') is not None:
temp_model = ListInstancesResponseBodyInstances()
self.instances = temp_model.from_map(m['Instances'])
if m.get('MaxResults') is not None:
self.max_results = m.get('MaxResults')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TotalCount') is not None:
self.total_count = m.get('TotalCount')
return self
class ListInstancesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListInstancesResponseBody = 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 = ListInstancesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListKeyPairsRequest(TeaModel):
def __init__(
self,
key_pair_finger_print: str = None,
key_pair_name: str = None,
max_results: int = None,
next_token: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The fingerprint of the key pair. The message-digest algorithm 5 (MD5) is used based on the public key fingerprint format defined in RFC 4716.
self.key_pair_finger_print = key_pair_finger_print
# The name of the key pair.
self.key_pair_name = key_pair_name
# The maximum number of entries per page. Valid values: 1 to 100.
self.max_results = max_results
# The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.
self.next_token = next_token
self.owner_account = owner_account
self.owner_id = owner_id
# The ID of the region where the key pair resides.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_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_pair_finger_print is not None:
result['KeyPairFingerPrint'] = self.key_pair_finger_print
if self.key_pair_name is not None:
result['KeyPairName'] = self.key_pair_name
if self.max_results is not None:
result['MaxResults'] = self.max_results
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('KeyPairFingerPrint') is not None:
self.key_pair_finger_print = m.get('KeyPairFingerPrint')
if m.get('KeyPairName') is not None:
self.key_pair_name = m.get('KeyPairName')
if m.get('MaxResults') is not None:
self.max_results = m.get('MaxResults')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ListKeyPairsResponseBodyKeyPairsKeyPair(TeaModel):
def __init__(
self,
creation_time: str = None,
key_pair_finger_print: str = None,
key_pair_name: str = None,
):
# The time when the key pair was created.
self.creation_time = creation_time
# The fingerprint of the key pair.
self.key_pair_finger_print = key_pair_finger_print
# The name of the SSH key pair.
self.key_pair_name = key_pair_name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.creation_time is not None:
result['CreationTime'] = self.creation_time
if self.key_pair_finger_print is not None:
result['KeyPairFingerPrint'] = self.key_pair_finger_print
if self.key_pair_name is not None:
result['KeyPairName'] = self.key_pair_name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CreationTime') is not None:
self.creation_time = m.get('CreationTime')
if m.get('KeyPairFingerPrint') is not None:
self.key_pair_finger_print = m.get('KeyPairFingerPrint')
if m.get('KeyPairName') is not None:
self.key_pair_name = m.get('KeyPairName')
return self
class ListKeyPairsResponseBodyKeyPairs(TeaModel):
def __init__(
self,
key_pair: List[ListKeyPairsResponseBodyKeyPairsKeyPair] = None,
):
self.key_pair = key_pair
def validate(self):
if self.key_pair:
for k in self.key_pair:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['KeyPair'] = []
if self.key_pair is not None:
for k in self.key_pair:
result['KeyPair'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.key_pair = []
if m.get('KeyPair') is not None:
for k in m.get('KeyPair'):
temp_model = ListKeyPairsResponseBodyKeyPairsKeyPair()
self.key_pair.append(temp_model.from_map(k))
return self
class ListKeyPairsResponseBody(TeaModel):
def __init__(
self,
key_pairs: ListKeyPairsResponseBodyKeyPairs = None,
max_results: int = None,
next_token: str = None,
request_id: str = None,
total_count: int = None,
):
# The key pairs that are returned.
self.key_pairs = key_pairs
# The maximum number of entries per page. Valid values: 1 to 100.
self.max_results = max_results
# A pagination token. It can be used in the next request to retrieve a new page of results.
self.next_token = next_token
# The request ID.
self.request_id = request_id
# The total number of key pairs.
self.total_count = total_count
def validate(self):
if self.key_pairs:
self.key_pairs.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.key_pairs is not None:
result['KeyPairs'] = self.key_pairs.to_map()
if self.max_results is not None:
result['MaxResults'] = self.max_results
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.request_id is not None:
result['RequestId'] = self.request_id
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('KeyPairs') is not None:
temp_model = ListKeyPairsResponseBodyKeyPairs()
self.key_pairs = temp_model.from_map(m['KeyPairs'])
if m.get('MaxResults') is not None:
self.max_results = m.get('MaxResults')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TotalCount') is not None:
self.total_count = m.get('TotalCount')
return self
class ListKeyPairsResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListKeyPairsResponseBody = 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 = ListKeyPairsResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListRegionsRequest(TeaModel):
def __init__(
self,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ListRegionsResponseBodyRegionsRegion(TeaModel):
def __init__(
self,
region_endpoint: str = None,
region_id: str = None,
):
# The endpoint that corresponds to the region.
self.region_endpoint = region_endpoint
# The region ID.
self.region_id = region_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.region_endpoint is not None:
result['RegionEndpoint'] = self.region_endpoint
if self.region_id is not None:
result['RegionId'] = self.region_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RegionEndpoint') is not None:
self.region_endpoint = m.get('RegionEndpoint')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
return self
class ListRegionsResponseBodyRegions(TeaModel):
def __init__(
self,
region: List[ListRegionsResponseBodyRegionsRegion] = None,
):
self.region = region
def validate(self):
if self.region:
for k in self.region:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['Region'] = []
if self.region is not None:
for k in self.region:
result['Region'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.region = []
if m.get('Region') is not None:
for k in m.get('Region'):
temp_model = ListRegionsResponseBodyRegionsRegion()
self.region.append(temp_model.from_map(k))
return self
class ListRegionsResponseBody(TeaModel):
def __init__(
self,
regions: ListRegionsResponseBodyRegions = None,
request_id: str = None,
):
# The details of the regions.
self.regions = regions
# The request ID.
self.request_id = request_id
def validate(self):
if self.regions:
self.regions.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.regions is not None:
result['Regions'] = self.regions.to_map()
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('Regions') is not None:
temp_model = ListRegionsResponseBodyRegions()
self.regions = temp_model.from_map(m['Regions'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListRegionsResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListRegionsResponseBody = 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 = ListRegionsResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListTagKeysRequest(TeaModel):
def __init__(
self,
next_token: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_type: str = None,
):
# The pagination token that is used in the next request to retrieve a new page of results.
self.next_token = next_token
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
# The resource type. Valid value:
#
# * instance: Elastic Cloud Phone (ECP) instance
self.resource_type = resource_type
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
return self
class ListTagKeysResponseBodyKeys(TeaModel):
def __init__(
self,
key: List[str] = None,
):
self.key = key
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
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')
return self
class ListTagKeysResponseBody(TeaModel):
def __init__(
self,
keys: ListTagKeysResponseBodyKeys = None,
max_results: int = None,
next_token: str = None,
request_id: str = None,
):
# The tag keys.
self.keys = keys
# The maximum number of entries to return on each page.
self.max_results = max_results
# The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. If the NextToken parameter is empty, no next page exists.
self.next_token = next_token
# The request ID.
self.request_id = request_id
def validate(self):
if self.keys:
self.keys.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.keys is not None:
result['Keys'] = self.keys.to_map()
if self.max_results is not None:
result['MaxResults'] = self.max_results
if self.next_token is not None:
result['NextToken'] = self.next_token
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('Keys') is not None:
temp_model = ListTagKeysResponseBodyKeys()
self.keys = temp_model.from_map(m['Keys'])
if m.get('MaxResults') is not None:
self.max_results = m.get('MaxResults')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListTagKeysResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListTagKeysResponseBody = 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 = ListTagKeysResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListTagResourcesRequestTag(TeaModel):
def __init__(
self,
key: str = None,
value: str = None,
):
# The tag key.
self.key = key
# The tag value.
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 ListTagResourcesRequest(TeaModel):
def __init__(
self,
next_token: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_id: List[str] = None,
resource_owner_account: str = None,
resource_type: str = None,
tag: List[ListTagResourcesRequestTag] = None,
):
# The pagination token that is used in the next request to retrieve a new page of results.
self.next_token = next_token
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
# The resource IDs. You can specify up to 50 resources.
self.resource_id = resource_id
self.resource_owner_account = resource_owner_account
# The resource type. Valid value:
#
# * instance: Elastic Cloud Phone (ECP) instance
self.resource_type = resource_type
# The tags. You can specify up to 20 tags.
self.tag = tag
def validate(self):
if self.tag:
for k in self.tag:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_id is not None:
result['ResourceId'] = self.resource_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
result['Tag'] = []
if self.tag is not None:
for k in self.tag:
result['Tag'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceId') is not None:
self.resource_id = m.get('ResourceId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
self.tag = []
if m.get('Tag') is not None:
for k in m.get('Tag'):
temp_model = ListTagResourcesRequestTag()
self.tag.append(temp_model.from_map(k))
return self
class ListTagResourcesResponseBodyTagResourcesTagResource(TeaModel):
def __init__(
self,
resource_id: str = None,
resource_type: str = None,
tag_key: str = None,
tag_value: str = None,
):
# The resource ID.
self.resource_id = resource_id
# The resource type. Valid value:
#
# * instance: ECP instance
self.resource_type = resource_type
# The tag key.
self.tag_key = tag_key
# The tag value.
self.tag_value = tag_value
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.resource_id is not None:
result['ResourceId'] = self.resource_id
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
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('ResourceId') is not None:
self.resource_id = m.get('ResourceId')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
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 ListTagResourcesResponseBodyTagResources(TeaModel):
def __init__(
self,
tag_resource: List[ListTagResourcesResponseBodyTagResourcesTagResource] = None,
):
self.tag_resource = tag_resource
def validate(self):
if self.tag_resource:
for k in self.tag_resource:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['TagResource'] = []
if self.tag_resource is not None:
for k in self.tag_resource:
result['TagResource'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.tag_resource = []
if m.get('TagResource') is not None:
for k in m.get('TagResource'):
temp_model = ListTagResourcesResponseBodyTagResourcesTagResource()
self.tag_resource.append(temp_model.from_map(k))
return self
class ListTagResourcesResponseBody(TeaModel):
def __init__(
self,
next_token: str = None,
request_id: str = None,
tag_resources: ListTagResourcesResponseBodyTagResources = None,
):
# The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. If the NextToken parameter is empty, no next page exists.
self.next_token = next_token
# The request ID.
self.request_id = request_id
# The list of resources.
self.tag_resources = tag_resources
def validate(self):
if self.tag_resources:
self.tag_resources.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.tag_resources is not None:
result['TagResources'] = self.tag_resources.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TagResources') is not None:
temp_model = ListTagResourcesResponseBodyTagResources()
self.tag_resources = temp_model.from_map(m['TagResources'])
return self
class ListTagResourcesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListTagResourcesResponseBody = 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 = ListTagResourcesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListTagValuesRequest(TeaModel):
def __init__(
self,
key: str = None,
next_token: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_type: str = None,
):
# The tag key whose values you want to query.
self.key = key
# The pagination token that is used in the next request to retrieve a new page of results.
self.next_token = next_token
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
# The resource type. Valid value:
#
# * instance: Elastic Cloud Phone (ECP) instance
self.resource_type = resource_type
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.next_token is not None:
result['NextToken'] = self.next_token
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
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('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
return self
class ListTagValuesResponseBodyValues(TeaModel):
def __init__(
self,
value: List[str] = None,
):
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.value is not None:
result['Value'] = self.value
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Value') is not None:
self.value = m.get('Value')
return self
class ListTagValuesResponseBody(TeaModel):
def __init__(
self,
max_results: int = None,
next_token: str = None,
request_id: str = None,
values: ListTagValuesResponseBodyValues = None,
):
# The maximum number of entries that is returned on each page.
self.max_results = max_results
# The returned value of NextToken is a pagination token, which can be used in the next request to retrieve a new page of results. If the NextToken parameter is empty, no next page exists.
self.next_token = next_token
# The request ID.
self.request_id = request_id
# The list of resources.
self.values = values
def validate(self):
if self.values:
self.values.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.max_results is not None:
result['MaxResults'] = self.max_results
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.values is not None:
result['Values'] = self.values.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('MaxResults') is not None:
self.max_results = m.get('MaxResults')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Values') is not None:
temp_model = ListTagValuesResponseBodyValues()
self.values = temp_model.from_map(m['Values'])
return self
class ListTagValuesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListTagValuesResponseBody = 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 = ListTagValuesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListTasksRequest(TeaModel):
def __init__(
self,
instance_id: str = None,
max_results: int = None,
next_token: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
task_id: List[str] = None,
task_status: str = None,
task_type: str = None,
):
# The instance ID.
self.instance_id = instance_id
# The maximum number of entries to return on each page. Valid values: 1 to 100. Default value: 50.
self.max_results = max_results
# The pagination token that is used in the next request to retrieve a new page of results. You do not need to specify this parameter for the first request. You must specify the token that is obtained from the previous query as the value of NextToken.
self.next_token = next_token
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
# The task IDs. Valid values of N: 1 to 100.
self.task_id = task_id
# The task state. Valid values:
#
# * Finished
# * Processing
# * Failed
#
# This parameter is empty by default.
#
# > The system only queries tasks that are in the Finished, Processing, and Failed states and ignores other values.
self.task_status = task_status
# The name of the operation that you can call to execute the task on the instance. Valid values:
#
# * Shell: runs a shell command.
# * InstallApplication: installs an application.
# * UninstallApplication: uninstalls an application.
# * SendFile: uploads a file.
# * ImportImage: imports an image.
self.task_type = task_type
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.max_results is not None:
result['MaxResults'] = self.max_results
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.task_id is not None:
result['TaskId'] = self.task_id
if self.task_status is not None:
result['TaskStatus'] = self.task_status
if self.task_type is not None:
result['TaskType'] = self.task_type
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('MaxResults') is not None:
self.max_results = m.get('MaxResults')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
if m.get('TaskStatus') is not None:
self.task_status = m.get('TaskStatus')
if m.get('TaskType') is not None:
self.task_type = m.get('TaskType')
return self
class ListTasksResponseBodyTasksTask(TeaModel):
def __init__(
self,
create_time: str = None,
execute_msg: str = None,
finished_time: str = None,
instance_id: str = None,
progress: str = None,
task_id: str = None,
task_status: str = None,
task_type: str = None,
):
# The time when the task was created.
self.create_time = create_time
# The content that is returned after the task is executed. The content can be up to 1,024 bytes in length.
self.execute_msg = execute_msg
# The time when the task ended.
self.finished_time = finished_time
# The instance ID.
self.instance_id = instance_id
# The task progress.
self.progress = progress
# The task ID.
self.task_id = task_id
# The task state.
self.task_status = task_status
# The task type.
self.task_type = task_type
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.create_time is not None:
result['CreateTime'] = self.create_time
if self.execute_msg is not None:
result['ExecuteMsg'] = self.execute_msg
if self.finished_time is not None:
result['FinishedTime'] = self.finished_time
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.progress is not None:
result['Progress'] = self.progress
if self.task_id is not None:
result['TaskId'] = self.task_id
if self.task_status is not None:
result['TaskStatus'] = self.task_status
if self.task_type is not None:
result['TaskType'] = self.task_type
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CreateTime') is not None:
self.create_time = m.get('CreateTime')
if m.get('ExecuteMsg') is not None:
self.execute_msg = m.get('ExecuteMsg')
if m.get('FinishedTime') is not None:
self.finished_time = m.get('FinishedTime')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('Progress') is not None:
self.progress = m.get('Progress')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
if m.get('TaskStatus') is not None:
self.task_status = m.get('TaskStatus')
if m.get('TaskType') is not None:
self.task_type = m.get('TaskType')
return self
class ListTasksResponseBodyTasks(TeaModel):
def __init__(
self,
task: List[ListTasksResponseBodyTasksTask] = None,
):
self.task = task
def validate(self):
if self.task:
for k in self.task:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['Task'] = []
if self.task is not None:
for k in self.task:
result['Task'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.task = []
if m.get('Task') is not None:
for k in m.get('Task'):
temp_model = ListTasksResponseBodyTasksTask()
self.task.append(temp_model.from_map(k))
return self
class ListTasksResponseBody(TeaModel):
def __init__(
self,
max_results: int = None,
next_token: str = None,
region_id: str = None,
request_id: str = None,
tasks: ListTasksResponseBodyTasks = None,
total_count: int = None,
):
# The maximum number of entries that is returned on each page. Valid values: 1 to 200. Default value: 50.
self.max_results = max_results
# A pagination token. It can be used in the next request to retrieve a new page of results.
self.next_token = next_token
# The region ID.
self.region_id = region_id
# The request ID.
self.request_id = request_id
# The tasks.
self.tasks = tasks
# The total number of tasks.
self.total_count = total_count
def validate(self):
if self.tasks:
self.tasks.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.max_results is not None:
result['MaxResults'] = self.max_results
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.tasks is not None:
result['Tasks'] = self.tasks.to_map()
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('MaxResults') is not None:
self.max_results = m.get('MaxResults')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Tasks') is not None:
temp_model = ListTasksResponseBodyTasks()
self.tasks = temp_model.from_map(m['Tasks'])
if m.get('TotalCount') is not None:
self.total_count = m.get('TotalCount')
return self
class ListTasksResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListTasksResponseBody = 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 = ListTasksResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListZonesRequest(TeaModel):
def __init__(
self,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ListZonesResponseBodyZonesZone(TeaModel):
def __init__(
self,
zone_id: str = None,
):
# The zone ID.
self.zone_id = zone_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.zone_id is not None:
result['ZoneId'] = self.zone_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ZoneId') is not None:
self.zone_id = m.get('ZoneId')
return self
class ListZonesResponseBodyZones(TeaModel):
def __init__(
self,
zone: List[ListZonesResponseBodyZonesZone] = None,
):
self.zone = zone
def validate(self):
if self.zone:
for k in self.zone:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['Zone'] = []
if self.zone is not None:
for k in self.zone:
result['Zone'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.zone = []
if m.get('Zone') is not None:
for k in m.get('Zone'):
temp_model = ListZonesResponseBodyZonesZone()
self.zone.append(temp_model.from_map(k))
return self
class ListZonesResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
zones: ListZonesResponseBodyZones = None,
):
# The request ID.
self.request_id = request_id
# The zones available in the current region.
self.zones = zones
def validate(self):
if self.zones:
self.zones.validate()
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.zones is not None:
result['Zones'] = self.zones.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Zones') is not None:
temp_model = ListZonesResponseBodyZones()
self.zones = temp_model.from_map(m['Zones'])
return self
class ListZonesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListZonesResponseBody = 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 = ListZonesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RebootInstancesRequest(TeaModel):
def __init__(
self,
force: bool = None,
instance_id: List[str] = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# Specifies whether to forcefully restart the instance. Valid values:
#
# * true If you set this parameter to true, cache data that is not written to storage in the instance will be lost after you call this operation, which is similar to the effect of a power-off action.
# * false (default)
self.force = force
# The instance IDs.
self.instance_id = instance_id
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.force is not None:
result['Force'] = self.force
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Force') is not None:
self.force = m.get('Force')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class RebootInstancesResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class RebootInstancesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RebootInstancesResponseBody = 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 = RebootInstancesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RenewInstancesRequest(TeaModel):
def __init__(
self,
auto_pay: bool = None,
client_token: str = None,
instance_id: List[str] = None,
owner_account: str = None,
owner_id: int = None,
period: int = None,
period_unit: str = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# Specifies whether to enable auto-payment. Default value: true.
self.auto_pay = auto_pay
# The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see How to ensure idempotence.
self.client_token = client_token
# The IDs of the instances that you want to renew. You can renew up to 20 instances at a time.
self.instance_id = instance_id
self.owner_account = owner_account
self.owner_id = owner_id
# The renewal period. Default value: 1.
self.period = period
# The unit of the renewal period.
#
# * Valid values if you set this parameter to Year: 1, 2, 3, 4, and 5.
# * Valid values if you set this parameter to Month (default): 1, 2, 3, and 6.
# * Valid values if you set this parameter to Hour: 1.
self.period_unit = period_unit
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.auto_pay is not None:
result['AutoPay'] = self.auto_pay
if self.client_token is not None:
result['ClientToken'] = self.client_token
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.period is not None:
result['Period'] = self.period
if self.period_unit is not None:
result['PeriodUnit'] = self.period_unit
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AutoPay') is not None:
self.auto_pay = m.get('AutoPay')
if m.get('ClientToken') is not None:
self.client_token = m.get('ClientToken')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('Period') is not None:
self.period = m.get('Period')
if m.get('PeriodUnit') is not None:
self.period_unit = m.get('PeriodUnit')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class RenewInstancesResponseBodyInstanceIds(TeaModel):
def __init__(
self,
instance_id: List[str] = None,
):
self.instance_id = instance_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_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('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class RenewInstancesResponseBody(TeaModel):
def __init__(
self,
instance_ids: RenewInstancesResponseBodyInstanceIds = None,
order_id: str = None,
request_id: str = None,
):
# The IDs of the instances that are renewed.
self.instance_ids = instance_ids
# The order ID.
self.order_id = order_id
# The request ID.
self.request_id = request_id
def validate(self):
if self.instance_ids:
self.instance_ids.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.instance_ids is not None:
result['InstanceIds'] = self.instance_ids.to_map()
if self.order_id is not None:
result['OrderId'] = self.order_id
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('InstanceIds') is not None:
temp_model = RenewInstancesResponseBodyInstanceIds()
self.instance_ids = temp_model.from_map(m['InstanceIds'])
if m.get('OrderId') is not None:
self.order_id = m.get('OrderId')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class RenewInstancesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RenewInstancesResponseBody = 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 = RenewInstancesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ResetInstancesRequest(TeaModel):
def __init__(
self,
image_id: str = None,
instance_id: List[str] = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The image ID of the instance. If you do not specify this parameter, the image of the current instance is used to reset the instance.
self.image_id = image_id
# The instance IDs. Valid values of N: 1 to 100.
self.instance_id = instance_id
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.image_id is not None:
result['ImageId'] = self.image_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ImageId') is not None:
self.image_id = m.get('ImageId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ResetInstancesResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ResetInstancesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ResetInstancesResponseBody = 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 = ResetInstancesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RunCommandRequest(TeaModel):
def __init__(
self,
command: str = None,
instance_id: List[str] = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The command that you want to run.\
# The name can be up to 1024 bytes in length and can contain only letters, digits, underscores (\_), periods (.), slashes (/), colons (:), and hyphens (-).
self.command = command
# The IDs of the instances on which you want to run the command.\
# Valid values of N: 1 to 10.
self.instance_id = instance_id
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.command is not None:
result['Command'] = self.command
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Command') is not None:
self.command = m.get('Command')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class RunCommandResponseBodyTaskId(TeaModel):
def __init__(
self,
task_id: List[str] = None,
):
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.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('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class RunCommandResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
task_id: RunCommandResponseBodyTaskId = None,
):
# The request ID.
self.request_id = request_id
# The task IDs.
self.task_id = task_id
def validate(self):
if self.task_id:
self.task_id.validate()
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.task_id is not None:
result['TaskId'] = self.task_id.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TaskId') is not None:
temp_model = RunCommandResponseBodyTaskId()
self.task_id = temp_model.from_map(m['TaskId'])
return self
class RunCommandResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RunCommandResponseBody = 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 = RunCommandResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RunInstancesRequestTag(TeaModel):
def __init__(
self,
key: str = None,
value: str = None,
):
# The tag key of the ECP instance. Valid values of N: 1 to 20.
self.key = key
# The tag value of the ECP instance. Valid values of N: 1 to 20.
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 RunInstancesRequest(TeaModel):
def __init__(
self,
amount: int = None,
auto_pay: bool = None,
auto_renew: bool = None,
charge_type: str = None,
client_token: str = None,
description: str = None,
eip_bandwidth: int = None,
image_id: str = None,
instance_name: str = None,
instance_type: str = None,
key_pair_name: str = None,
owner_account: str = None,
owner_id: int = None,
period: int = None,
period_unit: str = None,
private_ip_address: str = None,
region_id: str = None,
resolution: str = None,
resource_owner_account: str = None,
security_group_id: str = None,
tag: List[RunInstancesRequestTag] = None,
v_switch_id: str = None,
):
# The number of ECS instances that you want to create. Valid values: 1 to 100.
#
# Default value: 1.
self.amount = amount
# Specifies whether to enable the auto-payment feature. Default value: true.
self.auto_pay = auto_pay
# Specifies whether to enable the auto-renewal feature. This parameter takes effect only if you set InstanceChargeType to PrePaid. Valid values:
#
# * true
# * false (default)
self.auto_renew = auto_renew
# The billing method of the ECP instance. Valid values:
#
# * PrePaid: subscription
# * PostPaid (default): pay-as-you-go
self.charge_type = charge_type
# The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see How to ensure idempotence.
self.client_token = client_token
# The description of the ECP instance. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.
self.description = description
# The bandwidth of the elastic IP address (EIP). Valid values: 1 to 200. If you specify this parameter, an ECP instance that uses an EIP with specified bandwidth is automatically created and associated with the ECP instance. If the ECP instance is released, the EIP is also released.
self.eip_bandwidth = eip_bandwidth
# The ID of the image.
self.image_id = image_id
# The name of the ECP instance. The name must be 2 to 128 characters in length. It must start with a letter but cannot start with `http://` or `https://`. It can contain letters, digits, colons (:), underscores (\_), periods (.), and hyphens (-). The default value of this parameter is the value of the InstanceId parameter.
self.instance_name = instance_name
# The specifications of the ECP instance.
self.instance_type = instance_type
# The name of the key pair that you want to use to connect to the instance. You can call the ImportKeyPair operation to import a key pair for cloud phones.
self.key_pair_name = key_pair_name
self.owner_account = owner_account
self.owner_id = owner_id
# The subscription duration. Default value: 1.
#
# * Valid values if you set PeriodUnit to Month: 1, 2, 3, and 6.
# * Valid values if you set PeriodUnit to Year: 1, 2, 3, 4, and 5.
self.period = period
# The unit of the subscription duration. Valid values:
#
# * Year
# * Month (default)
self.period_unit = period_unit
# The private IP address of the cloud phone. When you configure a private IP address for an ECP instance, you must select an idle CIDR block from the CIDR blocks of the vSwitch (VSwitchId). When you specify this parameter, take note of the following items: After you specify the PrivateIpAddress parameter, you must set Amount to 1, which indicates that a cloud phone with a specific private IP address is created.
self.private_ip_address = private_ip_address
# The ID of the region.
self.region_id = region_id
# The resolution that you want to select for the ECP instance. You can query the resolutions that are supported by the current instance by calling the DescribeInstanceTypes operation and select an appropriate resolution.
self.resolution = resolution
self.resource_owner_account = resource_owner_account
# The ID of the security group that the ECP instance uses. The security group is the same as that of the Elastic Compute Service (ECS) instance that you use.
self.security_group_id = security_group_id
# The tags of the ECP instance.
self.tag = tag
# The ID of the vSwitch.
self.v_switch_id = v_switch_id
def validate(self):
if self.tag:
for k in self.tag:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.amount is not None:
result['Amount'] = self.amount
if self.auto_pay is not None:
result['AutoPay'] = self.auto_pay
if self.auto_renew is not None:
result['AutoRenew'] = self.auto_renew
if self.charge_type is not None:
result['ChargeType'] = self.charge_type
if self.client_token is not None:
result['ClientToken'] = self.client_token
if self.description is not None:
result['Description'] = self.description
if self.eip_bandwidth is not None:
result['EipBandwidth'] = self.eip_bandwidth
if self.image_id is not None:
result['ImageId'] = self.image_id
if self.instance_name is not None:
result['InstanceName'] = self.instance_name
if self.instance_type is not None:
result['InstanceType'] = self.instance_type
if self.key_pair_name is not None:
result['KeyPairName'] = self.key_pair_name
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.period is not None:
result['Period'] = self.period
if self.period_unit is not None:
result['PeriodUnit'] = self.period_unit
if self.private_ip_address is not None:
result['PrivateIpAddress'] = self.private_ip_address
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resolution is not None:
result['Resolution'] = self.resolution
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.security_group_id is not None:
result['SecurityGroupId'] = self.security_group_id
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.v_switch_id is not None:
result['VSwitchId'] = self.v_switch_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Amount') is not None:
self.amount = m.get('Amount')
if m.get('AutoPay') is not None:
self.auto_pay = m.get('AutoPay')
if m.get('AutoRenew') is not None:
self.auto_renew = m.get('AutoRenew')
if m.get('ChargeType') is not None:
self.charge_type = m.get('ChargeType')
if m.get('ClientToken') is not None:
self.client_token = m.get('ClientToken')
if m.get('Description') is not None:
self.description = m.get('Description')
if m.get('EipBandwidth') is not None:
self.eip_bandwidth = m.get('EipBandwidth')
if m.get('ImageId') is not None:
self.image_id = m.get('ImageId')
if m.get('InstanceName') is not None:
self.instance_name = m.get('InstanceName')
if m.get('InstanceType') is not None:
self.instance_type = m.get('InstanceType')
if m.get('KeyPairName') is not None:
self.key_pair_name = m.get('KeyPairName')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('Period') is not None:
self.period = m.get('Period')
if m.get('PeriodUnit') is not None:
self.period_unit = m.get('PeriodUnit')
if m.get('PrivateIpAddress') is not None:
self.private_ip_address = m.get('PrivateIpAddress')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('Resolution') is not None:
self.resolution = m.get('Resolution')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('SecurityGroupId') is not None:
self.security_group_id = m.get('SecurityGroupId')
self.tag = []
if m.get('Tag') is not None:
for k in m.get('Tag'):
temp_model = RunInstancesRequestTag()
self.tag.append(temp_model.from_map(k))
if m.get('VSwitchId') is not None:
self.v_switch_id = m.get('VSwitchId')
return self
class RunInstancesResponseBodyInstanceIds(TeaModel):
def __init__(
self,
instance_id: List[str] = None,
):
self.instance_id = instance_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_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('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class RunInstancesResponseBody(TeaModel):
def __init__(
self,
instance_ids: RunInstancesResponseBodyInstanceIds = None,
order_id: str = None,
request_id: str = None,
trade_price: float = None,
):
# The IDs of the ECP instances.
self.instance_ids = instance_ids
# The ID of the order.
self.order_id = order_id
# The ID of the request.
self.request_id = request_id
# The price of the ECP resource.
self.trade_price = trade_price
def validate(self):
if self.instance_ids:
self.instance_ids.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.instance_ids is not None:
result['InstanceIds'] = self.instance_ids.to_map()
if self.order_id is not None:
result['OrderId'] = self.order_id
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.trade_price is not None:
result['TradePrice'] = self.trade_price
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('InstanceIds') is not None:
temp_model = RunInstancesResponseBodyInstanceIds()
self.instance_ids = temp_model.from_map(m['InstanceIds'])
if m.get('OrderId') is not None:
self.order_id = m.get('OrderId')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TradePrice') is not None:
self.trade_price = m.get('TradePrice')
return self
class RunInstancesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RunInstancesResponseBody = 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 = RunInstancesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SendFileRequest(TeaModel):
def __init__(
self,
instance_id: List[str] = None,
oss_bucket: str = None,
oss_object: str = None,
owner_account: str = None,
owner_id: int = None,
path: str = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The IDs of the instances on which you want to run the command. Valid values of N: 1 to 10.
self.instance_id = instance_id
# The Object Storage Service (OSS) bucket to which you want to upload the file.
#
# > Before you import an APK file to the OSS bucket for the first time, add a Resource Access Management (RAM) policy. Otherwise, NoSetRoletoECSServiceAcount appears.
self.oss_bucket = oss_bucket
# The name (key) of the file that you want to use as an OSS object.
self.oss_object = oss_object
self.owner_account = owner_account
self.owner_id = owner_id
# The directory of the file that you want to pull in the cloud phone.
self.path = path
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_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_id is not None:
result['InstanceId'] = self.instance_id
if self.oss_bucket is not None:
result['OssBucket'] = self.oss_bucket
if self.oss_object is not None:
result['OssObject'] = self.oss_object
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.path is not None:
result['Path'] = self.path
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
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('OssBucket') is not None:
self.oss_bucket = m.get('OssBucket')
if m.get('OssObject') is not None:
self.oss_object = m.get('OssObject')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('Path') is not None:
self.path = m.get('Path')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class SendFileResponseBodyTaskId(TeaModel):
def __init__(
self,
task_id: List[str] = None,
):
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.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('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class SendFileResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
task_id: SendFileResponseBodyTaskId = None,
):
# The request ID.
self.request_id = request_id
# The task IDs. Valid values of N: 1 to 100.
self.task_id = task_id
def validate(self):
if self.task_id:
self.task_id.validate()
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.task_id is not None:
result['TaskId'] = self.task_id.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TaskId') is not None:
temp_model = SendFileResponseBodyTaskId()
self.task_id = temp_model.from_map(m['TaskId'])
return self
class SendFileResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: SendFileResponseBody = 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 = SendFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class StartInstancesRequest(TeaModel):
def __init__(
self,
instance_id: List[str] = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The instance IDs.
self.instance_id = instance_id
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_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_id is not None:
result['InstanceId'] = self.instance_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
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('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class StartInstancesResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class StartInstancesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: StartInstancesResponseBody = 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 = StartInstancesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class StopInstancesRequest(TeaModel):
def __init__(
self,
force: bool = None,
instance_id: List[str] = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# Specifies whether to forcefully stop the instance. Valid values:
#
# * true. If you set this parameter to true, cache data that is not written to storage in the instance will be lost after you call this operation, which is similar to the effect of a power-off action.
# * false (default)
self.force = force
# The instance IDs. Valid values of N: 1 to 100.
self.instance_id = instance_id
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.force is not None:
result['Force'] = self.force
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Force') is not None:
self.force = m.get('Force')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class StopInstancesResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class StopInstancesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: StopInstancesResponseBody = 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 = StopInstancesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class TagResourcesRequestTag(TeaModel):
def __init__(
self,
key: str = None,
value: str = None,
):
# The tag key.
self.key = key
# The tag value.
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 TagResourcesRequest(TeaModel):
def __init__(
self,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_id: List[str] = None,
resource_owner_account: str = None,
resource_type: str = None,
tag: List[TagResourcesRequestTag] = None,
):
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
# The resource IDs. You can specify up to 50 resources.
self.resource_id = resource_id
self.resource_owner_account = resource_owner_account
# The resource type. Valid value:
#
# * instance: Elastic Cloud Phone (ECP) instance
self.resource_type = resource_type
# The tags. You can specify up to 20 tags.
self.tag = tag
def validate(self):
if self.tag:
for k in self.tag:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_id is not None:
result['ResourceId'] = self.resource_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
result['Tag'] = []
if self.tag is not None:
for k in self.tag:
result['Tag'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceId') is not None:
self.resource_id = m.get('ResourceId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
self.tag = []
if m.get('Tag') is not None:
for k in m.get('Tag'):
temp_model = TagResourcesRequestTag()
self.tag.append(temp_model.from_map(k))
return self
class TagResourcesResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class TagResourcesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: TagResourcesResponseBody = 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 = TagResourcesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UninstallApplicationRequest(TeaModel):
def __init__(
self,
instance_id: List[str] = None,
owner_account: str = None,
owner_id: int = None,
package_name: str = None,
region_id: str = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The IDs of the instances on which you want to run the command. Valid values of N: 1 to 10.
self.instance_id = instance_id
self.owner_account = owner_account
self.owner_id = owner_id
# The name of the application that you want to uninstall. The name can be up to 1024 bytes in length and can contain only letters, digits, underscores (\_), periods (.), slashes (/), colons (:), and hyphens (-).
self.package_name = package_name
# The region ID.
self.region_id = region_id
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_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_id is not None:
result['InstanceId'] = self.instance_id
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.package_name is not None:
result['PackageName'] = self.package_name
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
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('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PackageName') is not None:
self.package_name = m.get('PackageName')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class UninstallApplicationResponseBodyTaskId(TeaModel):
def __init__(
self,
task_id: List[str] = None,
):
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.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('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class UninstallApplicationResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
task_id: UninstallApplicationResponseBodyTaskId = None,
):
# The request ID.
self.request_id = request_id
# The task ID.
self.task_id = task_id
def validate(self):
if self.task_id:
self.task_id.validate()
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.task_id is not None:
result['TaskId'] = self.task_id.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TaskId') is not None:
temp_model = UninstallApplicationResponseBodyTaskId()
self.task_id = temp_model.from_map(m['TaskId'])
return self
class UninstallApplicationResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UninstallApplicationResponseBody = 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 = UninstallApplicationResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UntagResourcesRequest(TeaModel):
def __init__(
self,
all: bool = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resource_id: List[str] = None,
resource_owner_account: str = None,
resource_type: str = None,
tag_key: List[str] = None,
):
# Specifies whether to delete all tags. This parameter takes effect only when the TagKey.N parameter is not specified. Valid values: true and false. Default value: false.
self.all = all
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
# The resource IDs. You can specify up to 50 resources.
self.resource_id = resource_id
self.resource_owner_account = resource_owner_account
# The resource type. Valid value:
#
# * instance: Elastic Cloud Phone (ECP) instance
self.resource_type = resource_type
# The tag keys. You can specify up to 20 tag keys.
self.tag_key = tag_key
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.all is not None:
result['All'] = self.all
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resource_id is not None:
result['ResourceId'] = self.resource_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
if self.tag_key is not None:
result['TagKey'] = self.tag_key
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('All') is not None:
self.all = m.get('All')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('ResourceId') is not None:
self.resource_id = m.get('ResourceId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
if m.get('TagKey') is not None:
self.tag_key = m.get('TagKey')
return self
class UntagResourcesResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class UntagResourcesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UntagResourcesResponseBody = 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 = UntagResourcesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UpdateImageAttributeRequest(TeaModel):
def __init__(
self,
add_account: List[str] = None,
description: str = None,
image_id: str = None,
image_name: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
remove_account: List[str] = None,
resource_owner_account: str = None,
resource_owner_id: int = None,
):
# The IDs of the Alibaba Cloud accounts that are authorized to share images. You can specify up to 10 Alibaba Cloud accounts.
self.add_account = add_account
# The description of the custom image. The description must be 2 to 256 characters in length. It cannot start with `http://` or `https://`. By default, this parameter is empty, which indicates that the original description is retained.
self.description = description
# The image ID.
self.image_id = image_id
# The name of the custom image. The name must be 2 to 128 characters in length. The name can contain letters, digits, colons (:), underscores (\_), and hyphens (-). It cannot start with `http://` or `https://`. By default, this parameter is empty, which indicates that the original name is retained.
self.image_name = image_name
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
# The IDs of the Alibaba Cloud accounts from which you want to revoke image sharing permissions. You can specify up to 10 Alibaba Cloud accounts.
self.remove_account = remove_account
self.resource_owner_account = resource_owner_account
self.resource_owner_id = resource_owner_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.add_account is not None:
result['AddAccount'] = self.add_account
if self.description is not None:
result['Description'] = self.description
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.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.remove_account is not None:
result['RemoveAccount'] = self.remove_account
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AddAccount') is not None:
self.add_account = m.get('AddAccount')
if m.get('Description') is not None:
self.description = m.get('Description')
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('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('RemoveAccount') is not None:
self.remove_account = m.get('RemoveAccount')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class UpdateImageAttributeResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class UpdateImageAttributeResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UpdateImageAttributeResponseBody = 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 = UpdateImageAttributeResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UpdateInstanceAttributeRequestTag(TeaModel):
def __init__(
self,
key: str = None,
value: str = None,
):
# The tag key of the instance. Valid values of N: 1 to 20.
self.key = key
# The tag value of the instance. Valid values of N: 1 to 20.
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 UpdateInstanceAttributeRequest(TeaModel):
def __init__(
self,
description: str = None,
instance_id: str = None,
instance_name: str = None,
key_pair_name: str = None,
owner_account: str = None,
owner_id: int = None,
region_id: str = None,
resolution: str = None,
resource_owner_account: str = None,
tag: List[UpdateInstanceAttributeRequestTag] = None,
vnc_password: str = None,
):
# The instance description. The description must be 2 to 256 characters in length and cannot start with `http://` or `https://`.
self.description = description
# The instance ID.
self.instance_id = instance_id
# The instance name. The name must be 2 to 128 characters in length. It must start with a letter and cannot start with `http://` or `https://`. The name can contain letters, digits, colons (:), underscores (\_), and hyphens (-).
self.instance_name = instance_name
# The name of the key pair that is used to connect to the instance. To improve the security of an instance, we recommend that you use a key pair to connect to the instance.
self.key_pair_name = key_pair_name
self.owner_account = owner_account
self.owner_id = owner_id
# The region ID.
self.region_id = region_id
# The instance resolution.
self.resolution = resolution
self.resource_owner_account = resource_owner_account
# Details of tags.
self.tag = tag
# The VNC password of the instance. The password must be six characters in length and can contain only uppercase letters, lowercase letters, and digits.
self.vnc_password = vnc_password
def validate(self):
if self.tag:
for k in self.tag:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.description is not None:
result['Description'] = self.description
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.key_pair_name is not None:
result['KeyPairName'] = self.key_pair_name
if self.owner_account is not None:
result['OwnerAccount'] = self.owner_account
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.resolution is not None:
result['Resolution'] = self.resolution
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
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.vnc_password is not None:
result['VncPassword'] = self.vnc_password
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Description') is not None:
self.description = m.get('Description')
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('KeyPairName') is not None:
self.key_pair_name = m.get('KeyPairName')
if m.get('OwnerAccount') is not None:
self.owner_account = m.get('OwnerAccount')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('Resolution') is not None:
self.resolution = m.get('Resolution')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
self.tag = []
if m.get('Tag') is not None:
for k in m.get('Tag'):
temp_model = UpdateInstanceAttributeRequestTag()
self.tag.append(temp_model.from_map(k))
if m.get('VncPassword') is not None:
self.vnc_password = m.get('VncPassword')
return self
class UpdateInstanceAttributeResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID.
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
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class UpdateInstanceAttributeResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UpdateInstanceAttributeResponseBody = 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 = UpdateInstanceAttributeResponseBody()
self.body = temp_model.from_map(m['body'])
return self