diff --git a/docs/services.rst b/docs/services.rst index 80d868d..4ae66bd 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 ---- @@ -234,6 +255,13 @@ UK8S :members: +UKafka +------ + +.. autoclass:: ucloud.services.ukafka.client.UKafkaClient + :members: + + ULogService ----------- diff --git a/ucloud/client.py b/ucloud/client.py index 6db8940..f48219e 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 @@ -302,6 +332,16 @@ def uk8s(self): self.logger, ) + def ukafka(self): + from ucloud.services.ukafka.client import UKafkaClient + + return UKafkaClient( + self._auto_config("ukafka"), + self.transport, + self.middleware, + self.logger, + ) + def ulb(self): from ucloud.services.ulb.client import ULBClient 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..45078e8 --- /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** + + **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) - 可用区名称 + + + **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 + + + **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..e87d0bd --- /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 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 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 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 ClickhouseVersionSchema(schema.ResponseSchema): + """ClickhouseVersion -""" + + fields = { + "Version": fields.Str(required=True, load_from="Version"), + "VersionName": fields.Str(required=True, load_from="VersionName"), + } + + +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 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..6f6ba3f --- /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** + + **NodeV2Info** + - **CPU** (int) - 节点cpu数量 + - **DiskSize** (int) - 节点磁盘大小 + - **DiskType** (str) - 节点磁盘类型 + - **Memory** (int) - 节点内存大小 + - **NodeConf** (str) - 节点配置标识 + - **NodeIP** (str) - 节点IP + - **NodeId** (str) - 节点ID + - **NodeName** (str) - 节点名称 + - **NodeRole** (str) - 节点类型 + - **NodeState** (str) - 节点状态 + + + **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) - 可用区 + + + **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..fb3fccc --- /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 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 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 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..ca9d345 --- /dev/null +++ b/ucloud/services/uhadoop/client.py @@ -0,0 +1,481 @@ +""" 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时必填 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **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|StarRocks Hadoop框架包含存储与计算服务 MR集群包含计算服务 HDFS只包含存储服务,StarRocks为StarRocks集群 + - **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 + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **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) - 见 **AppConfig** 模型定义 + - **Message** (str) - 错误信息 + + **Response Model** + + **AppConfig** + - **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_framework_app_by_use_case( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListUHadoopFrameworkAppByUseCase - 按使用场景列出uhadoop的框架和框架中的应用 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **AppConfigSet** (list) - 见 **AppConfigVersion** 模型定义 + - **Message** (str) - 错误信息 + + **Response Model** + + **UseCases** + - **AppVersion** (str) - 组件版本 + - **Case** (str) - 集群种类 + - **MustHas** (str) - 依赖的组件 + + + **AppConfigVersion** + - **Framework** (str) - 框架,值为'Hadoop'|'HDFS'|'MR'|'StarRocks'之一,框架,例如Hadoop|MR|HDFS|StarRocks Hadoop框架包含存储与计算服务 MR集群包含计算服务 HDFS只包含存储服务,StarRocks为StarRocks集群 + - **FrameworkVersion** (str) - 框架版本 + - **HadoopVersion** (str) - Hadoop版本,值为 hadoop3.2.1-udh3.0|hadoop3.3.4-udh3.1 |hadoop2.8.5-udh2.2 + - **ReleaseVersion** (str) - UHadoop版本,值为 uhadoop 3.0|uhadoop 2.2|uhadoop 3.1 + - **UseCases** (list) - 见 **UseCases** 模型定义 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ListUHadoopFrameworkAppByUseCaseRequestSchema().dumps(d) + + resp = self.invoke("ListUHadoopFrameworkAppByUseCase", d, **kwargs) + return apis.ListUHadoopFrameworkAppByUseCaseResponseSchema().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..b104fbc --- /dev/null +++ b/ucloud/services/uhadoop/schemas/apis.py @@ -0,0 +1,381 @@ +""" 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"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +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"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +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.AppConfigSchema(), required=False, load_from="AppConfigSet" + ), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: ListUHadoopFrameworkAppByUseCase + +按使用场景列出uhadoop的框架和框架中的应用 +""" + + +class ListUHadoopFrameworkAppByUseCaseRequestSchema(schema.RequestSchema): + """ListUHadoopFrameworkAppByUseCase - 按使用场景列出uhadoop的框架和框架中的应用""" + + 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 ListUHadoopFrameworkAppByUseCaseResponseSchema(schema.ResponseSchema): + """ListUHadoopFrameworkAppByUseCase - 按使用场景列出uhadoop的框架和框架中的应用""" + + fields = { + "AppConfigSet": fields.List( + models.AppConfigVersionSchema(), + 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..3f0df61 --- /dev/null +++ b/ucloud/services/uhadoop/schemas/models.py @@ -0,0 +1,131 @@ +""" 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 AppConfigSchema(schema.ResponseSchema): + """AppConfig - 应用配置详情""" + + 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 UseCasesSchema(schema.ResponseSchema): + """UseCases - 框架使用示例""" + + fields = { + "AppVersion": fields.Str(required=False, load_from="AppVersion"), + "Case": fields.Str(required=False, load_from="Case"), + "MustHas": fields.Str(required=False, load_from="MustHas"), + } + + +class AppConfigVersionSchema(schema.ResponseSchema): + """AppConfigVersion - 组件版本""" + + fields = { + "Framework": fields.Str(required=False, load_from="Framework"), + "FrameworkVersion": fields.Str( + required=False, load_from="FrameworkVersion" + ), + "HadoopVersion": fields.Str(required=False, load_from="HadoopVersion"), + "ReleaseVersion": fields.Str( + required=False, load_from="ReleaseVersion" + ), + "UseCases": fields.List(UseCasesSchema()), + } + + +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/services/ukafka/__init__.py b/ucloud/services/ukafka/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ucloud/services/ukafka/client.py b/ucloud/services/ukafka/client.py new file mode 100644 index 0000000..788dc63 --- /dev/null +++ b/ucloud/services/ukafka/client.py @@ -0,0 +1,540 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +import typing + + +from ucloud.core.client import Client +from ucloud.services.ukafka.schemas import apis + + +class UKafkaClient(Client): + def __init__( + self, config: dict, transport=None, middleware=None, logger=None + ): + super(UKafkaClient, self).__init__( + config, transport, middleware, logger + ) + + def add_ukafka_instance_node( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """AddUKafkaInstanceNode - 给实例添加节点 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 实例ID + - **NodeCount** (int) - (Required) 新添加节点数量 + - **NodeType** (str) - (Required) 机型,支持的机型可通过GetUKafkaNodeType 接口返回的InstanceTypeSet[].InstanceTypeName + - **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.AddUKafkaInstanceNodeRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("AddUKafkaInstanceNode", d, **kwargs) + return apis.AddUKafkaInstanceNodeResponseSchema().loads(resp) + + def create_ukafka_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """CreateUKafkaInstance - 创建一个ukafka实例 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ChargeType** (str) - (Required) 付费方式 + - **DiskSize** (int) - (Required) 数据盘大小。支持范围根据GetUKafkaNodeType 接口返回的InstanceTypeSet[].MaxDiskSize 和MinDiskSize获取 + - **FrameworkVersion** (str) - (Required) kafka版本,支持的版本可通过ListUKafkaFrameworkVersion 接口返回字段的FrameworkVersions获取 + - **InstanceName** (str) - (Required) 实例名,可自定义 + - **NodeType** (str) - (Required) 机型,支持的机型可通过GetUKafkaNodeType 接口返回的InstanceTypeSet[].InstanceTypeName + - **SubnetId** (str) - (Required) 子网 ID + - **VPCId** (str) - (Required) VPCID + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **BusinessId** (str) - 业务组,默认Default + - **DiskControllerType** (str) - 磁盘管理方式,支持值:NONE、CLEAN。默认值:NONE + - **DiskThreshold** (str) - 磁盘清理阈值,支持范围[70,90]。DiskControllerType 为CLEAN 时必填。默认值 90 + - **IsSecurityEnabled** (str) - 是否开启安全组,支持"true","false",默认 false + - **LogRetentionHours** (str) - kafka 日志保存时间,支持范围[1,240]。默认 72 小时 + - **NodeCount** (int) - 集群节点数量。默认 3 节点 + - **Quantity** (str) - 实例数量,默认 1 + + **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.CreateUKafkaInstanceRequestSchema().dumps(d) + + # build options + kwargs["max_retries"] = 0 # ignore retry when api is not idempotent + + resp = self.invoke("CreateUKafkaInstance", d, **kwargs) + return apis.CreateUKafkaInstanceResponseSchema().loads(resp) + + def delete_ukafka_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DeleteUKafkaInstance - 删除实例 + + **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.DeleteUKafkaInstanceRequestSchema().dumps(d) + + resp = self.invoke("DeleteUKafkaInstance", d, **kwargs) + return apis.DeleteUKafkaInstanceResponseSchema().loads(resp) + + def describe_ukafka_consumer( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUKafkaConsumer - 获取 Kafka 消费组信息 + + **Request** + + - **ProjectId** (str) - (Config) 项目 ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList 接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterInstanceId** (str) - (Required) Kafka 集群 ID + - **ConsumerGroup** (str) - (Required) 消费组组名 + - **Type** (str) - (Required) 消费者组类型(同消费者组列表返回的类型值) + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **GroupName** (str) - 消费者组组名 + - **Topics** (str) - 消费者组所订阅 topic 信息 + - **Type** (str) - 消费者组类型 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUKafkaConsumerRequestSchema().dumps(d) + + resp = self.invoke("DescribeUKafkaConsumer", d, **kwargs) + return apis.DescribeUKafkaConsumerResponseSchema().loads(resp) + + def describe_ukafka_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """DescribeUKafkaInstance - 获取整个集群的信息 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterInstanceId** (str) - (Required) 实例ID,可以通过ListUKafkaInstance 接口的ClusterSet. ClusterInstanceId 获取 + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **ClusterSet** (list) - 见 **ClusterInfo** 模型定义 + + **Response Model** + + **UHostConfig** + - **BootDiskSize** (int) - 节点系统盘大小(单位G)【删除】 + - **CPU** (int) - 节点 CPU 核心数 + - **DataDiskSize** (int) - 节点数据盘大小(单位G) + - **DiskType** (str) - 节点数据盘类型 + - **Memory** (int) - 节点内存(单位MB) + - **OS** (str) - 节点内部系统名称【删除】 + + + **Url** + - **Addr** (str) - 访问地址 + - **Protocal** (str) - 访问协议 + + + **Endpoints** + - **PlainText** (dict) - 见 **Url** 模型定义 + - **SaslPlainText** (dict) - 见 **Url** 模型定义 + + + **BrokerOfTopicInfo** + - **PartitionOnBroker** (str) - topic 在 broker 上分布的 partition 数量 + - **Partitions** (str) - topic 在 broker上 partition 列表 + - **Replication** (int) - Topic 副本数 + - **TopicName** (str) - topic 名称 + - **TotalPartitions** (int) - partition 数量 + + + **IP** + - **IP** (str) - IP地址 + - **Type** (str) - IP类型 + + + **Broker** + - **BrokerId** (str) - broker id + - **BrokerInfo** (list) - 见 **BrokerOfTopicInfo** 模型定义 + - **CreateTime** (str) - broker 创建信息 + - **DomainName** (str) - broker 域名 + - **Endpoints** (dict) - 见 **Endpoints** 模型定义 + - **ExpireTime** (int) - broker 过期时间 + - **IPSet** (list) - 见 **IP** 模型定义 + - **InstanceGroupType** (str) - broker 机型信息 + - **KafkaPort** (int) - kafka 服务端口 + - **Remark** (str) - broker 备注信息 + - **ResourceId** (str) - broker 注册资源信息 + - **SecurityGroupId** (str) - 安全组 id + - **State** (str) - broker 当前状态 + - **UHostConfig** (dict) - 见 **UHostConfig** 模型定义 + - **UHostId** (str) - 节点 id + - **UHostName** (str) - 节点名称 + - **UHostRole** (str) - 节点类型 + - **ZooKeeper** (str) - 节点是否部署 zookeeper + - **ZooKeeperPort** (int) - zookeeper 服务端口 + + + **ClusterInfo** + - **AutoRenew** (str) - 是否开启自动续费 + - **BusinessId** (str) - 业务组 ID + - **ChargeType** (str) - 付费类型 + - **ClusterInstanceId** (str) - 实例id + - **ClusterInstanceName** (str) - 实例名称 + - **CreateTime** (int) - 实例创建时间 + - **ExpireTime** (int) - 实例过期时间 + - **Framework** (str) - 实例框架 + - **FrameworkVersion** (str) - 实例框架版本 + - **IsOpenSecgroup** (str) - 是否开启安全组 + - **NetworkId** (str) - 网络 id(已废弃) + - **Remark** (str) - 实例备注 + - **RunningTime** (int) - 实例运行时间 + - **State** (str) - 实例当前状态,实例状态:"Running"| "Abnormal"| "Creating"| "Deleting"| "CreateFailed"| "DeleteFailed"| "Unavailable"| "Deleted"| "Updating"| "Deploying"| "Migrating"| "ExpandFailed" + - **SubnetId** (str) - 所属子网 id + - **Tag** (str) - 实例标记 + - **UHostCount** (int) - 实例节点个数 + - **UHostSet** (list) - 见 **Broker** 模型定义 + - **VPCId** (str) - 所属 VPC id + - **ValidBrokerNum** (int) - 可用节点个数 + - **Zone** (str) - 所属可用区 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.DescribeUKafkaInstanceRequestSchema().dumps(d) + + resp = self.invoke("DescribeUKafkaInstance", d, **kwargs) + return apis.DescribeUKafkaInstanceResponseSchema().loads(resp) + + def get_ukafka_node_type( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """GetUKafkaNodeType - 获取节点机型配置 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + - **NodeType** (str) - 传参时返回指定机型信息,参数为空时返回所有机型信息 + + **Response** + + - **Message** (str) - 错误信息 + - **NodeTypeSet** (list) - 见 **InstanceType** 模型定义 + + **Response Model** + + **DiskSet** + - **Size** (str) - 磁盘大小 + - **Type** (str) - 磁盘类型。Boot 表示系统盘,Data 表示数据盘 + + + **InstanceType** + - **CPU** (int) - CPU核心数 + - **DiskSet** (dict) - 见 **DiskSet** 模型定义 + - **DiskType** (str) - 磁盘类型。RSSD 表示固态云盘,SSD 表示本地固态盘,COMMON 表示本地 SATA 盘 + - **Memory** (str) - 内存大小(单位 MB) + - **NodeTypeName** (str) - 机型名称 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.GetUKafkaNodeTypeRequestSchema().dumps(d) + + resp = self.invoke("GetUKafkaNodeType", d, **kwargs) + return apis.GetUKafkaNodeTypeResponseSchema().loads(resp) + + def is_ukafka_topic_name_exist( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """IsUKafkaTopicNameExist - 检查一个topic名称是否已经在集群中了 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterInstanceId** (str) - (Required) 集群ID + - **TopicName** (str) - (Required) 待检查的topic名称 + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **IsExist** (str) - 是否已经存在 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.IsUKafkaTopicNameExistRequestSchema().dumps(d) + + resp = self.invoke("IsUKafkaTopicNameExist", d, **kwargs) + return apis.IsUKafkaTopicNameExistResponseSchema().loads(resp) + + def list_ukafka_consumers( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListUKafkaConsumers - 列出 Kafka 消费组 + + **Request** + + - **ProjectId** (str) - (Config) 项目 ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList 接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterInstanceId** (str) - (Required) Kafka 集群 ID + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **Groups** (list) - 见 **Group** 模型定义 + + **Response Model** + + **Group** + - **GroupName** (str) - 消费者组组名 + - **NumOfTopics** (int) - 订阅 Topic 数量 + - **Type** (str) - 消费者组类型 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ListUKafkaConsumersRequestSchema().dumps(d) + + resp = self.invoke("ListUKafkaConsumers", d, **kwargs) + return apis.ListUKafkaConsumersResponseSchema().loads(resp) + + def list_ukafka_framework_version( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListUKafkaFrameworkVersion - 列举ukafka框架版本 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **FrameworkVersions** (list) - 见 **Version** 模型定义 + - **Message** (str) - 错误信息 + + **Response Model** + + **Version** + - **Label** (str) - kafka 版本标签。recommend 表示推荐版本,beta 表示公测版本 + - **Version** (str) - kafka版本 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ListUKafkaFrameworkVersionRequestSchema().dumps(d) + + resp = self.invoke("ListUKafkaFrameworkVersion", d, **kwargs) + return apis.ListUKafkaFrameworkVersionResponseSchema().loads(resp) + + def list_ukafka_instance( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListUKafkaInstance - 列举集群信息 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **BusinessId** (str) - 业务组 ID + - **ClusterInstanceId** (str) - 实例ID + - **Filter** (str) - 是否过滤删除了的节点,默认为‘true’ + - **Limit** (str) - 默认为60 + - **Offset** (str) - 默认为0 + - **SubnetId** (str) - SubnetId + - **VPCId** (str) - VPCId + - **Zone** (str) - 可用区。参见 `可用区列表 `_ + + **Response** + + - **ClusterSet** (str) - 信息 + - **Message** (str) - 错误信息 + - **TotalCount** (str) - 总数 + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ListUKafkaInstanceRequestSchema().dumps(d) + + resp = self.invoke("ListUKafkaInstance", d, **kwargs) + return apis.ListUKafkaInstanceResponseSchema().loads(resp) + + def list_ukafka_topics( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ListUKafkaTopics - 展示kafka集群上所有topic + + **Request** + + - **ProjectId** (str) - (Config) 项目 ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList 接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **ClusterInstanceId** (str) - (Required) 集群资源id + - **Zone** (str) - (Required) 可用区。参见 `可用区列表 `_ + + **Response** + + - **Length** (int) - 列表长度 + - **TopicList** (list) - 见 **TopicInfo** 模型定义 + + **Response Model** + + **TopicInfo** + - **NumOfOccupyBroker** (int) - 占用 broker 数量 + - **NumOfPartition** (int) - 分区数量 + - **NumOfReplica** (int) - 副本数量 + - **Status** (str) - topic 状态 + - **Topic** (str) - topic 名称 + - **UnderReplicasPer** (float) - 落后副本占比 + + + """ + # build request + d = { + "ProjectId": self.config.project_id, + "Region": self.config.region, + } + req and d.update(req) + d = apis.ListUKafkaTopicsRequestSchema().dumps(d) + + resp = self.invoke("ListUKafkaTopics", d, **kwargs) + return apis.ListUKafkaTopicsResponseSchema().loads(resp) + + def modify_ukafka_instance_type( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ModifyUKafkaInstanceType - 规格升降级 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **InstanceId** (str) - (Required) 实例ID + - **NodeType** (str) - (Required) 目标机型,支持的机型可通过GetUKafkaNodeType 接口返回的InstanceTypeSet[].InstanceTypeName + - **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.ModifyUKafkaInstanceTypeRequestSchema().dumps(d) + + resp = self.invoke("ModifyUKafkaInstanceType", d, **kwargs) + return apis.ModifyUKafkaInstanceTypeResponseSchema().loads(resp) + + def resize_ukafka_disk( + self, req: typing.Optional[dict] = None, **kwargs + ) -> dict: + """ResizeUKafkaDisk - 磁盘扩容 + + **Request** + + - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 `_ + - **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 `_ + - **DiskSize** (int) - (Required) 数据盘大小。支持范围根据GetUKafkaNodeType 接口返回的InstanceTypeSet[].MaxDiskSize 和MinDiskSize获取 + - **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.ResizeUKafkaDiskRequestSchema().dumps(d) + + resp = self.invoke("ResizeUKafkaDisk", d, **kwargs) + return apis.ResizeUKafkaDiskResponseSchema().loads(resp) diff --git a/ucloud/services/ukafka/schemas/__init__.py b/ucloud/services/ukafka/schemas/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ucloud/services/ukafka/schemas/apis.py b/ucloud/services/ukafka/schemas/apis.py new file mode 100644 index 0000000..2f72323 --- /dev/null +++ b/ucloud/services/ukafka/schemas/apis.py @@ -0,0 +1,408 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields +from ucloud.services.ukafka.schemas import models + +""" UKafka API Schema +""" + + +""" +API: AddUKafkaInstanceNode + +给实例添加节点 +""" + + +class AddUKafkaInstanceNodeRequestSchema(schema.RequestSchema): + """AddUKafkaInstanceNode - 给实例添加节点""" + + fields = { + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "NodeCount": fields.Int(required=True, dump_to="NodeCount"), + "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 AddUKafkaInstanceNodeResponseSchema(schema.ResponseSchema): + """AddUKafkaInstanceNode - 给实例添加节点""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + } + + +""" +API: CreateUKafkaInstance + +创建一个ukafka实例 +""" + + +class CreateUKafkaInstanceRequestSchema(schema.RequestSchema): + """CreateUKafkaInstance - 创建一个ukafka实例""" + + fields = { + "BusinessId": fields.Str(required=False, dump_to="BusinessId"), + "ChargeType": fields.Str(required=True, dump_to="ChargeType"), + "DiskControllerType": fields.Str( + required=False, dump_to="DiskControllerType" + ), + "DiskSize": fields.Int(required=True, dump_to="DiskSize"), + "DiskThreshold": fields.Str(required=False, dump_to="DiskThreshold"), + "FrameworkVersion": fields.Str( + required=True, dump_to="FrameworkVersion" + ), + "InstanceName": fields.Str(required=True, dump_to="InstanceName"), + "IsSecurityEnabled": fields.Str( + required=False, dump_to="IsSecurityEnabled" + ), + "LogRetentionHours": fields.Str( + required=False, dump_to="LogRetentionHours" + ), + "NodeCount": fields.Int(required=False, dump_to="NodeCount"), + "NodeType": fields.Str(required=True, dump_to="NodeType"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Quantity": fields.Str(required=False, dump_to="Quantity"), + "Region": fields.Str(required=True, dump_to="Region"), + "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 CreateUKafkaInstanceResponseSchema(schema.ResponseSchema): + """CreateUKafkaInstance - 创建一个ukafka实例""" + + fields = { + "InstanceId": fields.Str(required=True, load_from="InstanceId"), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: DeleteUKafkaInstance + +删除实例 +""" + + +class DeleteUKafkaInstanceRequestSchema(schema.RequestSchema): + """DeleteUKafkaInstance - 删除实例""" + + 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 DeleteUKafkaInstanceResponseSchema(schema.ResponseSchema): + """DeleteUKafkaInstance - 删除实例""" + + fields = { + "Message": fields.Str(required=True, load_from="Message"), + } + + +""" +API: DescribeUKafkaConsumer + +获取 Kafka 消费组信息 +""" + + +class DescribeUKafkaConsumerRequestSchema(schema.RequestSchema): + """DescribeUKafkaConsumer - 获取 Kafka 消费组信息""" + + fields = { + "ClusterInstanceId": fields.Str( + required=True, dump_to="ClusterInstanceId" + ), + "ConsumerGroup": fields.Str(required=True, dump_to="ConsumerGroup"), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "Type": fields.Str(required=True, dump_to="Type"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class DescribeUKafkaConsumerResponseSchema(schema.ResponseSchema): + """DescribeUKafkaConsumer - 获取 Kafka 消费组信息""" + + fields = { + "GroupName": fields.Str(required=False, load_from="GroupName"), + "Topics": fields.Str(required=False, load_from="Topics"), + "Type": fields.Str(required=False, load_from="Type"), + } + + +""" +API: DescribeUKafkaInstance + +获取整个集群的信息 +""" + + +class DescribeUKafkaInstanceRequestSchema(schema.RequestSchema): + """DescribeUKafkaInstance - 获取整个集群的信息""" + + fields = { + "ClusterInstanceId": fields.Str( + required=True, dump_to="ClusterInstanceId" + ), + "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 DescribeUKafkaInstanceResponseSchema(schema.ResponseSchema): + """DescribeUKafkaInstance - 获取整个集群的信息""" + + fields = { + "ClusterSet": fields.List( + models.ClusterInfoSchema(), required=True, load_from="ClusterSet" + ), + } + + +""" +API: GetUKafkaNodeType + +获取节点机型配置 +""" + + +class GetUKafkaNodeTypeRequestSchema(schema.RequestSchema): + """GetUKafkaNodeType - 获取节点机型配置""" + + fields = { + "NodeType": fields.Str(required=False, 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 GetUKafkaNodeTypeResponseSchema(schema.ResponseSchema): + """GetUKafkaNodeType - 获取节点机型配置""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + "NodeTypeSet": fields.List( + models.InstanceTypeSchema(), required=True, load_from="NodeTypeSet" + ), + } + + +""" +API: IsUKafkaTopicNameExist + +检查一个topic名称是否已经在集群中了 +""" + + +class IsUKafkaTopicNameExistRequestSchema(schema.RequestSchema): + """IsUKafkaTopicNameExist - 检查一个topic名称是否已经在集群中了""" + + fields = { + "ClusterInstanceId": fields.Str( + required=True, dump_to="ClusterInstanceId" + ), + "ProjectId": fields.Str(required=False, dump_to="ProjectId"), + "Region": fields.Str(required=True, dump_to="Region"), + "TopicName": fields.Str(required=True, dump_to="TopicName"), + "Zone": fields.Str(required=True, dump_to="Zone"), + } + + +class IsUKafkaTopicNameExistResponseSchema(schema.ResponseSchema): + """IsUKafkaTopicNameExist - 检查一个topic名称是否已经在集群中了""" + + fields = { + "IsExist": fields.Str(required=True, load_from="IsExist"), + } + + +""" +API: ListUKafkaConsumers + +列出 Kafka 消费组 +""" + + +class ListUKafkaConsumersRequestSchema(schema.RequestSchema): + """ListUKafkaConsumers - 列出 Kafka 消费组""" + + fields = { + "ClusterInstanceId": fields.Str( + required=True, dump_to="ClusterInstanceId" + ), + "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 ListUKafkaConsumersResponseSchema(schema.ResponseSchema): + """ListUKafkaConsumers - 列出 Kafka 消费组""" + + fields = { + "Groups": fields.List( + models.GroupSchema(), required=False, load_from="Groups" + ), + } + + +""" +API: ListUKafkaFrameworkVersion + +列举ukafka框架版本 +""" + + +class ListUKafkaFrameworkVersionRequestSchema(schema.RequestSchema): + """ListUKafkaFrameworkVersion - 列举ukafka框架版本""" + + 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 ListUKafkaFrameworkVersionResponseSchema(schema.ResponseSchema): + """ListUKafkaFrameworkVersion - 列举ukafka框架版本""" + + fields = { + "FrameworkVersions": fields.List( + models.VersionSchema(), required=True, load_from="FrameworkVersions" + ), + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: ListUKafkaInstance + +列举集群信息 +""" + + +class ListUKafkaInstanceRequestSchema(schema.RequestSchema): + """ListUKafkaInstance - 列举集群信息""" + + fields = { + "BusinessId": fields.Str(required=False, dump_to="BusinessId"), + "ClusterInstanceId": fields.Str( + required=False, dump_to="ClusterInstanceId" + ), + "Filter": fields.Str(required=False, dump_to="Filter"), + "Limit": fields.Str(required=False, dump_to="Limit"), + "Offset": fields.Str(required=False, dump_to="Offset"), + "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"), + "Zone": fields.Str(required=False, dump_to="Zone"), + } + + +class ListUKafkaInstanceResponseSchema(schema.ResponseSchema): + """ListUKafkaInstance - 列举集群信息""" + + fields = { + "ClusterSet": fields.Str(required=True, load_from="ClusterSet"), + "Message": fields.Str(required=False, load_from="Message"), + "TotalCount": fields.Str(required=True, load_from="TotalCount"), + } + + +""" +API: ListUKafkaTopics + +展示kafka集群上所有topic +""" + + +class ListUKafkaTopicsRequestSchema(schema.RequestSchema): + """ListUKafkaTopics - 展示kafka集群上所有topic""" + + fields = { + "ClusterInstanceId": fields.Str( + required=True, dump_to="ClusterInstanceId" + ), + "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 ListUKafkaTopicsResponseSchema(schema.ResponseSchema): + """ListUKafkaTopics - 展示kafka集群上所有topic""" + + fields = { + "Length": fields.Int(required=False, load_from="Length"), + "TopicList": fields.List( + models.TopicInfoSchema(), required=True, load_from="TopicList" + ), + } + + +""" +API: ModifyUKafkaInstanceType + +规格升降级 +""" + + +class ModifyUKafkaInstanceTypeRequestSchema(schema.RequestSchema): + """ModifyUKafkaInstanceType - 规格升降级""" + + fields = { + "InstanceId": fields.Str(required=True, dump_to="InstanceId"), + "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 ModifyUKafkaInstanceTypeResponseSchema(schema.ResponseSchema): + """ModifyUKafkaInstanceType - 规格升降级""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } + + +""" +API: ResizeUKafkaDisk + +磁盘扩容 +""" + + +class ResizeUKafkaDiskRequestSchema(schema.RequestSchema): + """ResizeUKafkaDisk - 磁盘扩容""" + + fields = { + "DiskSize": fields.Int(required=True, dump_to="DiskSize"), + "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 ResizeUKafkaDiskResponseSchema(schema.ResponseSchema): + """ResizeUKafkaDisk - 磁盘扩容""" + + fields = { + "Message": fields.Str(required=False, load_from="Message"), + } diff --git a/ucloud/services/ukafka/schemas/models.py b/ucloud/services/ukafka/schemas/models.py new file mode 100644 index 0000000..a1a6ea8 --- /dev/null +++ b/ucloud/services/ukafka/schemas/models.py @@ -0,0 +1,186 @@ +""" Code is generated by ucloud-model, DO NOT EDIT IT. """ + +from ucloud.core.typesystem import schema, fields + + +class IPSchema(schema.ResponseSchema): + """IP - IP 信息""" + + fields = { + "IP": fields.Str(required=False, load_from="IP"), + "Type": fields.Str(required=False, load_from="Type"), + } + + +class UHostConfigSchema(schema.ResponseSchema): + """UHostConfig - 节点配置""" + + fields = { + "BootDiskSize": fields.Int(required=False, load_from="BootDiskSize"), + "CPU": fields.Int(required=False, load_from="CPU"), + "DataDiskSize": fields.Int(required=False, load_from="DataDiskSize"), + "DiskType": fields.Str(required=False, load_from="DiskType"), + "Memory": fields.Int(required=False, load_from="Memory"), + "OS": fields.Str(required=False, load_from="OS"), + } + + +class BrokerOfTopicInfoSchema(schema.ResponseSchema): + """BrokerOfTopicInfo - broker 的 topic 相关信息""" + + fields = { + "PartitionOnBroker": fields.Str( + required=False, load_from="PartitionOnBroker" + ), + "Partitions": fields.Str(required=False, load_from="Partitions"), + "Replication": fields.Int(required=False, load_from="Replication"), + "TopicName": fields.Str(required=False, load_from="TopicName"), + "TotalPartitions": fields.Int( + required=False, load_from="TotalPartitions" + ), + } + + +class UrlSchema(schema.ResponseSchema): + """Url -""" + + fields = { + "Addr": fields.Str(required=False, load_from="Addr"), + "Protocal": fields.Str(required=False, load_from="Protocal"), + } + + +class EndpointsSchema(schema.ResponseSchema): + """Endpoints - kafka broker 连接信息""" + + fields = { + "PlainText": UrlSchema(), + "SaslPlainText": UrlSchema(), + } + + +class BrokerSchema(schema.ResponseSchema): + """Broker - kafka Broker 信息""" + + fields = { + "BrokerId": fields.Str(required=False, load_from="BrokerId"), + "BrokerInfo": fields.List(BrokerOfTopicInfoSchema()), + "CreateTime": fields.Str(required=False, load_from="CreateTime"), + "DomainName": fields.Str(required=False, load_from="DomainName"), + "Endpoints": EndpointsSchema(), + "ExpireTime": fields.Int(required=False, load_from="ExpireTime"), + "IPSet": fields.List(IPSchema()), + "InstanceGroupType": fields.Str( + required=False, load_from="InstanceGroupType" + ), + "KafkaPort": fields.Int(required=False, load_from="KafkaPort"), + "Remark": fields.Str(required=False, load_from="Remark"), + "ResourceId": fields.Str(required=False, load_from="ResourceId"), + "SecurityGroupId": fields.Str( + required=False, load_from="SecurityGroupId" + ), + "State": fields.Str(required=False, load_from="State"), + "UHostConfig": UHostConfigSchema(), + "UHostId": fields.Str(required=False, load_from="UHostId"), + "UHostName": fields.Str(required=False, load_from="UHostName"), + "UHostRole": fields.Str(required=False, load_from="UHostRole"), + "ZooKeeper": fields.Str(required=False, load_from="ZooKeeper"), + "ZooKeeperPort": fields.Int(required=False, load_from="ZooKeeperPort"), + } + + +class ClusterInfoSchema(schema.ResponseSchema): + """ClusterInfo - 集群信息""" + + fields = { + "AutoRenew": fields.Str(required=False, load_from="AutoRenew"), + "BusinessId": fields.Str(required=False, load_from="BusinessId"), + "ChargeType": fields.Str(required=False, load_from="ChargeType"), + "ClusterInstanceId": fields.Str( + required=False, load_from="ClusterInstanceId" + ), + "ClusterInstanceName": fields.Str( + required=False, load_from="ClusterInstanceName" + ), + "CreateTime": fields.Int(required=False, load_from="CreateTime"), + "ExpireTime": fields.Int(required=False, load_from="ExpireTime"), + "Framework": fields.Str(required=False, load_from="Framework"), + "FrameworkVersion": fields.Str( + required=False, load_from="FrameworkVersion" + ), + "IsOpenSecgroup": fields.Str( + required=False, load_from="IsOpenSecgroup" + ), + "NetworkId": fields.Str(required=False, load_from="NetworkId"), + "Remark": fields.Str(required=False, load_from="Remark"), + "RunningTime": fields.Int(required=False, load_from="RunningTime"), + "State": fields.Str(required=False, load_from="State"), + "SubnetId": fields.Str(required=False, load_from="SubnetId"), + "Tag": fields.Str(required=False, load_from="Tag"), + "UHostCount": fields.Int(required=False, load_from="UHostCount"), + "UHostSet": fields.List(BrokerSchema()), + "VPCId": fields.Str(required=False, load_from="VPCId"), + "ValidBrokerNum": fields.Int( + required=False, load_from="ValidBrokerNum" + ), + "Zone": fields.Str(required=False, load_from="Zone"), + } + + +class DiskSetSchema(schema.ResponseSchema): + """DiskSet - 磁盘配置""" + + fields = { + "Size": fields.Str(required=True, load_from="Size"), + "Type": fields.Str(required=True, load_from="Type"), + } + + +class InstanceTypeSchema(schema.ResponseSchema): + """InstanceType - kafka 集群节点信息""" + + fields = { + "CPU": fields.Int(required=False, load_from="CPU"), + "DiskSet": DiskSetSchema(), + "DiskType": fields.Str(required=False, load_from="DiskType"), + "Memory": fields.Str(required=False, load_from="Memory"), + "NodeTypeName": fields.Str(required=False, load_from="NodeTypeName"), + } + + +class GroupSchema(schema.ResponseSchema): + """Group - Kafka 消费者组每一项的信息""" + + fields = { + "GroupName": fields.Str(required=False, load_from="GroupName"), + "NumOfTopics": fields.Int(required=False, load_from="NumOfTopics"), + "Type": fields.Str(required=False, load_from="Type"), + } + + +class VersionSchema(schema.ResponseSchema): + """Version -""" + + fields = { + "Label": fields.Str(required=False, load_from="Label"), + "Version": fields.Str(required=False, load_from="Version"), + } + + +class TopicInfoSchema(schema.ResponseSchema): + """TopicInfo - Topic 信息对象""" + + fields = { + "NumOfOccupyBroker": fields.Int( + required=False, load_from="NumOfOccupyBroker" + ), + "NumOfPartition": fields.Int( + required=False, load_from="NumOfPartition" + ), + "NumOfReplica": fields.Int(required=False, load_from="NumOfReplica"), + "Status": fields.Str(required=False, load_from="Status"), + "Topic": fields.Str(required=False, load_from="Topic"), + "UnderReplicasPer": fields.Float( + required=False, load_from="UnderReplicasPer" + ), + } 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"