github.com/qiniu/go-sdk/v7@v7.27.0/iam/apis/get_group_users/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 查询用户分组下的 IAM 子账户列表 4 package get_group_users 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 GetGroupIamUsersData // 用户分组下的 IAM 子账号信息 24 } 25 26 // 返回的用户分组下的 IAM 子账号 27 type GroupIamUser struct { 28 Id string // 记录 ID 29 RootUid int64 // 根用户 uid 30 Iuid int64 // 子账号 uid 31 Alias string // 子账号别名 32 CreatedAt string // 子账号创建时间 33 UpdatedAt string // 子账号上次更新时间 34 LastLoginTime string // 子账号上次更新时间 35 Enabled bool // 子账号是否启用 36 } 37 type jsonGroupIamUser struct { 38 Id string `json:"id"` // 记录 ID 39 RootUid int64 `json:"root_uid"` // 根用户 uid 40 Iuid int64 `json:"iuid"` // 子账号 uid 41 Alias string `json:"alias"` // 子账号别名 42 CreatedAt string `json:"created_at"` // 子账号创建时间 43 UpdatedAt string `json:"updated_at"` // 子账号上次更新时间 44 LastLoginTime string `json:"last_login_time"` // 子账号上次更新时间 45 Enabled bool `json:"enabled"` // 子账号是否启用 46 } 47 48 func (j *GroupIamUser) MarshalJSON() ([]byte, error) { 49 if err := j.validate(); err != nil { 50 return nil, err 51 } 52 return json.Marshal(&jsonGroupIamUser{Id: j.Id, RootUid: j.RootUid, Iuid: j.Iuid, Alias: j.Alias, CreatedAt: j.CreatedAt, UpdatedAt: j.UpdatedAt, LastLoginTime: j.LastLoginTime, Enabled: j.Enabled}) 53 } 54 55 func (j *GroupIamUser) UnmarshalJSON(data []byte) error { 56 var nj jsonGroupIamUser 57 if err := json.Unmarshal(data, &nj); err != nil { 58 return err 59 } 60 j.Id = nj.Id 61 j.RootUid = nj.RootUid 62 j.Iuid = nj.Iuid 63 j.Alias = nj.Alias 64 j.CreatedAt = nj.CreatedAt 65 j.UpdatedAt = nj.UpdatedAt 66 j.LastLoginTime = nj.LastLoginTime 67 j.Enabled = nj.Enabled 68 return nil 69 } 70 71 func (j *GroupIamUser) validate() error { 72 if j.Id == "" { 73 return errors.MissingRequiredFieldError{Name: "Id"} 74 } 75 if j.RootUid == 0 { 76 return errors.MissingRequiredFieldError{Name: "RootUid"} 77 } 78 if j.Iuid == 0 { 79 return errors.MissingRequiredFieldError{Name: "Iuid"} 80 } 81 if j.Alias == "" { 82 return errors.MissingRequiredFieldError{Name: "Alias"} 83 } 84 if j.CreatedAt == "" { 85 return errors.MissingRequiredFieldError{Name: "CreatedAt"} 86 } 87 if j.UpdatedAt == "" { 88 return errors.MissingRequiredFieldError{Name: "UpdatedAt"} 89 } 90 if j.LastLoginTime == "" { 91 return errors.MissingRequiredFieldError{Name: "LastLoginTime"} 92 } 93 return nil 94 } 95 96 // 返回的用户分组下的 IAM 子账号列表 97 type GetGroupIamUsers = []GroupIamUser 98 99 // 用户分组下的 IAM 子账号信息 100 type Data struct { 101 Count int64 // 用户分组下的 IAM 子账号数量 102 List GetGroupIamUsers // 用户分组下的 IAM 子账号列表 103 } 104 105 // 返回的用户分组下的 IAM 子账号列表信息 106 type ( 107 GetGroupIamUsersData = Data 108 jsonData struct { 109 Count int64 `json:"count"` // 用户分组下的 IAM 子账号数量 110 List GetGroupIamUsers `json:"list"` // 用户分组下的 IAM 子账号列表 111 } 112 ) 113 114 func (j *Data) MarshalJSON() ([]byte, error) { 115 if err := j.validate(); err != nil { 116 return nil, err 117 } 118 return json.Marshal(&jsonData{Count: j.Count, List: j.List}) 119 } 120 121 func (j *Data) UnmarshalJSON(data []byte) error { 122 var nj jsonData 123 if err := json.Unmarshal(data, &nj); err != nil { 124 return err 125 } 126 j.Count = nj.Count 127 j.List = nj.List 128 return nil 129 } 130 131 func (j *Data) validate() error { 132 if j.Count == 0 { 133 return errors.MissingRequiredFieldError{Name: "Count"} 134 } 135 if len(j.List) == 0 { 136 return errors.MissingRequiredFieldError{Name: "List"} 137 } 138 for _, value := range j.List { 139 if err := value.validate(); err != nil { 140 return err 141 } 142 } 143 return nil 144 } 145 146 // 返回的用户分组下的 IAM 子账号列表响应 147 type ( 148 GetGroupIamUsersResp = Response 149 jsonResponse struct { 150 Data GetGroupIamUsersData `json:"data"` // 用户分组下的 IAM 子账号信息 151 } 152 ) 153 154 func (j *Response) MarshalJSON() ([]byte, error) { 155 if err := j.validate(); err != nil { 156 return nil, err 157 } 158 return json.Marshal(&jsonResponse{Data: j.Data}) 159 } 160 161 func (j *Response) UnmarshalJSON(data []byte) error { 162 var nj jsonResponse 163 if err := json.Unmarshal(data, &nj); err != nil { 164 return err 165 } 166 j.Data = nj.Data 167 return nil 168 } 169 170 func (j *Response) validate() error { 171 if err := j.Data.validate(); err != nil { 172 return err 173 } 174 return nil 175 }