2017-06-25 23:45:22 +02:00
// +-------------------------------------------------------------------------
// | 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 (
2017-08-08 11:18:33 +02:00
"net/http"
2017-06-25 23:45:22 +02:00
"github.com/yunify/qingstor-sdk-go/config"
"github.com/yunify/qingstor-sdk-go/request"
"github.com/yunify/qingstor-sdk-go/request/data"
)
2017-08-08 11:18:33 +02:00
var _ http . Header
2017-06-25 23:45:22 +02:00
// 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
}
2017-08-08 11:18:33 +02:00
requestID := r . HTTPResponse . Header . Get ( http . CanonicalHeaderKey ( "X-QS-Request-ID" ) )
2017-06-25 23:45:22 +02:00
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" `
}