github.com/qiniu/go-sdk/v7@v7.27.0/iam/apis/get_user_groups/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 查询子账号所属用户分组列表 4 package get_user_groups 5 6 import ( 7 "encoding/json" 8 9 credentials "github.com/qiniu/go-sdk/v7/storagev2/credentials" 10 errors "github.com/qiniu/go-sdk/v7/storagev2/errors" 11 ) 12 13 // 调用 API 所用的请求 14 type Request struct { 15 Alias string // 子账号别名 16 Page int64 // 分页页号,从 1 开始,默认 1 17 PageSize int64 // 分页大小,默认 20,最大 2000 18 Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider 19 } 20 21 // 获取 API 所用的响应 22 type Response struct { 23 Data GetIamUserGroupsData // IAM 子账号分组信息 24 } 25 26 // 返回的 IAM 子账号分组 27 type IamUserGroup struct { 28 Id string // 记录 ID 29 RootUid int64 // 根用户 uid 30 Alias string // 用户分组别名 31 Description string // 用户分组描述 32 Enabled bool // 用户分组是否启用 33 CreatedAt string // 用户分组创建时间 34 UpdatedAt string // 用户分组上次更新时间 35 } 36 type jsonIamUserGroup struct { 37 Id string `json:"id"` // 记录 ID 38 RootUid int64 `json:"root_uid"` // 根用户 uid 39 Alias string `json:"alias"` // 用户分组别名 40 Description string `json:"description"` // 用户分组描述 41 Enabled bool `json:"enabled"` // 用户分组是否启用 42 CreatedAt string `json:"created_at"` // 用户分组创建时间 43 UpdatedAt string `json:"updated_at"` // 用户分组上次更新时间 44 } 45 46 func (j *IamUserGroup) MarshalJSON() ([]byte, error) { 47 if err := j.validate(); err != nil { 48 return nil, err 49 } 50 return json.Marshal(&jsonIamUserGroup{Id: j.Id, RootUid: j.RootUid, Alias: j.Alias, Description: j.Description, Enabled: j.Enabled, CreatedAt: j.CreatedAt, UpdatedAt: j.UpdatedAt}) 51 } 52 53 func (j *IamUserGroup) UnmarshalJSON(data []byte) error { 54 var nj jsonIamUserGroup 55 if err := json.Unmarshal(data, &nj); err != nil { 56 return err 57 } 58 j.Id = nj.Id 59 j.RootUid = nj.RootUid 60 j.Alias = nj.Alias 61 j.Description = nj.Description 62 j.Enabled = nj.Enabled 63 j.CreatedAt = nj.CreatedAt 64 j.UpdatedAt = nj.UpdatedAt 65 return nil 66 } 67 68 func (j *IamUserGroup) validate() error { 69 if j.Id == "" { 70 return errors.MissingRequiredFieldError{Name: "Id"} 71 } 72 if j.RootUid == 0 { 73 return errors.MissingRequiredFieldError{Name: "RootUid"} 74 } 75 if j.Alias == "" { 76 return errors.MissingRequiredFieldError{Name: "Alias"} 77 } 78 if j.Description == "" { 79 return errors.MissingRequiredFieldError{Name: "Description"} 80 } 81 if j.CreatedAt == "" { 82 return errors.MissingRequiredFieldError{Name: "CreatedAt"} 83 } 84 if j.UpdatedAt == "" { 85 return errors.MissingRequiredFieldError{Name: "UpdatedAt"} 86 } 87 return nil 88 } 89 90 // 返回的 IAM 子账号分组列表 91 type GetIamUserGroups = []IamUserGroup 92 93 // IAM 子账号分组信息 94 type Data struct { 95 Count int64 // IAM 子账号分组数量 96 List GetIamUserGroups // IAM 子账号分组列表 97 } 98 99 // 返回的 IAM 子账号分组列表信息 100 type ( 101 GetIamUserGroupsData = Data 102 jsonData struct { 103 Count int64 `json:"count"` // IAM 子账号分组数量 104 List GetIamUserGroups `json:"list"` // IAM 子账号分组列表 105 } 106 ) 107 108 func (j *Data) MarshalJSON() ([]byte, error) { 109 if err := j.validate(); err != nil { 110 return nil, err 111 } 112 return json.Marshal(&jsonData{Count: j.Count, List: j.List}) 113 } 114 115 func (j *Data) UnmarshalJSON(data []byte) error { 116 var nj jsonData 117 if err := json.Unmarshal(data, &nj); err != nil { 118 return err 119 } 120 j.Count = nj.Count 121 j.List = nj.List 122 return nil 123 } 124 125 func (j *Data) validate() error { 126 if j.Count == 0 { 127 return errors.MissingRequiredFieldError{Name: "Count"} 128 } 129 if len(j.List) == 0 { 130 return errors.MissingRequiredFieldError{Name: "List"} 131 } 132 for _, value := range j.List { 133 if err := value.validate(); err != nil { 134 return err 135 } 136 } 137 return nil 138 } 139 140 // 返回的 IAM 子账号分组列表响应 141 type ( 142 GetIamUserGroupsResp = Response 143 jsonResponse struct { 144 Data GetIamUserGroupsData `json:"data"` // IAM 子账号分组信息 145 } 146 ) 147 148 func (j *Response) MarshalJSON() ([]byte, error) { 149 if err := j.validate(); err != nil { 150 return nil, err 151 } 152 return json.Marshal(&jsonResponse{Data: j.Data}) 153 } 154 155 func (j *Response) UnmarshalJSON(data []byte) error { 156 var nj jsonResponse 157 if err := json.Unmarshal(data, &nj); err != nil { 158 return err 159 } 160 j.Data = nj.Data 161 return nil 162 } 163 164 func (j *Response) validate() error { 165 if err := j.Data.validate(); err != nil { 166 return err 167 } 168 return nil 169 }