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