diff --git a/docs/services.rst b/docs/services.rst index 80d868d..36af470 100644 --- a/docs/services.rst +++ b/docs/services.rst @@ -150,6 +150,13 @@ UBill :members: +UClickhouse +----------- + +.. autoclass:: ucloud.services.uclickhouse.client.UClickhouseClient + :members: + + UCompShare ---------- @@ -199,6 +206,13 @@ UEC :members: +UES +--- + +.. autoclass:: ucloud.services.ues.client.UESClient + :members: + + UFS --- @@ -220,6 +234,13 @@ UGN :members: +UHadoop +------- + +.. autoclass:: ucloud.services.uhadoop.client.UHadoopClient + :members: + + UHub ---- diff --git a/ucloud/client.py b/ucloud/client.py index 6db8940..414fb69 100644 --- a/ucloud/client.py +++ b/ucloud/client.py @@ -142,6 +142,16 @@ def ucdn(self): self.logger, ) + def uclickhouse(self): + from ucloud.services.uclickhouse.client import UClickhouseClient + + return UClickhouseClient( + self._auto_config("uclickhouse"), + self.transport, + self.middleware, + self.logger, + ) + def ucompshare(self): from ucloud.services.ucompshare.client import UCompShareClient @@ -242,6 +252,16 @@ def uec(self): self.logger, ) + def ues(self): + from ucloud.services.ues.client import UESClient + + return UESClient( + self._auto_config("ues"), + self.transport, + self.middleware, + self.logger, + ) + def ufs(self): from ucloud.services.ufs.client import UFSClient @@ -272,6 +292,16 @@ def ugn(self): self.logger, ) + def uhadoop(self): + from ucloud.services.uhadoop.client import UHadoopClient + + return UHadoopClient( + self._auto_config("uhadoop"), + self.transport, + self.middleware, + self.logger, + ) + def uhost(self): from ucloud.services.uhost.client import UHostClient diff --git a/ucloud/services/uclickhouse/__init__.py b/ucloud/services/uclickhouse/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ucloud/services/uclickhouse/client.py b/ucloud/services/uclickhouse/client.py new file mode 100644 index 0000000..1601483 --- /dev/null +++ b/ucloud/services/uclickhouse/client.py @@ -0,0 +1,447 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +import typing + + +from ucloud.core.client import Client +from ucloud.services.uclickhouse.schemas import apis + + +class UClickhouseClient(Client): + def __init__( + self, config: dict, transport=None, middleware=None, logger=None + ): + super(UClickhouseClient, self).__init__( + config, transport, middleware, logger + ) + + def create_u_clickhouse_cluster( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """CreateUClickhouseCluster - 创建UClickhouse集群 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **AdminPassword** (str) - (Required) 集群管理员密码,密码规则:1.密码长度限8-32个字符2.不能包含[A-Z],[a-z],[0-9]和[@#%^*+=_;:,?!&()-]之外的字符3.需要同时包含两项或以上(大写字母/小写字母/数字/特殊符号) + - **ClickhouseMachineTypeId** (str) - (Required) 集群机型,可通过GetUClickhouseClusterCreateOption接口获取具体值 + - **ClickhouseVersion** (str) - (Required) Clickhouse版本,可通过GetUClickhouseClusterCreateOption接口获取具体版本 + - **DataDiskType** (str) - (Required) 数据盘类型,可通过GetUClickhouseClusterCreateOption接口获取具体值 + - **SubnetId** (str) - (Required) 子网ID + - **VPCId** (str) - (Required) VPC ID + - **BackupId** (str) - 备份任务ID,从备份恢复时,该字段必传,此值为备份任务ID,可以从原集群备份任务列表(ListUClickhouseBackups)获取 + - **ChargeType** (str) - 付费类型,枚举值:Year(年付),Month(月付),Dynamic(时付),默认值为Month,月付 + - **ClusterName** (str) - 实例名称名称规则:1.长度为1-50位的字符2.不能包含_,中文,[A-Z],[a-z],[0-9]之外的非法字符,集群名称默认为clickhouse + - **DataDiskSize** (int) - 数据盘大小,最小100,步长为50,默认值为100,单位GB + - **IsMultiZone** (str) - 是否多可用区,默认为false + - **IsSecGroup** (str) - 是否开启安全组,true为开启,false为不开启,默认为false,不开启安全组 + - **IsZookeeperHA** (bool) - 是否Zookeeper高可用,true为zookeeper高可用,false为非高可用,默认为true,高可用 + - **Labels** (list) - 见 **CreateUClickhouseClusterParamLabels** 模型定义 + - **MultiZones** (list) - 【数组】可用区名称,IsMultiZone为true时,必传,可通过ListUClickhouseAvailableZone获取支持的可用区 + - **Quantity** (int) - 购买时长,默认值为1。月付时,此参数传0,代表购买至月末 + - **ReplicateCount** (int) - 副本数量,取值为1或2,1为单副本(非高可用),2为双副本(高可用),默认值为高可用(即为2) + - **SecGroupIds** (str) - 安全组ID,IsSecGroup为true时,必传 + - **ShardCount** (int) - 分片数量,若传递,则至少1个分片,默认值为1 + - **ZookeeperDataDiskSize** (str) - Zookeeper数据盘大小,IsZookeeperHA为true时,必传,最小100,步长为50 + - **ZookeeperDataDiskType** (str) - Zookeeper数据盘类型,IsZookeeperHA为true时,必传,可通过GetUClickhouseClusterCreateOption接口获取具体值 + - **ZookeeperMachineTypeId** (str) - Zookeeper机型ID,IsZookeeperHA为true时,必传,可通过GetUClickhouseClusterCreateOption接口获取具体值 + + **Response** + + - **Data** (dict) - 见 **CreateUClickhouseClusterResponseData** 模型定义 + - **Message** (str) - 返回信息 + + **Request Model** + + **CreateUClickhouseClusterParamLabels** + - **Key** (str) - 标签的key + - **Value** (str) - 标签的value + + + **Response Model** + + **CreateUClickhouseClusterResponseData** + - **ClusterId** (str) - 集群ID + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.CreateUClickhouseClusterRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("CreateUClickhouseCluster", d, **kwargs) + return apis.CreateUClickhouseClusterResponseSchema().loads(resp) + + def describe_u_clickhouse_cluster( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUClickhouseCluster - 获取集群信息 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群ID + + **Response** + + - **Data** (dict) - 见 **DescribeUClickhouseClusterResponseData** 模型定义 + - **Message** (str) - 返回信息 + + **Response Model** + + **ClickhouseCluster** + - **ClickhouseDataDiskSize** (int) - Clickhouse数据盘大小 + - **ClickhouseDataDiskType** (str) - Clickhouse数据盘类型 + - **ClickhouseMachineTypeId** (str) - Clickhouse机型ID + - **ClickhouseMachineTypeName** (str) - Clickhouse机型名称 + - **ClickhouseNodeCPU** (int) - Clickhouse节点CPU + - **ClickhouseNodeMemory** (int) - Clickhouse内存 + - **ClickhouseVersion** (str) - 集群版本 + - **ClusterId** (str) - 集群ID + - **ClusterName** (str) - 集群名称 + - **CreateTimestamp** (int) - 集群创建时间 + - **ExpireTimestamp** (float) - 实例过期时间 + - **IsBackup** (str) - 实例是否开启备份 + - **IsSecgroup** (str) - 实例是否开启安全组 + - **IsTieredStorage** (str) - 实例是否开启冷热分层 + - **IsZookeeperHA** (str) - Zookeeper是否高可用 + - **MachineType** (str) - 机型 + - **MultiZones** (list) - 实例所在可用区 + - **OrganizationId** (int) - 项目ID + - **RegionId** (int) - 地域ID + - **ReplicateCount** (int) - 副本数 + - **ShardCount** (int) - 分片数 + - **Status** (str) - 集群状态:CREATING(创建中)、RUNNING(运行中)、RESIZING(变配中)、RESTARTING(重启中)、UPGRADING(升级中)、DESTROYING(销毁中)、DESTROYED(已删除)、CREATE_FAILED(创建失败)、RESTART_FAILED(重启失败)、DESTROY_FAILED(删除失败)、RESIZE_FAILED(变配失败)、BACKUP_RESTORING(备份恢复中)、BACKUP_RESTORE_FAILED(备份恢复失败)、EXPANDING(扩容中)、EXPAND_FAILED(扩容失败) + - **SubnetId** (str) - 子网ID + - **TopOrganizationId** (int) - 公司ID + - **VPCId** (str) - VPCID + - **ZookeeperDataDiskSize** (int) - Zookeeper数据盘大小 + - **ZookeeperDataDiskType** (str) - Zookeeper数据盘类型 + - **ZookeeperMachineTypeId** (str) - Zookeeper机型ID + - **ZookeeperMachineTypeName** (str) - Zookeeper机型名称 + - **ZookeeperNodeCPU** (int) - Zookeeper节点CPU + - **ZookeeperNodeMemory** (int) - Zookeeper节点内存 + - **ZookeeperVersion** (str) - Zookeeper版本 + + + **Payment** + - **ChargeType** (str) - 支付类型 + - **CreateTimestamp** (int) - 创建时间 + - **ExpireTimestamp** (int) - 过期时间 + - **OriginalPrice** (int) - 原始价格 + - **Price** (int) - 价格 + - **ResourceId** (str) - 资源ID + + + **ZookeeperNode** + - **CPU** (int) - CPU + - **ClusterId** (str) - 集群ID + - **CreateTimestamp** (int) - 创建时间 + - **DataDiskSize** (int) - 数据盘大小 + - **DataDiskType** (str) - 数据盘类型 + - **MachineType** (str) - 机型 + - **Memory** (int) - 内存 + - **NodeId** (str) - 节点ID + - **NodeName** (str) - 节点名称 + - **ResourceId** (str) - 资源ID + - **ServiceStatus** (str) - 服务状态:RUNNING(运行中)、STARTING(启动中)、STOPPED(已停止)、RESTARTING(重启中) + - **SysDiskSize** (int) - 系统盘大小 + - **SysDiskType** (str) - 系统盘类型 + - **Zone** (str) - 可用区名称 + - **ZookeeperMyId** (str) - zookeeper的myid + + + **ClickhouseNode** + - **CPU** (int) - CPU大小 + - **ClusterId** (str) - 集群ID + - **CreateTimestamp** (int) - 创建时间 + - **DataDiskSize** (int) - 数据盘大小,GB + - **DataDiskType** (str) - 数据盘类型 + - **IPv4** (str) - ipv4 + - **MachineType** (str) - 机型 + - **Memory** (int) - 内存,GB + - **NodeId** (str) - 节点ID + - **NodeName** (str) - 节点名称 + - **ResourceId** (str) - 资源ID + - **ServiceStatus** (str) - 服务状态:RUNNING(运行中)、STARTING(启动中)、STOPPED(已停止)、RESTARTING(重启中) + - **ShardGroup** (str) - 分片组 + - **SysDiskSize** (int) - 系统盘大小,GB + - **SysDiskType** (str) - 系统盘类型 + - **Zone** (str) - 可用区名称 + + + **DescribeUClickhouseClusterResponseData** + - **ClickhouseNodes** (list) - 见 **ClickhouseNode** 模型定义 + - **Cluster** (dict) - 见 **ClickhouseCluster** 模型定义 + - **Payment** (dict) - 见 **Payment** 模型定义 + - **ZookeeperNodes** (list) - 见 **ZookeeperNode** 模型定义 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUClickhouseClusterRequestSchema().dumps(d) + + resp = self.invoke("DescribeUClickhouseCluster", d, **kwargs) + return apis.DescribeUClickhouseClusterResponseSchema().loads(resp) + + def destroy_u_clickhouse_cluster( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DestroyUClickhouseCluster - 删除CK集群 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群ID + + **Response** + + - **Message** (str) - 返回信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DestroyUClickhouseClusterRequestSchema().dumps(d) + + resp = self.invoke("DestroyUClickhouseCluster", d, **kwargs) + return apis.DestroyUClickhouseClusterResponseSchema().loads(resp) + + def expand_u_clickhouse_cluster( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ExpandUClickhouseCluster - 集群水平扩容 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群ID + - **TotalNodeCount** (int) - (Required) 扩容后集群的节点数量,集群为高可用时,需要传入偶数个节点 + - **SyncNodeId** (str) - 水平扩容时,选择某一个原节点的ID,用于同步表结构/用户信息。不传递时,表示不同步表结构/用户信息,仅水平扩容节点数量 + + **Response** + + - **Message** (str) - 返回信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ExpandUClickhouseClusterRequestSchema().dumps(d) + + resp = self.invoke("ExpandUClickhouseCluster", d, **kwargs) + return apis.ExpandUClickhouseClusterResponseSchema().loads(resp) + + def get_u_clickhouse_cluster_create_option( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUClickhouseClusterCreateOption - 获取Clickhouse的创建配置项 + + **Request** + + - **ProjectId** (str) - (Config) 项目Id + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + + **Response** + + - **Data** (dict) - 见 **GetCreateUClickhouseClusterOptionResponseData** 模型定义 + - **Message** (str) - 返回信息 + + **Response Model** + + **ClickhouseDataDisk** + - **DefaultDataDiskSize** (int) - 默认大小,GB + - **DiskType** (str) - 磁盘类型 + - **MaxDiskSize** (int) - 最大值,GB + - **MinDiskSize** (int) - 最小值,GB + - **Step** (int) - 步长,GB + + + **ClickhouseMachineTypeOption** + - **CPU** (int) - CPU大小 + - **ClickhouseMachineTypeId** (str) - Clickhouse机型ID + - **DataDisks** (list) - 见 **ClickhouseDataDisk** 模型定义 + - **MachineType** (str) - 机型 + - **Memory** (int) - 内存大小,GB + - **NodeCounts** (list) - 允许创建的节点个数 + + + **ClickhouseMachineType** + - **ClickhouseMachineTypeName** (str) - CK机型名称 + - **ClickhouseMachineTypeOptions** (list) - 见 **ClickhouseMachineTypeOption** 模型定义 + - **IsSecgroupMachineType** (str) - 机型是否支持安全组 + + + **ClickhouseVersion** + - **Version** (str) - 版本号 + - **VersionName** (str) - 版本名称 + + + **GetCreateUClickhouseClusterOptionResponseData** + - **ClickhouseMachineTypes** (list) - 见 **ClickhouseMachineType** 模型定义 + - **ClickhouseVersions** (list) - 见 **ClickhouseVersion** 模型定义 + - **MaxNodeCount** (int) - 实例可创建的最大节点数量 + - **ZookeeperMachineTypes** (list) - 见 **ClickhouseMachineType** 模型定义 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUClickhouseClusterCreateOptionRequestSchema().dumps(d) + + resp = self.invoke("GetUClickhouseClusterCreateOption", d, **kwargs) + return apis.GetUClickhouseClusterCreateOptionResponseSchema().loads( + resp + ) + + def list_u_clickhouse_cluster( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListUClickhouseCluster - 获取UClickhouse集群列表 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + + **Response** + + - **Data** (dict) - 见 **ListUClickhouseClusterResponseData** 模型定义 + - **Message** (str) - 返回信息 + + **Response Model** + + **ClickhouseCluster** + - **ClickhouseDataDiskSize** (int) - Clickhouse数据盘大小 + - **ClickhouseDataDiskType** (str) - Clickhouse数据盘类型 + - **ClickhouseMachineTypeId** (str) - Clickhouse机型ID + - **ClickhouseMachineTypeName** (str) - Clickhouse机型名称 + - **ClickhouseNodeCPU** (int) - Clickhouse节点CPU + - **ClickhouseNodeMemory** (int) - Clickhouse内存 + - **ClickhouseVersion** (str) - 集群版本 + - **ClusterId** (str) - 集群ID + - **ClusterName** (str) - 集群名称 + - **CreateTimestamp** (int) - 集群创建时间 + - **ExpireTimestamp** (float) - 实例过期时间 + - **IsBackup** (str) - 实例是否开启备份 + - **IsSecgroup** (str) - 实例是否开启安全组 + - **IsTieredStorage** (str) - 实例是否开启冷热分层 + - **IsZookeeperHA** (str) - Zookeeper是否高可用 + - **MachineType** (str) - 机型 + - **MultiZones** (list) - 实例所在可用区 + - **OrganizationId** (int) - 项目ID + - **RegionId** (int) - 地域ID + - **ReplicateCount** (int) - 副本数 + - **ShardCount** (int) - 分片数 + - **Status** (str) - 集群状态:CREATING(创建中)、RUNNING(运行中)、RESIZING(变配中)、RESTARTING(重启中)、UPGRADING(升级中)、DESTROYING(销毁中)、DESTROYED(已删除)、CREATE_FAILED(创建失败)、RESTART_FAILED(重启失败)、DESTROY_FAILED(删除失败)、RESIZE_FAILED(变配失败)、BACKUP_RESTORING(备份恢复中)、BACKUP_RESTORE_FAILED(备份恢复失败)、EXPANDING(扩容中)、EXPAND_FAILED(扩容失败) + - **SubnetId** (str) - 子网ID + - **TopOrganizationId** (int) - 公司ID + - **VPCId** (str) - VPCID + - **ZookeeperDataDiskSize** (int) - Zookeeper数据盘大小 + - **ZookeeperDataDiskType** (str) - Zookeeper数据盘类型 + - **ZookeeperMachineTypeId** (str) - Zookeeper机型ID + - **ZookeeperMachineTypeName** (str) - Zookeeper机型名称 + - **ZookeeperNodeCPU** (int) - Zookeeper节点CPU + - **ZookeeperNodeMemory** (int) - Zookeeper节点内存 + - **ZookeeperVersion** (str) - Zookeeper版本 + + + **ListUClickhouseClusterResponseData** + - **Clusters** (dict) - 见 **ClickhouseCluster** 模型定义 + - **TotalCount** (int) - 集群总数 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ListUClickhouseClusterRequestSchema().dumps(d) + + resp = self.invoke("ListUClickhouseCluster", d, **kwargs) + return apis.ListUClickhouseClusterResponseSchema().loads(resp) + + def resize_u_clickhouse_cluster( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ResizeUClickhouseCluster - 集群改配 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群ID + - **IsZooKeeperNode** (bool) - 是否为zookeeper节点,为true时表示升级zookeeper节点规格,为false时表示升级clickhouse节点规格,默认为false + - **TargetDataDiskSize** (int) - 目标磁盘大小,单位GB,只能扩容,与TargetMachineTypeId不能同时为空 + - **TargetMachineTypeId** (str) - 目标机型ID,可通过GetUClickhouseClusterCreateOption接口获取具体值,与TargetDataDiskSize不能同时为空 + + **Response** + + - **Message** (str) - 返回信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ResizeUClickhouseClusterRequestSchema().dumps(d) + + resp = self.invoke("ResizeUClickhouseCluster", d, **kwargs) + return apis.ResizeUClickhouseClusterResponseSchema().loads(resp) + + def restart_u_clickhouse_cluster_service( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """RestartUClickhouseClusterService - 重启集群的UClickhouse服务 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterId** (str) - (Required) 集群ID + + **Response** + + - **Message** (str) - 返回信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.RestartUClickhouseClusterServiceRequestSchema().dumps(d) + + resp = self.invoke("RestartUClickhouseClusterService", d, **kwargs) + return apis.RestartUClickhouseClusterServiceResponseSchema().loads(resp) diff --git a/ucloud/services/uclickhouse/schemas/__init__.py b/ucloud/services/uclickhouse/schemas/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ucloud/services/uclickhouse/schemas/apis.py b/ucloud/services/uclickhouse/schemas/apis.py new file mode 100644 index 0000000..0808ee6 --- /dev/null +++ b/ucloud/services/uclickhouse/schemas/apis.py @@ -0,0 +1,260 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields +from ucloud.services.uclickhouse.schemas import models + +""" UClickhouse API Schema +""" + + +""" +API: CreateUClickhouseCluster + +创建UClickhouse集群 +""" + + +class CreateUClickhouseClusterParamLabelsSchema(schema.RequestSchema): + """CreateUClickhouseClusterParamLabels -""" + + fields = { + "Key": fields.Str(required=False, dump_to="Key"), + "Value": fields.Str(required=False, dump_to="Value"), + } + + +class CreateUClickhouseClusterRequestSchema(schema.RequestSchema): + """CreateUClickhouseCluster - 创建UClickhouse集群""" + + fields = { + "AdminPassword": fields.Str(required=True, dump_to="AdminPassword"), + "BackupId": fields.Str(required=False, dump_to="BackupId"), + "ChargeType": fields.Str(required=False, dump_to="ChargeType"), + "ClickhouseMachineTypeId": fields.Str( + required=True, dump_to="ClickhouseMachineTypeId" + ), + "ClickhouseVersion": fields.Str( + required=True, dump_to="ClickhouseVersion" + ), + "ClusterName": fields.Str(required=False, dump_to="ClusterName"), + "DataDiskSize": fields.Int(required=False, dump_to="DataDiskSize"), + "DataDiskType": fields.Str(required=True, dump_to="DataDiskType"), + "IsMultiZone": fields.Str(required=False, dump_to="IsMultiZone"), + "IsSecGroup": fields.Str(required=False, dump_to="IsSecGroup"), + "IsZookeeperHA": fields.Bool(required=False, dump_to="IsZookeeperHA"), + "Labels": fields.List(CreateUClickhouseClusterParamLabelsSchema()), + "MultiZones": fields.List(fields.Str()), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Quantity": fields.Int(required=False, dump_to="Quantity"), + "Region": fields.Str(required=True, dump_to="Region"), + "ReplicateCount": fields.Int(required=False, dump_to="ReplicateCount"), + "SecGroupIds": fields.Str(required=False, dump_to="SecGroupIds"), + "ShardCount": fields.Int(required=False, dump_to="ShardCount"), + "SubnetId": fields.Str(required=True, dump_to="SubnetId"), + "VPCId": fields.Str(required=True, dump_to="VPCId"), + "ZookeeperDataDiskSize": fields.Str( + required=False, dump_to="ZookeeperDataDiskSize" + ), + "ZookeeperDataDiskType": fields.Str( + required=False, dump_to="ZookeeperDataDiskType" + ), + "ZookeeperMachineTypeId": fields.Str( + required=False, dump_to="ZookeeperMachineTypeId" + ), + } + + +class CreateUClickhouseClusterResponseSchema(schema.ResponseSchema): + """CreateUClickhouseCluster - 创建UClickhouse集群""" + + fields = { + "Data": models.CreateUClickhouseClusterResponseDataSchema(), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: DescribeUClickhouseCluster + +获取集群信息 +""" + + +class DescribeUClickhouseClusterRequestSchema(schema.RequestSchema): + """DescribeUClickhouseCluster - 获取集群信息""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class DescribeUClickhouseClusterResponseSchema(schema.ResponseSchema): + """DescribeUClickhouseCluster - 获取集群信息""" + + fields = { + "Data": models.DescribeUClickhouseClusterResponseDataSchema(), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: DestroyUClickhouseCluster + +删除CK集群 +""" + + +class DestroyUClickhouseClusterRequestSchema(schema.RequestSchema): + """DestroyUClickhouseCluster - 删除CK集群""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class DestroyUClickhouseClusterResponseSchema(schema.ResponseSchema): + """DestroyUClickhouseCluster - 删除CK集群""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: ExpandUClickhouseCluster + +集群水平扩容 +""" + + +class ExpandUClickhouseClusterRequestSchema(schema.RequestSchema): + """ExpandUClickhouseCluster - 集群水平扩容""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "SyncNodeId": fields.Str(required=False, dump_to="SyncNodeId"), + "TotalNodeCount": fields.Int(required=True, dump_to="TotalNodeCount"), + } + + +class ExpandUClickhouseClusterResponseSchema(schema.ResponseSchema): + """ExpandUClickhouseCluster - 集群水平扩容""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + } + + +""" +API: GetUClickhouseClusterCreateOption + +获取Clickhouse的创建配置项 +""" + + +class GetUClickhouseClusterCreateOptionRequestSchema(schema.RequestSchema): + """GetUClickhouseClusterCreateOption - 获取Clickhouse的创建配置项""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class GetUClickhouseClusterCreateOptionResponseSchema(schema.ResponseSchema): + """GetUClickhouseClusterCreateOption - 获取Clickhouse的创建配置项""" + + fields = { + "Data": models.GetCreateUClickhouseClusterOptionResponseDataSchema(), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: ListUClickhouseCluster + +获取UClickhouse集群列表 +""" + + +class ListUClickhouseClusterRequestSchema(schema.RequestSchema): + """ListUClickhouseCluster - 获取UClickhouse集群列表""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class ListUClickhouseClusterResponseSchema(schema.ResponseSchema): + """ListUClickhouseCluster - 获取UClickhouse集群列表""" + + fields = { + "Data": models.ListUClickhouseClusterResponseDataSchema(), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: ResizeUClickhouseCluster + +集群改配 +""" + + +class ResizeUClickhouseClusterRequestSchema(schema.RequestSchema): + """ResizeUClickhouseCluster - 集群改配""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "IsZooKeeperNode": fields.Bool( + required=False, dump_to="IsZooKeeperNode" + ), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "TargetDataDiskSize": fields.Int( + required=False, dump_to="TargetDataDiskSize" + ), + "TargetMachineTypeId": fields.Str( + required=False, dump_to="TargetMachineTypeId" + ), + } + + +class ResizeUClickhouseClusterResponseSchema(schema.ResponseSchema): + """ResizeUClickhouseCluster - 集群改配""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: RestartUClickhouseClusterService + +重启集群的UClickhouse服务 +""" + + +class RestartUClickhouseClusterServiceRequestSchema(schema.RequestSchema): + """RestartUClickhouseClusterService - 重启集群的UClickhouse服务""" + + fields = { + "ClusterId": fields.Str(required=True, dump_to="ClusterId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class RestartUClickhouseClusterServiceResponseSchema(schema.ResponseSchema): + """RestartUClickhouseClusterService - 重启集群的UClickhouse服务""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } diff --git a/ucloud/services/uclickhouse/schemas/models.py b/ucloud/services/uclickhouse/schemas/models.py new file mode 100644 index 0000000..38d8bb4 --- /dev/null +++ b/ucloud/services/uclickhouse/schemas/models.py @@ -0,0 +1,239 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields + + +class CreateUClickhouseClusterResponseDataSchema(schema.ResponseSchema): + """CreateUClickhouseClusterResponseData -""" + + fields = { + "ClusterId": fields.Str(required=True, load_from="ClusterId"), + } + + +class ClickhouseNodeSchema(schema.ResponseSchema): + """ClickhouseNode -""" + + fields = { + "CPU": fields.Int(required=True, load_from="CPU"), + "ClusterId": fields.Str(required=True, load_from="ClusterId"), + "CreateTimestamp": fields.Int( + required=True, load_from="CreateTimestamp" + ), + "DataDiskSize": fields.Int(required=True, load_from="DataDiskSize"), + "DataDiskType": fields.Str(required=True, load_from="DataDiskType"), + "IPv4": fields.Str(required=True, load_from="IPv4"), + "MachineType": fields.Str(required=True, load_from="MachineType"), + "Memory": fields.Int(required=True, load_from="Memory"), + "NodeId": fields.Str(required=True, load_from="NodeId"), + "NodeName": fields.Str(required=True, load_from="NodeName"), + "ResourceId": fields.Str(required=True, load_from="ResourceId"), + "ServiceStatus": fields.Str(required=True, load_from="ServiceStatus"), + "ShardGroup": fields.Str(required=True, load_from="ShardGroup"), + "SysDiskSize": fields.Int(required=True, load_from="SysDiskSize"), + "SysDiskType": fields.Str(required=True, load_from="SysDiskType"), + "Zone": fields.Str(required=True, load_from="Zone"), + } + + +class ClickhouseClusterSchema(schema.ResponseSchema): + """ClickhouseCluster -""" + + fields = { + "ClickhouseDataDiskSize": fields.Int( + required=True, load_from="ClickhouseDataDiskSize" + ), + "ClickhouseDataDiskType": fields.Str( + required=True, load_from="ClickhouseDataDiskType" + ), + "ClickhouseMachineTypeId": fields.Str( + required=True, load_from="ClickhouseMachineTypeId" + ), + "ClickhouseMachineTypeName": fields.Str( + required=True, load_from="ClickhouseMachineTypeName" + ), + "ClickhouseNodeCPU": fields.Int( + required=True, load_from="ClickhouseNodeCPU" + ), + "ClickhouseNodeMemory": fields.Int( + required=True, load_from="ClickhouseNodeMemory" + ), + "ClickhouseVersion": fields.Str( + required=True, load_from="ClickhouseVersion" + ), + "ClusterId": fields.Str(required=True, load_from="ClusterId"), + "ClusterName": fields.Str(required=True, load_from="ClusterName"), + "CreateTimestamp": fields.Int( + required=True, load_from="CreateTimestamp" + ), + "ExpireTimestamp": fields.Float( + required=True, load_from="ExpireTimestamp" + ), + "IsBackup": fields.Str(required=True, load_from="IsBackup"), + "IsSecgroup": fields.Str(required=True, load_from="IsSecgroup"), + "IsTieredStorage": fields.Str( + required=True, load_from="IsTieredStorage" + ), + "IsZookeeperHA": fields.Str(required=True, load_from="IsZookeeperHA"), + "MachineType": fields.Str(required=True, load_from="MachineType"), + "MultiZones": fields.List(fields.Str()), + "OrganizationId": fields.Int(required=True, load_from="OrganizationId"), + "RegionId": fields.Int(required=True, load_from="RegionId"), + "ReplicateCount": fields.Int(required=True, load_from="ReplicateCount"), + "ShardCount": fields.Int(required=True, load_from="ShardCount"), + "Status": fields.Str(required=True, load_from="Status"), + "SubnetId": fields.Str(required=True, load_from="SubnetId"), + "TopOrganizationId": fields.Int( + required=True, load_from="TopOrganizationId" + ), + "VPCId": fields.Str(required=True, load_from="VPCId"), + "ZookeeperDataDiskSize": fields.Int( + required=True, load_from="ZookeeperDataDiskSize" + ), + "ZookeeperDataDiskType": fields.Str( + required=True, load_from="ZookeeperDataDiskType" + ), + "ZookeeperMachineTypeId": fields.Str( + required=True, load_from="ZookeeperMachineTypeId" + ), + "ZookeeperMachineTypeName": fields.Str( + required=True, load_from="ZookeeperMachineTypeName" + ), + "ZookeeperNodeCPU": fields.Int( + required=True, load_from="ZookeeperNodeCPU" + ), + "ZookeeperNodeMemory": fields.Int( + required=True, load_from="ZookeeperNodeMemory" + ), + "ZookeeperVersion": fields.Str( + required=True, load_from="ZookeeperVersion" + ), + } + + +class PaymentSchema(schema.ResponseSchema): + """Payment -""" + + fields = { + "ChargeType": fields.Str(required=True, load_from="ChargeType"), + "CreateTimestamp": fields.Int( + required=True, load_from="CreateTimestamp" + ), + "ExpireTimestamp": fields.Int( + required=True, load_from="ExpireTimestamp" + ), + "OriginalPrice": fields.Int(required=True, load_from="OriginalPrice"), + "Price": fields.Int(required=True, load_from="Price"), + "ResourceId": fields.Str(required=True, load_from="ResourceId"), + } + + +class ZookeeperNodeSchema(schema.ResponseSchema): + """ZookeeperNode -""" + + fields = { + "CPU": fields.Int(required=True, load_from="CPU"), + "ClusterId": fields.Str(required=True, load_from="ClusterId"), + "CreateTimestamp": fields.Int( + required=True, load_from="CreateTimestamp" + ), + "DataDiskSize": fields.Int(required=True, load_from="DataDiskSize"), + "DataDiskType": fields.Str(required=True, load_from="DataDiskType"), + "MachineType": fields.Str(required=True, load_from="MachineType"), + "Memory": fields.Int(required=True, load_from="Memory"), + "NodeId": fields.Str(required=True, load_from="NodeId"), + "NodeName": fields.Str(required=True, load_from="NodeName"), + "ResourceId": fields.Str(required=True, load_from="ResourceId"), + "ServiceStatus": fields.Str(required=True, load_from="ServiceStatus"), + "SysDiskSize": fields.Int(required=True, load_from="SysDiskSize"), + "SysDiskType": fields.Str(required=True, load_from="SysDiskType"), + "Zone": fields.Str(required=True, load_from="Zone"), + "ZookeeperMyId": fields.Str(required=True, load_from="ZookeeperMyId"), + } + + +class DescribeUClickhouseClusterResponseDataSchema(schema.ResponseSchema): + """DescribeUClickhouseClusterResponseData -""" + + fields = { + "ClickhouseNodes": fields.List(ClickhouseNodeSchema()), + "Cluster": ClickhouseClusterSchema(), + "Payment": PaymentSchema(), + "ZookeeperNodes": fields.List(ZookeeperNodeSchema()), + } + + +class ClickhouseDataDiskSchema(schema.ResponseSchema): + """ClickhouseDataDisk -""" + + fields = { + "DefaultDataDiskSize": fields.Int( + required=True, load_from="DefaultDataDiskSize" + ), + "DiskType": fields.Str(required=True, load_from="DiskType"), + "MaxDiskSize": fields.Int(required=True, load_from="MaxDiskSize"), + "MinDiskSize": fields.Int(required=True, load_from="MinDiskSize"), + "Step": fields.Int(required=True, load_from="Step"), + } + + +class ClickhouseMachineTypeOptionSchema(schema.ResponseSchema): + """ClickhouseMachineTypeOption -""" + + fields = { + "CPU": fields.Int(required=True, load_from="CPU"), + "ClickhouseMachineTypeId": fields.Str( + required=True, load_from="ClickhouseMachineTypeId" + ), + "DataDisks": fields.List(ClickhouseDataDiskSchema()), + "MachineType": fields.Str(required=True, load_from="MachineType"), + "Memory": fields.Int(required=True, load_from="Memory"), + "NodeCounts": fields.List(fields.Int()), + } + + +class ClickhouseMachineTypeSchema(schema.ResponseSchema): + """ClickhouseMachineType -""" + + fields = { + "ClickhouseMachineTypeName": fields.Str( + required=True, load_from="ClickhouseMachineTypeName" + ), + "ClickhouseMachineTypeOptions": fields.List( + ClickhouseMachineTypeOptionSchema() + ), + "IsSecgroupMachineType": fields.Str( + required=True, load_from="IsSecgroupMachineType" + ), + } + + +class ClickhouseVersionSchema(schema.ResponseSchema): + """ClickhouseVersion -""" + + fields = { + "Version": fields.Str(required=True, load_from="Version"), + "VersionName": fields.Str(required=True, load_from="VersionName"), + } + + +class GetCreateUClickhouseClusterOptionResponseDataSchema( + schema.ResponseSchema +): + """GetCreateUClickhouseClusterOptionResponseData -""" + + fields = { + "ClickhouseMachineTypes": fields.List(ClickhouseMachineTypeSchema()), + "ClickhouseVersions": fields.List(ClickhouseVersionSchema()), + "MaxNodeCount": fields.Int(required=True, load_from="MaxNodeCount"), + "ZookeeperMachineTypes": fields.List(ClickhouseMachineTypeSchema()), + } + + +class ListUClickhouseClusterResponseDataSchema(schema.ResponseSchema): + """ListUClickhouseClusterResponseData -""" + + fields = { + "Clusters": ClickhouseClusterSchema(), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } diff --git a/ucloud/services/ues/__init__.py b/ucloud/services/ues/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ucloud/services/ues/client.py b/ucloud/services/ues/client.py new file mode 100644 index 0000000..c2fc896 --- /dev/null +++ b/ucloud/services/ues/client.py @@ -0,0 +1,421 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +import typing + + +from ucloud.core.client import Client +from ucloud.services.ues.schemas import apis + + +class UESClient(Client): + def __init__( + self, config: dict, transport=None, middleware=None, logger=None + ): + super(UESClient, self).__init__(config, transport, middleware, logger) + + def create_ues_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """CreateUESInstance - 创建实例 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **AppVersion** (str) - (Required) 应用服务版本号,支持的类型通过GetUESAppVersion AppVersionList[].AppVersion + - **InstanceName** (str) - (Required) 实例名称 + - **KibanaNodeConf** (str) - (Required) Kibana节点配置, 支持的机型可通过GetUESNodeConf NodeConfList[].NodeConf + - **KibanaNodeDiskConf** (str) - (Required) Kibana节点磁盘类型 + - **NodeConf** (str) - (Required) 节点配置标识, 支持的机型可通过GetUESNodeConf NodeConfList[].NodeConf + - **NodeDiskConf** (str) - (Required) 磁盘类型 + - **SubnetId** (str) - (Required) 子网ID标识 + - **VPCId** (str) - (Required) VPCID标识 + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **AppName** (str) - 应用名称,支持的类型通过GetUESAppVersion AppVersionList[].AppName, 默认为elasticsearch + - **BusinessId** (str) - 业务组ID标识 + - **ChargeType** (str) - 计费类型,默认为Month + - **CoordinatingNodeConf** (str) - Coordinating节点机型配置,, 支持的机型可通过GetUESNodeConf NodeConfList[].NodeConf, 默认为空 + - **CoordinatingNodeDiskConf** (str) - Coordinating节点磁盘类型 + - **CoordinatingNodeSize** (int) - Coordinating节点数量 + - **IsMultiZone** (bool) - 是否为多可用区,默认为false + - **IsSecGroup** (bool) - 是否开启安全组,默认为false + - **MasterConf** (str) - 主节点类型标示,支持的机型可通过GetUESNodeConf NodeConfList[].NodeConf, 默认为空 + - **MultiZones** (list) - 多可用区名称,默认空数组 [] + - **NodeDiskSize** (int) - 节点磁盘大小,默认为100G + - **NodeSize** (int) - 节点个数,默认数目为3 + - **Quantity** (int) - 计费长度,默认为1 + - **Remark** (str) - 备注,默认为空 + - **SecGroupIds** (list) - 安全组ID,开启安全组必填,至多可以同时绑定5个安全组 + - **ServicePasswd** (str) - 服务用户密码,默认为changeme + - **ServiceUserName** (str) - elasticsearch 服务用户名称,默认为elastic;OpenSearch 服务用户名称,固定为admin + + **Response** + + - **InstanceId** (str) - 实例ID + - **Message** (str) - 错误信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.CreateUESInstanceRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("CreateUESInstance", d, **kwargs) + return apis.CreateUESInstanceResponseSchema().loads(resp) + + def delete_ues_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DeleteUESInstance - 删除实例 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 实例ID + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DeleteUESInstanceRequestSchema().dumps(d) + + resp = self.invoke("DeleteUESInstance", d, **kwargs) + return apis.DeleteUESInstanceResponseSchema().loads(resp) + + def describe_ues_instance_v2( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUESInstanceV2 - 查询指定实例详细信息 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 集群实例ID + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **Result** (dict) - 见 **ClusterNodeV2Info** 模型定义 + + **Response Model** + + **ClusterV2Info** + - **BusinessId** (str) - 项目组ID标识 + - **Region** (str) - 地域 + - **ServiceVersion** (str) - 服务版本号 + - **State** (str) - 服务集群状态 + - **SubnetId** (str) - 子网ID标识 + - **UESInstanceId** (str) - 服务集群ID标识 + - **UESInstanceName** (str) - 服务集群名称 + - **VPCId** (str) - VPCID标识 + - **Vip** (str) - Vip + - **Zone** (str) - 可用区 + + + **NodeV2Info** + - **CPU** (int) - 节点cpu数量 + - **DiskSize** (int) - 节点磁盘大小 + - **DiskType** (str) - 节点磁盘类型 + - **Memory** (int) - 节点内存大小 + - **NodeConf** (str) - 节点配置标识 + - **NodeIP** (str) - 节点IP + - **NodeId** (str) - 节点ID + - **NodeName** (str) - 节点名称 + - **NodeRole** (str) - 节点类型 + - **NodeState** (str) - 节点状态 + + + **ClusterNodeV2Info** + - **ClusterInfo** (dict) - 见 **ClusterV2Info** 模型定义 + - **NodeInfoList** (list) - 见 **NodeV2Info** 模型定义 + - **RequestId** (str) - + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUESInstanceV2RequestSchema().dumps(d) + + resp = self.invoke("DescribeUESInstanceV2", d, **kwargs) + return apis.DescribeUESInstanceV2ResponseSchema().loads(resp) + + def expand_ues_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ExpandUESInstance - 扩容实例节点 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 实例ID + - **NodeCount** (int) - (Required) 扩容后对应类型节点的数目 + - **NodeRole** (str) - (Required) 节点类型(compute、coordinating) + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ExpandUESInstanceRequestSchema().dumps(d) + + resp = self.invoke("ExpandUESInstance", d, **kwargs) + return apis.ExpandUESInstanceResponseSchema().loads(resp) + + def get_ues_app_version( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUESAppVersion - 获取服务应用版本列表 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **AppVersionList** (list) - 见 **AppVersion** 模型定义 + - **Message** (str) - 错误信息 + - **TotalCount** (int) - 服务应用版本个数 + + **Response Model** + + **AppVersion** + - **AppName** (str) - 应用名称,默认值为elasticsearch + - **AppVersion** (str) - 应用版本号 + - **IsMultiZone** (bool) - 是否支持多区部署,默认为false + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUESAppVersionRequestSchema().dumps(d) + + resp = self.invoke("GetUESAppVersion", d, **kwargs) + return apis.GetUESAppVersionResponseSchema().loads(resp) + + def get_ues_disk_size_limitation( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUESDiskSizeLimitation - 获取磁盘容量限制 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **DiskSizeLimitationSet** (list) - 见 **DiskSizeLimitation** 模型定义 + - **Message** (str) - 错误信息 + + **Response Model** + + **DiskSizeLimitation** + - **DiskType** (str) - 数据盘类别,包含普通云盘|CLOUD_NORMAL、SSD云盘|CLOUD_SSD和RSSD云盘|CLOUD_RSSD。普通本地盘只包含普通本地盘|LOCAL_NORMAL一种。SSD本地盘只包含SSD本地盘|LOCAL_SSD一种。 + - **MaxSize** (int) - 最大值,单位GB + - **MinSize** (int) - 最小值,单位GB + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUESDiskSizeLimitationRequestSchema().dumps(d) + + resp = self.invoke("GetUESDiskSizeLimitation", d, **kwargs) + return apis.GetUESDiskSizeLimitationResponseSchema().loads(resp) + + def get_ues_node_conf( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUESNodeConf - 获取节点配置列表 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + - **NodeConfList** (list) - 见 **NodeConf** 模型定义 + - **TotalCount** (int) - 所有节点配置信息的个数 + + **Response Model** + + **NodeConf** + - **CPU** (int) - CPU数量 + - **DiskSize** (int) - 磁盘大小,单位为GB + - **DiskType** (str) - 磁盘类型[RSSD|SSD] + - **IsSecGroup** (bool) - 是否支持安全组[true|false] + - **Memory** (int) - 内存,单位为GB + - **NodeConf** (str) - 节点配置标识 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUESNodeConfRequestSchema().dumps(d) + + resp = self.invoke("GetUESNodeConf", d, **kwargs) + return apis.GetUESNodeConfResponseSchema().loads(resp) + + def list_ues_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListUESInstance - 获取实例列表 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Limit** (int) - 返回数据长度, 默认为30 + - **Offset** (int) - 数据偏移量, 默认为0 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **ClusterSet** (list) - 见 **ClusterInfo** 模型定义 + - **Message** (str) - 错误信息 + - **TotalCount** (int) - 实例个数 + + **Response Model** + + **ClusterInfo** + - **AppName** (str) - 应用名称 + - **AppVersion** (str) - 应用服务版本号 + - **BusinessId** (str) - 项目组ID标识 + - **ChargeType** (str) - 计费类型,默认为Month + - **CreateTime** (int) - 创建时间 + - **ExpireTime** (int) - 失效时间 + - **InstanceId** (str) - 实例资源ID + - **InstanceName** (str) - 实例名称 + - **IsSecGroup** (bool) - 是否开启安全组 + - **MultiZones** (list) - 多可用区 + - **NodeCount** (int) - 节点个数,默认为集群大小 + - **Resizable** (bool) - 是否支持改配 + - **RunTime** (int) - 实例运行时长 + - **ServiceVersion** (str) - 服务版本号(弃用) + - **State** (str) - 实例状态 + - **SubnetId** (str) - 子网ID标识 + - **Tag** (str) - 业务组 + - **UESInstanceId** (str) - 服务集群ID标识(弃用) + - **UESInstanceName** (str) - 服务集群名称(弃用) + - **VPCId** (str) - VPCID标识 + - **Vip** (str) - VIP地址信息 + - **Zone** (str) - 可用区 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ListUESInstanceRequestSchema().dumps(d) + + resp = self.invoke("ListUESInstance", d, **kwargs) + return apis.ListUESInstanceResponseSchema().loads(resp) + + def resize_ues_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ResizeUESInstance - 改配实例节点配置 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 实例ID + - **NodeRole** (str) - (Required) 节点类型(compute、master、coordinating、kibana、dashboard) + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **ForceResizing** (bool) - 进行改配操作是否强制检查集群健康状态,默认为false + - **NodeConf** (str) - 改配节点类型,NodeDiskSize为0,基于NodeRole 进行改配 + - **NodeDiskSize** (int) - 改配节点磁盘大小,NodeConf 为空字符串,基于NodeRole 进行改配 + + **Response** + + - **Message** (str) - 错误信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ResizeUESInstanceRequestSchema().dumps(d) + + resp = self.invoke("ResizeUESInstance", d, **kwargs) + return apis.ResizeUESInstanceResponseSchema().loads(resp) + + def restart_ues_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """RestartUESInstance - 重启实例 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 实例ID + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **Message** (str) - 错误信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.RestartUESInstanceRequestSchema().dumps(d) + + resp = self.invoke("RestartUESInstance", d, **kwargs) + return apis.RestartUESInstanceResponseSchema().loads(resp) diff --git a/ucloud/services/ues/schemas/__init__.py b/ucloud/services/ues/schemas/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ucloud/services/ues/schemas/apis.py b/ucloud/services/ues/schemas/apis.py new file mode 100644 index 0000000..a48db2c --- /dev/null +++ b/ucloud/services/ues/schemas/apis.py @@ -0,0 +1,323 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields +from ucloud.services.ues.schemas import models + +""" UES API Schema +""" + + +""" +API: CreateUESInstance + +创建实例 +""" + + +class CreateUESInstanceRequestSchema(schema.RequestSchema): + """CreateUESInstance - 创建实例""" + + fields = { + "AppName": fields.Str(required=False, dump_to="AppName"), + "AppVersion": fields.Str(required=True, dump_to="AppVersion"), + "BusinessId": fields.Str(required=False, dump_to="BusinessId"), + "ChargeType": fields.Str(required=False, dump_to="ChargeType"), + "CoordinatingNodeConf": fields.Str( + required=False, dump_to="CoordinatingNodeConf" + ), + "CoordinatingNodeDiskConf": fields.Str( + required=False, dump_to="CoordinatingNodeDiskConf" + ), + "CoordinatingNodeSize": fields.Int( + required=False, dump_to="CoordinatingNodeSize" + ), + "InstanceName": fields.Str(required=True, dump_to="InstanceName"), + "IsMultiZone": fields.Bool(required=False, dump_to="IsMultiZone"), + "IsSecGroup": fields.Bool(required=False, dump_to="IsSecGroup"), + "KibanaNodeConf": fields.Str(required=True, dump_to="KibanaNodeConf"), + "KibanaNodeDiskConf": fields.Str( + required=True, dump_to="KibanaNodeDiskConf" + ), + "MasterConf": fields.Str(required=False, dump_to="MasterConf"), + "MultiZones": fields.List(fields.Str()), + "NodeConf": fields.Str(required=True, dump_to="NodeConf"), + "NodeDiskConf": fields.Str(required=True, dump_to="NodeDiskConf"), + "NodeDiskSize": fields.Int(required=False, dump_to="NodeDiskSize"), + "NodeSize": fields.Int(required=False, dump_to="NodeSize"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Quantity": fields.Int(required=False, dump_to="Quantity"), + "Region": fields.Str(required=True, dump_to="Region"), + "Remark": fields.Str(required=False, dump_to="Remark"), + "SecGroupIds": fields.List(fields.Str()), + "ServicePasswd": fields.Str(required=False, dump_to="ServicePasswd"), + "ServiceUserName": fields.Str( + required=False, dump_to="ServiceUserName" + ), + "SubnetId": fields.Str(required=True, dump_to="SubnetId"), + "VPCId": fields.Str(required=True, dump_to="VPCId"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class CreateUESInstanceResponseSchema(schema.ResponseSchema): + """CreateUESInstance - 创建实例""" + + fields = { + "InstanceId": fields.Str(required=False, load_from="InstanceId"), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: DeleteUESInstance + +删除实例 +""" + + +class DeleteUESInstanceRequestSchema(schema.RequestSchema): + """DeleteUESInstance - 删除实例""" + + fields = { + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class DeleteUESInstanceResponseSchema(schema.ResponseSchema): + """DeleteUESInstance - 删除实例""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: DescribeUESInstanceV2 + +查询指定实例详细信息 +""" + + +class DescribeUESInstanceV2RequestSchema(schema.RequestSchema): + """DescribeUESInstanceV2 - 查询指定实例详细信息""" + + fields = { + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class DescribeUESInstanceV2ResponseSchema(schema.ResponseSchema): + """DescribeUESInstanceV2 - 查询指定实例详细信息""" + + fields = { + "Result": models.ClusterNodeV2InfoSchema(), + } + + +""" +API: ExpandUESInstance + +扩容实例节点 +""" + + +class ExpandUESInstanceRequestSchema(schema.RequestSchema): + """ExpandUESInstance - 扩容实例节点""" + + fields = { + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "NodeCount": fields.Int(required=True, dump_to="NodeCount"), + "NodeRole": fields.Str(required=True, dump_to="NodeRole"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class ExpandUESInstanceResponseSchema(schema.ResponseSchema): + """ExpandUESInstance - 扩容实例节点""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: GetUESAppVersion + +获取服务应用版本列表 +""" + + +class GetUESAppVersionRequestSchema(schema.RequestSchema): + """GetUESAppVersion - 获取服务应用版本列表""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class GetUESAppVersionResponseSchema(schema.ResponseSchema): + """GetUESAppVersion - 获取服务应用版本列表""" + + fields = { + "AppVersionList": fields.List( + models.AppVersionSchema(), required=True, load_from="AppVersionList" + ), + "Message": fields.Str(required=False, load_from="Message"), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } + + +""" +API: GetUESDiskSizeLimitation + +获取磁盘容量限制 +""" + + +class GetUESDiskSizeLimitationRequestSchema(schema.RequestSchema): + """GetUESDiskSizeLimitation - 获取磁盘容量限制""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class GetUESDiskSizeLimitationResponseSchema(schema.ResponseSchema): + """GetUESDiskSizeLimitation - 获取磁盘容量限制""" + + fields = { + "DiskSizeLimitationSet": fields.List( + models.DiskSizeLimitationSchema(), + required=False, + load_from="DiskSizeLimitationSet", + ), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: GetUESNodeConf + +获取节点配置列表 +""" + + +class GetUESNodeConfRequestSchema(schema.RequestSchema): + """GetUESNodeConf - 获取节点配置列表""" + + fields = { + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class GetUESNodeConfResponseSchema(schema.ResponseSchema): + """GetUESNodeConf - 获取节点配置列表""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + "NodeConfList": fields.List( + models.NodeConfSchema(), required=True, load_from="NodeConfList" + ), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } + + +""" +API: ListUESInstance + +获取实例列表 +""" + + +class ListUESInstanceRequestSchema(schema.RequestSchema): + """ListUESInstance - 获取实例列表""" + + fields = { + "Limit": fields.Int(required=False, dump_to="Limit"), + "Offset": fields.Int(required=False, dump_to="Offset"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class ListUESInstanceResponseSchema(schema.ResponseSchema): + """ListUESInstance - 获取实例列表""" + + fields = { + "ClusterSet": fields.List( + models.ClusterInfoSchema(), required=True, load_from="ClusterSet" + ), + "Message": fields.Str(required=False, load_from="Message"), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } + + +""" +API: ResizeUESInstance + +改配实例节点配置 +""" + + +class ResizeUESInstanceRequestSchema(schema.RequestSchema): + """ResizeUESInstance - 改配实例节点配置""" + + fields = { + "ForceResizing": fields.Bool(required=False, dump_to="ForceResizing"), + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "NodeConf": fields.Str(required=False, dump_to="NodeConf"), + "NodeDiskSize": fields.Int(required=False, dump_to="NodeDiskSize"), + "NodeRole": fields.Str(required=True, dump_to="NodeRole"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class ResizeUESInstanceResponseSchema(schema.ResponseSchema): + """ResizeUESInstance - 改配实例节点配置""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: RestartUESInstance + +重启实例 +""" + + +class RestartUESInstanceRequestSchema(schema.RequestSchema): + """RestartUESInstance - 重启实例""" + + fields = { + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class RestartUESInstanceResponseSchema(schema.ResponseSchema): + """RestartUESInstance - 重启实例""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } diff --git a/ucloud/services/ues/schemas/models.py b/ucloud/services/ues/schemas/models.py new file mode 100644 index 0000000..f93f820 --- /dev/null +++ b/ucloud/services/ues/schemas/models.py @@ -0,0 +1,115 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields + + +class ClusterV2InfoSchema(schema.ResponseSchema): + """ClusterV2Info - 集群信息""" + + fields = { + "BusinessId": fields.Str(required=False, load_from="BusinessId"), + "Region": fields.Str(required=False, load_from="Region"), + "ServiceVersion": fields.Str(required=True, load_from="ServiceVersion"), + "State": fields.Str(required=True, load_from="State"), + "SubnetId": fields.Str(required=False, load_from="SubnetId"), + "UESInstanceId": fields.Str(required=True, load_from="UESInstanceId"), + "UESInstanceName": fields.Str( + required=True, load_from="UESInstanceName" + ), + "VPCId": fields.Str(required=True, load_from="VPCId"), + "Vip": fields.Str(required=False, load_from="Vip"), + "Zone": fields.Str(required=False, load_from="Zone"), + } + + +class NodeV2InfoSchema(schema.ResponseSchema): + """NodeV2Info - 节点信息详情""" + + fields = { + "CPU": fields.Int(required=True, load_from="CPU"), + "DiskSize": fields.Int(required=True, load_from="DiskSize"), + "DiskType": fields.Str(required=True, load_from="DiskType"), + "Memory": fields.Int(required=True, load_from="Memory"), + "NodeConf": fields.Str(required=True, load_from="NodeConf"), + "NodeIP": fields.Str(required=True, load_from="NodeIP"), + "NodeId": fields.Str(required=True, load_from="NodeId"), + "NodeName": fields.Str(required=True, load_from="NodeName"), + "NodeRole": fields.Str(required=True, load_from="NodeRole"), + "NodeState": fields.Str(required=True, load_from="NodeState"), + } + + +class ClusterNodeV2InfoSchema(schema.ResponseSchema): + """ClusterNodeV2Info -""" + + fields = { + "ClusterInfo": ClusterV2InfoSchema(), + "NodeInfoList": fields.List(NodeV2InfoSchema()), + "RequestId": fields.Str(required=False, load_from="RequestId"), + } + + +class AppVersionSchema(schema.ResponseSchema): + """AppVersion - ES可选版本详情""" + + fields = { + "AppName": fields.Str(required=True, load_from="AppName"), + "AppVersion": fields.Str(required=True, load_from="AppVersion"), + "IsMultiZone": fields.Bool(required=True, load_from="IsMultiZone"), + } + + +class DiskSizeLimitationSchema(schema.ResponseSchema): + """DiskSizeLimitation -""" + + fields = { + "DiskType": fields.Str(required=False, load_from="DiskType"), + "MaxSize": fields.Int(required=False, load_from="MaxSize"), + "MinSize": fields.Int(required=False, load_from="MinSize"), + } + + +class NodeConfSchema(schema.ResponseSchema): + """NodeConf - 节点配置信息详情""" + + fields = { + "CPU": fields.Int(required=True, load_from="CPU"), + "DiskSize": fields.Int(required=True, load_from="DiskSize"), + "DiskType": fields.Str(required=True, load_from="DiskType"), + "IsSecGroup": fields.Bool(required=True, load_from="IsSecGroup"), + "Memory": fields.Int(required=True, load_from="Memory"), + "NodeConf": fields.Str(required=True, load_from="NodeConf"), + } + + +class ClusterInfoSchema(schema.ResponseSchema): + """ClusterInfo - 集群信息""" + + fields = { + "AppName": fields.Str(required=True, load_from="AppName"), + "AppVersion": fields.Str(required=True, load_from="AppVersion"), + "BusinessId": fields.Str(required=True, load_from="BusinessId"), + "ChargeType": fields.Str(required=True, load_from="ChargeType"), + "CreateTime": fields.Int(required=True, load_from="CreateTime"), + "ExpireTime": fields.Int(required=True, load_from="ExpireTime"), + "InstanceId": fields.Str(required=True, load_from="InstanceId"), + "InstanceName": fields.Str(required=True, load_from="InstanceName"), + "IsSecGroup": fields.Bool(required=False, load_from="IsSecGroup"), + "MultiZones": fields.List(fields.Str()), + "NodeCount": fields.Int(required=True, load_from="NodeCount"), + "Resizable": fields.Bool(required=False, load_from="Resizable"), + "RunTime": fields.Int(required=True, load_from="RunTime"), + "ServiceVersion": fields.Str( + required=False, load_from="ServiceVersion" + ), + "State": fields.Str(required=True, load_from="State"), + "SubnetId": fields.Str(required=False, load_from="SubnetId"), + "Tag": fields.Str(required=False, load_from="Tag"), + "UESInstanceId": fields.Str(required=False, load_from="UESInstanceId"), + "UESInstanceName": fields.Str( + required=False, load_from="UESInstanceName" + ), + "VPCId": fields.Str(required=False, load_from="VPCId"), + "Vip": fields.Str(required=False, load_from="Vip"), + "Zone": fields.Str(required=True, load_from="Zone"), + } diff --git a/ucloud/services/uhadoop/__init__.py b/ucloud/services/uhadoop/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ucloud/services/uhadoop/client.py b/ucloud/services/uhadoop/client.py new file mode 100644 index 0000000..94f23bd --- /dev/null +++ b/ucloud/services/uhadoop/client.py @@ -0,0 +1,435 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +import typing + + +from ucloud.core.client import Client +from ucloud.services.uhadoop.schemas import apis + + +class UHadoopClient(Client): + def __init__( + self, config: dict, transport=None, middleware=None, logger=None + ): + super(UHadoopClient, self).__init__( + config, transport, middleware, logger + ) + + def add_uhadoop_instance_node( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """AddUHadoopInstanceNode - 给已有集群添加一定数量的节点 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 集群ID + - **NodeRole** (str) - (Required) 节点的角色,值为task|core|client之一 + - **NodeType** (str) - (Required) 机型,如:o.hadoop2m.medium,可从GetUHadoopNodeType接口获取 + - **BootDiskSize** (str) - 系统盘容量,非裸金属机型必填 + - **BootDiskType** (str) - 系统盘类型,非裸金属机型必填,例如:CLOUD_RSSD + - **DataDiskNum** (str) - 数据盘数量,非裸金属机型时必填 + - **DataDiskSize** (str) - 数据盘容量,非裸金属机型必填 + - **DataDiskType** (str) - 数据盘类型,非裸金属机型必填,例如:CLOUD_RSSD + - **NodeCount** (int) - 节点数量,默认为1 + - **Password** (str) - 密码,NodeRole为client时必填 + + **Response** + + - **Message** (str) - 错误信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.AddUHadoopInstanceNodeRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("AddUHadoopInstanceNode", d, **kwargs) + return apis.AddUHadoopInstanceNodeResponseSchema().loads(resp) + + def create_uhadoop_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """CreateUHadoopInstance - 新建一个uhadoop集群 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **AppConfig** (list) - (Required) 集群需要安装的组件,格式:组件#版本通过ListUHadoopFrameworkApp接口获取,例如:Spark#3.3.0 + - **Framework** (str) - (Required) 框架名称,‘Hadoop’ | ‘HDFS’ | ‘MR‘|'‘StarRocks’,Hadoop框架包含存储与计算服务,MR集群包含计算服务 ,HDFS只包含存储服务 + - **FrameworkVersion** (str) - (Required) 版本,例如:3.2.1-udh3.0,通过ListUHadoopFrameworkApp接口获取 + - **InstanceGroupConfigs** (list) - (Required) 节点配置,里面包括NodeType(机型),NodeRole(节点类别,值为其中之一:master|core|task),Count(数量),DataDiskType(数据盘类别),DataDiskSize(数据盘大小),DataDiskNum(数据盘数量),BootDiskType(系统盘类型),BootDiskSize(系统盘大小),通过GetUHadoopNodeType接口获取,示例为:InstanceGroupConfigs.0.NodeType=o.hadoop2m.xlargeInstanceGroupConfigs.0.NodeRole=masterInstanceGroupConfigs.0.Count=2InstanceGroupConfigs.0.DataDiskType=CLOUD_RSSDInstanceGroupConfigs.0.DataDiskSize=100InstanceGroupConfigs.0.DataDiskNum=1InstanceGroupConfigs.0.BootDiskType=CLOUD_RSSDInstanceGroupConfigs.0.BootDiskSize=50InstanceGroupConfigs.1.NodeType=o.hadoop2m.xlargeInstanceGroupConfigs.1.NodeRole=coreInstanceGroupConfigs.1.Count=3InstanceGroupConfigs.1.DataDiskType=CLOUD_RSSDInstanceGroupConfigs.1.DataDiskSize=200InstanceGroupConfigs.1.DataDiskNum=1InstanceGroupConfigs.1.BootDiskType=CLOUD_RSSDInstanceGroupConfigs.1.BootDiskSize=50 + - **Password** (str) - (Required) 集群机器的登录密码 + - **SubnetId** (str) - (Required) 子网ID + - **VPCId** (str) - (Required) VPCId + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **BusinessId** (str) - 工作组ID,默认Default + - **ChargeType** (str) - 支付类别,默认:Month + - **InstanceName** (str) - 实例名称,默认为实例ID + - **IsSecurityEnabled** (str) - 是否开启安全组 + - **Quantity** (int) - 数量,默认1 + - **SecGroupIds** (str) - 安全组ID,字符串数组,IsSecurityEnabled为true时生效 + - **StandAloneMetaStore** (str) - 目前只支持传‘udb’ + - **StorgeClusterId** (str) - Framework为‘MR’时,存储集群ID + - **US3AccessKey** (str) - US3 配置公钥,仅支持框架为StarRocks存算分离时传入 + - **US3Bucket** (str) - US3 bucket名称,仅支持框架为StarRocks存算分离时传入 + - **US3SecretKey** (str) - US3 配置私钥,仅支持框架为StarRocks存算分离时传入 + - **US3TokenName** (str) - US3 Token名称,仅支持框架为StarRocks存算分离时传入 + + **Response** + + - **InstanceId** (str) - 实例ID + - **Message** (str) - 错误信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.CreateUHadoopInstanceRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("CreateUHadoopInstance", d, **kwargs) + return apis.CreateUHadoopInstanceResponseSchema().loads(resp) + + def delete_uhadoop_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DeleteUHadoopInstance - 删除掉一个uhadoop集群 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 实例ID + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **ReleaseEIP** (bool) - 是否释放绑定的EIP。true: 解绑EIP后,并释放;其他值或不填:解绑EIP。 + + **Response** + + - **Message** (str) - 错误信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DeleteUHadoopInstanceRequestSchema().dumps(d) + + resp = self.invoke("DeleteUHadoopInstance", d, **kwargs) + return apis.DeleteUHadoopInstanceResponseSchema().loads(resp) + + def describe_uhadoop_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUHadoopInstance - 描述集群 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 实例ID + - **SubnetId** (str) - 子网ID + - **VPCId** (str) - VPCID + + **Response** + + - **ClusterSet** (list) - 见 **ClusterInfo** 模型定义 + - **Message** (str) - 错误信息 + + **Response Model** + + **ClusterInfo** + - **AppConfigCount** (str) - 组件数量 + - **AppConfigSet** (str) - 组件集合 + - **BusinessId** (str) - 业务组ID + - **ChargeType** (str) - 付费类型 + - **CoreCount** (str) - core节点数量 + - **CreateTime** (str) - 创建时间 + - **ExpireTime** (str) - 到期时间 + - **Framework** (str) - 框架,值为'Hadoop'|'HDFS'|'MR'|'StarRocks'之一,框架,例如Hadoop|MR|HDFS|StarRocks Hadoop框架包含存储与计算服务 MR集群包含计算服务 HDFS只包含存储服务,StarRocks为StarRocks集群 + - **HadoopVersion** (str) - Hadoop版本,值为 hadoop3.2.1-udh3.0|hadoop3.3.4-udh3.1|hadoop2.8.5-udh2.2 + - **InstanceId** (str) - 实例ID + - **InstanceName** (str) - 实例名称 + - **IsOpenSecGroup** (str) - 是否开启安全组 + - **MasterCount** (str) - Master节点数量 + - **NodeCount** (str) - 节点数量 + - **NodeSet** (str) - 节点集合 + - **ReleaseVersion** (str) - Uhadoop版本,值为 uhadoop 3.0|uhadoop 2.2|uhadoop 3.1 + - **RunningTime** (str) - 运行时间 + - **State** (str) - 状态,值为以下其中之一,Running(运行中)|Creating(创建中)|CreateFailed(创建失败)|Deploying(部署中)|Updating(变更中) + - **SubnetId** (str) - 子网ID + - **Tag** (str) - 集群Tag + - **TaskCount** (str) - Task节点数量 + - **VPCId** (str) - VPC ID + - **Zone** (str) - 可用区 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUHadoopInstanceRequestSchema().dumps(d) + + resp = self.invoke("DescribeUHadoopInstance", d, **kwargs) + return apis.DescribeUHadoopInstanceResponseSchema().loads(resp) + + def get_uhadoop_node_type( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUHadoopNodeType - 获取节点类型信息 + + **Request** + + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **Framework** (str) - 框架,例如Hadoop|MR|HDFS|StarRocks,Hadoop框架包含存储与计算服务,MR集群包含计算服务,HDFS只包含存储服务,StarRocks为StarRocks集群 + - **FrameworkVersion** (str) - 框架版本,例如3.2.1-udh3.0,通过ListUHadoopFrameworkApp接口获取 + - **NodeRole** (str) - 角色,master|core|task + - **NodeType** (str) - 机型名称 + + **Response** + + - **HostTypeSupportNodeType** (str) - 机型可支持的节点类型 + - **InstanceTypeSet** (list) - 见 **InstanceType** 模型定义 + - **Message** (str) - 错误信息 + - **MetaDataUDBUsable** (bool) - 当前可用区是否支持元数据库使用UDB + + **Response Model** + + **DiskSet** + - **DiskMaxNum** (str) - 最大磁盘数量 + - **DiskMaxSize** (str) - 最大单块盘容量,单位GB + - **DiskMinNum** (str) - 最小磁盘数量 + - **DiskMinSize** (str) - 最小单块盘容量,单位GB + - **DiskNum** (int) - 磁盘数量 + - **DiskType** (list) - 可支持的磁盘类型 + - **SingleDiskSize** (int) - 单块盘大小 + - **Size** (int) - 总磁盘大小 + - **Type** (str) - 磁盘角色,分Data数据盘和Boot系统盘 + + + **InstanceType** + - **CPU** (str) - cpu大小 + - **CPUToMemoryRatio** (str) - cpu内存比 + - **DiskSet** (list) - 见 **DiskSet** 模型定义 + - **GpuCount** (int) - GPU数量 + - **GpuType** (str) - GPU型号 + - **HostType** (str) - 机型种类,可选Outstanding(快杰机型)|General(普通机型)|BareMetal(裸金属机型)|GPU(GPU机型)四种类型 + - **IsOpenSecgroup** (str) - 是否支持开启安全组 + - **IsUsable** (str) - 是否可用,该机型是否支持创建 + - **Memory** (str) - 内存大小 + - **NodeType** (str) - 机型名称 + - **SuitableRole** (list) - 可用的节点类型,值为core|task|master之一 + + + """ + # build request + d = { + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUHadoopNodeTypeRequestSchema().dumps(d) + + resp = self.invoke("GetUHadoopNodeType", d, **kwargs) + return apis.GetUHadoopNodeTypeResponseSchema().loads(resp) + + def list_uhadoop_framework_app( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListUHadoopFrameworkApp - 列举可选app + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Framework** (str) - (Required) 框架,值为'Hadoop'|'HDFS'|'MR'|'StarRocks'之一,框架,例如Hadoop|MR|HDFS|StarRocks Hadoop框架包含存储与计算服务 MR集群包含计算服务 HDFS只包含存储服务,StarRocks为StarRocks集群 + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **InstanceId** (str) - 实例ID,可选。传的话,过滤出适合此集群的app信息。 + + **Response** + + - **AppConfigSet** (list) - 见 **AppConfigSet** 模型定义 + - **Message** (str) - 错误信息 + + **Response Model** + + **AppConfigSet** + - **AppName** (str) - 需要安装的应用如:Hive,HBase, Spark,Hue,Pig等其他组件 + - **AppStatus** (str) - 应用的状态(运行中)'Running'|(已停止)'Stopped'|(启动中)'Starting'|(停止中)'Stopping'|(启动失败)'StartFailed'|(停止失败)'StopFailed'|(安装中)'Installing'|(安装失败)'InstallFailed'|(未安装)'NotInstalled', + - **AppVersion** (str) - 应用的版本号(0.13.1,0.98.6 等等) + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ListUHadoopFrameworkAppRequestSchema().dumps(d) + + resp = self.invoke("ListUHadoopFrameworkApp", d, **kwargs) + return apis.ListUHadoopFrameworkAppResponseSchema().loads(resp) + + def list_uhadoop_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListUHadoopInstance - 列出用户所有的uhadoop集群 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Limit** (int) - 获取列表的长度限制,默认值为60 + - **Offset** (int) - 获取列表的偏移,默认值为0 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **ClusterSet** (list) - 见 **ListClusterInfo** 模型定义 + - **Message** (str) - 错误信息 + - **TotalCount** (int) - 总数 + + **Response Model** + + **ListClusterInfo** + - **BusinessId** (str) - 业务组ID + - **CreateTime** (str) - 创建时间 + - **Framework** (str) - 框架,值为'Hadoop'|'HDFS'|'MR'|'StarRocks'之一,Hadoop框架包含存储与计算服务,MR集群包含计算服务,HDFS只包含存储服务,StarRocks为StarRocks集群 + - **HadoopVersion** (str) - Hadoop版本,值为 hadoop3.2.1-udh3.0|hadoop3.3.4-udh3.1 |hadoop2.8.5-udh2.2 + - **InstanceId** (str) - 实例ID + - **InstanceName** (str) - 实例名称 + - **ReleaseVersion** (str) - Uhadoop版本,值为 uhadoop 3.0|uhadoop 2.2|uhadoop 3.1 + - **State** (str) - 状态,值为以下其中之一,Running(运行中)|Creating(创建中)|CreateFailed(创建失败)|Deploying(部署中)|Updating(变更中) + - **SubnetId** (str) - 子网ID + - **VPCId** (str) - VPC ID + - **Zone** (str) - 可用区 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ListUHadoopInstanceRequestSchema().dumps(d) + + resp = self.invoke("ListUHadoopInstance", d, **kwargs) + return apis.ListUHadoopInstanceResponseSchema().loads(resp) + + def restart_uhadoop_service( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """RestartUHadoopService - 重启集群服务(包含start|stop|restart) + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 实例ID + - **ServiceName** (str) - (Required) 要操作的服务名。可通过ListUHadoopFrameworkApp接口获取 + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **ApplicationVersion** (str) - 应用版本,ApplicationVersion传参时,表示这次操作是整个应用所有服务。 + - **NodeId** (list) - 要操作的NodeId数组。如果传入,则用于过滤操作哪些Node。 + - **NodeRole** (list) - 要操作的NodeRole数组。如果传入,则用于过滤操作哪些Node。值为以下之一master|core|task + - **OnlyStart** (bool) - 只启动。值为false|true之一,默认false,当OnlyStart和OnlyStop同时置为true,则重启。 + - **OnlyStop** (bool) - 只停止。值为false|true之一,默认false。当OnlyStart和OnlyStop同时置为true,则重启。 + + **Response** + + - **Message** (str) - 错误信息 + - **State** (str) - 当前执行状态,running(操作运行中)|success(操作成功)|failed(操作失败)|killed(操作被终止)。 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.RestartUHadoopServiceRequestSchema().dumps(d) + + resp = self.invoke("RestartUHadoopService", d, **kwargs) + return apis.RestartUHadoopServiceResponseSchema().loads(resp) + + def upgrade_uhadoop_node( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """UpgradeUHadoopNode - 升级uhadoop节点 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 实例ID + - **NodeRole** (str) - (Required) 节点角色,支持"master"|"core"|"task" + - **NodeType** (str) - (Required) 节点新机型,通过GetUHadoopNodeType接口获取 + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **NodeNames** (list) - 节点名称,当NodeRole不为master时必填 + + **Response** + + - **Message** (str) - 错误信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.UpgradeUHadoopNodeRequestSchema().dumps(d) + + resp = self.invoke("UpgradeUHadoopNode", d, **kwargs) + return apis.UpgradeUHadoopNodeResponseSchema().loads(resp) + + def upgrade_uhadoop_node_disk( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """UpgradeUHadoopNodeDisk - 扩容集群节点磁盘 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DataDiskSize** (int) - (Required) 新的数据盘磁盘大小 + - **InstanceId** (str) - (Required) 实例ID + - **NodeRole** (str) - (Required) 节点角色,值为master|core|task之一 + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **BootDiskSize** (int) - 系统盘磁盘大小,仅支持云盘裸金属机型(系统盘和数据盘数值同时增加、只会处理系统盘参数) + - **NodeNames** (list) - 节点名称集合,当NodeRole不为master时必填 + + **Response** + + - **Message** (str) - 错误信息 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.UpgradeUHadoopNodeDiskRequestSchema().dumps(d) + + resp = self.invoke("UpgradeUHadoopNodeDisk", d, **kwargs) + return apis.UpgradeUHadoopNodeDiskResponseSchema().loads(resp) diff --git a/ucloud/services/uhadoop/schemas/__init__.py b/ucloud/services/uhadoop/schemas/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ucloud/services/uhadoop/schemas/apis.py b/ucloud/services/uhadoop/schemas/apis.py new file mode 100644 index 0000000..fc43231 --- /dev/null +++ b/ucloud/services/uhadoop/schemas/apis.py @@ -0,0 +1,351 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields +from ucloud.services.uhadoop.schemas import models + +""" UHadoop API Schema +""" + + +""" +API: AddUHadoopInstanceNode + +给已有集群添加一定数量的节点 +""" + + +class AddUHadoopInstanceNodeRequestSchema(schema.RequestSchema): + """AddUHadoopInstanceNode - 给已有集群添加一定数量的节点""" + + fields = { + "BootDiskSize": fields.Str(required=False, dump_to="BootDiskSize"), + "BootDiskType": fields.Str(required=False, dump_to="BootDiskType"), + "DataDiskNum": fields.Str(required=False, dump_to="DataDiskNum"), + "DataDiskSize": fields.Str(required=False, dump_to="DataDiskSize"), + "DataDiskType": fields.Str(required=False, dump_to="DataDiskType"), + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "NodeCount": fields.Int(required=False, dump_to="NodeCount"), + "NodeRole": fields.Str(required=True, dump_to="NodeRole"), + "NodeType": fields.Str(required=True, dump_to="NodeType"), + "Password": fields.Str(required=False, dump_to="Password"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + } + + +class AddUHadoopInstanceNodeResponseSchema(schema.ResponseSchema): + """AddUHadoopInstanceNode - 给已有集群添加一定数量的节点""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + } + + +""" +API: CreateUHadoopInstance + +新建一个uhadoop集群 +""" + + +class CreateUHadoopInstanceRequestSchema(schema.RequestSchema): + """CreateUHadoopInstance - 新建一个uhadoop集群""" + + fields = { + "AppConfig": fields.List(fields.Str()), + "BusinessId": fields.Str(required=False, dump_to="BusinessId"), + "ChargeType": fields.Str(required=False, dump_to="ChargeType"), + "Framework": fields.Str(required=True, dump_to="Framework"), + "FrameworkVersion": fields.Str( + required=True, dump_to="FrameworkVersion" + ), + "InstanceGroupConfigs": fields.List(fields.Str()), + "InstanceName": fields.Str(required=False, dump_to="InstanceName"), + "IsSecurityEnabled": fields.Str( + required=False, dump_to="IsSecurityEnabled" + ), + "Password": fields.Str(required=True, dump_to="Password"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Quantity": fields.Int(required=False, dump_to="Quantity"), + "Region": fields.Str(required=True, dump_to="Region"), + "SecGroupIds": fields.Str(required=False, dump_to="SecGroupIds"), + "StandAloneMetaStore": fields.Str( + required=False, dump_to="StandAloneMetaStore" + ), + "StorgeClusterId": fields.Str( + required=False, dump_to="StorgeClusterId" + ), + "SubnetId": fields.Str(required=True, dump_to="SubnetId"), + "US3AccessKey": fields.Str(required=False, dump_to="US3AccessKey"), + "US3Bucket": fields.Str(required=False, dump_to="US3Bucket"), + "US3SecretKey": fields.Str(required=False, dump_to="US3SecretKey"), + "US3TokenName": fields.Str(required=False, dump_to="US3TokenName"), + "VPCId": fields.Str(required=True, dump_to="VPCId"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class CreateUHadoopInstanceResponseSchema(schema.ResponseSchema): + """CreateUHadoopInstance - 新建一个uhadoop集群""" + + fields = { + "InstanceId": fields.Str(required=False, load_from="InstanceId"), + "Message": fields.Str(required=True, load_from="Message"), + } + + +""" +API: DeleteUHadoopInstance + +删除掉一个uhadoop集群 +""" + + +class DeleteUHadoopInstanceRequestSchema(schema.RequestSchema): + """DeleteUHadoopInstance - 删除掉一个uhadoop集群""" + + fields = { + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "ReleaseEIP": fields.Bool(required=False, dump_to="ReleaseEIP"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class DeleteUHadoopInstanceResponseSchema(schema.ResponseSchema): + """DeleteUHadoopInstance - 删除掉一个uhadoop集群""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + } + + +""" +API: DescribeUHadoopInstance + +描述集群 +""" + + +class DescribeUHadoopInstanceRequestSchema(schema.RequestSchema): + """DescribeUHadoopInstance - 描述集群""" + + fields = { + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "SubnetId": fields.Str(required=False, dump_to="SubnetId"), + "VPCId": fields.Str(required=False, dump_to="VPCId"), + } + + +class DescribeUHadoopInstanceResponseSchema(schema.ResponseSchema): + """DescribeUHadoopInstance - 描述集群""" + + fields = { + "ClusterSet": fields.List( + models.ClusterInfoSchema(), required=False, load_from="ClusterSet" + ), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: GetUHadoopNodeType + +获取节点类型信息 +""" + + +class GetUHadoopNodeTypeRequestSchema(schema.RequestSchema): + """GetUHadoopNodeType - 获取节点类型信息""" + + fields = { + "Framework": fields.Str(required=False, dump_to="Framework"), + "FrameworkVersion": fields.Str( + required=False, dump_to="FrameworkVersion" + ), + "NodeRole": fields.Str(required=False, dump_to="NodeRole"), + "NodeType": fields.Str(required=False, dump_to="NodeType"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class GetUHadoopNodeTypeResponseSchema(schema.ResponseSchema): + """GetUHadoopNodeType - 获取节点类型信息""" + + fields = { + "HostTypeSupportNodeType": fields.Str( + required=False, load_from="HostTypeSupportNodeType" + ), + "InstanceTypeSet": fields.List( + models.InstanceTypeSchema(), + required=True, + load_from="InstanceTypeSet", + ), + "Message": fields.Str(required=False, load_from="Message"), + "MetaDataUDBUsable": fields.Bool( + required=False, load_from="MetaDataUDBUsable" + ), + } + + +""" +API: ListUHadoopFrameworkApp + +列举可选app +""" + + +class ListUHadoopFrameworkAppRequestSchema(schema.RequestSchema): + """ListUHadoopFrameworkApp - 列举可选app""" + + fields = { + "Framework": fields.Str(required=True, dump_to="Framework"), + "InstanceId": fields.Str(required=False, dump_to="InstanceId"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class ListUHadoopFrameworkAppResponseSchema(schema.ResponseSchema): + """ListUHadoopFrameworkApp - 列举可选app""" + + fields = { + "AppConfigSet": fields.List( + models.AppConfigSetSchema(), + required=False, + load_from="AppConfigSet", + ), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: ListUHadoopInstance + +列出用户所有的uhadoop集群 +""" + + +class ListUHadoopInstanceRequestSchema(schema.RequestSchema): + """ListUHadoopInstance - 列出用户所有的uhadoop集群""" + + fields = { + "Limit": fields.Int(required=False, dump_to="Limit"), + "Offset": fields.Int(required=False, dump_to="Offset"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class ListUHadoopInstanceResponseSchema(schema.ResponseSchema): + """ListUHadoopInstance - 列出用户所有的uhadoop集群""" + + fields = { + "ClusterSet": fields.List( + models.ListClusterInfoSchema(), + required=True, + load_from="ClusterSet", + ), + "Message": fields.Str(required=False, load_from="Message"), + "TotalCount": fields.Int(required=True, load_from="TotalCount"), + } + + +""" +API: RestartUHadoopService + +重启集群服务(包含start|stop|restart) +""" + + +class RestartUHadoopServiceRequestSchema(schema.RequestSchema): + """RestartUHadoopService - 重启集群服务(包含start|stop|restart)""" + + fields = { + "ApplicationVersion": fields.Str( + required=False, dump_to="ApplicationVersion" + ), + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "NodeId": fields.List(fields.Str()), + "NodeRole": fields.List(fields.Str()), + "OnlyStart": fields.Bool(required=False, dump_to="OnlyStart"), + "OnlyStop": fields.Bool(required=False, dump_to="OnlyStop"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "ServiceName": fields.Str(required=True, dump_to="ServiceName"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class RestartUHadoopServiceResponseSchema(schema.ResponseSchema): + """RestartUHadoopService - 重启集群服务(包含start|stop|restart)""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + "State": fields.Str(required=False, load_from="State"), + } + + +""" +API: UpgradeUHadoopNode + +升级uhadoop节点 +""" + + +class UpgradeUHadoopNodeRequestSchema(schema.RequestSchema): + """UpgradeUHadoopNode - 升级uhadoop节点""" + + fields = { + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "NodeNames": fields.List(fields.Str()), + "NodeRole": fields.Str(required=True, dump_to="NodeRole"), + "NodeType": fields.Str(required=True, dump_to="NodeType"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class UpgradeUHadoopNodeResponseSchema(schema.ResponseSchema): + """UpgradeUHadoopNode - 升级uhadoop节点""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: UpgradeUHadoopNodeDisk + +扩容集群节点磁盘 +""" + + +class UpgradeUHadoopNodeDiskRequestSchema(schema.RequestSchema): + """UpgradeUHadoopNodeDisk - 扩容集群节点磁盘""" + + fields = { + "BootDiskSize": fields.Int(required=False, dump_to="BootDiskSize"), + "DataDiskSize": fields.Int(required=True, dump_to="DataDiskSize"), + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "NodeNames": fields.List(fields.Str()), + "NodeRole": fields.Str(required=True, dump_to="NodeRole"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class UpgradeUHadoopNodeDiskResponseSchema(schema.ResponseSchema): + """UpgradeUHadoopNodeDisk - 扩容集群节点磁盘""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } diff --git a/ucloud/services/uhadoop/schemas/models.py b/ucloud/services/uhadoop/schemas/models.py new file mode 100644 index 0000000..5297871 --- /dev/null +++ b/ucloud/services/uhadoop/schemas/models.py @@ -0,0 +1,105 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields + + +class ClusterInfoSchema(schema.ResponseSchema): + """ClusterInfo - 集群信息""" + + fields = { + "AppConfigCount": fields.Str( + required=False, load_from="AppConfigCount" + ), + "AppConfigSet": fields.Str(required=False, load_from="AppConfigSet"), + "BusinessId": fields.Str(required=True, load_from="BusinessId"), + "ChargeType": fields.Str(required=True, load_from="ChargeType"), + "CoreCount": fields.Str(required=True, load_from="CoreCount"), + "CreateTime": fields.Str(required=True, load_from="CreateTime"), + "ExpireTime": fields.Str(required=True, load_from="ExpireTime"), + "Framework": fields.Str(required=True, load_from="Framework"), + "HadoopVersion": fields.Str(required=True, load_from="HadoopVersion"), + "InstanceId": fields.Str(required=True, load_from="InstanceId"), + "InstanceName": fields.Str(required=True, load_from="InstanceName"), + "IsOpenSecGroup": fields.Str( + required=False, load_from="IsOpenSecGroup" + ), + "MasterCount": fields.Str(required=True, load_from="MasterCount"), + "NodeCount": fields.Str(required=False, load_from="NodeCount"), + "NodeSet": fields.Str(required=False, load_from="NodeSet"), + "ReleaseVersion": fields.Str(required=True, load_from="ReleaseVersion"), + "RunningTime": fields.Str(required=False, load_from="RunningTime"), + "State": fields.Str(required=True, load_from="State"), + "SubnetId": fields.Str(required=True, load_from="SubnetId"), + "Tag": fields.Str(required=True, load_from="Tag"), + "TaskCount": fields.Str(required=True, load_from="TaskCount"), + "VPCId": fields.Str(required=True, load_from="VPCId"), + "Zone": fields.Str(required=True, load_from="Zone"), + } + + +class DiskSetSchema(schema.ResponseSchema): + """DiskSet -""" + + fields = { + "DiskMaxNum": fields.Str(required=False, load_from="DiskMaxNum"), + "DiskMaxSize": fields.Str(required=False, load_from="DiskMaxSize"), + "DiskMinNum": fields.Str(required=False, load_from="DiskMinNum"), + "DiskMinSize": fields.Str(required=False, load_from="DiskMinSize"), + "DiskNum": fields.Int(required=False, load_from="DiskNum"), + "DiskType": fields.List(fields.Str()), + "SingleDiskSize": fields.Int( + required=False, load_from="SingleDiskSize" + ), + "Size": fields.Int(required=True, load_from="Size"), + "Type": fields.Str(required=True, load_from="Type"), + } + + +class InstanceTypeSchema(schema.ResponseSchema): + """InstanceType - 机型配置""" + + fields = { + "CPU": fields.Str(required=True, load_from="CPU"), + "CPUToMemoryRatio": fields.Str( + required=True, load_from="CPUToMemoryRatio" + ), + "DiskSet": fields.List(DiskSetSchema()), + "GpuCount": fields.Int(required=False, load_from="GpuCount"), + "GpuType": fields.Str(required=False, load_from="GpuType"), + "HostType": fields.Str(required=True, load_from="HostType"), + "IsOpenSecgroup": fields.Str( + required=False, load_from="IsOpenSecgroup" + ), + "IsUsable": fields.Str(required=True, load_from="IsUsable"), + "Memory": fields.Str(required=True, load_from="Memory"), + "NodeType": fields.Str(required=True, load_from="NodeType"), + "SuitableRole": fields.List(fields.Str()), + } + + +class AppConfigSetSchema(schema.ResponseSchema): + """AppConfigSet - 应用配置详情""" + + fields = { + "AppName": fields.Str(required=False, load_from="AppName"), + "AppStatus": fields.Str(required=False, load_from="AppStatus"), + "AppVersion": fields.Str(required=False, load_from="AppVersion"), + } + + +class ListClusterInfoSchema(schema.ResponseSchema): + """ListClusterInfo - 集群信息""" + + fields = { + "BusinessId": fields.Str(required=True, load_from="BusinessId"), + "CreateTime": fields.Str(required=True, load_from="CreateTime"), + "Framework": fields.Str(required=True, load_from="Framework"), + "HadoopVersion": fields.Str(required=True, load_from="HadoopVersion"), + "InstanceId": fields.Str(required=True, load_from="InstanceId"), + "InstanceName": fields.Str(required=True, load_from="InstanceName"), + "ReleaseVersion": fields.Str(required=True, load_from="ReleaseVersion"), + "State": fields.Str(required=True, load_from="State"), + "SubnetId": fields.Str(required=True, load_from="SubnetId"), + "VPCId": fields.Str(required=True, load_from="VPCId"), + "Zone": fields.Str(required=True, load_from="Zone"), + } diff --git a/ucloud/version.py b/ucloud/version.py index fdfd2d2..d6eecb6 100644 --- a/ucloud/version.py +++ b/ucloud/version.py @@ -1 +1 @@ -version = "0.11.92" +version = "0.11.93"