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

     1  // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY!
     2  
     3  // 列举子账号可用服务
     4  package get_user_available_services
     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 Services // IAM 子账号可用服务信息
    22  }
    23  
    24  // 可用服务列表
    25  type Services = []string
    26  
    27  // 返回的 IAM 子账号可用服务列表响应
    28  type (
    29  	GetIamUserAvailableServicesResp = Response
    30  	jsonResponse                    struct {
    31  		Data Services `json:"data"` // IAM 子账号可用服务信息
    32  	}
    33  )
    34  
    35  func (j *Response) MarshalJSON() ([]byte, error) {
    36  	if err := j.validate(); err != nil {
    37  		return nil, err
    38  	}
    39  	return json.Marshal(&jsonResponse{Data: j.Data})
    40  }
    41  
    42  func (j *Response) UnmarshalJSON(data []byte) error {
    43  	var nj jsonResponse
    44  	if err := json.Unmarshal(data, &nj); err != nil {
    45  		return err
    46  	}
    47  	j.Data = nj.Data
    48  	return nil
    49  }
    50  
    51  func (j *Response) validate() error {
    52  	if len(j.Data) == 0 {
    53  		return errors.MissingRequiredFieldError{Name: "Data"}
    54  	}
    55  	return nil
    56  }