Files
cloudpods/pkg/apis/cloudid/clouduser.go
2022-09-20 20:13:50 +08:00

282 lines
9.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Copyright 2019 Yunion
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cloudid
import "yunion.io/x/onecloud/pkg/apis"
const (
CLOUD_USER_STATUS_CREATING = "creating" // 创建中
CLOUD_USER_STATUS_CREATE_FAILED = "create_failed" //创建失败
CLOUD_USER_STATUS_AVAILABLE = "available" // 可用
CLOUD_USER_STATUS_UNKNOWN = "unknown" // 未知
CLOUD_USER_STATUS_DELETING = "deleting" // 删除中
CLOUD_USER_STATUS_DELETE_FAILED = "delete_failed" // 删除失败
CLOUD_USER_STATUS_SYNC_STATUS = "sync_status" // 同步状态中
CLOUD_USER_STATUS_SYNC = "sync" // 同步配置中
CLOUD_USER_STATUS_SYNC_FAILED = "sync_failed" // 同步配置失败
CLOUD_USER_STATUS_SYNC_POLICIES = "sync_policies" // 同步权限中
CLOUD_USER_STATUS_SYNC_POLICIES_FAILED = "sync_policies_failed" // 同步权限失败
CLOUD_USER_STATUS_SYNC_GROUPS = "sync_groups" // 同步权限组中
CLOUD_USER_STATUS_SYNC_GROUPS_FAILED = "sync_groups_failed" // 同步权限组失败
CLOUD_USER_STATUS_RESET_PASSWORD = "reset_password" // 重置密码中
CLOUD_USER_STATUS_RESET_PASSWORD_FAILED = "reset_password_failed" // 重置密码失败
)
type ClouduserCreateInput struct {
apis.StatusDomainLevelUserResourceCreateInput
apis.StatusBaseResourceCreateInput
// 云订阅ID, 若此参数为空, 则cloudpolicy_ids的权限会绑定到此账号的所有订阅, 若不为空则cloudpolicy_ids仅绑定的指定的订阅
// 此参数仅对Google,Azure生效
CloudproviderId string `json:"cloudprovider_id"`
// 云账号ID
// Azure云账号需要有User administrator权限否则删操作会出现Insufficient privileges to complete the operation错误信息
CloudaccountId string `json:"cloudaccount_id"`
// 用户密码, 若is_console_login = true时, 此参数不传时会生成12位随机密码
//
//
//
// | 云平台 | 说明 |
// |----------|---------------------------------------------|
// | Google | 不支持此参数 |
// | Aliyun | 支持 |
// | Huawei | 支持 |
// | Azure | 支持 |
// | 腾讯云 | 支持 |
Password string `json:"password"`
// 是否可控制台登录
// default: false
IsConsoleLogin *bool `json:"is_console_login"`
// 邮箱地址
// example: test@example.com
Email string `json:"email"`
// 手机号码
// example: 86-1868888****
MobilePhone string `json:"mobile_phone"`
// 初始的权限Id列表, 权限必须属于指定的云账号
//
//
//
// | 云平台 | 说明 |
// |----------|---------------------------------------------|
// | Google | 至少需要一个初始权限 |
// | Aliyun | 支持 |
// | Huawei | 不支持 |
// | Azure | 支持 |
// | 腾讯云 | 支持 |
CloudpolicyIds []string `json:"cloudpolicy_ids"`
// 初始化权限组Id列表, 权限组必须和云账号平台属性相同
CloudgroupIds []string `json:"cloudgroup_ids"`
// swagger:ignore
ExternalId string `json:"external_id"`
// 是否发送邮件通知(仅设置email不为空生效)
// default: false
Notify bool `json:"notify"`
}
type ClouduserListInput struct {
apis.StatusDomainLevelUserResourceListInput
CloudaccountResourceListInput
// 过滤绑定权限的子账号
CloudpolicyId string `json:"cloudpolicy_id"`
// 过滤属于指定权限组的子账号
CloudgroupId string `json:"cloudgroup_id"`
}
type ClouduserpolicyDetails struct {
// 权限Id
Id string `json:"id"`
// 权限名称
Name string `json:"name"`
// 子订阅Id
CloudproviderId string `json:"cloudprovider_id"`
// 子订阅名称
Manager string `json:"manager"`
}
type ClouduserDetails struct {
apis.StatusDomainLevelUserResourceDetails
SClouduser
CloudaccountResourceDetails
CloudproviderResourceDetails
// 权限数量
CloudpolicyCount int `json:"cloudpolicy_count"`
// 权限组数量
CloudgroupCount int `json:"cloudgroup_count"`
Cloudgroups []SCloudIdBaseResource `json:"cloudgroups"`
Cloudpolicies []ClouduserpolicyDetails `json:"cloudpolicies"`
}
type ClouduserJointResourceDetails struct {
apis.JointResourceBaseDetails
ClouduserResourceDetails
}
type ClouduserJointsListInput struct {
apis.JointResourceBaseListInput
ClouduserResourceListInput
}
type ClouduserJointBaseUpdateInput struct {
apis.JointResourceBaseUpdateInput
}
type ClouduserPolicyDetails struct {
ClouduserJointResourceDetails
CloudpolicyResourceDetails
}
type ClouduserPolicyListInput struct {
ClouduserJointsListInput
CloudpolicyResourceListInput
}
type ClouduserResourceListInput struct {
// 根据公有云用户过滤资源
Clouduser string `json:"clouduser"`
// swagger:ignore
ClouduserId string `json:"clouduser_id" yunion-deprecated-by:"clouduser"`
}
type ClouduserResourceDetails struct {
// 公有云用户名称
Clouduser string `json:"clouduser"`
// 云账号名称
Cloudaccount string `json:"cloudaccount"`
// 云订阅名称
Cloudprovider string `json:"cloudprovider"`
}
type ClouduserAttachPolicyInput struct {
// 订阅Id, 向云账号赋予某个订阅的权限, 目前仅Google,Azure平台此参数生效
CloudproviderId string `json:"cloudprovider_id"`
// 权限Id
//
//
//
// | 云平台 | 说明 |
// |----------|---------------------------------------------|
// | Google | 支持 |
// | Aliyun | 支持 |
// | Huawei | 不支持 |
// | Azure | 支持 |
// | 腾讯云 | 支持 |
CloudpolicyId string `json:"cloudpolicy_id"`
}
type ClouduserSetPoliciesInput struct {
// 订阅Id, 设置云账号赋予某个订阅的权限, 目前仅Google,Azure平台此参数生效
CloudproviderId string `json:"cloudprovider_id"`
// 权限Ids
CloudpolicyIds []string `json:"cloudpolicy_ids"`
}
type ClouduserSetGroupsInput struct {
// 权限组Ids
CloudgroupIds []string `json:"cloudgroup_ids"`
}
type ClouduserJoinGroupInput struct {
// 权限组Id
CloudgroupId string `json:"cloudgroup_id"`
}
type ClouduserLeaveGroupInput struct {
// 权限组Id
CloudgroupId string `json:"cloudgroup_id"`
}
type ClouduserDetachPolicyInput struct {
// 订阅Id, 解绑云账号赋予某个订阅的权限, 目前仅Google,Azure平台此参数生效
CloudproviderId string `json:"cloudprovider_id"`
// 权限Id
//
//
//
// | 云平台 | 说明 |
// |----------|---------------------------------------------|
// | Google | 支持,但最少需要保留一个权限 |
// | Aliyun | 支持 |
// | Huawei | 不支持 |
// | Azure | 不支持 |
// | 腾讯云 | 支持 |
CloudpolicyId string `json:"cloudpolicy_id"`
}
type ClouduserSyncstatusInput struct {
}
type ClouduserSyncInput struct {
}
type ClouduserUpdateInput struct {
}
type ClouduserResetPasswordInput struct {
// 若此参数为空, 默认会生成随机12位密码
//
//
//
// | 云平台 | 说明 |
// |----------|---------------------------------------------|
// | Google | 不支持 |
// | Aliyun | 支持 |
// | Huawei | 支持 |
// | Azure | 支持 |
// | 腾讯云 | 支持 |
Password string `json:"password"`
}
type ClouduserChangeOwnerInput struct {
// 本地用户Id
UserId string `json:"user_id"`
}
type ClouduserCreateAccessKeyInput struct {
Name string `json:"name"`
}
type ClouduserDeleteAccessKeyInput struct {
AccessKey string `json:"access_key"`
}
type ClouduserListAccessKeyInput struct {
}