1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package snowball
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const opCancelCluster = "CancelCluster"
17
18// CancelClusterRequest generates a "aws/request.Request" representing the
19// client's request for the CancelCluster operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CancelCluster for more information on using the CancelCluster
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CancelClusterRequest method.
34//    req, resp := client.CancelClusterRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CancelCluster
42func (c *Snowball) CancelClusterRequest(input *CancelClusterInput) (req *request.Request, output *CancelClusterOutput) {
43	op := &request.Operation{
44		Name:       opCancelCluster,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CancelClusterInput{}
51	}
52
53	output = &CancelClusterOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// CancelCluster API operation for Amazon Import/Export Snowball.
60//
61// Cancels a cluster job. You can only cancel a cluster job while it's in the
62// AwaitingQuorum status. You'll have at least an hour after creating a cluster
63// job to cancel it.
64//
65// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
66// with awserr.Error's Code and Message methods to get detailed information about
67// the error.
68//
69// See the AWS API reference guide for Amazon Import/Export Snowball's
70// API operation CancelCluster for usage and error information.
71//
72// Returned Error Codes:
73//   * ErrCodeKMSRequestFailedException "KMSRequestFailedException"
74//   The provided AWS Key Management Service key lacks the permissions to perform
75//   the specified CreateJob or UpdateJob action.
76//
77//   * ErrCodeInvalidJobStateException "InvalidJobStateException"
78//   The action can't be performed because the job's current state doesn't allow
79//   that action to be performed.
80//
81//   * ErrCodeInvalidResourceException "InvalidResourceException"
82//   The specified resource can't be found. Check the information you provided
83//   in your last request, and try again.
84//
85// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CancelCluster
86func (c *Snowball) CancelCluster(input *CancelClusterInput) (*CancelClusterOutput, error) {
87	req, out := c.CancelClusterRequest(input)
88	return out, req.Send()
89}
90
91// CancelClusterWithContext is the same as CancelCluster with the addition of
92// the ability to pass a context and additional request options.
93//
94// See CancelCluster for details on how to use this API operation.
95//
96// The context must be non-nil and will be used for request cancellation. If
97// the context is nil a panic will occur. In the future the SDK may create
98// sub-contexts for http.Requests. See https://golang.org/pkg/context/
99// for more information on using Contexts.
100func (c *Snowball) CancelClusterWithContext(ctx aws.Context, input *CancelClusterInput, opts ...request.Option) (*CancelClusterOutput, error) {
101	req, out := c.CancelClusterRequest(input)
102	req.SetContext(ctx)
103	req.ApplyOptions(opts...)
104	return out, req.Send()
105}
106
107const opCancelJob = "CancelJob"
108
109// CancelJobRequest generates a "aws/request.Request" representing the
110// client's request for the CancelJob operation. The "output" return
111// value will be populated with the request's response once the request completes
112// successfully.
113//
114// Use "Send" method on the returned Request to send the API call to the service.
115// the "output" return value is not valid until after Send returns without error.
116//
117// See CancelJob for more information on using the CancelJob
118// API call, and error handling.
119//
120// This method is useful when you want to inject custom logic or configuration
121// into the SDK's request lifecycle. Such as custom headers, or retry logic.
122//
123//
124//    // Example sending a request using the CancelJobRequest method.
125//    req, resp := client.CancelJobRequest(params)
126//
127//    err := req.Send()
128//    if err == nil { // resp is now filled
129//        fmt.Println(resp)
130//    }
131//
132// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CancelJob
133func (c *Snowball) CancelJobRequest(input *CancelJobInput) (req *request.Request, output *CancelJobOutput) {
134	op := &request.Operation{
135		Name:       opCancelJob,
136		HTTPMethod: "POST",
137		HTTPPath:   "/",
138	}
139
140	if input == nil {
141		input = &CancelJobInput{}
142	}
143
144	output = &CancelJobOutput{}
145	req = c.newRequest(op, input, output)
146	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
147	return
148}
149
150// CancelJob API operation for Amazon Import/Export Snowball.
151//
152// Cancels the specified job. You can only cancel a job before its JobState
153// value changes to PreparingAppliance. Requesting the ListJobs or DescribeJob
154// action returns a job's JobState as part of the response element data returned.
155//
156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
157// with awserr.Error's Code and Message methods to get detailed information about
158// the error.
159//
160// See the AWS API reference guide for Amazon Import/Export Snowball's
161// API operation CancelJob for usage and error information.
162//
163// Returned Error Codes:
164//   * ErrCodeInvalidResourceException "InvalidResourceException"
165//   The specified resource can't be found. Check the information you provided
166//   in your last request, and try again.
167//
168//   * ErrCodeInvalidJobStateException "InvalidJobStateException"
169//   The action can't be performed because the job's current state doesn't allow
170//   that action to be performed.
171//
172//   * ErrCodeKMSRequestFailedException "KMSRequestFailedException"
173//   The provided AWS Key Management Service key lacks the permissions to perform
174//   the specified CreateJob or UpdateJob action.
175//
176// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CancelJob
177func (c *Snowball) CancelJob(input *CancelJobInput) (*CancelJobOutput, error) {
178	req, out := c.CancelJobRequest(input)
179	return out, req.Send()
180}
181
182// CancelJobWithContext is the same as CancelJob with the addition of
183// the ability to pass a context and additional request options.
184//
185// See CancelJob for details on how to use this API operation.
186//
187// The context must be non-nil and will be used for request cancellation. If
188// the context is nil a panic will occur. In the future the SDK may create
189// sub-contexts for http.Requests. See https://golang.org/pkg/context/
190// for more information on using Contexts.
191func (c *Snowball) CancelJobWithContext(ctx aws.Context, input *CancelJobInput, opts ...request.Option) (*CancelJobOutput, error) {
192	req, out := c.CancelJobRequest(input)
193	req.SetContext(ctx)
194	req.ApplyOptions(opts...)
195	return out, req.Send()
196}
197
198const opCreateAddress = "CreateAddress"
199
200// CreateAddressRequest generates a "aws/request.Request" representing the
201// client's request for the CreateAddress operation. The "output" return
202// value will be populated with the request's response once the request completes
203// successfully.
204//
205// Use "Send" method on the returned Request to send the API call to the service.
206// the "output" return value is not valid until after Send returns without error.
207//
208// See CreateAddress for more information on using the CreateAddress
209// API call, and error handling.
210//
211// This method is useful when you want to inject custom logic or configuration
212// into the SDK's request lifecycle. Such as custom headers, or retry logic.
213//
214//
215//    // Example sending a request using the CreateAddressRequest method.
216//    req, resp := client.CreateAddressRequest(params)
217//
218//    err := req.Send()
219//    if err == nil { // resp is now filled
220//        fmt.Println(resp)
221//    }
222//
223// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CreateAddress
224func (c *Snowball) CreateAddressRequest(input *CreateAddressInput) (req *request.Request, output *CreateAddressOutput) {
225	op := &request.Operation{
226		Name:       opCreateAddress,
227		HTTPMethod: "POST",
228		HTTPPath:   "/",
229	}
230
231	if input == nil {
232		input = &CreateAddressInput{}
233	}
234
235	output = &CreateAddressOutput{}
236	req = c.newRequest(op, input, output)
237	return
238}
239
240// CreateAddress API operation for Amazon Import/Export Snowball.
241//
242// Creates an address for a Snowball to be shipped to. In most regions, addresses
243// are validated at the time of creation. The address you provide must be located
244// within the serviceable area of your region. If the address is invalid or
245// unsupported, then an exception is thrown.
246//
247// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
248// with awserr.Error's Code and Message methods to get detailed information about
249// the error.
250//
251// See the AWS API reference guide for Amazon Import/Export Snowball's
252// API operation CreateAddress for usage and error information.
253//
254// Returned Error Codes:
255//   * ErrCodeInvalidAddressException "InvalidAddressException"
256//   The address provided was invalid. Check the address with your region's carrier,
257//   and try again.
258//
259//   * ErrCodeUnsupportedAddressException "UnsupportedAddressException"
260//   The address is either outside the serviceable area for your region, or an
261//   error occurred. Check the address with your region's carrier and try again.
262//   If the issue persists, contact AWS Support.
263//
264// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CreateAddress
265func (c *Snowball) CreateAddress(input *CreateAddressInput) (*CreateAddressOutput, error) {
266	req, out := c.CreateAddressRequest(input)
267	return out, req.Send()
268}
269
270// CreateAddressWithContext is the same as CreateAddress with the addition of
271// the ability to pass a context and additional request options.
272//
273// See CreateAddress for details on how to use this API operation.
274//
275// The context must be non-nil and will be used for request cancellation. If
276// the context is nil a panic will occur. In the future the SDK may create
277// sub-contexts for http.Requests. See https://golang.org/pkg/context/
278// for more information on using Contexts.
279func (c *Snowball) CreateAddressWithContext(ctx aws.Context, input *CreateAddressInput, opts ...request.Option) (*CreateAddressOutput, error) {
280	req, out := c.CreateAddressRequest(input)
281	req.SetContext(ctx)
282	req.ApplyOptions(opts...)
283	return out, req.Send()
284}
285
286const opCreateCluster = "CreateCluster"
287
288// CreateClusterRequest generates a "aws/request.Request" representing the
289// client's request for the CreateCluster operation. The "output" return
290// value will be populated with the request's response once the request completes
291// successfully.
292//
293// Use "Send" method on the returned Request to send the API call to the service.
294// the "output" return value is not valid until after Send returns without error.
295//
296// See CreateCluster for more information on using the CreateCluster
297// API call, and error handling.
298//
299// This method is useful when you want to inject custom logic or configuration
300// into the SDK's request lifecycle. Such as custom headers, or retry logic.
301//
302//
303//    // Example sending a request using the CreateClusterRequest method.
304//    req, resp := client.CreateClusterRequest(params)
305//
306//    err := req.Send()
307//    if err == nil { // resp is now filled
308//        fmt.Println(resp)
309//    }
310//
311// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CreateCluster
312func (c *Snowball) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) {
313	op := &request.Operation{
314		Name:       opCreateCluster,
315		HTTPMethod: "POST",
316		HTTPPath:   "/",
317	}
318
319	if input == nil {
320		input = &CreateClusterInput{}
321	}
322
323	output = &CreateClusterOutput{}
324	req = c.newRequest(op, input, output)
325	return
326}
327
328// CreateCluster API operation for Amazon Import/Export Snowball.
329//
330// Creates an empty cluster. Each cluster supports five nodes. You use the CreateJob
331// action separately to create the jobs for each of these nodes. The cluster
332// does not ship until these five node jobs have been created.
333//
334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
335// with awserr.Error's Code and Message methods to get detailed information about
336// the error.
337//
338// See the AWS API reference guide for Amazon Import/Export Snowball's
339// API operation CreateCluster for usage and error information.
340//
341// Returned Error Codes:
342//   * ErrCodeInvalidResourceException "InvalidResourceException"
343//   The specified resource can't be found. Check the information you provided
344//   in your last request, and try again.
345//
346//   * ErrCodeKMSRequestFailedException "KMSRequestFailedException"
347//   The provided AWS Key Management Service key lacks the permissions to perform
348//   the specified CreateJob or UpdateJob action.
349//
350//   * ErrCodeInvalidInputCombinationException "InvalidInputCombinationException"
351//   Job or cluster creation failed. One ore more inputs were invalid. Confirm
352//   that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
353//   and try again.
354//
355//   * ErrCodeEc2RequestFailedException "Ec2RequestFailedException"
356//   Your IAM user lacks the necessary Amazon EC2 permissions to perform the attempted
357//   action.
358//
359// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CreateCluster
360func (c *Snowball) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) {
361	req, out := c.CreateClusterRequest(input)
362	return out, req.Send()
363}
364
365// CreateClusterWithContext is the same as CreateCluster with the addition of
366// the ability to pass a context and additional request options.
367//
368// See CreateCluster for details on how to use this API operation.
369//
370// The context must be non-nil and will be used for request cancellation. If
371// the context is nil a panic will occur. In the future the SDK may create
372// sub-contexts for http.Requests. See https://golang.org/pkg/context/
373// for more information on using Contexts.
374func (c *Snowball) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) {
375	req, out := c.CreateClusterRequest(input)
376	req.SetContext(ctx)
377	req.ApplyOptions(opts...)
378	return out, req.Send()
379}
380
381const opCreateJob = "CreateJob"
382
383// CreateJobRequest generates a "aws/request.Request" representing the
384// client's request for the CreateJob operation. The "output" return
385// value will be populated with the request's response once the request completes
386// successfully.
387//
388// Use "Send" method on the returned Request to send the API call to the service.
389// the "output" return value is not valid until after Send returns without error.
390//
391// See CreateJob for more information on using the CreateJob
392// API call, and error handling.
393//
394// This method is useful when you want to inject custom logic or configuration
395// into the SDK's request lifecycle. Such as custom headers, or retry logic.
396//
397//
398//    // Example sending a request using the CreateJobRequest method.
399//    req, resp := client.CreateJobRequest(params)
400//
401//    err := req.Send()
402//    if err == nil { // resp is now filled
403//        fmt.Println(resp)
404//    }
405//
406// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CreateJob
407func (c *Snowball) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
408	op := &request.Operation{
409		Name:       opCreateJob,
410		HTTPMethod: "POST",
411		HTTPPath:   "/",
412	}
413
414	if input == nil {
415		input = &CreateJobInput{}
416	}
417
418	output = &CreateJobOutput{}
419	req = c.newRequest(op, input, output)
420	return
421}
422
423// CreateJob API operation for Amazon Import/Export Snowball.
424//
425// Creates a job to import or export data between Amazon S3 and your on-premises
426// data center. Your AWS account must have the right trust policies and permissions
427// in place to create a job for Snowball. If you're creating a job for a node
428// in a cluster, you only need to provide the clusterId value; the other job
429// attributes are inherited from the cluster.
430//
431// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
432// with awserr.Error's Code and Message methods to get detailed information about
433// the error.
434//
435// See the AWS API reference guide for Amazon Import/Export Snowball's
436// API operation CreateJob for usage and error information.
437//
438// Returned Error Codes:
439//   * ErrCodeInvalidResourceException "InvalidResourceException"
440//   The specified resource can't be found. Check the information you provided
441//   in your last request, and try again.
442//
443//   * ErrCodeKMSRequestFailedException "KMSRequestFailedException"
444//   The provided AWS Key Management Service key lacks the permissions to perform
445//   the specified CreateJob or UpdateJob action.
446//
447//   * ErrCodeInvalidInputCombinationException "InvalidInputCombinationException"
448//   Job or cluster creation failed. One ore more inputs were invalid. Confirm
449//   that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
450//   and try again.
451//
452//   * ErrCodeClusterLimitExceededException "ClusterLimitExceededException"
453//   Job creation failed. Currently, clusters support five nodes. If you have
454//   less than five nodes for your cluster and you have more nodes to create for
455//   this cluster, try again and create jobs until your cluster has exactly five
456//   notes.
457//
458//   * ErrCodeEc2RequestFailedException "Ec2RequestFailedException"
459//   Your IAM user lacks the necessary Amazon EC2 permissions to perform the attempted
460//   action.
461//
462// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CreateJob
463func (c *Snowball) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
464	req, out := c.CreateJobRequest(input)
465	return out, req.Send()
466}
467
468// CreateJobWithContext is the same as CreateJob with the addition of
469// the ability to pass a context and additional request options.
470//
471// See CreateJob for details on how to use this API operation.
472//
473// The context must be non-nil and will be used for request cancellation. If
474// the context is nil a panic will occur. In the future the SDK may create
475// sub-contexts for http.Requests. See https://golang.org/pkg/context/
476// for more information on using Contexts.
477func (c *Snowball) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
478	req, out := c.CreateJobRequest(input)
479	req.SetContext(ctx)
480	req.ApplyOptions(opts...)
481	return out, req.Send()
482}
483
484const opDescribeAddress = "DescribeAddress"
485
486// DescribeAddressRequest generates a "aws/request.Request" representing the
487// client's request for the DescribeAddress operation. The "output" return
488// value will be populated with the request's response once the request completes
489// successfully.
490//
491// Use "Send" method on the returned Request to send the API call to the service.
492// the "output" return value is not valid until after Send returns without error.
493//
494// See DescribeAddress for more information on using the DescribeAddress
495// API call, and error handling.
496//
497// This method is useful when you want to inject custom logic or configuration
498// into the SDK's request lifecycle. Such as custom headers, or retry logic.
499//
500//
501//    // Example sending a request using the DescribeAddressRequest method.
502//    req, resp := client.DescribeAddressRequest(params)
503//
504//    err := req.Send()
505//    if err == nil { // resp is now filled
506//        fmt.Println(resp)
507//    }
508//
509// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeAddress
510func (c *Snowball) DescribeAddressRequest(input *DescribeAddressInput) (req *request.Request, output *DescribeAddressOutput) {
511	op := &request.Operation{
512		Name:       opDescribeAddress,
513		HTTPMethod: "POST",
514		HTTPPath:   "/",
515	}
516
517	if input == nil {
518		input = &DescribeAddressInput{}
519	}
520
521	output = &DescribeAddressOutput{}
522	req = c.newRequest(op, input, output)
523	return
524}
525
526// DescribeAddress API operation for Amazon Import/Export Snowball.
527//
528// Takes an AddressId and returns specific details about that address in the
529// form of an Address object.
530//
531// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
532// with awserr.Error's Code and Message methods to get detailed information about
533// the error.
534//
535// See the AWS API reference guide for Amazon Import/Export Snowball's
536// API operation DescribeAddress for usage and error information.
537//
538// Returned Error Codes:
539//   * ErrCodeInvalidResourceException "InvalidResourceException"
540//   The specified resource can't be found. Check the information you provided
541//   in your last request, and try again.
542//
543// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeAddress
544func (c *Snowball) DescribeAddress(input *DescribeAddressInput) (*DescribeAddressOutput, error) {
545	req, out := c.DescribeAddressRequest(input)
546	return out, req.Send()
547}
548
549// DescribeAddressWithContext is the same as DescribeAddress with the addition of
550// the ability to pass a context and additional request options.
551//
552// See DescribeAddress for details on how to use this API operation.
553//
554// The context must be non-nil and will be used for request cancellation. If
555// the context is nil a panic will occur. In the future the SDK may create
556// sub-contexts for http.Requests. See https://golang.org/pkg/context/
557// for more information on using Contexts.
558func (c *Snowball) DescribeAddressWithContext(ctx aws.Context, input *DescribeAddressInput, opts ...request.Option) (*DescribeAddressOutput, error) {
559	req, out := c.DescribeAddressRequest(input)
560	req.SetContext(ctx)
561	req.ApplyOptions(opts...)
562	return out, req.Send()
563}
564
565const opDescribeAddresses = "DescribeAddresses"
566
567// DescribeAddressesRequest generates a "aws/request.Request" representing the
568// client's request for the DescribeAddresses operation. The "output" return
569// value will be populated with the request's response once the request completes
570// successfully.
571//
572// Use "Send" method on the returned Request to send the API call to the service.
573// the "output" return value is not valid until after Send returns without error.
574//
575// See DescribeAddresses for more information on using the DescribeAddresses
576// API call, and error handling.
577//
578// This method is useful when you want to inject custom logic or configuration
579// into the SDK's request lifecycle. Such as custom headers, or retry logic.
580//
581//
582//    // Example sending a request using the DescribeAddressesRequest method.
583//    req, resp := client.DescribeAddressesRequest(params)
584//
585//    err := req.Send()
586//    if err == nil { // resp is now filled
587//        fmt.Println(resp)
588//    }
589//
590// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeAddresses
591func (c *Snowball) DescribeAddressesRequest(input *DescribeAddressesInput) (req *request.Request, output *DescribeAddressesOutput) {
592	op := &request.Operation{
593		Name:       opDescribeAddresses,
594		HTTPMethod: "POST",
595		HTTPPath:   "/",
596		Paginator: &request.Paginator{
597			InputTokens:     []string{"NextToken"},
598			OutputTokens:    []string{"NextToken"},
599			LimitToken:      "MaxResults",
600			TruncationToken: "",
601		},
602	}
603
604	if input == nil {
605		input = &DescribeAddressesInput{}
606	}
607
608	output = &DescribeAddressesOutput{}
609	req = c.newRequest(op, input, output)
610	return
611}
612
613// DescribeAddresses API operation for Amazon Import/Export Snowball.
614//
615// Returns a specified number of ADDRESS objects. Calling this API in one of
616// the US regions will return addresses from the list of all addresses associated
617// with this account in all US regions.
618//
619// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
620// with awserr.Error's Code and Message methods to get detailed information about
621// the error.
622//
623// See the AWS API reference guide for Amazon Import/Export Snowball's
624// API operation DescribeAddresses for usage and error information.
625//
626// Returned Error Codes:
627//   * ErrCodeInvalidResourceException "InvalidResourceException"
628//   The specified resource can't be found. Check the information you provided
629//   in your last request, and try again.
630//
631//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
632//   The NextToken string was altered unexpectedly, and the operation has stopped.
633//   Run the operation without changing the NextToken string, and try again.
634//
635// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeAddresses
636func (c *Snowball) DescribeAddresses(input *DescribeAddressesInput) (*DescribeAddressesOutput, error) {
637	req, out := c.DescribeAddressesRequest(input)
638	return out, req.Send()
639}
640
641// DescribeAddressesWithContext is the same as DescribeAddresses with the addition of
642// the ability to pass a context and additional request options.
643//
644// See DescribeAddresses for details on how to use this API operation.
645//
646// The context must be non-nil and will be used for request cancellation. If
647// the context is nil a panic will occur. In the future the SDK may create
648// sub-contexts for http.Requests. See https://golang.org/pkg/context/
649// for more information on using Contexts.
650func (c *Snowball) DescribeAddressesWithContext(ctx aws.Context, input *DescribeAddressesInput, opts ...request.Option) (*DescribeAddressesOutput, error) {
651	req, out := c.DescribeAddressesRequest(input)
652	req.SetContext(ctx)
653	req.ApplyOptions(opts...)
654	return out, req.Send()
655}
656
657// DescribeAddressesPages iterates over the pages of a DescribeAddresses operation,
658// calling the "fn" function with the response data for each page. To stop
659// iterating, return false from the fn function.
660//
661// See DescribeAddresses method for more information on how to use this operation.
662//
663// Note: This operation can generate multiple requests to a service.
664//
665//    // Example iterating over at most 3 pages of a DescribeAddresses operation.
666//    pageNum := 0
667//    err := client.DescribeAddressesPages(params,
668//        func(page *snowball.DescribeAddressesOutput, lastPage bool) bool {
669//            pageNum++
670//            fmt.Println(page)
671//            return pageNum <= 3
672//        })
673//
674func (c *Snowball) DescribeAddressesPages(input *DescribeAddressesInput, fn func(*DescribeAddressesOutput, bool) bool) error {
675	return c.DescribeAddressesPagesWithContext(aws.BackgroundContext(), input, fn)
676}
677
678// DescribeAddressesPagesWithContext same as DescribeAddressesPages except
679// it takes a Context and allows setting request options on the pages.
680//
681// The context must be non-nil and will be used for request cancellation. If
682// the context is nil a panic will occur. In the future the SDK may create
683// sub-contexts for http.Requests. See https://golang.org/pkg/context/
684// for more information on using Contexts.
685func (c *Snowball) DescribeAddressesPagesWithContext(ctx aws.Context, input *DescribeAddressesInput, fn func(*DescribeAddressesOutput, bool) bool, opts ...request.Option) error {
686	p := request.Pagination{
687		NewRequest: func() (*request.Request, error) {
688			var inCpy *DescribeAddressesInput
689			if input != nil {
690				tmp := *input
691				inCpy = &tmp
692			}
693			req, _ := c.DescribeAddressesRequest(inCpy)
694			req.SetContext(ctx)
695			req.ApplyOptions(opts...)
696			return req, nil
697		},
698	}
699
700	for p.Next() {
701		if !fn(p.Page().(*DescribeAddressesOutput), !p.HasNextPage()) {
702			break
703		}
704	}
705
706	return p.Err()
707}
708
709const opDescribeCluster = "DescribeCluster"
710
711// DescribeClusterRequest generates a "aws/request.Request" representing the
712// client's request for the DescribeCluster operation. The "output" return
713// value will be populated with the request's response once the request completes
714// successfully.
715//
716// Use "Send" method on the returned Request to send the API call to the service.
717// the "output" return value is not valid until after Send returns without error.
718//
719// See DescribeCluster for more information on using the DescribeCluster
720// API call, and error handling.
721//
722// This method is useful when you want to inject custom logic or configuration
723// into the SDK's request lifecycle. Such as custom headers, or retry logic.
724//
725//
726//    // Example sending a request using the DescribeClusterRequest method.
727//    req, resp := client.DescribeClusterRequest(params)
728//
729//    err := req.Send()
730//    if err == nil { // resp is now filled
731//        fmt.Println(resp)
732//    }
733//
734// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeCluster
735func (c *Snowball) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
736	op := &request.Operation{
737		Name:       opDescribeCluster,
738		HTTPMethod: "POST",
739		HTTPPath:   "/",
740	}
741
742	if input == nil {
743		input = &DescribeClusterInput{}
744	}
745
746	output = &DescribeClusterOutput{}
747	req = c.newRequest(op, input, output)
748	return
749}
750
751// DescribeCluster API operation for Amazon Import/Export Snowball.
752//
753// Returns information about a specific cluster including shipping information,
754// cluster status, and other important metadata.
755//
756// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
757// with awserr.Error's Code and Message methods to get detailed information about
758// the error.
759//
760// See the AWS API reference guide for Amazon Import/Export Snowball's
761// API operation DescribeCluster for usage and error information.
762//
763// Returned Error Codes:
764//   * ErrCodeInvalidResourceException "InvalidResourceException"
765//   The specified resource can't be found. Check the information you provided
766//   in your last request, and try again.
767//
768// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeCluster
769func (c *Snowball) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
770	req, out := c.DescribeClusterRequest(input)
771	return out, req.Send()
772}
773
774// DescribeClusterWithContext is the same as DescribeCluster with the addition of
775// the ability to pass a context and additional request options.
776//
777// See DescribeCluster for details on how to use this API operation.
778//
779// The context must be non-nil and will be used for request cancellation. If
780// the context is nil a panic will occur. In the future the SDK may create
781// sub-contexts for http.Requests. See https://golang.org/pkg/context/
782// for more information on using Contexts.
783func (c *Snowball) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
784	req, out := c.DescribeClusterRequest(input)
785	req.SetContext(ctx)
786	req.ApplyOptions(opts...)
787	return out, req.Send()
788}
789
790const opDescribeJob = "DescribeJob"
791
792// DescribeJobRequest generates a "aws/request.Request" representing the
793// client's request for the DescribeJob operation. The "output" return
794// value will be populated with the request's response once the request completes
795// successfully.
796//
797// Use "Send" method on the returned Request to send the API call to the service.
798// the "output" return value is not valid until after Send returns without error.
799//
800// See DescribeJob for more information on using the DescribeJob
801// API call, and error handling.
802//
803// This method is useful when you want to inject custom logic or configuration
804// into the SDK's request lifecycle. Such as custom headers, or retry logic.
805//
806//
807//    // Example sending a request using the DescribeJobRequest method.
808//    req, resp := client.DescribeJobRequest(params)
809//
810//    err := req.Send()
811//    if err == nil { // resp is now filled
812//        fmt.Println(resp)
813//    }
814//
815// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeJob
816func (c *Snowball) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
817	op := &request.Operation{
818		Name:       opDescribeJob,
819		HTTPMethod: "POST",
820		HTTPPath:   "/",
821	}
822
823	if input == nil {
824		input = &DescribeJobInput{}
825	}
826
827	output = &DescribeJobOutput{}
828	req = c.newRequest(op, input, output)
829	return
830}
831
832// DescribeJob API operation for Amazon Import/Export Snowball.
833//
834// Returns information about a specific job including shipping information,
835// job status, and other important metadata.
836//
837// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
838// with awserr.Error's Code and Message methods to get detailed information about
839// the error.
840//
841// See the AWS API reference guide for Amazon Import/Export Snowball's
842// API operation DescribeJob for usage and error information.
843//
844// Returned Error Codes:
845//   * ErrCodeInvalidResourceException "InvalidResourceException"
846//   The specified resource can't be found. Check the information you provided
847//   in your last request, and try again.
848//
849// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeJob
850func (c *Snowball) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
851	req, out := c.DescribeJobRequest(input)
852	return out, req.Send()
853}
854
855// DescribeJobWithContext is the same as DescribeJob with the addition of
856// the ability to pass a context and additional request options.
857//
858// See DescribeJob for details on how to use this API operation.
859//
860// The context must be non-nil and will be used for request cancellation. If
861// the context is nil a panic will occur. In the future the SDK may create
862// sub-contexts for http.Requests. See https://golang.org/pkg/context/
863// for more information on using Contexts.
864func (c *Snowball) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
865	req, out := c.DescribeJobRequest(input)
866	req.SetContext(ctx)
867	req.ApplyOptions(opts...)
868	return out, req.Send()
869}
870
871const opGetJobManifest = "GetJobManifest"
872
873// GetJobManifestRequest generates a "aws/request.Request" representing the
874// client's request for the GetJobManifest operation. The "output" return
875// value will be populated with the request's response once the request completes
876// successfully.
877//
878// Use "Send" method on the returned Request to send the API call to the service.
879// the "output" return value is not valid until after Send returns without error.
880//
881// See GetJobManifest for more information on using the GetJobManifest
882// API call, and error handling.
883//
884// This method is useful when you want to inject custom logic or configuration
885// into the SDK's request lifecycle. Such as custom headers, or retry logic.
886//
887//
888//    // Example sending a request using the GetJobManifestRequest method.
889//    req, resp := client.GetJobManifestRequest(params)
890//
891//    err := req.Send()
892//    if err == nil { // resp is now filled
893//        fmt.Println(resp)
894//    }
895//
896// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetJobManifest
897func (c *Snowball) GetJobManifestRequest(input *GetJobManifestInput) (req *request.Request, output *GetJobManifestOutput) {
898	op := &request.Operation{
899		Name:       opGetJobManifest,
900		HTTPMethod: "POST",
901		HTTPPath:   "/",
902	}
903
904	if input == nil {
905		input = &GetJobManifestInput{}
906	}
907
908	output = &GetJobManifestOutput{}
909	req = c.newRequest(op, input, output)
910	return
911}
912
913// GetJobManifest API operation for Amazon Import/Export Snowball.
914//
915// Returns a link to an Amazon S3 presigned URL for the manifest file associated
916// with the specified JobId value. You can access the manifest file for up to
917// 60 minutes after this request has been made. To access the manifest file
918// after 60 minutes have passed, you'll have to make another call to the GetJobManifest
919// action.
920//
921// The manifest is an encrypted file that you can download after your job enters
922// the WithCustomer status. The manifest is decrypted by using the UnlockCode
923// code value, when you pass both values to the Snowball through the Snowball
924// client when the client is started for the first time.
925//
926// As a best practice, we recommend that you don't save a copy of an UnlockCode
927// value in the same location as the manifest file for that job. Saving these
928// separately helps prevent unauthorized parties from gaining access to the
929// Snowball associated with that job.
930//
931// The credentials of a given job, including its manifest file and unlock code,
932// expire 90 days after the job is created.
933//
934// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
935// with awserr.Error's Code and Message methods to get detailed information about
936// the error.
937//
938// See the AWS API reference guide for Amazon Import/Export Snowball's
939// API operation GetJobManifest for usage and error information.
940//
941// Returned Error Codes:
942//   * ErrCodeInvalidResourceException "InvalidResourceException"
943//   The specified resource can't be found. Check the information you provided
944//   in your last request, and try again.
945//
946//   * ErrCodeInvalidJobStateException "InvalidJobStateException"
947//   The action can't be performed because the job's current state doesn't allow
948//   that action to be performed.
949//
950// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetJobManifest
951func (c *Snowball) GetJobManifest(input *GetJobManifestInput) (*GetJobManifestOutput, error) {
952	req, out := c.GetJobManifestRequest(input)
953	return out, req.Send()
954}
955
956// GetJobManifestWithContext is the same as GetJobManifest with the addition of
957// the ability to pass a context and additional request options.
958//
959// See GetJobManifest for details on how to use this API operation.
960//
961// The context must be non-nil and will be used for request cancellation. If
962// the context is nil a panic will occur. In the future the SDK may create
963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
964// for more information on using Contexts.
965func (c *Snowball) GetJobManifestWithContext(ctx aws.Context, input *GetJobManifestInput, opts ...request.Option) (*GetJobManifestOutput, error) {
966	req, out := c.GetJobManifestRequest(input)
967	req.SetContext(ctx)
968	req.ApplyOptions(opts...)
969	return out, req.Send()
970}
971
972const opGetJobUnlockCode = "GetJobUnlockCode"
973
974// GetJobUnlockCodeRequest generates a "aws/request.Request" representing the
975// client's request for the GetJobUnlockCode operation. The "output" return
976// value will be populated with the request's response once the request completes
977// successfully.
978//
979// Use "Send" method on the returned Request to send the API call to the service.
980// the "output" return value is not valid until after Send returns without error.
981//
982// See GetJobUnlockCode for more information on using the GetJobUnlockCode
983// API call, and error handling.
984//
985// This method is useful when you want to inject custom logic or configuration
986// into the SDK's request lifecycle. Such as custom headers, or retry logic.
987//
988//
989//    // Example sending a request using the GetJobUnlockCodeRequest method.
990//    req, resp := client.GetJobUnlockCodeRequest(params)
991//
992//    err := req.Send()
993//    if err == nil { // resp is now filled
994//        fmt.Println(resp)
995//    }
996//
997// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetJobUnlockCode
998func (c *Snowball) GetJobUnlockCodeRequest(input *GetJobUnlockCodeInput) (req *request.Request, output *GetJobUnlockCodeOutput) {
999	op := &request.Operation{
1000		Name:       opGetJobUnlockCode,
1001		HTTPMethod: "POST",
1002		HTTPPath:   "/",
1003	}
1004
1005	if input == nil {
1006		input = &GetJobUnlockCodeInput{}
1007	}
1008
1009	output = &GetJobUnlockCodeOutput{}
1010	req = c.newRequest(op, input, output)
1011	return
1012}
1013
1014// GetJobUnlockCode API operation for Amazon Import/Export Snowball.
1015//
1016// Returns the UnlockCode code value for the specified job. A particular UnlockCode
1017// value can be accessed for up to 90 days after the associated job has been
1018// created.
1019//
1020// The UnlockCode value is a 29-character code with 25 alphanumeric characters
1021// and 4 hyphens. This code is used to decrypt the manifest file when it is
1022// passed along with the manifest to the Snowball through the Snowball client
1023// when the client is started for the first time.
1024//
1025// As a best practice, we recommend that you don't save a copy of the UnlockCode
1026// in the same location as the manifest file for that job. Saving these separately
1027// helps prevent unauthorized parties from gaining access to the Snowball associated
1028// with that job.
1029//
1030// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1031// with awserr.Error's Code and Message methods to get detailed information about
1032// the error.
1033//
1034// See the AWS API reference guide for Amazon Import/Export Snowball's
1035// API operation GetJobUnlockCode for usage and error information.
1036//
1037// Returned Error Codes:
1038//   * ErrCodeInvalidResourceException "InvalidResourceException"
1039//   The specified resource can't be found. Check the information you provided
1040//   in your last request, and try again.
1041//
1042//   * ErrCodeInvalidJobStateException "InvalidJobStateException"
1043//   The action can't be performed because the job's current state doesn't allow
1044//   that action to be performed.
1045//
1046// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetJobUnlockCode
1047func (c *Snowball) GetJobUnlockCode(input *GetJobUnlockCodeInput) (*GetJobUnlockCodeOutput, error) {
1048	req, out := c.GetJobUnlockCodeRequest(input)
1049	return out, req.Send()
1050}
1051
1052// GetJobUnlockCodeWithContext is the same as GetJobUnlockCode with the addition of
1053// the ability to pass a context and additional request options.
1054//
1055// See GetJobUnlockCode for details on how to use this API operation.
1056//
1057// The context must be non-nil and will be used for request cancellation. If
1058// the context is nil a panic will occur. In the future the SDK may create
1059// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1060// for more information on using Contexts.
1061func (c *Snowball) GetJobUnlockCodeWithContext(ctx aws.Context, input *GetJobUnlockCodeInput, opts ...request.Option) (*GetJobUnlockCodeOutput, error) {
1062	req, out := c.GetJobUnlockCodeRequest(input)
1063	req.SetContext(ctx)
1064	req.ApplyOptions(opts...)
1065	return out, req.Send()
1066}
1067
1068const opGetSnowballUsage = "GetSnowballUsage"
1069
1070// GetSnowballUsageRequest generates a "aws/request.Request" representing the
1071// client's request for the GetSnowballUsage operation. The "output" return
1072// value will be populated with the request's response once the request completes
1073// successfully.
1074//
1075// Use "Send" method on the returned Request to send the API call to the service.
1076// the "output" return value is not valid until after Send returns without error.
1077//
1078// See GetSnowballUsage for more information on using the GetSnowballUsage
1079// API call, and error handling.
1080//
1081// This method is useful when you want to inject custom logic or configuration
1082// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1083//
1084//
1085//    // Example sending a request using the GetSnowballUsageRequest method.
1086//    req, resp := client.GetSnowballUsageRequest(params)
1087//
1088//    err := req.Send()
1089//    if err == nil { // resp is now filled
1090//        fmt.Println(resp)
1091//    }
1092//
1093// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetSnowballUsage
1094func (c *Snowball) GetSnowballUsageRequest(input *GetSnowballUsageInput) (req *request.Request, output *GetSnowballUsageOutput) {
1095	op := &request.Operation{
1096		Name:       opGetSnowballUsage,
1097		HTTPMethod: "POST",
1098		HTTPPath:   "/",
1099	}
1100
1101	if input == nil {
1102		input = &GetSnowballUsageInput{}
1103	}
1104
1105	output = &GetSnowballUsageOutput{}
1106	req = c.newRequest(op, input, output)
1107	return
1108}
1109
1110// GetSnowballUsage API operation for Amazon Import/Export Snowball.
1111//
1112// Returns information about the Snowball service limit for your account, and
1113// also the number of Snowballs your account has in use.
1114//
1115// The default service limit for the number of Snowballs that you can have at
1116// one time is 1. If you want to increase your service limit, contact AWS Support.
1117//
1118// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1119// with awserr.Error's Code and Message methods to get detailed information about
1120// the error.
1121//
1122// See the AWS API reference guide for Amazon Import/Export Snowball's
1123// API operation GetSnowballUsage for usage and error information.
1124// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetSnowballUsage
1125func (c *Snowball) GetSnowballUsage(input *GetSnowballUsageInput) (*GetSnowballUsageOutput, error) {
1126	req, out := c.GetSnowballUsageRequest(input)
1127	return out, req.Send()
1128}
1129
1130// GetSnowballUsageWithContext is the same as GetSnowballUsage with the addition of
1131// the ability to pass a context and additional request options.
1132//
1133// See GetSnowballUsage for details on how to use this API operation.
1134//
1135// The context must be non-nil and will be used for request cancellation. If
1136// the context is nil a panic will occur. In the future the SDK may create
1137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1138// for more information on using Contexts.
1139func (c *Snowball) GetSnowballUsageWithContext(ctx aws.Context, input *GetSnowballUsageInput, opts ...request.Option) (*GetSnowballUsageOutput, error) {
1140	req, out := c.GetSnowballUsageRequest(input)
1141	req.SetContext(ctx)
1142	req.ApplyOptions(opts...)
1143	return out, req.Send()
1144}
1145
1146const opGetSoftwareUpdates = "GetSoftwareUpdates"
1147
1148// GetSoftwareUpdatesRequest generates a "aws/request.Request" representing the
1149// client's request for the GetSoftwareUpdates operation. The "output" return
1150// value will be populated with the request's response once the request completes
1151// successfully.
1152//
1153// Use "Send" method on the returned Request to send the API call to the service.
1154// the "output" return value is not valid until after Send returns without error.
1155//
1156// See GetSoftwareUpdates for more information on using the GetSoftwareUpdates
1157// API call, and error handling.
1158//
1159// This method is useful when you want to inject custom logic or configuration
1160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1161//
1162//
1163//    // Example sending a request using the GetSoftwareUpdatesRequest method.
1164//    req, resp := client.GetSoftwareUpdatesRequest(params)
1165//
1166//    err := req.Send()
1167//    if err == nil { // resp is now filled
1168//        fmt.Println(resp)
1169//    }
1170//
1171// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetSoftwareUpdates
1172func (c *Snowball) GetSoftwareUpdatesRequest(input *GetSoftwareUpdatesInput) (req *request.Request, output *GetSoftwareUpdatesOutput) {
1173	op := &request.Operation{
1174		Name:       opGetSoftwareUpdates,
1175		HTTPMethod: "POST",
1176		HTTPPath:   "/",
1177	}
1178
1179	if input == nil {
1180		input = &GetSoftwareUpdatesInput{}
1181	}
1182
1183	output = &GetSoftwareUpdatesOutput{}
1184	req = c.newRequest(op, input, output)
1185	return
1186}
1187
1188// GetSoftwareUpdates API operation for Amazon Import/Export Snowball.
1189//
1190// Returns an Amazon S3 presigned URL for an update file associated with a specified
1191// JobId.
1192//
1193// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1194// with awserr.Error's Code and Message methods to get detailed information about
1195// the error.
1196//
1197// See the AWS API reference guide for Amazon Import/Export Snowball's
1198// API operation GetSoftwareUpdates for usage and error information.
1199//
1200// Returned Error Codes:
1201//   * ErrCodeInvalidResourceException "InvalidResourceException"
1202//   The specified resource can't be found. Check the information you provided
1203//   in your last request, and try again.
1204//
1205//   * ErrCodeInvalidJobStateException "InvalidJobStateException"
1206//   The action can't be performed because the job's current state doesn't allow
1207//   that action to be performed.
1208//
1209// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetSoftwareUpdates
1210func (c *Snowball) GetSoftwareUpdates(input *GetSoftwareUpdatesInput) (*GetSoftwareUpdatesOutput, error) {
1211	req, out := c.GetSoftwareUpdatesRequest(input)
1212	return out, req.Send()
1213}
1214
1215// GetSoftwareUpdatesWithContext is the same as GetSoftwareUpdates with the addition of
1216// the ability to pass a context and additional request options.
1217//
1218// See GetSoftwareUpdates for details on how to use this API operation.
1219//
1220// The context must be non-nil and will be used for request cancellation. If
1221// the context is nil a panic will occur. In the future the SDK may create
1222// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1223// for more information on using Contexts.
1224func (c *Snowball) GetSoftwareUpdatesWithContext(ctx aws.Context, input *GetSoftwareUpdatesInput, opts ...request.Option) (*GetSoftwareUpdatesOutput, error) {
1225	req, out := c.GetSoftwareUpdatesRequest(input)
1226	req.SetContext(ctx)
1227	req.ApplyOptions(opts...)
1228	return out, req.Send()
1229}
1230
1231const opListClusterJobs = "ListClusterJobs"
1232
1233// ListClusterJobsRequest generates a "aws/request.Request" representing the
1234// client's request for the ListClusterJobs operation. The "output" return
1235// value will be populated with the request's response once the request completes
1236// successfully.
1237//
1238// Use "Send" method on the returned Request to send the API call to the service.
1239// the "output" return value is not valid until after Send returns without error.
1240//
1241// See ListClusterJobs for more information on using the ListClusterJobs
1242// API call, and error handling.
1243//
1244// This method is useful when you want to inject custom logic or configuration
1245// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1246//
1247//
1248//    // Example sending a request using the ListClusterJobsRequest method.
1249//    req, resp := client.ListClusterJobsRequest(params)
1250//
1251//    err := req.Send()
1252//    if err == nil { // resp is now filled
1253//        fmt.Println(resp)
1254//    }
1255//
1256// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListClusterJobs
1257func (c *Snowball) ListClusterJobsRequest(input *ListClusterJobsInput) (req *request.Request, output *ListClusterJobsOutput) {
1258	op := &request.Operation{
1259		Name:       opListClusterJobs,
1260		HTTPMethod: "POST",
1261		HTTPPath:   "/",
1262	}
1263
1264	if input == nil {
1265		input = &ListClusterJobsInput{}
1266	}
1267
1268	output = &ListClusterJobsOutput{}
1269	req = c.newRequest(op, input, output)
1270	return
1271}
1272
1273// ListClusterJobs API operation for Amazon Import/Export Snowball.
1274//
1275// Returns an array of JobListEntry objects of the specified length. Each JobListEntry
1276// object is for a job in the specified cluster and contains a job's state,
1277// a job's ID, and other information.
1278//
1279// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1280// with awserr.Error's Code and Message methods to get detailed information about
1281// the error.
1282//
1283// See the AWS API reference guide for Amazon Import/Export Snowball's
1284// API operation ListClusterJobs for usage and error information.
1285//
1286// Returned Error Codes:
1287//   * ErrCodeInvalidResourceException "InvalidResourceException"
1288//   The specified resource can't be found. Check the information you provided
1289//   in your last request, and try again.
1290//
1291//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
1292//   The NextToken string was altered unexpectedly, and the operation has stopped.
1293//   Run the operation without changing the NextToken string, and try again.
1294//
1295// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListClusterJobs
1296func (c *Snowball) ListClusterJobs(input *ListClusterJobsInput) (*ListClusterJobsOutput, error) {
1297	req, out := c.ListClusterJobsRequest(input)
1298	return out, req.Send()
1299}
1300
1301// ListClusterJobsWithContext is the same as ListClusterJobs with the addition of
1302// the ability to pass a context and additional request options.
1303//
1304// See ListClusterJobs for details on how to use this API operation.
1305//
1306// The context must be non-nil and will be used for request cancellation. If
1307// the context is nil a panic will occur. In the future the SDK may create
1308// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1309// for more information on using Contexts.
1310func (c *Snowball) ListClusterJobsWithContext(ctx aws.Context, input *ListClusterJobsInput, opts ...request.Option) (*ListClusterJobsOutput, error) {
1311	req, out := c.ListClusterJobsRequest(input)
1312	req.SetContext(ctx)
1313	req.ApplyOptions(opts...)
1314	return out, req.Send()
1315}
1316
1317const opListClusters = "ListClusters"
1318
1319// ListClustersRequest generates a "aws/request.Request" representing the
1320// client's request for the ListClusters operation. The "output" return
1321// value will be populated with the request's response once the request completes
1322// successfully.
1323//
1324// Use "Send" method on the returned Request to send the API call to the service.
1325// the "output" return value is not valid until after Send returns without error.
1326//
1327// See ListClusters for more information on using the ListClusters
1328// API call, and error handling.
1329//
1330// This method is useful when you want to inject custom logic or configuration
1331// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1332//
1333//
1334//    // Example sending a request using the ListClustersRequest method.
1335//    req, resp := client.ListClustersRequest(params)
1336//
1337//    err := req.Send()
1338//    if err == nil { // resp is now filled
1339//        fmt.Println(resp)
1340//    }
1341//
1342// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListClusters
1343func (c *Snowball) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
1344	op := &request.Operation{
1345		Name:       opListClusters,
1346		HTTPMethod: "POST",
1347		HTTPPath:   "/",
1348	}
1349
1350	if input == nil {
1351		input = &ListClustersInput{}
1352	}
1353
1354	output = &ListClustersOutput{}
1355	req = c.newRequest(op, input, output)
1356	return
1357}
1358
1359// ListClusters API operation for Amazon Import/Export Snowball.
1360//
1361// Returns an array of ClusterListEntry objects of the specified length. Each
1362// ClusterListEntry object contains a cluster's state, a cluster's ID, and other
1363// important status information.
1364//
1365// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1366// with awserr.Error's Code and Message methods to get detailed information about
1367// the error.
1368//
1369// See the AWS API reference guide for Amazon Import/Export Snowball's
1370// API operation ListClusters for usage and error information.
1371//
1372// Returned Error Codes:
1373//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
1374//   The NextToken string was altered unexpectedly, and the operation has stopped.
1375//   Run the operation without changing the NextToken string, and try again.
1376//
1377// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListClusters
1378func (c *Snowball) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
1379	req, out := c.ListClustersRequest(input)
1380	return out, req.Send()
1381}
1382
1383// ListClustersWithContext is the same as ListClusters with the addition of
1384// the ability to pass a context and additional request options.
1385//
1386// See ListClusters for details on how to use this API operation.
1387//
1388// The context must be non-nil and will be used for request cancellation. If
1389// the context is nil a panic will occur. In the future the SDK may create
1390// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1391// for more information on using Contexts.
1392func (c *Snowball) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
1393	req, out := c.ListClustersRequest(input)
1394	req.SetContext(ctx)
1395	req.ApplyOptions(opts...)
1396	return out, req.Send()
1397}
1398
1399const opListCompatibleImages = "ListCompatibleImages"
1400
1401// ListCompatibleImagesRequest generates a "aws/request.Request" representing the
1402// client's request for the ListCompatibleImages operation. The "output" return
1403// value will be populated with the request's response once the request completes
1404// successfully.
1405//
1406// Use "Send" method on the returned Request to send the API call to the service.
1407// the "output" return value is not valid until after Send returns without error.
1408//
1409// See ListCompatibleImages for more information on using the ListCompatibleImages
1410// API call, and error handling.
1411//
1412// This method is useful when you want to inject custom logic or configuration
1413// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1414//
1415//
1416//    // Example sending a request using the ListCompatibleImagesRequest method.
1417//    req, resp := client.ListCompatibleImagesRequest(params)
1418//
1419//    err := req.Send()
1420//    if err == nil { // resp is now filled
1421//        fmt.Println(resp)
1422//    }
1423//
1424// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListCompatibleImages
1425func (c *Snowball) ListCompatibleImagesRequest(input *ListCompatibleImagesInput) (req *request.Request, output *ListCompatibleImagesOutput) {
1426	op := &request.Operation{
1427		Name:       opListCompatibleImages,
1428		HTTPMethod: "POST",
1429		HTTPPath:   "/",
1430	}
1431
1432	if input == nil {
1433		input = &ListCompatibleImagesInput{}
1434	}
1435
1436	output = &ListCompatibleImagesOutput{}
1437	req = c.newRequest(op, input, output)
1438	return
1439}
1440
1441// ListCompatibleImages API operation for Amazon Import/Export Snowball.
1442//
1443// This action returns a list of the different Amazon EC2 Amazon Machine Images
1444// (AMIs) that are owned by your AWS account that would be supported for use
1445// on a Snowball Edge device. Currently, supported AMIs are based on the CentOS
1446// 7 (x86_64) - with Updates HVM, Ubuntu Server 14.04 LTS (HVM), and Ubuntu
1447// 16.04 LTS - Xenial (HVM) images, available on the AWS Marketplace.
1448//
1449// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1450// with awserr.Error's Code and Message methods to get detailed information about
1451// the error.
1452//
1453// See the AWS API reference guide for Amazon Import/Export Snowball's
1454// API operation ListCompatibleImages for usage and error information.
1455//
1456// Returned Error Codes:
1457//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
1458//   The NextToken string was altered unexpectedly, and the operation has stopped.
1459//   Run the operation without changing the NextToken string, and try again.
1460//
1461//   * ErrCodeEc2RequestFailedException "Ec2RequestFailedException"
1462//   Your IAM user lacks the necessary Amazon EC2 permissions to perform the attempted
1463//   action.
1464//
1465// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListCompatibleImages
1466func (c *Snowball) ListCompatibleImages(input *ListCompatibleImagesInput) (*ListCompatibleImagesOutput, error) {
1467	req, out := c.ListCompatibleImagesRequest(input)
1468	return out, req.Send()
1469}
1470
1471// ListCompatibleImagesWithContext is the same as ListCompatibleImages with the addition of
1472// the ability to pass a context and additional request options.
1473//
1474// See ListCompatibleImages for details on how to use this API operation.
1475//
1476// The context must be non-nil and will be used for request cancellation. If
1477// the context is nil a panic will occur. In the future the SDK may create
1478// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1479// for more information on using Contexts.
1480func (c *Snowball) ListCompatibleImagesWithContext(ctx aws.Context, input *ListCompatibleImagesInput, opts ...request.Option) (*ListCompatibleImagesOutput, error) {
1481	req, out := c.ListCompatibleImagesRequest(input)
1482	req.SetContext(ctx)
1483	req.ApplyOptions(opts...)
1484	return out, req.Send()
1485}
1486
1487const opListJobs = "ListJobs"
1488
1489// ListJobsRequest generates a "aws/request.Request" representing the
1490// client's request for the ListJobs operation. The "output" return
1491// value will be populated with the request's response once the request completes
1492// successfully.
1493//
1494// Use "Send" method on the returned Request to send the API call to the service.
1495// the "output" return value is not valid until after Send returns without error.
1496//
1497// See ListJobs for more information on using the ListJobs
1498// API call, and error handling.
1499//
1500// This method is useful when you want to inject custom logic or configuration
1501// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1502//
1503//
1504//    // Example sending a request using the ListJobsRequest method.
1505//    req, resp := client.ListJobsRequest(params)
1506//
1507//    err := req.Send()
1508//    if err == nil { // resp is now filled
1509//        fmt.Println(resp)
1510//    }
1511//
1512// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListJobs
1513func (c *Snowball) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
1514	op := &request.Operation{
1515		Name:       opListJobs,
1516		HTTPMethod: "POST",
1517		HTTPPath:   "/",
1518		Paginator: &request.Paginator{
1519			InputTokens:     []string{"NextToken"},
1520			OutputTokens:    []string{"NextToken"},
1521			LimitToken:      "MaxResults",
1522			TruncationToken: "",
1523		},
1524	}
1525
1526	if input == nil {
1527		input = &ListJobsInput{}
1528	}
1529
1530	output = &ListJobsOutput{}
1531	req = c.newRequest(op, input, output)
1532	return
1533}
1534
1535// ListJobs API operation for Amazon Import/Export Snowball.
1536//
1537// Returns an array of JobListEntry objects of the specified length. Each JobListEntry
1538// object contains a job's state, a job's ID, and a value that indicates whether
1539// the job is a job part, in the case of export jobs. Calling this API action
1540// in one of the US regions will return jobs from the list of all jobs associated
1541// with this account in all US regions.
1542//
1543// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1544// with awserr.Error's Code and Message methods to get detailed information about
1545// the error.
1546//
1547// See the AWS API reference guide for Amazon Import/Export Snowball's
1548// API operation ListJobs for usage and error information.
1549//
1550// Returned Error Codes:
1551//   * ErrCodeInvalidNextTokenException "InvalidNextTokenException"
1552//   The NextToken string was altered unexpectedly, and the operation has stopped.
1553//   Run the operation without changing the NextToken string, and try again.
1554//
1555// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListJobs
1556func (c *Snowball) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
1557	req, out := c.ListJobsRequest(input)
1558	return out, req.Send()
1559}
1560
1561// ListJobsWithContext is the same as ListJobs with the addition of
1562// the ability to pass a context and additional request options.
1563//
1564// See ListJobs for details on how to use this API operation.
1565//
1566// The context must be non-nil and will be used for request cancellation. If
1567// the context is nil a panic will occur. In the future the SDK may create
1568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1569// for more information on using Contexts.
1570func (c *Snowball) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
1571	req, out := c.ListJobsRequest(input)
1572	req.SetContext(ctx)
1573	req.ApplyOptions(opts...)
1574	return out, req.Send()
1575}
1576
1577// ListJobsPages iterates over the pages of a ListJobs operation,
1578// calling the "fn" function with the response data for each page. To stop
1579// iterating, return false from the fn function.
1580//
1581// See ListJobs method for more information on how to use this operation.
1582//
1583// Note: This operation can generate multiple requests to a service.
1584//
1585//    // Example iterating over at most 3 pages of a ListJobs operation.
1586//    pageNum := 0
1587//    err := client.ListJobsPages(params,
1588//        func(page *snowball.ListJobsOutput, lastPage bool) bool {
1589//            pageNum++
1590//            fmt.Println(page)
1591//            return pageNum <= 3
1592//        })
1593//
1594func (c *Snowball) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
1595	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
1596}
1597
1598// ListJobsPagesWithContext same as ListJobsPages except
1599// it takes a Context and allows setting request options on the pages.
1600//
1601// The context must be non-nil and will be used for request cancellation. If
1602// the context is nil a panic will occur. In the future the SDK may create
1603// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1604// for more information on using Contexts.
1605func (c *Snowball) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
1606	p := request.Pagination{
1607		NewRequest: func() (*request.Request, error) {
1608			var inCpy *ListJobsInput
1609			if input != nil {
1610				tmp := *input
1611				inCpy = &tmp
1612			}
1613			req, _ := c.ListJobsRequest(inCpy)
1614			req.SetContext(ctx)
1615			req.ApplyOptions(opts...)
1616			return req, nil
1617		},
1618	}
1619
1620	for p.Next() {
1621		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
1622			break
1623		}
1624	}
1625
1626	return p.Err()
1627}
1628
1629const opUpdateCluster = "UpdateCluster"
1630
1631// UpdateClusterRequest generates a "aws/request.Request" representing the
1632// client's request for the UpdateCluster operation. The "output" return
1633// value will be populated with the request's response once the request completes
1634// successfully.
1635//
1636// Use "Send" method on the returned Request to send the API call to the service.
1637// the "output" return value is not valid until after Send returns without error.
1638//
1639// See UpdateCluster for more information on using the UpdateCluster
1640// API call, and error handling.
1641//
1642// This method is useful when you want to inject custom logic or configuration
1643// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1644//
1645//
1646//    // Example sending a request using the UpdateClusterRequest method.
1647//    req, resp := client.UpdateClusterRequest(params)
1648//
1649//    err := req.Send()
1650//    if err == nil { // resp is now filled
1651//        fmt.Println(resp)
1652//    }
1653//
1654// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/UpdateCluster
1655func (c *Snowball) UpdateClusterRequest(input *UpdateClusterInput) (req *request.Request, output *UpdateClusterOutput) {
1656	op := &request.Operation{
1657		Name:       opUpdateCluster,
1658		HTTPMethod: "POST",
1659		HTTPPath:   "/",
1660	}
1661
1662	if input == nil {
1663		input = &UpdateClusterInput{}
1664	}
1665
1666	output = &UpdateClusterOutput{}
1667	req = c.newRequest(op, input, output)
1668	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1669	return
1670}
1671
1672// UpdateCluster API operation for Amazon Import/Export Snowball.
1673//
1674// While a cluster's ClusterState value is in the AwaitingQuorum state, you
1675// can update some of the information associated with a cluster. Once the cluster
1676// changes to a different job state, usually 60 minutes after the cluster being
1677// created, this action is no longer available.
1678//
1679// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1680// with awserr.Error's Code and Message methods to get detailed information about
1681// the error.
1682//
1683// See the AWS API reference guide for Amazon Import/Export Snowball's
1684// API operation UpdateCluster for usage and error information.
1685//
1686// Returned Error Codes:
1687//   * ErrCodeInvalidResourceException "InvalidResourceException"
1688//   The specified resource can't be found. Check the information you provided
1689//   in your last request, and try again.
1690//
1691//   * ErrCodeInvalidJobStateException "InvalidJobStateException"
1692//   The action can't be performed because the job's current state doesn't allow
1693//   that action to be performed.
1694//
1695//   * ErrCodeKMSRequestFailedException "KMSRequestFailedException"
1696//   The provided AWS Key Management Service key lacks the permissions to perform
1697//   the specified CreateJob or UpdateJob action.
1698//
1699//   * ErrCodeInvalidInputCombinationException "InvalidInputCombinationException"
1700//   Job or cluster creation failed. One ore more inputs were invalid. Confirm
1701//   that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
1702//   and try again.
1703//
1704//   * ErrCodeEc2RequestFailedException "Ec2RequestFailedException"
1705//   Your IAM user lacks the necessary Amazon EC2 permissions to perform the attempted
1706//   action.
1707//
1708// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/UpdateCluster
1709func (c *Snowball) UpdateCluster(input *UpdateClusterInput) (*UpdateClusterOutput, error) {
1710	req, out := c.UpdateClusterRequest(input)
1711	return out, req.Send()
1712}
1713
1714// UpdateClusterWithContext is the same as UpdateCluster with the addition of
1715// the ability to pass a context and additional request options.
1716//
1717// See UpdateCluster for details on how to use this API operation.
1718//
1719// The context must be non-nil and will be used for request cancellation. If
1720// the context is nil a panic will occur. In the future the SDK may create
1721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1722// for more information on using Contexts.
1723func (c *Snowball) UpdateClusterWithContext(ctx aws.Context, input *UpdateClusterInput, opts ...request.Option) (*UpdateClusterOutput, error) {
1724	req, out := c.UpdateClusterRequest(input)
1725	req.SetContext(ctx)
1726	req.ApplyOptions(opts...)
1727	return out, req.Send()
1728}
1729
1730const opUpdateJob = "UpdateJob"
1731
1732// UpdateJobRequest generates a "aws/request.Request" representing the
1733// client's request for the UpdateJob operation. The "output" return
1734// value will be populated with the request's response once the request completes
1735// successfully.
1736//
1737// Use "Send" method on the returned Request to send the API call to the service.
1738// the "output" return value is not valid until after Send returns without error.
1739//
1740// See UpdateJob for more information on using the UpdateJob
1741// API call, and error handling.
1742//
1743// This method is useful when you want to inject custom logic or configuration
1744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1745//
1746//
1747//    // Example sending a request using the UpdateJobRequest method.
1748//    req, resp := client.UpdateJobRequest(params)
1749//
1750//    err := req.Send()
1751//    if err == nil { // resp is now filled
1752//        fmt.Println(resp)
1753//    }
1754//
1755// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/UpdateJob
1756func (c *Snowball) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
1757	op := &request.Operation{
1758		Name:       opUpdateJob,
1759		HTTPMethod: "POST",
1760		HTTPPath:   "/",
1761	}
1762
1763	if input == nil {
1764		input = &UpdateJobInput{}
1765	}
1766
1767	output = &UpdateJobOutput{}
1768	req = c.newRequest(op, input, output)
1769	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1770	return
1771}
1772
1773// UpdateJob API operation for Amazon Import/Export Snowball.
1774//
1775// While a job's JobState value is New, you can update some of the information
1776// associated with a job. Once the job changes to a different job state, usually
1777// within 60 minutes of the job being created, this action is no longer available.
1778//
1779// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1780// with awserr.Error's Code and Message methods to get detailed information about
1781// the error.
1782//
1783// See the AWS API reference guide for Amazon Import/Export Snowball's
1784// API operation UpdateJob for usage and error information.
1785//
1786// Returned Error Codes:
1787//   * ErrCodeInvalidResourceException "InvalidResourceException"
1788//   The specified resource can't be found. Check the information you provided
1789//   in your last request, and try again.
1790//
1791//   * ErrCodeInvalidJobStateException "InvalidJobStateException"
1792//   The action can't be performed because the job's current state doesn't allow
1793//   that action to be performed.
1794//
1795//   * ErrCodeKMSRequestFailedException "KMSRequestFailedException"
1796//   The provided AWS Key Management Service key lacks the permissions to perform
1797//   the specified CreateJob or UpdateJob action.
1798//
1799//   * ErrCodeInvalidInputCombinationException "InvalidInputCombinationException"
1800//   Job or cluster creation failed. One ore more inputs were invalid. Confirm
1801//   that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
1802//   and try again.
1803//
1804//   * ErrCodeClusterLimitExceededException "ClusterLimitExceededException"
1805//   Job creation failed. Currently, clusters support five nodes. If you have
1806//   less than five nodes for your cluster and you have more nodes to create for
1807//   this cluster, try again and create jobs until your cluster has exactly five
1808//   notes.
1809//
1810//   * ErrCodeEc2RequestFailedException "Ec2RequestFailedException"
1811//   Your IAM user lacks the necessary Amazon EC2 permissions to perform the attempted
1812//   action.
1813//
1814// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/UpdateJob
1815func (c *Snowball) UpdateJob(input *UpdateJobInput) (*UpdateJobOutput, error) {
1816	req, out := c.UpdateJobRequest(input)
1817	return out, req.Send()
1818}
1819
1820// UpdateJobWithContext is the same as UpdateJob with the addition of
1821// the ability to pass a context and additional request options.
1822//
1823// See UpdateJob for details on how to use this API operation.
1824//
1825// The context must be non-nil and will be used for request cancellation. If
1826// the context is nil a panic will occur. In the future the SDK may create
1827// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1828// for more information on using Contexts.
1829func (c *Snowball) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
1830	req, out := c.UpdateJobRequest(input)
1831	req.SetContext(ctx)
1832	req.ApplyOptions(opts...)
1833	return out, req.Send()
1834}
1835
1836// The address that you want the Snowball or Snowballs associated with a specific
1837// job to be shipped to. Addresses are validated at the time of creation. The
1838// address you provide must be located within the serviceable area of your region.
1839// Although no individual elements of the Address are required, if the address
1840// is invalid or unsupported, then an exception is thrown.
1841type Address struct {
1842	_ struct{} `type:"structure"`
1843
1844	// The unique ID for an address.
1845	AddressId *string `min:"40" type:"string"`
1846
1847	// The city in an address that a Snowball is to be delivered to.
1848	City *string `min:"1" type:"string"`
1849
1850	// The name of the company to receive a Snowball at an address.
1851	Company *string `min:"1" type:"string"`
1852
1853	// The country in an address that a Snowball is to be delivered to.
1854	Country *string `min:"1" type:"string"`
1855
1856	// If the address you are creating is a primary address, then set this option
1857	// to true. This field is not supported in most regions.
1858	IsRestricted *bool `type:"boolean"`
1859
1860	// This field is no longer used and the value is ignored.
1861	Landmark *string `min:"1" type:"string"`
1862
1863	// The name of a person to receive a Snowball at an address.
1864	Name *string `min:"1" type:"string"`
1865
1866	// The phone number associated with an address that a Snowball is to be delivered
1867	// to.
1868	PhoneNumber *string `min:"1" type:"string"`
1869
1870	// The postal code in an address that a Snowball is to be delivered to.
1871	PostalCode *string `min:"1" type:"string"`
1872
1873	// This field is no longer used and the value is ignored.
1874	PrefectureOrDistrict *string `min:"1" type:"string"`
1875
1876	// The state or province in an address that a Snowball is to be delivered to.
1877	StateOrProvince *string `min:"1" type:"string"`
1878
1879	// The first line in a street address that a Snowball is to be delivered to.
1880	Street1 *string `min:"1" type:"string"`
1881
1882	// The second line in a street address that a Snowball is to be delivered to.
1883	Street2 *string `min:"1" type:"string"`
1884
1885	// The third line in a street address that a Snowball is to be delivered to.
1886	Street3 *string `min:"1" type:"string"`
1887}
1888
1889// String returns the string representation
1890func (s Address) String() string {
1891	return awsutil.Prettify(s)
1892}
1893
1894// GoString returns the string representation
1895func (s Address) GoString() string {
1896	return s.String()
1897}
1898
1899// Validate inspects the fields of the type to determine if they are valid.
1900func (s *Address) Validate() error {
1901	invalidParams := request.ErrInvalidParams{Context: "Address"}
1902	if s.AddressId != nil && len(*s.AddressId) < 40 {
1903		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
1904	}
1905	if s.City != nil && len(*s.City) < 1 {
1906		invalidParams.Add(request.NewErrParamMinLen("City", 1))
1907	}
1908	if s.Company != nil && len(*s.Company) < 1 {
1909		invalidParams.Add(request.NewErrParamMinLen("Company", 1))
1910	}
1911	if s.Country != nil && len(*s.Country) < 1 {
1912		invalidParams.Add(request.NewErrParamMinLen("Country", 1))
1913	}
1914	if s.Landmark != nil && len(*s.Landmark) < 1 {
1915		invalidParams.Add(request.NewErrParamMinLen("Landmark", 1))
1916	}
1917	if s.Name != nil && len(*s.Name) < 1 {
1918		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
1919	}
1920	if s.PhoneNumber != nil && len(*s.PhoneNumber) < 1 {
1921		invalidParams.Add(request.NewErrParamMinLen("PhoneNumber", 1))
1922	}
1923	if s.PostalCode != nil && len(*s.PostalCode) < 1 {
1924		invalidParams.Add(request.NewErrParamMinLen("PostalCode", 1))
1925	}
1926	if s.PrefectureOrDistrict != nil && len(*s.PrefectureOrDistrict) < 1 {
1927		invalidParams.Add(request.NewErrParamMinLen("PrefectureOrDistrict", 1))
1928	}
1929	if s.StateOrProvince != nil && len(*s.StateOrProvince) < 1 {
1930		invalidParams.Add(request.NewErrParamMinLen("StateOrProvince", 1))
1931	}
1932	if s.Street1 != nil && len(*s.Street1) < 1 {
1933		invalidParams.Add(request.NewErrParamMinLen("Street1", 1))
1934	}
1935	if s.Street2 != nil && len(*s.Street2) < 1 {
1936		invalidParams.Add(request.NewErrParamMinLen("Street2", 1))
1937	}
1938	if s.Street3 != nil && len(*s.Street3) < 1 {
1939		invalidParams.Add(request.NewErrParamMinLen("Street3", 1))
1940	}
1941
1942	if invalidParams.Len() > 0 {
1943		return invalidParams
1944	}
1945	return nil
1946}
1947
1948// SetAddressId sets the AddressId field's value.
1949func (s *Address) SetAddressId(v string) *Address {
1950	s.AddressId = &v
1951	return s
1952}
1953
1954// SetCity sets the City field's value.
1955func (s *Address) SetCity(v string) *Address {
1956	s.City = &v
1957	return s
1958}
1959
1960// SetCompany sets the Company field's value.
1961func (s *Address) SetCompany(v string) *Address {
1962	s.Company = &v
1963	return s
1964}
1965
1966// SetCountry sets the Country field's value.
1967func (s *Address) SetCountry(v string) *Address {
1968	s.Country = &v
1969	return s
1970}
1971
1972// SetIsRestricted sets the IsRestricted field's value.
1973func (s *Address) SetIsRestricted(v bool) *Address {
1974	s.IsRestricted = &v
1975	return s
1976}
1977
1978// SetLandmark sets the Landmark field's value.
1979func (s *Address) SetLandmark(v string) *Address {
1980	s.Landmark = &v
1981	return s
1982}
1983
1984// SetName sets the Name field's value.
1985func (s *Address) SetName(v string) *Address {
1986	s.Name = &v
1987	return s
1988}
1989
1990// SetPhoneNumber sets the PhoneNumber field's value.
1991func (s *Address) SetPhoneNumber(v string) *Address {
1992	s.PhoneNumber = &v
1993	return s
1994}
1995
1996// SetPostalCode sets the PostalCode field's value.
1997func (s *Address) SetPostalCode(v string) *Address {
1998	s.PostalCode = &v
1999	return s
2000}
2001
2002// SetPrefectureOrDistrict sets the PrefectureOrDistrict field's value.
2003func (s *Address) SetPrefectureOrDistrict(v string) *Address {
2004	s.PrefectureOrDistrict = &v
2005	return s
2006}
2007
2008// SetStateOrProvince sets the StateOrProvince field's value.
2009func (s *Address) SetStateOrProvince(v string) *Address {
2010	s.StateOrProvince = &v
2011	return s
2012}
2013
2014// SetStreet1 sets the Street1 field's value.
2015func (s *Address) SetStreet1(v string) *Address {
2016	s.Street1 = &v
2017	return s
2018}
2019
2020// SetStreet2 sets the Street2 field's value.
2021func (s *Address) SetStreet2(v string) *Address {
2022	s.Street2 = &v
2023	return s
2024}
2025
2026// SetStreet3 sets the Street3 field's value.
2027func (s *Address) SetStreet3(v string) *Address {
2028	s.Street3 = &v
2029	return s
2030}
2031
2032type CancelClusterInput struct {
2033	_ struct{} `type:"structure"`
2034
2035	// The 39-character ID for the cluster that you want to cancel, for example
2036	// CID123e4567-e89b-12d3-a456-426655440000.
2037	//
2038	// ClusterId is a required field
2039	ClusterId *string `min:"39" type:"string" required:"true"`
2040}
2041
2042// String returns the string representation
2043func (s CancelClusterInput) String() string {
2044	return awsutil.Prettify(s)
2045}
2046
2047// GoString returns the string representation
2048func (s CancelClusterInput) GoString() string {
2049	return s.String()
2050}
2051
2052// Validate inspects the fields of the type to determine if they are valid.
2053func (s *CancelClusterInput) Validate() error {
2054	invalidParams := request.ErrInvalidParams{Context: "CancelClusterInput"}
2055	if s.ClusterId == nil {
2056		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
2057	}
2058	if s.ClusterId != nil && len(*s.ClusterId) < 39 {
2059		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 39))
2060	}
2061
2062	if invalidParams.Len() > 0 {
2063		return invalidParams
2064	}
2065	return nil
2066}
2067
2068// SetClusterId sets the ClusterId field's value.
2069func (s *CancelClusterInput) SetClusterId(v string) *CancelClusterInput {
2070	s.ClusterId = &v
2071	return s
2072}
2073
2074type CancelClusterOutput struct {
2075	_ struct{} `type:"structure"`
2076}
2077
2078// String returns the string representation
2079func (s CancelClusterOutput) String() string {
2080	return awsutil.Prettify(s)
2081}
2082
2083// GoString returns the string representation
2084func (s CancelClusterOutput) GoString() string {
2085	return s.String()
2086}
2087
2088type CancelJobInput struct {
2089	_ struct{} `type:"structure"`
2090
2091	// The 39-character job ID for the job that you want to cancel, for example
2092	// JID123e4567-e89b-12d3-a456-426655440000.
2093	//
2094	// JobId is a required field
2095	JobId *string `min:"39" type:"string" required:"true"`
2096}
2097
2098// String returns the string representation
2099func (s CancelJobInput) String() string {
2100	return awsutil.Prettify(s)
2101}
2102
2103// GoString returns the string representation
2104func (s CancelJobInput) GoString() string {
2105	return s.String()
2106}
2107
2108// Validate inspects the fields of the type to determine if they are valid.
2109func (s *CancelJobInput) Validate() error {
2110	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
2111	if s.JobId == nil {
2112		invalidParams.Add(request.NewErrParamRequired("JobId"))
2113	}
2114	if s.JobId != nil && len(*s.JobId) < 39 {
2115		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
2116	}
2117
2118	if invalidParams.Len() > 0 {
2119		return invalidParams
2120	}
2121	return nil
2122}
2123
2124// SetJobId sets the JobId field's value.
2125func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
2126	s.JobId = &v
2127	return s
2128}
2129
2130type CancelJobOutput struct {
2131	_ struct{} `type:"structure"`
2132}
2133
2134// String returns the string representation
2135func (s CancelJobOutput) String() string {
2136	return awsutil.Prettify(s)
2137}
2138
2139// GoString returns the string representation
2140func (s CancelJobOutput) GoString() string {
2141	return s.String()
2142}
2143
2144// Contains a cluster's state, a cluster's ID, and other important information.
2145type ClusterListEntry struct {
2146	_ struct{} `type:"structure"`
2147
2148	// The 39-character ID for the cluster that you want to list, for example CID123e4567-e89b-12d3-a456-426655440000.
2149	ClusterId *string `min:"1" type:"string"`
2150
2151	// The current state of this cluster. For information about the state of a specific
2152	// node, see JobListEntry$JobState.
2153	ClusterState *string `type:"string" enum:"ClusterState"`
2154
2155	// The creation date for this cluster.
2156	CreationDate *time.Time `type:"timestamp"`
2157
2158	// Defines an optional description of the cluster, for example Environmental
2159	// Data Cluster-01.
2160	Description *string `min:"1" type:"string"`
2161}
2162
2163// String returns the string representation
2164func (s ClusterListEntry) String() string {
2165	return awsutil.Prettify(s)
2166}
2167
2168// GoString returns the string representation
2169func (s ClusterListEntry) GoString() string {
2170	return s.String()
2171}
2172
2173// SetClusterId sets the ClusterId field's value.
2174func (s *ClusterListEntry) SetClusterId(v string) *ClusterListEntry {
2175	s.ClusterId = &v
2176	return s
2177}
2178
2179// SetClusterState sets the ClusterState field's value.
2180func (s *ClusterListEntry) SetClusterState(v string) *ClusterListEntry {
2181	s.ClusterState = &v
2182	return s
2183}
2184
2185// SetCreationDate sets the CreationDate field's value.
2186func (s *ClusterListEntry) SetCreationDate(v time.Time) *ClusterListEntry {
2187	s.CreationDate = &v
2188	return s
2189}
2190
2191// SetDescription sets the Description field's value.
2192func (s *ClusterListEntry) SetDescription(v string) *ClusterListEntry {
2193	s.Description = &v
2194	return s
2195}
2196
2197// Contains metadata about a specific cluster.
2198type ClusterMetadata struct {
2199	_ struct{} `type:"structure"`
2200
2201	// The automatically generated ID for a specific address.
2202	AddressId *string `min:"40" type:"string"`
2203
2204	// The automatically generated ID for a cluster.
2205	ClusterId *string `min:"1" type:"string"`
2206
2207	// The current status of the cluster.
2208	ClusterState *string `type:"string" enum:"ClusterState"`
2209
2210	// The creation date for this cluster.
2211	CreationDate *time.Time `type:"timestamp"`
2212
2213	// The optional description of the cluster.
2214	Description *string `min:"1" type:"string"`
2215
2216	// The ID of the address that you want a cluster shipped to, after it will be
2217	// shipped to its primary address. This field is not supported in most regions.
2218	ForwardingAddressId *string `min:"40" type:"string"`
2219
2220	// The type of job for this cluster. Currently, the only job type supported
2221	// for clusters is LOCAL_USE.
2222	JobType *string `type:"string" enum:"JobType"`
2223
2224	// The KmsKeyARN Amazon Resource Name (ARN) associated with this cluster. This
2225	// ARN was created using the CreateKey (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
2226	// API action in AWS Key Management Service (AWS KMS).
2227	KmsKeyARN *string `type:"string"`
2228
2229	// The Amazon Simple Notification Service (Amazon SNS) notification settings
2230	// for this cluster.
2231	Notification *Notification `type:"structure"`
2232
2233	// The arrays of JobResource objects that can include updated S3Resource objects
2234	// or LambdaResource objects.
2235	Resources *JobResource `type:"structure"`
2236
2237	// The role ARN associated with this cluster. This ARN was created using the
2238	// CreateRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)
2239	// API action in AWS Identity and Access Management (IAM).
2240	RoleARN *string `type:"string"`
2241
2242	// The shipping speed for each node in this cluster. This speed doesn't dictate
2243	// how soon you'll get each Snowball Edge device, rather it represents how quickly
2244	// each device moves to its destination while in transit. Regional shipping
2245	// speeds are as follows:
2246	//
2247	//    * In Australia, you have access to express shipping. Typically, devices
2248	//    shipped express are delivered in about a day.
2249	//
2250	//    * In the European Union (EU), you have access to express shipping. Typically,
2251	//    Snowball Edges shipped express are delivered in about a day. In addition,
2252	//    most countries in the EU have access to standard shipping, which typically
2253	//    takes less than a week, one way.
2254	//
2255	//    * In India, Snowball Edges are delivered in one to seven days.
2256	//
2257	//    * In the US, you have access to one-day shipping and two-day shipping.
2258	ShippingOption *string `type:"string" enum:"ShippingOption"`
2259
2260	// The type of AWS Snowball device to use for this cluster. Currently, the only
2261	// supported device type for cluster jobs is EDGE.
2262	SnowballType *string `type:"string" enum:"Type"`
2263}
2264
2265// String returns the string representation
2266func (s ClusterMetadata) String() string {
2267	return awsutil.Prettify(s)
2268}
2269
2270// GoString returns the string representation
2271func (s ClusterMetadata) GoString() string {
2272	return s.String()
2273}
2274
2275// SetAddressId sets the AddressId field's value.
2276func (s *ClusterMetadata) SetAddressId(v string) *ClusterMetadata {
2277	s.AddressId = &v
2278	return s
2279}
2280
2281// SetClusterId sets the ClusterId field's value.
2282func (s *ClusterMetadata) SetClusterId(v string) *ClusterMetadata {
2283	s.ClusterId = &v
2284	return s
2285}
2286
2287// SetClusterState sets the ClusterState field's value.
2288func (s *ClusterMetadata) SetClusterState(v string) *ClusterMetadata {
2289	s.ClusterState = &v
2290	return s
2291}
2292
2293// SetCreationDate sets the CreationDate field's value.
2294func (s *ClusterMetadata) SetCreationDate(v time.Time) *ClusterMetadata {
2295	s.CreationDate = &v
2296	return s
2297}
2298
2299// SetDescription sets the Description field's value.
2300func (s *ClusterMetadata) SetDescription(v string) *ClusterMetadata {
2301	s.Description = &v
2302	return s
2303}
2304
2305// SetForwardingAddressId sets the ForwardingAddressId field's value.
2306func (s *ClusterMetadata) SetForwardingAddressId(v string) *ClusterMetadata {
2307	s.ForwardingAddressId = &v
2308	return s
2309}
2310
2311// SetJobType sets the JobType field's value.
2312func (s *ClusterMetadata) SetJobType(v string) *ClusterMetadata {
2313	s.JobType = &v
2314	return s
2315}
2316
2317// SetKmsKeyARN sets the KmsKeyARN field's value.
2318func (s *ClusterMetadata) SetKmsKeyARN(v string) *ClusterMetadata {
2319	s.KmsKeyARN = &v
2320	return s
2321}
2322
2323// SetNotification sets the Notification field's value.
2324func (s *ClusterMetadata) SetNotification(v *Notification) *ClusterMetadata {
2325	s.Notification = v
2326	return s
2327}
2328
2329// SetResources sets the Resources field's value.
2330func (s *ClusterMetadata) SetResources(v *JobResource) *ClusterMetadata {
2331	s.Resources = v
2332	return s
2333}
2334
2335// SetRoleARN sets the RoleARN field's value.
2336func (s *ClusterMetadata) SetRoleARN(v string) *ClusterMetadata {
2337	s.RoleARN = &v
2338	return s
2339}
2340
2341// SetShippingOption sets the ShippingOption field's value.
2342func (s *ClusterMetadata) SetShippingOption(v string) *ClusterMetadata {
2343	s.ShippingOption = &v
2344	return s
2345}
2346
2347// SetSnowballType sets the SnowballType field's value.
2348func (s *ClusterMetadata) SetSnowballType(v string) *ClusterMetadata {
2349	s.SnowballType = &v
2350	return s
2351}
2352
2353// A JSON-formatted object that describes a compatible Amazon Machine Image
2354// (AMI), including the ID and name for a Snowball Edge AMI. This AMI is compatible
2355// with the device's physical hardware requirements, and it should be able to
2356// be run in an SBE1 instance on the device.
2357type CompatibleImage struct {
2358	_ struct{} `type:"structure"`
2359
2360	// The unique identifier for an individual Snowball Edge AMI.
2361	AmiId *string `min:"1" type:"string"`
2362
2363	// The optional name of a compatible image.
2364	Name *string `min:"1" type:"string"`
2365}
2366
2367// String returns the string representation
2368func (s CompatibleImage) String() string {
2369	return awsutil.Prettify(s)
2370}
2371
2372// GoString returns the string representation
2373func (s CompatibleImage) GoString() string {
2374	return s.String()
2375}
2376
2377// SetAmiId sets the AmiId field's value.
2378func (s *CompatibleImage) SetAmiId(v string) *CompatibleImage {
2379	s.AmiId = &v
2380	return s
2381}
2382
2383// SetName sets the Name field's value.
2384func (s *CompatibleImage) SetName(v string) *CompatibleImage {
2385	s.Name = &v
2386	return s
2387}
2388
2389type CreateAddressInput struct {
2390	_ struct{} `type:"structure"`
2391
2392	// The address that you want the Snowball shipped to.
2393	//
2394	// Address is a required field
2395	Address *Address `type:"structure" required:"true"`
2396}
2397
2398// String returns the string representation
2399func (s CreateAddressInput) String() string {
2400	return awsutil.Prettify(s)
2401}
2402
2403// GoString returns the string representation
2404func (s CreateAddressInput) GoString() string {
2405	return s.String()
2406}
2407
2408// Validate inspects the fields of the type to determine if they are valid.
2409func (s *CreateAddressInput) Validate() error {
2410	invalidParams := request.ErrInvalidParams{Context: "CreateAddressInput"}
2411	if s.Address == nil {
2412		invalidParams.Add(request.NewErrParamRequired("Address"))
2413	}
2414	if s.Address != nil {
2415		if err := s.Address.Validate(); err != nil {
2416			invalidParams.AddNested("Address", err.(request.ErrInvalidParams))
2417		}
2418	}
2419
2420	if invalidParams.Len() > 0 {
2421		return invalidParams
2422	}
2423	return nil
2424}
2425
2426// SetAddress sets the Address field's value.
2427func (s *CreateAddressInput) SetAddress(v *Address) *CreateAddressInput {
2428	s.Address = v
2429	return s
2430}
2431
2432type CreateAddressOutput struct {
2433	_ struct{} `type:"structure"`
2434
2435	// The automatically generated ID for a specific address. You'll use this ID
2436	// when you create a job to specify which address you want the Snowball for
2437	// that job shipped to.
2438	AddressId *string `min:"1" type:"string"`
2439}
2440
2441// String returns the string representation
2442func (s CreateAddressOutput) String() string {
2443	return awsutil.Prettify(s)
2444}
2445
2446// GoString returns the string representation
2447func (s CreateAddressOutput) GoString() string {
2448	return s.String()
2449}
2450
2451// SetAddressId sets the AddressId field's value.
2452func (s *CreateAddressOutput) SetAddressId(v string) *CreateAddressOutput {
2453	s.AddressId = &v
2454	return s
2455}
2456
2457type CreateClusterInput struct {
2458	_ struct{} `type:"structure"`
2459
2460	// The ID for the address that you want the cluster shipped to.
2461	//
2462	// AddressId is a required field
2463	AddressId *string `min:"40" type:"string" required:"true"`
2464
2465	// An optional description of this specific cluster, for example Environmental
2466	// Data Cluster-01.
2467	Description *string `min:"1" type:"string"`
2468
2469	// The forwarding address ID for a cluster. This field is not supported in most
2470	// regions.
2471	ForwardingAddressId *string `min:"40" type:"string"`
2472
2473	// The type of job for this cluster. Currently, the only job type supported
2474	// for clusters is LOCAL_USE.
2475	//
2476	// JobType is a required field
2477	JobType *string `type:"string" required:"true" enum:"JobType"`
2478
2479	// The KmsKeyARN value that you want to associate with this cluster. KmsKeyARN
2480	// values are created by using the CreateKey (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
2481	// API action in AWS Key Management Service (AWS KMS).
2482	KmsKeyARN *string `type:"string"`
2483
2484	// The Amazon Simple Notification Service (Amazon SNS) notification settings
2485	// for this cluster.
2486	Notification *Notification `type:"structure"`
2487
2488	// The resources associated with the cluster job. These resources include Amazon
2489	// S3 buckets and optional AWS Lambda functions written in the Python language.
2490	//
2491	// Resources is a required field
2492	Resources *JobResource `type:"structure" required:"true"`
2493
2494	// The RoleARN that you want to associate with this cluster. RoleArn values
2495	// are created by using the CreateRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)
2496	// API action in AWS Identity and Access Management (IAM).
2497	//
2498	// RoleARN is a required field
2499	RoleARN *string `type:"string" required:"true"`
2500
2501	// The shipping speed for each node in this cluster. This speed doesn't dictate
2502	// how soon you'll get each Snowball Edge device, rather it represents how quickly
2503	// each device moves to its destination while in transit. Regional shipping
2504	// speeds are as follows:
2505	//
2506	//    * In Australia, you have access to express shipping. Typically, devices
2507	//    shipped express are delivered in about a day.
2508	//
2509	//    * In the European Union (EU), you have access to express shipping. Typically,
2510	//    Snowball Edges shipped express are delivered in about a day. In addition,
2511	//    most countries in the EU have access to standard shipping, which typically
2512	//    takes less than a week, one way.
2513	//
2514	//    * In India, Snowball Edges are delivered in one to seven days.
2515	//
2516	//    * In the US, you have access to one-day shipping and two-day shipping.
2517	//
2518	// ShippingOption is a required field
2519	ShippingOption *string `type:"string" required:"true" enum:"ShippingOption"`
2520
2521	// The type of AWS Snowball device to use for this cluster. Currently, the only
2522	// supported device type for cluster jobs is EDGE.
2523	SnowballType *string `type:"string" enum:"Type"`
2524}
2525
2526// String returns the string representation
2527func (s CreateClusterInput) String() string {
2528	return awsutil.Prettify(s)
2529}
2530
2531// GoString returns the string representation
2532func (s CreateClusterInput) GoString() string {
2533	return s.String()
2534}
2535
2536// Validate inspects the fields of the type to determine if they are valid.
2537func (s *CreateClusterInput) Validate() error {
2538	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
2539	if s.AddressId == nil {
2540		invalidParams.Add(request.NewErrParamRequired("AddressId"))
2541	}
2542	if s.AddressId != nil && len(*s.AddressId) < 40 {
2543		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
2544	}
2545	if s.Description != nil && len(*s.Description) < 1 {
2546		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
2547	}
2548	if s.ForwardingAddressId != nil && len(*s.ForwardingAddressId) < 40 {
2549		invalidParams.Add(request.NewErrParamMinLen("ForwardingAddressId", 40))
2550	}
2551	if s.JobType == nil {
2552		invalidParams.Add(request.NewErrParamRequired("JobType"))
2553	}
2554	if s.Resources == nil {
2555		invalidParams.Add(request.NewErrParamRequired("Resources"))
2556	}
2557	if s.RoleARN == nil {
2558		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
2559	}
2560	if s.ShippingOption == nil {
2561		invalidParams.Add(request.NewErrParamRequired("ShippingOption"))
2562	}
2563	if s.Resources != nil {
2564		if err := s.Resources.Validate(); err != nil {
2565			invalidParams.AddNested("Resources", err.(request.ErrInvalidParams))
2566		}
2567	}
2568
2569	if invalidParams.Len() > 0 {
2570		return invalidParams
2571	}
2572	return nil
2573}
2574
2575// SetAddressId sets the AddressId field's value.
2576func (s *CreateClusterInput) SetAddressId(v string) *CreateClusterInput {
2577	s.AddressId = &v
2578	return s
2579}
2580
2581// SetDescription sets the Description field's value.
2582func (s *CreateClusterInput) SetDescription(v string) *CreateClusterInput {
2583	s.Description = &v
2584	return s
2585}
2586
2587// SetForwardingAddressId sets the ForwardingAddressId field's value.
2588func (s *CreateClusterInput) SetForwardingAddressId(v string) *CreateClusterInput {
2589	s.ForwardingAddressId = &v
2590	return s
2591}
2592
2593// SetJobType sets the JobType field's value.
2594func (s *CreateClusterInput) SetJobType(v string) *CreateClusterInput {
2595	s.JobType = &v
2596	return s
2597}
2598
2599// SetKmsKeyARN sets the KmsKeyARN field's value.
2600func (s *CreateClusterInput) SetKmsKeyARN(v string) *CreateClusterInput {
2601	s.KmsKeyARN = &v
2602	return s
2603}
2604
2605// SetNotification sets the Notification field's value.
2606func (s *CreateClusterInput) SetNotification(v *Notification) *CreateClusterInput {
2607	s.Notification = v
2608	return s
2609}
2610
2611// SetResources sets the Resources field's value.
2612func (s *CreateClusterInput) SetResources(v *JobResource) *CreateClusterInput {
2613	s.Resources = v
2614	return s
2615}
2616
2617// SetRoleARN sets the RoleARN field's value.
2618func (s *CreateClusterInput) SetRoleARN(v string) *CreateClusterInput {
2619	s.RoleARN = &v
2620	return s
2621}
2622
2623// SetShippingOption sets the ShippingOption field's value.
2624func (s *CreateClusterInput) SetShippingOption(v string) *CreateClusterInput {
2625	s.ShippingOption = &v
2626	return s
2627}
2628
2629// SetSnowballType sets the SnowballType field's value.
2630func (s *CreateClusterInput) SetSnowballType(v string) *CreateClusterInput {
2631	s.SnowballType = &v
2632	return s
2633}
2634
2635type CreateClusterOutput struct {
2636	_ struct{} `type:"structure"`
2637
2638	// The automatically generated ID for a cluster.
2639	ClusterId *string `min:"39" type:"string"`
2640}
2641
2642// String returns the string representation
2643func (s CreateClusterOutput) String() string {
2644	return awsutil.Prettify(s)
2645}
2646
2647// GoString returns the string representation
2648func (s CreateClusterOutput) GoString() string {
2649	return s.String()
2650}
2651
2652// SetClusterId sets the ClusterId field's value.
2653func (s *CreateClusterOutput) SetClusterId(v string) *CreateClusterOutput {
2654	s.ClusterId = &v
2655	return s
2656}
2657
2658type CreateJobInput struct {
2659	_ struct{} `type:"structure"`
2660
2661	// The ID for the address that you want the Snowball shipped to.
2662	AddressId *string `min:"40" type:"string"`
2663
2664	// The ID of a cluster. If you're creating a job for a node in a cluster, you
2665	// need to provide only this clusterId value. The other job attributes are inherited
2666	// from the cluster.
2667	ClusterId *string `min:"39" type:"string"`
2668
2669	// Defines an optional description of this specific job, for example Important
2670	// Photos 2016-08-11.
2671	Description *string `min:"1" type:"string"`
2672
2673	// The forwarding address ID for a job. This field is not supported in most
2674	// regions.
2675	ForwardingAddressId *string `min:"40" type:"string"`
2676
2677	// Defines the type of job that you're creating.
2678	JobType *string `type:"string" enum:"JobType"`
2679
2680	// The KmsKeyARN that you want to associate with this job. KmsKeyARNs are created
2681	// using the CreateKey (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
2682	// AWS Key Management Service (KMS) API action.
2683	KmsKeyARN *string `type:"string"`
2684
2685	// Defines the Amazon Simple Notification Service (Amazon SNS) notification
2686	// settings for this job.
2687	Notification *Notification `type:"structure"`
2688
2689	// Defines the Amazon S3 buckets associated with this job.
2690	//
2691	// With IMPORT jobs, you specify the bucket or buckets that your transferred
2692	// data will be imported into.
2693	//
2694	// With EXPORT jobs, you specify the bucket or buckets that your transferred
2695	// data will be exported from. Optionally, you can also specify a KeyRange value.
2696	// If you choose to export a range, you define the length of the range by providing
2697	// either an inclusive BeginMarker value, an inclusive EndMarker value, or both.
2698	// Ranges are UTF-8 binary sorted.
2699	Resources *JobResource `type:"structure"`
2700
2701	// The RoleARN that you want to associate with this job. RoleArns are created
2702	// using the CreateRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)
2703	// AWS Identity and Access Management (IAM) API action.
2704	RoleARN *string `type:"string"`
2705
2706	// The shipping speed for this job. This speed doesn't dictate how soon you'll
2707	// get the Snowball, rather it represents how quickly the Snowball moves to
2708	// its destination while in transit. Regional shipping speeds are as follows:
2709	//
2710	//    * In Australia, you have access to express shipping. Typically, Snowballs
2711	//    shipped express are delivered in about a day.
2712	//
2713	//    * In the European Union (EU), you have access to express shipping. Typically,
2714	//    Snowballs shipped express are delivered in about a day. In addition, most
2715	//    countries in the EU have access to standard shipping, which typically
2716	//    takes less than a week, one way.
2717	//
2718	//    * In India, Snowballs are delivered in one to seven days.
2719	//
2720	//    * In the US, you have access to one-day shipping and two-day shipping.
2721	ShippingOption *string `type:"string" enum:"ShippingOption"`
2722
2723	// If your job is being created in one of the US regions, you have the option
2724	// of specifying what size Snowball you'd like for this job. In all other regions,
2725	// Snowballs come with 80 TB in storage capacity.
2726	SnowballCapacityPreference *string `type:"string" enum:"Capacity"`
2727
2728	// The type of AWS Snowball device to use for this job. Currently, the only
2729	// supported device type for cluster jobs is EDGE.
2730	SnowballType *string `type:"string" enum:"Type"`
2731}
2732
2733// String returns the string representation
2734func (s CreateJobInput) String() string {
2735	return awsutil.Prettify(s)
2736}
2737
2738// GoString returns the string representation
2739func (s CreateJobInput) GoString() string {
2740	return s.String()
2741}
2742
2743// Validate inspects the fields of the type to determine if they are valid.
2744func (s *CreateJobInput) Validate() error {
2745	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
2746	if s.AddressId != nil && len(*s.AddressId) < 40 {
2747		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
2748	}
2749	if s.ClusterId != nil && len(*s.ClusterId) < 39 {
2750		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 39))
2751	}
2752	if s.Description != nil && len(*s.Description) < 1 {
2753		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
2754	}
2755	if s.ForwardingAddressId != nil && len(*s.ForwardingAddressId) < 40 {
2756		invalidParams.Add(request.NewErrParamMinLen("ForwardingAddressId", 40))
2757	}
2758	if s.Resources != nil {
2759		if err := s.Resources.Validate(); err != nil {
2760			invalidParams.AddNested("Resources", err.(request.ErrInvalidParams))
2761		}
2762	}
2763
2764	if invalidParams.Len() > 0 {
2765		return invalidParams
2766	}
2767	return nil
2768}
2769
2770// SetAddressId sets the AddressId field's value.
2771func (s *CreateJobInput) SetAddressId(v string) *CreateJobInput {
2772	s.AddressId = &v
2773	return s
2774}
2775
2776// SetClusterId sets the ClusterId field's value.
2777func (s *CreateJobInput) SetClusterId(v string) *CreateJobInput {
2778	s.ClusterId = &v
2779	return s
2780}
2781
2782// SetDescription sets the Description field's value.
2783func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
2784	s.Description = &v
2785	return s
2786}
2787
2788// SetForwardingAddressId sets the ForwardingAddressId field's value.
2789func (s *CreateJobInput) SetForwardingAddressId(v string) *CreateJobInput {
2790	s.ForwardingAddressId = &v
2791	return s
2792}
2793
2794// SetJobType sets the JobType field's value.
2795func (s *CreateJobInput) SetJobType(v string) *CreateJobInput {
2796	s.JobType = &v
2797	return s
2798}
2799
2800// SetKmsKeyARN sets the KmsKeyARN field's value.
2801func (s *CreateJobInput) SetKmsKeyARN(v string) *CreateJobInput {
2802	s.KmsKeyARN = &v
2803	return s
2804}
2805
2806// SetNotification sets the Notification field's value.
2807func (s *CreateJobInput) SetNotification(v *Notification) *CreateJobInput {
2808	s.Notification = v
2809	return s
2810}
2811
2812// SetResources sets the Resources field's value.
2813func (s *CreateJobInput) SetResources(v *JobResource) *CreateJobInput {
2814	s.Resources = v
2815	return s
2816}
2817
2818// SetRoleARN sets the RoleARN field's value.
2819func (s *CreateJobInput) SetRoleARN(v string) *CreateJobInput {
2820	s.RoleARN = &v
2821	return s
2822}
2823
2824// SetShippingOption sets the ShippingOption field's value.
2825func (s *CreateJobInput) SetShippingOption(v string) *CreateJobInput {
2826	s.ShippingOption = &v
2827	return s
2828}
2829
2830// SetSnowballCapacityPreference sets the SnowballCapacityPreference field's value.
2831func (s *CreateJobInput) SetSnowballCapacityPreference(v string) *CreateJobInput {
2832	s.SnowballCapacityPreference = &v
2833	return s
2834}
2835
2836// SetSnowballType sets the SnowballType field's value.
2837func (s *CreateJobInput) SetSnowballType(v string) *CreateJobInput {
2838	s.SnowballType = &v
2839	return s
2840}
2841
2842type CreateJobOutput struct {
2843	_ struct{} `type:"structure"`
2844
2845	// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000.
2846	JobId *string `min:"39" type:"string"`
2847}
2848
2849// String returns the string representation
2850func (s CreateJobOutput) String() string {
2851	return awsutil.Prettify(s)
2852}
2853
2854// GoString returns the string representation
2855func (s CreateJobOutput) GoString() string {
2856	return s.String()
2857}
2858
2859// SetJobId sets the JobId field's value.
2860func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
2861	s.JobId = &v
2862	return s
2863}
2864
2865// Defines the real-time status of a Snowball's data transfer while the device
2866// is at AWS. This data is only available while a job has a JobState value of
2867// InProgress, for both import and export jobs.
2868type DataTransfer struct {
2869	_ struct{} `type:"structure"`
2870
2871	// The number of bytes transferred between a Snowball and Amazon S3.
2872	BytesTransferred *int64 `type:"long"`
2873
2874	// The number of objects transferred between a Snowball and Amazon S3.
2875	ObjectsTransferred *int64 `type:"long"`
2876
2877	// The total bytes of data for a transfer between a Snowball and Amazon S3.
2878	// This value is set to 0 (zero) until all the keys that will be transferred
2879	// have been listed.
2880	TotalBytes *int64 `type:"long"`
2881
2882	// The total number of objects for a transfer between a Snowball and Amazon
2883	// S3. This value is set to 0 (zero) until all the keys that will be transferred
2884	// have been listed.
2885	TotalObjects *int64 `type:"long"`
2886}
2887
2888// String returns the string representation
2889func (s DataTransfer) String() string {
2890	return awsutil.Prettify(s)
2891}
2892
2893// GoString returns the string representation
2894func (s DataTransfer) GoString() string {
2895	return s.String()
2896}
2897
2898// SetBytesTransferred sets the BytesTransferred field's value.
2899func (s *DataTransfer) SetBytesTransferred(v int64) *DataTransfer {
2900	s.BytesTransferred = &v
2901	return s
2902}
2903
2904// SetObjectsTransferred sets the ObjectsTransferred field's value.
2905func (s *DataTransfer) SetObjectsTransferred(v int64) *DataTransfer {
2906	s.ObjectsTransferred = &v
2907	return s
2908}
2909
2910// SetTotalBytes sets the TotalBytes field's value.
2911func (s *DataTransfer) SetTotalBytes(v int64) *DataTransfer {
2912	s.TotalBytes = &v
2913	return s
2914}
2915
2916// SetTotalObjects sets the TotalObjects field's value.
2917func (s *DataTransfer) SetTotalObjects(v int64) *DataTransfer {
2918	s.TotalObjects = &v
2919	return s
2920}
2921
2922type DescribeAddressInput struct {
2923	_ struct{} `type:"structure"`
2924
2925	// The automatically generated ID for a specific address.
2926	//
2927	// AddressId is a required field
2928	AddressId *string `min:"40" type:"string" required:"true"`
2929}
2930
2931// String returns the string representation
2932func (s DescribeAddressInput) String() string {
2933	return awsutil.Prettify(s)
2934}
2935
2936// GoString returns the string representation
2937func (s DescribeAddressInput) GoString() string {
2938	return s.String()
2939}
2940
2941// Validate inspects the fields of the type to determine if they are valid.
2942func (s *DescribeAddressInput) Validate() error {
2943	invalidParams := request.ErrInvalidParams{Context: "DescribeAddressInput"}
2944	if s.AddressId == nil {
2945		invalidParams.Add(request.NewErrParamRequired("AddressId"))
2946	}
2947	if s.AddressId != nil && len(*s.AddressId) < 40 {
2948		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
2949	}
2950
2951	if invalidParams.Len() > 0 {
2952		return invalidParams
2953	}
2954	return nil
2955}
2956
2957// SetAddressId sets the AddressId field's value.
2958func (s *DescribeAddressInput) SetAddressId(v string) *DescribeAddressInput {
2959	s.AddressId = &v
2960	return s
2961}
2962
2963type DescribeAddressOutput struct {
2964	_ struct{} `type:"structure"`
2965
2966	// The address that you want the Snowball or Snowballs associated with a specific
2967	// job to be shipped to.
2968	Address *Address `type:"structure"`
2969}
2970
2971// String returns the string representation
2972func (s DescribeAddressOutput) String() string {
2973	return awsutil.Prettify(s)
2974}
2975
2976// GoString returns the string representation
2977func (s DescribeAddressOutput) GoString() string {
2978	return s.String()
2979}
2980
2981// SetAddress sets the Address field's value.
2982func (s *DescribeAddressOutput) SetAddress(v *Address) *DescribeAddressOutput {
2983	s.Address = v
2984	return s
2985}
2986
2987type DescribeAddressesInput struct {
2988	_ struct{} `type:"structure"`
2989
2990	// The number of ADDRESS objects to return.
2991	MaxResults *int64 `type:"integer"`
2992
2993	// HTTP requests are stateless. To identify what object comes "next" in the
2994	// list of ADDRESS objects, you have the option of specifying a value for NextToken
2995	// as the starting point for your list of returned addresses.
2996	NextToken *string `min:"1" type:"string"`
2997}
2998
2999// String returns the string representation
3000func (s DescribeAddressesInput) String() string {
3001	return awsutil.Prettify(s)
3002}
3003
3004// GoString returns the string representation
3005func (s DescribeAddressesInput) GoString() string {
3006	return s.String()
3007}
3008
3009// Validate inspects the fields of the type to determine if they are valid.
3010func (s *DescribeAddressesInput) Validate() error {
3011	invalidParams := request.ErrInvalidParams{Context: "DescribeAddressesInput"}
3012	if s.NextToken != nil && len(*s.NextToken) < 1 {
3013		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3014	}
3015
3016	if invalidParams.Len() > 0 {
3017		return invalidParams
3018	}
3019	return nil
3020}
3021
3022// SetMaxResults sets the MaxResults field's value.
3023func (s *DescribeAddressesInput) SetMaxResults(v int64) *DescribeAddressesInput {
3024	s.MaxResults = &v
3025	return s
3026}
3027
3028// SetNextToken sets the NextToken field's value.
3029func (s *DescribeAddressesInput) SetNextToken(v string) *DescribeAddressesInput {
3030	s.NextToken = &v
3031	return s
3032}
3033
3034type DescribeAddressesOutput struct {
3035	_ struct{} `type:"structure"`
3036
3037	// The Snowball shipping addresses that were created for this account.
3038	Addresses []*Address `type:"list"`
3039
3040	// HTTP requests are stateless. If you use the automatically generated NextToken
3041	// value in your next DescribeAddresses call, your list of returned addresses
3042	// will start from this point in the array.
3043	NextToken *string `min:"1" type:"string"`
3044}
3045
3046// String returns the string representation
3047func (s DescribeAddressesOutput) String() string {
3048	return awsutil.Prettify(s)
3049}
3050
3051// GoString returns the string representation
3052func (s DescribeAddressesOutput) GoString() string {
3053	return s.String()
3054}
3055
3056// SetAddresses sets the Addresses field's value.
3057func (s *DescribeAddressesOutput) SetAddresses(v []*Address) *DescribeAddressesOutput {
3058	s.Addresses = v
3059	return s
3060}
3061
3062// SetNextToken sets the NextToken field's value.
3063func (s *DescribeAddressesOutput) SetNextToken(v string) *DescribeAddressesOutput {
3064	s.NextToken = &v
3065	return s
3066}
3067
3068type DescribeClusterInput struct {
3069	_ struct{} `type:"structure"`
3070
3071	// The automatically generated ID for a cluster.
3072	//
3073	// ClusterId is a required field
3074	ClusterId *string `min:"39" type:"string" required:"true"`
3075}
3076
3077// String returns the string representation
3078func (s DescribeClusterInput) String() string {
3079	return awsutil.Prettify(s)
3080}
3081
3082// GoString returns the string representation
3083func (s DescribeClusterInput) GoString() string {
3084	return s.String()
3085}
3086
3087// Validate inspects the fields of the type to determine if they are valid.
3088func (s *DescribeClusterInput) Validate() error {
3089	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
3090	if s.ClusterId == nil {
3091		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
3092	}
3093	if s.ClusterId != nil && len(*s.ClusterId) < 39 {
3094		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 39))
3095	}
3096
3097	if invalidParams.Len() > 0 {
3098		return invalidParams
3099	}
3100	return nil
3101}
3102
3103// SetClusterId sets the ClusterId field's value.
3104func (s *DescribeClusterInput) SetClusterId(v string) *DescribeClusterInput {
3105	s.ClusterId = &v
3106	return s
3107}
3108
3109type DescribeClusterOutput struct {
3110	_ struct{} `type:"structure"`
3111
3112	// Information about a specific cluster, including shipping information, cluster
3113	// status, and other important metadata.
3114	ClusterMetadata *ClusterMetadata `type:"structure"`
3115}
3116
3117// String returns the string representation
3118func (s DescribeClusterOutput) String() string {
3119	return awsutil.Prettify(s)
3120}
3121
3122// GoString returns the string representation
3123func (s DescribeClusterOutput) GoString() string {
3124	return s.String()
3125}
3126
3127// SetClusterMetadata sets the ClusterMetadata field's value.
3128func (s *DescribeClusterOutput) SetClusterMetadata(v *ClusterMetadata) *DescribeClusterOutput {
3129	s.ClusterMetadata = v
3130	return s
3131}
3132
3133type DescribeJobInput struct {
3134	_ struct{} `type:"structure"`
3135
3136	// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000.
3137	//
3138	// JobId is a required field
3139	JobId *string `min:"39" type:"string" required:"true"`
3140}
3141
3142// String returns the string representation
3143func (s DescribeJobInput) String() string {
3144	return awsutil.Prettify(s)
3145}
3146
3147// GoString returns the string representation
3148func (s DescribeJobInput) GoString() string {
3149	return s.String()
3150}
3151
3152// Validate inspects the fields of the type to determine if they are valid.
3153func (s *DescribeJobInput) Validate() error {
3154	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
3155	if s.JobId == nil {
3156		invalidParams.Add(request.NewErrParamRequired("JobId"))
3157	}
3158	if s.JobId != nil && len(*s.JobId) < 39 {
3159		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
3160	}
3161
3162	if invalidParams.Len() > 0 {
3163		return invalidParams
3164	}
3165	return nil
3166}
3167
3168// SetJobId sets the JobId field's value.
3169func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
3170	s.JobId = &v
3171	return s
3172}
3173
3174type DescribeJobOutput struct {
3175	_ struct{} `type:"structure"`
3176
3177	// Information about a specific job, including shipping information, job status,
3178	// and other important metadata.
3179	JobMetadata *JobMetadata `type:"structure"`
3180
3181	// Information about a specific job part (in the case of an export job), including
3182	// shipping information, job status, and other important metadata.
3183	SubJobMetadata []*JobMetadata `type:"list"`
3184}
3185
3186// String returns the string representation
3187func (s DescribeJobOutput) String() string {
3188	return awsutil.Prettify(s)
3189}
3190
3191// GoString returns the string representation
3192func (s DescribeJobOutput) GoString() string {
3193	return s.String()
3194}
3195
3196// SetJobMetadata sets the JobMetadata field's value.
3197func (s *DescribeJobOutput) SetJobMetadata(v *JobMetadata) *DescribeJobOutput {
3198	s.JobMetadata = v
3199	return s
3200}
3201
3202// SetSubJobMetadata sets the SubJobMetadata field's value.
3203func (s *DescribeJobOutput) SetSubJobMetadata(v []*JobMetadata) *DescribeJobOutput {
3204	s.SubJobMetadata = v
3205	return s
3206}
3207
3208// A JSON-formatted object that contains the IDs for an Amazon Machine Image
3209// (AMI), including the Amazon EC2 AMI ID and the Snowball Edge AMI ID. Each
3210// AMI has these two IDs to simplify identifying the AMI in both the AWS Cloud
3211// and on the device.
3212type Ec2AmiResource struct {
3213	_ struct{} `type:"structure"`
3214
3215	// The ID of the AMI in Amazon EC2.
3216	//
3217	// AmiId is a required field
3218	AmiId *string `min:"12" type:"string" required:"true"`
3219
3220	// The ID of the AMI on the Snowball Edge device.
3221	SnowballAmiId *string `min:"1" type:"string"`
3222}
3223
3224// String returns the string representation
3225func (s Ec2AmiResource) String() string {
3226	return awsutil.Prettify(s)
3227}
3228
3229// GoString returns the string representation
3230func (s Ec2AmiResource) GoString() string {
3231	return s.String()
3232}
3233
3234// Validate inspects the fields of the type to determine if they are valid.
3235func (s *Ec2AmiResource) Validate() error {
3236	invalidParams := request.ErrInvalidParams{Context: "Ec2AmiResource"}
3237	if s.AmiId == nil {
3238		invalidParams.Add(request.NewErrParamRequired("AmiId"))
3239	}
3240	if s.AmiId != nil && len(*s.AmiId) < 12 {
3241		invalidParams.Add(request.NewErrParamMinLen("AmiId", 12))
3242	}
3243	if s.SnowballAmiId != nil && len(*s.SnowballAmiId) < 1 {
3244		invalidParams.Add(request.NewErrParamMinLen("SnowballAmiId", 1))
3245	}
3246
3247	if invalidParams.Len() > 0 {
3248		return invalidParams
3249	}
3250	return nil
3251}
3252
3253// SetAmiId sets the AmiId field's value.
3254func (s *Ec2AmiResource) SetAmiId(v string) *Ec2AmiResource {
3255	s.AmiId = &v
3256	return s
3257}
3258
3259// SetSnowballAmiId sets the SnowballAmiId field's value.
3260func (s *Ec2AmiResource) SetSnowballAmiId(v string) *Ec2AmiResource {
3261	s.SnowballAmiId = &v
3262	return s
3263}
3264
3265// The container for the EventTriggerDefinition$EventResourceARN.
3266type EventTriggerDefinition struct {
3267	_ struct{} `type:"structure"`
3268
3269	// The Amazon Resource Name (ARN) for any local Amazon S3 resource that is an
3270	// AWS Lambda function's event trigger associated with this job.
3271	EventResourceARN *string `type:"string"`
3272}
3273
3274// String returns the string representation
3275func (s EventTriggerDefinition) String() string {
3276	return awsutil.Prettify(s)
3277}
3278
3279// GoString returns the string representation
3280func (s EventTriggerDefinition) GoString() string {
3281	return s.String()
3282}
3283
3284// SetEventResourceARN sets the EventResourceARN field's value.
3285func (s *EventTriggerDefinition) SetEventResourceARN(v string) *EventTriggerDefinition {
3286	s.EventResourceARN = &v
3287	return s
3288}
3289
3290type GetJobManifestInput struct {
3291	_ struct{} `type:"structure"`
3292
3293	// The ID for a job that you want to get the manifest file for, for example
3294	// JID123e4567-e89b-12d3-a456-426655440000.
3295	//
3296	// JobId is a required field
3297	JobId *string `min:"39" type:"string" required:"true"`
3298}
3299
3300// String returns the string representation
3301func (s GetJobManifestInput) String() string {
3302	return awsutil.Prettify(s)
3303}
3304
3305// GoString returns the string representation
3306func (s GetJobManifestInput) GoString() string {
3307	return s.String()
3308}
3309
3310// Validate inspects the fields of the type to determine if they are valid.
3311func (s *GetJobManifestInput) Validate() error {
3312	invalidParams := request.ErrInvalidParams{Context: "GetJobManifestInput"}
3313	if s.JobId == nil {
3314		invalidParams.Add(request.NewErrParamRequired("JobId"))
3315	}
3316	if s.JobId != nil && len(*s.JobId) < 39 {
3317		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
3318	}
3319
3320	if invalidParams.Len() > 0 {
3321		return invalidParams
3322	}
3323	return nil
3324}
3325
3326// SetJobId sets the JobId field's value.
3327func (s *GetJobManifestInput) SetJobId(v string) *GetJobManifestInput {
3328	s.JobId = &v
3329	return s
3330}
3331
3332type GetJobManifestOutput struct {
3333	_ struct{} `type:"structure"`
3334
3335	// The Amazon S3 presigned URL for the manifest file associated with the specified
3336	// JobId value.
3337	ManifestURI *string `min:"1" type:"string"`
3338}
3339
3340// String returns the string representation
3341func (s GetJobManifestOutput) String() string {
3342	return awsutil.Prettify(s)
3343}
3344
3345// GoString returns the string representation
3346func (s GetJobManifestOutput) GoString() string {
3347	return s.String()
3348}
3349
3350// SetManifestURI sets the ManifestURI field's value.
3351func (s *GetJobManifestOutput) SetManifestURI(v string) *GetJobManifestOutput {
3352	s.ManifestURI = &v
3353	return s
3354}
3355
3356type GetJobUnlockCodeInput struct {
3357	_ struct{} `type:"structure"`
3358
3359	// The ID for the job that you want to get the UnlockCode value for, for example
3360	// JID123e4567-e89b-12d3-a456-426655440000.
3361	//
3362	// JobId is a required field
3363	JobId *string `min:"39" type:"string" required:"true"`
3364}
3365
3366// String returns the string representation
3367func (s GetJobUnlockCodeInput) String() string {
3368	return awsutil.Prettify(s)
3369}
3370
3371// GoString returns the string representation
3372func (s GetJobUnlockCodeInput) GoString() string {
3373	return s.String()
3374}
3375
3376// Validate inspects the fields of the type to determine if they are valid.
3377func (s *GetJobUnlockCodeInput) Validate() error {
3378	invalidParams := request.ErrInvalidParams{Context: "GetJobUnlockCodeInput"}
3379	if s.JobId == nil {
3380		invalidParams.Add(request.NewErrParamRequired("JobId"))
3381	}
3382	if s.JobId != nil && len(*s.JobId) < 39 {
3383		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
3384	}
3385
3386	if invalidParams.Len() > 0 {
3387		return invalidParams
3388	}
3389	return nil
3390}
3391
3392// SetJobId sets the JobId field's value.
3393func (s *GetJobUnlockCodeInput) SetJobId(v string) *GetJobUnlockCodeInput {
3394	s.JobId = &v
3395	return s
3396}
3397
3398type GetJobUnlockCodeOutput struct {
3399	_ struct{} `type:"structure"`
3400
3401	// The UnlockCode value for the specified job. The UnlockCode value can be accessed
3402	// for up to 90 days after the job has been created.
3403	UnlockCode *string `min:"1" type:"string"`
3404}
3405
3406// String returns the string representation
3407func (s GetJobUnlockCodeOutput) String() string {
3408	return awsutil.Prettify(s)
3409}
3410
3411// GoString returns the string representation
3412func (s GetJobUnlockCodeOutput) GoString() string {
3413	return s.String()
3414}
3415
3416// SetUnlockCode sets the UnlockCode field's value.
3417func (s *GetJobUnlockCodeOutput) SetUnlockCode(v string) *GetJobUnlockCodeOutput {
3418	s.UnlockCode = &v
3419	return s
3420}
3421
3422type GetSnowballUsageInput struct {
3423	_ struct{} `type:"structure"`
3424}
3425
3426// String returns the string representation
3427func (s GetSnowballUsageInput) String() string {
3428	return awsutil.Prettify(s)
3429}
3430
3431// GoString returns the string representation
3432func (s GetSnowballUsageInput) GoString() string {
3433	return s.String()
3434}
3435
3436type GetSnowballUsageOutput struct {
3437	_ struct{} `type:"structure"`
3438
3439	// The service limit for number of Snowballs this account can have at once.
3440	// The default service limit is 1 (one).
3441	SnowballLimit *int64 `type:"integer"`
3442
3443	// The number of Snowballs that this account is currently using.
3444	SnowballsInUse *int64 `type:"integer"`
3445}
3446
3447// String returns the string representation
3448func (s GetSnowballUsageOutput) String() string {
3449	return awsutil.Prettify(s)
3450}
3451
3452// GoString returns the string representation
3453func (s GetSnowballUsageOutput) GoString() string {
3454	return s.String()
3455}
3456
3457// SetSnowballLimit sets the SnowballLimit field's value.
3458func (s *GetSnowballUsageOutput) SetSnowballLimit(v int64) *GetSnowballUsageOutput {
3459	s.SnowballLimit = &v
3460	return s
3461}
3462
3463// SetSnowballsInUse sets the SnowballsInUse field's value.
3464func (s *GetSnowballUsageOutput) SetSnowballsInUse(v int64) *GetSnowballUsageOutput {
3465	s.SnowballsInUse = &v
3466	return s
3467}
3468
3469type GetSoftwareUpdatesInput struct {
3470	_ struct{} `type:"structure"`
3471
3472	// The ID for a job that you want to get the software update file for, for example
3473	// JID123e4567-e89b-12d3-a456-426655440000.
3474	//
3475	// JobId is a required field
3476	JobId *string `min:"39" type:"string" required:"true"`
3477}
3478
3479// String returns the string representation
3480func (s GetSoftwareUpdatesInput) String() string {
3481	return awsutil.Prettify(s)
3482}
3483
3484// GoString returns the string representation
3485func (s GetSoftwareUpdatesInput) GoString() string {
3486	return s.String()
3487}
3488
3489// Validate inspects the fields of the type to determine if they are valid.
3490func (s *GetSoftwareUpdatesInput) Validate() error {
3491	invalidParams := request.ErrInvalidParams{Context: "GetSoftwareUpdatesInput"}
3492	if s.JobId == nil {
3493		invalidParams.Add(request.NewErrParamRequired("JobId"))
3494	}
3495	if s.JobId != nil && len(*s.JobId) < 39 {
3496		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
3497	}
3498
3499	if invalidParams.Len() > 0 {
3500		return invalidParams
3501	}
3502	return nil
3503}
3504
3505// SetJobId sets the JobId field's value.
3506func (s *GetSoftwareUpdatesInput) SetJobId(v string) *GetSoftwareUpdatesInput {
3507	s.JobId = &v
3508	return s
3509}
3510
3511type GetSoftwareUpdatesOutput struct {
3512	_ struct{} `type:"structure"`
3513
3514	// The Amazon S3 presigned URL for the update file associated with the specified
3515	// JobId value. The software update will be available for 2 days after this
3516	// request is made. To access an update after the 2 days have passed, you'll
3517	// have to make another call to GetSoftwareUpdates.
3518	UpdatesURI *string `min:"1" type:"string"`
3519}
3520
3521// String returns the string representation
3522func (s GetSoftwareUpdatesOutput) String() string {
3523	return awsutil.Prettify(s)
3524}
3525
3526// GoString returns the string representation
3527func (s GetSoftwareUpdatesOutput) GoString() string {
3528	return s.String()
3529}
3530
3531// SetUpdatesURI sets the UpdatesURI field's value.
3532func (s *GetSoftwareUpdatesOutput) SetUpdatesURI(v string) *GetSoftwareUpdatesOutput {
3533	s.UpdatesURI = &v
3534	return s
3535}
3536
3537// Each JobListEntry object contains a job's state, a job's ID, and a value
3538// that indicates whether the job is a job part, in the case of an export job.
3539type JobListEntry struct {
3540	_ struct{} `type:"structure"`
3541
3542	// The creation date for this job.
3543	CreationDate *time.Time `type:"timestamp"`
3544
3545	// The optional description of this specific job, for example Important Photos
3546	// 2016-08-11.
3547	Description *string `min:"1" type:"string"`
3548
3549	// A value that indicates that this job is a master job. A master job represents
3550	// a successful request to create an export job. Master jobs aren't associated
3551	// with any Snowballs. Instead, each master job will have at least one job part,
3552	// and each job part is associated with a Snowball. It might take some time
3553	// before the job parts associated with a particular master job are listed,
3554	// because they are created after the master job is created.
3555	IsMaster *bool `type:"boolean"`
3556
3557	// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000.
3558	JobId *string `min:"1" type:"string"`
3559
3560	// The current state of this job.
3561	JobState *string `type:"string" enum:"JobState"`
3562
3563	// The type of job.
3564	JobType *string `type:"string" enum:"JobType"`
3565
3566	// The type of device used with this job.
3567	SnowballType *string `type:"string" enum:"Type"`
3568}
3569
3570// String returns the string representation
3571func (s JobListEntry) String() string {
3572	return awsutil.Prettify(s)
3573}
3574
3575// GoString returns the string representation
3576func (s JobListEntry) GoString() string {
3577	return s.String()
3578}
3579
3580// SetCreationDate sets the CreationDate field's value.
3581func (s *JobListEntry) SetCreationDate(v time.Time) *JobListEntry {
3582	s.CreationDate = &v
3583	return s
3584}
3585
3586// SetDescription sets the Description field's value.
3587func (s *JobListEntry) SetDescription(v string) *JobListEntry {
3588	s.Description = &v
3589	return s
3590}
3591
3592// SetIsMaster sets the IsMaster field's value.
3593func (s *JobListEntry) SetIsMaster(v bool) *JobListEntry {
3594	s.IsMaster = &v
3595	return s
3596}
3597
3598// SetJobId sets the JobId field's value.
3599func (s *JobListEntry) SetJobId(v string) *JobListEntry {
3600	s.JobId = &v
3601	return s
3602}
3603
3604// SetJobState sets the JobState field's value.
3605func (s *JobListEntry) SetJobState(v string) *JobListEntry {
3606	s.JobState = &v
3607	return s
3608}
3609
3610// SetJobType sets the JobType field's value.
3611func (s *JobListEntry) SetJobType(v string) *JobListEntry {
3612	s.JobType = &v
3613	return s
3614}
3615
3616// SetSnowballType sets the SnowballType field's value.
3617func (s *JobListEntry) SetSnowballType(v string) *JobListEntry {
3618	s.SnowballType = &v
3619	return s
3620}
3621
3622// Contains job logs. Whenever Snowball is used to import data into or export
3623// data out of Amazon S3, you'll have the option of downloading a PDF job report.
3624// Job logs are returned as a part of the response syntax of the DescribeJob
3625// action in the JobMetadata data type. The job logs can be accessed for up
3626// to 60 minutes after this request has been made. To access any of the job
3627// logs after 60 minutes have passed, you'll have to make another call to the
3628// DescribeJob action.
3629//
3630// For import jobs, the PDF job report becomes available at the end of the import
3631// process. For export jobs, your job report typically becomes available while
3632// the Snowball for your job part is being delivered to you.
3633//
3634// The job report provides you insight into the state of your Amazon S3 data
3635// transfer. The report includes details about your job or job part for your
3636// records.
3637//
3638// For deeper visibility into the status of your transferred objects, you can
3639// look at the two associated logs: a success log and a failure log. The logs
3640// are saved in comma-separated value (CSV) format, and the name of each log
3641// includes the ID of the job or job part that the log describes.
3642type JobLogs struct {
3643	_ struct{} `type:"structure"`
3644
3645	// A link to an Amazon S3 presigned URL where the job completion report is located.
3646	JobCompletionReportURI *string `min:"1" type:"string"`
3647
3648	// A link to an Amazon S3 presigned URL where the job failure log is located.
3649	JobFailureLogURI *string `min:"1" type:"string"`
3650
3651	// A link to an Amazon S3 presigned URL where the job success log is located.
3652	JobSuccessLogURI *string `min:"1" type:"string"`
3653}
3654
3655// String returns the string representation
3656func (s JobLogs) String() string {
3657	return awsutil.Prettify(s)
3658}
3659
3660// GoString returns the string representation
3661func (s JobLogs) GoString() string {
3662	return s.String()
3663}
3664
3665// SetJobCompletionReportURI sets the JobCompletionReportURI field's value.
3666func (s *JobLogs) SetJobCompletionReportURI(v string) *JobLogs {
3667	s.JobCompletionReportURI = &v
3668	return s
3669}
3670
3671// SetJobFailureLogURI sets the JobFailureLogURI field's value.
3672func (s *JobLogs) SetJobFailureLogURI(v string) *JobLogs {
3673	s.JobFailureLogURI = &v
3674	return s
3675}
3676
3677// SetJobSuccessLogURI sets the JobSuccessLogURI field's value.
3678func (s *JobLogs) SetJobSuccessLogURI(v string) *JobLogs {
3679	s.JobSuccessLogURI = &v
3680	return s
3681}
3682
3683// Contains information about a specific job including shipping information,
3684// job status, and other important metadata. This information is returned as
3685// a part of the response syntax of the DescribeJob action.
3686type JobMetadata struct {
3687	_ struct{} `type:"structure"`
3688
3689	// The ID for the address that you want the Snowball shipped to.
3690	AddressId *string `min:"40" type:"string"`
3691
3692	// The 39-character ID for the cluster, for example CID123e4567-e89b-12d3-a456-426655440000.
3693	ClusterId *string `min:"1" type:"string"`
3694
3695	// The creation date for this job.
3696	CreationDate *time.Time `type:"timestamp"`
3697
3698	// A value that defines the real-time status of a Snowball's data transfer while
3699	// the device is at AWS. This data is only available while a job has a JobState
3700	// value of InProgress, for both import and export jobs.
3701	DataTransferProgress *DataTransfer `type:"structure"`
3702
3703	// The description of the job, provided at job creation.
3704	Description *string `min:"1" type:"string"`
3705
3706	// The ID of the address that you want a job shipped to, after it will be shipped
3707	// to its primary address. This field is not supported in most regions.
3708	ForwardingAddressId *string `min:"40" type:"string"`
3709
3710	// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000.
3711	JobId *string `min:"1" type:"string"`
3712
3713	// Links to Amazon S3 presigned URLs for the job report and logs. For import
3714	// jobs, the PDF job report becomes available at the end of the import process.
3715	// For export jobs, your job report typically becomes available while the Snowball
3716	// for your job part is being delivered to you.
3717	JobLogInfo *JobLogs `type:"structure"`
3718
3719	// The current status of the jobs.
3720	JobState *string `type:"string" enum:"JobState"`
3721
3722	// The type of job.
3723	JobType *string `type:"string" enum:"JobType"`
3724
3725	// The Amazon Resource Name (ARN) for the AWS Key Management Service (AWS KMS)
3726	// key associated with this job. This ARN was created using the CreateKey (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
3727	// API action in AWS KMS.
3728	KmsKeyARN *string `type:"string"`
3729
3730	// The Amazon Simple Notification Service (Amazon SNS) notification settings
3731	// associated with a specific job. The Notification object is returned as a
3732	// part of the response syntax of the DescribeJob action in the JobMetadata
3733	// data type.
3734	Notification *Notification `type:"structure"`
3735
3736	// An array of S3Resource objects. Each S3Resource object represents an Amazon
3737	// S3 bucket that your transferred data will be exported from or imported into.
3738	Resources *JobResource `type:"structure"`
3739
3740	// The role ARN associated with this job. This ARN was created using the CreateRole
3741	// (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)
3742	// API action in AWS Identity and Access Management (IAM).
3743	RoleARN *string `type:"string"`
3744
3745	// A job's shipping information, including inbound and outbound tracking numbers
3746	// and shipping speed options.
3747	ShippingDetails *ShippingDetails `type:"structure"`
3748
3749	// The Snowball capacity preference for this job, specified at job creation.
3750	// In US regions, you can choose between 50 TB and 80 TB Snowballs. All other
3751	// regions use 80 TB capacity Snowballs.
3752	SnowballCapacityPreference *string `type:"string" enum:"Capacity"`
3753
3754	// The type of device used with this job.
3755	SnowballType *string `type:"string" enum:"Type"`
3756}
3757
3758// String returns the string representation
3759func (s JobMetadata) String() string {
3760	return awsutil.Prettify(s)
3761}
3762
3763// GoString returns the string representation
3764func (s JobMetadata) GoString() string {
3765	return s.String()
3766}
3767
3768// SetAddressId sets the AddressId field's value.
3769func (s *JobMetadata) SetAddressId(v string) *JobMetadata {
3770	s.AddressId = &v
3771	return s
3772}
3773
3774// SetClusterId sets the ClusterId field's value.
3775func (s *JobMetadata) SetClusterId(v string) *JobMetadata {
3776	s.ClusterId = &v
3777	return s
3778}
3779
3780// SetCreationDate sets the CreationDate field's value.
3781func (s *JobMetadata) SetCreationDate(v time.Time) *JobMetadata {
3782	s.CreationDate = &v
3783	return s
3784}
3785
3786// SetDataTransferProgress sets the DataTransferProgress field's value.
3787func (s *JobMetadata) SetDataTransferProgress(v *DataTransfer) *JobMetadata {
3788	s.DataTransferProgress = v
3789	return s
3790}
3791
3792// SetDescription sets the Description field's value.
3793func (s *JobMetadata) SetDescription(v string) *JobMetadata {
3794	s.Description = &v
3795	return s
3796}
3797
3798// SetForwardingAddressId sets the ForwardingAddressId field's value.
3799func (s *JobMetadata) SetForwardingAddressId(v string) *JobMetadata {
3800	s.ForwardingAddressId = &v
3801	return s
3802}
3803
3804// SetJobId sets the JobId field's value.
3805func (s *JobMetadata) SetJobId(v string) *JobMetadata {
3806	s.JobId = &v
3807	return s
3808}
3809
3810// SetJobLogInfo sets the JobLogInfo field's value.
3811func (s *JobMetadata) SetJobLogInfo(v *JobLogs) *JobMetadata {
3812	s.JobLogInfo = v
3813	return s
3814}
3815
3816// SetJobState sets the JobState field's value.
3817func (s *JobMetadata) SetJobState(v string) *JobMetadata {
3818	s.JobState = &v
3819	return s
3820}
3821
3822// SetJobType sets the JobType field's value.
3823func (s *JobMetadata) SetJobType(v string) *JobMetadata {
3824	s.JobType = &v
3825	return s
3826}
3827
3828// SetKmsKeyARN sets the KmsKeyARN field's value.
3829func (s *JobMetadata) SetKmsKeyARN(v string) *JobMetadata {
3830	s.KmsKeyARN = &v
3831	return s
3832}
3833
3834// SetNotification sets the Notification field's value.
3835func (s *JobMetadata) SetNotification(v *Notification) *JobMetadata {
3836	s.Notification = v
3837	return s
3838}
3839
3840// SetResources sets the Resources field's value.
3841func (s *JobMetadata) SetResources(v *JobResource) *JobMetadata {
3842	s.Resources = v
3843	return s
3844}
3845
3846// SetRoleARN sets the RoleARN field's value.
3847func (s *JobMetadata) SetRoleARN(v string) *JobMetadata {
3848	s.RoleARN = &v
3849	return s
3850}
3851
3852// SetShippingDetails sets the ShippingDetails field's value.
3853func (s *JobMetadata) SetShippingDetails(v *ShippingDetails) *JobMetadata {
3854	s.ShippingDetails = v
3855	return s
3856}
3857
3858// SetSnowballCapacityPreference sets the SnowballCapacityPreference field's value.
3859func (s *JobMetadata) SetSnowballCapacityPreference(v string) *JobMetadata {
3860	s.SnowballCapacityPreference = &v
3861	return s
3862}
3863
3864// SetSnowballType sets the SnowballType field's value.
3865func (s *JobMetadata) SetSnowballType(v string) *JobMetadata {
3866	s.SnowballType = &v
3867	return s
3868}
3869
3870// Contains an array of AWS resource objects. Each object represents an Amazon
3871// S3 bucket, an AWS Lambda function, or an Amazon Machine Image (AMI) based
3872// on Amazon EC2 that is associated with a particular job.
3873type JobResource struct {
3874	_ struct{} `type:"structure"`
3875
3876	// The Amazon Machine Images (AMIs) associated with this job.
3877	Ec2AmiResources []*Ec2AmiResource `type:"list"`
3878
3879	// The Python-language Lambda functions for this job.
3880	LambdaResources []*LambdaResource `type:"list"`
3881
3882	// An array of S3Resource objects.
3883	S3Resources []*S3Resource `type:"list"`
3884}
3885
3886// String returns the string representation
3887func (s JobResource) String() string {
3888	return awsutil.Prettify(s)
3889}
3890
3891// GoString returns the string representation
3892func (s JobResource) GoString() string {
3893	return s.String()
3894}
3895
3896// Validate inspects the fields of the type to determine if they are valid.
3897func (s *JobResource) Validate() error {
3898	invalidParams := request.ErrInvalidParams{Context: "JobResource"}
3899	if s.Ec2AmiResources != nil {
3900		for i, v := range s.Ec2AmiResources {
3901			if v == nil {
3902				continue
3903			}
3904			if err := v.Validate(); err != nil {
3905				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ec2AmiResources", i), err.(request.ErrInvalidParams))
3906			}
3907		}
3908	}
3909	if s.S3Resources != nil {
3910		for i, v := range s.S3Resources {
3911			if v == nil {
3912				continue
3913			}
3914			if err := v.Validate(); err != nil {
3915				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "S3Resources", i), err.(request.ErrInvalidParams))
3916			}
3917		}
3918	}
3919
3920	if invalidParams.Len() > 0 {
3921		return invalidParams
3922	}
3923	return nil
3924}
3925
3926// SetEc2AmiResources sets the Ec2AmiResources field's value.
3927func (s *JobResource) SetEc2AmiResources(v []*Ec2AmiResource) *JobResource {
3928	s.Ec2AmiResources = v
3929	return s
3930}
3931
3932// SetLambdaResources sets the LambdaResources field's value.
3933func (s *JobResource) SetLambdaResources(v []*LambdaResource) *JobResource {
3934	s.LambdaResources = v
3935	return s
3936}
3937
3938// SetS3Resources sets the S3Resources field's value.
3939func (s *JobResource) SetS3Resources(v []*S3Resource) *JobResource {
3940	s.S3Resources = v
3941	return s
3942}
3943
3944// Contains a key range. For export jobs, a S3Resource object can have an optional
3945// KeyRange value. The length of the range is defined at job creation, and has
3946// either an inclusive BeginMarker, an inclusive EndMarker, or both. Ranges
3947// are UTF-8 binary sorted.
3948type KeyRange struct {
3949	_ struct{} `type:"structure"`
3950
3951	// The key that starts an optional key range for an export job. Ranges are inclusive
3952	// and UTF-8 binary sorted.
3953	BeginMarker *string `min:"1" type:"string"`
3954
3955	// The key that ends an optional key range for an export job. Ranges are inclusive
3956	// and UTF-8 binary sorted.
3957	EndMarker *string `min:"1" type:"string"`
3958}
3959
3960// String returns the string representation
3961func (s KeyRange) String() string {
3962	return awsutil.Prettify(s)
3963}
3964
3965// GoString returns the string representation
3966func (s KeyRange) GoString() string {
3967	return s.String()
3968}
3969
3970// Validate inspects the fields of the type to determine if they are valid.
3971func (s *KeyRange) Validate() error {
3972	invalidParams := request.ErrInvalidParams{Context: "KeyRange"}
3973	if s.BeginMarker != nil && len(*s.BeginMarker) < 1 {
3974		invalidParams.Add(request.NewErrParamMinLen("BeginMarker", 1))
3975	}
3976	if s.EndMarker != nil && len(*s.EndMarker) < 1 {
3977		invalidParams.Add(request.NewErrParamMinLen("EndMarker", 1))
3978	}
3979
3980	if invalidParams.Len() > 0 {
3981		return invalidParams
3982	}
3983	return nil
3984}
3985
3986// SetBeginMarker sets the BeginMarker field's value.
3987func (s *KeyRange) SetBeginMarker(v string) *KeyRange {
3988	s.BeginMarker = &v
3989	return s
3990}
3991
3992// SetEndMarker sets the EndMarker field's value.
3993func (s *KeyRange) SetEndMarker(v string) *KeyRange {
3994	s.EndMarker = &v
3995	return s
3996}
3997
3998// Identifies
3999type LambdaResource struct {
4000	_ struct{} `type:"structure"`
4001
4002	// The array of ARNs for S3Resource objects to trigger the LambdaResource objects
4003	// associated with this job.
4004	EventTriggers []*EventTriggerDefinition `type:"list"`
4005
4006	// An Amazon Resource Name (ARN) that represents an AWS Lambda function to be
4007	// triggered by PUT object actions on the associated local Amazon S3 resource.
4008	LambdaArn *string `type:"string"`
4009}
4010
4011// String returns the string representation
4012func (s LambdaResource) String() string {
4013	return awsutil.Prettify(s)
4014}
4015
4016// GoString returns the string representation
4017func (s LambdaResource) GoString() string {
4018	return s.String()
4019}
4020
4021// SetEventTriggers sets the EventTriggers field's value.
4022func (s *LambdaResource) SetEventTriggers(v []*EventTriggerDefinition) *LambdaResource {
4023	s.EventTriggers = v
4024	return s
4025}
4026
4027// SetLambdaArn sets the LambdaArn field's value.
4028func (s *LambdaResource) SetLambdaArn(v string) *LambdaResource {
4029	s.LambdaArn = &v
4030	return s
4031}
4032
4033type ListClusterJobsInput struct {
4034	_ struct{} `type:"structure"`
4035
4036	// The 39-character ID for the cluster that you want to list, for example CID123e4567-e89b-12d3-a456-426655440000.
4037	//
4038	// ClusterId is a required field
4039	ClusterId *string `min:"39" type:"string" required:"true"`
4040
4041	// The number of JobListEntry objects to return.
4042	MaxResults *int64 `type:"integer"`
4043
4044	// HTTP requests are stateless. To identify what object comes "next" in the
4045	// list of JobListEntry objects, you have the option of specifying NextToken
4046	// as the starting point for your returned list.
4047	NextToken *string `min:"1" type:"string"`
4048}
4049
4050// String returns the string representation
4051func (s ListClusterJobsInput) String() string {
4052	return awsutil.Prettify(s)
4053}
4054
4055// GoString returns the string representation
4056func (s ListClusterJobsInput) GoString() string {
4057	return s.String()
4058}
4059
4060// Validate inspects the fields of the type to determine if they are valid.
4061func (s *ListClusterJobsInput) Validate() error {
4062	invalidParams := request.ErrInvalidParams{Context: "ListClusterJobsInput"}
4063	if s.ClusterId == nil {
4064		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
4065	}
4066	if s.ClusterId != nil && len(*s.ClusterId) < 39 {
4067		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 39))
4068	}
4069	if s.NextToken != nil && len(*s.NextToken) < 1 {
4070		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4071	}
4072
4073	if invalidParams.Len() > 0 {
4074		return invalidParams
4075	}
4076	return nil
4077}
4078
4079// SetClusterId sets the ClusterId field's value.
4080func (s *ListClusterJobsInput) SetClusterId(v string) *ListClusterJobsInput {
4081	s.ClusterId = &v
4082	return s
4083}
4084
4085// SetMaxResults sets the MaxResults field's value.
4086func (s *ListClusterJobsInput) SetMaxResults(v int64) *ListClusterJobsInput {
4087	s.MaxResults = &v
4088	return s
4089}
4090
4091// SetNextToken sets the NextToken field's value.
4092func (s *ListClusterJobsInput) SetNextToken(v string) *ListClusterJobsInput {
4093	s.NextToken = &v
4094	return s
4095}
4096
4097type ListClusterJobsOutput struct {
4098	_ struct{} `type:"structure"`
4099
4100	// Each JobListEntry object contains a job's state, a job's ID, and a value
4101	// that indicates whether the job is a job part, in the case of export jobs.
4102	JobListEntries []*JobListEntry `type:"list"`
4103
4104	// HTTP requests are stateless. If you use the automatically generated NextToken
4105	// value in your next ListClusterJobsResult call, your list of returned jobs
4106	// will start from this point in the array.
4107	NextToken *string `min:"1" type:"string"`
4108}
4109
4110// String returns the string representation
4111func (s ListClusterJobsOutput) String() string {
4112	return awsutil.Prettify(s)
4113}
4114
4115// GoString returns the string representation
4116func (s ListClusterJobsOutput) GoString() string {
4117	return s.String()
4118}
4119
4120// SetJobListEntries sets the JobListEntries field's value.
4121func (s *ListClusterJobsOutput) SetJobListEntries(v []*JobListEntry) *ListClusterJobsOutput {
4122	s.JobListEntries = v
4123	return s
4124}
4125
4126// SetNextToken sets the NextToken field's value.
4127func (s *ListClusterJobsOutput) SetNextToken(v string) *ListClusterJobsOutput {
4128	s.NextToken = &v
4129	return s
4130}
4131
4132type ListClustersInput struct {
4133	_ struct{} `type:"structure"`
4134
4135	// The number of ClusterListEntry objects to return.
4136	MaxResults *int64 `type:"integer"`
4137
4138	// HTTP requests are stateless. To identify what object comes "next" in the
4139	// list of ClusterListEntry objects, you have the option of specifying NextToken
4140	// as the starting point for your returned list.
4141	NextToken *string `min:"1" type:"string"`
4142}
4143
4144// String returns the string representation
4145func (s ListClustersInput) String() string {
4146	return awsutil.Prettify(s)
4147}
4148
4149// GoString returns the string representation
4150func (s ListClustersInput) GoString() string {
4151	return s.String()
4152}
4153
4154// Validate inspects the fields of the type to determine if they are valid.
4155func (s *ListClustersInput) Validate() error {
4156	invalidParams := request.ErrInvalidParams{Context: "ListClustersInput"}
4157	if s.NextToken != nil && len(*s.NextToken) < 1 {
4158		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4159	}
4160
4161	if invalidParams.Len() > 0 {
4162		return invalidParams
4163	}
4164	return nil
4165}
4166
4167// SetMaxResults sets the MaxResults field's value.
4168func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
4169	s.MaxResults = &v
4170	return s
4171}
4172
4173// SetNextToken sets the NextToken field's value.
4174func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
4175	s.NextToken = &v
4176	return s
4177}
4178
4179type ListClustersOutput struct {
4180	_ struct{} `type:"structure"`
4181
4182	// Each ClusterListEntry object contains a cluster's state, a cluster's ID,
4183	// and other important status information.
4184	ClusterListEntries []*ClusterListEntry `type:"list"`
4185
4186	// HTTP requests are stateless. If you use the automatically generated NextToken
4187	// value in your next ClusterListEntry call, your list of returned clusters
4188	// will start from this point in the array.
4189	NextToken *string `min:"1" type:"string"`
4190}
4191
4192// String returns the string representation
4193func (s ListClustersOutput) String() string {
4194	return awsutil.Prettify(s)
4195}
4196
4197// GoString returns the string representation
4198func (s ListClustersOutput) GoString() string {
4199	return s.String()
4200}
4201
4202// SetClusterListEntries sets the ClusterListEntries field's value.
4203func (s *ListClustersOutput) SetClusterListEntries(v []*ClusterListEntry) *ListClustersOutput {
4204	s.ClusterListEntries = v
4205	return s
4206}
4207
4208// SetNextToken sets the NextToken field's value.
4209func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
4210	s.NextToken = &v
4211	return s
4212}
4213
4214type ListCompatibleImagesInput struct {
4215	_ struct{} `type:"structure"`
4216
4217	// The maximum number of results for the list of compatible images. Currently,
4218	// a Snowball Edge device can store 10 AMIs.
4219	MaxResults *int64 `type:"integer"`
4220
4221	// HTTP requests are stateless. To identify what object comes "next" in the
4222	// list of compatible images, you can specify a value for NextToken as the starting
4223	// point for your list of returned images.
4224	NextToken *string `min:"1" type:"string"`
4225}
4226
4227// String returns the string representation
4228func (s ListCompatibleImagesInput) String() string {
4229	return awsutil.Prettify(s)
4230}
4231
4232// GoString returns the string representation
4233func (s ListCompatibleImagesInput) GoString() string {
4234	return s.String()
4235}
4236
4237// Validate inspects the fields of the type to determine if they are valid.
4238func (s *ListCompatibleImagesInput) Validate() error {
4239	invalidParams := request.ErrInvalidParams{Context: "ListCompatibleImagesInput"}
4240	if s.NextToken != nil && len(*s.NextToken) < 1 {
4241		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4242	}
4243
4244	if invalidParams.Len() > 0 {
4245		return invalidParams
4246	}
4247	return nil
4248}
4249
4250// SetMaxResults sets the MaxResults field's value.
4251func (s *ListCompatibleImagesInput) SetMaxResults(v int64) *ListCompatibleImagesInput {
4252	s.MaxResults = &v
4253	return s
4254}
4255
4256// SetNextToken sets the NextToken field's value.
4257func (s *ListCompatibleImagesInput) SetNextToken(v string) *ListCompatibleImagesInput {
4258	s.NextToken = &v
4259	return s
4260}
4261
4262type ListCompatibleImagesOutput struct {
4263	_ struct{} `type:"structure"`
4264
4265	// A JSON-formatted object that describes a compatible AMI, including the ID
4266	// and name for a Snowball Edge AMI.
4267	CompatibleImages []*CompatibleImage `type:"list"`
4268
4269	// Because HTTP requests are stateless, this is the starting point for your
4270	// next list of returned images.
4271	NextToken *string `min:"1" type:"string"`
4272}
4273
4274// String returns the string representation
4275func (s ListCompatibleImagesOutput) String() string {
4276	return awsutil.Prettify(s)
4277}
4278
4279// GoString returns the string representation
4280func (s ListCompatibleImagesOutput) GoString() string {
4281	return s.String()
4282}
4283
4284// SetCompatibleImages sets the CompatibleImages field's value.
4285func (s *ListCompatibleImagesOutput) SetCompatibleImages(v []*CompatibleImage) *ListCompatibleImagesOutput {
4286	s.CompatibleImages = v
4287	return s
4288}
4289
4290// SetNextToken sets the NextToken field's value.
4291func (s *ListCompatibleImagesOutput) SetNextToken(v string) *ListCompatibleImagesOutput {
4292	s.NextToken = &v
4293	return s
4294}
4295
4296type ListJobsInput struct {
4297	_ struct{} `type:"structure"`
4298
4299	// The number of JobListEntry objects to return.
4300	MaxResults *int64 `type:"integer"`
4301
4302	// HTTP requests are stateless. To identify what object comes "next" in the
4303	// list of JobListEntry objects, you have the option of specifying NextToken
4304	// as the starting point for your returned list.
4305	NextToken *string `min:"1" type:"string"`
4306}
4307
4308// String returns the string representation
4309func (s ListJobsInput) String() string {
4310	return awsutil.Prettify(s)
4311}
4312
4313// GoString returns the string representation
4314func (s ListJobsInput) GoString() string {
4315	return s.String()
4316}
4317
4318// Validate inspects the fields of the type to determine if they are valid.
4319func (s *ListJobsInput) Validate() error {
4320	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
4321	if s.NextToken != nil && len(*s.NextToken) < 1 {
4322		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4323	}
4324
4325	if invalidParams.Len() > 0 {
4326		return invalidParams
4327	}
4328	return nil
4329}
4330
4331// SetMaxResults sets the MaxResults field's value.
4332func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
4333	s.MaxResults = &v
4334	return s
4335}
4336
4337// SetNextToken sets the NextToken field's value.
4338func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
4339	s.NextToken = &v
4340	return s
4341}
4342
4343type ListJobsOutput struct {
4344	_ struct{} `type:"structure"`
4345
4346	// Each JobListEntry object contains a job's state, a job's ID, and a value
4347	// that indicates whether the job is a job part, in the case of export jobs.
4348	JobListEntries []*JobListEntry `type:"list"`
4349
4350	// HTTP requests are stateless. If you use this automatically generated NextToken
4351	// value in your next ListJobs call, your returned JobListEntry objects will
4352	// start from this point in the array.
4353	NextToken *string `min:"1" type:"string"`
4354}
4355
4356// String returns the string representation
4357func (s ListJobsOutput) String() string {
4358	return awsutil.Prettify(s)
4359}
4360
4361// GoString returns the string representation
4362func (s ListJobsOutput) GoString() string {
4363	return s.String()
4364}
4365
4366// SetJobListEntries sets the JobListEntries field's value.
4367func (s *ListJobsOutput) SetJobListEntries(v []*JobListEntry) *ListJobsOutput {
4368	s.JobListEntries = v
4369	return s
4370}
4371
4372// SetNextToken sets the NextToken field's value.
4373func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
4374	s.NextToken = &v
4375	return s
4376}
4377
4378// The Amazon Simple Notification Service (Amazon SNS) notification settings
4379// associated with a specific job. The Notification object is returned as a
4380// part of the response syntax of the DescribeJob action in the JobMetadata
4381// data type.
4382//
4383// When the notification settings are defined during job creation, you can choose
4384// to notify based on a specific set of job states using the JobStatesToNotify
4385// array of strings, or you can specify that you want to have Amazon SNS notifications
4386// sent out for all job states with NotifyAll set to true.
4387type Notification struct {
4388	_ struct{} `type:"structure"`
4389
4390	// The list of job states that will trigger a notification for this job.
4391	JobStatesToNotify []*string `type:"list"`
4392
4393	// Any change in job state will trigger a notification for this job.
4394	NotifyAll *bool `type:"boolean"`
4395
4396	// The new SNS TopicArn that you want to associate with this job. You can create
4397	// Amazon Resource Names (ARNs) for topics by using the CreateTopic (https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)
4398	// Amazon SNS API action.
4399	//
4400	// You can subscribe email addresses to an Amazon SNS topic through the AWS
4401	// Management Console, or by using the Subscribe (https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)
4402	// AWS Simple Notification Service (SNS) API action.
4403	SnsTopicARN *string `type:"string"`
4404}
4405
4406// String returns the string representation
4407func (s Notification) String() string {
4408	return awsutil.Prettify(s)
4409}
4410
4411// GoString returns the string representation
4412func (s Notification) GoString() string {
4413	return s.String()
4414}
4415
4416// SetJobStatesToNotify sets the JobStatesToNotify field's value.
4417func (s *Notification) SetJobStatesToNotify(v []*string) *Notification {
4418	s.JobStatesToNotify = v
4419	return s
4420}
4421
4422// SetNotifyAll sets the NotifyAll field's value.
4423func (s *Notification) SetNotifyAll(v bool) *Notification {
4424	s.NotifyAll = &v
4425	return s
4426}
4427
4428// SetSnsTopicARN sets the SnsTopicARN field's value.
4429func (s *Notification) SetSnsTopicARN(v string) *Notification {
4430	s.SnsTopicARN = &v
4431	return s
4432}
4433
4434// Each S3Resource object represents an Amazon S3 bucket that your transferred
4435// data will be exported from or imported into. For export jobs, this object
4436// can have an optional KeyRange value. The length of the range is defined at
4437// job creation, and has either an inclusive BeginMarker, an inclusive EndMarker,
4438// or both. Ranges are UTF-8 binary sorted.
4439type S3Resource struct {
4440	_ struct{} `type:"structure"`
4441
4442	// The Amazon Resource Name (ARN) of an Amazon S3 bucket.
4443	BucketArn *string `type:"string"`
4444
4445	// For export jobs, you can provide an optional KeyRange within a specific Amazon
4446	// S3 bucket. The length of the range is defined at job creation, and has either
4447	// an inclusive BeginMarker, an inclusive EndMarker, or both. Ranges are UTF-8
4448	// binary sorted.
4449	KeyRange *KeyRange `type:"structure"`
4450}
4451
4452// String returns the string representation
4453func (s S3Resource) String() string {
4454	return awsutil.Prettify(s)
4455}
4456
4457// GoString returns the string representation
4458func (s S3Resource) GoString() string {
4459	return s.String()
4460}
4461
4462// Validate inspects the fields of the type to determine if they are valid.
4463func (s *S3Resource) Validate() error {
4464	invalidParams := request.ErrInvalidParams{Context: "S3Resource"}
4465	if s.KeyRange != nil {
4466		if err := s.KeyRange.Validate(); err != nil {
4467			invalidParams.AddNested("KeyRange", err.(request.ErrInvalidParams))
4468		}
4469	}
4470
4471	if invalidParams.Len() > 0 {
4472		return invalidParams
4473	}
4474	return nil
4475}
4476
4477// SetBucketArn sets the BucketArn field's value.
4478func (s *S3Resource) SetBucketArn(v string) *S3Resource {
4479	s.BucketArn = &v
4480	return s
4481}
4482
4483// SetKeyRange sets the KeyRange field's value.
4484func (s *S3Resource) SetKeyRange(v *KeyRange) *S3Resource {
4485	s.KeyRange = v
4486	return s
4487}
4488
4489// The Status and TrackingNumber information for an inbound or outbound shipment.
4490type Shipment struct {
4491	_ struct{} `type:"structure"`
4492
4493	// Status information for a shipment.
4494	Status *string `min:"1" type:"string"`
4495
4496	// The tracking number for this job. Using this tracking number with your region's
4497	// carrier's website, you can track a Snowball as the carrier transports it.
4498	//
4499	// For India, the carrier is Amazon Logistics. For all other regions, UPS is
4500	// the carrier.
4501	TrackingNumber *string `min:"1" type:"string"`
4502}
4503
4504// String returns the string representation
4505func (s Shipment) String() string {
4506	return awsutil.Prettify(s)
4507}
4508
4509// GoString returns the string representation
4510func (s Shipment) GoString() string {
4511	return s.String()
4512}
4513
4514// SetStatus sets the Status field's value.
4515func (s *Shipment) SetStatus(v string) *Shipment {
4516	s.Status = &v
4517	return s
4518}
4519
4520// SetTrackingNumber sets the TrackingNumber field's value.
4521func (s *Shipment) SetTrackingNumber(v string) *Shipment {
4522	s.TrackingNumber = &v
4523	return s
4524}
4525
4526// A job's shipping information, including inbound and outbound tracking numbers
4527// and shipping speed options.
4528type ShippingDetails struct {
4529	_ struct{} `type:"structure"`
4530
4531	// The Status and TrackingNumber values for a Snowball being returned to AWS
4532	// for a particular job.
4533	InboundShipment *Shipment `type:"structure"`
4534
4535	// The Status and TrackingNumber values for a Snowball being delivered to the
4536	// address that you specified for a particular job.
4537	OutboundShipment *Shipment `type:"structure"`
4538
4539	// The shipping speed for a particular job. This speed doesn't dictate how soon
4540	// you'll get the Snowball from the job's creation date. This speed represents
4541	// how quickly it moves to its destination while in transit. Regional shipping
4542	// speeds are as follows:
4543	//
4544	//    * In Australia, you have access to express shipping. Typically, Snowballs
4545	//    shipped express are delivered in about a day.
4546	//
4547	//    * In the European Union (EU), you have access to express shipping. Typically,
4548	//    Snowballs shipped express are delivered in about a day. In addition, most
4549	//    countries in the EU have access to standard shipping, which typically
4550	//    takes less than a week, one way.
4551	//
4552	//    * In India, Snowballs are delivered in one to seven days.
4553	//
4554	//    * In the United States of America (US), you have access to one-day shipping
4555	//    and two-day shipping.
4556	ShippingOption *string `type:"string" enum:"ShippingOption"`
4557}
4558
4559// String returns the string representation
4560func (s ShippingDetails) String() string {
4561	return awsutil.Prettify(s)
4562}
4563
4564// GoString returns the string representation
4565func (s ShippingDetails) GoString() string {
4566	return s.String()
4567}
4568
4569// SetInboundShipment sets the InboundShipment field's value.
4570func (s *ShippingDetails) SetInboundShipment(v *Shipment) *ShippingDetails {
4571	s.InboundShipment = v
4572	return s
4573}
4574
4575// SetOutboundShipment sets the OutboundShipment field's value.
4576func (s *ShippingDetails) SetOutboundShipment(v *Shipment) *ShippingDetails {
4577	s.OutboundShipment = v
4578	return s
4579}
4580
4581// SetShippingOption sets the ShippingOption field's value.
4582func (s *ShippingDetails) SetShippingOption(v string) *ShippingDetails {
4583	s.ShippingOption = &v
4584	return s
4585}
4586
4587type UpdateClusterInput struct {
4588	_ struct{} `type:"structure"`
4589
4590	// The ID of the updated Address object.
4591	AddressId *string `min:"40" type:"string"`
4592
4593	// The cluster ID of the cluster that you want to update, for example CID123e4567-e89b-12d3-a456-426655440000.
4594	//
4595	// ClusterId is a required field
4596	ClusterId *string `min:"39" type:"string" required:"true"`
4597
4598	// The updated description of this cluster.
4599	Description *string `min:"1" type:"string"`
4600
4601	// The updated ID for the forwarding address for a cluster. This field is not
4602	// supported in most regions.
4603	ForwardingAddressId *string `min:"40" type:"string"`
4604
4605	// The new or updated Notification object.
4606	Notification *Notification `type:"structure"`
4607
4608	// The updated arrays of JobResource objects that can include updated S3Resource
4609	// objects or LambdaResource objects.
4610	Resources *JobResource `type:"structure"`
4611
4612	// The new role Amazon Resource Name (ARN) that you want to associate with this
4613	// cluster. To create a role ARN, use the CreateRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)
4614	// API action in AWS Identity and Access Management (IAM).
4615	RoleARN *string `type:"string"`
4616
4617	// The updated shipping option value of this cluster's ShippingDetails object.
4618	ShippingOption *string `type:"string" enum:"ShippingOption"`
4619}
4620
4621// String returns the string representation
4622func (s UpdateClusterInput) String() string {
4623	return awsutil.Prettify(s)
4624}
4625
4626// GoString returns the string representation
4627func (s UpdateClusterInput) GoString() string {
4628	return s.String()
4629}
4630
4631// Validate inspects the fields of the type to determine if they are valid.
4632func (s *UpdateClusterInput) Validate() error {
4633	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterInput"}
4634	if s.AddressId != nil && len(*s.AddressId) < 40 {
4635		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
4636	}
4637	if s.ClusterId == nil {
4638		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
4639	}
4640	if s.ClusterId != nil && len(*s.ClusterId) < 39 {
4641		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 39))
4642	}
4643	if s.Description != nil && len(*s.Description) < 1 {
4644		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
4645	}
4646	if s.ForwardingAddressId != nil && len(*s.ForwardingAddressId) < 40 {
4647		invalidParams.Add(request.NewErrParamMinLen("ForwardingAddressId", 40))
4648	}
4649	if s.Resources != nil {
4650		if err := s.Resources.Validate(); err != nil {
4651			invalidParams.AddNested("Resources", err.(request.ErrInvalidParams))
4652		}
4653	}
4654
4655	if invalidParams.Len() > 0 {
4656		return invalidParams
4657	}
4658	return nil
4659}
4660
4661// SetAddressId sets the AddressId field's value.
4662func (s *UpdateClusterInput) SetAddressId(v string) *UpdateClusterInput {
4663	s.AddressId = &v
4664	return s
4665}
4666
4667// SetClusterId sets the ClusterId field's value.
4668func (s *UpdateClusterInput) SetClusterId(v string) *UpdateClusterInput {
4669	s.ClusterId = &v
4670	return s
4671}
4672
4673// SetDescription sets the Description field's value.
4674func (s *UpdateClusterInput) SetDescription(v string) *UpdateClusterInput {
4675	s.Description = &v
4676	return s
4677}
4678
4679// SetForwardingAddressId sets the ForwardingAddressId field's value.
4680func (s *UpdateClusterInput) SetForwardingAddressId(v string) *UpdateClusterInput {
4681	s.ForwardingAddressId = &v
4682	return s
4683}
4684
4685// SetNotification sets the Notification field's value.
4686func (s *UpdateClusterInput) SetNotification(v *Notification) *UpdateClusterInput {
4687	s.Notification = v
4688	return s
4689}
4690
4691// SetResources sets the Resources field's value.
4692func (s *UpdateClusterInput) SetResources(v *JobResource) *UpdateClusterInput {
4693	s.Resources = v
4694	return s
4695}
4696
4697// SetRoleARN sets the RoleARN field's value.
4698func (s *UpdateClusterInput) SetRoleARN(v string) *UpdateClusterInput {
4699	s.RoleARN = &v
4700	return s
4701}
4702
4703// SetShippingOption sets the ShippingOption field's value.
4704func (s *UpdateClusterInput) SetShippingOption(v string) *UpdateClusterInput {
4705	s.ShippingOption = &v
4706	return s
4707}
4708
4709type UpdateClusterOutput struct {
4710	_ struct{} `type:"structure"`
4711}
4712
4713// String returns the string representation
4714func (s UpdateClusterOutput) String() string {
4715	return awsutil.Prettify(s)
4716}
4717
4718// GoString returns the string representation
4719func (s UpdateClusterOutput) GoString() string {
4720	return s.String()
4721}
4722
4723type UpdateJobInput struct {
4724	_ struct{} `type:"structure"`
4725
4726	// The ID of the updated Address object.
4727	AddressId *string `min:"40" type:"string"`
4728
4729	// The updated description of this job's JobMetadata object.
4730	Description *string `min:"1" type:"string"`
4731
4732	// The updated ID for the forwarding address for a job. This field is not supported
4733	// in most regions.
4734	ForwardingAddressId *string `min:"40" type:"string"`
4735
4736	// The job ID of the job that you want to update, for example JID123e4567-e89b-12d3-a456-426655440000.
4737	//
4738	// JobId is a required field
4739	JobId *string `min:"39" type:"string" required:"true"`
4740
4741	// The new or updated Notification object.
4742	Notification *Notification `type:"structure"`
4743
4744	// The updated JobResource object, or the updated JobResource object.
4745	Resources *JobResource `type:"structure"`
4746
4747	// The new role Amazon Resource Name (ARN) that you want to associate with this
4748	// job. To create a role ARN, use the CreateRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)AWS
4749	// Identity and Access Management (IAM) API action.
4750	RoleARN *string `type:"string"`
4751
4752	// The updated shipping option value of this job's ShippingDetails object.
4753	ShippingOption *string `type:"string" enum:"ShippingOption"`
4754
4755	// The updated SnowballCapacityPreference of this job's JobMetadata object.
4756	// The 50 TB Snowballs are only available in the US regions.
4757	SnowballCapacityPreference *string `type:"string" enum:"Capacity"`
4758}
4759
4760// String returns the string representation
4761func (s UpdateJobInput) String() string {
4762	return awsutil.Prettify(s)
4763}
4764
4765// GoString returns the string representation
4766func (s UpdateJobInput) GoString() string {
4767	return s.String()
4768}
4769
4770// Validate inspects the fields of the type to determine if they are valid.
4771func (s *UpdateJobInput) Validate() error {
4772	invalidParams := request.ErrInvalidParams{Context: "UpdateJobInput"}
4773	if s.AddressId != nil && len(*s.AddressId) < 40 {
4774		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
4775	}
4776	if s.Description != nil && len(*s.Description) < 1 {
4777		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
4778	}
4779	if s.ForwardingAddressId != nil && len(*s.ForwardingAddressId) < 40 {
4780		invalidParams.Add(request.NewErrParamMinLen("ForwardingAddressId", 40))
4781	}
4782	if s.JobId == nil {
4783		invalidParams.Add(request.NewErrParamRequired("JobId"))
4784	}
4785	if s.JobId != nil && len(*s.JobId) < 39 {
4786		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
4787	}
4788	if s.Resources != nil {
4789		if err := s.Resources.Validate(); err != nil {
4790			invalidParams.AddNested("Resources", err.(request.ErrInvalidParams))
4791		}
4792	}
4793
4794	if invalidParams.Len() > 0 {
4795		return invalidParams
4796	}
4797	return nil
4798}
4799
4800// SetAddressId sets the AddressId field's value.
4801func (s *UpdateJobInput) SetAddressId(v string) *UpdateJobInput {
4802	s.AddressId = &v
4803	return s
4804}
4805
4806// SetDescription sets the Description field's value.
4807func (s *UpdateJobInput) SetDescription(v string) *UpdateJobInput {
4808	s.Description = &v
4809	return s
4810}
4811
4812// SetForwardingAddressId sets the ForwardingAddressId field's value.
4813func (s *UpdateJobInput) SetForwardingAddressId(v string) *UpdateJobInput {
4814	s.ForwardingAddressId = &v
4815	return s
4816}
4817
4818// SetJobId sets the JobId field's value.
4819func (s *UpdateJobInput) SetJobId(v string) *UpdateJobInput {
4820	s.JobId = &v
4821	return s
4822}
4823
4824// SetNotification sets the Notification field's value.
4825func (s *UpdateJobInput) SetNotification(v *Notification) *UpdateJobInput {
4826	s.Notification = v
4827	return s
4828}
4829
4830// SetResources sets the Resources field's value.
4831func (s *UpdateJobInput) SetResources(v *JobResource) *UpdateJobInput {
4832	s.Resources = v
4833	return s
4834}
4835
4836// SetRoleARN sets the RoleARN field's value.
4837func (s *UpdateJobInput) SetRoleARN(v string) *UpdateJobInput {
4838	s.RoleARN = &v
4839	return s
4840}
4841
4842// SetShippingOption sets the ShippingOption field's value.
4843func (s *UpdateJobInput) SetShippingOption(v string) *UpdateJobInput {
4844	s.ShippingOption = &v
4845	return s
4846}
4847
4848// SetSnowballCapacityPreference sets the SnowballCapacityPreference field's value.
4849func (s *UpdateJobInput) SetSnowballCapacityPreference(v string) *UpdateJobInput {
4850	s.SnowballCapacityPreference = &v
4851	return s
4852}
4853
4854type UpdateJobOutput struct {
4855	_ struct{} `type:"structure"`
4856}
4857
4858// String returns the string representation
4859func (s UpdateJobOutput) String() string {
4860	return awsutil.Prettify(s)
4861}
4862
4863// GoString returns the string representation
4864func (s UpdateJobOutput) GoString() string {
4865	return s.String()
4866}
4867
4868const (
4869	// CapacityT50 is a Capacity enum value
4870	CapacityT50 = "T50"
4871
4872	// CapacityT80 is a Capacity enum value
4873	CapacityT80 = "T80"
4874
4875	// CapacityT100 is a Capacity enum value
4876	CapacityT100 = "T100"
4877
4878	// CapacityT42 is a Capacity enum value
4879	CapacityT42 = "T42"
4880
4881	// CapacityNoPreference is a Capacity enum value
4882	CapacityNoPreference = "NoPreference"
4883)
4884
4885const (
4886	// ClusterStateAwaitingQuorum is a ClusterState enum value
4887	ClusterStateAwaitingQuorum = "AwaitingQuorum"
4888
4889	// ClusterStatePending is a ClusterState enum value
4890	ClusterStatePending = "Pending"
4891
4892	// ClusterStateInUse is a ClusterState enum value
4893	ClusterStateInUse = "InUse"
4894
4895	// ClusterStateComplete is a ClusterState enum value
4896	ClusterStateComplete = "Complete"
4897
4898	// ClusterStateCancelled is a ClusterState enum value
4899	ClusterStateCancelled = "Cancelled"
4900)
4901
4902const (
4903	// JobStateNew is a JobState enum value
4904	JobStateNew = "New"
4905
4906	// JobStatePreparingAppliance is a JobState enum value
4907	JobStatePreparingAppliance = "PreparingAppliance"
4908
4909	// JobStatePreparingShipment is a JobState enum value
4910	JobStatePreparingShipment = "PreparingShipment"
4911
4912	// JobStateInTransitToCustomer is a JobState enum value
4913	JobStateInTransitToCustomer = "InTransitToCustomer"
4914
4915	// JobStateWithCustomer is a JobState enum value
4916	JobStateWithCustomer = "WithCustomer"
4917
4918	// JobStateInTransitToAws is a JobState enum value
4919	JobStateInTransitToAws = "InTransitToAWS"
4920
4921	// JobStateWithAwssortingFacility is a JobState enum value
4922	JobStateWithAwssortingFacility = "WithAWSSortingFacility"
4923
4924	// JobStateWithAws is a JobState enum value
4925	JobStateWithAws = "WithAWS"
4926
4927	// JobStateInProgress is a JobState enum value
4928	JobStateInProgress = "InProgress"
4929
4930	// JobStateComplete is a JobState enum value
4931	JobStateComplete = "Complete"
4932
4933	// JobStateCancelled is a JobState enum value
4934	JobStateCancelled = "Cancelled"
4935
4936	// JobStateListing is a JobState enum value
4937	JobStateListing = "Listing"
4938
4939	// JobStatePending is a JobState enum value
4940	JobStatePending = "Pending"
4941)
4942
4943const (
4944	// JobTypeImport is a JobType enum value
4945	JobTypeImport = "IMPORT"
4946
4947	// JobTypeExport is a JobType enum value
4948	JobTypeExport = "EXPORT"
4949
4950	// JobTypeLocalUse is a JobType enum value
4951	JobTypeLocalUse = "LOCAL_USE"
4952)
4953
4954const (
4955	// ShippingOptionSecondDay is a ShippingOption enum value
4956	ShippingOptionSecondDay = "SECOND_DAY"
4957
4958	// ShippingOptionNextDay is a ShippingOption enum value
4959	ShippingOptionNextDay = "NEXT_DAY"
4960
4961	// ShippingOptionExpress is a ShippingOption enum value
4962	ShippingOptionExpress = "EXPRESS"
4963
4964	// ShippingOptionStandard is a ShippingOption enum value
4965	ShippingOptionStandard = "STANDARD"
4966)
4967
4968const (
4969	// TypeStandard is a Type enum value
4970	TypeStandard = "STANDARD"
4971
4972	// TypeEdge is a Type enum value
4973	TypeEdge = "EDGE"
4974
4975	// TypeEdgeC is a Type enum value
4976	TypeEdgeC = "EDGE_C"
4977
4978	// TypeEdgeCg is a Type enum value
4979	TypeEdgeCg = "EDGE_CG"
4980)
4981