overdue
This commit is contained in:
1263
.rclone_repo/vendor/github.com/yunify/qingstor-sdk-go/service/bucket.go
generated
vendored
Executable file
1263
.rclone_repo/vendor/github.com/yunify/qingstor-sdk-go/service/bucket.go
generated
vendored
Executable file
File diff suppressed because it is too large
Load Diff
266
.rclone_repo/vendor/github.com/yunify/qingstor-sdk-go/service/convert_types.go
generated
vendored
Executable file
266
.rclone_repo/vendor/github.com/yunify/qingstor-sdk-go/service/convert_types.go
generated
vendored
Executable file
@@ -0,0 +1,266 @@
|
||||
// +-------------------------------------------------------------------------
|
||||
// | Copyright (C) 2016 Yunify, Inc.
|
||||
// +-------------------------------------------------------------------------
|
||||
// | Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// | you may not use this work except in compliance with the License.
|
||||
// | You may obtain a copy of the License in the LICENSE file, or at:
|
||||
// |
|
||||
// | http://www.apache.org/licenses/LICENSE-2.0
|
||||
// |
|
||||
// | Unless required by applicable law or agreed to in writing, software
|
||||
// | distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// | See the License for the specific language governing permissions and
|
||||
// | limitations under the License.
|
||||
// +-------------------------------------------------------------------------
|
||||
|
||||
package service
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// String returns a pointer to the given string value.
|
||||
func String(v string) *string {
|
||||
return &v
|
||||
}
|
||||
|
||||
// StringValue returns the value of the given string pointer or
|
||||
// "" if the pointer is nil.
|
||||
func StringValue(v *string) string {
|
||||
if v != nil {
|
||||
return *v
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// StringSlice converts a slice of string values into a slice of
|
||||
// string pointers
|
||||
func StringSlice(src []string) []*string {
|
||||
dst := make([]*string, len(src))
|
||||
for i := 0; i < len(src); i++ {
|
||||
dst[i] = &(src[i])
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// StringValueSlice converts a slice of string pointers into a slice of
|
||||
// string values
|
||||
func StringValueSlice(src []*string) []string {
|
||||
dst := make([]string, len(src))
|
||||
for i := 0; i < len(src); i++ {
|
||||
if src[i] != nil {
|
||||
dst[i] = *(src[i])
|
||||
}
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// StringMap converts a string map of string values into a string
|
||||
// map of string pointers
|
||||
func StringMap(src map[string]string) map[string]*string {
|
||||
dst := make(map[string]*string)
|
||||
for k, val := range src {
|
||||
v := val
|
||||
dst[k] = &v
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// StringValueMap converts a string map of string pointers into a string
|
||||
// map of string values
|
||||
func StringValueMap(src map[string]*string) map[string]string {
|
||||
dst := make(map[string]string)
|
||||
for k, val := range src {
|
||||
if val != nil {
|
||||
dst[k] = *val
|
||||
}
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// Bool returns a pointer to the given bool value.
|
||||
func Bool(v bool) *bool {
|
||||
return &v
|
||||
}
|
||||
|
||||
// BoolValue returns the value of the given bool pointer or
|
||||
// false if the pointer is nil.
|
||||
func BoolValue(v *bool) bool {
|
||||
if v != nil {
|
||||
return *v
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// BoolSlice converts a slice of bool values into a slice of
|
||||
// bool pointers
|
||||
func BoolSlice(src []bool) []*bool {
|
||||
dst := make([]*bool, len(src))
|
||||
for i := 0; i < len(src); i++ {
|
||||
dst[i] = &(src[i])
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// BoolValueSlice converts a slice of bool pointers into a slice of
|
||||
// bool values
|
||||
func BoolValueSlice(src []*bool) []bool {
|
||||
dst := make([]bool, len(src))
|
||||
for i := 0; i < len(src); i++ {
|
||||
if src[i] != nil {
|
||||
dst[i] = *(src[i])
|
||||
}
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// BoolMap converts a string map of bool values into a string
|
||||
// map of bool pointers
|
||||
func BoolMap(src map[string]bool) map[string]*bool {
|
||||
dst := make(map[string]*bool)
|
||||
for k, val := range src {
|
||||
v := val
|
||||
dst[k] = &v
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// BoolValueMap converts a string map of bool pointers into a string
|
||||
// map of bool values
|
||||
func BoolValueMap(src map[string]*bool) map[string]bool {
|
||||
dst := make(map[string]bool)
|
||||
for k, val := range src {
|
||||
if val != nil {
|
||||
dst[k] = *val
|
||||
}
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// Int returns a pointer to the given int value.
|
||||
func Int(v int) *int {
|
||||
return &v
|
||||
}
|
||||
|
||||
// IntValue returns the value of the given int pointer or
|
||||
// 0 if the pointer is nil.
|
||||
func IntValue(v *int) int {
|
||||
if v != nil {
|
||||
return *v
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// IntSlice converts a slice of int values into a slice of
|
||||
// int pointers
|
||||
func IntSlice(src []int) []*int {
|
||||
dst := make([]*int, len(src))
|
||||
for i := 0; i < len(src); i++ {
|
||||
dst[i] = &(src[i])
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// IntValueSlice converts a slice of int pointers into a slice of
|
||||
// int values
|
||||
func IntValueSlice(src []*int) []int {
|
||||
dst := make([]int, len(src))
|
||||
for i := 0; i < len(src); i++ {
|
||||
if src[i] != nil {
|
||||
dst[i] = *(src[i])
|
||||
}
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// IntMap converts a string map of int values into a string
|
||||
// map of int pointers
|
||||
func IntMap(src map[string]int) map[string]*int {
|
||||
dst := make(map[string]*int)
|
||||
for k, val := range src {
|
||||
v := val
|
||||
dst[k] = &v
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// IntValueMap converts a string map of int pointers into a string
|
||||
// map of int values
|
||||
func IntValueMap(src map[string]*int) map[string]int {
|
||||
dst := make(map[string]int)
|
||||
for k, val := range src {
|
||||
if val != nil {
|
||||
dst[k] = *val
|
||||
}
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// Time returns a pointer to the given time.Time value.
|
||||
func Time(v time.Time) *time.Time {
|
||||
return &v
|
||||
}
|
||||
|
||||
// TimeValue returns the value of the given time.Time pointer or
|
||||
// time.Time{} if the pointer is nil.
|
||||
func TimeValue(v *time.Time) time.Time {
|
||||
if v != nil {
|
||||
return *v
|
||||
}
|
||||
return time.Time{}
|
||||
}
|
||||
|
||||
// TimeUnixMilli returns a Unix timestamp in milliseconds from "January 1, 1970 UTC".
|
||||
// The result is undefined if the Unix time cannot be represented by an int64.
|
||||
// Which includes calling TimeUnixMilli on a zero Time is undefined.
|
||||
//
|
||||
// See Go stdlib https://golang.org/pkg/time/#Time.UnixNano for more information.
|
||||
func TimeUnixMilli(t time.Time) int64 {
|
||||
return t.UnixNano() / int64(time.Millisecond/time.Nanosecond)
|
||||
}
|
||||
|
||||
// TimeSlice converts a slice of time.Time values into a slice of
|
||||
// time.Time pointers
|
||||
func TimeSlice(src []time.Time) []*time.Time {
|
||||
dst := make([]*time.Time, len(src))
|
||||
for i := 0; i < len(src); i++ {
|
||||
dst[i] = &(src[i])
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// TimeValueSlice converts a slice of time.Time pointers into a slice of
|
||||
// time.Time values
|
||||
func TimeValueSlice(src []*time.Time) []time.Time {
|
||||
dst := make([]time.Time, len(src))
|
||||
for i := 0; i < len(src); i++ {
|
||||
if src[i] != nil {
|
||||
dst[i] = *(src[i])
|
||||
}
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// TimeMap converts a string map of time.Time values into a string
|
||||
// map of time.Time pointers
|
||||
func TimeMap(src map[string]time.Time) map[string]*time.Time {
|
||||
dst := make(map[string]*time.Time)
|
||||
for k, val := range src {
|
||||
v := val
|
||||
dst[k] = &v
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
// TimeValueMap converts a string map of time.Time pointers into a string
|
||||
// map of time.Time values
|
||||
func TimeValueMap(src map[string]*time.Time) map[string]time.Time {
|
||||
dst := make(map[string]time.Time)
|
||||
for k, val := range src {
|
||||
if val != nil {
|
||||
dst[k] = *val
|
||||
}
|
||||
}
|
||||
return dst
|
||||
}
|
||||
1171
.rclone_repo/vendor/github.com/yunify/qingstor-sdk-go/service/object.go
generated
vendored
Executable file
1171
.rclone_repo/vendor/github.com/yunify/qingstor-sdk-go/service/object.go
generated
vendored
Executable file
File diff suppressed because it is too large
Load Diff
108
.rclone_repo/vendor/github.com/yunify/qingstor-sdk-go/service/qingstor.go
generated
vendored
Executable file
108
.rclone_repo/vendor/github.com/yunify/qingstor-sdk-go/service/qingstor.go
generated
vendored
Executable file
@@ -0,0 +1,108 @@
|
||||
// +-------------------------------------------------------------------------
|
||||
// | Copyright (C) 2016 Yunify, Inc.
|
||||
// +-------------------------------------------------------------------------
|
||||
// | Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// | you may not use this work except in compliance with the License.
|
||||
// | You may obtain a copy of the License in the LICENSE file, or at:
|
||||
// |
|
||||
// | http://www.apache.org/licenses/LICENSE-2.0
|
||||
// |
|
||||
// | Unless required by applicable law or agreed to in writing, software
|
||||
// | distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// | See the License for the specific language governing permissions and
|
||||
// | limitations under the License.
|
||||
// +-------------------------------------------------------------------------
|
||||
|
||||
// Package service provides QingStor Service API (API Version 2016-01-06)
|
||||
package service
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/yunify/qingstor-sdk-go/config"
|
||||
"github.com/yunify/qingstor-sdk-go/request"
|
||||
"github.com/yunify/qingstor-sdk-go/request/data"
|
||||
)
|
||||
|
||||
var _ http.Header
|
||||
|
||||
// Service QingStor provides low-cost and reliable online storage service with unlimited storage space, high read and write performance, high reliability and data safety, fine-grained access control, and easy to use API.
|
||||
type Service struct {
|
||||
Config *config.Config
|
||||
}
|
||||
|
||||
// Init initializes a new service.
|
||||
func Init(c *config.Config) (*Service, error) {
|
||||
return &Service{Config: c}, nil
|
||||
}
|
||||
|
||||
// ListBuckets does Retrieve the bucket list.
|
||||
// Documentation URL: https://docs.qingcloud.com/qingstor/api/service/get.html
|
||||
func (s *Service) ListBuckets(input *ListBucketsInput) (*ListBucketsOutput, error) {
|
||||
r, x, err := s.ListBucketsRequest(input)
|
||||
|
||||
if err != nil {
|
||||
return x, err
|
||||
}
|
||||
|
||||
err = r.Send()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
requestID := r.HTTPResponse.Header.Get(http.CanonicalHeaderKey("X-QS-Request-ID"))
|
||||
x.RequestID = &requestID
|
||||
|
||||
return x, err
|
||||
}
|
||||
|
||||
// ListBucketsRequest creates request and output object of ListBuckets.
|
||||
func (s *Service) ListBucketsRequest(input *ListBucketsInput) (*request.Request, *ListBucketsOutput, error) {
|
||||
|
||||
if input == nil {
|
||||
input = &ListBucketsInput{}
|
||||
}
|
||||
|
||||
o := &data.Operation{
|
||||
Config: s.Config,
|
||||
APIName: "Get Service",
|
||||
RequestMethod: "GET",
|
||||
RequestURI: "/",
|
||||
StatusCodes: []int{
|
||||
200, // OK
|
||||
},
|
||||
}
|
||||
|
||||
x := &ListBucketsOutput{}
|
||||
r, err := request.New(o, input, x)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
return r, x, nil
|
||||
}
|
||||
|
||||
// ListBucketsInput presents input for ListBuckets.
|
||||
type ListBucketsInput struct {
|
||||
// Limits results to buckets that in the location
|
||||
Location *string `json:"Location,omitempty" name:"Location" location:"headers"`
|
||||
}
|
||||
|
||||
// Validate validates the input for ListBuckets.
|
||||
func (v *ListBucketsInput) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ListBucketsOutput presents output for ListBuckets.
|
||||
type ListBucketsOutput struct {
|
||||
StatusCode *int `location:"statusCode"`
|
||||
|
||||
RequestID *string `location:"requestID"`
|
||||
|
||||
// Buckets information
|
||||
Buckets []*BucketType `json:"buckets,omitempty" name:"buckets" location:"elements"`
|
||||
// Bucket count
|
||||
Count *int `json:"count,omitempty" name:"count" location:"elements"`
|
||||
}
|
||||
463
.rclone_repo/vendor/github.com/yunify/qingstor-sdk-go/service/types.go
generated
vendored
Executable file
463
.rclone_repo/vendor/github.com/yunify/qingstor-sdk-go/service/types.go
generated
vendored
Executable file
@@ -0,0 +1,463 @@
|
||||
// +-------------------------------------------------------------------------
|
||||
// | Copyright (C) 2016 Yunify, Inc.
|
||||
// +-------------------------------------------------------------------------
|
||||
// | Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// | you may not use this work except in compliance with the License.
|
||||
// | You may obtain a copy of the License in the LICENSE file, or at:
|
||||
// |
|
||||
// | http://www.apache.org/licenses/LICENSE-2.0
|
||||
// |
|
||||
// | Unless required by applicable law or agreed to in writing, software
|
||||
// | distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// | See the License for the specific language governing permissions and
|
||||
// | limitations under the License.
|
||||
// +-------------------------------------------------------------------------
|
||||
|
||||
package service
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/yunify/qingstor-sdk-go/request/errors"
|
||||
)
|
||||
|
||||
// Properties presents the service properties.
|
||||
type Properties struct {
|
||||
// Bucket name
|
||||
BucketName *string `json:"bucket-name" name:"bucket-name"` // Required
|
||||
// Object key
|
||||
ObjectKey *string `json:"object-key" name:"object-key"` // Required
|
||||
// QingCloud Zone ID
|
||||
Zone *string `json:"zone" name:"zone"`
|
||||
}
|
||||
|
||||
// ACLType presents ACL.
|
||||
type ACLType struct {
|
||||
Grantee *GranteeType `json:"grantee" name:"grantee"` // Required
|
||||
// Permission for this grantee
|
||||
// Permission's available values: READ, WRITE, FULL_CONTROL
|
||||
Permission *string `json:"permission" name:"permission"` // Required
|
||||
|
||||
}
|
||||
|
||||
// Validate validates the ACL.
|
||||
func (v *ACLType) Validate() error {
|
||||
|
||||
if v.Grantee != nil {
|
||||
if err := v.Grantee.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if v.Grantee == nil {
|
||||
return errors.ParameterRequiredError{
|
||||
ParameterName: "Grantee",
|
||||
ParentName: "ACL",
|
||||
}
|
||||
}
|
||||
|
||||
if v.Permission == nil {
|
||||
return errors.ParameterRequiredError{
|
||||
ParameterName: "Permission",
|
||||
ParentName: "ACL",
|
||||
}
|
||||
}
|
||||
|
||||
if v.Permission != nil {
|
||||
permissionValidValues := []string{"READ", "WRITE", "FULL_CONTROL"}
|
||||
permissionParameterValue := fmt.Sprint(*v.Permission)
|
||||
|
||||
permissionIsValid := false
|
||||
for _, value := range permissionValidValues {
|
||||
if value == permissionParameterValue {
|
||||
permissionIsValid = true
|
||||
}
|
||||
}
|
||||
|
||||
if !permissionIsValid {
|
||||
return errors.ParameterValueNotAllowedError{
|
||||
ParameterName: "Permission",
|
||||
ParameterValue: permissionParameterValue,
|
||||
AllowedValues: permissionValidValues,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// BucketType presents Bucket.
|
||||
type BucketType struct {
|
||||
// Created time of the bucket
|
||||
Created *time.Time `json:"created,omitempty" name:"created" format:"ISO 8601"`
|
||||
// QingCloud Zone ID
|
||||
Location *string `json:"location,omitempty" name:"location"`
|
||||
// Bucket name
|
||||
Name *string `json:"name,omitempty" name:"name"`
|
||||
// URL to access the bucket
|
||||
URL *string `json:"url,omitempty" name:"url"`
|
||||
}
|
||||
|
||||
// Validate validates the Bucket.
|
||||
func (v *BucketType) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ConditionType presents Condition.
|
||||
type ConditionType struct {
|
||||
IPAddress *IPAddressType `json:"ip_address,omitempty" name:"ip_address"`
|
||||
IsNull *IsNullType `json:"is_null,omitempty" name:"is_null"`
|
||||
NotIPAddress *NotIPAddressType `json:"not_ip_address,omitempty" name:"not_ip_address"`
|
||||
StringLike *StringLikeType `json:"string_like,omitempty" name:"string_like"`
|
||||
StringNotLike *StringNotLikeType `json:"string_not_like,omitempty" name:"string_not_like"`
|
||||
}
|
||||
|
||||
// Validate validates the Condition.
|
||||
func (v *ConditionType) Validate() error {
|
||||
|
||||
if v.IPAddress != nil {
|
||||
if err := v.IPAddress.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if v.IsNull != nil {
|
||||
if err := v.IsNull.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if v.NotIPAddress != nil {
|
||||
if err := v.NotIPAddress.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if v.StringLike != nil {
|
||||
if err := v.StringLike.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if v.StringNotLike != nil {
|
||||
if err := v.StringNotLike.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// CORSRuleType presents CORSRule.
|
||||
type CORSRuleType struct {
|
||||
// Allowed headers
|
||||
AllowedHeaders []*string `json:"allowed_headers,omitempty" name:"allowed_headers"`
|
||||
// Allowed methods
|
||||
AllowedMethods []*string `json:"allowed_methods" name:"allowed_methods"` // Required
|
||||
// Allowed origin
|
||||
AllowedOrigin *string `json:"allowed_origin" name:"allowed_origin"` // Required
|
||||
// Expose headers
|
||||
ExposeHeaders []*string `json:"expose_headers,omitempty" name:"expose_headers"`
|
||||
// Max age seconds
|
||||
MaxAgeSeconds *int `json:"max_age_seconds,omitempty" name:"max_age_seconds"`
|
||||
}
|
||||
|
||||
// Validate validates the CORSRule.
|
||||
func (v *CORSRuleType) Validate() error {
|
||||
|
||||
if len(v.AllowedMethods) == 0 {
|
||||
return errors.ParameterRequiredError{
|
||||
ParameterName: "AllowedMethods",
|
||||
ParentName: "CORSRule",
|
||||
}
|
||||
}
|
||||
|
||||
if v.AllowedOrigin == nil {
|
||||
return errors.ParameterRequiredError{
|
||||
ParameterName: "AllowedOrigin",
|
||||
ParentName: "CORSRule",
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// GranteeType presents Grantee.
|
||||
type GranteeType struct {
|
||||
// Grantee user ID
|
||||
ID *string `json:"id,omitempty" name:"id"`
|
||||
// Grantee group name
|
||||
Name *string `json:"name,omitempty" name:"name"`
|
||||
// Grantee type
|
||||
// Type's available values: user, group
|
||||
Type *string `json:"type" name:"type"` // Required
|
||||
|
||||
}
|
||||
|
||||
// Validate validates the Grantee.
|
||||
func (v *GranteeType) Validate() error {
|
||||
|
||||
if v.Type == nil {
|
||||
return errors.ParameterRequiredError{
|
||||
ParameterName: "Type",
|
||||
ParentName: "Grantee",
|
||||
}
|
||||
}
|
||||
|
||||
if v.Type != nil {
|
||||
typeValidValues := []string{"user", "group"}
|
||||
typeParameterValue := fmt.Sprint(*v.Type)
|
||||
|
||||
typeIsValid := false
|
||||
for _, value := range typeValidValues {
|
||||
if value == typeParameterValue {
|
||||
typeIsValid = true
|
||||
}
|
||||
}
|
||||
|
||||
if !typeIsValid {
|
||||
return errors.ParameterValueNotAllowedError{
|
||||
ParameterName: "Type",
|
||||
ParameterValue: typeParameterValue,
|
||||
AllowedValues: typeValidValues,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// IPAddressType presents IPAddress.
|
||||
type IPAddressType struct {
|
||||
// Source IP
|
||||
SourceIP []*string `json:"source_ip,omitempty" name:"source_ip"`
|
||||
}
|
||||
|
||||
// Validate validates the IPAddress.
|
||||
func (v *IPAddressType) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// IsNullType presents IsNull.
|
||||
type IsNullType struct {
|
||||
// Refer url
|
||||
Referer *bool `json:"Referer,omitempty" name:"Referer"`
|
||||
}
|
||||
|
||||
// Validate validates the IsNull.
|
||||
func (v *IsNullType) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// KeyType presents Key.
|
||||
type KeyType struct {
|
||||
// Object created time
|
||||
Created *time.Time `json:"created,omitempty" name:"created" format:"ISO 8601"`
|
||||
// Whether this key is encrypted
|
||||
Encrypted *bool `json:"encrypted,omitempty" name:"encrypted"`
|
||||
// MD5sum of the object
|
||||
Etag *string `json:"etag,omitempty" name:"etag"`
|
||||
// Object key
|
||||
Key *string `json:"key,omitempty" name:"key"`
|
||||
// MIME type of the object
|
||||
MimeType *string `json:"mime_type,omitempty" name:"mime_type"`
|
||||
// Last modified time in unix time format
|
||||
Modified *int `json:"modified,omitempty" name:"modified"`
|
||||
// Object content size
|
||||
Size *int64 `json:"size,omitempty" name:"size"`
|
||||
}
|
||||
|
||||
// Validate validates the Key.
|
||||
func (v *KeyType) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// KeyDeleteErrorType presents KeyDeleteError.
|
||||
type KeyDeleteErrorType struct {
|
||||
// Error code
|
||||
Code *string `json:"code,omitempty" name:"code"`
|
||||
// Object key
|
||||
Key *string `json:"key,omitempty" name:"key"`
|
||||
// Error message
|
||||
Message *string `json:"message,omitempty" name:"message"`
|
||||
}
|
||||
|
||||
// Validate validates the KeyDeleteError.
|
||||
func (v *KeyDeleteErrorType) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// NotIPAddressType presents NotIPAddress.
|
||||
type NotIPAddressType struct {
|
||||
// Source IP
|
||||
SourceIP []*string `json:"source_ip,omitempty" name:"source_ip"`
|
||||
}
|
||||
|
||||
// Validate validates the NotIPAddress.
|
||||
func (v *NotIPAddressType) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ObjectPartType presents ObjectPart.
|
||||
type ObjectPartType struct {
|
||||
// Object part created time
|
||||
Created *time.Time `json:"created,omitempty" name:"created" format:"ISO 8601"`
|
||||
// MD5sum of the object part
|
||||
Etag *string `json:"etag,omitempty" name:"etag"`
|
||||
// Object part number
|
||||
PartNumber *int `json:"part_number" name:"part_number" default:"0"` // Required
|
||||
// Object part size
|
||||
Size *int64 `json:"size,omitempty" name:"size"`
|
||||
}
|
||||
|
||||
// Validate validates the ObjectPart.
|
||||
func (v *ObjectPartType) Validate() error {
|
||||
|
||||
if v.PartNumber == nil {
|
||||
return errors.ParameterRequiredError{
|
||||
ParameterName: "PartNumber",
|
||||
ParentName: "ObjectPart",
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// OwnerType presents Owner.
|
||||
type OwnerType struct {
|
||||
// User ID
|
||||
ID *string `json:"id,omitempty" name:"id"`
|
||||
// Username
|
||||
Name *string `json:"name,omitempty" name:"name"`
|
||||
}
|
||||
|
||||
// Validate validates the Owner.
|
||||
func (v *OwnerType) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// StatementType presents Statement.
|
||||
type StatementType struct {
|
||||
// QingStor API methods
|
||||
Action []*string `json:"action" name:"action"` // Required
|
||||
Condition *ConditionType `json:"condition,omitempty" name:"condition"`
|
||||
// Statement effect
|
||||
// Effect's available values: allow, deny
|
||||
Effect *string `json:"effect" name:"effect"` // Required
|
||||
// Bucket policy id, must be unique
|
||||
ID *string `json:"id" name:"id"` // Required
|
||||
// The resources to apply bucket policy
|
||||
Resource []*string `json:"resource,omitempty" name:"resource"`
|
||||
// The user to apply bucket policy
|
||||
User []*string `json:"user" name:"user"` // Required
|
||||
|
||||
}
|
||||
|
||||
// Validate validates the Statement.
|
||||
func (v *StatementType) Validate() error {
|
||||
|
||||
if len(v.Action) == 0 {
|
||||
return errors.ParameterRequiredError{
|
||||
ParameterName: "Action",
|
||||
ParentName: "Statement",
|
||||
}
|
||||
}
|
||||
|
||||
if v.Condition != nil {
|
||||
if err := v.Condition.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if v.Effect == nil {
|
||||
return errors.ParameterRequiredError{
|
||||
ParameterName: "Effect",
|
||||
ParentName: "Statement",
|
||||
}
|
||||
}
|
||||
|
||||
if v.Effect != nil {
|
||||
effectValidValues := []string{"allow", "deny"}
|
||||
effectParameterValue := fmt.Sprint(*v.Effect)
|
||||
|
||||
effectIsValid := false
|
||||
for _, value := range effectValidValues {
|
||||
if value == effectParameterValue {
|
||||
effectIsValid = true
|
||||
}
|
||||
}
|
||||
|
||||
if !effectIsValid {
|
||||
return errors.ParameterValueNotAllowedError{
|
||||
ParameterName: "Effect",
|
||||
ParameterValue: effectParameterValue,
|
||||
AllowedValues: effectValidValues,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if v.ID == nil {
|
||||
return errors.ParameterRequiredError{
|
||||
ParameterName: "ID",
|
||||
ParentName: "Statement",
|
||||
}
|
||||
}
|
||||
|
||||
if len(v.User) == 0 {
|
||||
return errors.ParameterRequiredError{
|
||||
ParameterName: "User",
|
||||
ParentName: "Statement",
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// StringLikeType presents StringLike.
|
||||
type StringLikeType struct {
|
||||
// Refer url
|
||||
Referer []*string `json:"Referer,omitempty" name:"Referer"`
|
||||
}
|
||||
|
||||
// Validate validates the StringLike.
|
||||
func (v *StringLikeType) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// StringNotLikeType presents StringNotLike.
|
||||
type StringNotLikeType struct {
|
||||
// Refer url
|
||||
Referer []*string `json:"Referer,omitempty" name:"Referer"`
|
||||
}
|
||||
|
||||
// Validate validates the StringNotLike.
|
||||
func (v *StringNotLikeType) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// UploadsType presents Uploads.
|
||||
type UploadsType struct {
|
||||
// Object part created time
|
||||
Created *time.Time `json:"created,omitempty" name:"created" format:"ISO 8601"`
|
||||
// Object key
|
||||
Key *string `json:"key,omitempty" name:"key"`
|
||||
// Object upload id
|
||||
UploadID *string `json:"upload_id,omitempty" name:"upload_id"`
|
||||
}
|
||||
|
||||
// Validate validates the Uploads.
|
||||
func (v *UploadsType) Validate() error {
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user