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

     1  // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY!
     2  
     3  // 查询 IAM 的操作
     4  package get_actions
     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  	Service     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 GetActionsData // 接口操作信息
    24  }
    25  
    26  // 返回的接口操作
    27  type GetAction struct {
    28  	Id        string // 记录 ID
    29  	Name      string // 接口操作名称
    30  	Alias     string // 接口操作别名
    31  	Service   string // 接口操作对应的服务
    32  	Scope     int64  // 接口操作权限粒度,0: 操作级,不限制资源,1: 资源级,只能访问特定资源
    33  	Enabled   bool   // 接口操作是否启用
    34  	CreatedAt string // 接口操作创建时间
    35  	UpdatedAt string // 接口操作上次更新时间
    36  }
    37  type jsonGetAction struct {
    38  	Id        string `json:"id"`         // 记录 ID
    39  	Name      string `json:"name"`       // 接口操作名称
    40  	Alias     string `json:"alias"`      // 接口操作别名
    41  	Service   string `json:"service"`    // 接口操作对应的服务
    42  	Scope     int64  `json:"scope"`      // 接口操作权限粒度,0: 操作级,不限制资源,1: 资源级,只能访问特定资源
    43  	Enabled   bool   `json:"enabled"`    // 接口操作是否启用
    44  	CreatedAt string `json:"created_at"` // 接口操作创建时间
    45  	UpdatedAt string `json:"updated_at"` // 接口操作上次更新时间
    46  }
    47  
    48  func (j *GetAction) MarshalJSON() ([]byte, error) {
    49  	if err := j.validate(); err != nil {
    50  		return nil, err
    51  	}
    52  	return json.Marshal(&jsonGetAction{Id: j.Id, Name: j.Name, Alias: j.Alias, Service: j.Service, Scope: j.Scope, Enabled: j.Enabled, CreatedAt: j.CreatedAt, UpdatedAt: j.UpdatedAt})
    53  }
    54  
    55  func (j *GetAction) UnmarshalJSON(data []byte) error {
    56  	var nj jsonGetAction
    57  	if err := json.Unmarshal(data, &nj); err != nil {
    58  		return err
    59  	}
    60  	j.Id = nj.Id
    61  	j.Name = nj.Name
    62  	j.Alias = nj.Alias
    63  	j.Service = nj.Service
    64  	j.Scope = nj.Scope
    65  	j.Enabled = nj.Enabled
    66  	j.CreatedAt = nj.CreatedAt
    67  	j.UpdatedAt = nj.UpdatedAt
    68  	return nil
    69  }
    70  
    71  func (j *GetAction) validate() error {
    72  	if j.Id == "" {
    73  		return errors.MissingRequiredFieldError{Name: "Id"}
    74  	}
    75  	if j.Name == "" {
    76  		return errors.MissingRequiredFieldError{Name: "Name"}
    77  	}
    78  	if j.Alias == "" {
    79  		return errors.MissingRequiredFieldError{Name: "Alias"}
    80  	}
    81  	if j.Service == "" {
    82  		return errors.MissingRequiredFieldError{Name: "Service"}
    83  	}
    84  	if j.Scope == 0 {
    85  		return errors.MissingRequiredFieldError{Name: "Scope"}
    86  	}
    87  	if j.CreatedAt == "" {
    88  		return errors.MissingRequiredFieldError{Name: "CreatedAt"}
    89  	}
    90  	if j.UpdatedAt == "" {
    91  		return errors.MissingRequiredFieldError{Name: "UpdatedAt"}
    92  	}
    93  	return nil
    94  }
    95  
    96  // 返回的接口操作列表
    97  type GetActions = []GetAction
    98  
    99  // 接口操作信息
   100  type Data struct {
   101  	Count int64      // 接口操作数量
   102  	List  GetActions // 接口操作列表
   103  }
   104  
   105  // 返回的接口操作列表信息
   106  type (
   107  	GetActionsData = Data
   108  	jsonData       struct {
   109  		Count int64      `json:"count"` // 接口操作数量
   110  		List  GetActions `json:"list"`  // 接口操作列表
   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  // 返回的接口操作列表响应
   147  type (
   148  	GetActionsResp = Response
   149  	jsonResponse   struct {
   150  		Data GetActionsData `json:"data"` // 接口操作信息
   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  }