Replace minio-go with aws-sdk-go for s3-compatible log backend (#670)

* Logs should support specifying region when using S3-compatible object store

* Use aws-sdk-go client for s3 backed logstore

* fixes vendor with aws-sdk-go dependencies
This commit is contained in:
Gerardo Viedma
2018-01-10 17:44:04 +00:00
committed by Reed Allman
parent 930d1e8dcc
commit 60d2e92c9a
2817 changed files with 1881133 additions and 33102 deletions

4558
vendor/github.com/aws/aws-sdk-go/service/snowball/api.go generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
// Package snowball provides the client and types for making API
// requests to Amazon Import/Export Snowball.
//
// AWS Snowball is a petabyte-scale data transport solution that uses secure
// appliances to transfer large amounts of data between your on-premises data
// centers and Amazon Simple Storage Service (Amazon S3). The Snowball commands
// described here provide access to the same functionality that is available
// in the AWS Snowball Management Console, which enables you to create and manage
// jobs for Snowball. To transfer data locally with a Snowball appliance, you'll
// need to use the Snowball client or the Amazon S3 API adapter for Snowball.
// For more information, see the User Guide (http://docs.aws.amazon.com/AWSImportExport/latest/ug/api-reference.html).
//
// See https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30 for more information on this service.
//
// See snowball package documentation for more information.
// https://docs.aws.amazon.com/sdk-for-go/api/service/snowball/
//
// Using the Client
//
// To contact Amazon Import/Export Snowball with the SDK use the New function to create
// a new service client. With that client you can make API requests to the service.
// These clients are safe to use concurrently.
//
// See the SDK's documentation for more information on how to use the SDK.
// https://docs.aws.amazon.com/sdk-for-go/api/
//
// See aws.Config documentation for more information on configuring SDK clients.
// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config
//
// See the Amazon Import/Export Snowball client Snowball for more
// information on creating client for this service.
// https://docs.aws.amazon.com/sdk-for-go/api/service/snowball/#New
package snowball

View File

@@ -0,0 +1,66 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package snowball
const (
// ErrCodeClusterLimitExceededException for service response error code
// "ClusterLimitExceededException".
//
// Job creation failed. Currently, clusters support five nodes. If you have
// less than five nodes for your cluster and you have more nodes to create for
// this cluster, try again and create jobs until your cluster has exactly five
// notes.
ErrCodeClusterLimitExceededException = "ClusterLimitExceededException"
// ErrCodeInvalidAddressException for service response error code
// "InvalidAddressException".
//
// The address provided was invalid. Check the address with your region's carrier,
// and try again.
ErrCodeInvalidAddressException = "InvalidAddressException"
// ErrCodeInvalidInputCombinationException for service response error code
// "InvalidInputCombinationException".
//
// Job or cluster creation failed. One ore more inputs were invalid. Confirm
// that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
// and try again.
ErrCodeInvalidInputCombinationException = "InvalidInputCombinationException"
// ErrCodeInvalidJobStateException for service response error code
// "InvalidJobStateException".
//
// The action can't be performed because the job's current state doesn't allow
// that action to be performed.
ErrCodeInvalidJobStateException = "InvalidJobStateException"
// ErrCodeInvalidNextTokenException for service response error code
// "InvalidNextTokenException".
//
// The NextToken string was altered unexpectedly, and the operation has stopped.
// Run the operation without changing the NextToken string, and try again.
ErrCodeInvalidNextTokenException = "InvalidNextTokenException"
// ErrCodeInvalidResourceException for service response error code
// "InvalidResourceException".
//
// The specified resource can't be found. Check the information you provided
// in your last request, and try again.
ErrCodeInvalidResourceException = "InvalidResourceException"
// ErrCodeKMSRequestFailedException for service response error code
// "KMSRequestFailedException".
//
// The provided AWS Key Management Service key lacks the permissions to perform
// the specified CreateJob or UpdateJob action.
ErrCodeKMSRequestFailedException = "KMSRequestFailedException"
// ErrCodeUnsupportedAddressException for service response error code
// "UnsupportedAddressException".
//
// The address is either outside the serviceable area for your region, or an
// error occurred. Check the address with your region's carrier and try again.
// If the issue persists, contact AWS Support.
ErrCodeUnsupportedAddressException = "UnsupportedAddressException"
)

View File

@@ -0,0 +1,654 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package snowball_test
import (
"fmt"
"strings"
"time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/snowball"
)
var _ time.Duration
var _ strings.Reader
var _ aws.Config
func parseTime(layout, value string) *time.Time {
t, err := time.Parse(layout, value)
if err != nil {
panic(err)
}
return &t
}
// To cancel a cluster job
//
// This operation cancels a cluster job. You can only cancel a cluster job while it's
// in the AwaitingQuorum status.
func ExampleSnowball_CancelCluster_shared00() {
svc := snowball.New(session.New())
input := &snowball.CancelClusterInput{
ClusterId: aws.String("CID123e4567-e89b-12d3-a456-426655440000"),
}
result, err := svc.CancelCluster(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeKMSRequestFailedException:
fmt.Println(snowball.ErrCodeKMSRequestFailedException, aerr.Error())
case snowball.ErrCodeInvalidJobStateException:
fmt.Println(snowball.ErrCodeInvalidJobStateException, aerr.Error())
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To cancel a job for a Snowball device
//
// This operation cancels a job. You can only cancel a job before its JobState value
// changes to PreparingAppliance.
func ExampleSnowball_CancelJob_shared00() {
svc := snowball.New(session.New())
input := &snowball.CancelJobInput{
JobId: aws.String("JID123e4567-e89b-12d3-a456-426655440000"),
}
result, err := svc.CancelJob(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
case snowball.ErrCodeInvalidJobStateException:
fmt.Println(snowball.ErrCodeInvalidJobStateException, aerr.Error())
case snowball.ErrCodeKMSRequestFailedException:
fmt.Println(snowball.ErrCodeKMSRequestFailedException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To create an address for a job
//
// This operation creates an address for a job. Addresses are validated at the time
// of creation. The address you provide must be located within the serviceable area
// of your region. If the address is invalid or unsupported, then an exception is thrown.
func ExampleSnowball_CreateAddress_shared00() {
svc := snowball.New(session.New())
input := &snowball.CreateAddressInput{
Address: &snowball.Address{
City: aws.String("Seattle"),
Company: aws.String("My Company's Name"),
Country: aws.String("USA"),
Name: aws.String("My Name"),
PhoneNumber: aws.String("425-555-5555"),
PostalCode: aws.String("98101"),
StateOrProvince: aws.String("WA"),
Street1: aws.String("123 Main Street"),
},
}
result, err := svc.CreateAddress(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidAddressException:
fmt.Println(snowball.ErrCodeInvalidAddressException, aerr.Error())
case snowball.ErrCodeUnsupportedAddressException:
fmt.Println(snowball.ErrCodeUnsupportedAddressException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To create a cluster
//
// Creates an empty cluster. Each cluster supports five nodes. You use the CreateJob
// action separately to create the jobs for each of these nodes. The cluster does not
// ship until these five node jobs have been created.
func ExampleSnowball_CreateCluster_shared00() {
svc := snowball.New(session.New())
input := &snowball.CreateClusterInput{
AddressId: aws.String("ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b"),
Description: aws.String("MyCluster"),
JobType: aws.String("LOCAL_USE"),
KmsKeyARN: aws.String("arn:aws:kms:us-east-1:123456789012:key/abcd1234-12ab-34cd-56ef-123456123456"),
Notification: &snowball.Notification{
NotifyAll: aws.Bool(false),
},
Resources: &snowball.JobResource{
S3Resources: []*snowball.S3Resource{
{
BucketArn: aws.String("arn:aws:s3:::MyBucket"),
},
},
},
RoleARN: aws.String("arn:aws:iam::123456789012:role/snowball-import-S3-role"),
ShippingOption: aws.String("SECOND_DAY"),
SnowballType: aws.String("EDGE"),
}
result, err := svc.CreateCluster(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
case snowball.ErrCodeKMSRequestFailedException:
fmt.Println(snowball.ErrCodeKMSRequestFailedException, aerr.Error())
case snowball.ErrCodeInvalidInputCombinationException:
fmt.Println(snowball.ErrCodeInvalidInputCombinationException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To create a job
//
// Creates a job to import or export data between Amazon S3 and your on-premises data
// center. Your AWS account must have the right trust policies and permissions in place
// to create a job for Snowball. If you're creating a job for a node in a cluster, you
// only need to provide the clusterId value; the other job attributes are inherited
// from the cluster.
func ExampleSnowball_CreateJob_shared00() {
svc := snowball.New(session.New())
input := &snowball.CreateJobInput{
AddressId: aws.String("ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b"),
Description: aws.String("My Job"),
JobType: aws.String("IMPORT"),
KmsKeyARN: aws.String("arn:aws:kms:us-east-1:123456789012:key/abcd1234-12ab-34cd-56ef-123456123456"),
Notification: &snowball.Notification{
NotifyAll: aws.Bool(false),
},
Resources: &snowball.JobResource{
S3Resources: []*snowball.S3Resource{
{
BucketArn: aws.String("arn:aws:s3:::MyBucket"),
},
},
},
RoleARN: aws.String("arn:aws:iam::123456789012:role/snowball-import-S3-role"),
ShippingOption: aws.String("SECOND_DAY"),
SnowballCapacityPreference: aws.String("T80"),
SnowballType: aws.String("STANDARD"),
}
result, err := svc.CreateJob(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
case snowball.ErrCodeKMSRequestFailedException:
fmt.Println(snowball.ErrCodeKMSRequestFailedException, aerr.Error())
case snowball.ErrCodeInvalidInputCombinationException:
fmt.Println(snowball.ErrCodeInvalidInputCombinationException, aerr.Error())
case snowball.ErrCodeClusterLimitExceededException:
fmt.Println(snowball.ErrCodeClusterLimitExceededException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To describe an address for a job
//
// This operation describes an address for a job.
func ExampleSnowball_DescribeAddress_shared00() {
svc := snowball.New(session.New())
input := &snowball.DescribeAddressInput{
AddressId: aws.String("ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b"),
}
result, err := svc.DescribeAddress(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To describe all the addresses you've created for AWS Snowball
//
// This operation describes all the addresses that you've created for AWS Snowball.
// Calling this API in one of the US regions will return addresses from the list of
// all addresses associated with this account in all US regions.
func ExampleSnowball_DescribeAddresses_shared00() {
svc := snowball.New(session.New())
input := &snowball.DescribeAddressesInput{}
result, err := svc.DescribeAddresses(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
case snowball.ErrCodeInvalidNextTokenException:
fmt.Println(snowball.ErrCodeInvalidNextTokenException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To describe a cluster
//
// Returns information about a specific cluster including shipping information, cluster
// status, and other important metadata.
func ExampleSnowball_DescribeCluster_shared00() {
svc := snowball.New(session.New())
input := &snowball.DescribeClusterInput{
ClusterId: aws.String("CID123e4567-e89b-12d3-a456-426655440000"),
}
result, err := svc.DescribeCluster(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To describe a job you've created for AWS Snowball
//
// This operation describes a job you've created for AWS Snowball.
func ExampleSnowball_DescribeJob_shared00() {
svc := snowball.New(session.New())
input := &snowball.DescribeJobInput{
JobId: aws.String("JID123e4567-e89b-12d3-a456-426655440000"),
}
result, err := svc.DescribeJob(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To get the manifest for a job you've created for AWS Snowball
//
// Returns a link to an Amazon S3 presigned URL for the manifest file associated with
// the specified JobId value. You can access the manifest file for up to 60 minutes
// after this request has been made. To access the manifest file after 60 minutes have
// passed, you'll have to make another call to the GetJobManifest action.
//
// The manifest is an encrypted file that you can download after your job enters the
// WithCustomer status. The manifest is decrypted by using the UnlockCode code value,
// when you pass both values to the Snowball through the Snowball client when the client
// is started for the first time.
//
// As a best practice, we recommend that you don't save a copy of an UnlockCode value
// in the same location as the manifest file for that job. Saving these separately helps
// prevent unauthorized parties from gaining access to the Snowball associated with
// that job.
//
// The credentials of a given job, including its manifest file and unlock code, expire
// 90 days after the job is created.
func ExampleSnowball_GetJobManifest_shared00() {
svc := snowball.New(session.New())
input := &snowball.GetJobManifestInput{
JobId: aws.String("JID123e4567-e89b-12d3-a456-426655440000"),
}
result, err := svc.GetJobManifest(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
case snowball.ErrCodeInvalidJobStateException:
fmt.Println(snowball.ErrCodeInvalidJobStateException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To get the unlock code for a job you've created for AWS Snowball
//
// Returns the UnlockCode code value for the specified job. A particular UnlockCode
// value can be accessed for up to 90 days after the associated job has been created.
//
// The UnlockCode value is a 29-character code with 25 alphanumeric characters and 4
// hyphens. This code is used to decrypt the manifest file when it is passed along with
// the manifest to the Snowball through the Snowball client when the client is started
// for the first time.
//
// As a best practice, we recommend that you don't save a copy of the UnlockCode in
// the same location as the manifest file for that job. Saving these separately helps
// prevent unauthorized parties from gaining access to the Snowball associated with
// that job.
func ExampleSnowball_GetJobUnlockCode_shared00() {
svc := snowball.New(session.New())
input := &snowball.GetJobUnlockCodeInput{
JobId: aws.String("JID123e4567-e89b-12d3-a456-426655440000"),
}
result, err := svc.GetJobUnlockCode(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
case snowball.ErrCodeInvalidJobStateException:
fmt.Println(snowball.ErrCodeInvalidJobStateException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To see your Snowball service limit and the number of Snowballs you have in use
//
// Returns information about the Snowball service limit for your account, and also the
// number of Snowballs your account has in use.
//
// The default service limit for the number of Snowballs that you can have at one time
// is 1. If you want to increase your service limit, contact AWS Support.
func ExampleSnowball_GetSnowballUsage_shared00() {
svc := snowball.New(session.New())
input := &snowball.GetSnowballUsageInput{}
result, err := svc.GetSnowballUsage(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To get a list of jobs in a cluster that you've created for AWS Snowball
//
// Returns an array of JobListEntry objects of the specified length. Each JobListEntry
// object is for a job in the specified cluster and contains a job's state, a job's
// ID, and other information.
func ExampleSnowball_ListClusterJobs_shared00() {
svc := snowball.New(session.New())
input := &snowball.ListClusterJobsInput{
ClusterId: aws.String("CID123e4567-e89b-12d3-a456-426655440000"),
}
result, err := svc.ListClusterJobs(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
case snowball.ErrCodeInvalidNextTokenException:
fmt.Println(snowball.ErrCodeInvalidNextTokenException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To get a list of clusters that you've created for AWS Snowball
//
// Returns an array of ClusterListEntry objects of the specified length. Each ClusterListEntry
// object contains a cluster's state, a cluster's ID, and other important status information.
func ExampleSnowball_ListClusters_shared00() {
svc := snowball.New(session.New())
input := &snowball.ListClustersInput{}
result, err := svc.ListClusters(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidNextTokenException:
fmt.Println(snowball.ErrCodeInvalidNextTokenException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To get a list of jobs that you've created for AWS Snowball
//
// Returns an array of JobListEntry objects of the specified length. Each JobListEntry
// object contains a job's state, a job's ID, and a value that indicates whether the
// job is a job part, in the case of export jobs. Calling this API action in one of
// the US regions will return jobs from the list of all jobs associated with this account
// in all US regions.
func ExampleSnowball_ListJobs_shared00() {
svc := snowball.New(session.New())
input := &snowball.ListJobsInput{}
result, err := svc.ListJobs(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidNextTokenException:
fmt.Println(snowball.ErrCodeInvalidNextTokenException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To update a cluster
//
// This action allows you to update certain parameters for a cluster. Once the cluster
// changes to a different state, usually within 60 minutes of it being created, this
// action is no longer available.
func ExampleSnowball_UpdateCluster_shared00() {
svc := snowball.New(session.New())
input := &snowball.UpdateClusterInput{
AddressId: aws.String("ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b"),
ClusterId: aws.String("CID123e4567-e89b-12d3-a456-426655440000"),
Description: aws.String("Updated the address to send this to image processing - RJ"),
}
result, err := svc.UpdateCluster(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
case snowball.ErrCodeInvalidJobStateException:
fmt.Println(snowball.ErrCodeInvalidJobStateException, aerr.Error())
case snowball.ErrCodeKMSRequestFailedException:
fmt.Println(snowball.ErrCodeKMSRequestFailedException, aerr.Error())
case snowball.ErrCodeInvalidInputCombinationException:
fmt.Println(snowball.ErrCodeInvalidInputCombinationException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}
// To update a job
//
// This action allows you to update certain parameters for a job. Once the job changes
// to a different job state, usually within 60 minutes of the job being created, this
// action is no longer available.
func ExampleSnowball_UpdateJob_shared00() {
svc := snowball.New(session.New())
input := &snowball.UpdateJobInput{
AddressId: aws.String("ADID1234ab12-3eec-4eb3-9be6-9374c10eb51b"),
Description: aws.String("Upgraded to Edge, shipped to Finance Dept, and requested faster shipping speed - TS."),
JobId: aws.String("JID123e4567-e89b-12d3-a456-426655440000"),
ShippingOption: aws.String("NEXT_DAY"),
SnowballCapacityPreference: aws.String("T100"),
}
result, err := svc.UpdateJob(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case snowball.ErrCodeInvalidResourceException:
fmt.Println(snowball.ErrCodeInvalidResourceException, aerr.Error())
case snowball.ErrCodeInvalidJobStateException:
fmt.Println(snowball.ErrCodeInvalidJobStateException, aerr.Error())
case snowball.ErrCodeKMSRequestFailedException:
fmt.Println(snowball.ErrCodeKMSRequestFailedException, aerr.Error())
case snowball.ErrCodeInvalidInputCombinationException:
fmt.Println(snowball.ErrCodeInvalidInputCombinationException, aerr.Error())
case snowball.ErrCodeClusterLimitExceededException:
fmt.Println(snowball.ErrCodeClusterLimitExceededException, aerr.Error())
default:
fmt.Println(aerr.Error())
}
} else {
// Print the error, cast err to awserr.Error to get the Code and
// Message from an error.
fmt.Println(err.Error())
}
return
}
fmt.Println(result)
}

View File

@@ -0,0 +1,95 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package snowball
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/client/metadata"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/aws/signer/v4"
"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
)
// Snowball provides the API operation methods for making requests to
// Amazon Import/Export Snowball. See this package's package overview docs
// for details on the service.
//
// Snowball methods are safe to use concurrently. It is not safe to
// modify mutate any of the struct's properties though.
type Snowball struct {
*client.Client
}
// Used for custom client initialization logic
var initClient func(*client.Client)
// Used for custom request initialization logic
var initRequest func(*request.Request)
// Service information constants
const (
ServiceName = "snowball" // Service endpoint prefix API calls made to.
EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata.
)
// New creates a new instance of the Snowball client with a session.
// If additional configuration is needed for the client instance use the optional
// aws.Config parameter to add your extra config.
//
// Example:
// // Create a Snowball client from just a session.
// svc := snowball.New(mySession)
//
// // Create a Snowball client with additional configuration
// svc := snowball.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
func New(p client.ConfigProvider, cfgs ...*aws.Config) *Snowball {
c := p.ClientConfig(EndpointsID, cfgs...)
return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName)
}
// newClient creates, initializes and returns a new service client instance.
func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *Snowball {
svc := &Snowball{
Client: client.New(
cfg,
metadata.ClientInfo{
ServiceName: ServiceName,
SigningName: signingName,
SigningRegion: signingRegion,
Endpoint: endpoint,
APIVersion: "2016-06-30",
JSONVersion: "1.1",
TargetPrefix: "AWSIESnowballJobManagementService",
},
handlers,
),
}
// Handlers
svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
// Run custom client initialization if present
if initClient != nil {
initClient(svc.Client)
}
return svc
}
// newRequest creates a new request for a Snowball operation and runs any
// custom request initialization.
func (c *Snowball) newRequest(op *request.Operation, params, data interface{}) *request.Request {
req := c.NewRequest(op, params, data)
// Run custom request initialization if present
if initRequest != nil {
initRequest(req)
}
return req
}

View File

@@ -0,0 +1,138 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
// Package snowballiface provides an interface to enable mocking the Amazon Import/Export Snowball service client
// for testing your code.
//
// It is important to note that this interface will have breaking changes
// when the service model is updated and adds new API operations, paginators,
// and waiters.
package snowballiface
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/service/snowball"
)
// SnowballAPI provides an interface to enable mocking the
// snowball.Snowball service client's API operation,
// paginators, and waiters. This make unit testing your code that calls out
// to the SDK's service client's calls easier.
//
// The best way to use this interface is so the SDK's service client's calls
// can be stubbed out for unit testing your code with the SDK without needing
// to inject custom request handlers into the SDK's request pipeline.
//
// // myFunc uses an SDK service client to make a request to
// // Amazon Import/Export Snowball.
// func myFunc(svc snowballiface.SnowballAPI) bool {
// // Make svc.CancelCluster request
// }
//
// func main() {
// sess := session.New()
// svc := snowball.New(sess)
//
// myFunc(svc)
// }
//
// In your _test.go file:
//
// // Define a mock struct to be used in your unit tests of myFunc.
// type mockSnowballClient struct {
// snowballiface.SnowballAPI
// }
// func (m *mockSnowballClient) CancelCluster(input *snowball.CancelClusterInput) (*snowball.CancelClusterOutput, error) {
// // mock response/functionality
// }
//
// func TestMyFunc(t *testing.T) {
// // Setup Test
// mockSvc := &mockSnowballClient{}
//
// myfunc(mockSvc)
//
// // Verify myFunc's functionality
// }
//
// It is important to note that this interface will have breaking changes
// when the service model is updated and adds new API operations, paginators,
// and waiters. Its suggested to use the pattern above for testing, or using
// tooling to generate mocks to satisfy the interfaces.
type SnowballAPI interface {
CancelCluster(*snowball.CancelClusterInput) (*snowball.CancelClusterOutput, error)
CancelClusterWithContext(aws.Context, *snowball.CancelClusterInput, ...request.Option) (*snowball.CancelClusterOutput, error)
CancelClusterRequest(*snowball.CancelClusterInput) (*request.Request, *snowball.CancelClusterOutput)
CancelJob(*snowball.CancelJobInput) (*snowball.CancelJobOutput, error)
CancelJobWithContext(aws.Context, *snowball.CancelJobInput, ...request.Option) (*snowball.CancelJobOutput, error)
CancelJobRequest(*snowball.CancelJobInput) (*request.Request, *snowball.CancelJobOutput)
CreateAddress(*snowball.CreateAddressInput) (*snowball.CreateAddressOutput, error)
CreateAddressWithContext(aws.Context, *snowball.CreateAddressInput, ...request.Option) (*snowball.CreateAddressOutput, error)
CreateAddressRequest(*snowball.CreateAddressInput) (*request.Request, *snowball.CreateAddressOutput)
CreateCluster(*snowball.CreateClusterInput) (*snowball.CreateClusterOutput, error)
CreateClusterWithContext(aws.Context, *snowball.CreateClusterInput, ...request.Option) (*snowball.CreateClusterOutput, error)
CreateClusterRequest(*snowball.CreateClusterInput) (*request.Request, *snowball.CreateClusterOutput)
CreateJob(*snowball.CreateJobInput) (*snowball.CreateJobOutput, error)
CreateJobWithContext(aws.Context, *snowball.CreateJobInput, ...request.Option) (*snowball.CreateJobOutput, error)
CreateJobRequest(*snowball.CreateJobInput) (*request.Request, *snowball.CreateJobOutput)
DescribeAddress(*snowball.DescribeAddressInput) (*snowball.DescribeAddressOutput, error)
DescribeAddressWithContext(aws.Context, *snowball.DescribeAddressInput, ...request.Option) (*snowball.DescribeAddressOutput, error)
DescribeAddressRequest(*snowball.DescribeAddressInput) (*request.Request, *snowball.DescribeAddressOutput)
DescribeAddresses(*snowball.DescribeAddressesInput) (*snowball.DescribeAddressesOutput, error)
DescribeAddressesWithContext(aws.Context, *snowball.DescribeAddressesInput, ...request.Option) (*snowball.DescribeAddressesOutput, error)
DescribeAddressesRequest(*snowball.DescribeAddressesInput) (*request.Request, *snowball.DescribeAddressesOutput)
DescribeAddressesPages(*snowball.DescribeAddressesInput, func(*snowball.DescribeAddressesOutput, bool) bool) error
DescribeAddressesPagesWithContext(aws.Context, *snowball.DescribeAddressesInput, func(*snowball.DescribeAddressesOutput, bool) bool, ...request.Option) error
DescribeCluster(*snowball.DescribeClusterInput) (*snowball.DescribeClusterOutput, error)
DescribeClusterWithContext(aws.Context, *snowball.DescribeClusterInput, ...request.Option) (*snowball.DescribeClusterOutput, error)
DescribeClusterRequest(*snowball.DescribeClusterInput) (*request.Request, *snowball.DescribeClusterOutput)
DescribeJob(*snowball.DescribeJobInput) (*snowball.DescribeJobOutput, error)
DescribeJobWithContext(aws.Context, *snowball.DescribeJobInput, ...request.Option) (*snowball.DescribeJobOutput, error)
DescribeJobRequest(*snowball.DescribeJobInput) (*request.Request, *snowball.DescribeJobOutput)
GetJobManifest(*snowball.GetJobManifestInput) (*snowball.GetJobManifestOutput, error)
GetJobManifestWithContext(aws.Context, *snowball.GetJobManifestInput, ...request.Option) (*snowball.GetJobManifestOutput, error)
GetJobManifestRequest(*snowball.GetJobManifestInput) (*request.Request, *snowball.GetJobManifestOutput)
GetJobUnlockCode(*snowball.GetJobUnlockCodeInput) (*snowball.GetJobUnlockCodeOutput, error)
GetJobUnlockCodeWithContext(aws.Context, *snowball.GetJobUnlockCodeInput, ...request.Option) (*snowball.GetJobUnlockCodeOutput, error)
GetJobUnlockCodeRequest(*snowball.GetJobUnlockCodeInput) (*request.Request, *snowball.GetJobUnlockCodeOutput)
GetSnowballUsage(*snowball.GetSnowballUsageInput) (*snowball.GetSnowballUsageOutput, error)
GetSnowballUsageWithContext(aws.Context, *snowball.GetSnowballUsageInput, ...request.Option) (*snowball.GetSnowballUsageOutput, error)
GetSnowballUsageRequest(*snowball.GetSnowballUsageInput) (*request.Request, *snowball.GetSnowballUsageOutput)
ListClusterJobs(*snowball.ListClusterJobsInput) (*snowball.ListClusterJobsOutput, error)
ListClusterJobsWithContext(aws.Context, *snowball.ListClusterJobsInput, ...request.Option) (*snowball.ListClusterJobsOutput, error)
ListClusterJobsRequest(*snowball.ListClusterJobsInput) (*request.Request, *snowball.ListClusterJobsOutput)
ListClusters(*snowball.ListClustersInput) (*snowball.ListClustersOutput, error)
ListClustersWithContext(aws.Context, *snowball.ListClustersInput, ...request.Option) (*snowball.ListClustersOutput, error)
ListClustersRequest(*snowball.ListClustersInput) (*request.Request, *snowball.ListClustersOutput)
ListJobs(*snowball.ListJobsInput) (*snowball.ListJobsOutput, error)
ListJobsWithContext(aws.Context, *snowball.ListJobsInput, ...request.Option) (*snowball.ListJobsOutput, error)
ListJobsRequest(*snowball.ListJobsInput) (*request.Request, *snowball.ListJobsOutput)
ListJobsPages(*snowball.ListJobsInput, func(*snowball.ListJobsOutput, bool) bool) error
ListJobsPagesWithContext(aws.Context, *snowball.ListJobsInput, func(*snowball.ListJobsOutput, bool) bool, ...request.Option) error
UpdateCluster(*snowball.UpdateClusterInput) (*snowball.UpdateClusterOutput, error)
UpdateClusterWithContext(aws.Context, *snowball.UpdateClusterInput, ...request.Option) (*snowball.UpdateClusterOutput, error)
UpdateClusterRequest(*snowball.UpdateClusterInput) (*request.Request, *snowball.UpdateClusterOutput)
UpdateJob(*snowball.UpdateJobInput) (*snowball.UpdateJobOutput, error)
UpdateJobWithContext(aws.Context, *snowball.UpdateJobInput, ...request.Option) (*snowball.UpdateJobOutput, error)
UpdateJobRequest(*snowball.UpdateJobInput) (*request.Request, *snowball.UpdateJobOutput)
}
var _ SnowballAPI = (*snowball.Snowball)(nil)