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  }