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 Types:
73//   * KMSRequestFailedException
74//   The provided AWS Key Management Service key lacks the permissions to perform
75//   the specified CreateJob or UpdateJob action.
76//
77//   * 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//   * 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 Types:
164//   * InvalidResourceException
165//   The specified resource can't be found. Check the information you provided
166//   in your last request, and try again.
167//
168//   * 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//   * 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 Snow device 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 Types:
255//   * InvalidAddressException
256//   The address provided was invalid. Check the address with your region's carrier,
257//   and try again.
258//
259//   * 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 Types:
342//   * InvalidResourceException
343//   The specified resource can't be found. Check the information you provided
344//   in your last request, and try again.
345//
346//   * KMSRequestFailedException
347//   The provided AWS Key Management Service key lacks the permissions to perform
348//   the specified CreateJob or UpdateJob action.
349//
350//   * InvalidInputCombinationException
351//   Job or cluster creation failed. One or more inputs were invalid. Confirm
352//   that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
353//   and try again.
354//
355//   * 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 a Snow device. If you're creating a job for
428// a node in a cluster, you only need to provide the clusterId value; the other
429// job 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 Types:
439//   * InvalidResourceException
440//   The specified resource can't be found. Check the information you provided
441//   in your last request, and try again.
442//
443//   * KMSRequestFailedException
444//   The provided AWS Key Management Service key lacks the permissions to perform
445//   the specified CreateJob or UpdateJob action.
446//
447//   * InvalidInputCombinationException
448//   Job or cluster creation failed. One or more inputs were invalid. Confirm
449//   that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
450//   and try again.
451//
452//   * 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//   * 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 opCreateReturnShippingLabel = "CreateReturnShippingLabel"
485
486// CreateReturnShippingLabelRequest generates a "aws/request.Request" representing the
487// client's request for the CreateReturnShippingLabel 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 CreateReturnShippingLabel for more information on using the CreateReturnShippingLabel
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 CreateReturnShippingLabelRequest method.
502//    req, resp := client.CreateReturnShippingLabelRequest(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/CreateReturnShippingLabel
510func (c *Snowball) CreateReturnShippingLabelRequest(input *CreateReturnShippingLabelInput) (req *request.Request, output *CreateReturnShippingLabelOutput) {
511	op := &request.Operation{
512		Name:       opCreateReturnShippingLabel,
513		HTTPMethod: "POST",
514		HTTPPath:   "/",
515	}
516
517	if input == nil {
518		input = &CreateReturnShippingLabelInput{}
519	}
520
521	output = &CreateReturnShippingLabelOutput{}
522	req = c.newRequest(op, input, output)
523	return
524}
525
526// CreateReturnShippingLabel API operation for Amazon Import/Export Snowball.
527//
528// Creates a shipping label that will be used to return the Snow device to AWS.
529//
530// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
531// with awserr.Error's Code and Message methods to get detailed information about
532// the error.
533//
534// See the AWS API reference guide for Amazon Import/Export Snowball's
535// API operation CreateReturnShippingLabel for usage and error information.
536//
537// Returned Error Types:
538//   * InvalidResourceException
539//   The specified resource can't be found. Check the information you provided
540//   in your last request, and try again.
541//
542//   * InvalidJobStateException
543//   The action can't be performed because the job's current state doesn't allow
544//   that action to be performed.
545//
546//   * InvalidInputCombinationException
547//   Job or cluster creation failed. One or more inputs were invalid. Confirm
548//   that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
549//   and try again.
550//
551//   * ConflictException
552//   You get this exception when you call CreateReturnShippingLabel more than
553//   once when other requests are not completed.
554//
555//   * ReturnShippingLabelAlreadyExistsException
556//   You get this exception if you call CreateReturnShippingLabel and a valid
557//   return shipping label already exists. In this case, use DescribeReturnShippingLabel
558//   to get the url.
559//
560// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/CreateReturnShippingLabel
561func (c *Snowball) CreateReturnShippingLabel(input *CreateReturnShippingLabelInput) (*CreateReturnShippingLabelOutput, error) {
562	req, out := c.CreateReturnShippingLabelRequest(input)
563	return out, req.Send()
564}
565
566// CreateReturnShippingLabelWithContext is the same as CreateReturnShippingLabel with the addition of
567// the ability to pass a context and additional request options.
568//
569// See CreateReturnShippingLabel for details on how to use this API operation.
570//
571// The context must be non-nil and will be used for request cancellation. If
572// the context is nil a panic will occur. In the future the SDK may create
573// sub-contexts for http.Requests. See https://golang.org/pkg/context/
574// for more information on using Contexts.
575func (c *Snowball) CreateReturnShippingLabelWithContext(ctx aws.Context, input *CreateReturnShippingLabelInput, opts ...request.Option) (*CreateReturnShippingLabelOutput, error) {
576	req, out := c.CreateReturnShippingLabelRequest(input)
577	req.SetContext(ctx)
578	req.ApplyOptions(opts...)
579	return out, req.Send()
580}
581
582const opDescribeAddress = "DescribeAddress"
583
584// DescribeAddressRequest generates a "aws/request.Request" representing the
585// client's request for the DescribeAddress operation. The "output" return
586// value will be populated with the request's response once the request completes
587// successfully.
588//
589// Use "Send" method on the returned Request to send the API call to the service.
590// the "output" return value is not valid until after Send returns without error.
591//
592// See DescribeAddress for more information on using the DescribeAddress
593// API call, and error handling.
594//
595// This method is useful when you want to inject custom logic or configuration
596// into the SDK's request lifecycle. Such as custom headers, or retry logic.
597//
598//
599//    // Example sending a request using the DescribeAddressRequest method.
600//    req, resp := client.DescribeAddressRequest(params)
601//
602//    err := req.Send()
603//    if err == nil { // resp is now filled
604//        fmt.Println(resp)
605//    }
606//
607// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeAddress
608func (c *Snowball) DescribeAddressRequest(input *DescribeAddressInput) (req *request.Request, output *DescribeAddressOutput) {
609	op := &request.Operation{
610		Name:       opDescribeAddress,
611		HTTPMethod: "POST",
612		HTTPPath:   "/",
613	}
614
615	if input == nil {
616		input = &DescribeAddressInput{}
617	}
618
619	output = &DescribeAddressOutput{}
620	req = c.newRequest(op, input, output)
621	return
622}
623
624// DescribeAddress API operation for Amazon Import/Export Snowball.
625//
626// Takes an AddressId and returns specific details about that address in the
627// form of an Address object.
628//
629// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
630// with awserr.Error's Code and Message methods to get detailed information about
631// the error.
632//
633// See the AWS API reference guide for Amazon Import/Export Snowball's
634// API operation DescribeAddress for usage and error information.
635//
636// Returned Error Types:
637//   * InvalidResourceException
638//   The specified resource can't be found. Check the information you provided
639//   in your last request, and try again.
640//
641// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeAddress
642func (c *Snowball) DescribeAddress(input *DescribeAddressInput) (*DescribeAddressOutput, error) {
643	req, out := c.DescribeAddressRequest(input)
644	return out, req.Send()
645}
646
647// DescribeAddressWithContext is the same as DescribeAddress with the addition of
648// the ability to pass a context and additional request options.
649//
650// See DescribeAddress for details on how to use this API operation.
651//
652// The context must be non-nil and will be used for request cancellation. If
653// the context is nil a panic will occur. In the future the SDK may create
654// sub-contexts for http.Requests. See https://golang.org/pkg/context/
655// for more information on using Contexts.
656func (c *Snowball) DescribeAddressWithContext(ctx aws.Context, input *DescribeAddressInput, opts ...request.Option) (*DescribeAddressOutput, error) {
657	req, out := c.DescribeAddressRequest(input)
658	req.SetContext(ctx)
659	req.ApplyOptions(opts...)
660	return out, req.Send()
661}
662
663const opDescribeAddresses = "DescribeAddresses"
664
665// DescribeAddressesRequest generates a "aws/request.Request" representing the
666// client's request for the DescribeAddresses operation. The "output" return
667// value will be populated with the request's response once the request completes
668// successfully.
669//
670// Use "Send" method on the returned Request to send the API call to the service.
671// the "output" return value is not valid until after Send returns without error.
672//
673// See DescribeAddresses for more information on using the DescribeAddresses
674// API call, and error handling.
675//
676// This method is useful when you want to inject custom logic or configuration
677// into the SDK's request lifecycle. Such as custom headers, or retry logic.
678//
679//
680//    // Example sending a request using the DescribeAddressesRequest method.
681//    req, resp := client.DescribeAddressesRequest(params)
682//
683//    err := req.Send()
684//    if err == nil { // resp is now filled
685//        fmt.Println(resp)
686//    }
687//
688// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeAddresses
689func (c *Snowball) DescribeAddressesRequest(input *DescribeAddressesInput) (req *request.Request, output *DescribeAddressesOutput) {
690	op := &request.Operation{
691		Name:       opDescribeAddresses,
692		HTTPMethod: "POST",
693		HTTPPath:   "/",
694		Paginator: &request.Paginator{
695			InputTokens:     []string{"NextToken"},
696			OutputTokens:    []string{"NextToken"},
697			LimitToken:      "MaxResults",
698			TruncationToken: "",
699		},
700	}
701
702	if input == nil {
703		input = &DescribeAddressesInput{}
704	}
705
706	output = &DescribeAddressesOutput{}
707	req = c.newRequest(op, input, output)
708	return
709}
710
711// DescribeAddresses API operation for Amazon Import/Export Snowball.
712//
713// Returns a specified number of ADDRESS objects. Calling this API in one of
714// the US regions will return addresses from the list of all addresses associated
715// with this account in all US regions.
716//
717// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
718// with awserr.Error's Code and Message methods to get detailed information about
719// the error.
720//
721// See the AWS API reference guide for Amazon Import/Export Snowball's
722// API operation DescribeAddresses for usage and error information.
723//
724// Returned Error Types:
725//   * InvalidResourceException
726//   The specified resource can't be found. Check the information you provided
727//   in your last request, and try again.
728//
729//   * InvalidNextTokenException
730//   The NextToken string was altered unexpectedly, and the operation has stopped.
731//   Run the operation without changing the NextToken string, and try again.
732//
733// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeAddresses
734func (c *Snowball) DescribeAddresses(input *DescribeAddressesInput) (*DescribeAddressesOutput, error) {
735	req, out := c.DescribeAddressesRequest(input)
736	return out, req.Send()
737}
738
739// DescribeAddressesWithContext is the same as DescribeAddresses with the addition of
740// the ability to pass a context and additional request options.
741//
742// See DescribeAddresses for details on how to use this API operation.
743//
744// The context must be non-nil and will be used for request cancellation. If
745// the context is nil a panic will occur. In the future the SDK may create
746// sub-contexts for http.Requests. See https://golang.org/pkg/context/
747// for more information on using Contexts.
748func (c *Snowball) DescribeAddressesWithContext(ctx aws.Context, input *DescribeAddressesInput, opts ...request.Option) (*DescribeAddressesOutput, error) {
749	req, out := c.DescribeAddressesRequest(input)
750	req.SetContext(ctx)
751	req.ApplyOptions(opts...)
752	return out, req.Send()
753}
754
755// DescribeAddressesPages iterates over the pages of a DescribeAddresses operation,
756// calling the "fn" function with the response data for each page. To stop
757// iterating, return false from the fn function.
758//
759// See DescribeAddresses method for more information on how to use this operation.
760//
761// Note: This operation can generate multiple requests to a service.
762//
763//    // Example iterating over at most 3 pages of a DescribeAddresses operation.
764//    pageNum := 0
765//    err := client.DescribeAddressesPages(params,
766//        func(page *snowball.DescribeAddressesOutput, lastPage bool) bool {
767//            pageNum++
768//            fmt.Println(page)
769//            return pageNum <= 3
770//        })
771//
772func (c *Snowball) DescribeAddressesPages(input *DescribeAddressesInput, fn func(*DescribeAddressesOutput, bool) bool) error {
773	return c.DescribeAddressesPagesWithContext(aws.BackgroundContext(), input, fn)
774}
775
776// DescribeAddressesPagesWithContext same as DescribeAddressesPages except
777// it takes a Context and allows setting request options on the pages.
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) DescribeAddressesPagesWithContext(ctx aws.Context, input *DescribeAddressesInput, fn func(*DescribeAddressesOutput, bool) bool, opts ...request.Option) error {
784	p := request.Pagination{
785		NewRequest: func() (*request.Request, error) {
786			var inCpy *DescribeAddressesInput
787			if input != nil {
788				tmp := *input
789				inCpy = &tmp
790			}
791			req, _ := c.DescribeAddressesRequest(inCpy)
792			req.SetContext(ctx)
793			req.ApplyOptions(opts...)
794			return req, nil
795		},
796	}
797
798	for p.Next() {
799		if !fn(p.Page().(*DescribeAddressesOutput), !p.HasNextPage()) {
800			break
801		}
802	}
803
804	return p.Err()
805}
806
807const opDescribeCluster = "DescribeCluster"
808
809// DescribeClusterRequest generates a "aws/request.Request" representing the
810// client's request for the DescribeCluster operation. The "output" return
811// value will be populated with the request's response once the request completes
812// successfully.
813//
814// Use "Send" method on the returned Request to send the API call to the service.
815// the "output" return value is not valid until after Send returns without error.
816//
817// See DescribeCluster for more information on using the DescribeCluster
818// API call, and error handling.
819//
820// This method is useful when you want to inject custom logic or configuration
821// into the SDK's request lifecycle. Such as custom headers, or retry logic.
822//
823//
824//    // Example sending a request using the DescribeClusterRequest method.
825//    req, resp := client.DescribeClusterRequest(params)
826//
827//    err := req.Send()
828//    if err == nil { // resp is now filled
829//        fmt.Println(resp)
830//    }
831//
832// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeCluster
833func (c *Snowball) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
834	op := &request.Operation{
835		Name:       opDescribeCluster,
836		HTTPMethod: "POST",
837		HTTPPath:   "/",
838	}
839
840	if input == nil {
841		input = &DescribeClusterInput{}
842	}
843
844	output = &DescribeClusterOutput{}
845	req = c.newRequest(op, input, output)
846	return
847}
848
849// DescribeCluster API operation for Amazon Import/Export Snowball.
850//
851// Returns information about a specific cluster including shipping information,
852// cluster status, and other important metadata.
853//
854// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
855// with awserr.Error's Code and Message methods to get detailed information about
856// the error.
857//
858// See the AWS API reference guide for Amazon Import/Export Snowball's
859// API operation DescribeCluster for usage and error information.
860//
861// Returned Error Types:
862//   * InvalidResourceException
863//   The specified resource can't be found. Check the information you provided
864//   in your last request, and try again.
865//
866// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeCluster
867func (c *Snowball) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
868	req, out := c.DescribeClusterRequest(input)
869	return out, req.Send()
870}
871
872// DescribeClusterWithContext is the same as DescribeCluster with the addition of
873// the ability to pass a context and additional request options.
874//
875// See DescribeCluster for details on how to use this API operation.
876//
877// The context must be non-nil and will be used for request cancellation. If
878// the context is nil a panic will occur. In the future the SDK may create
879// sub-contexts for http.Requests. See https://golang.org/pkg/context/
880// for more information on using Contexts.
881func (c *Snowball) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
882	req, out := c.DescribeClusterRequest(input)
883	req.SetContext(ctx)
884	req.ApplyOptions(opts...)
885	return out, req.Send()
886}
887
888const opDescribeJob = "DescribeJob"
889
890// DescribeJobRequest generates a "aws/request.Request" representing the
891// client's request for the DescribeJob operation. The "output" return
892// value will be populated with the request's response once the request completes
893// successfully.
894//
895// Use "Send" method on the returned Request to send the API call to the service.
896// the "output" return value is not valid until after Send returns without error.
897//
898// See DescribeJob for more information on using the DescribeJob
899// API call, and error handling.
900//
901// This method is useful when you want to inject custom logic or configuration
902// into the SDK's request lifecycle. Such as custom headers, or retry logic.
903//
904//
905//    // Example sending a request using the DescribeJobRequest method.
906//    req, resp := client.DescribeJobRequest(params)
907//
908//    err := req.Send()
909//    if err == nil { // resp is now filled
910//        fmt.Println(resp)
911//    }
912//
913// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeJob
914func (c *Snowball) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
915	op := &request.Operation{
916		Name:       opDescribeJob,
917		HTTPMethod: "POST",
918		HTTPPath:   "/",
919	}
920
921	if input == nil {
922		input = &DescribeJobInput{}
923	}
924
925	output = &DescribeJobOutput{}
926	req = c.newRequest(op, input, output)
927	return
928}
929
930// DescribeJob API operation for Amazon Import/Export Snowball.
931//
932// Returns information about a specific job including shipping information,
933// job status, and other important metadata.
934//
935// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
936// with awserr.Error's Code and Message methods to get detailed information about
937// the error.
938//
939// See the AWS API reference guide for Amazon Import/Export Snowball's
940// API operation DescribeJob for usage and error information.
941//
942// Returned Error Types:
943//   * InvalidResourceException
944//   The specified resource can't be found. Check the information you provided
945//   in your last request, and try again.
946//
947// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeJob
948func (c *Snowball) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
949	req, out := c.DescribeJobRequest(input)
950	return out, req.Send()
951}
952
953// DescribeJobWithContext is the same as DescribeJob with the addition of
954// the ability to pass a context and additional request options.
955//
956// See DescribeJob for details on how to use this API operation.
957//
958// The context must be non-nil and will be used for request cancellation. If
959// the context is nil a panic will occur. In the future the SDK may create
960// sub-contexts for http.Requests. See https://golang.org/pkg/context/
961// for more information on using Contexts.
962func (c *Snowball) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
963	req, out := c.DescribeJobRequest(input)
964	req.SetContext(ctx)
965	req.ApplyOptions(opts...)
966	return out, req.Send()
967}
968
969const opDescribeReturnShippingLabel = "DescribeReturnShippingLabel"
970
971// DescribeReturnShippingLabelRequest generates a "aws/request.Request" representing the
972// client's request for the DescribeReturnShippingLabel operation. The "output" return
973// value will be populated with the request's response once the request completes
974// successfully.
975//
976// Use "Send" method on the returned Request to send the API call to the service.
977// the "output" return value is not valid until after Send returns without error.
978//
979// See DescribeReturnShippingLabel for more information on using the DescribeReturnShippingLabel
980// API call, and error handling.
981//
982// This method is useful when you want to inject custom logic or configuration
983// into the SDK's request lifecycle. Such as custom headers, or retry logic.
984//
985//
986//    // Example sending a request using the DescribeReturnShippingLabelRequest method.
987//    req, resp := client.DescribeReturnShippingLabelRequest(params)
988//
989//    err := req.Send()
990//    if err == nil { // resp is now filled
991//        fmt.Println(resp)
992//    }
993//
994// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeReturnShippingLabel
995func (c *Snowball) DescribeReturnShippingLabelRequest(input *DescribeReturnShippingLabelInput) (req *request.Request, output *DescribeReturnShippingLabelOutput) {
996	op := &request.Operation{
997		Name:       opDescribeReturnShippingLabel,
998		HTTPMethod: "POST",
999		HTTPPath:   "/",
1000	}
1001
1002	if input == nil {
1003		input = &DescribeReturnShippingLabelInput{}
1004	}
1005
1006	output = &DescribeReturnShippingLabelOutput{}
1007	req = c.newRequest(op, input, output)
1008	return
1009}
1010
1011// DescribeReturnShippingLabel API operation for Amazon Import/Export Snowball.
1012//
1013// Information on the shipping label of a Snow device that is being returned
1014// to AWS.
1015//
1016// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1017// with awserr.Error's Code and Message methods to get detailed information about
1018// the error.
1019//
1020// See the AWS API reference guide for Amazon Import/Export Snowball's
1021// API operation DescribeReturnShippingLabel for usage and error information.
1022//
1023// Returned Error Types:
1024//   * InvalidResourceException
1025//   The specified resource can't be found. Check the information you provided
1026//   in your last request, and try again.
1027//
1028//   * InvalidJobStateException
1029//   The action can't be performed because the job's current state doesn't allow
1030//   that action to be performed.
1031//
1032//   * ConflictException
1033//   You get this exception when you call CreateReturnShippingLabel more than
1034//   once when other requests are not completed.
1035//
1036// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/DescribeReturnShippingLabel
1037func (c *Snowball) DescribeReturnShippingLabel(input *DescribeReturnShippingLabelInput) (*DescribeReturnShippingLabelOutput, error) {
1038	req, out := c.DescribeReturnShippingLabelRequest(input)
1039	return out, req.Send()
1040}
1041
1042// DescribeReturnShippingLabelWithContext is the same as DescribeReturnShippingLabel with the addition of
1043// the ability to pass a context and additional request options.
1044//
1045// See DescribeReturnShippingLabel for details on how to use this API operation.
1046//
1047// The context must be non-nil and will be used for request cancellation. If
1048// the context is nil a panic will occur. In the future the SDK may create
1049// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1050// for more information on using Contexts.
1051func (c *Snowball) DescribeReturnShippingLabelWithContext(ctx aws.Context, input *DescribeReturnShippingLabelInput, opts ...request.Option) (*DescribeReturnShippingLabelOutput, error) {
1052	req, out := c.DescribeReturnShippingLabelRequest(input)
1053	req.SetContext(ctx)
1054	req.ApplyOptions(opts...)
1055	return out, req.Send()
1056}
1057
1058const opGetJobManifest = "GetJobManifest"
1059
1060// GetJobManifestRequest generates a "aws/request.Request" representing the
1061// client's request for the GetJobManifest operation. The "output" return
1062// value will be populated with the request's response once the request completes
1063// successfully.
1064//
1065// Use "Send" method on the returned Request to send the API call to the service.
1066// the "output" return value is not valid until after Send returns without error.
1067//
1068// See GetJobManifest for more information on using the GetJobManifest
1069// API call, and error handling.
1070//
1071// This method is useful when you want to inject custom logic or configuration
1072// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1073//
1074//
1075//    // Example sending a request using the GetJobManifestRequest method.
1076//    req, resp := client.GetJobManifestRequest(params)
1077//
1078//    err := req.Send()
1079//    if err == nil { // resp is now filled
1080//        fmt.Println(resp)
1081//    }
1082//
1083// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetJobManifest
1084func (c *Snowball) GetJobManifestRequest(input *GetJobManifestInput) (req *request.Request, output *GetJobManifestOutput) {
1085	op := &request.Operation{
1086		Name:       opGetJobManifest,
1087		HTTPMethod: "POST",
1088		HTTPPath:   "/",
1089	}
1090
1091	if input == nil {
1092		input = &GetJobManifestInput{}
1093	}
1094
1095	output = &GetJobManifestOutput{}
1096	req = c.newRequest(op, input, output)
1097	return
1098}
1099
1100// GetJobManifest API operation for Amazon Import/Export Snowball.
1101//
1102// Returns a link to an Amazon S3 presigned URL for the manifest file associated
1103// with the specified JobId value. You can access the manifest file for up to
1104// 60 minutes after this request has been made. To access the manifest file
1105// after 60 minutes have passed, you'll have to make another call to the GetJobManifest
1106// action.
1107//
1108// The manifest is an encrypted file that you can download after your job enters
1109// the WithCustomer status. The manifest is decrypted by using the UnlockCode
1110// code value, when you pass both values to the Snow device through the Snowball
1111// client when the client is started for the first time.
1112//
1113// As a best practice, we recommend that you don't save a copy of an UnlockCode
1114// value in the same location as the manifest file for that job. Saving these
1115// separately helps prevent unauthorized parties from gaining access to the
1116// Snow device associated with that job.
1117//
1118// The credentials of a given job, including its manifest file and unlock code,
1119// expire 90 days after the job is created.
1120//
1121// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1122// with awserr.Error's Code and Message methods to get detailed information about
1123// the error.
1124//
1125// See the AWS API reference guide for Amazon Import/Export Snowball's
1126// API operation GetJobManifest for usage and error information.
1127//
1128// Returned Error Types:
1129//   * InvalidResourceException
1130//   The specified resource can't be found. Check the information you provided
1131//   in your last request, and try again.
1132//
1133//   * InvalidJobStateException
1134//   The action can't be performed because the job's current state doesn't allow
1135//   that action to be performed.
1136//
1137// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetJobManifest
1138func (c *Snowball) GetJobManifest(input *GetJobManifestInput) (*GetJobManifestOutput, error) {
1139	req, out := c.GetJobManifestRequest(input)
1140	return out, req.Send()
1141}
1142
1143// GetJobManifestWithContext is the same as GetJobManifest with the addition of
1144// the ability to pass a context and additional request options.
1145//
1146// See GetJobManifest for details on how to use this API operation.
1147//
1148// The context must be non-nil and will be used for request cancellation. If
1149// the context is nil a panic will occur. In the future the SDK may create
1150// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1151// for more information on using Contexts.
1152func (c *Snowball) GetJobManifestWithContext(ctx aws.Context, input *GetJobManifestInput, opts ...request.Option) (*GetJobManifestOutput, error) {
1153	req, out := c.GetJobManifestRequest(input)
1154	req.SetContext(ctx)
1155	req.ApplyOptions(opts...)
1156	return out, req.Send()
1157}
1158
1159const opGetJobUnlockCode = "GetJobUnlockCode"
1160
1161// GetJobUnlockCodeRequest generates a "aws/request.Request" representing the
1162// client's request for the GetJobUnlockCode operation. The "output" return
1163// value will be populated with the request's response once the request completes
1164// successfully.
1165//
1166// Use "Send" method on the returned Request to send the API call to the service.
1167// the "output" return value is not valid until after Send returns without error.
1168//
1169// See GetJobUnlockCode for more information on using the GetJobUnlockCode
1170// API call, and error handling.
1171//
1172// This method is useful when you want to inject custom logic or configuration
1173// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1174//
1175//
1176//    // Example sending a request using the GetJobUnlockCodeRequest method.
1177//    req, resp := client.GetJobUnlockCodeRequest(params)
1178//
1179//    err := req.Send()
1180//    if err == nil { // resp is now filled
1181//        fmt.Println(resp)
1182//    }
1183//
1184// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetJobUnlockCode
1185func (c *Snowball) GetJobUnlockCodeRequest(input *GetJobUnlockCodeInput) (req *request.Request, output *GetJobUnlockCodeOutput) {
1186	op := &request.Operation{
1187		Name:       opGetJobUnlockCode,
1188		HTTPMethod: "POST",
1189		HTTPPath:   "/",
1190	}
1191
1192	if input == nil {
1193		input = &GetJobUnlockCodeInput{}
1194	}
1195
1196	output = &GetJobUnlockCodeOutput{}
1197	req = c.newRequest(op, input, output)
1198	return
1199}
1200
1201// GetJobUnlockCode API operation for Amazon Import/Export Snowball.
1202//
1203// Returns the UnlockCode code value for the specified job. A particular UnlockCode
1204// value can be accessed for up to 90 days after the associated job has been
1205// created.
1206//
1207// The UnlockCode value is a 29-character code with 25 alphanumeric characters
1208// and 4 hyphens. This code is used to decrypt the manifest file when it is
1209// passed along with the manifest to the Snow device through the Snowball client
1210// when the client is started for the first time.
1211//
1212// As a best practice, we recommend that you don't save a copy of the UnlockCode
1213// in the same location as the manifest file for that job. Saving these separately
1214// helps prevent unauthorized parties from gaining access to the Snow device
1215// associated with that job.
1216//
1217// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1218// with awserr.Error's Code and Message methods to get detailed information about
1219// the error.
1220//
1221// See the AWS API reference guide for Amazon Import/Export Snowball's
1222// API operation GetJobUnlockCode for usage and error information.
1223//
1224// Returned Error Types:
1225//   * InvalidResourceException
1226//   The specified resource can't be found. Check the information you provided
1227//   in your last request, and try again.
1228//
1229//   * InvalidJobStateException
1230//   The action can't be performed because the job's current state doesn't allow
1231//   that action to be performed.
1232//
1233// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetJobUnlockCode
1234func (c *Snowball) GetJobUnlockCode(input *GetJobUnlockCodeInput) (*GetJobUnlockCodeOutput, error) {
1235	req, out := c.GetJobUnlockCodeRequest(input)
1236	return out, req.Send()
1237}
1238
1239// GetJobUnlockCodeWithContext is the same as GetJobUnlockCode with the addition of
1240// the ability to pass a context and additional request options.
1241//
1242// See GetJobUnlockCode for details on how to use this API operation.
1243//
1244// The context must be non-nil and will be used for request cancellation. If
1245// the context is nil a panic will occur. In the future the SDK may create
1246// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1247// for more information on using Contexts.
1248func (c *Snowball) GetJobUnlockCodeWithContext(ctx aws.Context, input *GetJobUnlockCodeInput, opts ...request.Option) (*GetJobUnlockCodeOutput, error) {
1249	req, out := c.GetJobUnlockCodeRequest(input)
1250	req.SetContext(ctx)
1251	req.ApplyOptions(opts...)
1252	return out, req.Send()
1253}
1254
1255const opGetSnowballUsage = "GetSnowballUsage"
1256
1257// GetSnowballUsageRequest generates a "aws/request.Request" representing the
1258// client's request for the GetSnowballUsage operation. The "output" return
1259// value will be populated with the request's response once the request completes
1260// successfully.
1261//
1262// Use "Send" method on the returned Request to send the API call to the service.
1263// the "output" return value is not valid until after Send returns without error.
1264//
1265// See GetSnowballUsage for more information on using the GetSnowballUsage
1266// API call, and error handling.
1267//
1268// This method is useful when you want to inject custom logic or configuration
1269// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1270//
1271//
1272//    // Example sending a request using the GetSnowballUsageRequest method.
1273//    req, resp := client.GetSnowballUsageRequest(params)
1274//
1275//    err := req.Send()
1276//    if err == nil { // resp is now filled
1277//        fmt.Println(resp)
1278//    }
1279//
1280// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetSnowballUsage
1281func (c *Snowball) GetSnowballUsageRequest(input *GetSnowballUsageInput) (req *request.Request, output *GetSnowballUsageOutput) {
1282	op := &request.Operation{
1283		Name:       opGetSnowballUsage,
1284		HTTPMethod: "POST",
1285		HTTPPath:   "/",
1286	}
1287
1288	if input == nil {
1289		input = &GetSnowballUsageInput{}
1290	}
1291
1292	output = &GetSnowballUsageOutput{}
1293	req = c.newRequest(op, input, output)
1294	return
1295}
1296
1297// GetSnowballUsage API operation for Amazon Import/Export Snowball.
1298//
1299// Returns information about the Snow Family service limit for your account,
1300// and also the number of Snow devices your account has in use.
1301//
1302// The default service limit for the number of Snow devices that you can have
1303// at one time is 1. If you want to increase your service limit, contact AWS
1304// Support.
1305//
1306// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1307// with awserr.Error's Code and Message methods to get detailed information about
1308// the error.
1309//
1310// See the AWS API reference guide for Amazon Import/Export Snowball's
1311// API operation GetSnowballUsage for usage and error information.
1312// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetSnowballUsage
1313func (c *Snowball) GetSnowballUsage(input *GetSnowballUsageInput) (*GetSnowballUsageOutput, error) {
1314	req, out := c.GetSnowballUsageRequest(input)
1315	return out, req.Send()
1316}
1317
1318// GetSnowballUsageWithContext is the same as GetSnowballUsage with the addition of
1319// the ability to pass a context and additional request options.
1320//
1321// See GetSnowballUsage for details on how to use this API operation.
1322//
1323// The context must be non-nil and will be used for request cancellation. If
1324// the context is nil a panic will occur. In the future the SDK may create
1325// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1326// for more information on using Contexts.
1327func (c *Snowball) GetSnowballUsageWithContext(ctx aws.Context, input *GetSnowballUsageInput, opts ...request.Option) (*GetSnowballUsageOutput, error) {
1328	req, out := c.GetSnowballUsageRequest(input)
1329	req.SetContext(ctx)
1330	req.ApplyOptions(opts...)
1331	return out, req.Send()
1332}
1333
1334const opGetSoftwareUpdates = "GetSoftwareUpdates"
1335
1336// GetSoftwareUpdatesRequest generates a "aws/request.Request" representing the
1337// client's request for the GetSoftwareUpdates operation. The "output" return
1338// value will be populated with the request's response once the request completes
1339// successfully.
1340//
1341// Use "Send" method on the returned Request to send the API call to the service.
1342// the "output" return value is not valid until after Send returns without error.
1343//
1344// See GetSoftwareUpdates for more information on using the GetSoftwareUpdates
1345// API call, and error handling.
1346//
1347// This method is useful when you want to inject custom logic or configuration
1348// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1349//
1350//
1351//    // Example sending a request using the GetSoftwareUpdatesRequest method.
1352//    req, resp := client.GetSoftwareUpdatesRequest(params)
1353//
1354//    err := req.Send()
1355//    if err == nil { // resp is now filled
1356//        fmt.Println(resp)
1357//    }
1358//
1359// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetSoftwareUpdates
1360func (c *Snowball) GetSoftwareUpdatesRequest(input *GetSoftwareUpdatesInput) (req *request.Request, output *GetSoftwareUpdatesOutput) {
1361	op := &request.Operation{
1362		Name:       opGetSoftwareUpdates,
1363		HTTPMethod: "POST",
1364		HTTPPath:   "/",
1365	}
1366
1367	if input == nil {
1368		input = &GetSoftwareUpdatesInput{}
1369	}
1370
1371	output = &GetSoftwareUpdatesOutput{}
1372	req = c.newRequest(op, input, output)
1373	return
1374}
1375
1376// GetSoftwareUpdates API operation for Amazon Import/Export Snowball.
1377//
1378// Returns an Amazon S3 presigned URL for an update file associated with a specified
1379// JobId.
1380//
1381// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1382// with awserr.Error's Code and Message methods to get detailed information about
1383// the error.
1384//
1385// See the AWS API reference guide for Amazon Import/Export Snowball's
1386// API operation GetSoftwareUpdates for usage and error information.
1387//
1388// Returned Error Types:
1389//   * InvalidResourceException
1390//   The specified resource can't be found. Check the information you provided
1391//   in your last request, and try again.
1392//
1393//   * InvalidJobStateException
1394//   The action can't be performed because the job's current state doesn't allow
1395//   that action to be performed.
1396//
1397// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/GetSoftwareUpdates
1398func (c *Snowball) GetSoftwareUpdates(input *GetSoftwareUpdatesInput) (*GetSoftwareUpdatesOutput, error) {
1399	req, out := c.GetSoftwareUpdatesRequest(input)
1400	return out, req.Send()
1401}
1402
1403// GetSoftwareUpdatesWithContext is the same as GetSoftwareUpdates with the addition of
1404// the ability to pass a context and additional request options.
1405//
1406// See GetSoftwareUpdates for details on how to use this API operation.
1407//
1408// The context must be non-nil and will be used for request cancellation. If
1409// the context is nil a panic will occur. In the future the SDK may create
1410// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1411// for more information on using Contexts.
1412func (c *Snowball) GetSoftwareUpdatesWithContext(ctx aws.Context, input *GetSoftwareUpdatesInput, opts ...request.Option) (*GetSoftwareUpdatesOutput, error) {
1413	req, out := c.GetSoftwareUpdatesRequest(input)
1414	req.SetContext(ctx)
1415	req.ApplyOptions(opts...)
1416	return out, req.Send()
1417}
1418
1419const opListClusterJobs = "ListClusterJobs"
1420
1421// ListClusterJobsRequest generates a "aws/request.Request" representing the
1422// client's request for the ListClusterJobs operation. The "output" return
1423// value will be populated with the request's response once the request completes
1424// successfully.
1425//
1426// Use "Send" method on the returned Request to send the API call to the service.
1427// the "output" return value is not valid until after Send returns without error.
1428//
1429// See ListClusterJobs for more information on using the ListClusterJobs
1430// API call, and error handling.
1431//
1432// This method is useful when you want to inject custom logic or configuration
1433// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1434//
1435//
1436//    // Example sending a request using the ListClusterJobsRequest method.
1437//    req, resp := client.ListClusterJobsRequest(params)
1438//
1439//    err := req.Send()
1440//    if err == nil { // resp is now filled
1441//        fmt.Println(resp)
1442//    }
1443//
1444// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListClusterJobs
1445func (c *Snowball) ListClusterJobsRequest(input *ListClusterJobsInput) (req *request.Request, output *ListClusterJobsOutput) {
1446	op := &request.Operation{
1447		Name:       opListClusterJobs,
1448		HTTPMethod: "POST",
1449		HTTPPath:   "/",
1450	}
1451
1452	if input == nil {
1453		input = &ListClusterJobsInput{}
1454	}
1455
1456	output = &ListClusterJobsOutput{}
1457	req = c.newRequest(op, input, output)
1458	return
1459}
1460
1461// ListClusterJobs API operation for Amazon Import/Export Snowball.
1462//
1463// Returns an array of JobListEntry objects of the specified length. Each JobListEntry
1464// object is for a job in the specified cluster and contains a job's state,
1465// a job's ID, and other information.
1466//
1467// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1468// with awserr.Error's Code and Message methods to get detailed information about
1469// the error.
1470//
1471// See the AWS API reference guide for Amazon Import/Export Snowball's
1472// API operation ListClusterJobs for usage and error information.
1473//
1474// Returned Error Types:
1475//   * InvalidResourceException
1476//   The specified resource can't be found. Check the information you provided
1477//   in your last request, and try again.
1478//
1479//   * InvalidNextTokenException
1480//   The NextToken string was altered unexpectedly, and the operation has stopped.
1481//   Run the operation without changing the NextToken string, and try again.
1482//
1483// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListClusterJobs
1484func (c *Snowball) ListClusterJobs(input *ListClusterJobsInput) (*ListClusterJobsOutput, error) {
1485	req, out := c.ListClusterJobsRequest(input)
1486	return out, req.Send()
1487}
1488
1489// ListClusterJobsWithContext is the same as ListClusterJobs with the addition of
1490// the ability to pass a context and additional request options.
1491//
1492// See ListClusterJobs for details on how to use this API operation.
1493//
1494// The context must be non-nil and will be used for request cancellation. If
1495// the context is nil a panic will occur. In the future the SDK may create
1496// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1497// for more information on using Contexts.
1498func (c *Snowball) ListClusterJobsWithContext(ctx aws.Context, input *ListClusterJobsInput, opts ...request.Option) (*ListClusterJobsOutput, error) {
1499	req, out := c.ListClusterJobsRequest(input)
1500	req.SetContext(ctx)
1501	req.ApplyOptions(opts...)
1502	return out, req.Send()
1503}
1504
1505const opListClusters = "ListClusters"
1506
1507// ListClustersRequest generates a "aws/request.Request" representing the
1508// client's request for the ListClusters operation. The "output" return
1509// value will be populated with the request's response once the request completes
1510// successfully.
1511//
1512// Use "Send" method on the returned Request to send the API call to the service.
1513// the "output" return value is not valid until after Send returns without error.
1514//
1515// See ListClusters for more information on using the ListClusters
1516// API call, and error handling.
1517//
1518// This method is useful when you want to inject custom logic or configuration
1519// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1520//
1521//
1522//    // Example sending a request using the ListClustersRequest method.
1523//    req, resp := client.ListClustersRequest(params)
1524//
1525//    err := req.Send()
1526//    if err == nil { // resp is now filled
1527//        fmt.Println(resp)
1528//    }
1529//
1530// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListClusters
1531func (c *Snowball) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
1532	op := &request.Operation{
1533		Name:       opListClusters,
1534		HTTPMethod: "POST",
1535		HTTPPath:   "/",
1536	}
1537
1538	if input == nil {
1539		input = &ListClustersInput{}
1540	}
1541
1542	output = &ListClustersOutput{}
1543	req = c.newRequest(op, input, output)
1544	return
1545}
1546
1547// ListClusters API operation for Amazon Import/Export Snowball.
1548//
1549// Returns an array of ClusterListEntry objects of the specified length. Each
1550// ClusterListEntry object contains a cluster's state, a cluster's ID, and other
1551// important status information.
1552//
1553// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1554// with awserr.Error's Code and Message methods to get detailed information about
1555// the error.
1556//
1557// See the AWS API reference guide for Amazon Import/Export Snowball's
1558// API operation ListClusters for usage and error information.
1559//
1560// Returned Error Types:
1561//   * InvalidNextTokenException
1562//   The NextToken string was altered unexpectedly, and the operation has stopped.
1563//   Run the operation without changing the NextToken string, and try again.
1564//
1565// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListClusters
1566func (c *Snowball) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
1567	req, out := c.ListClustersRequest(input)
1568	return out, req.Send()
1569}
1570
1571// ListClustersWithContext is the same as ListClusters with the addition of
1572// the ability to pass a context and additional request options.
1573//
1574// See ListClusters for details on how to use this API operation.
1575//
1576// The context must be non-nil and will be used for request cancellation. If
1577// the context is nil a panic will occur. In the future the SDK may create
1578// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1579// for more information on using Contexts.
1580func (c *Snowball) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
1581	req, out := c.ListClustersRequest(input)
1582	req.SetContext(ctx)
1583	req.ApplyOptions(opts...)
1584	return out, req.Send()
1585}
1586
1587const opListCompatibleImages = "ListCompatibleImages"
1588
1589// ListCompatibleImagesRequest generates a "aws/request.Request" representing the
1590// client's request for the ListCompatibleImages operation. The "output" return
1591// value will be populated with the request's response once the request completes
1592// successfully.
1593//
1594// Use "Send" method on the returned Request to send the API call to the service.
1595// the "output" return value is not valid until after Send returns without error.
1596//
1597// See ListCompatibleImages for more information on using the ListCompatibleImages
1598// API call, and error handling.
1599//
1600// This method is useful when you want to inject custom logic or configuration
1601// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1602//
1603//
1604//    // Example sending a request using the ListCompatibleImagesRequest method.
1605//    req, resp := client.ListCompatibleImagesRequest(params)
1606//
1607//    err := req.Send()
1608//    if err == nil { // resp is now filled
1609//        fmt.Println(resp)
1610//    }
1611//
1612// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListCompatibleImages
1613func (c *Snowball) ListCompatibleImagesRequest(input *ListCompatibleImagesInput) (req *request.Request, output *ListCompatibleImagesOutput) {
1614	op := &request.Operation{
1615		Name:       opListCompatibleImages,
1616		HTTPMethod: "POST",
1617		HTTPPath:   "/",
1618	}
1619
1620	if input == nil {
1621		input = &ListCompatibleImagesInput{}
1622	}
1623
1624	output = &ListCompatibleImagesOutput{}
1625	req = c.newRequest(op, input, output)
1626	return
1627}
1628
1629// ListCompatibleImages API operation for Amazon Import/Export Snowball.
1630//
1631// This action returns a list of the different Amazon EC2 Amazon Machine Images
1632// (AMIs) that are owned by your AWS account that would be supported for use
1633// on a Snow device. Currently, supported AMIs are based on the CentOS 7 (x86_64)
1634// - with Updates HVM, Ubuntu Server 14.04 LTS (HVM), and Ubuntu 16.04 LTS -
1635// Xenial (HVM) images, available on the AWS Marketplace.
1636//
1637// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1638// with awserr.Error's Code and Message methods to get detailed information about
1639// the error.
1640//
1641// See the AWS API reference guide for Amazon Import/Export Snowball's
1642// API operation ListCompatibleImages for usage and error information.
1643//
1644// Returned Error Types:
1645//   * InvalidNextTokenException
1646//   The NextToken string was altered unexpectedly, and the operation has stopped.
1647//   Run the operation without changing the NextToken string, and try again.
1648//
1649//   * Ec2RequestFailedException
1650//   Your IAM user lacks the necessary Amazon EC2 permissions to perform the attempted
1651//   action.
1652//
1653// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListCompatibleImages
1654func (c *Snowball) ListCompatibleImages(input *ListCompatibleImagesInput) (*ListCompatibleImagesOutput, error) {
1655	req, out := c.ListCompatibleImagesRequest(input)
1656	return out, req.Send()
1657}
1658
1659// ListCompatibleImagesWithContext is the same as ListCompatibleImages with the addition of
1660// the ability to pass a context and additional request options.
1661//
1662// See ListCompatibleImages for details on how to use this API operation.
1663//
1664// The context must be non-nil and will be used for request cancellation. If
1665// the context is nil a panic will occur. In the future the SDK may create
1666// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1667// for more information on using Contexts.
1668func (c *Snowball) ListCompatibleImagesWithContext(ctx aws.Context, input *ListCompatibleImagesInput, opts ...request.Option) (*ListCompatibleImagesOutput, error) {
1669	req, out := c.ListCompatibleImagesRequest(input)
1670	req.SetContext(ctx)
1671	req.ApplyOptions(opts...)
1672	return out, req.Send()
1673}
1674
1675const opListJobs = "ListJobs"
1676
1677// ListJobsRequest generates a "aws/request.Request" representing the
1678// client's request for the ListJobs operation. The "output" return
1679// value will be populated with the request's response once the request completes
1680// successfully.
1681//
1682// Use "Send" method on the returned Request to send the API call to the service.
1683// the "output" return value is not valid until after Send returns without error.
1684//
1685// See ListJobs for more information on using the ListJobs
1686// API call, and error handling.
1687//
1688// This method is useful when you want to inject custom logic or configuration
1689// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1690//
1691//
1692//    // Example sending a request using the ListJobsRequest method.
1693//    req, resp := client.ListJobsRequest(params)
1694//
1695//    err := req.Send()
1696//    if err == nil { // resp is now filled
1697//        fmt.Println(resp)
1698//    }
1699//
1700// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListJobs
1701func (c *Snowball) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
1702	op := &request.Operation{
1703		Name:       opListJobs,
1704		HTTPMethod: "POST",
1705		HTTPPath:   "/",
1706		Paginator: &request.Paginator{
1707			InputTokens:     []string{"NextToken"},
1708			OutputTokens:    []string{"NextToken"},
1709			LimitToken:      "MaxResults",
1710			TruncationToken: "",
1711		},
1712	}
1713
1714	if input == nil {
1715		input = &ListJobsInput{}
1716	}
1717
1718	output = &ListJobsOutput{}
1719	req = c.newRequest(op, input, output)
1720	return
1721}
1722
1723// ListJobs API operation for Amazon Import/Export Snowball.
1724//
1725// Returns an array of JobListEntry objects of the specified length. Each JobListEntry
1726// object contains a job's state, a job's ID, and a value that indicates whether
1727// the job is a job part, in the case of export jobs. Calling this API action
1728// in one of the US regions will return jobs from the list of all jobs associated
1729// with this account in all US regions.
1730//
1731// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1732// with awserr.Error's Code and Message methods to get detailed information about
1733// the error.
1734//
1735// See the AWS API reference guide for Amazon Import/Export Snowball's
1736// API operation ListJobs for usage and error information.
1737//
1738// Returned Error Types:
1739//   * InvalidNextTokenException
1740//   The NextToken string was altered unexpectedly, and the operation has stopped.
1741//   Run the operation without changing the NextToken string, and try again.
1742//
1743// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/ListJobs
1744func (c *Snowball) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
1745	req, out := c.ListJobsRequest(input)
1746	return out, req.Send()
1747}
1748
1749// ListJobsWithContext is the same as ListJobs with the addition of
1750// the ability to pass a context and additional request options.
1751//
1752// See ListJobs for details on how to use this API operation.
1753//
1754// The context must be non-nil and will be used for request cancellation. If
1755// the context is nil a panic will occur. In the future the SDK may create
1756// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1757// for more information on using Contexts.
1758func (c *Snowball) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
1759	req, out := c.ListJobsRequest(input)
1760	req.SetContext(ctx)
1761	req.ApplyOptions(opts...)
1762	return out, req.Send()
1763}
1764
1765// ListJobsPages iterates over the pages of a ListJobs operation,
1766// calling the "fn" function with the response data for each page. To stop
1767// iterating, return false from the fn function.
1768//
1769// See ListJobs method for more information on how to use this operation.
1770//
1771// Note: This operation can generate multiple requests to a service.
1772//
1773//    // Example iterating over at most 3 pages of a ListJobs operation.
1774//    pageNum := 0
1775//    err := client.ListJobsPages(params,
1776//        func(page *snowball.ListJobsOutput, lastPage bool) bool {
1777//            pageNum++
1778//            fmt.Println(page)
1779//            return pageNum <= 3
1780//        })
1781//
1782func (c *Snowball) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
1783	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
1784}
1785
1786// ListJobsPagesWithContext same as ListJobsPages except
1787// it takes a Context and allows setting request options on the pages.
1788//
1789// The context must be non-nil and will be used for request cancellation. If
1790// the context is nil a panic will occur. In the future the SDK may create
1791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1792// for more information on using Contexts.
1793func (c *Snowball) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
1794	p := request.Pagination{
1795		NewRequest: func() (*request.Request, error) {
1796			var inCpy *ListJobsInput
1797			if input != nil {
1798				tmp := *input
1799				inCpy = &tmp
1800			}
1801			req, _ := c.ListJobsRequest(inCpy)
1802			req.SetContext(ctx)
1803			req.ApplyOptions(opts...)
1804			return req, nil
1805		},
1806	}
1807
1808	for p.Next() {
1809		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
1810			break
1811		}
1812	}
1813
1814	return p.Err()
1815}
1816
1817const opUpdateCluster = "UpdateCluster"
1818
1819// UpdateClusterRequest generates a "aws/request.Request" representing the
1820// client's request for the UpdateCluster operation. The "output" return
1821// value will be populated with the request's response once the request completes
1822// successfully.
1823//
1824// Use "Send" method on the returned Request to send the API call to the service.
1825// the "output" return value is not valid until after Send returns without error.
1826//
1827// See UpdateCluster for more information on using the UpdateCluster
1828// API call, and error handling.
1829//
1830// This method is useful when you want to inject custom logic or configuration
1831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1832//
1833//
1834//    // Example sending a request using the UpdateClusterRequest method.
1835//    req, resp := client.UpdateClusterRequest(params)
1836//
1837//    err := req.Send()
1838//    if err == nil { // resp is now filled
1839//        fmt.Println(resp)
1840//    }
1841//
1842// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/UpdateCluster
1843func (c *Snowball) UpdateClusterRequest(input *UpdateClusterInput) (req *request.Request, output *UpdateClusterOutput) {
1844	op := &request.Operation{
1845		Name:       opUpdateCluster,
1846		HTTPMethod: "POST",
1847		HTTPPath:   "/",
1848	}
1849
1850	if input == nil {
1851		input = &UpdateClusterInput{}
1852	}
1853
1854	output = &UpdateClusterOutput{}
1855	req = c.newRequest(op, input, output)
1856	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1857	return
1858}
1859
1860// UpdateCluster API operation for Amazon Import/Export Snowball.
1861//
1862// While a cluster's ClusterState value is in the AwaitingQuorum state, you
1863// can update some of the information associated with a cluster. Once the cluster
1864// changes to a different job state, usually 60 minutes after the cluster being
1865// created, this action is no longer available.
1866//
1867// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1868// with awserr.Error's Code and Message methods to get detailed information about
1869// the error.
1870//
1871// See the AWS API reference guide for Amazon Import/Export Snowball's
1872// API operation UpdateCluster for usage and error information.
1873//
1874// Returned Error Types:
1875//   * InvalidResourceException
1876//   The specified resource can't be found. Check the information you provided
1877//   in your last request, and try again.
1878//
1879//   * InvalidJobStateException
1880//   The action can't be performed because the job's current state doesn't allow
1881//   that action to be performed.
1882//
1883//   * KMSRequestFailedException
1884//   The provided AWS Key Management Service key lacks the permissions to perform
1885//   the specified CreateJob or UpdateJob action.
1886//
1887//   * InvalidInputCombinationException
1888//   Job or cluster creation failed. One or more inputs were invalid. Confirm
1889//   that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
1890//   and try again.
1891//
1892//   * Ec2RequestFailedException
1893//   Your IAM user lacks the necessary Amazon EC2 permissions to perform the attempted
1894//   action.
1895//
1896// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/UpdateCluster
1897func (c *Snowball) UpdateCluster(input *UpdateClusterInput) (*UpdateClusterOutput, error) {
1898	req, out := c.UpdateClusterRequest(input)
1899	return out, req.Send()
1900}
1901
1902// UpdateClusterWithContext is the same as UpdateCluster with the addition of
1903// the ability to pass a context and additional request options.
1904//
1905// See UpdateCluster for details on how to use this API operation.
1906//
1907// The context must be non-nil and will be used for request cancellation. If
1908// the context is nil a panic will occur. In the future the SDK may create
1909// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1910// for more information on using Contexts.
1911func (c *Snowball) UpdateClusterWithContext(ctx aws.Context, input *UpdateClusterInput, opts ...request.Option) (*UpdateClusterOutput, error) {
1912	req, out := c.UpdateClusterRequest(input)
1913	req.SetContext(ctx)
1914	req.ApplyOptions(opts...)
1915	return out, req.Send()
1916}
1917
1918const opUpdateJob = "UpdateJob"
1919
1920// UpdateJobRequest generates a "aws/request.Request" representing the
1921// client's request for the UpdateJob operation. The "output" return
1922// value will be populated with the request's response once the request completes
1923// successfully.
1924//
1925// Use "Send" method on the returned Request to send the API call to the service.
1926// the "output" return value is not valid until after Send returns without error.
1927//
1928// See UpdateJob for more information on using the UpdateJob
1929// API call, and error handling.
1930//
1931// This method is useful when you want to inject custom logic or configuration
1932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1933//
1934//
1935//    // Example sending a request using the UpdateJobRequest method.
1936//    req, resp := client.UpdateJobRequest(params)
1937//
1938//    err := req.Send()
1939//    if err == nil { // resp is now filled
1940//        fmt.Println(resp)
1941//    }
1942//
1943// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/UpdateJob
1944func (c *Snowball) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
1945	op := &request.Operation{
1946		Name:       opUpdateJob,
1947		HTTPMethod: "POST",
1948		HTTPPath:   "/",
1949	}
1950
1951	if input == nil {
1952		input = &UpdateJobInput{}
1953	}
1954
1955	output = &UpdateJobOutput{}
1956	req = c.newRequest(op, input, output)
1957	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1958	return
1959}
1960
1961// UpdateJob API operation for Amazon Import/Export Snowball.
1962//
1963// While a job's JobState value is New, you can update some of the information
1964// associated with a job. Once the job changes to a different job state, usually
1965// within 60 minutes of the job being created, this action is no longer available.
1966//
1967// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1968// with awserr.Error's Code and Message methods to get detailed information about
1969// the error.
1970//
1971// See the AWS API reference guide for Amazon Import/Export Snowball's
1972// API operation UpdateJob for usage and error information.
1973//
1974// Returned Error Types:
1975//   * InvalidResourceException
1976//   The specified resource can't be found. Check the information you provided
1977//   in your last request, and try again.
1978//
1979//   * InvalidJobStateException
1980//   The action can't be performed because the job's current state doesn't allow
1981//   that action to be performed.
1982//
1983//   * KMSRequestFailedException
1984//   The provided AWS Key Management Service key lacks the permissions to perform
1985//   the specified CreateJob or UpdateJob action.
1986//
1987//   * InvalidInputCombinationException
1988//   Job or cluster creation failed. One or more inputs were invalid. Confirm
1989//   that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
1990//   and try again.
1991//
1992//   * ClusterLimitExceededException
1993//   Job creation failed. Currently, clusters support five nodes. If you have
1994//   less than five nodes for your cluster and you have more nodes to create for
1995//   this cluster, try again and create jobs until your cluster has exactly five
1996//   notes.
1997//
1998//   * Ec2RequestFailedException
1999//   Your IAM user lacks the necessary Amazon EC2 permissions to perform the attempted
2000//   action.
2001//
2002// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/UpdateJob
2003func (c *Snowball) UpdateJob(input *UpdateJobInput) (*UpdateJobOutput, error) {
2004	req, out := c.UpdateJobRequest(input)
2005	return out, req.Send()
2006}
2007
2008// UpdateJobWithContext is the same as UpdateJob with the addition of
2009// the ability to pass a context and additional request options.
2010//
2011// See UpdateJob for details on how to use this API operation.
2012//
2013// The context must be non-nil and will be used for request cancellation. If
2014// the context is nil a panic will occur. In the future the SDK may create
2015// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2016// for more information on using Contexts.
2017func (c *Snowball) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
2018	req, out := c.UpdateJobRequest(input)
2019	req.SetContext(ctx)
2020	req.ApplyOptions(opts...)
2021	return out, req.Send()
2022}
2023
2024const opUpdateJobShipmentState = "UpdateJobShipmentState"
2025
2026// UpdateJobShipmentStateRequest generates a "aws/request.Request" representing the
2027// client's request for the UpdateJobShipmentState operation. The "output" return
2028// value will be populated with the request's response once the request completes
2029// successfully.
2030//
2031// Use "Send" method on the returned Request to send the API call to the service.
2032// the "output" return value is not valid until after Send returns without error.
2033//
2034// See UpdateJobShipmentState for more information on using the UpdateJobShipmentState
2035// API call, and error handling.
2036//
2037// This method is useful when you want to inject custom logic or configuration
2038// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2039//
2040//
2041//    // Example sending a request using the UpdateJobShipmentStateRequest method.
2042//    req, resp := client.UpdateJobShipmentStateRequest(params)
2043//
2044//    err := req.Send()
2045//    if err == nil { // resp is now filled
2046//        fmt.Println(resp)
2047//    }
2048//
2049// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/UpdateJobShipmentState
2050func (c *Snowball) UpdateJobShipmentStateRequest(input *UpdateJobShipmentStateInput) (req *request.Request, output *UpdateJobShipmentStateOutput) {
2051	op := &request.Operation{
2052		Name:       opUpdateJobShipmentState,
2053		HTTPMethod: "POST",
2054		HTTPPath:   "/",
2055	}
2056
2057	if input == nil {
2058		input = &UpdateJobShipmentStateInput{}
2059	}
2060
2061	output = &UpdateJobShipmentStateOutput{}
2062	req = c.newRequest(op, input, output)
2063	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2064	return
2065}
2066
2067// UpdateJobShipmentState API operation for Amazon Import/Export Snowball.
2068//
2069// Updates the state when a the shipment states changes to a different state.
2070//
2071// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2072// with awserr.Error's Code and Message methods to get detailed information about
2073// the error.
2074//
2075// See the AWS API reference guide for Amazon Import/Export Snowball's
2076// API operation UpdateJobShipmentState for usage and error information.
2077//
2078// Returned Error Types:
2079//   * InvalidResourceException
2080//   The specified resource can't be found. Check the information you provided
2081//   in your last request, and try again.
2082//
2083//   * InvalidJobStateException
2084//   The action can't be performed because the job's current state doesn't allow
2085//   that action to be performed.
2086//
2087// See also, https://docs.aws.amazon.com/goto/WebAPI/snowball-2016-06-30/UpdateJobShipmentState
2088func (c *Snowball) UpdateJobShipmentState(input *UpdateJobShipmentStateInput) (*UpdateJobShipmentStateOutput, error) {
2089	req, out := c.UpdateJobShipmentStateRequest(input)
2090	return out, req.Send()
2091}
2092
2093// UpdateJobShipmentStateWithContext is the same as UpdateJobShipmentState with the addition of
2094// the ability to pass a context and additional request options.
2095//
2096// See UpdateJobShipmentState for details on how to use this API operation.
2097//
2098// The context must be non-nil and will be used for request cancellation. If
2099// the context is nil a panic will occur. In the future the SDK may create
2100// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2101// for more information on using Contexts.
2102func (c *Snowball) UpdateJobShipmentStateWithContext(ctx aws.Context, input *UpdateJobShipmentStateInput, opts ...request.Option) (*UpdateJobShipmentStateOutput, error) {
2103	req, out := c.UpdateJobShipmentStateRequest(input)
2104	req.SetContext(ctx)
2105	req.ApplyOptions(opts...)
2106	return out, req.Send()
2107}
2108
2109// The address that you want the Snow device(s) associated with a specific job
2110// to be shipped to. Addresses are validated at the time of creation. The address
2111// you provide must be located within the serviceable area of your region. Although
2112// no individual elements of the Address are required, if the address is invalid
2113// or unsupported, then an exception is thrown.
2114type Address struct {
2115	_ struct{} `type:"structure"`
2116
2117	// The unique ID for an address.
2118	AddressId *string `min:"40" type:"string"`
2119
2120	// The city in an address that a Snow device is to be delivered to.
2121	City *string `min:"1" type:"string"`
2122
2123	// The name of the company to receive a Snow device at an address.
2124	Company *string `min:"1" type:"string"`
2125
2126	// The country in an address that a Snow device is to be delivered to.
2127	Country *string `min:"1" type:"string"`
2128
2129	// If the address you are creating is a primary address, then set this option
2130	// to true. This field is not supported in most regions.
2131	IsRestricted *bool `type:"boolean"`
2132
2133	// This field is no longer used and the value is ignored.
2134	Landmark *string `min:"1" type:"string"`
2135
2136	// The name of a person to receive a Snow device at an address.
2137	Name *string `min:"1" type:"string"`
2138
2139	// The phone number associated with an address that a Snow device is to be delivered
2140	// to.
2141	PhoneNumber *string `min:"1" type:"string"`
2142
2143	// The postal code in an address that a Snow device is to be delivered to.
2144	PostalCode *string `min:"1" type:"string"`
2145
2146	// This field is no longer used and the value is ignored.
2147	PrefectureOrDistrict *string `min:"1" type:"string"`
2148
2149	// The state or province in an address that a Snow device is to be delivered
2150	// to.
2151	StateOrProvince *string `min:"1" type:"string"`
2152
2153	// The first line in a street address that a Snow device is to be delivered
2154	// to.
2155	Street1 *string `min:"1" type:"string"`
2156
2157	// The second line in a street address that a Snow device is to be delivered
2158	// to.
2159	Street2 *string `min:"1" type:"string"`
2160
2161	// The third line in a street address that a Snow device is to be delivered
2162	// to.
2163	Street3 *string `min:"1" type:"string"`
2164}
2165
2166// String returns the string representation
2167func (s Address) String() string {
2168	return awsutil.Prettify(s)
2169}
2170
2171// GoString returns the string representation
2172func (s Address) GoString() string {
2173	return s.String()
2174}
2175
2176// Validate inspects the fields of the type to determine if they are valid.
2177func (s *Address) Validate() error {
2178	invalidParams := request.ErrInvalidParams{Context: "Address"}
2179	if s.AddressId != nil && len(*s.AddressId) < 40 {
2180		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
2181	}
2182	if s.City != nil && len(*s.City) < 1 {
2183		invalidParams.Add(request.NewErrParamMinLen("City", 1))
2184	}
2185	if s.Company != nil && len(*s.Company) < 1 {
2186		invalidParams.Add(request.NewErrParamMinLen("Company", 1))
2187	}
2188	if s.Country != nil && len(*s.Country) < 1 {
2189		invalidParams.Add(request.NewErrParamMinLen("Country", 1))
2190	}
2191	if s.Landmark != nil && len(*s.Landmark) < 1 {
2192		invalidParams.Add(request.NewErrParamMinLen("Landmark", 1))
2193	}
2194	if s.Name != nil && len(*s.Name) < 1 {
2195		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
2196	}
2197	if s.PhoneNumber != nil && len(*s.PhoneNumber) < 1 {
2198		invalidParams.Add(request.NewErrParamMinLen("PhoneNumber", 1))
2199	}
2200	if s.PostalCode != nil && len(*s.PostalCode) < 1 {
2201		invalidParams.Add(request.NewErrParamMinLen("PostalCode", 1))
2202	}
2203	if s.PrefectureOrDistrict != nil && len(*s.PrefectureOrDistrict) < 1 {
2204		invalidParams.Add(request.NewErrParamMinLen("PrefectureOrDistrict", 1))
2205	}
2206	if s.StateOrProvince != nil && len(*s.StateOrProvince) < 1 {
2207		invalidParams.Add(request.NewErrParamMinLen("StateOrProvince", 1))
2208	}
2209	if s.Street1 != nil && len(*s.Street1) < 1 {
2210		invalidParams.Add(request.NewErrParamMinLen("Street1", 1))
2211	}
2212	if s.Street2 != nil && len(*s.Street2) < 1 {
2213		invalidParams.Add(request.NewErrParamMinLen("Street2", 1))
2214	}
2215	if s.Street3 != nil && len(*s.Street3) < 1 {
2216		invalidParams.Add(request.NewErrParamMinLen("Street3", 1))
2217	}
2218
2219	if invalidParams.Len() > 0 {
2220		return invalidParams
2221	}
2222	return nil
2223}
2224
2225// SetAddressId sets the AddressId field's value.
2226func (s *Address) SetAddressId(v string) *Address {
2227	s.AddressId = &v
2228	return s
2229}
2230
2231// SetCity sets the City field's value.
2232func (s *Address) SetCity(v string) *Address {
2233	s.City = &v
2234	return s
2235}
2236
2237// SetCompany sets the Company field's value.
2238func (s *Address) SetCompany(v string) *Address {
2239	s.Company = &v
2240	return s
2241}
2242
2243// SetCountry sets the Country field's value.
2244func (s *Address) SetCountry(v string) *Address {
2245	s.Country = &v
2246	return s
2247}
2248
2249// SetIsRestricted sets the IsRestricted field's value.
2250func (s *Address) SetIsRestricted(v bool) *Address {
2251	s.IsRestricted = &v
2252	return s
2253}
2254
2255// SetLandmark sets the Landmark field's value.
2256func (s *Address) SetLandmark(v string) *Address {
2257	s.Landmark = &v
2258	return s
2259}
2260
2261// SetName sets the Name field's value.
2262func (s *Address) SetName(v string) *Address {
2263	s.Name = &v
2264	return s
2265}
2266
2267// SetPhoneNumber sets the PhoneNumber field's value.
2268func (s *Address) SetPhoneNumber(v string) *Address {
2269	s.PhoneNumber = &v
2270	return s
2271}
2272
2273// SetPostalCode sets the PostalCode field's value.
2274func (s *Address) SetPostalCode(v string) *Address {
2275	s.PostalCode = &v
2276	return s
2277}
2278
2279// SetPrefectureOrDistrict sets the PrefectureOrDistrict field's value.
2280func (s *Address) SetPrefectureOrDistrict(v string) *Address {
2281	s.PrefectureOrDistrict = &v
2282	return s
2283}
2284
2285// SetStateOrProvince sets the StateOrProvince field's value.
2286func (s *Address) SetStateOrProvince(v string) *Address {
2287	s.StateOrProvince = &v
2288	return s
2289}
2290
2291// SetStreet1 sets the Street1 field's value.
2292func (s *Address) SetStreet1(v string) *Address {
2293	s.Street1 = &v
2294	return s
2295}
2296
2297// SetStreet2 sets the Street2 field's value.
2298func (s *Address) SetStreet2(v string) *Address {
2299	s.Street2 = &v
2300	return s
2301}
2302
2303// SetStreet3 sets the Street3 field's value.
2304func (s *Address) SetStreet3(v string) *Address {
2305	s.Street3 = &v
2306	return s
2307}
2308
2309type CancelClusterInput struct {
2310	_ struct{} `type:"structure"`
2311
2312	// The 39-character ID for the cluster that you want to cancel, for example
2313	// CID123e4567-e89b-12d3-a456-426655440000.
2314	//
2315	// ClusterId is a required field
2316	ClusterId *string `min:"39" type:"string" required:"true"`
2317}
2318
2319// String returns the string representation
2320func (s CancelClusterInput) String() string {
2321	return awsutil.Prettify(s)
2322}
2323
2324// GoString returns the string representation
2325func (s CancelClusterInput) GoString() string {
2326	return s.String()
2327}
2328
2329// Validate inspects the fields of the type to determine if they are valid.
2330func (s *CancelClusterInput) Validate() error {
2331	invalidParams := request.ErrInvalidParams{Context: "CancelClusterInput"}
2332	if s.ClusterId == nil {
2333		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
2334	}
2335	if s.ClusterId != nil && len(*s.ClusterId) < 39 {
2336		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 39))
2337	}
2338
2339	if invalidParams.Len() > 0 {
2340		return invalidParams
2341	}
2342	return nil
2343}
2344
2345// SetClusterId sets the ClusterId field's value.
2346func (s *CancelClusterInput) SetClusterId(v string) *CancelClusterInput {
2347	s.ClusterId = &v
2348	return s
2349}
2350
2351type CancelClusterOutput struct {
2352	_ struct{} `type:"structure"`
2353}
2354
2355// String returns the string representation
2356func (s CancelClusterOutput) String() string {
2357	return awsutil.Prettify(s)
2358}
2359
2360// GoString returns the string representation
2361func (s CancelClusterOutput) GoString() string {
2362	return s.String()
2363}
2364
2365type CancelJobInput struct {
2366	_ struct{} `type:"structure"`
2367
2368	// The 39-character job ID for the job that you want to cancel, for example
2369	// JID123e4567-e89b-12d3-a456-426655440000.
2370	//
2371	// JobId is a required field
2372	JobId *string `min:"39" type:"string" required:"true"`
2373}
2374
2375// String returns the string representation
2376func (s CancelJobInput) String() string {
2377	return awsutil.Prettify(s)
2378}
2379
2380// GoString returns the string representation
2381func (s CancelJobInput) GoString() string {
2382	return s.String()
2383}
2384
2385// Validate inspects the fields of the type to determine if they are valid.
2386func (s *CancelJobInput) Validate() error {
2387	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
2388	if s.JobId == nil {
2389		invalidParams.Add(request.NewErrParamRequired("JobId"))
2390	}
2391	if s.JobId != nil && len(*s.JobId) < 39 {
2392		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
2393	}
2394
2395	if invalidParams.Len() > 0 {
2396		return invalidParams
2397	}
2398	return nil
2399}
2400
2401// SetJobId sets the JobId field's value.
2402func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
2403	s.JobId = &v
2404	return s
2405}
2406
2407type CancelJobOutput struct {
2408	_ struct{} `type:"structure"`
2409}
2410
2411// String returns the string representation
2412func (s CancelJobOutput) String() string {
2413	return awsutil.Prettify(s)
2414}
2415
2416// GoString returns the string representation
2417func (s CancelJobOutput) GoString() string {
2418	return s.String()
2419}
2420
2421// Job creation failed. Currently, clusters support five nodes. If you have
2422// less than five nodes for your cluster and you have more nodes to create for
2423// this cluster, try again and create jobs until your cluster has exactly five
2424// notes.
2425type ClusterLimitExceededException struct {
2426	_            struct{}                  `type:"structure"`
2427	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2428
2429	Message_ *string `locationName:"Message" min:"1" type:"string"`
2430}
2431
2432// String returns the string representation
2433func (s ClusterLimitExceededException) String() string {
2434	return awsutil.Prettify(s)
2435}
2436
2437// GoString returns the string representation
2438func (s ClusterLimitExceededException) GoString() string {
2439	return s.String()
2440}
2441
2442func newErrorClusterLimitExceededException(v protocol.ResponseMetadata) error {
2443	return &ClusterLimitExceededException{
2444		RespMetadata: v,
2445	}
2446}
2447
2448// Code returns the exception type name.
2449func (s *ClusterLimitExceededException) Code() string {
2450	return "ClusterLimitExceededException"
2451}
2452
2453// Message returns the exception's message.
2454func (s *ClusterLimitExceededException) Message() string {
2455	if s.Message_ != nil {
2456		return *s.Message_
2457	}
2458	return ""
2459}
2460
2461// OrigErr always returns nil, satisfies awserr.Error interface.
2462func (s *ClusterLimitExceededException) OrigErr() error {
2463	return nil
2464}
2465
2466func (s *ClusterLimitExceededException) Error() string {
2467	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2468}
2469
2470// Status code returns the HTTP status code for the request's response error.
2471func (s *ClusterLimitExceededException) StatusCode() int {
2472	return s.RespMetadata.StatusCode
2473}
2474
2475// RequestID returns the service's response RequestID for request.
2476func (s *ClusterLimitExceededException) RequestID() string {
2477	return s.RespMetadata.RequestID
2478}
2479
2480// Contains a cluster's state, a cluster's ID, and other important information.
2481type ClusterListEntry struct {
2482	_ struct{} `type:"structure"`
2483
2484	// The 39-character ID for the cluster that you want to list, for example CID123e4567-e89b-12d3-a456-426655440000.
2485	ClusterId *string `min:"1" type:"string"`
2486
2487	// The current state of this cluster. For information about the state of a specific
2488	// node, see JobListEntry$JobState.
2489	ClusterState *string `type:"string" enum:"ClusterState"`
2490
2491	// The creation date for this cluster.
2492	CreationDate *time.Time `type:"timestamp"`
2493
2494	// Defines an optional description of the cluster, for example Environmental
2495	// Data Cluster-01.
2496	Description *string `min:"1" type:"string"`
2497}
2498
2499// String returns the string representation
2500func (s ClusterListEntry) String() string {
2501	return awsutil.Prettify(s)
2502}
2503
2504// GoString returns the string representation
2505func (s ClusterListEntry) GoString() string {
2506	return s.String()
2507}
2508
2509// SetClusterId sets the ClusterId field's value.
2510func (s *ClusterListEntry) SetClusterId(v string) *ClusterListEntry {
2511	s.ClusterId = &v
2512	return s
2513}
2514
2515// SetClusterState sets the ClusterState field's value.
2516func (s *ClusterListEntry) SetClusterState(v string) *ClusterListEntry {
2517	s.ClusterState = &v
2518	return s
2519}
2520
2521// SetCreationDate sets the CreationDate field's value.
2522func (s *ClusterListEntry) SetCreationDate(v time.Time) *ClusterListEntry {
2523	s.CreationDate = &v
2524	return s
2525}
2526
2527// SetDescription sets the Description field's value.
2528func (s *ClusterListEntry) SetDescription(v string) *ClusterListEntry {
2529	s.Description = &v
2530	return s
2531}
2532
2533// Contains metadata about a specific cluster.
2534type ClusterMetadata struct {
2535	_ struct{} `type:"structure"`
2536
2537	// The automatically generated ID for a specific address.
2538	AddressId *string `min:"40" type:"string"`
2539
2540	// The automatically generated ID for a cluster.
2541	ClusterId *string `min:"1" type:"string"`
2542
2543	// The current status of the cluster.
2544	ClusterState *string `type:"string" enum:"ClusterState"`
2545
2546	// The creation date for this cluster.
2547	CreationDate *time.Time `type:"timestamp"`
2548
2549	// The optional description of the cluster.
2550	Description *string `min:"1" type:"string"`
2551
2552	// The ID of the address that you want a cluster shipped to, after it will be
2553	// shipped to its primary address. This field is not supported in most regions.
2554	ForwardingAddressId *string `min:"40" type:"string"`
2555
2556	// The type of job for this cluster. Currently, the only job type supported
2557	// for clusters is LOCAL_USE.
2558	JobType *string `type:"string" enum:"JobType"`
2559
2560	// The KmsKeyARN Amazon Resource Name (ARN) associated with this cluster. This
2561	// ARN was created using the CreateKey (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
2562	// API action in AWS Key Management Service (AWS KMS).
2563	KmsKeyARN *string `type:"string"`
2564
2565	// The Amazon Simple Notification Service (Amazon SNS) notification settings
2566	// for this cluster.
2567	Notification *Notification `type:"structure"`
2568
2569	// The arrays of JobResource objects that can include updated S3Resource objects
2570	// or LambdaResource objects.
2571	Resources *JobResource `type:"structure"`
2572
2573	// The role ARN associated with this cluster. This ARN was created using the
2574	// CreateRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)
2575	// API action in AWS Identity and Access Management (IAM).
2576	RoleARN *string `type:"string"`
2577
2578	// The shipping speed for each node in this cluster. This speed doesn't dictate
2579	// how soon you'll get each device, rather it represents how quickly each device
2580	// moves to its destination while in transit. Regional shipping speeds are as
2581	// follows:
2582	//
2583	//    * In Australia, you have access to express shipping. Typically, devices
2584	//    shipped express are delivered in about a day.
2585	//
2586	//    * In the European Union (EU), you have access to express shipping. Typically,
2587	//    Snow devices shipped express are delivered in about a day. In addition,
2588	//    most countries in the EU have access to standard shipping, which typically
2589	//    takes less than a week, one way.
2590	//
2591	//    * In India, Snow devices are delivered in one to seven days.
2592	//
2593	//    * In the US, you have access to one-day shipping and two-day shipping.
2594	ShippingOption *string `type:"string" enum:"ShippingOption"`
2595
2596	// The type of AWS Snow device to use for this cluster.
2597	//
2598	// For cluster jobs, AWS Snow Family currently supports only the EDGE device
2599	// type.
2600	SnowballType *string `type:"string" enum:"Type"`
2601
2602	// The tax documents required in your AWS Region.
2603	TaxDocuments *TaxDocuments `type:"structure"`
2604}
2605
2606// String returns the string representation
2607func (s ClusterMetadata) String() string {
2608	return awsutil.Prettify(s)
2609}
2610
2611// GoString returns the string representation
2612func (s ClusterMetadata) GoString() string {
2613	return s.String()
2614}
2615
2616// SetAddressId sets the AddressId field's value.
2617func (s *ClusterMetadata) SetAddressId(v string) *ClusterMetadata {
2618	s.AddressId = &v
2619	return s
2620}
2621
2622// SetClusterId sets the ClusterId field's value.
2623func (s *ClusterMetadata) SetClusterId(v string) *ClusterMetadata {
2624	s.ClusterId = &v
2625	return s
2626}
2627
2628// SetClusterState sets the ClusterState field's value.
2629func (s *ClusterMetadata) SetClusterState(v string) *ClusterMetadata {
2630	s.ClusterState = &v
2631	return s
2632}
2633
2634// SetCreationDate sets the CreationDate field's value.
2635func (s *ClusterMetadata) SetCreationDate(v time.Time) *ClusterMetadata {
2636	s.CreationDate = &v
2637	return s
2638}
2639
2640// SetDescription sets the Description field's value.
2641func (s *ClusterMetadata) SetDescription(v string) *ClusterMetadata {
2642	s.Description = &v
2643	return s
2644}
2645
2646// SetForwardingAddressId sets the ForwardingAddressId field's value.
2647func (s *ClusterMetadata) SetForwardingAddressId(v string) *ClusterMetadata {
2648	s.ForwardingAddressId = &v
2649	return s
2650}
2651
2652// SetJobType sets the JobType field's value.
2653func (s *ClusterMetadata) SetJobType(v string) *ClusterMetadata {
2654	s.JobType = &v
2655	return s
2656}
2657
2658// SetKmsKeyARN sets the KmsKeyARN field's value.
2659func (s *ClusterMetadata) SetKmsKeyARN(v string) *ClusterMetadata {
2660	s.KmsKeyARN = &v
2661	return s
2662}
2663
2664// SetNotification sets the Notification field's value.
2665func (s *ClusterMetadata) SetNotification(v *Notification) *ClusterMetadata {
2666	s.Notification = v
2667	return s
2668}
2669
2670// SetResources sets the Resources field's value.
2671func (s *ClusterMetadata) SetResources(v *JobResource) *ClusterMetadata {
2672	s.Resources = v
2673	return s
2674}
2675
2676// SetRoleARN sets the RoleARN field's value.
2677func (s *ClusterMetadata) SetRoleARN(v string) *ClusterMetadata {
2678	s.RoleARN = &v
2679	return s
2680}
2681
2682// SetShippingOption sets the ShippingOption field's value.
2683func (s *ClusterMetadata) SetShippingOption(v string) *ClusterMetadata {
2684	s.ShippingOption = &v
2685	return s
2686}
2687
2688// SetSnowballType sets the SnowballType field's value.
2689func (s *ClusterMetadata) SetSnowballType(v string) *ClusterMetadata {
2690	s.SnowballType = &v
2691	return s
2692}
2693
2694// SetTaxDocuments sets the TaxDocuments field's value.
2695func (s *ClusterMetadata) SetTaxDocuments(v *TaxDocuments) *ClusterMetadata {
2696	s.TaxDocuments = v
2697	return s
2698}
2699
2700// A JSON-formatted object that describes a compatible Amazon Machine Image
2701// (AMI), including the ID and name for a Snow device AMI. This AMI is compatible
2702// with the device's physical hardware requirements, and it should be able to
2703// be run in an SBE1 instance on the device.
2704type CompatibleImage struct {
2705	_ struct{} `type:"structure"`
2706
2707	// The unique identifier for an individual Snow device AMI.
2708	AmiId *string `min:"1" type:"string"`
2709
2710	// The optional name of a compatible image.
2711	Name *string `min:"1" type:"string"`
2712}
2713
2714// String returns the string representation
2715func (s CompatibleImage) String() string {
2716	return awsutil.Prettify(s)
2717}
2718
2719// GoString returns the string representation
2720func (s CompatibleImage) GoString() string {
2721	return s.String()
2722}
2723
2724// SetAmiId sets the AmiId field's value.
2725func (s *CompatibleImage) SetAmiId(v string) *CompatibleImage {
2726	s.AmiId = &v
2727	return s
2728}
2729
2730// SetName sets the Name field's value.
2731func (s *CompatibleImage) SetName(v string) *CompatibleImage {
2732	s.Name = &v
2733	return s
2734}
2735
2736// You get this exception when you call CreateReturnShippingLabel more than
2737// once when other requests are not completed.
2738type ConflictException struct {
2739	_            struct{}                  `type:"structure"`
2740	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2741
2742	ConflictResource *string `min:"1" type:"string"`
2743
2744	Message_ *string `locationName:"Message" min:"1" type:"string"`
2745}
2746
2747// String returns the string representation
2748func (s ConflictException) String() string {
2749	return awsutil.Prettify(s)
2750}
2751
2752// GoString returns the string representation
2753func (s ConflictException) GoString() string {
2754	return s.String()
2755}
2756
2757func newErrorConflictException(v protocol.ResponseMetadata) error {
2758	return &ConflictException{
2759		RespMetadata: v,
2760	}
2761}
2762
2763// Code returns the exception type name.
2764func (s *ConflictException) Code() string {
2765	return "ConflictException"
2766}
2767
2768// Message returns the exception's message.
2769func (s *ConflictException) Message() string {
2770	if s.Message_ != nil {
2771		return *s.Message_
2772	}
2773	return ""
2774}
2775
2776// OrigErr always returns nil, satisfies awserr.Error interface.
2777func (s *ConflictException) OrigErr() error {
2778	return nil
2779}
2780
2781func (s *ConflictException) Error() string {
2782	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
2783}
2784
2785// Status code returns the HTTP status code for the request's response error.
2786func (s *ConflictException) StatusCode() int {
2787	return s.RespMetadata.StatusCode
2788}
2789
2790// RequestID returns the service's response RequestID for request.
2791func (s *ConflictException) RequestID() string {
2792	return s.RespMetadata.RequestID
2793}
2794
2795type CreateAddressInput struct {
2796	_ struct{} `type:"structure"`
2797
2798	// The address that you want the Snow device shipped to.
2799	//
2800	// Address is a required field
2801	Address *Address `type:"structure" required:"true"`
2802}
2803
2804// String returns the string representation
2805func (s CreateAddressInput) String() string {
2806	return awsutil.Prettify(s)
2807}
2808
2809// GoString returns the string representation
2810func (s CreateAddressInput) GoString() string {
2811	return s.String()
2812}
2813
2814// Validate inspects the fields of the type to determine if they are valid.
2815func (s *CreateAddressInput) Validate() error {
2816	invalidParams := request.ErrInvalidParams{Context: "CreateAddressInput"}
2817	if s.Address == nil {
2818		invalidParams.Add(request.NewErrParamRequired("Address"))
2819	}
2820	if s.Address != nil {
2821		if err := s.Address.Validate(); err != nil {
2822			invalidParams.AddNested("Address", err.(request.ErrInvalidParams))
2823		}
2824	}
2825
2826	if invalidParams.Len() > 0 {
2827		return invalidParams
2828	}
2829	return nil
2830}
2831
2832// SetAddress sets the Address field's value.
2833func (s *CreateAddressInput) SetAddress(v *Address) *CreateAddressInput {
2834	s.Address = v
2835	return s
2836}
2837
2838type CreateAddressOutput struct {
2839	_ struct{} `type:"structure"`
2840
2841	// The automatically generated ID for a specific address. You'll use this ID
2842	// when you create a job to specify which address you want the Snow device for
2843	// that job shipped to.
2844	AddressId *string `min:"1" type:"string"`
2845}
2846
2847// String returns the string representation
2848func (s CreateAddressOutput) String() string {
2849	return awsutil.Prettify(s)
2850}
2851
2852// GoString returns the string representation
2853func (s CreateAddressOutput) GoString() string {
2854	return s.String()
2855}
2856
2857// SetAddressId sets the AddressId field's value.
2858func (s *CreateAddressOutput) SetAddressId(v string) *CreateAddressOutput {
2859	s.AddressId = &v
2860	return s
2861}
2862
2863type CreateClusterInput struct {
2864	_ struct{} `type:"structure"`
2865
2866	// The ID for the address that you want the cluster shipped to.
2867	//
2868	// AddressId is a required field
2869	AddressId *string `min:"40" type:"string" required:"true"`
2870
2871	// An optional description of this specific cluster, for example Environmental
2872	// Data Cluster-01.
2873	Description *string `min:"1" type:"string"`
2874
2875	// The forwarding address ID for a cluster. This field is not supported in most
2876	// regions.
2877	ForwardingAddressId *string `min:"40" type:"string"`
2878
2879	// The type of job for this cluster. Currently, the only job type supported
2880	// for clusters is LOCAL_USE.
2881	//
2882	// JobType is a required field
2883	JobType *string `type:"string" required:"true" enum:"JobType"`
2884
2885	// The KmsKeyARN value that you want to associate with this cluster. KmsKeyARN
2886	// values are created by using the CreateKey (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
2887	// API action in AWS Key Management Service (AWS KMS).
2888	KmsKeyARN *string `type:"string"`
2889
2890	// The Amazon Simple Notification Service (Amazon SNS) notification settings
2891	// for this cluster.
2892	Notification *Notification `type:"structure"`
2893
2894	// The resources associated with the cluster job. These resources include Amazon
2895	// S3 buckets and optional AWS Lambda functions written in the Python language.
2896	//
2897	// Resources is a required field
2898	Resources *JobResource `type:"structure" required:"true"`
2899
2900	// The RoleARN that you want to associate with this cluster. RoleArn values
2901	// are created by using the CreateRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)
2902	// API action in AWS Identity and Access Management (IAM).
2903	//
2904	// RoleARN is a required field
2905	RoleARN *string `type:"string" required:"true"`
2906
2907	// The shipping speed for each node in this cluster. This speed doesn't dictate
2908	// how soon you'll get each Snowball Edge device, rather it represents how quickly
2909	// each device moves to its destination while in transit. Regional shipping
2910	// speeds are as follows:
2911	//
2912	//    * In Australia, you have access to express shipping. Typically, Snow devices
2913	//    shipped express are delivered in about a day.
2914	//
2915	//    * In the European Union (EU), you have access to express shipping. Typically,
2916	//    Snow devices shipped express are delivered in about a day. In addition,
2917	//    most countries in the EU have access to standard shipping, which typically
2918	//    takes less than a week, one way.
2919	//
2920	//    * In India, Snow device are delivered in one to seven days.
2921	//
2922	//    * In the United States of America (US), you have access to one-day shipping
2923	//    and two-day shipping.
2924	//
2925	//    * In Australia, you have access to express shipping. Typically, devices
2926	//    shipped express are delivered in about a day.
2927	//
2928	//    * In the European Union (EU), you have access to express shipping. Typically,
2929	//    Snow devices shipped express are delivered in about a day. In addition,
2930	//    most countries in the EU have access to standard shipping, which typically
2931	//    takes less than a week, one way.
2932	//
2933	//    * In India, Snow device are delivered in one to seven days.
2934	//
2935	//    * In the US, you have access to one-day shipping and two-day shipping.
2936	//
2937	// ShippingOption is a required field
2938	ShippingOption *string `type:"string" required:"true" enum:"ShippingOption"`
2939
2940	// The type of AWS Snow Family device to use for this cluster.
2941	//
2942	// For cluster jobs, AWS Snow Family currently supports only the EDGE device
2943	// type.
2944	SnowballType *string `type:"string" enum:"Type"`
2945
2946	// The tax documents required in your AWS Region.
2947	TaxDocuments *TaxDocuments `type:"structure"`
2948}
2949
2950// String returns the string representation
2951func (s CreateClusterInput) String() string {
2952	return awsutil.Prettify(s)
2953}
2954
2955// GoString returns the string representation
2956func (s CreateClusterInput) GoString() string {
2957	return s.String()
2958}
2959
2960// Validate inspects the fields of the type to determine if they are valid.
2961func (s *CreateClusterInput) Validate() error {
2962	invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"}
2963	if s.AddressId == nil {
2964		invalidParams.Add(request.NewErrParamRequired("AddressId"))
2965	}
2966	if s.AddressId != nil && len(*s.AddressId) < 40 {
2967		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
2968	}
2969	if s.Description != nil && len(*s.Description) < 1 {
2970		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
2971	}
2972	if s.ForwardingAddressId != nil && len(*s.ForwardingAddressId) < 40 {
2973		invalidParams.Add(request.NewErrParamMinLen("ForwardingAddressId", 40))
2974	}
2975	if s.JobType == nil {
2976		invalidParams.Add(request.NewErrParamRequired("JobType"))
2977	}
2978	if s.Resources == nil {
2979		invalidParams.Add(request.NewErrParamRequired("Resources"))
2980	}
2981	if s.RoleARN == nil {
2982		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
2983	}
2984	if s.ShippingOption == nil {
2985		invalidParams.Add(request.NewErrParamRequired("ShippingOption"))
2986	}
2987	if s.Resources != nil {
2988		if err := s.Resources.Validate(); err != nil {
2989			invalidParams.AddNested("Resources", err.(request.ErrInvalidParams))
2990		}
2991	}
2992
2993	if invalidParams.Len() > 0 {
2994		return invalidParams
2995	}
2996	return nil
2997}
2998
2999// SetAddressId sets the AddressId field's value.
3000func (s *CreateClusterInput) SetAddressId(v string) *CreateClusterInput {
3001	s.AddressId = &v
3002	return s
3003}
3004
3005// SetDescription sets the Description field's value.
3006func (s *CreateClusterInput) SetDescription(v string) *CreateClusterInput {
3007	s.Description = &v
3008	return s
3009}
3010
3011// SetForwardingAddressId sets the ForwardingAddressId field's value.
3012func (s *CreateClusterInput) SetForwardingAddressId(v string) *CreateClusterInput {
3013	s.ForwardingAddressId = &v
3014	return s
3015}
3016
3017// SetJobType sets the JobType field's value.
3018func (s *CreateClusterInput) SetJobType(v string) *CreateClusterInput {
3019	s.JobType = &v
3020	return s
3021}
3022
3023// SetKmsKeyARN sets the KmsKeyARN field's value.
3024func (s *CreateClusterInput) SetKmsKeyARN(v string) *CreateClusterInput {
3025	s.KmsKeyARN = &v
3026	return s
3027}
3028
3029// SetNotification sets the Notification field's value.
3030func (s *CreateClusterInput) SetNotification(v *Notification) *CreateClusterInput {
3031	s.Notification = v
3032	return s
3033}
3034
3035// SetResources sets the Resources field's value.
3036func (s *CreateClusterInput) SetResources(v *JobResource) *CreateClusterInput {
3037	s.Resources = v
3038	return s
3039}
3040
3041// SetRoleARN sets the RoleARN field's value.
3042func (s *CreateClusterInput) SetRoleARN(v string) *CreateClusterInput {
3043	s.RoleARN = &v
3044	return s
3045}
3046
3047// SetShippingOption sets the ShippingOption field's value.
3048func (s *CreateClusterInput) SetShippingOption(v string) *CreateClusterInput {
3049	s.ShippingOption = &v
3050	return s
3051}
3052
3053// SetSnowballType sets the SnowballType field's value.
3054func (s *CreateClusterInput) SetSnowballType(v string) *CreateClusterInput {
3055	s.SnowballType = &v
3056	return s
3057}
3058
3059// SetTaxDocuments sets the TaxDocuments field's value.
3060func (s *CreateClusterInput) SetTaxDocuments(v *TaxDocuments) *CreateClusterInput {
3061	s.TaxDocuments = v
3062	return s
3063}
3064
3065type CreateClusterOutput struct {
3066	_ struct{} `type:"structure"`
3067
3068	// The automatically generated ID for a cluster.
3069	ClusterId *string `min:"39" type:"string"`
3070}
3071
3072// String returns the string representation
3073func (s CreateClusterOutput) String() string {
3074	return awsutil.Prettify(s)
3075}
3076
3077// GoString returns the string representation
3078func (s CreateClusterOutput) GoString() string {
3079	return s.String()
3080}
3081
3082// SetClusterId sets the ClusterId field's value.
3083func (s *CreateClusterOutput) SetClusterId(v string) *CreateClusterOutput {
3084	s.ClusterId = &v
3085	return s
3086}
3087
3088type CreateJobInput struct {
3089	_ struct{} `type:"structure"`
3090
3091	// The ID for the address that you want the Snow device shipped to.
3092	AddressId *string `min:"40" type:"string"`
3093
3094	// The ID of a cluster. If you're creating a job for a node in a cluster, you
3095	// need to provide only this clusterId value. The other job attributes are inherited
3096	// from the cluster.
3097	ClusterId *string `min:"39" type:"string"`
3098
3099	// Defines an optional description of this specific job, for example Important
3100	// Photos 2016-08-11.
3101	Description *string `min:"1" type:"string"`
3102
3103	// Defines the device configuration for an AWS Snowcone job.
3104	DeviceConfiguration *DeviceConfiguration `type:"structure"`
3105
3106	// The forwarding address ID for a job. This field is not supported in most
3107	// regions.
3108	ForwardingAddressId *string `min:"40" type:"string"`
3109
3110	// Defines the type of job that you're creating.
3111	JobType *string `type:"string" enum:"JobType"`
3112
3113	// The KmsKeyARN that you want to associate with this job. KmsKeyARNs are created
3114	// using the CreateKey (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
3115	// AWS Key Management Service (KMS) API action.
3116	KmsKeyARN *string `type:"string"`
3117
3118	// Defines the Amazon Simple Notification Service (Amazon SNS) notification
3119	// settings for this job.
3120	Notification *Notification `type:"structure"`
3121
3122	// Defines the Amazon S3 buckets associated with this job.
3123	//
3124	// With IMPORT jobs, you specify the bucket or buckets that your transferred
3125	// data will be imported into.
3126	//
3127	// With EXPORT jobs, you specify the bucket or buckets that your transferred
3128	// data will be exported from. Optionally, you can also specify a KeyRange value.
3129	// If you choose to export a range, you define the length of the range by providing
3130	// either an inclusive BeginMarker value, an inclusive EndMarker value, or both.
3131	// Ranges are UTF-8 binary sorted.
3132	Resources *JobResource `type:"structure"`
3133
3134	// The RoleARN that you want to associate with this job. RoleArns are created
3135	// using the CreateRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)
3136	// AWS Identity and Access Management (IAM) API action.
3137	RoleARN *string `type:"string"`
3138
3139	// The shipping speed for this job. This speed doesn't dictate how soon you'll
3140	// get the Snow device, rather it represents how quickly the Snow device moves
3141	// to its destination while in transit. Regional shipping speeds are as follows:
3142	//
3143	//    * In Australia, you have access to express shipping. Typically, Snow devices
3144	//    shipped express are delivered in about a day.
3145	//
3146	//    * In the European Union (EU), you have access to express shipping. Typically,
3147	//    Snow devices shipped express are delivered in about a day. In addition,
3148	//    most countries in the EU have access to standard shipping, which typically
3149	//    takes less than a week, one way.
3150	//
3151	//    * In India, Snow devices are delivered in one to seven days.
3152	//
3153	//    * In the US, you have access to one-day shipping and two-day shipping.
3154	ShippingOption *string `type:"string" enum:"ShippingOption"`
3155
3156	// If your job is being created in one of the US regions, you have the option
3157	// of specifying what size Snow device you'd like for this job. In all other
3158	// regions, Snowballs come with 80 TB in storage capacity.
3159	SnowballCapacityPreference *string `type:"string" enum:"Capacity"`
3160
3161	// The type of AWS Snow Family device to use for this job.
3162	//
3163	// For cluster jobs, AWS Snow Family currently supports only the EDGE device
3164	// type.
3165	//
3166	// The type of AWS Snow device to use for this job. Currently, the only supported
3167	// device type for cluster jobs is EDGE.
3168	//
3169	// For more information, see Snowball Edge Device Options (https://docs.aws.amazon.com/snowball/latest/developer-guide/device-differences.html)
3170	// in the Snowball Edge Developer Guide.
3171	SnowballType *string `type:"string" enum:"Type"`
3172
3173	// The tax documents required in your AWS Region.
3174	TaxDocuments *TaxDocuments `type:"structure"`
3175}
3176
3177// String returns the string representation
3178func (s CreateJobInput) String() string {
3179	return awsutil.Prettify(s)
3180}
3181
3182// GoString returns the string representation
3183func (s CreateJobInput) GoString() string {
3184	return s.String()
3185}
3186
3187// Validate inspects the fields of the type to determine if they are valid.
3188func (s *CreateJobInput) Validate() error {
3189	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
3190	if s.AddressId != nil && len(*s.AddressId) < 40 {
3191		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
3192	}
3193	if s.ClusterId != nil && len(*s.ClusterId) < 39 {
3194		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 39))
3195	}
3196	if s.Description != nil && len(*s.Description) < 1 {
3197		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
3198	}
3199	if s.ForwardingAddressId != nil && len(*s.ForwardingAddressId) < 40 {
3200		invalidParams.Add(request.NewErrParamMinLen("ForwardingAddressId", 40))
3201	}
3202	if s.Resources != nil {
3203		if err := s.Resources.Validate(); err != nil {
3204			invalidParams.AddNested("Resources", err.(request.ErrInvalidParams))
3205		}
3206	}
3207
3208	if invalidParams.Len() > 0 {
3209		return invalidParams
3210	}
3211	return nil
3212}
3213
3214// SetAddressId sets the AddressId field's value.
3215func (s *CreateJobInput) SetAddressId(v string) *CreateJobInput {
3216	s.AddressId = &v
3217	return s
3218}
3219
3220// SetClusterId sets the ClusterId field's value.
3221func (s *CreateJobInput) SetClusterId(v string) *CreateJobInput {
3222	s.ClusterId = &v
3223	return s
3224}
3225
3226// SetDescription sets the Description field's value.
3227func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
3228	s.Description = &v
3229	return s
3230}
3231
3232// SetDeviceConfiguration sets the DeviceConfiguration field's value.
3233func (s *CreateJobInput) SetDeviceConfiguration(v *DeviceConfiguration) *CreateJobInput {
3234	s.DeviceConfiguration = v
3235	return s
3236}
3237
3238// SetForwardingAddressId sets the ForwardingAddressId field's value.
3239func (s *CreateJobInput) SetForwardingAddressId(v string) *CreateJobInput {
3240	s.ForwardingAddressId = &v
3241	return s
3242}
3243
3244// SetJobType sets the JobType field's value.
3245func (s *CreateJobInput) SetJobType(v string) *CreateJobInput {
3246	s.JobType = &v
3247	return s
3248}
3249
3250// SetKmsKeyARN sets the KmsKeyARN field's value.
3251func (s *CreateJobInput) SetKmsKeyARN(v string) *CreateJobInput {
3252	s.KmsKeyARN = &v
3253	return s
3254}
3255
3256// SetNotification sets the Notification field's value.
3257func (s *CreateJobInput) SetNotification(v *Notification) *CreateJobInput {
3258	s.Notification = v
3259	return s
3260}
3261
3262// SetResources sets the Resources field's value.
3263func (s *CreateJobInput) SetResources(v *JobResource) *CreateJobInput {
3264	s.Resources = v
3265	return s
3266}
3267
3268// SetRoleARN sets the RoleARN field's value.
3269func (s *CreateJobInput) SetRoleARN(v string) *CreateJobInput {
3270	s.RoleARN = &v
3271	return s
3272}
3273
3274// SetShippingOption sets the ShippingOption field's value.
3275func (s *CreateJobInput) SetShippingOption(v string) *CreateJobInput {
3276	s.ShippingOption = &v
3277	return s
3278}
3279
3280// SetSnowballCapacityPreference sets the SnowballCapacityPreference field's value.
3281func (s *CreateJobInput) SetSnowballCapacityPreference(v string) *CreateJobInput {
3282	s.SnowballCapacityPreference = &v
3283	return s
3284}
3285
3286// SetSnowballType sets the SnowballType field's value.
3287func (s *CreateJobInput) SetSnowballType(v string) *CreateJobInput {
3288	s.SnowballType = &v
3289	return s
3290}
3291
3292// SetTaxDocuments sets the TaxDocuments field's value.
3293func (s *CreateJobInput) SetTaxDocuments(v *TaxDocuments) *CreateJobInput {
3294	s.TaxDocuments = v
3295	return s
3296}
3297
3298type CreateJobOutput struct {
3299	_ struct{} `type:"structure"`
3300
3301	// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000.
3302	JobId *string `min:"39" type:"string"`
3303}
3304
3305// String returns the string representation
3306func (s CreateJobOutput) String() string {
3307	return awsutil.Prettify(s)
3308}
3309
3310// GoString returns the string representation
3311func (s CreateJobOutput) GoString() string {
3312	return s.String()
3313}
3314
3315// SetJobId sets the JobId field's value.
3316func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
3317	s.JobId = &v
3318	return s
3319}
3320
3321type CreateReturnShippingLabelInput struct {
3322	_ struct{} `type:"structure"`
3323
3324	// The ID for a job that you want to create the return shipping label for. For
3325	// example JID123e4567-e89b-12d3-a456-426655440000.
3326	//
3327	// JobId is a required field
3328	JobId *string `min:"39" type:"string" required:"true"`
3329
3330	// The shipping speed for a particular job. This speed doesn't dictate how soon
3331	// the device is returned to AWS. This speed represents how quickly it moves
3332	// to its destination while in transit. Regional shipping speeds are as follows:
3333	ShippingOption *string `type:"string" enum:"ShippingOption"`
3334}
3335
3336// String returns the string representation
3337func (s CreateReturnShippingLabelInput) String() string {
3338	return awsutil.Prettify(s)
3339}
3340
3341// GoString returns the string representation
3342func (s CreateReturnShippingLabelInput) GoString() string {
3343	return s.String()
3344}
3345
3346// Validate inspects the fields of the type to determine if they are valid.
3347func (s *CreateReturnShippingLabelInput) Validate() error {
3348	invalidParams := request.ErrInvalidParams{Context: "CreateReturnShippingLabelInput"}
3349	if s.JobId == nil {
3350		invalidParams.Add(request.NewErrParamRequired("JobId"))
3351	}
3352	if s.JobId != nil && len(*s.JobId) < 39 {
3353		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
3354	}
3355
3356	if invalidParams.Len() > 0 {
3357		return invalidParams
3358	}
3359	return nil
3360}
3361
3362// SetJobId sets the JobId field's value.
3363func (s *CreateReturnShippingLabelInput) SetJobId(v string) *CreateReturnShippingLabelInput {
3364	s.JobId = &v
3365	return s
3366}
3367
3368// SetShippingOption sets the ShippingOption field's value.
3369func (s *CreateReturnShippingLabelInput) SetShippingOption(v string) *CreateReturnShippingLabelInput {
3370	s.ShippingOption = &v
3371	return s
3372}
3373
3374type CreateReturnShippingLabelOutput struct {
3375	_ struct{} `type:"structure"`
3376
3377	// The status information of the task on a Snow device that is being returned
3378	// to AWS.
3379	Status *string `type:"string" enum:"ShippingLabelStatus"`
3380}
3381
3382// String returns the string representation
3383func (s CreateReturnShippingLabelOutput) String() string {
3384	return awsutil.Prettify(s)
3385}
3386
3387// GoString returns the string representation
3388func (s CreateReturnShippingLabelOutput) GoString() string {
3389	return s.String()
3390}
3391
3392// SetStatus sets the Status field's value.
3393func (s *CreateReturnShippingLabelOutput) SetStatus(v string) *CreateReturnShippingLabelOutput {
3394	s.Status = &v
3395	return s
3396}
3397
3398// Defines the real-time status of a Snow device's data transfer while the device
3399// is at AWS. This data is only available while a job has a JobState value of
3400// InProgress, for both import and export jobs.
3401type DataTransfer struct {
3402	_ struct{} `type:"structure"`
3403
3404	// The number of bytes transferred between a Snow device and Amazon S3.
3405	BytesTransferred *int64 `type:"long"`
3406
3407	// The number of objects transferred between a Snow device and Amazon S3.
3408	ObjectsTransferred *int64 `type:"long"`
3409
3410	// The total bytes of data for a transfer between a Snow device and Amazon S3.
3411	// This value is set to 0 (zero) until all the keys that will be transferred
3412	// have been listed.
3413	TotalBytes *int64 `type:"long"`
3414
3415	// The total number of objects for a transfer between a Snow device and Amazon
3416	// S3. This value is set to 0 (zero) until all the keys that will be transferred
3417	// have been listed.
3418	TotalObjects *int64 `type:"long"`
3419}
3420
3421// String returns the string representation
3422func (s DataTransfer) String() string {
3423	return awsutil.Prettify(s)
3424}
3425
3426// GoString returns the string representation
3427func (s DataTransfer) GoString() string {
3428	return s.String()
3429}
3430
3431// SetBytesTransferred sets the BytesTransferred field's value.
3432func (s *DataTransfer) SetBytesTransferred(v int64) *DataTransfer {
3433	s.BytesTransferred = &v
3434	return s
3435}
3436
3437// SetObjectsTransferred sets the ObjectsTransferred field's value.
3438func (s *DataTransfer) SetObjectsTransferred(v int64) *DataTransfer {
3439	s.ObjectsTransferred = &v
3440	return s
3441}
3442
3443// SetTotalBytes sets the TotalBytes field's value.
3444func (s *DataTransfer) SetTotalBytes(v int64) *DataTransfer {
3445	s.TotalBytes = &v
3446	return s
3447}
3448
3449// SetTotalObjects sets the TotalObjects field's value.
3450func (s *DataTransfer) SetTotalObjects(v int64) *DataTransfer {
3451	s.TotalObjects = &v
3452	return s
3453}
3454
3455type DescribeAddressInput struct {
3456	_ struct{} `type:"structure"`
3457
3458	// The automatically generated ID for a specific address.
3459	//
3460	// AddressId is a required field
3461	AddressId *string `min:"40" type:"string" required:"true"`
3462}
3463
3464// String returns the string representation
3465func (s DescribeAddressInput) String() string {
3466	return awsutil.Prettify(s)
3467}
3468
3469// GoString returns the string representation
3470func (s DescribeAddressInput) GoString() string {
3471	return s.String()
3472}
3473
3474// Validate inspects the fields of the type to determine if they are valid.
3475func (s *DescribeAddressInput) Validate() error {
3476	invalidParams := request.ErrInvalidParams{Context: "DescribeAddressInput"}
3477	if s.AddressId == nil {
3478		invalidParams.Add(request.NewErrParamRequired("AddressId"))
3479	}
3480	if s.AddressId != nil && len(*s.AddressId) < 40 {
3481		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
3482	}
3483
3484	if invalidParams.Len() > 0 {
3485		return invalidParams
3486	}
3487	return nil
3488}
3489
3490// SetAddressId sets the AddressId field's value.
3491func (s *DescribeAddressInput) SetAddressId(v string) *DescribeAddressInput {
3492	s.AddressId = &v
3493	return s
3494}
3495
3496type DescribeAddressOutput struct {
3497	_ struct{} `type:"structure"`
3498
3499	// The address that you want the Snow device(s) associated with a specific job
3500	// to be shipped to.
3501	Address *Address `type:"structure"`
3502}
3503
3504// String returns the string representation
3505func (s DescribeAddressOutput) String() string {
3506	return awsutil.Prettify(s)
3507}
3508
3509// GoString returns the string representation
3510func (s DescribeAddressOutput) GoString() string {
3511	return s.String()
3512}
3513
3514// SetAddress sets the Address field's value.
3515func (s *DescribeAddressOutput) SetAddress(v *Address) *DescribeAddressOutput {
3516	s.Address = v
3517	return s
3518}
3519
3520type DescribeAddressesInput struct {
3521	_ struct{} `type:"structure"`
3522
3523	// The number of ADDRESS objects to return.
3524	MaxResults *int64 `type:"integer"`
3525
3526	// HTTP requests are stateless. To identify what object comes "next" in the
3527	// list of ADDRESS objects, you have the option of specifying a value for NextToken
3528	// as the starting point for your list of returned addresses.
3529	NextToken *string `min:"1" type:"string"`
3530}
3531
3532// String returns the string representation
3533func (s DescribeAddressesInput) String() string {
3534	return awsutil.Prettify(s)
3535}
3536
3537// GoString returns the string representation
3538func (s DescribeAddressesInput) GoString() string {
3539	return s.String()
3540}
3541
3542// Validate inspects the fields of the type to determine if they are valid.
3543func (s *DescribeAddressesInput) Validate() error {
3544	invalidParams := request.ErrInvalidParams{Context: "DescribeAddressesInput"}
3545	if s.NextToken != nil && len(*s.NextToken) < 1 {
3546		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3547	}
3548
3549	if invalidParams.Len() > 0 {
3550		return invalidParams
3551	}
3552	return nil
3553}
3554
3555// SetMaxResults sets the MaxResults field's value.
3556func (s *DescribeAddressesInput) SetMaxResults(v int64) *DescribeAddressesInput {
3557	s.MaxResults = &v
3558	return s
3559}
3560
3561// SetNextToken sets the NextToken field's value.
3562func (s *DescribeAddressesInput) SetNextToken(v string) *DescribeAddressesInput {
3563	s.NextToken = &v
3564	return s
3565}
3566
3567type DescribeAddressesOutput struct {
3568	_ struct{} `type:"structure"`
3569
3570	// The Snow device shipping addresses that were created for this account.
3571	Addresses []*Address `type:"list"`
3572
3573	// HTTP requests are stateless. If you use the automatically generated NextToken
3574	// value in your next DescribeAddresses call, your list of returned addresses
3575	// will start from this point in the array.
3576	NextToken *string `min:"1" type:"string"`
3577}
3578
3579// String returns the string representation
3580func (s DescribeAddressesOutput) String() string {
3581	return awsutil.Prettify(s)
3582}
3583
3584// GoString returns the string representation
3585func (s DescribeAddressesOutput) GoString() string {
3586	return s.String()
3587}
3588
3589// SetAddresses sets the Addresses field's value.
3590func (s *DescribeAddressesOutput) SetAddresses(v []*Address) *DescribeAddressesOutput {
3591	s.Addresses = v
3592	return s
3593}
3594
3595// SetNextToken sets the NextToken field's value.
3596func (s *DescribeAddressesOutput) SetNextToken(v string) *DescribeAddressesOutput {
3597	s.NextToken = &v
3598	return s
3599}
3600
3601type DescribeClusterInput struct {
3602	_ struct{} `type:"structure"`
3603
3604	// The automatically generated ID for a cluster.
3605	//
3606	// ClusterId is a required field
3607	ClusterId *string `min:"39" type:"string" required:"true"`
3608}
3609
3610// String returns the string representation
3611func (s DescribeClusterInput) String() string {
3612	return awsutil.Prettify(s)
3613}
3614
3615// GoString returns the string representation
3616func (s DescribeClusterInput) GoString() string {
3617	return s.String()
3618}
3619
3620// Validate inspects the fields of the type to determine if they are valid.
3621func (s *DescribeClusterInput) Validate() error {
3622	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
3623	if s.ClusterId == nil {
3624		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
3625	}
3626	if s.ClusterId != nil && len(*s.ClusterId) < 39 {
3627		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 39))
3628	}
3629
3630	if invalidParams.Len() > 0 {
3631		return invalidParams
3632	}
3633	return nil
3634}
3635
3636// SetClusterId sets the ClusterId field's value.
3637func (s *DescribeClusterInput) SetClusterId(v string) *DescribeClusterInput {
3638	s.ClusterId = &v
3639	return s
3640}
3641
3642type DescribeClusterOutput struct {
3643	_ struct{} `type:"structure"`
3644
3645	// Information about a specific cluster, including shipping information, cluster
3646	// status, and other important metadata.
3647	ClusterMetadata *ClusterMetadata `type:"structure"`
3648}
3649
3650// String returns the string representation
3651func (s DescribeClusterOutput) String() string {
3652	return awsutil.Prettify(s)
3653}
3654
3655// GoString returns the string representation
3656func (s DescribeClusterOutput) GoString() string {
3657	return s.String()
3658}
3659
3660// SetClusterMetadata sets the ClusterMetadata field's value.
3661func (s *DescribeClusterOutput) SetClusterMetadata(v *ClusterMetadata) *DescribeClusterOutput {
3662	s.ClusterMetadata = v
3663	return s
3664}
3665
3666type DescribeJobInput struct {
3667	_ struct{} `type:"structure"`
3668
3669	// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000.
3670	//
3671	// JobId is a required field
3672	JobId *string `min:"39" type:"string" required:"true"`
3673}
3674
3675// String returns the string representation
3676func (s DescribeJobInput) String() string {
3677	return awsutil.Prettify(s)
3678}
3679
3680// GoString returns the string representation
3681func (s DescribeJobInput) GoString() string {
3682	return s.String()
3683}
3684
3685// Validate inspects the fields of the type to determine if they are valid.
3686func (s *DescribeJobInput) Validate() error {
3687	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
3688	if s.JobId == nil {
3689		invalidParams.Add(request.NewErrParamRequired("JobId"))
3690	}
3691	if s.JobId != nil && len(*s.JobId) < 39 {
3692		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
3693	}
3694
3695	if invalidParams.Len() > 0 {
3696		return invalidParams
3697	}
3698	return nil
3699}
3700
3701// SetJobId sets the JobId field's value.
3702func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
3703	s.JobId = &v
3704	return s
3705}
3706
3707type DescribeJobOutput struct {
3708	_ struct{} `type:"structure"`
3709
3710	// Information about a specific job, including shipping information, job status,
3711	// and other important metadata.
3712	JobMetadata *JobMetadata `type:"structure"`
3713
3714	// Information about a specific job part (in the case of an export job), including
3715	// shipping information, job status, and other important metadata.
3716	SubJobMetadata []*JobMetadata `type:"list"`
3717}
3718
3719// String returns the string representation
3720func (s DescribeJobOutput) String() string {
3721	return awsutil.Prettify(s)
3722}
3723
3724// GoString returns the string representation
3725func (s DescribeJobOutput) GoString() string {
3726	return s.String()
3727}
3728
3729// SetJobMetadata sets the JobMetadata field's value.
3730func (s *DescribeJobOutput) SetJobMetadata(v *JobMetadata) *DescribeJobOutput {
3731	s.JobMetadata = v
3732	return s
3733}
3734
3735// SetSubJobMetadata sets the SubJobMetadata field's value.
3736func (s *DescribeJobOutput) SetSubJobMetadata(v []*JobMetadata) *DescribeJobOutput {
3737	s.SubJobMetadata = v
3738	return s
3739}
3740
3741type DescribeReturnShippingLabelInput struct {
3742	_ struct{} `type:"structure"`
3743
3744	// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000.
3745	JobId *string `min:"39" type:"string"`
3746}
3747
3748// String returns the string representation
3749func (s DescribeReturnShippingLabelInput) String() string {
3750	return awsutil.Prettify(s)
3751}
3752
3753// GoString returns the string representation
3754func (s DescribeReturnShippingLabelInput) GoString() string {
3755	return s.String()
3756}
3757
3758// Validate inspects the fields of the type to determine if they are valid.
3759func (s *DescribeReturnShippingLabelInput) Validate() error {
3760	invalidParams := request.ErrInvalidParams{Context: "DescribeReturnShippingLabelInput"}
3761	if s.JobId != nil && len(*s.JobId) < 39 {
3762		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
3763	}
3764
3765	if invalidParams.Len() > 0 {
3766		return invalidParams
3767	}
3768	return nil
3769}
3770
3771// SetJobId sets the JobId field's value.
3772func (s *DescribeReturnShippingLabelInput) SetJobId(v string) *DescribeReturnShippingLabelInput {
3773	s.JobId = &v
3774	return s
3775}
3776
3777type DescribeReturnShippingLabelOutput struct {
3778	_ struct{} `type:"structure"`
3779
3780	// The expiration date of the current return shipping label.
3781	ExpirationDate *time.Time `type:"timestamp"`
3782
3783	// The status information of the task on a Snow device that is being returned
3784	// to AWS.
3785	Status *string `type:"string" enum:"ShippingLabelStatus"`
3786}
3787
3788// String returns the string representation
3789func (s DescribeReturnShippingLabelOutput) String() string {
3790	return awsutil.Prettify(s)
3791}
3792
3793// GoString returns the string representation
3794func (s DescribeReturnShippingLabelOutput) GoString() string {
3795	return s.String()
3796}
3797
3798// SetExpirationDate sets the ExpirationDate field's value.
3799func (s *DescribeReturnShippingLabelOutput) SetExpirationDate(v time.Time) *DescribeReturnShippingLabelOutput {
3800	s.ExpirationDate = &v
3801	return s
3802}
3803
3804// SetStatus sets the Status field's value.
3805func (s *DescribeReturnShippingLabelOutput) SetStatus(v string) *DescribeReturnShippingLabelOutput {
3806	s.Status = &v
3807	return s
3808}
3809
3810// The container for SnowconeDeviceConfiguration.
3811type DeviceConfiguration struct {
3812	_ struct{} `type:"structure"`
3813
3814	// Returns information about the device configuration for an AWS Snowcone job.
3815	SnowconeDeviceConfiguration *SnowconeDeviceConfiguration `type:"structure"`
3816}
3817
3818// String returns the string representation
3819func (s DeviceConfiguration) String() string {
3820	return awsutil.Prettify(s)
3821}
3822
3823// GoString returns the string representation
3824func (s DeviceConfiguration) GoString() string {
3825	return s.String()
3826}
3827
3828// SetSnowconeDeviceConfiguration sets the SnowconeDeviceConfiguration field's value.
3829func (s *DeviceConfiguration) SetSnowconeDeviceConfiguration(v *SnowconeDeviceConfiguration) *DeviceConfiguration {
3830	s.SnowconeDeviceConfiguration = v
3831	return s
3832}
3833
3834// A JSON-formatted object that contains the IDs for an Amazon Machine Image
3835// (AMI), including the Amazon EC2 AMI ID and the Snow device AMI ID. Each AMI
3836// has these two IDs to simplify identifying the AMI in both the AWS Cloud and
3837// on the device.
3838type Ec2AmiResource struct {
3839	_ struct{} `type:"structure"`
3840
3841	// The ID of the AMI in Amazon EC2.
3842	//
3843	// AmiId is a required field
3844	AmiId *string `min:"12" type:"string" required:"true"`
3845
3846	// The ID of the AMI on the Snow device.
3847	SnowballAmiId *string `min:"1" type:"string"`
3848}
3849
3850// String returns the string representation
3851func (s Ec2AmiResource) String() string {
3852	return awsutil.Prettify(s)
3853}
3854
3855// GoString returns the string representation
3856func (s Ec2AmiResource) GoString() string {
3857	return s.String()
3858}
3859
3860// Validate inspects the fields of the type to determine if they are valid.
3861func (s *Ec2AmiResource) Validate() error {
3862	invalidParams := request.ErrInvalidParams{Context: "Ec2AmiResource"}
3863	if s.AmiId == nil {
3864		invalidParams.Add(request.NewErrParamRequired("AmiId"))
3865	}
3866	if s.AmiId != nil && len(*s.AmiId) < 12 {
3867		invalidParams.Add(request.NewErrParamMinLen("AmiId", 12))
3868	}
3869	if s.SnowballAmiId != nil && len(*s.SnowballAmiId) < 1 {
3870		invalidParams.Add(request.NewErrParamMinLen("SnowballAmiId", 1))
3871	}
3872
3873	if invalidParams.Len() > 0 {
3874		return invalidParams
3875	}
3876	return nil
3877}
3878
3879// SetAmiId sets the AmiId field's value.
3880func (s *Ec2AmiResource) SetAmiId(v string) *Ec2AmiResource {
3881	s.AmiId = &v
3882	return s
3883}
3884
3885// SetSnowballAmiId sets the SnowballAmiId field's value.
3886func (s *Ec2AmiResource) SetSnowballAmiId(v string) *Ec2AmiResource {
3887	s.SnowballAmiId = &v
3888	return s
3889}
3890
3891// Your IAM user lacks the necessary Amazon EC2 permissions to perform the attempted
3892// action.
3893type Ec2RequestFailedException struct {
3894	_            struct{}                  `type:"structure"`
3895	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3896
3897	Message_ *string `locationName:"Message" min:"1" type:"string"`
3898}
3899
3900// String returns the string representation
3901func (s Ec2RequestFailedException) String() string {
3902	return awsutil.Prettify(s)
3903}
3904
3905// GoString returns the string representation
3906func (s Ec2RequestFailedException) GoString() string {
3907	return s.String()
3908}
3909
3910func newErrorEc2RequestFailedException(v protocol.ResponseMetadata) error {
3911	return &Ec2RequestFailedException{
3912		RespMetadata: v,
3913	}
3914}
3915
3916// Code returns the exception type name.
3917func (s *Ec2RequestFailedException) Code() string {
3918	return "Ec2RequestFailedException"
3919}
3920
3921// Message returns the exception's message.
3922func (s *Ec2RequestFailedException) Message() string {
3923	if s.Message_ != nil {
3924		return *s.Message_
3925	}
3926	return ""
3927}
3928
3929// OrigErr always returns nil, satisfies awserr.Error interface.
3930func (s *Ec2RequestFailedException) OrigErr() error {
3931	return nil
3932}
3933
3934func (s *Ec2RequestFailedException) Error() string {
3935	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3936}
3937
3938// Status code returns the HTTP status code for the request's response error.
3939func (s *Ec2RequestFailedException) StatusCode() int {
3940	return s.RespMetadata.StatusCode
3941}
3942
3943// RequestID returns the service's response RequestID for request.
3944func (s *Ec2RequestFailedException) RequestID() string {
3945	return s.RespMetadata.RequestID
3946}
3947
3948// The container for the EventTriggerDefinition$EventResourceARN.
3949type EventTriggerDefinition struct {
3950	_ struct{} `type:"structure"`
3951
3952	// The Amazon Resource Name (ARN) for any local Amazon S3 resource that is an
3953	// AWS Lambda function's event trigger associated with this job.
3954	EventResourceARN *string `type:"string"`
3955}
3956
3957// String returns the string representation
3958func (s EventTriggerDefinition) String() string {
3959	return awsutil.Prettify(s)
3960}
3961
3962// GoString returns the string representation
3963func (s EventTriggerDefinition) GoString() string {
3964	return s.String()
3965}
3966
3967// SetEventResourceARN sets the EventResourceARN field's value.
3968func (s *EventTriggerDefinition) SetEventResourceARN(v string) *EventTriggerDefinition {
3969	s.EventResourceARN = &v
3970	return s
3971}
3972
3973type GetJobManifestInput struct {
3974	_ struct{} `type:"structure"`
3975
3976	// The ID for a job that you want to get the manifest file for, for example
3977	// JID123e4567-e89b-12d3-a456-426655440000.
3978	//
3979	// JobId is a required field
3980	JobId *string `min:"39" type:"string" required:"true"`
3981}
3982
3983// String returns the string representation
3984func (s GetJobManifestInput) String() string {
3985	return awsutil.Prettify(s)
3986}
3987
3988// GoString returns the string representation
3989func (s GetJobManifestInput) GoString() string {
3990	return s.String()
3991}
3992
3993// Validate inspects the fields of the type to determine if they are valid.
3994func (s *GetJobManifestInput) Validate() error {
3995	invalidParams := request.ErrInvalidParams{Context: "GetJobManifestInput"}
3996	if s.JobId == nil {
3997		invalidParams.Add(request.NewErrParamRequired("JobId"))
3998	}
3999	if s.JobId != nil && len(*s.JobId) < 39 {
4000		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
4001	}
4002
4003	if invalidParams.Len() > 0 {
4004		return invalidParams
4005	}
4006	return nil
4007}
4008
4009// SetJobId sets the JobId field's value.
4010func (s *GetJobManifestInput) SetJobId(v string) *GetJobManifestInput {
4011	s.JobId = &v
4012	return s
4013}
4014
4015type GetJobManifestOutput struct {
4016	_ struct{} `type:"structure"`
4017
4018	// The Amazon S3 presigned URL for the manifest file associated with the specified
4019	// JobId value.
4020	ManifestURI *string `min:"1" type:"string"`
4021}
4022
4023// String returns the string representation
4024func (s GetJobManifestOutput) String() string {
4025	return awsutil.Prettify(s)
4026}
4027
4028// GoString returns the string representation
4029func (s GetJobManifestOutput) GoString() string {
4030	return s.String()
4031}
4032
4033// SetManifestURI sets the ManifestURI field's value.
4034func (s *GetJobManifestOutput) SetManifestURI(v string) *GetJobManifestOutput {
4035	s.ManifestURI = &v
4036	return s
4037}
4038
4039type GetJobUnlockCodeInput struct {
4040	_ struct{} `type:"structure"`
4041
4042	// The ID for the job that you want to get the UnlockCode value for, for example
4043	// JID123e4567-e89b-12d3-a456-426655440000.
4044	//
4045	// JobId is a required field
4046	JobId *string `min:"39" type:"string" required:"true"`
4047}
4048
4049// String returns the string representation
4050func (s GetJobUnlockCodeInput) String() string {
4051	return awsutil.Prettify(s)
4052}
4053
4054// GoString returns the string representation
4055func (s GetJobUnlockCodeInput) GoString() string {
4056	return s.String()
4057}
4058
4059// Validate inspects the fields of the type to determine if they are valid.
4060func (s *GetJobUnlockCodeInput) Validate() error {
4061	invalidParams := request.ErrInvalidParams{Context: "GetJobUnlockCodeInput"}
4062	if s.JobId == nil {
4063		invalidParams.Add(request.NewErrParamRequired("JobId"))
4064	}
4065	if s.JobId != nil && len(*s.JobId) < 39 {
4066		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
4067	}
4068
4069	if invalidParams.Len() > 0 {
4070		return invalidParams
4071	}
4072	return nil
4073}
4074
4075// SetJobId sets the JobId field's value.
4076func (s *GetJobUnlockCodeInput) SetJobId(v string) *GetJobUnlockCodeInput {
4077	s.JobId = &v
4078	return s
4079}
4080
4081type GetJobUnlockCodeOutput struct {
4082	_ struct{} `type:"structure"`
4083
4084	// The UnlockCode value for the specified job. The UnlockCode value can be accessed
4085	// for up to 90 days after the job has been created.
4086	UnlockCode *string `min:"1" type:"string"`
4087}
4088
4089// String returns the string representation
4090func (s GetJobUnlockCodeOutput) String() string {
4091	return awsutil.Prettify(s)
4092}
4093
4094// GoString returns the string representation
4095func (s GetJobUnlockCodeOutput) GoString() string {
4096	return s.String()
4097}
4098
4099// SetUnlockCode sets the UnlockCode field's value.
4100func (s *GetJobUnlockCodeOutput) SetUnlockCode(v string) *GetJobUnlockCodeOutput {
4101	s.UnlockCode = &v
4102	return s
4103}
4104
4105type GetSnowballUsageInput struct {
4106	_ struct{} `type:"structure"`
4107}
4108
4109// String returns the string representation
4110func (s GetSnowballUsageInput) String() string {
4111	return awsutil.Prettify(s)
4112}
4113
4114// GoString returns the string representation
4115func (s GetSnowballUsageInput) GoString() string {
4116	return s.String()
4117}
4118
4119type GetSnowballUsageOutput struct {
4120	_ struct{} `type:"structure"`
4121
4122	// The service limit for number of Snow devices this account can have at once.
4123	// The default service limit is 1 (one).
4124	SnowballLimit *int64 `type:"integer"`
4125
4126	// The number of Snow devices that this account is currently using.
4127	SnowballsInUse *int64 `type:"integer"`
4128}
4129
4130// String returns the string representation
4131func (s GetSnowballUsageOutput) String() string {
4132	return awsutil.Prettify(s)
4133}
4134
4135// GoString returns the string representation
4136func (s GetSnowballUsageOutput) GoString() string {
4137	return s.String()
4138}
4139
4140// SetSnowballLimit sets the SnowballLimit field's value.
4141func (s *GetSnowballUsageOutput) SetSnowballLimit(v int64) *GetSnowballUsageOutput {
4142	s.SnowballLimit = &v
4143	return s
4144}
4145
4146// SetSnowballsInUse sets the SnowballsInUse field's value.
4147func (s *GetSnowballUsageOutput) SetSnowballsInUse(v int64) *GetSnowballUsageOutput {
4148	s.SnowballsInUse = &v
4149	return s
4150}
4151
4152type GetSoftwareUpdatesInput struct {
4153	_ struct{} `type:"structure"`
4154
4155	// The ID for a job that you want to get the software update file for, for example
4156	// JID123e4567-e89b-12d3-a456-426655440000.
4157	//
4158	// JobId is a required field
4159	JobId *string `min:"39" type:"string" required:"true"`
4160}
4161
4162// String returns the string representation
4163func (s GetSoftwareUpdatesInput) String() string {
4164	return awsutil.Prettify(s)
4165}
4166
4167// GoString returns the string representation
4168func (s GetSoftwareUpdatesInput) GoString() string {
4169	return s.String()
4170}
4171
4172// Validate inspects the fields of the type to determine if they are valid.
4173func (s *GetSoftwareUpdatesInput) Validate() error {
4174	invalidParams := request.ErrInvalidParams{Context: "GetSoftwareUpdatesInput"}
4175	if s.JobId == nil {
4176		invalidParams.Add(request.NewErrParamRequired("JobId"))
4177	}
4178	if s.JobId != nil && len(*s.JobId) < 39 {
4179		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
4180	}
4181
4182	if invalidParams.Len() > 0 {
4183		return invalidParams
4184	}
4185	return nil
4186}
4187
4188// SetJobId sets the JobId field's value.
4189func (s *GetSoftwareUpdatesInput) SetJobId(v string) *GetSoftwareUpdatesInput {
4190	s.JobId = &v
4191	return s
4192}
4193
4194type GetSoftwareUpdatesOutput struct {
4195	_ struct{} `type:"structure"`
4196
4197	// The Amazon S3 presigned URL for the update file associated with the specified
4198	// JobId value. The software update will be available for 2 days after this
4199	// request is made. To access an update after the 2 days have passed, you'll
4200	// have to make another call to GetSoftwareUpdates.
4201	UpdatesURI *string `min:"1" type:"string"`
4202}
4203
4204// String returns the string representation
4205func (s GetSoftwareUpdatesOutput) String() string {
4206	return awsutil.Prettify(s)
4207}
4208
4209// GoString returns the string representation
4210func (s GetSoftwareUpdatesOutput) GoString() string {
4211	return s.String()
4212}
4213
4214// SetUpdatesURI sets the UpdatesURI field's value.
4215func (s *GetSoftwareUpdatesOutput) SetUpdatesURI(v string) *GetSoftwareUpdatesOutput {
4216	s.UpdatesURI = &v
4217	return s
4218}
4219
4220// The tax documents required in AWS Regions in India.
4221type INDTaxDocuments struct {
4222	_ struct{} `type:"structure"`
4223
4224	// The Goods and Services Tax (GST) documents required in AWS Regions in India.
4225	GSTIN *string `type:"string"`
4226}
4227
4228// String returns the string representation
4229func (s INDTaxDocuments) String() string {
4230	return awsutil.Prettify(s)
4231}
4232
4233// GoString returns the string representation
4234func (s INDTaxDocuments) GoString() string {
4235	return s.String()
4236}
4237
4238// SetGSTIN sets the GSTIN field's value.
4239func (s *INDTaxDocuments) SetGSTIN(v string) *INDTaxDocuments {
4240	s.GSTIN = &v
4241	return s
4242}
4243
4244// The address provided was invalid. Check the address with your region's carrier,
4245// and try again.
4246type InvalidAddressException struct {
4247	_            struct{}                  `type:"structure"`
4248	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4249
4250	Message_ *string `locationName:"Message" min:"1" type:"string"`
4251}
4252
4253// String returns the string representation
4254func (s InvalidAddressException) String() string {
4255	return awsutil.Prettify(s)
4256}
4257
4258// GoString returns the string representation
4259func (s InvalidAddressException) GoString() string {
4260	return s.String()
4261}
4262
4263func newErrorInvalidAddressException(v protocol.ResponseMetadata) error {
4264	return &InvalidAddressException{
4265		RespMetadata: v,
4266	}
4267}
4268
4269// Code returns the exception type name.
4270func (s *InvalidAddressException) Code() string {
4271	return "InvalidAddressException"
4272}
4273
4274// Message returns the exception's message.
4275func (s *InvalidAddressException) Message() string {
4276	if s.Message_ != nil {
4277		return *s.Message_
4278	}
4279	return ""
4280}
4281
4282// OrigErr always returns nil, satisfies awserr.Error interface.
4283func (s *InvalidAddressException) OrigErr() error {
4284	return nil
4285}
4286
4287func (s *InvalidAddressException) Error() string {
4288	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4289}
4290
4291// Status code returns the HTTP status code for the request's response error.
4292func (s *InvalidAddressException) StatusCode() int {
4293	return s.RespMetadata.StatusCode
4294}
4295
4296// RequestID returns the service's response RequestID for request.
4297func (s *InvalidAddressException) RequestID() string {
4298	return s.RespMetadata.RequestID
4299}
4300
4301// Job or cluster creation failed. One or more inputs were invalid. Confirm
4302// that the CreateClusterRequest$SnowballType value supports your CreateJobRequest$JobType,
4303// and try again.
4304type InvalidInputCombinationException struct {
4305	_            struct{}                  `type:"structure"`
4306	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4307
4308	Message_ *string `locationName:"Message" min:"1" type:"string"`
4309}
4310
4311// String returns the string representation
4312func (s InvalidInputCombinationException) String() string {
4313	return awsutil.Prettify(s)
4314}
4315
4316// GoString returns the string representation
4317func (s InvalidInputCombinationException) GoString() string {
4318	return s.String()
4319}
4320
4321func newErrorInvalidInputCombinationException(v protocol.ResponseMetadata) error {
4322	return &InvalidInputCombinationException{
4323		RespMetadata: v,
4324	}
4325}
4326
4327// Code returns the exception type name.
4328func (s *InvalidInputCombinationException) Code() string {
4329	return "InvalidInputCombinationException"
4330}
4331
4332// Message returns the exception's message.
4333func (s *InvalidInputCombinationException) Message() string {
4334	if s.Message_ != nil {
4335		return *s.Message_
4336	}
4337	return ""
4338}
4339
4340// OrigErr always returns nil, satisfies awserr.Error interface.
4341func (s *InvalidInputCombinationException) OrigErr() error {
4342	return nil
4343}
4344
4345func (s *InvalidInputCombinationException) Error() string {
4346	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4347}
4348
4349// Status code returns the HTTP status code for the request's response error.
4350func (s *InvalidInputCombinationException) StatusCode() int {
4351	return s.RespMetadata.StatusCode
4352}
4353
4354// RequestID returns the service's response RequestID for request.
4355func (s *InvalidInputCombinationException) RequestID() string {
4356	return s.RespMetadata.RequestID
4357}
4358
4359// The action can't be performed because the job's current state doesn't allow
4360// that action to be performed.
4361type InvalidJobStateException struct {
4362	_            struct{}                  `type:"structure"`
4363	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4364
4365	Message_ *string `locationName:"Message" min:"1" type:"string"`
4366}
4367
4368// String returns the string representation
4369func (s InvalidJobStateException) String() string {
4370	return awsutil.Prettify(s)
4371}
4372
4373// GoString returns the string representation
4374func (s InvalidJobStateException) GoString() string {
4375	return s.String()
4376}
4377
4378func newErrorInvalidJobStateException(v protocol.ResponseMetadata) error {
4379	return &InvalidJobStateException{
4380		RespMetadata: v,
4381	}
4382}
4383
4384// Code returns the exception type name.
4385func (s *InvalidJobStateException) Code() string {
4386	return "InvalidJobStateException"
4387}
4388
4389// Message returns the exception's message.
4390func (s *InvalidJobStateException) Message() string {
4391	if s.Message_ != nil {
4392		return *s.Message_
4393	}
4394	return ""
4395}
4396
4397// OrigErr always returns nil, satisfies awserr.Error interface.
4398func (s *InvalidJobStateException) OrigErr() error {
4399	return nil
4400}
4401
4402func (s *InvalidJobStateException) Error() string {
4403	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4404}
4405
4406// Status code returns the HTTP status code for the request's response error.
4407func (s *InvalidJobStateException) StatusCode() int {
4408	return s.RespMetadata.StatusCode
4409}
4410
4411// RequestID returns the service's response RequestID for request.
4412func (s *InvalidJobStateException) RequestID() string {
4413	return s.RespMetadata.RequestID
4414}
4415
4416// The NextToken string was altered unexpectedly, and the operation has stopped.
4417// Run the operation without changing the NextToken string, and try again.
4418type InvalidNextTokenException struct {
4419	_            struct{}                  `type:"structure"`
4420	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4421
4422	Message_ *string `locationName:"Message" min:"1" type:"string"`
4423}
4424
4425// String returns the string representation
4426func (s InvalidNextTokenException) String() string {
4427	return awsutil.Prettify(s)
4428}
4429
4430// GoString returns the string representation
4431func (s InvalidNextTokenException) GoString() string {
4432	return s.String()
4433}
4434
4435func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
4436	return &InvalidNextTokenException{
4437		RespMetadata: v,
4438	}
4439}
4440
4441// Code returns the exception type name.
4442func (s *InvalidNextTokenException) Code() string {
4443	return "InvalidNextTokenException"
4444}
4445
4446// Message returns the exception's message.
4447func (s *InvalidNextTokenException) Message() string {
4448	if s.Message_ != nil {
4449		return *s.Message_
4450	}
4451	return ""
4452}
4453
4454// OrigErr always returns nil, satisfies awserr.Error interface.
4455func (s *InvalidNextTokenException) OrigErr() error {
4456	return nil
4457}
4458
4459func (s *InvalidNextTokenException) Error() string {
4460	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4461}
4462
4463// Status code returns the HTTP status code for the request's response error.
4464func (s *InvalidNextTokenException) StatusCode() int {
4465	return s.RespMetadata.StatusCode
4466}
4467
4468// RequestID returns the service's response RequestID for request.
4469func (s *InvalidNextTokenException) RequestID() string {
4470	return s.RespMetadata.RequestID
4471}
4472
4473// The specified resource can't be found. Check the information you provided
4474// in your last request, and try again.
4475type InvalidResourceException struct {
4476	_            struct{}                  `type:"structure"`
4477	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4478
4479	Message_ *string `locationName:"Message" min:"1" type:"string"`
4480
4481	// The provided resource value is invalid.
4482	ResourceType *string `min:"1" type:"string"`
4483}
4484
4485// String returns the string representation
4486func (s InvalidResourceException) String() string {
4487	return awsutil.Prettify(s)
4488}
4489
4490// GoString returns the string representation
4491func (s InvalidResourceException) GoString() string {
4492	return s.String()
4493}
4494
4495func newErrorInvalidResourceException(v protocol.ResponseMetadata) error {
4496	return &InvalidResourceException{
4497		RespMetadata: v,
4498	}
4499}
4500
4501// Code returns the exception type name.
4502func (s *InvalidResourceException) Code() string {
4503	return "InvalidResourceException"
4504}
4505
4506// Message returns the exception's message.
4507func (s *InvalidResourceException) Message() string {
4508	if s.Message_ != nil {
4509		return *s.Message_
4510	}
4511	return ""
4512}
4513
4514// OrigErr always returns nil, satisfies awserr.Error interface.
4515func (s *InvalidResourceException) OrigErr() error {
4516	return nil
4517}
4518
4519func (s *InvalidResourceException) Error() string {
4520	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4521}
4522
4523// Status code returns the HTTP status code for the request's response error.
4524func (s *InvalidResourceException) StatusCode() int {
4525	return s.RespMetadata.StatusCode
4526}
4527
4528// RequestID returns the service's response RequestID for request.
4529func (s *InvalidResourceException) RequestID() string {
4530	return s.RespMetadata.RequestID
4531}
4532
4533// Each JobListEntry object contains a job's state, a job's ID, and a value
4534// that indicates whether the job is a job part, in the case of an export job.
4535type JobListEntry struct {
4536	_ struct{} `type:"structure"`
4537
4538	// The creation date for this job.
4539	CreationDate *time.Time `type:"timestamp"`
4540
4541	// The optional description of this specific job, for example Important Photos
4542	// 2016-08-11.
4543	Description *string `min:"1" type:"string"`
4544
4545	// A value that indicates that this job is a main job. A main job represents
4546	// a successful request to create an export job. Main jobs aren't associated
4547	// with any Snowballs. Instead, each main job will have at least one job part,
4548	// and each job part is associated with a Snowball. It might take some time
4549	// before the job parts associated with a particular main job are listed, because
4550	// they are created after the main job is created.
4551	IsMaster *bool `type:"boolean"`
4552
4553	// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000.
4554	JobId *string `min:"1" type:"string"`
4555
4556	// The current state of this job.
4557	JobState *string `type:"string" enum:"JobState"`
4558
4559	// The type of job.
4560	JobType *string `type:"string" enum:"JobType"`
4561
4562	// The type of device used with this job.
4563	SnowballType *string `type:"string" enum:"Type"`
4564}
4565
4566// String returns the string representation
4567func (s JobListEntry) String() string {
4568	return awsutil.Prettify(s)
4569}
4570
4571// GoString returns the string representation
4572func (s JobListEntry) GoString() string {
4573	return s.String()
4574}
4575
4576// SetCreationDate sets the CreationDate field's value.
4577func (s *JobListEntry) SetCreationDate(v time.Time) *JobListEntry {
4578	s.CreationDate = &v
4579	return s
4580}
4581
4582// SetDescription sets the Description field's value.
4583func (s *JobListEntry) SetDescription(v string) *JobListEntry {
4584	s.Description = &v
4585	return s
4586}
4587
4588// SetIsMaster sets the IsMaster field's value.
4589func (s *JobListEntry) SetIsMaster(v bool) *JobListEntry {
4590	s.IsMaster = &v
4591	return s
4592}
4593
4594// SetJobId sets the JobId field's value.
4595func (s *JobListEntry) SetJobId(v string) *JobListEntry {
4596	s.JobId = &v
4597	return s
4598}
4599
4600// SetJobState sets the JobState field's value.
4601func (s *JobListEntry) SetJobState(v string) *JobListEntry {
4602	s.JobState = &v
4603	return s
4604}
4605
4606// SetJobType sets the JobType field's value.
4607func (s *JobListEntry) SetJobType(v string) *JobListEntry {
4608	s.JobType = &v
4609	return s
4610}
4611
4612// SetSnowballType sets the SnowballType field's value.
4613func (s *JobListEntry) SetSnowballType(v string) *JobListEntry {
4614	s.SnowballType = &v
4615	return s
4616}
4617
4618// Contains job logs. Whenever a Snow device is used to import data into or
4619// export data out of Amazon S3, you'll have the option of downloading a PDF
4620// job report. Job logs are returned as a part of the response syntax of the
4621// DescribeJob action in the JobMetadata data type. The job logs can be accessed
4622// for up to 60 minutes after this request has been made. To access any of the
4623// job logs after 60 minutes have passed, you'll have to make another call to
4624// the DescribeJob action.
4625//
4626// For import jobs, the PDF job report becomes available at the end of the import
4627// process. For export jobs, your job report typically becomes available while
4628// the Snow device for your job part is being delivered to you.
4629//
4630// The job report provides you insight into the state of your Amazon S3 data
4631// transfer. The report includes details about your job or job part for your
4632// records.
4633//
4634// For deeper visibility into the status of your transferred objects, you can
4635// look at the two associated logs: a success log and a failure log. The logs
4636// are saved in comma-separated value (CSV) format, and the name of each log
4637// includes the ID of the job or job part that the log describes.
4638type JobLogs struct {
4639	_ struct{} `type:"structure"`
4640
4641	// A link to an Amazon S3 presigned URL where the job completion report is located.
4642	JobCompletionReportURI *string `min:"1" type:"string"`
4643
4644	// A link to an Amazon S3 presigned URL where the job failure log is located.
4645	JobFailureLogURI *string `min:"1" type:"string"`
4646
4647	// A link to an Amazon S3 presigned URL where the job success log is located.
4648	JobSuccessLogURI *string `min:"1" type:"string"`
4649}
4650
4651// String returns the string representation
4652func (s JobLogs) String() string {
4653	return awsutil.Prettify(s)
4654}
4655
4656// GoString returns the string representation
4657func (s JobLogs) GoString() string {
4658	return s.String()
4659}
4660
4661// SetJobCompletionReportURI sets the JobCompletionReportURI field's value.
4662func (s *JobLogs) SetJobCompletionReportURI(v string) *JobLogs {
4663	s.JobCompletionReportURI = &v
4664	return s
4665}
4666
4667// SetJobFailureLogURI sets the JobFailureLogURI field's value.
4668func (s *JobLogs) SetJobFailureLogURI(v string) *JobLogs {
4669	s.JobFailureLogURI = &v
4670	return s
4671}
4672
4673// SetJobSuccessLogURI sets the JobSuccessLogURI field's value.
4674func (s *JobLogs) SetJobSuccessLogURI(v string) *JobLogs {
4675	s.JobSuccessLogURI = &v
4676	return s
4677}
4678
4679// Contains information about a specific job including shipping information,
4680// job status, and other important metadata. This information is returned as
4681// a part of the response syntax of the DescribeJob action.
4682type JobMetadata struct {
4683	_ struct{} `type:"structure"`
4684
4685	// The ID for the address that you want the Snow device shipped to.
4686	AddressId *string `min:"40" type:"string"`
4687
4688	// The 39-character ID for the cluster, for example CID123e4567-e89b-12d3-a456-426655440000.
4689	ClusterId *string `min:"1" type:"string"`
4690
4691	// The creation date for this job.
4692	CreationDate *time.Time `type:"timestamp"`
4693
4694	// A value that defines the real-time status of a Snow device's data transfer
4695	// while the device is at AWS. This data is only available while a job has a
4696	// JobState value of InProgress, for both import and export jobs.
4697	DataTransferProgress *DataTransfer `type:"structure"`
4698
4699	// The description of the job, provided at job creation.
4700	Description *string `min:"1" type:"string"`
4701
4702	// The container for SnowconeDeviceConfiguration.
4703	DeviceConfiguration *DeviceConfiguration `type:"structure"`
4704
4705	// The ID of the address that you want a job shipped to, after it will be shipped
4706	// to its primary address. This field is not supported in most regions.
4707	ForwardingAddressId *string `min:"40" type:"string"`
4708
4709	// The automatically generated ID for a job, for example JID123e4567-e89b-12d3-a456-426655440000.
4710	JobId *string `min:"1" type:"string"`
4711
4712	// Links to Amazon S3 presigned URLs for the job report and logs. For import
4713	// jobs, the PDF job report becomes available at the end of the import process.
4714	// For export jobs, your job report typically becomes available while the Snow
4715	// device for your job part is being delivered to you.
4716	JobLogInfo *JobLogs `type:"structure"`
4717
4718	// The current status of the jobs.
4719	JobState *string `type:"string" enum:"JobState"`
4720
4721	// The type of job.
4722	JobType *string `type:"string" enum:"JobType"`
4723
4724	// The Amazon Resource Name (ARN) for the AWS Key Management Service (AWS KMS)
4725	// key associated with this job. This ARN was created using the CreateKey (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)
4726	// API action in AWS KMS.
4727	KmsKeyARN *string `type:"string"`
4728
4729	// The Amazon Simple Notification Service (Amazon SNS) notification settings
4730	// associated with a specific job. The Notification object is returned as a
4731	// part of the response syntax of the DescribeJob action in the JobMetadata
4732	// data type.
4733	Notification *Notification `type:"structure"`
4734
4735	// An array of S3Resource objects. Each S3Resource object represents an Amazon
4736	// S3 bucket that your transferred data will be exported from or imported into.
4737	Resources *JobResource `type:"structure"`
4738
4739	// The role ARN associated with this job. This ARN was created using the CreateRole
4740	// (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)
4741	// API action in AWS Identity and Access Management (IAM).
4742	RoleARN *string `type:"string"`
4743
4744	// A job's shipping information, including inbound and outbound tracking numbers
4745	// and shipping speed options.
4746	ShippingDetails *ShippingDetails `type:"structure"`
4747
4748	// The Snow device capacity preference for this job, specified at job creation.
4749	// In US regions, you can choose between 50 TB and 80 TB Snowballs. All other
4750	// regions use 80 TB capacity Snowballs.
4751	SnowballCapacityPreference *string `type:"string" enum:"Capacity"`
4752
4753	// The type of device used with this job.
4754	SnowballType *string `type:"string" enum:"Type"`
4755
4756	// The metadata associated with the tax documents required in your AWS Region.
4757	TaxDocuments *TaxDocuments `type:"structure"`
4758}
4759
4760// String returns the string representation
4761func (s JobMetadata) String() string {
4762	return awsutil.Prettify(s)
4763}
4764
4765// GoString returns the string representation
4766func (s JobMetadata) GoString() string {
4767	return s.String()
4768}
4769
4770// SetAddressId sets the AddressId field's value.
4771func (s *JobMetadata) SetAddressId(v string) *JobMetadata {
4772	s.AddressId = &v
4773	return s
4774}
4775
4776// SetClusterId sets the ClusterId field's value.
4777func (s *JobMetadata) SetClusterId(v string) *JobMetadata {
4778	s.ClusterId = &v
4779	return s
4780}
4781
4782// SetCreationDate sets the CreationDate field's value.
4783func (s *JobMetadata) SetCreationDate(v time.Time) *JobMetadata {
4784	s.CreationDate = &v
4785	return s
4786}
4787
4788// SetDataTransferProgress sets the DataTransferProgress field's value.
4789func (s *JobMetadata) SetDataTransferProgress(v *DataTransfer) *JobMetadata {
4790	s.DataTransferProgress = v
4791	return s
4792}
4793
4794// SetDescription sets the Description field's value.
4795func (s *JobMetadata) SetDescription(v string) *JobMetadata {
4796	s.Description = &v
4797	return s
4798}
4799
4800// SetDeviceConfiguration sets the DeviceConfiguration field's value.
4801func (s *JobMetadata) SetDeviceConfiguration(v *DeviceConfiguration) *JobMetadata {
4802	s.DeviceConfiguration = v
4803	return s
4804}
4805
4806// SetForwardingAddressId sets the ForwardingAddressId field's value.
4807func (s *JobMetadata) SetForwardingAddressId(v string) *JobMetadata {
4808	s.ForwardingAddressId = &v
4809	return s
4810}
4811
4812// SetJobId sets the JobId field's value.
4813func (s *JobMetadata) SetJobId(v string) *JobMetadata {
4814	s.JobId = &v
4815	return s
4816}
4817
4818// SetJobLogInfo sets the JobLogInfo field's value.
4819func (s *JobMetadata) SetJobLogInfo(v *JobLogs) *JobMetadata {
4820	s.JobLogInfo = v
4821	return s
4822}
4823
4824// SetJobState sets the JobState field's value.
4825func (s *JobMetadata) SetJobState(v string) *JobMetadata {
4826	s.JobState = &v
4827	return s
4828}
4829
4830// SetJobType sets the JobType field's value.
4831func (s *JobMetadata) SetJobType(v string) *JobMetadata {
4832	s.JobType = &v
4833	return s
4834}
4835
4836// SetKmsKeyARN sets the KmsKeyARN field's value.
4837func (s *JobMetadata) SetKmsKeyARN(v string) *JobMetadata {
4838	s.KmsKeyARN = &v
4839	return s
4840}
4841
4842// SetNotification sets the Notification field's value.
4843func (s *JobMetadata) SetNotification(v *Notification) *JobMetadata {
4844	s.Notification = v
4845	return s
4846}
4847
4848// SetResources sets the Resources field's value.
4849func (s *JobMetadata) SetResources(v *JobResource) *JobMetadata {
4850	s.Resources = v
4851	return s
4852}
4853
4854// SetRoleARN sets the RoleARN field's value.
4855func (s *JobMetadata) SetRoleARN(v string) *JobMetadata {
4856	s.RoleARN = &v
4857	return s
4858}
4859
4860// SetShippingDetails sets the ShippingDetails field's value.
4861func (s *JobMetadata) SetShippingDetails(v *ShippingDetails) *JobMetadata {
4862	s.ShippingDetails = v
4863	return s
4864}
4865
4866// SetSnowballCapacityPreference sets the SnowballCapacityPreference field's value.
4867func (s *JobMetadata) SetSnowballCapacityPreference(v string) *JobMetadata {
4868	s.SnowballCapacityPreference = &v
4869	return s
4870}
4871
4872// SetSnowballType sets the SnowballType field's value.
4873func (s *JobMetadata) SetSnowballType(v string) *JobMetadata {
4874	s.SnowballType = &v
4875	return s
4876}
4877
4878// SetTaxDocuments sets the TaxDocuments field's value.
4879func (s *JobMetadata) SetTaxDocuments(v *TaxDocuments) *JobMetadata {
4880	s.TaxDocuments = v
4881	return s
4882}
4883
4884// Contains an array of AWS resource objects. Each object represents an Amazon
4885// S3 bucket, an AWS Lambda function, or an Amazon Machine Image (AMI) based
4886// on Amazon EC2 that is associated with a particular job.
4887type JobResource struct {
4888	_ struct{} `type:"structure"`
4889
4890	// The Amazon Machine Images (AMIs) associated with this job.
4891	Ec2AmiResources []*Ec2AmiResource `type:"list"`
4892
4893	// The Python-language Lambda functions for this job.
4894	LambdaResources []*LambdaResource `type:"list"`
4895
4896	// An array of S3Resource objects.
4897	S3Resources []*S3Resource `type:"list"`
4898}
4899
4900// String returns the string representation
4901func (s JobResource) String() string {
4902	return awsutil.Prettify(s)
4903}
4904
4905// GoString returns the string representation
4906func (s JobResource) GoString() string {
4907	return s.String()
4908}
4909
4910// Validate inspects the fields of the type to determine if they are valid.
4911func (s *JobResource) Validate() error {
4912	invalidParams := request.ErrInvalidParams{Context: "JobResource"}
4913	if s.Ec2AmiResources != nil {
4914		for i, v := range s.Ec2AmiResources {
4915			if v == nil {
4916				continue
4917			}
4918			if err := v.Validate(); err != nil {
4919				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ec2AmiResources", i), err.(request.ErrInvalidParams))
4920			}
4921		}
4922	}
4923	if s.S3Resources != nil {
4924		for i, v := range s.S3Resources {
4925			if v == nil {
4926				continue
4927			}
4928			if err := v.Validate(); err != nil {
4929				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "S3Resources", i), err.(request.ErrInvalidParams))
4930			}
4931		}
4932	}
4933
4934	if invalidParams.Len() > 0 {
4935		return invalidParams
4936	}
4937	return nil
4938}
4939
4940// SetEc2AmiResources sets the Ec2AmiResources field's value.
4941func (s *JobResource) SetEc2AmiResources(v []*Ec2AmiResource) *JobResource {
4942	s.Ec2AmiResources = v
4943	return s
4944}
4945
4946// SetLambdaResources sets the LambdaResources field's value.
4947func (s *JobResource) SetLambdaResources(v []*LambdaResource) *JobResource {
4948	s.LambdaResources = v
4949	return s
4950}
4951
4952// SetS3Resources sets the S3Resources field's value.
4953func (s *JobResource) SetS3Resources(v []*S3Resource) *JobResource {
4954	s.S3Resources = v
4955	return s
4956}
4957
4958// The provided AWS Key Management Service key lacks the permissions to perform
4959// the specified CreateJob or UpdateJob action.
4960type KMSRequestFailedException struct {
4961	_            struct{}                  `type:"structure"`
4962	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4963
4964	Message_ *string `locationName:"Message" min:"1" type:"string"`
4965}
4966
4967// String returns the string representation
4968func (s KMSRequestFailedException) String() string {
4969	return awsutil.Prettify(s)
4970}
4971
4972// GoString returns the string representation
4973func (s KMSRequestFailedException) GoString() string {
4974	return s.String()
4975}
4976
4977func newErrorKMSRequestFailedException(v protocol.ResponseMetadata) error {
4978	return &KMSRequestFailedException{
4979		RespMetadata: v,
4980	}
4981}
4982
4983// Code returns the exception type name.
4984func (s *KMSRequestFailedException) Code() string {
4985	return "KMSRequestFailedException"
4986}
4987
4988// Message returns the exception's message.
4989func (s *KMSRequestFailedException) Message() string {
4990	if s.Message_ != nil {
4991		return *s.Message_
4992	}
4993	return ""
4994}
4995
4996// OrigErr always returns nil, satisfies awserr.Error interface.
4997func (s *KMSRequestFailedException) OrigErr() error {
4998	return nil
4999}
5000
5001func (s *KMSRequestFailedException) Error() string {
5002	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5003}
5004
5005// Status code returns the HTTP status code for the request's response error.
5006func (s *KMSRequestFailedException) StatusCode() int {
5007	return s.RespMetadata.StatusCode
5008}
5009
5010// RequestID returns the service's response RequestID for request.
5011func (s *KMSRequestFailedException) RequestID() string {
5012	return s.RespMetadata.RequestID
5013}
5014
5015// Contains a key range. For export jobs, a S3Resource object can have an optional
5016// KeyRange value. The length of the range is defined at job creation, and has
5017// either an inclusive BeginMarker, an inclusive EndMarker, or both. Ranges
5018// are UTF-8 binary sorted.
5019type KeyRange struct {
5020	_ struct{} `type:"structure"`
5021
5022	// The key that starts an optional key range for an export job. Ranges are inclusive
5023	// and UTF-8 binary sorted.
5024	BeginMarker *string `min:"1" type:"string"`
5025
5026	// The key that ends an optional key range for an export job. Ranges are inclusive
5027	// and UTF-8 binary sorted.
5028	EndMarker *string `min:"1" type:"string"`
5029}
5030
5031// String returns the string representation
5032func (s KeyRange) String() string {
5033	return awsutil.Prettify(s)
5034}
5035
5036// GoString returns the string representation
5037func (s KeyRange) GoString() string {
5038	return s.String()
5039}
5040
5041// Validate inspects the fields of the type to determine if they are valid.
5042func (s *KeyRange) Validate() error {
5043	invalidParams := request.ErrInvalidParams{Context: "KeyRange"}
5044	if s.BeginMarker != nil && len(*s.BeginMarker) < 1 {
5045		invalidParams.Add(request.NewErrParamMinLen("BeginMarker", 1))
5046	}
5047	if s.EndMarker != nil && len(*s.EndMarker) < 1 {
5048		invalidParams.Add(request.NewErrParamMinLen("EndMarker", 1))
5049	}
5050
5051	if invalidParams.Len() > 0 {
5052		return invalidParams
5053	}
5054	return nil
5055}
5056
5057// SetBeginMarker sets the BeginMarker field's value.
5058func (s *KeyRange) SetBeginMarker(v string) *KeyRange {
5059	s.BeginMarker = &v
5060	return s
5061}
5062
5063// SetEndMarker sets the EndMarker field's value.
5064func (s *KeyRange) SetEndMarker(v string) *KeyRange {
5065	s.EndMarker = &v
5066	return s
5067}
5068
5069// Identifies
5070type LambdaResource struct {
5071	_ struct{} `type:"structure"`
5072
5073	// The array of ARNs for S3Resource objects to trigger the LambdaResource objects
5074	// associated with this job.
5075	EventTriggers []*EventTriggerDefinition `type:"list"`
5076
5077	// An Amazon Resource Name (ARN) that represents an AWS Lambda function to be
5078	// triggered by PUT object actions on the associated local Amazon S3 resource.
5079	LambdaArn *string `type:"string"`
5080}
5081
5082// String returns the string representation
5083func (s LambdaResource) String() string {
5084	return awsutil.Prettify(s)
5085}
5086
5087// GoString returns the string representation
5088func (s LambdaResource) GoString() string {
5089	return s.String()
5090}
5091
5092// SetEventTriggers sets the EventTriggers field's value.
5093func (s *LambdaResource) SetEventTriggers(v []*EventTriggerDefinition) *LambdaResource {
5094	s.EventTriggers = v
5095	return s
5096}
5097
5098// SetLambdaArn sets the LambdaArn field's value.
5099func (s *LambdaResource) SetLambdaArn(v string) *LambdaResource {
5100	s.LambdaArn = &v
5101	return s
5102}
5103
5104type ListClusterJobsInput struct {
5105	_ struct{} `type:"structure"`
5106
5107	// The 39-character ID for the cluster that you want to list, for example CID123e4567-e89b-12d3-a456-426655440000.
5108	//
5109	// ClusterId is a required field
5110	ClusterId *string `min:"39" type:"string" required:"true"`
5111
5112	// The number of JobListEntry objects to return.
5113	MaxResults *int64 `type:"integer"`
5114
5115	// HTTP requests are stateless. To identify what object comes "next" in the
5116	// list of JobListEntry objects, you have the option of specifying NextToken
5117	// as the starting point for your returned list.
5118	NextToken *string `min:"1" type:"string"`
5119}
5120
5121// String returns the string representation
5122func (s ListClusterJobsInput) String() string {
5123	return awsutil.Prettify(s)
5124}
5125
5126// GoString returns the string representation
5127func (s ListClusterJobsInput) GoString() string {
5128	return s.String()
5129}
5130
5131// Validate inspects the fields of the type to determine if they are valid.
5132func (s *ListClusterJobsInput) Validate() error {
5133	invalidParams := request.ErrInvalidParams{Context: "ListClusterJobsInput"}
5134	if s.ClusterId == nil {
5135		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
5136	}
5137	if s.ClusterId != nil && len(*s.ClusterId) < 39 {
5138		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 39))
5139	}
5140	if s.NextToken != nil && len(*s.NextToken) < 1 {
5141		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5142	}
5143
5144	if invalidParams.Len() > 0 {
5145		return invalidParams
5146	}
5147	return nil
5148}
5149
5150// SetClusterId sets the ClusterId field's value.
5151func (s *ListClusterJobsInput) SetClusterId(v string) *ListClusterJobsInput {
5152	s.ClusterId = &v
5153	return s
5154}
5155
5156// SetMaxResults sets the MaxResults field's value.
5157func (s *ListClusterJobsInput) SetMaxResults(v int64) *ListClusterJobsInput {
5158	s.MaxResults = &v
5159	return s
5160}
5161
5162// SetNextToken sets the NextToken field's value.
5163func (s *ListClusterJobsInput) SetNextToken(v string) *ListClusterJobsInput {
5164	s.NextToken = &v
5165	return s
5166}
5167
5168type ListClusterJobsOutput struct {
5169	_ struct{} `type:"structure"`
5170
5171	// Each JobListEntry object contains a job's state, a job's ID, and a value
5172	// that indicates whether the job is a job part, in the case of export jobs.
5173	JobListEntries []*JobListEntry `type:"list"`
5174
5175	// HTTP requests are stateless. If you use the automatically generated NextToken
5176	// value in your next ListClusterJobsResult call, your list of returned jobs
5177	// will start from this point in the array.
5178	NextToken *string `min:"1" type:"string"`
5179}
5180
5181// String returns the string representation
5182func (s ListClusterJobsOutput) String() string {
5183	return awsutil.Prettify(s)
5184}
5185
5186// GoString returns the string representation
5187func (s ListClusterJobsOutput) GoString() string {
5188	return s.String()
5189}
5190
5191// SetJobListEntries sets the JobListEntries field's value.
5192func (s *ListClusterJobsOutput) SetJobListEntries(v []*JobListEntry) *ListClusterJobsOutput {
5193	s.JobListEntries = v
5194	return s
5195}
5196
5197// SetNextToken sets the NextToken field's value.
5198func (s *ListClusterJobsOutput) SetNextToken(v string) *ListClusterJobsOutput {
5199	s.NextToken = &v
5200	return s
5201}
5202
5203type ListClustersInput struct {
5204	_ struct{} `type:"structure"`
5205
5206	// The number of ClusterListEntry objects to return.
5207	MaxResults *int64 `type:"integer"`
5208
5209	// HTTP requests are stateless. To identify what object comes "next" in the
5210	// list of ClusterListEntry objects, you have the option of specifying NextToken
5211	// as the starting point for your returned list.
5212	NextToken *string `min:"1" type:"string"`
5213}
5214
5215// String returns the string representation
5216func (s ListClustersInput) String() string {
5217	return awsutil.Prettify(s)
5218}
5219
5220// GoString returns the string representation
5221func (s ListClustersInput) GoString() string {
5222	return s.String()
5223}
5224
5225// Validate inspects the fields of the type to determine if they are valid.
5226func (s *ListClustersInput) Validate() error {
5227	invalidParams := request.ErrInvalidParams{Context: "ListClustersInput"}
5228	if s.NextToken != nil && len(*s.NextToken) < 1 {
5229		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5230	}
5231
5232	if invalidParams.Len() > 0 {
5233		return invalidParams
5234	}
5235	return nil
5236}
5237
5238// SetMaxResults sets the MaxResults field's value.
5239func (s *ListClustersInput) SetMaxResults(v int64) *ListClustersInput {
5240	s.MaxResults = &v
5241	return s
5242}
5243
5244// SetNextToken sets the NextToken field's value.
5245func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput {
5246	s.NextToken = &v
5247	return s
5248}
5249
5250type ListClustersOutput struct {
5251	_ struct{} `type:"structure"`
5252
5253	// Each ClusterListEntry object contains a cluster's state, a cluster's ID,
5254	// and other important status information.
5255	ClusterListEntries []*ClusterListEntry `type:"list"`
5256
5257	// HTTP requests are stateless. If you use the automatically generated NextToken
5258	// value in your next ClusterListEntry call, your list of returned clusters
5259	// will start from this point in the array.
5260	NextToken *string `min:"1" type:"string"`
5261}
5262
5263// String returns the string representation
5264func (s ListClustersOutput) String() string {
5265	return awsutil.Prettify(s)
5266}
5267
5268// GoString returns the string representation
5269func (s ListClustersOutput) GoString() string {
5270	return s.String()
5271}
5272
5273// SetClusterListEntries sets the ClusterListEntries field's value.
5274func (s *ListClustersOutput) SetClusterListEntries(v []*ClusterListEntry) *ListClustersOutput {
5275	s.ClusterListEntries = v
5276	return s
5277}
5278
5279// SetNextToken sets the NextToken field's value.
5280func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput {
5281	s.NextToken = &v
5282	return s
5283}
5284
5285type ListCompatibleImagesInput struct {
5286	_ struct{} `type:"structure"`
5287
5288	// The maximum number of results for the list of compatible images. Currently,
5289	// a Snowball Edge device can store 10 AMIs.
5290	MaxResults *int64 `type:"integer"`
5291
5292	// HTTP requests are stateless. To identify what object comes "next" in the
5293	// list of compatible images, you can specify a value for NextToken as the starting
5294	// point for your list of returned images.
5295	NextToken *string `min:"1" type:"string"`
5296}
5297
5298// String returns the string representation
5299func (s ListCompatibleImagesInput) String() string {
5300	return awsutil.Prettify(s)
5301}
5302
5303// GoString returns the string representation
5304func (s ListCompatibleImagesInput) GoString() string {
5305	return s.String()
5306}
5307
5308// Validate inspects the fields of the type to determine if they are valid.
5309func (s *ListCompatibleImagesInput) Validate() error {
5310	invalidParams := request.ErrInvalidParams{Context: "ListCompatibleImagesInput"}
5311	if s.NextToken != nil && len(*s.NextToken) < 1 {
5312		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5313	}
5314
5315	if invalidParams.Len() > 0 {
5316		return invalidParams
5317	}
5318	return nil
5319}
5320
5321// SetMaxResults sets the MaxResults field's value.
5322func (s *ListCompatibleImagesInput) SetMaxResults(v int64) *ListCompatibleImagesInput {
5323	s.MaxResults = &v
5324	return s
5325}
5326
5327// SetNextToken sets the NextToken field's value.
5328func (s *ListCompatibleImagesInput) SetNextToken(v string) *ListCompatibleImagesInput {
5329	s.NextToken = &v
5330	return s
5331}
5332
5333type ListCompatibleImagesOutput struct {
5334	_ struct{} `type:"structure"`
5335
5336	// A JSON-formatted object that describes a compatible AMI, including the ID
5337	// and name for a Snow device AMI.
5338	CompatibleImages []*CompatibleImage `type:"list"`
5339
5340	// Because HTTP requests are stateless, this is the starting point for your
5341	// next list of returned images.
5342	NextToken *string `min:"1" type:"string"`
5343}
5344
5345// String returns the string representation
5346func (s ListCompatibleImagesOutput) String() string {
5347	return awsutil.Prettify(s)
5348}
5349
5350// GoString returns the string representation
5351func (s ListCompatibleImagesOutput) GoString() string {
5352	return s.String()
5353}
5354
5355// SetCompatibleImages sets the CompatibleImages field's value.
5356func (s *ListCompatibleImagesOutput) SetCompatibleImages(v []*CompatibleImage) *ListCompatibleImagesOutput {
5357	s.CompatibleImages = v
5358	return s
5359}
5360
5361// SetNextToken sets the NextToken field's value.
5362func (s *ListCompatibleImagesOutput) SetNextToken(v string) *ListCompatibleImagesOutput {
5363	s.NextToken = &v
5364	return s
5365}
5366
5367type ListJobsInput struct {
5368	_ struct{} `type:"structure"`
5369
5370	// The number of JobListEntry objects to return.
5371	MaxResults *int64 `type:"integer"`
5372
5373	// HTTP requests are stateless. To identify what object comes "next" in the
5374	// list of JobListEntry objects, you have the option of specifying NextToken
5375	// as the starting point for your returned list.
5376	NextToken *string `min:"1" type:"string"`
5377}
5378
5379// String returns the string representation
5380func (s ListJobsInput) String() string {
5381	return awsutil.Prettify(s)
5382}
5383
5384// GoString returns the string representation
5385func (s ListJobsInput) GoString() string {
5386	return s.String()
5387}
5388
5389// Validate inspects the fields of the type to determine if they are valid.
5390func (s *ListJobsInput) Validate() error {
5391	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
5392	if s.NextToken != nil && len(*s.NextToken) < 1 {
5393		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5394	}
5395
5396	if invalidParams.Len() > 0 {
5397		return invalidParams
5398	}
5399	return nil
5400}
5401
5402// SetMaxResults sets the MaxResults field's value.
5403func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
5404	s.MaxResults = &v
5405	return s
5406}
5407
5408// SetNextToken sets the NextToken field's value.
5409func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
5410	s.NextToken = &v
5411	return s
5412}
5413
5414type ListJobsOutput struct {
5415	_ struct{} `type:"structure"`
5416
5417	// Each JobListEntry object contains a job's state, a job's ID, and a value
5418	// that indicates whether the job is a job part, in the case of export jobs.
5419	JobListEntries []*JobListEntry `type:"list"`
5420
5421	// HTTP requests are stateless. If you use this automatically generated NextToken
5422	// value in your next ListJobs call, your returned JobListEntry objects will
5423	// start from this point in the array.
5424	NextToken *string `min:"1" type:"string"`
5425}
5426
5427// String returns the string representation
5428func (s ListJobsOutput) String() string {
5429	return awsutil.Prettify(s)
5430}
5431
5432// GoString returns the string representation
5433func (s ListJobsOutput) GoString() string {
5434	return s.String()
5435}
5436
5437// SetJobListEntries sets the JobListEntries field's value.
5438func (s *ListJobsOutput) SetJobListEntries(v []*JobListEntry) *ListJobsOutput {
5439	s.JobListEntries = v
5440	return s
5441}
5442
5443// SetNextToken sets the NextToken field's value.
5444func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
5445	s.NextToken = &v
5446	return s
5447}
5448
5449// The Amazon Simple Notification Service (Amazon SNS) notification settings
5450// associated with a specific job. The Notification object is returned as a
5451// part of the response syntax of the DescribeJob action in the JobMetadata
5452// data type.
5453//
5454// When the notification settings are defined during job creation, you can choose
5455// to notify based on a specific set of job states using the JobStatesToNotify
5456// array of strings, or you can specify that you want to have Amazon SNS notifications
5457// sent out for all job states with NotifyAll set to true.
5458type Notification struct {
5459	_ struct{} `type:"structure"`
5460
5461	// The list of job states that will trigger a notification for this job.
5462	JobStatesToNotify []*string `type:"list"`
5463
5464	// Any change in job state will trigger a notification for this job.
5465	NotifyAll *bool `type:"boolean"`
5466
5467	// The new SNS TopicArn that you want to associate with this job. You can create
5468	// Amazon Resource Names (ARNs) for topics by using the CreateTopic (https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)
5469	// Amazon SNS API action.
5470	//
5471	// You can subscribe email addresses to an Amazon SNS topic through the AWS
5472	// Management Console, or by using the Subscribe (https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)
5473	// AWS Simple Notification Service (SNS) API action.
5474	SnsTopicARN *string `type:"string"`
5475}
5476
5477// String returns the string representation
5478func (s Notification) String() string {
5479	return awsutil.Prettify(s)
5480}
5481
5482// GoString returns the string representation
5483func (s Notification) GoString() string {
5484	return s.String()
5485}
5486
5487// SetJobStatesToNotify sets the JobStatesToNotify field's value.
5488func (s *Notification) SetJobStatesToNotify(v []*string) *Notification {
5489	s.JobStatesToNotify = v
5490	return s
5491}
5492
5493// SetNotifyAll sets the NotifyAll field's value.
5494func (s *Notification) SetNotifyAll(v bool) *Notification {
5495	s.NotifyAll = &v
5496	return s
5497}
5498
5499// SetSnsTopicARN sets the SnsTopicARN field's value.
5500func (s *Notification) SetSnsTopicARN(v string) *Notification {
5501	s.SnsTopicARN = &v
5502	return s
5503}
5504
5505// You get this exception if you call CreateReturnShippingLabel and a valid
5506// return shipping label already exists. In this case, use DescribeReturnShippingLabel
5507// to get the url.
5508type ReturnShippingLabelAlreadyExistsException struct {
5509	_            struct{}                  `type:"structure"`
5510	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5511
5512	Message_ *string `locationName:"Message" min:"1" type:"string"`
5513}
5514
5515// String returns the string representation
5516func (s ReturnShippingLabelAlreadyExistsException) String() string {
5517	return awsutil.Prettify(s)
5518}
5519
5520// GoString returns the string representation
5521func (s ReturnShippingLabelAlreadyExistsException) GoString() string {
5522	return s.String()
5523}
5524
5525func newErrorReturnShippingLabelAlreadyExistsException(v protocol.ResponseMetadata) error {
5526	return &ReturnShippingLabelAlreadyExistsException{
5527		RespMetadata: v,
5528	}
5529}
5530
5531// Code returns the exception type name.
5532func (s *ReturnShippingLabelAlreadyExistsException) Code() string {
5533	return "ReturnShippingLabelAlreadyExistsException"
5534}
5535
5536// Message returns the exception's message.
5537func (s *ReturnShippingLabelAlreadyExistsException) Message() string {
5538	if s.Message_ != nil {
5539		return *s.Message_
5540	}
5541	return ""
5542}
5543
5544// OrigErr always returns nil, satisfies awserr.Error interface.
5545func (s *ReturnShippingLabelAlreadyExistsException) OrigErr() error {
5546	return nil
5547}
5548
5549func (s *ReturnShippingLabelAlreadyExistsException) Error() string {
5550	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5551}
5552
5553// Status code returns the HTTP status code for the request's response error.
5554func (s *ReturnShippingLabelAlreadyExistsException) StatusCode() int {
5555	return s.RespMetadata.StatusCode
5556}
5557
5558// RequestID returns the service's response RequestID for request.
5559func (s *ReturnShippingLabelAlreadyExistsException) RequestID() string {
5560	return s.RespMetadata.RequestID
5561}
5562
5563// Each S3Resource object represents an Amazon S3 bucket that your transferred
5564// data will be exported from or imported into. For export jobs, this object
5565// can have an optional KeyRange value. The length of the range is defined at
5566// job creation, and has either an inclusive BeginMarker, an inclusive EndMarker,
5567// or both. Ranges are UTF-8 binary sorted.
5568type S3Resource struct {
5569	_ struct{} `type:"structure"`
5570
5571	// The Amazon Resource Name (ARN) of an Amazon S3 bucket.
5572	BucketArn *string `type:"string"`
5573
5574	// For export jobs, you can provide an optional KeyRange within a specific Amazon
5575	// S3 bucket. The length of the range is defined at job creation, and has either
5576	// an inclusive BeginMarker, an inclusive EndMarker, or both. Ranges are UTF-8
5577	// binary sorted.
5578	KeyRange *KeyRange `type:"structure"`
5579}
5580
5581// String returns the string representation
5582func (s S3Resource) String() string {
5583	return awsutil.Prettify(s)
5584}
5585
5586// GoString returns the string representation
5587func (s S3Resource) GoString() string {
5588	return s.String()
5589}
5590
5591// Validate inspects the fields of the type to determine if they are valid.
5592func (s *S3Resource) Validate() error {
5593	invalidParams := request.ErrInvalidParams{Context: "S3Resource"}
5594	if s.KeyRange != nil {
5595		if err := s.KeyRange.Validate(); err != nil {
5596			invalidParams.AddNested("KeyRange", err.(request.ErrInvalidParams))
5597		}
5598	}
5599
5600	if invalidParams.Len() > 0 {
5601		return invalidParams
5602	}
5603	return nil
5604}
5605
5606// SetBucketArn sets the BucketArn field's value.
5607func (s *S3Resource) SetBucketArn(v string) *S3Resource {
5608	s.BucketArn = &v
5609	return s
5610}
5611
5612// SetKeyRange sets the KeyRange field's value.
5613func (s *S3Resource) SetKeyRange(v *KeyRange) *S3Resource {
5614	s.KeyRange = v
5615	return s
5616}
5617
5618// The Status and TrackingNumber information for an inbound or outbound shipment.
5619type Shipment struct {
5620	_ struct{} `type:"structure"`
5621
5622	// Status information for a shipment.
5623	Status *string `min:"1" type:"string"`
5624
5625	// The tracking number for this job. Using this tracking number with your region's
5626	// carrier's website, you can track a Snow device as the carrier transports
5627	// it.
5628	//
5629	// For India, the carrier is Amazon Logistics. For all other regions, UPS is
5630	// the carrier.
5631	TrackingNumber *string `min:"1" type:"string"`
5632}
5633
5634// String returns the string representation
5635func (s Shipment) String() string {
5636	return awsutil.Prettify(s)
5637}
5638
5639// GoString returns the string representation
5640func (s Shipment) GoString() string {
5641	return s.String()
5642}
5643
5644// SetStatus sets the Status field's value.
5645func (s *Shipment) SetStatus(v string) *Shipment {
5646	s.Status = &v
5647	return s
5648}
5649
5650// SetTrackingNumber sets the TrackingNumber field's value.
5651func (s *Shipment) SetTrackingNumber(v string) *Shipment {
5652	s.TrackingNumber = &v
5653	return s
5654}
5655
5656// A job's shipping information, including inbound and outbound tracking numbers
5657// and shipping speed options.
5658type ShippingDetails struct {
5659	_ struct{} `type:"structure"`
5660
5661	// The Status and TrackingNumber values for a Snow device being returned to
5662	// AWS for a particular job.
5663	InboundShipment *Shipment `type:"structure"`
5664
5665	// The Status and TrackingNumber values for a Snow device being delivered to
5666	// the address that you specified for a particular job.
5667	OutboundShipment *Shipment `type:"structure"`
5668
5669	// The shipping speed for a particular job. This speed doesn't dictate how soon
5670	// you'll get the Snow device from the job's creation date. This speed represents
5671	// how quickly it moves to its destination while in transit. Regional shipping
5672	// speeds are as follows:
5673	//
5674	//    * In Australia, you have access to express shipping. Typically, Snow devices
5675	//    shipped express are delivered in about a day.
5676	//
5677	//    * In the European Union (EU), you have access to express shipping. Typically,
5678	//    Snow devices shipped express are delivered in about a day. In addition,
5679	//    most countries in the EU have access to standard shipping, which typically
5680	//    takes less than a week, one way.
5681	//
5682	//    * In India, Snow device are delivered in one to seven days.
5683	//
5684	//    * In the United States of America (US), you have access to one-day shipping
5685	//    and two-day shipping.
5686	ShippingOption *string `type:"string" enum:"ShippingOption"`
5687}
5688
5689// String returns the string representation
5690func (s ShippingDetails) String() string {
5691	return awsutil.Prettify(s)
5692}
5693
5694// GoString returns the string representation
5695func (s ShippingDetails) GoString() string {
5696	return s.String()
5697}
5698
5699// SetInboundShipment sets the InboundShipment field's value.
5700func (s *ShippingDetails) SetInboundShipment(v *Shipment) *ShippingDetails {
5701	s.InboundShipment = v
5702	return s
5703}
5704
5705// SetOutboundShipment sets the OutboundShipment field's value.
5706func (s *ShippingDetails) SetOutboundShipment(v *Shipment) *ShippingDetails {
5707	s.OutboundShipment = v
5708	return s
5709}
5710
5711// SetShippingOption sets the ShippingOption field's value.
5712func (s *ShippingDetails) SetShippingOption(v string) *ShippingDetails {
5713	s.ShippingOption = &v
5714	return s
5715}
5716
5717// Specifies the device configuration for an AWS Snowcone job.
5718type SnowconeDeviceConfiguration struct {
5719	_ struct{} `type:"structure"`
5720
5721	// Configures the wireless connection for the AWS Snowcone device.
5722	WirelessConnection *WirelessConnection `type:"structure"`
5723}
5724
5725// String returns the string representation
5726func (s SnowconeDeviceConfiguration) String() string {
5727	return awsutil.Prettify(s)
5728}
5729
5730// GoString returns the string representation
5731func (s SnowconeDeviceConfiguration) GoString() string {
5732	return s.String()
5733}
5734
5735// SetWirelessConnection sets the WirelessConnection field's value.
5736func (s *SnowconeDeviceConfiguration) SetWirelessConnection(v *WirelessConnection) *SnowconeDeviceConfiguration {
5737	s.WirelessConnection = v
5738	return s
5739}
5740
5741// The tax documents required in your AWS Region.
5742type TaxDocuments struct {
5743	_ struct{} `type:"structure"`
5744
5745	// The tax documents required in AWS Regions in India.
5746	IND *INDTaxDocuments `type:"structure"`
5747}
5748
5749// String returns the string representation
5750func (s TaxDocuments) String() string {
5751	return awsutil.Prettify(s)
5752}
5753
5754// GoString returns the string representation
5755func (s TaxDocuments) GoString() string {
5756	return s.String()
5757}
5758
5759// SetIND sets the IND field's value.
5760func (s *TaxDocuments) SetIND(v *INDTaxDocuments) *TaxDocuments {
5761	s.IND = v
5762	return s
5763}
5764
5765// The address is either outside the serviceable area for your region, or an
5766// error occurred. Check the address with your region's carrier and try again.
5767// If the issue persists, contact AWS Support.
5768type UnsupportedAddressException struct {
5769	_            struct{}                  `type:"structure"`
5770	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5771
5772	Message_ *string `locationName:"Message" min:"1" type:"string"`
5773}
5774
5775// String returns the string representation
5776func (s UnsupportedAddressException) String() string {
5777	return awsutil.Prettify(s)
5778}
5779
5780// GoString returns the string representation
5781func (s UnsupportedAddressException) GoString() string {
5782	return s.String()
5783}
5784
5785func newErrorUnsupportedAddressException(v protocol.ResponseMetadata) error {
5786	return &UnsupportedAddressException{
5787		RespMetadata: v,
5788	}
5789}
5790
5791// Code returns the exception type name.
5792func (s *UnsupportedAddressException) Code() string {
5793	return "UnsupportedAddressException"
5794}
5795
5796// Message returns the exception's message.
5797func (s *UnsupportedAddressException) Message() string {
5798	if s.Message_ != nil {
5799		return *s.Message_
5800	}
5801	return ""
5802}
5803
5804// OrigErr always returns nil, satisfies awserr.Error interface.
5805func (s *UnsupportedAddressException) OrigErr() error {
5806	return nil
5807}
5808
5809func (s *UnsupportedAddressException) Error() string {
5810	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5811}
5812
5813// Status code returns the HTTP status code for the request's response error.
5814func (s *UnsupportedAddressException) StatusCode() int {
5815	return s.RespMetadata.StatusCode
5816}
5817
5818// RequestID returns the service's response RequestID for request.
5819func (s *UnsupportedAddressException) RequestID() string {
5820	return s.RespMetadata.RequestID
5821}
5822
5823type UpdateClusterInput struct {
5824	_ struct{} `type:"structure"`
5825
5826	// The ID of the updated Address object.
5827	AddressId *string `min:"40" type:"string"`
5828
5829	// The cluster ID of the cluster that you want to update, for example CID123e4567-e89b-12d3-a456-426655440000.
5830	//
5831	// ClusterId is a required field
5832	ClusterId *string `min:"39" type:"string" required:"true"`
5833
5834	// The updated description of this cluster.
5835	Description *string `min:"1" type:"string"`
5836
5837	// The updated ID for the forwarding address for a cluster. This field is not
5838	// supported in most regions.
5839	ForwardingAddressId *string `min:"40" type:"string"`
5840
5841	// The new or updated Notification object.
5842	Notification *Notification `type:"structure"`
5843
5844	// The updated arrays of JobResource objects that can include updated S3Resource
5845	// objects or LambdaResource objects.
5846	Resources *JobResource `type:"structure"`
5847
5848	// The new role Amazon Resource Name (ARN) that you want to associate with this
5849	// cluster. To create a role ARN, use the CreateRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)
5850	// API action in AWS Identity and Access Management (IAM).
5851	RoleARN *string `type:"string"`
5852
5853	// The updated shipping option value of this cluster's ShippingDetails object.
5854	ShippingOption *string `type:"string" enum:"ShippingOption"`
5855}
5856
5857// String returns the string representation
5858func (s UpdateClusterInput) String() string {
5859	return awsutil.Prettify(s)
5860}
5861
5862// GoString returns the string representation
5863func (s UpdateClusterInput) GoString() string {
5864	return s.String()
5865}
5866
5867// Validate inspects the fields of the type to determine if they are valid.
5868func (s *UpdateClusterInput) Validate() error {
5869	invalidParams := request.ErrInvalidParams{Context: "UpdateClusterInput"}
5870	if s.AddressId != nil && len(*s.AddressId) < 40 {
5871		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
5872	}
5873	if s.ClusterId == nil {
5874		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
5875	}
5876	if s.ClusterId != nil && len(*s.ClusterId) < 39 {
5877		invalidParams.Add(request.NewErrParamMinLen("ClusterId", 39))
5878	}
5879	if s.Description != nil && len(*s.Description) < 1 {
5880		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
5881	}
5882	if s.ForwardingAddressId != nil && len(*s.ForwardingAddressId) < 40 {
5883		invalidParams.Add(request.NewErrParamMinLen("ForwardingAddressId", 40))
5884	}
5885	if s.Resources != nil {
5886		if err := s.Resources.Validate(); err != nil {
5887			invalidParams.AddNested("Resources", err.(request.ErrInvalidParams))
5888		}
5889	}
5890
5891	if invalidParams.Len() > 0 {
5892		return invalidParams
5893	}
5894	return nil
5895}
5896
5897// SetAddressId sets the AddressId field's value.
5898func (s *UpdateClusterInput) SetAddressId(v string) *UpdateClusterInput {
5899	s.AddressId = &v
5900	return s
5901}
5902
5903// SetClusterId sets the ClusterId field's value.
5904func (s *UpdateClusterInput) SetClusterId(v string) *UpdateClusterInput {
5905	s.ClusterId = &v
5906	return s
5907}
5908
5909// SetDescription sets the Description field's value.
5910func (s *UpdateClusterInput) SetDescription(v string) *UpdateClusterInput {
5911	s.Description = &v
5912	return s
5913}
5914
5915// SetForwardingAddressId sets the ForwardingAddressId field's value.
5916func (s *UpdateClusterInput) SetForwardingAddressId(v string) *UpdateClusterInput {
5917	s.ForwardingAddressId = &v
5918	return s
5919}
5920
5921// SetNotification sets the Notification field's value.
5922func (s *UpdateClusterInput) SetNotification(v *Notification) *UpdateClusterInput {
5923	s.Notification = v
5924	return s
5925}
5926
5927// SetResources sets the Resources field's value.
5928func (s *UpdateClusterInput) SetResources(v *JobResource) *UpdateClusterInput {
5929	s.Resources = v
5930	return s
5931}
5932
5933// SetRoleARN sets the RoleARN field's value.
5934func (s *UpdateClusterInput) SetRoleARN(v string) *UpdateClusterInput {
5935	s.RoleARN = &v
5936	return s
5937}
5938
5939// SetShippingOption sets the ShippingOption field's value.
5940func (s *UpdateClusterInput) SetShippingOption(v string) *UpdateClusterInput {
5941	s.ShippingOption = &v
5942	return s
5943}
5944
5945type UpdateClusterOutput struct {
5946	_ struct{} `type:"structure"`
5947}
5948
5949// String returns the string representation
5950func (s UpdateClusterOutput) String() string {
5951	return awsutil.Prettify(s)
5952}
5953
5954// GoString returns the string representation
5955func (s UpdateClusterOutput) GoString() string {
5956	return s.String()
5957}
5958
5959type UpdateJobInput struct {
5960	_ struct{} `type:"structure"`
5961
5962	// The ID of the updated Address object.
5963	AddressId *string `min:"40" type:"string"`
5964
5965	// The updated description of this job's JobMetadata object.
5966	Description *string `min:"1" type:"string"`
5967
5968	// The updated ID for the forwarding address for a job. This field is not supported
5969	// in most regions.
5970	ForwardingAddressId *string `min:"40" type:"string"`
5971
5972	// The job ID of the job that you want to update, for example JID123e4567-e89b-12d3-a456-426655440000.
5973	//
5974	// JobId is a required field
5975	JobId *string `min:"39" type:"string" required:"true"`
5976
5977	// The new or updated Notification object.
5978	Notification *Notification `type:"structure"`
5979
5980	// The updated JobResource object, or the updated JobResource object.
5981	Resources *JobResource `type:"structure"`
5982
5983	// The new role Amazon Resource Name (ARN) that you want to associate with this
5984	// job. To create a role ARN, use the CreateRole (https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html)AWS
5985	// Identity and Access Management (IAM) API action.
5986	RoleARN *string `type:"string"`
5987
5988	// The updated shipping option value of this job's ShippingDetails object.
5989	ShippingOption *string `type:"string" enum:"ShippingOption"`
5990
5991	// The updated SnowballCapacityPreference of this job's JobMetadata object.
5992	// The 50 TB Snowballs are only available in the US regions.
5993	SnowballCapacityPreference *string `type:"string" enum:"Capacity"`
5994}
5995
5996// String returns the string representation
5997func (s UpdateJobInput) String() string {
5998	return awsutil.Prettify(s)
5999}
6000
6001// GoString returns the string representation
6002func (s UpdateJobInput) GoString() string {
6003	return s.String()
6004}
6005
6006// Validate inspects the fields of the type to determine if they are valid.
6007func (s *UpdateJobInput) Validate() error {
6008	invalidParams := request.ErrInvalidParams{Context: "UpdateJobInput"}
6009	if s.AddressId != nil && len(*s.AddressId) < 40 {
6010		invalidParams.Add(request.NewErrParamMinLen("AddressId", 40))
6011	}
6012	if s.Description != nil && len(*s.Description) < 1 {
6013		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
6014	}
6015	if s.ForwardingAddressId != nil && len(*s.ForwardingAddressId) < 40 {
6016		invalidParams.Add(request.NewErrParamMinLen("ForwardingAddressId", 40))
6017	}
6018	if s.JobId == nil {
6019		invalidParams.Add(request.NewErrParamRequired("JobId"))
6020	}
6021	if s.JobId != nil && len(*s.JobId) < 39 {
6022		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
6023	}
6024	if s.Resources != nil {
6025		if err := s.Resources.Validate(); err != nil {
6026			invalidParams.AddNested("Resources", err.(request.ErrInvalidParams))
6027		}
6028	}
6029
6030	if invalidParams.Len() > 0 {
6031		return invalidParams
6032	}
6033	return nil
6034}
6035
6036// SetAddressId sets the AddressId field's value.
6037func (s *UpdateJobInput) SetAddressId(v string) *UpdateJobInput {
6038	s.AddressId = &v
6039	return s
6040}
6041
6042// SetDescription sets the Description field's value.
6043func (s *UpdateJobInput) SetDescription(v string) *UpdateJobInput {
6044	s.Description = &v
6045	return s
6046}
6047
6048// SetForwardingAddressId sets the ForwardingAddressId field's value.
6049func (s *UpdateJobInput) SetForwardingAddressId(v string) *UpdateJobInput {
6050	s.ForwardingAddressId = &v
6051	return s
6052}
6053
6054// SetJobId sets the JobId field's value.
6055func (s *UpdateJobInput) SetJobId(v string) *UpdateJobInput {
6056	s.JobId = &v
6057	return s
6058}
6059
6060// SetNotification sets the Notification field's value.
6061func (s *UpdateJobInput) SetNotification(v *Notification) *UpdateJobInput {
6062	s.Notification = v
6063	return s
6064}
6065
6066// SetResources sets the Resources field's value.
6067func (s *UpdateJobInput) SetResources(v *JobResource) *UpdateJobInput {
6068	s.Resources = v
6069	return s
6070}
6071
6072// SetRoleARN sets the RoleARN field's value.
6073func (s *UpdateJobInput) SetRoleARN(v string) *UpdateJobInput {
6074	s.RoleARN = &v
6075	return s
6076}
6077
6078// SetShippingOption sets the ShippingOption field's value.
6079func (s *UpdateJobInput) SetShippingOption(v string) *UpdateJobInput {
6080	s.ShippingOption = &v
6081	return s
6082}
6083
6084// SetSnowballCapacityPreference sets the SnowballCapacityPreference field's value.
6085func (s *UpdateJobInput) SetSnowballCapacityPreference(v string) *UpdateJobInput {
6086	s.SnowballCapacityPreference = &v
6087	return s
6088}
6089
6090type UpdateJobOutput struct {
6091	_ struct{} `type:"structure"`
6092}
6093
6094// String returns the string representation
6095func (s UpdateJobOutput) String() string {
6096	return awsutil.Prettify(s)
6097}
6098
6099// GoString returns the string representation
6100func (s UpdateJobOutput) GoString() string {
6101	return s.String()
6102}
6103
6104type UpdateJobShipmentStateInput struct {
6105	_ struct{} `type:"structure"`
6106
6107	// The job ID of the job whose shipment date you want to update, for example
6108	// JID123e4567-e89b-12d3-a456-426655440000.
6109	//
6110	// JobId is a required field
6111	JobId *string `min:"39" type:"string" required:"true"`
6112
6113	// The state of a device when it is being shipped.
6114	//
6115	// Set to RECEIVED when the device arrives at your location.
6116	//
6117	// Set to RETURNED when you have returned the device to AWS.
6118	//
6119	// ShipmentState is a required field
6120	ShipmentState *string `type:"string" required:"true" enum:"ShipmentState"`
6121}
6122
6123// String returns the string representation
6124func (s UpdateJobShipmentStateInput) String() string {
6125	return awsutil.Prettify(s)
6126}
6127
6128// GoString returns the string representation
6129func (s UpdateJobShipmentStateInput) GoString() string {
6130	return s.String()
6131}
6132
6133// Validate inspects the fields of the type to determine if they are valid.
6134func (s *UpdateJobShipmentStateInput) Validate() error {
6135	invalidParams := request.ErrInvalidParams{Context: "UpdateJobShipmentStateInput"}
6136	if s.JobId == nil {
6137		invalidParams.Add(request.NewErrParamRequired("JobId"))
6138	}
6139	if s.JobId != nil && len(*s.JobId) < 39 {
6140		invalidParams.Add(request.NewErrParamMinLen("JobId", 39))
6141	}
6142	if s.ShipmentState == nil {
6143		invalidParams.Add(request.NewErrParamRequired("ShipmentState"))
6144	}
6145
6146	if invalidParams.Len() > 0 {
6147		return invalidParams
6148	}
6149	return nil
6150}
6151
6152// SetJobId sets the JobId field's value.
6153func (s *UpdateJobShipmentStateInput) SetJobId(v string) *UpdateJobShipmentStateInput {
6154	s.JobId = &v
6155	return s
6156}
6157
6158// SetShipmentState sets the ShipmentState field's value.
6159func (s *UpdateJobShipmentStateInput) SetShipmentState(v string) *UpdateJobShipmentStateInput {
6160	s.ShipmentState = &v
6161	return s
6162}
6163
6164type UpdateJobShipmentStateOutput struct {
6165	_ struct{} `type:"structure"`
6166}
6167
6168// String returns the string representation
6169func (s UpdateJobShipmentStateOutput) String() string {
6170	return awsutil.Prettify(s)
6171}
6172
6173// GoString returns the string representation
6174func (s UpdateJobShipmentStateOutput) GoString() string {
6175	return s.String()
6176}
6177
6178// Configures the wireless connection on an AWS Snowcone device.
6179type WirelessConnection struct {
6180	_ struct{} `type:"structure"`
6181
6182	// Enables the Wi-Fi adapter on an AWS Snowcone device.
6183	IsWifiEnabled *bool `type:"boolean"`
6184}
6185
6186// String returns the string representation
6187func (s WirelessConnection) String() string {
6188	return awsutil.Prettify(s)
6189}
6190
6191// GoString returns the string representation
6192func (s WirelessConnection) GoString() string {
6193	return s.String()
6194}
6195
6196// SetIsWifiEnabled sets the IsWifiEnabled field's value.
6197func (s *WirelessConnection) SetIsWifiEnabled(v bool) *WirelessConnection {
6198	s.IsWifiEnabled = &v
6199	return s
6200}
6201
6202const (
6203	// CapacityT50 is a Capacity enum value
6204	CapacityT50 = "T50"
6205
6206	// CapacityT80 is a Capacity enum value
6207	CapacityT80 = "T80"
6208
6209	// CapacityT100 is a Capacity enum value
6210	CapacityT100 = "T100"
6211
6212	// CapacityT42 is a Capacity enum value
6213	CapacityT42 = "T42"
6214
6215	// CapacityT98 is a Capacity enum value
6216	CapacityT98 = "T98"
6217
6218	// CapacityT8 is a Capacity enum value
6219	CapacityT8 = "T8"
6220
6221	// CapacityNoPreference is a Capacity enum value
6222	CapacityNoPreference = "NoPreference"
6223)
6224
6225// Capacity_Values returns all elements of the Capacity enum
6226func Capacity_Values() []string {
6227	return []string{
6228		CapacityT50,
6229		CapacityT80,
6230		CapacityT100,
6231		CapacityT42,
6232		CapacityT98,
6233		CapacityT8,
6234		CapacityNoPreference,
6235	}
6236}
6237
6238const (
6239	// ClusterStateAwaitingQuorum is a ClusterState enum value
6240	ClusterStateAwaitingQuorum = "AwaitingQuorum"
6241
6242	// ClusterStatePending is a ClusterState enum value
6243	ClusterStatePending = "Pending"
6244
6245	// ClusterStateInUse is a ClusterState enum value
6246	ClusterStateInUse = "InUse"
6247
6248	// ClusterStateComplete is a ClusterState enum value
6249	ClusterStateComplete = "Complete"
6250
6251	// ClusterStateCancelled is a ClusterState enum value
6252	ClusterStateCancelled = "Cancelled"
6253)
6254
6255// ClusterState_Values returns all elements of the ClusterState enum
6256func ClusterState_Values() []string {
6257	return []string{
6258		ClusterStateAwaitingQuorum,
6259		ClusterStatePending,
6260		ClusterStateInUse,
6261		ClusterStateComplete,
6262		ClusterStateCancelled,
6263	}
6264}
6265
6266const (
6267	// JobStateNew is a JobState enum value
6268	JobStateNew = "New"
6269
6270	// JobStatePreparingAppliance is a JobState enum value
6271	JobStatePreparingAppliance = "PreparingAppliance"
6272
6273	// JobStatePreparingShipment is a JobState enum value
6274	JobStatePreparingShipment = "PreparingShipment"
6275
6276	// JobStateInTransitToCustomer is a JobState enum value
6277	JobStateInTransitToCustomer = "InTransitToCustomer"
6278
6279	// JobStateWithCustomer is a JobState enum value
6280	JobStateWithCustomer = "WithCustomer"
6281
6282	// JobStateInTransitToAws is a JobState enum value
6283	JobStateInTransitToAws = "InTransitToAWS"
6284
6285	// JobStateWithAwssortingFacility is a JobState enum value
6286	JobStateWithAwssortingFacility = "WithAWSSortingFacility"
6287
6288	// JobStateWithAws is a JobState enum value
6289	JobStateWithAws = "WithAWS"
6290
6291	// JobStateInProgress is a JobState enum value
6292	JobStateInProgress = "InProgress"
6293
6294	// JobStateComplete is a JobState enum value
6295	JobStateComplete = "Complete"
6296
6297	// JobStateCancelled is a JobState enum value
6298	JobStateCancelled = "Cancelled"
6299
6300	// JobStateListing is a JobState enum value
6301	JobStateListing = "Listing"
6302
6303	// JobStatePending is a JobState enum value
6304	JobStatePending = "Pending"
6305)
6306
6307// JobState_Values returns all elements of the JobState enum
6308func JobState_Values() []string {
6309	return []string{
6310		JobStateNew,
6311		JobStatePreparingAppliance,
6312		JobStatePreparingShipment,
6313		JobStateInTransitToCustomer,
6314		JobStateWithCustomer,
6315		JobStateInTransitToAws,
6316		JobStateWithAwssortingFacility,
6317		JobStateWithAws,
6318		JobStateInProgress,
6319		JobStateComplete,
6320		JobStateCancelled,
6321		JobStateListing,
6322		JobStatePending,
6323	}
6324}
6325
6326const (
6327	// JobTypeImport is a JobType enum value
6328	JobTypeImport = "IMPORT"
6329
6330	// JobTypeExport is a JobType enum value
6331	JobTypeExport = "EXPORT"
6332
6333	// JobTypeLocalUse is a JobType enum value
6334	JobTypeLocalUse = "LOCAL_USE"
6335)
6336
6337// JobType_Values returns all elements of the JobType enum
6338func JobType_Values() []string {
6339	return []string{
6340		JobTypeImport,
6341		JobTypeExport,
6342		JobTypeLocalUse,
6343	}
6344}
6345
6346const (
6347	// ShipmentStateReceived is a ShipmentState enum value
6348	ShipmentStateReceived = "RECEIVED"
6349
6350	// ShipmentStateReturned is a ShipmentState enum value
6351	ShipmentStateReturned = "RETURNED"
6352)
6353
6354// ShipmentState_Values returns all elements of the ShipmentState enum
6355func ShipmentState_Values() []string {
6356	return []string{
6357		ShipmentStateReceived,
6358		ShipmentStateReturned,
6359	}
6360}
6361
6362const (
6363	// ShippingLabelStatusInProgress is a ShippingLabelStatus enum value
6364	ShippingLabelStatusInProgress = "InProgress"
6365
6366	// ShippingLabelStatusTimedOut is a ShippingLabelStatus enum value
6367	ShippingLabelStatusTimedOut = "TimedOut"
6368
6369	// ShippingLabelStatusSucceeded is a ShippingLabelStatus enum value
6370	ShippingLabelStatusSucceeded = "Succeeded"
6371
6372	// ShippingLabelStatusFailed is a ShippingLabelStatus enum value
6373	ShippingLabelStatusFailed = "Failed"
6374)
6375
6376// ShippingLabelStatus_Values returns all elements of the ShippingLabelStatus enum
6377func ShippingLabelStatus_Values() []string {
6378	return []string{
6379		ShippingLabelStatusInProgress,
6380		ShippingLabelStatusTimedOut,
6381		ShippingLabelStatusSucceeded,
6382		ShippingLabelStatusFailed,
6383	}
6384}
6385
6386const (
6387	// ShippingOptionSecondDay is a ShippingOption enum value
6388	ShippingOptionSecondDay = "SECOND_DAY"
6389
6390	// ShippingOptionNextDay is a ShippingOption enum value
6391	ShippingOptionNextDay = "NEXT_DAY"
6392
6393	// ShippingOptionExpress is a ShippingOption enum value
6394	ShippingOptionExpress = "EXPRESS"
6395
6396	// ShippingOptionStandard is a ShippingOption enum value
6397	ShippingOptionStandard = "STANDARD"
6398)
6399
6400// ShippingOption_Values returns all elements of the ShippingOption enum
6401func ShippingOption_Values() []string {
6402	return []string{
6403		ShippingOptionSecondDay,
6404		ShippingOptionNextDay,
6405		ShippingOptionExpress,
6406		ShippingOptionStandard,
6407	}
6408}
6409
6410const (
6411	// TypeStandard is a Type enum value
6412	TypeStandard = "STANDARD"
6413
6414	// TypeEdge is a Type enum value
6415	TypeEdge = "EDGE"
6416
6417	// TypeEdgeC is a Type enum value
6418	TypeEdgeC = "EDGE_C"
6419
6420	// TypeEdgeCg is a Type enum value
6421	TypeEdgeCg = "EDGE_CG"
6422
6423	// TypeEdgeS is a Type enum value
6424	TypeEdgeS = "EDGE_S"
6425
6426	// TypeSnc1Hdd is a Type enum value
6427	TypeSnc1Hdd = "SNC1_HDD"
6428)
6429
6430// Type_Values returns all elements of the Type enum
6431func Type_Values() []string {
6432	return []string{
6433		TypeStandard,
6434		TypeEdge,
6435		TypeEdgeC,
6436		TypeEdgeCg,
6437		TypeEdgeS,
6438		TypeSnc1Hdd,
6439	}
6440}
6441