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

     1  // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY!
     2  
     3  // 获取所有区域信息
     4  package get_regions
     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  }
    17  
    18  // 获取 API 所用的响应
    19  type Response struct {
    20  	Regions Regions // 区域列表
    21  }
    22  
    23  // 区域信息
    24  type Region struct {
    25  	Id          string // 区域 ID
    26  	Description string // 区域描述信息
    27  }
    28  type jsonRegion struct {
    29  	Id          string `json:"id"`          // 区域 ID
    30  	Description string `json:"description"` // 区域描述信息
    31  }
    32  
    33  func (j *Region) MarshalJSON() ([]byte, error) {
    34  	if err := j.validate(); err != nil {
    35  		return nil, err
    36  	}
    37  	return json.Marshal(&jsonRegion{Id: j.Id, Description: j.Description})
    38  }
    39  
    40  func (j *Region) UnmarshalJSON(data []byte) error {
    41  	var nj jsonRegion
    42  	if err := json.Unmarshal(data, &nj); err != nil {
    43  		return err
    44  	}
    45  	j.Id = nj.Id
    46  	j.Description = nj.Description
    47  	return nil
    48  }
    49  
    50  func (j *Region) validate() error {
    51  	if j.Id == "" {
    52  		return errors.MissingRequiredFieldError{Name: "Id"}
    53  	}
    54  	if j.Description == "" {
    55  		return errors.MissingRequiredFieldError{Name: "Description"}
    56  	}
    57  	return nil
    58  }
    59  
    60  // 区域列表
    61  type Regions = []Region
    62  
    63  // 所有区域信息
    64  type (
    65  	RegionsInfo  = Response
    66  	jsonResponse struct {
    67  		Regions Regions `json:"regions"` // 区域列表
    68  	}
    69  )
    70  
    71  func (j *Response) MarshalJSON() ([]byte, error) {
    72  	if err := j.validate(); err != nil {
    73  		return nil, err
    74  	}
    75  	return json.Marshal(&jsonResponse{Regions: j.Regions})
    76  }
    77  
    78  func (j *Response) UnmarshalJSON(data []byte) error {
    79  	var nj jsonResponse
    80  	if err := json.Unmarshal(data, &nj); err != nil {
    81  		return err
    82  	}
    83  	j.Regions = nj.Regions
    84  	return nil
    85  }
    86  
    87  func (j *Response) validate() error {
    88  	if len(j.Regions) == 0 {
    89  		return errors.MissingRequiredFieldError{Name: "Regions"}
    90  	}
    91  	for _, value := range j.Regions {
    92  		if err := value.validate(); err != nil {
    93  			return err
    94  		}
    95  	}
    96  	return nil
    97  }