github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/apis/get_bucket_event_rules/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 获取存储空间事件通知规则 4 package get_bucket_event_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 BucketEventRules BucketEventRules // 所有存储空间事件通知规则 22 } 23 24 // 事件类型 25 type EventTypes = []string 26 27 // 回调地址 28 type CallbackUrls = []string 29 30 // 存储空间事件通知规则 31 type BucketEventRule struct { 32 Name string // 规则名称,bucket 内唯一,长度小于 50,不能为空,只能为字母、数字、下划线 33 Prefix string // 匹配文件前缀 34 Suffix string // 匹配文件后缀 35 EventTypes EventTypes // 事件类型,可以指定多个,包括 put,mkfile,delete,copy,move,append,disable,enable,deleteMarkerCreate,predelete(删除之前触发),restore:completed 36 CallbackUrls CallbackUrls // 回调地址,可以指定多个 37 AccessKey string // 设置的话会对通知请求用对应的 accessKey,secretKey 进行签名 38 Host string // 通知请求的 Host 39 } 40 type jsonBucketEventRule struct { 41 Name string `json:"name"` // 规则名称,bucket 内唯一,长度小于 50,不能为空,只能为字母、数字、下划线 42 Prefix string `json:"prefix,omitempty"` // 匹配文件前缀 43 Suffix string `json:"suffix,omitempty"` // 匹配文件后缀 44 EventTypes EventTypes `json:"event"` // 事件类型,可以指定多个,包括 put,mkfile,delete,copy,move,append,disable,enable,deleteMarkerCreate,predelete(删除之前触发),restore:completed 45 CallbackUrls CallbackUrls `json:"callbackURL"` // 回调地址,可以指定多个 46 AccessKey string `json:"accessKey,omitempty"` // 设置的话会对通知请求用对应的 accessKey,secretKey 进行签名 47 Host string `json:"host,omitempty"` // 通知请求的 Host 48 } 49 50 func (j *BucketEventRule) MarshalJSON() ([]byte, error) { 51 if err := j.validate(); err != nil { 52 return nil, err 53 } 54 return json.Marshal(&jsonBucketEventRule{Name: j.Name, Prefix: j.Prefix, Suffix: j.Suffix, EventTypes: j.EventTypes, CallbackUrls: j.CallbackUrls, AccessKey: j.AccessKey, Host: j.Host}) 55 } 56 57 func (j *BucketEventRule) UnmarshalJSON(data []byte) error { 58 var nj jsonBucketEventRule 59 if err := json.Unmarshal(data, &nj); err != nil { 60 return err 61 } 62 j.Name = nj.Name 63 j.Prefix = nj.Prefix 64 j.Suffix = nj.Suffix 65 j.EventTypes = nj.EventTypes 66 j.CallbackUrls = nj.CallbackUrls 67 j.AccessKey = nj.AccessKey 68 j.Host = nj.Host 69 return nil 70 } 71 72 func (j *BucketEventRule) validate() error { 73 if j.Name == "" { 74 return errors.MissingRequiredFieldError{Name: "Name"} 75 } 76 if len(j.EventTypes) == 0 { 77 return errors.MissingRequiredFieldError{Name: "EventTypes"} 78 } 79 if len(j.CallbackUrls) == 0 { 80 return errors.MissingRequiredFieldError{Name: "CallbackUrls"} 81 } 82 return nil 83 } 84 85 // 所有存储空间事件通知规则 86 type BucketEventRules []BucketEventRule 87 88 func (j *Response) MarshalJSON() ([]byte, error) { 89 return json.Marshal(j.BucketEventRules) 90 } 91 92 func (j *Response) UnmarshalJSON(data []byte) error { 93 var array BucketEventRules 94 if err := json.Unmarshal(data, &array); err != nil { 95 return err 96 } 97 j.BucketEventRules = array 98 return nil 99 }