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

     1  // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY!
     2  
     3  // 获取空间规则
     4  package get_bucket_rules
     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  	Bucket      string                          // 空间名称
    16  	Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider
    17  }
    18  
    19  // 获取 API 所用的响应
    20  type Response struct {
    21  	BucketRules BucketRules // 空间规则列表
    22  }
    23  
    24  // 空间规则
    25  type BucketRule struct {
    26  	Name                   string // 空间规则名称
    27  	Prefix                 string // 匹配的对象名称前缀
    28  	DeleteAfterDays        int64  // 上传文件多少天后删除
    29  	ToIaAfterDays          int64  // 文件上传多少天后转低频存储
    30  	ToArchiveAfterDays     int64  // 文件上传多少天后转归档存储
    31  	ToDeepArchiveAfterDays int64  // 文件上传多少天后转深度归档存储
    32  	ToArchiveIrAfterDays   int64  // 文件上传多少天后转归档直读存储
    33  	CreatedTime            string // 规则创建时间
    34  }
    35  type jsonBucketRule struct {
    36  	Name                   string `json:"name"`                                 // 空间规则名称
    37  	Prefix                 string `json:"prefix"`                               // 匹配的对象名称前缀
    38  	DeleteAfterDays        int64  `json:"delete_after_days,omitempty"`          // 上传文件多少天后删除
    39  	ToIaAfterDays          int64  `json:"to_line_after_days,omitempty"`         // 文件上传多少天后转低频存储
    40  	ToArchiveAfterDays     int64  `json:"to_archive_after_days,omitempty"`      // 文件上传多少天后转归档存储
    41  	ToDeepArchiveAfterDays int64  `json:"to_deep_archive_after_days,omitempty"` // 文件上传多少天后转深度归档存储
    42  	ToArchiveIrAfterDays   int64  `json:"to_archive_ir_after_days,omitempty"`   // 文件上传多少天后转归档直读存储
    43  	CreatedTime            string `json:"ctime"`                                // 规则创建时间
    44  }
    45  
    46  func (j *BucketRule) MarshalJSON() ([]byte, error) {
    47  	if err := j.validate(); err != nil {
    48  		return nil, err
    49  	}
    50  	return json.Marshal(&jsonBucketRule{Name: j.Name, Prefix: j.Prefix, DeleteAfterDays: j.DeleteAfterDays, ToIaAfterDays: j.ToIaAfterDays, ToArchiveAfterDays: j.ToArchiveAfterDays, ToDeepArchiveAfterDays: j.ToDeepArchiveAfterDays, ToArchiveIrAfterDays: j.ToArchiveIrAfterDays, CreatedTime: j.CreatedTime})
    51  }
    52  
    53  func (j *BucketRule) UnmarshalJSON(data []byte) error {
    54  	var nj jsonBucketRule
    55  	if err := json.Unmarshal(data, &nj); err != nil {
    56  		return err
    57  	}
    58  	j.Name = nj.Name
    59  	j.Prefix = nj.Prefix
    60  	j.DeleteAfterDays = nj.DeleteAfterDays
    61  	j.ToIaAfterDays = nj.ToIaAfterDays
    62  	j.ToArchiveAfterDays = nj.ToArchiveAfterDays
    63  	j.ToDeepArchiveAfterDays = nj.ToDeepArchiveAfterDays
    64  	j.ToArchiveIrAfterDays = nj.ToArchiveIrAfterDays
    65  	j.CreatedTime = nj.CreatedTime
    66  	return nil
    67  }
    68  
    69  func (j *BucketRule) validate() error {
    70  	if j.Name == "" {
    71  		return errors.MissingRequiredFieldError{Name: "Name"}
    72  	}
    73  	if j.Prefix == "" {
    74  		return errors.MissingRequiredFieldError{Name: "Prefix"}
    75  	}
    76  	if j.CreatedTime == "" {
    77  		return errors.MissingRequiredFieldError{Name: "CreatedTime"}
    78  	}
    79  	return nil
    80  }
    81  
    82  // 空间规则列表
    83  type BucketRules []BucketRule
    84  
    85  func (j *Response) MarshalJSON() ([]byte, error) {
    86  	return json.Marshal(j.BucketRules)
    87  }
    88  
    89  func (j *Response) UnmarshalJSON(data []byte) error {
    90  	var array BucketRules
    91  	if err := json.Unmarshal(data, &array); err != nil {
    92  		return err
    93  	}
    94  	j.BucketRules = array
    95  	return nil
    96  }