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

     1  // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY!
     2  
     3  // 获取 IAM 子账号
     4  package get_user
     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  	Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider
    17  }
    18  
    19  // 获取 API 所用的响应
    20  type Response struct {
    21  	Data GetIamUserData // IAM 子账号信息
    22  }
    23  
    24  // IAM 子账号信息
    25  type Data struct {
    26  	Id            string // 记录 ID
    27  	RootUid       int64  // 根用户 uid
    28  	Iuid          int64  // 子账号 uid
    29  	Alias         string // 子账号别名
    30  	CreatedAt     string // 子账号创建时间
    31  	UpdatedAt     string // 子账号上次更新时间
    32  	LastLoginTime string // 子账号上次更新时间
    33  	Enabled       bool   // 子账号是否启用
    34  }
    35  
    36  // 返回的 IAM 子账号信息
    37  type (
    38  	GetIamUserData = Data
    39  	jsonData       struct {
    40  		Id            string `json:"id"`              // 记录 ID
    41  		RootUid       int64  `json:"root_uid"`        // 根用户 uid
    42  		Iuid          int64  `json:"iuid"`            // 子账号 uid
    43  		Alias         string `json:"alias"`           // 子账号别名
    44  		CreatedAt     string `json:"created_at"`      // 子账号创建时间
    45  		UpdatedAt     string `json:"updated_at"`      // 子账号上次更新时间
    46  		LastLoginTime string `json:"last_login_time"` // 子账号上次更新时间
    47  		Enabled       bool   `json:"enabled"`         // 子账号是否启用
    48  	}
    49  )
    50  
    51  func (j *Data) MarshalJSON() ([]byte, error) {
    52  	if err := j.validate(); err != nil {
    53  		return nil, err
    54  	}
    55  	return json.Marshal(&jsonData{Id: j.Id, RootUid: j.RootUid, Iuid: j.Iuid, Alias: j.Alias, CreatedAt: j.CreatedAt, UpdatedAt: j.UpdatedAt, LastLoginTime: j.LastLoginTime, Enabled: j.Enabled})
    56  }
    57  
    58  func (j *Data) UnmarshalJSON(data []byte) error {
    59  	var nj jsonData
    60  	if err := json.Unmarshal(data, &nj); err != nil {
    61  		return err
    62  	}
    63  	j.Id = nj.Id
    64  	j.RootUid = nj.RootUid
    65  	j.Iuid = nj.Iuid
    66  	j.Alias = nj.Alias
    67  	j.CreatedAt = nj.CreatedAt
    68  	j.UpdatedAt = nj.UpdatedAt
    69  	j.LastLoginTime = nj.LastLoginTime
    70  	j.Enabled = nj.Enabled
    71  	return nil
    72  }
    73  
    74  func (j *Data) validate() error {
    75  	if j.Id == "" {
    76  		return errors.MissingRequiredFieldError{Name: "Id"}
    77  	}
    78  	if j.RootUid == 0 {
    79  		return errors.MissingRequiredFieldError{Name: "RootUid"}
    80  	}
    81  	if j.Iuid == 0 {
    82  		return errors.MissingRequiredFieldError{Name: "Iuid"}
    83  	}
    84  	if j.Alias == "" {
    85  		return errors.MissingRequiredFieldError{Name: "Alias"}
    86  	}
    87  	if j.CreatedAt == "" {
    88  		return errors.MissingRequiredFieldError{Name: "CreatedAt"}
    89  	}
    90  	if j.UpdatedAt == "" {
    91  		return errors.MissingRequiredFieldError{Name: "UpdatedAt"}
    92  	}
    93  	if j.LastLoginTime == "" {
    94  		return errors.MissingRequiredFieldError{Name: "LastLoginTime"}
    95  	}
    96  	return nil
    97  }
    98  
    99  // 返回的 IAM 子账号响应
   100  type (
   101  	GetIamUserResp = Response
   102  	jsonResponse   struct {
   103  		Data GetIamUserData `json:"data"` // IAM 子账号信息
   104  	}
   105  )
   106  
   107  func (j *Response) MarshalJSON() ([]byte, error) {
   108  	if err := j.validate(); err != nil {
   109  		return nil, err
   110  	}
   111  	return json.Marshal(&jsonResponse{Data: j.Data})
   112  }
   113  
   114  func (j *Response) UnmarshalJSON(data []byte) error {
   115  	var nj jsonResponse
   116  	if err := json.Unmarshal(data, &nj); err != nil {
   117  		return err
   118  	}
   119  	j.Data = nj.Data
   120  	return nil
   121  }
   122  
   123  func (j *Response) validate() error {
   124  	if err := j.Data.validate(); err != nil {
   125  		return err
   126  	}
   127  	return nil
   128  }