eds-user-20210308/alibabacloud_eds_user20210308/models.py (5,976 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 List, Dict, Any
class GroupResources(TeaModel):
def __init__(
self,
region: str = None,
resource_id: str = None,
resource_type: str = None,
):
self.region = region
self.resource_id = resource_id
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.region is not None:
result['Region'] = self.region
if self.resource_id is not None:
result['ResourceId'] = self.resource_id
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('Region') is not None:
self.region = m.get('Region')
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')
return self
class ThirdAppOidcSsoConfigEndpoints(TeaModel):
def __init__(
self,
authorization_endpoint: str = None,
discovery_endpoint: str = None,
guest_authorization_endpoint: str = None,
issuer: str = None,
jwks_endpoint: str = None,
logout_endpoint: str = None,
revoke_endpoint: str = None,
token_endpoint: str = None,
userinfo_endpoint: str = None,
):
self.authorization_endpoint = authorization_endpoint
self.discovery_endpoint = discovery_endpoint
self.guest_authorization_endpoint = guest_authorization_endpoint
self.issuer = issuer
self.jwks_endpoint = jwks_endpoint
self.logout_endpoint = logout_endpoint
self.revoke_endpoint = revoke_endpoint
self.token_endpoint = token_endpoint
self.userinfo_endpoint = userinfo_endpoint
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.authorization_endpoint is not None:
result['AuthorizationEndpoint'] = self.authorization_endpoint
if self.discovery_endpoint is not None:
result['DiscoveryEndpoint'] = self.discovery_endpoint
if self.guest_authorization_endpoint is not None:
result['GuestAuthorizationEndpoint'] = self.guest_authorization_endpoint
if self.issuer is not None:
result['Issuer'] = self.issuer
if self.jwks_endpoint is not None:
result['JwksEndpoint'] = self.jwks_endpoint
if self.logout_endpoint is not None:
result['LogoutEndpoint'] = self.logout_endpoint
if self.revoke_endpoint is not None:
result['RevokeEndpoint'] = self.revoke_endpoint
if self.token_endpoint is not None:
result['TokenEndpoint'] = self.token_endpoint
if self.userinfo_endpoint is not None:
result['UserinfoEndpoint'] = self.userinfo_endpoint
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AuthorizationEndpoint') is not None:
self.authorization_endpoint = m.get('AuthorizationEndpoint')
if m.get('DiscoveryEndpoint') is not None:
self.discovery_endpoint = m.get('DiscoveryEndpoint')
if m.get('GuestAuthorizationEndpoint') is not None:
self.guest_authorization_endpoint = m.get('GuestAuthorizationEndpoint')
if m.get('Issuer') is not None:
self.issuer = m.get('Issuer')
if m.get('JwksEndpoint') is not None:
self.jwks_endpoint = m.get('JwksEndpoint')
if m.get('LogoutEndpoint') is not None:
self.logout_endpoint = m.get('LogoutEndpoint')
if m.get('RevokeEndpoint') is not None:
self.revoke_endpoint = m.get('RevokeEndpoint')
if m.get('TokenEndpoint') is not None:
self.token_endpoint = m.get('TokenEndpoint')
if m.get('UserinfoEndpoint') is not None:
self.userinfo_endpoint = m.get('UserinfoEndpoint')
return self
class ThirdAppOidcSsoConfig(TeaModel):
def __init__(
self,
access_token_effective_time: int = None,
code_effective_time: int = None,
enable_auth_login: bool = None,
endpoints: ThirdAppOidcSsoConfigEndpoints = None,
grant_scopes: List[str] = None,
grant_types: List[str] = None,
id_token_algorithm_type: str = None,
id_token_effective_time: int = None,
redirect_uris: List[str] = None,
refresh_token_effective: int = None,
):
self.access_token_effective_time = access_token_effective_time
self.code_effective_time = code_effective_time
self.enable_auth_login = enable_auth_login
self.endpoints = endpoints
self.grant_scopes = grant_scopes
self.grant_types = grant_types
self.id_token_algorithm_type = id_token_algorithm_type
self.id_token_effective_time = id_token_effective_time
self.redirect_uris = redirect_uris
self.refresh_token_effective = refresh_token_effective
def validate(self):
if self.endpoints:
self.endpoints.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.access_token_effective_time is not None:
result['AccessTokenEffectiveTime'] = self.access_token_effective_time
if self.code_effective_time is not None:
result['CodeEffectiveTime'] = self.code_effective_time
if self.enable_auth_login is not None:
result['EnableAuthLogin'] = self.enable_auth_login
if self.endpoints is not None:
result['Endpoints'] = self.endpoints.to_map()
if self.grant_scopes is not None:
result['GrantScopes'] = self.grant_scopes
if self.grant_types is not None:
result['GrantTypes'] = self.grant_types
if self.id_token_algorithm_type is not None:
result['IdTokenAlgorithmType'] = self.id_token_algorithm_type
if self.id_token_effective_time is not None:
result['IdTokenEffectiveTime'] = self.id_token_effective_time
if self.redirect_uris is not None:
result['RedirectUris'] = self.redirect_uris
if self.refresh_token_effective is not None:
result['RefreshTokenEffective'] = self.refresh_token_effective
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AccessTokenEffectiveTime') is not None:
self.access_token_effective_time = m.get('AccessTokenEffectiveTime')
if m.get('CodeEffectiveTime') is not None:
self.code_effective_time = m.get('CodeEffectiveTime')
if m.get('EnableAuthLogin') is not None:
self.enable_auth_login = m.get('EnableAuthLogin')
if m.get('Endpoints') is not None:
temp_model = ThirdAppOidcSsoConfigEndpoints()
self.endpoints = temp_model.from_map(m['Endpoints'])
if m.get('GrantScopes') is not None:
self.grant_scopes = m.get('GrantScopes')
if m.get('GrantTypes') is not None:
self.grant_types = m.get('GrantTypes')
if m.get('IdTokenAlgorithmType') is not None:
self.id_token_algorithm_type = m.get('IdTokenAlgorithmType')
if m.get('IdTokenEffectiveTime') is not None:
self.id_token_effective_time = m.get('IdTokenEffectiveTime')
if m.get('RedirectUris') is not None:
self.redirect_uris = m.get('RedirectUris')
if m.get('RefreshTokenEffective') is not None:
self.refresh_token_effective = m.get('RefreshTokenEffective')
return self
class ThirdAppSecrets(TeaModel):
def __init__(
self,
enable: bool = None,
secret: str = None,
):
self.enable = enable
self.secret = secret
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.enable is not None:
result['Enable'] = self.enable
if self.secret is not None:
result['Secret'] = self.secret
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Enable') is not None:
self.enable = m.get('Enable')
if m.get('Secret') is not None:
self.secret = m.get('Secret')
return self
class ThirdApp(TeaModel):
def __init__(
self,
app_key: str = None,
name: str = None,
oidc_sso_config: ThirdAppOidcSsoConfig = None,
secrets: List[ThirdAppSecrets] = None,
):
self.app_key = app_key
self.name = name
self.oidc_sso_config = oidc_sso_config
self.secrets = secrets
def validate(self):
if self.oidc_sso_config:
self.oidc_sso_config.validate()
if self.secrets:
for k in self.secrets:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.app_key is not None:
result['AppKey'] = self.app_key
if self.name is not None:
result['Name'] = self.name
if self.oidc_sso_config is not None:
result['OidcSsoConfig'] = self.oidc_sso_config.to_map()
result['Secrets'] = []
if self.secrets is not None:
for k in self.secrets:
result['Secrets'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AppKey') is not None:
self.app_key = m.get('AppKey')
if m.get('Name') is not None:
self.name = m.get('Name')
if m.get('OidcSsoConfig') is not None:
temp_model = ThirdAppOidcSsoConfig()
self.oidc_sso_config = temp_model.from_map(m['OidcSsoConfig'])
self.secrets = []
if m.get('Secrets') is not None:
for k in m.get('Secrets'):
temp_model = ThirdAppSecrets()
self.secrets.append(temp_model.from_map(k))
return self
class WaIdPermissions(TeaModel):
def __init__(
self,
code: str = None,
is_basic_child: bool = None,
name: str = None,
sub_permissions: List['WaIdPermissions'] = None,
type: str = None,
):
self.code = code
self.is_basic_child = is_basic_child
self.name = name
self.sub_permissions = sub_permissions
self.type = type
def validate(self):
if self.sub_permissions:
for k in self.sub_permissions:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.is_basic_child is not None:
result['IsBasicChild'] = self.is_basic_child
if self.name is not None:
result['Name'] = self.name
result['SubPermissions'] = []
if self.sub_permissions is not None:
for k in self.sub_permissions:
result['SubPermissions'].append(k.to_map() if k else None)
if self.type is not None:
result['Type'] = self.type
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('IsBasicChild') is not None:
self.is_basic_child = m.get('IsBasicChild')
if m.get('Name') is not None:
self.name = m.get('Name')
self.sub_permissions = []
if m.get('SubPermissions') is not None:
for k in m.get('SubPermissions'):
temp_model = WaIdPermissions()
self.sub_permissions.append(temp_model.from_map(k))
if m.get('Type') is not None:
self.type = m.get('Type')
return self
class BatchSetDesktopManagerRequest(TeaModel):
def __init__(
self,
is_desktop_manager: str = None,
users: List[str] = None,
):
self.is_desktop_manager = is_desktop_manager
# This parameter is required.
self.users = users
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.is_desktop_manager is not None:
result['IsDesktopManager'] = self.is_desktop_manager
if self.users is not None:
result['Users'] = self.users
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('IsDesktopManager') is not None:
self.is_desktop_manager = m.get('IsDesktopManager')
if m.get('Users') is not None:
self.users = m.get('Users')
return self
class BatchSetDesktopManagerResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
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 BatchSetDesktopManagerResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: BatchSetDesktopManagerResponseBody = 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 = BatchSetDesktopManagerResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ChangeUserPasswordRequest(TeaModel):
def __init__(
self,
end_user_id: str = None,
new_password: str = None,
):
self.end_user_id = end_user_id
self.new_password = new_password
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.new_password is not None:
result['NewPassword'] = self.new_password
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('NewPassword') is not None:
self.new_password = m.get('NewPassword')
return self
class ChangeUserPasswordResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
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 ChangeUserPasswordResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ChangeUserPasswordResponseBody = 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 = ChangeUserPasswordResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CheckUsedPropertyRequest(TeaModel):
def __init__(
self,
property_id: int = None,
):
# The ID of the property. You can call the [ListProperty](https://help.aliyun.com/document_detail/410890.html) operation to query the property ID.
#
# This parameter is required.
self.property_id = property_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
return self
class CheckUsedPropertyResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
use_count: int = None,
):
# The ID of the request.
self.request_id = request_id
# The number of convenience users that are associated with the property.
self.use_count = use_count
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.use_count is not None:
result['UseCount'] = self.use_count
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('UseCount') is not None:
self.use_count = m.get('UseCount')
return self
class CheckUsedPropertyResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CheckUsedPropertyResponseBody = 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 = CheckUsedPropertyResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CheckUsedPropertyValueRequest(TeaModel):
def __init__(
self,
property_id: int = None,
property_value_id: int = None,
):
# The property ID. You can call the [ListProperty](~~ListProperty~~) operation to query property ID.
#
# This parameter is required.
self.property_id = property_id
# The ID of the property value. You can call the [ListProperty](~~ListProperty~~) operation to query the ID of the property value.
#
# This parameter is required.
self.property_value_id = property_value_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_value_id is not None:
result['PropertyValueId'] = self.property_value_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyValueId') is not None:
self.property_value_id = m.get('PropertyValueId')
return self
class CheckUsedPropertyValueResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
use_count: int = None,
):
# The ID of the request.
self.request_id = request_id
# The number of convenience accounts that are associated with the specified custom property value.
self.use_count = use_count
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.use_count is not None:
result['UseCount'] = self.use_count
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('UseCount') is not None:
self.use_count = m.get('UseCount')
return self
class CheckUsedPropertyValueResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CheckUsedPropertyValueResponseBody = 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 = CheckUsedPropertyValueResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CreateOrgRequest(TeaModel):
def __init__(
self,
org_name: str = None,
parent_org_id: str = None,
):
# This parameter is required.
self.org_name = org_name
# This parameter is required.
self.parent_org_id = parent_org_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.org_name is not None:
result['OrgName'] = self.org_name
if self.parent_org_id is not None:
result['ParentOrgId'] = self.parent_org_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OrgName') is not None:
self.org_name = m.get('OrgName')
if m.get('ParentOrgId') is not None:
self.parent_org_id = m.get('ParentOrgId')
return self
class CreateOrgResponseBody(TeaModel):
def __init__(
self,
org_id: str = None,
request_id: str = None,
):
self.org_id = org_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.org_id is not None:
result['OrgId'] = self.org_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('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CreateOrgResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CreateOrgResponseBody = 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 = CreateOrgResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CreatePropertyRequest(TeaModel):
def __init__(
self,
property_key: str = None,
property_values: List[str] = None,
):
# The property name.
#
# This parameter is required.
self.property_key = property_key
# The values of the property. You can specify up to 50 values for a property.
self.property_values = property_values
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_key is not None:
result['PropertyKey'] = self.property_key
if self.property_values is not None:
result['PropertyValues'] = self.property_values
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyKey') is not None:
self.property_key = m.get('PropertyKey')
if m.get('PropertyValues') is not None:
self.property_values = m.get('PropertyValues')
return self
class CreatePropertyResponseBodyCreateResultSavePropertyValueModelFailedPropertyValues(TeaModel):
def __init__(
self,
error_code: str = None,
error_message: str = None,
property_id: int = None,
property_value: str = None,
):
# The error code.
self.error_code = error_code
# The error message.
self.error_message = error_message
# The ID of the property value.
self.property_id = property_id
# The value of the property.
self.property_value = property_value
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.error_code is not None:
result['ErrorCode'] = self.error_code
if self.error_message is not None:
result['ErrorMessage'] = self.error_message
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_value is not None:
result['PropertyValue'] = self.property_value
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ErrorCode') is not None:
self.error_code = m.get('ErrorCode')
if m.get('ErrorMessage') is not None:
self.error_message = m.get('ErrorMessage')
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyValue') is not None:
self.property_value = m.get('PropertyValue')
return self
class CreatePropertyResponseBodyCreateResultSavePropertyValueModelSavePropertyValues(TeaModel):
def __init__(
self,
property_value: str = None,
property_value_id: int = None,
):
# The value of the property.
self.property_value = property_value
# The ID of the property value.
self.property_value_id = property_value_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_value is not None:
result['PropertyValue'] = self.property_value
if self.property_value_id is not None:
result['PropertyValueId'] = self.property_value_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyValue') is not None:
self.property_value = m.get('PropertyValue')
if m.get('PropertyValueId') is not None:
self.property_value_id = m.get('PropertyValueId')
return self
class CreatePropertyResponseBodyCreateResultSavePropertyValueModel(TeaModel):
def __init__(
self,
failed_property_values: List[CreatePropertyResponseBodyCreateResultSavePropertyValueModelFailedPropertyValues] = None,
save_property_values: List[CreatePropertyResponseBodyCreateResultSavePropertyValueModelSavePropertyValues] = None,
):
# The property values that failed to be created.
self.failed_property_values = failed_property_values
# Details of the property values that were created.
self.save_property_values = save_property_values
def validate(self):
if self.failed_property_values:
for k in self.failed_property_values:
if k:
k.validate()
if self.save_property_values:
for k in self.save_property_values:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['FailedPropertyValues'] = []
if self.failed_property_values is not None:
for k in self.failed_property_values:
result['FailedPropertyValues'].append(k.to_map() if k else None)
result['SavePropertyValues'] = []
if self.save_property_values is not None:
for k in self.save_property_values:
result['SavePropertyValues'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.failed_property_values = []
if m.get('FailedPropertyValues') is not None:
for k in m.get('FailedPropertyValues'):
temp_model = CreatePropertyResponseBodyCreateResultSavePropertyValueModelFailedPropertyValues()
self.failed_property_values.append(temp_model.from_map(k))
self.save_property_values = []
if m.get('SavePropertyValues') is not None:
for k in m.get('SavePropertyValues'):
temp_model = CreatePropertyResponseBodyCreateResultSavePropertyValueModelSavePropertyValues()
self.save_property_values.append(temp_model.from_map(k))
return self
class CreatePropertyResponseBodyCreateResult(TeaModel):
def __init__(
self,
property_id: int = None,
property_key: str = None,
save_property_value_model: CreatePropertyResponseBodyCreateResultSavePropertyValueModel = None,
):
# The ID of the property.
self.property_id = property_id
# The name of the property.
self.property_key = property_key
# The result of creating the property value.
self.save_property_value_model = save_property_value_model
def validate(self):
if self.save_property_value_model:
self.save_property_value_model.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_key is not None:
result['PropertyKey'] = self.property_key
if self.save_property_value_model is not None:
result['SavePropertyValueModel'] = self.save_property_value_model.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyKey') is not None:
self.property_key = m.get('PropertyKey')
if m.get('SavePropertyValueModel') is not None:
temp_model = CreatePropertyResponseBodyCreateResultSavePropertyValueModel()
self.save_property_value_model = temp_model.from_map(m['SavePropertyValueModel'])
return self
class CreatePropertyResponseBody(TeaModel):
def __init__(
self,
create_result: CreatePropertyResponseBodyCreateResult = None,
request_id: str = None,
):
# The result of creating the property.
self.create_result = create_result
# The ID of the request.
self.request_id = request_id
def validate(self):
if self.create_result:
self.create_result.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.create_result is not None:
result['CreateResult'] = self.create_result.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('CreateResult') is not None:
temp_model = CreatePropertyResponseBodyCreateResult()
self.create_result = temp_model.from_map(m['CreateResult'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CreatePropertyResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CreatePropertyResponseBody = 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 = CreatePropertyResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CreateResourceGroupRequest(TeaModel):
def __init__(
self,
is_resource_group_with_office_site: int = None,
platform: str = None,
resource_group_name: str = None,
):
self.is_resource_group_with_office_site = is_resource_group_with_office_site
self.platform = platform
self.resource_group_name = resource_group_name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.is_resource_group_with_office_site is not None:
result['IsResourceGroupWithOfficeSite'] = self.is_resource_group_with_office_site
if self.platform is not None:
result['Platform'] = self.platform
if self.resource_group_name is not None:
result['ResourceGroupName'] = self.resource_group_name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('IsResourceGroupWithOfficeSite') is not None:
self.is_resource_group_with_office_site = m.get('IsResourceGroupWithOfficeSite')
if m.get('Platform') is not None:
self.platform = m.get('Platform')
if m.get('ResourceGroupName') is not None:
self.resource_group_name = m.get('ResourceGroupName')
return self
class CreateResourceGroupResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
resource_group_id: str = None,
):
self.request_id = request_id
self.resource_group_id = resource_group_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.resource_group_id is not None:
result['ResourceGroupId'] = self.resource_group_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('ResourceGroupId') is not None:
self.resource_group_id = m.get('ResourceGroupId')
return self
class CreateResourceGroupResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CreateResourceGroupResponseBody = 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 = CreateResourceGroupResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CreateUsersRequestUsers(TeaModel):
def __init__(
self,
email: str = None,
end_user_id: str = None,
org_id: str = None,
owner_type: str = None,
password: str = None,
phone: str = None,
real_nick_name: str = None,
remark: str = None,
):
# The email address of the convenience user. The email address is used to receive notifications about events such as desktop assignment. You must specify an email address or a mobile number to receive notifications.
self.email = email
# The username of the convenience user. The name can contain lowercase letters, digits, and underscores (_), and must be 3 to 24 characters in length.
#
# This parameter is required.
self.end_user_id = end_user_id
# The organization to which the convenience user belongs.
self.org_id = org_id
# The type of the account ownership.
#
# Valid values:
#
# * CreateFromManager: administrator-activated
# * Normal: user-activated
self.owner_type = owner_type
# The user password.
#
# > The password must be at least 10 characters in length and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters (excluding spaces).
self.password = password
# Mobile numbers are not supported on the international site (alibabacloud.com).
self.phone = phone
# The display name of the end user.
self.real_nick_name = real_nick_name
# The remarks on the convenience user.
self.remark = remark
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.email is not None:
result['Email'] = self.email
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.org_id is not None:
result['OrgId'] = self.org_id
if self.owner_type is not None:
result['OwnerType'] = self.owner_type
if self.password is not None:
result['Password'] = self.password
if self.phone is not None:
result['Phone'] = self.phone
if self.real_nick_name is not None:
result['RealNickName'] = self.real_nick_name
if self.remark is not None:
result['Remark'] = self.remark
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Email') is not None:
self.email = m.get('Email')
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('OwnerType') is not None:
self.owner_type = m.get('OwnerType')
if m.get('Password') is not None:
self.password = m.get('Password')
if m.get('Phone') is not None:
self.phone = m.get('Phone')
if m.get('RealNickName') is not None:
self.real_nick_name = m.get('RealNickName')
if m.get('Remark') is not None:
self.remark = m.get('Remark')
return self
class CreateUsersRequest(TeaModel):
def __init__(
self,
auto_lock_time: str = None,
is_local_admin: bool = None,
password: str = None,
password_expire_days: str = None,
users: List[CreateUsersRequestUsers] = None,
):
# The date on which the convenience users are automatically locked.
self.auto_lock_time = auto_lock_time
self.is_local_admin = is_local_admin
# The initial password. If this parameter is left empty, an email for password reset is sent to the specified email address.
self.password = password
self.password_expire_days = password_expire_days
# The information about the convenience user.
#
# This parameter is required.
self.users = users
def validate(self):
if self.users:
for k in self.users:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.auto_lock_time is not None:
result['AutoLockTime'] = self.auto_lock_time
if self.is_local_admin is not None:
result['IsLocalAdmin'] = self.is_local_admin
if self.password is not None:
result['Password'] = self.password
if self.password_expire_days is not None:
result['PasswordExpireDays'] = self.password_expire_days
result['Users'] = []
if self.users is not None:
for k in self.users:
result['Users'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AutoLockTime') is not None:
self.auto_lock_time = m.get('AutoLockTime')
if m.get('IsLocalAdmin') is not None:
self.is_local_admin = m.get('IsLocalAdmin')
if m.get('Password') is not None:
self.password = m.get('Password')
if m.get('PasswordExpireDays') is not None:
self.password_expire_days = m.get('PasswordExpireDays')
self.users = []
if m.get('Users') is not None:
for k in m.get('Users'):
temp_model = CreateUsersRequestUsers()
self.users.append(temp_model.from_map(k))
return self
class CreateUsersResponseBodyCreateResultCreatedUsers(TeaModel):
def __init__(
self,
email: str = None,
end_user_id: str = None,
phone: str = None,
real_nick_name: str = None,
remark: str = None,
):
# The email address of the end user.
self.email = email
# The name of the end user.
self.end_user_id = end_user_id
# The mobile number of the end user.
self.phone = phone
# The display name of the end user.
self.real_nick_name = real_nick_name
# The remarks of the end user.
self.remark = remark
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.email is not None:
result['Email'] = self.email
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.phone is not None:
result['Phone'] = self.phone
if self.real_nick_name is not None:
result['RealNickName'] = self.real_nick_name
if self.remark is not None:
result['Remark'] = self.remark
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Email') is not None:
self.email = m.get('Email')
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('Phone') is not None:
self.phone = m.get('Phone')
if m.get('RealNickName') is not None:
self.real_nick_name = m.get('RealNickName')
if m.get('Remark') is not None:
self.remark = m.get('Remark')
return self
class CreateUsersResponseBodyCreateResultFailedUsers(TeaModel):
def __init__(
self,
email: str = None,
end_user_id: str = None,
error_code: str = None,
error_message: str = None,
phone: str = None,
):
# The email address of the end user.
self.email = email
# The name of the end user.
self.end_user_id = end_user_id
# The error code returned if the request failed.
self.error_code = error_code
# The error message returned.
self.error_message = error_message
# The mobile number of the end user.
self.phone = phone
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.email is not None:
result['Email'] = self.email
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.error_code is not None:
result['ErrorCode'] = self.error_code
if self.error_message is not None:
result['ErrorMessage'] = self.error_message
if self.phone is not None:
result['Phone'] = self.phone
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Email') is not None:
self.email = m.get('Email')
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('ErrorCode') is not None:
self.error_code = m.get('ErrorCode')
if m.get('ErrorMessage') is not None:
self.error_message = m.get('ErrorMessage')
if m.get('Phone') is not None:
self.phone = m.get('Phone')
return self
class CreateUsersResponseBodyCreateResult(TeaModel):
def __init__(
self,
created_users: List[CreateUsersResponseBodyCreateResultCreatedUsers] = None,
failed_users: List[CreateUsersResponseBodyCreateResultFailedUsers] = None,
):
# Details of the created convenience users.
self.created_users = created_users
# Details of the convenience users that failed to be created.
self.failed_users = failed_users
def validate(self):
if self.created_users:
for k in self.created_users:
if k:
k.validate()
if self.failed_users:
for k in self.failed_users:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['CreatedUsers'] = []
if self.created_users is not None:
for k in self.created_users:
result['CreatedUsers'].append(k.to_map() if k else None)
result['FailedUsers'] = []
if self.failed_users is not None:
for k in self.failed_users:
result['FailedUsers'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.created_users = []
if m.get('CreatedUsers') is not None:
for k in m.get('CreatedUsers'):
temp_model = CreateUsersResponseBodyCreateResultCreatedUsers()
self.created_users.append(temp_model.from_map(k))
self.failed_users = []
if m.get('FailedUsers') is not None:
for k in m.get('FailedUsers'):
temp_model = CreateUsersResponseBodyCreateResultFailedUsers()
self.failed_users.append(temp_model.from_map(k))
return self
class CreateUsersResponseBody(TeaModel):
def __init__(
self,
all_succeed: bool = None,
create_result: CreateUsersResponseBodyCreateResult = None,
request_id: str = None,
):
self.all_succeed = all_succeed
# The result of user creation.
self.create_result = create_result
# The ID of the request.
self.request_id = request_id
def validate(self):
if self.create_result:
self.create_result.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.all_succeed is not None:
result['AllSucceed'] = self.all_succeed
if self.create_result is not None:
result['CreateResult'] = self.create_result.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('AllSucceed') is not None:
self.all_succeed = m.get('AllSucceed')
if m.get('CreateResult') is not None:
temp_model = CreateUsersResponseBodyCreateResult()
self.create_result = temp_model.from_map(m['CreateResult'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CreateUsersResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CreateUsersResponseBody = 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 = CreateUsersResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteResourceGroupRequest(TeaModel):
def __init__(
self,
resource_group_id: str = None,
resource_group_ids: List[str] = None,
):
self.resource_group_id = resource_group_id
self.resource_group_ids = resource_group_ids
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.resource_group_id is not None:
result['ResourceGroupId'] = self.resource_group_id
if self.resource_group_ids is not None:
result['ResourceGroupIds'] = self.resource_group_ids
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ResourceGroupId') is not None:
self.resource_group_id = m.get('ResourceGroupId')
if m.get('ResourceGroupIds') is not None:
self.resource_group_ids = m.get('ResourceGroupIds')
return self
class DeleteResourceGroupResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
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 DeleteResourceGroupResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteResourceGroupResponseBody = 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 = DeleteResourceGroupResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteUserPropertyValueRequest(TeaModel):
def __init__(
self,
property_id: int = None,
property_value_id: int = None,
user_id: int = None,
):
# The property ID. You can call the [ListProperty](~~ListProperty~~) operation to query the property ID.
#
# This parameter is required.
self.property_id = property_id
# The property value ID. You can call the [ListProperty](~~ListProperty~~) operation to query the property value ID.
#
# This parameter is required.
self.property_value_id = property_value_id
# The user ID. You can call the [DescribeUsers](~~DescribeUsers~~) operation to query the user ID, which is the return value of the `Id` parameter.
#
# This parameter is required.
self.user_id = user_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_value_id is not None:
result['PropertyValueId'] = self.property_value_id
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyValueId') is not None:
self.property_value_id = m.get('PropertyValueId')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DeleteUserPropertyValueResponseBody(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 DeleteUserPropertyValueResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteUserPropertyValueResponseBody = 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 = DeleteUserPropertyValueResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeMfaDevicesRequest(TeaModel):
def __init__(
self,
ad_domain: str = None,
end_user_ids: List[str] = None,
max_results: int = None,
next_token: str = None,
serial_numbers: List[str] = None,
):
# The domain of the Active Directory (AD) workspace.
self.ad_domain = ad_domain
# The usernames of the convenience users.
self.end_user_ids = end_user_ids
# The maximum number of entries to return. Valid values: 1 to 500.\\
# Default value: 100.
self.max_results = max_results
# The pagination token that is used in the next request to retrieve a new page of results. Set the value to the token that is obtained from the previous query.
self.next_token = next_token
# The serial numbers of the virtual MFA devices.
self.serial_numbers = serial_numbers
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ad_domain is not None:
result['AdDomain'] = self.ad_domain
if self.end_user_ids is not None:
result['EndUserIds'] = self.end_user_ids
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.serial_numbers is not None:
result['SerialNumbers'] = self.serial_numbers
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AdDomain') is not None:
self.ad_domain = m.get('AdDomain')
if m.get('EndUserIds') is not None:
self.end_user_ids = m.get('EndUserIds')
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('SerialNumbers') is not None:
self.serial_numbers = m.get('SerialNumbers')
return self
class DescribeMfaDevicesResponseBodyMfaDevices(TeaModel):
def __init__(
self,
consecutive_fails: int = None,
device_type: str = None,
email: str = None,
end_user_id: str = None,
gmt_enabled: str = None,
gmt_unlock: str = None,
id: int = None,
serial_number: str = None,
status: str = None,
):
# The number of consecutive failures to bind the virtual MFA device, or the number of authentication failures based on the virtual MFA device.
self.consecutive_fails = consecutive_fails
# The type of the virtual MFA device. The value can only be TOTP_VIRTUAL. This value indicates that the virtual MFA device follows the Time-based One-time Password (TOTP) algorithm.
self.device_type = device_type
# > This parameter is not publicly available.
self.email = email
# The username of the convenience user that uses the virtual MFA device.
self.end_user_id = end_user_id
# The time when the virtual MFA device was enabled. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.
self.gmt_enabled = gmt_enabled
# The time when the locked virtual MFA device was automatically unlocked. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.
self.gmt_unlock = gmt_unlock
# > This parameter is not publicly available.
self.id = id
# The serial number of the virtual MFA device. The serial number is unique for each device.
self.serial_number = serial_number
# The status of the virtual MFA device.
#
# Valid values:
#
# * LOCKED
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
#
# * UNBOUND
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
#
# * NORMAL
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
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.consecutive_fails is not None:
result['ConsecutiveFails'] = self.consecutive_fails
if self.device_type is not None:
result['DeviceType'] = self.device_type
if self.email is not None:
result['Email'] = self.email
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.gmt_enabled is not None:
result['GmtEnabled'] = self.gmt_enabled
if self.gmt_unlock is not None:
result['GmtUnlock'] = self.gmt_unlock
if self.id is not None:
result['Id'] = self.id
if self.serial_number is not None:
result['SerialNumber'] = self.serial_number
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('ConsecutiveFails') is not None:
self.consecutive_fails = m.get('ConsecutiveFails')
if m.get('DeviceType') is not None:
self.device_type = m.get('DeviceType')
if m.get('Email') is not None:
self.email = m.get('Email')
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('GmtEnabled') is not None:
self.gmt_enabled = m.get('GmtEnabled')
if m.get('GmtUnlock') is not None:
self.gmt_unlock = m.get('GmtUnlock')
if m.get('Id') is not None:
self.id = m.get('Id')
if m.get('SerialNumber') is not None:
self.serial_number = m.get('SerialNumber')
if m.get('Status') is not None:
self.status = m.get('Status')
return self
class DescribeMfaDevicesResponseBody(TeaModel):
def __init__(
self,
mfa_devices: List[DescribeMfaDevicesResponseBodyMfaDevices] = None,
next_token: str = None,
request_id: str = None,
):
# The information about the virtual MFA devices.
self.mfa_devices = mfa_devices
# The pagination token that is 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
def validate(self):
if self.mfa_devices:
for k in self.mfa_devices:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['MfaDevices'] = []
if self.mfa_devices is not None:
for k in self.mfa_devices:
result['MfaDevices'].append(k.to_map() if k else None)
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()
self.mfa_devices = []
if m.get('MfaDevices') is not None:
for k in m.get('MfaDevices'):
temp_model = DescribeMfaDevicesResponseBodyMfaDevices()
self.mfa_devices.append(temp_model.from_map(k))
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 DescribeMfaDevicesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DescribeMfaDevicesResponseBody = 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 = DescribeMfaDevicesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeOrgByLayerRequest(TeaModel):
def __init__(
self,
org_name: str = None,
parent_org_id: str = None,
):
self.org_name = org_name
self.parent_org_id = parent_org_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.org_name is not None:
result['OrgName'] = self.org_name
if self.parent_org_id is not None:
result['ParentOrgId'] = self.parent_org_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OrgName') is not None:
self.org_name = m.get('OrgName')
if m.get('ParentOrgId') is not None:
self.parent_org_id = m.get('ParentOrgId')
return self
class DescribeOrgByLayerResponseBodyOrgs(TeaModel):
def __init__(
self,
org_id: str = None,
org_name: str = None,
parent_org_id: str = None,
):
self.org_id = org_id
self.org_name = org_name
self.parent_org_id = parent_org_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.org_id is not None:
result['OrgId'] = self.org_id
if self.org_name is not None:
result['OrgName'] = self.org_name
if self.parent_org_id is not None:
result['ParentOrgId'] = self.parent_org_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('OrgName') is not None:
self.org_name = m.get('OrgName')
if m.get('ParentOrgId') is not None:
self.parent_org_id = m.get('ParentOrgId')
return self
class DescribeOrgByLayerResponseBody(TeaModel):
def __init__(
self,
orgs: List[DescribeOrgByLayerResponseBodyOrgs] = None,
request_id: str = None,
):
self.orgs = orgs
self.request_id = request_id
def validate(self):
if self.orgs:
for k in self.orgs:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['Orgs'] = []
if self.orgs is not None:
for k in self.orgs:
result['Orgs'].append(k.to_map() if k else None)
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()
self.orgs = []
if m.get('Orgs') is not None:
for k in m.get('Orgs'):
temp_model = DescribeOrgByLayerResponseBodyOrgs()
self.orgs.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeOrgByLayerResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DescribeOrgByLayerResponseBody = 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 = DescribeOrgByLayerResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeOrgsRequest(TeaModel):
def __init__(
self,
max_results: int = None,
next_token: str = None,
org_name: str = None,
parent_org_id: str = None,
):
# The maximum number of entries to return. Valid values: 1 to 100.\\
# Default value: 100.
self.max_results = max_results
# The token that determines the start point of the query. The return value is the value of the NextToken response parameter that was returned last time the DescribeOrgs operation was called.
self.next_token = next_token
# The name of the organization.
self.org_name = org_name
# The parent organization ID.
self.parent_org_id = parent_org_id
def validate(self):
pass
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.org_name is not None:
result['OrgName'] = self.org_name
if self.parent_org_id is not None:
result['ParentOrgId'] = self.parent_org_id
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('OrgName') is not None:
self.org_name = m.get('OrgName')
if m.get('ParentOrgId') is not None:
self.parent_org_id = m.get('ParentOrgId')
return self
class DescribeOrgsResponseBodyOrgs(TeaModel):
def __init__(
self,
org_id: str = None,
org_name: str = None,
parent_org_id: str = None,
):
# The organization ID.
self.org_id = org_id
# The name of the organizational unit.
self.org_name = org_name
# The parent organization ID.
self.parent_org_id = parent_org_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.org_id is not None:
result['OrgId'] = self.org_id
if self.org_name is not None:
result['OrgName'] = self.org_name
if self.parent_org_id is not None:
result['ParentOrgId'] = self.parent_org_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('OrgName') is not None:
self.org_name = m.get('OrgName')
if m.get('ParentOrgId') is not None:
self.parent_org_id = m.get('ParentOrgId')
return self
class DescribeOrgsResponseBody(TeaModel):
def __init__(
self,
next_token: str = None,
orgs: List[DescribeOrgsResponseBodyOrgs] = None,
request_id: str = None,
):
# The token that determines the start point of the query. The return value is the value of the NextToken response parameter that was returned last time the DescribeOrgs operation was called.
self.next_token = next_token
# The organizations.
self.orgs = orgs
# The request ID.
self.request_id = request_id
def validate(self):
if self.orgs:
for k in self.orgs:
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
result['Orgs'] = []
if self.orgs is not None:
for k in self.orgs:
result['Orgs'].append(k.to_map() if k else None)
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('NextToken') is not None:
self.next_token = m.get('NextToken')
self.orgs = []
if m.get('Orgs') is not None:
for k in m.get('Orgs'):
temp_model = DescribeOrgsResponseBodyOrgs()
self.orgs.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeOrgsResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DescribeOrgsResponseBody = 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 = DescribeOrgsResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeResourceGroupsRequest(TeaModel):
def __init__(
self,
need_contain_resource_group_with_office_site: int = None,
page_number: int = None,
page_size: int = None,
platform: str = None,
resource_group_ids: List[str] = None,
resource_group_name: str = None,
):
self.need_contain_resource_group_with_office_site = need_contain_resource_group_with_office_site
self.page_number = page_number
self.page_size = page_size
self.platform = platform
self.resource_group_ids = resource_group_ids
self.resource_group_name = resource_group_name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.need_contain_resource_group_with_office_site is not None:
result['NeedContainResourceGroupWithOfficeSite'] = self.need_contain_resource_group_with_office_site
if self.page_number is not None:
result['PageNumber'] = self.page_number
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.platform is not None:
result['Platform'] = self.platform
if self.resource_group_ids is not None:
result['ResourceGroupIds'] = self.resource_group_ids
if self.resource_group_name is not None:
result['ResourceGroupName'] = self.resource_group_name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('NeedContainResourceGroupWithOfficeSite') is not None:
self.need_contain_resource_group_with_office_site = m.get('NeedContainResourceGroupWithOfficeSite')
if m.get('PageNumber') is not None:
self.page_number = m.get('PageNumber')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('Platform') is not None:
self.platform = m.get('Platform')
if m.get('ResourceGroupIds') is not None:
self.resource_group_ids = m.get('ResourceGroupIds')
if m.get('ResourceGroupName') is not None:
self.resource_group_name = m.get('ResourceGroupName')
return self
class DescribeResourceGroupsResponseBodyResourceGroupPolicies(TeaModel):
def __init__(
self,
id: str = None,
is_default: bool = None,
name: str = None,
):
self.id = id
self.is_default = is_default
self.name = name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.id is not None:
result['Id'] = self.id
if self.is_default is not None:
result['IsDefault'] = self.is_default
if self.name is not None:
result['Name'] = self.name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Id') is not None:
self.id = m.get('Id')
if m.get('IsDefault') is not None:
self.is_default = m.get('IsDefault')
if m.get('Name') is not None:
self.name = m.get('Name')
return self
class DescribeResourceGroupsResponseBodyResourceGroupTimers(TeaModel):
def __init__(
self,
id: str = None,
name: str = None,
):
self.id = id
self.name = name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.id is not None:
result['Id'] = self.id
if self.name is not None:
result['Name'] = self.name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Id') is not None:
self.id = m.get('Id')
if m.get('Name') is not None:
self.name = m.get('Name')
return self
class DescribeResourceGroupsResponseBodyResourceGroup(TeaModel):
def __init__(
self,
auth_count: str = None,
create_time: str = None,
policies: List[DescribeResourceGroupsResponseBodyResourceGroupPolicies] = None,
resource_count: str = None,
resource_group_id: str = None,
resource_group_name: str = None,
timers: List[DescribeResourceGroupsResponseBodyResourceGroupTimers] = None,
):
self.auth_count = auth_count
self.create_time = create_time
self.policies = policies
self.resource_count = resource_count
self.resource_group_id = resource_group_id
self.resource_group_name = resource_group_name
self.timers = timers
def validate(self):
if self.policies:
for k in self.policies:
if k:
k.validate()
if self.timers:
for k in self.timers:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.auth_count is not None:
result['AuthCount'] = self.auth_count
if self.create_time is not None:
result['CreateTime'] = self.create_time
result['Policies'] = []
if self.policies is not None:
for k in self.policies:
result['Policies'].append(k.to_map() if k else None)
if self.resource_count is not None:
result['ResourceCount'] = self.resource_count
if self.resource_group_id is not None:
result['ResourceGroupId'] = self.resource_group_id
if self.resource_group_name is not None:
result['ResourceGroupName'] = self.resource_group_name
result['Timers'] = []
if self.timers is not None:
for k in self.timers:
result['Timers'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AuthCount') is not None:
self.auth_count = m.get('AuthCount')
if m.get('CreateTime') is not None:
self.create_time = m.get('CreateTime')
self.policies = []
if m.get('Policies') is not None:
for k in m.get('Policies'):
temp_model = DescribeResourceGroupsResponseBodyResourceGroupPolicies()
self.policies.append(temp_model.from_map(k))
if m.get('ResourceCount') is not None:
self.resource_count = m.get('ResourceCount')
if m.get('ResourceGroupId') is not None:
self.resource_group_id = m.get('ResourceGroupId')
if m.get('ResourceGroupName') is not None:
self.resource_group_name = m.get('ResourceGroupName')
self.timers = []
if m.get('Timers') is not None:
for k in m.get('Timers'):
temp_model = DescribeResourceGroupsResponseBodyResourceGroupTimers()
self.timers.append(temp_model.from_map(k))
return self
class DescribeResourceGroupsResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
resource_group: List[DescribeResourceGroupsResponseBodyResourceGroup] = None,
total_count: str = None,
):
self.request_id = request_id
self.resource_group = resource_group
self.total_count = total_count
def validate(self):
if self.resource_group:
for k in self.resource_group:
if k:
k.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
result['ResourceGroup'] = []
if self.resource_group is not None:
for k in self.resource_group:
result['ResourceGroup'].append(k.to_map() if k else None)
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('RequestId') is not None:
self.request_id = m.get('RequestId')
self.resource_group = []
if m.get('ResourceGroup') is not None:
for k in m.get('ResourceGroup'):
temp_model = DescribeResourceGroupsResponseBodyResourceGroup()
self.resource_group.append(temp_model.from_map(k))
if m.get('TotalCount') is not None:
self.total_count = m.get('TotalCount')
return self
class DescribeResourceGroupsResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DescribeResourceGroupsResponseBody = 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 = DescribeResourceGroupsResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeUsersRequest(TeaModel):
def __init__(
self,
biz_type: str = None,
end_user_ids: List[str] = None,
exclude_end_user_ids: List[str] = None,
filter: str = None,
filter_with_assigned_resource: Dict[str, str] = None,
filter_with_assigned_resources: Dict[str, bool] = None,
group_id: str = None,
is_query_all_sub_orgs: bool = None,
max_results: int = None,
next_token: str = None,
org_id: str = None,
show_extras: Dict[str, Any] = None,
solution_id: str = None,
):
self.biz_type = biz_type
# The usernames that must be exactly matched.
self.end_user_ids = end_user_ids
# The usernames that must be exactly excluded.
self.exclude_end_user_ids = exclude_end_user_ids
# The string that is used for fuzzy search. You perform fuzzy search by username (EndUserId) and email address (Email). Wildcard characters (\\*) are supported. For example, if you set this parameter to `a*m`, usernames or email addresses that start with `a` and end with `m` are returned.
self.filter = filter
self.filter_with_assigned_resource = filter_with_assigned_resource
self.filter_with_assigned_resources = filter_with_assigned_resources
# The ID of the organization in which you want to query convenience users.
self.group_id = group_id
self.is_query_all_sub_orgs = is_query_all_sub_orgs
# The maximum number of entries per page.
#
# * Valid values: 1 to 500.
# * Default value: 500.
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.\\
# If not all results are returned in a query, a value is returned for the NextToken parameter. In this case, you can use the return value of NextToken to perform the next query.
self.next_token = next_token
# The ID of the organization in which you want to query users.
self.org_id = org_id
self.show_extras = show_extras
self.solution_id = solution_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.biz_type is not None:
result['BizType'] = self.biz_type
if self.end_user_ids is not None:
result['EndUserIds'] = self.end_user_ids
if self.exclude_end_user_ids is not None:
result['ExcludeEndUserIds'] = self.exclude_end_user_ids
if self.filter is not None:
result['Filter'] = self.filter
if self.filter_with_assigned_resource is not None:
result['FilterWithAssignedResource'] = self.filter_with_assigned_resource
if self.filter_with_assigned_resources is not None:
result['FilterWithAssignedResources'] = self.filter_with_assigned_resources
if self.group_id is not None:
result['GroupId'] = self.group_id
if self.is_query_all_sub_orgs is not None:
result['IsQueryAllSubOrgs'] = self.is_query_all_sub_orgs
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.org_id is not None:
result['OrgId'] = self.org_id
if self.show_extras is not None:
result['ShowExtras'] = self.show_extras
if self.solution_id is not None:
result['SolutionId'] = self.solution_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('BizType') is not None:
self.biz_type = m.get('BizType')
if m.get('EndUserIds') is not None:
self.end_user_ids = m.get('EndUserIds')
if m.get('ExcludeEndUserIds') is not None:
self.exclude_end_user_ids = m.get('ExcludeEndUserIds')
if m.get('Filter') is not None:
self.filter = m.get('Filter')
if m.get('FilterWithAssignedResource') is not None:
self.filter_with_assigned_resource = m.get('FilterWithAssignedResource')
if m.get('FilterWithAssignedResources') is not None:
self.filter_with_assigned_resources = m.get('FilterWithAssignedResources')
if m.get('GroupId') is not None:
self.group_id = m.get('GroupId')
if m.get('IsQueryAllSubOrgs') is not None:
self.is_query_all_sub_orgs = m.get('IsQueryAllSubOrgs')
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('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('ShowExtras') is not None:
self.show_extras = m.get('ShowExtras')
if m.get('SolutionId') is not None:
self.solution_id = m.get('SolutionId')
return self
class DescribeUsersShrinkRequest(TeaModel):
def __init__(
self,
biz_type: str = None,
end_user_ids: List[str] = None,
exclude_end_user_ids: List[str] = None,
filter: str = None,
filter_with_assigned_resource_shrink: str = None,
filter_with_assigned_resources_shrink: str = None,
group_id: str = None,
is_query_all_sub_orgs: bool = None,
max_results: int = None,
next_token: str = None,
org_id: str = None,
show_extras_shrink: str = None,
solution_id: str = None,
):
self.biz_type = biz_type
# The usernames that must be exactly matched.
self.end_user_ids = end_user_ids
# The usernames that must be exactly excluded.
self.exclude_end_user_ids = exclude_end_user_ids
# The string that is used for fuzzy search. You perform fuzzy search by username (EndUserId) and email address (Email). Wildcard characters (\\*) are supported. For example, if you set this parameter to `a*m`, usernames or email addresses that start with `a` and end with `m` are returned.
self.filter = filter
self.filter_with_assigned_resource_shrink = filter_with_assigned_resource_shrink
self.filter_with_assigned_resources_shrink = filter_with_assigned_resources_shrink
# The ID of the organization in which you want to query convenience users.
self.group_id = group_id
self.is_query_all_sub_orgs = is_query_all_sub_orgs
# The maximum number of entries per page.
#
# * Valid values: 1 to 500.
# * Default value: 500.
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.\\
# If not all results are returned in a query, a value is returned for the NextToken parameter. In this case, you can use the return value of NextToken to perform the next query.
self.next_token = next_token
# The ID of the organization in which you want to query users.
self.org_id = org_id
self.show_extras_shrink = show_extras_shrink
self.solution_id = solution_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.biz_type is not None:
result['BizType'] = self.biz_type
if self.end_user_ids is not None:
result['EndUserIds'] = self.end_user_ids
if self.exclude_end_user_ids is not None:
result['ExcludeEndUserIds'] = self.exclude_end_user_ids
if self.filter is not None:
result['Filter'] = self.filter
if self.filter_with_assigned_resource_shrink is not None:
result['FilterWithAssignedResource'] = self.filter_with_assigned_resource_shrink
if self.filter_with_assigned_resources_shrink is not None:
result['FilterWithAssignedResources'] = self.filter_with_assigned_resources_shrink
if self.group_id is not None:
result['GroupId'] = self.group_id
if self.is_query_all_sub_orgs is not None:
result['IsQueryAllSubOrgs'] = self.is_query_all_sub_orgs
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.org_id is not None:
result['OrgId'] = self.org_id
if self.show_extras_shrink is not None:
result['ShowExtras'] = self.show_extras_shrink
if self.solution_id is not None:
result['SolutionId'] = self.solution_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('BizType') is not None:
self.biz_type = m.get('BizType')
if m.get('EndUserIds') is not None:
self.end_user_ids = m.get('EndUserIds')
if m.get('ExcludeEndUserIds') is not None:
self.exclude_end_user_ids = m.get('ExcludeEndUserIds')
if m.get('Filter') is not None:
self.filter = m.get('Filter')
if m.get('FilterWithAssignedResource') is not None:
self.filter_with_assigned_resource_shrink = m.get('FilterWithAssignedResource')
if m.get('FilterWithAssignedResources') is not None:
self.filter_with_assigned_resources_shrink = m.get('FilterWithAssignedResources')
if m.get('GroupId') is not None:
self.group_id = m.get('GroupId')
if m.get('IsQueryAllSubOrgs') is not None:
self.is_query_all_sub_orgs = m.get('IsQueryAllSubOrgs')
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('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('ShowExtras') is not None:
self.show_extras_shrink = m.get('ShowExtras')
if m.get('SolutionId') is not None:
self.solution_id = m.get('SolutionId')
return self
class DescribeUsersResponseBodyUsersExtras(TeaModel):
def __init__(
self,
assigned_resource_count: Dict[str, Any] = None,
):
self.assigned_resource_count = assigned_resource_count
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.assigned_resource_count is not None:
result['AssignedResourceCount'] = self.assigned_resource_count
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AssignedResourceCount') is not None:
self.assigned_resource_count = m.get('AssignedResourceCount')
return self
class DescribeUsersResponseBodyUsersGroups(TeaModel):
def __init__(
self,
group_id: str = None,
group_name: str = None,
):
# The ID of the user group.
self.group_id = group_id
# The name of the user group.
self.group_name = group_name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.group_id is not None:
result['GroupId'] = self.group_id
if self.group_name is not None:
result['GroupName'] = self.group_name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('GroupId') is not None:
self.group_id = m.get('GroupId')
if m.get('GroupName') is not None:
self.group_name = m.get('GroupName')
return self
class DescribeUsersResponseBodyUsersOrgs(TeaModel):
def __init__(
self,
org_id: str = None,
org_name: str = None,
):
# The organization ID.
self.org_id = org_id
# The organization name.
self.org_name = org_name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.org_id is not None:
result['OrgId'] = self.org_id
if self.org_name is not None:
result['OrgName'] = self.org_name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('OrgName') is not None:
self.org_name = m.get('OrgName')
return self
class DescribeUsersResponseBodyUsersProperties(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 DescribeUsersResponseBodyUsers(TeaModel):
def __init__(
self,
address: str = None,
avatar: str = None,
email: str = None,
end_user_id: str = None,
external_name: str = None,
extras: DescribeUsersResponseBodyUsersExtras = None,
groups: List[DescribeUsersResponseBodyUsersGroups] = None,
id: int = None,
is_tenant_manager: bool = None,
job_number: str = None,
nick_name: str = None,
org_id: str = None,
orgs: List[DescribeUsersResponseBodyUsersOrgs] = None,
owner_type: str = None,
phone: str = None,
properties: List[DescribeUsersResponseBodyUsersProperties] = None,
real_nick_name: str = None,
remark: str = None,
status: int = None,
wy_id: str = None,
):
# The work address of the convenience user.
self.address = address
# The profile picture of the convenience user.
self.avatar = avatar
# The email address of the convenience user.
self.email = email
# The username of the convenience user.
self.end_user_id = end_user_id
self.external_name = external_name
self.extras = extras
# The user groups to which the convenience user belongs.
self.groups = groups
# The ID of the convenience user.
self.id = id
# Indicates whether the convenience user is an administrator. If the convenience user is of the administrator-activated type, you must specify a user administrator. Notifications such as password reset on a client are sent to the email address or mobile number of the user administrator. For more information, see [Create a convenience user](https://help.aliyun.com/document_detail/214472.html).
self.is_tenant_manager = is_tenant_manager
# The employee number of the convenience user.
self.job_number = job_number
# The nickname of the convenience user.
self.nick_name = nick_name
# The ID of the organization to which the convenience user belongs.
#
# > This parameter will be deprecated in the future.
self.org_id = org_id
# The organizations to which the convenience user belongs.
self.orgs = orgs
# The type of the convenience account.
#
# * Administrator-activated type: The administrator specifies the username and password of the convenience account. User notifications such as password reset notifications are sent to the email address or mobile number of the administrator.
# * User-activated type: The administrator specifies the username and the email address or mobile number of a convenience user. Notifications such as activation notifications that contain the default password are sent to the email address or mobile number of the convenience user.
#
# Valid values:
#
# * CreateFromManager
#
# <!-- -->
#
# :
#
# <!-- -->
#
# administrator-activated
#
# <!-- -->
#
# * Normal
#
# <!-- -->
#
# :
#
# <!-- -->
#
# user-activated
#
# <!-- -->
self.owner_type = owner_type
# The mobile number of the convenience user. If you leave this parameter empty, the value of this parameter is not returned.
self.phone = phone
self.properties = properties
self.real_nick_name = real_nick_name
# The remarks on the convenience user.
self.remark = remark
# The status of the convenience user.
#
# Valid values:
#
# * 0: The convenience user is normal.
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
#
# * 9: The convenience user is locked.
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
self.status = status
# The globally unique ID of the convenience user.
self.wy_id = wy_id
def validate(self):
if self.extras:
self.extras.validate()
if self.groups:
for k in self.groups:
if k:
k.validate()
if self.orgs:
for k in self.orgs:
if k:
k.validate()
if self.properties:
for k in self.properties:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.address is not None:
result['Address'] = self.address
if self.avatar is not None:
result['Avatar'] = self.avatar
if self.email is not None:
result['Email'] = self.email
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.external_name is not None:
result['ExternalName'] = self.external_name
if self.extras is not None:
result['Extras'] = self.extras.to_map()
result['Groups'] = []
if self.groups is not None:
for k in self.groups:
result['Groups'].append(k.to_map() if k else None)
if self.id is not None:
result['Id'] = self.id
if self.is_tenant_manager is not None:
result['IsTenantManager'] = self.is_tenant_manager
if self.job_number is not None:
result['JobNumber'] = self.job_number
if self.nick_name is not None:
result['NickName'] = self.nick_name
if self.org_id is not None:
result['OrgId'] = self.org_id
result['Orgs'] = []
if self.orgs is not None:
for k in self.orgs:
result['Orgs'].append(k.to_map() if k else None)
if self.owner_type is not None:
result['OwnerType'] = self.owner_type
if self.phone is not None:
result['Phone'] = self.phone
result['Properties'] = []
if self.properties is not None:
for k in self.properties:
result['Properties'].append(k.to_map() if k else None)
if self.real_nick_name is not None:
result['RealNickName'] = self.real_nick_name
if self.remark is not None:
result['Remark'] = self.remark
if self.status is not None:
result['Status'] = self.status
if self.wy_id is not None:
result['WyId'] = self.wy_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Address') is not None:
self.address = m.get('Address')
if m.get('Avatar') is not None:
self.avatar = m.get('Avatar')
if m.get('Email') is not None:
self.email = m.get('Email')
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('ExternalName') is not None:
self.external_name = m.get('ExternalName')
if m.get('Extras') is not None:
temp_model = DescribeUsersResponseBodyUsersExtras()
self.extras = temp_model.from_map(m['Extras'])
self.groups = []
if m.get('Groups') is not None:
for k in m.get('Groups'):
temp_model = DescribeUsersResponseBodyUsersGroups()
self.groups.append(temp_model.from_map(k))
if m.get('Id') is not None:
self.id = m.get('Id')
if m.get('IsTenantManager') is not None:
self.is_tenant_manager = m.get('IsTenantManager')
if m.get('JobNumber') is not None:
self.job_number = m.get('JobNumber')
if m.get('NickName') is not None:
self.nick_name = m.get('NickName')
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
self.orgs = []
if m.get('Orgs') is not None:
for k in m.get('Orgs'):
temp_model = DescribeUsersResponseBodyUsersOrgs()
self.orgs.append(temp_model.from_map(k))
if m.get('OwnerType') is not None:
self.owner_type = m.get('OwnerType')
if m.get('Phone') is not None:
self.phone = m.get('Phone')
self.properties = []
if m.get('Properties') is not None:
for k in m.get('Properties'):
temp_model = DescribeUsersResponseBodyUsersProperties()
self.properties.append(temp_model.from_map(k))
if m.get('RealNickName') is not None:
self.real_nick_name = m.get('RealNickName')
if m.get('Remark') is not None:
self.remark = m.get('Remark')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('WyId') is not None:
self.wy_id = m.get('WyId')
return self
class DescribeUsersResponseBody(TeaModel):
def __init__(
self,
next_token: str = None,
request_id: str = None,
users: List[DescribeUsersResponseBodyUsers] = None,
):
# The token that determines the start point of the next query. If this parameter is left empty, all results are returned.
self.next_token = next_token
# The ID of the request.
self.request_id = request_id
# The convenience accounts.
self.users = users
def validate(self):
if self.users:
for k in self.users:
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.request_id is not None:
result['RequestId'] = self.request_id
result['Users'] = []
if self.users is not None:
for k in self.users:
result['Users'].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('RequestId') is not None:
self.request_id = m.get('RequestId')
self.users = []
if m.get('Users') is not None:
for k in m.get('Users'):
temp_model = DescribeUsersResponseBodyUsers()
self.users.append(temp_model.from_map(k))
return self
class DescribeUsersResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DescribeUsersResponseBody = 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 = DescribeUsersResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class FilterUsersRequestOrderParam(TeaModel):
def __init__(
self,
order_field: str = None,
order_type: str = None,
):
# The field that you want to sort by.
#
# Valid values:
#
# * EndUserId: the username.
# * id: the ID of the primary key.
# * gmt_created: the creation time.
self.order_field = order_field
# The direction of the sort.
#
# Valid values:
#
# * ASC: the ascending order.
# * DESC (default): the descending order.
self.order_type = order_type
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.order_field is not None:
result['OrderField'] = self.order_field
if self.order_type is not None:
result['OrderType'] = self.order_type
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OrderField') is not None:
self.order_field = m.get('OrderField')
if m.get('OrderType') is not None:
self.order_type = m.get('OrderType')
return self
class FilterUsersRequestPropertyFilterParam(TeaModel):
def __init__(
self,
property_id: int = None,
property_value_ids: str = None,
):
# The ID of the property.
self.property_id = property_id
# The IDs of the property values.
self.property_value_ids = property_value_ids
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_value_ids is not None:
result['PropertyValueIds'] = self.property_value_ids
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyValueIds') is not None:
self.property_value_ids = m.get('PropertyValueIds')
return self
class FilterUsersRequestPropertyKeyValueFilterParam(TeaModel):
def __init__(
self,
property_key: str = None,
property_values: str = None,
):
# The property name.
self.property_key = property_key
# The property values.
self.property_values = property_values
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_key is not None:
result['PropertyKey'] = self.property_key
if self.property_values is not None:
result['PropertyValues'] = self.property_values
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyKey') is not None:
self.property_key = m.get('PropertyKey')
if m.get('PropertyValues') is not None:
self.property_values = m.get('PropertyValues')
return self
class FilterUsersRequest(TeaModel):
def __init__(
self,
exclude_end_user_ids: List[str] = None,
filter: str = None,
include_desktop_count: bool = None,
include_desktop_group_count: bool = None,
include_org_info: bool = None,
include_support_idps: bool = None,
is_query_all_sub_orgs: bool = None,
max_results: int = None,
next_token: str = None,
order_param: FilterUsersRequestOrderParam = None,
org_id: str = None,
owner_type: str = None,
property_filter_param: List[FilterUsersRequestPropertyFilterParam] = None,
property_key_value_filter_param: List[FilterUsersRequestPropertyKeyValueFilterParam] = None,
status: int = None,
):
# The list of usernames to be precisely excluded.
self.exclude_end_user_ids = exclude_end_user_ids
# The string that is used for fuzzy search. You can use usernames and email addresses to perform fuzzy search. Wildcard characters (\\*) are supported for this parameter. For example, if you set this parameter to a\\*m, the usernames or an email addresses that start with a or end with m are returned.
self.filter = filter
# Specifies whether to return the number of cloud desktops that are assigned to the convenience user.
#
# Valid values:
#
# * true
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
#
# * false
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
self.include_desktop_count = include_desktop_count
# Specifies whether to return the number of cloud desktop pools that are assigned to the convenience user.
#
# Valid values:
#
# * true
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
#
# * false
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
self.include_desktop_group_count = include_desktop_group_count
self.include_org_info = include_org_info
self.include_support_idps = include_support_idps
self.is_query_all_sub_orgs = is_query_all_sub_orgs
# The number of entries per page. If you set this parameter to a value greater than 100, the system resets the value 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. If not all results are returned in a query, a value is returned for the NextToken parameter. In this case, you can use the returned NextToken value to start the next query.
self.next_token = next_token
# The parameter that might affect the sorting logic.
self.order_param = order_param
# The ID of the organization.
self.org_id = org_id
# The activation type of the convenience account.
#
# Valid values:
#
# * CreateFromManager: administrator-activated.
# * Normal: user-activated.
self.owner_type = owner_type
# The list of properties for fuzzy search.
self.property_filter_param = property_filter_param
# The list of property names and property values.
self.property_key_value_filter_param = property_key_value_filter_param
self.status = status
def validate(self):
if self.order_param:
self.order_param.validate()
if self.property_filter_param:
for k in self.property_filter_param:
if k:
k.validate()
if self.property_key_value_filter_param:
for k in self.property_key_value_filter_param:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.exclude_end_user_ids is not None:
result['ExcludeEndUserIds'] = self.exclude_end_user_ids
if self.filter is not None:
result['Filter'] = self.filter
if self.include_desktop_count is not None:
result['IncludeDesktopCount'] = self.include_desktop_count
if self.include_desktop_group_count is not None:
result['IncludeDesktopGroupCount'] = self.include_desktop_group_count
if self.include_org_info is not None:
result['IncludeOrgInfo'] = self.include_org_info
if self.include_support_idps is not None:
result['IncludeSupportIdps'] = self.include_support_idps
if self.is_query_all_sub_orgs is not None:
result['IsQueryAllSubOrgs'] = self.is_query_all_sub_orgs
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.order_param is not None:
result['OrderParam'] = self.order_param.to_map()
if self.org_id is not None:
result['OrgId'] = self.org_id
if self.owner_type is not None:
result['OwnerType'] = self.owner_type
result['PropertyFilterParam'] = []
if self.property_filter_param is not None:
for k in self.property_filter_param:
result['PropertyFilterParam'].append(k.to_map() if k else None)
result['PropertyKeyValueFilterParam'] = []
if self.property_key_value_filter_param is not None:
for k in self.property_key_value_filter_param:
result['PropertyKeyValueFilterParam'].append(k.to_map() if k else None)
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('ExcludeEndUserIds') is not None:
self.exclude_end_user_ids = m.get('ExcludeEndUserIds')
if m.get('Filter') is not None:
self.filter = m.get('Filter')
if m.get('IncludeDesktopCount') is not None:
self.include_desktop_count = m.get('IncludeDesktopCount')
if m.get('IncludeDesktopGroupCount') is not None:
self.include_desktop_group_count = m.get('IncludeDesktopGroupCount')
if m.get('IncludeOrgInfo') is not None:
self.include_org_info = m.get('IncludeOrgInfo')
if m.get('IncludeSupportIdps') is not None:
self.include_support_idps = m.get('IncludeSupportIdps')
if m.get('IsQueryAllSubOrgs') is not None:
self.is_query_all_sub_orgs = m.get('IsQueryAllSubOrgs')
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('OrderParam') is not None:
temp_model = FilterUsersRequestOrderParam()
self.order_param = temp_model.from_map(m['OrderParam'])
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('OwnerType') is not None:
self.owner_type = m.get('OwnerType')
self.property_filter_param = []
if m.get('PropertyFilterParam') is not None:
for k in m.get('PropertyFilterParam'):
temp_model = FilterUsersRequestPropertyFilterParam()
self.property_filter_param.append(temp_model.from_map(k))
self.property_key_value_filter_param = []
if m.get('PropertyKeyValueFilterParam') is not None:
for k in m.get('PropertyKeyValueFilterParam'):
temp_model = FilterUsersRequestPropertyKeyValueFilterParam()
self.property_key_value_filter_param.append(temp_model.from_map(k))
if m.get('Status') is not None:
self.status = m.get('Status')
return self
class FilterUsersShrinkRequestPropertyFilterParam(TeaModel):
def __init__(
self,
property_id: int = None,
property_value_ids: str = None,
):
# The ID of the property.
self.property_id = property_id
# The IDs of the property values.
self.property_value_ids = property_value_ids
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_value_ids is not None:
result['PropertyValueIds'] = self.property_value_ids
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyValueIds') is not None:
self.property_value_ids = m.get('PropertyValueIds')
return self
class FilterUsersShrinkRequestPropertyKeyValueFilterParam(TeaModel):
def __init__(
self,
property_key: str = None,
property_values: str = None,
):
# The property name.
self.property_key = property_key
# The property values.
self.property_values = property_values
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_key is not None:
result['PropertyKey'] = self.property_key
if self.property_values is not None:
result['PropertyValues'] = self.property_values
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyKey') is not None:
self.property_key = m.get('PropertyKey')
if m.get('PropertyValues') is not None:
self.property_values = m.get('PropertyValues')
return self
class FilterUsersShrinkRequest(TeaModel):
def __init__(
self,
exclude_end_user_ids: List[str] = None,
filter: str = None,
include_desktop_count: bool = None,
include_desktop_group_count: bool = None,
include_org_info: bool = None,
include_support_idps: bool = None,
is_query_all_sub_orgs: bool = None,
max_results: int = None,
next_token: str = None,
order_param_shrink: str = None,
org_id: str = None,
owner_type: str = None,
property_filter_param: List[FilterUsersShrinkRequestPropertyFilterParam] = None,
property_key_value_filter_param: List[FilterUsersShrinkRequestPropertyKeyValueFilterParam] = None,
status: int = None,
):
# The list of usernames to be precisely excluded.
self.exclude_end_user_ids = exclude_end_user_ids
# The string that is used for fuzzy search. You can use usernames and email addresses to perform fuzzy search. Wildcard characters (\\*) are supported for this parameter. For example, if you set this parameter to a\\*m, the usernames or an email addresses that start with a or end with m are returned.
self.filter = filter
# Specifies whether to return the number of cloud desktops that are assigned to the convenience user.
#
# Valid values:
#
# * true
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
#
# * false
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
self.include_desktop_count = include_desktop_count
# Specifies whether to return the number of cloud desktop pools that are assigned to the convenience user.
#
# Valid values:
#
# * true
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
#
# * false
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
self.include_desktop_group_count = include_desktop_group_count
self.include_org_info = include_org_info
self.include_support_idps = include_support_idps
self.is_query_all_sub_orgs = is_query_all_sub_orgs
# The number of entries per page. If you set this parameter to a value greater than 100, the system resets the value 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. If not all results are returned in a query, a value is returned for the NextToken parameter. In this case, you can use the returned NextToken value to start the next query.
self.next_token = next_token
# The parameter that might affect the sorting logic.
self.order_param_shrink = order_param_shrink
# The ID of the organization.
self.org_id = org_id
# The activation type of the convenience account.
#
# Valid values:
#
# * CreateFromManager: administrator-activated.
# * Normal: user-activated.
self.owner_type = owner_type
# The list of properties for fuzzy search.
self.property_filter_param = property_filter_param
# The list of property names and property values.
self.property_key_value_filter_param = property_key_value_filter_param
self.status = status
def validate(self):
if self.property_filter_param:
for k in self.property_filter_param:
if k:
k.validate()
if self.property_key_value_filter_param:
for k in self.property_key_value_filter_param:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.exclude_end_user_ids is not None:
result['ExcludeEndUserIds'] = self.exclude_end_user_ids
if self.filter is not None:
result['Filter'] = self.filter
if self.include_desktop_count is not None:
result['IncludeDesktopCount'] = self.include_desktop_count
if self.include_desktop_group_count is not None:
result['IncludeDesktopGroupCount'] = self.include_desktop_group_count
if self.include_org_info is not None:
result['IncludeOrgInfo'] = self.include_org_info
if self.include_support_idps is not None:
result['IncludeSupportIdps'] = self.include_support_idps
if self.is_query_all_sub_orgs is not None:
result['IsQueryAllSubOrgs'] = self.is_query_all_sub_orgs
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.order_param_shrink is not None:
result['OrderParam'] = self.order_param_shrink
if self.org_id is not None:
result['OrgId'] = self.org_id
if self.owner_type is not None:
result['OwnerType'] = self.owner_type
result['PropertyFilterParam'] = []
if self.property_filter_param is not None:
for k in self.property_filter_param:
result['PropertyFilterParam'].append(k.to_map() if k else None)
result['PropertyKeyValueFilterParam'] = []
if self.property_key_value_filter_param is not None:
for k in self.property_key_value_filter_param:
result['PropertyKeyValueFilterParam'].append(k.to_map() if k else None)
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('ExcludeEndUserIds') is not None:
self.exclude_end_user_ids = m.get('ExcludeEndUserIds')
if m.get('Filter') is not None:
self.filter = m.get('Filter')
if m.get('IncludeDesktopCount') is not None:
self.include_desktop_count = m.get('IncludeDesktopCount')
if m.get('IncludeDesktopGroupCount') is not None:
self.include_desktop_group_count = m.get('IncludeDesktopGroupCount')
if m.get('IncludeOrgInfo') is not None:
self.include_org_info = m.get('IncludeOrgInfo')
if m.get('IncludeSupportIdps') is not None:
self.include_support_idps = m.get('IncludeSupportIdps')
if m.get('IsQueryAllSubOrgs') is not None:
self.is_query_all_sub_orgs = m.get('IsQueryAllSubOrgs')
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('OrderParam') is not None:
self.order_param_shrink = m.get('OrderParam')
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('OwnerType') is not None:
self.owner_type = m.get('OwnerType')
self.property_filter_param = []
if m.get('PropertyFilterParam') is not None:
for k in m.get('PropertyFilterParam'):
temp_model = FilterUsersShrinkRequestPropertyFilterParam()
self.property_filter_param.append(temp_model.from_map(k))
self.property_key_value_filter_param = []
if m.get('PropertyKeyValueFilterParam') is not None:
for k in m.get('PropertyKeyValueFilterParam'):
temp_model = FilterUsersShrinkRequestPropertyKeyValueFilterParam()
self.property_key_value_filter_param.append(temp_model.from_map(k))
if m.get('Status') is not None:
self.status = m.get('Status')
return self
class FilterUsersResponseBodyUsersExternalInfo(TeaModel):
def __init__(
self,
external_name: str = None,
job_number: str = None,
):
# The account that is associated with the convenience user.
self.external_name = external_name
# The account, student ID, or employee ID that is associated with the convenience user.
self.job_number = job_number
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.external_name is not None:
result['ExternalName'] = self.external_name
if self.job_number is not None:
result['JobNumber'] = self.job_number
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ExternalName') is not None:
self.external_name = m.get('ExternalName')
if m.get('JobNumber') is not None:
self.job_number = m.get('JobNumber')
return self
class FilterUsersResponseBodyUsersOrgList(TeaModel):
def __init__(
self,
org_id: str = None,
org_name: str = None,
):
self.org_id = org_id
self.org_name = org_name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.org_id is not None:
result['OrgId'] = self.org_id
if self.org_name is not None:
result['OrgName'] = self.org_name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('OrgName') is not None:
self.org_name = m.get('OrgName')
return self
class FilterUsersResponseBodyUsersSupportLoginIdps(TeaModel):
def __init__(
self,
idp_id: str = None,
idp_name: str = None,
):
self.idp_id = idp_id
self.idp_name = idp_name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.idp_id is not None:
result['IdpId'] = self.idp_id
if self.idp_name is not None:
result['IdpName'] = self.idp_name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('IdpId') is not None:
self.idp_id = m.get('IdpId')
if m.get('IdpName') is not None:
self.idp_name = m.get('IdpName')
return self
class FilterUsersResponseBodyUsersUserSetPropertiesModelsPropertyValues(TeaModel):
def __init__(
self,
property_value: str = None,
property_value_id: int = None,
):
# The property value.
self.property_value = property_value
# The ID of the property value.
self.property_value_id = property_value_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_value is not None:
result['PropertyValue'] = self.property_value
if self.property_value_id is not None:
result['PropertyValueId'] = self.property_value_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyValue') is not None:
self.property_value = m.get('PropertyValue')
if m.get('PropertyValueId') is not None:
self.property_value_id = m.get('PropertyValueId')
return self
class FilterUsersResponseBodyUsersUserSetPropertiesModels(TeaModel):
def __init__(
self,
property_id: int = None,
property_key: str = None,
property_type: int = None,
property_values: List[FilterUsersResponseBodyUsersUserSetPropertiesModelsPropertyValues] = None,
user_id: int = None,
user_name: str = None,
):
# The property ID.
self.property_id = property_id
# The property name.
self.property_key = property_key
# The property type.
self.property_type = property_type
# The property values.
self.property_values = property_values
# The ID of the convenience user that is bound to the property.
self.user_id = user_id
# The username of the convenience user that is bound to the property.
self.user_name = user_name
def validate(self):
if self.property_values:
for k in self.property_values:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_key is not None:
result['PropertyKey'] = self.property_key
if self.property_type is not None:
result['PropertyType'] = self.property_type
result['PropertyValues'] = []
if self.property_values is not None:
for k in self.property_values:
result['PropertyValues'].append(k.to_map() if k else None)
if self.user_id is not None:
result['UserId'] = self.user_id
if self.user_name is not None:
result['UserName'] = self.user_name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyKey') is not None:
self.property_key = m.get('PropertyKey')
if m.get('PropertyType') is not None:
self.property_type = m.get('PropertyType')
self.property_values = []
if m.get('PropertyValues') is not None:
for k in m.get('PropertyValues'):
temp_model = FilterUsersResponseBodyUsersUserSetPropertiesModelsPropertyValues()
self.property_values.append(temp_model.from_map(k))
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
if m.get('UserName') is not None:
self.user_name = m.get('UserName')
return self
class FilterUsersResponseBodyUsers(TeaModel):
def __init__(
self,
auto_lock_time: str = None,
desktop_count: int = None,
desktop_group_count: int = None,
email: str = None,
enable_admin_access: bool = None,
end_user_id: str = None,
external_info: FilterUsersResponseBodyUsersExternalInfo = None,
id: int = None,
is_tenant_manager: bool = None,
org_list: List[FilterUsersResponseBodyUsersOrgList] = None,
owner_type: str = None,
password_expire_days: int = None,
password_expire_rest_days: int = None,
phone: str = None,
real_nick_name: str = None,
remark: str = None,
status: int = None,
support_login_idps: List[FilterUsersResponseBodyUsersSupportLoginIdps] = None,
user_set_properties_models: List[FilterUsersResponseBodyUsersUserSetPropertiesModels] = None,
):
# The date when a convenience account is automatically locked.
self.auto_lock_time = auto_lock_time
# The number of cloud desktops that are assigned to the convenience user.
self.desktop_count = desktop_count
# The number of cloud desktop pools that are assigned to the convenience user. This value is returned if you set `IncludeDesktopGroupCount` to `true`.
self.desktop_group_count = desktop_group_count
# The email address of the convenience user.
self.email = email
# Indicates whether the convenience user is a local administrator.
#
# Valid values:
#
# * true
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
#
# * false
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
self.enable_admin_access = enable_admin_access
# The username of the convenience user.
self.end_user_id = end_user_id
# The additional information about the convenience user.
self.external_info = external_info
# The ID of the convenience user.
self.id = id
# Indicates whether the convenience user is a tenant administrator.
#
# Valid values:
#
# * true
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
#
# * false
#
# <!-- -->
#
# <!-- -->
#
# <!-- -->
self.is_tenant_manager = is_tenant_manager
self.org_list = org_list
# The type of the account ownership.
#
# Valid values:
#
# * CreateFromManager: administrator-activated
# * Normal: user-activated
self.owner_type = owner_type
# By default, user account passwords do not expire. However, you can set a validity period between 30 and 365 days. Once the period expires, end users must change their password before they can log on to terminals.
#
# > The feature is in invitational preview. If you want to use this feature, submit a ticket.
self.password_expire_days = password_expire_days
# The number of days remaining until the account password expires.
self.password_expire_rest_days = password_expire_rest_days
# The mobile number of the convenience user.
self.phone = phone
# The nickname of the convenience user.
self.real_nick_name = real_nick_name
# The remarks on the convenience user.
self.remark = remark
# The remarks on the convenience account.
#
# Valid values:
#
# * 0: The convenience account is normal.
# * 9: The convenience account is locked.
self.status = status
self.support_login_idps = support_login_idps
# The information about the properties.
self.user_set_properties_models = user_set_properties_models
def validate(self):
if self.external_info:
self.external_info.validate()
if self.org_list:
for k in self.org_list:
if k:
k.validate()
if self.support_login_idps:
for k in self.support_login_idps:
if k:
k.validate()
if self.user_set_properties_models:
for k in self.user_set_properties_models:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.auto_lock_time is not None:
result['AutoLockTime'] = self.auto_lock_time
if self.desktop_count is not None:
result['DesktopCount'] = self.desktop_count
if self.desktop_group_count is not None:
result['DesktopGroupCount'] = self.desktop_group_count
if self.email is not None:
result['Email'] = self.email
if self.enable_admin_access is not None:
result['EnableAdminAccess'] = self.enable_admin_access
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.external_info is not None:
result['ExternalInfo'] = self.external_info.to_map()
if self.id is not None:
result['Id'] = self.id
if self.is_tenant_manager is not None:
result['IsTenantManager'] = self.is_tenant_manager
result['OrgList'] = []
if self.org_list is not None:
for k in self.org_list:
result['OrgList'].append(k.to_map() if k else None)
if self.owner_type is not None:
result['OwnerType'] = self.owner_type
if self.password_expire_days is not None:
result['PasswordExpireDays'] = self.password_expire_days
if self.password_expire_rest_days is not None:
result['PasswordExpireRestDays'] = self.password_expire_rest_days
if self.phone is not None:
result['Phone'] = self.phone
if self.real_nick_name is not None:
result['RealNickName'] = self.real_nick_name
if self.remark is not None:
result['Remark'] = self.remark
if self.status is not None:
result['Status'] = self.status
result['SupportLoginIdps'] = []
if self.support_login_idps is not None:
for k in self.support_login_idps:
result['SupportLoginIdps'].append(k.to_map() if k else None)
result['UserSetPropertiesModels'] = []
if self.user_set_properties_models is not None:
for k in self.user_set_properties_models:
result['UserSetPropertiesModels'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AutoLockTime') is not None:
self.auto_lock_time = m.get('AutoLockTime')
if m.get('DesktopCount') is not None:
self.desktop_count = m.get('DesktopCount')
if m.get('DesktopGroupCount') is not None:
self.desktop_group_count = m.get('DesktopGroupCount')
if m.get('Email') is not None:
self.email = m.get('Email')
if m.get('EnableAdminAccess') is not None:
self.enable_admin_access = m.get('EnableAdminAccess')
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('ExternalInfo') is not None:
temp_model = FilterUsersResponseBodyUsersExternalInfo()
self.external_info = temp_model.from_map(m['ExternalInfo'])
if m.get('Id') is not None:
self.id = m.get('Id')
if m.get('IsTenantManager') is not None:
self.is_tenant_manager = m.get('IsTenantManager')
self.org_list = []
if m.get('OrgList') is not None:
for k in m.get('OrgList'):
temp_model = FilterUsersResponseBodyUsersOrgList()
self.org_list.append(temp_model.from_map(k))
if m.get('OwnerType') is not None:
self.owner_type = m.get('OwnerType')
if m.get('PasswordExpireDays') is not None:
self.password_expire_days = m.get('PasswordExpireDays')
if m.get('PasswordExpireRestDays') is not None:
self.password_expire_rest_days = m.get('PasswordExpireRestDays')
if m.get('Phone') is not None:
self.phone = m.get('Phone')
if m.get('RealNickName') is not None:
self.real_nick_name = m.get('RealNickName')
if m.get('Remark') is not None:
self.remark = m.get('Remark')
if m.get('Status') is not None:
self.status = m.get('Status')
self.support_login_idps = []
if m.get('SupportLoginIdps') is not None:
for k in m.get('SupportLoginIdps'):
temp_model = FilterUsersResponseBodyUsersSupportLoginIdps()
self.support_login_idps.append(temp_model.from_map(k))
self.user_set_properties_models = []
if m.get('UserSetPropertiesModels') is not None:
for k in m.get('UserSetPropertiesModels'):
temp_model = FilterUsersResponseBodyUsersUserSetPropertiesModels()
self.user_set_properties_models.append(temp_model.from_map(k))
return self
class FilterUsersResponseBody(TeaModel):
def __init__(
self,
next_token: str = None,
request_id: str = None,
users: List[FilterUsersResponseBodyUsers] = None,
):
# The pagination token that is used in the next request to retrieve a new page of results. If not all results are returned in a query, a value is returned for the NextToken parameter. In this case, you can use the returned NextToken value to start the next query.
self.next_token = next_token
# The request ID.
self.request_id = request_id
# The convenience accounts.
self.users = users
def validate(self):
if self.users:
for k in self.users:
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.request_id is not None:
result['RequestId'] = self.request_id
result['Users'] = []
if self.users is not None:
for k in self.users:
result['Users'].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('RequestId') is not None:
self.request_id = m.get('RequestId')
self.users = []
if m.get('Users') is not None:
for k in m.get('Users'):
temp_model = FilterUsersResponseBodyUsers()
self.users.append(temp_model.from_map(k))
return self
class FilterUsersResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: FilterUsersResponseBody = 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 = FilterUsersResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetManagerInfoByAuthCodeRequest(TeaModel):
def __init__(
self,
auth_code: str = None,
):
# The authorization code.
#
# This parameter is required.
self.auth_code = auth_code
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.auth_code is not None:
result['AuthCode'] = self.auth_code
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AuthCode') is not None:
self.auth_code = m.get('AuthCode')
return self
class GetManagerInfoByAuthCodeResponseBody(TeaModel):
def __init__(
self,
org_id: str = None,
phone: str = None,
request_id: str = None,
team_name: str = None,
user_name: str = None,
wa_id: int = None,
):
# The organization ID.
self.org_id = org_id
# The mobile number.
self.phone = phone
# The request ID.
self.request_id = request_id
# The team name.
self.team_name = team_name
# The tenant name.
self.user_name = user_name
# The ID of the Elastic Desktop Service account.
self.wa_id = wa_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.org_id is not None:
result['OrgId'] = self.org_id
if self.phone is not None:
result['Phone'] = self.phone
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.team_name is not None:
result['TeamName'] = self.team_name
if self.user_name is not None:
result['UserName'] = self.user_name
if self.wa_id is not None:
result['WaId'] = self.wa_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('Phone') is not None:
self.phone = m.get('Phone')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TeamName') is not None:
self.team_name = m.get('TeamName')
if m.get('UserName') is not None:
self.user_name = m.get('UserName')
if m.get('WaId') is not None:
self.wa_id = m.get('WaId')
return self
class GetManagerInfoByAuthCodeResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: GetManagerInfoByAuthCodeResponseBody = 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 = GetManagerInfoByAuthCodeResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class InitTenantAliasResponseBodyAliasInfo(TeaModel):
def __init__(
self,
alias_edit_disabled_reason: str = None,
alias_editable: bool = None,
alias_source_type: str = None,
next_modify_time: str = None,
):
self.alias_edit_disabled_reason = alias_edit_disabled_reason
self.alias_editable = alias_editable
self.alias_source_type = alias_source_type
self.next_modify_time = next_modify_time
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.alias_edit_disabled_reason is not None:
result['AliasEditDisabledReason'] = self.alias_edit_disabled_reason
if self.alias_editable is not None:
result['AliasEditable'] = self.alias_editable
if self.alias_source_type is not None:
result['AliasSourceType'] = self.alias_source_type
if self.next_modify_time is not None:
result['NextModifyTime'] = self.next_modify_time
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AliasEditDisabledReason') is not None:
self.alias_edit_disabled_reason = m.get('AliasEditDisabledReason')
if m.get('AliasEditable') is not None:
self.alias_editable = m.get('AliasEditable')
if m.get('AliasSourceType') is not None:
self.alias_source_type = m.get('AliasSourceType')
if m.get('NextModifyTime') is not None:
self.next_modify_time = m.get('NextModifyTime')
return self
class InitTenantAliasResponseBody(TeaModel):
def __init__(
self,
alias_info: InitTenantAliasResponseBodyAliasInfo = None,
data: str = None,
request_id: str = None,
):
self.alias_info = alias_info
self.data = data
self.request_id = request_id
def validate(self):
if self.alias_info:
self.alias_info.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.alias_info is not None:
result['AliasInfo'] = self.alias_info.to_map()
if self.data is not None:
result['Data'] = self.data
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('AliasInfo') is not None:
temp_model = InitTenantAliasResponseBodyAliasInfo()
self.alias_info = temp_model.from_map(m['AliasInfo'])
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class InitTenantAliasResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: InitTenantAliasResponseBody = 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 = InitTenantAliasResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListPropertyResponseBodyPropertiesPropertyValues(TeaModel):
def __init__(
self,
property_value: str = None,
property_value_id: int = None,
):
# The value of the property.
self.property_value = property_value
# The ID of the property value.
self.property_value_id = property_value_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_value is not None:
result['PropertyValue'] = self.property_value
if self.property_value_id is not None:
result['PropertyValueId'] = self.property_value_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyValue') is not None:
self.property_value = m.get('PropertyValue')
if m.get('PropertyValueId') is not None:
self.property_value_id = m.get('PropertyValueId')
return self
class ListPropertyResponseBodyProperties(TeaModel):
def __init__(
self,
property_id: int = None,
property_key: str = None,
property_values: List[ListPropertyResponseBodyPropertiesPropertyValues] = None,
):
# The ID of the property.
self.property_id = property_id
# The name of the property.
self.property_key = property_key
# Details about the property values.
self.property_values = property_values
def validate(self):
if self.property_values:
for k in self.property_values:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_key is not None:
result['PropertyKey'] = self.property_key
result['PropertyValues'] = []
if self.property_values is not None:
for k in self.property_values:
result['PropertyValues'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyKey') is not None:
self.property_key = m.get('PropertyKey')
self.property_values = []
if m.get('PropertyValues') is not None:
for k in m.get('PropertyValues'):
temp_model = ListPropertyResponseBodyPropertiesPropertyValues()
self.property_values.append(temp_model.from_map(k))
return self
class ListPropertyResponseBody(TeaModel):
def __init__(
self,
next_token: str = None,
properties: List[ListPropertyResponseBodyProperties] = None,
request_id: str = None,
):
# The token that is used for the next query. If this parameter is empty, all results have been returned.
self.next_token = next_token
# The information about the properties.
self.properties = properties
# The ID of the request.
self.request_id = request_id
def validate(self):
if self.properties:
for k in self.properties:
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
result['Properties'] = []
if self.properties is not None:
for k in self.properties:
result['Properties'].append(k.to_map() if k else None)
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('NextToken') is not None:
self.next_token = m.get('NextToken')
self.properties = []
if m.get('Properties') is not None:
for k in m.get('Properties'):
temp_model = ListPropertyResponseBodyProperties()
self.properties.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListPropertyResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListPropertyResponseBody = 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 = ListPropertyResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListPropertyValueRequest(TeaModel):
def __init__(
self,
property_id: int = None,
):
# The ID of the property. You can call the [ListProperty](https://help.aliyun.com/document_detail/410890.html) operation to query the property ID.
#
# This parameter is required.
self.property_id = property_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
return self
class ListPropertyValueResponseBodyPropertyValueInfos(TeaModel):
def __init__(
self,
property_value: str = None,
property_value_id: int = None,
):
# The value of the property.
self.property_value = property_value
# The ID of the property value.
self.property_value_id = property_value_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_value is not None:
result['PropertyValue'] = self.property_value
if self.property_value_id is not None:
result['PropertyValueId'] = self.property_value_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyValue') is not None:
self.property_value = m.get('PropertyValue')
if m.get('PropertyValueId') is not None:
self.property_value_id = m.get('PropertyValueId')
return self
class ListPropertyValueResponseBody(TeaModel):
def __init__(
self,
property_value_infos: List[ListPropertyValueResponseBodyPropertyValueInfos] = None,
request_id: str = None,
):
# Details about property values.
self.property_value_infos = property_value_infos
# The ID of the request.
self.request_id = request_id
def validate(self):
if self.property_value_infos:
for k in self.property_value_infos:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['PropertyValueInfos'] = []
if self.property_value_infos is not None:
for k in self.property_value_infos:
result['PropertyValueInfos'].append(k.to_map() if k else None)
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()
self.property_value_infos = []
if m.get('PropertyValueInfos') is not None:
for k in m.get('PropertyValueInfos'):
temp_model = ListPropertyValueResponseBodyPropertyValueInfos()
self.property_value_infos.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListPropertyValueResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListPropertyValueResponseBody = 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 = ListPropertyValueResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class LockMfaDeviceRequest(TeaModel):
def __init__(
self,
ad_domain: str = None,
serial_number: str = None,
):
# The domain of the Active Directory (AD) workspace.
self.ad_domain = ad_domain
# The serial number of the virtual MFA device. The serial number is unique for each device.
self.serial_number = serial_number
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ad_domain is not None:
result['AdDomain'] = self.ad_domain
if self.serial_number is not None:
result['SerialNumber'] = self.serial_number
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AdDomain') is not None:
self.ad_domain = m.get('AdDomain')
if m.get('SerialNumber') is not None:
self.serial_number = m.get('SerialNumber')
return self
class LockMfaDeviceResponseBody(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 LockMfaDeviceResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: LockMfaDeviceResponseBody = 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 = LockMfaDeviceResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class LockUsersRequest(TeaModel):
def __init__(
self,
logout_session: bool = None,
users: List[str] = None,
):
self.logout_session = logout_session
# The usernames of the convenience users that you want to lock.
#
# This parameter is required.
self.users = users
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.logout_session is not None:
result['LogoutSession'] = self.logout_session
if self.users is not None:
result['Users'] = self.users
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('LogoutSession') is not None:
self.logout_session = m.get('LogoutSession')
if m.get('Users') is not None:
self.users = m.get('Users')
return self
class LockUsersResponseBodyLockUsersResultFailedUsers(TeaModel):
def __init__(
self,
end_user_id: str = None,
error_code: str = None,
error_message: str = None,
):
# The ID of the convenience user that failed to be locked.
self.end_user_id = end_user_id
# The error code.
self.error_code = error_code
# The error message.
self.error_message = error_message
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.error_code is not None:
result['ErrorCode'] = self.error_code
if self.error_message is not None:
result['ErrorMessage'] = self.error_message
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('ErrorCode') is not None:
self.error_code = m.get('ErrorCode')
if m.get('ErrorMessage') is not None:
self.error_message = m.get('ErrorMessage')
return self
class LockUsersResponseBodyLockUsersResult(TeaModel):
def __init__(
self,
failed_users: List[LockUsersResponseBodyLockUsersResultFailedUsers] = None,
locked_users: List[str] = None,
):
# The convenience users that failed to be locked.
self.failed_users = failed_users
# The convenience users that were locked.
self.locked_users = locked_users
def validate(self):
if self.failed_users:
for k in self.failed_users:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['FailedUsers'] = []
if self.failed_users is not None:
for k in self.failed_users:
result['FailedUsers'].append(k.to_map() if k else None)
if self.locked_users is not None:
result['LockedUsers'] = self.locked_users
return result
def from_map(self, m: dict = None):
m = m or dict()
self.failed_users = []
if m.get('FailedUsers') is not None:
for k in m.get('FailedUsers'):
temp_model = LockUsersResponseBodyLockUsersResultFailedUsers()
self.failed_users.append(temp_model.from_map(k))
if m.get('LockedUsers') is not None:
self.locked_users = m.get('LockedUsers')
return self
class LockUsersResponseBody(TeaModel):
def __init__(
self,
lock_users_result: LockUsersResponseBodyLockUsersResult = None,
request_id: str = None,
):
# The result of the locking the convenience user.
self.lock_users_result = lock_users_result
# The ID of the request.
self.request_id = request_id
def validate(self):
if self.lock_users_result:
self.lock_users_result.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.lock_users_result is not None:
result['LockUsersResult'] = self.lock_users_result.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('LockUsersResult') is not None:
temp_model = LockUsersResponseBodyLockUsersResult()
self.lock_users_result = temp_model.from_map(m['LockUsersResult'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class LockUsersResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: LockUsersResponseBody = 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 = LockUsersResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ModifyOrgRequest(TeaModel):
def __init__(
self,
org_id: str = None,
org_name: str = None,
):
# This parameter is required.
self.org_id = org_id
# This parameter is required.
self.org_name = org_name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.org_id is not None:
result['OrgId'] = self.org_id
if self.org_name is not None:
result['OrgName'] = self.org_name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
if m.get('OrgName') is not None:
self.org_name = m.get('OrgName')
return self
class ModifyOrgResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
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 ModifyOrgResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ModifyOrgResponseBody = 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 = ModifyOrgResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ModifyUserRequest(TeaModel):
def __init__(
self,
email: str = None,
end_user_id: str = None,
phone: str = None,
):
# The email address of the convenience user. For a user-activated convenience user, the email address or mobile number must be verified. You can choose to verify the email address or the mobile number. For an administrator-activated convenience user, the email address and mobile number can be left empty.
self.email = email
# The name of the user.
#
# This parameter is required.
self.end_user_id = end_user_id
# The mobile number of the convenience user. For a user-activated convenience user, the email address or mobile number must be verified. You can choose to verify the email address or the mobile number. For an administrator-activated convenience user, the email address and mobile number can be left empty.
#
# > Accounts created on the International site (alibabacloud.com) do not support mobile number-based authentication.
self.phone = phone
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.email is not None:
result['Email'] = self.email
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.phone is not None:
result['Phone'] = self.phone
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Email') is not None:
self.email = m.get('Email')
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('Phone') is not None:
self.phone = m.get('Phone')
return self
class ModifyUserResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The ID of the request.
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 ModifyUserResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ModifyUserResponseBody = 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 = ModifyUserResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class MoveOrgRequest(TeaModel):
def __init__(
self,
new_parent_org_id: str = None,
org_id: str = None,
):
# This parameter is required.
self.new_parent_org_id = new_parent_org_id
# This parameter is required.
self.org_id = org_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.new_parent_org_id is not None:
result['NewParentOrgId'] = self.new_parent_org_id
if self.org_id is not None:
result['OrgId'] = self.org_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('NewParentOrgId') is not None:
self.new_parent_org_id = m.get('NewParentOrgId')
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
return self
class MoveOrgResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
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 MoveOrgResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: MoveOrgResponseBody = 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 = MoveOrgResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QuerySyncStatusByAliUidResponseBodyData(TeaModel):
def __init__(
self,
ali_uid: int = None,
corp_id: str = None,
gmt_created: str = None,
gmt_modified: str = None,
id: int = None,
latest_begin_time: str = None,
latest_end_time: str = None,
latest_success_time: str = None,
status: str = None,
):
self.ali_uid = ali_uid
self.corp_id = corp_id
self.gmt_created = gmt_created
self.gmt_modified = gmt_modified
self.id = id
self.latest_begin_time = latest_begin_time
self.latest_end_time = latest_end_time
self.latest_success_time = latest_success_time
self.status = status
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ali_uid is not None:
result['AliUid'] = self.ali_uid
if self.corp_id is not None:
result['CorpId'] = self.corp_id
if self.gmt_created is not None:
result['GmtCreated'] = self.gmt_created
if self.gmt_modified is not None:
result['GmtModified'] = self.gmt_modified
if self.id is not None:
result['Id'] = self.id
if self.latest_begin_time is not None:
result['LatestBeginTime'] = self.latest_begin_time
if self.latest_end_time is not None:
result['LatestEndTime'] = self.latest_end_time
if self.latest_success_time is not None:
result['LatestSuccessTime'] = self.latest_success_time
if self.status is not None:
result['Status'] = self.status
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AliUid') is not None:
self.ali_uid = m.get('AliUid')
if m.get('CorpId') is not None:
self.corp_id = m.get('CorpId')
if m.get('GmtCreated') is not None:
self.gmt_created = m.get('GmtCreated')
if m.get('GmtModified') is not None:
self.gmt_modified = m.get('GmtModified')
if m.get('Id') is not None:
self.id = m.get('Id')
if m.get('LatestBeginTime') is not None:
self.latest_begin_time = m.get('LatestBeginTime')
if m.get('LatestEndTime') is not None:
self.latest_end_time = m.get('LatestEndTime')
if m.get('LatestSuccessTime') is not None:
self.latest_success_time = m.get('LatestSuccessTime')
if m.get('Status') is not None:
self.status = m.get('Status')
return self
class QuerySyncStatusByAliUidResponseBody(TeaModel):
def __init__(
self,
code: str = None,
data: QuerySyncStatusByAliUidResponseBodyData = None,
http_status_code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
self.code = code
self.data = data
self.http_status_code = http_status_code
self.message = message
self.request_id = request_id
self.success = success
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data.to_map()
if self.http_status_code is not None:
result['HttpStatusCode'] = self.http_status_code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
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('Data') is not None:
temp_model = QuerySyncStatusByAliUidResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('HttpStatusCode') is not None:
self.http_status_code = m.get('HttpStatusCode')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class QuerySyncStatusByAliUidResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: QuerySyncStatusByAliUidResponseBody = 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 = QuerySyncStatusByAliUidResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RemoveMfaDeviceRequest(TeaModel):
def __init__(
self,
ad_domain: str = None,
serial_number: str = None,
):
# The domain of the Active Directory (AD) workspace.
self.ad_domain = ad_domain
# The serial number of the virtual MFA device. The serial number is unique for each device.
#
# This parameter is required.
self.serial_number = serial_number
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ad_domain is not None:
result['AdDomain'] = self.ad_domain
if self.serial_number is not None:
result['SerialNumber'] = self.serial_number
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AdDomain') is not None:
self.ad_domain = m.get('AdDomain')
if m.get('SerialNumber') is not None:
self.serial_number = m.get('SerialNumber')
return self
class RemoveMfaDeviceResponseBody(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 RemoveMfaDeviceResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RemoveMfaDeviceResponseBody = 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 = RemoveMfaDeviceResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RemoveOrgRequest(TeaModel):
def __init__(
self,
org_id: str = None,
):
# This parameter is required.
self.org_id = org_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.org_id is not None:
result['OrgId'] = self.org_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OrgId') is not None:
self.org_id = m.get('OrgId')
return self
class RemoveOrgResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
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 RemoveOrgResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RemoveOrgResponseBody = 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 = RemoveOrgResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RemovePropertyRequest(TeaModel):
def __init__(
self,
property_id: int = None,
):
# The ID of the property. You can call the [ListProperty](https://help.aliyun.com/document_detail/410890.html) operation to query the property ID.
#
# This parameter is required.
self.property_id = property_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
return self
class RemovePropertyResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The ID of the request.
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 RemovePropertyResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RemovePropertyResponseBody = 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 = RemovePropertyResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RemoveUsersRequest(TeaModel):
def __init__(
self,
users: List[str] = None,
):
# The usernames of the convenience users that you want to remove.
#
# This parameter is required.
self.users = users
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.users is not None:
result['Users'] = self.users
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Users') is not None:
self.users = m.get('Users')
return self
class RemoveUsersResponseBodyRemoveUsersResultFailedUsers(TeaModel):
def __init__(
self,
end_user_id: str = None,
error_code: str = None,
error_message: str = None,
):
# The ID of the convenience user that failed to be removed.
self.end_user_id = end_user_id
# The error code.
self.error_code = error_code
# The error message.
self.error_message = error_message
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.error_code is not None:
result['ErrorCode'] = self.error_code
if self.error_message is not None:
result['ErrorMessage'] = self.error_message
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('ErrorCode') is not None:
self.error_code = m.get('ErrorCode')
if m.get('ErrorMessage') is not None:
self.error_message = m.get('ErrorMessage')
return self
class RemoveUsersResponseBodyRemoveUsersResult(TeaModel):
def __init__(
self,
failed_users: List[RemoveUsersResponseBodyRemoveUsersResultFailedUsers] = None,
removed_users: List[str] = None,
):
# The convenience users that failed to be removed.
self.failed_users = failed_users
# The convenience users that were removed.
self.removed_users = removed_users
def validate(self):
if self.failed_users:
for k in self.failed_users:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['FailedUsers'] = []
if self.failed_users is not None:
for k in self.failed_users:
result['FailedUsers'].append(k.to_map() if k else None)
if self.removed_users is not None:
result['RemovedUsers'] = self.removed_users
return result
def from_map(self, m: dict = None):
m = m or dict()
self.failed_users = []
if m.get('FailedUsers') is not None:
for k in m.get('FailedUsers'):
temp_model = RemoveUsersResponseBodyRemoveUsersResultFailedUsers()
self.failed_users.append(temp_model.from_map(k))
if m.get('RemovedUsers') is not None:
self.removed_users = m.get('RemovedUsers')
return self
class RemoveUsersResponseBody(TeaModel):
def __init__(
self,
remove_users_result: RemoveUsersResponseBodyRemoveUsersResult = None,
request_id: str = None,
):
# The result of removing the convenience user.
self.remove_users_result = remove_users_result
# The ID of the request.
self.request_id = request_id
def validate(self):
if self.remove_users_result:
self.remove_users_result.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.remove_users_result is not None:
result['RemoveUsersResult'] = self.remove_users_result.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('RemoveUsersResult') is not None:
temp_model = RemoveUsersResponseBodyRemoveUsersResult()
self.remove_users_result = temp_model.from_map(m['RemoveUsersResult'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class RemoveUsersResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RemoveUsersResponseBody = 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 = RemoveUsersResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ResetUserPasswordRequest(TeaModel):
def __init__(
self,
notify_type: int = None,
users: List[str] = None,
):
# The method to notify the user after the password is reset.
#
# > Alibaba Cloud accounts of the international site do not support sending notification through text messages.
self.notify_type = notify_type
# The names of the convenience users whose passwords you want to reset.
#
# This parameter is required.
self.users = users
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.notify_type is not None:
result['NotifyType'] = self.notify_type
if self.users is not None:
result['Users'] = self.users
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('NotifyType') is not None:
self.notify_type = m.get('NotifyType')
if m.get('Users') is not None:
self.users = m.get('Users')
return self
class ResetUserPasswordResponseBodyResetUsersResultFailedUsers(TeaModel):
def __init__(
self,
end_user_id: str = None,
error_code: str = None,
error_message: str = None,
):
# The ID of the convenience user whose password failed to be reset.
self.end_user_id = end_user_id
# The error code.
self.error_code = error_code
# The error message.
self.error_message = error_message
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.error_code is not None:
result['ErrorCode'] = self.error_code
if self.error_message is not None:
result['ErrorMessage'] = self.error_message
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('ErrorCode') is not None:
self.error_code = m.get('ErrorCode')
if m.get('ErrorMessage') is not None:
self.error_message = m.get('ErrorMessage')
return self
class ResetUserPasswordResponseBodyResetUsersResult(TeaModel):
def __init__(
self,
failed_users: List[ResetUserPasswordResponseBodyResetUsersResultFailedUsers] = None,
reset_users: List[str] = None,
):
# The information about the convenience users whose passwords failed to be reset.
self.failed_users = failed_users
# The convenience users to which the system sent a password reset email.
self.reset_users = reset_users
def validate(self):
if self.failed_users:
for k in self.failed_users:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['FailedUsers'] = []
if self.failed_users is not None:
for k in self.failed_users:
result['FailedUsers'].append(k.to_map() if k else None)
if self.reset_users is not None:
result['ResetUsers'] = self.reset_users
return result
def from_map(self, m: dict = None):
m = m or dict()
self.failed_users = []
if m.get('FailedUsers') is not None:
for k in m.get('FailedUsers'):
temp_model = ResetUserPasswordResponseBodyResetUsersResultFailedUsers()
self.failed_users.append(temp_model.from_map(k))
if m.get('ResetUsers') is not None:
self.reset_users = m.get('ResetUsers')
return self
class ResetUserPasswordResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
reset_users_result: ResetUserPasswordResponseBodyResetUsersResult = None,
):
# The ID of the request.
self.request_id = request_id
# The result of resetting the password of the convenience user.
self.reset_users_result = reset_users_result
def validate(self):
if self.reset_users_result:
self.reset_users_result.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.reset_users_result is not None:
result['ResetUsersResult'] = self.reset_users_result.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('ResetUsersResult') is not None:
temp_model = ResetUserPasswordResponseBodyResetUsersResult()
self.reset_users_result = temp_model.from_map(m['ResetUsersResult'])
return self
class ResetUserPasswordResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ResetUserPasswordResponseBody = 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 = ResetUserPasswordResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SetUserPropertyValueRequest(TeaModel):
def __init__(
self,
property_id: int = None,
property_value_id: int = None,
user_id: int = None,
user_name: str = None,
):
# The property ID. You can call the [ListProperty](~~ListProperty~~) operation to query the property ID.
#
# This parameter is required.
self.property_id = property_id
# The ID of the property value. You can call the [ListProperty](~~ListProperty~~) operation to query the ID of the property value.
#
# This parameter is required.
self.property_value_id = property_value_id
# The ID of the convenience user. You can call the [DescribeUsers](~~DescribeUsers~~) operation to query the user ID.
#
# This parameter is required.
self.user_id = user_id
# The username of the convenience user.
#
# This parameter is required.
self.user_name = user_name
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_value_id is not None:
result['PropertyValueId'] = self.property_value_id
if self.user_id is not None:
result['UserId'] = self.user_id
if self.user_name is not None:
result['UserName'] = self.user_name
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyValueId') is not None:
self.property_value_id = m.get('PropertyValueId')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
if m.get('UserName') is not None:
self.user_name = m.get('UserName')
return self
class SetUserPropertyValueResponseBody(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 SetUserPropertyValueResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: SetUserPropertyValueResponseBody = 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 = SetUserPropertyValueResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SyncAllEduInfoResponseBody(TeaModel):
def __init__(
self,
code: str = None,
http_status_code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
self.code = code
self.http_status_code = http_status_code
self.message = message
self.request_id = request_id
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.http_status_code is not None:
result['HttpStatusCode'] = self.http_status_code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('HttpStatusCode') is not None:
self.http_status_code = m.get('HttpStatusCode')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class SyncAllEduInfoResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: SyncAllEduInfoResponseBody = 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 = SyncAllEduInfoResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UnlockMfaDeviceRequest(TeaModel):
def __init__(
self,
ad_domain: str = None,
serial_number: str = None,
):
# The domain of the Active Directory (AD) workspace.
self.ad_domain = ad_domain
# The serial number of the virtual MFA device. The serial number is unique for each device.
#
# This parameter is required.
self.serial_number = serial_number
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ad_domain is not None:
result['AdDomain'] = self.ad_domain
if self.serial_number is not None:
result['SerialNumber'] = self.serial_number
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AdDomain') is not None:
self.ad_domain = m.get('AdDomain')
if m.get('SerialNumber') is not None:
self.serial_number = m.get('SerialNumber')
return self
class UnlockMfaDeviceResponseBody(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 UnlockMfaDeviceResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UnlockMfaDeviceResponseBody = 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 = UnlockMfaDeviceResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UnlockUsersRequest(TeaModel):
def __init__(
self,
auto_lock_time: str = None,
users: List[str] = None,
):
# The date on which the convenience users are automatically locked.
self.auto_lock_time = auto_lock_time
# The usernames of the convenience users that you want to unlock.
#
# This parameter is required.
self.users = users
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.auto_lock_time is not None:
result['AutoLockTime'] = self.auto_lock_time
if self.users is not None:
result['Users'] = self.users
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AutoLockTime') is not None:
self.auto_lock_time = m.get('AutoLockTime')
if m.get('Users') is not None:
self.users = m.get('Users')
return self
class UnlockUsersResponseBodyUnlockUsersResultFailedUsers(TeaModel):
def __init__(
self,
end_user_id: str = None,
error_code: str = None,
error_message: str = None,
):
# The ID of the convenience user that failed to be unlocked.
self.end_user_id = end_user_id
# The error code.
self.error_code = error_code
# The error message.
self.error_message = error_message
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.end_user_id is not None:
result['EndUserId'] = self.end_user_id
if self.error_code is not None:
result['ErrorCode'] = self.error_code
if self.error_message is not None:
result['ErrorMessage'] = self.error_message
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('EndUserId') is not None:
self.end_user_id = m.get('EndUserId')
if m.get('ErrorCode') is not None:
self.error_code = m.get('ErrorCode')
if m.get('ErrorMessage') is not None:
self.error_message = m.get('ErrorMessage')
return self
class UnlockUsersResponseBodyUnlockUsersResult(TeaModel):
def __init__(
self,
failed_users: List[UnlockUsersResponseBodyUnlockUsersResultFailedUsers] = None,
unlocked_users: List[str] = None,
):
# The convenience users that failed to be unlocked.
self.failed_users = failed_users
# The convenience users that were unlocked.
self.unlocked_users = unlocked_users
def validate(self):
if self.failed_users:
for k in self.failed_users:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['FailedUsers'] = []
if self.failed_users is not None:
for k in self.failed_users:
result['FailedUsers'].append(k.to_map() if k else None)
if self.unlocked_users is not None:
result['UnlockedUsers'] = self.unlocked_users
return result
def from_map(self, m: dict = None):
m = m or dict()
self.failed_users = []
if m.get('FailedUsers') is not None:
for k in m.get('FailedUsers'):
temp_model = UnlockUsersResponseBodyUnlockUsersResultFailedUsers()
self.failed_users.append(temp_model.from_map(k))
if m.get('UnlockedUsers') is not None:
self.unlocked_users = m.get('UnlockedUsers')
return self
class UnlockUsersResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
unlock_users_result: UnlockUsersResponseBodyUnlockUsersResult = None,
):
# The ID of the request.
self.request_id = request_id
# The result of unlocking the convenience user.
self.unlock_users_result = unlock_users_result
def validate(self):
if self.unlock_users_result:
self.unlock_users_result.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.unlock_users_result is not None:
result['UnlockUsersResult'] = self.unlock_users_result.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('UnlockUsersResult') is not None:
temp_model = UnlockUsersResponseBodyUnlockUsersResult()
self.unlock_users_result = temp_model.from_map(m['UnlockUsersResult'])
return self
class UnlockUsersResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UnlockUsersResponseBody = 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 = UnlockUsersResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UpdatePropertyRequestPropertyValues(TeaModel):
def __init__(
self,
property_value: str = None,
property_value_id: int = None,
):
# The new property value.
self.property_value = property_value
# The ID of property value that you want to modify. You can call the [ListProperty](https://help.aliyun.com/document_detail/410890.html) operation to query the property value ID.
self.property_value_id = property_value_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_value is not None:
result['PropertyValue'] = self.property_value
if self.property_value_id is not None:
result['PropertyValueId'] = self.property_value_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyValue') is not None:
self.property_value = m.get('PropertyValue')
if m.get('PropertyValueId') is not None:
self.property_value_id = m.get('PropertyValueId')
return self
class UpdatePropertyRequest(TeaModel):
def __init__(
self,
property_id: int = None,
property_key: str = None,
property_values: List[UpdatePropertyRequestPropertyValues] = None,
):
# The ID of the property that you want to modify. You can call the [ListProperty](https://help.aliyun.com/document_detail/410890.html) operation to query the property ID.
#
# This parameter is required.
self.property_id = property_id
# The new property name.
#
# This parameter is required.
self.property_key = property_key
# The values of property.
self.property_values = property_values
def validate(self):
if self.property_values:
for k in self.property_values:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_key is not None:
result['PropertyKey'] = self.property_key
result['PropertyValues'] = []
if self.property_values is not None:
for k in self.property_values:
result['PropertyValues'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyKey') is not None:
self.property_key = m.get('PropertyKey')
self.property_values = []
if m.get('PropertyValues') is not None:
for k in m.get('PropertyValues'):
temp_model = UpdatePropertyRequestPropertyValues()
self.property_values.append(temp_model.from_map(k))
return self
class UpdatePropertyResponseBodyUpdateResultSavePropertyValueModelFailedPropertyValues(TeaModel):
def __init__(
self,
error_code: str = None,
error_message: str = None,
property_id: int = None,
property_value: str = None,
):
# The error code.
self.error_code = error_code
# The error message.
self.error_message = error_message
# The ID of the property.
self.property_id = property_id
# The value of the property.
self.property_value = property_value
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.error_code is not None:
result['ErrorCode'] = self.error_code
if self.error_message is not None:
result['ErrorMessage'] = self.error_message
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_value is not None:
result['PropertyValue'] = self.property_value
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ErrorCode') is not None:
self.error_code = m.get('ErrorCode')
if m.get('ErrorMessage') is not None:
self.error_message = m.get('ErrorMessage')
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyValue') is not None:
self.property_value = m.get('PropertyValue')
return self
class UpdatePropertyResponseBodyUpdateResultSavePropertyValueModelSavePropertyValues(TeaModel):
def __init__(
self,
property_value: str = None,
property_value_id: int = None,
):
# The value of the property.
self.property_value = property_value
# The ID of the property value.
self.property_value_id = property_value_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_value is not None:
result['PropertyValue'] = self.property_value
if self.property_value_id is not None:
result['PropertyValueId'] = self.property_value_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyValue') is not None:
self.property_value = m.get('PropertyValue')
if m.get('PropertyValueId') is not None:
self.property_value_id = m.get('PropertyValueId')
return self
class UpdatePropertyResponseBodyUpdateResultSavePropertyValueModel(TeaModel):
def __init__(
self,
failed_property_values: List[UpdatePropertyResponseBodyUpdateResultSavePropertyValueModelFailedPropertyValues] = None,
save_property_values: List[UpdatePropertyResponseBodyUpdateResultSavePropertyValueModelSavePropertyValues] = None,
):
# The property values that failed to be modified.
self.failed_property_values = failed_property_values
# The property values that were modified.
self.save_property_values = save_property_values
def validate(self):
if self.failed_property_values:
for k in self.failed_property_values:
if k:
k.validate()
if self.save_property_values:
for k in self.save_property_values:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['FailedPropertyValues'] = []
if self.failed_property_values is not None:
for k in self.failed_property_values:
result['FailedPropertyValues'].append(k.to_map() if k else None)
result['SavePropertyValues'] = []
if self.save_property_values is not None:
for k in self.save_property_values:
result['SavePropertyValues'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
self.failed_property_values = []
if m.get('FailedPropertyValues') is not None:
for k in m.get('FailedPropertyValues'):
temp_model = UpdatePropertyResponseBodyUpdateResultSavePropertyValueModelFailedPropertyValues()
self.failed_property_values.append(temp_model.from_map(k))
self.save_property_values = []
if m.get('SavePropertyValues') is not None:
for k in m.get('SavePropertyValues'):
temp_model = UpdatePropertyResponseBodyUpdateResultSavePropertyValueModelSavePropertyValues()
self.save_property_values.append(temp_model.from_map(k))
return self
class UpdatePropertyResponseBodyUpdateResult(TeaModel):
def __init__(
self,
property_id: int = None,
property_key: str = None,
save_property_value_model: UpdatePropertyResponseBodyUpdateResultSavePropertyValueModel = None,
):
# The ID of the property.
self.property_id = property_id
# The name of the property.
self.property_key = property_key
# The result of the property value modification.
self.save_property_value_model = save_property_value_model
def validate(self):
if self.save_property_value_model:
self.save_property_value_model.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.property_id is not None:
result['PropertyId'] = self.property_id
if self.property_key is not None:
result['PropertyKey'] = self.property_key
if self.save_property_value_model is not None:
result['SavePropertyValueModel'] = self.save_property_value_model.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('PropertyId') is not None:
self.property_id = m.get('PropertyId')
if m.get('PropertyKey') is not None:
self.property_key = m.get('PropertyKey')
if m.get('SavePropertyValueModel') is not None:
temp_model = UpdatePropertyResponseBodyUpdateResultSavePropertyValueModel()
self.save_property_value_model = temp_model.from_map(m['SavePropertyValueModel'])
return self
class UpdatePropertyResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
update_result: UpdatePropertyResponseBodyUpdateResult = None,
):
# The ID of the request.
self.request_id = request_id
# The result of the modification.
self.update_result = update_result
def validate(self):
if self.update_result:
self.update_result.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.update_result is not None:
result['UpdateResult'] = self.update_result.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('UpdateResult') is not None:
temp_model = UpdatePropertyResponseBodyUpdateResult()
self.update_result = temp_model.from_map(m['UpdateResult'])
return self
class UpdatePropertyResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UpdatePropertyResponseBody = 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 = UpdatePropertyResponseBody()
self.body = temp_model.from_map(m['body'])
return self