github.com/qiniu/go-sdk/v7@v7.27.0/iam/apis/get_user_policies/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 查询子账号下的授权策略 4 package get_user_policies 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 GetIamUserPoliciesData // IAM 子账号的授权策略信息 24 } 25 26 // 授权策略规则的操作集合 27 type Actions = []string 28 29 // 授权策略规则的资源集合 30 type Resources = []string 31 32 // 授权策略规则 33 type Statement struct { 34 Actions Actions // 授权策略规则的操作集合 35 Resources Resources // 授权策略规则的资源集合 36 Effect string // 授权策略规则的生效类型,允许访问或拒绝访问 37 } 38 type jsonStatement struct { 39 Actions Actions `json:"action"` // 授权策略规则的操作集合 40 Resources Resources `json:"resource"` // 授权策略规则的资源集合 41 Effect string `json:"effect"` // 授权策略规则的生效类型,允许访问或拒绝访问 42 } 43 44 func (j *Statement) MarshalJSON() ([]byte, error) { 45 if err := j.validate(); err != nil { 46 return nil, err 47 } 48 return json.Marshal(&jsonStatement{Actions: j.Actions, Resources: j.Resources, Effect: j.Effect}) 49 } 50 51 func (j *Statement) UnmarshalJSON(data []byte) error { 52 var nj jsonStatement 53 if err := json.Unmarshal(data, &nj); err != nil { 54 return err 55 } 56 j.Actions = nj.Actions 57 j.Resources = nj.Resources 58 j.Effect = nj.Effect 59 return nil 60 } 61 62 func (j *Statement) validate() error { 63 if len(j.Actions) == 0 { 64 return errors.MissingRequiredFieldError{Name: "Actions"} 65 } 66 if len(j.Resources) == 0 { 67 return errors.MissingRequiredFieldError{Name: "Resources"} 68 } 69 if j.Effect == "" { 70 return errors.MissingRequiredFieldError{Name: "Effect"} 71 } 72 return nil 73 } 74 75 // 授权策略规则集合 76 type Statements = []Statement 77 78 // 返回的 IAM 子账号的授权策略 79 type GetIamUserPolicy struct { 80 Id string // 记录 ID 81 RootUid int64 // 根用户 uid 82 Alias string // 授权策略别名 83 Description string // 授权策略描述 84 Enabled bool // 授权策略是否启用 85 CreatedAt string // 授权策略创建时间 86 UpdatedAt string // 授权策略上次更新时间 87 Statement Statements // 授权策略规则集合 88 } 89 type jsonGetIamUserPolicy struct { 90 Id string `json:"id"` // 记录 ID 91 RootUid int64 `json:"root_uid"` // 根用户 uid 92 Alias string `json:"alias"` // 授权策略别名 93 Description string `json:"description"` // 授权策略描述 94 Enabled bool `json:"enabled"` // 授权策略是否启用 95 CreatedAt string `json:"created_at"` // 授权策略创建时间 96 UpdatedAt string `json:"updated_at"` // 授权策略上次更新时间 97 Statement Statements `json:"statement"` // 授权策略规则集合 98 } 99 100 func (j *GetIamUserPolicy) MarshalJSON() ([]byte, error) { 101 if err := j.validate(); err != nil { 102 return nil, err 103 } 104 return json.Marshal(&jsonGetIamUserPolicy{Id: j.Id, RootUid: j.RootUid, Alias: j.Alias, Description: j.Description, Enabled: j.Enabled, CreatedAt: j.CreatedAt, UpdatedAt: j.UpdatedAt, Statement: j.Statement}) 105 } 106 107 func (j *GetIamUserPolicy) UnmarshalJSON(data []byte) error { 108 var nj jsonGetIamUserPolicy 109 if err := json.Unmarshal(data, &nj); err != nil { 110 return err 111 } 112 j.Id = nj.Id 113 j.RootUid = nj.RootUid 114 j.Alias = nj.Alias 115 j.Description = nj.Description 116 j.Enabled = nj.Enabled 117 j.CreatedAt = nj.CreatedAt 118 j.UpdatedAt = nj.UpdatedAt 119 j.Statement = nj.Statement 120 return nil 121 } 122 123 func (j *GetIamUserPolicy) validate() error { 124 if j.Id == "" { 125 return errors.MissingRequiredFieldError{Name: "Id"} 126 } 127 if j.RootUid == 0 { 128 return errors.MissingRequiredFieldError{Name: "RootUid"} 129 } 130 if j.Alias == "" { 131 return errors.MissingRequiredFieldError{Name: "Alias"} 132 } 133 if j.Description == "" { 134 return errors.MissingRequiredFieldError{Name: "Description"} 135 } 136 if j.CreatedAt == "" { 137 return errors.MissingRequiredFieldError{Name: "CreatedAt"} 138 } 139 if j.UpdatedAt == "" { 140 return errors.MissingRequiredFieldError{Name: "UpdatedAt"} 141 } 142 if len(j.Statement) == 0 { 143 return errors.MissingRequiredFieldError{Name: "Statement"} 144 } 145 for _, value := range j.Statement { 146 if err := value.validate(); err != nil { 147 return err 148 } 149 } 150 return nil 151 } 152 153 // 返回的 IAM 子账号的授权策略列表 154 type GetIamUserPolicies = []GetIamUserPolicy 155 156 // IAM 子账号的授权策略信息 157 type Data struct { 158 Count int64 // IAM 子账号的授权策略数量 159 List GetIamUserPolicies // IAM 子账号的授权策略列表 160 } 161 162 // 返回的 IAM 子账号的授权策略列表信息 163 type ( 164 GetIamUserPoliciesData = Data 165 jsonData struct { 166 Count int64 `json:"count"` // IAM 子账号的授权策略数量 167 List GetIamUserPolicies `json:"list"` // IAM 子账号的授权策略列表 168 } 169 ) 170 171 func (j *Data) MarshalJSON() ([]byte, error) { 172 if err := j.validate(); err != nil { 173 return nil, err 174 } 175 return json.Marshal(&jsonData{Count: j.Count, List: j.List}) 176 } 177 178 func (j *Data) UnmarshalJSON(data []byte) error { 179 var nj jsonData 180 if err := json.Unmarshal(data, &nj); err != nil { 181 return err 182 } 183 j.Count = nj.Count 184 j.List = nj.List 185 return nil 186 } 187 188 func (j *Data) validate() error { 189 if j.Count == 0 { 190 return errors.MissingRequiredFieldError{Name: "Count"} 191 } 192 if len(j.List) == 0 { 193 return errors.MissingRequiredFieldError{Name: "List"} 194 } 195 for _, value := range j.List { 196 if err := value.validate(); err != nil { 197 return err 198 } 199 } 200 return nil 201 } 202 203 // 返回的 IAM 子账号的授权策略列表响应 204 type ( 205 GetIamUserPoliciesResp = Response 206 jsonResponse struct { 207 Data GetIamUserPoliciesData `json:"data"` // IAM 子账号的授权策略信息 208 } 209 ) 210 211 func (j *Response) MarshalJSON() ([]byte, error) { 212 if err := j.validate(); err != nil { 213 return nil, err 214 } 215 return json.Marshal(&jsonResponse{Data: j.Data}) 216 } 217 218 func (j *Response) UnmarshalJSON(data []byte) error { 219 var nj jsonResponse 220 if err := json.Unmarshal(data, &nj); err != nil { 221 return err 222 } 223 j.Data = nj.Data 224 return nil 225 } 226 227 func (j *Response) validate() error { 228 if err := j.Data.validate(); err != nil { 229 return err 230 } 231 return nil 232 }