vendor: add qingstor-sdk-go for QingStor
This commit is contained in:
+104
@@ -0,0 +1,104 @@
|
||||
// +-------------------------------------------------------------------------
|
||||
// | 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 (
|
||||
"github.com/yunify/qingstor-sdk-go/config"
|
||||
"github.com/yunify/qingstor-sdk-go/request"
|
||||
"github.com/yunify/qingstor-sdk-go/request/data"
|
||||
)
|
||||
|
||||
// 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("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"`
|
||||
}
|
||||
Reference in New Issue
Block a user