github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/apis/verify_share/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 校验目录分享并提取分享信息 4 package verify_share 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 ShareId string // 分享 ID 16 Token string // 分享 Token 17 Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider 18 ExtractCode string // 提取码 19 } 20 type ( 21 VerifyShareParam = Request 22 jsonRequest struct { 23 ExtractCode string `json:"extract_code"` // 提取码 24 } 25 ) 26 27 func (j *Request) MarshalJSON() ([]byte, error) { 28 if err := j.validate(); err != nil { 29 return nil, err 30 } 31 return json.Marshal(&jsonRequest{ExtractCode: j.ExtractCode}) 32 } 33 34 func (j *Request) UnmarshalJSON(data []byte) error { 35 var nj jsonRequest 36 if err := json.Unmarshal(data, &nj); err != nil { 37 return err 38 } 39 j.ExtractCode = nj.ExtractCode 40 return nil 41 } 42 43 func (j *Request) validate() error { 44 if j.ExtractCode == "" { 45 return errors.MissingRequiredFieldError{Name: "ExtractCode"} 46 } 47 return nil 48 } 49 50 // 获取 API 所用的响应 51 type Response struct { 52 Endpoint string // 空间所用的 S3 域名 53 Region string // 空间所在的 S3 区域 ID 54 BucketName string // 空间名称 55 BucketId string // 空间 ID 56 Prefix string // 被分享的目录路径 57 Permission string // 权限,目前仅支持 READONLY,未来会支持 READWRITE 58 Expires string // 分享过期时间,遵循 ISO8601 风格,使用 UTC 0 时区时间 59 FederatedAk string // S3 STS Access Key 60 FederatedSk string // S3 STS Secret Key 61 SessionToken string // S3 STS Session Token 62 } 63 64 // 返回的经过校验的分享信息 65 type ( 66 VerifiedShareInfo = Response 67 jsonResponse struct { 68 Endpoint string `json:"endpoint"` // 空间所用的 S3 域名 69 Region string `json:"region"` // 空间所在的 S3 区域 ID 70 BucketName string `json:"bucket_name"` // 空间名称 71 BucketId string `json:"bucket_id"` // 空间 ID 72 Prefix string `json:"prefix"` // 被分享的目录路径 73 Permission string `json:"permission"` // 权限,目前仅支持 READONLY,未来会支持 READWRITE 74 Expires string `json:"expires"` // 分享过期时间,遵循 ISO8601 风格,使用 UTC 0 时区时间 75 FederatedAk string `json:"federated_ak"` // S3 STS Access Key 76 FederatedSk string `json:"federated_sk"` // S3 STS Secret Key 77 SessionToken string `json:"session_token"` // S3 STS Session Token 78 } 79 ) 80 81 func (j *Response) MarshalJSON() ([]byte, error) { 82 if err := j.validate(); err != nil { 83 return nil, err 84 } 85 return json.Marshal(&jsonResponse{Endpoint: j.Endpoint, Region: j.Region, BucketName: j.BucketName, BucketId: j.BucketId, Prefix: j.Prefix, Permission: j.Permission, Expires: j.Expires, FederatedAk: j.FederatedAk, FederatedSk: j.FederatedSk, SessionToken: j.SessionToken}) 86 } 87 88 func (j *Response) UnmarshalJSON(data []byte) error { 89 var nj jsonResponse 90 if err := json.Unmarshal(data, &nj); err != nil { 91 return err 92 } 93 j.Endpoint = nj.Endpoint 94 j.Region = nj.Region 95 j.BucketName = nj.BucketName 96 j.BucketId = nj.BucketId 97 j.Prefix = nj.Prefix 98 j.Permission = nj.Permission 99 j.Expires = nj.Expires 100 j.FederatedAk = nj.FederatedAk 101 j.FederatedSk = nj.FederatedSk 102 j.SessionToken = nj.SessionToken 103 return nil 104 } 105 106 func (j *Response) validate() error { 107 if j.Endpoint == "" { 108 return errors.MissingRequiredFieldError{Name: "Endpoint"} 109 } 110 if j.Region == "" { 111 return errors.MissingRequiredFieldError{Name: "Region"} 112 } 113 if j.BucketName == "" { 114 return errors.MissingRequiredFieldError{Name: "BucketName"} 115 } 116 if j.BucketId == "" { 117 return errors.MissingRequiredFieldError{Name: "BucketId"} 118 } 119 if j.Prefix == "" { 120 return errors.MissingRequiredFieldError{Name: "Prefix"} 121 } 122 if j.Permission == "" { 123 return errors.MissingRequiredFieldError{Name: "Permission"} 124 } 125 if j.Expires == "" { 126 return errors.MissingRequiredFieldError{Name: "Expires"} 127 } 128 if j.FederatedAk == "" { 129 return errors.MissingRequiredFieldError{Name: "FederatedAk"} 130 } 131 if j.FederatedSk == "" { 132 return errors.MissingRequiredFieldError{Name: "FederatedSk"} 133 } 134 if j.SessionToken == "" { 135 return errors.MissingRequiredFieldError{Name: "SessionToken"} 136 } 137 return nil 138 }