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

     1  // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY!
     2  
     3  // 查询存储空间服务域名
     4  package query_bucket_v2
     5  
     6  import (
     7  	"encoding/json"
     8  
     9  	errors "github.com/qiniu/go-sdk/v7/storagev2/errors"
    10  )
    11  
    12  // 调用 API 所用的请求
    13  type Request struct {
    14  	Bucket    string // 存储空间名称
    15  	AccessKey string // Access Key
    16  }
    17  
    18  // 获取 API 所用的响应
    19  type Response struct {
    20  	RegionId     string       // 区域 ID
    21  	TimeToLive   int64        // 查询结果的 TTL
    22  	UpDomains    UpDomains    // 上传域名
    23  	IoDomains    IoDomains    // 下载域名
    24  	IoSrcDomains IoSrcDomains // 源站下载域名
    25  	RsDomains    RsDomains    // 对象管理域名
    26  	RsfDomains   RsfDomains   // 对象列举域名
    27  	ApiDomains   ApiDomains   // API 域名
    28  }
    29  
    30  // 空间级别的主加速上传域名列表
    31  type MainBucketAcceleratedUpDomains = []string
    32  
    33  // 空间级别的备用加速上传域名列表
    34  type BackupBucketAcceleratedUpDomains = []string
    35  
    36  // 空间级别的加速上传域名
    37  type BucketAcceleratedUpDomains struct {
    38  	MainAcceleratedUpDomains   MainBucketAcceleratedUpDomains   // 空间级别的主加速上传域名列表
    39  	BackupAcceleratedUpDomains BackupBucketAcceleratedUpDomains // 空间级别的备用加速上传域名列表
    40  }
    41  type jsonBucketAcceleratedUpDomains struct {
    42  	MainAcceleratedUpDomains   MainBucketAcceleratedUpDomains   `json:"main"`   // 空间级别的主加速上传域名列表
    43  	BackupAcceleratedUpDomains BackupBucketAcceleratedUpDomains `json:"backup"` // 空间级别的备用加速上传域名列表
    44  }
    45  
    46  func (j *BucketAcceleratedUpDomains) MarshalJSON() ([]byte, error) {
    47  	if err := j.validate(); err != nil {
    48  		return nil, err
    49  	}
    50  	return json.Marshal(&jsonBucketAcceleratedUpDomains{MainAcceleratedUpDomains: j.MainAcceleratedUpDomains, BackupAcceleratedUpDomains: j.BackupAcceleratedUpDomains})
    51  }
    52  
    53  func (j *BucketAcceleratedUpDomains) UnmarshalJSON(data []byte) error {
    54  	var nj jsonBucketAcceleratedUpDomains
    55  	if err := json.Unmarshal(data, &nj); err != nil {
    56  		return err
    57  	}
    58  	j.MainAcceleratedUpDomains = nj.MainAcceleratedUpDomains
    59  	j.BackupAcceleratedUpDomains = nj.BackupAcceleratedUpDomains
    60  	return nil
    61  }
    62  
    63  func (j *BucketAcceleratedUpDomains) validate() error {
    64  	if len(j.MainAcceleratedUpDomains) == 0 {
    65  		return errors.MissingRequiredFieldError{Name: "MainAcceleratedUpDomains"}
    66  	}
    67  	if len(j.BackupAcceleratedUpDomains) == 0 {
    68  		return errors.MissingRequiredFieldError{Name: "BackupAcceleratedUpDomains"}
    69  	}
    70  	return nil
    71  }
    72  
    73  // 主加速上传域名列表
    74  type MainAcceleratedUpDomains = []string
    75  
    76  // 备用加速上传域名列表
    77  type BackupAcceleratedUpDomains = []string
    78  
    79  // 加速上传域名
    80  type AcceleratedUpDomains struct {
    81  	MainAcceleratedUpDomains   MainAcceleratedUpDomains   // 主加速上传域名列表
    82  	BackupAcceleratedUpDomains BackupAcceleratedUpDomains // 备用加速上传域名列表
    83  }
    84  type jsonAcceleratedUpDomains struct {
    85  	MainAcceleratedUpDomains   MainAcceleratedUpDomains   `json:"main"`   // 主加速上传域名列表
    86  	BackupAcceleratedUpDomains BackupAcceleratedUpDomains `json:"backup"` // 备用加速上传域名列表
    87  }
    88  
    89  func (j *AcceleratedUpDomains) MarshalJSON() ([]byte, error) {
    90  	if err := j.validate(); err != nil {
    91  		return nil, err
    92  	}
    93  	return json.Marshal(&jsonAcceleratedUpDomains{MainAcceleratedUpDomains: j.MainAcceleratedUpDomains, BackupAcceleratedUpDomains: j.BackupAcceleratedUpDomains})
    94  }
    95  
    96  func (j *AcceleratedUpDomains) UnmarshalJSON(data []byte) error {
    97  	var nj jsonAcceleratedUpDomains
    98  	if err := json.Unmarshal(data, &nj); err != nil {
    99  		return err
   100  	}
   101  	j.MainAcceleratedUpDomains = nj.MainAcceleratedUpDomains
   102  	j.BackupAcceleratedUpDomains = nj.BackupAcceleratedUpDomains
   103  	return nil
   104  }
   105  
   106  func (j *AcceleratedUpDomains) validate() error {
   107  	if len(j.MainAcceleratedUpDomains) == 0 {
   108  		return errors.MissingRequiredFieldError{Name: "MainAcceleratedUpDomains"}
   109  	}
   110  	if len(j.BackupAcceleratedUpDomains) == 0 {
   111  		return errors.MissingRequiredFieldError{Name: "BackupAcceleratedUpDomains"}
   112  	}
   113  	return nil
   114  }
   115  
   116  // 主源站上传域名列表
   117  type MainSourceUpDomains = []string
   118  
   119  // 备用源站上传域名列表
   120  type BackupSourceUpDomains = []string
   121  
   122  // 源站上传域名
   123  type SourceUpDomains struct {
   124  	MainSourceUpDomains   MainSourceUpDomains   // 主源站上传域名列表
   125  	BackupSourceUpDomains BackupSourceUpDomains // 备用源站上传域名列表
   126  }
   127  type jsonSourceUpDomains struct {
   128  	MainSourceUpDomains   MainSourceUpDomains   `json:"main"`   // 主源站上传域名列表
   129  	BackupSourceUpDomains BackupSourceUpDomains `json:"backup"` // 备用源站上传域名列表
   130  }
   131  
   132  func (j *SourceUpDomains) MarshalJSON() ([]byte, error) {
   133  	if err := j.validate(); err != nil {
   134  		return nil, err
   135  	}
   136  	return json.Marshal(&jsonSourceUpDomains{MainSourceUpDomains: j.MainSourceUpDomains, BackupSourceUpDomains: j.BackupSourceUpDomains})
   137  }
   138  
   139  func (j *SourceUpDomains) UnmarshalJSON(data []byte) error {
   140  	var nj jsonSourceUpDomains
   141  	if err := json.Unmarshal(data, &nj); err != nil {
   142  		return err
   143  	}
   144  	j.MainSourceUpDomains = nj.MainSourceUpDomains
   145  	j.BackupSourceUpDomains = nj.BackupSourceUpDomains
   146  	return nil
   147  }
   148  
   149  func (j *SourceUpDomains) validate() error {
   150  	if len(j.MainSourceUpDomains) == 0 {
   151  		return errors.MissingRequiredFieldError{Name: "MainSourceUpDomains"}
   152  	}
   153  	if len(j.BackupSourceUpDomains) == 0 {
   154  		return errors.MissingRequiredFieldError{Name: "BackupSourceUpDomains"}
   155  	}
   156  	return nil
   157  }
   158  
   159  // 已经过时的主加速上传域名列表
   160  type OldMainAcceleratedUpDomains = []string
   161  
   162  // 已经过时的加速上传域名
   163  type OldAcceleratedDomains struct {
   164  	OldMainAcceleratedUpDomains OldMainAcceleratedUpDomains // 主加速上传域名列表
   165  	Info                        string                      // 描述信息
   166  }
   167  
   168  // 已经过时的加速上传域名
   169  type (
   170  	OldAcceleratedUpDomains   = OldAcceleratedDomains
   171  	jsonOldAcceleratedDomains struct {
   172  		OldMainAcceleratedUpDomains OldMainAcceleratedUpDomains `json:"main"` // 主加速上传域名列表
   173  		Info                        string                      `json:"info"` // 描述信息
   174  	}
   175  )
   176  
   177  func (j *OldAcceleratedDomains) MarshalJSON() ([]byte, error) {
   178  	if err := j.validate(); err != nil {
   179  		return nil, err
   180  	}
   181  	return json.Marshal(&jsonOldAcceleratedDomains{OldMainAcceleratedUpDomains: j.OldMainAcceleratedUpDomains, Info: j.Info})
   182  }
   183  
   184  func (j *OldAcceleratedDomains) UnmarshalJSON(data []byte) error {
   185  	var nj jsonOldAcceleratedDomains
   186  	if err := json.Unmarshal(data, &nj); err != nil {
   187  		return err
   188  	}
   189  	j.OldMainAcceleratedUpDomains = nj.OldMainAcceleratedUpDomains
   190  	j.Info = nj.Info
   191  	return nil
   192  }
   193  
   194  func (j *OldAcceleratedDomains) validate() error {
   195  	if len(j.OldMainAcceleratedUpDomains) == 0 {
   196  		return errors.MissingRequiredFieldError{Name: "OldMainAcceleratedUpDomains"}
   197  	}
   198  	if j.Info == "" {
   199  		return errors.MissingRequiredFieldError{Name: "Info"}
   200  	}
   201  	return nil
   202  }
   203  
   204  // 已经过时的主源站上传域名列表
   205  type OldMainSourceUpDomains = []string
   206  
   207  // 已经过时的源站上传域名
   208  type OldSourceDomains struct {
   209  	OldMainSourceUpDomains OldMainSourceUpDomains // 主源站上传域名列表
   210  	Info                   string                 // 描述信息
   211  }
   212  
   213  // 已经过时的源站上传域名
   214  type (
   215  	OldSourceUpDomains   = OldSourceDomains
   216  	jsonOldSourceDomains struct {
   217  		OldMainSourceUpDomains OldMainSourceUpDomains `json:"main"` // 主源站上传域名列表
   218  		Info                   string                 `json:"info"` // 描述信息
   219  	}
   220  )
   221  
   222  func (j *OldSourceDomains) MarshalJSON() ([]byte, error) {
   223  	if err := j.validate(); err != nil {
   224  		return nil, err
   225  	}
   226  	return json.Marshal(&jsonOldSourceDomains{OldMainSourceUpDomains: j.OldMainSourceUpDomains, Info: j.Info})
   227  }
   228  
   229  func (j *OldSourceDomains) UnmarshalJSON(data []byte) error {
   230  	var nj jsonOldSourceDomains
   231  	if err := json.Unmarshal(data, &nj); err != nil {
   232  		return err
   233  	}
   234  	j.OldMainSourceUpDomains = nj.OldMainSourceUpDomains
   235  	j.Info = nj.Info
   236  	return nil
   237  }
   238  
   239  func (j *OldSourceDomains) validate() error {
   240  	if len(j.OldMainSourceUpDomains) == 0 {
   241  		return errors.MissingRequiredFieldError{Name: "OldMainSourceUpDomains"}
   242  	}
   243  	if j.Info == "" {
   244  		return errors.MissingRequiredFieldError{Name: "Info"}
   245  	}
   246  	return nil
   247  }
   248  
   249  // 上传域名
   250  type UpDomains struct {
   251  	BucketAcceleratedUpDomains BucketAcceleratedUpDomains // 空间级别的加速上传域名
   252  	AcceleratedUpDomains       AcceleratedUpDomains       // 加速上传域名
   253  	SourceUpDomains            SourceUpDomains            // 源站上传域名
   254  	OldAcceleratedDomains      OldAcceleratedUpDomains    // 已经过时的加速上传域名
   255  	OldSourceDomains           OldSourceUpDomains         // 已经过时的源站上传域名
   256  }
   257  type jsonUpDomains struct {
   258  	BucketAcceleratedUpDomains BucketAcceleratedUpDomains `json:"bucket_acc"` // 空间级别的加速上传域名
   259  	AcceleratedUpDomains       AcceleratedUpDomains       `json:"acc"`        // 加速上传域名
   260  	SourceUpDomains            SourceUpDomains            `json:"src"`        // 源站上传域名
   261  	OldAcceleratedDomains      OldAcceleratedUpDomains    `json:"old_acc"`    // 已经过时的加速上传域名
   262  	OldSourceDomains           OldSourceUpDomains         `json:"old_src"`    // 已经过时的源站上传域名
   263  }
   264  
   265  func (j *UpDomains) MarshalJSON() ([]byte, error) {
   266  	if err := j.validate(); err != nil {
   267  		return nil, err
   268  	}
   269  	return json.Marshal(&jsonUpDomains{BucketAcceleratedUpDomains: j.BucketAcceleratedUpDomains, AcceleratedUpDomains: j.AcceleratedUpDomains, SourceUpDomains: j.SourceUpDomains, OldAcceleratedDomains: j.OldAcceleratedDomains, OldSourceDomains: j.OldSourceDomains})
   270  }
   271  
   272  func (j *UpDomains) UnmarshalJSON(data []byte) error {
   273  	var nj jsonUpDomains
   274  	if err := json.Unmarshal(data, &nj); err != nil {
   275  		return err
   276  	}
   277  	j.BucketAcceleratedUpDomains = nj.BucketAcceleratedUpDomains
   278  	j.AcceleratedUpDomains = nj.AcceleratedUpDomains
   279  	j.SourceUpDomains = nj.SourceUpDomains
   280  	j.OldAcceleratedDomains = nj.OldAcceleratedDomains
   281  	j.OldSourceDomains = nj.OldSourceDomains
   282  	return nil
   283  }
   284  
   285  func (j *UpDomains) validate() error {
   286  	if err := j.BucketAcceleratedUpDomains.validate(); err != nil {
   287  		return err
   288  	}
   289  	if err := j.AcceleratedUpDomains.validate(); err != nil {
   290  		return err
   291  	}
   292  	if err := j.SourceUpDomains.validate(); err != nil {
   293  		return err
   294  	}
   295  	if err := j.OldAcceleratedDomains.validate(); err != nil {
   296  		return err
   297  	}
   298  	if err := j.OldSourceDomains.validate(); err != nil {
   299  		return err
   300  	}
   301  	return nil
   302  }
   303  
   304  // 主源站下载域名列表
   305  type MainSourceIoDomains = []string
   306  
   307  // 源站下载域名
   308  type SourceIoDomains struct {
   309  	MainSourceIoDomains MainSourceIoDomains // 主源站下载域名列表
   310  }
   311  type jsonSourceIoDomains struct {
   312  	MainSourceIoDomains MainSourceIoDomains `json:"main"` // 主源站下载域名列表
   313  }
   314  
   315  func (j *SourceIoDomains) MarshalJSON() ([]byte, error) {
   316  	if err := j.validate(); err != nil {
   317  		return nil, err
   318  	}
   319  	return json.Marshal(&jsonSourceIoDomains{MainSourceIoDomains: j.MainSourceIoDomains})
   320  }
   321  
   322  func (j *SourceIoDomains) UnmarshalJSON(data []byte) error {
   323  	var nj jsonSourceIoDomains
   324  	if err := json.Unmarshal(data, &nj); err != nil {
   325  		return err
   326  	}
   327  	j.MainSourceIoDomains = nj.MainSourceIoDomains
   328  	return nil
   329  }
   330  
   331  func (j *SourceIoDomains) validate() error {
   332  	if len(j.MainSourceIoDomains) == 0 {
   333  		return errors.MissingRequiredFieldError{Name: "MainSourceIoDomains"}
   334  	}
   335  	return nil
   336  }
   337  
   338  // 下载域名
   339  type IoDomains struct {
   340  	SourceIoDomains SourceIoDomains // 源站下载域名
   341  }
   342  type jsonIoDomains struct {
   343  	SourceIoDomains SourceIoDomains `json:"src"` // 源站下载域名
   344  }
   345  
   346  func (j *IoDomains) MarshalJSON() ([]byte, error) {
   347  	if err := j.validate(); err != nil {
   348  		return nil, err
   349  	}
   350  	return json.Marshal(&jsonIoDomains{SourceIoDomains: j.SourceIoDomains})
   351  }
   352  
   353  func (j *IoDomains) UnmarshalJSON(data []byte) error {
   354  	var nj jsonIoDomains
   355  	if err := json.Unmarshal(data, &nj); err != nil {
   356  		return err
   357  	}
   358  	j.SourceIoDomains = nj.SourceIoDomains
   359  	return nil
   360  }
   361  
   362  func (j *IoDomains) validate() error {
   363  	if err := j.SourceIoDomains.validate(); err != nil {
   364  		return err
   365  	}
   366  	return nil
   367  }
   368  
   369  // 主源站下载域名列表
   370  type MainSourceIoSrcDomains = []string
   371  
   372  // 源站下载域名
   373  type SourceIoSrcDomains struct {
   374  	MainSourceIoSrcDomains MainSourceIoSrcDomains // 主源站下载域名列表
   375  }
   376  type jsonSourceIoSrcDomains struct {
   377  	MainSourceIoSrcDomains MainSourceIoSrcDomains `json:"main"` // 主源站下载域名列表
   378  }
   379  
   380  func (j *SourceIoSrcDomains) MarshalJSON() ([]byte, error) {
   381  	if err := j.validate(); err != nil {
   382  		return nil, err
   383  	}
   384  	return json.Marshal(&jsonSourceIoSrcDomains{MainSourceIoSrcDomains: j.MainSourceIoSrcDomains})
   385  }
   386  
   387  func (j *SourceIoSrcDomains) UnmarshalJSON(data []byte) error {
   388  	var nj jsonSourceIoSrcDomains
   389  	if err := json.Unmarshal(data, &nj); err != nil {
   390  		return err
   391  	}
   392  	j.MainSourceIoSrcDomains = nj.MainSourceIoSrcDomains
   393  	return nil
   394  }
   395  
   396  func (j *SourceIoSrcDomains) validate() error {
   397  	if len(j.MainSourceIoSrcDomains) == 0 {
   398  		return errors.MissingRequiredFieldError{Name: "MainSourceIoSrcDomains"}
   399  	}
   400  	return nil
   401  }
   402  
   403  // 源站下载域名
   404  type IoSrcDomains struct {
   405  	SourceIoSrcDomains SourceIoSrcDomains // 源站下载域名
   406  }
   407  type jsonIoSrcDomains struct {
   408  	SourceIoSrcDomains SourceIoSrcDomains `json:"src"` // 源站下载域名
   409  }
   410  
   411  func (j *IoSrcDomains) MarshalJSON() ([]byte, error) {
   412  	if err := j.validate(); err != nil {
   413  		return nil, err
   414  	}
   415  	return json.Marshal(&jsonIoSrcDomains{SourceIoSrcDomains: j.SourceIoSrcDomains})
   416  }
   417  
   418  func (j *IoSrcDomains) UnmarshalJSON(data []byte) error {
   419  	var nj jsonIoSrcDomains
   420  	if err := json.Unmarshal(data, &nj); err != nil {
   421  		return err
   422  	}
   423  	j.SourceIoSrcDomains = nj.SourceIoSrcDomains
   424  	return nil
   425  }
   426  
   427  func (j *IoSrcDomains) validate() error {
   428  	if err := j.SourceIoSrcDomains.validate(); err != nil {
   429  		return err
   430  	}
   431  	return nil
   432  }
   433  
   434  // 主加速对象管理域名列表
   435  type MainAcceleratedRsDomains = []string
   436  
   437  // 加速对象管理域名
   438  type AcceleratedRsDomains struct {
   439  	MainAcceleratedRsDomains MainAcceleratedRsDomains // 主加速对象管理域名列表
   440  }
   441  type jsonAcceleratedRsDomains struct {
   442  	MainAcceleratedRsDomains MainAcceleratedRsDomains `json:"main"` // 主加速对象管理域名列表
   443  }
   444  
   445  func (j *AcceleratedRsDomains) MarshalJSON() ([]byte, error) {
   446  	if err := j.validate(); err != nil {
   447  		return nil, err
   448  	}
   449  	return json.Marshal(&jsonAcceleratedRsDomains{MainAcceleratedRsDomains: j.MainAcceleratedRsDomains})
   450  }
   451  
   452  func (j *AcceleratedRsDomains) UnmarshalJSON(data []byte) error {
   453  	var nj jsonAcceleratedRsDomains
   454  	if err := json.Unmarshal(data, &nj); err != nil {
   455  		return err
   456  	}
   457  	j.MainAcceleratedRsDomains = nj.MainAcceleratedRsDomains
   458  	return nil
   459  }
   460  
   461  func (j *AcceleratedRsDomains) validate() error {
   462  	if len(j.MainAcceleratedRsDomains) == 0 {
   463  		return errors.MissingRequiredFieldError{Name: "MainAcceleratedRsDomains"}
   464  	}
   465  	return nil
   466  }
   467  
   468  // 对象管理域名
   469  type RsDomains struct {
   470  	AcceleratedRsDomains AcceleratedRsDomains // 加速对象管理域名
   471  }
   472  type jsonRsDomains struct {
   473  	AcceleratedRsDomains AcceleratedRsDomains `json:"acc"` // 加速对象管理域名
   474  }
   475  
   476  func (j *RsDomains) MarshalJSON() ([]byte, error) {
   477  	if err := j.validate(); err != nil {
   478  		return nil, err
   479  	}
   480  	return json.Marshal(&jsonRsDomains{AcceleratedRsDomains: j.AcceleratedRsDomains})
   481  }
   482  
   483  func (j *RsDomains) UnmarshalJSON(data []byte) error {
   484  	var nj jsonRsDomains
   485  	if err := json.Unmarshal(data, &nj); err != nil {
   486  		return err
   487  	}
   488  	j.AcceleratedRsDomains = nj.AcceleratedRsDomains
   489  	return nil
   490  }
   491  
   492  func (j *RsDomains) validate() error {
   493  	if err := j.AcceleratedRsDomains.validate(); err != nil {
   494  		return err
   495  	}
   496  	return nil
   497  }
   498  
   499  // 主加速对象列举域名列表
   500  type MainAcceleratedRsfDomains = []string
   501  
   502  // 加速对象列举域名
   503  type AcceleratedRsfDomains struct {
   504  	MainAcceleratedRsfDomains MainAcceleratedRsfDomains // 主加速对象列举域名列表
   505  }
   506  type jsonAcceleratedRsfDomains struct {
   507  	MainAcceleratedRsfDomains MainAcceleratedRsfDomains `json:"main"` // 主加速对象列举域名列表
   508  }
   509  
   510  func (j *AcceleratedRsfDomains) MarshalJSON() ([]byte, error) {
   511  	if err := j.validate(); err != nil {
   512  		return nil, err
   513  	}
   514  	return json.Marshal(&jsonAcceleratedRsfDomains{MainAcceleratedRsfDomains: j.MainAcceleratedRsfDomains})
   515  }
   516  
   517  func (j *AcceleratedRsfDomains) UnmarshalJSON(data []byte) error {
   518  	var nj jsonAcceleratedRsfDomains
   519  	if err := json.Unmarshal(data, &nj); err != nil {
   520  		return err
   521  	}
   522  	j.MainAcceleratedRsfDomains = nj.MainAcceleratedRsfDomains
   523  	return nil
   524  }
   525  
   526  func (j *AcceleratedRsfDomains) validate() error {
   527  	if len(j.MainAcceleratedRsfDomains) == 0 {
   528  		return errors.MissingRequiredFieldError{Name: "MainAcceleratedRsfDomains"}
   529  	}
   530  	return nil
   531  }
   532  
   533  // 对象列举域名
   534  type RsfDomains struct {
   535  	AcceleratedRsfDomains AcceleratedRsfDomains // 加速对象列举域名
   536  }
   537  type jsonRsfDomains struct {
   538  	AcceleratedRsfDomains AcceleratedRsfDomains `json:"acc"` // 加速对象列举域名
   539  }
   540  
   541  func (j *RsfDomains) MarshalJSON() ([]byte, error) {
   542  	if err := j.validate(); err != nil {
   543  		return nil, err
   544  	}
   545  	return json.Marshal(&jsonRsfDomains{AcceleratedRsfDomains: j.AcceleratedRsfDomains})
   546  }
   547  
   548  func (j *RsfDomains) UnmarshalJSON(data []byte) error {
   549  	var nj jsonRsfDomains
   550  	if err := json.Unmarshal(data, &nj); err != nil {
   551  		return err
   552  	}
   553  	j.AcceleratedRsfDomains = nj.AcceleratedRsfDomains
   554  	return nil
   555  }
   556  
   557  func (j *RsfDomains) validate() error {
   558  	if err := j.AcceleratedRsfDomains.validate(); err != nil {
   559  		return err
   560  	}
   561  	return nil
   562  }
   563  
   564  // 主加速 API 域名列表
   565  type MainAcceleratedApiDomains = []string
   566  
   567  // 加速 API 域名
   568  type AcceleratedApiDomains struct {
   569  	MainAcceleratedApiDomains MainAcceleratedApiDomains // 主加速 API 域名列表
   570  }
   571  type jsonAcceleratedApiDomains struct {
   572  	MainAcceleratedApiDomains MainAcceleratedApiDomains `json:"main"` // 主加速 API 域名列表
   573  }
   574  
   575  func (j *AcceleratedApiDomains) MarshalJSON() ([]byte, error) {
   576  	if err := j.validate(); err != nil {
   577  		return nil, err
   578  	}
   579  	return json.Marshal(&jsonAcceleratedApiDomains{MainAcceleratedApiDomains: j.MainAcceleratedApiDomains})
   580  }
   581  
   582  func (j *AcceleratedApiDomains) UnmarshalJSON(data []byte) error {
   583  	var nj jsonAcceleratedApiDomains
   584  	if err := json.Unmarshal(data, &nj); err != nil {
   585  		return err
   586  	}
   587  	j.MainAcceleratedApiDomains = nj.MainAcceleratedApiDomains
   588  	return nil
   589  }
   590  
   591  func (j *AcceleratedApiDomains) validate() error {
   592  	if len(j.MainAcceleratedApiDomains) == 0 {
   593  		return errors.MissingRequiredFieldError{Name: "MainAcceleratedApiDomains"}
   594  	}
   595  	return nil
   596  }
   597  
   598  // API 域名
   599  type ApiDomains struct {
   600  	AcceleratedApiDomains AcceleratedApiDomains // 加速 API 域名
   601  }
   602  type jsonApiDomains struct {
   603  	AcceleratedApiDomains AcceleratedApiDomains `json:"acc"` // 加速 API 域名
   604  }
   605  
   606  func (j *ApiDomains) MarshalJSON() ([]byte, error) {
   607  	if err := j.validate(); err != nil {
   608  		return nil, err
   609  	}
   610  	return json.Marshal(&jsonApiDomains{AcceleratedApiDomains: j.AcceleratedApiDomains})
   611  }
   612  
   613  func (j *ApiDomains) UnmarshalJSON(data []byte) error {
   614  	var nj jsonApiDomains
   615  	if err := json.Unmarshal(data, &nj); err != nil {
   616  		return err
   617  	}
   618  	j.AcceleratedApiDomains = nj.AcceleratedApiDomains
   619  	return nil
   620  }
   621  
   622  func (j *ApiDomains) validate() error {
   623  	if err := j.AcceleratedApiDomains.validate(); err != nil {
   624  		return err
   625  	}
   626  	return nil
   627  }
   628  
   629  // 存储空间服务域名查询结果
   630  type (
   631  	BucketQueryResult = Response
   632  	jsonResponse      struct {
   633  		RegionId     string       `json:"region"`           // 区域 ID
   634  		TimeToLive   int64        `json:"ttl"`              // 查询结果的 TTL
   635  		UpDomains    UpDomains    `json:"up"`               // 上传域名
   636  		IoDomains    IoDomains    `json:"io"`               // 下载域名
   637  		IoSrcDomains IoSrcDomains `json:"io_src,omitempty"` // 源站下载域名
   638  		RsDomains    RsDomains    `json:"rs"`               // 对象管理域名
   639  		RsfDomains   RsfDomains   `json:"rsf"`              // 对象列举域名
   640  		ApiDomains   ApiDomains   `json:"api"`              // API 域名
   641  	}
   642  )
   643  
   644  func (j *Response) MarshalJSON() ([]byte, error) {
   645  	if err := j.validate(); err != nil {
   646  		return nil, err
   647  	}
   648  	return json.Marshal(&jsonResponse{RegionId: j.RegionId, TimeToLive: j.TimeToLive, UpDomains: j.UpDomains, IoDomains: j.IoDomains, IoSrcDomains: j.IoSrcDomains, RsDomains: j.RsDomains, RsfDomains: j.RsfDomains, ApiDomains: j.ApiDomains})
   649  }
   650  
   651  func (j *Response) UnmarshalJSON(data []byte) error {
   652  	var nj jsonResponse
   653  	if err := json.Unmarshal(data, &nj); err != nil {
   654  		return err
   655  	}
   656  	j.RegionId = nj.RegionId
   657  	j.TimeToLive = nj.TimeToLive
   658  	j.UpDomains = nj.UpDomains
   659  	j.IoDomains = nj.IoDomains
   660  	j.IoSrcDomains = nj.IoSrcDomains
   661  	j.RsDomains = nj.RsDomains
   662  	j.RsfDomains = nj.RsfDomains
   663  	j.ApiDomains = nj.ApiDomains
   664  	return nil
   665  }
   666  
   667  func (j *Response) validate() error {
   668  	if j.RegionId == "" {
   669  		return errors.MissingRequiredFieldError{Name: "RegionId"}
   670  	}
   671  	if j.TimeToLive == 0 {
   672  		return errors.MissingRequiredFieldError{Name: "TimeToLive"}
   673  	}
   674  	if err := j.UpDomains.validate(); err != nil {
   675  		return err
   676  	}
   677  	if err := j.IoDomains.validate(); err != nil {
   678  		return err
   679  	}
   680  	if err := j.RsDomains.validate(); err != nil {
   681  		return err
   682  	}
   683  	if err := j.RsfDomains.validate(); err != nil {
   684  		return err
   685  	}
   686  	if err := j.ApiDomains.validate(); err != nil {
   687  		return err
   688  	}
   689  	return nil
   690  }