github.com/qiniu/go-sdk/v7@v7.27.0/iam/apis/get_policy_users/api.go (about)

     1  // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY!
     2  
     3  // 查询授权策略分配的用 IAM 子账号列表
     4  package get_policy_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 GetPolicyIamUsersData // 授权策略分配的 IAM 子账号信息
    24  }
    25  
    26  // 返回的授权策略分配的 IAM 子账号
    27  type PolicyIamUser 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 jsonPolicyIamUser 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 *PolicyIamUser) MarshalJSON() ([]byte, error) {
    49  	if err := j.validate(); err != nil {
    50  		return nil, err
    51  	}
    52  	return json.Marshal(&jsonPolicyIamUser{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 *PolicyIamUser) UnmarshalJSON(data []byte) error {
    56  	var nj jsonPolicyIamUser
    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 *PolicyIamUser) 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 GetPolicyIamUsers = []PolicyIamUser
    98  
    99  // 授权策略分配的 IAM 子账号信息
   100  type Data struct {
   101  	Count int64             // 授权策略分配的 IAM 子账号数量
   102  	List  GetPolicyIamUsers // 授权策略分配的 IAM 子账号列表
   103  }
   104  
   105  // 返回的授权策略分配的 IAM 子账号列表信息
   106  type (
   107  	GetPolicyIamUsersData = Data
   108  	jsonData              struct {
   109  		Count int64             `json:"count"` // 授权策略分配的 IAM 子账号数量
   110  		List  GetPolicyIamUsers `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  	GetPolicyIamUsersResp = Response
   149  	jsonResponse          struct {
   150  		Data GetPolicyIamUsersData `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  }