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 }