mirror of
https://github.com/rclone/rclone.git
synced 2024-12-12 02:02:02 +01:00
105 lines
3.1 KiB
Go
105 lines
3.1 KiB
Go
// +-------------------------------------------------------------------------
|
|
// | 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"`
|
|
}
|