1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package glacier
4
5import (
6	"fmt"
7	"io"
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/restjson"
14)
15
16const opAbortMultipartUpload = "AbortMultipartUpload"
17
18// AbortMultipartUploadRequest generates a "aws/request.Request" representing the
19// client's request for the AbortMultipartUpload 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 AbortMultipartUpload for more information on using the AbortMultipartUpload
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 AbortMultipartUploadRequest method.
34//    req, resp := client.AbortMultipartUploadRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40func (c *Glacier) AbortMultipartUploadRequest(input *AbortMultipartUploadInput) (req *request.Request, output *AbortMultipartUploadOutput) {
41	op := &request.Operation{
42		Name:       opAbortMultipartUpload,
43		HTTPMethod: "DELETE",
44		HTTPPath:   "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}",
45	}
46
47	if input == nil {
48		input = &AbortMultipartUploadInput{}
49	}
50
51	output = &AbortMultipartUploadOutput{}
52	req = c.newRequest(op, input, output)
53	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
54	return
55}
56
57// AbortMultipartUpload API operation for Amazon Glacier.
58//
59// This operation aborts a multipart upload identified by the upload ID.
60//
61// After the Abort Multipart Upload request succeeds, you cannot upload any
62// more parts to the multipart upload or complete the multipart upload. Aborting
63// a completed upload fails. However, aborting an already-aborted upload will
64// succeed, for a short time. For more information about uploading a part and
65// completing a multipart upload, see UploadMultipartPart and CompleteMultipartUpload.
66//
67// This operation is idempotent.
68//
69// An AWS account has full permission to perform all operations (actions). However,
70// AWS Identity and Access Management (IAM) users don't have any permissions
71// by default. You must grant them explicit permission to perform specific actions.
72// For more information, see Access Control Using AWS Identity and Access Management
73// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
74//
75// For conceptual information and underlying REST API, see Working with Archives
76// in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html)
77// and Abort Multipart Upload (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-abort-upload.html)
78// in the Amazon Glacier Developer Guide.
79//
80// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
81// with awserr.Error's Code and Message methods to get detailed information about
82// the error.
83//
84// See the AWS API reference guide for Amazon Glacier's
85// API operation AbortMultipartUpload for usage and error information.
86//
87// Returned Error Codes:
88//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
89//   Returned if the specified resource (such as a vault, upload ID, or job ID)
90//   doesn't exist.
91//
92//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
93//   Returned if a parameter of the request is incorrectly specified.
94//
95//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
96//   Returned if a required header or parameter is missing from the request.
97//
98//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
99//   Returned if the service cannot complete the request.
100//
101func (c *Glacier) AbortMultipartUpload(input *AbortMultipartUploadInput) (*AbortMultipartUploadOutput, error) {
102	req, out := c.AbortMultipartUploadRequest(input)
103	return out, req.Send()
104}
105
106// AbortMultipartUploadWithContext is the same as AbortMultipartUpload with the addition of
107// the ability to pass a context and additional request options.
108//
109// See AbortMultipartUpload for details on how to use this API operation.
110//
111// The context must be non-nil and will be used for request cancellation. If
112// the context is nil a panic will occur. In the future the SDK may create
113// sub-contexts for http.Requests. See https://golang.org/pkg/context/
114// for more information on using Contexts.
115func (c *Glacier) AbortMultipartUploadWithContext(ctx aws.Context, input *AbortMultipartUploadInput, opts ...request.Option) (*AbortMultipartUploadOutput, error) {
116	req, out := c.AbortMultipartUploadRequest(input)
117	req.SetContext(ctx)
118	req.ApplyOptions(opts...)
119	return out, req.Send()
120}
121
122const opAbortVaultLock = "AbortVaultLock"
123
124// AbortVaultLockRequest generates a "aws/request.Request" representing the
125// client's request for the AbortVaultLock operation. The "output" return
126// value will be populated with the request's response once the request completes
127// successfully.
128//
129// Use "Send" method on the returned Request to send the API call to the service.
130// the "output" return value is not valid until after Send returns without error.
131//
132// See AbortVaultLock for more information on using the AbortVaultLock
133// API call, and error handling.
134//
135// This method is useful when you want to inject custom logic or configuration
136// into the SDK's request lifecycle. Such as custom headers, or retry logic.
137//
138//
139//    // Example sending a request using the AbortVaultLockRequest method.
140//    req, resp := client.AbortVaultLockRequest(params)
141//
142//    err := req.Send()
143//    if err == nil { // resp is now filled
144//        fmt.Println(resp)
145//    }
146func (c *Glacier) AbortVaultLockRequest(input *AbortVaultLockInput) (req *request.Request, output *AbortVaultLockOutput) {
147	op := &request.Operation{
148		Name:       opAbortVaultLock,
149		HTTPMethod: "DELETE",
150		HTTPPath:   "/{accountId}/vaults/{vaultName}/lock-policy",
151	}
152
153	if input == nil {
154		input = &AbortVaultLockInput{}
155	}
156
157	output = &AbortVaultLockOutput{}
158	req = c.newRequest(op, input, output)
159	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
160	return
161}
162
163// AbortVaultLock API operation for Amazon Glacier.
164//
165// This operation aborts the vault locking process if the vault lock is not
166// in the Locked state. If the vault lock is in the Locked state when this operation
167// is requested, the operation returns an AccessDeniedException error. Aborting
168// the vault locking process removes the vault lock policy from the specified
169// vault.
170//
171// A vault lock is put into the InProgress state by calling InitiateVaultLock.
172// A vault lock is put into the Locked state by calling CompleteVaultLock. You
173// can get the state of a vault lock by calling GetVaultLock. For more information
174// about the vault locking process, see Amazon Glacier Vault Lock (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html).
175// For more information about vault lock policies, see Amazon Glacier Access
176// Control with Vault Lock Policies (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock-policy.html).
177//
178// This operation is idempotent. You can successfully invoke this operation
179// multiple times, if the vault lock is in the InProgress state or if there
180// is no policy associated with the vault.
181//
182// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
183// with awserr.Error's Code and Message methods to get detailed information about
184// the error.
185//
186// See the AWS API reference guide for Amazon Glacier's
187// API operation AbortVaultLock for usage and error information.
188//
189// Returned Error Codes:
190//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
191//   Returned if the specified resource (such as a vault, upload ID, or job ID)
192//   doesn't exist.
193//
194//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
195//   Returned if a parameter of the request is incorrectly specified.
196//
197//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
198//   Returned if a required header or parameter is missing from the request.
199//
200//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
201//   Returned if the service cannot complete the request.
202//
203func (c *Glacier) AbortVaultLock(input *AbortVaultLockInput) (*AbortVaultLockOutput, error) {
204	req, out := c.AbortVaultLockRequest(input)
205	return out, req.Send()
206}
207
208// AbortVaultLockWithContext is the same as AbortVaultLock with the addition of
209// the ability to pass a context and additional request options.
210//
211// See AbortVaultLock for details on how to use this API operation.
212//
213// The context must be non-nil and will be used for request cancellation. If
214// the context is nil a panic will occur. In the future the SDK may create
215// sub-contexts for http.Requests. See https://golang.org/pkg/context/
216// for more information on using Contexts.
217func (c *Glacier) AbortVaultLockWithContext(ctx aws.Context, input *AbortVaultLockInput, opts ...request.Option) (*AbortVaultLockOutput, error) {
218	req, out := c.AbortVaultLockRequest(input)
219	req.SetContext(ctx)
220	req.ApplyOptions(opts...)
221	return out, req.Send()
222}
223
224const opAddTagsToVault = "AddTagsToVault"
225
226// AddTagsToVaultRequest generates a "aws/request.Request" representing the
227// client's request for the AddTagsToVault operation. The "output" return
228// value will be populated with the request's response once the request completes
229// successfully.
230//
231// Use "Send" method on the returned Request to send the API call to the service.
232// the "output" return value is not valid until after Send returns without error.
233//
234// See AddTagsToVault for more information on using the AddTagsToVault
235// API call, and error handling.
236//
237// This method is useful when you want to inject custom logic or configuration
238// into the SDK's request lifecycle. Such as custom headers, or retry logic.
239//
240//
241//    // Example sending a request using the AddTagsToVaultRequest method.
242//    req, resp := client.AddTagsToVaultRequest(params)
243//
244//    err := req.Send()
245//    if err == nil { // resp is now filled
246//        fmt.Println(resp)
247//    }
248func (c *Glacier) AddTagsToVaultRequest(input *AddTagsToVaultInput) (req *request.Request, output *AddTagsToVaultOutput) {
249	op := &request.Operation{
250		Name:       opAddTagsToVault,
251		HTTPMethod: "POST",
252		HTTPPath:   "/{accountId}/vaults/{vaultName}/tags?operation=add",
253	}
254
255	if input == nil {
256		input = &AddTagsToVaultInput{}
257	}
258
259	output = &AddTagsToVaultOutput{}
260	req = c.newRequest(op, input, output)
261	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
262	return
263}
264
265// AddTagsToVault API operation for Amazon Glacier.
266//
267// This operation adds the specified tags to a vault. Each tag is composed of
268// a key and a value. Each vault can have up to 10 tags. If your request would
269// cause the tag limit for the vault to be exceeded, the operation throws the
270// LimitExceededException error. If a tag already exists on the vault under
271// a specified key, the existing key value will be overwritten. For more information
272// about tags, see Tagging Amazon S3 Glacier Resources (https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html).
273//
274// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
275// with awserr.Error's Code and Message methods to get detailed information about
276// the error.
277//
278// See the AWS API reference guide for Amazon Glacier's
279// API operation AddTagsToVault for usage and error information.
280//
281// Returned Error Codes:
282//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
283//   Returned if a parameter of the request is incorrectly specified.
284//
285//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
286//   Returned if a required header or parameter is missing from the request.
287//
288//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
289//   Returned if the specified resource (such as a vault, upload ID, or job ID)
290//   doesn't exist.
291//
292//   * ErrCodeLimitExceededException "LimitExceededException"
293//   Returned if the request results in a vault or account limit being exceeded.
294//
295//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
296//   Returned if the service cannot complete the request.
297//
298func (c *Glacier) AddTagsToVault(input *AddTagsToVaultInput) (*AddTagsToVaultOutput, error) {
299	req, out := c.AddTagsToVaultRequest(input)
300	return out, req.Send()
301}
302
303// AddTagsToVaultWithContext is the same as AddTagsToVault with the addition of
304// the ability to pass a context and additional request options.
305//
306// See AddTagsToVault for details on how to use this API operation.
307//
308// The context must be non-nil and will be used for request cancellation. If
309// the context is nil a panic will occur. In the future the SDK may create
310// sub-contexts for http.Requests. See https://golang.org/pkg/context/
311// for more information on using Contexts.
312func (c *Glacier) AddTagsToVaultWithContext(ctx aws.Context, input *AddTagsToVaultInput, opts ...request.Option) (*AddTagsToVaultOutput, error) {
313	req, out := c.AddTagsToVaultRequest(input)
314	req.SetContext(ctx)
315	req.ApplyOptions(opts...)
316	return out, req.Send()
317}
318
319const opCompleteMultipartUpload = "CompleteMultipartUpload"
320
321// CompleteMultipartUploadRequest generates a "aws/request.Request" representing the
322// client's request for the CompleteMultipartUpload operation. The "output" return
323// value will be populated with the request's response once the request completes
324// successfully.
325//
326// Use "Send" method on the returned Request to send the API call to the service.
327// the "output" return value is not valid until after Send returns without error.
328//
329// See CompleteMultipartUpload for more information on using the CompleteMultipartUpload
330// API call, and error handling.
331//
332// This method is useful when you want to inject custom logic or configuration
333// into the SDK's request lifecycle. Such as custom headers, or retry logic.
334//
335//
336//    // Example sending a request using the CompleteMultipartUploadRequest method.
337//    req, resp := client.CompleteMultipartUploadRequest(params)
338//
339//    err := req.Send()
340//    if err == nil { // resp is now filled
341//        fmt.Println(resp)
342//    }
343func (c *Glacier) CompleteMultipartUploadRequest(input *CompleteMultipartUploadInput) (req *request.Request, output *ArchiveCreationOutput) {
344	op := &request.Operation{
345		Name:       opCompleteMultipartUpload,
346		HTTPMethod: "POST",
347		HTTPPath:   "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}",
348	}
349
350	if input == nil {
351		input = &CompleteMultipartUploadInput{}
352	}
353
354	output = &ArchiveCreationOutput{}
355	req = c.newRequest(op, input, output)
356	return
357}
358
359// CompleteMultipartUpload API operation for Amazon Glacier.
360//
361// You call this operation to inform Amazon S3 Glacier (Glacier) that all the
362// archive parts have been uploaded and that Glacier can now assemble the archive
363// from the uploaded parts. After assembling and saving the archive to the vault,
364// Glacier returns the URI path of the newly created archive resource. Using
365// the URI path, you can then access the archive. After you upload an archive,
366// you should save the archive ID returned to retrieve the archive at a later
367// point. You can also get the vault inventory to obtain a list of archive IDs
368// in a vault. For more information, see InitiateJob.
369//
370// In the request, you must include the computed SHA256 tree hash of the entire
371// archive you have uploaded. For information about computing a SHA256 tree
372// hash, see Computing Checksums (https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html).
373// On the server side, Glacier also constructs the SHA256 tree hash of the assembled
374// archive. If the values match, Glacier saves the archive to the vault; otherwise,
375// it returns an error, and the operation fails. The ListParts operation returns
376// a list of parts uploaded for a specific multipart upload. It includes checksum
377// information for each uploaded part that can be used to debug a bad checksum
378// issue.
379//
380// Additionally, Glacier also checks for any missing content ranges when assembling
381// the archive, if missing content ranges are found, Glacier returns an error
382// and the operation fails.
383//
384// Complete Multipart Upload is an idempotent operation. After your first successful
385// complete multipart upload, if you call the operation again within a short
386// period, the operation will succeed and return the same archive ID. This is
387// useful in the event you experience a network issue that causes an aborted
388// connection or receive a 500 server error, in which case you can repeat your
389// Complete Multipart Upload request and get the same archive ID without creating
390// duplicate archives. Note, however, that after the multipart upload completes,
391// you cannot call the List Parts operation and the multipart upload will not
392// appear in List Multipart Uploads response, even if idempotent complete is
393// possible.
394//
395// An AWS account has full permission to perform all operations (actions). However,
396// AWS Identity and Access Management (IAM) users don't have any permissions
397// by default. You must grant them explicit permission to perform specific actions.
398// For more information, see Access Control Using AWS Identity and Access Management
399// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
400//
401// For conceptual information and underlying REST API, see Uploading Large Archives
402// in Parts (Multipart Upload) (https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html)
403// and Complete Multipart Upload (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-complete-upload.html)
404// in the Amazon Glacier Developer Guide.
405//
406// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
407// with awserr.Error's Code and Message methods to get detailed information about
408// the error.
409//
410// See the AWS API reference guide for Amazon Glacier's
411// API operation CompleteMultipartUpload for usage and error information.
412//
413// Returned Error Codes:
414//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
415//   Returned if the specified resource (such as a vault, upload ID, or job ID)
416//   doesn't exist.
417//
418//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
419//   Returned if a parameter of the request is incorrectly specified.
420//
421//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
422//   Returned if a required header or parameter is missing from the request.
423//
424//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
425//   Returned if the service cannot complete the request.
426//
427func (c *Glacier) CompleteMultipartUpload(input *CompleteMultipartUploadInput) (*ArchiveCreationOutput, error) {
428	req, out := c.CompleteMultipartUploadRequest(input)
429	return out, req.Send()
430}
431
432// CompleteMultipartUploadWithContext is the same as CompleteMultipartUpload with the addition of
433// the ability to pass a context and additional request options.
434//
435// See CompleteMultipartUpload for details on how to use this API operation.
436//
437// The context must be non-nil and will be used for request cancellation. If
438// the context is nil a panic will occur. In the future the SDK may create
439// sub-contexts for http.Requests. See https://golang.org/pkg/context/
440// for more information on using Contexts.
441func (c *Glacier) CompleteMultipartUploadWithContext(ctx aws.Context, input *CompleteMultipartUploadInput, opts ...request.Option) (*ArchiveCreationOutput, error) {
442	req, out := c.CompleteMultipartUploadRequest(input)
443	req.SetContext(ctx)
444	req.ApplyOptions(opts...)
445	return out, req.Send()
446}
447
448const opCompleteVaultLock = "CompleteVaultLock"
449
450// CompleteVaultLockRequest generates a "aws/request.Request" representing the
451// client's request for the CompleteVaultLock operation. The "output" return
452// value will be populated with the request's response once the request completes
453// successfully.
454//
455// Use "Send" method on the returned Request to send the API call to the service.
456// the "output" return value is not valid until after Send returns without error.
457//
458// See CompleteVaultLock for more information on using the CompleteVaultLock
459// API call, and error handling.
460//
461// This method is useful when you want to inject custom logic or configuration
462// into the SDK's request lifecycle. Such as custom headers, or retry logic.
463//
464//
465//    // Example sending a request using the CompleteVaultLockRequest method.
466//    req, resp := client.CompleteVaultLockRequest(params)
467//
468//    err := req.Send()
469//    if err == nil { // resp is now filled
470//        fmt.Println(resp)
471//    }
472func (c *Glacier) CompleteVaultLockRequest(input *CompleteVaultLockInput) (req *request.Request, output *CompleteVaultLockOutput) {
473	op := &request.Operation{
474		Name:       opCompleteVaultLock,
475		HTTPMethod: "POST",
476		HTTPPath:   "/{accountId}/vaults/{vaultName}/lock-policy/{lockId}",
477	}
478
479	if input == nil {
480		input = &CompleteVaultLockInput{}
481	}
482
483	output = &CompleteVaultLockOutput{}
484	req = c.newRequest(op, input, output)
485	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
486	return
487}
488
489// CompleteVaultLock API operation for Amazon Glacier.
490//
491// This operation completes the vault locking process by transitioning the vault
492// lock from the InProgress state to the Locked state, which causes the vault
493// lock policy to become unchangeable. A vault lock is put into the InProgress
494// state by calling InitiateVaultLock. You can obtain the state of the vault
495// lock by calling GetVaultLock. For more information about the vault locking
496// process, Amazon Glacier Vault Lock (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html).
497//
498// This operation is idempotent. This request is always successful if the vault
499// lock is in the Locked state and the provided lock ID matches the lock ID
500// originally used to lock the vault.
501//
502// If an invalid lock ID is passed in the request when the vault lock is in
503// the Locked state, the operation returns an AccessDeniedException error. If
504// an invalid lock ID is passed in the request when the vault lock is in the
505// InProgress state, the operation throws an InvalidParameter error.
506//
507// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
508// with awserr.Error's Code and Message methods to get detailed information about
509// the error.
510//
511// See the AWS API reference guide for Amazon Glacier's
512// API operation CompleteVaultLock for usage and error information.
513//
514// Returned Error Codes:
515//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
516//   Returned if the specified resource (such as a vault, upload ID, or job ID)
517//   doesn't exist.
518//
519//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
520//   Returned if a parameter of the request is incorrectly specified.
521//
522//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
523//   Returned if a required header or parameter is missing from the request.
524//
525//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
526//   Returned if the service cannot complete the request.
527//
528func (c *Glacier) CompleteVaultLock(input *CompleteVaultLockInput) (*CompleteVaultLockOutput, error) {
529	req, out := c.CompleteVaultLockRequest(input)
530	return out, req.Send()
531}
532
533// CompleteVaultLockWithContext is the same as CompleteVaultLock with the addition of
534// the ability to pass a context and additional request options.
535//
536// See CompleteVaultLock for details on how to use this API operation.
537//
538// The context must be non-nil and will be used for request cancellation. If
539// the context is nil a panic will occur. In the future the SDK may create
540// sub-contexts for http.Requests. See https://golang.org/pkg/context/
541// for more information on using Contexts.
542func (c *Glacier) CompleteVaultLockWithContext(ctx aws.Context, input *CompleteVaultLockInput, opts ...request.Option) (*CompleteVaultLockOutput, error) {
543	req, out := c.CompleteVaultLockRequest(input)
544	req.SetContext(ctx)
545	req.ApplyOptions(opts...)
546	return out, req.Send()
547}
548
549const opCreateVault = "CreateVault"
550
551// CreateVaultRequest generates a "aws/request.Request" representing the
552// client's request for the CreateVault operation. The "output" return
553// value will be populated with the request's response once the request completes
554// successfully.
555//
556// Use "Send" method on the returned Request to send the API call to the service.
557// the "output" return value is not valid until after Send returns without error.
558//
559// See CreateVault for more information on using the CreateVault
560// API call, and error handling.
561//
562// This method is useful when you want to inject custom logic or configuration
563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
564//
565//
566//    // Example sending a request using the CreateVaultRequest method.
567//    req, resp := client.CreateVaultRequest(params)
568//
569//    err := req.Send()
570//    if err == nil { // resp is now filled
571//        fmt.Println(resp)
572//    }
573func (c *Glacier) CreateVaultRequest(input *CreateVaultInput) (req *request.Request, output *CreateVaultOutput) {
574	op := &request.Operation{
575		Name:       opCreateVault,
576		HTTPMethod: "PUT",
577		HTTPPath:   "/{accountId}/vaults/{vaultName}",
578	}
579
580	if input == nil {
581		input = &CreateVaultInput{}
582	}
583
584	output = &CreateVaultOutput{}
585	req = c.newRequest(op, input, output)
586	return
587}
588
589// CreateVault API operation for Amazon Glacier.
590//
591// This operation creates a new vault with the specified name. The name of the
592// vault must be unique within a region for an AWS account. You can create up
593// to 1,000 vaults per account. If you need to create more vaults, contact Amazon
594// S3 Glacier.
595//
596// You must use the following guidelines when naming a vault.
597//
598//    * Names can be between 1 and 255 characters long.
599//
600//    * Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen),
601//    and '.' (period).
602//
603// This operation is idempotent.
604//
605// An AWS account has full permission to perform all operations (actions). However,
606// AWS Identity and Access Management (IAM) users don't have any permissions
607// by default. You must grant them explicit permission to perform specific actions.
608// For more information, see Access Control Using AWS Identity and Access Management
609// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
610//
611// For conceptual information and underlying REST API, see Creating a Vault
612// in Amazon Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/creating-vaults.html)
613// and Create Vault (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-put.html)
614// in the Amazon Glacier Developer Guide.
615//
616// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
617// with awserr.Error's Code and Message methods to get detailed information about
618// the error.
619//
620// See the AWS API reference guide for Amazon Glacier's
621// API operation CreateVault for usage and error information.
622//
623// Returned Error Codes:
624//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
625//   Returned if a parameter of the request is incorrectly specified.
626//
627//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
628//   Returned if a required header or parameter is missing from the request.
629//
630//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
631//   Returned if the service cannot complete the request.
632//
633//   * ErrCodeLimitExceededException "LimitExceededException"
634//   Returned if the request results in a vault or account limit being exceeded.
635//
636func (c *Glacier) CreateVault(input *CreateVaultInput) (*CreateVaultOutput, error) {
637	req, out := c.CreateVaultRequest(input)
638	return out, req.Send()
639}
640
641// CreateVaultWithContext is the same as CreateVault with the addition of
642// the ability to pass a context and additional request options.
643//
644// See CreateVault 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 *Glacier) CreateVaultWithContext(ctx aws.Context, input *CreateVaultInput, opts ...request.Option) (*CreateVaultOutput, error) {
651	req, out := c.CreateVaultRequest(input)
652	req.SetContext(ctx)
653	req.ApplyOptions(opts...)
654	return out, req.Send()
655}
656
657const opDeleteArchive = "DeleteArchive"
658
659// DeleteArchiveRequest generates a "aws/request.Request" representing the
660// client's request for the DeleteArchive operation. The "output" return
661// value will be populated with the request's response once the request completes
662// successfully.
663//
664// Use "Send" method on the returned Request to send the API call to the service.
665// the "output" return value is not valid until after Send returns without error.
666//
667// See DeleteArchive for more information on using the DeleteArchive
668// API call, and error handling.
669//
670// This method is useful when you want to inject custom logic or configuration
671// into the SDK's request lifecycle. Such as custom headers, or retry logic.
672//
673//
674//    // Example sending a request using the DeleteArchiveRequest method.
675//    req, resp := client.DeleteArchiveRequest(params)
676//
677//    err := req.Send()
678//    if err == nil { // resp is now filled
679//        fmt.Println(resp)
680//    }
681func (c *Glacier) DeleteArchiveRequest(input *DeleteArchiveInput) (req *request.Request, output *DeleteArchiveOutput) {
682	op := &request.Operation{
683		Name:       opDeleteArchive,
684		HTTPMethod: "DELETE",
685		HTTPPath:   "/{accountId}/vaults/{vaultName}/archives/{archiveId}",
686	}
687
688	if input == nil {
689		input = &DeleteArchiveInput{}
690	}
691
692	output = &DeleteArchiveOutput{}
693	req = c.newRequest(op, input, output)
694	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
695	return
696}
697
698// DeleteArchive API operation for Amazon Glacier.
699//
700// This operation deletes an archive from a vault. Subsequent requests to initiate
701// a retrieval of this archive will fail. Archive retrievals that are in progress
702// for this archive ID may or may not succeed according to the following scenarios:
703//
704//    * If the archive retrieval job is actively preparing the data for download
705//    when Amazon S3 Glacier receives the delete archive request, the archival
706//    retrieval operation might fail.
707//
708//    * If the archive retrieval job has successfully prepared the archive for
709//    download when Amazon S3 Glacier receives the delete archive request, you
710//    will be able to download the output.
711//
712// This operation is idempotent. Attempting to delete an already-deleted archive
713// does not result in an error.
714//
715// An AWS account has full permission to perform all operations (actions). However,
716// AWS Identity and Access Management (IAM) users don't have any permissions
717// by default. You must grant them explicit permission to perform specific actions.
718// For more information, see Access Control Using AWS Identity and Access Management
719// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
720//
721// For conceptual information and underlying REST API, see Deleting an Archive
722// in Amazon Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/deleting-an-archive.html)
723// and Delete Archive (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-delete.html)
724// in the Amazon Glacier Developer Guide.
725//
726// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
727// with awserr.Error's Code and Message methods to get detailed information about
728// the error.
729//
730// See the AWS API reference guide for Amazon Glacier's
731// API operation DeleteArchive for usage and error information.
732//
733// Returned Error Codes:
734//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
735//   Returned if the specified resource (such as a vault, upload ID, or job ID)
736//   doesn't exist.
737//
738//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
739//   Returned if a parameter of the request is incorrectly specified.
740//
741//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
742//   Returned if a required header or parameter is missing from the request.
743//
744//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
745//   Returned if the service cannot complete the request.
746//
747func (c *Glacier) DeleteArchive(input *DeleteArchiveInput) (*DeleteArchiveOutput, error) {
748	req, out := c.DeleteArchiveRequest(input)
749	return out, req.Send()
750}
751
752// DeleteArchiveWithContext is the same as DeleteArchive with the addition of
753// the ability to pass a context and additional request options.
754//
755// See DeleteArchive for details on how to use this API operation.
756//
757// The context must be non-nil and will be used for request cancellation. If
758// the context is nil a panic will occur. In the future the SDK may create
759// sub-contexts for http.Requests. See https://golang.org/pkg/context/
760// for more information on using Contexts.
761func (c *Glacier) DeleteArchiveWithContext(ctx aws.Context, input *DeleteArchiveInput, opts ...request.Option) (*DeleteArchiveOutput, error) {
762	req, out := c.DeleteArchiveRequest(input)
763	req.SetContext(ctx)
764	req.ApplyOptions(opts...)
765	return out, req.Send()
766}
767
768const opDeleteVault = "DeleteVault"
769
770// DeleteVaultRequest generates a "aws/request.Request" representing the
771// client's request for the DeleteVault operation. The "output" return
772// value will be populated with the request's response once the request completes
773// successfully.
774//
775// Use "Send" method on the returned Request to send the API call to the service.
776// the "output" return value is not valid until after Send returns without error.
777//
778// See DeleteVault for more information on using the DeleteVault
779// API call, and error handling.
780//
781// This method is useful when you want to inject custom logic or configuration
782// into the SDK's request lifecycle. Such as custom headers, or retry logic.
783//
784//
785//    // Example sending a request using the DeleteVaultRequest method.
786//    req, resp := client.DeleteVaultRequest(params)
787//
788//    err := req.Send()
789//    if err == nil { // resp is now filled
790//        fmt.Println(resp)
791//    }
792func (c *Glacier) DeleteVaultRequest(input *DeleteVaultInput) (req *request.Request, output *DeleteVaultOutput) {
793	op := &request.Operation{
794		Name:       opDeleteVault,
795		HTTPMethod: "DELETE",
796		HTTPPath:   "/{accountId}/vaults/{vaultName}",
797	}
798
799	if input == nil {
800		input = &DeleteVaultInput{}
801	}
802
803	output = &DeleteVaultOutput{}
804	req = c.newRequest(op, input, output)
805	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
806	return
807}
808
809// DeleteVault API operation for Amazon Glacier.
810//
811// This operation deletes a vault. Amazon S3 Glacier will delete a vault only
812// if there are no archives in the vault as of the last inventory and there
813// have been no writes to the vault since the last inventory. If either of these
814// conditions is not satisfied, the vault deletion fails (that is, the vault
815// is not removed) and Amazon S3 Glacier returns an error. You can use DescribeVault
816// to return the number of archives in a vault, and you can use Initiate a Job
817// (POST jobs) (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html)
818// to initiate a new inventory retrieval for a vault. The inventory contains
819// the archive IDs you use to delete archives using Delete Archive (DELETE archive)
820// (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-delete.html).
821//
822// This operation is idempotent.
823//
824// An AWS account has full permission to perform all operations (actions). However,
825// AWS Identity and Access Management (IAM) users don't have any permissions
826// by default. You must grant them explicit permission to perform specific actions.
827// For more information, see Access Control Using AWS Identity and Access Management
828// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
829//
830// For conceptual information and underlying REST API, see Deleting a Vault
831// in Amazon Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/deleting-vaults.html)
832// and Delete Vault (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-delete.html)
833// in the Amazon S3 Glacier Developer Guide.
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 Glacier's
840// API operation DeleteVault for usage and error information.
841//
842// Returned Error Codes:
843//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
844//   Returned if the specified resource (such as a vault, upload ID, or job ID)
845//   doesn't exist.
846//
847//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
848//   Returned if a parameter of the request is incorrectly specified.
849//
850//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
851//   Returned if a required header or parameter is missing from the request.
852//
853//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
854//   Returned if the service cannot complete the request.
855//
856func (c *Glacier) DeleteVault(input *DeleteVaultInput) (*DeleteVaultOutput, error) {
857	req, out := c.DeleteVaultRequest(input)
858	return out, req.Send()
859}
860
861// DeleteVaultWithContext is the same as DeleteVault with the addition of
862// the ability to pass a context and additional request options.
863//
864// See DeleteVault for details on how to use this API operation.
865//
866// The context must be non-nil and will be used for request cancellation. If
867// the context is nil a panic will occur. In the future the SDK may create
868// sub-contexts for http.Requests. See https://golang.org/pkg/context/
869// for more information on using Contexts.
870func (c *Glacier) DeleteVaultWithContext(ctx aws.Context, input *DeleteVaultInput, opts ...request.Option) (*DeleteVaultOutput, error) {
871	req, out := c.DeleteVaultRequest(input)
872	req.SetContext(ctx)
873	req.ApplyOptions(opts...)
874	return out, req.Send()
875}
876
877const opDeleteVaultAccessPolicy = "DeleteVaultAccessPolicy"
878
879// DeleteVaultAccessPolicyRequest generates a "aws/request.Request" representing the
880// client's request for the DeleteVaultAccessPolicy operation. The "output" return
881// value will be populated with the request's response once the request completes
882// successfully.
883//
884// Use "Send" method on the returned Request to send the API call to the service.
885// the "output" return value is not valid until after Send returns without error.
886//
887// See DeleteVaultAccessPolicy for more information on using the DeleteVaultAccessPolicy
888// API call, and error handling.
889//
890// This method is useful when you want to inject custom logic or configuration
891// into the SDK's request lifecycle. Such as custom headers, or retry logic.
892//
893//
894//    // Example sending a request using the DeleteVaultAccessPolicyRequest method.
895//    req, resp := client.DeleteVaultAccessPolicyRequest(params)
896//
897//    err := req.Send()
898//    if err == nil { // resp is now filled
899//        fmt.Println(resp)
900//    }
901func (c *Glacier) DeleteVaultAccessPolicyRequest(input *DeleteVaultAccessPolicyInput) (req *request.Request, output *DeleteVaultAccessPolicyOutput) {
902	op := &request.Operation{
903		Name:       opDeleteVaultAccessPolicy,
904		HTTPMethod: "DELETE",
905		HTTPPath:   "/{accountId}/vaults/{vaultName}/access-policy",
906	}
907
908	if input == nil {
909		input = &DeleteVaultAccessPolicyInput{}
910	}
911
912	output = &DeleteVaultAccessPolicyOutput{}
913	req = c.newRequest(op, input, output)
914	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
915	return
916}
917
918// DeleteVaultAccessPolicy API operation for Amazon Glacier.
919//
920// This operation deletes the access policy associated with the specified vault.
921// The operation is eventually consistent; that is, it might take some time
922// for Amazon S3 Glacier to completely remove the access policy, and you might
923// still see the effect of the policy for a short time after you send the delete
924// request.
925//
926// This operation is idempotent. You can invoke delete multiple times, even
927// if there is no policy associated with the vault. For more information about
928// vault access policies, see Amazon Glacier Access Control with Vault Access
929// Policies (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html).
930//
931// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
932// with awserr.Error's Code and Message methods to get detailed information about
933// the error.
934//
935// See the AWS API reference guide for Amazon Glacier's
936// API operation DeleteVaultAccessPolicy for usage and error information.
937//
938// Returned Error Codes:
939//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
940//   Returned if the specified resource (such as a vault, upload ID, or job ID)
941//   doesn't exist.
942//
943//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
944//   Returned if a parameter of the request is incorrectly specified.
945//
946//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
947//   Returned if a required header or parameter is missing from the request.
948//
949//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
950//   Returned if the service cannot complete the request.
951//
952func (c *Glacier) DeleteVaultAccessPolicy(input *DeleteVaultAccessPolicyInput) (*DeleteVaultAccessPolicyOutput, error) {
953	req, out := c.DeleteVaultAccessPolicyRequest(input)
954	return out, req.Send()
955}
956
957// DeleteVaultAccessPolicyWithContext is the same as DeleteVaultAccessPolicy with the addition of
958// the ability to pass a context and additional request options.
959//
960// See DeleteVaultAccessPolicy for details on how to use this API operation.
961//
962// The context must be non-nil and will be used for request cancellation. If
963// the context is nil a panic will occur. In the future the SDK may create
964// sub-contexts for http.Requests. See https://golang.org/pkg/context/
965// for more information on using Contexts.
966func (c *Glacier) DeleteVaultAccessPolicyWithContext(ctx aws.Context, input *DeleteVaultAccessPolicyInput, opts ...request.Option) (*DeleteVaultAccessPolicyOutput, error) {
967	req, out := c.DeleteVaultAccessPolicyRequest(input)
968	req.SetContext(ctx)
969	req.ApplyOptions(opts...)
970	return out, req.Send()
971}
972
973const opDeleteVaultNotifications = "DeleteVaultNotifications"
974
975// DeleteVaultNotificationsRequest generates a "aws/request.Request" representing the
976// client's request for the DeleteVaultNotifications operation. The "output" return
977// value will be populated with the request's response once the request completes
978// successfully.
979//
980// Use "Send" method on the returned Request to send the API call to the service.
981// the "output" return value is not valid until after Send returns without error.
982//
983// See DeleteVaultNotifications for more information on using the DeleteVaultNotifications
984// API call, and error handling.
985//
986// This method is useful when you want to inject custom logic or configuration
987// into the SDK's request lifecycle. Such as custom headers, or retry logic.
988//
989//
990//    // Example sending a request using the DeleteVaultNotificationsRequest method.
991//    req, resp := client.DeleteVaultNotificationsRequest(params)
992//
993//    err := req.Send()
994//    if err == nil { // resp is now filled
995//        fmt.Println(resp)
996//    }
997func (c *Glacier) DeleteVaultNotificationsRequest(input *DeleteVaultNotificationsInput) (req *request.Request, output *DeleteVaultNotificationsOutput) {
998	op := &request.Operation{
999		Name:       opDeleteVaultNotifications,
1000		HTTPMethod: "DELETE",
1001		HTTPPath:   "/{accountId}/vaults/{vaultName}/notification-configuration",
1002	}
1003
1004	if input == nil {
1005		input = &DeleteVaultNotificationsInput{}
1006	}
1007
1008	output = &DeleteVaultNotificationsOutput{}
1009	req = c.newRequest(op, input, output)
1010	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1011	return
1012}
1013
1014// DeleteVaultNotifications API operation for Amazon Glacier.
1015//
1016// This operation deletes the notification configuration set for a vault. The
1017// operation is eventually consistent; that is, it might take some time for
1018// Amazon S3 Glacier to completely disable the notifications and you might still
1019// receive some notifications for a short time after you send the delete request.
1020//
1021// An AWS account has full permission to perform all operations (actions). However,
1022// AWS Identity and Access Management (IAM) users don't have any permissions
1023// by default. You must grant them explicit permission to perform specific actions.
1024// For more information, see Access Control Using AWS Identity and Access Management
1025// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
1026//
1027// For conceptual information and underlying REST API, see Configuring Vault
1028// Notifications in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html)
1029// and Delete Vault Notification Configuration (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-notifications-delete.html)
1030// in the Amazon S3 Glacier Developer Guide.
1031//
1032// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1033// with awserr.Error's Code and Message methods to get detailed information about
1034// the error.
1035//
1036// See the AWS API reference guide for Amazon Glacier's
1037// API operation DeleteVaultNotifications for usage and error information.
1038//
1039// Returned Error Codes:
1040//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1041//   Returned if the specified resource (such as a vault, upload ID, or job ID)
1042//   doesn't exist.
1043//
1044//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1045//   Returned if a parameter of the request is incorrectly specified.
1046//
1047//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
1048//   Returned if a required header or parameter is missing from the request.
1049//
1050//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1051//   Returned if the service cannot complete the request.
1052//
1053func (c *Glacier) DeleteVaultNotifications(input *DeleteVaultNotificationsInput) (*DeleteVaultNotificationsOutput, error) {
1054	req, out := c.DeleteVaultNotificationsRequest(input)
1055	return out, req.Send()
1056}
1057
1058// DeleteVaultNotificationsWithContext is the same as DeleteVaultNotifications with the addition of
1059// the ability to pass a context and additional request options.
1060//
1061// See DeleteVaultNotifications for details on how to use this API operation.
1062//
1063// The context must be non-nil and will be used for request cancellation. If
1064// the context is nil a panic will occur. In the future the SDK may create
1065// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1066// for more information on using Contexts.
1067func (c *Glacier) DeleteVaultNotificationsWithContext(ctx aws.Context, input *DeleteVaultNotificationsInput, opts ...request.Option) (*DeleteVaultNotificationsOutput, error) {
1068	req, out := c.DeleteVaultNotificationsRequest(input)
1069	req.SetContext(ctx)
1070	req.ApplyOptions(opts...)
1071	return out, req.Send()
1072}
1073
1074const opDescribeJob = "DescribeJob"
1075
1076// DescribeJobRequest generates a "aws/request.Request" representing the
1077// client's request for the DescribeJob operation. The "output" return
1078// value will be populated with the request's response once the request completes
1079// successfully.
1080//
1081// Use "Send" method on the returned Request to send the API call to the service.
1082// the "output" return value is not valid until after Send returns without error.
1083//
1084// See DescribeJob for more information on using the DescribeJob
1085// API call, and error handling.
1086//
1087// This method is useful when you want to inject custom logic or configuration
1088// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1089//
1090//
1091//    // Example sending a request using the DescribeJobRequest method.
1092//    req, resp := client.DescribeJobRequest(params)
1093//
1094//    err := req.Send()
1095//    if err == nil { // resp is now filled
1096//        fmt.Println(resp)
1097//    }
1098func (c *Glacier) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *JobDescription) {
1099	op := &request.Operation{
1100		Name:       opDescribeJob,
1101		HTTPMethod: "GET",
1102		HTTPPath:   "/{accountId}/vaults/{vaultName}/jobs/{jobId}",
1103	}
1104
1105	if input == nil {
1106		input = &DescribeJobInput{}
1107	}
1108
1109	output = &JobDescription{}
1110	req = c.newRequest(op, input, output)
1111	return
1112}
1113
1114// DescribeJob API operation for Amazon Glacier.
1115//
1116// This operation returns information about a job you previously initiated,
1117// including the job initiation date, the user who initiated the job, the job
1118// status code/message and the Amazon SNS topic to notify after Amazon S3 Glacier
1119// (Glacier) completes the job. For more information about initiating a job,
1120// see InitiateJob.
1121//
1122// This operation enables you to check the status of your job. However, it is
1123// strongly recommended that you set up an Amazon SNS topic and specify it in
1124// your initiate job request so that Glacier can notify the topic after it completes
1125// the job.
1126//
1127// A job ID will not expire for at least 24 hours after Glacier completes the
1128// job.
1129//
1130// An AWS account has full permission to perform all operations (actions). However,
1131// AWS Identity and Access Management (IAM) users don't have any permissions
1132// by default. You must grant them explicit permission to perform specific actions.
1133// For more information, see Access Control Using AWS Identity and Access Management
1134// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
1135//
1136// For more information about using this operation, see the documentation for
1137// the underlying REST API Describe Job (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-describe-job-get.html)
1138// in the Amazon Glacier Developer Guide.
1139//
1140// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1141// with awserr.Error's Code and Message methods to get detailed information about
1142// the error.
1143//
1144// See the AWS API reference guide for Amazon Glacier's
1145// API operation DescribeJob for usage and error information.
1146//
1147// Returned Error Codes:
1148//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1149//   Returned if the specified resource (such as a vault, upload ID, or job ID)
1150//   doesn't exist.
1151//
1152//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1153//   Returned if a parameter of the request is incorrectly specified.
1154//
1155//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
1156//   Returned if a required header or parameter is missing from the request.
1157//
1158//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1159//   Returned if the service cannot complete the request.
1160//
1161func (c *Glacier) DescribeJob(input *DescribeJobInput) (*JobDescription, error) {
1162	req, out := c.DescribeJobRequest(input)
1163	return out, req.Send()
1164}
1165
1166// DescribeJobWithContext is the same as DescribeJob with the addition of
1167// the ability to pass a context and additional request options.
1168//
1169// See DescribeJob for details on how to use this API operation.
1170//
1171// The context must be non-nil and will be used for request cancellation. If
1172// the context is nil a panic will occur. In the future the SDK may create
1173// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1174// for more information on using Contexts.
1175func (c *Glacier) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*JobDescription, error) {
1176	req, out := c.DescribeJobRequest(input)
1177	req.SetContext(ctx)
1178	req.ApplyOptions(opts...)
1179	return out, req.Send()
1180}
1181
1182const opDescribeVault = "DescribeVault"
1183
1184// DescribeVaultRequest generates a "aws/request.Request" representing the
1185// client's request for the DescribeVault operation. The "output" return
1186// value will be populated with the request's response once the request completes
1187// successfully.
1188//
1189// Use "Send" method on the returned Request to send the API call to the service.
1190// the "output" return value is not valid until after Send returns without error.
1191//
1192// See DescribeVault for more information on using the DescribeVault
1193// API call, and error handling.
1194//
1195// This method is useful when you want to inject custom logic or configuration
1196// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1197//
1198//
1199//    // Example sending a request using the DescribeVaultRequest method.
1200//    req, resp := client.DescribeVaultRequest(params)
1201//
1202//    err := req.Send()
1203//    if err == nil { // resp is now filled
1204//        fmt.Println(resp)
1205//    }
1206func (c *Glacier) DescribeVaultRequest(input *DescribeVaultInput) (req *request.Request, output *DescribeVaultOutput) {
1207	op := &request.Operation{
1208		Name:       opDescribeVault,
1209		HTTPMethod: "GET",
1210		HTTPPath:   "/{accountId}/vaults/{vaultName}",
1211	}
1212
1213	if input == nil {
1214		input = &DescribeVaultInput{}
1215	}
1216
1217	output = &DescribeVaultOutput{}
1218	req = c.newRequest(op, input, output)
1219	return
1220}
1221
1222// DescribeVault API operation for Amazon Glacier.
1223//
1224// This operation returns information about a vault, including the vault's Amazon
1225// Resource Name (ARN), the date the vault was created, the number of archives
1226// it contains, and the total size of all the archives in the vault. The number
1227// of archives and their total size are as of the last inventory generation.
1228// This means that if you add or remove an archive from a vault, and then immediately
1229// use Describe Vault, the change in contents will not be immediately reflected.
1230// If you want to retrieve the latest inventory of the vault, use InitiateJob.
1231// Amazon S3 Glacier generates vault inventories approximately daily. For more
1232// information, see Downloading a Vault Inventory in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-inventory.html).
1233//
1234// An AWS account has full permission to perform all operations (actions). However,
1235// AWS Identity and Access Management (IAM) users don't have any permissions
1236// by default. You must grant them explicit permission to perform specific actions.
1237// For more information, see Access Control Using AWS Identity and Access Management
1238// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
1239//
1240// For conceptual information and underlying REST API, see Retrieving Vault
1241// Metadata in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/retrieving-vault-info.html)
1242// and Describe Vault (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-get.html)
1243// in the Amazon Glacier Developer Guide.
1244//
1245// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1246// with awserr.Error's Code and Message methods to get detailed information about
1247// the error.
1248//
1249// See the AWS API reference guide for Amazon Glacier's
1250// API operation DescribeVault for usage and error information.
1251//
1252// Returned Error Codes:
1253//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1254//   Returned if the specified resource (such as a vault, upload ID, or job ID)
1255//   doesn't exist.
1256//
1257//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1258//   Returned if a parameter of the request is incorrectly specified.
1259//
1260//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
1261//   Returned if a required header or parameter is missing from the request.
1262//
1263//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1264//   Returned if the service cannot complete the request.
1265//
1266func (c *Glacier) DescribeVault(input *DescribeVaultInput) (*DescribeVaultOutput, error) {
1267	req, out := c.DescribeVaultRequest(input)
1268	return out, req.Send()
1269}
1270
1271// DescribeVaultWithContext is the same as DescribeVault with the addition of
1272// the ability to pass a context and additional request options.
1273//
1274// See DescribeVault for details on how to use this API operation.
1275//
1276// The context must be non-nil and will be used for request cancellation. If
1277// the context is nil a panic will occur. In the future the SDK may create
1278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1279// for more information on using Contexts.
1280func (c *Glacier) DescribeVaultWithContext(ctx aws.Context, input *DescribeVaultInput, opts ...request.Option) (*DescribeVaultOutput, error) {
1281	req, out := c.DescribeVaultRequest(input)
1282	req.SetContext(ctx)
1283	req.ApplyOptions(opts...)
1284	return out, req.Send()
1285}
1286
1287const opGetDataRetrievalPolicy = "GetDataRetrievalPolicy"
1288
1289// GetDataRetrievalPolicyRequest generates a "aws/request.Request" representing the
1290// client's request for the GetDataRetrievalPolicy operation. The "output" return
1291// value will be populated with the request's response once the request completes
1292// successfully.
1293//
1294// Use "Send" method on the returned Request to send the API call to the service.
1295// the "output" return value is not valid until after Send returns without error.
1296//
1297// See GetDataRetrievalPolicy for more information on using the GetDataRetrievalPolicy
1298// API call, and error handling.
1299//
1300// This method is useful when you want to inject custom logic or configuration
1301// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1302//
1303//
1304//    // Example sending a request using the GetDataRetrievalPolicyRequest method.
1305//    req, resp := client.GetDataRetrievalPolicyRequest(params)
1306//
1307//    err := req.Send()
1308//    if err == nil { // resp is now filled
1309//        fmt.Println(resp)
1310//    }
1311func (c *Glacier) GetDataRetrievalPolicyRequest(input *GetDataRetrievalPolicyInput) (req *request.Request, output *GetDataRetrievalPolicyOutput) {
1312	op := &request.Operation{
1313		Name:       opGetDataRetrievalPolicy,
1314		HTTPMethod: "GET",
1315		HTTPPath:   "/{accountId}/policies/data-retrieval",
1316	}
1317
1318	if input == nil {
1319		input = &GetDataRetrievalPolicyInput{}
1320	}
1321
1322	output = &GetDataRetrievalPolicyOutput{}
1323	req = c.newRequest(op, input, output)
1324	return
1325}
1326
1327// GetDataRetrievalPolicy API operation for Amazon Glacier.
1328//
1329// This operation returns the current data retrieval policy for the account
1330// and region specified in the GET request. For more information about data
1331// retrieval policies, see Amazon Glacier Data Retrieval Policies (https://docs.aws.amazon.com/amazonglacier/latest/dev/data-retrieval-policy.html).
1332//
1333// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1334// with awserr.Error's Code and Message methods to get detailed information about
1335// the error.
1336//
1337// See the AWS API reference guide for Amazon Glacier's
1338// API operation GetDataRetrievalPolicy for usage and error information.
1339//
1340// Returned Error Codes:
1341//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1342//   Returned if a parameter of the request is incorrectly specified.
1343//
1344//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
1345//   Returned if a required header or parameter is missing from the request.
1346//
1347//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1348//   Returned if the service cannot complete the request.
1349//
1350func (c *Glacier) GetDataRetrievalPolicy(input *GetDataRetrievalPolicyInput) (*GetDataRetrievalPolicyOutput, error) {
1351	req, out := c.GetDataRetrievalPolicyRequest(input)
1352	return out, req.Send()
1353}
1354
1355// GetDataRetrievalPolicyWithContext is the same as GetDataRetrievalPolicy with the addition of
1356// the ability to pass a context and additional request options.
1357//
1358// See GetDataRetrievalPolicy for details on how to use this API operation.
1359//
1360// The context must be non-nil and will be used for request cancellation. If
1361// the context is nil a panic will occur. In the future the SDK may create
1362// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1363// for more information on using Contexts.
1364func (c *Glacier) GetDataRetrievalPolicyWithContext(ctx aws.Context, input *GetDataRetrievalPolicyInput, opts ...request.Option) (*GetDataRetrievalPolicyOutput, error) {
1365	req, out := c.GetDataRetrievalPolicyRequest(input)
1366	req.SetContext(ctx)
1367	req.ApplyOptions(opts...)
1368	return out, req.Send()
1369}
1370
1371const opGetJobOutput = "GetJobOutput"
1372
1373// GetJobOutputRequest generates a "aws/request.Request" representing the
1374// client's request for the GetJobOutput operation. The "output" return
1375// value will be populated with the request's response once the request completes
1376// successfully.
1377//
1378// Use "Send" method on the returned Request to send the API call to the service.
1379// the "output" return value is not valid until after Send returns without error.
1380//
1381// See GetJobOutput for more information on using the GetJobOutput
1382// API call, and error handling.
1383//
1384// This method is useful when you want to inject custom logic or configuration
1385// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1386//
1387//
1388//    // Example sending a request using the GetJobOutputRequest method.
1389//    req, resp := client.GetJobOutputRequest(params)
1390//
1391//    err := req.Send()
1392//    if err == nil { // resp is now filled
1393//        fmt.Println(resp)
1394//    }
1395func (c *Glacier) GetJobOutputRequest(input *GetJobOutputInput) (req *request.Request, output *GetJobOutputOutput) {
1396	op := &request.Operation{
1397		Name:       opGetJobOutput,
1398		HTTPMethod: "GET",
1399		HTTPPath:   "/{accountId}/vaults/{vaultName}/jobs/{jobId}/output",
1400	}
1401
1402	if input == nil {
1403		input = &GetJobOutputInput{}
1404	}
1405
1406	output = &GetJobOutputOutput{}
1407	req = c.newRequest(op, input, output)
1408	return
1409}
1410
1411// GetJobOutput API operation for Amazon Glacier.
1412//
1413// This operation downloads the output of the job you initiated using InitiateJob.
1414// Depending on the job type you specified when you initiated the job, the output
1415// will be either the content of an archive or a vault inventory.
1416//
1417// You can download all the job output or download a portion of the output by
1418// specifying a byte range. In the case of an archive retrieval job, depending
1419// on the byte range you specify, Amazon S3 Glacier (Glacier) returns the checksum
1420// for the portion of the data. You can compute the checksum on the client and
1421// verify that the values match to ensure the portion you downloaded is the
1422// correct data.
1423//
1424// A job ID will not expire for at least 24 hours after Glacier completes the
1425// job. That a byte range. For both archive and inventory retrieval jobs, you
1426// should verify the downloaded size against the size returned in the headers
1427// from the Get Job Output response.
1428//
1429// For archive retrieval jobs, you should also verify that the size is what
1430// you expected. If you download a portion of the output, the expected size
1431// is based on the range of bytes you specified. For example, if you specify
1432// a range of bytes=0-1048575, you should verify your download size is 1,048,576
1433// bytes. If you download an entire archive, the expected size is the size of
1434// the archive when you uploaded it to Amazon S3 Glacier The expected size is
1435// also returned in the headers from the Get Job Output response.
1436//
1437// In the case of an archive retrieval job, depending on the byte range you
1438// specify, Glacier returns the checksum for the portion of the data. To ensure
1439// the portion you downloaded is the correct data, compute the checksum on the
1440// client, verify that the values match, and verify that the size is what you
1441// expected.
1442//
1443// A job ID does not expire for at least 24 hours after Glacier completes the
1444// job. That is, you can download the job output within the 24 hours period
1445// after Amazon Glacier completes the job.
1446//
1447// An AWS account has full permission to perform all operations (actions). However,
1448// AWS Identity and Access Management (IAM) users don't have any permissions
1449// by default. You must grant them explicit permission to perform specific actions.
1450// For more information, see Access Control Using AWS Identity and Access Management
1451// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
1452//
1453// For conceptual information and the underlying REST API, see Downloading a
1454// Vault Inventory (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-inventory.html),
1455// Downloading an Archive (https://docs.aws.amazon.com/amazonglacier/latest/dev/downloading-an-archive.html),
1456// and Get Job Output (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-job-output-get.html)
1457//
1458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1459// with awserr.Error's Code and Message methods to get detailed information about
1460// the error.
1461//
1462// See the AWS API reference guide for Amazon Glacier's
1463// API operation GetJobOutput for usage and error information.
1464//
1465// Returned Error Codes:
1466//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1467//   Returned if the specified resource (such as a vault, upload ID, or job ID)
1468//   doesn't exist.
1469//
1470//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1471//   Returned if a parameter of the request is incorrectly specified.
1472//
1473//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
1474//   Returned if a required header or parameter is missing from the request.
1475//
1476//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1477//   Returned if the service cannot complete the request.
1478//
1479func (c *Glacier) GetJobOutput(input *GetJobOutputInput) (*GetJobOutputOutput, error) {
1480	req, out := c.GetJobOutputRequest(input)
1481	return out, req.Send()
1482}
1483
1484// GetJobOutputWithContext is the same as GetJobOutput with the addition of
1485// the ability to pass a context and additional request options.
1486//
1487// See GetJobOutput for details on how to use this API operation.
1488//
1489// The context must be non-nil and will be used for request cancellation. If
1490// the context is nil a panic will occur. In the future the SDK may create
1491// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1492// for more information on using Contexts.
1493func (c *Glacier) GetJobOutputWithContext(ctx aws.Context, input *GetJobOutputInput, opts ...request.Option) (*GetJobOutputOutput, error) {
1494	req, out := c.GetJobOutputRequest(input)
1495	req.SetContext(ctx)
1496	req.ApplyOptions(opts...)
1497	return out, req.Send()
1498}
1499
1500const opGetVaultAccessPolicy = "GetVaultAccessPolicy"
1501
1502// GetVaultAccessPolicyRequest generates a "aws/request.Request" representing the
1503// client's request for the GetVaultAccessPolicy operation. The "output" return
1504// value will be populated with the request's response once the request completes
1505// successfully.
1506//
1507// Use "Send" method on the returned Request to send the API call to the service.
1508// the "output" return value is not valid until after Send returns without error.
1509//
1510// See GetVaultAccessPolicy for more information on using the GetVaultAccessPolicy
1511// API call, and error handling.
1512//
1513// This method is useful when you want to inject custom logic or configuration
1514// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1515//
1516//
1517//    // Example sending a request using the GetVaultAccessPolicyRequest method.
1518//    req, resp := client.GetVaultAccessPolicyRequest(params)
1519//
1520//    err := req.Send()
1521//    if err == nil { // resp is now filled
1522//        fmt.Println(resp)
1523//    }
1524func (c *Glacier) GetVaultAccessPolicyRequest(input *GetVaultAccessPolicyInput) (req *request.Request, output *GetVaultAccessPolicyOutput) {
1525	op := &request.Operation{
1526		Name:       opGetVaultAccessPolicy,
1527		HTTPMethod: "GET",
1528		HTTPPath:   "/{accountId}/vaults/{vaultName}/access-policy",
1529	}
1530
1531	if input == nil {
1532		input = &GetVaultAccessPolicyInput{}
1533	}
1534
1535	output = &GetVaultAccessPolicyOutput{}
1536	req = c.newRequest(op, input, output)
1537	return
1538}
1539
1540// GetVaultAccessPolicy API operation for Amazon Glacier.
1541//
1542// This operation retrieves the access-policy subresource set on the vault;
1543// for more information on setting this subresource, see Set Vault Access Policy
1544// (PUT access-policy) (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-SetVaultAccessPolicy.html).
1545// If there is no access policy set on the vault, the operation returns a 404
1546// Not found error. For more information about vault access policies, see Amazon
1547// Glacier Access Control with Vault Access Policies (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html).
1548//
1549// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1550// with awserr.Error's Code and Message methods to get detailed information about
1551// the error.
1552//
1553// See the AWS API reference guide for Amazon Glacier's
1554// API operation GetVaultAccessPolicy for usage and error information.
1555//
1556// Returned Error Codes:
1557//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1558//   Returned if the specified resource (such as a vault, upload ID, or job ID)
1559//   doesn't exist.
1560//
1561//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1562//   Returned if a parameter of the request is incorrectly specified.
1563//
1564//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
1565//   Returned if a required header or parameter is missing from the request.
1566//
1567//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1568//   Returned if the service cannot complete the request.
1569//
1570func (c *Glacier) GetVaultAccessPolicy(input *GetVaultAccessPolicyInput) (*GetVaultAccessPolicyOutput, error) {
1571	req, out := c.GetVaultAccessPolicyRequest(input)
1572	return out, req.Send()
1573}
1574
1575// GetVaultAccessPolicyWithContext is the same as GetVaultAccessPolicy with the addition of
1576// the ability to pass a context and additional request options.
1577//
1578// See GetVaultAccessPolicy for details on how to use this API operation.
1579//
1580// The context must be non-nil and will be used for request cancellation. If
1581// the context is nil a panic will occur. In the future the SDK may create
1582// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1583// for more information on using Contexts.
1584func (c *Glacier) GetVaultAccessPolicyWithContext(ctx aws.Context, input *GetVaultAccessPolicyInput, opts ...request.Option) (*GetVaultAccessPolicyOutput, error) {
1585	req, out := c.GetVaultAccessPolicyRequest(input)
1586	req.SetContext(ctx)
1587	req.ApplyOptions(opts...)
1588	return out, req.Send()
1589}
1590
1591const opGetVaultLock = "GetVaultLock"
1592
1593// GetVaultLockRequest generates a "aws/request.Request" representing the
1594// client's request for the GetVaultLock operation. The "output" return
1595// value will be populated with the request's response once the request completes
1596// successfully.
1597//
1598// Use "Send" method on the returned Request to send the API call to the service.
1599// the "output" return value is not valid until after Send returns without error.
1600//
1601// See GetVaultLock for more information on using the GetVaultLock
1602// API call, and error handling.
1603//
1604// This method is useful when you want to inject custom logic or configuration
1605// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1606//
1607//
1608//    // Example sending a request using the GetVaultLockRequest method.
1609//    req, resp := client.GetVaultLockRequest(params)
1610//
1611//    err := req.Send()
1612//    if err == nil { // resp is now filled
1613//        fmt.Println(resp)
1614//    }
1615func (c *Glacier) GetVaultLockRequest(input *GetVaultLockInput) (req *request.Request, output *GetVaultLockOutput) {
1616	op := &request.Operation{
1617		Name:       opGetVaultLock,
1618		HTTPMethod: "GET",
1619		HTTPPath:   "/{accountId}/vaults/{vaultName}/lock-policy",
1620	}
1621
1622	if input == nil {
1623		input = &GetVaultLockInput{}
1624	}
1625
1626	output = &GetVaultLockOutput{}
1627	req = c.newRequest(op, input, output)
1628	return
1629}
1630
1631// GetVaultLock API operation for Amazon Glacier.
1632//
1633// This operation retrieves the following attributes from the lock-policy subresource
1634// set on the specified vault:
1635//
1636//    * The vault lock policy set on the vault.
1637//
1638//    * The state of the vault lock, which is either InProgess or Locked.
1639//
1640//    * When the lock ID expires. The lock ID is used to complete the vault
1641//    locking process.
1642//
1643//    * When the vault lock was initiated and put into the InProgress state.
1644//
1645// A vault lock is put into the InProgress state by calling InitiateVaultLock.
1646// A vault lock is put into the Locked state by calling CompleteVaultLock. You
1647// can abort the vault locking process by calling AbortVaultLock. For more information
1648// about the vault locking process, Amazon Glacier Vault Lock (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html).
1649//
1650// If there is no vault lock policy set on the vault, the operation returns
1651// a 404 Not found error. For more information about vault lock policies, Amazon
1652// Glacier Access Control with Vault Lock Policies (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock-policy.html).
1653//
1654// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1655// with awserr.Error's Code and Message methods to get detailed information about
1656// the error.
1657//
1658// See the AWS API reference guide for Amazon Glacier's
1659// API operation GetVaultLock for usage and error information.
1660//
1661// Returned Error Codes:
1662//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1663//   Returned if the specified resource (such as a vault, upload ID, or job ID)
1664//   doesn't exist.
1665//
1666//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1667//   Returned if a parameter of the request is incorrectly specified.
1668//
1669//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
1670//   Returned if a required header or parameter is missing from the request.
1671//
1672//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1673//   Returned if the service cannot complete the request.
1674//
1675func (c *Glacier) GetVaultLock(input *GetVaultLockInput) (*GetVaultLockOutput, error) {
1676	req, out := c.GetVaultLockRequest(input)
1677	return out, req.Send()
1678}
1679
1680// GetVaultLockWithContext is the same as GetVaultLock with the addition of
1681// the ability to pass a context and additional request options.
1682//
1683// See GetVaultLock for details on how to use this API operation.
1684//
1685// The context must be non-nil and will be used for request cancellation. If
1686// the context is nil a panic will occur. In the future the SDK may create
1687// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1688// for more information on using Contexts.
1689func (c *Glacier) GetVaultLockWithContext(ctx aws.Context, input *GetVaultLockInput, opts ...request.Option) (*GetVaultLockOutput, error) {
1690	req, out := c.GetVaultLockRequest(input)
1691	req.SetContext(ctx)
1692	req.ApplyOptions(opts...)
1693	return out, req.Send()
1694}
1695
1696const opGetVaultNotifications = "GetVaultNotifications"
1697
1698// GetVaultNotificationsRequest generates a "aws/request.Request" representing the
1699// client's request for the GetVaultNotifications operation. The "output" return
1700// value will be populated with the request's response once the request completes
1701// successfully.
1702//
1703// Use "Send" method on the returned Request to send the API call to the service.
1704// the "output" return value is not valid until after Send returns without error.
1705//
1706// See GetVaultNotifications for more information on using the GetVaultNotifications
1707// API call, and error handling.
1708//
1709// This method is useful when you want to inject custom logic or configuration
1710// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1711//
1712//
1713//    // Example sending a request using the GetVaultNotificationsRequest method.
1714//    req, resp := client.GetVaultNotificationsRequest(params)
1715//
1716//    err := req.Send()
1717//    if err == nil { // resp is now filled
1718//        fmt.Println(resp)
1719//    }
1720func (c *Glacier) GetVaultNotificationsRequest(input *GetVaultNotificationsInput) (req *request.Request, output *GetVaultNotificationsOutput) {
1721	op := &request.Operation{
1722		Name:       opGetVaultNotifications,
1723		HTTPMethod: "GET",
1724		HTTPPath:   "/{accountId}/vaults/{vaultName}/notification-configuration",
1725	}
1726
1727	if input == nil {
1728		input = &GetVaultNotificationsInput{}
1729	}
1730
1731	output = &GetVaultNotificationsOutput{}
1732	req = c.newRequest(op, input, output)
1733	return
1734}
1735
1736// GetVaultNotifications API operation for Amazon Glacier.
1737//
1738// This operation retrieves the notification-configuration subresource of the
1739// specified vault.
1740//
1741// For information about setting a notification configuration on a vault, see
1742// SetVaultNotifications. If a notification configuration for a vault is not
1743// set, the operation returns a 404 Not Found error. For more information about
1744// vault notifications, see Configuring Vault Notifications in Amazon S3 Glacier
1745// (https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html).
1746//
1747// An AWS account has full permission to perform all operations (actions). However,
1748// AWS Identity and Access Management (IAM) users don't have any permissions
1749// by default. You must grant them explicit permission to perform specific actions.
1750// For more information, see Access Control Using AWS Identity and Access Management
1751// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
1752//
1753// For conceptual information and underlying REST API, see Configuring Vault
1754// Notifications in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html)
1755// and Get Vault Notification Configuration (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-notifications-get.html)
1756// in the Amazon Glacier Developer Guide.
1757//
1758// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1759// with awserr.Error's Code and Message methods to get detailed information about
1760// the error.
1761//
1762// See the AWS API reference guide for Amazon Glacier's
1763// API operation GetVaultNotifications for usage and error information.
1764//
1765// Returned Error Codes:
1766//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1767//   Returned if the specified resource (such as a vault, upload ID, or job ID)
1768//   doesn't exist.
1769//
1770//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1771//   Returned if a parameter of the request is incorrectly specified.
1772//
1773//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
1774//   Returned if a required header or parameter is missing from the request.
1775//
1776//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1777//   Returned if the service cannot complete the request.
1778//
1779func (c *Glacier) GetVaultNotifications(input *GetVaultNotificationsInput) (*GetVaultNotificationsOutput, error) {
1780	req, out := c.GetVaultNotificationsRequest(input)
1781	return out, req.Send()
1782}
1783
1784// GetVaultNotificationsWithContext is the same as GetVaultNotifications with the addition of
1785// the ability to pass a context and additional request options.
1786//
1787// See GetVaultNotifications for details on how to use this API operation.
1788//
1789// The context must be non-nil and will be used for request cancellation. If
1790// the context is nil a panic will occur. In the future the SDK may create
1791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1792// for more information on using Contexts.
1793func (c *Glacier) GetVaultNotificationsWithContext(ctx aws.Context, input *GetVaultNotificationsInput, opts ...request.Option) (*GetVaultNotificationsOutput, error) {
1794	req, out := c.GetVaultNotificationsRequest(input)
1795	req.SetContext(ctx)
1796	req.ApplyOptions(opts...)
1797	return out, req.Send()
1798}
1799
1800const opInitiateJob = "InitiateJob"
1801
1802// InitiateJobRequest generates a "aws/request.Request" representing the
1803// client's request for the InitiateJob operation. The "output" return
1804// value will be populated with the request's response once the request completes
1805// successfully.
1806//
1807// Use "Send" method on the returned Request to send the API call to the service.
1808// the "output" return value is not valid until after Send returns without error.
1809//
1810// See InitiateJob for more information on using the InitiateJob
1811// API call, and error handling.
1812//
1813// This method is useful when you want to inject custom logic or configuration
1814// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1815//
1816//
1817//    // Example sending a request using the InitiateJobRequest method.
1818//    req, resp := client.InitiateJobRequest(params)
1819//
1820//    err := req.Send()
1821//    if err == nil { // resp is now filled
1822//        fmt.Println(resp)
1823//    }
1824func (c *Glacier) InitiateJobRequest(input *InitiateJobInput) (req *request.Request, output *InitiateJobOutput) {
1825	op := &request.Operation{
1826		Name:       opInitiateJob,
1827		HTTPMethod: "POST",
1828		HTTPPath:   "/{accountId}/vaults/{vaultName}/jobs",
1829	}
1830
1831	if input == nil {
1832		input = &InitiateJobInput{}
1833	}
1834
1835	output = &InitiateJobOutput{}
1836	req = c.newRequest(op, input, output)
1837	return
1838}
1839
1840// InitiateJob API operation for Amazon Glacier.
1841//
1842// This operation initiates a job of the specified type, which can be a select,
1843// an archival retrieval, or a vault retrieval. For more information about using
1844// this operation, see the documentation for the underlying REST API Initiate
1845// a Job (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html).
1846//
1847// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1848// with awserr.Error's Code and Message methods to get detailed information about
1849// the error.
1850//
1851// See the AWS API reference guide for Amazon Glacier's
1852// API operation InitiateJob for usage and error information.
1853//
1854// Returned Error Codes:
1855//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1856//   Returned if the specified resource (such as a vault, upload ID, or job ID)
1857//   doesn't exist.
1858//
1859//   * ErrCodePolicyEnforcedException "PolicyEnforcedException"
1860//   Returned if a retrieval job would exceed the current data policy's retrieval
1861//   rate limit. For more information about data retrieval policies,
1862//
1863//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1864//   Returned if a parameter of the request is incorrectly specified.
1865//
1866//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
1867//   Returned if a required header or parameter is missing from the request.
1868//
1869//   * ErrCodeInsufficientCapacityException "InsufficientCapacityException"
1870//   Returned if there is insufficient capacity to process this expedited request.
1871//   This error only applies to expedited retrievals and not to standard or bulk
1872//   retrievals.
1873//
1874//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1875//   Returned if the service cannot complete the request.
1876//
1877func (c *Glacier) InitiateJob(input *InitiateJobInput) (*InitiateJobOutput, error) {
1878	req, out := c.InitiateJobRequest(input)
1879	return out, req.Send()
1880}
1881
1882// InitiateJobWithContext is the same as InitiateJob with the addition of
1883// the ability to pass a context and additional request options.
1884//
1885// See InitiateJob for details on how to use this API operation.
1886//
1887// The context must be non-nil and will be used for request cancellation. If
1888// the context is nil a panic will occur. In the future the SDK may create
1889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1890// for more information on using Contexts.
1891func (c *Glacier) InitiateJobWithContext(ctx aws.Context, input *InitiateJobInput, opts ...request.Option) (*InitiateJobOutput, error) {
1892	req, out := c.InitiateJobRequest(input)
1893	req.SetContext(ctx)
1894	req.ApplyOptions(opts...)
1895	return out, req.Send()
1896}
1897
1898const opInitiateMultipartUpload = "InitiateMultipartUpload"
1899
1900// InitiateMultipartUploadRequest generates a "aws/request.Request" representing the
1901// client's request for the InitiateMultipartUpload operation. The "output" return
1902// value will be populated with the request's response once the request completes
1903// successfully.
1904//
1905// Use "Send" method on the returned Request to send the API call to the service.
1906// the "output" return value is not valid until after Send returns without error.
1907//
1908// See InitiateMultipartUpload for more information on using the InitiateMultipartUpload
1909// API call, and error handling.
1910//
1911// This method is useful when you want to inject custom logic or configuration
1912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1913//
1914//
1915//    // Example sending a request using the InitiateMultipartUploadRequest method.
1916//    req, resp := client.InitiateMultipartUploadRequest(params)
1917//
1918//    err := req.Send()
1919//    if err == nil { // resp is now filled
1920//        fmt.Println(resp)
1921//    }
1922func (c *Glacier) InitiateMultipartUploadRequest(input *InitiateMultipartUploadInput) (req *request.Request, output *InitiateMultipartUploadOutput) {
1923	op := &request.Operation{
1924		Name:       opInitiateMultipartUpload,
1925		HTTPMethod: "POST",
1926		HTTPPath:   "/{accountId}/vaults/{vaultName}/multipart-uploads",
1927	}
1928
1929	if input == nil {
1930		input = &InitiateMultipartUploadInput{}
1931	}
1932
1933	output = &InitiateMultipartUploadOutput{}
1934	req = c.newRequest(op, input, output)
1935	return
1936}
1937
1938// InitiateMultipartUpload API operation for Amazon Glacier.
1939//
1940// This operation initiates a multipart upload. Amazon S3 Glacier creates a
1941// multipart upload resource and returns its ID in the response. The multipart
1942// upload ID is used in subsequent requests to upload parts of an archive (see
1943// UploadMultipartPart).
1944//
1945// When you initiate a multipart upload, you specify the part size in number
1946// of bytes. The part size must be a megabyte (1024 KB) multiplied by a power
1947// of 2-for example, 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608
1948// (8 MB), and so on. The minimum allowable part size is 1 MB, and the maximum
1949// is 4 GB.
1950//
1951// Every part you upload to this resource (see UploadMultipartPart), except
1952// the last one, must have the same size. The last one can be the same size
1953// or smaller. For example, suppose you want to upload a 16.2 MB file. If you
1954// initiate the multipart upload with a part size of 4 MB, you will upload four
1955// parts of 4 MB each and one part of 0.2 MB.
1956//
1957// You don't need to know the size of the archive when you start a multipart
1958// upload because Amazon S3 Glacier does not require you to specify the overall
1959// archive size.
1960//
1961// After you complete the multipart upload, Amazon S3 Glacier (Glacier) removes
1962// the multipart upload resource referenced by the ID. Glacier also removes
1963// the multipart upload resource if you cancel the multipart upload or it may
1964// be removed if there is no activity for a period of 24 hours.
1965//
1966// An AWS account has full permission to perform all operations (actions). However,
1967// AWS Identity and Access Management (IAM) users don't have any permissions
1968// by default. You must grant them explicit permission to perform specific actions.
1969// For more information, see Access Control Using AWS Identity and Access Management
1970// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
1971//
1972// For conceptual information and underlying REST API, see Uploading Large Archives
1973// in Parts (Multipart Upload) (https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html)
1974// and Initiate Multipart Upload (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-initiate-upload.html)
1975// in the Amazon Glacier Developer Guide.
1976//
1977// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1978// with awserr.Error's Code and Message methods to get detailed information about
1979// the error.
1980//
1981// See the AWS API reference guide for Amazon Glacier's
1982// API operation InitiateMultipartUpload for usage and error information.
1983//
1984// Returned Error Codes:
1985//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1986//   Returned if the specified resource (such as a vault, upload ID, or job ID)
1987//   doesn't exist.
1988//
1989//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
1990//   Returned if a parameter of the request is incorrectly specified.
1991//
1992//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
1993//   Returned if a required header or parameter is missing from the request.
1994//
1995//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1996//   Returned if the service cannot complete the request.
1997//
1998func (c *Glacier) InitiateMultipartUpload(input *InitiateMultipartUploadInput) (*InitiateMultipartUploadOutput, error) {
1999	req, out := c.InitiateMultipartUploadRequest(input)
2000	return out, req.Send()
2001}
2002
2003// InitiateMultipartUploadWithContext is the same as InitiateMultipartUpload with the addition of
2004// the ability to pass a context and additional request options.
2005//
2006// See InitiateMultipartUpload for details on how to use this API operation.
2007//
2008// The context must be non-nil and will be used for request cancellation. If
2009// the context is nil a panic will occur. In the future the SDK may create
2010// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2011// for more information on using Contexts.
2012func (c *Glacier) InitiateMultipartUploadWithContext(ctx aws.Context, input *InitiateMultipartUploadInput, opts ...request.Option) (*InitiateMultipartUploadOutput, error) {
2013	req, out := c.InitiateMultipartUploadRequest(input)
2014	req.SetContext(ctx)
2015	req.ApplyOptions(opts...)
2016	return out, req.Send()
2017}
2018
2019const opInitiateVaultLock = "InitiateVaultLock"
2020
2021// InitiateVaultLockRequest generates a "aws/request.Request" representing the
2022// client's request for the InitiateVaultLock operation. The "output" return
2023// value will be populated with the request's response once the request completes
2024// successfully.
2025//
2026// Use "Send" method on the returned Request to send the API call to the service.
2027// the "output" return value is not valid until after Send returns without error.
2028//
2029// See InitiateVaultLock for more information on using the InitiateVaultLock
2030// API call, and error handling.
2031//
2032// This method is useful when you want to inject custom logic or configuration
2033// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2034//
2035//
2036//    // Example sending a request using the InitiateVaultLockRequest method.
2037//    req, resp := client.InitiateVaultLockRequest(params)
2038//
2039//    err := req.Send()
2040//    if err == nil { // resp is now filled
2041//        fmt.Println(resp)
2042//    }
2043func (c *Glacier) InitiateVaultLockRequest(input *InitiateVaultLockInput) (req *request.Request, output *InitiateVaultLockOutput) {
2044	op := &request.Operation{
2045		Name:       opInitiateVaultLock,
2046		HTTPMethod: "POST",
2047		HTTPPath:   "/{accountId}/vaults/{vaultName}/lock-policy",
2048	}
2049
2050	if input == nil {
2051		input = &InitiateVaultLockInput{}
2052	}
2053
2054	output = &InitiateVaultLockOutput{}
2055	req = c.newRequest(op, input, output)
2056	return
2057}
2058
2059// InitiateVaultLock API operation for Amazon Glacier.
2060//
2061// This operation initiates the vault locking process by doing the following:
2062//
2063//    * Installing a vault lock policy on the specified vault.
2064//
2065//    * Setting the lock state of vault lock to InProgress.
2066//
2067//    * Returning a lock ID, which is used to complete the vault locking process.
2068//
2069// You can set one vault lock policy for each vault and this policy can be up
2070// to 20 KB in size. For more information about vault lock policies, see Amazon
2071// Glacier Access Control with Vault Lock Policies (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock-policy.html).
2072//
2073// You must complete the vault locking process within 24 hours after the vault
2074// lock enters the InProgress state. After the 24 hour window ends, the lock
2075// ID expires, the vault automatically exits the InProgress state, and the vault
2076// lock policy is removed from the vault. You call CompleteVaultLock to complete
2077// the vault locking process by setting the state of the vault lock to Locked.
2078//
2079// After a vault lock is in the Locked state, you cannot initiate a new vault
2080// lock for the vault.
2081//
2082// You can abort the vault locking process by calling AbortVaultLock. You can
2083// get the state of the vault lock by calling GetVaultLock. For more information
2084// about the vault locking process, Amazon Glacier Vault Lock (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html).
2085//
2086// If this operation is called when the vault lock is in the InProgress state,
2087// the operation returns an AccessDeniedException error. When the vault lock
2088// is in the InProgress state you must call AbortVaultLock before you can initiate
2089// a new vault lock policy.
2090//
2091// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2092// with awserr.Error's Code and Message methods to get detailed information about
2093// the error.
2094//
2095// See the AWS API reference guide for Amazon Glacier's
2096// API operation InitiateVaultLock for usage and error information.
2097//
2098// Returned Error Codes:
2099//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2100//   Returned if the specified resource (such as a vault, upload ID, or job ID)
2101//   doesn't exist.
2102//
2103//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
2104//   Returned if a parameter of the request is incorrectly specified.
2105//
2106//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
2107//   Returned if a required header or parameter is missing from the request.
2108//
2109//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2110//   Returned if the service cannot complete the request.
2111//
2112func (c *Glacier) InitiateVaultLock(input *InitiateVaultLockInput) (*InitiateVaultLockOutput, error) {
2113	req, out := c.InitiateVaultLockRequest(input)
2114	return out, req.Send()
2115}
2116
2117// InitiateVaultLockWithContext is the same as InitiateVaultLock with the addition of
2118// the ability to pass a context and additional request options.
2119//
2120// See InitiateVaultLock for details on how to use this API operation.
2121//
2122// The context must be non-nil and will be used for request cancellation. If
2123// the context is nil a panic will occur. In the future the SDK may create
2124// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2125// for more information on using Contexts.
2126func (c *Glacier) InitiateVaultLockWithContext(ctx aws.Context, input *InitiateVaultLockInput, opts ...request.Option) (*InitiateVaultLockOutput, error) {
2127	req, out := c.InitiateVaultLockRequest(input)
2128	req.SetContext(ctx)
2129	req.ApplyOptions(opts...)
2130	return out, req.Send()
2131}
2132
2133const opListJobs = "ListJobs"
2134
2135// ListJobsRequest generates a "aws/request.Request" representing the
2136// client's request for the ListJobs operation. The "output" return
2137// value will be populated with the request's response once the request completes
2138// successfully.
2139//
2140// Use "Send" method on the returned Request to send the API call to the service.
2141// the "output" return value is not valid until after Send returns without error.
2142//
2143// See ListJobs for more information on using the ListJobs
2144// API call, and error handling.
2145//
2146// This method is useful when you want to inject custom logic or configuration
2147// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2148//
2149//
2150//    // Example sending a request using the ListJobsRequest method.
2151//    req, resp := client.ListJobsRequest(params)
2152//
2153//    err := req.Send()
2154//    if err == nil { // resp is now filled
2155//        fmt.Println(resp)
2156//    }
2157func (c *Glacier) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
2158	op := &request.Operation{
2159		Name:       opListJobs,
2160		HTTPMethod: "GET",
2161		HTTPPath:   "/{accountId}/vaults/{vaultName}/jobs",
2162		Paginator: &request.Paginator{
2163			InputTokens:     []string{"marker"},
2164			OutputTokens:    []string{"Marker"},
2165			LimitToken:      "limit",
2166			TruncationToken: "",
2167		},
2168	}
2169
2170	if input == nil {
2171		input = &ListJobsInput{}
2172	}
2173
2174	output = &ListJobsOutput{}
2175	req = c.newRequest(op, input, output)
2176	return
2177}
2178
2179// ListJobs API operation for Amazon Glacier.
2180//
2181// This operation lists jobs for a vault, including jobs that are in-progress
2182// and jobs that have recently finished. The List Job operation returns a list
2183// of these jobs sorted by job initiation time.
2184//
2185// Amazon Glacier retains recently completed jobs for a period before deleting
2186// them; however, it eventually removes completed jobs. The output of completed
2187// jobs can be retrieved. Retaining completed jobs for a period of time after
2188// they have completed enables you to get a job output in the event you miss
2189// the job completion notification or your first attempt to download it fails.
2190// For example, suppose you start an archive retrieval job to download an archive.
2191// After the job completes, you start to download the archive but encounter
2192// a network error. In this scenario, you can retry and download the archive
2193// while the job exists.
2194//
2195// The List Jobs operation supports pagination. You should always check the
2196// response Marker field. If there are no more jobs to list, the Marker field
2197// is set to null. If there are more jobs to list, the Marker field is set to
2198// a non-null value, which you can use to continue the pagination of the list.
2199// To return a list of jobs that begins at a specific job, set the marker request
2200// parameter to the Marker value for that job that you obtained from a previous
2201// List Jobs request.
2202//
2203// You can set a maximum limit for the number of jobs returned in the response
2204// by specifying the limit parameter in the request. The default limit is 50.
2205// The number of jobs returned might be fewer than the limit, but the number
2206// of returned jobs never exceeds the limit.
2207//
2208// Additionally, you can filter the jobs list returned by specifying the optional
2209// statuscode parameter or completed parameter, or both. Using the statuscode
2210// parameter, you can specify to return only jobs that match either the InProgress,
2211// Succeeded, or Failed status. Using the completed parameter, you can specify
2212// to return only jobs that were completed (true) or jobs that were not completed
2213// (false).
2214//
2215// For more information about using this operation, see the documentation for
2216// the underlying REST API List Jobs (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-jobs-get.html).
2217//
2218// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2219// with awserr.Error's Code and Message methods to get detailed information about
2220// the error.
2221//
2222// See the AWS API reference guide for Amazon Glacier's
2223// API operation ListJobs for usage and error information.
2224//
2225// Returned Error Codes:
2226//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2227//   Returned if the specified resource (such as a vault, upload ID, or job ID)
2228//   doesn't exist.
2229//
2230//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
2231//   Returned if a parameter of the request is incorrectly specified.
2232//
2233//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
2234//   Returned if a required header or parameter is missing from the request.
2235//
2236//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2237//   Returned if the service cannot complete the request.
2238//
2239func (c *Glacier) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
2240	req, out := c.ListJobsRequest(input)
2241	return out, req.Send()
2242}
2243
2244// ListJobsWithContext is the same as ListJobs with the addition of
2245// the ability to pass a context and additional request options.
2246//
2247// See ListJobs for details on how to use this API operation.
2248//
2249// The context must be non-nil and will be used for request cancellation. If
2250// the context is nil a panic will occur. In the future the SDK may create
2251// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2252// for more information on using Contexts.
2253func (c *Glacier) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
2254	req, out := c.ListJobsRequest(input)
2255	req.SetContext(ctx)
2256	req.ApplyOptions(opts...)
2257	return out, req.Send()
2258}
2259
2260// ListJobsPages iterates over the pages of a ListJobs operation,
2261// calling the "fn" function with the response data for each page. To stop
2262// iterating, return false from the fn function.
2263//
2264// See ListJobs method for more information on how to use this operation.
2265//
2266// Note: This operation can generate multiple requests to a service.
2267//
2268//    // Example iterating over at most 3 pages of a ListJobs operation.
2269//    pageNum := 0
2270//    err := client.ListJobsPages(params,
2271//        func(page *glacier.ListJobsOutput, lastPage bool) bool {
2272//            pageNum++
2273//            fmt.Println(page)
2274//            return pageNum <= 3
2275//        })
2276//
2277func (c *Glacier) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
2278	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
2279}
2280
2281// ListJobsPagesWithContext same as ListJobsPages except
2282// it takes a Context and allows setting request options on the pages.
2283//
2284// The context must be non-nil and will be used for request cancellation. If
2285// the context is nil a panic will occur. In the future the SDK may create
2286// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2287// for more information on using Contexts.
2288func (c *Glacier) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
2289	p := request.Pagination{
2290		NewRequest: func() (*request.Request, error) {
2291			var inCpy *ListJobsInput
2292			if input != nil {
2293				tmp := *input
2294				inCpy = &tmp
2295			}
2296			req, _ := c.ListJobsRequest(inCpy)
2297			req.SetContext(ctx)
2298			req.ApplyOptions(opts...)
2299			return req, nil
2300		},
2301	}
2302
2303	cont := true
2304	for p.Next() && cont {
2305		cont = fn(p.Page().(*ListJobsOutput), !p.HasNextPage())
2306	}
2307	return p.Err()
2308}
2309
2310const opListMultipartUploads = "ListMultipartUploads"
2311
2312// ListMultipartUploadsRequest generates a "aws/request.Request" representing the
2313// client's request for the ListMultipartUploads operation. The "output" return
2314// value will be populated with the request's response once the request completes
2315// successfully.
2316//
2317// Use "Send" method on the returned Request to send the API call to the service.
2318// the "output" return value is not valid until after Send returns without error.
2319//
2320// See ListMultipartUploads for more information on using the ListMultipartUploads
2321// API call, and error handling.
2322//
2323// This method is useful when you want to inject custom logic or configuration
2324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2325//
2326//
2327//    // Example sending a request using the ListMultipartUploadsRequest method.
2328//    req, resp := client.ListMultipartUploadsRequest(params)
2329//
2330//    err := req.Send()
2331//    if err == nil { // resp is now filled
2332//        fmt.Println(resp)
2333//    }
2334func (c *Glacier) ListMultipartUploadsRequest(input *ListMultipartUploadsInput) (req *request.Request, output *ListMultipartUploadsOutput) {
2335	op := &request.Operation{
2336		Name:       opListMultipartUploads,
2337		HTTPMethod: "GET",
2338		HTTPPath:   "/{accountId}/vaults/{vaultName}/multipart-uploads",
2339		Paginator: &request.Paginator{
2340			InputTokens:     []string{"marker"},
2341			OutputTokens:    []string{"Marker"},
2342			LimitToken:      "limit",
2343			TruncationToken: "",
2344		},
2345	}
2346
2347	if input == nil {
2348		input = &ListMultipartUploadsInput{}
2349	}
2350
2351	output = &ListMultipartUploadsOutput{}
2352	req = c.newRequest(op, input, output)
2353	return
2354}
2355
2356// ListMultipartUploads API operation for Amazon Glacier.
2357//
2358// This operation lists in-progress multipart uploads for the specified vault.
2359// An in-progress multipart upload is a multipart upload that has been initiated
2360// by an InitiateMultipartUpload request, but has not yet been completed or
2361// aborted. The list returned in the List Multipart Upload response has no guaranteed
2362// order.
2363//
2364// The List Multipart Uploads operation supports pagination. By default, this
2365// operation returns up to 50 multipart uploads in the response. You should
2366// always check the response for a marker at which to continue the list; if
2367// there are no more items the marker is null. To return a list of multipart
2368// uploads that begins at a specific upload, set the marker request parameter
2369// to the value you obtained from a previous List Multipart Upload request.
2370// You can also limit the number of uploads returned in the response by specifying
2371// the limit parameter in the request.
2372//
2373// Note the difference between this operation and listing parts (ListParts).
2374// The List Multipart Uploads operation lists all multipart uploads for a vault
2375// and does not require a multipart upload ID. The List Parts operation requires
2376// a multipart upload ID since parts are associated with a single upload.
2377//
2378// An AWS account has full permission to perform all operations (actions). However,
2379// AWS Identity and Access Management (IAM) users don't have any permissions
2380// by default. You must grant them explicit permission to perform specific actions.
2381// For more information, see Access Control Using AWS Identity and Access Management
2382// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
2383//
2384// For conceptual information and the underlying REST API, see Working with
2385// Archives in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html)
2386// and List Multipart Uploads (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-list-uploads.html)
2387// in the Amazon Glacier Developer Guide.
2388//
2389// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2390// with awserr.Error's Code and Message methods to get detailed information about
2391// the error.
2392//
2393// See the AWS API reference guide for Amazon Glacier's
2394// API operation ListMultipartUploads for usage and error information.
2395//
2396// Returned Error Codes:
2397//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2398//   Returned if the specified resource (such as a vault, upload ID, or job ID)
2399//   doesn't exist.
2400//
2401//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
2402//   Returned if a parameter of the request is incorrectly specified.
2403//
2404//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
2405//   Returned if a required header or parameter is missing from the request.
2406//
2407//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2408//   Returned if the service cannot complete the request.
2409//
2410func (c *Glacier) ListMultipartUploads(input *ListMultipartUploadsInput) (*ListMultipartUploadsOutput, error) {
2411	req, out := c.ListMultipartUploadsRequest(input)
2412	return out, req.Send()
2413}
2414
2415// ListMultipartUploadsWithContext is the same as ListMultipartUploads with the addition of
2416// the ability to pass a context and additional request options.
2417//
2418// See ListMultipartUploads for details on how to use this API operation.
2419//
2420// The context must be non-nil and will be used for request cancellation. If
2421// the context is nil a panic will occur. In the future the SDK may create
2422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2423// for more information on using Contexts.
2424func (c *Glacier) ListMultipartUploadsWithContext(ctx aws.Context, input *ListMultipartUploadsInput, opts ...request.Option) (*ListMultipartUploadsOutput, error) {
2425	req, out := c.ListMultipartUploadsRequest(input)
2426	req.SetContext(ctx)
2427	req.ApplyOptions(opts...)
2428	return out, req.Send()
2429}
2430
2431// ListMultipartUploadsPages iterates over the pages of a ListMultipartUploads operation,
2432// calling the "fn" function with the response data for each page. To stop
2433// iterating, return false from the fn function.
2434//
2435// See ListMultipartUploads method for more information on how to use this operation.
2436//
2437// Note: This operation can generate multiple requests to a service.
2438//
2439//    // Example iterating over at most 3 pages of a ListMultipartUploads operation.
2440//    pageNum := 0
2441//    err := client.ListMultipartUploadsPages(params,
2442//        func(page *glacier.ListMultipartUploadsOutput, lastPage bool) bool {
2443//            pageNum++
2444//            fmt.Println(page)
2445//            return pageNum <= 3
2446//        })
2447//
2448func (c *Glacier) ListMultipartUploadsPages(input *ListMultipartUploadsInput, fn func(*ListMultipartUploadsOutput, bool) bool) error {
2449	return c.ListMultipartUploadsPagesWithContext(aws.BackgroundContext(), input, fn)
2450}
2451
2452// ListMultipartUploadsPagesWithContext same as ListMultipartUploadsPages except
2453// it takes a Context and allows setting request options on the pages.
2454//
2455// The context must be non-nil and will be used for request cancellation. If
2456// the context is nil a panic will occur. In the future the SDK may create
2457// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2458// for more information on using Contexts.
2459func (c *Glacier) ListMultipartUploadsPagesWithContext(ctx aws.Context, input *ListMultipartUploadsInput, fn func(*ListMultipartUploadsOutput, bool) bool, opts ...request.Option) error {
2460	p := request.Pagination{
2461		NewRequest: func() (*request.Request, error) {
2462			var inCpy *ListMultipartUploadsInput
2463			if input != nil {
2464				tmp := *input
2465				inCpy = &tmp
2466			}
2467			req, _ := c.ListMultipartUploadsRequest(inCpy)
2468			req.SetContext(ctx)
2469			req.ApplyOptions(opts...)
2470			return req, nil
2471		},
2472	}
2473
2474	cont := true
2475	for p.Next() && cont {
2476		cont = fn(p.Page().(*ListMultipartUploadsOutput), !p.HasNextPage())
2477	}
2478	return p.Err()
2479}
2480
2481const opListParts = "ListParts"
2482
2483// ListPartsRequest generates a "aws/request.Request" representing the
2484// client's request for the ListParts operation. The "output" return
2485// value will be populated with the request's response once the request completes
2486// successfully.
2487//
2488// Use "Send" method on the returned Request to send the API call to the service.
2489// the "output" return value is not valid until after Send returns without error.
2490//
2491// See ListParts for more information on using the ListParts
2492// API call, and error handling.
2493//
2494// This method is useful when you want to inject custom logic or configuration
2495// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2496//
2497//
2498//    // Example sending a request using the ListPartsRequest method.
2499//    req, resp := client.ListPartsRequest(params)
2500//
2501//    err := req.Send()
2502//    if err == nil { // resp is now filled
2503//        fmt.Println(resp)
2504//    }
2505func (c *Glacier) ListPartsRequest(input *ListPartsInput) (req *request.Request, output *ListPartsOutput) {
2506	op := &request.Operation{
2507		Name:       opListParts,
2508		HTTPMethod: "GET",
2509		HTTPPath:   "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}",
2510		Paginator: &request.Paginator{
2511			InputTokens:     []string{"marker"},
2512			OutputTokens:    []string{"Marker"},
2513			LimitToken:      "limit",
2514			TruncationToken: "",
2515		},
2516	}
2517
2518	if input == nil {
2519		input = &ListPartsInput{}
2520	}
2521
2522	output = &ListPartsOutput{}
2523	req = c.newRequest(op, input, output)
2524	return
2525}
2526
2527// ListParts API operation for Amazon Glacier.
2528//
2529// This operation lists the parts of an archive that have been uploaded in a
2530// specific multipart upload. You can make this request at any time during an
2531// in-progress multipart upload before you complete the upload (see CompleteMultipartUpload.
2532// List Parts returns an error for completed uploads. The list returned in the
2533// List Parts response is sorted by part range.
2534//
2535// The List Parts operation supports pagination. By default, this operation
2536// returns up to 50 uploaded parts in the response. You should always check
2537// the response for a marker at which to continue the list; if there are no
2538// more items the marker is null. To return a list of parts that begins at a
2539// specific part, set the marker request parameter to the value you obtained
2540// from a previous List Parts request. You can also limit the number of parts
2541// returned in the response by specifying the limit parameter in the request.
2542//
2543// An AWS account has full permission to perform all operations (actions). However,
2544// AWS Identity and Access Management (IAM) users don't have any permissions
2545// by default. You must grant them explicit permission to perform specific actions.
2546// For more information, see Access Control Using AWS Identity and Access Management
2547// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
2548//
2549// For conceptual information and the underlying REST API, see Working with
2550// Archives in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html)
2551// and List Parts (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-list-parts.html)
2552// in the Amazon Glacier Developer Guide.
2553//
2554// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2555// with awserr.Error's Code and Message methods to get detailed information about
2556// the error.
2557//
2558// See the AWS API reference guide for Amazon Glacier's
2559// API operation ListParts for usage and error information.
2560//
2561// Returned Error Codes:
2562//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2563//   Returned if the specified resource (such as a vault, upload ID, or job ID)
2564//   doesn't exist.
2565//
2566//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
2567//   Returned if a parameter of the request is incorrectly specified.
2568//
2569//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
2570//   Returned if a required header or parameter is missing from the request.
2571//
2572//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2573//   Returned if the service cannot complete the request.
2574//
2575func (c *Glacier) ListParts(input *ListPartsInput) (*ListPartsOutput, error) {
2576	req, out := c.ListPartsRequest(input)
2577	return out, req.Send()
2578}
2579
2580// ListPartsWithContext is the same as ListParts with the addition of
2581// the ability to pass a context and additional request options.
2582//
2583// See ListParts for details on how to use this API operation.
2584//
2585// The context must be non-nil and will be used for request cancellation. If
2586// the context is nil a panic will occur. In the future the SDK may create
2587// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2588// for more information on using Contexts.
2589func (c *Glacier) ListPartsWithContext(ctx aws.Context, input *ListPartsInput, opts ...request.Option) (*ListPartsOutput, error) {
2590	req, out := c.ListPartsRequest(input)
2591	req.SetContext(ctx)
2592	req.ApplyOptions(opts...)
2593	return out, req.Send()
2594}
2595
2596// ListPartsPages iterates over the pages of a ListParts operation,
2597// calling the "fn" function with the response data for each page. To stop
2598// iterating, return false from the fn function.
2599//
2600// See ListParts method for more information on how to use this operation.
2601//
2602// Note: This operation can generate multiple requests to a service.
2603//
2604//    // Example iterating over at most 3 pages of a ListParts operation.
2605//    pageNum := 0
2606//    err := client.ListPartsPages(params,
2607//        func(page *glacier.ListPartsOutput, lastPage bool) bool {
2608//            pageNum++
2609//            fmt.Println(page)
2610//            return pageNum <= 3
2611//        })
2612//
2613func (c *Glacier) ListPartsPages(input *ListPartsInput, fn func(*ListPartsOutput, bool) bool) error {
2614	return c.ListPartsPagesWithContext(aws.BackgroundContext(), input, fn)
2615}
2616
2617// ListPartsPagesWithContext same as ListPartsPages except
2618// it takes a Context and allows setting request options on the pages.
2619//
2620// The context must be non-nil and will be used for request cancellation. If
2621// the context is nil a panic will occur. In the future the SDK may create
2622// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2623// for more information on using Contexts.
2624func (c *Glacier) ListPartsPagesWithContext(ctx aws.Context, input *ListPartsInput, fn func(*ListPartsOutput, bool) bool, opts ...request.Option) error {
2625	p := request.Pagination{
2626		NewRequest: func() (*request.Request, error) {
2627			var inCpy *ListPartsInput
2628			if input != nil {
2629				tmp := *input
2630				inCpy = &tmp
2631			}
2632			req, _ := c.ListPartsRequest(inCpy)
2633			req.SetContext(ctx)
2634			req.ApplyOptions(opts...)
2635			return req, nil
2636		},
2637	}
2638
2639	cont := true
2640	for p.Next() && cont {
2641		cont = fn(p.Page().(*ListPartsOutput), !p.HasNextPage())
2642	}
2643	return p.Err()
2644}
2645
2646const opListProvisionedCapacity = "ListProvisionedCapacity"
2647
2648// ListProvisionedCapacityRequest generates a "aws/request.Request" representing the
2649// client's request for the ListProvisionedCapacity operation. The "output" return
2650// value will be populated with the request's response once the request completes
2651// successfully.
2652//
2653// Use "Send" method on the returned Request to send the API call to the service.
2654// the "output" return value is not valid until after Send returns without error.
2655//
2656// See ListProvisionedCapacity for more information on using the ListProvisionedCapacity
2657// API call, and error handling.
2658//
2659// This method is useful when you want to inject custom logic or configuration
2660// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2661//
2662//
2663//    // Example sending a request using the ListProvisionedCapacityRequest method.
2664//    req, resp := client.ListProvisionedCapacityRequest(params)
2665//
2666//    err := req.Send()
2667//    if err == nil { // resp is now filled
2668//        fmt.Println(resp)
2669//    }
2670func (c *Glacier) ListProvisionedCapacityRequest(input *ListProvisionedCapacityInput) (req *request.Request, output *ListProvisionedCapacityOutput) {
2671	op := &request.Operation{
2672		Name:       opListProvisionedCapacity,
2673		HTTPMethod: "GET",
2674		HTTPPath:   "/{accountId}/provisioned-capacity",
2675	}
2676
2677	if input == nil {
2678		input = &ListProvisionedCapacityInput{}
2679	}
2680
2681	output = &ListProvisionedCapacityOutput{}
2682	req = c.newRequest(op, input, output)
2683	return
2684}
2685
2686// ListProvisionedCapacity API operation for Amazon Glacier.
2687//
2688// This operation lists the provisioned capacity units for the specified AWS
2689// account.
2690//
2691// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2692// with awserr.Error's Code and Message methods to get detailed information about
2693// the error.
2694//
2695// See the AWS API reference guide for Amazon Glacier's
2696// API operation ListProvisionedCapacity for usage and error information.
2697//
2698// Returned Error Codes:
2699//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
2700//   Returned if a parameter of the request is incorrectly specified.
2701//
2702//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
2703//   Returned if a required header or parameter is missing from the request.
2704//
2705//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2706//   Returned if the service cannot complete the request.
2707//
2708func (c *Glacier) ListProvisionedCapacity(input *ListProvisionedCapacityInput) (*ListProvisionedCapacityOutput, error) {
2709	req, out := c.ListProvisionedCapacityRequest(input)
2710	return out, req.Send()
2711}
2712
2713// ListProvisionedCapacityWithContext is the same as ListProvisionedCapacity with the addition of
2714// the ability to pass a context and additional request options.
2715//
2716// See ListProvisionedCapacity for details on how to use this API operation.
2717//
2718// The context must be non-nil and will be used for request cancellation. If
2719// the context is nil a panic will occur. In the future the SDK may create
2720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2721// for more information on using Contexts.
2722func (c *Glacier) ListProvisionedCapacityWithContext(ctx aws.Context, input *ListProvisionedCapacityInput, opts ...request.Option) (*ListProvisionedCapacityOutput, error) {
2723	req, out := c.ListProvisionedCapacityRequest(input)
2724	req.SetContext(ctx)
2725	req.ApplyOptions(opts...)
2726	return out, req.Send()
2727}
2728
2729const opListTagsForVault = "ListTagsForVault"
2730
2731// ListTagsForVaultRequest generates a "aws/request.Request" representing the
2732// client's request for the ListTagsForVault operation. The "output" return
2733// value will be populated with the request's response once the request completes
2734// successfully.
2735//
2736// Use "Send" method on the returned Request to send the API call to the service.
2737// the "output" return value is not valid until after Send returns without error.
2738//
2739// See ListTagsForVault for more information on using the ListTagsForVault
2740// API call, and error handling.
2741//
2742// This method is useful when you want to inject custom logic or configuration
2743// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2744//
2745//
2746//    // Example sending a request using the ListTagsForVaultRequest method.
2747//    req, resp := client.ListTagsForVaultRequest(params)
2748//
2749//    err := req.Send()
2750//    if err == nil { // resp is now filled
2751//        fmt.Println(resp)
2752//    }
2753func (c *Glacier) ListTagsForVaultRequest(input *ListTagsForVaultInput) (req *request.Request, output *ListTagsForVaultOutput) {
2754	op := &request.Operation{
2755		Name:       opListTagsForVault,
2756		HTTPMethod: "GET",
2757		HTTPPath:   "/{accountId}/vaults/{vaultName}/tags",
2758	}
2759
2760	if input == nil {
2761		input = &ListTagsForVaultInput{}
2762	}
2763
2764	output = &ListTagsForVaultOutput{}
2765	req = c.newRequest(op, input, output)
2766	return
2767}
2768
2769// ListTagsForVault API operation for Amazon Glacier.
2770//
2771// This operation lists all the tags attached to a vault. The operation returns
2772// an empty map if there are no tags. For more information about tags, see Tagging
2773// Amazon S3 Glacier Resources (https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html).
2774//
2775// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2776// with awserr.Error's Code and Message methods to get detailed information about
2777// the error.
2778//
2779// See the AWS API reference guide for Amazon Glacier's
2780// API operation ListTagsForVault for usage and error information.
2781//
2782// Returned Error Codes:
2783//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
2784//   Returned if a parameter of the request is incorrectly specified.
2785//
2786//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
2787//   Returned if a required header or parameter is missing from the request.
2788//
2789//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2790//   Returned if the specified resource (such as a vault, upload ID, or job ID)
2791//   doesn't exist.
2792//
2793//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2794//   Returned if the service cannot complete the request.
2795//
2796func (c *Glacier) ListTagsForVault(input *ListTagsForVaultInput) (*ListTagsForVaultOutput, error) {
2797	req, out := c.ListTagsForVaultRequest(input)
2798	return out, req.Send()
2799}
2800
2801// ListTagsForVaultWithContext is the same as ListTagsForVault with the addition of
2802// the ability to pass a context and additional request options.
2803//
2804// See ListTagsForVault for details on how to use this API operation.
2805//
2806// The context must be non-nil and will be used for request cancellation. If
2807// the context is nil a panic will occur. In the future the SDK may create
2808// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2809// for more information on using Contexts.
2810func (c *Glacier) ListTagsForVaultWithContext(ctx aws.Context, input *ListTagsForVaultInput, opts ...request.Option) (*ListTagsForVaultOutput, error) {
2811	req, out := c.ListTagsForVaultRequest(input)
2812	req.SetContext(ctx)
2813	req.ApplyOptions(opts...)
2814	return out, req.Send()
2815}
2816
2817const opListVaults = "ListVaults"
2818
2819// ListVaultsRequest generates a "aws/request.Request" representing the
2820// client's request for the ListVaults operation. The "output" return
2821// value will be populated with the request's response once the request completes
2822// successfully.
2823//
2824// Use "Send" method on the returned Request to send the API call to the service.
2825// the "output" return value is not valid until after Send returns without error.
2826//
2827// See ListVaults for more information on using the ListVaults
2828// API call, and error handling.
2829//
2830// This method is useful when you want to inject custom logic or configuration
2831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2832//
2833//
2834//    // Example sending a request using the ListVaultsRequest method.
2835//    req, resp := client.ListVaultsRequest(params)
2836//
2837//    err := req.Send()
2838//    if err == nil { // resp is now filled
2839//        fmt.Println(resp)
2840//    }
2841func (c *Glacier) ListVaultsRequest(input *ListVaultsInput) (req *request.Request, output *ListVaultsOutput) {
2842	op := &request.Operation{
2843		Name:       opListVaults,
2844		HTTPMethod: "GET",
2845		HTTPPath:   "/{accountId}/vaults",
2846		Paginator: &request.Paginator{
2847			InputTokens:     []string{"marker"},
2848			OutputTokens:    []string{"Marker"},
2849			LimitToken:      "limit",
2850			TruncationToken: "",
2851		},
2852	}
2853
2854	if input == nil {
2855		input = &ListVaultsInput{}
2856	}
2857
2858	output = &ListVaultsOutput{}
2859	req = c.newRequest(op, input, output)
2860	return
2861}
2862
2863// ListVaults API operation for Amazon Glacier.
2864//
2865// This operation lists all vaults owned by the calling user's account. The
2866// list returned in the response is ASCII-sorted by vault name.
2867//
2868// By default, this operation returns up to 10 items. If there are more vaults
2869// to list, the response marker field contains the vault Amazon Resource Name
2870// (ARN) at which to continue the list with a new List Vaults request; otherwise,
2871// the marker field is null. To return a list of vaults that begins at a specific
2872// vault, set the marker request parameter to the vault ARN you obtained from
2873// a previous List Vaults request. You can also limit the number of vaults returned
2874// in the response by specifying the limit parameter in the request.
2875//
2876// An AWS account has full permission to perform all operations (actions). However,
2877// AWS Identity and Access Management (IAM) users don't have any permissions
2878// by default. You must grant them explicit permission to perform specific actions.
2879// For more information, see Access Control Using AWS Identity and Access Management
2880// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
2881//
2882// For conceptual information and underlying REST API, see Retrieving Vault
2883// Metadata in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/retrieving-vault-info.html)
2884// and List Vaults (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vaults-get.html)
2885// in the Amazon Glacier Developer Guide.
2886//
2887// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2888// with awserr.Error's Code and Message methods to get detailed information about
2889// the error.
2890//
2891// See the AWS API reference guide for Amazon Glacier's
2892// API operation ListVaults for usage and error information.
2893//
2894// Returned Error Codes:
2895//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2896//   Returned if the specified resource (such as a vault, upload ID, or job ID)
2897//   doesn't exist.
2898//
2899//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
2900//   Returned if a parameter of the request is incorrectly specified.
2901//
2902//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
2903//   Returned if a required header or parameter is missing from the request.
2904//
2905//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
2906//   Returned if the service cannot complete the request.
2907//
2908func (c *Glacier) ListVaults(input *ListVaultsInput) (*ListVaultsOutput, error) {
2909	req, out := c.ListVaultsRequest(input)
2910	return out, req.Send()
2911}
2912
2913// ListVaultsWithContext is the same as ListVaults with the addition of
2914// the ability to pass a context and additional request options.
2915//
2916// See ListVaults for details on how to use this API operation.
2917//
2918// The context must be non-nil and will be used for request cancellation. If
2919// the context is nil a panic will occur. In the future the SDK may create
2920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2921// for more information on using Contexts.
2922func (c *Glacier) ListVaultsWithContext(ctx aws.Context, input *ListVaultsInput, opts ...request.Option) (*ListVaultsOutput, error) {
2923	req, out := c.ListVaultsRequest(input)
2924	req.SetContext(ctx)
2925	req.ApplyOptions(opts...)
2926	return out, req.Send()
2927}
2928
2929// ListVaultsPages iterates over the pages of a ListVaults operation,
2930// calling the "fn" function with the response data for each page. To stop
2931// iterating, return false from the fn function.
2932//
2933// See ListVaults method for more information on how to use this operation.
2934//
2935// Note: This operation can generate multiple requests to a service.
2936//
2937//    // Example iterating over at most 3 pages of a ListVaults operation.
2938//    pageNum := 0
2939//    err := client.ListVaultsPages(params,
2940//        func(page *glacier.ListVaultsOutput, lastPage bool) bool {
2941//            pageNum++
2942//            fmt.Println(page)
2943//            return pageNum <= 3
2944//        })
2945//
2946func (c *Glacier) ListVaultsPages(input *ListVaultsInput, fn func(*ListVaultsOutput, bool) bool) error {
2947	return c.ListVaultsPagesWithContext(aws.BackgroundContext(), input, fn)
2948}
2949
2950// ListVaultsPagesWithContext same as ListVaultsPages except
2951// it takes a Context and allows setting request options on the pages.
2952//
2953// The context must be non-nil and will be used for request cancellation. If
2954// the context is nil a panic will occur. In the future the SDK may create
2955// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2956// for more information on using Contexts.
2957func (c *Glacier) ListVaultsPagesWithContext(ctx aws.Context, input *ListVaultsInput, fn func(*ListVaultsOutput, bool) bool, opts ...request.Option) error {
2958	p := request.Pagination{
2959		NewRequest: func() (*request.Request, error) {
2960			var inCpy *ListVaultsInput
2961			if input != nil {
2962				tmp := *input
2963				inCpy = &tmp
2964			}
2965			req, _ := c.ListVaultsRequest(inCpy)
2966			req.SetContext(ctx)
2967			req.ApplyOptions(opts...)
2968			return req, nil
2969		},
2970	}
2971
2972	cont := true
2973	for p.Next() && cont {
2974		cont = fn(p.Page().(*ListVaultsOutput), !p.HasNextPage())
2975	}
2976	return p.Err()
2977}
2978
2979const opPurchaseProvisionedCapacity = "PurchaseProvisionedCapacity"
2980
2981// PurchaseProvisionedCapacityRequest generates a "aws/request.Request" representing the
2982// client's request for the PurchaseProvisionedCapacity operation. The "output" return
2983// value will be populated with the request's response once the request completes
2984// successfully.
2985//
2986// Use "Send" method on the returned Request to send the API call to the service.
2987// the "output" return value is not valid until after Send returns without error.
2988//
2989// See PurchaseProvisionedCapacity for more information on using the PurchaseProvisionedCapacity
2990// API call, and error handling.
2991//
2992// This method is useful when you want to inject custom logic or configuration
2993// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2994//
2995//
2996//    // Example sending a request using the PurchaseProvisionedCapacityRequest method.
2997//    req, resp := client.PurchaseProvisionedCapacityRequest(params)
2998//
2999//    err := req.Send()
3000//    if err == nil { // resp is now filled
3001//        fmt.Println(resp)
3002//    }
3003func (c *Glacier) PurchaseProvisionedCapacityRequest(input *PurchaseProvisionedCapacityInput) (req *request.Request, output *PurchaseProvisionedCapacityOutput) {
3004	op := &request.Operation{
3005		Name:       opPurchaseProvisionedCapacity,
3006		HTTPMethod: "POST",
3007		HTTPPath:   "/{accountId}/provisioned-capacity",
3008	}
3009
3010	if input == nil {
3011		input = &PurchaseProvisionedCapacityInput{}
3012	}
3013
3014	output = &PurchaseProvisionedCapacityOutput{}
3015	req = c.newRequest(op, input, output)
3016	return
3017}
3018
3019// PurchaseProvisionedCapacity API operation for Amazon Glacier.
3020//
3021// This operation purchases a provisioned capacity unit for an AWS account.
3022//
3023// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3024// with awserr.Error's Code and Message methods to get detailed information about
3025// the error.
3026//
3027// See the AWS API reference guide for Amazon Glacier's
3028// API operation PurchaseProvisionedCapacity for usage and error information.
3029//
3030// Returned Error Codes:
3031//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
3032//   Returned if a parameter of the request is incorrectly specified.
3033//
3034//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
3035//   Returned if a required header or parameter is missing from the request.
3036//
3037//   * ErrCodeLimitExceededException "LimitExceededException"
3038//   Returned if the request results in a vault or account limit being exceeded.
3039//
3040//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3041//   Returned if the service cannot complete the request.
3042//
3043func (c *Glacier) PurchaseProvisionedCapacity(input *PurchaseProvisionedCapacityInput) (*PurchaseProvisionedCapacityOutput, error) {
3044	req, out := c.PurchaseProvisionedCapacityRequest(input)
3045	return out, req.Send()
3046}
3047
3048// PurchaseProvisionedCapacityWithContext is the same as PurchaseProvisionedCapacity with the addition of
3049// the ability to pass a context and additional request options.
3050//
3051// See PurchaseProvisionedCapacity for details on how to use this API operation.
3052//
3053// The context must be non-nil and will be used for request cancellation. If
3054// the context is nil a panic will occur. In the future the SDK may create
3055// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3056// for more information on using Contexts.
3057func (c *Glacier) PurchaseProvisionedCapacityWithContext(ctx aws.Context, input *PurchaseProvisionedCapacityInput, opts ...request.Option) (*PurchaseProvisionedCapacityOutput, error) {
3058	req, out := c.PurchaseProvisionedCapacityRequest(input)
3059	req.SetContext(ctx)
3060	req.ApplyOptions(opts...)
3061	return out, req.Send()
3062}
3063
3064const opRemoveTagsFromVault = "RemoveTagsFromVault"
3065
3066// RemoveTagsFromVaultRequest generates a "aws/request.Request" representing the
3067// client's request for the RemoveTagsFromVault operation. The "output" return
3068// value will be populated with the request's response once the request completes
3069// successfully.
3070//
3071// Use "Send" method on the returned Request to send the API call to the service.
3072// the "output" return value is not valid until after Send returns without error.
3073//
3074// See RemoveTagsFromVault for more information on using the RemoveTagsFromVault
3075// API call, and error handling.
3076//
3077// This method is useful when you want to inject custom logic or configuration
3078// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3079//
3080//
3081//    // Example sending a request using the RemoveTagsFromVaultRequest method.
3082//    req, resp := client.RemoveTagsFromVaultRequest(params)
3083//
3084//    err := req.Send()
3085//    if err == nil { // resp is now filled
3086//        fmt.Println(resp)
3087//    }
3088func (c *Glacier) RemoveTagsFromVaultRequest(input *RemoveTagsFromVaultInput) (req *request.Request, output *RemoveTagsFromVaultOutput) {
3089	op := &request.Operation{
3090		Name:       opRemoveTagsFromVault,
3091		HTTPMethod: "POST",
3092		HTTPPath:   "/{accountId}/vaults/{vaultName}/tags?operation=remove",
3093	}
3094
3095	if input == nil {
3096		input = &RemoveTagsFromVaultInput{}
3097	}
3098
3099	output = &RemoveTagsFromVaultOutput{}
3100	req = c.newRequest(op, input, output)
3101	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3102	return
3103}
3104
3105// RemoveTagsFromVault API operation for Amazon Glacier.
3106//
3107// This operation removes one or more tags from the set of tags attached to
3108// a vault. For more information about tags, see Tagging Amazon S3 Glacier Resources
3109// (https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html). This
3110// operation is idempotent. The operation will be successful, even if there
3111// are no tags attached to the vault.
3112//
3113// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3114// with awserr.Error's Code and Message methods to get detailed information about
3115// the error.
3116//
3117// See the AWS API reference guide for Amazon Glacier's
3118// API operation RemoveTagsFromVault for usage and error information.
3119//
3120// Returned Error Codes:
3121//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
3122//   Returned if a parameter of the request is incorrectly specified.
3123//
3124//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
3125//   Returned if a required header or parameter is missing from the request.
3126//
3127//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3128//   Returned if the specified resource (such as a vault, upload ID, or job ID)
3129//   doesn't exist.
3130//
3131//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3132//   Returned if the service cannot complete the request.
3133//
3134func (c *Glacier) RemoveTagsFromVault(input *RemoveTagsFromVaultInput) (*RemoveTagsFromVaultOutput, error) {
3135	req, out := c.RemoveTagsFromVaultRequest(input)
3136	return out, req.Send()
3137}
3138
3139// RemoveTagsFromVaultWithContext is the same as RemoveTagsFromVault with the addition of
3140// the ability to pass a context and additional request options.
3141//
3142// See RemoveTagsFromVault for details on how to use this API operation.
3143//
3144// The context must be non-nil and will be used for request cancellation. If
3145// the context is nil a panic will occur. In the future the SDK may create
3146// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3147// for more information on using Contexts.
3148func (c *Glacier) RemoveTagsFromVaultWithContext(ctx aws.Context, input *RemoveTagsFromVaultInput, opts ...request.Option) (*RemoveTagsFromVaultOutput, error) {
3149	req, out := c.RemoveTagsFromVaultRequest(input)
3150	req.SetContext(ctx)
3151	req.ApplyOptions(opts...)
3152	return out, req.Send()
3153}
3154
3155const opSetDataRetrievalPolicy = "SetDataRetrievalPolicy"
3156
3157// SetDataRetrievalPolicyRequest generates a "aws/request.Request" representing the
3158// client's request for the SetDataRetrievalPolicy operation. The "output" return
3159// value will be populated with the request's response once the request completes
3160// successfully.
3161//
3162// Use "Send" method on the returned Request to send the API call to the service.
3163// the "output" return value is not valid until after Send returns without error.
3164//
3165// See SetDataRetrievalPolicy for more information on using the SetDataRetrievalPolicy
3166// API call, and error handling.
3167//
3168// This method is useful when you want to inject custom logic or configuration
3169// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3170//
3171//
3172//    // Example sending a request using the SetDataRetrievalPolicyRequest method.
3173//    req, resp := client.SetDataRetrievalPolicyRequest(params)
3174//
3175//    err := req.Send()
3176//    if err == nil { // resp is now filled
3177//        fmt.Println(resp)
3178//    }
3179func (c *Glacier) SetDataRetrievalPolicyRequest(input *SetDataRetrievalPolicyInput) (req *request.Request, output *SetDataRetrievalPolicyOutput) {
3180	op := &request.Operation{
3181		Name:       opSetDataRetrievalPolicy,
3182		HTTPMethod: "PUT",
3183		HTTPPath:   "/{accountId}/policies/data-retrieval",
3184	}
3185
3186	if input == nil {
3187		input = &SetDataRetrievalPolicyInput{}
3188	}
3189
3190	output = &SetDataRetrievalPolicyOutput{}
3191	req = c.newRequest(op, input, output)
3192	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3193	return
3194}
3195
3196// SetDataRetrievalPolicy API operation for Amazon Glacier.
3197//
3198// This operation sets and then enacts a data retrieval policy in the region
3199// specified in the PUT request. You can set one policy per region for an AWS
3200// account. The policy is enacted within a few minutes of a successful PUT operation.
3201//
3202// The set policy operation does not affect retrieval jobs that were in progress
3203// before the policy was enacted. For more information about data retrieval
3204// policies, see Amazon Glacier Data Retrieval Policies (https://docs.aws.amazon.com/amazonglacier/latest/dev/data-retrieval-policy.html).
3205//
3206// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3207// with awserr.Error's Code and Message methods to get detailed information about
3208// the error.
3209//
3210// See the AWS API reference guide for Amazon Glacier's
3211// API operation SetDataRetrievalPolicy for usage and error information.
3212//
3213// Returned Error Codes:
3214//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
3215//   Returned if a parameter of the request is incorrectly specified.
3216//
3217//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
3218//   Returned if a required header or parameter is missing from the request.
3219//
3220//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3221//   Returned if the service cannot complete the request.
3222//
3223func (c *Glacier) SetDataRetrievalPolicy(input *SetDataRetrievalPolicyInput) (*SetDataRetrievalPolicyOutput, error) {
3224	req, out := c.SetDataRetrievalPolicyRequest(input)
3225	return out, req.Send()
3226}
3227
3228// SetDataRetrievalPolicyWithContext is the same as SetDataRetrievalPolicy with the addition of
3229// the ability to pass a context and additional request options.
3230//
3231// See SetDataRetrievalPolicy for details on how to use this API operation.
3232//
3233// The context must be non-nil and will be used for request cancellation. If
3234// the context is nil a panic will occur. In the future the SDK may create
3235// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3236// for more information on using Contexts.
3237func (c *Glacier) SetDataRetrievalPolicyWithContext(ctx aws.Context, input *SetDataRetrievalPolicyInput, opts ...request.Option) (*SetDataRetrievalPolicyOutput, error) {
3238	req, out := c.SetDataRetrievalPolicyRequest(input)
3239	req.SetContext(ctx)
3240	req.ApplyOptions(opts...)
3241	return out, req.Send()
3242}
3243
3244const opSetVaultAccessPolicy = "SetVaultAccessPolicy"
3245
3246// SetVaultAccessPolicyRequest generates a "aws/request.Request" representing the
3247// client's request for the SetVaultAccessPolicy operation. The "output" return
3248// value will be populated with the request's response once the request completes
3249// successfully.
3250//
3251// Use "Send" method on the returned Request to send the API call to the service.
3252// the "output" return value is not valid until after Send returns without error.
3253//
3254// See SetVaultAccessPolicy for more information on using the SetVaultAccessPolicy
3255// API call, and error handling.
3256//
3257// This method is useful when you want to inject custom logic or configuration
3258// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3259//
3260//
3261//    // Example sending a request using the SetVaultAccessPolicyRequest method.
3262//    req, resp := client.SetVaultAccessPolicyRequest(params)
3263//
3264//    err := req.Send()
3265//    if err == nil { // resp is now filled
3266//        fmt.Println(resp)
3267//    }
3268func (c *Glacier) SetVaultAccessPolicyRequest(input *SetVaultAccessPolicyInput) (req *request.Request, output *SetVaultAccessPolicyOutput) {
3269	op := &request.Operation{
3270		Name:       opSetVaultAccessPolicy,
3271		HTTPMethod: "PUT",
3272		HTTPPath:   "/{accountId}/vaults/{vaultName}/access-policy",
3273	}
3274
3275	if input == nil {
3276		input = &SetVaultAccessPolicyInput{}
3277	}
3278
3279	output = &SetVaultAccessPolicyOutput{}
3280	req = c.newRequest(op, input, output)
3281	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3282	return
3283}
3284
3285// SetVaultAccessPolicy API operation for Amazon Glacier.
3286//
3287// This operation configures an access policy for a vault and will overwrite
3288// an existing policy. To configure a vault access policy, send a PUT request
3289// to the access-policy subresource of the vault. An access policy is specific
3290// to a vault and is also called a vault subresource. You can set one access
3291// policy per vault and the policy can be up to 20 KB in size. For more information
3292// about vault access policies, see Amazon Glacier Access Control with Vault
3293// Access Policies (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html).
3294//
3295// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3296// with awserr.Error's Code and Message methods to get detailed information about
3297// the error.
3298//
3299// See the AWS API reference guide for Amazon Glacier's
3300// API operation SetVaultAccessPolicy for usage and error information.
3301//
3302// Returned Error Codes:
3303//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3304//   Returned if the specified resource (such as a vault, upload ID, or job ID)
3305//   doesn't exist.
3306//
3307//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
3308//   Returned if a parameter of the request is incorrectly specified.
3309//
3310//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
3311//   Returned if a required header or parameter is missing from the request.
3312//
3313//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3314//   Returned if the service cannot complete the request.
3315//
3316func (c *Glacier) SetVaultAccessPolicy(input *SetVaultAccessPolicyInput) (*SetVaultAccessPolicyOutput, error) {
3317	req, out := c.SetVaultAccessPolicyRequest(input)
3318	return out, req.Send()
3319}
3320
3321// SetVaultAccessPolicyWithContext is the same as SetVaultAccessPolicy with the addition of
3322// the ability to pass a context and additional request options.
3323//
3324// See SetVaultAccessPolicy for details on how to use this API operation.
3325//
3326// The context must be non-nil and will be used for request cancellation. If
3327// the context is nil a panic will occur. In the future the SDK may create
3328// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3329// for more information on using Contexts.
3330func (c *Glacier) SetVaultAccessPolicyWithContext(ctx aws.Context, input *SetVaultAccessPolicyInput, opts ...request.Option) (*SetVaultAccessPolicyOutput, error) {
3331	req, out := c.SetVaultAccessPolicyRequest(input)
3332	req.SetContext(ctx)
3333	req.ApplyOptions(opts...)
3334	return out, req.Send()
3335}
3336
3337const opSetVaultNotifications = "SetVaultNotifications"
3338
3339// SetVaultNotificationsRequest generates a "aws/request.Request" representing the
3340// client's request for the SetVaultNotifications operation. The "output" return
3341// value will be populated with the request's response once the request completes
3342// successfully.
3343//
3344// Use "Send" method on the returned Request to send the API call to the service.
3345// the "output" return value is not valid until after Send returns without error.
3346//
3347// See SetVaultNotifications for more information on using the SetVaultNotifications
3348// API call, and error handling.
3349//
3350// This method is useful when you want to inject custom logic or configuration
3351// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3352//
3353//
3354//    // Example sending a request using the SetVaultNotificationsRequest method.
3355//    req, resp := client.SetVaultNotificationsRequest(params)
3356//
3357//    err := req.Send()
3358//    if err == nil { // resp is now filled
3359//        fmt.Println(resp)
3360//    }
3361func (c *Glacier) SetVaultNotificationsRequest(input *SetVaultNotificationsInput) (req *request.Request, output *SetVaultNotificationsOutput) {
3362	op := &request.Operation{
3363		Name:       opSetVaultNotifications,
3364		HTTPMethod: "PUT",
3365		HTTPPath:   "/{accountId}/vaults/{vaultName}/notification-configuration",
3366	}
3367
3368	if input == nil {
3369		input = &SetVaultNotificationsInput{}
3370	}
3371
3372	output = &SetVaultNotificationsOutput{}
3373	req = c.newRequest(op, input, output)
3374	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3375	return
3376}
3377
3378// SetVaultNotifications API operation for Amazon Glacier.
3379//
3380// This operation configures notifications that will be sent when specific events
3381// happen to a vault. By default, you don't get any notifications.
3382//
3383// To configure vault notifications, send a PUT request to the notification-configuration
3384// subresource of the vault. The request should include a JSON document that
3385// provides an Amazon SNS topic and specific events for which you want Amazon
3386// S3 Glacier to send notifications to the topic.
3387//
3388// Amazon SNS topics must grant permission to the vault to be allowed to publish
3389// notifications to the topic. You can configure a vault to publish a notification
3390// for the following vault events:
3391//
3392//    * ArchiveRetrievalCompleted This event occurs when a job that was initiated
3393//    for an archive retrieval is completed (InitiateJob). The status of the
3394//    completed job can be "Succeeded" or "Failed". The notification sent to
3395//    the SNS topic is the same output as returned from DescribeJob.
3396//
3397//    * InventoryRetrievalCompleted This event occurs when a job that was initiated
3398//    for an inventory retrieval is completed (InitiateJob). The status of the
3399//    completed job can be "Succeeded" or "Failed". The notification sent to
3400//    the SNS topic is the same output as returned from DescribeJob.
3401//
3402// An AWS account has full permission to perform all operations (actions). However,
3403// AWS Identity and Access Management (IAM) users don't have any permissions
3404// by default. You must grant them explicit permission to perform specific actions.
3405// For more information, see Access Control Using AWS Identity and Access Management
3406// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
3407//
3408// For conceptual information and underlying REST API, see Configuring Vault
3409// Notifications in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html)
3410// and Set Vault Notification Configuration (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-notifications-put.html)
3411// in the Amazon Glacier Developer Guide.
3412//
3413// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3414// with awserr.Error's Code and Message methods to get detailed information about
3415// the error.
3416//
3417// See the AWS API reference guide for Amazon Glacier's
3418// API operation SetVaultNotifications for usage and error information.
3419//
3420// Returned Error Codes:
3421//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3422//   Returned if the specified resource (such as a vault, upload ID, or job ID)
3423//   doesn't exist.
3424//
3425//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
3426//   Returned if a parameter of the request is incorrectly specified.
3427//
3428//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
3429//   Returned if a required header or parameter is missing from the request.
3430//
3431//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3432//   Returned if the service cannot complete the request.
3433//
3434func (c *Glacier) SetVaultNotifications(input *SetVaultNotificationsInput) (*SetVaultNotificationsOutput, error) {
3435	req, out := c.SetVaultNotificationsRequest(input)
3436	return out, req.Send()
3437}
3438
3439// SetVaultNotificationsWithContext is the same as SetVaultNotifications with the addition of
3440// the ability to pass a context and additional request options.
3441//
3442// See SetVaultNotifications for details on how to use this API operation.
3443//
3444// The context must be non-nil and will be used for request cancellation. If
3445// the context is nil a panic will occur. In the future the SDK may create
3446// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3447// for more information on using Contexts.
3448func (c *Glacier) SetVaultNotificationsWithContext(ctx aws.Context, input *SetVaultNotificationsInput, opts ...request.Option) (*SetVaultNotificationsOutput, error) {
3449	req, out := c.SetVaultNotificationsRequest(input)
3450	req.SetContext(ctx)
3451	req.ApplyOptions(opts...)
3452	return out, req.Send()
3453}
3454
3455const opUploadArchive = "UploadArchive"
3456
3457// UploadArchiveRequest generates a "aws/request.Request" representing the
3458// client's request for the UploadArchive operation. The "output" return
3459// value will be populated with the request's response once the request completes
3460// successfully.
3461//
3462// Use "Send" method on the returned Request to send the API call to the service.
3463// the "output" return value is not valid until after Send returns without error.
3464//
3465// See UploadArchive for more information on using the UploadArchive
3466// API call, and error handling.
3467//
3468// This method is useful when you want to inject custom logic or configuration
3469// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3470//
3471//
3472//    // Example sending a request using the UploadArchiveRequest method.
3473//    req, resp := client.UploadArchiveRequest(params)
3474//
3475//    err := req.Send()
3476//    if err == nil { // resp is now filled
3477//        fmt.Println(resp)
3478//    }
3479func (c *Glacier) UploadArchiveRequest(input *UploadArchiveInput) (req *request.Request, output *ArchiveCreationOutput) {
3480	op := &request.Operation{
3481		Name:       opUploadArchive,
3482		HTTPMethod: "POST",
3483		HTTPPath:   "/{accountId}/vaults/{vaultName}/archives",
3484	}
3485
3486	if input == nil {
3487		input = &UploadArchiveInput{}
3488	}
3489
3490	output = &ArchiveCreationOutput{}
3491	req = c.newRequest(op, input, output)
3492	return
3493}
3494
3495// UploadArchive API operation for Amazon Glacier.
3496//
3497// This operation adds an archive to a vault. This is a synchronous operation,
3498// and for a successful upload, your data is durably persisted. Amazon S3 Glacier
3499// returns the archive ID in the x-amz-archive-id header of the response.
3500//
3501// You must use the archive ID to access your data in Amazon S3 Glacier. After
3502// you upload an archive, you should save the archive ID returned so that you
3503// can retrieve or delete the archive later. Besides saving the archive ID,
3504// you can also index it and give it a friendly name to allow for better searching.
3505// You can also use the optional archive description field to specify how the
3506// archive is referred to in an external index of archives, such as you might
3507// create in Amazon DynamoDB. You can also get the vault inventory to obtain
3508// a list of archive IDs in a vault. For more information, see InitiateJob.
3509//
3510// You must provide a SHA256 tree hash of the data you are uploading. For information
3511// about computing a SHA256 tree hash, see Computing Checksums (https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html).
3512//
3513// You can optionally specify an archive description of up to 1,024 printable
3514// ASCII characters. You can get the archive description when you either retrieve
3515// the archive or get the vault inventory. For more information, see InitiateJob.
3516// Amazon Glacier does not interpret the description in any way. An archive
3517// description does not need to be unique. You cannot use the description to
3518// retrieve or sort the archive list.
3519//
3520// Archives are immutable. After you upload an archive, you cannot edit the
3521// archive or its description.
3522//
3523// An AWS account has full permission to perform all operations (actions). However,
3524// AWS Identity and Access Management (IAM) users don't have any permissions
3525// by default. You must grant them explicit permission to perform specific actions.
3526// For more information, see Access Control Using AWS Identity and Access Management
3527// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
3528//
3529// For conceptual information and underlying REST API, see Uploading an Archive
3530// in Amazon Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-an-archive.html)
3531// and Upload Archive (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-post.html)
3532// in the Amazon Glacier Developer Guide.
3533//
3534// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3535// with awserr.Error's Code and Message methods to get detailed information about
3536// the error.
3537//
3538// See the AWS API reference guide for Amazon Glacier's
3539// API operation UploadArchive for usage and error information.
3540//
3541// Returned Error Codes:
3542//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3543//   Returned if the specified resource (such as a vault, upload ID, or job ID)
3544//   doesn't exist.
3545//
3546//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
3547//   Returned if a parameter of the request is incorrectly specified.
3548//
3549//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
3550//   Returned if a required header or parameter is missing from the request.
3551//
3552//   * ErrCodeRequestTimeoutException "RequestTimeoutException"
3553//   Returned if, when uploading an archive, Amazon S3 Glacier times out while
3554//   receiving the upload.
3555//
3556//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3557//   Returned if the service cannot complete the request.
3558//
3559func (c *Glacier) UploadArchive(input *UploadArchiveInput) (*ArchiveCreationOutput, error) {
3560	req, out := c.UploadArchiveRequest(input)
3561	return out, req.Send()
3562}
3563
3564// UploadArchiveWithContext is the same as UploadArchive with the addition of
3565// the ability to pass a context and additional request options.
3566//
3567// See UploadArchive for details on how to use this API operation.
3568//
3569// The context must be non-nil and will be used for request cancellation. If
3570// the context is nil a panic will occur. In the future the SDK may create
3571// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3572// for more information on using Contexts.
3573func (c *Glacier) UploadArchiveWithContext(ctx aws.Context, input *UploadArchiveInput, opts ...request.Option) (*ArchiveCreationOutput, error) {
3574	req, out := c.UploadArchiveRequest(input)
3575	req.SetContext(ctx)
3576	req.ApplyOptions(opts...)
3577	return out, req.Send()
3578}
3579
3580const opUploadMultipartPart = "UploadMultipartPart"
3581
3582// UploadMultipartPartRequest generates a "aws/request.Request" representing the
3583// client's request for the UploadMultipartPart operation. The "output" return
3584// value will be populated with the request's response once the request completes
3585// successfully.
3586//
3587// Use "Send" method on the returned Request to send the API call to the service.
3588// the "output" return value is not valid until after Send returns without error.
3589//
3590// See UploadMultipartPart for more information on using the UploadMultipartPart
3591// API call, and error handling.
3592//
3593// This method is useful when you want to inject custom logic or configuration
3594// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3595//
3596//
3597//    // Example sending a request using the UploadMultipartPartRequest method.
3598//    req, resp := client.UploadMultipartPartRequest(params)
3599//
3600//    err := req.Send()
3601//    if err == nil { // resp is now filled
3602//        fmt.Println(resp)
3603//    }
3604func (c *Glacier) UploadMultipartPartRequest(input *UploadMultipartPartInput) (req *request.Request, output *UploadMultipartPartOutput) {
3605	op := &request.Operation{
3606		Name:       opUploadMultipartPart,
3607		HTTPMethod: "PUT",
3608		HTTPPath:   "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}",
3609	}
3610
3611	if input == nil {
3612		input = &UploadMultipartPartInput{}
3613	}
3614
3615	output = &UploadMultipartPartOutput{}
3616	req = c.newRequest(op, input, output)
3617	return
3618}
3619
3620// UploadMultipartPart API operation for Amazon Glacier.
3621//
3622// This operation uploads a part of an archive. You can upload archive parts
3623// in any order. You can also upload them in parallel. You can upload up to
3624// 10,000 parts for a multipart upload.
3625//
3626// Amazon Glacier rejects your upload part request if any of the following conditions
3627// is true:
3628//
3629//    * SHA256 tree hash does not matchTo ensure that part data is not corrupted
3630//    in transmission, you compute a SHA256 tree hash of the part and include
3631//    it in your request. Upon receiving the part data, Amazon S3 Glacier also
3632//    computes a SHA256 tree hash. If these hash values don't match, the operation
3633//    fails. For information about computing a SHA256 tree hash, see Computing
3634//    Checksums (https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html).
3635//
3636//    * Part size does not matchThe size of each part except the last must match
3637//    the size specified in the corresponding InitiateMultipartUpload request.
3638//    The size of the last part must be the same size as, or smaller than, the
3639//    specified size. If you upload a part whose size is smaller than the part
3640//    size you specified in your initiate multipart upload request and that
3641//    part is not the last part, then the upload part request will succeed.
3642//    However, the subsequent Complete Multipart Upload request will fail.
3643//
3644//    * Range does not alignThe byte range value in the request does not align
3645//    with the part size specified in the corresponding initiate request. For
3646//    example, if you specify a part size of 4194304 bytes (4 MB), then 0 to
3647//    4194303 bytes (4 MB - 1) and 4194304 (4 MB) to 8388607 (8 MB - 1) are
3648//    valid part ranges. However, if you set a range value of 2 MB to 6 MB,
3649//    the range does not align with the part size and the upload will fail.
3650//
3651// This operation is idempotent. If you upload the same part multiple times,
3652// the data included in the most recent request overwrites the previously uploaded
3653// data.
3654//
3655// An AWS account has full permission to perform all operations (actions). However,
3656// AWS Identity and Access Management (IAM) users don't have any permissions
3657// by default. You must grant them explicit permission to perform specific actions.
3658// For more information, see Access Control Using AWS Identity and Access Management
3659// (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
3660//
3661// For conceptual information and underlying REST API, see Uploading Large Archives
3662// in Parts (Multipart Upload) (https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html)
3663// and Upload Part (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-upload-part.html)
3664// in the Amazon Glacier Developer Guide.
3665//
3666// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3667// with awserr.Error's Code and Message methods to get detailed information about
3668// the error.
3669//
3670// See the AWS API reference guide for Amazon Glacier's
3671// API operation UploadMultipartPart for usage and error information.
3672//
3673// Returned Error Codes:
3674//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3675//   Returned if the specified resource (such as a vault, upload ID, or job ID)
3676//   doesn't exist.
3677//
3678//   * ErrCodeInvalidParameterValueException "InvalidParameterValueException"
3679//   Returned if a parameter of the request is incorrectly specified.
3680//
3681//   * ErrCodeMissingParameterValueException "MissingParameterValueException"
3682//   Returned if a required header or parameter is missing from the request.
3683//
3684//   * ErrCodeRequestTimeoutException "RequestTimeoutException"
3685//   Returned if, when uploading an archive, Amazon S3 Glacier times out while
3686//   receiving the upload.
3687//
3688//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
3689//   Returned if the service cannot complete the request.
3690//
3691func (c *Glacier) UploadMultipartPart(input *UploadMultipartPartInput) (*UploadMultipartPartOutput, error) {
3692	req, out := c.UploadMultipartPartRequest(input)
3693	return out, req.Send()
3694}
3695
3696// UploadMultipartPartWithContext is the same as UploadMultipartPart with the addition of
3697// the ability to pass a context and additional request options.
3698//
3699// See UploadMultipartPart for details on how to use this API operation.
3700//
3701// The context must be non-nil and will be used for request cancellation. If
3702// the context is nil a panic will occur. In the future the SDK may create
3703// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3704// for more information on using Contexts.
3705func (c *Glacier) UploadMultipartPartWithContext(ctx aws.Context, input *UploadMultipartPartInput, opts ...request.Option) (*UploadMultipartPartOutput, error) {
3706	req, out := c.UploadMultipartPartRequest(input)
3707	req.SetContext(ctx)
3708	req.ApplyOptions(opts...)
3709	return out, req.Send()
3710}
3711
3712// Provides options to abort a multipart upload identified by the upload ID.
3713//
3714// For information about the underlying REST API, see Abort Multipart Upload
3715// (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-abort-upload.html).
3716// For conceptual information, see Working with Archives in Amazon S3 Glacier
3717// (https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html).
3718type AbortMultipartUploadInput struct {
3719	_ struct{} `type:"structure"`
3720
3721	// The AccountId value is the AWS account ID of the account that owns the vault.
3722	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
3723	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
3724	// credentials used to sign the request. If you use an account ID, do not include
3725	// any hyphens ('-') in the ID.
3726	//
3727	// AccountId is a required field
3728	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
3729
3730	// The upload ID of the multipart upload to delete.
3731	//
3732	// UploadId is a required field
3733	UploadId *string `location:"uri" locationName:"uploadId" type:"string" required:"true"`
3734
3735	// The name of the vault.
3736	//
3737	// VaultName is a required field
3738	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
3739}
3740
3741// String returns the string representation
3742func (s AbortMultipartUploadInput) String() string {
3743	return awsutil.Prettify(s)
3744}
3745
3746// GoString returns the string representation
3747func (s AbortMultipartUploadInput) GoString() string {
3748	return s.String()
3749}
3750
3751// Validate inspects the fields of the type to determine if they are valid.
3752func (s *AbortMultipartUploadInput) Validate() error {
3753	invalidParams := request.ErrInvalidParams{Context: "AbortMultipartUploadInput"}
3754	if s.AccountId == nil {
3755		invalidParams.Add(request.NewErrParamRequired("AccountId"))
3756	}
3757	if s.AccountId != nil && len(*s.AccountId) < 1 {
3758		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
3759	}
3760	if s.UploadId == nil {
3761		invalidParams.Add(request.NewErrParamRequired("UploadId"))
3762	}
3763	if s.UploadId != nil && len(*s.UploadId) < 1 {
3764		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
3765	}
3766	if s.VaultName == nil {
3767		invalidParams.Add(request.NewErrParamRequired("VaultName"))
3768	}
3769	if s.VaultName != nil && len(*s.VaultName) < 1 {
3770		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
3771	}
3772
3773	if invalidParams.Len() > 0 {
3774		return invalidParams
3775	}
3776	return nil
3777}
3778
3779// SetAccountId sets the AccountId field's value.
3780func (s *AbortMultipartUploadInput) SetAccountId(v string) *AbortMultipartUploadInput {
3781	s.AccountId = &v
3782	return s
3783}
3784
3785// SetUploadId sets the UploadId field's value.
3786func (s *AbortMultipartUploadInput) SetUploadId(v string) *AbortMultipartUploadInput {
3787	s.UploadId = &v
3788	return s
3789}
3790
3791// SetVaultName sets the VaultName field's value.
3792func (s *AbortMultipartUploadInput) SetVaultName(v string) *AbortMultipartUploadInput {
3793	s.VaultName = &v
3794	return s
3795}
3796
3797type AbortMultipartUploadOutput struct {
3798	_ struct{} `type:"structure"`
3799}
3800
3801// String returns the string representation
3802func (s AbortMultipartUploadOutput) String() string {
3803	return awsutil.Prettify(s)
3804}
3805
3806// GoString returns the string representation
3807func (s AbortMultipartUploadOutput) GoString() string {
3808	return s.String()
3809}
3810
3811// The input values for AbortVaultLock.
3812type AbortVaultLockInput struct {
3813	_ struct{} `type:"structure"`
3814
3815	// The AccountId value is the AWS account ID. This value must match the AWS
3816	// account ID associated with the credentials used to sign the request. You
3817	// can either specify an AWS account ID or optionally a single '-' (hyphen),
3818	// in which case Amazon Glacier uses the AWS account ID associated with the
3819	// credentials used to sign the request. If you specify your account ID, do
3820	// not include any hyphens ('-') in the ID.
3821	//
3822	// AccountId is a required field
3823	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
3824
3825	// The name of the vault.
3826	//
3827	// VaultName is a required field
3828	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
3829}
3830
3831// String returns the string representation
3832func (s AbortVaultLockInput) String() string {
3833	return awsutil.Prettify(s)
3834}
3835
3836// GoString returns the string representation
3837func (s AbortVaultLockInput) GoString() string {
3838	return s.String()
3839}
3840
3841// Validate inspects the fields of the type to determine if they are valid.
3842func (s *AbortVaultLockInput) Validate() error {
3843	invalidParams := request.ErrInvalidParams{Context: "AbortVaultLockInput"}
3844	if s.AccountId == nil {
3845		invalidParams.Add(request.NewErrParamRequired("AccountId"))
3846	}
3847	if s.AccountId != nil && len(*s.AccountId) < 1 {
3848		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
3849	}
3850	if s.VaultName == nil {
3851		invalidParams.Add(request.NewErrParamRequired("VaultName"))
3852	}
3853	if s.VaultName != nil && len(*s.VaultName) < 1 {
3854		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
3855	}
3856
3857	if invalidParams.Len() > 0 {
3858		return invalidParams
3859	}
3860	return nil
3861}
3862
3863// SetAccountId sets the AccountId field's value.
3864func (s *AbortVaultLockInput) SetAccountId(v string) *AbortVaultLockInput {
3865	s.AccountId = &v
3866	return s
3867}
3868
3869// SetVaultName sets the VaultName field's value.
3870func (s *AbortVaultLockInput) SetVaultName(v string) *AbortVaultLockInput {
3871	s.VaultName = &v
3872	return s
3873}
3874
3875type AbortVaultLockOutput struct {
3876	_ struct{} `type:"structure"`
3877}
3878
3879// String returns the string representation
3880func (s AbortVaultLockOutput) String() string {
3881	return awsutil.Prettify(s)
3882}
3883
3884// GoString returns the string representation
3885func (s AbortVaultLockOutput) GoString() string {
3886	return s.String()
3887}
3888
3889// The input values for AddTagsToVault.
3890type AddTagsToVaultInput struct {
3891	_ struct{} `type:"structure"`
3892
3893	// The AccountId value is the AWS account ID of the account that owns the vault.
3894	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
3895	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
3896	// credentials used to sign the request. If you use an account ID, do not include
3897	// any hyphens ('-') in the ID.
3898	//
3899	// AccountId is a required field
3900	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
3901
3902	// The tags to add to the vault. Each tag is composed of a key and a value.
3903	// The value can be an empty string.
3904	Tags map[string]*string `type:"map"`
3905
3906	// The name of the vault.
3907	//
3908	// VaultName is a required field
3909	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
3910}
3911
3912// String returns the string representation
3913func (s AddTagsToVaultInput) String() string {
3914	return awsutil.Prettify(s)
3915}
3916
3917// GoString returns the string representation
3918func (s AddTagsToVaultInput) GoString() string {
3919	return s.String()
3920}
3921
3922// Validate inspects the fields of the type to determine if they are valid.
3923func (s *AddTagsToVaultInput) Validate() error {
3924	invalidParams := request.ErrInvalidParams{Context: "AddTagsToVaultInput"}
3925	if s.AccountId == nil {
3926		invalidParams.Add(request.NewErrParamRequired("AccountId"))
3927	}
3928	if s.AccountId != nil && len(*s.AccountId) < 1 {
3929		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
3930	}
3931	if s.VaultName == nil {
3932		invalidParams.Add(request.NewErrParamRequired("VaultName"))
3933	}
3934	if s.VaultName != nil && len(*s.VaultName) < 1 {
3935		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
3936	}
3937
3938	if invalidParams.Len() > 0 {
3939		return invalidParams
3940	}
3941	return nil
3942}
3943
3944// SetAccountId sets the AccountId field's value.
3945func (s *AddTagsToVaultInput) SetAccountId(v string) *AddTagsToVaultInput {
3946	s.AccountId = &v
3947	return s
3948}
3949
3950// SetTags sets the Tags field's value.
3951func (s *AddTagsToVaultInput) SetTags(v map[string]*string) *AddTagsToVaultInput {
3952	s.Tags = v
3953	return s
3954}
3955
3956// SetVaultName sets the VaultName field's value.
3957func (s *AddTagsToVaultInput) SetVaultName(v string) *AddTagsToVaultInput {
3958	s.VaultName = &v
3959	return s
3960}
3961
3962type AddTagsToVaultOutput struct {
3963	_ struct{} `type:"structure"`
3964}
3965
3966// String returns the string representation
3967func (s AddTagsToVaultOutput) String() string {
3968	return awsutil.Prettify(s)
3969}
3970
3971// GoString returns the string representation
3972func (s AddTagsToVaultOutput) GoString() string {
3973	return s.String()
3974}
3975
3976// Contains the Amazon S3 Glacier response to your request.
3977//
3978// For information about the underlying REST API, see Upload Archive (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-post.html).
3979// For conceptual information, see Working with Archives in Amazon S3 Glacier
3980// (https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html).
3981type ArchiveCreationOutput struct {
3982	_ struct{} `type:"structure"`
3983
3984	// The ID of the archive. This value is also included as part of the location.
3985	ArchiveId *string `location:"header" locationName:"x-amz-archive-id" type:"string"`
3986
3987	// The checksum of the archive computed by Amazon S3 Glacier.
3988	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
3989
3990	// The relative URI path of the newly added archive resource.
3991	Location *string `location:"header" locationName:"Location" type:"string"`
3992}
3993
3994// String returns the string representation
3995func (s ArchiveCreationOutput) String() string {
3996	return awsutil.Prettify(s)
3997}
3998
3999// GoString returns the string representation
4000func (s ArchiveCreationOutput) GoString() string {
4001	return s.String()
4002}
4003
4004// SetArchiveId sets the ArchiveId field's value.
4005func (s *ArchiveCreationOutput) SetArchiveId(v string) *ArchiveCreationOutput {
4006	s.ArchiveId = &v
4007	return s
4008}
4009
4010// SetChecksum sets the Checksum field's value.
4011func (s *ArchiveCreationOutput) SetChecksum(v string) *ArchiveCreationOutput {
4012	s.Checksum = &v
4013	return s
4014}
4015
4016// SetLocation sets the Location field's value.
4017func (s *ArchiveCreationOutput) SetLocation(v string) *ArchiveCreationOutput {
4018	s.Location = &v
4019	return s
4020}
4021
4022// Contains information about the comma-separated value (CSV) file to select
4023// from.
4024type CSVInput struct {
4025	_ struct{} `type:"structure"`
4026
4027	// A single character used to indicate that a row should be ignored when the
4028	// character is present at the start of that row.
4029	Comments *string `type:"string"`
4030
4031	// A value used to separate individual fields from each other within a record.
4032	FieldDelimiter *string `type:"string"`
4033
4034	// Describes the first line of input. Valid values are None, Ignore, and Use.
4035	FileHeaderInfo *string `type:"string" enum:"FileHeaderInfo"`
4036
4037	// A value used as an escape character where the field delimiter is part of
4038	// the value.
4039	QuoteCharacter *string `type:"string"`
4040
4041	// A single character used for escaping the quotation-mark character inside
4042	// an already escaped value.
4043	QuoteEscapeCharacter *string `type:"string"`
4044
4045	// A value used to separate individual records from each other.
4046	RecordDelimiter *string `type:"string"`
4047}
4048
4049// String returns the string representation
4050func (s CSVInput) String() string {
4051	return awsutil.Prettify(s)
4052}
4053
4054// GoString returns the string representation
4055func (s CSVInput) GoString() string {
4056	return s.String()
4057}
4058
4059// SetComments sets the Comments field's value.
4060func (s *CSVInput) SetComments(v string) *CSVInput {
4061	s.Comments = &v
4062	return s
4063}
4064
4065// SetFieldDelimiter sets the FieldDelimiter field's value.
4066func (s *CSVInput) SetFieldDelimiter(v string) *CSVInput {
4067	s.FieldDelimiter = &v
4068	return s
4069}
4070
4071// SetFileHeaderInfo sets the FileHeaderInfo field's value.
4072func (s *CSVInput) SetFileHeaderInfo(v string) *CSVInput {
4073	s.FileHeaderInfo = &v
4074	return s
4075}
4076
4077// SetQuoteCharacter sets the QuoteCharacter field's value.
4078func (s *CSVInput) SetQuoteCharacter(v string) *CSVInput {
4079	s.QuoteCharacter = &v
4080	return s
4081}
4082
4083// SetQuoteEscapeCharacter sets the QuoteEscapeCharacter field's value.
4084func (s *CSVInput) SetQuoteEscapeCharacter(v string) *CSVInput {
4085	s.QuoteEscapeCharacter = &v
4086	return s
4087}
4088
4089// SetRecordDelimiter sets the RecordDelimiter field's value.
4090func (s *CSVInput) SetRecordDelimiter(v string) *CSVInput {
4091	s.RecordDelimiter = &v
4092	return s
4093}
4094
4095// Contains information about the comma-separated value (CSV) file that the
4096// job results are stored in.
4097type CSVOutput struct {
4098	_ struct{} `type:"structure"`
4099
4100	// A value used to separate individual fields from each other within a record.
4101	FieldDelimiter *string `type:"string"`
4102
4103	// A value used as an escape character where the field delimiter is part of
4104	// the value.
4105	QuoteCharacter *string `type:"string"`
4106
4107	// A single character used for escaping the quotation-mark character inside
4108	// an already escaped value.
4109	QuoteEscapeCharacter *string `type:"string"`
4110
4111	// A value that indicates whether all output fields should be contained within
4112	// quotation marks.
4113	QuoteFields *string `type:"string" enum:"QuoteFields"`
4114
4115	// A value used to separate individual records from each other.
4116	RecordDelimiter *string `type:"string"`
4117}
4118
4119// String returns the string representation
4120func (s CSVOutput) String() string {
4121	return awsutil.Prettify(s)
4122}
4123
4124// GoString returns the string representation
4125func (s CSVOutput) GoString() string {
4126	return s.String()
4127}
4128
4129// SetFieldDelimiter sets the FieldDelimiter field's value.
4130func (s *CSVOutput) SetFieldDelimiter(v string) *CSVOutput {
4131	s.FieldDelimiter = &v
4132	return s
4133}
4134
4135// SetQuoteCharacter sets the QuoteCharacter field's value.
4136func (s *CSVOutput) SetQuoteCharacter(v string) *CSVOutput {
4137	s.QuoteCharacter = &v
4138	return s
4139}
4140
4141// SetQuoteEscapeCharacter sets the QuoteEscapeCharacter field's value.
4142func (s *CSVOutput) SetQuoteEscapeCharacter(v string) *CSVOutput {
4143	s.QuoteEscapeCharacter = &v
4144	return s
4145}
4146
4147// SetQuoteFields sets the QuoteFields field's value.
4148func (s *CSVOutput) SetQuoteFields(v string) *CSVOutput {
4149	s.QuoteFields = &v
4150	return s
4151}
4152
4153// SetRecordDelimiter sets the RecordDelimiter field's value.
4154func (s *CSVOutput) SetRecordDelimiter(v string) *CSVOutput {
4155	s.RecordDelimiter = &v
4156	return s
4157}
4158
4159// Provides options to complete a multipart upload operation. This informs Amazon
4160// Glacier that all the archive parts have been uploaded and Amazon S3 Glacier
4161// (Glacier) can now assemble the archive from the uploaded parts. After assembling
4162// and saving the archive to the vault, Glacier returns the URI path of the
4163// newly created archive resource.
4164type CompleteMultipartUploadInput struct {
4165	_ struct{} `type:"structure"`
4166
4167	// The AccountId value is the AWS account ID of the account that owns the vault.
4168	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
4169	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
4170	// credentials used to sign the request. If you use an account ID, do not include
4171	// any hyphens ('-') in the ID.
4172	//
4173	// AccountId is a required field
4174	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
4175
4176	// The total size, in bytes, of the entire archive. This value should be the
4177	// sum of all the sizes of the individual parts that you uploaded.
4178	ArchiveSize *string `location:"header" locationName:"x-amz-archive-size" type:"string"`
4179
4180	// The SHA256 tree hash of the entire archive. It is the tree hash of SHA256
4181	// tree hash of the individual parts. If the value you specify in the request
4182	// does not match the SHA256 tree hash of the final assembled archive as computed
4183	// by Amazon S3 Glacier (Glacier), Glacier returns an error and the request
4184	// fails.
4185	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
4186
4187	// The upload ID of the multipart upload.
4188	//
4189	// UploadId is a required field
4190	UploadId *string `location:"uri" locationName:"uploadId" type:"string" required:"true"`
4191
4192	// The name of the vault.
4193	//
4194	// VaultName is a required field
4195	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
4196}
4197
4198// String returns the string representation
4199func (s CompleteMultipartUploadInput) String() string {
4200	return awsutil.Prettify(s)
4201}
4202
4203// GoString returns the string representation
4204func (s CompleteMultipartUploadInput) GoString() string {
4205	return s.String()
4206}
4207
4208// Validate inspects the fields of the type to determine if they are valid.
4209func (s *CompleteMultipartUploadInput) Validate() error {
4210	invalidParams := request.ErrInvalidParams{Context: "CompleteMultipartUploadInput"}
4211	if s.AccountId == nil {
4212		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4213	}
4214	if s.AccountId != nil && len(*s.AccountId) < 1 {
4215		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4216	}
4217	if s.UploadId == nil {
4218		invalidParams.Add(request.NewErrParamRequired("UploadId"))
4219	}
4220	if s.UploadId != nil && len(*s.UploadId) < 1 {
4221		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
4222	}
4223	if s.VaultName == nil {
4224		invalidParams.Add(request.NewErrParamRequired("VaultName"))
4225	}
4226	if s.VaultName != nil && len(*s.VaultName) < 1 {
4227		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
4228	}
4229
4230	if invalidParams.Len() > 0 {
4231		return invalidParams
4232	}
4233	return nil
4234}
4235
4236// SetAccountId sets the AccountId field's value.
4237func (s *CompleteMultipartUploadInput) SetAccountId(v string) *CompleteMultipartUploadInput {
4238	s.AccountId = &v
4239	return s
4240}
4241
4242// SetArchiveSize sets the ArchiveSize field's value.
4243func (s *CompleteMultipartUploadInput) SetArchiveSize(v string) *CompleteMultipartUploadInput {
4244	s.ArchiveSize = &v
4245	return s
4246}
4247
4248// SetChecksum sets the Checksum field's value.
4249func (s *CompleteMultipartUploadInput) SetChecksum(v string) *CompleteMultipartUploadInput {
4250	s.Checksum = &v
4251	return s
4252}
4253
4254// SetUploadId sets the UploadId field's value.
4255func (s *CompleteMultipartUploadInput) SetUploadId(v string) *CompleteMultipartUploadInput {
4256	s.UploadId = &v
4257	return s
4258}
4259
4260// SetVaultName sets the VaultName field's value.
4261func (s *CompleteMultipartUploadInput) SetVaultName(v string) *CompleteMultipartUploadInput {
4262	s.VaultName = &v
4263	return s
4264}
4265
4266// The input values for CompleteVaultLock.
4267type CompleteVaultLockInput struct {
4268	_ struct{} `type:"structure"`
4269
4270	// The AccountId value is the AWS account ID. This value must match the AWS
4271	// account ID associated with the credentials used to sign the request. You
4272	// can either specify an AWS account ID or optionally a single '-' (hyphen),
4273	// in which case Amazon Glacier uses the AWS account ID associated with the
4274	// credentials used to sign the request. If you specify your account ID, do
4275	// not include any hyphens ('-') in the ID.
4276	//
4277	// AccountId is a required field
4278	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
4279
4280	// The lockId value is the lock ID obtained from a InitiateVaultLock request.
4281	//
4282	// LockId is a required field
4283	LockId *string `location:"uri" locationName:"lockId" type:"string" required:"true"`
4284
4285	// The name of the vault.
4286	//
4287	// VaultName is a required field
4288	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
4289}
4290
4291// String returns the string representation
4292func (s CompleteVaultLockInput) String() string {
4293	return awsutil.Prettify(s)
4294}
4295
4296// GoString returns the string representation
4297func (s CompleteVaultLockInput) GoString() string {
4298	return s.String()
4299}
4300
4301// Validate inspects the fields of the type to determine if they are valid.
4302func (s *CompleteVaultLockInput) Validate() error {
4303	invalidParams := request.ErrInvalidParams{Context: "CompleteVaultLockInput"}
4304	if s.AccountId == nil {
4305		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4306	}
4307	if s.AccountId != nil && len(*s.AccountId) < 1 {
4308		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4309	}
4310	if s.LockId == nil {
4311		invalidParams.Add(request.NewErrParamRequired("LockId"))
4312	}
4313	if s.LockId != nil && len(*s.LockId) < 1 {
4314		invalidParams.Add(request.NewErrParamMinLen("LockId", 1))
4315	}
4316	if s.VaultName == nil {
4317		invalidParams.Add(request.NewErrParamRequired("VaultName"))
4318	}
4319	if s.VaultName != nil && len(*s.VaultName) < 1 {
4320		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
4321	}
4322
4323	if invalidParams.Len() > 0 {
4324		return invalidParams
4325	}
4326	return nil
4327}
4328
4329// SetAccountId sets the AccountId field's value.
4330func (s *CompleteVaultLockInput) SetAccountId(v string) *CompleteVaultLockInput {
4331	s.AccountId = &v
4332	return s
4333}
4334
4335// SetLockId sets the LockId field's value.
4336func (s *CompleteVaultLockInput) SetLockId(v string) *CompleteVaultLockInput {
4337	s.LockId = &v
4338	return s
4339}
4340
4341// SetVaultName sets the VaultName field's value.
4342func (s *CompleteVaultLockInput) SetVaultName(v string) *CompleteVaultLockInput {
4343	s.VaultName = &v
4344	return s
4345}
4346
4347type CompleteVaultLockOutput struct {
4348	_ struct{} `type:"structure"`
4349}
4350
4351// String returns the string representation
4352func (s CompleteVaultLockOutput) String() string {
4353	return awsutil.Prettify(s)
4354}
4355
4356// GoString returns the string representation
4357func (s CompleteVaultLockOutput) GoString() string {
4358	return s.String()
4359}
4360
4361// Provides options to create a vault.
4362type CreateVaultInput struct {
4363	_ struct{} `type:"structure"`
4364
4365	// The AccountId value is the AWS account ID. This value must match the AWS
4366	// account ID associated with the credentials used to sign the request. You
4367	// can either specify an AWS account ID or optionally a single '-' (hyphen),
4368	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
4369	// credentials used to sign the request. If you specify your account ID, do
4370	// not include any hyphens ('-') in the ID.
4371	//
4372	// AccountId is a required field
4373	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
4374
4375	// The name of the vault.
4376	//
4377	// VaultName is a required field
4378	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
4379}
4380
4381// String returns the string representation
4382func (s CreateVaultInput) String() string {
4383	return awsutil.Prettify(s)
4384}
4385
4386// GoString returns the string representation
4387func (s CreateVaultInput) GoString() string {
4388	return s.String()
4389}
4390
4391// Validate inspects the fields of the type to determine if they are valid.
4392func (s *CreateVaultInput) Validate() error {
4393	invalidParams := request.ErrInvalidParams{Context: "CreateVaultInput"}
4394	if s.AccountId == nil {
4395		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4396	}
4397	if s.AccountId != nil && len(*s.AccountId) < 1 {
4398		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4399	}
4400	if s.VaultName == nil {
4401		invalidParams.Add(request.NewErrParamRequired("VaultName"))
4402	}
4403	if s.VaultName != nil && len(*s.VaultName) < 1 {
4404		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
4405	}
4406
4407	if invalidParams.Len() > 0 {
4408		return invalidParams
4409	}
4410	return nil
4411}
4412
4413// SetAccountId sets the AccountId field's value.
4414func (s *CreateVaultInput) SetAccountId(v string) *CreateVaultInput {
4415	s.AccountId = &v
4416	return s
4417}
4418
4419// SetVaultName sets the VaultName field's value.
4420func (s *CreateVaultInput) SetVaultName(v string) *CreateVaultInput {
4421	s.VaultName = &v
4422	return s
4423}
4424
4425// Contains the Amazon S3 Glacier response to your request.
4426type CreateVaultOutput struct {
4427	_ struct{} `type:"structure"`
4428
4429	// The URI of the vault that was created.
4430	Location *string `location:"header" locationName:"Location" type:"string"`
4431}
4432
4433// String returns the string representation
4434func (s CreateVaultOutput) String() string {
4435	return awsutil.Prettify(s)
4436}
4437
4438// GoString returns the string representation
4439func (s CreateVaultOutput) GoString() string {
4440	return s.String()
4441}
4442
4443// SetLocation sets the Location field's value.
4444func (s *CreateVaultOutput) SetLocation(v string) *CreateVaultOutput {
4445	s.Location = &v
4446	return s
4447}
4448
4449// Data retrieval policy.
4450type DataRetrievalPolicy struct {
4451	_ struct{} `type:"structure"`
4452
4453	// The policy rule. Although this is a list type, currently there must be only
4454	// one rule, which contains a Strategy field and optionally a BytesPerHour field.
4455	Rules []*DataRetrievalRule `type:"list"`
4456}
4457
4458// String returns the string representation
4459func (s DataRetrievalPolicy) String() string {
4460	return awsutil.Prettify(s)
4461}
4462
4463// GoString returns the string representation
4464func (s DataRetrievalPolicy) GoString() string {
4465	return s.String()
4466}
4467
4468// SetRules sets the Rules field's value.
4469func (s *DataRetrievalPolicy) SetRules(v []*DataRetrievalRule) *DataRetrievalPolicy {
4470	s.Rules = v
4471	return s
4472}
4473
4474// Data retrieval policy rule.
4475type DataRetrievalRule struct {
4476	_ struct{} `type:"structure"`
4477
4478	// The maximum number of bytes that can be retrieved in an hour.
4479	//
4480	// This field is required only if the value of the Strategy field is BytesPerHour.
4481	// Your PUT operation will be rejected if the Strategy field is not set to BytesPerHour
4482	// and you set this field.
4483	BytesPerHour *int64 `type:"long"`
4484
4485	// The type of data retrieval policy to set.
4486	//
4487	// Valid values: BytesPerHour|FreeTier|None
4488	Strategy *string `type:"string"`
4489}
4490
4491// String returns the string representation
4492func (s DataRetrievalRule) String() string {
4493	return awsutil.Prettify(s)
4494}
4495
4496// GoString returns the string representation
4497func (s DataRetrievalRule) GoString() string {
4498	return s.String()
4499}
4500
4501// SetBytesPerHour sets the BytesPerHour field's value.
4502func (s *DataRetrievalRule) SetBytesPerHour(v int64) *DataRetrievalRule {
4503	s.BytesPerHour = &v
4504	return s
4505}
4506
4507// SetStrategy sets the Strategy field's value.
4508func (s *DataRetrievalRule) SetStrategy(v string) *DataRetrievalRule {
4509	s.Strategy = &v
4510	return s
4511}
4512
4513// Provides options for deleting an archive from an Amazon S3 Glacier vault.
4514type DeleteArchiveInput struct {
4515	_ struct{} `type:"structure"`
4516
4517	// The AccountId value is the AWS account ID of the account that owns the vault.
4518	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
4519	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
4520	// credentials used to sign the request. If you use an account ID, do not include
4521	// any hyphens ('-') in the ID.
4522	//
4523	// AccountId is a required field
4524	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
4525
4526	// The ID of the archive to delete.
4527	//
4528	// ArchiveId is a required field
4529	ArchiveId *string `location:"uri" locationName:"archiveId" type:"string" required:"true"`
4530
4531	// The name of the vault.
4532	//
4533	// VaultName is a required field
4534	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
4535}
4536
4537// String returns the string representation
4538func (s DeleteArchiveInput) String() string {
4539	return awsutil.Prettify(s)
4540}
4541
4542// GoString returns the string representation
4543func (s DeleteArchiveInput) GoString() string {
4544	return s.String()
4545}
4546
4547// Validate inspects the fields of the type to determine if they are valid.
4548func (s *DeleteArchiveInput) Validate() error {
4549	invalidParams := request.ErrInvalidParams{Context: "DeleteArchiveInput"}
4550	if s.AccountId == nil {
4551		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4552	}
4553	if s.AccountId != nil && len(*s.AccountId) < 1 {
4554		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4555	}
4556	if s.ArchiveId == nil {
4557		invalidParams.Add(request.NewErrParamRequired("ArchiveId"))
4558	}
4559	if s.ArchiveId != nil && len(*s.ArchiveId) < 1 {
4560		invalidParams.Add(request.NewErrParamMinLen("ArchiveId", 1))
4561	}
4562	if s.VaultName == nil {
4563		invalidParams.Add(request.NewErrParamRequired("VaultName"))
4564	}
4565	if s.VaultName != nil && len(*s.VaultName) < 1 {
4566		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
4567	}
4568
4569	if invalidParams.Len() > 0 {
4570		return invalidParams
4571	}
4572	return nil
4573}
4574
4575// SetAccountId sets the AccountId field's value.
4576func (s *DeleteArchiveInput) SetAccountId(v string) *DeleteArchiveInput {
4577	s.AccountId = &v
4578	return s
4579}
4580
4581// SetArchiveId sets the ArchiveId field's value.
4582func (s *DeleteArchiveInput) SetArchiveId(v string) *DeleteArchiveInput {
4583	s.ArchiveId = &v
4584	return s
4585}
4586
4587// SetVaultName sets the VaultName field's value.
4588func (s *DeleteArchiveInput) SetVaultName(v string) *DeleteArchiveInput {
4589	s.VaultName = &v
4590	return s
4591}
4592
4593type DeleteArchiveOutput struct {
4594	_ struct{} `type:"structure"`
4595}
4596
4597// String returns the string representation
4598func (s DeleteArchiveOutput) String() string {
4599	return awsutil.Prettify(s)
4600}
4601
4602// GoString returns the string representation
4603func (s DeleteArchiveOutput) GoString() string {
4604	return s.String()
4605}
4606
4607// DeleteVaultAccessPolicy input.
4608type DeleteVaultAccessPolicyInput struct {
4609	_ struct{} `type:"structure"`
4610
4611	// The AccountId value is the AWS account ID of the account that owns the vault.
4612	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
4613	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
4614	// credentials used to sign the request. If you use an account ID, do not include
4615	// any hyphens ('-') in the ID.
4616	//
4617	// AccountId is a required field
4618	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
4619
4620	// The name of the vault.
4621	//
4622	// VaultName is a required field
4623	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
4624}
4625
4626// String returns the string representation
4627func (s DeleteVaultAccessPolicyInput) String() string {
4628	return awsutil.Prettify(s)
4629}
4630
4631// GoString returns the string representation
4632func (s DeleteVaultAccessPolicyInput) GoString() string {
4633	return s.String()
4634}
4635
4636// Validate inspects the fields of the type to determine if they are valid.
4637func (s *DeleteVaultAccessPolicyInput) Validate() error {
4638	invalidParams := request.ErrInvalidParams{Context: "DeleteVaultAccessPolicyInput"}
4639	if s.AccountId == nil {
4640		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4641	}
4642	if s.AccountId != nil && len(*s.AccountId) < 1 {
4643		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4644	}
4645	if s.VaultName == nil {
4646		invalidParams.Add(request.NewErrParamRequired("VaultName"))
4647	}
4648	if s.VaultName != nil && len(*s.VaultName) < 1 {
4649		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
4650	}
4651
4652	if invalidParams.Len() > 0 {
4653		return invalidParams
4654	}
4655	return nil
4656}
4657
4658// SetAccountId sets the AccountId field's value.
4659func (s *DeleteVaultAccessPolicyInput) SetAccountId(v string) *DeleteVaultAccessPolicyInput {
4660	s.AccountId = &v
4661	return s
4662}
4663
4664// SetVaultName sets the VaultName field's value.
4665func (s *DeleteVaultAccessPolicyInput) SetVaultName(v string) *DeleteVaultAccessPolicyInput {
4666	s.VaultName = &v
4667	return s
4668}
4669
4670type DeleteVaultAccessPolicyOutput struct {
4671	_ struct{} `type:"structure"`
4672}
4673
4674// String returns the string representation
4675func (s DeleteVaultAccessPolicyOutput) String() string {
4676	return awsutil.Prettify(s)
4677}
4678
4679// GoString returns the string representation
4680func (s DeleteVaultAccessPolicyOutput) GoString() string {
4681	return s.String()
4682}
4683
4684// Provides options for deleting a vault from Amazon S3 Glacier.
4685type DeleteVaultInput struct {
4686	_ struct{} `type:"structure"`
4687
4688	// The AccountId value is the AWS account ID of the account that owns the vault.
4689	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
4690	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
4691	// credentials used to sign the request. If you use an account ID, do not include
4692	// any hyphens ('-') in the ID.
4693	//
4694	// AccountId is a required field
4695	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
4696
4697	// The name of the vault.
4698	//
4699	// VaultName is a required field
4700	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
4701}
4702
4703// String returns the string representation
4704func (s DeleteVaultInput) String() string {
4705	return awsutil.Prettify(s)
4706}
4707
4708// GoString returns the string representation
4709func (s DeleteVaultInput) GoString() string {
4710	return s.String()
4711}
4712
4713// Validate inspects the fields of the type to determine if they are valid.
4714func (s *DeleteVaultInput) Validate() error {
4715	invalidParams := request.ErrInvalidParams{Context: "DeleteVaultInput"}
4716	if s.AccountId == nil {
4717		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4718	}
4719	if s.AccountId != nil && len(*s.AccountId) < 1 {
4720		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4721	}
4722	if s.VaultName == nil {
4723		invalidParams.Add(request.NewErrParamRequired("VaultName"))
4724	}
4725	if s.VaultName != nil && len(*s.VaultName) < 1 {
4726		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
4727	}
4728
4729	if invalidParams.Len() > 0 {
4730		return invalidParams
4731	}
4732	return nil
4733}
4734
4735// SetAccountId sets the AccountId field's value.
4736func (s *DeleteVaultInput) SetAccountId(v string) *DeleteVaultInput {
4737	s.AccountId = &v
4738	return s
4739}
4740
4741// SetVaultName sets the VaultName field's value.
4742func (s *DeleteVaultInput) SetVaultName(v string) *DeleteVaultInput {
4743	s.VaultName = &v
4744	return s
4745}
4746
4747// Provides options for deleting a vault notification configuration from an
4748// Amazon Glacier vault.
4749type DeleteVaultNotificationsInput struct {
4750	_ struct{} `type:"structure"`
4751
4752	// The AccountId value is the AWS account ID of the account that owns the vault.
4753	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
4754	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
4755	// credentials used to sign the request. If you use an account ID, do not include
4756	// any hyphens ('-') in the ID.
4757	//
4758	// AccountId is a required field
4759	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
4760
4761	// The name of the vault.
4762	//
4763	// VaultName is a required field
4764	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
4765}
4766
4767// String returns the string representation
4768func (s DeleteVaultNotificationsInput) String() string {
4769	return awsutil.Prettify(s)
4770}
4771
4772// GoString returns the string representation
4773func (s DeleteVaultNotificationsInput) GoString() string {
4774	return s.String()
4775}
4776
4777// Validate inspects the fields of the type to determine if they are valid.
4778func (s *DeleteVaultNotificationsInput) Validate() error {
4779	invalidParams := request.ErrInvalidParams{Context: "DeleteVaultNotificationsInput"}
4780	if s.AccountId == nil {
4781		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4782	}
4783	if s.AccountId != nil && len(*s.AccountId) < 1 {
4784		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4785	}
4786	if s.VaultName == nil {
4787		invalidParams.Add(request.NewErrParamRequired("VaultName"))
4788	}
4789	if s.VaultName != nil && len(*s.VaultName) < 1 {
4790		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
4791	}
4792
4793	if invalidParams.Len() > 0 {
4794		return invalidParams
4795	}
4796	return nil
4797}
4798
4799// SetAccountId sets the AccountId field's value.
4800func (s *DeleteVaultNotificationsInput) SetAccountId(v string) *DeleteVaultNotificationsInput {
4801	s.AccountId = &v
4802	return s
4803}
4804
4805// SetVaultName sets the VaultName field's value.
4806func (s *DeleteVaultNotificationsInput) SetVaultName(v string) *DeleteVaultNotificationsInput {
4807	s.VaultName = &v
4808	return s
4809}
4810
4811type DeleteVaultNotificationsOutput struct {
4812	_ struct{} `type:"structure"`
4813}
4814
4815// String returns the string representation
4816func (s DeleteVaultNotificationsOutput) String() string {
4817	return awsutil.Prettify(s)
4818}
4819
4820// GoString returns the string representation
4821func (s DeleteVaultNotificationsOutput) GoString() string {
4822	return s.String()
4823}
4824
4825type DeleteVaultOutput struct {
4826	_ struct{} `type:"structure"`
4827}
4828
4829// String returns the string representation
4830func (s DeleteVaultOutput) String() string {
4831	return awsutil.Prettify(s)
4832}
4833
4834// GoString returns the string representation
4835func (s DeleteVaultOutput) GoString() string {
4836	return s.String()
4837}
4838
4839// Provides options for retrieving a job description.
4840type DescribeJobInput struct {
4841	_ struct{} `type:"structure"`
4842
4843	// The AccountId value is the AWS account ID of the account that owns the vault.
4844	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
4845	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
4846	// credentials used to sign the request. If you use an account ID, do not include
4847	// any hyphens ('-') in the ID.
4848	//
4849	// AccountId is a required field
4850	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
4851
4852	// The ID of the job to describe.
4853	//
4854	// JobId is a required field
4855	JobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`
4856
4857	// The name of the vault.
4858	//
4859	// VaultName is a required field
4860	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
4861}
4862
4863// String returns the string representation
4864func (s DescribeJobInput) String() string {
4865	return awsutil.Prettify(s)
4866}
4867
4868// GoString returns the string representation
4869func (s DescribeJobInput) GoString() string {
4870	return s.String()
4871}
4872
4873// Validate inspects the fields of the type to determine if they are valid.
4874func (s *DescribeJobInput) Validate() error {
4875	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
4876	if s.AccountId == nil {
4877		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4878	}
4879	if s.AccountId != nil && len(*s.AccountId) < 1 {
4880		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4881	}
4882	if s.JobId == nil {
4883		invalidParams.Add(request.NewErrParamRequired("JobId"))
4884	}
4885	if s.JobId != nil && len(*s.JobId) < 1 {
4886		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
4887	}
4888	if s.VaultName == nil {
4889		invalidParams.Add(request.NewErrParamRequired("VaultName"))
4890	}
4891	if s.VaultName != nil && len(*s.VaultName) < 1 {
4892		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
4893	}
4894
4895	if invalidParams.Len() > 0 {
4896		return invalidParams
4897	}
4898	return nil
4899}
4900
4901// SetAccountId sets the AccountId field's value.
4902func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput {
4903	s.AccountId = &v
4904	return s
4905}
4906
4907// SetJobId sets the JobId field's value.
4908func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
4909	s.JobId = &v
4910	return s
4911}
4912
4913// SetVaultName sets the VaultName field's value.
4914func (s *DescribeJobInput) SetVaultName(v string) *DescribeJobInput {
4915	s.VaultName = &v
4916	return s
4917}
4918
4919// Provides options for retrieving metadata for a specific vault in Amazon Glacier.
4920type DescribeVaultInput struct {
4921	_ struct{} `type:"structure"`
4922
4923	// The AccountId value is the AWS account ID of the account that owns the vault.
4924	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
4925	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
4926	// credentials used to sign the request. If you use an account ID, do not include
4927	// any hyphens ('-') in the ID.
4928	//
4929	// AccountId is a required field
4930	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
4931
4932	// The name of the vault.
4933	//
4934	// VaultName is a required field
4935	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
4936}
4937
4938// String returns the string representation
4939func (s DescribeVaultInput) String() string {
4940	return awsutil.Prettify(s)
4941}
4942
4943// GoString returns the string representation
4944func (s DescribeVaultInput) GoString() string {
4945	return s.String()
4946}
4947
4948// Validate inspects the fields of the type to determine if they are valid.
4949func (s *DescribeVaultInput) Validate() error {
4950	invalidParams := request.ErrInvalidParams{Context: "DescribeVaultInput"}
4951	if s.AccountId == nil {
4952		invalidParams.Add(request.NewErrParamRequired("AccountId"))
4953	}
4954	if s.AccountId != nil && len(*s.AccountId) < 1 {
4955		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
4956	}
4957	if s.VaultName == nil {
4958		invalidParams.Add(request.NewErrParamRequired("VaultName"))
4959	}
4960	if s.VaultName != nil && len(*s.VaultName) < 1 {
4961		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
4962	}
4963
4964	if invalidParams.Len() > 0 {
4965		return invalidParams
4966	}
4967	return nil
4968}
4969
4970// SetAccountId sets the AccountId field's value.
4971func (s *DescribeVaultInput) SetAccountId(v string) *DescribeVaultInput {
4972	s.AccountId = &v
4973	return s
4974}
4975
4976// SetVaultName sets the VaultName field's value.
4977func (s *DescribeVaultInput) SetVaultName(v string) *DescribeVaultInput {
4978	s.VaultName = &v
4979	return s
4980}
4981
4982// Contains the Amazon S3 Glacier response to your request.
4983type DescribeVaultOutput struct {
4984	_ struct{} `type:"structure"`
4985
4986	// The Universal Coordinated Time (UTC) date when the vault was created. This
4987	// value should be a string in the ISO 8601 date format, for example 2012-03-20T17:03:43.221Z.
4988	CreationDate *string `type:"string"`
4989
4990	// The Universal Coordinated Time (UTC) date when Amazon S3 Glacier completed
4991	// the last vault inventory. This value should be a string in the ISO 8601 date
4992	// format, for example 2012-03-20T17:03:43.221Z.
4993	LastInventoryDate *string `type:"string"`
4994
4995	// The number of archives in the vault as of the last inventory date. This field
4996	// will return null if an inventory has not yet run on the vault, for example
4997	// if you just created the vault.
4998	NumberOfArchives *int64 `type:"long"`
4999
5000	// Total size, in bytes, of the archives in the vault as of the last inventory
5001	// date. This field will return null if an inventory has not yet run on the
5002	// vault, for example if you just created the vault.
5003	SizeInBytes *int64 `type:"long"`
5004
5005	// The Amazon Resource Name (ARN) of the vault.
5006	VaultARN *string `type:"string"`
5007
5008	// The name of the vault.
5009	VaultName *string `type:"string"`
5010}
5011
5012// String returns the string representation
5013func (s DescribeVaultOutput) String() string {
5014	return awsutil.Prettify(s)
5015}
5016
5017// GoString returns the string representation
5018func (s DescribeVaultOutput) GoString() string {
5019	return s.String()
5020}
5021
5022// SetCreationDate sets the CreationDate field's value.
5023func (s *DescribeVaultOutput) SetCreationDate(v string) *DescribeVaultOutput {
5024	s.CreationDate = &v
5025	return s
5026}
5027
5028// SetLastInventoryDate sets the LastInventoryDate field's value.
5029func (s *DescribeVaultOutput) SetLastInventoryDate(v string) *DescribeVaultOutput {
5030	s.LastInventoryDate = &v
5031	return s
5032}
5033
5034// SetNumberOfArchives sets the NumberOfArchives field's value.
5035func (s *DescribeVaultOutput) SetNumberOfArchives(v int64) *DescribeVaultOutput {
5036	s.NumberOfArchives = &v
5037	return s
5038}
5039
5040// SetSizeInBytes sets the SizeInBytes field's value.
5041func (s *DescribeVaultOutput) SetSizeInBytes(v int64) *DescribeVaultOutput {
5042	s.SizeInBytes = &v
5043	return s
5044}
5045
5046// SetVaultARN sets the VaultARN field's value.
5047func (s *DescribeVaultOutput) SetVaultARN(v string) *DescribeVaultOutput {
5048	s.VaultARN = &v
5049	return s
5050}
5051
5052// SetVaultName sets the VaultName field's value.
5053func (s *DescribeVaultOutput) SetVaultName(v string) *DescribeVaultOutput {
5054	s.VaultName = &v
5055	return s
5056}
5057
5058// Contains information about the encryption used to store the job results in
5059// Amazon S3.
5060type Encryption struct {
5061	_ struct{} `type:"structure"`
5062
5063	// The server-side encryption algorithm used when storing job results in Amazon
5064	// S3, for example AES256 or aws:kms.
5065	EncryptionType *string `type:"string" enum:"EncryptionType"`
5066
5067	// Optional. If the encryption type is aws:kms, you can use this value to specify
5068	// the encryption context for the job results.
5069	KMSContext *string `type:"string"`
5070
5071	// The AWS KMS key ID to use for object encryption. All GET and PUT requests
5072	// for an object protected by AWS KMS fail if not made by using Secure Sockets
5073	// Layer (SSL) or Signature Version 4.
5074	KMSKeyId *string `type:"string"`
5075}
5076
5077// String returns the string representation
5078func (s Encryption) String() string {
5079	return awsutil.Prettify(s)
5080}
5081
5082// GoString returns the string representation
5083func (s Encryption) GoString() string {
5084	return s.String()
5085}
5086
5087// SetEncryptionType sets the EncryptionType field's value.
5088func (s *Encryption) SetEncryptionType(v string) *Encryption {
5089	s.EncryptionType = &v
5090	return s
5091}
5092
5093// SetKMSContext sets the KMSContext field's value.
5094func (s *Encryption) SetKMSContext(v string) *Encryption {
5095	s.KMSContext = &v
5096	return s
5097}
5098
5099// SetKMSKeyId sets the KMSKeyId field's value.
5100func (s *Encryption) SetKMSKeyId(v string) *Encryption {
5101	s.KMSKeyId = &v
5102	return s
5103}
5104
5105// Input for GetDataRetrievalPolicy.
5106type GetDataRetrievalPolicyInput struct {
5107	_ struct{} `type:"structure"`
5108
5109	// The AccountId value is the AWS account ID. This value must match the AWS
5110	// account ID associated with the credentials used to sign the request. You
5111	// can either specify an AWS account ID or optionally a single '-' (hyphen),
5112	// in which case Amazon Glacier uses the AWS account ID associated with the
5113	// credentials used to sign the request. If you specify your account ID, do
5114	// not include any hyphens ('-') in the ID.
5115	//
5116	// AccountId is a required field
5117	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
5118}
5119
5120// String returns the string representation
5121func (s GetDataRetrievalPolicyInput) String() string {
5122	return awsutil.Prettify(s)
5123}
5124
5125// GoString returns the string representation
5126func (s GetDataRetrievalPolicyInput) GoString() string {
5127	return s.String()
5128}
5129
5130// Validate inspects the fields of the type to determine if they are valid.
5131func (s *GetDataRetrievalPolicyInput) Validate() error {
5132	invalidParams := request.ErrInvalidParams{Context: "GetDataRetrievalPolicyInput"}
5133	if s.AccountId == nil {
5134		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5135	}
5136	if s.AccountId != nil && len(*s.AccountId) < 1 {
5137		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5138	}
5139
5140	if invalidParams.Len() > 0 {
5141		return invalidParams
5142	}
5143	return nil
5144}
5145
5146// SetAccountId sets the AccountId field's value.
5147func (s *GetDataRetrievalPolicyInput) SetAccountId(v string) *GetDataRetrievalPolicyInput {
5148	s.AccountId = &v
5149	return s
5150}
5151
5152// Contains the Amazon S3 Glacier response to the GetDataRetrievalPolicy request.
5153type GetDataRetrievalPolicyOutput struct {
5154	_ struct{} `type:"structure"`
5155
5156	// Contains the returned data retrieval policy in JSON format.
5157	Policy *DataRetrievalPolicy `type:"structure"`
5158}
5159
5160// String returns the string representation
5161func (s GetDataRetrievalPolicyOutput) String() string {
5162	return awsutil.Prettify(s)
5163}
5164
5165// GoString returns the string representation
5166func (s GetDataRetrievalPolicyOutput) GoString() string {
5167	return s.String()
5168}
5169
5170// SetPolicy sets the Policy field's value.
5171func (s *GetDataRetrievalPolicyOutput) SetPolicy(v *DataRetrievalPolicy) *GetDataRetrievalPolicyOutput {
5172	s.Policy = v
5173	return s
5174}
5175
5176// Provides options for downloading output of an Amazon S3 Glacier job.
5177type GetJobOutputInput struct {
5178	_ struct{} `type:"structure"`
5179
5180	// The AccountId value is the AWS account ID of the account that owns the vault.
5181	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
5182	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
5183	// credentials used to sign the request. If you use an account ID, do not include
5184	// any hyphens ('-') in the ID.
5185	//
5186	// AccountId is a required field
5187	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
5188
5189	// The job ID whose data is downloaded.
5190	//
5191	// JobId is a required field
5192	JobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`
5193
5194	// The range of bytes to retrieve from the output. For example, if you want
5195	// to download the first 1,048,576 bytes, specify the range as bytes=0-1048575.
5196	// By default, this operation downloads the entire output.
5197	//
5198	// If the job output is large, then you can use a range to retrieve a portion
5199	// of the output. This allows you to download the entire output in smaller chunks
5200	// of bytes. For example, suppose you have 1 GB of job output you want to download
5201	// and you decide to download 128 MB chunks of data at a time, which is a total
5202	// of eight Get Job Output requests. You use the following process to download
5203	// the job output:
5204	//
5205	// Download a 128 MB chunk of output by specifying the appropriate byte range.
5206	// Verify that all 128 MB of data was received.
5207	//
5208	// Along with the data, the response includes a SHA256 tree hash of the payload.
5209	// You compute the checksum of the payload on the client and compare it with
5210	// the checksum you received in the response to ensure you received all the
5211	// expected data.
5212	//
5213	// Repeat steps 1 and 2 for all the eight 128 MB chunks of output data, each
5214	// time specifying the appropriate byte range.
5215	//
5216	// After downloading all the parts of the job output, you have a list of eight
5217	// checksum values. Compute the tree hash of these values to find the checksum
5218	// of the entire output. Using the DescribeJob API, obtain job information of
5219	// the job that provided you the output. The response includes the checksum
5220	// of the entire archive stored in Amazon S3 Glacier. You compare this value
5221	// with the checksum you computed to ensure you have downloaded the entire archive
5222	// content with no errors.
5223	Range *string `location:"header" locationName:"Range" type:"string"`
5224
5225	// The name of the vault.
5226	//
5227	// VaultName is a required field
5228	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
5229}
5230
5231// String returns the string representation
5232func (s GetJobOutputInput) String() string {
5233	return awsutil.Prettify(s)
5234}
5235
5236// GoString returns the string representation
5237func (s GetJobOutputInput) GoString() string {
5238	return s.String()
5239}
5240
5241// Validate inspects the fields of the type to determine if they are valid.
5242func (s *GetJobOutputInput) Validate() error {
5243	invalidParams := request.ErrInvalidParams{Context: "GetJobOutputInput"}
5244	if s.AccountId == nil {
5245		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5246	}
5247	if s.AccountId != nil && len(*s.AccountId) < 1 {
5248		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5249	}
5250	if s.JobId == nil {
5251		invalidParams.Add(request.NewErrParamRequired("JobId"))
5252	}
5253	if s.JobId != nil && len(*s.JobId) < 1 {
5254		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
5255	}
5256	if s.VaultName == nil {
5257		invalidParams.Add(request.NewErrParamRequired("VaultName"))
5258	}
5259	if s.VaultName != nil && len(*s.VaultName) < 1 {
5260		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
5261	}
5262
5263	if invalidParams.Len() > 0 {
5264		return invalidParams
5265	}
5266	return nil
5267}
5268
5269// SetAccountId sets the AccountId field's value.
5270func (s *GetJobOutputInput) SetAccountId(v string) *GetJobOutputInput {
5271	s.AccountId = &v
5272	return s
5273}
5274
5275// SetJobId sets the JobId field's value.
5276func (s *GetJobOutputInput) SetJobId(v string) *GetJobOutputInput {
5277	s.JobId = &v
5278	return s
5279}
5280
5281// SetRange sets the Range field's value.
5282func (s *GetJobOutputInput) SetRange(v string) *GetJobOutputInput {
5283	s.Range = &v
5284	return s
5285}
5286
5287// SetVaultName sets the VaultName field's value.
5288func (s *GetJobOutputInput) SetVaultName(v string) *GetJobOutputInput {
5289	s.VaultName = &v
5290	return s
5291}
5292
5293// Contains the Amazon S3 Glacier response to your request.
5294type GetJobOutputOutput struct {
5295	_ struct{} `type:"structure" payload:"Body"`
5296
5297	// Indicates the range units accepted. For more information, see RFC2616 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
5298	AcceptRanges *string `location:"header" locationName:"Accept-Ranges" type:"string"`
5299
5300	// The description of an archive.
5301	ArchiveDescription *string `location:"header" locationName:"x-amz-archive-description" type:"string"`
5302
5303	// The job data, either archive data or inventory data.
5304	Body io.ReadCloser `locationName:"body" type:"blob"`
5305
5306	// The checksum of the data in the response. This header is returned only when
5307	// retrieving the output for an archive retrieval job. Furthermore, this header
5308	// appears only under the following conditions:
5309	//
5310	//    * You get the entire range of the archive.
5311	//
5312	//    * You request a range to return of the archive that starts and ends on
5313	//    a multiple of 1 MB. For example, if you have an 3.1 MB archive and you
5314	//    specify a range to return that starts at 1 MB and ends at 2 MB, then the
5315	//    x-amz-sha256-tree-hash is returned as a response header.
5316	//
5317	//    * You request a range of the archive to return that starts on a multiple
5318	//    of 1 MB and goes to the end of the archive. For example, if you have a
5319	//    3.1 MB archive and you specify a range that starts at 2 MB and ends at
5320	//    3.1 MB (the end of the archive), then the x-amz-sha256-tree-hash is returned
5321	//    as a response header.
5322	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
5323
5324	// The range of bytes returned by Amazon S3 Glacier. If only partial output
5325	// is downloaded, the response provides the range of bytes Amazon S3 Glacier
5326	// returned. For example, bytes 0-1048575/8388608 returns the first 1 MB from
5327	// 8 MB.
5328	ContentRange *string `location:"header" locationName:"Content-Range" type:"string"`
5329
5330	// The Content-Type depends on whether the job output is an archive or a vault
5331	// inventory. For archive data, the Content-Type is application/octet-stream.
5332	// For vault inventory, if you requested CSV format when you initiated the job,
5333	// the Content-Type is text/csv. Otherwise, by default, vault inventory is returned
5334	// as JSON, and the Content-Type is application/json.
5335	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
5336
5337	// The HTTP response code for a job output request. The value depends on whether
5338	// a range was specified in the request.
5339	Status *int64 `location:"statusCode" locationName:"status" type:"integer"`
5340}
5341
5342// String returns the string representation
5343func (s GetJobOutputOutput) String() string {
5344	return awsutil.Prettify(s)
5345}
5346
5347// GoString returns the string representation
5348func (s GetJobOutputOutput) GoString() string {
5349	return s.String()
5350}
5351
5352// SetAcceptRanges sets the AcceptRanges field's value.
5353func (s *GetJobOutputOutput) SetAcceptRanges(v string) *GetJobOutputOutput {
5354	s.AcceptRanges = &v
5355	return s
5356}
5357
5358// SetArchiveDescription sets the ArchiveDescription field's value.
5359func (s *GetJobOutputOutput) SetArchiveDescription(v string) *GetJobOutputOutput {
5360	s.ArchiveDescription = &v
5361	return s
5362}
5363
5364// SetBody sets the Body field's value.
5365func (s *GetJobOutputOutput) SetBody(v io.ReadCloser) *GetJobOutputOutput {
5366	s.Body = v
5367	return s
5368}
5369
5370// SetChecksum sets the Checksum field's value.
5371func (s *GetJobOutputOutput) SetChecksum(v string) *GetJobOutputOutput {
5372	s.Checksum = &v
5373	return s
5374}
5375
5376// SetContentRange sets the ContentRange field's value.
5377func (s *GetJobOutputOutput) SetContentRange(v string) *GetJobOutputOutput {
5378	s.ContentRange = &v
5379	return s
5380}
5381
5382// SetContentType sets the ContentType field's value.
5383func (s *GetJobOutputOutput) SetContentType(v string) *GetJobOutputOutput {
5384	s.ContentType = &v
5385	return s
5386}
5387
5388// SetStatus sets the Status field's value.
5389func (s *GetJobOutputOutput) SetStatus(v int64) *GetJobOutputOutput {
5390	s.Status = &v
5391	return s
5392}
5393
5394// Input for GetVaultAccessPolicy.
5395type GetVaultAccessPolicyInput struct {
5396	_ struct{} `type:"structure"`
5397
5398	// The AccountId value is the AWS account ID of the account that owns the vault.
5399	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
5400	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
5401	// credentials used to sign the request. If you use an account ID, do not include
5402	// any hyphens ('-') in the ID.
5403	//
5404	// AccountId is a required field
5405	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
5406
5407	// The name of the vault.
5408	//
5409	// VaultName is a required field
5410	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
5411}
5412
5413// String returns the string representation
5414func (s GetVaultAccessPolicyInput) String() string {
5415	return awsutil.Prettify(s)
5416}
5417
5418// GoString returns the string representation
5419func (s GetVaultAccessPolicyInput) GoString() string {
5420	return s.String()
5421}
5422
5423// Validate inspects the fields of the type to determine if they are valid.
5424func (s *GetVaultAccessPolicyInput) Validate() error {
5425	invalidParams := request.ErrInvalidParams{Context: "GetVaultAccessPolicyInput"}
5426	if s.AccountId == nil {
5427		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5428	}
5429	if s.AccountId != nil && len(*s.AccountId) < 1 {
5430		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5431	}
5432	if s.VaultName == nil {
5433		invalidParams.Add(request.NewErrParamRequired("VaultName"))
5434	}
5435	if s.VaultName != nil && len(*s.VaultName) < 1 {
5436		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
5437	}
5438
5439	if invalidParams.Len() > 0 {
5440		return invalidParams
5441	}
5442	return nil
5443}
5444
5445// SetAccountId sets the AccountId field's value.
5446func (s *GetVaultAccessPolicyInput) SetAccountId(v string) *GetVaultAccessPolicyInput {
5447	s.AccountId = &v
5448	return s
5449}
5450
5451// SetVaultName sets the VaultName field's value.
5452func (s *GetVaultAccessPolicyInput) SetVaultName(v string) *GetVaultAccessPolicyInput {
5453	s.VaultName = &v
5454	return s
5455}
5456
5457// Output for GetVaultAccessPolicy.
5458type GetVaultAccessPolicyOutput struct {
5459	_ struct{} `type:"structure" payload:"Policy"`
5460
5461	// Contains the returned vault access policy as a JSON string.
5462	Policy *VaultAccessPolicy `locationName:"policy" type:"structure"`
5463}
5464
5465// String returns the string representation
5466func (s GetVaultAccessPolicyOutput) String() string {
5467	return awsutil.Prettify(s)
5468}
5469
5470// GoString returns the string representation
5471func (s GetVaultAccessPolicyOutput) GoString() string {
5472	return s.String()
5473}
5474
5475// SetPolicy sets the Policy field's value.
5476func (s *GetVaultAccessPolicyOutput) SetPolicy(v *VaultAccessPolicy) *GetVaultAccessPolicyOutput {
5477	s.Policy = v
5478	return s
5479}
5480
5481// The input values for GetVaultLock.
5482type GetVaultLockInput struct {
5483	_ struct{} `type:"structure"`
5484
5485	// The AccountId value is the AWS account ID of the account that owns the vault.
5486	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
5487	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
5488	// credentials used to sign the request. If you use an account ID, do not include
5489	// any hyphens ('-') in the ID.
5490	//
5491	// AccountId is a required field
5492	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
5493
5494	// The name of the vault.
5495	//
5496	// VaultName is a required field
5497	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
5498}
5499
5500// String returns the string representation
5501func (s GetVaultLockInput) String() string {
5502	return awsutil.Prettify(s)
5503}
5504
5505// GoString returns the string representation
5506func (s GetVaultLockInput) GoString() string {
5507	return s.String()
5508}
5509
5510// Validate inspects the fields of the type to determine if they are valid.
5511func (s *GetVaultLockInput) Validate() error {
5512	invalidParams := request.ErrInvalidParams{Context: "GetVaultLockInput"}
5513	if s.AccountId == nil {
5514		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5515	}
5516	if s.AccountId != nil && len(*s.AccountId) < 1 {
5517		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5518	}
5519	if s.VaultName == nil {
5520		invalidParams.Add(request.NewErrParamRequired("VaultName"))
5521	}
5522	if s.VaultName != nil && len(*s.VaultName) < 1 {
5523		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
5524	}
5525
5526	if invalidParams.Len() > 0 {
5527		return invalidParams
5528	}
5529	return nil
5530}
5531
5532// SetAccountId sets the AccountId field's value.
5533func (s *GetVaultLockInput) SetAccountId(v string) *GetVaultLockInput {
5534	s.AccountId = &v
5535	return s
5536}
5537
5538// SetVaultName sets the VaultName field's value.
5539func (s *GetVaultLockInput) SetVaultName(v string) *GetVaultLockInput {
5540	s.VaultName = &v
5541	return s
5542}
5543
5544// Contains the Amazon S3 Glacier response to your request.
5545type GetVaultLockOutput struct {
5546	_ struct{} `type:"structure"`
5547
5548	// The UTC date and time at which the vault lock was put into the InProgress
5549	// state.
5550	CreationDate *string `type:"string"`
5551
5552	// The UTC date and time at which the lock ID expires. This value can be null
5553	// if the vault lock is in a Locked state.
5554	ExpirationDate *string `type:"string"`
5555
5556	// The vault lock policy as a JSON string, which uses "\" as an escape character.
5557	Policy *string `type:"string"`
5558
5559	// The state of the vault lock. InProgress or Locked.
5560	State *string `type:"string"`
5561}
5562
5563// String returns the string representation
5564func (s GetVaultLockOutput) String() string {
5565	return awsutil.Prettify(s)
5566}
5567
5568// GoString returns the string representation
5569func (s GetVaultLockOutput) GoString() string {
5570	return s.String()
5571}
5572
5573// SetCreationDate sets the CreationDate field's value.
5574func (s *GetVaultLockOutput) SetCreationDate(v string) *GetVaultLockOutput {
5575	s.CreationDate = &v
5576	return s
5577}
5578
5579// SetExpirationDate sets the ExpirationDate field's value.
5580func (s *GetVaultLockOutput) SetExpirationDate(v string) *GetVaultLockOutput {
5581	s.ExpirationDate = &v
5582	return s
5583}
5584
5585// SetPolicy sets the Policy field's value.
5586func (s *GetVaultLockOutput) SetPolicy(v string) *GetVaultLockOutput {
5587	s.Policy = &v
5588	return s
5589}
5590
5591// SetState sets the State field's value.
5592func (s *GetVaultLockOutput) SetState(v string) *GetVaultLockOutput {
5593	s.State = &v
5594	return s
5595}
5596
5597// Provides options for retrieving the notification configuration set on an
5598// Amazon Glacier vault.
5599type GetVaultNotificationsInput struct {
5600	_ struct{} `type:"structure"`
5601
5602	// The AccountId value is the AWS account ID of the account that owns the vault.
5603	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
5604	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
5605	// credentials used to sign the request. If you use an account ID, do not include
5606	// any hyphens ('-') in the ID.
5607	//
5608	// AccountId is a required field
5609	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
5610
5611	// The name of the vault.
5612	//
5613	// VaultName is a required field
5614	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
5615}
5616
5617// String returns the string representation
5618func (s GetVaultNotificationsInput) String() string {
5619	return awsutil.Prettify(s)
5620}
5621
5622// GoString returns the string representation
5623func (s GetVaultNotificationsInput) GoString() string {
5624	return s.String()
5625}
5626
5627// Validate inspects the fields of the type to determine if they are valid.
5628func (s *GetVaultNotificationsInput) Validate() error {
5629	invalidParams := request.ErrInvalidParams{Context: "GetVaultNotificationsInput"}
5630	if s.AccountId == nil {
5631		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5632	}
5633	if s.AccountId != nil && len(*s.AccountId) < 1 {
5634		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5635	}
5636	if s.VaultName == nil {
5637		invalidParams.Add(request.NewErrParamRequired("VaultName"))
5638	}
5639	if s.VaultName != nil && len(*s.VaultName) < 1 {
5640		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
5641	}
5642
5643	if invalidParams.Len() > 0 {
5644		return invalidParams
5645	}
5646	return nil
5647}
5648
5649// SetAccountId sets the AccountId field's value.
5650func (s *GetVaultNotificationsInput) SetAccountId(v string) *GetVaultNotificationsInput {
5651	s.AccountId = &v
5652	return s
5653}
5654
5655// SetVaultName sets the VaultName field's value.
5656func (s *GetVaultNotificationsInput) SetVaultName(v string) *GetVaultNotificationsInput {
5657	s.VaultName = &v
5658	return s
5659}
5660
5661// Contains the Amazon S3 Glacier response to your request.
5662type GetVaultNotificationsOutput struct {
5663	_ struct{} `type:"structure" payload:"VaultNotificationConfig"`
5664
5665	// Returns the notification configuration set on the vault.
5666	VaultNotificationConfig *VaultNotificationConfig `locationName:"vaultNotificationConfig" type:"structure"`
5667}
5668
5669// String returns the string representation
5670func (s GetVaultNotificationsOutput) String() string {
5671	return awsutil.Prettify(s)
5672}
5673
5674// GoString returns the string representation
5675func (s GetVaultNotificationsOutput) GoString() string {
5676	return s.String()
5677}
5678
5679// SetVaultNotificationConfig sets the VaultNotificationConfig field's value.
5680func (s *GetVaultNotificationsOutput) SetVaultNotificationConfig(v *VaultNotificationConfig) *GetVaultNotificationsOutput {
5681	s.VaultNotificationConfig = v
5682	return s
5683}
5684
5685// Contains information about a grant.
5686type Grant struct {
5687	_ struct{} `type:"structure"`
5688
5689	// The grantee.
5690	Grantee *Grantee `type:"structure"`
5691
5692	// Specifies the permission given to the grantee.
5693	Permission *string `type:"string" enum:"Permission"`
5694}
5695
5696// String returns the string representation
5697func (s Grant) String() string {
5698	return awsutil.Prettify(s)
5699}
5700
5701// GoString returns the string representation
5702func (s Grant) GoString() string {
5703	return s.String()
5704}
5705
5706// Validate inspects the fields of the type to determine if they are valid.
5707func (s *Grant) Validate() error {
5708	invalidParams := request.ErrInvalidParams{Context: "Grant"}
5709	if s.Grantee != nil {
5710		if err := s.Grantee.Validate(); err != nil {
5711			invalidParams.AddNested("Grantee", err.(request.ErrInvalidParams))
5712		}
5713	}
5714
5715	if invalidParams.Len() > 0 {
5716		return invalidParams
5717	}
5718	return nil
5719}
5720
5721// SetGrantee sets the Grantee field's value.
5722func (s *Grant) SetGrantee(v *Grantee) *Grant {
5723	s.Grantee = v
5724	return s
5725}
5726
5727// SetPermission sets the Permission field's value.
5728func (s *Grant) SetPermission(v string) *Grant {
5729	s.Permission = &v
5730	return s
5731}
5732
5733// Contains information about the grantee.
5734type Grantee struct {
5735	_ struct{} `type:"structure"`
5736
5737	// Screen name of the grantee.
5738	DisplayName *string `type:"string"`
5739
5740	// Email address of the grantee.
5741	EmailAddress *string `type:"string"`
5742
5743	// The canonical user ID of the grantee.
5744	ID *string `type:"string"`
5745
5746	// Type of grantee
5747	//
5748	// Type is a required field
5749	Type *string `type:"string" required:"true" enum:"Type"`
5750
5751	// URI of the grantee group.
5752	URI *string `type:"string"`
5753}
5754
5755// String returns the string representation
5756func (s Grantee) String() string {
5757	return awsutil.Prettify(s)
5758}
5759
5760// GoString returns the string representation
5761func (s Grantee) GoString() string {
5762	return s.String()
5763}
5764
5765// Validate inspects the fields of the type to determine if they are valid.
5766func (s *Grantee) Validate() error {
5767	invalidParams := request.ErrInvalidParams{Context: "Grantee"}
5768	if s.Type == nil {
5769		invalidParams.Add(request.NewErrParamRequired("Type"))
5770	}
5771
5772	if invalidParams.Len() > 0 {
5773		return invalidParams
5774	}
5775	return nil
5776}
5777
5778// SetDisplayName sets the DisplayName field's value.
5779func (s *Grantee) SetDisplayName(v string) *Grantee {
5780	s.DisplayName = &v
5781	return s
5782}
5783
5784// SetEmailAddress sets the EmailAddress field's value.
5785func (s *Grantee) SetEmailAddress(v string) *Grantee {
5786	s.EmailAddress = &v
5787	return s
5788}
5789
5790// SetID sets the ID field's value.
5791func (s *Grantee) SetID(v string) *Grantee {
5792	s.ID = &v
5793	return s
5794}
5795
5796// SetType sets the Type field's value.
5797func (s *Grantee) SetType(v string) *Grantee {
5798	s.Type = &v
5799	return s
5800}
5801
5802// SetURI sets the URI field's value.
5803func (s *Grantee) SetURI(v string) *Grantee {
5804	s.URI = &v
5805	return s
5806}
5807
5808// Provides options for initiating an Amazon S3 Glacier job.
5809type InitiateJobInput struct {
5810	_ struct{} `type:"structure" payload:"JobParameters"`
5811
5812	// The AccountId value is the AWS account ID of the account that owns the vault.
5813	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
5814	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
5815	// credentials used to sign the request. If you use an account ID, do not include
5816	// any hyphens ('-') in the ID.
5817	//
5818	// AccountId is a required field
5819	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
5820
5821	// Provides options for specifying job information.
5822	JobParameters *JobParameters `locationName:"jobParameters" type:"structure"`
5823
5824	// The name of the vault.
5825	//
5826	// VaultName is a required field
5827	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
5828}
5829
5830// String returns the string representation
5831func (s InitiateJobInput) String() string {
5832	return awsutil.Prettify(s)
5833}
5834
5835// GoString returns the string representation
5836func (s InitiateJobInput) GoString() string {
5837	return s.String()
5838}
5839
5840// Validate inspects the fields of the type to determine if they are valid.
5841func (s *InitiateJobInput) Validate() error {
5842	invalidParams := request.ErrInvalidParams{Context: "InitiateJobInput"}
5843	if s.AccountId == nil {
5844		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5845	}
5846	if s.AccountId != nil && len(*s.AccountId) < 1 {
5847		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5848	}
5849	if s.VaultName == nil {
5850		invalidParams.Add(request.NewErrParamRequired("VaultName"))
5851	}
5852	if s.VaultName != nil && len(*s.VaultName) < 1 {
5853		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
5854	}
5855	if s.JobParameters != nil {
5856		if err := s.JobParameters.Validate(); err != nil {
5857			invalidParams.AddNested("JobParameters", err.(request.ErrInvalidParams))
5858		}
5859	}
5860
5861	if invalidParams.Len() > 0 {
5862		return invalidParams
5863	}
5864	return nil
5865}
5866
5867// SetAccountId sets the AccountId field's value.
5868func (s *InitiateJobInput) SetAccountId(v string) *InitiateJobInput {
5869	s.AccountId = &v
5870	return s
5871}
5872
5873// SetJobParameters sets the JobParameters field's value.
5874func (s *InitiateJobInput) SetJobParameters(v *JobParameters) *InitiateJobInput {
5875	s.JobParameters = v
5876	return s
5877}
5878
5879// SetVaultName sets the VaultName field's value.
5880func (s *InitiateJobInput) SetVaultName(v string) *InitiateJobInput {
5881	s.VaultName = &v
5882	return s
5883}
5884
5885// Contains the Amazon S3 Glacier response to your request.
5886type InitiateJobOutput struct {
5887	_ struct{} `type:"structure"`
5888
5889	// The ID of the job.
5890	JobId *string `location:"header" locationName:"x-amz-job-id" type:"string"`
5891
5892	// The path to the location of where the select results are stored.
5893	JobOutputPath *string `location:"header" locationName:"x-amz-job-output-path" type:"string"`
5894
5895	// The relative URI path of the job.
5896	Location *string `location:"header" locationName:"Location" type:"string"`
5897}
5898
5899// String returns the string representation
5900func (s InitiateJobOutput) String() string {
5901	return awsutil.Prettify(s)
5902}
5903
5904// GoString returns the string representation
5905func (s InitiateJobOutput) GoString() string {
5906	return s.String()
5907}
5908
5909// SetJobId sets the JobId field's value.
5910func (s *InitiateJobOutput) SetJobId(v string) *InitiateJobOutput {
5911	s.JobId = &v
5912	return s
5913}
5914
5915// SetJobOutputPath sets the JobOutputPath field's value.
5916func (s *InitiateJobOutput) SetJobOutputPath(v string) *InitiateJobOutput {
5917	s.JobOutputPath = &v
5918	return s
5919}
5920
5921// SetLocation sets the Location field's value.
5922func (s *InitiateJobOutput) SetLocation(v string) *InitiateJobOutput {
5923	s.Location = &v
5924	return s
5925}
5926
5927// Provides options for initiating a multipart upload to an Amazon S3 Glacier
5928// vault.
5929type InitiateMultipartUploadInput struct {
5930	_ struct{} `type:"structure"`
5931
5932	// The AccountId value is the AWS account ID of the account that owns the vault.
5933	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
5934	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
5935	// credentials used to sign the request. If you use an account ID, do not include
5936	// any hyphens ('-') in the ID.
5937	//
5938	// AccountId is a required field
5939	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
5940
5941	// The archive description that you are uploading in parts.
5942	//
5943	// The part size must be a megabyte (1024 KB) multiplied by a power of 2, for
5944	// example 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and
5945	// so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB (4096
5946	// MB).
5947	ArchiveDescription *string `location:"header" locationName:"x-amz-archive-description" type:"string"`
5948
5949	// The size of each part except the last, in bytes. The last part can be smaller
5950	// than this part size.
5951	PartSize *string `location:"header" locationName:"x-amz-part-size" type:"string"`
5952
5953	// The name of the vault.
5954	//
5955	// VaultName is a required field
5956	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
5957}
5958
5959// String returns the string representation
5960func (s InitiateMultipartUploadInput) String() string {
5961	return awsutil.Prettify(s)
5962}
5963
5964// GoString returns the string representation
5965func (s InitiateMultipartUploadInput) GoString() string {
5966	return s.String()
5967}
5968
5969// Validate inspects the fields of the type to determine if they are valid.
5970func (s *InitiateMultipartUploadInput) Validate() error {
5971	invalidParams := request.ErrInvalidParams{Context: "InitiateMultipartUploadInput"}
5972	if s.AccountId == nil {
5973		invalidParams.Add(request.NewErrParamRequired("AccountId"))
5974	}
5975	if s.AccountId != nil && len(*s.AccountId) < 1 {
5976		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
5977	}
5978	if s.VaultName == nil {
5979		invalidParams.Add(request.NewErrParamRequired("VaultName"))
5980	}
5981	if s.VaultName != nil && len(*s.VaultName) < 1 {
5982		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
5983	}
5984
5985	if invalidParams.Len() > 0 {
5986		return invalidParams
5987	}
5988	return nil
5989}
5990
5991// SetAccountId sets the AccountId field's value.
5992func (s *InitiateMultipartUploadInput) SetAccountId(v string) *InitiateMultipartUploadInput {
5993	s.AccountId = &v
5994	return s
5995}
5996
5997// SetArchiveDescription sets the ArchiveDescription field's value.
5998func (s *InitiateMultipartUploadInput) SetArchiveDescription(v string) *InitiateMultipartUploadInput {
5999	s.ArchiveDescription = &v
6000	return s
6001}
6002
6003// SetPartSize sets the PartSize field's value.
6004func (s *InitiateMultipartUploadInput) SetPartSize(v string) *InitiateMultipartUploadInput {
6005	s.PartSize = &v
6006	return s
6007}
6008
6009// SetVaultName sets the VaultName field's value.
6010func (s *InitiateMultipartUploadInput) SetVaultName(v string) *InitiateMultipartUploadInput {
6011	s.VaultName = &v
6012	return s
6013}
6014
6015// The Amazon S3 Glacier response to your request.
6016type InitiateMultipartUploadOutput struct {
6017	_ struct{} `type:"structure"`
6018
6019	// The relative URI path of the multipart upload ID Amazon S3 Glacier created.
6020	Location *string `location:"header" locationName:"Location" type:"string"`
6021
6022	// The ID of the multipart upload. This value is also included as part of the
6023	// location.
6024	UploadId *string `location:"header" locationName:"x-amz-multipart-upload-id" type:"string"`
6025}
6026
6027// String returns the string representation
6028func (s InitiateMultipartUploadOutput) String() string {
6029	return awsutil.Prettify(s)
6030}
6031
6032// GoString returns the string representation
6033func (s InitiateMultipartUploadOutput) GoString() string {
6034	return s.String()
6035}
6036
6037// SetLocation sets the Location field's value.
6038func (s *InitiateMultipartUploadOutput) SetLocation(v string) *InitiateMultipartUploadOutput {
6039	s.Location = &v
6040	return s
6041}
6042
6043// SetUploadId sets the UploadId field's value.
6044func (s *InitiateMultipartUploadOutput) SetUploadId(v string) *InitiateMultipartUploadOutput {
6045	s.UploadId = &v
6046	return s
6047}
6048
6049// The input values for InitiateVaultLock.
6050type InitiateVaultLockInput struct {
6051	_ struct{} `type:"structure" payload:"Policy"`
6052
6053	// The AccountId value is the AWS account ID. This value must match the AWS
6054	// account ID associated with the credentials used to sign the request. You
6055	// can either specify an AWS account ID or optionally a single '-' (hyphen),
6056	// in which case Amazon Glacier uses the AWS account ID associated with the
6057	// credentials used to sign the request. If you specify your account ID, do
6058	// not include any hyphens ('-') in the ID.
6059	//
6060	// AccountId is a required field
6061	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
6062
6063	// The vault lock policy as a JSON string, which uses "\" as an escape character.
6064	Policy *VaultLockPolicy `locationName:"policy" type:"structure"`
6065
6066	// The name of the vault.
6067	//
6068	// VaultName is a required field
6069	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
6070}
6071
6072// String returns the string representation
6073func (s InitiateVaultLockInput) String() string {
6074	return awsutil.Prettify(s)
6075}
6076
6077// GoString returns the string representation
6078func (s InitiateVaultLockInput) GoString() string {
6079	return s.String()
6080}
6081
6082// Validate inspects the fields of the type to determine if they are valid.
6083func (s *InitiateVaultLockInput) Validate() error {
6084	invalidParams := request.ErrInvalidParams{Context: "InitiateVaultLockInput"}
6085	if s.AccountId == nil {
6086		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6087	}
6088	if s.AccountId != nil && len(*s.AccountId) < 1 {
6089		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6090	}
6091	if s.VaultName == nil {
6092		invalidParams.Add(request.NewErrParamRequired("VaultName"))
6093	}
6094	if s.VaultName != nil && len(*s.VaultName) < 1 {
6095		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
6096	}
6097
6098	if invalidParams.Len() > 0 {
6099		return invalidParams
6100	}
6101	return nil
6102}
6103
6104// SetAccountId sets the AccountId field's value.
6105func (s *InitiateVaultLockInput) SetAccountId(v string) *InitiateVaultLockInput {
6106	s.AccountId = &v
6107	return s
6108}
6109
6110// SetPolicy sets the Policy field's value.
6111func (s *InitiateVaultLockInput) SetPolicy(v *VaultLockPolicy) *InitiateVaultLockInput {
6112	s.Policy = v
6113	return s
6114}
6115
6116// SetVaultName sets the VaultName field's value.
6117func (s *InitiateVaultLockInput) SetVaultName(v string) *InitiateVaultLockInput {
6118	s.VaultName = &v
6119	return s
6120}
6121
6122// Contains the Amazon S3 Glacier response to your request.
6123type InitiateVaultLockOutput struct {
6124	_ struct{} `type:"structure"`
6125
6126	// The lock ID, which is used to complete the vault locking process.
6127	LockId *string `location:"header" locationName:"x-amz-lock-id" type:"string"`
6128}
6129
6130// String returns the string representation
6131func (s InitiateVaultLockOutput) String() string {
6132	return awsutil.Prettify(s)
6133}
6134
6135// GoString returns the string representation
6136func (s InitiateVaultLockOutput) GoString() string {
6137	return s.String()
6138}
6139
6140// SetLockId sets the LockId field's value.
6141func (s *InitiateVaultLockOutput) SetLockId(v string) *InitiateVaultLockOutput {
6142	s.LockId = &v
6143	return s
6144}
6145
6146// Describes how the archive is serialized.
6147type InputSerialization struct {
6148	_ struct{} `type:"structure"`
6149
6150	// Describes the serialization of a CSV-encoded object.
6151	Csv *CSVInput `locationName:"csv" type:"structure"`
6152}
6153
6154// String returns the string representation
6155func (s InputSerialization) String() string {
6156	return awsutil.Prettify(s)
6157}
6158
6159// GoString returns the string representation
6160func (s InputSerialization) GoString() string {
6161	return s.String()
6162}
6163
6164// SetCsv sets the Csv field's value.
6165func (s *InputSerialization) SetCsv(v *CSVInput) *InputSerialization {
6166	s.Csv = v
6167	return s
6168}
6169
6170// Describes the options for a range inventory retrieval job.
6171type InventoryRetrievalJobDescription struct {
6172	_ struct{} `type:"structure"`
6173
6174	// The end of the date range in UTC for vault inventory retrieval that includes
6175	// archives created before this date. This value should be a string in the ISO
6176	// 8601 date format, for example 2013-03-20T17:03:43Z.
6177	EndDate *string `type:"string"`
6178
6179	// The output format for the vault inventory list, which is set by the InitiateJob
6180	// request when initiating a job to retrieve a vault inventory. Valid values
6181	// are CSV and JSON.
6182	Format *string `type:"string"`
6183
6184	// The maximum number of inventory items returned per vault inventory retrieval
6185	// request. This limit is set when initiating the job with the a InitiateJob
6186	// request.
6187	Limit *string `type:"string"`
6188
6189	// An opaque string that represents where to continue pagination of the vault
6190	// inventory retrieval results. You use the marker in a new InitiateJob request
6191	// to obtain additional inventory items. If there are no more inventory items,
6192	// this value is null. For more information, see Range Inventory Retrieval (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html#api-initiate-job-post-vault-inventory-list-filtering).
6193	Marker *string `type:"string"`
6194
6195	// The start of the date range in Universal Coordinated Time (UTC) for vault
6196	// inventory retrieval that includes archives created on or after this date.
6197	// This value should be a string in the ISO 8601 date format, for example 2013-03-20T17:03:43Z.
6198	StartDate *string `type:"string"`
6199}
6200
6201// String returns the string representation
6202func (s InventoryRetrievalJobDescription) String() string {
6203	return awsutil.Prettify(s)
6204}
6205
6206// GoString returns the string representation
6207func (s InventoryRetrievalJobDescription) GoString() string {
6208	return s.String()
6209}
6210
6211// SetEndDate sets the EndDate field's value.
6212func (s *InventoryRetrievalJobDescription) SetEndDate(v string) *InventoryRetrievalJobDescription {
6213	s.EndDate = &v
6214	return s
6215}
6216
6217// SetFormat sets the Format field's value.
6218func (s *InventoryRetrievalJobDescription) SetFormat(v string) *InventoryRetrievalJobDescription {
6219	s.Format = &v
6220	return s
6221}
6222
6223// SetLimit sets the Limit field's value.
6224func (s *InventoryRetrievalJobDescription) SetLimit(v string) *InventoryRetrievalJobDescription {
6225	s.Limit = &v
6226	return s
6227}
6228
6229// SetMarker sets the Marker field's value.
6230func (s *InventoryRetrievalJobDescription) SetMarker(v string) *InventoryRetrievalJobDescription {
6231	s.Marker = &v
6232	return s
6233}
6234
6235// SetStartDate sets the StartDate field's value.
6236func (s *InventoryRetrievalJobDescription) SetStartDate(v string) *InventoryRetrievalJobDescription {
6237	s.StartDate = &v
6238	return s
6239}
6240
6241// Provides options for specifying a range inventory retrieval job.
6242type InventoryRetrievalJobInput struct {
6243	_ struct{} `type:"structure"`
6244
6245	// The end of the date range in UTC for vault inventory retrieval that includes
6246	// archives created before this date. This value should be a string in the ISO
6247	// 8601 date format, for example 2013-03-20T17:03:43Z.
6248	EndDate *string `type:"string"`
6249
6250	// Specifies the maximum number of inventory items returned per vault inventory
6251	// retrieval request. Valid values are greater than or equal to 1.
6252	Limit *string `type:"string"`
6253
6254	// An opaque string that represents where to continue pagination of the vault
6255	// inventory retrieval results. You use the marker in a new InitiateJob request
6256	// to obtain additional inventory items. If there are no more inventory items,
6257	// this value is null.
6258	Marker *string `type:"string"`
6259
6260	// The start of the date range in UTC for vault inventory retrieval that includes
6261	// archives created on or after this date. This value should be a string in
6262	// the ISO 8601 date format, for example 2013-03-20T17:03:43Z.
6263	StartDate *string `type:"string"`
6264}
6265
6266// String returns the string representation
6267func (s InventoryRetrievalJobInput) String() string {
6268	return awsutil.Prettify(s)
6269}
6270
6271// GoString returns the string representation
6272func (s InventoryRetrievalJobInput) GoString() string {
6273	return s.String()
6274}
6275
6276// SetEndDate sets the EndDate field's value.
6277func (s *InventoryRetrievalJobInput) SetEndDate(v string) *InventoryRetrievalJobInput {
6278	s.EndDate = &v
6279	return s
6280}
6281
6282// SetLimit sets the Limit field's value.
6283func (s *InventoryRetrievalJobInput) SetLimit(v string) *InventoryRetrievalJobInput {
6284	s.Limit = &v
6285	return s
6286}
6287
6288// SetMarker sets the Marker field's value.
6289func (s *InventoryRetrievalJobInput) SetMarker(v string) *InventoryRetrievalJobInput {
6290	s.Marker = &v
6291	return s
6292}
6293
6294// SetStartDate sets the StartDate field's value.
6295func (s *InventoryRetrievalJobInput) SetStartDate(v string) *InventoryRetrievalJobInput {
6296	s.StartDate = &v
6297	return s
6298}
6299
6300// Contains the description of an Amazon S3 Glacier job.
6301type JobDescription struct {
6302	_ struct{} `type:"structure"`
6303
6304	// The job type. This value is either ArchiveRetrieval, InventoryRetrieval,
6305	// or Select.
6306	Action *string `type:"string" enum:"ActionCode"`
6307
6308	// The archive ID requested for a select job or archive retrieval. Otherwise,
6309	// this field is null.
6310	ArchiveId *string `type:"string"`
6311
6312	// The SHA256 tree hash of the entire archive for an archive retrieval. For
6313	// inventory retrieval or select jobs, this field is null.
6314	ArchiveSHA256TreeHash *string `type:"string"`
6315
6316	// For an archive retrieval job, this value is the size in bytes of the archive
6317	// being requested for download. For an inventory retrieval or select job, this
6318	// value is null.
6319	ArchiveSizeInBytes *int64 `type:"long"`
6320
6321	// The job status. When a job is completed, you get the job's output using Get
6322	// Job Output (GET output).
6323	Completed *bool `type:"boolean"`
6324
6325	// The UTC time that the job request completed. While the job is in progress,
6326	// the value is null.
6327	CompletionDate *string `type:"string"`
6328
6329	// The UTC date when the job was created. This value is a string representation
6330	// of ISO 8601 date format, for example "2012-03-20T17:03:43.221Z".
6331	CreationDate *string `type:"string"`
6332
6333	// Parameters used for range inventory retrieval.
6334	InventoryRetrievalParameters *InventoryRetrievalJobDescription `type:"structure"`
6335
6336	// For an inventory retrieval job, this value is the size in bytes of the inventory
6337	// requested for download. For an archive retrieval or select job, this value
6338	// is null.
6339	InventorySizeInBytes *int64 `type:"long"`
6340
6341	// The job description provided when initiating the job.
6342	JobDescription *string `type:"string"`
6343
6344	// An opaque string that identifies an Amazon S3 Glacier job.
6345	JobId *string `type:"string"`
6346
6347	// Contains the job output location.
6348	JobOutputPath *string `type:"string"`
6349
6350	// Contains the location where the data from the select job is stored.
6351	OutputLocation *OutputLocation `type:"structure"`
6352
6353	// The retrieved byte range for archive retrieval jobs in the form StartByteValue-EndByteValue.
6354	// If no range was specified in the archive retrieval, then the whole archive
6355	// is retrieved. In this case, StartByteValue equals 0 and EndByteValue equals
6356	// the size of the archive minus 1. For inventory retrieval or select jobs,
6357	// this field is null.
6358	RetrievalByteRange *string `type:"string"`
6359
6360	// For an archive retrieval job, this value is the checksum of the archive.
6361	// Otherwise, this value is null.
6362	//
6363	// The SHA256 tree hash value for the requested range of an archive. If the
6364	// InitiateJob request for an archive specified a tree-hash aligned range, then
6365	// this field returns a value.
6366	//
6367	// If the whole archive is retrieved, this value is the same as the ArchiveSHA256TreeHash
6368	// value.
6369	//
6370	// This field is null for the following:
6371	//
6372	//    * Archive retrieval jobs that specify a range that is not tree-hash aligned
6373	//
6374	//    * Archival jobs that specify a range that is equal to the whole archive,
6375	//    when the job status is InProgress
6376	//
6377	//    * Inventory jobs
6378	//
6379	//    * Select jobs
6380	SHA256TreeHash *string `type:"string"`
6381
6382	// An Amazon SNS topic that receives notification.
6383	SNSTopic *string `type:"string"`
6384
6385	// Contains the parameters used for a select.
6386	SelectParameters *SelectParameters `type:"structure"`
6387
6388	// The status code can be InProgress, Succeeded, or Failed, and indicates the
6389	// status of the job.
6390	StatusCode *string `type:"string" enum:"StatusCode"`
6391
6392	// A friendly message that describes the job status.
6393	StatusMessage *string `type:"string"`
6394
6395	// The tier to use for a select or an archive retrieval. Valid values are Expedited,
6396	// Standard, or Bulk. Standard is the default.
6397	Tier *string `type:"string"`
6398
6399	// The Amazon Resource Name (ARN) of the vault from which an archive retrieval
6400	// was requested.
6401	VaultARN *string `type:"string"`
6402}
6403
6404// String returns the string representation
6405func (s JobDescription) String() string {
6406	return awsutil.Prettify(s)
6407}
6408
6409// GoString returns the string representation
6410func (s JobDescription) GoString() string {
6411	return s.String()
6412}
6413
6414// SetAction sets the Action field's value.
6415func (s *JobDescription) SetAction(v string) *JobDescription {
6416	s.Action = &v
6417	return s
6418}
6419
6420// SetArchiveId sets the ArchiveId field's value.
6421func (s *JobDescription) SetArchiveId(v string) *JobDescription {
6422	s.ArchiveId = &v
6423	return s
6424}
6425
6426// SetArchiveSHA256TreeHash sets the ArchiveSHA256TreeHash field's value.
6427func (s *JobDescription) SetArchiveSHA256TreeHash(v string) *JobDescription {
6428	s.ArchiveSHA256TreeHash = &v
6429	return s
6430}
6431
6432// SetArchiveSizeInBytes sets the ArchiveSizeInBytes field's value.
6433func (s *JobDescription) SetArchiveSizeInBytes(v int64) *JobDescription {
6434	s.ArchiveSizeInBytes = &v
6435	return s
6436}
6437
6438// SetCompleted sets the Completed field's value.
6439func (s *JobDescription) SetCompleted(v bool) *JobDescription {
6440	s.Completed = &v
6441	return s
6442}
6443
6444// SetCompletionDate sets the CompletionDate field's value.
6445func (s *JobDescription) SetCompletionDate(v string) *JobDescription {
6446	s.CompletionDate = &v
6447	return s
6448}
6449
6450// SetCreationDate sets the CreationDate field's value.
6451func (s *JobDescription) SetCreationDate(v string) *JobDescription {
6452	s.CreationDate = &v
6453	return s
6454}
6455
6456// SetInventoryRetrievalParameters sets the InventoryRetrievalParameters field's value.
6457func (s *JobDescription) SetInventoryRetrievalParameters(v *InventoryRetrievalJobDescription) *JobDescription {
6458	s.InventoryRetrievalParameters = v
6459	return s
6460}
6461
6462// SetInventorySizeInBytes sets the InventorySizeInBytes field's value.
6463func (s *JobDescription) SetInventorySizeInBytes(v int64) *JobDescription {
6464	s.InventorySizeInBytes = &v
6465	return s
6466}
6467
6468// SetJobDescription sets the JobDescription field's value.
6469func (s *JobDescription) SetJobDescription(v string) *JobDescription {
6470	s.JobDescription = &v
6471	return s
6472}
6473
6474// SetJobId sets the JobId field's value.
6475func (s *JobDescription) SetJobId(v string) *JobDescription {
6476	s.JobId = &v
6477	return s
6478}
6479
6480// SetJobOutputPath sets the JobOutputPath field's value.
6481func (s *JobDescription) SetJobOutputPath(v string) *JobDescription {
6482	s.JobOutputPath = &v
6483	return s
6484}
6485
6486// SetOutputLocation sets the OutputLocation field's value.
6487func (s *JobDescription) SetOutputLocation(v *OutputLocation) *JobDescription {
6488	s.OutputLocation = v
6489	return s
6490}
6491
6492// SetRetrievalByteRange sets the RetrievalByteRange field's value.
6493func (s *JobDescription) SetRetrievalByteRange(v string) *JobDescription {
6494	s.RetrievalByteRange = &v
6495	return s
6496}
6497
6498// SetSHA256TreeHash sets the SHA256TreeHash field's value.
6499func (s *JobDescription) SetSHA256TreeHash(v string) *JobDescription {
6500	s.SHA256TreeHash = &v
6501	return s
6502}
6503
6504// SetSNSTopic sets the SNSTopic field's value.
6505func (s *JobDescription) SetSNSTopic(v string) *JobDescription {
6506	s.SNSTopic = &v
6507	return s
6508}
6509
6510// SetSelectParameters sets the SelectParameters field's value.
6511func (s *JobDescription) SetSelectParameters(v *SelectParameters) *JobDescription {
6512	s.SelectParameters = v
6513	return s
6514}
6515
6516// SetStatusCode sets the StatusCode field's value.
6517func (s *JobDescription) SetStatusCode(v string) *JobDescription {
6518	s.StatusCode = &v
6519	return s
6520}
6521
6522// SetStatusMessage sets the StatusMessage field's value.
6523func (s *JobDescription) SetStatusMessage(v string) *JobDescription {
6524	s.StatusMessage = &v
6525	return s
6526}
6527
6528// SetTier sets the Tier field's value.
6529func (s *JobDescription) SetTier(v string) *JobDescription {
6530	s.Tier = &v
6531	return s
6532}
6533
6534// SetVaultARN sets the VaultARN field's value.
6535func (s *JobDescription) SetVaultARN(v string) *JobDescription {
6536	s.VaultARN = &v
6537	return s
6538}
6539
6540// Provides options for defining a job.
6541type JobParameters struct {
6542	_ struct{} `type:"structure"`
6543
6544	// The ID of the archive that you want to retrieve. This field is required only
6545	// if Type is set to select or archive-retrievalcode>. An error occurs if you
6546	// specify this request parameter for an inventory retrieval job request.
6547	ArchiveId *string `type:"string"`
6548
6549	// The optional description for the job. The description must be less than or
6550	// equal to 1,024 bytes. The allowable characters are 7-bit ASCII without control
6551	// codes-specifically, ASCII values 32-126 decimal or 0x20-0x7E hexadecimal.
6552	Description *string `type:"string"`
6553
6554	// When initiating a job to retrieve a vault inventory, you can optionally add
6555	// this parameter to your request to specify the output format. If you are initiating
6556	// an inventory job and do not specify a Format field, JSON is the default format.
6557	// Valid values are "CSV" and "JSON".
6558	Format *string `type:"string"`
6559
6560	// Input parameters used for range inventory retrieval.
6561	InventoryRetrievalParameters *InventoryRetrievalJobInput `type:"structure"`
6562
6563	// Contains information about the location where the select job results are
6564	// stored.
6565	OutputLocation *OutputLocation `type:"structure"`
6566
6567	// The byte range to retrieve for an archive retrieval. in the form "StartByteValue-EndByteValue"
6568	// If not specified, the whole archive is retrieved. If specified, the byte
6569	// range must be megabyte (1024*1024) aligned which means that StartByteValue
6570	// must be divisible by 1 MB and EndByteValue plus 1 must be divisible by 1
6571	// MB or be the end of the archive specified as the archive byte size value
6572	// minus 1. If RetrievalByteRange is not megabyte aligned, this operation returns
6573	// a 400 response.
6574	//
6575	// An error occurs if you specify this field for an inventory retrieval job
6576	// request.
6577	RetrievalByteRange *string `type:"string"`
6578
6579	// The Amazon SNS topic ARN to which Amazon S3 Glacier sends a notification
6580	// when the job is completed and the output is ready for you to download. The
6581	// specified topic publishes the notification to its subscribers. The SNS topic
6582	// must exist.
6583	SNSTopic *string `type:"string"`
6584
6585	// Contains the parameters that define a job.
6586	SelectParameters *SelectParameters `type:"structure"`
6587
6588	// The tier to use for a select or an archive retrieval job. Valid values are
6589	// Expedited, Standard, or Bulk. Standard is the default.
6590	Tier *string `type:"string"`
6591
6592	// The job type. You can initiate a job to perform a select query on an archive,
6593	// retrieve an archive, or get an inventory of a vault. Valid values are "select",
6594	// "archive-retrieval" and "inventory-retrieval".
6595	Type *string `type:"string"`
6596}
6597
6598// String returns the string representation
6599func (s JobParameters) String() string {
6600	return awsutil.Prettify(s)
6601}
6602
6603// GoString returns the string representation
6604func (s JobParameters) GoString() string {
6605	return s.String()
6606}
6607
6608// Validate inspects the fields of the type to determine if they are valid.
6609func (s *JobParameters) Validate() error {
6610	invalidParams := request.ErrInvalidParams{Context: "JobParameters"}
6611	if s.OutputLocation != nil {
6612		if err := s.OutputLocation.Validate(); err != nil {
6613			invalidParams.AddNested("OutputLocation", err.(request.ErrInvalidParams))
6614		}
6615	}
6616
6617	if invalidParams.Len() > 0 {
6618		return invalidParams
6619	}
6620	return nil
6621}
6622
6623// SetArchiveId sets the ArchiveId field's value.
6624func (s *JobParameters) SetArchiveId(v string) *JobParameters {
6625	s.ArchiveId = &v
6626	return s
6627}
6628
6629// SetDescription sets the Description field's value.
6630func (s *JobParameters) SetDescription(v string) *JobParameters {
6631	s.Description = &v
6632	return s
6633}
6634
6635// SetFormat sets the Format field's value.
6636func (s *JobParameters) SetFormat(v string) *JobParameters {
6637	s.Format = &v
6638	return s
6639}
6640
6641// SetInventoryRetrievalParameters sets the InventoryRetrievalParameters field's value.
6642func (s *JobParameters) SetInventoryRetrievalParameters(v *InventoryRetrievalJobInput) *JobParameters {
6643	s.InventoryRetrievalParameters = v
6644	return s
6645}
6646
6647// SetOutputLocation sets the OutputLocation field's value.
6648func (s *JobParameters) SetOutputLocation(v *OutputLocation) *JobParameters {
6649	s.OutputLocation = v
6650	return s
6651}
6652
6653// SetRetrievalByteRange sets the RetrievalByteRange field's value.
6654func (s *JobParameters) SetRetrievalByteRange(v string) *JobParameters {
6655	s.RetrievalByteRange = &v
6656	return s
6657}
6658
6659// SetSNSTopic sets the SNSTopic field's value.
6660func (s *JobParameters) SetSNSTopic(v string) *JobParameters {
6661	s.SNSTopic = &v
6662	return s
6663}
6664
6665// SetSelectParameters sets the SelectParameters field's value.
6666func (s *JobParameters) SetSelectParameters(v *SelectParameters) *JobParameters {
6667	s.SelectParameters = v
6668	return s
6669}
6670
6671// SetTier sets the Tier field's value.
6672func (s *JobParameters) SetTier(v string) *JobParameters {
6673	s.Tier = &v
6674	return s
6675}
6676
6677// SetType sets the Type field's value.
6678func (s *JobParameters) SetType(v string) *JobParameters {
6679	s.Type = &v
6680	return s
6681}
6682
6683// Provides options for retrieving a job list for an Amazon S3 Glacier vault.
6684type ListJobsInput struct {
6685	_ struct{} `type:"structure"`
6686
6687	// The AccountId value is the AWS account ID of the account that owns the vault.
6688	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
6689	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
6690	// credentials used to sign the request. If you use an account ID, do not include
6691	// any hyphens ('-') in the ID.
6692	//
6693	// AccountId is a required field
6694	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
6695
6696	// The state of the jobs to return. You can specify true or false.
6697	Completed *string `location:"querystring" locationName:"completed" type:"string"`
6698
6699	// The maximum number of jobs to be returned. The default limit is 50. The number
6700	// of jobs returned might be fewer than the specified limit, but the number
6701	// of returned jobs never exceeds the limit.
6702	Limit *string `location:"querystring" locationName:"limit" type:"string"`
6703
6704	// An opaque string used for pagination. This value specifies the job at which
6705	// the listing of jobs should begin. Get the marker value from a previous List
6706	// Jobs response. You only need to include the marker if you are continuing
6707	// the pagination of results started in a previous List Jobs request.
6708	Marker *string `location:"querystring" locationName:"marker" type:"string"`
6709
6710	// The type of job status to return. You can specify the following values: InProgress,
6711	// Succeeded, or Failed.
6712	Statuscode *string `location:"querystring" locationName:"statuscode" type:"string"`
6713
6714	// The name of the vault.
6715	//
6716	// VaultName is a required field
6717	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
6718}
6719
6720// String returns the string representation
6721func (s ListJobsInput) String() string {
6722	return awsutil.Prettify(s)
6723}
6724
6725// GoString returns the string representation
6726func (s ListJobsInput) GoString() string {
6727	return s.String()
6728}
6729
6730// Validate inspects the fields of the type to determine if they are valid.
6731func (s *ListJobsInput) Validate() error {
6732	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
6733	if s.AccountId == nil {
6734		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6735	}
6736	if s.AccountId != nil && len(*s.AccountId) < 1 {
6737		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6738	}
6739	if s.VaultName == nil {
6740		invalidParams.Add(request.NewErrParamRequired("VaultName"))
6741	}
6742	if s.VaultName != nil && len(*s.VaultName) < 1 {
6743		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
6744	}
6745
6746	if invalidParams.Len() > 0 {
6747		return invalidParams
6748	}
6749	return nil
6750}
6751
6752// SetAccountId sets the AccountId field's value.
6753func (s *ListJobsInput) SetAccountId(v string) *ListJobsInput {
6754	s.AccountId = &v
6755	return s
6756}
6757
6758// SetCompleted sets the Completed field's value.
6759func (s *ListJobsInput) SetCompleted(v string) *ListJobsInput {
6760	s.Completed = &v
6761	return s
6762}
6763
6764// SetLimit sets the Limit field's value.
6765func (s *ListJobsInput) SetLimit(v string) *ListJobsInput {
6766	s.Limit = &v
6767	return s
6768}
6769
6770// SetMarker sets the Marker field's value.
6771func (s *ListJobsInput) SetMarker(v string) *ListJobsInput {
6772	s.Marker = &v
6773	return s
6774}
6775
6776// SetStatuscode sets the Statuscode field's value.
6777func (s *ListJobsInput) SetStatuscode(v string) *ListJobsInput {
6778	s.Statuscode = &v
6779	return s
6780}
6781
6782// SetVaultName sets the VaultName field's value.
6783func (s *ListJobsInput) SetVaultName(v string) *ListJobsInput {
6784	s.VaultName = &v
6785	return s
6786}
6787
6788// Contains the Amazon S3 Glacier response to your request.
6789type ListJobsOutput struct {
6790	_ struct{} `type:"structure"`
6791
6792	// A list of job objects. Each job object contains metadata describing the job.
6793	JobList []*JobDescription `type:"list"`
6794
6795	// An opaque string used for pagination that specifies the job at which the
6796	// listing of jobs should begin. You get the marker value from a previous List
6797	// Jobs response. You only need to include the marker if you are continuing
6798	// the pagination of the results started in a previous List Jobs request.
6799	Marker *string `type:"string"`
6800}
6801
6802// String returns the string representation
6803func (s ListJobsOutput) String() string {
6804	return awsutil.Prettify(s)
6805}
6806
6807// GoString returns the string representation
6808func (s ListJobsOutput) GoString() string {
6809	return s.String()
6810}
6811
6812// SetJobList sets the JobList field's value.
6813func (s *ListJobsOutput) SetJobList(v []*JobDescription) *ListJobsOutput {
6814	s.JobList = v
6815	return s
6816}
6817
6818// SetMarker sets the Marker field's value.
6819func (s *ListJobsOutput) SetMarker(v string) *ListJobsOutput {
6820	s.Marker = &v
6821	return s
6822}
6823
6824// Provides options for retrieving list of in-progress multipart uploads for
6825// an Amazon Glacier vault.
6826type ListMultipartUploadsInput struct {
6827	_ struct{} `type:"structure"`
6828
6829	// The AccountId value is the AWS account ID of the account that owns the vault.
6830	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
6831	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
6832	// credentials used to sign the request. If you use an account ID, do not include
6833	// any hyphens ('-') in the ID.
6834	//
6835	// AccountId is a required field
6836	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
6837
6838	// Specifies the maximum number of uploads returned in the response body. If
6839	// this value is not specified, the List Uploads operation returns up to 50
6840	// uploads.
6841	Limit *string `location:"querystring" locationName:"limit" type:"string"`
6842
6843	// An opaque string used for pagination. This value specifies the upload at
6844	// which the listing of uploads should begin. Get the marker value from a previous
6845	// List Uploads response. You need only include the marker if you are continuing
6846	// the pagination of results started in a previous List Uploads request.
6847	Marker *string `location:"querystring" locationName:"marker" type:"string"`
6848
6849	// The name of the vault.
6850	//
6851	// VaultName is a required field
6852	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
6853}
6854
6855// String returns the string representation
6856func (s ListMultipartUploadsInput) String() string {
6857	return awsutil.Prettify(s)
6858}
6859
6860// GoString returns the string representation
6861func (s ListMultipartUploadsInput) GoString() string {
6862	return s.String()
6863}
6864
6865// Validate inspects the fields of the type to determine if they are valid.
6866func (s *ListMultipartUploadsInput) Validate() error {
6867	invalidParams := request.ErrInvalidParams{Context: "ListMultipartUploadsInput"}
6868	if s.AccountId == nil {
6869		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6870	}
6871	if s.AccountId != nil && len(*s.AccountId) < 1 {
6872		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
6873	}
6874	if s.VaultName == nil {
6875		invalidParams.Add(request.NewErrParamRequired("VaultName"))
6876	}
6877	if s.VaultName != nil && len(*s.VaultName) < 1 {
6878		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
6879	}
6880
6881	if invalidParams.Len() > 0 {
6882		return invalidParams
6883	}
6884	return nil
6885}
6886
6887// SetAccountId sets the AccountId field's value.
6888func (s *ListMultipartUploadsInput) SetAccountId(v string) *ListMultipartUploadsInput {
6889	s.AccountId = &v
6890	return s
6891}
6892
6893// SetLimit sets the Limit field's value.
6894func (s *ListMultipartUploadsInput) SetLimit(v string) *ListMultipartUploadsInput {
6895	s.Limit = &v
6896	return s
6897}
6898
6899// SetMarker sets the Marker field's value.
6900func (s *ListMultipartUploadsInput) SetMarker(v string) *ListMultipartUploadsInput {
6901	s.Marker = &v
6902	return s
6903}
6904
6905// SetVaultName sets the VaultName field's value.
6906func (s *ListMultipartUploadsInput) SetVaultName(v string) *ListMultipartUploadsInput {
6907	s.VaultName = &v
6908	return s
6909}
6910
6911// Contains the Amazon S3 Glacier response to your request.
6912type ListMultipartUploadsOutput struct {
6913	_ struct{} `type:"structure"`
6914
6915	// An opaque string that represents where to continue pagination of the results.
6916	// You use the marker in a new List Multipart Uploads request to obtain more
6917	// uploads in the list. If there are no more uploads, this value is null.
6918	Marker *string `type:"string"`
6919
6920	// A list of in-progress multipart uploads.
6921	UploadsList []*UploadListElement `type:"list"`
6922}
6923
6924// String returns the string representation
6925func (s ListMultipartUploadsOutput) String() string {
6926	return awsutil.Prettify(s)
6927}
6928
6929// GoString returns the string representation
6930func (s ListMultipartUploadsOutput) GoString() string {
6931	return s.String()
6932}
6933
6934// SetMarker sets the Marker field's value.
6935func (s *ListMultipartUploadsOutput) SetMarker(v string) *ListMultipartUploadsOutput {
6936	s.Marker = &v
6937	return s
6938}
6939
6940// SetUploadsList sets the UploadsList field's value.
6941func (s *ListMultipartUploadsOutput) SetUploadsList(v []*UploadListElement) *ListMultipartUploadsOutput {
6942	s.UploadsList = v
6943	return s
6944}
6945
6946// Provides options for retrieving a list of parts of an archive that have been
6947// uploaded in a specific multipart upload.
6948type ListPartsInput struct {
6949	_ struct{} `type:"structure"`
6950
6951	// The AccountId value is the AWS account ID of the account that owns the vault.
6952	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
6953	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
6954	// credentials used to sign the request. If you use an account ID, do not include
6955	// any hyphens ('-') in the ID.
6956	//
6957	// AccountId is a required field
6958	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
6959
6960	// The maximum number of parts to be returned. The default limit is 50. The
6961	// number of parts returned might be fewer than the specified limit, but the
6962	// number of returned parts never exceeds the limit.
6963	Limit *string `location:"querystring" locationName:"limit" type:"string"`
6964
6965	// An opaque string used for pagination. This value specifies the part at which
6966	// the listing of parts should begin. Get the marker value from the response
6967	// of a previous List Parts response. You need only include the marker if you
6968	// are continuing the pagination of results started in a previous List Parts
6969	// request.
6970	Marker *string `location:"querystring" locationName:"marker" type:"string"`
6971
6972	// The upload ID of the multipart upload.
6973	//
6974	// UploadId is a required field
6975	UploadId *string `location:"uri" locationName:"uploadId" type:"string" required:"true"`
6976
6977	// The name of the vault.
6978	//
6979	// VaultName is a required field
6980	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
6981}
6982
6983// String returns the string representation
6984func (s ListPartsInput) String() string {
6985	return awsutil.Prettify(s)
6986}
6987
6988// GoString returns the string representation
6989func (s ListPartsInput) GoString() string {
6990	return s.String()
6991}
6992
6993// Validate inspects the fields of the type to determine if they are valid.
6994func (s *ListPartsInput) Validate() error {
6995	invalidParams := request.ErrInvalidParams{Context: "ListPartsInput"}
6996	if s.AccountId == nil {
6997		invalidParams.Add(request.NewErrParamRequired("AccountId"))
6998	}
6999	if s.AccountId != nil && len(*s.AccountId) < 1 {
7000		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7001	}
7002	if s.UploadId == nil {
7003		invalidParams.Add(request.NewErrParamRequired("UploadId"))
7004	}
7005	if s.UploadId != nil && len(*s.UploadId) < 1 {
7006		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
7007	}
7008	if s.VaultName == nil {
7009		invalidParams.Add(request.NewErrParamRequired("VaultName"))
7010	}
7011	if s.VaultName != nil && len(*s.VaultName) < 1 {
7012		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
7013	}
7014
7015	if invalidParams.Len() > 0 {
7016		return invalidParams
7017	}
7018	return nil
7019}
7020
7021// SetAccountId sets the AccountId field's value.
7022func (s *ListPartsInput) SetAccountId(v string) *ListPartsInput {
7023	s.AccountId = &v
7024	return s
7025}
7026
7027// SetLimit sets the Limit field's value.
7028func (s *ListPartsInput) SetLimit(v string) *ListPartsInput {
7029	s.Limit = &v
7030	return s
7031}
7032
7033// SetMarker sets the Marker field's value.
7034func (s *ListPartsInput) SetMarker(v string) *ListPartsInput {
7035	s.Marker = &v
7036	return s
7037}
7038
7039// SetUploadId sets the UploadId field's value.
7040func (s *ListPartsInput) SetUploadId(v string) *ListPartsInput {
7041	s.UploadId = &v
7042	return s
7043}
7044
7045// SetVaultName sets the VaultName field's value.
7046func (s *ListPartsInput) SetVaultName(v string) *ListPartsInput {
7047	s.VaultName = &v
7048	return s
7049}
7050
7051// Contains the Amazon S3 Glacier response to your request.
7052type ListPartsOutput struct {
7053	_ struct{} `type:"structure"`
7054
7055	// The description of the archive that was specified in the Initiate Multipart
7056	// Upload request.
7057	ArchiveDescription *string `type:"string"`
7058
7059	// The UTC time at which the multipart upload was initiated.
7060	CreationDate *string `type:"string"`
7061
7062	// An opaque string that represents where to continue pagination of the results.
7063	// You use the marker in a new List Parts request to obtain more jobs in the
7064	// list. If there are no more parts, this value is null.
7065	Marker *string `type:"string"`
7066
7067	// The ID of the upload to which the parts are associated.
7068	MultipartUploadId *string `type:"string"`
7069
7070	// The part size in bytes. This is the same value that you specified in the
7071	// Initiate Multipart Upload request.
7072	PartSizeInBytes *int64 `type:"long"`
7073
7074	// A list of the part sizes of the multipart upload. Each object in the array
7075	// contains a RangeBytes and sha256-tree-hash name/value pair.
7076	Parts []*PartListElement `type:"list"`
7077
7078	// The Amazon Resource Name (ARN) of the vault to which the multipart upload
7079	// was initiated.
7080	VaultARN *string `type:"string"`
7081}
7082
7083// String returns the string representation
7084func (s ListPartsOutput) String() string {
7085	return awsutil.Prettify(s)
7086}
7087
7088// GoString returns the string representation
7089func (s ListPartsOutput) GoString() string {
7090	return s.String()
7091}
7092
7093// SetArchiveDescription sets the ArchiveDescription field's value.
7094func (s *ListPartsOutput) SetArchiveDescription(v string) *ListPartsOutput {
7095	s.ArchiveDescription = &v
7096	return s
7097}
7098
7099// SetCreationDate sets the CreationDate field's value.
7100func (s *ListPartsOutput) SetCreationDate(v string) *ListPartsOutput {
7101	s.CreationDate = &v
7102	return s
7103}
7104
7105// SetMarker sets the Marker field's value.
7106func (s *ListPartsOutput) SetMarker(v string) *ListPartsOutput {
7107	s.Marker = &v
7108	return s
7109}
7110
7111// SetMultipartUploadId sets the MultipartUploadId field's value.
7112func (s *ListPartsOutput) SetMultipartUploadId(v string) *ListPartsOutput {
7113	s.MultipartUploadId = &v
7114	return s
7115}
7116
7117// SetPartSizeInBytes sets the PartSizeInBytes field's value.
7118func (s *ListPartsOutput) SetPartSizeInBytes(v int64) *ListPartsOutput {
7119	s.PartSizeInBytes = &v
7120	return s
7121}
7122
7123// SetParts sets the Parts field's value.
7124func (s *ListPartsOutput) SetParts(v []*PartListElement) *ListPartsOutput {
7125	s.Parts = v
7126	return s
7127}
7128
7129// SetVaultARN sets the VaultARN field's value.
7130func (s *ListPartsOutput) SetVaultARN(v string) *ListPartsOutput {
7131	s.VaultARN = &v
7132	return s
7133}
7134
7135type ListProvisionedCapacityInput struct {
7136	_ struct{} `type:"structure"`
7137
7138	// The AWS account ID of the account that owns the vault. You can either specify
7139	// an AWS account ID or optionally a single '-' (hyphen), in which case Amazon
7140	// S3 Glacier uses the AWS account ID associated with the credentials used to
7141	// sign the request. If you use an account ID, don't include any hyphens ('-')
7142	// in the ID.
7143	//
7144	// AccountId is a required field
7145	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
7146}
7147
7148// String returns the string representation
7149func (s ListProvisionedCapacityInput) String() string {
7150	return awsutil.Prettify(s)
7151}
7152
7153// GoString returns the string representation
7154func (s ListProvisionedCapacityInput) GoString() string {
7155	return s.String()
7156}
7157
7158// Validate inspects the fields of the type to determine if they are valid.
7159func (s *ListProvisionedCapacityInput) Validate() error {
7160	invalidParams := request.ErrInvalidParams{Context: "ListProvisionedCapacityInput"}
7161	if s.AccountId == nil {
7162		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7163	}
7164	if s.AccountId != nil && len(*s.AccountId) < 1 {
7165		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7166	}
7167
7168	if invalidParams.Len() > 0 {
7169		return invalidParams
7170	}
7171	return nil
7172}
7173
7174// SetAccountId sets the AccountId field's value.
7175func (s *ListProvisionedCapacityInput) SetAccountId(v string) *ListProvisionedCapacityInput {
7176	s.AccountId = &v
7177	return s
7178}
7179
7180type ListProvisionedCapacityOutput struct {
7181	_ struct{} `type:"structure"`
7182
7183	// The response body contains the following JSON fields.
7184	ProvisionedCapacityList []*ProvisionedCapacityDescription `type:"list"`
7185}
7186
7187// String returns the string representation
7188func (s ListProvisionedCapacityOutput) String() string {
7189	return awsutil.Prettify(s)
7190}
7191
7192// GoString returns the string representation
7193func (s ListProvisionedCapacityOutput) GoString() string {
7194	return s.String()
7195}
7196
7197// SetProvisionedCapacityList sets the ProvisionedCapacityList field's value.
7198func (s *ListProvisionedCapacityOutput) SetProvisionedCapacityList(v []*ProvisionedCapacityDescription) *ListProvisionedCapacityOutput {
7199	s.ProvisionedCapacityList = v
7200	return s
7201}
7202
7203// The input value for ListTagsForVaultInput.
7204type ListTagsForVaultInput struct {
7205	_ struct{} `type:"structure"`
7206
7207	// The AccountId value is the AWS account ID of the account that owns the vault.
7208	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
7209	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
7210	// credentials used to sign the request. If you use an account ID, do not include
7211	// any hyphens ('-') in the ID.
7212	//
7213	// AccountId is a required field
7214	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
7215
7216	// The name of the vault.
7217	//
7218	// VaultName is a required field
7219	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
7220}
7221
7222// String returns the string representation
7223func (s ListTagsForVaultInput) String() string {
7224	return awsutil.Prettify(s)
7225}
7226
7227// GoString returns the string representation
7228func (s ListTagsForVaultInput) GoString() string {
7229	return s.String()
7230}
7231
7232// Validate inspects the fields of the type to determine if they are valid.
7233func (s *ListTagsForVaultInput) Validate() error {
7234	invalidParams := request.ErrInvalidParams{Context: "ListTagsForVaultInput"}
7235	if s.AccountId == nil {
7236		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7237	}
7238	if s.AccountId != nil && len(*s.AccountId) < 1 {
7239		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7240	}
7241	if s.VaultName == nil {
7242		invalidParams.Add(request.NewErrParamRequired("VaultName"))
7243	}
7244	if s.VaultName != nil && len(*s.VaultName) < 1 {
7245		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
7246	}
7247
7248	if invalidParams.Len() > 0 {
7249		return invalidParams
7250	}
7251	return nil
7252}
7253
7254// SetAccountId sets the AccountId field's value.
7255func (s *ListTagsForVaultInput) SetAccountId(v string) *ListTagsForVaultInput {
7256	s.AccountId = &v
7257	return s
7258}
7259
7260// SetVaultName sets the VaultName field's value.
7261func (s *ListTagsForVaultInput) SetVaultName(v string) *ListTagsForVaultInput {
7262	s.VaultName = &v
7263	return s
7264}
7265
7266// Contains the Amazon S3 Glacier response to your request.
7267type ListTagsForVaultOutput struct {
7268	_ struct{} `type:"structure"`
7269
7270	// The tags attached to the vault. Each tag is composed of a key and a value.
7271	Tags map[string]*string `type:"map"`
7272}
7273
7274// String returns the string representation
7275func (s ListTagsForVaultOutput) String() string {
7276	return awsutil.Prettify(s)
7277}
7278
7279// GoString returns the string representation
7280func (s ListTagsForVaultOutput) GoString() string {
7281	return s.String()
7282}
7283
7284// SetTags sets the Tags field's value.
7285func (s *ListTagsForVaultOutput) SetTags(v map[string]*string) *ListTagsForVaultOutput {
7286	s.Tags = v
7287	return s
7288}
7289
7290// Provides options to retrieve the vault list owned by the calling user's account.
7291// The list provides metadata information for each vault.
7292type ListVaultsInput struct {
7293	_ struct{} `type:"structure"`
7294
7295	// The AccountId value is the AWS account ID. This value must match the AWS
7296	// account ID associated with the credentials used to sign the request. You
7297	// can either specify an AWS account ID or optionally a single '-' (hyphen),
7298	// in which case Amazon Glacier uses the AWS account ID associated with the
7299	// credentials used to sign the request. If you specify your account ID, do
7300	// not include any hyphens ('-') in the ID.
7301	//
7302	// AccountId is a required field
7303	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
7304
7305	// The maximum number of vaults to be returned. The default limit is 10. The
7306	// number of vaults returned might be fewer than the specified limit, but the
7307	// number of returned vaults never exceeds the limit.
7308	Limit *string `location:"querystring" locationName:"limit" type:"string"`
7309
7310	// A string used for pagination. The marker specifies the vault ARN after which
7311	// the listing of vaults should begin.
7312	Marker *string `location:"querystring" locationName:"marker" type:"string"`
7313}
7314
7315// String returns the string representation
7316func (s ListVaultsInput) String() string {
7317	return awsutil.Prettify(s)
7318}
7319
7320// GoString returns the string representation
7321func (s ListVaultsInput) GoString() string {
7322	return s.String()
7323}
7324
7325// Validate inspects the fields of the type to determine if they are valid.
7326func (s *ListVaultsInput) Validate() error {
7327	invalidParams := request.ErrInvalidParams{Context: "ListVaultsInput"}
7328	if s.AccountId == nil {
7329		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7330	}
7331	if s.AccountId != nil && len(*s.AccountId) < 1 {
7332		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7333	}
7334
7335	if invalidParams.Len() > 0 {
7336		return invalidParams
7337	}
7338	return nil
7339}
7340
7341// SetAccountId sets the AccountId field's value.
7342func (s *ListVaultsInput) SetAccountId(v string) *ListVaultsInput {
7343	s.AccountId = &v
7344	return s
7345}
7346
7347// SetLimit sets the Limit field's value.
7348func (s *ListVaultsInput) SetLimit(v string) *ListVaultsInput {
7349	s.Limit = &v
7350	return s
7351}
7352
7353// SetMarker sets the Marker field's value.
7354func (s *ListVaultsInput) SetMarker(v string) *ListVaultsInput {
7355	s.Marker = &v
7356	return s
7357}
7358
7359// Contains the Amazon S3 Glacier response to your request.
7360type ListVaultsOutput struct {
7361	_ struct{} `type:"structure"`
7362
7363	// The vault ARN at which to continue pagination of the results. You use the
7364	// marker in another List Vaults request to obtain more vaults in the list.
7365	Marker *string `type:"string"`
7366
7367	// List of vaults.
7368	VaultList []*DescribeVaultOutput `type:"list"`
7369}
7370
7371// String returns the string representation
7372func (s ListVaultsOutput) String() string {
7373	return awsutil.Prettify(s)
7374}
7375
7376// GoString returns the string representation
7377func (s ListVaultsOutput) GoString() string {
7378	return s.String()
7379}
7380
7381// SetMarker sets the Marker field's value.
7382func (s *ListVaultsOutput) SetMarker(v string) *ListVaultsOutput {
7383	s.Marker = &v
7384	return s
7385}
7386
7387// SetVaultList sets the VaultList field's value.
7388func (s *ListVaultsOutput) SetVaultList(v []*DescribeVaultOutput) *ListVaultsOutput {
7389	s.VaultList = v
7390	return s
7391}
7392
7393// Contains information about the location where the select job results are
7394// stored.
7395type OutputLocation struct {
7396	_ struct{} `type:"structure"`
7397
7398	// Describes an S3 location that will receive the results of the job request.
7399	S3 *S3Location `type:"structure"`
7400}
7401
7402// String returns the string representation
7403func (s OutputLocation) String() string {
7404	return awsutil.Prettify(s)
7405}
7406
7407// GoString returns the string representation
7408func (s OutputLocation) GoString() string {
7409	return s.String()
7410}
7411
7412// Validate inspects the fields of the type to determine if they are valid.
7413func (s *OutputLocation) Validate() error {
7414	invalidParams := request.ErrInvalidParams{Context: "OutputLocation"}
7415	if s.S3 != nil {
7416		if err := s.S3.Validate(); err != nil {
7417			invalidParams.AddNested("S3", err.(request.ErrInvalidParams))
7418		}
7419	}
7420
7421	if invalidParams.Len() > 0 {
7422		return invalidParams
7423	}
7424	return nil
7425}
7426
7427// SetS3 sets the S3 field's value.
7428func (s *OutputLocation) SetS3(v *S3Location) *OutputLocation {
7429	s.S3 = v
7430	return s
7431}
7432
7433// Describes how the select output is serialized.
7434type OutputSerialization struct {
7435	_ struct{} `type:"structure"`
7436
7437	// Describes the serialization of CSV-encoded query results.
7438	Csv *CSVOutput `locationName:"csv" type:"structure"`
7439}
7440
7441// String returns the string representation
7442func (s OutputSerialization) String() string {
7443	return awsutil.Prettify(s)
7444}
7445
7446// GoString returns the string representation
7447func (s OutputSerialization) GoString() string {
7448	return s.String()
7449}
7450
7451// SetCsv sets the Csv field's value.
7452func (s *OutputSerialization) SetCsv(v *CSVOutput) *OutputSerialization {
7453	s.Csv = v
7454	return s
7455}
7456
7457// A list of the part sizes of the multipart upload.
7458type PartListElement struct {
7459	_ struct{} `type:"structure"`
7460
7461	// The byte range of a part, inclusive of the upper value of the range.
7462	RangeInBytes *string `type:"string"`
7463
7464	// The SHA256 tree hash value that Amazon S3 Glacier calculated for the part.
7465	// This field is never null.
7466	SHA256TreeHash *string `type:"string"`
7467}
7468
7469// String returns the string representation
7470func (s PartListElement) String() string {
7471	return awsutil.Prettify(s)
7472}
7473
7474// GoString returns the string representation
7475func (s PartListElement) GoString() string {
7476	return s.String()
7477}
7478
7479// SetRangeInBytes sets the RangeInBytes field's value.
7480func (s *PartListElement) SetRangeInBytes(v string) *PartListElement {
7481	s.RangeInBytes = &v
7482	return s
7483}
7484
7485// SetSHA256TreeHash sets the SHA256TreeHash field's value.
7486func (s *PartListElement) SetSHA256TreeHash(v string) *PartListElement {
7487	s.SHA256TreeHash = &v
7488	return s
7489}
7490
7491// The definition for a provisioned capacity unit.
7492type ProvisionedCapacityDescription struct {
7493	_ struct{} `type:"structure"`
7494
7495	// The ID that identifies the provisioned capacity unit.
7496	CapacityId *string `type:"string"`
7497
7498	// The date that the provisioned capacity unit expires, in Universal Coordinated
7499	// Time (UTC).
7500	ExpirationDate *string `type:"string"`
7501
7502	// The date that the provisioned capacity unit was purchased, in Universal Coordinated
7503	// Time (UTC).
7504	StartDate *string `type:"string"`
7505}
7506
7507// String returns the string representation
7508func (s ProvisionedCapacityDescription) String() string {
7509	return awsutil.Prettify(s)
7510}
7511
7512// GoString returns the string representation
7513func (s ProvisionedCapacityDescription) GoString() string {
7514	return s.String()
7515}
7516
7517// SetCapacityId sets the CapacityId field's value.
7518func (s *ProvisionedCapacityDescription) SetCapacityId(v string) *ProvisionedCapacityDescription {
7519	s.CapacityId = &v
7520	return s
7521}
7522
7523// SetExpirationDate sets the ExpirationDate field's value.
7524func (s *ProvisionedCapacityDescription) SetExpirationDate(v string) *ProvisionedCapacityDescription {
7525	s.ExpirationDate = &v
7526	return s
7527}
7528
7529// SetStartDate sets the StartDate field's value.
7530func (s *ProvisionedCapacityDescription) SetStartDate(v string) *ProvisionedCapacityDescription {
7531	s.StartDate = &v
7532	return s
7533}
7534
7535type PurchaseProvisionedCapacityInput struct {
7536	_ struct{} `type:"structure"`
7537
7538	// The AWS account ID of the account that owns the vault. You can either specify
7539	// an AWS account ID or optionally a single '-' (hyphen), in which case Amazon
7540	// S3 Glacier uses the AWS account ID associated with the credentials used to
7541	// sign the request. If you use an account ID, don't include any hyphens ('-')
7542	// in the ID.
7543	//
7544	// AccountId is a required field
7545	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
7546}
7547
7548// String returns the string representation
7549func (s PurchaseProvisionedCapacityInput) String() string {
7550	return awsutil.Prettify(s)
7551}
7552
7553// GoString returns the string representation
7554func (s PurchaseProvisionedCapacityInput) GoString() string {
7555	return s.String()
7556}
7557
7558// Validate inspects the fields of the type to determine if they are valid.
7559func (s *PurchaseProvisionedCapacityInput) Validate() error {
7560	invalidParams := request.ErrInvalidParams{Context: "PurchaseProvisionedCapacityInput"}
7561	if s.AccountId == nil {
7562		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7563	}
7564	if s.AccountId != nil && len(*s.AccountId) < 1 {
7565		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7566	}
7567
7568	if invalidParams.Len() > 0 {
7569		return invalidParams
7570	}
7571	return nil
7572}
7573
7574// SetAccountId sets the AccountId field's value.
7575func (s *PurchaseProvisionedCapacityInput) SetAccountId(v string) *PurchaseProvisionedCapacityInput {
7576	s.AccountId = &v
7577	return s
7578}
7579
7580type PurchaseProvisionedCapacityOutput struct {
7581	_ struct{} `type:"structure"`
7582
7583	// The ID that identifies the provisioned capacity unit.
7584	CapacityId *string `location:"header" locationName:"x-amz-capacity-id" type:"string"`
7585}
7586
7587// String returns the string representation
7588func (s PurchaseProvisionedCapacityOutput) String() string {
7589	return awsutil.Prettify(s)
7590}
7591
7592// GoString returns the string representation
7593func (s PurchaseProvisionedCapacityOutput) GoString() string {
7594	return s.String()
7595}
7596
7597// SetCapacityId sets the CapacityId field's value.
7598func (s *PurchaseProvisionedCapacityOutput) SetCapacityId(v string) *PurchaseProvisionedCapacityOutput {
7599	s.CapacityId = &v
7600	return s
7601}
7602
7603// The input value for RemoveTagsFromVaultInput.
7604type RemoveTagsFromVaultInput struct {
7605	_ struct{} `type:"structure"`
7606
7607	// The AccountId value is the AWS account ID of the account that owns the vault.
7608	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
7609	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
7610	// credentials used to sign the request. If you use an account ID, do not include
7611	// any hyphens ('-') in the ID.
7612	//
7613	// AccountId is a required field
7614	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
7615
7616	// A list of tag keys. Each corresponding tag is removed from the vault.
7617	TagKeys []*string `type:"list"`
7618
7619	// The name of the vault.
7620	//
7621	// VaultName is a required field
7622	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
7623}
7624
7625// String returns the string representation
7626func (s RemoveTagsFromVaultInput) String() string {
7627	return awsutil.Prettify(s)
7628}
7629
7630// GoString returns the string representation
7631func (s RemoveTagsFromVaultInput) GoString() string {
7632	return s.String()
7633}
7634
7635// Validate inspects the fields of the type to determine if they are valid.
7636func (s *RemoveTagsFromVaultInput) Validate() error {
7637	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromVaultInput"}
7638	if s.AccountId == nil {
7639		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7640	}
7641	if s.AccountId != nil && len(*s.AccountId) < 1 {
7642		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7643	}
7644	if s.VaultName == nil {
7645		invalidParams.Add(request.NewErrParamRequired("VaultName"))
7646	}
7647	if s.VaultName != nil && len(*s.VaultName) < 1 {
7648		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
7649	}
7650
7651	if invalidParams.Len() > 0 {
7652		return invalidParams
7653	}
7654	return nil
7655}
7656
7657// SetAccountId sets the AccountId field's value.
7658func (s *RemoveTagsFromVaultInput) SetAccountId(v string) *RemoveTagsFromVaultInput {
7659	s.AccountId = &v
7660	return s
7661}
7662
7663// SetTagKeys sets the TagKeys field's value.
7664func (s *RemoveTagsFromVaultInput) SetTagKeys(v []*string) *RemoveTagsFromVaultInput {
7665	s.TagKeys = v
7666	return s
7667}
7668
7669// SetVaultName sets the VaultName field's value.
7670func (s *RemoveTagsFromVaultInput) SetVaultName(v string) *RemoveTagsFromVaultInput {
7671	s.VaultName = &v
7672	return s
7673}
7674
7675type RemoveTagsFromVaultOutput struct {
7676	_ struct{} `type:"structure"`
7677}
7678
7679// String returns the string representation
7680func (s RemoveTagsFromVaultOutput) String() string {
7681	return awsutil.Prettify(s)
7682}
7683
7684// GoString returns the string representation
7685func (s RemoveTagsFromVaultOutput) GoString() string {
7686	return s.String()
7687}
7688
7689// Contains information about the location in Amazon S3 where the select job
7690// results are stored.
7691type S3Location struct {
7692	_ struct{} `type:"structure"`
7693
7694	// A list of grants that control access to the staged results.
7695	AccessControlList []*Grant `type:"list"`
7696
7697	// The name of the Amazon S3 bucket where the job results are stored.
7698	BucketName *string `type:"string"`
7699
7700	// The canned access control list (ACL) to apply to the job results.
7701	CannedACL *string `type:"string" enum:"CannedACL"`
7702
7703	// Contains information about the encryption used to store the job results in
7704	// Amazon S3.
7705	Encryption *Encryption `type:"structure"`
7706
7707	// The prefix that is prepended to the results for this request.
7708	Prefix *string `type:"string"`
7709
7710	// The storage class used to store the job results.
7711	StorageClass *string `type:"string" enum:"StorageClass"`
7712
7713	// The tag-set that is applied to the job results.
7714	Tagging map[string]*string `type:"map"`
7715
7716	// A map of metadata to store with the job results in Amazon S3.
7717	UserMetadata map[string]*string `type:"map"`
7718}
7719
7720// String returns the string representation
7721func (s S3Location) String() string {
7722	return awsutil.Prettify(s)
7723}
7724
7725// GoString returns the string representation
7726func (s S3Location) GoString() string {
7727	return s.String()
7728}
7729
7730// Validate inspects the fields of the type to determine if they are valid.
7731func (s *S3Location) Validate() error {
7732	invalidParams := request.ErrInvalidParams{Context: "S3Location"}
7733	if s.AccessControlList != nil {
7734		for i, v := range s.AccessControlList {
7735			if v == nil {
7736				continue
7737			}
7738			if err := v.Validate(); err != nil {
7739				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControlList", i), err.(request.ErrInvalidParams))
7740			}
7741		}
7742	}
7743
7744	if invalidParams.Len() > 0 {
7745		return invalidParams
7746	}
7747	return nil
7748}
7749
7750// SetAccessControlList sets the AccessControlList field's value.
7751func (s *S3Location) SetAccessControlList(v []*Grant) *S3Location {
7752	s.AccessControlList = v
7753	return s
7754}
7755
7756// SetBucketName sets the BucketName field's value.
7757func (s *S3Location) SetBucketName(v string) *S3Location {
7758	s.BucketName = &v
7759	return s
7760}
7761
7762// SetCannedACL sets the CannedACL field's value.
7763func (s *S3Location) SetCannedACL(v string) *S3Location {
7764	s.CannedACL = &v
7765	return s
7766}
7767
7768// SetEncryption sets the Encryption field's value.
7769func (s *S3Location) SetEncryption(v *Encryption) *S3Location {
7770	s.Encryption = v
7771	return s
7772}
7773
7774// SetPrefix sets the Prefix field's value.
7775func (s *S3Location) SetPrefix(v string) *S3Location {
7776	s.Prefix = &v
7777	return s
7778}
7779
7780// SetStorageClass sets the StorageClass field's value.
7781func (s *S3Location) SetStorageClass(v string) *S3Location {
7782	s.StorageClass = &v
7783	return s
7784}
7785
7786// SetTagging sets the Tagging field's value.
7787func (s *S3Location) SetTagging(v map[string]*string) *S3Location {
7788	s.Tagging = v
7789	return s
7790}
7791
7792// SetUserMetadata sets the UserMetadata field's value.
7793func (s *S3Location) SetUserMetadata(v map[string]*string) *S3Location {
7794	s.UserMetadata = v
7795	return s
7796}
7797
7798// Contains information about the parameters used for a select.
7799type SelectParameters struct {
7800	_ struct{} `type:"structure"`
7801
7802	// The expression that is used to select the object.
7803	Expression *string `type:"string"`
7804
7805	// The type of the provided expression, for example SQL.
7806	ExpressionType *string `type:"string" enum:"ExpressionType"`
7807
7808	// Describes the serialization format of the object.
7809	InputSerialization *InputSerialization `type:"structure"`
7810
7811	// Describes how the results of the select job are serialized.
7812	OutputSerialization *OutputSerialization `type:"structure"`
7813}
7814
7815// String returns the string representation
7816func (s SelectParameters) String() string {
7817	return awsutil.Prettify(s)
7818}
7819
7820// GoString returns the string representation
7821func (s SelectParameters) GoString() string {
7822	return s.String()
7823}
7824
7825// SetExpression sets the Expression field's value.
7826func (s *SelectParameters) SetExpression(v string) *SelectParameters {
7827	s.Expression = &v
7828	return s
7829}
7830
7831// SetExpressionType sets the ExpressionType field's value.
7832func (s *SelectParameters) SetExpressionType(v string) *SelectParameters {
7833	s.ExpressionType = &v
7834	return s
7835}
7836
7837// SetInputSerialization sets the InputSerialization field's value.
7838func (s *SelectParameters) SetInputSerialization(v *InputSerialization) *SelectParameters {
7839	s.InputSerialization = v
7840	return s
7841}
7842
7843// SetOutputSerialization sets the OutputSerialization field's value.
7844func (s *SelectParameters) SetOutputSerialization(v *OutputSerialization) *SelectParameters {
7845	s.OutputSerialization = v
7846	return s
7847}
7848
7849// SetDataRetrievalPolicy input.
7850type SetDataRetrievalPolicyInput struct {
7851	_ struct{} `type:"structure"`
7852
7853	// The AccountId value is the AWS account ID. This value must match the AWS
7854	// account ID associated with the credentials used to sign the request. You
7855	// can either specify an AWS account ID or optionally a single '-' (hyphen),
7856	// in which case Amazon Glacier uses the AWS account ID associated with the
7857	// credentials used to sign the request. If you specify your account ID, do
7858	// not include any hyphens ('-') in the ID.
7859	//
7860	// AccountId is a required field
7861	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
7862
7863	// The data retrieval policy in JSON format.
7864	Policy *DataRetrievalPolicy `type:"structure"`
7865}
7866
7867// String returns the string representation
7868func (s SetDataRetrievalPolicyInput) String() string {
7869	return awsutil.Prettify(s)
7870}
7871
7872// GoString returns the string representation
7873func (s SetDataRetrievalPolicyInput) GoString() string {
7874	return s.String()
7875}
7876
7877// Validate inspects the fields of the type to determine if they are valid.
7878func (s *SetDataRetrievalPolicyInput) Validate() error {
7879	invalidParams := request.ErrInvalidParams{Context: "SetDataRetrievalPolicyInput"}
7880	if s.AccountId == nil {
7881		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7882	}
7883	if s.AccountId != nil && len(*s.AccountId) < 1 {
7884		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7885	}
7886
7887	if invalidParams.Len() > 0 {
7888		return invalidParams
7889	}
7890	return nil
7891}
7892
7893// SetAccountId sets the AccountId field's value.
7894func (s *SetDataRetrievalPolicyInput) SetAccountId(v string) *SetDataRetrievalPolicyInput {
7895	s.AccountId = &v
7896	return s
7897}
7898
7899// SetPolicy sets the Policy field's value.
7900func (s *SetDataRetrievalPolicyInput) SetPolicy(v *DataRetrievalPolicy) *SetDataRetrievalPolicyInput {
7901	s.Policy = v
7902	return s
7903}
7904
7905type SetDataRetrievalPolicyOutput struct {
7906	_ struct{} `type:"structure"`
7907}
7908
7909// String returns the string representation
7910func (s SetDataRetrievalPolicyOutput) String() string {
7911	return awsutil.Prettify(s)
7912}
7913
7914// GoString returns the string representation
7915func (s SetDataRetrievalPolicyOutput) GoString() string {
7916	return s.String()
7917}
7918
7919// SetVaultAccessPolicy input.
7920type SetVaultAccessPolicyInput struct {
7921	_ struct{} `type:"structure" payload:"Policy"`
7922
7923	// The AccountId value is the AWS account ID of the account that owns the vault.
7924	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
7925	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
7926	// credentials used to sign the request. If you use an account ID, do not include
7927	// any hyphens ('-') in the ID.
7928	//
7929	// AccountId is a required field
7930	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
7931
7932	// The vault access policy as a JSON string.
7933	Policy *VaultAccessPolicy `locationName:"policy" type:"structure"`
7934
7935	// The name of the vault.
7936	//
7937	// VaultName is a required field
7938	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
7939}
7940
7941// String returns the string representation
7942func (s SetVaultAccessPolicyInput) String() string {
7943	return awsutil.Prettify(s)
7944}
7945
7946// GoString returns the string representation
7947func (s SetVaultAccessPolicyInput) GoString() string {
7948	return s.String()
7949}
7950
7951// Validate inspects the fields of the type to determine if they are valid.
7952func (s *SetVaultAccessPolicyInput) Validate() error {
7953	invalidParams := request.ErrInvalidParams{Context: "SetVaultAccessPolicyInput"}
7954	if s.AccountId == nil {
7955		invalidParams.Add(request.NewErrParamRequired("AccountId"))
7956	}
7957	if s.AccountId != nil && len(*s.AccountId) < 1 {
7958		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
7959	}
7960	if s.VaultName == nil {
7961		invalidParams.Add(request.NewErrParamRequired("VaultName"))
7962	}
7963	if s.VaultName != nil && len(*s.VaultName) < 1 {
7964		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
7965	}
7966
7967	if invalidParams.Len() > 0 {
7968		return invalidParams
7969	}
7970	return nil
7971}
7972
7973// SetAccountId sets the AccountId field's value.
7974func (s *SetVaultAccessPolicyInput) SetAccountId(v string) *SetVaultAccessPolicyInput {
7975	s.AccountId = &v
7976	return s
7977}
7978
7979// SetPolicy sets the Policy field's value.
7980func (s *SetVaultAccessPolicyInput) SetPolicy(v *VaultAccessPolicy) *SetVaultAccessPolicyInput {
7981	s.Policy = v
7982	return s
7983}
7984
7985// SetVaultName sets the VaultName field's value.
7986func (s *SetVaultAccessPolicyInput) SetVaultName(v string) *SetVaultAccessPolicyInput {
7987	s.VaultName = &v
7988	return s
7989}
7990
7991type SetVaultAccessPolicyOutput struct {
7992	_ struct{} `type:"structure"`
7993}
7994
7995// String returns the string representation
7996func (s SetVaultAccessPolicyOutput) String() string {
7997	return awsutil.Prettify(s)
7998}
7999
8000// GoString returns the string representation
8001func (s SetVaultAccessPolicyOutput) GoString() string {
8002	return s.String()
8003}
8004
8005// Provides options to configure notifications that will be sent when specific
8006// events happen to a vault.
8007type SetVaultNotificationsInput struct {
8008	_ struct{} `type:"structure" payload:"VaultNotificationConfig"`
8009
8010	// The AccountId value is the AWS account ID of the account that owns the vault.
8011	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
8012	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
8013	// credentials used to sign the request. If you use an account ID, do not include
8014	// any hyphens ('-') in the ID.
8015	//
8016	// AccountId is a required field
8017	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
8018
8019	// The name of the vault.
8020	//
8021	// VaultName is a required field
8022	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
8023
8024	// Provides options for specifying notification configuration.
8025	VaultNotificationConfig *VaultNotificationConfig `locationName:"vaultNotificationConfig" type:"structure"`
8026}
8027
8028// String returns the string representation
8029func (s SetVaultNotificationsInput) String() string {
8030	return awsutil.Prettify(s)
8031}
8032
8033// GoString returns the string representation
8034func (s SetVaultNotificationsInput) GoString() string {
8035	return s.String()
8036}
8037
8038// Validate inspects the fields of the type to determine if they are valid.
8039func (s *SetVaultNotificationsInput) Validate() error {
8040	invalidParams := request.ErrInvalidParams{Context: "SetVaultNotificationsInput"}
8041	if s.AccountId == nil {
8042		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8043	}
8044	if s.AccountId != nil && len(*s.AccountId) < 1 {
8045		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8046	}
8047	if s.VaultName == nil {
8048		invalidParams.Add(request.NewErrParamRequired("VaultName"))
8049	}
8050	if s.VaultName != nil && len(*s.VaultName) < 1 {
8051		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
8052	}
8053
8054	if invalidParams.Len() > 0 {
8055		return invalidParams
8056	}
8057	return nil
8058}
8059
8060// SetAccountId sets the AccountId field's value.
8061func (s *SetVaultNotificationsInput) SetAccountId(v string) *SetVaultNotificationsInput {
8062	s.AccountId = &v
8063	return s
8064}
8065
8066// SetVaultName sets the VaultName field's value.
8067func (s *SetVaultNotificationsInput) SetVaultName(v string) *SetVaultNotificationsInput {
8068	s.VaultName = &v
8069	return s
8070}
8071
8072// SetVaultNotificationConfig sets the VaultNotificationConfig field's value.
8073func (s *SetVaultNotificationsInput) SetVaultNotificationConfig(v *VaultNotificationConfig) *SetVaultNotificationsInput {
8074	s.VaultNotificationConfig = v
8075	return s
8076}
8077
8078type SetVaultNotificationsOutput struct {
8079	_ struct{} `type:"structure"`
8080}
8081
8082// String returns the string representation
8083func (s SetVaultNotificationsOutput) String() string {
8084	return awsutil.Prettify(s)
8085}
8086
8087// GoString returns the string representation
8088func (s SetVaultNotificationsOutput) GoString() string {
8089	return s.String()
8090}
8091
8092// Provides options to add an archive to a vault.
8093type UploadArchiveInput struct {
8094	_ struct{} `type:"structure" payload:"Body"`
8095
8096	// The AccountId value is the AWS account ID of the account that owns the vault.
8097	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
8098	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
8099	// credentials used to sign the request. If you use an account ID, do not include
8100	// any hyphens ('-') in the ID.
8101	//
8102	// AccountId is a required field
8103	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
8104
8105	// The optional description of the archive you are uploading.
8106	ArchiveDescription *string `location:"header" locationName:"x-amz-archive-description" type:"string"`
8107
8108	// The data to upload.
8109	Body io.ReadSeeker `locationName:"body" type:"blob"`
8110
8111	// The SHA256 tree hash of the data being uploaded.
8112	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
8113
8114	// The name of the vault.
8115	//
8116	// VaultName is a required field
8117	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
8118}
8119
8120// String returns the string representation
8121func (s UploadArchiveInput) String() string {
8122	return awsutil.Prettify(s)
8123}
8124
8125// GoString returns the string representation
8126func (s UploadArchiveInput) GoString() string {
8127	return s.String()
8128}
8129
8130// Validate inspects the fields of the type to determine if they are valid.
8131func (s *UploadArchiveInput) Validate() error {
8132	invalidParams := request.ErrInvalidParams{Context: "UploadArchiveInput"}
8133	if s.AccountId == nil {
8134		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8135	}
8136	if s.AccountId != nil && len(*s.AccountId) < 1 {
8137		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8138	}
8139	if s.VaultName == nil {
8140		invalidParams.Add(request.NewErrParamRequired("VaultName"))
8141	}
8142	if s.VaultName != nil && len(*s.VaultName) < 1 {
8143		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
8144	}
8145
8146	if invalidParams.Len() > 0 {
8147		return invalidParams
8148	}
8149	return nil
8150}
8151
8152// SetAccountId sets the AccountId field's value.
8153func (s *UploadArchiveInput) SetAccountId(v string) *UploadArchiveInput {
8154	s.AccountId = &v
8155	return s
8156}
8157
8158// SetArchiveDescription sets the ArchiveDescription field's value.
8159func (s *UploadArchiveInput) SetArchiveDescription(v string) *UploadArchiveInput {
8160	s.ArchiveDescription = &v
8161	return s
8162}
8163
8164// SetBody sets the Body field's value.
8165func (s *UploadArchiveInput) SetBody(v io.ReadSeeker) *UploadArchiveInput {
8166	s.Body = v
8167	return s
8168}
8169
8170// SetChecksum sets the Checksum field's value.
8171func (s *UploadArchiveInput) SetChecksum(v string) *UploadArchiveInput {
8172	s.Checksum = &v
8173	return s
8174}
8175
8176// SetVaultName sets the VaultName field's value.
8177func (s *UploadArchiveInput) SetVaultName(v string) *UploadArchiveInput {
8178	s.VaultName = &v
8179	return s
8180}
8181
8182// A list of in-progress multipart uploads for a vault.
8183type UploadListElement struct {
8184	_ struct{} `type:"structure"`
8185
8186	// The description of the archive that was specified in the Initiate Multipart
8187	// Upload request.
8188	ArchiveDescription *string `type:"string"`
8189
8190	// The UTC time at which the multipart upload was initiated.
8191	CreationDate *string `type:"string"`
8192
8193	// The ID of a multipart upload.
8194	MultipartUploadId *string `type:"string"`
8195
8196	// The part size, in bytes, specified in the Initiate Multipart Upload request.
8197	// This is the size of all the parts in the upload except the last part, which
8198	// may be smaller than this size.
8199	PartSizeInBytes *int64 `type:"long"`
8200
8201	// The Amazon Resource Name (ARN) of the vault that contains the archive.
8202	VaultARN *string `type:"string"`
8203}
8204
8205// String returns the string representation
8206func (s UploadListElement) String() string {
8207	return awsutil.Prettify(s)
8208}
8209
8210// GoString returns the string representation
8211func (s UploadListElement) GoString() string {
8212	return s.String()
8213}
8214
8215// SetArchiveDescription sets the ArchiveDescription field's value.
8216func (s *UploadListElement) SetArchiveDescription(v string) *UploadListElement {
8217	s.ArchiveDescription = &v
8218	return s
8219}
8220
8221// SetCreationDate sets the CreationDate field's value.
8222func (s *UploadListElement) SetCreationDate(v string) *UploadListElement {
8223	s.CreationDate = &v
8224	return s
8225}
8226
8227// SetMultipartUploadId sets the MultipartUploadId field's value.
8228func (s *UploadListElement) SetMultipartUploadId(v string) *UploadListElement {
8229	s.MultipartUploadId = &v
8230	return s
8231}
8232
8233// SetPartSizeInBytes sets the PartSizeInBytes field's value.
8234func (s *UploadListElement) SetPartSizeInBytes(v int64) *UploadListElement {
8235	s.PartSizeInBytes = &v
8236	return s
8237}
8238
8239// SetVaultARN sets the VaultARN field's value.
8240func (s *UploadListElement) SetVaultARN(v string) *UploadListElement {
8241	s.VaultARN = &v
8242	return s
8243}
8244
8245// Provides options to upload a part of an archive in a multipart upload operation.
8246type UploadMultipartPartInput struct {
8247	_ struct{} `type:"structure" payload:"Body"`
8248
8249	// The AccountId value is the AWS account ID of the account that owns the vault.
8250	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
8251	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
8252	// credentials used to sign the request. If you use an account ID, do not include
8253	// any hyphens ('-') in the ID.
8254	//
8255	// AccountId is a required field
8256	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
8257
8258	// The data to upload.
8259	Body io.ReadSeeker `locationName:"body" type:"blob"`
8260
8261	// The SHA256 tree hash of the data being uploaded.
8262	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
8263
8264	// Identifies the range of bytes in the assembled archive that will be uploaded
8265	// in this part. Amazon S3 Glacier uses this information to assemble the archive
8266	// in the proper sequence. The format of this header follows RFC 2616. An example
8267	// header is Content-Range:bytes 0-4194303/*.
8268	Range *string `location:"header" locationName:"Content-Range" type:"string"`
8269
8270	// The upload ID of the multipart upload.
8271	//
8272	// UploadId is a required field
8273	UploadId *string `location:"uri" locationName:"uploadId" type:"string" required:"true"`
8274
8275	// The name of the vault.
8276	//
8277	// VaultName is a required field
8278	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
8279}
8280
8281// String returns the string representation
8282func (s UploadMultipartPartInput) String() string {
8283	return awsutil.Prettify(s)
8284}
8285
8286// GoString returns the string representation
8287func (s UploadMultipartPartInput) GoString() string {
8288	return s.String()
8289}
8290
8291// Validate inspects the fields of the type to determine if they are valid.
8292func (s *UploadMultipartPartInput) Validate() error {
8293	invalidParams := request.ErrInvalidParams{Context: "UploadMultipartPartInput"}
8294	if s.AccountId == nil {
8295		invalidParams.Add(request.NewErrParamRequired("AccountId"))
8296	}
8297	if s.AccountId != nil && len(*s.AccountId) < 1 {
8298		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
8299	}
8300	if s.UploadId == nil {
8301		invalidParams.Add(request.NewErrParamRequired("UploadId"))
8302	}
8303	if s.UploadId != nil && len(*s.UploadId) < 1 {
8304		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
8305	}
8306	if s.VaultName == nil {
8307		invalidParams.Add(request.NewErrParamRequired("VaultName"))
8308	}
8309	if s.VaultName != nil && len(*s.VaultName) < 1 {
8310		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
8311	}
8312
8313	if invalidParams.Len() > 0 {
8314		return invalidParams
8315	}
8316	return nil
8317}
8318
8319// SetAccountId sets the AccountId field's value.
8320func (s *UploadMultipartPartInput) SetAccountId(v string) *UploadMultipartPartInput {
8321	s.AccountId = &v
8322	return s
8323}
8324
8325// SetBody sets the Body field's value.
8326func (s *UploadMultipartPartInput) SetBody(v io.ReadSeeker) *UploadMultipartPartInput {
8327	s.Body = v
8328	return s
8329}
8330
8331// SetChecksum sets the Checksum field's value.
8332func (s *UploadMultipartPartInput) SetChecksum(v string) *UploadMultipartPartInput {
8333	s.Checksum = &v
8334	return s
8335}
8336
8337// SetRange sets the Range field's value.
8338func (s *UploadMultipartPartInput) SetRange(v string) *UploadMultipartPartInput {
8339	s.Range = &v
8340	return s
8341}
8342
8343// SetUploadId sets the UploadId field's value.
8344func (s *UploadMultipartPartInput) SetUploadId(v string) *UploadMultipartPartInput {
8345	s.UploadId = &v
8346	return s
8347}
8348
8349// SetVaultName sets the VaultName field's value.
8350func (s *UploadMultipartPartInput) SetVaultName(v string) *UploadMultipartPartInput {
8351	s.VaultName = &v
8352	return s
8353}
8354
8355// Contains the Amazon S3 Glacier response to your request.
8356type UploadMultipartPartOutput struct {
8357	_ struct{} `type:"structure"`
8358
8359	// The SHA256 tree hash that Amazon S3 Glacier computed for the uploaded part.
8360	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
8361}
8362
8363// String returns the string representation
8364func (s UploadMultipartPartOutput) String() string {
8365	return awsutil.Prettify(s)
8366}
8367
8368// GoString returns the string representation
8369func (s UploadMultipartPartOutput) GoString() string {
8370	return s.String()
8371}
8372
8373// SetChecksum sets the Checksum field's value.
8374func (s *UploadMultipartPartOutput) SetChecksum(v string) *UploadMultipartPartOutput {
8375	s.Checksum = &v
8376	return s
8377}
8378
8379// Contains the vault access policy.
8380type VaultAccessPolicy struct {
8381	_ struct{} `type:"structure"`
8382
8383	// The vault access policy.
8384	Policy *string `type:"string"`
8385}
8386
8387// String returns the string representation
8388func (s VaultAccessPolicy) String() string {
8389	return awsutil.Prettify(s)
8390}
8391
8392// GoString returns the string representation
8393func (s VaultAccessPolicy) GoString() string {
8394	return s.String()
8395}
8396
8397// SetPolicy sets the Policy field's value.
8398func (s *VaultAccessPolicy) SetPolicy(v string) *VaultAccessPolicy {
8399	s.Policy = &v
8400	return s
8401}
8402
8403// Contains the vault lock policy.
8404type VaultLockPolicy struct {
8405	_ struct{} `type:"structure"`
8406
8407	// The vault lock policy.
8408	Policy *string `type:"string"`
8409}
8410
8411// String returns the string representation
8412func (s VaultLockPolicy) String() string {
8413	return awsutil.Prettify(s)
8414}
8415
8416// GoString returns the string representation
8417func (s VaultLockPolicy) GoString() string {
8418	return s.String()
8419}
8420
8421// SetPolicy sets the Policy field's value.
8422func (s *VaultLockPolicy) SetPolicy(v string) *VaultLockPolicy {
8423	s.Policy = &v
8424	return s
8425}
8426
8427// Represents a vault's notification configuration.
8428type VaultNotificationConfig struct {
8429	_ struct{} `type:"structure"`
8430
8431	// A list of one or more events for which Amazon S3 Glacier will send a notification
8432	// to the specified Amazon SNS topic.
8433	Events []*string `type:"list"`
8434
8435	// The Amazon Simple Notification Service (Amazon SNS) topic Amazon Resource
8436	// Name (ARN).
8437	SNSTopic *string `type:"string"`
8438}
8439
8440// String returns the string representation
8441func (s VaultNotificationConfig) String() string {
8442	return awsutil.Prettify(s)
8443}
8444
8445// GoString returns the string representation
8446func (s VaultNotificationConfig) GoString() string {
8447	return s.String()
8448}
8449
8450// SetEvents sets the Events field's value.
8451func (s *VaultNotificationConfig) SetEvents(v []*string) *VaultNotificationConfig {
8452	s.Events = v
8453	return s
8454}
8455
8456// SetSNSTopic sets the SNSTopic field's value.
8457func (s *VaultNotificationConfig) SetSNSTopic(v string) *VaultNotificationConfig {
8458	s.SNSTopic = &v
8459	return s
8460}
8461
8462const (
8463	// ActionCodeArchiveRetrieval is a ActionCode enum value
8464	ActionCodeArchiveRetrieval = "ArchiveRetrieval"
8465
8466	// ActionCodeInventoryRetrieval is a ActionCode enum value
8467	ActionCodeInventoryRetrieval = "InventoryRetrieval"
8468
8469	// ActionCodeSelect is a ActionCode enum value
8470	ActionCodeSelect = "Select"
8471)
8472
8473const (
8474	// CannedACLPrivate is a CannedACL enum value
8475	CannedACLPrivate = "private"
8476
8477	// CannedACLPublicRead is a CannedACL enum value
8478	CannedACLPublicRead = "public-read"
8479
8480	// CannedACLPublicReadWrite is a CannedACL enum value
8481	CannedACLPublicReadWrite = "public-read-write"
8482
8483	// CannedACLAwsExecRead is a CannedACL enum value
8484	CannedACLAwsExecRead = "aws-exec-read"
8485
8486	// CannedACLAuthenticatedRead is a CannedACL enum value
8487	CannedACLAuthenticatedRead = "authenticated-read"
8488
8489	// CannedACLBucketOwnerRead is a CannedACL enum value
8490	CannedACLBucketOwnerRead = "bucket-owner-read"
8491
8492	// CannedACLBucketOwnerFullControl is a CannedACL enum value
8493	CannedACLBucketOwnerFullControl = "bucket-owner-full-control"
8494)
8495
8496const (
8497	// EncryptionTypeAwsKms is a EncryptionType enum value
8498	EncryptionTypeAwsKms = "aws:kms"
8499
8500	// EncryptionTypeAes256 is a EncryptionType enum value
8501	EncryptionTypeAes256 = "AES256"
8502)
8503
8504const (
8505	// ExpressionTypeSql is a ExpressionType enum value
8506	ExpressionTypeSql = "SQL"
8507)
8508
8509const (
8510	// FileHeaderInfoUse is a FileHeaderInfo enum value
8511	FileHeaderInfoUse = "USE"
8512
8513	// FileHeaderInfoIgnore is a FileHeaderInfo enum value
8514	FileHeaderInfoIgnore = "IGNORE"
8515
8516	// FileHeaderInfoNone is a FileHeaderInfo enum value
8517	FileHeaderInfoNone = "NONE"
8518)
8519
8520const (
8521	// PermissionFullControl is a Permission enum value
8522	PermissionFullControl = "FULL_CONTROL"
8523
8524	// PermissionWrite is a Permission enum value
8525	PermissionWrite = "WRITE"
8526
8527	// PermissionWriteAcp is a Permission enum value
8528	PermissionWriteAcp = "WRITE_ACP"
8529
8530	// PermissionRead is a Permission enum value
8531	PermissionRead = "READ"
8532
8533	// PermissionReadAcp is a Permission enum value
8534	PermissionReadAcp = "READ_ACP"
8535)
8536
8537const (
8538	// QuoteFieldsAlways is a QuoteFields enum value
8539	QuoteFieldsAlways = "ALWAYS"
8540
8541	// QuoteFieldsAsneeded is a QuoteFields enum value
8542	QuoteFieldsAsneeded = "ASNEEDED"
8543)
8544
8545const (
8546	// StatusCodeInProgress is a StatusCode enum value
8547	StatusCodeInProgress = "InProgress"
8548
8549	// StatusCodeSucceeded is a StatusCode enum value
8550	StatusCodeSucceeded = "Succeeded"
8551
8552	// StatusCodeFailed is a StatusCode enum value
8553	StatusCodeFailed = "Failed"
8554)
8555
8556const (
8557	// StorageClassStandard is a StorageClass enum value
8558	StorageClassStandard = "STANDARD"
8559
8560	// StorageClassReducedRedundancy is a StorageClass enum value
8561	StorageClassReducedRedundancy = "REDUCED_REDUNDANCY"
8562
8563	// StorageClassStandardIa is a StorageClass enum value
8564	StorageClassStandardIa = "STANDARD_IA"
8565)
8566
8567const (
8568	// TypeAmazonCustomerByEmail is a Type enum value
8569	TypeAmazonCustomerByEmail = "AmazonCustomerByEmail"
8570
8571	// TypeCanonicalUser is a Type enum value
8572	TypeCanonicalUser = "CanonicalUser"
8573
8574	// TypeGroup is a Type enum value
8575	TypeGroup = "Group"
8576)
8577