""" Code is generated by ucloud-model, DO NOT EDIT IT. """
import typing
from ucloud.core.client import Client
from ucloud.services.uhub.schemas import apis
[docs]class UHubClient(Client):
def __init__(
self, config: dict, transport=None, middleware=None, logger=None
):
super(UHubClient, self).__init__(config, transport, middleware, logger)
[docs] def create_repo(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
"""CreateRepo - 创建镜像仓库
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **RepoName** (str) - (Required) 仓库名称,不可修改
- **Description** (str) - 仓库备注
- **IsShared** (bool) - 镜像仓库是否公开,公开为true、不公开为false;默认为false
**Response**
- **Message** (str) - 有错误时返回内容
"""
# build request
d = {
"ProjectId": self.config.project_id,
}
req and d.update(req)
d = apis.CreateRepoRequestSchema().dumps(d)
# build options
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
resp = self.invoke("CreateRepo", d, **kwargs)
return apis.CreateRepoResponseSchema().loads(resp)
[docs] def delete_repo(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
"""DeleteRepo - 删除镜像仓库
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **RepoName** (str) - (Required) 镜像仓库名称
**Response**
"""
# build request
d = {
"ProjectId": self.config.project_id,
}
req and d.update(req)
d = apis.DeleteRepoRequestSchema().dumps(d)
resp = self.invoke("DeleteRepo", d, **kwargs)
return apis.DeleteRepoResponseSchema().loads(resp)
[docs] def delete_repo_image(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""DeleteRepoImage - 删除镜像
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **ImageName** (str) - (Required) 镜像名称
- **RepoName** (str) - (Required) 镜像仓库名称
- **TagName** (str) - 不指定tag则删除全部tag
**Response**
"""
# build request
d = {
"ProjectId": self.config.project_id,
}
req and d.update(req)
d = apis.DeleteRepoImageRequestSchema().dumps(d)
resp = self.invoke("DeleteRepoImage", d, **kwargs)
return apis.DeleteRepoImageResponseSchema().loads(resp)
[docs] def get_image_tag(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""GetImageTag - 获取镜像tag
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
- **ImageName** (str) - (Required) 镜像名称
- **RepoName** (str) - (Required) 镜像仓库名称
- **Limit** (int) - 每次获取数量,默认为20
- **Offset** (int) - 偏移量,默认0
- **TagName** (str) - 默认不写,如果填写,代表查询该tag,否则查全部tag
**Response**
- **TagSet** (list) - 见 **TagSet** 模型定义
- **TotalCount** (int) - tag总数
**Response Model**
**TagSet**
- **Digest** (str) - 镜像digest值
- **TagName** (str) - Tag名称
- **UpdateTime** (str) - 镜像更新时间
"""
# build request
d = {
"ProjectId": self.config.project_id,
}
req and d.update(req)
d = apis.GetImageTagRequestSchema().dumps(d)
resp = self.invoke("GetImageTag", d, **kwargs)
return apis.GetImageTagResponseSchema().loads(resp)
[docs] def get_repo(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
"""GetRepo - 获取镜像仓库
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **Limit** (int) - 数量,默认20
- **Offset** (int) - 偏移量,默认0
- **Type** (str) - private私有仓库,public公共仓库,默认public
**Response**
- **RepoSet** (list) - 见 **RepoSet** 模型定义
- **TotalCount** (int) - 总的仓库数量
**Response Model**
**RepoSet**
- **CreateTime** (str) - 仓库创建时间
- **Description** (str) - 镜像仓库描述
- **IsOutSide** (str) - 镜像仓库是否外网可以访问,可以为ture,不可以为false
- **IsShared** (str) - 镜像仓库类型,false为私有;true为公有
- **RepoName** (str) - 镜像仓库名称
- **UpdateTime** (str) - 仓库更新时间
"""
# build request
d = {
"ProjectId": self.config.project_id,
}
req and d.update(req)
d = apis.GetRepoRequestSchema().dumps(d)
resp = self.invoke("GetRepo", d, **kwargs)
return apis.GetRepoResponseSchema().loads(resp)
[docs] def get_repo_image(
self, req: typing.Optional[dict] = None, **kwargs
) -> dict:
"""GetRepoImage - 获取镜像仓库下的镜像
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **RepoName** (str) - (Required) 镜像仓库名称
- **Limit** (int) - 显示数量,默认为20
- **Offset** (int) - 偏移量,默认0
**Response**
- **ImageSet** (list) - 见 **ImageSet** 模型定义
- **TotalCount** (int) -
**Response Model**
**ImageSet**
- **CreateTime** (str) - 创建时间
- **ImageName** (str) - 镜像名称
- **LatestTag** (str) - 最新push的Tag
- **PullCount** (int) - 镜像被下载次数
- **RepoName** (str) - 镜像仓库名称
- **UpdateTime** (str) - 修改时间
"""
# build request
d = {
"ProjectId": self.config.project_id,
}
req and d.update(req)
d = apis.GetRepoImageRequestSchema().dumps(d)
resp = self.invoke("GetRepoImage", d, **kwargs)
return apis.GetRepoImageResponseSchema().loads(resp)
[docs] def update_repo(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
"""UpdateRepo - 更新镜像仓库
**Request**
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_
- **RepoName** (str) - (Required) 镜像仓库名称,不可修改
- **Description** (str) - 备注
- **IsShared** (str) - false设置为私有;true设置为公有。默认false
**Response**
- **Message** (str) - 错误的时候返回
"""
# build request
d = {
"ProjectId": self.config.project_id,
}
req and d.update(req)
d = apis.UpdateRepoRequestSchema().dumps(d)
resp = self.invoke("UpdateRepo", d, **kwargs)
return apis.UpdateRepoResponseSchema().loads(resp)