github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/apis/get_buckets_v4/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 获取拥有的所有存储空间列表 4 package get_buckets_v4 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 Region string // 区域 ID 16 Limit int64 // 分页大小。默认20,取值范围 1~100。 17 Marker string // 列举开始的空间标识 18 Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider 19 } 20 21 // 获取 API 所用的响应 22 type Response struct { 23 NextMarker string // 下一页开始的空间标识 24 IsTruncated bool // 是否所有的结果都已经返回 25 Buckets BucketsV4 26 } 27 28 // 存储空间信息 29 type BucketV4 struct { 30 Name string // 空间名称 31 Region string // 空间区域 ID 32 Private bool // 空间是否私有 33 CreatedTime string // 空间创建时间 34 } 35 type jsonBucketV4 struct { 36 Name string `json:"name"` // 空间名称 37 Region string `json:"region"` // 空间区域 ID 38 Private bool `json:"private"` // 空间是否私有 39 CreatedTime string `json:"ctime"` // 空间创建时间 40 } 41 42 func (j *BucketV4) MarshalJSON() ([]byte, error) { 43 if err := j.validate(); err != nil { 44 return nil, err 45 } 46 return json.Marshal(&jsonBucketV4{Name: j.Name, Region: j.Region, Private: j.Private, CreatedTime: j.CreatedTime}) 47 } 48 49 func (j *BucketV4) UnmarshalJSON(data []byte) error { 50 var nj jsonBucketV4 51 if err := json.Unmarshal(data, &nj); err != nil { 52 return err 53 } 54 j.Name = nj.Name 55 j.Region = nj.Region 56 j.Private = nj.Private 57 j.CreatedTime = nj.CreatedTime 58 return nil 59 } 60 61 func (j *BucketV4) validate() error { 62 if j.Name == "" { 63 return errors.MissingRequiredFieldError{Name: "Name"} 64 } 65 if j.Region == "" { 66 return errors.MissingRequiredFieldError{Name: "Region"} 67 } 68 if j.CreatedTime == "" { 69 return errors.MissingRequiredFieldError{Name: "CreatedTime"} 70 } 71 return nil 72 } 73 74 // 存储空间列表 75 type BucketsV4 = []BucketV4 76 77 // 返回所有存储空间结果 78 type ( 79 BucketsResultV4 = Response 80 jsonResponse struct { 81 NextMarker string `json:"next_marker"` // 下一页开始的空间标识 82 IsTruncated bool `json:"is_truncated"` // 是否所有的结果都已经返回 83 Buckets BucketsV4 `json:"buckets"` 84 } 85 ) 86 87 func (j *Response) MarshalJSON() ([]byte, error) { 88 if err := j.validate(); err != nil { 89 return nil, err 90 } 91 return json.Marshal(&jsonResponse{NextMarker: j.NextMarker, IsTruncated: j.IsTruncated, Buckets: j.Buckets}) 92 } 93 94 func (j *Response) UnmarshalJSON(data []byte) error { 95 var nj jsonResponse 96 if err := json.Unmarshal(data, &nj); err != nil { 97 return err 98 } 99 j.NextMarker = nj.NextMarker 100 j.IsTruncated = nj.IsTruncated 101 j.Buckets = nj.Buckets 102 return nil 103 } 104 105 func (j *Response) validate() error { 106 if j.NextMarker == "" { 107 return errors.MissingRequiredFieldError{Name: "NextMarker"} 108 } 109 if len(j.Buckets) == 0 { 110 return errors.MissingRequiredFieldError{Name: "Buckets"} 111 } 112 for _, value := range j.Buckets { 113 if err := value.validate(); err != nil { 114 return err 115 } 116 } 117 return nil 118 }