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

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