github.com/aavshr/aws-sdk-go@v1.41.3/service/glacier/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package glacier
     4  
     5  import (
     6  	"fmt"
     7  	"io"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/restjson"
    14  )
    15  
    16  const 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  //    }
    40  func (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 Types:
    88  //   * ResourceNotFoundException
    89  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
    90  //   doesn't exist.
    91  //
    92  //   * InvalidParameterValueException
    93  //   Returned if a parameter of the request is incorrectly specified.
    94  //
    95  //   * MissingParameterValueException
    96  //   Returned if a required header or parameter is missing from the request.
    97  //
    98  //   * ServiceUnavailableException
    99  //   Returned if the service cannot complete the request.
   100  //
   101  func (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.
   115  func (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  
   122  const 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  //    }
   146  func (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 Types:
   190  //   * ResourceNotFoundException
   191  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
   192  //   doesn't exist.
   193  //
   194  //   * InvalidParameterValueException
   195  //   Returned if a parameter of the request is incorrectly specified.
   196  //
   197  //   * MissingParameterValueException
   198  //   Returned if a required header or parameter is missing from the request.
   199  //
   200  //   * ServiceUnavailableException
   201  //   Returned if the service cannot complete the request.
   202  //
   203  func (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.
   217  func (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  
   224  const 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  //    }
   248  func (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 Types:
   282  //   * InvalidParameterValueException
   283  //   Returned if a parameter of the request is incorrectly specified.
   284  //
   285  //   * MissingParameterValueException
   286  //   Returned if a required header or parameter is missing from the request.
   287  //
   288  //   * ResourceNotFoundException
   289  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
   290  //   doesn't exist.
   291  //
   292  //   * LimitExceededException
   293  //   Returned if the request results in a vault or account limit being exceeded.
   294  //
   295  //   * ServiceUnavailableException
   296  //   Returned if the service cannot complete the request.
   297  //
   298  func (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.
   312  func (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  
   319  const 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  //    }
   343  func (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 Types:
   414  //   * ResourceNotFoundException
   415  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
   416  //   doesn't exist.
   417  //
   418  //   * InvalidParameterValueException
   419  //   Returned if a parameter of the request is incorrectly specified.
   420  //
   421  //   * MissingParameterValueException
   422  //   Returned if a required header or parameter is missing from the request.
   423  //
   424  //   * ServiceUnavailableException
   425  //   Returned if the service cannot complete the request.
   426  //
   427  func (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.
   441  func (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  
   448  const 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  //    }
   472  func (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 Types:
   515  //   * ResourceNotFoundException
   516  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
   517  //   doesn't exist.
   518  //
   519  //   * InvalidParameterValueException
   520  //   Returned if a parameter of the request is incorrectly specified.
   521  //
   522  //   * MissingParameterValueException
   523  //   Returned if a required header or parameter is missing from the request.
   524  //
   525  //   * ServiceUnavailableException
   526  //   Returned if the service cannot complete the request.
   527  //
   528  func (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.
   542  func (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  
   549  const 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  //    }
   573  func (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 Types:
   624  //   * InvalidParameterValueException
   625  //   Returned if a parameter of the request is incorrectly specified.
   626  //
   627  //   * MissingParameterValueException
   628  //   Returned if a required header or parameter is missing from the request.
   629  //
   630  //   * ServiceUnavailableException
   631  //   Returned if the service cannot complete the request.
   632  //
   633  //   * LimitExceededException
   634  //   Returned if the request results in a vault or account limit being exceeded.
   635  //
   636  func (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.
   650  func (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  
   657  const 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  //    }
   681  func (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 Types:
   734  //   * ResourceNotFoundException
   735  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
   736  //   doesn't exist.
   737  //
   738  //   * InvalidParameterValueException
   739  //   Returned if a parameter of the request is incorrectly specified.
   740  //
   741  //   * MissingParameterValueException
   742  //   Returned if a required header or parameter is missing from the request.
   743  //
   744  //   * ServiceUnavailableException
   745  //   Returned if the service cannot complete the request.
   746  //
   747  func (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.
   761  func (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  
   768  const 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  //    }
   792  func (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 Types:
   843  //   * ResourceNotFoundException
   844  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
   845  //   doesn't exist.
   846  //
   847  //   * InvalidParameterValueException
   848  //   Returned if a parameter of the request is incorrectly specified.
   849  //
   850  //   * MissingParameterValueException
   851  //   Returned if a required header or parameter is missing from the request.
   852  //
   853  //   * ServiceUnavailableException
   854  //   Returned if the service cannot complete the request.
   855  //
   856  func (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.
   870  func (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  
   877  const 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  //    }
   901  func (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 Types:
   939  //   * ResourceNotFoundException
   940  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
   941  //   doesn't exist.
   942  //
   943  //   * InvalidParameterValueException
   944  //   Returned if a parameter of the request is incorrectly specified.
   945  //
   946  //   * MissingParameterValueException
   947  //   Returned if a required header or parameter is missing from the request.
   948  //
   949  //   * ServiceUnavailableException
   950  //   Returned if the service cannot complete the request.
   951  //
   952  func (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.
   966  func (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  
   973  const 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  //    }
   997  func (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 Types:
  1040  //   * ResourceNotFoundException
  1041  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  1042  //   doesn't exist.
  1043  //
  1044  //   * InvalidParameterValueException
  1045  //   Returned if a parameter of the request is incorrectly specified.
  1046  //
  1047  //   * MissingParameterValueException
  1048  //   Returned if a required header or parameter is missing from the request.
  1049  //
  1050  //   * ServiceUnavailableException
  1051  //   Returned if the service cannot complete the request.
  1052  //
  1053  func (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.
  1067  func (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  
  1074  const 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  //    }
  1098  func (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 Types:
  1148  //   * ResourceNotFoundException
  1149  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  1150  //   doesn't exist.
  1151  //
  1152  //   * InvalidParameterValueException
  1153  //   Returned if a parameter of the request is incorrectly specified.
  1154  //
  1155  //   * MissingParameterValueException
  1156  //   Returned if a required header or parameter is missing from the request.
  1157  //
  1158  //   * ServiceUnavailableException
  1159  //   Returned if the service cannot complete the request.
  1160  //
  1161  func (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.
  1175  func (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  
  1182  const 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  //    }
  1206  func (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 Types:
  1253  //   * ResourceNotFoundException
  1254  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  1255  //   doesn't exist.
  1256  //
  1257  //   * InvalidParameterValueException
  1258  //   Returned if a parameter of the request is incorrectly specified.
  1259  //
  1260  //   * MissingParameterValueException
  1261  //   Returned if a required header or parameter is missing from the request.
  1262  //
  1263  //   * ServiceUnavailableException
  1264  //   Returned if the service cannot complete the request.
  1265  //
  1266  func (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.
  1280  func (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  
  1287  const 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  //    }
  1311  func (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 Types:
  1341  //   * InvalidParameterValueException
  1342  //   Returned if a parameter of the request is incorrectly specified.
  1343  //
  1344  //   * MissingParameterValueException
  1345  //   Returned if a required header or parameter is missing from the request.
  1346  //
  1347  //   * ServiceUnavailableException
  1348  //   Returned if the service cannot complete the request.
  1349  //
  1350  func (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.
  1364  func (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  
  1371  const 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  //    }
  1395  func (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 Types:
  1466  //   * ResourceNotFoundException
  1467  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  1468  //   doesn't exist.
  1469  //
  1470  //   * InvalidParameterValueException
  1471  //   Returned if a parameter of the request is incorrectly specified.
  1472  //
  1473  //   * MissingParameterValueException
  1474  //   Returned if a required header or parameter is missing from the request.
  1475  //
  1476  //   * ServiceUnavailableException
  1477  //   Returned if the service cannot complete the request.
  1478  //
  1479  func (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.
  1493  func (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  
  1500  const 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  //    }
  1524  func (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 Types:
  1557  //   * ResourceNotFoundException
  1558  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  1559  //   doesn't exist.
  1560  //
  1561  //   * InvalidParameterValueException
  1562  //   Returned if a parameter of the request is incorrectly specified.
  1563  //
  1564  //   * MissingParameterValueException
  1565  //   Returned if a required header or parameter is missing from the request.
  1566  //
  1567  //   * ServiceUnavailableException
  1568  //   Returned if the service cannot complete the request.
  1569  //
  1570  func (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.
  1584  func (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  
  1591  const 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  //    }
  1615  func (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 Types:
  1662  //   * ResourceNotFoundException
  1663  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  1664  //   doesn't exist.
  1665  //
  1666  //   * InvalidParameterValueException
  1667  //   Returned if a parameter of the request is incorrectly specified.
  1668  //
  1669  //   * MissingParameterValueException
  1670  //   Returned if a required header or parameter is missing from the request.
  1671  //
  1672  //   * ServiceUnavailableException
  1673  //   Returned if the service cannot complete the request.
  1674  //
  1675  func (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.
  1689  func (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  
  1696  const 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  //    }
  1720  func (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 Types:
  1766  //   * ResourceNotFoundException
  1767  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  1768  //   doesn't exist.
  1769  //
  1770  //   * InvalidParameterValueException
  1771  //   Returned if a parameter of the request is incorrectly specified.
  1772  //
  1773  //   * MissingParameterValueException
  1774  //   Returned if a required header or parameter is missing from the request.
  1775  //
  1776  //   * ServiceUnavailableException
  1777  //   Returned if the service cannot complete the request.
  1778  //
  1779  func (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.
  1793  func (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  
  1800  const 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  //    }
  1824  func (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 Types:
  1855  //   * ResourceNotFoundException
  1856  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  1857  //   doesn't exist.
  1858  //
  1859  //   * 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  //   * InvalidParameterValueException
  1864  //   Returned if a parameter of the request is incorrectly specified.
  1865  //
  1866  //   * MissingParameterValueException
  1867  //   Returned if a required header or parameter is missing from the request.
  1868  //
  1869  //   * 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  //   * ServiceUnavailableException
  1875  //   Returned if the service cannot complete the request.
  1876  //
  1877  func (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.
  1891  func (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  
  1898  const 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  //    }
  1922  func (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 Types:
  1985  //   * ResourceNotFoundException
  1986  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  1987  //   doesn't exist.
  1988  //
  1989  //   * InvalidParameterValueException
  1990  //   Returned if a parameter of the request is incorrectly specified.
  1991  //
  1992  //   * MissingParameterValueException
  1993  //   Returned if a required header or parameter is missing from the request.
  1994  //
  1995  //   * ServiceUnavailableException
  1996  //   Returned if the service cannot complete the request.
  1997  //
  1998  func (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.
  2012  func (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  
  2019  const 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  //    }
  2043  func (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 Types:
  2099  //   * ResourceNotFoundException
  2100  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  2101  //   doesn't exist.
  2102  //
  2103  //   * InvalidParameterValueException
  2104  //   Returned if a parameter of the request is incorrectly specified.
  2105  //
  2106  //   * MissingParameterValueException
  2107  //   Returned if a required header or parameter is missing from the request.
  2108  //
  2109  //   * ServiceUnavailableException
  2110  //   Returned if the service cannot complete the request.
  2111  //
  2112  func (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.
  2126  func (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  
  2133  const 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  //    }
  2157  func (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 Types:
  2226  //   * ResourceNotFoundException
  2227  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  2228  //   doesn't exist.
  2229  //
  2230  //   * InvalidParameterValueException
  2231  //   Returned if a parameter of the request is incorrectly specified.
  2232  //
  2233  //   * MissingParameterValueException
  2234  //   Returned if a required header or parameter is missing from the request.
  2235  //
  2236  //   * ServiceUnavailableException
  2237  //   Returned if the service cannot complete the request.
  2238  //
  2239  func (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.
  2253  func (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  //
  2277  func (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.
  2288  func (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  	for p.Next() {
  2304  		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
  2305  			break
  2306  		}
  2307  	}
  2308  
  2309  	return p.Err()
  2310  }
  2311  
  2312  const opListMultipartUploads = "ListMultipartUploads"
  2313  
  2314  // ListMultipartUploadsRequest generates a "aws/request.Request" representing the
  2315  // client's request for the ListMultipartUploads operation. The "output" return
  2316  // value will be populated with the request's response once the request completes
  2317  // successfully.
  2318  //
  2319  // Use "Send" method on the returned Request to send the API call to the service.
  2320  // the "output" return value is not valid until after Send returns without error.
  2321  //
  2322  // See ListMultipartUploads for more information on using the ListMultipartUploads
  2323  // API call, and error handling.
  2324  //
  2325  // This method is useful when you want to inject custom logic or configuration
  2326  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2327  //
  2328  //
  2329  //    // Example sending a request using the ListMultipartUploadsRequest method.
  2330  //    req, resp := client.ListMultipartUploadsRequest(params)
  2331  //
  2332  //    err := req.Send()
  2333  //    if err == nil { // resp is now filled
  2334  //        fmt.Println(resp)
  2335  //    }
  2336  func (c *Glacier) ListMultipartUploadsRequest(input *ListMultipartUploadsInput) (req *request.Request, output *ListMultipartUploadsOutput) {
  2337  	op := &request.Operation{
  2338  		Name:       opListMultipartUploads,
  2339  		HTTPMethod: "GET",
  2340  		HTTPPath:   "/{accountId}/vaults/{vaultName}/multipart-uploads",
  2341  		Paginator: &request.Paginator{
  2342  			InputTokens:     []string{"marker"},
  2343  			OutputTokens:    []string{"Marker"},
  2344  			LimitToken:      "limit",
  2345  			TruncationToken: "",
  2346  		},
  2347  	}
  2348  
  2349  	if input == nil {
  2350  		input = &ListMultipartUploadsInput{}
  2351  	}
  2352  
  2353  	output = &ListMultipartUploadsOutput{}
  2354  	req = c.newRequest(op, input, output)
  2355  	return
  2356  }
  2357  
  2358  // ListMultipartUploads API operation for Amazon Glacier.
  2359  //
  2360  // This operation lists in-progress multipart uploads for the specified vault.
  2361  // An in-progress multipart upload is a multipart upload that has been initiated
  2362  // by an InitiateMultipartUpload request, but has not yet been completed or
  2363  // aborted. The list returned in the List Multipart Upload response has no guaranteed
  2364  // order.
  2365  //
  2366  // The List Multipart Uploads operation supports pagination. By default, this
  2367  // operation returns up to 50 multipart uploads in the response. You should
  2368  // always check the response for a marker at which to continue the list; if
  2369  // there are no more items the marker is null. To return a list of multipart
  2370  // uploads that begins at a specific upload, set the marker request parameter
  2371  // to the value you obtained from a previous List Multipart Upload request.
  2372  // You can also limit the number of uploads returned in the response by specifying
  2373  // the limit parameter in the request.
  2374  //
  2375  // Note the difference between this operation and listing parts (ListParts).
  2376  // The List Multipart Uploads operation lists all multipart uploads for a vault
  2377  // and does not require a multipart upload ID. The List Parts operation requires
  2378  // a multipart upload ID since parts are associated with a single upload.
  2379  //
  2380  // An AWS account has full permission to perform all operations (actions). However,
  2381  // AWS Identity and Access Management (IAM) users don't have any permissions
  2382  // by default. You must grant them explicit permission to perform specific actions.
  2383  // For more information, see Access Control Using AWS Identity and Access Management
  2384  // (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
  2385  //
  2386  // For conceptual information and the underlying REST API, see Working with
  2387  // Archives in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html)
  2388  // and List Multipart Uploads (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-list-uploads.html)
  2389  // in the Amazon Glacier Developer Guide.
  2390  //
  2391  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2392  // with awserr.Error's Code and Message methods to get detailed information about
  2393  // the error.
  2394  //
  2395  // See the AWS API reference guide for Amazon Glacier's
  2396  // API operation ListMultipartUploads for usage and error information.
  2397  //
  2398  // Returned Error Types:
  2399  //   * ResourceNotFoundException
  2400  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  2401  //   doesn't exist.
  2402  //
  2403  //   * InvalidParameterValueException
  2404  //   Returned if a parameter of the request is incorrectly specified.
  2405  //
  2406  //   * MissingParameterValueException
  2407  //   Returned if a required header or parameter is missing from the request.
  2408  //
  2409  //   * ServiceUnavailableException
  2410  //   Returned if the service cannot complete the request.
  2411  //
  2412  func (c *Glacier) ListMultipartUploads(input *ListMultipartUploadsInput) (*ListMultipartUploadsOutput, error) {
  2413  	req, out := c.ListMultipartUploadsRequest(input)
  2414  	return out, req.Send()
  2415  }
  2416  
  2417  // ListMultipartUploadsWithContext is the same as ListMultipartUploads with the addition of
  2418  // the ability to pass a context and additional request options.
  2419  //
  2420  // See ListMultipartUploads for details on how to use this API operation.
  2421  //
  2422  // The context must be non-nil and will be used for request cancellation. If
  2423  // the context is nil a panic will occur. In the future the SDK may create
  2424  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2425  // for more information on using Contexts.
  2426  func (c *Glacier) ListMultipartUploadsWithContext(ctx aws.Context, input *ListMultipartUploadsInput, opts ...request.Option) (*ListMultipartUploadsOutput, error) {
  2427  	req, out := c.ListMultipartUploadsRequest(input)
  2428  	req.SetContext(ctx)
  2429  	req.ApplyOptions(opts...)
  2430  	return out, req.Send()
  2431  }
  2432  
  2433  // ListMultipartUploadsPages iterates over the pages of a ListMultipartUploads operation,
  2434  // calling the "fn" function with the response data for each page. To stop
  2435  // iterating, return false from the fn function.
  2436  //
  2437  // See ListMultipartUploads method for more information on how to use this operation.
  2438  //
  2439  // Note: This operation can generate multiple requests to a service.
  2440  //
  2441  //    // Example iterating over at most 3 pages of a ListMultipartUploads operation.
  2442  //    pageNum := 0
  2443  //    err := client.ListMultipartUploadsPages(params,
  2444  //        func(page *glacier.ListMultipartUploadsOutput, lastPage bool) bool {
  2445  //            pageNum++
  2446  //            fmt.Println(page)
  2447  //            return pageNum <= 3
  2448  //        })
  2449  //
  2450  func (c *Glacier) ListMultipartUploadsPages(input *ListMultipartUploadsInput, fn func(*ListMultipartUploadsOutput, bool) bool) error {
  2451  	return c.ListMultipartUploadsPagesWithContext(aws.BackgroundContext(), input, fn)
  2452  }
  2453  
  2454  // ListMultipartUploadsPagesWithContext same as ListMultipartUploadsPages except
  2455  // it takes a Context and allows setting request options on the pages.
  2456  //
  2457  // The context must be non-nil and will be used for request cancellation. If
  2458  // the context is nil a panic will occur. In the future the SDK may create
  2459  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2460  // for more information on using Contexts.
  2461  func (c *Glacier) ListMultipartUploadsPagesWithContext(ctx aws.Context, input *ListMultipartUploadsInput, fn func(*ListMultipartUploadsOutput, bool) bool, opts ...request.Option) error {
  2462  	p := request.Pagination{
  2463  		NewRequest: func() (*request.Request, error) {
  2464  			var inCpy *ListMultipartUploadsInput
  2465  			if input != nil {
  2466  				tmp := *input
  2467  				inCpy = &tmp
  2468  			}
  2469  			req, _ := c.ListMultipartUploadsRequest(inCpy)
  2470  			req.SetContext(ctx)
  2471  			req.ApplyOptions(opts...)
  2472  			return req, nil
  2473  		},
  2474  	}
  2475  
  2476  	for p.Next() {
  2477  		if !fn(p.Page().(*ListMultipartUploadsOutput), !p.HasNextPage()) {
  2478  			break
  2479  		}
  2480  	}
  2481  
  2482  	return p.Err()
  2483  }
  2484  
  2485  const opListParts = "ListParts"
  2486  
  2487  // ListPartsRequest generates a "aws/request.Request" representing the
  2488  // client's request for the ListParts operation. The "output" return
  2489  // value will be populated with the request's response once the request completes
  2490  // successfully.
  2491  //
  2492  // Use "Send" method on the returned Request to send the API call to the service.
  2493  // the "output" return value is not valid until after Send returns without error.
  2494  //
  2495  // See ListParts for more information on using the ListParts
  2496  // API call, and error handling.
  2497  //
  2498  // This method is useful when you want to inject custom logic or configuration
  2499  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2500  //
  2501  //
  2502  //    // Example sending a request using the ListPartsRequest method.
  2503  //    req, resp := client.ListPartsRequest(params)
  2504  //
  2505  //    err := req.Send()
  2506  //    if err == nil { // resp is now filled
  2507  //        fmt.Println(resp)
  2508  //    }
  2509  func (c *Glacier) ListPartsRequest(input *ListPartsInput) (req *request.Request, output *ListPartsOutput) {
  2510  	op := &request.Operation{
  2511  		Name:       opListParts,
  2512  		HTTPMethod: "GET",
  2513  		HTTPPath:   "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}",
  2514  		Paginator: &request.Paginator{
  2515  			InputTokens:     []string{"marker"},
  2516  			OutputTokens:    []string{"Marker"},
  2517  			LimitToken:      "limit",
  2518  			TruncationToken: "",
  2519  		},
  2520  	}
  2521  
  2522  	if input == nil {
  2523  		input = &ListPartsInput{}
  2524  	}
  2525  
  2526  	output = &ListPartsOutput{}
  2527  	req = c.newRequest(op, input, output)
  2528  	return
  2529  }
  2530  
  2531  // ListParts API operation for Amazon Glacier.
  2532  //
  2533  // This operation lists the parts of an archive that have been uploaded in a
  2534  // specific multipart upload. You can make this request at any time during an
  2535  // in-progress multipart upload before you complete the upload (see CompleteMultipartUpload.
  2536  // List Parts returns an error for completed uploads. The list returned in the
  2537  // List Parts response is sorted by part range.
  2538  //
  2539  // The List Parts operation supports pagination. By default, this operation
  2540  // returns up to 50 uploaded parts in the response. You should always check
  2541  // the response for a marker at which to continue the list; if there are no
  2542  // more items the marker is null. To return a list of parts that begins at a
  2543  // specific part, set the marker request parameter to the value you obtained
  2544  // from a previous List Parts request. You can also limit the number of parts
  2545  // returned in the response by specifying the limit parameter in the request.
  2546  //
  2547  // An AWS account has full permission to perform all operations (actions). However,
  2548  // AWS Identity and Access Management (IAM) users don't have any permissions
  2549  // by default. You must grant them explicit permission to perform specific actions.
  2550  // For more information, see Access Control Using AWS Identity and Access Management
  2551  // (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
  2552  //
  2553  // For conceptual information and the underlying REST API, see Working with
  2554  // Archives in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html)
  2555  // and List Parts (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-list-parts.html)
  2556  // in the Amazon Glacier Developer Guide.
  2557  //
  2558  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2559  // with awserr.Error's Code and Message methods to get detailed information about
  2560  // the error.
  2561  //
  2562  // See the AWS API reference guide for Amazon Glacier's
  2563  // API operation ListParts for usage and error information.
  2564  //
  2565  // Returned Error Types:
  2566  //   * ResourceNotFoundException
  2567  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  2568  //   doesn't exist.
  2569  //
  2570  //   * InvalidParameterValueException
  2571  //   Returned if a parameter of the request is incorrectly specified.
  2572  //
  2573  //   * MissingParameterValueException
  2574  //   Returned if a required header or parameter is missing from the request.
  2575  //
  2576  //   * ServiceUnavailableException
  2577  //   Returned if the service cannot complete the request.
  2578  //
  2579  func (c *Glacier) ListParts(input *ListPartsInput) (*ListPartsOutput, error) {
  2580  	req, out := c.ListPartsRequest(input)
  2581  	return out, req.Send()
  2582  }
  2583  
  2584  // ListPartsWithContext is the same as ListParts with the addition of
  2585  // the ability to pass a context and additional request options.
  2586  //
  2587  // See ListParts for details on how to use this API operation.
  2588  //
  2589  // The context must be non-nil and will be used for request cancellation. If
  2590  // the context is nil a panic will occur. In the future the SDK may create
  2591  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2592  // for more information on using Contexts.
  2593  func (c *Glacier) ListPartsWithContext(ctx aws.Context, input *ListPartsInput, opts ...request.Option) (*ListPartsOutput, error) {
  2594  	req, out := c.ListPartsRequest(input)
  2595  	req.SetContext(ctx)
  2596  	req.ApplyOptions(opts...)
  2597  	return out, req.Send()
  2598  }
  2599  
  2600  // ListPartsPages iterates over the pages of a ListParts operation,
  2601  // calling the "fn" function with the response data for each page. To stop
  2602  // iterating, return false from the fn function.
  2603  //
  2604  // See ListParts method for more information on how to use this operation.
  2605  //
  2606  // Note: This operation can generate multiple requests to a service.
  2607  //
  2608  //    // Example iterating over at most 3 pages of a ListParts operation.
  2609  //    pageNum := 0
  2610  //    err := client.ListPartsPages(params,
  2611  //        func(page *glacier.ListPartsOutput, lastPage bool) bool {
  2612  //            pageNum++
  2613  //            fmt.Println(page)
  2614  //            return pageNum <= 3
  2615  //        })
  2616  //
  2617  func (c *Glacier) ListPartsPages(input *ListPartsInput, fn func(*ListPartsOutput, bool) bool) error {
  2618  	return c.ListPartsPagesWithContext(aws.BackgroundContext(), input, fn)
  2619  }
  2620  
  2621  // ListPartsPagesWithContext same as ListPartsPages except
  2622  // it takes a Context and allows setting request options on the pages.
  2623  //
  2624  // The context must be non-nil and will be used for request cancellation. If
  2625  // the context is nil a panic will occur. In the future the SDK may create
  2626  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2627  // for more information on using Contexts.
  2628  func (c *Glacier) ListPartsPagesWithContext(ctx aws.Context, input *ListPartsInput, fn func(*ListPartsOutput, bool) bool, opts ...request.Option) error {
  2629  	p := request.Pagination{
  2630  		NewRequest: func() (*request.Request, error) {
  2631  			var inCpy *ListPartsInput
  2632  			if input != nil {
  2633  				tmp := *input
  2634  				inCpy = &tmp
  2635  			}
  2636  			req, _ := c.ListPartsRequest(inCpy)
  2637  			req.SetContext(ctx)
  2638  			req.ApplyOptions(opts...)
  2639  			return req, nil
  2640  		},
  2641  	}
  2642  
  2643  	for p.Next() {
  2644  		if !fn(p.Page().(*ListPartsOutput), !p.HasNextPage()) {
  2645  			break
  2646  		}
  2647  	}
  2648  
  2649  	return p.Err()
  2650  }
  2651  
  2652  const opListProvisionedCapacity = "ListProvisionedCapacity"
  2653  
  2654  // ListProvisionedCapacityRequest generates a "aws/request.Request" representing the
  2655  // client's request for the ListProvisionedCapacity operation. The "output" return
  2656  // value will be populated with the request's response once the request completes
  2657  // successfully.
  2658  //
  2659  // Use "Send" method on the returned Request to send the API call to the service.
  2660  // the "output" return value is not valid until after Send returns without error.
  2661  //
  2662  // See ListProvisionedCapacity for more information on using the ListProvisionedCapacity
  2663  // API call, and error handling.
  2664  //
  2665  // This method is useful when you want to inject custom logic or configuration
  2666  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2667  //
  2668  //
  2669  //    // Example sending a request using the ListProvisionedCapacityRequest method.
  2670  //    req, resp := client.ListProvisionedCapacityRequest(params)
  2671  //
  2672  //    err := req.Send()
  2673  //    if err == nil { // resp is now filled
  2674  //        fmt.Println(resp)
  2675  //    }
  2676  func (c *Glacier) ListProvisionedCapacityRequest(input *ListProvisionedCapacityInput) (req *request.Request, output *ListProvisionedCapacityOutput) {
  2677  	op := &request.Operation{
  2678  		Name:       opListProvisionedCapacity,
  2679  		HTTPMethod: "GET",
  2680  		HTTPPath:   "/{accountId}/provisioned-capacity",
  2681  	}
  2682  
  2683  	if input == nil {
  2684  		input = &ListProvisionedCapacityInput{}
  2685  	}
  2686  
  2687  	output = &ListProvisionedCapacityOutput{}
  2688  	req = c.newRequest(op, input, output)
  2689  	return
  2690  }
  2691  
  2692  // ListProvisionedCapacity API operation for Amazon Glacier.
  2693  //
  2694  // This operation lists the provisioned capacity units for the specified AWS
  2695  // account.
  2696  //
  2697  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2698  // with awserr.Error's Code and Message methods to get detailed information about
  2699  // the error.
  2700  //
  2701  // See the AWS API reference guide for Amazon Glacier's
  2702  // API operation ListProvisionedCapacity for usage and error information.
  2703  //
  2704  // Returned Error Types:
  2705  //   * InvalidParameterValueException
  2706  //   Returned if a parameter of the request is incorrectly specified.
  2707  //
  2708  //   * MissingParameterValueException
  2709  //   Returned if a required header or parameter is missing from the request.
  2710  //
  2711  //   * ServiceUnavailableException
  2712  //   Returned if the service cannot complete the request.
  2713  //
  2714  func (c *Glacier) ListProvisionedCapacity(input *ListProvisionedCapacityInput) (*ListProvisionedCapacityOutput, error) {
  2715  	req, out := c.ListProvisionedCapacityRequest(input)
  2716  	return out, req.Send()
  2717  }
  2718  
  2719  // ListProvisionedCapacityWithContext is the same as ListProvisionedCapacity with the addition of
  2720  // the ability to pass a context and additional request options.
  2721  //
  2722  // See ListProvisionedCapacity for details on how to use this API operation.
  2723  //
  2724  // The context must be non-nil and will be used for request cancellation. If
  2725  // the context is nil a panic will occur. In the future the SDK may create
  2726  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2727  // for more information on using Contexts.
  2728  func (c *Glacier) ListProvisionedCapacityWithContext(ctx aws.Context, input *ListProvisionedCapacityInput, opts ...request.Option) (*ListProvisionedCapacityOutput, error) {
  2729  	req, out := c.ListProvisionedCapacityRequest(input)
  2730  	req.SetContext(ctx)
  2731  	req.ApplyOptions(opts...)
  2732  	return out, req.Send()
  2733  }
  2734  
  2735  const opListTagsForVault = "ListTagsForVault"
  2736  
  2737  // ListTagsForVaultRequest generates a "aws/request.Request" representing the
  2738  // client's request for the ListTagsForVault operation. The "output" return
  2739  // value will be populated with the request's response once the request completes
  2740  // successfully.
  2741  //
  2742  // Use "Send" method on the returned Request to send the API call to the service.
  2743  // the "output" return value is not valid until after Send returns without error.
  2744  //
  2745  // See ListTagsForVault for more information on using the ListTagsForVault
  2746  // API call, and error handling.
  2747  //
  2748  // This method is useful when you want to inject custom logic or configuration
  2749  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2750  //
  2751  //
  2752  //    // Example sending a request using the ListTagsForVaultRequest method.
  2753  //    req, resp := client.ListTagsForVaultRequest(params)
  2754  //
  2755  //    err := req.Send()
  2756  //    if err == nil { // resp is now filled
  2757  //        fmt.Println(resp)
  2758  //    }
  2759  func (c *Glacier) ListTagsForVaultRequest(input *ListTagsForVaultInput) (req *request.Request, output *ListTagsForVaultOutput) {
  2760  	op := &request.Operation{
  2761  		Name:       opListTagsForVault,
  2762  		HTTPMethod: "GET",
  2763  		HTTPPath:   "/{accountId}/vaults/{vaultName}/tags",
  2764  	}
  2765  
  2766  	if input == nil {
  2767  		input = &ListTagsForVaultInput{}
  2768  	}
  2769  
  2770  	output = &ListTagsForVaultOutput{}
  2771  	req = c.newRequest(op, input, output)
  2772  	return
  2773  }
  2774  
  2775  // ListTagsForVault API operation for Amazon Glacier.
  2776  //
  2777  // This operation lists all the tags attached to a vault. The operation returns
  2778  // an empty map if there are no tags. For more information about tags, see Tagging
  2779  // Amazon S3 Glacier Resources (https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html).
  2780  //
  2781  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2782  // with awserr.Error's Code and Message methods to get detailed information about
  2783  // the error.
  2784  //
  2785  // See the AWS API reference guide for Amazon Glacier's
  2786  // API operation ListTagsForVault for usage and error information.
  2787  //
  2788  // Returned Error Types:
  2789  //   * InvalidParameterValueException
  2790  //   Returned if a parameter of the request is incorrectly specified.
  2791  //
  2792  //   * MissingParameterValueException
  2793  //   Returned if a required header or parameter is missing from the request.
  2794  //
  2795  //   * ResourceNotFoundException
  2796  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  2797  //   doesn't exist.
  2798  //
  2799  //   * ServiceUnavailableException
  2800  //   Returned if the service cannot complete the request.
  2801  //
  2802  func (c *Glacier) ListTagsForVault(input *ListTagsForVaultInput) (*ListTagsForVaultOutput, error) {
  2803  	req, out := c.ListTagsForVaultRequest(input)
  2804  	return out, req.Send()
  2805  }
  2806  
  2807  // ListTagsForVaultWithContext is the same as ListTagsForVault with the addition of
  2808  // the ability to pass a context and additional request options.
  2809  //
  2810  // See ListTagsForVault for details on how to use this API operation.
  2811  //
  2812  // The context must be non-nil and will be used for request cancellation. If
  2813  // the context is nil a panic will occur. In the future the SDK may create
  2814  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2815  // for more information on using Contexts.
  2816  func (c *Glacier) ListTagsForVaultWithContext(ctx aws.Context, input *ListTagsForVaultInput, opts ...request.Option) (*ListTagsForVaultOutput, error) {
  2817  	req, out := c.ListTagsForVaultRequest(input)
  2818  	req.SetContext(ctx)
  2819  	req.ApplyOptions(opts...)
  2820  	return out, req.Send()
  2821  }
  2822  
  2823  const opListVaults = "ListVaults"
  2824  
  2825  // ListVaultsRequest generates a "aws/request.Request" representing the
  2826  // client's request for the ListVaults operation. The "output" return
  2827  // value will be populated with the request's response once the request completes
  2828  // successfully.
  2829  //
  2830  // Use "Send" method on the returned Request to send the API call to the service.
  2831  // the "output" return value is not valid until after Send returns without error.
  2832  //
  2833  // See ListVaults for more information on using the ListVaults
  2834  // API call, and error handling.
  2835  //
  2836  // This method is useful when you want to inject custom logic or configuration
  2837  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2838  //
  2839  //
  2840  //    // Example sending a request using the ListVaultsRequest method.
  2841  //    req, resp := client.ListVaultsRequest(params)
  2842  //
  2843  //    err := req.Send()
  2844  //    if err == nil { // resp is now filled
  2845  //        fmt.Println(resp)
  2846  //    }
  2847  func (c *Glacier) ListVaultsRequest(input *ListVaultsInput) (req *request.Request, output *ListVaultsOutput) {
  2848  	op := &request.Operation{
  2849  		Name:       opListVaults,
  2850  		HTTPMethod: "GET",
  2851  		HTTPPath:   "/{accountId}/vaults",
  2852  		Paginator: &request.Paginator{
  2853  			InputTokens:     []string{"marker"},
  2854  			OutputTokens:    []string{"Marker"},
  2855  			LimitToken:      "limit",
  2856  			TruncationToken: "",
  2857  		},
  2858  	}
  2859  
  2860  	if input == nil {
  2861  		input = &ListVaultsInput{}
  2862  	}
  2863  
  2864  	output = &ListVaultsOutput{}
  2865  	req = c.newRequest(op, input, output)
  2866  	return
  2867  }
  2868  
  2869  // ListVaults API operation for Amazon Glacier.
  2870  //
  2871  // This operation lists all vaults owned by the calling user's account. The
  2872  // list returned in the response is ASCII-sorted by vault name.
  2873  //
  2874  // By default, this operation returns up to 10 items. If there are more vaults
  2875  // to list, the response marker field contains the vault Amazon Resource Name
  2876  // (ARN) at which to continue the list with a new List Vaults request; otherwise,
  2877  // the marker field is null. To return a list of vaults that begins at a specific
  2878  // vault, set the marker request parameter to the vault ARN you obtained from
  2879  // a previous List Vaults request. You can also limit the number of vaults returned
  2880  // in the response by specifying the limit parameter in the request.
  2881  //
  2882  // An AWS account has full permission to perform all operations (actions). However,
  2883  // AWS Identity and Access Management (IAM) users don't have any permissions
  2884  // by default. You must grant them explicit permission to perform specific actions.
  2885  // For more information, see Access Control Using AWS Identity and Access Management
  2886  // (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
  2887  //
  2888  // For conceptual information and underlying REST API, see Retrieving Vault
  2889  // Metadata in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/retrieving-vault-info.html)
  2890  // and List Vaults (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vaults-get.html)
  2891  // in the Amazon Glacier Developer Guide.
  2892  //
  2893  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2894  // with awserr.Error's Code and Message methods to get detailed information about
  2895  // the error.
  2896  //
  2897  // See the AWS API reference guide for Amazon Glacier's
  2898  // API operation ListVaults for usage and error information.
  2899  //
  2900  // Returned Error Types:
  2901  //   * ResourceNotFoundException
  2902  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  2903  //   doesn't exist.
  2904  //
  2905  //   * InvalidParameterValueException
  2906  //   Returned if a parameter of the request is incorrectly specified.
  2907  //
  2908  //   * MissingParameterValueException
  2909  //   Returned if a required header or parameter is missing from the request.
  2910  //
  2911  //   * ServiceUnavailableException
  2912  //   Returned if the service cannot complete the request.
  2913  //
  2914  func (c *Glacier) ListVaults(input *ListVaultsInput) (*ListVaultsOutput, error) {
  2915  	req, out := c.ListVaultsRequest(input)
  2916  	return out, req.Send()
  2917  }
  2918  
  2919  // ListVaultsWithContext is the same as ListVaults with the addition of
  2920  // the ability to pass a context and additional request options.
  2921  //
  2922  // See ListVaults for details on how to use this API operation.
  2923  //
  2924  // The context must be non-nil and will be used for request cancellation. If
  2925  // the context is nil a panic will occur. In the future the SDK may create
  2926  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2927  // for more information on using Contexts.
  2928  func (c *Glacier) ListVaultsWithContext(ctx aws.Context, input *ListVaultsInput, opts ...request.Option) (*ListVaultsOutput, error) {
  2929  	req, out := c.ListVaultsRequest(input)
  2930  	req.SetContext(ctx)
  2931  	req.ApplyOptions(opts...)
  2932  	return out, req.Send()
  2933  }
  2934  
  2935  // ListVaultsPages iterates over the pages of a ListVaults operation,
  2936  // calling the "fn" function with the response data for each page. To stop
  2937  // iterating, return false from the fn function.
  2938  //
  2939  // See ListVaults method for more information on how to use this operation.
  2940  //
  2941  // Note: This operation can generate multiple requests to a service.
  2942  //
  2943  //    // Example iterating over at most 3 pages of a ListVaults operation.
  2944  //    pageNum := 0
  2945  //    err := client.ListVaultsPages(params,
  2946  //        func(page *glacier.ListVaultsOutput, lastPage bool) bool {
  2947  //            pageNum++
  2948  //            fmt.Println(page)
  2949  //            return pageNum <= 3
  2950  //        })
  2951  //
  2952  func (c *Glacier) ListVaultsPages(input *ListVaultsInput, fn func(*ListVaultsOutput, bool) bool) error {
  2953  	return c.ListVaultsPagesWithContext(aws.BackgroundContext(), input, fn)
  2954  }
  2955  
  2956  // ListVaultsPagesWithContext same as ListVaultsPages except
  2957  // it takes a Context and allows setting request options on the pages.
  2958  //
  2959  // The context must be non-nil and will be used for request cancellation. If
  2960  // the context is nil a panic will occur. In the future the SDK may create
  2961  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2962  // for more information on using Contexts.
  2963  func (c *Glacier) ListVaultsPagesWithContext(ctx aws.Context, input *ListVaultsInput, fn func(*ListVaultsOutput, bool) bool, opts ...request.Option) error {
  2964  	p := request.Pagination{
  2965  		NewRequest: func() (*request.Request, error) {
  2966  			var inCpy *ListVaultsInput
  2967  			if input != nil {
  2968  				tmp := *input
  2969  				inCpy = &tmp
  2970  			}
  2971  			req, _ := c.ListVaultsRequest(inCpy)
  2972  			req.SetContext(ctx)
  2973  			req.ApplyOptions(opts...)
  2974  			return req, nil
  2975  		},
  2976  	}
  2977  
  2978  	for p.Next() {
  2979  		if !fn(p.Page().(*ListVaultsOutput), !p.HasNextPage()) {
  2980  			break
  2981  		}
  2982  	}
  2983  
  2984  	return p.Err()
  2985  }
  2986  
  2987  const opPurchaseProvisionedCapacity = "PurchaseProvisionedCapacity"
  2988  
  2989  // PurchaseProvisionedCapacityRequest generates a "aws/request.Request" representing the
  2990  // client's request for the PurchaseProvisionedCapacity operation. The "output" return
  2991  // value will be populated with the request's response once the request completes
  2992  // successfully.
  2993  //
  2994  // Use "Send" method on the returned Request to send the API call to the service.
  2995  // the "output" return value is not valid until after Send returns without error.
  2996  //
  2997  // See PurchaseProvisionedCapacity for more information on using the PurchaseProvisionedCapacity
  2998  // API call, and error handling.
  2999  //
  3000  // This method is useful when you want to inject custom logic or configuration
  3001  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3002  //
  3003  //
  3004  //    // Example sending a request using the PurchaseProvisionedCapacityRequest method.
  3005  //    req, resp := client.PurchaseProvisionedCapacityRequest(params)
  3006  //
  3007  //    err := req.Send()
  3008  //    if err == nil { // resp is now filled
  3009  //        fmt.Println(resp)
  3010  //    }
  3011  func (c *Glacier) PurchaseProvisionedCapacityRequest(input *PurchaseProvisionedCapacityInput) (req *request.Request, output *PurchaseProvisionedCapacityOutput) {
  3012  	op := &request.Operation{
  3013  		Name:       opPurchaseProvisionedCapacity,
  3014  		HTTPMethod: "POST",
  3015  		HTTPPath:   "/{accountId}/provisioned-capacity",
  3016  	}
  3017  
  3018  	if input == nil {
  3019  		input = &PurchaseProvisionedCapacityInput{}
  3020  	}
  3021  
  3022  	output = &PurchaseProvisionedCapacityOutput{}
  3023  	req = c.newRequest(op, input, output)
  3024  	return
  3025  }
  3026  
  3027  // PurchaseProvisionedCapacity API operation for Amazon Glacier.
  3028  //
  3029  // This operation purchases a provisioned capacity unit for an AWS account.
  3030  //
  3031  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3032  // with awserr.Error's Code and Message methods to get detailed information about
  3033  // the error.
  3034  //
  3035  // See the AWS API reference guide for Amazon Glacier's
  3036  // API operation PurchaseProvisionedCapacity for usage and error information.
  3037  //
  3038  // Returned Error Types:
  3039  //   * InvalidParameterValueException
  3040  //   Returned if a parameter of the request is incorrectly specified.
  3041  //
  3042  //   * MissingParameterValueException
  3043  //   Returned if a required header or parameter is missing from the request.
  3044  //
  3045  //   * LimitExceededException
  3046  //   Returned if the request results in a vault or account limit being exceeded.
  3047  //
  3048  //   * ServiceUnavailableException
  3049  //   Returned if the service cannot complete the request.
  3050  //
  3051  func (c *Glacier) PurchaseProvisionedCapacity(input *PurchaseProvisionedCapacityInput) (*PurchaseProvisionedCapacityOutput, error) {
  3052  	req, out := c.PurchaseProvisionedCapacityRequest(input)
  3053  	return out, req.Send()
  3054  }
  3055  
  3056  // PurchaseProvisionedCapacityWithContext is the same as PurchaseProvisionedCapacity with the addition of
  3057  // the ability to pass a context and additional request options.
  3058  //
  3059  // See PurchaseProvisionedCapacity for details on how to use this API operation.
  3060  //
  3061  // The context must be non-nil and will be used for request cancellation. If
  3062  // the context is nil a panic will occur. In the future the SDK may create
  3063  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3064  // for more information on using Contexts.
  3065  func (c *Glacier) PurchaseProvisionedCapacityWithContext(ctx aws.Context, input *PurchaseProvisionedCapacityInput, opts ...request.Option) (*PurchaseProvisionedCapacityOutput, error) {
  3066  	req, out := c.PurchaseProvisionedCapacityRequest(input)
  3067  	req.SetContext(ctx)
  3068  	req.ApplyOptions(opts...)
  3069  	return out, req.Send()
  3070  }
  3071  
  3072  const opRemoveTagsFromVault = "RemoveTagsFromVault"
  3073  
  3074  // RemoveTagsFromVaultRequest generates a "aws/request.Request" representing the
  3075  // client's request for the RemoveTagsFromVault operation. The "output" return
  3076  // value will be populated with the request's response once the request completes
  3077  // successfully.
  3078  //
  3079  // Use "Send" method on the returned Request to send the API call to the service.
  3080  // the "output" return value is not valid until after Send returns without error.
  3081  //
  3082  // See RemoveTagsFromVault for more information on using the RemoveTagsFromVault
  3083  // API call, and error handling.
  3084  //
  3085  // This method is useful when you want to inject custom logic or configuration
  3086  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3087  //
  3088  //
  3089  //    // Example sending a request using the RemoveTagsFromVaultRequest method.
  3090  //    req, resp := client.RemoveTagsFromVaultRequest(params)
  3091  //
  3092  //    err := req.Send()
  3093  //    if err == nil { // resp is now filled
  3094  //        fmt.Println(resp)
  3095  //    }
  3096  func (c *Glacier) RemoveTagsFromVaultRequest(input *RemoveTagsFromVaultInput) (req *request.Request, output *RemoveTagsFromVaultOutput) {
  3097  	op := &request.Operation{
  3098  		Name:       opRemoveTagsFromVault,
  3099  		HTTPMethod: "POST",
  3100  		HTTPPath:   "/{accountId}/vaults/{vaultName}/tags?operation=remove",
  3101  	}
  3102  
  3103  	if input == nil {
  3104  		input = &RemoveTagsFromVaultInput{}
  3105  	}
  3106  
  3107  	output = &RemoveTagsFromVaultOutput{}
  3108  	req = c.newRequest(op, input, output)
  3109  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3110  	return
  3111  }
  3112  
  3113  // RemoveTagsFromVault API operation for Amazon Glacier.
  3114  //
  3115  // This operation removes one or more tags from the set of tags attached to
  3116  // a vault. For more information about tags, see Tagging Amazon S3 Glacier Resources
  3117  // (https://docs.aws.amazon.com/amazonglacier/latest/dev/tagging.html). This
  3118  // operation is idempotent. The operation will be successful, even if there
  3119  // are no tags attached to the vault.
  3120  //
  3121  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3122  // with awserr.Error's Code and Message methods to get detailed information about
  3123  // the error.
  3124  //
  3125  // See the AWS API reference guide for Amazon Glacier's
  3126  // API operation RemoveTagsFromVault for usage and error information.
  3127  //
  3128  // Returned Error Types:
  3129  //   * InvalidParameterValueException
  3130  //   Returned if a parameter of the request is incorrectly specified.
  3131  //
  3132  //   * MissingParameterValueException
  3133  //   Returned if a required header or parameter is missing from the request.
  3134  //
  3135  //   * ResourceNotFoundException
  3136  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  3137  //   doesn't exist.
  3138  //
  3139  //   * ServiceUnavailableException
  3140  //   Returned if the service cannot complete the request.
  3141  //
  3142  func (c *Glacier) RemoveTagsFromVault(input *RemoveTagsFromVaultInput) (*RemoveTagsFromVaultOutput, error) {
  3143  	req, out := c.RemoveTagsFromVaultRequest(input)
  3144  	return out, req.Send()
  3145  }
  3146  
  3147  // RemoveTagsFromVaultWithContext is the same as RemoveTagsFromVault with the addition of
  3148  // the ability to pass a context and additional request options.
  3149  //
  3150  // See RemoveTagsFromVault for details on how to use this API operation.
  3151  //
  3152  // The context must be non-nil and will be used for request cancellation. If
  3153  // the context is nil a panic will occur. In the future the SDK may create
  3154  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3155  // for more information on using Contexts.
  3156  func (c *Glacier) RemoveTagsFromVaultWithContext(ctx aws.Context, input *RemoveTagsFromVaultInput, opts ...request.Option) (*RemoveTagsFromVaultOutput, error) {
  3157  	req, out := c.RemoveTagsFromVaultRequest(input)
  3158  	req.SetContext(ctx)
  3159  	req.ApplyOptions(opts...)
  3160  	return out, req.Send()
  3161  }
  3162  
  3163  const opSetDataRetrievalPolicy = "SetDataRetrievalPolicy"
  3164  
  3165  // SetDataRetrievalPolicyRequest generates a "aws/request.Request" representing the
  3166  // client's request for the SetDataRetrievalPolicy operation. The "output" return
  3167  // value will be populated with the request's response once the request completes
  3168  // successfully.
  3169  //
  3170  // Use "Send" method on the returned Request to send the API call to the service.
  3171  // the "output" return value is not valid until after Send returns without error.
  3172  //
  3173  // See SetDataRetrievalPolicy for more information on using the SetDataRetrievalPolicy
  3174  // API call, and error handling.
  3175  //
  3176  // This method is useful when you want to inject custom logic or configuration
  3177  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3178  //
  3179  //
  3180  //    // Example sending a request using the SetDataRetrievalPolicyRequest method.
  3181  //    req, resp := client.SetDataRetrievalPolicyRequest(params)
  3182  //
  3183  //    err := req.Send()
  3184  //    if err == nil { // resp is now filled
  3185  //        fmt.Println(resp)
  3186  //    }
  3187  func (c *Glacier) SetDataRetrievalPolicyRequest(input *SetDataRetrievalPolicyInput) (req *request.Request, output *SetDataRetrievalPolicyOutput) {
  3188  	op := &request.Operation{
  3189  		Name:       opSetDataRetrievalPolicy,
  3190  		HTTPMethod: "PUT",
  3191  		HTTPPath:   "/{accountId}/policies/data-retrieval",
  3192  	}
  3193  
  3194  	if input == nil {
  3195  		input = &SetDataRetrievalPolicyInput{}
  3196  	}
  3197  
  3198  	output = &SetDataRetrievalPolicyOutput{}
  3199  	req = c.newRequest(op, input, output)
  3200  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3201  	return
  3202  }
  3203  
  3204  // SetDataRetrievalPolicy API operation for Amazon Glacier.
  3205  //
  3206  // This operation sets and then enacts a data retrieval policy in the region
  3207  // specified in the PUT request. You can set one policy per region for an AWS
  3208  // account. The policy is enacted within a few minutes of a successful PUT operation.
  3209  //
  3210  // The set policy operation does not affect retrieval jobs that were in progress
  3211  // before the policy was enacted. For more information about data retrieval
  3212  // policies, see Amazon Glacier Data Retrieval Policies (https://docs.aws.amazon.com/amazonglacier/latest/dev/data-retrieval-policy.html).
  3213  //
  3214  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3215  // with awserr.Error's Code and Message methods to get detailed information about
  3216  // the error.
  3217  //
  3218  // See the AWS API reference guide for Amazon Glacier's
  3219  // API operation SetDataRetrievalPolicy for usage and error information.
  3220  //
  3221  // Returned Error Types:
  3222  //   * InvalidParameterValueException
  3223  //   Returned if a parameter of the request is incorrectly specified.
  3224  //
  3225  //   * MissingParameterValueException
  3226  //   Returned if a required header or parameter is missing from the request.
  3227  //
  3228  //   * ServiceUnavailableException
  3229  //   Returned if the service cannot complete the request.
  3230  //
  3231  func (c *Glacier) SetDataRetrievalPolicy(input *SetDataRetrievalPolicyInput) (*SetDataRetrievalPolicyOutput, error) {
  3232  	req, out := c.SetDataRetrievalPolicyRequest(input)
  3233  	return out, req.Send()
  3234  }
  3235  
  3236  // SetDataRetrievalPolicyWithContext is the same as SetDataRetrievalPolicy with the addition of
  3237  // the ability to pass a context and additional request options.
  3238  //
  3239  // See SetDataRetrievalPolicy for details on how to use this API operation.
  3240  //
  3241  // The context must be non-nil and will be used for request cancellation. If
  3242  // the context is nil a panic will occur. In the future the SDK may create
  3243  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3244  // for more information on using Contexts.
  3245  func (c *Glacier) SetDataRetrievalPolicyWithContext(ctx aws.Context, input *SetDataRetrievalPolicyInput, opts ...request.Option) (*SetDataRetrievalPolicyOutput, error) {
  3246  	req, out := c.SetDataRetrievalPolicyRequest(input)
  3247  	req.SetContext(ctx)
  3248  	req.ApplyOptions(opts...)
  3249  	return out, req.Send()
  3250  }
  3251  
  3252  const opSetVaultAccessPolicy = "SetVaultAccessPolicy"
  3253  
  3254  // SetVaultAccessPolicyRequest generates a "aws/request.Request" representing the
  3255  // client's request for the SetVaultAccessPolicy operation. The "output" return
  3256  // value will be populated with the request's response once the request completes
  3257  // successfully.
  3258  //
  3259  // Use "Send" method on the returned Request to send the API call to the service.
  3260  // the "output" return value is not valid until after Send returns without error.
  3261  //
  3262  // See SetVaultAccessPolicy for more information on using the SetVaultAccessPolicy
  3263  // API call, and error handling.
  3264  //
  3265  // This method is useful when you want to inject custom logic or configuration
  3266  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3267  //
  3268  //
  3269  //    // Example sending a request using the SetVaultAccessPolicyRequest method.
  3270  //    req, resp := client.SetVaultAccessPolicyRequest(params)
  3271  //
  3272  //    err := req.Send()
  3273  //    if err == nil { // resp is now filled
  3274  //        fmt.Println(resp)
  3275  //    }
  3276  func (c *Glacier) SetVaultAccessPolicyRequest(input *SetVaultAccessPolicyInput) (req *request.Request, output *SetVaultAccessPolicyOutput) {
  3277  	op := &request.Operation{
  3278  		Name:       opSetVaultAccessPolicy,
  3279  		HTTPMethod: "PUT",
  3280  		HTTPPath:   "/{accountId}/vaults/{vaultName}/access-policy",
  3281  	}
  3282  
  3283  	if input == nil {
  3284  		input = &SetVaultAccessPolicyInput{}
  3285  	}
  3286  
  3287  	output = &SetVaultAccessPolicyOutput{}
  3288  	req = c.newRequest(op, input, output)
  3289  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3290  	return
  3291  }
  3292  
  3293  // SetVaultAccessPolicy API operation for Amazon Glacier.
  3294  //
  3295  // This operation configures an access policy for a vault and will overwrite
  3296  // an existing policy. To configure a vault access policy, send a PUT request
  3297  // to the access-policy subresource of the vault. An access policy is specific
  3298  // to a vault and is also called a vault subresource. You can set one access
  3299  // policy per vault and the policy can be up to 20 KB in size. For more information
  3300  // about vault access policies, see Amazon Glacier Access Control with Vault
  3301  // Access Policies (https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-access-policy.html).
  3302  //
  3303  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3304  // with awserr.Error's Code and Message methods to get detailed information about
  3305  // the error.
  3306  //
  3307  // See the AWS API reference guide for Amazon Glacier's
  3308  // API operation SetVaultAccessPolicy for usage and error information.
  3309  //
  3310  // Returned Error Types:
  3311  //   * ResourceNotFoundException
  3312  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  3313  //   doesn't exist.
  3314  //
  3315  //   * InvalidParameterValueException
  3316  //   Returned if a parameter of the request is incorrectly specified.
  3317  //
  3318  //   * MissingParameterValueException
  3319  //   Returned if a required header or parameter is missing from the request.
  3320  //
  3321  //   * ServiceUnavailableException
  3322  //   Returned if the service cannot complete the request.
  3323  //
  3324  func (c *Glacier) SetVaultAccessPolicy(input *SetVaultAccessPolicyInput) (*SetVaultAccessPolicyOutput, error) {
  3325  	req, out := c.SetVaultAccessPolicyRequest(input)
  3326  	return out, req.Send()
  3327  }
  3328  
  3329  // SetVaultAccessPolicyWithContext is the same as SetVaultAccessPolicy with the addition of
  3330  // the ability to pass a context and additional request options.
  3331  //
  3332  // See SetVaultAccessPolicy for details on how to use this API operation.
  3333  //
  3334  // The context must be non-nil and will be used for request cancellation. If
  3335  // the context is nil a panic will occur. In the future the SDK may create
  3336  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3337  // for more information on using Contexts.
  3338  func (c *Glacier) SetVaultAccessPolicyWithContext(ctx aws.Context, input *SetVaultAccessPolicyInput, opts ...request.Option) (*SetVaultAccessPolicyOutput, error) {
  3339  	req, out := c.SetVaultAccessPolicyRequest(input)
  3340  	req.SetContext(ctx)
  3341  	req.ApplyOptions(opts...)
  3342  	return out, req.Send()
  3343  }
  3344  
  3345  const opSetVaultNotifications = "SetVaultNotifications"
  3346  
  3347  // SetVaultNotificationsRequest generates a "aws/request.Request" representing the
  3348  // client's request for the SetVaultNotifications operation. The "output" return
  3349  // value will be populated with the request's response once the request completes
  3350  // successfully.
  3351  //
  3352  // Use "Send" method on the returned Request to send the API call to the service.
  3353  // the "output" return value is not valid until after Send returns without error.
  3354  //
  3355  // See SetVaultNotifications for more information on using the SetVaultNotifications
  3356  // API call, and error handling.
  3357  //
  3358  // This method is useful when you want to inject custom logic or configuration
  3359  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3360  //
  3361  //
  3362  //    // Example sending a request using the SetVaultNotificationsRequest method.
  3363  //    req, resp := client.SetVaultNotificationsRequest(params)
  3364  //
  3365  //    err := req.Send()
  3366  //    if err == nil { // resp is now filled
  3367  //        fmt.Println(resp)
  3368  //    }
  3369  func (c *Glacier) SetVaultNotificationsRequest(input *SetVaultNotificationsInput) (req *request.Request, output *SetVaultNotificationsOutput) {
  3370  	op := &request.Operation{
  3371  		Name:       opSetVaultNotifications,
  3372  		HTTPMethod: "PUT",
  3373  		HTTPPath:   "/{accountId}/vaults/{vaultName}/notification-configuration",
  3374  	}
  3375  
  3376  	if input == nil {
  3377  		input = &SetVaultNotificationsInput{}
  3378  	}
  3379  
  3380  	output = &SetVaultNotificationsOutput{}
  3381  	req = c.newRequest(op, input, output)
  3382  	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  3383  	return
  3384  }
  3385  
  3386  // SetVaultNotifications API operation for Amazon Glacier.
  3387  //
  3388  // This operation configures notifications that will be sent when specific events
  3389  // happen to a vault. By default, you don't get any notifications.
  3390  //
  3391  // To configure vault notifications, send a PUT request to the notification-configuration
  3392  // subresource of the vault. The request should include a JSON document that
  3393  // provides an Amazon SNS topic and specific events for which you want Amazon
  3394  // S3 Glacier to send notifications to the topic.
  3395  //
  3396  // Amazon SNS topics must grant permission to the vault to be allowed to publish
  3397  // notifications to the topic. You can configure a vault to publish a notification
  3398  // for the following vault events:
  3399  //
  3400  //    * ArchiveRetrievalCompleted This event occurs when a job that was initiated
  3401  //    for an archive retrieval is completed (InitiateJob). The status of the
  3402  //    completed job can be "Succeeded" or "Failed". The notification sent to
  3403  //    the SNS topic is the same output as returned from DescribeJob.
  3404  //
  3405  //    * InventoryRetrievalCompleted This event occurs when a job that was initiated
  3406  //    for an inventory retrieval is completed (InitiateJob). The status of the
  3407  //    completed job can be "Succeeded" or "Failed". The notification sent to
  3408  //    the SNS topic is the same output as returned from DescribeJob.
  3409  //
  3410  // An AWS account has full permission to perform all operations (actions). However,
  3411  // AWS Identity and Access Management (IAM) users don't have any permissions
  3412  // by default. You must grant them explicit permission to perform specific actions.
  3413  // For more information, see Access Control Using AWS Identity and Access Management
  3414  // (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
  3415  //
  3416  // For conceptual information and underlying REST API, see Configuring Vault
  3417  // Notifications in Amazon S3 Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications.html)
  3418  // and Set Vault Notification Configuration (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-vault-notifications-put.html)
  3419  // in the Amazon Glacier Developer Guide.
  3420  //
  3421  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3422  // with awserr.Error's Code and Message methods to get detailed information about
  3423  // the error.
  3424  //
  3425  // See the AWS API reference guide for Amazon Glacier's
  3426  // API operation SetVaultNotifications for usage and error information.
  3427  //
  3428  // Returned Error Types:
  3429  //   * ResourceNotFoundException
  3430  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  3431  //   doesn't exist.
  3432  //
  3433  //   * InvalidParameterValueException
  3434  //   Returned if a parameter of the request is incorrectly specified.
  3435  //
  3436  //   * MissingParameterValueException
  3437  //   Returned if a required header or parameter is missing from the request.
  3438  //
  3439  //   * ServiceUnavailableException
  3440  //   Returned if the service cannot complete the request.
  3441  //
  3442  func (c *Glacier) SetVaultNotifications(input *SetVaultNotificationsInput) (*SetVaultNotificationsOutput, error) {
  3443  	req, out := c.SetVaultNotificationsRequest(input)
  3444  	return out, req.Send()
  3445  }
  3446  
  3447  // SetVaultNotificationsWithContext is the same as SetVaultNotifications with the addition of
  3448  // the ability to pass a context and additional request options.
  3449  //
  3450  // See SetVaultNotifications for details on how to use this API operation.
  3451  //
  3452  // The context must be non-nil and will be used for request cancellation. If
  3453  // the context is nil a panic will occur. In the future the SDK may create
  3454  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3455  // for more information on using Contexts.
  3456  func (c *Glacier) SetVaultNotificationsWithContext(ctx aws.Context, input *SetVaultNotificationsInput, opts ...request.Option) (*SetVaultNotificationsOutput, error) {
  3457  	req, out := c.SetVaultNotificationsRequest(input)
  3458  	req.SetContext(ctx)
  3459  	req.ApplyOptions(opts...)
  3460  	return out, req.Send()
  3461  }
  3462  
  3463  const opUploadArchive = "UploadArchive"
  3464  
  3465  // UploadArchiveRequest generates a "aws/request.Request" representing the
  3466  // client's request for the UploadArchive operation. The "output" return
  3467  // value will be populated with the request's response once the request completes
  3468  // successfully.
  3469  //
  3470  // Use "Send" method on the returned Request to send the API call to the service.
  3471  // the "output" return value is not valid until after Send returns without error.
  3472  //
  3473  // See UploadArchive for more information on using the UploadArchive
  3474  // API call, and error handling.
  3475  //
  3476  // This method is useful when you want to inject custom logic or configuration
  3477  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3478  //
  3479  //
  3480  //    // Example sending a request using the UploadArchiveRequest method.
  3481  //    req, resp := client.UploadArchiveRequest(params)
  3482  //
  3483  //    err := req.Send()
  3484  //    if err == nil { // resp is now filled
  3485  //        fmt.Println(resp)
  3486  //    }
  3487  func (c *Glacier) UploadArchiveRequest(input *UploadArchiveInput) (req *request.Request, output *ArchiveCreationOutput) {
  3488  	op := &request.Operation{
  3489  		Name:       opUploadArchive,
  3490  		HTTPMethod: "POST",
  3491  		HTTPPath:   "/{accountId}/vaults/{vaultName}/archives",
  3492  	}
  3493  
  3494  	if input == nil {
  3495  		input = &UploadArchiveInput{}
  3496  	}
  3497  
  3498  	output = &ArchiveCreationOutput{}
  3499  	req = c.newRequest(op, input, output)
  3500  	return
  3501  }
  3502  
  3503  // UploadArchive API operation for Amazon Glacier.
  3504  //
  3505  // This operation adds an archive to a vault. This is a synchronous operation,
  3506  // and for a successful upload, your data is durably persisted. Amazon S3 Glacier
  3507  // returns the archive ID in the x-amz-archive-id header of the response.
  3508  //
  3509  // You must use the archive ID to access your data in Amazon S3 Glacier. After
  3510  // you upload an archive, you should save the archive ID returned so that you
  3511  // can retrieve or delete the archive later. Besides saving the archive ID,
  3512  // you can also index it and give it a friendly name to allow for better searching.
  3513  // You can also use the optional archive description field to specify how the
  3514  // archive is referred to in an external index of archives, such as you might
  3515  // create in Amazon DynamoDB. You can also get the vault inventory to obtain
  3516  // a list of archive IDs in a vault. For more information, see InitiateJob.
  3517  //
  3518  // You must provide a SHA256 tree hash of the data you are uploading. For information
  3519  // about computing a SHA256 tree hash, see Computing Checksums (https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html).
  3520  //
  3521  // You can optionally specify an archive description of up to 1,024 printable
  3522  // ASCII characters. You can get the archive description when you either retrieve
  3523  // the archive or get the vault inventory. For more information, see InitiateJob.
  3524  // Amazon Glacier does not interpret the description in any way. An archive
  3525  // description does not need to be unique. You cannot use the description to
  3526  // retrieve or sort the archive list.
  3527  //
  3528  // Archives are immutable. After you upload an archive, you cannot edit the
  3529  // archive or its description.
  3530  //
  3531  // An AWS account has full permission to perform all operations (actions). However,
  3532  // AWS Identity and Access Management (IAM) users don't have any permissions
  3533  // by default. You must grant them explicit permission to perform specific actions.
  3534  // For more information, see Access Control Using AWS Identity and Access Management
  3535  // (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
  3536  //
  3537  // For conceptual information and underlying REST API, see Uploading an Archive
  3538  // in Amazon Glacier (https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-an-archive.html)
  3539  // and Upload Archive (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-post.html)
  3540  // in the Amazon Glacier Developer Guide.
  3541  //
  3542  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3543  // with awserr.Error's Code and Message methods to get detailed information about
  3544  // the error.
  3545  //
  3546  // See the AWS API reference guide for Amazon Glacier's
  3547  // API operation UploadArchive for usage and error information.
  3548  //
  3549  // Returned Error Types:
  3550  //   * ResourceNotFoundException
  3551  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  3552  //   doesn't exist.
  3553  //
  3554  //   * InvalidParameterValueException
  3555  //   Returned if a parameter of the request is incorrectly specified.
  3556  //
  3557  //   * MissingParameterValueException
  3558  //   Returned if a required header or parameter is missing from the request.
  3559  //
  3560  //   * RequestTimeoutException
  3561  //   Returned if, when uploading an archive, Amazon S3 Glacier times out while
  3562  //   receiving the upload.
  3563  //
  3564  //   * ServiceUnavailableException
  3565  //   Returned if the service cannot complete the request.
  3566  //
  3567  func (c *Glacier) UploadArchive(input *UploadArchiveInput) (*ArchiveCreationOutput, error) {
  3568  	req, out := c.UploadArchiveRequest(input)
  3569  	return out, req.Send()
  3570  }
  3571  
  3572  // UploadArchiveWithContext is the same as UploadArchive with the addition of
  3573  // the ability to pass a context and additional request options.
  3574  //
  3575  // See UploadArchive for details on how to use this API operation.
  3576  //
  3577  // The context must be non-nil and will be used for request cancellation. If
  3578  // the context is nil a panic will occur. In the future the SDK may create
  3579  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3580  // for more information on using Contexts.
  3581  func (c *Glacier) UploadArchiveWithContext(ctx aws.Context, input *UploadArchiveInput, opts ...request.Option) (*ArchiveCreationOutput, error) {
  3582  	req, out := c.UploadArchiveRequest(input)
  3583  	req.SetContext(ctx)
  3584  	req.ApplyOptions(opts...)
  3585  	return out, req.Send()
  3586  }
  3587  
  3588  const opUploadMultipartPart = "UploadMultipartPart"
  3589  
  3590  // UploadMultipartPartRequest generates a "aws/request.Request" representing the
  3591  // client's request for the UploadMultipartPart operation. The "output" return
  3592  // value will be populated with the request's response once the request completes
  3593  // successfully.
  3594  //
  3595  // Use "Send" method on the returned Request to send the API call to the service.
  3596  // the "output" return value is not valid until after Send returns without error.
  3597  //
  3598  // See UploadMultipartPart for more information on using the UploadMultipartPart
  3599  // API call, and error handling.
  3600  //
  3601  // This method is useful when you want to inject custom logic or configuration
  3602  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3603  //
  3604  //
  3605  //    // Example sending a request using the UploadMultipartPartRequest method.
  3606  //    req, resp := client.UploadMultipartPartRequest(params)
  3607  //
  3608  //    err := req.Send()
  3609  //    if err == nil { // resp is now filled
  3610  //        fmt.Println(resp)
  3611  //    }
  3612  func (c *Glacier) UploadMultipartPartRequest(input *UploadMultipartPartInput) (req *request.Request, output *UploadMultipartPartOutput) {
  3613  	op := &request.Operation{
  3614  		Name:       opUploadMultipartPart,
  3615  		HTTPMethod: "PUT",
  3616  		HTTPPath:   "/{accountId}/vaults/{vaultName}/multipart-uploads/{uploadId}",
  3617  	}
  3618  
  3619  	if input == nil {
  3620  		input = &UploadMultipartPartInput{}
  3621  	}
  3622  
  3623  	output = &UploadMultipartPartOutput{}
  3624  	req = c.newRequest(op, input, output)
  3625  	return
  3626  }
  3627  
  3628  // UploadMultipartPart API operation for Amazon Glacier.
  3629  //
  3630  // This operation uploads a part of an archive. You can upload archive parts
  3631  // in any order. You can also upload them in parallel. You can upload up to
  3632  // 10,000 parts for a multipart upload.
  3633  //
  3634  // Amazon Glacier rejects your upload part request if any of the following conditions
  3635  // is true:
  3636  //
  3637  //    * SHA256 tree hash does not matchTo ensure that part data is not corrupted
  3638  //    in transmission, you compute a SHA256 tree hash of the part and include
  3639  //    it in your request. Upon receiving the part data, Amazon S3 Glacier also
  3640  //    computes a SHA256 tree hash. If these hash values don't match, the operation
  3641  //    fails. For information about computing a SHA256 tree hash, see Computing
  3642  //    Checksums (https://docs.aws.amazon.com/amazonglacier/latest/dev/checksum-calculations.html).
  3643  //
  3644  //    * Part size does not matchThe size of each part except the last must match
  3645  //    the size specified in the corresponding InitiateMultipartUpload request.
  3646  //    The size of the last part must be the same size as, or smaller than, the
  3647  //    specified size. If you upload a part whose size is smaller than the part
  3648  //    size you specified in your initiate multipart upload request and that
  3649  //    part is not the last part, then the upload part request will succeed.
  3650  //    However, the subsequent Complete Multipart Upload request will fail.
  3651  //
  3652  //    * Range does not alignThe byte range value in the request does not align
  3653  //    with the part size specified in the corresponding initiate request. For
  3654  //    example, if you specify a part size of 4194304 bytes (4 MB), then 0 to
  3655  //    4194303 bytes (4 MB - 1) and 4194304 (4 MB) to 8388607 (8 MB - 1) are
  3656  //    valid part ranges. However, if you set a range value of 2 MB to 6 MB,
  3657  //    the range does not align with the part size and the upload will fail.
  3658  //
  3659  // This operation is idempotent. If you upload the same part multiple times,
  3660  // the data included in the most recent request overwrites the previously uploaded
  3661  // data.
  3662  //
  3663  // An AWS account has full permission to perform all operations (actions). However,
  3664  // AWS Identity and Access Management (IAM) users don't have any permissions
  3665  // by default. You must grant them explicit permission to perform specific actions.
  3666  // For more information, see Access Control Using AWS Identity and Access Management
  3667  // (IAM) (https://docs.aws.amazon.com/amazonglacier/latest/dev/using-iam-with-amazon-glacier.html).
  3668  //
  3669  // For conceptual information and underlying REST API, see Uploading Large Archives
  3670  // in Parts (Multipart Upload) (https://docs.aws.amazon.com/amazonglacier/latest/dev/uploading-archive-mpu.html)
  3671  // and Upload Part (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-upload-part.html)
  3672  // in the Amazon Glacier Developer Guide.
  3673  //
  3674  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3675  // with awserr.Error's Code and Message methods to get detailed information about
  3676  // the error.
  3677  //
  3678  // See the AWS API reference guide for Amazon Glacier's
  3679  // API operation UploadMultipartPart for usage and error information.
  3680  //
  3681  // Returned Error Types:
  3682  //   * ResourceNotFoundException
  3683  //   Returned if the specified resource (such as a vault, upload ID, or job ID)
  3684  //   doesn't exist.
  3685  //
  3686  //   * InvalidParameterValueException
  3687  //   Returned if a parameter of the request is incorrectly specified.
  3688  //
  3689  //   * MissingParameterValueException
  3690  //   Returned if a required header or parameter is missing from the request.
  3691  //
  3692  //   * RequestTimeoutException
  3693  //   Returned if, when uploading an archive, Amazon S3 Glacier times out while
  3694  //   receiving the upload.
  3695  //
  3696  //   * ServiceUnavailableException
  3697  //   Returned if the service cannot complete the request.
  3698  //
  3699  func (c *Glacier) UploadMultipartPart(input *UploadMultipartPartInput) (*UploadMultipartPartOutput, error) {
  3700  	req, out := c.UploadMultipartPartRequest(input)
  3701  	return out, req.Send()
  3702  }
  3703  
  3704  // UploadMultipartPartWithContext is the same as UploadMultipartPart with the addition of
  3705  // the ability to pass a context and additional request options.
  3706  //
  3707  // See UploadMultipartPart for details on how to use this API operation.
  3708  //
  3709  // The context must be non-nil and will be used for request cancellation. If
  3710  // the context is nil a panic will occur. In the future the SDK may create
  3711  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3712  // for more information on using Contexts.
  3713  func (c *Glacier) UploadMultipartPartWithContext(ctx aws.Context, input *UploadMultipartPartInput, opts ...request.Option) (*UploadMultipartPartOutput, error) {
  3714  	req, out := c.UploadMultipartPartRequest(input)
  3715  	req.SetContext(ctx)
  3716  	req.ApplyOptions(opts...)
  3717  	return out, req.Send()
  3718  }
  3719  
  3720  // Provides options to abort a multipart upload identified by the upload ID.
  3721  //
  3722  // For information about the underlying REST API, see Abort Multipart Upload
  3723  // (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-multipart-abort-upload.html).
  3724  // For conceptual information, see Working with Archives in Amazon S3 Glacier
  3725  // (https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html).
  3726  type AbortMultipartUploadInput struct {
  3727  	_ struct{} `type:"structure" nopayload:"true"`
  3728  
  3729  	// The AccountId value is the AWS account ID of the account that owns the vault.
  3730  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  3731  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  3732  	// credentials used to sign the request. If you use an account ID, do not include
  3733  	// any hyphens ('-') in the ID.
  3734  	//
  3735  	// AccountId is a required field
  3736  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  3737  
  3738  	// The upload ID of the multipart upload to delete.
  3739  	//
  3740  	// UploadId is a required field
  3741  	UploadId *string `location:"uri" locationName:"uploadId" type:"string" required:"true"`
  3742  
  3743  	// The name of the vault.
  3744  	//
  3745  	// VaultName is a required field
  3746  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  3747  }
  3748  
  3749  // String returns the string representation.
  3750  //
  3751  // API parameter values that are decorated as "sensitive" in the API will not
  3752  // be included in the string output. The member name will be present, but the
  3753  // value will be replaced with "sensitive".
  3754  func (s AbortMultipartUploadInput) String() string {
  3755  	return awsutil.Prettify(s)
  3756  }
  3757  
  3758  // GoString returns the string representation.
  3759  //
  3760  // API parameter values that are decorated as "sensitive" in the API will not
  3761  // be included in the string output. The member name will be present, but the
  3762  // value will be replaced with "sensitive".
  3763  func (s AbortMultipartUploadInput) GoString() string {
  3764  	return s.String()
  3765  }
  3766  
  3767  // Validate inspects the fields of the type to determine if they are valid.
  3768  func (s *AbortMultipartUploadInput) Validate() error {
  3769  	invalidParams := request.ErrInvalidParams{Context: "AbortMultipartUploadInput"}
  3770  	if s.AccountId == nil {
  3771  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  3772  	}
  3773  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  3774  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  3775  	}
  3776  	if s.UploadId == nil {
  3777  		invalidParams.Add(request.NewErrParamRequired("UploadId"))
  3778  	}
  3779  	if s.UploadId != nil && len(*s.UploadId) < 1 {
  3780  		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
  3781  	}
  3782  	if s.VaultName == nil {
  3783  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  3784  	}
  3785  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  3786  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  3787  	}
  3788  
  3789  	if invalidParams.Len() > 0 {
  3790  		return invalidParams
  3791  	}
  3792  	return nil
  3793  }
  3794  
  3795  // SetAccountId sets the AccountId field's value.
  3796  func (s *AbortMultipartUploadInput) SetAccountId(v string) *AbortMultipartUploadInput {
  3797  	s.AccountId = &v
  3798  	return s
  3799  }
  3800  
  3801  // SetUploadId sets the UploadId field's value.
  3802  func (s *AbortMultipartUploadInput) SetUploadId(v string) *AbortMultipartUploadInput {
  3803  	s.UploadId = &v
  3804  	return s
  3805  }
  3806  
  3807  // SetVaultName sets the VaultName field's value.
  3808  func (s *AbortMultipartUploadInput) SetVaultName(v string) *AbortMultipartUploadInput {
  3809  	s.VaultName = &v
  3810  	return s
  3811  }
  3812  
  3813  type AbortMultipartUploadOutput struct {
  3814  	_ struct{} `type:"structure" nopayload:"true"`
  3815  }
  3816  
  3817  // String returns the string representation.
  3818  //
  3819  // API parameter values that are decorated as "sensitive" in the API will not
  3820  // be included in the string output. The member name will be present, but the
  3821  // value will be replaced with "sensitive".
  3822  func (s AbortMultipartUploadOutput) String() string {
  3823  	return awsutil.Prettify(s)
  3824  }
  3825  
  3826  // GoString returns the string representation.
  3827  //
  3828  // API parameter values that are decorated as "sensitive" in the API will not
  3829  // be included in the string output. The member name will be present, but the
  3830  // value will be replaced with "sensitive".
  3831  func (s AbortMultipartUploadOutput) GoString() string {
  3832  	return s.String()
  3833  }
  3834  
  3835  // The input values for AbortVaultLock.
  3836  type AbortVaultLockInput struct {
  3837  	_ struct{} `type:"structure" nopayload:"true"`
  3838  
  3839  	// The AccountId value is the AWS account ID. This value must match the AWS
  3840  	// account ID associated with the credentials used to sign the request. You
  3841  	// can either specify an AWS account ID or optionally a single '-' (hyphen),
  3842  	// in which case Amazon Glacier uses the AWS account ID associated with the
  3843  	// credentials used to sign the request. If you specify your account ID, do
  3844  	// not include any hyphens ('-') in the ID.
  3845  	//
  3846  	// AccountId is a required field
  3847  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  3848  
  3849  	// The name of the vault.
  3850  	//
  3851  	// VaultName is a required field
  3852  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  3853  }
  3854  
  3855  // String returns the string representation.
  3856  //
  3857  // API parameter values that are decorated as "sensitive" in the API will not
  3858  // be included in the string output. The member name will be present, but the
  3859  // value will be replaced with "sensitive".
  3860  func (s AbortVaultLockInput) String() string {
  3861  	return awsutil.Prettify(s)
  3862  }
  3863  
  3864  // GoString returns the string representation.
  3865  //
  3866  // API parameter values that are decorated as "sensitive" in the API will not
  3867  // be included in the string output. The member name will be present, but the
  3868  // value will be replaced with "sensitive".
  3869  func (s AbortVaultLockInput) GoString() string {
  3870  	return s.String()
  3871  }
  3872  
  3873  // Validate inspects the fields of the type to determine if they are valid.
  3874  func (s *AbortVaultLockInput) Validate() error {
  3875  	invalidParams := request.ErrInvalidParams{Context: "AbortVaultLockInput"}
  3876  	if s.AccountId == nil {
  3877  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  3878  	}
  3879  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  3880  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  3881  	}
  3882  	if s.VaultName == nil {
  3883  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  3884  	}
  3885  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  3886  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  3887  	}
  3888  
  3889  	if invalidParams.Len() > 0 {
  3890  		return invalidParams
  3891  	}
  3892  	return nil
  3893  }
  3894  
  3895  // SetAccountId sets the AccountId field's value.
  3896  func (s *AbortVaultLockInput) SetAccountId(v string) *AbortVaultLockInput {
  3897  	s.AccountId = &v
  3898  	return s
  3899  }
  3900  
  3901  // SetVaultName sets the VaultName field's value.
  3902  func (s *AbortVaultLockInput) SetVaultName(v string) *AbortVaultLockInput {
  3903  	s.VaultName = &v
  3904  	return s
  3905  }
  3906  
  3907  type AbortVaultLockOutput struct {
  3908  	_ struct{} `type:"structure" nopayload:"true"`
  3909  }
  3910  
  3911  // String returns the string representation.
  3912  //
  3913  // API parameter values that are decorated as "sensitive" in the API will not
  3914  // be included in the string output. The member name will be present, but the
  3915  // value will be replaced with "sensitive".
  3916  func (s AbortVaultLockOutput) String() string {
  3917  	return awsutil.Prettify(s)
  3918  }
  3919  
  3920  // GoString returns the string representation.
  3921  //
  3922  // API parameter values that are decorated as "sensitive" in the API will not
  3923  // be included in the string output. The member name will be present, but the
  3924  // value will be replaced with "sensitive".
  3925  func (s AbortVaultLockOutput) GoString() string {
  3926  	return s.String()
  3927  }
  3928  
  3929  // The input values for AddTagsToVault.
  3930  type AddTagsToVaultInput struct {
  3931  	_ struct{} `type:"structure"`
  3932  
  3933  	// The AccountId value is the AWS account ID of the account that owns the vault.
  3934  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  3935  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  3936  	// credentials used to sign the request. If you use an account ID, do not include
  3937  	// any hyphens ('-') in the ID.
  3938  	//
  3939  	// AccountId is a required field
  3940  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  3941  
  3942  	// The tags to add to the vault. Each tag is composed of a key and a value.
  3943  	// The value can be an empty string.
  3944  	Tags map[string]*string `type:"map"`
  3945  
  3946  	// The name of the vault.
  3947  	//
  3948  	// VaultName is a required field
  3949  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  3950  }
  3951  
  3952  // String returns the string representation.
  3953  //
  3954  // API parameter values that are decorated as "sensitive" in the API will not
  3955  // be included in the string output. The member name will be present, but the
  3956  // value will be replaced with "sensitive".
  3957  func (s AddTagsToVaultInput) String() string {
  3958  	return awsutil.Prettify(s)
  3959  }
  3960  
  3961  // GoString returns the string representation.
  3962  //
  3963  // API parameter values that are decorated as "sensitive" in the API will not
  3964  // be included in the string output. The member name will be present, but the
  3965  // value will be replaced with "sensitive".
  3966  func (s AddTagsToVaultInput) GoString() string {
  3967  	return s.String()
  3968  }
  3969  
  3970  // Validate inspects the fields of the type to determine if they are valid.
  3971  func (s *AddTagsToVaultInput) Validate() error {
  3972  	invalidParams := request.ErrInvalidParams{Context: "AddTagsToVaultInput"}
  3973  	if s.AccountId == nil {
  3974  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  3975  	}
  3976  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  3977  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  3978  	}
  3979  	if s.VaultName == nil {
  3980  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  3981  	}
  3982  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  3983  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  3984  	}
  3985  
  3986  	if invalidParams.Len() > 0 {
  3987  		return invalidParams
  3988  	}
  3989  	return nil
  3990  }
  3991  
  3992  // SetAccountId sets the AccountId field's value.
  3993  func (s *AddTagsToVaultInput) SetAccountId(v string) *AddTagsToVaultInput {
  3994  	s.AccountId = &v
  3995  	return s
  3996  }
  3997  
  3998  // SetTags sets the Tags field's value.
  3999  func (s *AddTagsToVaultInput) SetTags(v map[string]*string) *AddTagsToVaultInput {
  4000  	s.Tags = v
  4001  	return s
  4002  }
  4003  
  4004  // SetVaultName sets the VaultName field's value.
  4005  func (s *AddTagsToVaultInput) SetVaultName(v string) *AddTagsToVaultInput {
  4006  	s.VaultName = &v
  4007  	return s
  4008  }
  4009  
  4010  type AddTagsToVaultOutput struct {
  4011  	_ struct{} `type:"structure" nopayload:"true"`
  4012  }
  4013  
  4014  // String returns the string representation.
  4015  //
  4016  // API parameter values that are decorated as "sensitive" in the API will not
  4017  // be included in the string output. The member name will be present, but the
  4018  // value will be replaced with "sensitive".
  4019  func (s AddTagsToVaultOutput) String() string {
  4020  	return awsutil.Prettify(s)
  4021  }
  4022  
  4023  // GoString returns the string representation.
  4024  //
  4025  // API parameter values that are decorated as "sensitive" in the API will not
  4026  // be included in the string output. The member name will be present, but the
  4027  // value will be replaced with "sensitive".
  4028  func (s AddTagsToVaultOutput) GoString() string {
  4029  	return s.String()
  4030  }
  4031  
  4032  // Contains the Amazon S3 Glacier response to your request.
  4033  //
  4034  // For information about the underlying REST API, see Upload Archive (https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-post.html).
  4035  // For conceptual information, see Working with Archives in Amazon S3 Glacier
  4036  // (https://docs.aws.amazon.com/amazonglacier/latest/dev/working-with-archives.html).
  4037  type ArchiveCreationOutput struct {
  4038  	_ struct{} `type:"structure" nopayload:"true"`
  4039  
  4040  	// The ID of the archive. This value is also included as part of the location.
  4041  	ArchiveId *string `location:"header" locationName:"x-amz-archive-id" type:"string"`
  4042  
  4043  	// The checksum of the archive computed by Amazon S3 Glacier.
  4044  	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
  4045  
  4046  	// The relative URI path of the newly added archive resource.
  4047  	Location *string `location:"header" locationName:"Location" type:"string"`
  4048  }
  4049  
  4050  // String returns the string representation.
  4051  //
  4052  // API parameter values that are decorated as "sensitive" in the API will not
  4053  // be included in the string output. The member name will be present, but the
  4054  // value will be replaced with "sensitive".
  4055  func (s ArchiveCreationOutput) String() string {
  4056  	return awsutil.Prettify(s)
  4057  }
  4058  
  4059  // GoString returns the string representation.
  4060  //
  4061  // API parameter values that are decorated as "sensitive" in the API will not
  4062  // be included in the string output. The member name will be present, but the
  4063  // value will be replaced with "sensitive".
  4064  func (s ArchiveCreationOutput) GoString() string {
  4065  	return s.String()
  4066  }
  4067  
  4068  // SetArchiveId sets the ArchiveId field's value.
  4069  func (s *ArchiveCreationOutput) SetArchiveId(v string) *ArchiveCreationOutput {
  4070  	s.ArchiveId = &v
  4071  	return s
  4072  }
  4073  
  4074  // SetChecksum sets the Checksum field's value.
  4075  func (s *ArchiveCreationOutput) SetChecksum(v string) *ArchiveCreationOutput {
  4076  	s.Checksum = &v
  4077  	return s
  4078  }
  4079  
  4080  // SetLocation sets the Location field's value.
  4081  func (s *ArchiveCreationOutput) SetLocation(v string) *ArchiveCreationOutput {
  4082  	s.Location = &v
  4083  	return s
  4084  }
  4085  
  4086  // Contains information about the comma-separated value (CSV) file to select
  4087  // from.
  4088  type CSVInput struct {
  4089  	_ struct{} `type:"structure"`
  4090  
  4091  	// A single character used to indicate that a row should be ignored when the
  4092  	// character is present at the start of that row.
  4093  	Comments *string `type:"string"`
  4094  
  4095  	// A value used to separate individual fields from each other within a record.
  4096  	FieldDelimiter *string `type:"string"`
  4097  
  4098  	// Describes the first line of input. Valid values are None, Ignore, and Use.
  4099  	FileHeaderInfo *string `type:"string" enum:"FileHeaderInfo"`
  4100  
  4101  	// A value used as an escape character where the field delimiter is part of
  4102  	// the value.
  4103  	QuoteCharacter *string `type:"string"`
  4104  
  4105  	// A single character used for escaping the quotation-mark character inside
  4106  	// an already escaped value.
  4107  	QuoteEscapeCharacter *string `type:"string"`
  4108  
  4109  	// A value used to separate individual records from each other.
  4110  	RecordDelimiter *string `type:"string"`
  4111  }
  4112  
  4113  // String returns the string representation.
  4114  //
  4115  // API parameter values that are decorated as "sensitive" in the API will not
  4116  // be included in the string output. The member name will be present, but the
  4117  // value will be replaced with "sensitive".
  4118  func (s CSVInput) String() string {
  4119  	return awsutil.Prettify(s)
  4120  }
  4121  
  4122  // GoString returns the string representation.
  4123  //
  4124  // API parameter values that are decorated as "sensitive" in the API will not
  4125  // be included in the string output. The member name will be present, but the
  4126  // value will be replaced with "sensitive".
  4127  func (s CSVInput) GoString() string {
  4128  	return s.String()
  4129  }
  4130  
  4131  // SetComments sets the Comments field's value.
  4132  func (s *CSVInput) SetComments(v string) *CSVInput {
  4133  	s.Comments = &v
  4134  	return s
  4135  }
  4136  
  4137  // SetFieldDelimiter sets the FieldDelimiter field's value.
  4138  func (s *CSVInput) SetFieldDelimiter(v string) *CSVInput {
  4139  	s.FieldDelimiter = &v
  4140  	return s
  4141  }
  4142  
  4143  // SetFileHeaderInfo sets the FileHeaderInfo field's value.
  4144  func (s *CSVInput) SetFileHeaderInfo(v string) *CSVInput {
  4145  	s.FileHeaderInfo = &v
  4146  	return s
  4147  }
  4148  
  4149  // SetQuoteCharacter sets the QuoteCharacter field's value.
  4150  func (s *CSVInput) SetQuoteCharacter(v string) *CSVInput {
  4151  	s.QuoteCharacter = &v
  4152  	return s
  4153  }
  4154  
  4155  // SetQuoteEscapeCharacter sets the QuoteEscapeCharacter field's value.
  4156  func (s *CSVInput) SetQuoteEscapeCharacter(v string) *CSVInput {
  4157  	s.QuoteEscapeCharacter = &v
  4158  	return s
  4159  }
  4160  
  4161  // SetRecordDelimiter sets the RecordDelimiter field's value.
  4162  func (s *CSVInput) SetRecordDelimiter(v string) *CSVInput {
  4163  	s.RecordDelimiter = &v
  4164  	return s
  4165  }
  4166  
  4167  // Contains information about the comma-separated value (CSV) file that the
  4168  // job results are stored in.
  4169  type CSVOutput struct {
  4170  	_ struct{} `type:"structure"`
  4171  
  4172  	// A value used to separate individual fields from each other within a record.
  4173  	FieldDelimiter *string `type:"string"`
  4174  
  4175  	// A value used as an escape character where the field delimiter is part of
  4176  	// the value.
  4177  	QuoteCharacter *string `type:"string"`
  4178  
  4179  	// A single character used for escaping the quotation-mark character inside
  4180  	// an already escaped value.
  4181  	QuoteEscapeCharacter *string `type:"string"`
  4182  
  4183  	// A value that indicates whether all output fields should be contained within
  4184  	// quotation marks.
  4185  	QuoteFields *string `type:"string" enum:"QuoteFields"`
  4186  
  4187  	// A value used to separate individual records from each other.
  4188  	RecordDelimiter *string `type:"string"`
  4189  }
  4190  
  4191  // String returns the string representation.
  4192  //
  4193  // API parameter values that are decorated as "sensitive" in the API will not
  4194  // be included in the string output. The member name will be present, but the
  4195  // value will be replaced with "sensitive".
  4196  func (s CSVOutput) String() string {
  4197  	return awsutil.Prettify(s)
  4198  }
  4199  
  4200  // GoString returns the string representation.
  4201  //
  4202  // API parameter values that are decorated as "sensitive" in the API will not
  4203  // be included in the string output. The member name will be present, but the
  4204  // value will be replaced with "sensitive".
  4205  func (s CSVOutput) GoString() string {
  4206  	return s.String()
  4207  }
  4208  
  4209  // SetFieldDelimiter sets the FieldDelimiter field's value.
  4210  func (s *CSVOutput) SetFieldDelimiter(v string) *CSVOutput {
  4211  	s.FieldDelimiter = &v
  4212  	return s
  4213  }
  4214  
  4215  // SetQuoteCharacter sets the QuoteCharacter field's value.
  4216  func (s *CSVOutput) SetQuoteCharacter(v string) *CSVOutput {
  4217  	s.QuoteCharacter = &v
  4218  	return s
  4219  }
  4220  
  4221  // SetQuoteEscapeCharacter sets the QuoteEscapeCharacter field's value.
  4222  func (s *CSVOutput) SetQuoteEscapeCharacter(v string) *CSVOutput {
  4223  	s.QuoteEscapeCharacter = &v
  4224  	return s
  4225  }
  4226  
  4227  // SetQuoteFields sets the QuoteFields field's value.
  4228  func (s *CSVOutput) SetQuoteFields(v string) *CSVOutput {
  4229  	s.QuoteFields = &v
  4230  	return s
  4231  }
  4232  
  4233  // SetRecordDelimiter sets the RecordDelimiter field's value.
  4234  func (s *CSVOutput) SetRecordDelimiter(v string) *CSVOutput {
  4235  	s.RecordDelimiter = &v
  4236  	return s
  4237  }
  4238  
  4239  // Provides options to complete a multipart upload operation. This informs Amazon
  4240  // Glacier that all the archive parts have been uploaded and Amazon S3 Glacier
  4241  // (Glacier) can now assemble the archive from the uploaded parts. After assembling
  4242  // and saving the archive to the vault, Glacier returns the URI path of the
  4243  // newly created archive resource.
  4244  type CompleteMultipartUploadInput struct {
  4245  	_ struct{} `type:"structure" nopayload:"true"`
  4246  
  4247  	// The AccountId value is the AWS account ID of the account that owns the vault.
  4248  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  4249  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  4250  	// credentials used to sign the request. If you use an account ID, do not include
  4251  	// any hyphens ('-') in the ID.
  4252  	//
  4253  	// AccountId is a required field
  4254  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  4255  
  4256  	// The total size, in bytes, of the entire archive. This value should be the
  4257  	// sum of all the sizes of the individual parts that you uploaded.
  4258  	ArchiveSize *string `location:"header" locationName:"x-amz-archive-size" type:"string"`
  4259  
  4260  	// The SHA256 tree hash of the entire archive. It is the tree hash of SHA256
  4261  	// tree hash of the individual parts. If the value you specify in the request
  4262  	// does not match the SHA256 tree hash of the final assembled archive as computed
  4263  	// by Amazon S3 Glacier (Glacier), Glacier returns an error and the request
  4264  	// fails.
  4265  	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
  4266  
  4267  	// The upload ID of the multipart upload.
  4268  	//
  4269  	// UploadId is a required field
  4270  	UploadId *string `location:"uri" locationName:"uploadId" type:"string" required:"true"`
  4271  
  4272  	// The name of the vault.
  4273  	//
  4274  	// VaultName is a required field
  4275  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  4276  }
  4277  
  4278  // String returns the string representation.
  4279  //
  4280  // API parameter values that are decorated as "sensitive" in the API will not
  4281  // be included in the string output. The member name will be present, but the
  4282  // value will be replaced with "sensitive".
  4283  func (s CompleteMultipartUploadInput) String() string {
  4284  	return awsutil.Prettify(s)
  4285  }
  4286  
  4287  // GoString returns the string representation.
  4288  //
  4289  // API parameter values that are decorated as "sensitive" in the API will not
  4290  // be included in the string output. The member name will be present, but the
  4291  // value will be replaced with "sensitive".
  4292  func (s CompleteMultipartUploadInput) GoString() string {
  4293  	return s.String()
  4294  }
  4295  
  4296  // Validate inspects the fields of the type to determine if they are valid.
  4297  func (s *CompleteMultipartUploadInput) Validate() error {
  4298  	invalidParams := request.ErrInvalidParams{Context: "CompleteMultipartUploadInput"}
  4299  	if s.AccountId == nil {
  4300  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4301  	}
  4302  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  4303  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  4304  	}
  4305  	if s.UploadId == nil {
  4306  		invalidParams.Add(request.NewErrParamRequired("UploadId"))
  4307  	}
  4308  	if s.UploadId != nil && len(*s.UploadId) < 1 {
  4309  		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
  4310  	}
  4311  	if s.VaultName == nil {
  4312  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  4313  	}
  4314  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  4315  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  4316  	}
  4317  
  4318  	if invalidParams.Len() > 0 {
  4319  		return invalidParams
  4320  	}
  4321  	return nil
  4322  }
  4323  
  4324  // SetAccountId sets the AccountId field's value.
  4325  func (s *CompleteMultipartUploadInput) SetAccountId(v string) *CompleteMultipartUploadInput {
  4326  	s.AccountId = &v
  4327  	return s
  4328  }
  4329  
  4330  // SetArchiveSize sets the ArchiveSize field's value.
  4331  func (s *CompleteMultipartUploadInput) SetArchiveSize(v string) *CompleteMultipartUploadInput {
  4332  	s.ArchiveSize = &v
  4333  	return s
  4334  }
  4335  
  4336  // SetChecksum sets the Checksum field's value.
  4337  func (s *CompleteMultipartUploadInput) SetChecksum(v string) *CompleteMultipartUploadInput {
  4338  	s.Checksum = &v
  4339  	return s
  4340  }
  4341  
  4342  // SetUploadId sets the UploadId field's value.
  4343  func (s *CompleteMultipartUploadInput) SetUploadId(v string) *CompleteMultipartUploadInput {
  4344  	s.UploadId = &v
  4345  	return s
  4346  }
  4347  
  4348  // SetVaultName sets the VaultName field's value.
  4349  func (s *CompleteMultipartUploadInput) SetVaultName(v string) *CompleteMultipartUploadInput {
  4350  	s.VaultName = &v
  4351  	return s
  4352  }
  4353  
  4354  // The input values for CompleteVaultLock.
  4355  type CompleteVaultLockInput struct {
  4356  	_ struct{} `type:"structure" nopayload:"true"`
  4357  
  4358  	// The AccountId value is the AWS account ID. This value must match the AWS
  4359  	// account ID associated with the credentials used to sign the request. You
  4360  	// can either specify an AWS account ID or optionally a single '-' (hyphen),
  4361  	// in which case Amazon Glacier uses the AWS account ID associated with the
  4362  	// credentials used to sign the request. If you specify your account ID, do
  4363  	// not include any hyphens ('-') in the ID.
  4364  	//
  4365  	// AccountId is a required field
  4366  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  4367  
  4368  	// The lockId value is the lock ID obtained from a InitiateVaultLock request.
  4369  	//
  4370  	// LockId is a required field
  4371  	LockId *string `location:"uri" locationName:"lockId" type:"string" required:"true"`
  4372  
  4373  	// The name of the vault.
  4374  	//
  4375  	// VaultName is a required field
  4376  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  4377  }
  4378  
  4379  // String returns the string representation.
  4380  //
  4381  // API parameter values that are decorated as "sensitive" in the API will not
  4382  // be included in the string output. The member name will be present, but the
  4383  // value will be replaced with "sensitive".
  4384  func (s CompleteVaultLockInput) String() string {
  4385  	return awsutil.Prettify(s)
  4386  }
  4387  
  4388  // GoString returns the string representation.
  4389  //
  4390  // API parameter values that are decorated as "sensitive" in the API will not
  4391  // be included in the string output. The member name will be present, but the
  4392  // value will be replaced with "sensitive".
  4393  func (s CompleteVaultLockInput) GoString() string {
  4394  	return s.String()
  4395  }
  4396  
  4397  // Validate inspects the fields of the type to determine if they are valid.
  4398  func (s *CompleteVaultLockInput) Validate() error {
  4399  	invalidParams := request.ErrInvalidParams{Context: "CompleteVaultLockInput"}
  4400  	if s.AccountId == nil {
  4401  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4402  	}
  4403  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  4404  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  4405  	}
  4406  	if s.LockId == nil {
  4407  		invalidParams.Add(request.NewErrParamRequired("LockId"))
  4408  	}
  4409  	if s.LockId != nil && len(*s.LockId) < 1 {
  4410  		invalidParams.Add(request.NewErrParamMinLen("LockId", 1))
  4411  	}
  4412  	if s.VaultName == nil {
  4413  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  4414  	}
  4415  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  4416  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  4417  	}
  4418  
  4419  	if invalidParams.Len() > 0 {
  4420  		return invalidParams
  4421  	}
  4422  	return nil
  4423  }
  4424  
  4425  // SetAccountId sets the AccountId field's value.
  4426  func (s *CompleteVaultLockInput) SetAccountId(v string) *CompleteVaultLockInput {
  4427  	s.AccountId = &v
  4428  	return s
  4429  }
  4430  
  4431  // SetLockId sets the LockId field's value.
  4432  func (s *CompleteVaultLockInput) SetLockId(v string) *CompleteVaultLockInput {
  4433  	s.LockId = &v
  4434  	return s
  4435  }
  4436  
  4437  // SetVaultName sets the VaultName field's value.
  4438  func (s *CompleteVaultLockInput) SetVaultName(v string) *CompleteVaultLockInput {
  4439  	s.VaultName = &v
  4440  	return s
  4441  }
  4442  
  4443  type CompleteVaultLockOutput struct {
  4444  	_ struct{} `type:"structure" nopayload:"true"`
  4445  }
  4446  
  4447  // String returns the string representation.
  4448  //
  4449  // API parameter values that are decorated as "sensitive" in the API will not
  4450  // be included in the string output. The member name will be present, but the
  4451  // value will be replaced with "sensitive".
  4452  func (s CompleteVaultLockOutput) String() string {
  4453  	return awsutil.Prettify(s)
  4454  }
  4455  
  4456  // GoString returns the string representation.
  4457  //
  4458  // API parameter values that are decorated as "sensitive" in the API will not
  4459  // be included in the string output. The member name will be present, but the
  4460  // value will be replaced with "sensitive".
  4461  func (s CompleteVaultLockOutput) GoString() string {
  4462  	return s.String()
  4463  }
  4464  
  4465  // Provides options to create a vault.
  4466  type CreateVaultInput struct {
  4467  	_ struct{} `type:"structure" nopayload:"true"`
  4468  
  4469  	// The AccountId value is the AWS account ID. This value must match the AWS
  4470  	// account ID associated with the credentials used to sign the request. You
  4471  	// can either specify an AWS account ID or optionally a single '-' (hyphen),
  4472  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  4473  	// credentials used to sign the request. If you specify your account ID, do
  4474  	// not include any hyphens ('-') in the ID.
  4475  	//
  4476  	// AccountId is a required field
  4477  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  4478  
  4479  	// The name of the vault.
  4480  	//
  4481  	// VaultName is a required field
  4482  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  4483  }
  4484  
  4485  // String returns the string representation.
  4486  //
  4487  // API parameter values that are decorated as "sensitive" in the API will not
  4488  // be included in the string output. The member name will be present, but the
  4489  // value will be replaced with "sensitive".
  4490  func (s CreateVaultInput) String() string {
  4491  	return awsutil.Prettify(s)
  4492  }
  4493  
  4494  // GoString returns the string representation.
  4495  //
  4496  // API parameter values that are decorated as "sensitive" in the API will not
  4497  // be included in the string output. The member name will be present, but the
  4498  // value will be replaced with "sensitive".
  4499  func (s CreateVaultInput) GoString() string {
  4500  	return s.String()
  4501  }
  4502  
  4503  // Validate inspects the fields of the type to determine if they are valid.
  4504  func (s *CreateVaultInput) Validate() error {
  4505  	invalidParams := request.ErrInvalidParams{Context: "CreateVaultInput"}
  4506  	if s.AccountId == nil {
  4507  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4508  	}
  4509  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  4510  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  4511  	}
  4512  	if s.VaultName == nil {
  4513  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  4514  	}
  4515  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  4516  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  4517  	}
  4518  
  4519  	if invalidParams.Len() > 0 {
  4520  		return invalidParams
  4521  	}
  4522  	return nil
  4523  }
  4524  
  4525  // SetAccountId sets the AccountId field's value.
  4526  func (s *CreateVaultInput) SetAccountId(v string) *CreateVaultInput {
  4527  	s.AccountId = &v
  4528  	return s
  4529  }
  4530  
  4531  // SetVaultName sets the VaultName field's value.
  4532  func (s *CreateVaultInput) SetVaultName(v string) *CreateVaultInput {
  4533  	s.VaultName = &v
  4534  	return s
  4535  }
  4536  
  4537  // Contains the Amazon S3 Glacier response to your request.
  4538  type CreateVaultOutput struct {
  4539  	_ struct{} `type:"structure" nopayload:"true"`
  4540  
  4541  	// The URI of the vault that was created.
  4542  	Location *string `location:"header" locationName:"Location" type:"string"`
  4543  }
  4544  
  4545  // String returns the string representation.
  4546  //
  4547  // API parameter values that are decorated as "sensitive" in the API will not
  4548  // be included in the string output. The member name will be present, but the
  4549  // value will be replaced with "sensitive".
  4550  func (s CreateVaultOutput) String() string {
  4551  	return awsutil.Prettify(s)
  4552  }
  4553  
  4554  // GoString returns the string representation.
  4555  //
  4556  // API parameter values that are decorated as "sensitive" in the API will not
  4557  // be included in the string output. The member name will be present, but the
  4558  // value will be replaced with "sensitive".
  4559  func (s CreateVaultOutput) GoString() string {
  4560  	return s.String()
  4561  }
  4562  
  4563  // SetLocation sets the Location field's value.
  4564  func (s *CreateVaultOutput) SetLocation(v string) *CreateVaultOutput {
  4565  	s.Location = &v
  4566  	return s
  4567  }
  4568  
  4569  // Data retrieval policy.
  4570  type DataRetrievalPolicy struct {
  4571  	_ struct{} `type:"structure"`
  4572  
  4573  	// The policy rule. Although this is a list type, currently there must be only
  4574  	// one rule, which contains a Strategy field and optionally a BytesPerHour field.
  4575  	Rules []*DataRetrievalRule `type:"list"`
  4576  }
  4577  
  4578  // String returns the string representation.
  4579  //
  4580  // API parameter values that are decorated as "sensitive" in the API will not
  4581  // be included in the string output. The member name will be present, but the
  4582  // value will be replaced with "sensitive".
  4583  func (s DataRetrievalPolicy) String() string {
  4584  	return awsutil.Prettify(s)
  4585  }
  4586  
  4587  // GoString returns the string representation.
  4588  //
  4589  // API parameter values that are decorated as "sensitive" in the API will not
  4590  // be included in the string output. The member name will be present, but the
  4591  // value will be replaced with "sensitive".
  4592  func (s DataRetrievalPolicy) GoString() string {
  4593  	return s.String()
  4594  }
  4595  
  4596  // SetRules sets the Rules field's value.
  4597  func (s *DataRetrievalPolicy) SetRules(v []*DataRetrievalRule) *DataRetrievalPolicy {
  4598  	s.Rules = v
  4599  	return s
  4600  }
  4601  
  4602  // Data retrieval policy rule.
  4603  type DataRetrievalRule struct {
  4604  	_ struct{} `type:"structure"`
  4605  
  4606  	// The maximum number of bytes that can be retrieved in an hour.
  4607  	//
  4608  	// This field is required only if the value of the Strategy field is BytesPerHour.
  4609  	// Your PUT operation will be rejected if the Strategy field is not set to BytesPerHour
  4610  	// and you set this field.
  4611  	BytesPerHour *int64 `type:"long"`
  4612  
  4613  	// The type of data retrieval policy to set.
  4614  	//
  4615  	// Valid values: BytesPerHour|FreeTier|None
  4616  	Strategy *string `type:"string"`
  4617  }
  4618  
  4619  // String returns the string representation.
  4620  //
  4621  // API parameter values that are decorated as "sensitive" in the API will not
  4622  // be included in the string output. The member name will be present, but the
  4623  // value will be replaced with "sensitive".
  4624  func (s DataRetrievalRule) String() string {
  4625  	return awsutil.Prettify(s)
  4626  }
  4627  
  4628  // GoString returns the string representation.
  4629  //
  4630  // API parameter values that are decorated as "sensitive" in the API will not
  4631  // be included in the string output. The member name will be present, but the
  4632  // value will be replaced with "sensitive".
  4633  func (s DataRetrievalRule) GoString() string {
  4634  	return s.String()
  4635  }
  4636  
  4637  // SetBytesPerHour sets the BytesPerHour field's value.
  4638  func (s *DataRetrievalRule) SetBytesPerHour(v int64) *DataRetrievalRule {
  4639  	s.BytesPerHour = &v
  4640  	return s
  4641  }
  4642  
  4643  // SetStrategy sets the Strategy field's value.
  4644  func (s *DataRetrievalRule) SetStrategy(v string) *DataRetrievalRule {
  4645  	s.Strategy = &v
  4646  	return s
  4647  }
  4648  
  4649  // Provides options for deleting an archive from an Amazon S3 Glacier vault.
  4650  type DeleteArchiveInput struct {
  4651  	_ struct{} `type:"structure" nopayload:"true"`
  4652  
  4653  	// The AccountId value is the AWS account ID of the account that owns the vault.
  4654  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  4655  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  4656  	// credentials used to sign the request. If you use an account ID, do not include
  4657  	// any hyphens ('-') in the ID.
  4658  	//
  4659  	// AccountId is a required field
  4660  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  4661  
  4662  	// The ID of the archive to delete.
  4663  	//
  4664  	// ArchiveId is a required field
  4665  	ArchiveId *string `location:"uri" locationName:"archiveId" type:"string" required:"true"`
  4666  
  4667  	// The name of the vault.
  4668  	//
  4669  	// VaultName is a required field
  4670  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  4671  }
  4672  
  4673  // String returns the string representation.
  4674  //
  4675  // API parameter values that are decorated as "sensitive" in the API will not
  4676  // be included in the string output. The member name will be present, but the
  4677  // value will be replaced with "sensitive".
  4678  func (s DeleteArchiveInput) String() string {
  4679  	return awsutil.Prettify(s)
  4680  }
  4681  
  4682  // GoString returns the string representation.
  4683  //
  4684  // API parameter values that are decorated as "sensitive" in the API will not
  4685  // be included in the string output. The member name will be present, but the
  4686  // value will be replaced with "sensitive".
  4687  func (s DeleteArchiveInput) GoString() string {
  4688  	return s.String()
  4689  }
  4690  
  4691  // Validate inspects the fields of the type to determine if they are valid.
  4692  func (s *DeleteArchiveInput) Validate() error {
  4693  	invalidParams := request.ErrInvalidParams{Context: "DeleteArchiveInput"}
  4694  	if s.AccountId == nil {
  4695  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4696  	}
  4697  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  4698  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  4699  	}
  4700  	if s.ArchiveId == nil {
  4701  		invalidParams.Add(request.NewErrParamRequired("ArchiveId"))
  4702  	}
  4703  	if s.ArchiveId != nil && len(*s.ArchiveId) < 1 {
  4704  		invalidParams.Add(request.NewErrParamMinLen("ArchiveId", 1))
  4705  	}
  4706  	if s.VaultName == nil {
  4707  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  4708  	}
  4709  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  4710  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  4711  	}
  4712  
  4713  	if invalidParams.Len() > 0 {
  4714  		return invalidParams
  4715  	}
  4716  	return nil
  4717  }
  4718  
  4719  // SetAccountId sets the AccountId field's value.
  4720  func (s *DeleteArchiveInput) SetAccountId(v string) *DeleteArchiveInput {
  4721  	s.AccountId = &v
  4722  	return s
  4723  }
  4724  
  4725  // SetArchiveId sets the ArchiveId field's value.
  4726  func (s *DeleteArchiveInput) SetArchiveId(v string) *DeleteArchiveInput {
  4727  	s.ArchiveId = &v
  4728  	return s
  4729  }
  4730  
  4731  // SetVaultName sets the VaultName field's value.
  4732  func (s *DeleteArchiveInput) SetVaultName(v string) *DeleteArchiveInput {
  4733  	s.VaultName = &v
  4734  	return s
  4735  }
  4736  
  4737  type DeleteArchiveOutput struct {
  4738  	_ struct{} `type:"structure" nopayload:"true"`
  4739  }
  4740  
  4741  // String returns the string representation.
  4742  //
  4743  // API parameter values that are decorated as "sensitive" in the API will not
  4744  // be included in the string output. The member name will be present, but the
  4745  // value will be replaced with "sensitive".
  4746  func (s DeleteArchiveOutput) String() string {
  4747  	return awsutil.Prettify(s)
  4748  }
  4749  
  4750  // GoString returns the string representation.
  4751  //
  4752  // API parameter values that are decorated as "sensitive" in the API will not
  4753  // be included in the string output. The member name will be present, but the
  4754  // value will be replaced with "sensitive".
  4755  func (s DeleteArchiveOutput) GoString() string {
  4756  	return s.String()
  4757  }
  4758  
  4759  // DeleteVaultAccessPolicy input.
  4760  type DeleteVaultAccessPolicyInput struct {
  4761  	_ struct{} `type:"structure" nopayload:"true"`
  4762  
  4763  	// The AccountId value is the AWS account ID of the account that owns the vault.
  4764  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  4765  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  4766  	// credentials used to sign the request. If you use an account ID, do not include
  4767  	// any hyphens ('-') in the ID.
  4768  	//
  4769  	// AccountId is a required field
  4770  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  4771  
  4772  	// The name of the vault.
  4773  	//
  4774  	// VaultName is a required field
  4775  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  4776  }
  4777  
  4778  // String returns the string representation.
  4779  //
  4780  // API parameter values that are decorated as "sensitive" in the API will not
  4781  // be included in the string output. The member name will be present, but the
  4782  // value will be replaced with "sensitive".
  4783  func (s DeleteVaultAccessPolicyInput) String() string {
  4784  	return awsutil.Prettify(s)
  4785  }
  4786  
  4787  // GoString returns the string representation.
  4788  //
  4789  // API parameter values that are decorated as "sensitive" in the API will not
  4790  // be included in the string output. The member name will be present, but the
  4791  // value will be replaced with "sensitive".
  4792  func (s DeleteVaultAccessPolicyInput) GoString() string {
  4793  	return s.String()
  4794  }
  4795  
  4796  // Validate inspects the fields of the type to determine if they are valid.
  4797  func (s *DeleteVaultAccessPolicyInput) Validate() error {
  4798  	invalidParams := request.ErrInvalidParams{Context: "DeleteVaultAccessPolicyInput"}
  4799  	if s.AccountId == nil {
  4800  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4801  	}
  4802  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  4803  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  4804  	}
  4805  	if s.VaultName == nil {
  4806  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  4807  	}
  4808  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  4809  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  4810  	}
  4811  
  4812  	if invalidParams.Len() > 0 {
  4813  		return invalidParams
  4814  	}
  4815  	return nil
  4816  }
  4817  
  4818  // SetAccountId sets the AccountId field's value.
  4819  func (s *DeleteVaultAccessPolicyInput) SetAccountId(v string) *DeleteVaultAccessPolicyInput {
  4820  	s.AccountId = &v
  4821  	return s
  4822  }
  4823  
  4824  // SetVaultName sets the VaultName field's value.
  4825  func (s *DeleteVaultAccessPolicyInput) SetVaultName(v string) *DeleteVaultAccessPolicyInput {
  4826  	s.VaultName = &v
  4827  	return s
  4828  }
  4829  
  4830  type DeleteVaultAccessPolicyOutput struct {
  4831  	_ struct{} `type:"structure" nopayload:"true"`
  4832  }
  4833  
  4834  // String returns the string representation.
  4835  //
  4836  // API parameter values that are decorated as "sensitive" in the API will not
  4837  // be included in the string output. The member name will be present, but the
  4838  // value will be replaced with "sensitive".
  4839  func (s DeleteVaultAccessPolicyOutput) String() string {
  4840  	return awsutil.Prettify(s)
  4841  }
  4842  
  4843  // GoString returns the string representation.
  4844  //
  4845  // API parameter values that are decorated as "sensitive" in the API will not
  4846  // be included in the string output. The member name will be present, but the
  4847  // value will be replaced with "sensitive".
  4848  func (s DeleteVaultAccessPolicyOutput) GoString() string {
  4849  	return s.String()
  4850  }
  4851  
  4852  // Provides options for deleting a vault from Amazon S3 Glacier.
  4853  type DeleteVaultInput struct {
  4854  	_ struct{} `type:"structure" nopayload:"true"`
  4855  
  4856  	// The AccountId value is the AWS account ID of the account that owns the vault.
  4857  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  4858  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  4859  	// credentials used to sign the request. If you use an account ID, do not include
  4860  	// any hyphens ('-') in the ID.
  4861  	//
  4862  	// AccountId is a required field
  4863  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  4864  
  4865  	// The name of the vault.
  4866  	//
  4867  	// VaultName is a required field
  4868  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  4869  }
  4870  
  4871  // String returns the string representation.
  4872  //
  4873  // API parameter values that are decorated as "sensitive" in the API will not
  4874  // be included in the string output. The member name will be present, but the
  4875  // value will be replaced with "sensitive".
  4876  func (s DeleteVaultInput) String() string {
  4877  	return awsutil.Prettify(s)
  4878  }
  4879  
  4880  // GoString returns the string representation.
  4881  //
  4882  // API parameter values that are decorated as "sensitive" in the API will not
  4883  // be included in the string output. The member name will be present, but the
  4884  // value will be replaced with "sensitive".
  4885  func (s DeleteVaultInput) GoString() string {
  4886  	return s.String()
  4887  }
  4888  
  4889  // Validate inspects the fields of the type to determine if they are valid.
  4890  func (s *DeleteVaultInput) Validate() error {
  4891  	invalidParams := request.ErrInvalidParams{Context: "DeleteVaultInput"}
  4892  	if s.AccountId == nil {
  4893  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4894  	}
  4895  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  4896  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  4897  	}
  4898  	if s.VaultName == nil {
  4899  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  4900  	}
  4901  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  4902  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  4903  	}
  4904  
  4905  	if invalidParams.Len() > 0 {
  4906  		return invalidParams
  4907  	}
  4908  	return nil
  4909  }
  4910  
  4911  // SetAccountId sets the AccountId field's value.
  4912  func (s *DeleteVaultInput) SetAccountId(v string) *DeleteVaultInput {
  4913  	s.AccountId = &v
  4914  	return s
  4915  }
  4916  
  4917  // SetVaultName sets the VaultName field's value.
  4918  func (s *DeleteVaultInput) SetVaultName(v string) *DeleteVaultInput {
  4919  	s.VaultName = &v
  4920  	return s
  4921  }
  4922  
  4923  // Provides options for deleting a vault notification configuration from an
  4924  // Amazon Glacier vault.
  4925  type DeleteVaultNotificationsInput struct {
  4926  	_ struct{} `type:"structure" nopayload:"true"`
  4927  
  4928  	// The AccountId value is the AWS account ID of the account that owns the vault.
  4929  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  4930  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  4931  	// credentials used to sign the request. If you use an account ID, do not include
  4932  	// any hyphens ('-') in the ID.
  4933  	//
  4934  	// AccountId is a required field
  4935  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  4936  
  4937  	// The name of the vault.
  4938  	//
  4939  	// VaultName is a required field
  4940  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  4941  }
  4942  
  4943  // String returns the string representation.
  4944  //
  4945  // API parameter values that are decorated as "sensitive" in the API will not
  4946  // be included in the string output. The member name will be present, but the
  4947  // value will be replaced with "sensitive".
  4948  func (s DeleteVaultNotificationsInput) String() string {
  4949  	return awsutil.Prettify(s)
  4950  }
  4951  
  4952  // GoString returns the string representation.
  4953  //
  4954  // API parameter values that are decorated as "sensitive" in the API will not
  4955  // be included in the string output. The member name will be present, but the
  4956  // value will be replaced with "sensitive".
  4957  func (s DeleteVaultNotificationsInput) GoString() string {
  4958  	return s.String()
  4959  }
  4960  
  4961  // Validate inspects the fields of the type to determine if they are valid.
  4962  func (s *DeleteVaultNotificationsInput) Validate() error {
  4963  	invalidParams := request.ErrInvalidParams{Context: "DeleteVaultNotificationsInput"}
  4964  	if s.AccountId == nil {
  4965  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  4966  	}
  4967  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  4968  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  4969  	}
  4970  	if s.VaultName == nil {
  4971  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  4972  	}
  4973  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  4974  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  4975  	}
  4976  
  4977  	if invalidParams.Len() > 0 {
  4978  		return invalidParams
  4979  	}
  4980  	return nil
  4981  }
  4982  
  4983  // SetAccountId sets the AccountId field's value.
  4984  func (s *DeleteVaultNotificationsInput) SetAccountId(v string) *DeleteVaultNotificationsInput {
  4985  	s.AccountId = &v
  4986  	return s
  4987  }
  4988  
  4989  // SetVaultName sets the VaultName field's value.
  4990  func (s *DeleteVaultNotificationsInput) SetVaultName(v string) *DeleteVaultNotificationsInput {
  4991  	s.VaultName = &v
  4992  	return s
  4993  }
  4994  
  4995  type DeleteVaultNotificationsOutput struct {
  4996  	_ struct{} `type:"structure" nopayload:"true"`
  4997  }
  4998  
  4999  // String returns the string representation.
  5000  //
  5001  // API parameter values that are decorated as "sensitive" in the API will not
  5002  // be included in the string output. The member name will be present, but the
  5003  // value will be replaced with "sensitive".
  5004  func (s DeleteVaultNotificationsOutput) String() string {
  5005  	return awsutil.Prettify(s)
  5006  }
  5007  
  5008  // GoString returns the string representation.
  5009  //
  5010  // API parameter values that are decorated as "sensitive" in the API will not
  5011  // be included in the string output. The member name will be present, but the
  5012  // value will be replaced with "sensitive".
  5013  func (s DeleteVaultNotificationsOutput) GoString() string {
  5014  	return s.String()
  5015  }
  5016  
  5017  type DeleteVaultOutput struct {
  5018  	_ struct{} `type:"structure" nopayload:"true"`
  5019  }
  5020  
  5021  // String returns the string representation.
  5022  //
  5023  // API parameter values that are decorated as "sensitive" in the API will not
  5024  // be included in the string output. The member name will be present, but the
  5025  // value will be replaced with "sensitive".
  5026  func (s DeleteVaultOutput) String() string {
  5027  	return awsutil.Prettify(s)
  5028  }
  5029  
  5030  // GoString returns the string representation.
  5031  //
  5032  // API parameter values that are decorated as "sensitive" in the API will not
  5033  // be included in the string output. The member name will be present, but the
  5034  // value will be replaced with "sensitive".
  5035  func (s DeleteVaultOutput) GoString() string {
  5036  	return s.String()
  5037  }
  5038  
  5039  // Provides options for retrieving a job description.
  5040  type DescribeJobInput struct {
  5041  	_ struct{} `type:"structure" nopayload:"true"`
  5042  
  5043  	// The AccountId value is the AWS account ID of the account that owns the vault.
  5044  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  5045  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  5046  	// credentials used to sign the request. If you use an account ID, do not include
  5047  	// any hyphens ('-') in the ID.
  5048  	//
  5049  	// AccountId is a required field
  5050  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  5051  
  5052  	// The ID of the job to describe.
  5053  	//
  5054  	// JobId is a required field
  5055  	JobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`
  5056  
  5057  	// The name of the vault.
  5058  	//
  5059  	// VaultName is a required field
  5060  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  5061  }
  5062  
  5063  // String returns the string representation.
  5064  //
  5065  // API parameter values that are decorated as "sensitive" in the API will not
  5066  // be included in the string output. The member name will be present, but the
  5067  // value will be replaced with "sensitive".
  5068  func (s DescribeJobInput) String() string {
  5069  	return awsutil.Prettify(s)
  5070  }
  5071  
  5072  // GoString returns the string representation.
  5073  //
  5074  // API parameter values that are decorated as "sensitive" in the API will not
  5075  // be included in the string output. The member name will be present, but the
  5076  // value will be replaced with "sensitive".
  5077  func (s DescribeJobInput) GoString() string {
  5078  	return s.String()
  5079  }
  5080  
  5081  // Validate inspects the fields of the type to determine if they are valid.
  5082  func (s *DescribeJobInput) Validate() error {
  5083  	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
  5084  	if s.AccountId == nil {
  5085  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5086  	}
  5087  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  5088  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  5089  	}
  5090  	if s.JobId == nil {
  5091  		invalidParams.Add(request.NewErrParamRequired("JobId"))
  5092  	}
  5093  	if s.JobId != nil && len(*s.JobId) < 1 {
  5094  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
  5095  	}
  5096  	if s.VaultName == nil {
  5097  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  5098  	}
  5099  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  5100  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  5101  	}
  5102  
  5103  	if invalidParams.Len() > 0 {
  5104  		return invalidParams
  5105  	}
  5106  	return nil
  5107  }
  5108  
  5109  // SetAccountId sets the AccountId field's value.
  5110  func (s *DescribeJobInput) SetAccountId(v string) *DescribeJobInput {
  5111  	s.AccountId = &v
  5112  	return s
  5113  }
  5114  
  5115  // SetJobId sets the JobId field's value.
  5116  func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
  5117  	s.JobId = &v
  5118  	return s
  5119  }
  5120  
  5121  // SetVaultName sets the VaultName field's value.
  5122  func (s *DescribeJobInput) SetVaultName(v string) *DescribeJobInput {
  5123  	s.VaultName = &v
  5124  	return s
  5125  }
  5126  
  5127  // Provides options for retrieving metadata for a specific vault in Amazon Glacier.
  5128  type DescribeVaultInput struct {
  5129  	_ struct{} `type:"structure" nopayload:"true"`
  5130  
  5131  	// The AccountId value is the AWS account ID of the account that owns the vault.
  5132  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  5133  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  5134  	// credentials used to sign the request. If you use an account ID, do not include
  5135  	// any hyphens ('-') in the ID.
  5136  	//
  5137  	// AccountId is a required field
  5138  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  5139  
  5140  	// The name of the vault.
  5141  	//
  5142  	// VaultName is a required field
  5143  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  5144  }
  5145  
  5146  // String returns the string representation.
  5147  //
  5148  // API parameter values that are decorated as "sensitive" in the API will not
  5149  // be included in the string output. The member name will be present, but the
  5150  // value will be replaced with "sensitive".
  5151  func (s DescribeVaultInput) String() string {
  5152  	return awsutil.Prettify(s)
  5153  }
  5154  
  5155  // GoString returns the string representation.
  5156  //
  5157  // API parameter values that are decorated as "sensitive" in the API will not
  5158  // be included in the string output. The member name will be present, but the
  5159  // value will be replaced with "sensitive".
  5160  func (s DescribeVaultInput) GoString() string {
  5161  	return s.String()
  5162  }
  5163  
  5164  // Validate inspects the fields of the type to determine if they are valid.
  5165  func (s *DescribeVaultInput) Validate() error {
  5166  	invalidParams := request.ErrInvalidParams{Context: "DescribeVaultInput"}
  5167  	if s.AccountId == nil {
  5168  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5169  	}
  5170  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  5171  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  5172  	}
  5173  	if s.VaultName == nil {
  5174  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  5175  	}
  5176  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  5177  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  5178  	}
  5179  
  5180  	if invalidParams.Len() > 0 {
  5181  		return invalidParams
  5182  	}
  5183  	return nil
  5184  }
  5185  
  5186  // SetAccountId sets the AccountId field's value.
  5187  func (s *DescribeVaultInput) SetAccountId(v string) *DescribeVaultInput {
  5188  	s.AccountId = &v
  5189  	return s
  5190  }
  5191  
  5192  // SetVaultName sets the VaultName field's value.
  5193  func (s *DescribeVaultInput) SetVaultName(v string) *DescribeVaultInput {
  5194  	s.VaultName = &v
  5195  	return s
  5196  }
  5197  
  5198  // Contains the Amazon S3 Glacier response to your request.
  5199  type DescribeVaultOutput struct {
  5200  	_ struct{} `type:"structure"`
  5201  
  5202  	// The Universal Coordinated Time (UTC) date when the vault was created. This
  5203  	// value should be a string in the ISO 8601 date format, for example 2012-03-20T17:03:43.221Z.
  5204  	CreationDate *string `type:"string"`
  5205  
  5206  	// The Universal Coordinated Time (UTC) date when Amazon S3 Glacier completed
  5207  	// the last vault inventory. This value should be a string in the ISO 8601 date
  5208  	// format, for example 2012-03-20T17:03:43.221Z.
  5209  	LastInventoryDate *string `type:"string"`
  5210  
  5211  	// The number of archives in the vault as of the last inventory date. This field
  5212  	// will return null if an inventory has not yet run on the vault, for example
  5213  	// if you just created the vault.
  5214  	NumberOfArchives *int64 `type:"long"`
  5215  
  5216  	// Total size, in bytes, of the archives in the vault as of the last inventory
  5217  	// date. This field will return null if an inventory has not yet run on the
  5218  	// vault, for example if you just created the vault.
  5219  	SizeInBytes *int64 `type:"long"`
  5220  
  5221  	// The Amazon Resource Name (ARN) of the vault.
  5222  	VaultARN *string `type:"string"`
  5223  
  5224  	// The name of the vault.
  5225  	VaultName *string `type:"string"`
  5226  }
  5227  
  5228  // String returns the string representation.
  5229  //
  5230  // API parameter values that are decorated as "sensitive" in the API will not
  5231  // be included in the string output. The member name will be present, but the
  5232  // value will be replaced with "sensitive".
  5233  func (s DescribeVaultOutput) String() string {
  5234  	return awsutil.Prettify(s)
  5235  }
  5236  
  5237  // GoString returns the string representation.
  5238  //
  5239  // API parameter values that are decorated as "sensitive" in the API will not
  5240  // be included in the string output. The member name will be present, but the
  5241  // value will be replaced with "sensitive".
  5242  func (s DescribeVaultOutput) GoString() string {
  5243  	return s.String()
  5244  }
  5245  
  5246  // SetCreationDate sets the CreationDate field's value.
  5247  func (s *DescribeVaultOutput) SetCreationDate(v string) *DescribeVaultOutput {
  5248  	s.CreationDate = &v
  5249  	return s
  5250  }
  5251  
  5252  // SetLastInventoryDate sets the LastInventoryDate field's value.
  5253  func (s *DescribeVaultOutput) SetLastInventoryDate(v string) *DescribeVaultOutput {
  5254  	s.LastInventoryDate = &v
  5255  	return s
  5256  }
  5257  
  5258  // SetNumberOfArchives sets the NumberOfArchives field's value.
  5259  func (s *DescribeVaultOutput) SetNumberOfArchives(v int64) *DescribeVaultOutput {
  5260  	s.NumberOfArchives = &v
  5261  	return s
  5262  }
  5263  
  5264  // SetSizeInBytes sets the SizeInBytes field's value.
  5265  func (s *DescribeVaultOutput) SetSizeInBytes(v int64) *DescribeVaultOutput {
  5266  	s.SizeInBytes = &v
  5267  	return s
  5268  }
  5269  
  5270  // SetVaultARN sets the VaultARN field's value.
  5271  func (s *DescribeVaultOutput) SetVaultARN(v string) *DescribeVaultOutput {
  5272  	s.VaultARN = &v
  5273  	return s
  5274  }
  5275  
  5276  // SetVaultName sets the VaultName field's value.
  5277  func (s *DescribeVaultOutput) SetVaultName(v string) *DescribeVaultOutput {
  5278  	s.VaultName = &v
  5279  	return s
  5280  }
  5281  
  5282  // Contains information about the encryption used to store the job results in
  5283  // Amazon S3.
  5284  type Encryption struct {
  5285  	_ struct{} `type:"structure"`
  5286  
  5287  	// The server-side encryption algorithm used when storing job results in Amazon
  5288  	// S3, for example AES256 or aws:kms.
  5289  	EncryptionType *string `type:"string" enum:"EncryptionType"`
  5290  
  5291  	// Optional. If the encryption type is aws:kms, you can use this value to specify
  5292  	// the encryption context for the job results.
  5293  	KMSContext *string `type:"string"`
  5294  
  5295  	// The AWS KMS key ID to use for object encryption. All GET and PUT requests
  5296  	// for an object protected by AWS KMS fail if not made by using Secure Sockets
  5297  	// Layer (SSL) or Signature Version 4.
  5298  	KMSKeyId *string `type:"string"`
  5299  }
  5300  
  5301  // String returns the string representation.
  5302  //
  5303  // API parameter values that are decorated as "sensitive" in the API will not
  5304  // be included in the string output. The member name will be present, but the
  5305  // value will be replaced with "sensitive".
  5306  func (s Encryption) String() string {
  5307  	return awsutil.Prettify(s)
  5308  }
  5309  
  5310  // GoString returns the string representation.
  5311  //
  5312  // API parameter values that are decorated as "sensitive" in the API will not
  5313  // be included in the string output. The member name will be present, but the
  5314  // value will be replaced with "sensitive".
  5315  func (s Encryption) GoString() string {
  5316  	return s.String()
  5317  }
  5318  
  5319  // SetEncryptionType sets the EncryptionType field's value.
  5320  func (s *Encryption) SetEncryptionType(v string) *Encryption {
  5321  	s.EncryptionType = &v
  5322  	return s
  5323  }
  5324  
  5325  // SetKMSContext sets the KMSContext field's value.
  5326  func (s *Encryption) SetKMSContext(v string) *Encryption {
  5327  	s.KMSContext = &v
  5328  	return s
  5329  }
  5330  
  5331  // SetKMSKeyId sets the KMSKeyId field's value.
  5332  func (s *Encryption) SetKMSKeyId(v string) *Encryption {
  5333  	s.KMSKeyId = &v
  5334  	return s
  5335  }
  5336  
  5337  // Input for GetDataRetrievalPolicy.
  5338  type GetDataRetrievalPolicyInput struct {
  5339  	_ struct{} `type:"structure" nopayload:"true"`
  5340  
  5341  	// The AccountId value is the AWS account ID. This value must match the AWS
  5342  	// account ID associated with the credentials used to sign the request. You
  5343  	// can either specify an AWS account ID or optionally a single '-' (hyphen),
  5344  	// in which case Amazon Glacier uses the AWS account ID associated with the
  5345  	// credentials used to sign the request. If you specify your account ID, do
  5346  	// not include any hyphens ('-') in the ID.
  5347  	//
  5348  	// AccountId is a required field
  5349  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  5350  }
  5351  
  5352  // String returns the string representation.
  5353  //
  5354  // API parameter values that are decorated as "sensitive" in the API will not
  5355  // be included in the string output. The member name will be present, but the
  5356  // value will be replaced with "sensitive".
  5357  func (s GetDataRetrievalPolicyInput) String() string {
  5358  	return awsutil.Prettify(s)
  5359  }
  5360  
  5361  // GoString returns the string representation.
  5362  //
  5363  // API parameter values that are decorated as "sensitive" in the API will not
  5364  // be included in the string output. The member name will be present, but the
  5365  // value will be replaced with "sensitive".
  5366  func (s GetDataRetrievalPolicyInput) GoString() string {
  5367  	return s.String()
  5368  }
  5369  
  5370  // Validate inspects the fields of the type to determine if they are valid.
  5371  func (s *GetDataRetrievalPolicyInput) Validate() error {
  5372  	invalidParams := request.ErrInvalidParams{Context: "GetDataRetrievalPolicyInput"}
  5373  	if s.AccountId == nil {
  5374  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5375  	}
  5376  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  5377  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  5378  	}
  5379  
  5380  	if invalidParams.Len() > 0 {
  5381  		return invalidParams
  5382  	}
  5383  	return nil
  5384  }
  5385  
  5386  // SetAccountId sets the AccountId field's value.
  5387  func (s *GetDataRetrievalPolicyInput) SetAccountId(v string) *GetDataRetrievalPolicyInput {
  5388  	s.AccountId = &v
  5389  	return s
  5390  }
  5391  
  5392  // Contains the Amazon S3 Glacier response to the GetDataRetrievalPolicy request.
  5393  type GetDataRetrievalPolicyOutput struct {
  5394  	_ struct{} `type:"structure"`
  5395  
  5396  	// Contains the returned data retrieval policy in JSON format.
  5397  	Policy *DataRetrievalPolicy `type:"structure"`
  5398  }
  5399  
  5400  // String returns the string representation.
  5401  //
  5402  // API parameter values that are decorated as "sensitive" in the API will not
  5403  // be included in the string output. The member name will be present, but the
  5404  // value will be replaced with "sensitive".
  5405  func (s GetDataRetrievalPolicyOutput) String() string {
  5406  	return awsutil.Prettify(s)
  5407  }
  5408  
  5409  // GoString returns the string representation.
  5410  //
  5411  // API parameter values that are decorated as "sensitive" in the API will not
  5412  // be included in the string output. The member name will be present, but the
  5413  // value will be replaced with "sensitive".
  5414  func (s GetDataRetrievalPolicyOutput) GoString() string {
  5415  	return s.String()
  5416  }
  5417  
  5418  // SetPolicy sets the Policy field's value.
  5419  func (s *GetDataRetrievalPolicyOutput) SetPolicy(v *DataRetrievalPolicy) *GetDataRetrievalPolicyOutput {
  5420  	s.Policy = v
  5421  	return s
  5422  }
  5423  
  5424  // Provides options for downloading output of an Amazon S3 Glacier job.
  5425  type GetJobOutputInput struct {
  5426  	_ struct{} `type:"structure" nopayload:"true"`
  5427  
  5428  	// The AccountId value is the AWS account ID of the account that owns the vault.
  5429  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  5430  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  5431  	// credentials used to sign the request. If you use an account ID, do not include
  5432  	// any hyphens ('-') in the ID.
  5433  	//
  5434  	// AccountId is a required field
  5435  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  5436  
  5437  	// The job ID whose data is downloaded.
  5438  	//
  5439  	// JobId is a required field
  5440  	JobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`
  5441  
  5442  	// The range of bytes to retrieve from the output. For example, if you want
  5443  	// to download the first 1,048,576 bytes, specify the range as bytes=0-1048575.
  5444  	// By default, this operation downloads the entire output.
  5445  	//
  5446  	// If the job output is large, then you can use a range to retrieve a portion
  5447  	// of the output. This allows you to download the entire output in smaller chunks
  5448  	// of bytes. For example, suppose you have 1 GB of job output you want to download
  5449  	// and you decide to download 128 MB chunks of data at a time, which is a total
  5450  	// of eight Get Job Output requests. You use the following process to download
  5451  	// the job output:
  5452  	//
  5453  	// Download a 128 MB chunk of output by specifying the appropriate byte range.
  5454  	// Verify that all 128 MB of data was received.
  5455  	//
  5456  	// Along with the data, the response includes a SHA256 tree hash of the payload.
  5457  	// You compute the checksum of the payload on the client and compare it with
  5458  	// the checksum you received in the response to ensure you received all the
  5459  	// expected data.
  5460  	//
  5461  	// Repeat steps 1 and 2 for all the eight 128 MB chunks of output data, each
  5462  	// time specifying the appropriate byte range.
  5463  	//
  5464  	// After downloading all the parts of the job output, you have a list of eight
  5465  	// checksum values. Compute the tree hash of these values to find the checksum
  5466  	// of the entire output. Using the DescribeJob API, obtain job information of
  5467  	// the job that provided you the output. The response includes the checksum
  5468  	// of the entire archive stored in Amazon S3 Glacier. You compare this value
  5469  	// with the checksum you computed to ensure you have downloaded the entire archive
  5470  	// content with no errors.
  5471  	Range *string `location:"header" locationName:"Range" type:"string"`
  5472  
  5473  	// The name of the vault.
  5474  	//
  5475  	// VaultName is a required field
  5476  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  5477  }
  5478  
  5479  // String returns the string representation.
  5480  //
  5481  // API parameter values that are decorated as "sensitive" in the API will not
  5482  // be included in the string output. The member name will be present, but the
  5483  // value will be replaced with "sensitive".
  5484  func (s GetJobOutputInput) String() string {
  5485  	return awsutil.Prettify(s)
  5486  }
  5487  
  5488  // GoString returns the string representation.
  5489  //
  5490  // API parameter values that are decorated as "sensitive" in the API will not
  5491  // be included in the string output. The member name will be present, but the
  5492  // value will be replaced with "sensitive".
  5493  func (s GetJobOutputInput) GoString() string {
  5494  	return s.String()
  5495  }
  5496  
  5497  // Validate inspects the fields of the type to determine if they are valid.
  5498  func (s *GetJobOutputInput) Validate() error {
  5499  	invalidParams := request.ErrInvalidParams{Context: "GetJobOutputInput"}
  5500  	if s.AccountId == nil {
  5501  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5502  	}
  5503  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  5504  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  5505  	}
  5506  	if s.JobId == nil {
  5507  		invalidParams.Add(request.NewErrParamRequired("JobId"))
  5508  	}
  5509  	if s.JobId != nil && len(*s.JobId) < 1 {
  5510  		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
  5511  	}
  5512  	if s.VaultName == nil {
  5513  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  5514  	}
  5515  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  5516  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  5517  	}
  5518  
  5519  	if invalidParams.Len() > 0 {
  5520  		return invalidParams
  5521  	}
  5522  	return nil
  5523  }
  5524  
  5525  // SetAccountId sets the AccountId field's value.
  5526  func (s *GetJobOutputInput) SetAccountId(v string) *GetJobOutputInput {
  5527  	s.AccountId = &v
  5528  	return s
  5529  }
  5530  
  5531  // SetJobId sets the JobId field's value.
  5532  func (s *GetJobOutputInput) SetJobId(v string) *GetJobOutputInput {
  5533  	s.JobId = &v
  5534  	return s
  5535  }
  5536  
  5537  // SetRange sets the Range field's value.
  5538  func (s *GetJobOutputInput) SetRange(v string) *GetJobOutputInput {
  5539  	s.Range = &v
  5540  	return s
  5541  }
  5542  
  5543  // SetVaultName sets the VaultName field's value.
  5544  func (s *GetJobOutputInput) SetVaultName(v string) *GetJobOutputInput {
  5545  	s.VaultName = &v
  5546  	return s
  5547  }
  5548  
  5549  // Contains the Amazon S3 Glacier response to your request.
  5550  type GetJobOutputOutput struct {
  5551  	_ struct{} `type:"structure" payload:"Body"`
  5552  
  5553  	// Indicates the range units accepted. For more information, see RFC2616 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
  5554  	AcceptRanges *string `location:"header" locationName:"Accept-Ranges" type:"string"`
  5555  
  5556  	// The description of an archive.
  5557  	ArchiveDescription *string `location:"header" locationName:"x-amz-archive-description" type:"string"`
  5558  
  5559  	// The job data, either archive data or inventory data.
  5560  	Body io.ReadCloser `locationName:"body" type:"blob"`
  5561  
  5562  	// The checksum of the data in the response. This header is returned only when
  5563  	// retrieving the output for an archive retrieval job. Furthermore, this header
  5564  	// appears only under the following conditions:
  5565  	//
  5566  	//    * You get the entire range of the archive.
  5567  	//
  5568  	//    * You request a range to return of the archive that starts and ends on
  5569  	//    a multiple of 1 MB. For example, if you have an 3.1 MB archive and you
  5570  	//    specify a range to return that starts at 1 MB and ends at 2 MB, then the
  5571  	//    x-amz-sha256-tree-hash is returned as a response header.
  5572  	//
  5573  	//    * You request a range of the archive to return that starts on a multiple
  5574  	//    of 1 MB and goes to the end of the archive. For example, if you have a
  5575  	//    3.1 MB archive and you specify a range that starts at 2 MB and ends at
  5576  	//    3.1 MB (the end of the archive), then the x-amz-sha256-tree-hash is returned
  5577  	//    as a response header.
  5578  	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
  5579  
  5580  	// The range of bytes returned by Amazon S3 Glacier. If only partial output
  5581  	// is downloaded, the response provides the range of bytes Amazon S3 Glacier
  5582  	// returned. For example, bytes 0-1048575/8388608 returns the first 1 MB from
  5583  	// 8 MB.
  5584  	ContentRange *string `location:"header" locationName:"Content-Range" type:"string"`
  5585  
  5586  	// The Content-Type depends on whether the job output is an archive or a vault
  5587  	// inventory. For archive data, the Content-Type is application/octet-stream.
  5588  	// For vault inventory, if you requested CSV format when you initiated the job,
  5589  	// the Content-Type is text/csv. Otherwise, by default, vault inventory is returned
  5590  	// as JSON, and the Content-Type is application/json.
  5591  	ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
  5592  
  5593  	// The HTTP response code for a job output request. The value depends on whether
  5594  	// a range was specified in the request.
  5595  	Status *int64 `location:"statusCode" locationName:"status" type:"integer"`
  5596  }
  5597  
  5598  // String returns the string representation.
  5599  //
  5600  // API parameter values that are decorated as "sensitive" in the API will not
  5601  // be included in the string output. The member name will be present, but the
  5602  // value will be replaced with "sensitive".
  5603  func (s GetJobOutputOutput) String() string {
  5604  	return awsutil.Prettify(s)
  5605  }
  5606  
  5607  // GoString returns the string representation.
  5608  //
  5609  // API parameter values that are decorated as "sensitive" in the API will not
  5610  // be included in the string output. The member name will be present, but the
  5611  // value will be replaced with "sensitive".
  5612  func (s GetJobOutputOutput) GoString() string {
  5613  	return s.String()
  5614  }
  5615  
  5616  // SetAcceptRanges sets the AcceptRanges field's value.
  5617  func (s *GetJobOutputOutput) SetAcceptRanges(v string) *GetJobOutputOutput {
  5618  	s.AcceptRanges = &v
  5619  	return s
  5620  }
  5621  
  5622  // SetArchiveDescription sets the ArchiveDescription field's value.
  5623  func (s *GetJobOutputOutput) SetArchiveDescription(v string) *GetJobOutputOutput {
  5624  	s.ArchiveDescription = &v
  5625  	return s
  5626  }
  5627  
  5628  // SetBody sets the Body field's value.
  5629  func (s *GetJobOutputOutput) SetBody(v io.ReadCloser) *GetJobOutputOutput {
  5630  	s.Body = v
  5631  	return s
  5632  }
  5633  
  5634  // SetChecksum sets the Checksum field's value.
  5635  func (s *GetJobOutputOutput) SetChecksum(v string) *GetJobOutputOutput {
  5636  	s.Checksum = &v
  5637  	return s
  5638  }
  5639  
  5640  // SetContentRange sets the ContentRange field's value.
  5641  func (s *GetJobOutputOutput) SetContentRange(v string) *GetJobOutputOutput {
  5642  	s.ContentRange = &v
  5643  	return s
  5644  }
  5645  
  5646  // SetContentType sets the ContentType field's value.
  5647  func (s *GetJobOutputOutput) SetContentType(v string) *GetJobOutputOutput {
  5648  	s.ContentType = &v
  5649  	return s
  5650  }
  5651  
  5652  // SetStatus sets the Status field's value.
  5653  func (s *GetJobOutputOutput) SetStatus(v int64) *GetJobOutputOutput {
  5654  	s.Status = &v
  5655  	return s
  5656  }
  5657  
  5658  // Input for GetVaultAccessPolicy.
  5659  type GetVaultAccessPolicyInput struct {
  5660  	_ struct{} `type:"structure" nopayload:"true"`
  5661  
  5662  	// The AccountId value is the AWS account ID of the account that owns the vault.
  5663  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  5664  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  5665  	// credentials used to sign the request. If you use an account ID, do not include
  5666  	// any hyphens ('-') in the ID.
  5667  	//
  5668  	// AccountId is a required field
  5669  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  5670  
  5671  	// The name of the vault.
  5672  	//
  5673  	// VaultName is a required field
  5674  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  5675  }
  5676  
  5677  // String returns the string representation.
  5678  //
  5679  // API parameter values that are decorated as "sensitive" in the API will not
  5680  // be included in the string output. The member name will be present, but the
  5681  // value will be replaced with "sensitive".
  5682  func (s GetVaultAccessPolicyInput) String() string {
  5683  	return awsutil.Prettify(s)
  5684  }
  5685  
  5686  // GoString returns the string representation.
  5687  //
  5688  // API parameter values that are decorated as "sensitive" in the API will not
  5689  // be included in the string output. The member name will be present, but the
  5690  // value will be replaced with "sensitive".
  5691  func (s GetVaultAccessPolicyInput) GoString() string {
  5692  	return s.String()
  5693  }
  5694  
  5695  // Validate inspects the fields of the type to determine if they are valid.
  5696  func (s *GetVaultAccessPolicyInput) Validate() error {
  5697  	invalidParams := request.ErrInvalidParams{Context: "GetVaultAccessPolicyInput"}
  5698  	if s.AccountId == nil {
  5699  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5700  	}
  5701  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  5702  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  5703  	}
  5704  	if s.VaultName == nil {
  5705  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  5706  	}
  5707  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  5708  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  5709  	}
  5710  
  5711  	if invalidParams.Len() > 0 {
  5712  		return invalidParams
  5713  	}
  5714  	return nil
  5715  }
  5716  
  5717  // SetAccountId sets the AccountId field's value.
  5718  func (s *GetVaultAccessPolicyInput) SetAccountId(v string) *GetVaultAccessPolicyInput {
  5719  	s.AccountId = &v
  5720  	return s
  5721  }
  5722  
  5723  // SetVaultName sets the VaultName field's value.
  5724  func (s *GetVaultAccessPolicyInput) SetVaultName(v string) *GetVaultAccessPolicyInput {
  5725  	s.VaultName = &v
  5726  	return s
  5727  }
  5728  
  5729  // Output for GetVaultAccessPolicy.
  5730  type GetVaultAccessPolicyOutput struct {
  5731  	_ struct{} `type:"structure" payload:"Policy"`
  5732  
  5733  	// Contains the returned vault access policy as a JSON string.
  5734  	Policy *VaultAccessPolicy `locationName:"policy" type:"structure"`
  5735  }
  5736  
  5737  // String returns the string representation.
  5738  //
  5739  // API parameter values that are decorated as "sensitive" in the API will not
  5740  // be included in the string output. The member name will be present, but the
  5741  // value will be replaced with "sensitive".
  5742  func (s GetVaultAccessPolicyOutput) String() string {
  5743  	return awsutil.Prettify(s)
  5744  }
  5745  
  5746  // GoString returns the string representation.
  5747  //
  5748  // API parameter values that are decorated as "sensitive" in the API will not
  5749  // be included in the string output. The member name will be present, but the
  5750  // value will be replaced with "sensitive".
  5751  func (s GetVaultAccessPolicyOutput) GoString() string {
  5752  	return s.String()
  5753  }
  5754  
  5755  // SetPolicy sets the Policy field's value.
  5756  func (s *GetVaultAccessPolicyOutput) SetPolicy(v *VaultAccessPolicy) *GetVaultAccessPolicyOutput {
  5757  	s.Policy = v
  5758  	return s
  5759  }
  5760  
  5761  // The input values for GetVaultLock.
  5762  type GetVaultLockInput struct {
  5763  	_ struct{} `type:"structure" nopayload:"true"`
  5764  
  5765  	// The AccountId value is the AWS account ID of the account that owns the vault.
  5766  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  5767  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  5768  	// credentials used to sign the request. If you use an account ID, do not include
  5769  	// any hyphens ('-') in the ID.
  5770  	//
  5771  	// AccountId is a required field
  5772  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  5773  
  5774  	// The name of the vault.
  5775  	//
  5776  	// VaultName is a required field
  5777  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  5778  }
  5779  
  5780  // String returns the string representation.
  5781  //
  5782  // API parameter values that are decorated as "sensitive" in the API will not
  5783  // be included in the string output. The member name will be present, but the
  5784  // value will be replaced with "sensitive".
  5785  func (s GetVaultLockInput) String() string {
  5786  	return awsutil.Prettify(s)
  5787  }
  5788  
  5789  // GoString returns the string representation.
  5790  //
  5791  // API parameter values that are decorated as "sensitive" in the API will not
  5792  // be included in the string output. The member name will be present, but the
  5793  // value will be replaced with "sensitive".
  5794  func (s GetVaultLockInput) GoString() string {
  5795  	return s.String()
  5796  }
  5797  
  5798  // Validate inspects the fields of the type to determine if they are valid.
  5799  func (s *GetVaultLockInput) Validate() error {
  5800  	invalidParams := request.ErrInvalidParams{Context: "GetVaultLockInput"}
  5801  	if s.AccountId == nil {
  5802  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5803  	}
  5804  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  5805  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  5806  	}
  5807  	if s.VaultName == nil {
  5808  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  5809  	}
  5810  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  5811  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  5812  	}
  5813  
  5814  	if invalidParams.Len() > 0 {
  5815  		return invalidParams
  5816  	}
  5817  	return nil
  5818  }
  5819  
  5820  // SetAccountId sets the AccountId field's value.
  5821  func (s *GetVaultLockInput) SetAccountId(v string) *GetVaultLockInput {
  5822  	s.AccountId = &v
  5823  	return s
  5824  }
  5825  
  5826  // SetVaultName sets the VaultName field's value.
  5827  func (s *GetVaultLockInput) SetVaultName(v string) *GetVaultLockInput {
  5828  	s.VaultName = &v
  5829  	return s
  5830  }
  5831  
  5832  // Contains the Amazon S3 Glacier response to your request.
  5833  type GetVaultLockOutput struct {
  5834  	_ struct{} `type:"structure"`
  5835  
  5836  	// The UTC date and time at which the vault lock was put into the InProgress
  5837  	// state.
  5838  	CreationDate *string `type:"string"`
  5839  
  5840  	// The UTC date and time at which the lock ID expires. This value can be null
  5841  	// if the vault lock is in a Locked state.
  5842  	ExpirationDate *string `type:"string"`
  5843  
  5844  	// The vault lock policy as a JSON string, which uses "\" as an escape character.
  5845  	Policy *string `type:"string"`
  5846  
  5847  	// The state of the vault lock. InProgress or Locked.
  5848  	State *string `type:"string"`
  5849  }
  5850  
  5851  // String returns the string representation.
  5852  //
  5853  // API parameter values that are decorated as "sensitive" in the API will not
  5854  // be included in the string output. The member name will be present, but the
  5855  // value will be replaced with "sensitive".
  5856  func (s GetVaultLockOutput) String() string {
  5857  	return awsutil.Prettify(s)
  5858  }
  5859  
  5860  // GoString returns the string representation.
  5861  //
  5862  // API parameter values that are decorated as "sensitive" in the API will not
  5863  // be included in the string output. The member name will be present, but the
  5864  // value will be replaced with "sensitive".
  5865  func (s GetVaultLockOutput) GoString() string {
  5866  	return s.String()
  5867  }
  5868  
  5869  // SetCreationDate sets the CreationDate field's value.
  5870  func (s *GetVaultLockOutput) SetCreationDate(v string) *GetVaultLockOutput {
  5871  	s.CreationDate = &v
  5872  	return s
  5873  }
  5874  
  5875  // SetExpirationDate sets the ExpirationDate field's value.
  5876  func (s *GetVaultLockOutput) SetExpirationDate(v string) *GetVaultLockOutput {
  5877  	s.ExpirationDate = &v
  5878  	return s
  5879  }
  5880  
  5881  // SetPolicy sets the Policy field's value.
  5882  func (s *GetVaultLockOutput) SetPolicy(v string) *GetVaultLockOutput {
  5883  	s.Policy = &v
  5884  	return s
  5885  }
  5886  
  5887  // SetState sets the State field's value.
  5888  func (s *GetVaultLockOutput) SetState(v string) *GetVaultLockOutput {
  5889  	s.State = &v
  5890  	return s
  5891  }
  5892  
  5893  // Provides options for retrieving the notification configuration set on an
  5894  // Amazon Glacier vault.
  5895  type GetVaultNotificationsInput struct {
  5896  	_ struct{} `type:"structure" nopayload:"true"`
  5897  
  5898  	// The AccountId value is the AWS account ID of the account that owns the vault.
  5899  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  5900  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  5901  	// credentials used to sign the request. If you use an account ID, do not include
  5902  	// any hyphens ('-') in the ID.
  5903  	//
  5904  	// AccountId is a required field
  5905  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  5906  
  5907  	// The name of the vault.
  5908  	//
  5909  	// VaultName is a required field
  5910  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  5911  }
  5912  
  5913  // String returns the string representation.
  5914  //
  5915  // API parameter values that are decorated as "sensitive" in the API will not
  5916  // be included in the string output. The member name will be present, but the
  5917  // value will be replaced with "sensitive".
  5918  func (s GetVaultNotificationsInput) String() string {
  5919  	return awsutil.Prettify(s)
  5920  }
  5921  
  5922  // GoString returns the string representation.
  5923  //
  5924  // API parameter values that are decorated as "sensitive" in the API will not
  5925  // be included in the string output. The member name will be present, but the
  5926  // value will be replaced with "sensitive".
  5927  func (s GetVaultNotificationsInput) GoString() string {
  5928  	return s.String()
  5929  }
  5930  
  5931  // Validate inspects the fields of the type to determine if they are valid.
  5932  func (s *GetVaultNotificationsInput) Validate() error {
  5933  	invalidParams := request.ErrInvalidParams{Context: "GetVaultNotificationsInput"}
  5934  	if s.AccountId == nil {
  5935  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  5936  	}
  5937  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  5938  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  5939  	}
  5940  	if s.VaultName == nil {
  5941  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  5942  	}
  5943  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  5944  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  5945  	}
  5946  
  5947  	if invalidParams.Len() > 0 {
  5948  		return invalidParams
  5949  	}
  5950  	return nil
  5951  }
  5952  
  5953  // SetAccountId sets the AccountId field's value.
  5954  func (s *GetVaultNotificationsInput) SetAccountId(v string) *GetVaultNotificationsInput {
  5955  	s.AccountId = &v
  5956  	return s
  5957  }
  5958  
  5959  // SetVaultName sets the VaultName field's value.
  5960  func (s *GetVaultNotificationsInput) SetVaultName(v string) *GetVaultNotificationsInput {
  5961  	s.VaultName = &v
  5962  	return s
  5963  }
  5964  
  5965  // Contains the Amazon S3 Glacier response to your request.
  5966  type GetVaultNotificationsOutput struct {
  5967  	_ struct{} `type:"structure" payload:"VaultNotificationConfig"`
  5968  
  5969  	// Returns the notification configuration set on the vault.
  5970  	VaultNotificationConfig *VaultNotificationConfig `locationName:"vaultNotificationConfig" type:"structure"`
  5971  }
  5972  
  5973  // String returns the string representation.
  5974  //
  5975  // API parameter values that are decorated as "sensitive" in the API will not
  5976  // be included in the string output. The member name will be present, but the
  5977  // value will be replaced with "sensitive".
  5978  func (s GetVaultNotificationsOutput) String() string {
  5979  	return awsutil.Prettify(s)
  5980  }
  5981  
  5982  // GoString returns the string representation.
  5983  //
  5984  // API parameter values that are decorated as "sensitive" in the API will not
  5985  // be included in the string output. The member name will be present, but the
  5986  // value will be replaced with "sensitive".
  5987  func (s GetVaultNotificationsOutput) GoString() string {
  5988  	return s.String()
  5989  }
  5990  
  5991  // SetVaultNotificationConfig sets the VaultNotificationConfig field's value.
  5992  func (s *GetVaultNotificationsOutput) SetVaultNotificationConfig(v *VaultNotificationConfig) *GetVaultNotificationsOutput {
  5993  	s.VaultNotificationConfig = v
  5994  	return s
  5995  }
  5996  
  5997  // Contains information about a grant.
  5998  type Grant struct {
  5999  	_ struct{} `type:"structure"`
  6000  
  6001  	// The grantee.
  6002  	Grantee *Grantee `type:"structure"`
  6003  
  6004  	// Specifies the permission given to the grantee.
  6005  	Permission *string `type:"string" enum:"Permission"`
  6006  }
  6007  
  6008  // String returns the string representation.
  6009  //
  6010  // API parameter values that are decorated as "sensitive" in the API will not
  6011  // be included in the string output. The member name will be present, but the
  6012  // value will be replaced with "sensitive".
  6013  func (s Grant) String() string {
  6014  	return awsutil.Prettify(s)
  6015  }
  6016  
  6017  // GoString returns the string representation.
  6018  //
  6019  // API parameter values that are decorated as "sensitive" in the API will not
  6020  // be included in the string output. The member name will be present, but the
  6021  // value will be replaced with "sensitive".
  6022  func (s Grant) GoString() string {
  6023  	return s.String()
  6024  }
  6025  
  6026  // Validate inspects the fields of the type to determine if they are valid.
  6027  func (s *Grant) Validate() error {
  6028  	invalidParams := request.ErrInvalidParams{Context: "Grant"}
  6029  	if s.Grantee != nil {
  6030  		if err := s.Grantee.Validate(); err != nil {
  6031  			invalidParams.AddNested("Grantee", err.(request.ErrInvalidParams))
  6032  		}
  6033  	}
  6034  
  6035  	if invalidParams.Len() > 0 {
  6036  		return invalidParams
  6037  	}
  6038  	return nil
  6039  }
  6040  
  6041  // SetGrantee sets the Grantee field's value.
  6042  func (s *Grant) SetGrantee(v *Grantee) *Grant {
  6043  	s.Grantee = v
  6044  	return s
  6045  }
  6046  
  6047  // SetPermission sets the Permission field's value.
  6048  func (s *Grant) SetPermission(v string) *Grant {
  6049  	s.Permission = &v
  6050  	return s
  6051  }
  6052  
  6053  // Contains information about the grantee.
  6054  type Grantee struct {
  6055  	_ struct{} `type:"structure"`
  6056  
  6057  	// Screen name of the grantee.
  6058  	DisplayName *string `type:"string"`
  6059  
  6060  	// Email address of the grantee.
  6061  	EmailAddress *string `type:"string"`
  6062  
  6063  	// The canonical user ID of the grantee.
  6064  	ID *string `type:"string"`
  6065  
  6066  	// Type of grantee
  6067  	//
  6068  	// Type is a required field
  6069  	Type *string `type:"string" required:"true" enum:"Type"`
  6070  
  6071  	// URI of the grantee group.
  6072  	URI *string `type:"string"`
  6073  }
  6074  
  6075  // String returns the string representation.
  6076  //
  6077  // API parameter values that are decorated as "sensitive" in the API will not
  6078  // be included in the string output. The member name will be present, but the
  6079  // value will be replaced with "sensitive".
  6080  func (s Grantee) String() string {
  6081  	return awsutil.Prettify(s)
  6082  }
  6083  
  6084  // GoString returns the string representation.
  6085  //
  6086  // API parameter values that are decorated as "sensitive" in the API will not
  6087  // be included in the string output. The member name will be present, but the
  6088  // value will be replaced with "sensitive".
  6089  func (s Grantee) GoString() string {
  6090  	return s.String()
  6091  }
  6092  
  6093  // Validate inspects the fields of the type to determine if they are valid.
  6094  func (s *Grantee) Validate() error {
  6095  	invalidParams := request.ErrInvalidParams{Context: "Grantee"}
  6096  	if s.Type == nil {
  6097  		invalidParams.Add(request.NewErrParamRequired("Type"))
  6098  	}
  6099  
  6100  	if invalidParams.Len() > 0 {
  6101  		return invalidParams
  6102  	}
  6103  	return nil
  6104  }
  6105  
  6106  // SetDisplayName sets the DisplayName field's value.
  6107  func (s *Grantee) SetDisplayName(v string) *Grantee {
  6108  	s.DisplayName = &v
  6109  	return s
  6110  }
  6111  
  6112  // SetEmailAddress sets the EmailAddress field's value.
  6113  func (s *Grantee) SetEmailAddress(v string) *Grantee {
  6114  	s.EmailAddress = &v
  6115  	return s
  6116  }
  6117  
  6118  // SetID sets the ID field's value.
  6119  func (s *Grantee) SetID(v string) *Grantee {
  6120  	s.ID = &v
  6121  	return s
  6122  }
  6123  
  6124  // SetType sets the Type field's value.
  6125  func (s *Grantee) SetType(v string) *Grantee {
  6126  	s.Type = &v
  6127  	return s
  6128  }
  6129  
  6130  // SetURI sets the URI field's value.
  6131  func (s *Grantee) SetURI(v string) *Grantee {
  6132  	s.URI = &v
  6133  	return s
  6134  }
  6135  
  6136  // Provides options for initiating an Amazon S3 Glacier job.
  6137  type InitiateJobInput struct {
  6138  	_ struct{} `type:"structure" payload:"JobParameters"`
  6139  
  6140  	// The AccountId value is the AWS account ID of the account that owns the vault.
  6141  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  6142  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  6143  	// credentials used to sign the request. If you use an account ID, do not include
  6144  	// any hyphens ('-') in the ID.
  6145  	//
  6146  	// AccountId is a required field
  6147  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  6148  
  6149  	// Provides options for specifying job information.
  6150  	JobParameters *JobParameters `locationName:"jobParameters" type:"structure"`
  6151  
  6152  	// The name of the vault.
  6153  	//
  6154  	// VaultName is a required field
  6155  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  6156  }
  6157  
  6158  // String returns the string representation.
  6159  //
  6160  // API parameter values that are decorated as "sensitive" in the API will not
  6161  // be included in the string output. The member name will be present, but the
  6162  // value will be replaced with "sensitive".
  6163  func (s InitiateJobInput) String() string {
  6164  	return awsutil.Prettify(s)
  6165  }
  6166  
  6167  // GoString returns the string representation.
  6168  //
  6169  // API parameter values that are decorated as "sensitive" in the API will not
  6170  // be included in the string output. The member name will be present, but the
  6171  // value will be replaced with "sensitive".
  6172  func (s InitiateJobInput) GoString() string {
  6173  	return s.String()
  6174  }
  6175  
  6176  // Validate inspects the fields of the type to determine if they are valid.
  6177  func (s *InitiateJobInput) Validate() error {
  6178  	invalidParams := request.ErrInvalidParams{Context: "InitiateJobInput"}
  6179  	if s.AccountId == nil {
  6180  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  6181  	}
  6182  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  6183  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  6184  	}
  6185  	if s.VaultName == nil {
  6186  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  6187  	}
  6188  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  6189  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  6190  	}
  6191  	if s.JobParameters != nil {
  6192  		if err := s.JobParameters.Validate(); err != nil {
  6193  			invalidParams.AddNested("JobParameters", err.(request.ErrInvalidParams))
  6194  		}
  6195  	}
  6196  
  6197  	if invalidParams.Len() > 0 {
  6198  		return invalidParams
  6199  	}
  6200  	return nil
  6201  }
  6202  
  6203  // SetAccountId sets the AccountId field's value.
  6204  func (s *InitiateJobInput) SetAccountId(v string) *InitiateJobInput {
  6205  	s.AccountId = &v
  6206  	return s
  6207  }
  6208  
  6209  // SetJobParameters sets the JobParameters field's value.
  6210  func (s *InitiateJobInput) SetJobParameters(v *JobParameters) *InitiateJobInput {
  6211  	s.JobParameters = v
  6212  	return s
  6213  }
  6214  
  6215  // SetVaultName sets the VaultName field's value.
  6216  func (s *InitiateJobInput) SetVaultName(v string) *InitiateJobInput {
  6217  	s.VaultName = &v
  6218  	return s
  6219  }
  6220  
  6221  // Contains the Amazon S3 Glacier response to your request.
  6222  type InitiateJobOutput struct {
  6223  	_ struct{} `type:"structure" nopayload:"true"`
  6224  
  6225  	// The ID of the job.
  6226  	JobId *string `location:"header" locationName:"x-amz-job-id" type:"string"`
  6227  
  6228  	// The path to the location of where the select results are stored.
  6229  	JobOutputPath *string `location:"header" locationName:"x-amz-job-output-path" type:"string"`
  6230  
  6231  	// The relative URI path of the job.
  6232  	Location *string `location:"header" locationName:"Location" type:"string"`
  6233  }
  6234  
  6235  // String returns the string representation.
  6236  //
  6237  // API parameter values that are decorated as "sensitive" in the API will not
  6238  // be included in the string output. The member name will be present, but the
  6239  // value will be replaced with "sensitive".
  6240  func (s InitiateJobOutput) String() string {
  6241  	return awsutil.Prettify(s)
  6242  }
  6243  
  6244  // GoString returns the string representation.
  6245  //
  6246  // API parameter values that are decorated as "sensitive" in the API will not
  6247  // be included in the string output. The member name will be present, but the
  6248  // value will be replaced with "sensitive".
  6249  func (s InitiateJobOutput) GoString() string {
  6250  	return s.String()
  6251  }
  6252  
  6253  // SetJobId sets the JobId field's value.
  6254  func (s *InitiateJobOutput) SetJobId(v string) *InitiateJobOutput {
  6255  	s.JobId = &v
  6256  	return s
  6257  }
  6258  
  6259  // SetJobOutputPath sets the JobOutputPath field's value.
  6260  func (s *InitiateJobOutput) SetJobOutputPath(v string) *InitiateJobOutput {
  6261  	s.JobOutputPath = &v
  6262  	return s
  6263  }
  6264  
  6265  // SetLocation sets the Location field's value.
  6266  func (s *InitiateJobOutput) SetLocation(v string) *InitiateJobOutput {
  6267  	s.Location = &v
  6268  	return s
  6269  }
  6270  
  6271  // Provides options for initiating a multipart upload to an Amazon S3 Glacier
  6272  // vault.
  6273  type InitiateMultipartUploadInput struct {
  6274  	_ struct{} `type:"structure" nopayload:"true"`
  6275  
  6276  	// The AccountId value is the AWS account ID of the account that owns the vault.
  6277  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  6278  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  6279  	// credentials used to sign the request. If you use an account ID, do not include
  6280  	// any hyphens ('-') in the ID.
  6281  	//
  6282  	// AccountId is a required field
  6283  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  6284  
  6285  	// The archive description that you are uploading in parts.
  6286  	//
  6287  	// The part size must be a megabyte (1024 KB) multiplied by a power of 2, for
  6288  	// example 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8 MB), and
  6289  	// so on. The minimum allowable part size is 1 MB, and the maximum is 4 GB (4096
  6290  	// MB).
  6291  	ArchiveDescription *string `location:"header" locationName:"x-amz-archive-description" type:"string"`
  6292  
  6293  	// The size of each part except the last, in bytes. The last part can be smaller
  6294  	// than this part size.
  6295  	PartSize *string `location:"header" locationName:"x-amz-part-size" type:"string"`
  6296  
  6297  	// The name of the vault.
  6298  	//
  6299  	// VaultName is a required field
  6300  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  6301  }
  6302  
  6303  // String returns the string representation.
  6304  //
  6305  // API parameter values that are decorated as "sensitive" in the API will not
  6306  // be included in the string output. The member name will be present, but the
  6307  // value will be replaced with "sensitive".
  6308  func (s InitiateMultipartUploadInput) String() string {
  6309  	return awsutil.Prettify(s)
  6310  }
  6311  
  6312  // GoString returns the string representation.
  6313  //
  6314  // API parameter values that are decorated as "sensitive" in the API will not
  6315  // be included in the string output. The member name will be present, but the
  6316  // value will be replaced with "sensitive".
  6317  func (s InitiateMultipartUploadInput) GoString() string {
  6318  	return s.String()
  6319  }
  6320  
  6321  // Validate inspects the fields of the type to determine if they are valid.
  6322  func (s *InitiateMultipartUploadInput) Validate() error {
  6323  	invalidParams := request.ErrInvalidParams{Context: "InitiateMultipartUploadInput"}
  6324  	if s.AccountId == nil {
  6325  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  6326  	}
  6327  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  6328  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  6329  	}
  6330  	if s.VaultName == nil {
  6331  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  6332  	}
  6333  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  6334  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  6335  	}
  6336  
  6337  	if invalidParams.Len() > 0 {
  6338  		return invalidParams
  6339  	}
  6340  	return nil
  6341  }
  6342  
  6343  // SetAccountId sets the AccountId field's value.
  6344  func (s *InitiateMultipartUploadInput) SetAccountId(v string) *InitiateMultipartUploadInput {
  6345  	s.AccountId = &v
  6346  	return s
  6347  }
  6348  
  6349  // SetArchiveDescription sets the ArchiveDescription field's value.
  6350  func (s *InitiateMultipartUploadInput) SetArchiveDescription(v string) *InitiateMultipartUploadInput {
  6351  	s.ArchiveDescription = &v
  6352  	return s
  6353  }
  6354  
  6355  // SetPartSize sets the PartSize field's value.
  6356  func (s *InitiateMultipartUploadInput) SetPartSize(v string) *InitiateMultipartUploadInput {
  6357  	s.PartSize = &v
  6358  	return s
  6359  }
  6360  
  6361  // SetVaultName sets the VaultName field's value.
  6362  func (s *InitiateMultipartUploadInput) SetVaultName(v string) *InitiateMultipartUploadInput {
  6363  	s.VaultName = &v
  6364  	return s
  6365  }
  6366  
  6367  // The Amazon S3 Glacier response to your request.
  6368  type InitiateMultipartUploadOutput struct {
  6369  	_ struct{} `type:"structure" nopayload:"true"`
  6370  
  6371  	// The relative URI path of the multipart upload ID Amazon S3 Glacier created.
  6372  	Location *string `location:"header" locationName:"Location" type:"string"`
  6373  
  6374  	// The ID of the multipart upload. This value is also included as part of the
  6375  	// location.
  6376  	UploadId *string `location:"header" locationName:"x-amz-multipart-upload-id" type:"string"`
  6377  }
  6378  
  6379  // String returns the string representation.
  6380  //
  6381  // API parameter values that are decorated as "sensitive" in the API will not
  6382  // be included in the string output. The member name will be present, but the
  6383  // value will be replaced with "sensitive".
  6384  func (s InitiateMultipartUploadOutput) String() string {
  6385  	return awsutil.Prettify(s)
  6386  }
  6387  
  6388  // GoString returns the string representation.
  6389  //
  6390  // API parameter values that are decorated as "sensitive" in the API will not
  6391  // be included in the string output. The member name will be present, but the
  6392  // value will be replaced with "sensitive".
  6393  func (s InitiateMultipartUploadOutput) GoString() string {
  6394  	return s.String()
  6395  }
  6396  
  6397  // SetLocation sets the Location field's value.
  6398  func (s *InitiateMultipartUploadOutput) SetLocation(v string) *InitiateMultipartUploadOutput {
  6399  	s.Location = &v
  6400  	return s
  6401  }
  6402  
  6403  // SetUploadId sets the UploadId field's value.
  6404  func (s *InitiateMultipartUploadOutput) SetUploadId(v string) *InitiateMultipartUploadOutput {
  6405  	s.UploadId = &v
  6406  	return s
  6407  }
  6408  
  6409  // The input values for InitiateVaultLock.
  6410  type InitiateVaultLockInput struct {
  6411  	_ struct{} `type:"structure" payload:"Policy"`
  6412  
  6413  	// The AccountId value is the AWS account ID. This value must match the AWS
  6414  	// account ID associated with the credentials used to sign the request. You
  6415  	// can either specify an AWS account ID or optionally a single '-' (hyphen),
  6416  	// in which case Amazon Glacier uses the AWS account ID associated with the
  6417  	// credentials used to sign the request. If you specify your account ID, do
  6418  	// not include any hyphens ('-') in the ID.
  6419  	//
  6420  	// AccountId is a required field
  6421  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  6422  
  6423  	// The vault lock policy as a JSON string, which uses "\" as an escape character.
  6424  	Policy *VaultLockPolicy `locationName:"policy" type:"structure"`
  6425  
  6426  	// The name of the vault.
  6427  	//
  6428  	// VaultName is a required field
  6429  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  6430  }
  6431  
  6432  // String returns the string representation.
  6433  //
  6434  // API parameter values that are decorated as "sensitive" in the API will not
  6435  // be included in the string output. The member name will be present, but the
  6436  // value will be replaced with "sensitive".
  6437  func (s InitiateVaultLockInput) String() string {
  6438  	return awsutil.Prettify(s)
  6439  }
  6440  
  6441  // GoString returns the string representation.
  6442  //
  6443  // API parameter values that are decorated as "sensitive" in the API will not
  6444  // be included in the string output. The member name will be present, but the
  6445  // value will be replaced with "sensitive".
  6446  func (s InitiateVaultLockInput) GoString() string {
  6447  	return s.String()
  6448  }
  6449  
  6450  // Validate inspects the fields of the type to determine if they are valid.
  6451  func (s *InitiateVaultLockInput) Validate() error {
  6452  	invalidParams := request.ErrInvalidParams{Context: "InitiateVaultLockInput"}
  6453  	if s.AccountId == nil {
  6454  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  6455  	}
  6456  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  6457  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  6458  	}
  6459  	if s.VaultName == nil {
  6460  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  6461  	}
  6462  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  6463  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  6464  	}
  6465  
  6466  	if invalidParams.Len() > 0 {
  6467  		return invalidParams
  6468  	}
  6469  	return nil
  6470  }
  6471  
  6472  // SetAccountId sets the AccountId field's value.
  6473  func (s *InitiateVaultLockInput) SetAccountId(v string) *InitiateVaultLockInput {
  6474  	s.AccountId = &v
  6475  	return s
  6476  }
  6477  
  6478  // SetPolicy sets the Policy field's value.
  6479  func (s *InitiateVaultLockInput) SetPolicy(v *VaultLockPolicy) *InitiateVaultLockInput {
  6480  	s.Policy = v
  6481  	return s
  6482  }
  6483  
  6484  // SetVaultName sets the VaultName field's value.
  6485  func (s *InitiateVaultLockInput) SetVaultName(v string) *InitiateVaultLockInput {
  6486  	s.VaultName = &v
  6487  	return s
  6488  }
  6489  
  6490  // Contains the Amazon S3 Glacier response to your request.
  6491  type InitiateVaultLockOutput struct {
  6492  	_ struct{} `type:"structure" nopayload:"true"`
  6493  
  6494  	// The lock ID, which is used to complete the vault locking process.
  6495  	LockId *string `location:"header" locationName:"x-amz-lock-id" type:"string"`
  6496  }
  6497  
  6498  // String returns the string representation.
  6499  //
  6500  // API parameter values that are decorated as "sensitive" in the API will not
  6501  // be included in the string output. The member name will be present, but the
  6502  // value will be replaced with "sensitive".
  6503  func (s InitiateVaultLockOutput) String() string {
  6504  	return awsutil.Prettify(s)
  6505  }
  6506  
  6507  // GoString returns the string representation.
  6508  //
  6509  // API parameter values that are decorated as "sensitive" in the API will not
  6510  // be included in the string output. The member name will be present, but the
  6511  // value will be replaced with "sensitive".
  6512  func (s InitiateVaultLockOutput) GoString() string {
  6513  	return s.String()
  6514  }
  6515  
  6516  // SetLockId sets the LockId field's value.
  6517  func (s *InitiateVaultLockOutput) SetLockId(v string) *InitiateVaultLockOutput {
  6518  	s.LockId = &v
  6519  	return s
  6520  }
  6521  
  6522  // Describes how the archive is serialized.
  6523  type InputSerialization struct {
  6524  	_ struct{} `type:"structure"`
  6525  
  6526  	// Describes the serialization of a CSV-encoded object.
  6527  	Csv *CSVInput `locationName:"csv" type:"structure"`
  6528  }
  6529  
  6530  // String returns the string representation.
  6531  //
  6532  // API parameter values that are decorated as "sensitive" in the API will not
  6533  // be included in the string output. The member name will be present, but the
  6534  // value will be replaced with "sensitive".
  6535  func (s InputSerialization) String() string {
  6536  	return awsutil.Prettify(s)
  6537  }
  6538  
  6539  // GoString returns the string representation.
  6540  //
  6541  // API parameter values that are decorated as "sensitive" in the API will not
  6542  // be included in the string output. The member name will be present, but the
  6543  // value will be replaced with "sensitive".
  6544  func (s InputSerialization) GoString() string {
  6545  	return s.String()
  6546  }
  6547  
  6548  // SetCsv sets the Csv field's value.
  6549  func (s *InputSerialization) SetCsv(v *CSVInput) *InputSerialization {
  6550  	s.Csv = v
  6551  	return s
  6552  }
  6553  
  6554  // Returned if there is insufficient capacity to process this expedited request.
  6555  // This error only applies to expedited retrievals and not to standard or bulk
  6556  // retrievals.
  6557  type InsufficientCapacityException struct {
  6558  	_            struct{}                  `type:"structure"`
  6559  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6560  
  6561  	Code_ *string `locationName:"code" type:"string"`
  6562  
  6563  	Message_ *string `locationName:"message" type:"string"`
  6564  
  6565  	Type *string `locationName:"type" type:"string"`
  6566  }
  6567  
  6568  // String returns the string representation.
  6569  //
  6570  // API parameter values that are decorated as "sensitive" in the API will not
  6571  // be included in the string output. The member name will be present, but the
  6572  // value will be replaced with "sensitive".
  6573  func (s InsufficientCapacityException) String() string {
  6574  	return awsutil.Prettify(s)
  6575  }
  6576  
  6577  // GoString returns the string representation.
  6578  //
  6579  // API parameter values that are decorated as "sensitive" in the API will not
  6580  // be included in the string output. The member name will be present, but the
  6581  // value will be replaced with "sensitive".
  6582  func (s InsufficientCapacityException) GoString() string {
  6583  	return s.String()
  6584  }
  6585  
  6586  func newErrorInsufficientCapacityException(v protocol.ResponseMetadata) error {
  6587  	return &InsufficientCapacityException{
  6588  		RespMetadata: v,
  6589  	}
  6590  }
  6591  
  6592  // Code returns the exception type name.
  6593  func (s *InsufficientCapacityException) Code() string {
  6594  	return "InsufficientCapacityException"
  6595  }
  6596  
  6597  // Message returns the exception's message.
  6598  func (s *InsufficientCapacityException) Message() string {
  6599  	if s.Message_ != nil {
  6600  		return *s.Message_
  6601  	}
  6602  	return ""
  6603  }
  6604  
  6605  // OrigErr always returns nil, satisfies awserr.Error interface.
  6606  func (s *InsufficientCapacityException) OrigErr() error {
  6607  	return nil
  6608  }
  6609  
  6610  func (s *InsufficientCapacityException) Error() string {
  6611  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  6612  }
  6613  
  6614  // Status code returns the HTTP status code for the request's response error.
  6615  func (s *InsufficientCapacityException) StatusCode() int {
  6616  	return s.RespMetadata.StatusCode
  6617  }
  6618  
  6619  // RequestID returns the service's response RequestID for request.
  6620  func (s *InsufficientCapacityException) RequestID() string {
  6621  	return s.RespMetadata.RequestID
  6622  }
  6623  
  6624  // Returned if a parameter of the request is incorrectly specified.
  6625  type InvalidParameterValueException struct {
  6626  	_            struct{}                  `type:"structure"`
  6627  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  6628  
  6629  	// 400 Bad Request
  6630  	Code_ *string `locationName:"code" type:"string"`
  6631  
  6632  	// Returned if a parameter of the request is incorrectly specified.
  6633  	Message_ *string `locationName:"message" type:"string"`
  6634  
  6635  	// Client
  6636  	Type *string `locationName:"type" type:"string"`
  6637  }
  6638  
  6639  // String returns the string representation.
  6640  //
  6641  // API parameter values that are decorated as "sensitive" in the API will not
  6642  // be included in the string output. The member name will be present, but the
  6643  // value will be replaced with "sensitive".
  6644  func (s InvalidParameterValueException) String() string {
  6645  	return awsutil.Prettify(s)
  6646  }
  6647  
  6648  // GoString returns the string representation.
  6649  //
  6650  // API parameter values that are decorated as "sensitive" in the API will not
  6651  // be included in the string output. The member name will be present, but the
  6652  // value will be replaced with "sensitive".
  6653  func (s InvalidParameterValueException) GoString() string {
  6654  	return s.String()
  6655  }
  6656  
  6657  func newErrorInvalidParameterValueException(v protocol.ResponseMetadata) error {
  6658  	return &InvalidParameterValueException{
  6659  		RespMetadata: v,
  6660  	}
  6661  }
  6662  
  6663  // Code returns the exception type name.
  6664  func (s *InvalidParameterValueException) Code() string {
  6665  	return "InvalidParameterValueException"
  6666  }
  6667  
  6668  // Message returns the exception's message.
  6669  func (s *InvalidParameterValueException) Message() string {
  6670  	if s.Message_ != nil {
  6671  		return *s.Message_
  6672  	}
  6673  	return ""
  6674  }
  6675  
  6676  // OrigErr always returns nil, satisfies awserr.Error interface.
  6677  func (s *InvalidParameterValueException) OrigErr() error {
  6678  	return nil
  6679  }
  6680  
  6681  func (s *InvalidParameterValueException) Error() string {
  6682  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  6683  }
  6684  
  6685  // Status code returns the HTTP status code for the request's response error.
  6686  func (s *InvalidParameterValueException) StatusCode() int {
  6687  	return s.RespMetadata.StatusCode
  6688  }
  6689  
  6690  // RequestID returns the service's response RequestID for request.
  6691  func (s *InvalidParameterValueException) RequestID() string {
  6692  	return s.RespMetadata.RequestID
  6693  }
  6694  
  6695  // Describes the options for a range inventory retrieval job.
  6696  type InventoryRetrievalJobDescription struct {
  6697  	_ struct{} `type:"structure"`
  6698  
  6699  	// The end of the date range in UTC for vault inventory retrieval that includes
  6700  	// archives created before this date. This value should be a string in the ISO
  6701  	// 8601 date format, for example 2013-03-20T17:03:43Z.
  6702  	EndDate *string `type:"string"`
  6703  
  6704  	// The output format for the vault inventory list, which is set by the InitiateJob
  6705  	// request when initiating a job to retrieve a vault inventory. Valid values
  6706  	// are CSV and JSON.
  6707  	Format *string `type:"string"`
  6708  
  6709  	// The maximum number of inventory items returned per vault inventory retrieval
  6710  	// request. This limit is set when initiating the job with the a InitiateJob
  6711  	// request.
  6712  	Limit *string `type:"string"`
  6713  
  6714  	// An opaque string that represents where to continue pagination of the vault
  6715  	// inventory retrieval results. You use the marker in a new InitiateJob request
  6716  	// to obtain additional inventory items. If there are no more inventory items,
  6717  	// 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).
  6718  	Marker *string `type:"string"`
  6719  
  6720  	// The start of the date range in Universal Coordinated Time (UTC) for vault
  6721  	// inventory retrieval that includes archives created on or after this date.
  6722  	// This value should be a string in the ISO 8601 date format, for example 2013-03-20T17:03:43Z.
  6723  	StartDate *string `type:"string"`
  6724  }
  6725  
  6726  // String returns the string representation.
  6727  //
  6728  // API parameter values that are decorated as "sensitive" in the API will not
  6729  // be included in the string output. The member name will be present, but the
  6730  // value will be replaced with "sensitive".
  6731  func (s InventoryRetrievalJobDescription) String() string {
  6732  	return awsutil.Prettify(s)
  6733  }
  6734  
  6735  // GoString returns the string representation.
  6736  //
  6737  // API parameter values that are decorated as "sensitive" in the API will not
  6738  // be included in the string output. The member name will be present, but the
  6739  // value will be replaced with "sensitive".
  6740  func (s InventoryRetrievalJobDescription) GoString() string {
  6741  	return s.String()
  6742  }
  6743  
  6744  // SetEndDate sets the EndDate field's value.
  6745  func (s *InventoryRetrievalJobDescription) SetEndDate(v string) *InventoryRetrievalJobDescription {
  6746  	s.EndDate = &v
  6747  	return s
  6748  }
  6749  
  6750  // SetFormat sets the Format field's value.
  6751  func (s *InventoryRetrievalJobDescription) SetFormat(v string) *InventoryRetrievalJobDescription {
  6752  	s.Format = &v
  6753  	return s
  6754  }
  6755  
  6756  // SetLimit sets the Limit field's value.
  6757  func (s *InventoryRetrievalJobDescription) SetLimit(v string) *InventoryRetrievalJobDescription {
  6758  	s.Limit = &v
  6759  	return s
  6760  }
  6761  
  6762  // SetMarker sets the Marker field's value.
  6763  func (s *InventoryRetrievalJobDescription) SetMarker(v string) *InventoryRetrievalJobDescription {
  6764  	s.Marker = &v
  6765  	return s
  6766  }
  6767  
  6768  // SetStartDate sets the StartDate field's value.
  6769  func (s *InventoryRetrievalJobDescription) SetStartDate(v string) *InventoryRetrievalJobDescription {
  6770  	s.StartDate = &v
  6771  	return s
  6772  }
  6773  
  6774  // Provides options for specifying a range inventory retrieval job.
  6775  type InventoryRetrievalJobInput struct {
  6776  	_ struct{} `type:"structure"`
  6777  
  6778  	// The end of the date range in UTC for vault inventory retrieval that includes
  6779  	// archives created before this date. This value should be a string in the ISO
  6780  	// 8601 date format, for example 2013-03-20T17:03:43Z.
  6781  	EndDate *string `type:"string"`
  6782  
  6783  	// Specifies the maximum number of inventory items returned per vault inventory
  6784  	// retrieval request. Valid values are greater than or equal to 1.
  6785  	Limit *string `type:"string"`
  6786  
  6787  	// An opaque string that represents where to continue pagination of the vault
  6788  	// inventory retrieval results. You use the marker in a new InitiateJob request
  6789  	// to obtain additional inventory items. If there are no more inventory items,
  6790  	// this value is null.
  6791  	Marker *string `type:"string"`
  6792  
  6793  	// The start of the date range in UTC for vault inventory retrieval that includes
  6794  	// archives created on or after this date. This value should be a string in
  6795  	// the ISO 8601 date format, for example 2013-03-20T17:03:43Z.
  6796  	StartDate *string `type:"string"`
  6797  }
  6798  
  6799  // String returns the string representation.
  6800  //
  6801  // API parameter values that are decorated as "sensitive" in the API will not
  6802  // be included in the string output. The member name will be present, but the
  6803  // value will be replaced with "sensitive".
  6804  func (s InventoryRetrievalJobInput) String() string {
  6805  	return awsutil.Prettify(s)
  6806  }
  6807  
  6808  // GoString returns the string representation.
  6809  //
  6810  // API parameter values that are decorated as "sensitive" in the API will not
  6811  // be included in the string output. The member name will be present, but the
  6812  // value will be replaced with "sensitive".
  6813  func (s InventoryRetrievalJobInput) GoString() string {
  6814  	return s.String()
  6815  }
  6816  
  6817  // SetEndDate sets the EndDate field's value.
  6818  func (s *InventoryRetrievalJobInput) SetEndDate(v string) *InventoryRetrievalJobInput {
  6819  	s.EndDate = &v
  6820  	return s
  6821  }
  6822  
  6823  // SetLimit sets the Limit field's value.
  6824  func (s *InventoryRetrievalJobInput) SetLimit(v string) *InventoryRetrievalJobInput {
  6825  	s.Limit = &v
  6826  	return s
  6827  }
  6828  
  6829  // SetMarker sets the Marker field's value.
  6830  func (s *InventoryRetrievalJobInput) SetMarker(v string) *InventoryRetrievalJobInput {
  6831  	s.Marker = &v
  6832  	return s
  6833  }
  6834  
  6835  // SetStartDate sets the StartDate field's value.
  6836  func (s *InventoryRetrievalJobInput) SetStartDate(v string) *InventoryRetrievalJobInput {
  6837  	s.StartDate = &v
  6838  	return s
  6839  }
  6840  
  6841  // Contains the description of an Amazon S3 Glacier job.
  6842  type JobDescription struct {
  6843  	_ struct{} `type:"structure"`
  6844  
  6845  	// The job type. This value is either ArchiveRetrieval, InventoryRetrieval,
  6846  	// or Select.
  6847  	Action *string `type:"string" enum:"ActionCode"`
  6848  
  6849  	// The archive ID requested for a select job or archive retrieval. Otherwise,
  6850  	// this field is null.
  6851  	ArchiveId *string `type:"string"`
  6852  
  6853  	// The SHA256 tree hash of the entire archive for an archive retrieval. For
  6854  	// inventory retrieval or select jobs, this field is null.
  6855  	ArchiveSHA256TreeHash *string `type:"string"`
  6856  
  6857  	// For an archive retrieval job, this value is the size in bytes of the archive
  6858  	// being requested for download. For an inventory retrieval or select job, this
  6859  	// value is null.
  6860  	ArchiveSizeInBytes *int64 `type:"long"`
  6861  
  6862  	// The job status. When a job is completed, you get the job's output using Get
  6863  	// Job Output (GET output).
  6864  	Completed *bool `type:"boolean"`
  6865  
  6866  	// The UTC time that the job request completed. While the job is in progress,
  6867  	// the value is null.
  6868  	CompletionDate *string `type:"string"`
  6869  
  6870  	// The UTC date when the job was created. This value is a string representation
  6871  	// of ISO 8601 date format, for example "2012-03-20T17:03:43.221Z".
  6872  	CreationDate *string `type:"string"`
  6873  
  6874  	// Parameters used for range inventory retrieval.
  6875  	InventoryRetrievalParameters *InventoryRetrievalJobDescription `type:"structure"`
  6876  
  6877  	// For an inventory retrieval job, this value is the size in bytes of the inventory
  6878  	// requested for download. For an archive retrieval or select job, this value
  6879  	// is null.
  6880  	InventorySizeInBytes *int64 `type:"long"`
  6881  
  6882  	// The job description provided when initiating the job.
  6883  	JobDescription *string `type:"string"`
  6884  
  6885  	// An opaque string that identifies an Amazon S3 Glacier job.
  6886  	JobId *string `type:"string"`
  6887  
  6888  	// Contains the job output location.
  6889  	JobOutputPath *string `type:"string"`
  6890  
  6891  	// Contains the location where the data from the select job is stored.
  6892  	OutputLocation *OutputLocation `type:"structure"`
  6893  
  6894  	// The retrieved byte range for archive retrieval jobs in the form StartByteValue-EndByteValue.
  6895  	// If no range was specified in the archive retrieval, then the whole archive
  6896  	// is retrieved. In this case, StartByteValue equals 0 and EndByteValue equals
  6897  	// the size of the archive minus 1. For inventory retrieval or select jobs,
  6898  	// this field is null.
  6899  	RetrievalByteRange *string `type:"string"`
  6900  
  6901  	// For an archive retrieval job, this value is the checksum of the archive.
  6902  	// Otherwise, this value is null.
  6903  	//
  6904  	// The SHA256 tree hash value for the requested range of an archive. If the
  6905  	// InitiateJob request for an archive specified a tree-hash aligned range, then
  6906  	// this field returns a value.
  6907  	//
  6908  	// If the whole archive is retrieved, this value is the same as the ArchiveSHA256TreeHash
  6909  	// value.
  6910  	//
  6911  	// This field is null for the following:
  6912  	//
  6913  	//    * Archive retrieval jobs that specify a range that is not tree-hash aligned
  6914  	//
  6915  	//    * Archival jobs that specify a range that is equal to the whole archive,
  6916  	//    when the job status is InProgress
  6917  	//
  6918  	//    * Inventory jobs
  6919  	//
  6920  	//    * Select jobs
  6921  	SHA256TreeHash *string `type:"string"`
  6922  
  6923  	// An Amazon SNS topic that receives notification.
  6924  	SNSTopic *string `type:"string"`
  6925  
  6926  	// Contains the parameters used for a select.
  6927  	SelectParameters *SelectParameters `type:"structure"`
  6928  
  6929  	// The status code can be InProgress, Succeeded, or Failed, and indicates the
  6930  	// status of the job.
  6931  	StatusCode *string `type:"string" enum:"StatusCode"`
  6932  
  6933  	// A friendly message that describes the job status.
  6934  	StatusMessage *string `type:"string"`
  6935  
  6936  	// The tier to use for a select or an archive retrieval. Valid values are Expedited,
  6937  	// Standard, or Bulk. Standard is the default.
  6938  	Tier *string `type:"string"`
  6939  
  6940  	// The Amazon Resource Name (ARN) of the vault from which an archive retrieval
  6941  	// was requested.
  6942  	VaultARN *string `type:"string"`
  6943  }
  6944  
  6945  // String returns the string representation.
  6946  //
  6947  // API parameter values that are decorated as "sensitive" in the API will not
  6948  // be included in the string output. The member name will be present, but the
  6949  // value will be replaced with "sensitive".
  6950  func (s JobDescription) String() string {
  6951  	return awsutil.Prettify(s)
  6952  }
  6953  
  6954  // GoString returns the string representation.
  6955  //
  6956  // API parameter values that are decorated as "sensitive" in the API will not
  6957  // be included in the string output. The member name will be present, but the
  6958  // value will be replaced with "sensitive".
  6959  func (s JobDescription) GoString() string {
  6960  	return s.String()
  6961  }
  6962  
  6963  // SetAction sets the Action field's value.
  6964  func (s *JobDescription) SetAction(v string) *JobDescription {
  6965  	s.Action = &v
  6966  	return s
  6967  }
  6968  
  6969  // SetArchiveId sets the ArchiveId field's value.
  6970  func (s *JobDescription) SetArchiveId(v string) *JobDescription {
  6971  	s.ArchiveId = &v
  6972  	return s
  6973  }
  6974  
  6975  // SetArchiveSHA256TreeHash sets the ArchiveSHA256TreeHash field's value.
  6976  func (s *JobDescription) SetArchiveSHA256TreeHash(v string) *JobDescription {
  6977  	s.ArchiveSHA256TreeHash = &v
  6978  	return s
  6979  }
  6980  
  6981  // SetArchiveSizeInBytes sets the ArchiveSizeInBytes field's value.
  6982  func (s *JobDescription) SetArchiveSizeInBytes(v int64) *JobDescription {
  6983  	s.ArchiveSizeInBytes = &v
  6984  	return s
  6985  }
  6986  
  6987  // SetCompleted sets the Completed field's value.
  6988  func (s *JobDescription) SetCompleted(v bool) *JobDescription {
  6989  	s.Completed = &v
  6990  	return s
  6991  }
  6992  
  6993  // SetCompletionDate sets the CompletionDate field's value.
  6994  func (s *JobDescription) SetCompletionDate(v string) *JobDescription {
  6995  	s.CompletionDate = &v
  6996  	return s
  6997  }
  6998  
  6999  // SetCreationDate sets the CreationDate field's value.
  7000  func (s *JobDescription) SetCreationDate(v string) *JobDescription {
  7001  	s.CreationDate = &v
  7002  	return s
  7003  }
  7004  
  7005  // SetInventoryRetrievalParameters sets the InventoryRetrievalParameters field's value.
  7006  func (s *JobDescription) SetInventoryRetrievalParameters(v *InventoryRetrievalJobDescription) *JobDescription {
  7007  	s.InventoryRetrievalParameters = v
  7008  	return s
  7009  }
  7010  
  7011  // SetInventorySizeInBytes sets the InventorySizeInBytes field's value.
  7012  func (s *JobDescription) SetInventorySizeInBytes(v int64) *JobDescription {
  7013  	s.InventorySizeInBytes = &v
  7014  	return s
  7015  }
  7016  
  7017  // SetJobDescription sets the JobDescription field's value.
  7018  func (s *JobDescription) SetJobDescription(v string) *JobDescription {
  7019  	s.JobDescription = &v
  7020  	return s
  7021  }
  7022  
  7023  // SetJobId sets the JobId field's value.
  7024  func (s *JobDescription) SetJobId(v string) *JobDescription {
  7025  	s.JobId = &v
  7026  	return s
  7027  }
  7028  
  7029  // SetJobOutputPath sets the JobOutputPath field's value.
  7030  func (s *JobDescription) SetJobOutputPath(v string) *JobDescription {
  7031  	s.JobOutputPath = &v
  7032  	return s
  7033  }
  7034  
  7035  // SetOutputLocation sets the OutputLocation field's value.
  7036  func (s *JobDescription) SetOutputLocation(v *OutputLocation) *JobDescription {
  7037  	s.OutputLocation = v
  7038  	return s
  7039  }
  7040  
  7041  // SetRetrievalByteRange sets the RetrievalByteRange field's value.
  7042  func (s *JobDescription) SetRetrievalByteRange(v string) *JobDescription {
  7043  	s.RetrievalByteRange = &v
  7044  	return s
  7045  }
  7046  
  7047  // SetSHA256TreeHash sets the SHA256TreeHash field's value.
  7048  func (s *JobDescription) SetSHA256TreeHash(v string) *JobDescription {
  7049  	s.SHA256TreeHash = &v
  7050  	return s
  7051  }
  7052  
  7053  // SetSNSTopic sets the SNSTopic field's value.
  7054  func (s *JobDescription) SetSNSTopic(v string) *JobDescription {
  7055  	s.SNSTopic = &v
  7056  	return s
  7057  }
  7058  
  7059  // SetSelectParameters sets the SelectParameters field's value.
  7060  func (s *JobDescription) SetSelectParameters(v *SelectParameters) *JobDescription {
  7061  	s.SelectParameters = v
  7062  	return s
  7063  }
  7064  
  7065  // SetStatusCode sets the StatusCode field's value.
  7066  func (s *JobDescription) SetStatusCode(v string) *JobDescription {
  7067  	s.StatusCode = &v
  7068  	return s
  7069  }
  7070  
  7071  // SetStatusMessage sets the StatusMessage field's value.
  7072  func (s *JobDescription) SetStatusMessage(v string) *JobDescription {
  7073  	s.StatusMessage = &v
  7074  	return s
  7075  }
  7076  
  7077  // SetTier sets the Tier field's value.
  7078  func (s *JobDescription) SetTier(v string) *JobDescription {
  7079  	s.Tier = &v
  7080  	return s
  7081  }
  7082  
  7083  // SetVaultARN sets the VaultARN field's value.
  7084  func (s *JobDescription) SetVaultARN(v string) *JobDescription {
  7085  	s.VaultARN = &v
  7086  	return s
  7087  }
  7088  
  7089  // Provides options for defining a job.
  7090  type JobParameters struct {
  7091  	_ struct{} `type:"structure"`
  7092  
  7093  	// The ID of the archive that you want to retrieve. This field is required only
  7094  	// if Type is set to select or archive-retrievalcode>. An error occurs if you
  7095  	// specify this request parameter for an inventory retrieval job request.
  7096  	ArchiveId *string `type:"string"`
  7097  
  7098  	// The optional description for the job. The description must be less than or
  7099  	// equal to 1,024 bytes. The allowable characters are 7-bit ASCII without control
  7100  	// codes-specifically, ASCII values 32-126 decimal or 0x20-0x7E hexadecimal.
  7101  	Description *string `type:"string"`
  7102  
  7103  	// When initiating a job to retrieve a vault inventory, you can optionally add
  7104  	// this parameter to your request to specify the output format. If you are initiating
  7105  	// an inventory job and do not specify a Format field, JSON is the default format.
  7106  	// Valid values are "CSV" and "JSON".
  7107  	Format *string `type:"string"`
  7108  
  7109  	// Input parameters used for range inventory retrieval.
  7110  	InventoryRetrievalParameters *InventoryRetrievalJobInput `type:"structure"`
  7111  
  7112  	// Contains information about the location where the select job results are
  7113  	// stored.
  7114  	OutputLocation *OutputLocation `type:"structure"`
  7115  
  7116  	// The byte range to retrieve for an archive retrieval. in the form "StartByteValue-EndByteValue"
  7117  	// If not specified, the whole archive is retrieved. If specified, the byte
  7118  	// range must be megabyte (1024*1024) aligned which means that StartByteValue
  7119  	// must be divisible by 1 MB and EndByteValue plus 1 must be divisible by 1
  7120  	// MB or be the end of the archive specified as the archive byte size value
  7121  	// minus 1. If RetrievalByteRange is not megabyte aligned, this operation returns
  7122  	// a 400 response.
  7123  	//
  7124  	// An error occurs if you specify this field for an inventory retrieval job
  7125  	// request.
  7126  	RetrievalByteRange *string `type:"string"`
  7127  
  7128  	// The Amazon SNS topic ARN to which Amazon S3 Glacier sends a notification
  7129  	// when the job is completed and the output is ready for you to download. The
  7130  	// specified topic publishes the notification to its subscribers. The SNS topic
  7131  	// must exist.
  7132  	SNSTopic *string `type:"string"`
  7133  
  7134  	// Contains the parameters that define a job.
  7135  	SelectParameters *SelectParameters `type:"structure"`
  7136  
  7137  	// The tier to use for a select or an archive retrieval job. Valid values are
  7138  	// Expedited, Standard, or Bulk. Standard is the default.
  7139  	Tier *string `type:"string"`
  7140  
  7141  	// The job type. You can initiate a job to perform a select query on an archive,
  7142  	// retrieve an archive, or get an inventory of a vault. Valid values are "select",
  7143  	// "archive-retrieval" and "inventory-retrieval".
  7144  	Type *string `type:"string"`
  7145  }
  7146  
  7147  // String returns the string representation.
  7148  //
  7149  // API parameter values that are decorated as "sensitive" in the API will not
  7150  // be included in the string output. The member name will be present, but the
  7151  // value will be replaced with "sensitive".
  7152  func (s JobParameters) String() string {
  7153  	return awsutil.Prettify(s)
  7154  }
  7155  
  7156  // GoString returns the string representation.
  7157  //
  7158  // API parameter values that are decorated as "sensitive" in the API will not
  7159  // be included in the string output. The member name will be present, but the
  7160  // value will be replaced with "sensitive".
  7161  func (s JobParameters) GoString() string {
  7162  	return s.String()
  7163  }
  7164  
  7165  // Validate inspects the fields of the type to determine if they are valid.
  7166  func (s *JobParameters) Validate() error {
  7167  	invalidParams := request.ErrInvalidParams{Context: "JobParameters"}
  7168  	if s.OutputLocation != nil {
  7169  		if err := s.OutputLocation.Validate(); err != nil {
  7170  			invalidParams.AddNested("OutputLocation", err.(request.ErrInvalidParams))
  7171  		}
  7172  	}
  7173  
  7174  	if invalidParams.Len() > 0 {
  7175  		return invalidParams
  7176  	}
  7177  	return nil
  7178  }
  7179  
  7180  // SetArchiveId sets the ArchiveId field's value.
  7181  func (s *JobParameters) SetArchiveId(v string) *JobParameters {
  7182  	s.ArchiveId = &v
  7183  	return s
  7184  }
  7185  
  7186  // SetDescription sets the Description field's value.
  7187  func (s *JobParameters) SetDescription(v string) *JobParameters {
  7188  	s.Description = &v
  7189  	return s
  7190  }
  7191  
  7192  // SetFormat sets the Format field's value.
  7193  func (s *JobParameters) SetFormat(v string) *JobParameters {
  7194  	s.Format = &v
  7195  	return s
  7196  }
  7197  
  7198  // SetInventoryRetrievalParameters sets the InventoryRetrievalParameters field's value.
  7199  func (s *JobParameters) SetInventoryRetrievalParameters(v *InventoryRetrievalJobInput) *JobParameters {
  7200  	s.InventoryRetrievalParameters = v
  7201  	return s
  7202  }
  7203  
  7204  // SetOutputLocation sets the OutputLocation field's value.
  7205  func (s *JobParameters) SetOutputLocation(v *OutputLocation) *JobParameters {
  7206  	s.OutputLocation = v
  7207  	return s
  7208  }
  7209  
  7210  // SetRetrievalByteRange sets the RetrievalByteRange field's value.
  7211  func (s *JobParameters) SetRetrievalByteRange(v string) *JobParameters {
  7212  	s.RetrievalByteRange = &v
  7213  	return s
  7214  }
  7215  
  7216  // SetSNSTopic sets the SNSTopic field's value.
  7217  func (s *JobParameters) SetSNSTopic(v string) *JobParameters {
  7218  	s.SNSTopic = &v
  7219  	return s
  7220  }
  7221  
  7222  // SetSelectParameters sets the SelectParameters field's value.
  7223  func (s *JobParameters) SetSelectParameters(v *SelectParameters) *JobParameters {
  7224  	s.SelectParameters = v
  7225  	return s
  7226  }
  7227  
  7228  // SetTier sets the Tier field's value.
  7229  func (s *JobParameters) SetTier(v string) *JobParameters {
  7230  	s.Tier = &v
  7231  	return s
  7232  }
  7233  
  7234  // SetType sets the Type field's value.
  7235  func (s *JobParameters) SetType(v string) *JobParameters {
  7236  	s.Type = &v
  7237  	return s
  7238  }
  7239  
  7240  // Returned if the request results in a vault or account limit being exceeded.
  7241  type LimitExceededException struct {
  7242  	_            struct{}                  `type:"structure"`
  7243  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7244  
  7245  	// 400 Bad Request
  7246  	Code_ *string `locationName:"code" type:"string"`
  7247  
  7248  	// Returned if the request results in a vault limit or tags limit being exceeded.
  7249  	Message_ *string `locationName:"message" type:"string"`
  7250  
  7251  	// Client
  7252  	Type *string `locationName:"type" type:"string"`
  7253  }
  7254  
  7255  // String returns the string representation.
  7256  //
  7257  // API parameter values that are decorated as "sensitive" in the API will not
  7258  // be included in the string output. The member name will be present, but the
  7259  // value will be replaced with "sensitive".
  7260  func (s LimitExceededException) String() string {
  7261  	return awsutil.Prettify(s)
  7262  }
  7263  
  7264  // GoString returns the string representation.
  7265  //
  7266  // API parameter values that are decorated as "sensitive" in the API will not
  7267  // be included in the string output. The member name will be present, but the
  7268  // value will be replaced with "sensitive".
  7269  func (s LimitExceededException) GoString() string {
  7270  	return s.String()
  7271  }
  7272  
  7273  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
  7274  	return &LimitExceededException{
  7275  		RespMetadata: v,
  7276  	}
  7277  }
  7278  
  7279  // Code returns the exception type name.
  7280  func (s *LimitExceededException) Code() string {
  7281  	return "LimitExceededException"
  7282  }
  7283  
  7284  // Message returns the exception's message.
  7285  func (s *LimitExceededException) Message() string {
  7286  	if s.Message_ != nil {
  7287  		return *s.Message_
  7288  	}
  7289  	return ""
  7290  }
  7291  
  7292  // OrigErr always returns nil, satisfies awserr.Error interface.
  7293  func (s *LimitExceededException) OrigErr() error {
  7294  	return nil
  7295  }
  7296  
  7297  func (s *LimitExceededException) Error() string {
  7298  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  7299  }
  7300  
  7301  // Status code returns the HTTP status code for the request's response error.
  7302  func (s *LimitExceededException) StatusCode() int {
  7303  	return s.RespMetadata.StatusCode
  7304  }
  7305  
  7306  // RequestID returns the service's response RequestID for request.
  7307  func (s *LimitExceededException) RequestID() string {
  7308  	return s.RespMetadata.RequestID
  7309  }
  7310  
  7311  // Provides options for retrieving a job list for an Amazon S3 Glacier vault.
  7312  type ListJobsInput struct {
  7313  	_ struct{} `type:"structure" nopayload:"true"`
  7314  
  7315  	// The AccountId value is the AWS account ID of the account that owns the vault.
  7316  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  7317  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  7318  	// credentials used to sign the request. If you use an account ID, do not include
  7319  	// any hyphens ('-') in the ID.
  7320  	//
  7321  	// AccountId is a required field
  7322  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  7323  
  7324  	// The state of the jobs to return. You can specify true or false.
  7325  	Completed *string `location:"querystring" locationName:"completed" type:"string"`
  7326  
  7327  	// The maximum number of jobs to be returned. The default limit is 50. The number
  7328  	// of jobs returned might be fewer than the specified limit, but the number
  7329  	// of returned jobs never exceeds the limit.
  7330  	Limit *string `location:"querystring" locationName:"limit" type:"string"`
  7331  
  7332  	// An opaque string used for pagination. This value specifies the job at which
  7333  	// the listing of jobs should begin. Get the marker value from a previous List
  7334  	// Jobs response. You only need to include the marker if you are continuing
  7335  	// the pagination of results started in a previous List Jobs request.
  7336  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
  7337  
  7338  	// The type of job status to return. You can specify the following values: InProgress,
  7339  	// Succeeded, or Failed.
  7340  	Statuscode *string `location:"querystring" locationName:"statuscode" type:"string"`
  7341  
  7342  	// The name of the vault.
  7343  	//
  7344  	// VaultName is a required field
  7345  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  7346  }
  7347  
  7348  // String returns the string representation.
  7349  //
  7350  // API parameter values that are decorated as "sensitive" in the API will not
  7351  // be included in the string output. The member name will be present, but the
  7352  // value will be replaced with "sensitive".
  7353  func (s ListJobsInput) String() string {
  7354  	return awsutil.Prettify(s)
  7355  }
  7356  
  7357  // GoString returns the string representation.
  7358  //
  7359  // API parameter values that are decorated as "sensitive" in the API will not
  7360  // be included in the string output. The member name will be present, but the
  7361  // value will be replaced with "sensitive".
  7362  func (s ListJobsInput) GoString() string {
  7363  	return s.String()
  7364  }
  7365  
  7366  // Validate inspects the fields of the type to determine if they are valid.
  7367  func (s *ListJobsInput) Validate() error {
  7368  	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
  7369  	if s.AccountId == nil {
  7370  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7371  	}
  7372  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7373  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7374  	}
  7375  	if s.VaultName == nil {
  7376  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  7377  	}
  7378  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  7379  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  7380  	}
  7381  
  7382  	if invalidParams.Len() > 0 {
  7383  		return invalidParams
  7384  	}
  7385  	return nil
  7386  }
  7387  
  7388  // SetAccountId sets the AccountId field's value.
  7389  func (s *ListJobsInput) SetAccountId(v string) *ListJobsInput {
  7390  	s.AccountId = &v
  7391  	return s
  7392  }
  7393  
  7394  // SetCompleted sets the Completed field's value.
  7395  func (s *ListJobsInput) SetCompleted(v string) *ListJobsInput {
  7396  	s.Completed = &v
  7397  	return s
  7398  }
  7399  
  7400  // SetLimit sets the Limit field's value.
  7401  func (s *ListJobsInput) SetLimit(v string) *ListJobsInput {
  7402  	s.Limit = &v
  7403  	return s
  7404  }
  7405  
  7406  // SetMarker sets the Marker field's value.
  7407  func (s *ListJobsInput) SetMarker(v string) *ListJobsInput {
  7408  	s.Marker = &v
  7409  	return s
  7410  }
  7411  
  7412  // SetStatuscode sets the Statuscode field's value.
  7413  func (s *ListJobsInput) SetStatuscode(v string) *ListJobsInput {
  7414  	s.Statuscode = &v
  7415  	return s
  7416  }
  7417  
  7418  // SetVaultName sets the VaultName field's value.
  7419  func (s *ListJobsInput) SetVaultName(v string) *ListJobsInput {
  7420  	s.VaultName = &v
  7421  	return s
  7422  }
  7423  
  7424  // Contains the Amazon S3 Glacier response to your request.
  7425  type ListJobsOutput struct {
  7426  	_ struct{} `type:"structure"`
  7427  
  7428  	// A list of job objects. Each job object contains metadata describing the job.
  7429  	JobList []*JobDescription `type:"list"`
  7430  
  7431  	// An opaque string used for pagination that specifies the job at which the
  7432  	// listing of jobs should begin. You get the marker value from a previous List
  7433  	// Jobs response. You only need to include the marker if you are continuing
  7434  	// the pagination of the results started in a previous List Jobs request.
  7435  	Marker *string `type:"string"`
  7436  }
  7437  
  7438  // String returns the string representation.
  7439  //
  7440  // API parameter values that are decorated as "sensitive" in the API will not
  7441  // be included in the string output. The member name will be present, but the
  7442  // value will be replaced with "sensitive".
  7443  func (s ListJobsOutput) String() string {
  7444  	return awsutil.Prettify(s)
  7445  }
  7446  
  7447  // GoString returns the string representation.
  7448  //
  7449  // API parameter values that are decorated as "sensitive" in the API will not
  7450  // be included in the string output. The member name will be present, but the
  7451  // value will be replaced with "sensitive".
  7452  func (s ListJobsOutput) GoString() string {
  7453  	return s.String()
  7454  }
  7455  
  7456  // SetJobList sets the JobList field's value.
  7457  func (s *ListJobsOutput) SetJobList(v []*JobDescription) *ListJobsOutput {
  7458  	s.JobList = v
  7459  	return s
  7460  }
  7461  
  7462  // SetMarker sets the Marker field's value.
  7463  func (s *ListJobsOutput) SetMarker(v string) *ListJobsOutput {
  7464  	s.Marker = &v
  7465  	return s
  7466  }
  7467  
  7468  // Provides options for retrieving list of in-progress multipart uploads for
  7469  // an Amazon Glacier vault.
  7470  type ListMultipartUploadsInput struct {
  7471  	_ struct{} `type:"structure" nopayload:"true"`
  7472  
  7473  	// The AccountId value is the AWS account ID of the account that owns the vault.
  7474  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  7475  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  7476  	// credentials used to sign the request. If you use an account ID, do not include
  7477  	// any hyphens ('-') in the ID.
  7478  	//
  7479  	// AccountId is a required field
  7480  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  7481  
  7482  	// Specifies the maximum number of uploads returned in the response body. If
  7483  	// this value is not specified, the List Uploads operation returns up to 50
  7484  	// uploads.
  7485  	Limit *string `location:"querystring" locationName:"limit" type:"string"`
  7486  
  7487  	// An opaque string used for pagination. This value specifies the upload at
  7488  	// which the listing of uploads should begin. Get the marker value from a previous
  7489  	// List Uploads response. You need only include the marker if you are continuing
  7490  	// the pagination of results started in a previous List Uploads request.
  7491  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
  7492  
  7493  	// The name of the vault.
  7494  	//
  7495  	// VaultName is a required field
  7496  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  7497  }
  7498  
  7499  // String returns the string representation.
  7500  //
  7501  // API parameter values that are decorated as "sensitive" in the API will not
  7502  // be included in the string output. The member name will be present, but the
  7503  // value will be replaced with "sensitive".
  7504  func (s ListMultipartUploadsInput) String() string {
  7505  	return awsutil.Prettify(s)
  7506  }
  7507  
  7508  // GoString returns the string representation.
  7509  //
  7510  // API parameter values that are decorated as "sensitive" in the API will not
  7511  // be included in the string output. The member name will be present, but the
  7512  // value will be replaced with "sensitive".
  7513  func (s ListMultipartUploadsInput) GoString() string {
  7514  	return s.String()
  7515  }
  7516  
  7517  // Validate inspects the fields of the type to determine if they are valid.
  7518  func (s *ListMultipartUploadsInput) Validate() error {
  7519  	invalidParams := request.ErrInvalidParams{Context: "ListMultipartUploadsInput"}
  7520  	if s.AccountId == nil {
  7521  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7522  	}
  7523  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7524  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7525  	}
  7526  	if s.VaultName == nil {
  7527  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  7528  	}
  7529  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  7530  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  7531  	}
  7532  
  7533  	if invalidParams.Len() > 0 {
  7534  		return invalidParams
  7535  	}
  7536  	return nil
  7537  }
  7538  
  7539  // SetAccountId sets the AccountId field's value.
  7540  func (s *ListMultipartUploadsInput) SetAccountId(v string) *ListMultipartUploadsInput {
  7541  	s.AccountId = &v
  7542  	return s
  7543  }
  7544  
  7545  // SetLimit sets the Limit field's value.
  7546  func (s *ListMultipartUploadsInput) SetLimit(v string) *ListMultipartUploadsInput {
  7547  	s.Limit = &v
  7548  	return s
  7549  }
  7550  
  7551  // SetMarker sets the Marker field's value.
  7552  func (s *ListMultipartUploadsInput) SetMarker(v string) *ListMultipartUploadsInput {
  7553  	s.Marker = &v
  7554  	return s
  7555  }
  7556  
  7557  // SetVaultName sets the VaultName field's value.
  7558  func (s *ListMultipartUploadsInput) SetVaultName(v string) *ListMultipartUploadsInput {
  7559  	s.VaultName = &v
  7560  	return s
  7561  }
  7562  
  7563  // Contains the Amazon S3 Glacier response to your request.
  7564  type ListMultipartUploadsOutput struct {
  7565  	_ struct{} `type:"structure"`
  7566  
  7567  	// An opaque string that represents where to continue pagination of the results.
  7568  	// You use the marker in a new List Multipart Uploads request to obtain more
  7569  	// uploads in the list. If there are no more uploads, this value is null.
  7570  	Marker *string `type:"string"`
  7571  
  7572  	// A list of in-progress multipart uploads.
  7573  	UploadsList []*UploadListElement `type:"list"`
  7574  }
  7575  
  7576  // String returns the string representation.
  7577  //
  7578  // API parameter values that are decorated as "sensitive" in the API will not
  7579  // be included in the string output. The member name will be present, but the
  7580  // value will be replaced with "sensitive".
  7581  func (s ListMultipartUploadsOutput) String() string {
  7582  	return awsutil.Prettify(s)
  7583  }
  7584  
  7585  // GoString returns the string representation.
  7586  //
  7587  // API parameter values that are decorated as "sensitive" in the API will not
  7588  // be included in the string output. The member name will be present, but the
  7589  // value will be replaced with "sensitive".
  7590  func (s ListMultipartUploadsOutput) GoString() string {
  7591  	return s.String()
  7592  }
  7593  
  7594  // SetMarker sets the Marker field's value.
  7595  func (s *ListMultipartUploadsOutput) SetMarker(v string) *ListMultipartUploadsOutput {
  7596  	s.Marker = &v
  7597  	return s
  7598  }
  7599  
  7600  // SetUploadsList sets the UploadsList field's value.
  7601  func (s *ListMultipartUploadsOutput) SetUploadsList(v []*UploadListElement) *ListMultipartUploadsOutput {
  7602  	s.UploadsList = v
  7603  	return s
  7604  }
  7605  
  7606  // Provides options for retrieving a list of parts of an archive that have been
  7607  // uploaded in a specific multipart upload.
  7608  type ListPartsInput struct {
  7609  	_ struct{} `type:"structure" nopayload:"true"`
  7610  
  7611  	// The AccountId value is the AWS account ID of the account that owns the vault.
  7612  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  7613  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  7614  	// credentials used to sign the request. If you use an account ID, do not include
  7615  	// any hyphens ('-') in the ID.
  7616  	//
  7617  	// AccountId is a required field
  7618  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  7619  
  7620  	// The maximum number of parts to be returned. The default limit is 50. The
  7621  	// number of parts returned might be fewer than the specified limit, but the
  7622  	// number of returned parts never exceeds the limit.
  7623  	Limit *string `location:"querystring" locationName:"limit" type:"string"`
  7624  
  7625  	// An opaque string used for pagination. This value specifies the part at which
  7626  	// the listing of parts should begin. Get the marker value from the response
  7627  	// of a previous List Parts response. You need only include the marker if you
  7628  	// are continuing the pagination of results started in a previous List Parts
  7629  	// request.
  7630  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
  7631  
  7632  	// The upload ID of the multipart upload.
  7633  	//
  7634  	// UploadId is a required field
  7635  	UploadId *string `location:"uri" locationName:"uploadId" type:"string" required:"true"`
  7636  
  7637  	// The name of the vault.
  7638  	//
  7639  	// VaultName is a required field
  7640  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  7641  }
  7642  
  7643  // String returns the string representation.
  7644  //
  7645  // API parameter values that are decorated as "sensitive" in the API will not
  7646  // be included in the string output. The member name will be present, but the
  7647  // value will be replaced with "sensitive".
  7648  func (s ListPartsInput) String() string {
  7649  	return awsutil.Prettify(s)
  7650  }
  7651  
  7652  // GoString returns the string representation.
  7653  //
  7654  // API parameter values that are decorated as "sensitive" in the API will not
  7655  // be included in the string output. The member name will be present, but the
  7656  // value will be replaced with "sensitive".
  7657  func (s ListPartsInput) GoString() string {
  7658  	return s.String()
  7659  }
  7660  
  7661  // Validate inspects the fields of the type to determine if they are valid.
  7662  func (s *ListPartsInput) Validate() error {
  7663  	invalidParams := request.ErrInvalidParams{Context: "ListPartsInput"}
  7664  	if s.AccountId == nil {
  7665  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7666  	}
  7667  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7668  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7669  	}
  7670  	if s.UploadId == nil {
  7671  		invalidParams.Add(request.NewErrParamRequired("UploadId"))
  7672  	}
  7673  	if s.UploadId != nil && len(*s.UploadId) < 1 {
  7674  		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
  7675  	}
  7676  	if s.VaultName == nil {
  7677  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  7678  	}
  7679  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  7680  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  7681  	}
  7682  
  7683  	if invalidParams.Len() > 0 {
  7684  		return invalidParams
  7685  	}
  7686  	return nil
  7687  }
  7688  
  7689  // SetAccountId sets the AccountId field's value.
  7690  func (s *ListPartsInput) SetAccountId(v string) *ListPartsInput {
  7691  	s.AccountId = &v
  7692  	return s
  7693  }
  7694  
  7695  // SetLimit sets the Limit field's value.
  7696  func (s *ListPartsInput) SetLimit(v string) *ListPartsInput {
  7697  	s.Limit = &v
  7698  	return s
  7699  }
  7700  
  7701  // SetMarker sets the Marker field's value.
  7702  func (s *ListPartsInput) SetMarker(v string) *ListPartsInput {
  7703  	s.Marker = &v
  7704  	return s
  7705  }
  7706  
  7707  // SetUploadId sets the UploadId field's value.
  7708  func (s *ListPartsInput) SetUploadId(v string) *ListPartsInput {
  7709  	s.UploadId = &v
  7710  	return s
  7711  }
  7712  
  7713  // SetVaultName sets the VaultName field's value.
  7714  func (s *ListPartsInput) SetVaultName(v string) *ListPartsInput {
  7715  	s.VaultName = &v
  7716  	return s
  7717  }
  7718  
  7719  // Contains the Amazon S3 Glacier response to your request.
  7720  type ListPartsOutput struct {
  7721  	_ struct{} `type:"structure"`
  7722  
  7723  	// The description of the archive that was specified in the Initiate Multipart
  7724  	// Upload request.
  7725  	ArchiveDescription *string `type:"string"`
  7726  
  7727  	// The UTC time at which the multipart upload was initiated.
  7728  	CreationDate *string `type:"string"`
  7729  
  7730  	// An opaque string that represents where to continue pagination of the results.
  7731  	// You use the marker in a new List Parts request to obtain more jobs in the
  7732  	// list. If there are no more parts, this value is null.
  7733  	Marker *string `type:"string"`
  7734  
  7735  	// The ID of the upload to which the parts are associated.
  7736  	MultipartUploadId *string `type:"string"`
  7737  
  7738  	// The part size in bytes. This is the same value that you specified in the
  7739  	// Initiate Multipart Upload request.
  7740  	PartSizeInBytes *int64 `type:"long"`
  7741  
  7742  	// A list of the part sizes of the multipart upload. Each object in the array
  7743  	// contains a RangeBytes and sha256-tree-hash name/value pair.
  7744  	Parts []*PartListElement `type:"list"`
  7745  
  7746  	// The Amazon Resource Name (ARN) of the vault to which the multipart upload
  7747  	// was initiated.
  7748  	VaultARN *string `type:"string"`
  7749  }
  7750  
  7751  // String returns the string representation.
  7752  //
  7753  // API parameter values that are decorated as "sensitive" in the API will not
  7754  // be included in the string output. The member name will be present, but the
  7755  // value will be replaced with "sensitive".
  7756  func (s ListPartsOutput) String() string {
  7757  	return awsutil.Prettify(s)
  7758  }
  7759  
  7760  // GoString returns the string representation.
  7761  //
  7762  // API parameter values that are decorated as "sensitive" in the API will not
  7763  // be included in the string output. The member name will be present, but the
  7764  // value will be replaced with "sensitive".
  7765  func (s ListPartsOutput) GoString() string {
  7766  	return s.String()
  7767  }
  7768  
  7769  // SetArchiveDescription sets the ArchiveDescription field's value.
  7770  func (s *ListPartsOutput) SetArchiveDescription(v string) *ListPartsOutput {
  7771  	s.ArchiveDescription = &v
  7772  	return s
  7773  }
  7774  
  7775  // SetCreationDate sets the CreationDate field's value.
  7776  func (s *ListPartsOutput) SetCreationDate(v string) *ListPartsOutput {
  7777  	s.CreationDate = &v
  7778  	return s
  7779  }
  7780  
  7781  // SetMarker sets the Marker field's value.
  7782  func (s *ListPartsOutput) SetMarker(v string) *ListPartsOutput {
  7783  	s.Marker = &v
  7784  	return s
  7785  }
  7786  
  7787  // SetMultipartUploadId sets the MultipartUploadId field's value.
  7788  func (s *ListPartsOutput) SetMultipartUploadId(v string) *ListPartsOutput {
  7789  	s.MultipartUploadId = &v
  7790  	return s
  7791  }
  7792  
  7793  // SetPartSizeInBytes sets the PartSizeInBytes field's value.
  7794  func (s *ListPartsOutput) SetPartSizeInBytes(v int64) *ListPartsOutput {
  7795  	s.PartSizeInBytes = &v
  7796  	return s
  7797  }
  7798  
  7799  // SetParts sets the Parts field's value.
  7800  func (s *ListPartsOutput) SetParts(v []*PartListElement) *ListPartsOutput {
  7801  	s.Parts = v
  7802  	return s
  7803  }
  7804  
  7805  // SetVaultARN sets the VaultARN field's value.
  7806  func (s *ListPartsOutput) SetVaultARN(v string) *ListPartsOutput {
  7807  	s.VaultARN = &v
  7808  	return s
  7809  }
  7810  
  7811  type ListProvisionedCapacityInput struct {
  7812  	_ struct{} `type:"structure" nopayload:"true"`
  7813  
  7814  	// The AWS account ID of the account that owns the vault. You can either specify
  7815  	// an AWS account ID or optionally a single '-' (hyphen), in which case Amazon
  7816  	// S3 Glacier uses the AWS account ID associated with the credentials used to
  7817  	// sign the request. If you use an account ID, don't include any hyphens ('-')
  7818  	// in the ID.
  7819  	//
  7820  	// AccountId is a required field
  7821  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  7822  }
  7823  
  7824  // String returns the string representation.
  7825  //
  7826  // API parameter values that are decorated as "sensitive" in the API will not
  7827  // be included in the string output. The member name will be present, but the
  7828  // value will be replaced with "sensitive".
  7829  func (s ListProvisionedCapacityInput) String() string {
  7830  	return awsutil.Prettify(s)
  7831  }
  7832  
  7833  // GoString returns the string representation.
  7834  //
  7835  // API parameter values that are decorated as "sensitive" in the API will not
  7836  // be included in the string output. The member name will be present, but the
  7837  // value will be replaced with "sensitive".
  7838  func (s ListProvisionedCapacityInput) GoString() string {
  7839  	return s.String()
  7840  }
  7841  
  7842  // Validate inspects the fields of the type to determine if they are valid.
  7843  func (s *ListProvisionedCapacityInput) Validate() error {
  7844  	invalidParams := request.ErrInvalidParams{Context: "ListProvisionedCapacityInput"}
  7845  	if s.AccountId == nil {
  7846  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7847  	}
  7848  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7849  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7850  	}
  7851  
  7852  	if invalidParams.Len() > 0 {
  7853  		return invalidParams
  7854  	}
  7855  	return nil
  7856  }
  7857  
  7858  // SetAccountId sets the AccountId field's value.
  7859  func (s *ListProvisionedCapacityInput) SetAccountId(v string) *ListProvisionedCapacityInput {
  7860  	s.AccountId = &v
  7861  	return s
  7862  }
  7863  
  7864  type ListProvisionedCapacityOutput struct {
  7865  	_ struct{} `type:"structure"`
  7866  
  7867  	// The response body contains the following JSON fields.
  7868  	ProvisionedCapacityList []*ProvisionedCapacityDescription `type:"list"`
  7869  }
  7870  
  7871  // String returns the string representation.
  7872  //
  7873  // API parameter values that are decorated as "sensitive" in the API will not
  7874  // be included in the string output. The member name will be present, but the
  7875  // value will be replaced with "sensitive".
  7876  func (s ListProvisionedCapacityOutput) String() string {
  7877  	return awsutil.Prettify(s)
  7878  }
  7879  
  7880  // GoString returns the string representation.
  7881  //
  7882  // API parameter values that are decorated as "sensitive" in the API will not
  7883  // be included in the string output. The member name will be present, but the
  7884  // value will be replaced with "sensitive".
  7885  func (s ListProvisionedCapacityOutput) GoString() string {
  7886  	return s.String()
  7887  }
  7888  
  7889  // SetProvisionedCapacityList sets the ProvisionedCapacityList field's value.
  7890  func (s *ListProvisionedCapacityOutput) SetProvisionedCapacityList(v []*ProvisionedCapacityDescription) *ListProvisionedCapacityOutput {
  7891  	s.ProvisionedCapacityList = v
  7892  	return s
  7893  }
  7894  
  7895  // The input value for ListTagsForVaultInput.
  7896  type ListTagsForVaultInput struct {
  7897  	_ struct{} `type:"structure" nopayload:"true"`
  7898  
  7899  	// The AccountId value is the AWS account ID of the account that owns the vault.
  7900  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  7901  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  7902  	// credentials used to sign the request. If you use an account ID, do not include
  7903  	// any hyphens ('-') in the ID.
  7904  	//
  7905  	// AccountId is a required field
  7906  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  7907  
  7908  	// The name of the vault.
  7909  	//
  7910  	// VaultName is a required field
  7911  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  7912  }
  7913  
  7914  // String returns the string representation.
  7915  //
  7916  // API parameter values that are decorated as "sensitive" in the API will not
  7917  // be included in the string output. The member name will be present, but the
  7918  // value will be replaced with "sensitive".
  7919  func (s ListTagsForVaultInput) String() string {
  7920  	return awsutil.Prettify(s)
  7921  }
  7922  
  7923  // GoString returns the string representation.
  7924  //
  7925  // API parameter values that are decorated as "sensitive" in the API will not
  7926  // be included in the string output. The member name will be present, but the
  7927  // value will be replaced with "sensitive".
  7928  func (s ListTagsForVaultInput) GoString() string {
  7929  	return s.String()
  7930  }
  7931  
  7932  // Validate inspects the fields of the type to determine if they are valid.
  7933  func (s *ListTagsForVaultInput) Validate() error {
  7934  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForVaultInput"}
  7935  	if s.AccountId == nil {
  7936  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  7937  	}
  7938  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  7939  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  7940  	}
  7941  	if s.VaultName == nil {
  7942  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  7943  	}
  7944  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  7945  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  7946  	}
  7947  
  7948  	if invalidParams.Len() > 0 {
  7949  		return invalidParams
  7950  	}
  7951  	return nil
  7952  }
  7953  
  7954  // SetAccountId sets the AccountId field's value.
  7955  func (s *ListTagsForVaultInput) SetAccountId(v string) *ListTagsForVaultInput {
  7956  	s.AccountId = &v
  7957  	return s
  7958  }
  7959  
  7960  // SetVaultName sets the VaultName field's value.
  7961  func (s *ListTagsForVaultInput) SetVaultName(v string) *ListTagsForVaultInput {
  7962  	s.VaultName = &v
  7963  	return s
  7964  }
  7965  
  7966  // Contains the Amazon S3 Glacier response to your request.
  7967  type ListTagsForVaultOutput struct {
  7968  	_ struct{} `type:"structure"`
  7969  
  7970  	// The tags attached to the vault. Each tag is composed of a key and a value.
  7971  	Tags map[string]*string `type:"map"`
  7972  }
  7973  
  7974  // String returns the string representation.
  7975  //
  7976  // API parameter values that are decorated as "sensitive" in the API will not
  7977  // be included in the string output. The member name will be present, but the
  7978  // value will be replaced with "sensitive".
  7979  func (s ListTagsForVaultOutput) String() string {
  7980  	return awsutil.Prettify(s)
  7981  }
  7982  
  7983  // GoString returns the string representation.
  7984  //
  7985  // API parameter values that are decorated as "sensitive" in the API will not
  7986  // be included in the string output. The member name will be present, but the
  7987  // value will be replaced with "sensitive".
  7988  func (s ListTagsForVaultOutput) GoString() string {
  7989  	return s.String()
  7990  }
  7991  
  7992  // SetTags sets the Tags field's value.
  7993  func (s *ListTagsForVaultOutput) SetTags(v map[string]*string) *ListTagsForVaultOutput {
  7994  	s.Tags = v
  7995  	return s
  7996  }
  7997  
  7998  // Provides options to retrieve the vault list owned by the calling user's account.
  7999  // The list provides metadata information for each vault.
  8000  type ListVaultsInput struct {
  8001  	_ struct{} `type:"structure" nopayload:"true"`
  8002  
  8003  	// The AccountId value is the AWS account ID. This value must match the AWS
  8004  	// account ID associated with the credentials used to sign the request. You
  8005  	// can either specify an AWS account ID or optionally a single '-' (hyphen),
  8006  	// in which case Amazon Glacier uses the AWS account ID associated with the
  8007  	// credentials used to sign the request. If you specify your account ID, do
  8008  	// not include any hyphens ('-') in the ID.
  8009  	//
  8010  	// AccountId is a required field
  8011  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  8012  
  8013  	// The maximum number of vaults to be returned. The default limit is 10. The
  8014  	// number of vaults returned might be fewer than the specified limit, but the
  8015  	// number of returned vaults never exceeds the limit.
  8016  	Limit *string `location:"querystring" locationName:"limit" type:"string"`
  8017  
  8018  	// A string used for pagination. The marker specifies the vault ARN after which
  8019  	// the listing of vaults should begin.
  8020  	Marker *string `location:"querystring" locationName:"marker" type:"string"`
  8021  }
  8022  
  8023  // String returns the string representation.
  8024  //
  8025  // API parameter values that are decorated as "sensitive" in the API will not
  8026  // be included in the string output. The member name will be present, but the
  8027  // value will be replaced with "sensitive".
  8028  func (s ListVaultsInput) String() string {
  8029  	return awsutil.Prettify(s)
  8030  }
  8031  
  8032  // GoString returns the string representation.
  8033  //
  8034  // API parameter values that are decorated as "sensitive" in the API will not
  8035  // be included in the string output. The member name will be present, but the
  8036  // value will be replaced with "sensitive".
  8037  func (s ListVaultsInput) GoString() string {
  8038  	return s.String()
  8039  }
  8040  
  8041  // Validate inspects the fields of the type to determine if they are valid.
  8042  func (s *ListVaultsInput) Validate() error {
  8043  	invalidParams := request.ErrInvalidParams{Context: "ListVaultsInput"}
  8044  	if s.AccountId == nil {
  8045  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8046  	}
  8047  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8048  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8049  	}
  8050  
  8051  	if invalidParams.Len() > 0 {
  8052  		return invalidParams
  8053  	}
  8054  	return nil
  8055  }
  8056  
  8057  // SetAccountId sets the AccountId field's value.
  8058  func (s *ListVaultsInput) SetAccountId(v string) *ListVaultsInput {
  8059  	s.AccountId = &v
  8060  	return s
  8061  }
  8062  
  8063  // SetLimit sets the Limit field's value.
  8064  func (s *ListVaultsInput) SetLimit(v string) *ListVaultsInput {
  8065  	s.Limit = &v
  8066  	return s
  8067  }
  8068  
  8069  // SetMarker sets the Marker field's value.
  8070  func (s *ListVaultsInput) SetMarker(v string) *ListVaultsInput {
  8071  	s.Marker = &v
  8072  	return s
  8073  }
  8074  
  8075  // Contains the Amazon S3 Glacier response to your request.
  8076  type ListVaultsOutput struct {
  8077  	_ struct{} `type:"structure"`
  8078  
  8079  	// The vault ARN at which to continue pagination of the results. You use the
  8080  	// marker in another List Vaults request to obtain more vaults in the list.
  8081  	Marker *string `type:"string"`
  8082  
  8083  	// List of vaults.
  8084  	VaultList []*DescribeVaultOutput `type:"list"`
  8085  }
  8086  
  8087  // String returns the string representation.
  8088  //
  8089  // API parameter values that are decorated as "sensitive" in the API will not
  8090  // be included in the string output. The member name will be present, but the
  8091  // value will be replaced with "sensitive".
  8092  func (s ListVaultsOutput) String() string {
  8093  	return awsutil.Prettify(s)
  8094  }
  8095  
  8096  // GoString returns the string representation.
  8097  //
  8098  // API parameter values that are decorated as "sensitive" in the API will not
  8099  // be included in the string output. The member name will be present, but the
  8100  // value will be replaced with "sensitive".
  8101  func (s ListVaultsOutput) GoString() string {
  8102  	return s.String()
  8103  }
  8104  
  8105  // SetMarker sets the Marker field's value.
  8106  func (s *ListVaultsOutput) SetMarker(v string) *ListVaultsOutput {
  8107  	s.Marker = &v
  8108  	return s
  8109  }
  8110  
  8111  // SetVaultList sets the VaultList field's value.
  8112  func (s *ListVaultsOutput) SetVaultList(v []*DescribeVaultOutput) *ListVaultsOutput {
  8113  	s.VaultList = v
  8114  	return s
  8115  }
  8116  
  8117  // Returned if a required header or parameter is missing from the request.
  8118  type MissingParameterValueException struct {
  8119  	_            struct{}                  `type:"structure"`
  8120  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8121  
  8122  	// 400 Bad Request
  8123  	Code_ *string `locationName:"code" type:"string"`
  8124  
  8125  	// Returned if no authentication data is found for the request.
  8126  	Message_ *string `locationName:"message" type:"string"`
  8127  
  8128  	// Client.
  8129  	Type *string `locationName:"type" type:"string"`
  8130  }
  8131  
  8132  // String returns the string representation.
  8133  //
  8134  // API parameter values that are decorated as "sensitive" in the API will not
  8135  // be included in the string output. The member name will be present, but the
  8136  // value will be replaced with "sensitive".
  8137  func (s MissingParameterValueException) String() string {
  8138  	return awsutil.Prettify(s)
  8139  }
  8140  
  8141  // GoString returns the string representation.
  8142  //
  8143  // API parameter values that are decorated as "sensitive" in the API will not
  8144  // be included in the string output. The member name will be present, but the
  8145  // value will be replaced with "sensitive".
  8146  func (s MissingParameterValueException) GoString() string {
  8147  	return s.String()
  8148  }
  8149  
  8150  func newErrorMissingParameterValueException(v protocol.ResponseMetadata) error {
  8151  	return &MissingParameterValueException{
  8152  		RespMetadata: v,
  8153  	}
  8154  }
  8155  
  8156  // Code returns the exception type name.
  8157  func (s *MissingParameterValueException) Code() string {
  8158  	return "MissingParameterValueException"
  8159  }
  8160  
  8161  // Message returns the exception's message.
  8162  func (s *MissingParameterValueException) Message() string {
  8163  	if s.Message_ != nil {
  8164  		return *s.Message_
  8165  	}
  8166  	return ""
  8167  }
  8168  
  8169  // OrigErr always returns nil, satisfies awserr.Error interface.
  8170  func (s *MissingParameterValueException) OrigErr() error {
  8171  	return nil
  8172  }
  8173  
  8174  func (s *MissingParameterValueException) Error() string {
  8175  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8176  }
  8177  
  8178  // Status code returns the HTTP status code for the request's response error.
  8179  func (s *MissingParameterValueException) StatusCode() int {
  8180  	return s.RespMetadata.StatusCode
  8181  }
  8182  
  8183  // RequestID returns the service's response RequestID for request.
  8184  func (s *MissingParameterValueException) RequestID() string {
  8185  	return s.RespMetadata.RequestID
  8186  }
  8187  
  8188  // Contains information about the location where the select job results are
  8189  // stored.
  8190  type OutputLocation struct {
  8191  	_ struct{} `type:"structure"`
  8192  
  8193  	// Describes an S3 location that will receive the results of the job request.
  8194  	S3 *S3Location `type:"structure"`
  8195  }
  8196  
  8197  // String returns the string representation.
  8198  //
  8199  // API parameter values that are decorated as "sensitive" in the API will not
  8200  // be included in the string output. The member name will be present, but the
  8201  // value will be replaced with "sensitive".
  8202  func (s OutputLocation) String() string {
  8203  	return awsutil.Prettify(s)
  8204  }
  8205  
  8206  // GoString returns the string representation.
  8207  //
  8208  // API parameter values that are decorated as "sensitive" in the API will not
  8209  // be included in the string output. The member name will be present, but the
  8210  // value will be replaced with "sensitive".
  8211  func (s OutputLocation) GoString() string {
  8212  	return s.String()
  8213  }
  8214  
  8215  // Validate inspects the fields of the type to determine if they are valid.
  8216  func (s *OutputLocation) Validate() error {
  8217  	invalidParams := request.ErrInvalidParams{Context: "OutputLocation"}
  8218  	if s.S3 != nil {
  8219  		if err := s.S3.Validate(); err != nil {
  8220  			invalidParams.AddNested("S3", err.(request.ErrInvalidParams))
  8221  		}
  8222  	}
  8223  
  8224  	if invalidParams.Len() > 0 {
  8225  		return invalidParams
  8226  	}
  8227  	return nil
  8228  }
  8229  
  8230  // SetS3 sets the S3 field's value.
  8231  func (s *OutputLocation) SetS3(v *S3Location) *OutputLocation {
  8232  	s.S3 = v
  8233  	return s
  8234  }
  8235  
  8236  // Describes how the select output is serialized.
  8237  type OutputSerialization struct {
  8238  	_ struct{} `type:"structure"`
  8239  
  8240  	// Describes the serialization of CSV-encoded query results.
  8241  	Csv *CSVOutput `locationName:"csv" type:"structure"`
  8242  }
  8243  
  8244  // String returns the string representation.
  8245  //
  8246  // API parameter values that are decorated as "sensitive" in the API will not
  8247  // be included in the string output. The member name will be present, but the
  8248  // value will be replaced with "sensitive".
  8249  func (s OutputSerialization) String() string {
  8250  	return awsutil.Prettify(s)
  8251  }
  8252  
  8253  // GoString returns the string representation.
  8254  //
  8255  // API parameter values that are decorated as "sensitive" in the API will not
  8256  // be included in the string output. The member name will be present, but the
  8257  // value will be replaced with "sensitive".
  8258  func (s OutputSerialization) GoString() string {
  8259  	return s.String()
  8260  }
  8261  
  8262  // SetCsv sets the Csv field's value.
  8263  func (s *OutputSerialization) SetCsv(v *CSVOutput) *OutputSerialization {
  8264  	s.Csv = v
  8265  	return s
  8266  }
  8267  
  8268  // A list of the part sizes of the multipart upload.
  8269  type PartListElement struct {
  8270  	_ struct{} `type:"structure"`
  8271  
  8272  	// The byte range of a part, inclusive of the upper value of the range.
  8273  	RangeInBytes *string `type:"string"`
  8274  
  8275  	// The SHA256 tree hash value that Amazon S3 Glacier calculated for the part.
  8276  	// This field is never null.
  8277  	SHA256TreeHash *string `type:"string"`
  8278  }
  8279  
  8280  // String returns the string representation.
  8281  //
  8282  // API parameter values that are decorated as "sensitive" in the API will not
  8283  // be included in the string output. The member name will be present, but the
  8284  // value will be replaced with "sensitive".
  8285  func (s PartListElement) String() string {
  8286  	return awsutil.Prettify(s)
  8287  }
  8288  
  8289  // GoString returns the string representation.
  8290  //
  8291  // API parameter values that are decorated as "sensitive" in the API will not
  8292  // be included in the string output. The member name will be present, but the
  8293  // value will be replaced with "sensitive".
  8294  func (s PartListElement) GoString() string {
  8295  	return s.String()
  8296  }
  8297  
  8298  // SetRangeInBytes sets the RangeInBytes field's value.
  8299  func (s *PartListElement) SetRangeInBytes(v string) *PartListElement {
  8300  	s.RangeInBytes = &v
  8301  	return s
  8302  }
  8303  
  8304  // SetSHA256TreeHash sets the SHA256TreeHash field's value.
  8305  func (s *PartListElement) SetSHA256TreeHash(v string) *PartListElement {
  8306  	s.SHA256TreeHash = &v
  8307  	return s
  8308  }
  8309  
  8310  // Returned if a retrieval job would exceed the current data policy's retrieval
  8311  // rate limit. For more information about data retrieval policies,
  8312  type PolicyEnforcedException struct {
  8313  	_            struct{}                  `type:"structure"`
  8314  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8315  
  8316  	// PolicyEnforcedException
  8317  	Code_ *string `locationName:"code" type:"string"`
  8318  
  8319  	// InitiateJob request denied by current data retrieval policy.
  8320  	Message_ *string `locationName:"message" type:"string"`
  8321  
  8322  	// Client
  8323  	Type *string `locationName:"type" type:"string"`
  8324  }
  8325  
  8326  // String returns the string representation.
  8327  //
  8328  // API parameter values that are decorated as "sensitive" in the API will not
  8329  // be included in the string output. The member name will be present, but the
  8330  // value will be replaced with "sensitive".
  8331  func (s PolicyEnforcedException) String() string {
  8332  	return awsutil.Prettify(s)
  8333  }
  8334  
  8335  // GoString returns the string representation.
  8336  //
  8337  // API parameter values that are decorated as "sensitive" in the API will not
  8338  // be included in the string output. The member name will be present, but the
  8339  // value will be replaced with "sensitive".
  8340  func (s PolicyEnforcedException) GoString() string {
  8341  	return s.String()
  8342  }
  8343  
  8344  func newErrorPolicyEnforcedException(v protocol.ResponseMetadata) error {
  8345  	return &PolicyEnforcedException{
  8346  		RespMetadata: v,
  8347  	}
  8348  }
  8349  
  8350  // Code returns the exception type name.
  8351  func (s *PolicyEnforcedException) Code() string {
  8352  	return "PolicyEnforcedException"
  8353  }
  8354  
  8355  // Message returns the exception's message.
  8356  func (s *PolicyEnforcedException) Message() string {
  8357  	if s.Message_ != nil {
  8358  		return *s.Message_
  8359  	}
  8360  	return ""
  8361  }
  8362  
  8363  // OrigErr always returns nil, satisfies awserr.Error interface.
  8364  func (s *PolicyEnforcedException) OrigErr() error {
  8365  	return nil
  8366  }
  8367  
  8368  func (s *PolicyEnforcedException) Error() string {
  8369  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8370  }
  8371  
  8372  // Status code returns the HTTP status code for the request's response error.
  8373  func (s *PolicyEnforcedException) StatusCode() int {
  8374  	return s.RespMetadata.StatusCode
  8375  }
  8376  
  8377  // RequestID returns the service's response RequestID for request.
  8378  func (s *PolicyEnforcedException) RequestID() string {
  8379  	return s.RespMetadata.RequestID
  8380  }
  8381  
  8382  // The definition for a provisioned capacity unit.
  8383  type ProvisionedCapacityDescription struct {
  8384  	_ struct{} `type:"structure"`
  8385  
  8386  	// The ID that identifies the provisioned capacity unit.
  8387  	CapacityId *string `type:"string"`
  8388  
  8389  	// The date that the provisioned capacity unit expires, in Universal Coordinated
  8390  	// Time (UTC).
  8391  	ExpirationDate *string `type:"string"`
  8392  
  8393  	// The date that the provisioned capacity unit was purchased, in Universal Coordinated
  8394  	// Time (UTC).
  8395  	StartDate *string `type:"string"`
  8396  }
  8397  
  8398  // String returns the string representation.
  8399  //
  8400  // API parameter values that are decorated as "sensitive" in the API will not
  8401  // be included in the string output. The member name will be present, but the
  8402  // value will be replaced with "sensitive".
  8403  func (s ProvisionedCapacityDescription) String() string {
  8404  	return awsutil.Prettify(s)
  8405  }
  8406  
  8407  // GoString returns the string representation.
  8408  //
  8409  // API parameter values that are decorated as "sensitive" in the API will not
  8410  // be included in the string output. The member name will be present, but the
  8411  // value will be replaced with "sensitive".
  8412  func (s ProvisionedCapacityDescription) GoString() string {
  8413  	return s.String()
  8414  }
  8415  
  8416  // SetCapacityId sets the CapacityId field's value.
  8417  func (s *ProvisionedCapacityDescription) SetCapacityId(v string) *ProvisionedCapacityDescription {
  8418  	s.CapacityId = &v
  8419  	return s
  8420  }
  8421  
  8422  // SetExpirationDate sets the ExpirationDate field's value.
  8423  func (s *ProvisionedCapacityDescription) SetExpirationDate(v string) *ProvisionedCapacityDescription {
  8424  	s.ExpirationDate = &v
  8425  	return s
  8426  }
  8427  
  8428  // SetStartDate sets the StartDate field's value.
  8429  func (s *ProvisionedCapacityDescription) SetStartDate(v string) *ProvisionedCapacityDescription {
  8430  	s.StartDate = &v
  8431  	return s
  8432  }
  8433  
  8434  type PurchaseProvisionedCapacityInput struct {
  8435  	_ struct{} `type:"structure" nopayload:"true"`
  8436  
  8437  	// The AWS account ID of the account that owns the vault. You can either specify
  8438  	// an AWS account ID or optionally a single '-' (hyphen), in which case Amazon
  8439  	// S3 Glacier uses the AWS account ID associated with the credentials used to
  8440  	// sign the request. If you use an account ID, don't include any hyphens ('-')
  8441  	// in the ID.
  8442  	//
  8443  	// AccountId is a required field
  8444  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  8445  }
  8446  
  8447  // String returns the string representation.
  8448  //
  8449  // API parameter values that are decorated as "sensitive" in the API will not
  8450  // be included in the string output. The member name will be present, but the
  8451  // value will be replaced with "sensitive".
  8452  func (s PurchaseProvisionedCapacityInput) String() string {
  8453  	return awsutil.Prettify(s)
  8454  }
  8455  
  8456  // GoString returns the string representation.
  8457  //
  8458  // API parameter values that are decorated as "sensitive" in the API will not
  8459  // be included in the string output. The member name will be present, but the
  8460  // value will be replaced with "sensitive".
  8461  func (s PurchaseProvisionedCapacityInput) GoString() string {
  8462  	return s.String()
  8463  }
  8464  
  8465  // Validate inspects the fields of the type to determine if they are valid.
  8466  func (s *PurchaseProvisionedCapacityInput) Validate() error {
  8467  	invalidParams := request.ErrInvalidParams{Context: "PurchaseProvisionedCapacityInput"}
  8468  	if s.AccountId == nil {
  8469  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8470  	}
  8471  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8472  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8473  	}
  8474  
  8475  	if invalidParams.Len() > 0 {
  8476  		return invalidParams
  8477  	}
  8478  	return nil
  8479  }
  8480  
  8481  // SetAccountId sets the AccountId field's value.
  8482  func (s *PurchaseProvisionedCapacityInput) SetAccountId(v string) *PurchaseProvisionedCapacityInput {
  8483  	s.AccountId = &v
  8484  	return s
  8485  }
  8486  
  8487  type PurchaseProvisionedCapacityOutput struct {
  8488  	_ struct{} `type:"structure" nopayload:"true"`
  8489  
  8490  	// The ID that identifies the provisioned capacity unit.
  8491  	CapacityId *string `location:"header" locationName:"x-amz-capacity-id" type:"string"`
  8492  }
  8493  
  8494  // String returns the string representation.
  8495  //
  8496  // API parameter values that are decorated as "sensitive" in the API will not
  8497  // be included in the string output. The member name will be present, but the
  8498  // value will be replaced with "sensitive".
  8499  func (s PurchaseProvisionedCapacityOutput) String() string {
  8500  	return awsutil.Prettify(s)
  8501  }
  8502  
  8503  // GoString returns the string representation.
  8504  //
  8505  // API parameter values that are decorated as "sensitive" in the API will not
  8506  // be included in the string output. The member name will be present, but the
  8507  // value will be replaced with "sensitive".
  8508  func (s PurchaseProvisionedCapacityOutput) GoString() string {
  8509  	return s.String()
  8510  }
  8511  
  8512  // SetCapacityId sets the CapacityId field's value.
  8513  func (s *PurchaseProvisionedCapacityOutput) SetCapacityId(v string) *PurchaseProvisionedCapacityOutput {
  8514  	s.CapacityId = &v
  8515  	return s
  8516  }
  8517  
  8518  // The input value for RemoveTagsFromVaultInput.
  8519  type RemoveTagsFromVaultInput struct {
  8520  	_ struct{} `type:"structure"`
  8521  
  8522  	// The AccountId value is the AWS account ID of the account that owns the vault.
  8523  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  8524  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  8525  	// credentials used to sign the request. If you use an account ID, do not include
  8526  	// any hyphens ('-') in the ID.
  8527  	//
  8528  	// AccountId is a required field
  8529  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  8530  
  8531  	// A list of tag keys. Each corresponding tag is removed from the vault.
  8532  	TagKeys []*string `type:"list"`
  8533  
  8534  	// The name of the vault.
  8535  	//
  8536  	// VaultName is a required field
  8537  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  8538  }
  8539  
  8540  // String returns the string representation.
  8541  //
  8542  // API parameter values that are decorated as "sensitive" in the API will not
  8543  // be included in the string output. The member name will be present, but the
  8544  // value will be replaced with "sensitive".
  8545  func (s RemoveTagsFromVaultInput) String() string {
  8546  	return awsutil.Prettify(s)
  8547  }
  8548  
  8549  // GoString returns the string representation.
  8550  //
  8551  // API parameter values that are decorated as "sensitive" in the API will not
  8552  // be included in the string output. The member name will be present, but the
  8553  // value will be replaced with "sensitive".
  8554  func (s RemoveTagsFromVaultInput) GoString() string {
  8555  	return s.String()
  8556  }
  8557  
  8558  // Validate inspects the fields of the type to determine if they are valid.
  8559  func (s *RemoveTagsFromVaultInput) Validate() error {
  8560  	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromVaultInput"}
  8561  	if s.AccountId == nil {
  8562  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  8563  	}
  8564  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  8565  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  8566  	}
  8567  	if s.VaultName == nil {
  8568  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  8569  	}
  8570  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  8571  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  8572  	}
  8573  
  8574  	if invalidParams.Len() > 0 {
  8575  		return invalidParams
  8576  	}
  8577  	return nil
  8578  }
  8579  
  8580  // SetAccountId sets the AccountId field's value.
  8581  func (s *RemoveTagsFromVaultInput) SetAccountId(v string) *RemoveTagsFromVaultInput {
  8582  	s.AccountId = &v
  8583  	return s
  8584  }
  8585  
  8586  // SetTagKeys sets the TagKeys field's value.
  8587  func (s *RemoveTagsFromVaultInput) SetTagKeys(v []*string) *RemoveTagsFromVaultInput {
  8588  	s.TagKeys = v
  8589  	return s
  8590  }
  8591  
  8592  // SetVaultName sets the VaultName field's value.
  8593  func (s *RemoveTagsFromVaultInput) SetVaultName(v string) *RemoveTagsFromVaultInput {
  8594  	s.VaultName = &v
  8595  	return s
  8596  }
  8597  
  8598  type RemoveTagsFromVaultOutput struct {
  8599  	_ struct{} `type:"structure" nopayload:"true"`
  8600  }
  8601  
  8602  // String returns the string representation.
  8603  //
  8604  // API parameter values that are decorated as "sensitive" in the API will not
  8605  // be included in the string output. The member name will be present, but the
  8606  // value will be replaced with "sensitive".
  8607  func (s RemoveTagsFromVaultOutput) String() string {
  8608  	return awsutil.Prettify(s)
  8609  }
  8610  
  8611  // GoString returns the string representation.
  8612  //
  8613  // API parameter values that are decorated as "sensitive" in the API will not
  8614  // be included in the string output. The member name will be present, but the
  8615  // value will be replaced with "sensitive".
  8616  func (s RemoveTagsFromVaultOutput) GoString() string {
  8617  	return s.String()
  8618  }
  8619  
  8620  // Returned if, when uploading an archive, Amazon S3 Glacier times out while
  8621  // receiving the upload.
  8622  type RequestTimeoutException struct {
  8623  	_            struct{}                  `type:"structure"`
  8624  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8625  
  8626  	// 408 Request Timeout
  8627  	Code_ *string `locationName:"code" type:"string"`
  8628  
  8629  	// Returned if, when uploading an archive, Amazon S3 Glacier times out while
  8630  	// receiving the upload.
  8631  	Message_ *string `locationName:"message" type:"string"`
  8632  
  8633  	// Client
  8634  	Type *string `locationName:"type" type:"string"`
  8635  }
  8636  
  8637  // String returns the string representation.
  8638  //
  8639  // API parameter values that are decorated as "sensitive" in the API will not
  8640  // be included in the string output. The member name will be present, but the
  8641  // value will be replaced with "sensitive".
  8642  func (s RequestTimeoutException) String() string {
  8643  	return awsutil.Prettify(s)
  8644  }
  8645  
  8646  // GoString returns the string representation.
  8647  //
  8648  // API parameter values that are decorated as "sensitive" in the API will not
  8649  // be included in the string output. The member name will be present, but the
  8650  // value will be replaced with "sensitive".
  8651  func (s RequestTimeoutException) GoString() string {
  8652  	return s.String()
  8653  }
  8654  
  8655  func newErrorRequestTimeoutException(v protocol.ResponseMetadata) error {
  8656  	return &RequestTimeoutException{
  8657  		RespMetadata: v,
  8658  	}
  8659  }
  8660  
  8661  // Code returns the exception type name.
  8662  func (s *RequestTimeoutException) Code() string {
  8663  	return "RequestTimeoutException"
  8664  }
  8665  
  8666  // Message returns the exception's message.
  8667  func (s *RequestTimeoutException) Message() string {
  8668  	if s.Message_ != nil {
  8669  		return *s.Message_
  8670  	}
  8671  	return ""
  8672  }
  8673  
  8674  // OrigErr always returns nil, satisfies awserr.Error interface.
  8675  func (s *RequestTimeoutException) OrigErr() error {
  8676  	return nil
  8677  }
  8678  
  8679  func (s *RequestTimeoutException) Error() string {
  8680  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8681  }
  8682  
  8683  // Status code returns the HTTP status code for the request's response error.
  8684  func (s *RequestTimeoutException) StatusCode() int {
  8685  	return s.RespMetadata.StatusCode
  8686  }
  8687  
  8688  // RequestID returns the service's response RequestID for request.
  8689  func (s *RequestTimeoutException) RequestID() string {
  8690  	return s.RespMetadata.RequestID
  8691  }
  8692  
  8693  // Returned if the specified resource (such as a vault, upload ID, or job ID)
  8694  // doesn't exist.
  8695  type ResourceNotFoundException struct {
  8696  	_            struct{}                  `type:"structure"`
  8697  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8698  
  8699  	// 404 Not Found
  8700  	Code_ *string `locationName:"code" type:"string"`
  8701  
  8702  	// Returned if the specified resource (such as a vault, upload ID, or job ID)
  8703  	// doesn't exist.
  8704  	Message_ *string `locationName:"message" type:"string"`
  8705  
  8706  	// Client
  8707  	Type *string `locationName:"type" type:"string"`
  8708  }
  8709  
  8710  // String returns the string representation.
  8711  //
  8712  // API parameter values that are decorated as "sensitive" in the API will not
  8713  // be included in the string output. The member name will be present, but the
  8714  // value will be replaced with "sensitive".
  8715  func (s ResourceNotFoundException) String() string {
  8716  	return awsutil.Prettify(s)
  8717  }
  8718  
  8719  // GoString returns the string representation.
  8720  //
  8721  // API parameter values that are decorated as "sensitive" in the API will not
  8722  // be included in the string output. The member name will be present, but the
  8723  // value will be replaced with "sensitive".
  8724  func (s ResourceNotFoundException) GoString() string {
  8725  	return s.String()
  8726  }
  8727  
  8728  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  8729  	return &ResourceNotFoundException{
  8730  		RespMetadata: v,
  8731  	}
  8732  }
  8733  
  8734  // Code returns the exception type name.
  8735  func (s *ResourceNotFoundException) Code() string {
  8736  	return "ResourceNotFoundException"
  8737  }
  8738  
  8739  // Message returns the exception's message.
  8740  func (s *ResourceNotFoundException) Message() string {
  8741  	if s.Message_ != nil {
  8742  		return *s.Message_
  8743  	}
  8744  	return ""
  8745  }
  8746  
  8747  // OrigErr always returns nil, satisfies awserr.Error interface.
  8748  func (s *ResourceNotFoundException) OrigErr() error {
  8749  	return nil
  8750  }
  8751  
  8752  func (s *ResourceNotFoundException) Error() string {
  8753  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  8754  }
  8755  
  8756  // Status code returns the HTTP status code for the request's response error.
  8757  func (s *ResourceNotFoundException) StatusCode() int {
  8758  	return s.RespMetadata.StatusCode
  8759  }
  8760  
  8761  // RequestID returns the service's response RequestID for request.
  8762  func (s *ResourceNotFoundException) RequestID() string {
  8763  	return s.RespMetadata.RequestID
  8764  }
  8765  
  8766  // Contains information about the location in Amazon S3 where the select job
  8767  // results are stored.
  8768  type S3Location struct {
  8769  	_ struct{} `type:"structure"`
  8770  
  8771  	// A list of grants that control access to the staged results.
  8772  	AccessControlList []*Grant `type:"list"`
  8773  
  8774  	// The name of the Amazon S3 bucket where the job results are stored.
  8775  	BucketName *string `type:"string"`
  8776  
  8777  	// The canned access control list (ACL) to apply to the job results.
  8778  	CannedACL *string `type:"string" enum:"CannedACL"`
  8779  
  8780  	// Contains information about the encryption used to store the job results in
  8781  	// Amazon S3.
  8782  	Encryption *Encryption `type:"structure"`
  8783  
  8784  	// The prefix that is prepended to the results for this request.
  8785  	Prefix *string `type:"string"`
  8786  
  8787  	// The storage class used to store the job results.
  8788  	StorageClass *string `type:"string" enum:"StorageClass"`
  8789  
  8790  	// The tag-set that is applied to the job results.
  8791  	Tagging map[string]*string `type:"map"`
  8792  
  8793  	// A map of metadata to store with the job results in Amazon S3.
  8794  	UserMetadata map[string]*string `type:"map"`
  8795  }
  8796  
  8797  // String returns the string representation.
  8798  //
  8799  // API parameter values that are decorated as "sensitive" in the API will not
  8800  // be included in the string output. The member name will be present, but the
  8801  // value will be replaced with "sensitive".
  8802  func (s S3Location) String() string {
  8803  	return awsutil.Prettify(s)
  8804  }
  8805  
  8806  // GoString returns the string representation.
  8807  //
  8808  // API parameter values that are decorated as "sensitive" in the API will not
  8809  // be included in the string output. The member name will be present, but the
  8810  // value will be replaced with "sensitive".
  8811  func (s S3Location) GoString() string {
  8812  	return s.String()
  8813  }
  8814  
  8815  // Validate inspects the fields of the type to determine if they are valid.
  8816  func (s *S3Location) Validate() error {
  8817  	invalidParams := request.ErrInvalidParams{Context: "S3Location"}
  8818  	if s.AccessControlList != nil {
  8819  		for i, v := range s.AccessControlList {
  8820  			if v == nil {
  8821  				continue
  8822  			}
  8823  			if err := v.Validate(); err != nil {
  8824  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessControlList", i), err.(request.ErrInvalidParams))
  8825  			}
  8826  		}
  8827  	}
  8828  
  8829  	if invalidParams.Len() > 0 {
  8830  		return invalidParams
  8831  	}
  8832  	return nil
  8833  }
  8834  
  8835  // SetAccessControlList sets the AccessControlList field's value.
  8836  func (s *S3Location) SetAccessControlList(v []*Grant) *S3Location {
  8837  	s.AccessControlList = v
  8838  	return s
  8839  }
  8840  
  8841  // SetBucketName sets the BucketName field's value.
  8842  func (s *S3Location) SetBucketName(v string) *S3Location {
  8843  	s.BucketName = &v
  8844  	return s
  8845  }
  8846  
  8847  // SetCannedACL sets the CannedACL field's value.
  8848  func (s *S3Location) SetCannedACL(v string) *S3Location {
  8849  	s.CannedACL = &v
  8850  	return s
  8851  }
  8852  
  8853  // SetEncryption sets the Encryption field's value.
  8854  func (s *S3Location) SetEncryption(v *Encryption) *S3Location {
  8855  	s.Encryption = v
  8856  	return s
  8857  }
  8858  
  8859  // SetPrefix sets the Prefix field's value.
  8860  func (s *S3Location) SetPrefix(v string) *S3Location {
  8861  	s.Prefix = &v
  8862  	return s
  8863  }
  8864  
  8865  // SetStorageClass sets the StorageClass field's value.
  8866  func (s *S3Location) SetStorageClass(v string) *S3Location {
  8867  	s.StorageClass = &v
  8868  	return s
  8869  }
  8870  
  8871  // SetTagging sets the Tagging field's value.
  8872  func (s *S3Location) SetTagging(v map[string]*string) *S3Location {
  8873  	s.Tagging = v
  8874  	return s
  8875  }
  8876  
  8877  // SetUserMetadata sets the UserMetadata field's value.
  8878  func (s *S3Location) SetUserMetadata(v map[string]*string) *S3Location {
  8879  	s.UserMetadata = v
  8880  	return s
  8881  }
  8882  
  8883  // Contains information about the parameters used for a select.
  8884  type SelectParameters struct {
  8885  	_ struct{} `type:"structure"`
  8886  
  8887  	// The expression that is used to select the object.
  8888  	Expression *string `type:"string"`
  8889  
  8890  	// The type of the provided expression, for example SQL.
  8891  	ExpressionType *string `type:"string" enum:"ExpressionType"`
  8892  
  8893  	// Describes the serialization format of the object.
  8894  	InputSerialization *InputSerialization `type:"structure"`
  8895  
  8896  	// Describes how the results of the select job are serialized.
  8897  	OutputSerialization *OutputSerialization `type:"structure"`
  8898  }
  8899  
  8900  // String returns the string representation.
  8901  //
  8902  // API parameter values that are decorated as "sensitive" in the API will not
  8903  // be included in the string output. The member name will be present, but the
  8904  // value will be replaced with "sensitive".
  8905  func (s SelectParameters) String() string {
  8906  	return awsutil.Prettify(s)
  8907  }
  8908  
  8909  // GoString returns the string representation.
  8910  //
  8911  // API parameter values that are decorated as "sensitive" in the API will not
  8912  // be included in the string output. The member name will be present, but the
  8913  // value will be replaced with "sensitive".
  8914  func (s SelectParameters) GoString() string {
  8915  	return s.String()
  8916  }
  8917  
  8918  // SetExpression sets the Expression field's value.
  8919  func (s *SelectParameters) SetExpression(v string) *SelectParameters {
  8920  	s.Expression = &v
  8921  	return s
  8922  }
  8923  
  8924  // SetExpressionType sets the ExpressionType field's value.
  8925  func (s *SelectParameters) SetExpressionType(v string) *SelectParameters {
  8926  	s.ExpressionType = &v
  8927  	return s
  8928  }
  8929  
  8930  // SetInputSerialization sets the InputSerialization field's value.
  8931  func (s *SelectParameters) SetInputSerialization(v *InputSerialization) *SelectParameters {
  8932  	s.InputSerialization = v
  8933  	return s
  8934  }
  8935  
  8936  // SetOutputSerialization sets the OutputSerialization field's value.
  8937  func (s *SelectParameters) SetOutputSerialization(v *OutputSerialization) *SelectParameters {
  8938  	s.OutputSerialization = v
  8939  	return s
  8940  }
  8941  
  8942  // Returned if the service cannot complete the request.
  8943  type ServiceUnavailableException struct {
  8944  	_            struct{}                  `type:"structure"`
  8945  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8946  
  8947  	// 500 Internal Server Error
  8948  	Code_ *string `locationName:"code" type:"string"`
  8949  
  8950  	// Returned if the service cannot complete the request.
  8951  	Message_ *string `locationName:"message" type:"string"`
  8952  
  8953  	// Server
  8954  	Type *string `locationName:"type" type:"string"`
  8955  }
  8956  
  8957  // String returns the string representation.
  8958  //
  8959  // API parameter values that are decorated as "sensitive" in the API will not
  8960  // be included in the string output. The member name will be present, but the
  8961  // value will be replaced with "sensitive".
  8962  func (s ServiceUnavailableException) String() string {
  8963  	return awsutil.Prettify(s)
  8964  }
  8965  
  8966  // GoString returns the string representation.
  8967  //
  8968  // API parameter values that are decorated as "sensitive" in the API will not
  8969  // be included in the string output. The member name will be present, but the
  8970  // value will be replaced with "sensitive".
  8971  func (s ServiceUnavailableException) GoString() string {
  8972  	return s.String()
  8973  }
  8974  
  8975  func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
  8976  	return &ServiceUnavailableException{
  8977  		RespMetadata: v,
  8978  	}
  8979  }
  8980  
  8981  // Code returns the exception type name.
  8982  func (s *ServiceUnavailableException) Code() string {
  8983  	return "ServiceUnavailableException"
  8984  }
  8985  
  8986  // Message returns the exception's message.
  8987  func (s *ServiceUnavailableException) Message() string {
  8988  	if s.Message_ != nil {
  8989  		return *s.Message_
  8990  	}
  8991  	return ""
  8992  }
  8993  
  8994  // OrigErr always returns nil, satisfies awserr.Error interface.
  8995  func (s *ServiceUnavailableException) OrigErr() error {
  8996  	return nil
  8997  }
  8998  
  8999  func (s *ServiceUnavailableException) Error() string {
  9000  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  9001  }
  9002  
  9003  // Status code returns the HTTP status code for the request's response error.
  9004  func (s *ServiceUnavailableException) StatusCode() int {
  9005  	return s.RespMetadata.StatusCode
  9006  }
  9007  
  9008  // RequestID returns the service's response RequestID for request.
  9009  func (s *ServiceUnavailableException) RequestID() string {
  9010  	return s.RespMetadata.RequestID
  9011  }
  9012  
  9013  // SetDataRetrievalPolicy input.
  9014  type SetDataRetrievalPolicyInput struct {
  9015  	_ struct{} `type:"structure"`
  9016  
  9017  	// The AccountId value is the AWS account ID. This value must match the AWS
  9018  	// account ID associated with the credentials used to sign the request. You
  9019  	// can either specify an AWS account ID or optionally a single '-' (hyphen),
  9020  	// in which case Amazon Glacier uses the AWS account ID associated with the
  9021  	// credentials used to sign the request. If you specify your account ID, do
  9022  	// not include any hyphens ('-') in the ID.
  9023  	//
  9024  	// AccountId is a required field
  9025  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  9026  
  9027  	// The data retrieval policy in JSON format.
  9028  	Policy *DataRetrievalPolicy `type:"structure"`
  9029  }
  9030  
  9031  // String returns the string representation.
  9032  //
  9033  // API parameter values that are decorated as "sensitive" in the API will not
  9034  // be included in the string output. The member name will be present, but the
  9035  // value will be replaced with "sensitive".
  9036  func (s SetDataRetrievalPolicyInput) String() string {
  9037  	return awsutil.Prettify(s)
  9038  }
  9039  
  9040  // GoString returns the string representation.
  9041  //
  9042  // API parameter values that are decorated as "sensitive" in the API will not
  9043  // be included in the string output. The member name will be present, but the
  9044  // value will be replaced with "sensitive".
  9045  func (s SetDataRetrievalPolicyInput) GoString() string {
  9046  	return s.String()
  9047  }
  9048  
  9049  // Validate inspects the fields of the type to determine if they are valid.
  9050  func (s *SetDataRetrievalPolicyInput) Validate() error {
  9051  	invalidParams := request.ErrInvalidParams{Context: "SetDataRetrievalPolicyInput"}
  9052  	if s.AccountId == nil {
  9053  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9054  	}
  9055  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9056  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9057  	}
  9058  
  9059  	if invalidParams.Len() > 0 {
  9060  		return invalidParams
  9061  	}
  9062  	return nil
  9063  }
  9064  
  9065  // SetAccountId sets the AccountId field's value.
  9066  func (s *SetDataRetrievalPolicyInput) SetAccountId(v string) *SetDataRetrievalPolicyInput {
  9067  	s.AccountId = &v
  9068  	return s
  9069  }
  9070  
  9071  // SetPolicy sets the Policy field's value.
  9072  func (s *SetDataRetrievalPolicyInput) SetPolicy(v *DataRetrievalPolicy) *SetDataRetrievalPolicyInput {
  9073  	s.Policy = v
  9074  	return s
  9075  }
  9076  
  9077  type SetDataRetrievalPolicyOutput struct {
  9078  	_ struct{} `type:"structure" nopayload:"true"`
  9079  }
  9080  
  9081  // String returns the string representation.
  9082  //
  9083  // API parameter values that are decorated as "sensitive" in the API will not
  9084  // be included in the string output. The member name will be present, but the
  9085  // value will be replaced with "sensitive".
  9086  func (s SetDataRetrievalPolicyOutput) String() string {
  9087  	return awsutil.Prettify(s)
  9088  }
  9089  
  9090  // GoString returns the string representation.
  9091  //
  9092  // API parameter values that are decorated as "sensitive" in the API will not
  9093  // be included in the string output. The member name will be present, but the
  9094  // value will be replaced with "sensitive".
  9095  func (s SetDataRetrievalPolicyOutput) GoString() string {
  9096  	return s.String()
  9097  }
  9098  
  9099  // SetVaultAccessPolicy input.
  9100  type SetVaultAccessPolicyInput struct {
  9101  	_ struct{} `type:"structure" payload:"Policy"`
  9102  
  9103  	// The AccountId value is the AWS account ID of the account that owns the vault.
  9104  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  9105  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  9106  	// credentials used to sign the request. If you use an account ID, do not include
  9107  	// any hyphens ('-') in the ID.
  9108  	//
  9109  	// AccountId is a required field
  9110  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  9111  
  9112  	// The vault access policy as a JSON string.
  9113  	Policy *VaultAccessPolicy `locationName:"policy" type:"structure"`
  9114  
  9115  	// The name of the vault.
  9116  	//
  9117  	// VaultName is a required field
  9118  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  9119  }
  9120  
  9121  // String returns the string representation.
  9122  //
  9123  // API parameter values that are decorated as "sensitive" in the API will not
  9124  // be included in the string output. The member name will be present, but the
  9125  // value will be replaced with "sensitive".
  9126  func (s SetVaultAccessPolicyInput) String() string {
  9127  	return awsutil.Prettify(s)
  9128  }
  9129  
  9130  // GoString returns the string representation.
  9131  //
  9132  // API parameter values that are decorated as "sensitive" in the API will not
  9133  // be included in the string output. The member name will be present, but the
  9134  // value will be replaced with "sensitive".
  9135  func (s SetVaultAccessPolicyInput) GoString() string {
  9136  	return s.String()
  9137  }
  9138  
  9139  // Validate inspects the fields of the type to determine if they are valid.
  9140  func (s *SetVaultAccessPolicyInput) Validate() error {
  9141  	invalidParams := request.ErrInvalidParams{Context: "SetVaultAccessPolicyInput"}
  9142  	if s.AccountId == nil {
  9143  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9144  	}
  9145  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9146  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9147  	}
  9148  	if s.VaultName == nil {
  9149  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  9150  	}
  9151  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  9152  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  9153  	}
  9154  
  9155  	if invalidParams.Len() > 0 {
  9156  		return invalidParams
  9157  	}
  9158  	return nil
  9159  }
  9160  
  9161  // SetAccountId sets the AccountId field's value.
  9162  func (s *SetVaultAccessPolicyInput) SetAccountId(v string) *SetVaultAccessPolicyInput {
  9163  	s.AccountId = &v
  9164  	return s
  9165  }
  9166  
  9167  // SetPolicy sets the Policy field's value.
  9168  func (s *SetVaultAccessPolicyInput) SetPolicy(v *VaultAccessPolicy) *SetVaultAccessPolicyInput {
  9169  	s.Policy = v
  9170  	return s
  9171  }
  9172  
  9173  // SetVaultName sets the VaultName field's value.
  9174  func (s *SetVaultAccessPolicyInput) SetVaultName(v string) *SetVaultAccessPolicyInput {
  9175  	s.VaultName = &v
  9176  	return s
  9177  }
  9178  
  9179  type SetVaultAccessPolicyOutput struct {
  9180  	_ struct{} `type:"structure" nopayload:"true"`
  9181  }
  9182  
  9183  // String returns the string representation.
  9184  //
  9185  // API parameter values that are decorated as "sensitive" in the API will not
  9186  // be included in the string output. The member name will be present, but the
  9187  // value will be replaced with "sensitive".
  9188  func (s SetVaultAccessPolicyOutput) String() string {
  9189  	return awsutil.Prettify(s)
  9190  }
  9191  
  9192  // GoString returns the string representation.
  9193  //
  9194  // API parameter values that are decorated as "sensitive" in the API will not
  9195  // be included in the string output. The member name will be present, but the
  9196  // value will be replaced with "sensitive".
  9197  func (s SetVaultAccessPolicyOutput) GoString() string {
  9198  	return s.String()
  9199  }
  9200  
  9201  // Provides options to configure notifications that will be sent when specific
  9202  // events happen to a vault.
  9203  type SetVaultNotificationsInput struct {
  9204  	_ struct{} `type:"structure" payload:"VaultNotificationConfig"`
  9205  
  9206  	// The AccountId value is the AWS account ID of the account that owns the vault.
  9207  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  9208  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  9209  	// credentials used to sign the request. If you use an account ID, do not include
  9210  	// any hyphens ('-') in the ID.
  9211  	//
  9212  	// AccountId is a required field
  9213  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  9214  
  9215  	// The name of the vault.
  9216  	//
  9217  	// VaultName is a required field
  9218  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  9219  
  9220  	// Provides options for specifying notification configuration.
  9221  	VaultNotificationConfig *VaultNotificationConfig `locationName:"vaultNotificationConfig" type:"structure"`
  9222  }
  9223  
  9224  // String returns the string representation.
  9225  //
  9226  // API parameter values that are decorated as "sensitive" in the API will not
  9227  // be included in the string output. The member name will be present, but the
  9228  // value will be replaced with "sensitive".
  9229  func (s SetVaultNotificationsInput) String() string {
  9230  	return awsutil.Prettify(s)
  9231  }
  9232  
  9233  // GoString returns the string representation.
  9234  //
  9235  // API parameter values that are decorated as "sensitive" in the API will not
  9236  // be included in the string output. The member name will be present, but the
  9237  // value will be replaced with "sensitive".
  9238  func (s SetVaultNotificationsInput) GoString() string {
  9239  	return s.String()
  9240  }
  9241  
  9242  // Validate inspects the fields of the type to determine if they are valid.
  9243  func (s *SetVaultNotificationsInput) Validate() error {
  9244  	invalidParams := request.ErrInvalidParams{Context: "SetVaultNotificationsInput"}
  9245  	if s.AccountId == nil {
  9246  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9247  	}
  9248  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9249  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9250  	}
  9251  	if s.VaultName == nil {
  9252  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  9253  	}
  9254  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  9255  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  9256  	}
  9257  
  9258  	if invalidParams.Len() > 0 {
  9259  		return invalidParams
  9260  	}
  9261  	return nil
  9262  }
  9263  
  9264  // SetAccountId sets the AccountId field's value.
  9265  func (s *SetVaultNotificationsInput) SetAccountId(v string) *SetVaultNotificationsInput {
  9266  	s.AccountId = &v
  9267  	return s
  9268  }
  9269  
  9270  // SetVaultName sets the VaultName field's value.
  9271  func (s *SetVaultNotificationsInput) SetVaultName(v string) *SetVaultNotificationsInput {
  9272  	s.VaultName = &v
  9273  	return s
  9274  }
  9275  
  9276  // SetVaultNotificationConfig sets the VaultNotificationConfig field's value.
  9277  func (s *SetVaultNotificationsInput) SetVaultNotificationConfig(v *VaultNotificationConfig) *SetVaultNotificationsInput {
  9278  	s.VaultNotificationConfig = v
  9279  	return s
  9280  }
  9281  
  9282  type SetVaultNotificationsOutput struct {
  9283  	_ struct{} `type:"structure" nopayload:"true"`
  9284  }
  9285  
  9286  // String returns the string representation.
  9287  //
  9288  // API parameter values that are decorated as "sensitive" in the API will not
  9289  // be included in the string output. The member name will be present, but the
  9290  // value will be replaced with "sensitive".
  9291  func (s SetVaultNotificationsOutput) String() string {
  9292  	return awsutil.Prettify(s)
  9293  }
  9294  
  9295  // GoString returns the string representation.
  9296  //
  9297  // API parameter values that are decorated as "sensitive" in the API will not
  9298  // be included in the string output. The member name will be present, but the
  9299  // value will be replaced with "sensitive".
  9300  func (s SetVaultNotificationsOutput) GoString() string {
  9301  	return s.String()
  9302  }
  9303  
  9304  // Provides options to add an archive to a vault.
  9305  type UploadArchiveInput struct {
  9306  	_ struct{} `type:"structure" payload:"Body"`
  9307  
  9308  	// The AccountId value is the AWS account ID of the account that owns the vault.
  9309  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  9310  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  9311  	// credentials used to sign the request. If you use an account ID, do not include
  9312  	// any hyphens ('-') in the ID.
  9313  	//
  9314  	// AccountId is a required field
  9315  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  9316  
  9317  	// The optional description of the archive you are uploading.
  9318  	ArchiveDescription *string `location:"header" locationName:"x-amz-archive-description" type:"string"`
  9319  
  9320  	// The data to upload.
  9321  	Body io.ReadSeeker `locationName:"body" type:"blob"`
  9322  
  9323  	// The SHA256 tree hash of the data being uploaded.
  9324  	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
  9325  
  9326  	// The name of the vault.
  9327  	//
  9328  	// VaultName is a required field
  9329  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  9330  }
  9331  
  9332  // String returns the string representation.
  9333  //
  9334  // API parameter values that are decorated as "sensitive" in the API will not
  9335  // be included in the string output. The member name will be present, but the
  9336  // value will be replaced with "sensitive".
  9337  func (s UploadArchiveInput) String() string {
  9338  	return awsutil.Prettify(s)
  9339  }
  9340  
  9341  // GoString returns the string representation.
  9342  //
  9343  // API parameter values that are decorated as "sensitive" in the API will not
  9344  // be included in the string output. The member name will be present, but the
  9345  // value will be replaced with "sensitive".
  9346  func (s UploadArchiveInput) GoString() string {
  9347  	return s.String()
  9348  }
  9349  
  9350  // Validate inspects the fields of the type to determine if they are valid.
  9351  func (s *UploadArchiveInput) Validate() error {
  9352  	invalidParams := request.ErrInvalidParams{Context: "UploadArchiveInput"}
  9353  	if s.AccountId == nil {
  9354  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9355  	}
  9356  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9357  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9358  	}
  9359  	if s.VaultName == nil {
  9360  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  9361  	}
  9362  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  9363  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  9364  	}
  9365  
  9366  	if invalidParams.Len() > 0 {
  9367  		return invalidParams
  9368  	}
  9369  	return nil
  9370  }
  9371  
  9372  // SetAccountId sets the AccountId field's value.
  9373  func (s *UploadArchiveInput) SetAccountId(v string) *UploadArchiveInput {
  9374  	s.AccountId = &v
  9375  	return s
  9376  }
  9377  
  9378  // SetArchiveDescription sets the ArchiveDescription field's value.
  9379  func (s *UploadArchiveInput) SetArchiveDescription(v string) *UploadArchiveInput {
  9380  	s.ArchiveDescription = &v
  9381  	return s
  9382  }
  9383  
  9384  // SetBody sets the Body field's value.
  9385  func (s *UploadArchiveInput) SetBody(v io.ReadSeeker) *UploadArchiveInput {
  9386  	s.Body = v
  9387  	return s
  9388  }
  9389  
  9390  // SetChecksum sets the Checksum field's value.
  9391  func (s *UploadArchiveInput) SetChecksum(v string) *UploadArchiveInput {
  9392  	s.Checksum = &v
  9393  	return s
  9394  }
  9395  
  9396  // SetVaultName sets the VaultName field's value.
  9397  func (s *UploadArchiveInput) SetVaultName(v string) *UploadArchiveInput {
  9398  	s.VaultName = &v
  9399  	return s
  9400  }
  9401  
  9402  // A list of in-progress multipart uploads for a vault.
  9403  type UploadListElement struct {
  9404  	_ struct{} `type:"structure"`
  9405  
  9406  	// The description of the archive that was specified in the Initiate Multipart
  9407  	// Upload request.
  9408  	ArchiveDescription *string `type:"string"`
  9409  
  9410  	// The UTC time at which the multipart upload was initiated.
  9411  	CreationDate *string `type:"string"`
  9412  
  9413  	// The ID of a multipart upload.
  9414  	MultipartUploadId *string `type:"string"`
  9415  
  9416  	// The part size, in bytes, specified in the Initiate Multipart Upload request.
  9417  	// This is the size of all the parts in the upload except the last part, which
  9418  	// may be smaller than this size.
  9419  	PartSizeInBytes *int64 `type:"long"`
  9420  
  9421  	// The Amazon Resource Name (ARN) of the vault that contains the archive.
  9422  	VaultARN *string `type:"string"`
  9423  }
  9424  
  9425  // String returns the string representation.
  9426  //
  9427  // API parameter values that are decorated as "sensitive" in the API will not
  9428  // be included in the string output. The member name will be present, but the
  9429  // value will be replaced with "sensitive".
  9430  func (s UploadListElement) String() string {
  9431  	return awsutil.Prettify(s)
  9432  }
  9433  
  9434  // GoString returns the string representation.
  9435  //
  9436  // API parameter values that are decorated as "sensitive" in the API will not
  9437  // be included in the string output. The member name will be present, but the
  9438  // value will be replaced with "sensitive".
  9439  func (s UploadListElement) GoString() string {
  9440  	return s.String()
  9441  }
  9442  
  9443  // SetArchiveDescription sets the ArchiveDescription field's value.
  9444  func (s *UploadListElement) SetArchiveDescription(v string) *UploadListElement {
  9445  	s.ArchiveDescription = &v
  9446  	return s
  9447  }
  9448  
  9449  // SetCreationDate sets the CreationDate field's value.
  9450  func (s *UploadListElement) SetCreationDate(v string) *UploadListElement {
  9451  	s.CreationDate = &v
  9452  	return s
  9453  }
  9454  
  9455  // SetMultipartUploadId sets the MultipartUploadId field's value.
  9456  func (s *UploadListElement) SetMultipartUploadId(v string) *UploadListElement {
  9457  	s.MultipartUploadId = &v
  9458  	return s
  9459  }
  9460  
  9461  // SetPartSizeInBytes sets the PartSizeInBytes field's value.
  9462  func (s *UploadListElement) SetPartSizeInBytes(v int64) *UploadListElement {
  9463  	s.PartSizeInBytes = &v
  9464  	return s
  9465  }
  9466  
  9467  // SetVaultARN sets the VaultARN field's value.
  9468  func (s *UploadListElement) SetVaultARN(v string) *UploadListElement {
  9469  	s.VaultARN = &v
  9470  	return s
  9471  }
  9472  
  9473  // Provides options to upload a part of an archive in a multipart upload operation.
  9474  type UploadMultipartPartInput struct {
  9475  	_ struct{} `type:"structure" payload:"Body"`
  9476  
  9477  	// The AccountId value is the AWS account ID of the account that owns the vault.
  9478  	// You can either specify an AWS account ID or optionally a single '-' (hyphen),
  9479  	// in which case Amazon S3 Glacier uses the AWS account ID associated with the
  9480  	// credentials used to sign the request. If you use an account ID, do not include
  9481  	// any hyphens ('-') in the ID.
  9482  	//
  9483  	// AccountId is a required field
  9484  	AccountId *string `location:"uri" locationName:"accountId" type:"string" required:"true"`
  9485  
  9486  	// The data to upload.
  9487  	Body io.ReadSeeker `locationName:"body" type:"blob"`
  9488  
  9489  	// The SHA256 tree hash of the data being uploaded.
  9490  	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
  9491  
  9492  	// Identifies the range of bytes in the assembled archive that will be uploaded
  9493  	// in this part. Amazon S3 Glacier uses this information to assemble the archive
  9494  	// in the proper sequence. The format of this header follows RFC 2616. An example
  9495  	// header is Content-Range:bytes 0-4194303/*.
  9496  	Range *string `location:"header" locationName:"Content-Range" type:"string"`
  9497  
  9498  	// The upload ID of the multipart upload.
  9499  	//
  9500  	// UploadId is a required field
  9501  	UploadId *string `location:"uri" locationName:"uploadId" type:"string" required:"true"`
  9502  
  9503  	// The name of the vault.
  9504  	//
  9505  	// VaultName is a required field
  9506  	VaultName *string `location:"uri" locationName:"vaultName" type:"string" required:"true"`
  9507  }
  9508  
  9509  // String returns the string representation.
  9510  //
  9511  // API parameter values that are decorated as "sensitive" in the API will not
  9512  // be included in the string output. The member name will be present, but the
  9513  // value will be replaced with "sensitive".
  9514  func (s UploadMultipartPartInput) String() string {
  9515  	return awsutil.Prettify(s)
  9516  }
  9517  
  9518  // GoString returns the string representation.
  9519  //
  9520  // API parameter values that are decorated as "sensitive" in the API will not
  9521  // be included in the string output. The member name will be present, but the
  9522  // value will be replaced with "sensitive".
  9523  func (s UploadMultipartPartInput) GoString() string {
  9524  	return s.String()
  9525  }
  9526  
  9527  // Validate inspects the fields of the type to determine if they are valid.
  9528  func (s *UploadMultipartPartInput) Validate() error {
  9529  	invalidParams := request.ErrInvalidParams{Context: "UploadMultipartPartInput"}
  9530  	if s.AccountId == nil {
  9531  		invalidParams.Add(request.NewErrParamRequired("AccountId"))
  9532  	}
  9533  	if s.AccountId != nil && len(*s.AccountId) < 1 {
  9534  		invalidParams.Add(request.NewErrParamMinLen("AccountId", 1))
  9535  	}
  9536  	if s.UploadId == nil {
  9537  		invalidParams.Add(request.NewErrParamRequired("UploadId"))
  9538  	}
  9539  	if s.UploadId != nil && len(*s.UploadId) < 1 {
  9540  		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
  9541  	}
  9542  	if s.VaultName == nil {
  9543  		invalidParams.Add(request.NewErrParamRequired("VaultName"))
  9544  	}
  9545  	if s.VaultName != nil && len(*s.VaultName) < 1 {
  9546  		invalidParams.Add(request.NewErrParamMinLen("VaultName", 1))
  9547  	}
  9548  
  9549  	if invalidParams.Len() > 0 {
  9550  		return invalidParams
  9551  	}
  9552  	return nil
  9553  }
  9554  
  9555  // SetAccountId sets the AccountId field's value.
  9556  func (s *UploadMultipartPartInput) SetAccountId(v string) *UploadMultipartPartInput {
  9557  	s.AccountId = &v
  9558  	return s
  9559  }
  9560  
  9561  // SetBody sets the Body field's value.
  9562  func (s *UploadMultipartPartInput) SetBody(v io.ReadSeeker) *UploadMultipartPartInput {
  9563  	s.Body = v
  9564  	return s
  9565  }
  9566  
  9567  // SetChecksum sets the Checksum field's value.
  9568  func (s *UploadMultipartPartInput) SetChecksum(v string) *UploadMultipartPartInput {
  9569  	s.Checksum = &v
  9570  	return s
  9571  }
  9572  
  9573  // SetRange sets the Range field's value.
  9574  func (s *UploadMultipartPartInput) SetRange(v string) *UploadMultipartPartInput {
  9575  	s.Range = &v
  9576  	return s
  9577  }
  9578  
  9579  // SetUploadId sets the UploadId field's value.
  9580  func (s *UploadMultipartPartInput) SetUploadId(v string) *UploadMultipartPartInput {
  9581  	s.UploadId = &v
  9582  	return s
  9583  }
  9584  
  9585  // SetVaultName sets the VaultName field's value.
  9586  func (s *UploadMultipartPartInput) SetVaultName(v string) *UploadMultipartPartInput {
  9587  	s.VaultName = &v
  9588  	return s
  9589  }
  9590  
  9591  // Contains the Amazon S3 Glacier response to your request.
  9592  type UploadMultipartPartOutput struct {
  9593  	_ struct{} `type:"structure" nopayload:"true"`
  9594  
  9595  	// The SHA256 tree hash that Amazon S3 Glacier computed for the uploaded part.
  9596  	Checksum *string `location:"header" locationName:"x-amz-sha256-tree-hash" type:"string"`
  9597  }
  9598  
  9599  // String returns the string representation.
  9600  //
  9601  // API parameter values that are decorated as "sensitive" in the API will not
  9602  // be included in the string output. The member name will be present, but the
  9603  // value will be replaced with "sensitive".
  9604  func (s UploadMultipartPartOutput) String() string {
  9605  	return awsutil.Prettify(s)
  9606  }
  9607  
  9608  // GoString returns the string representation.
  9609  //
  9610  // API parameter values that are decorated as "sensitive" in the API will not
  9611  // be included in the string output. The member name will be present, but the
  9612  // value will be replaced with "sensitive".
  9613  func (s UploadMultipartPartOutput) GoString() string {
  9614  	return s.String()
  9615  }
  9616  
  9617  // SetChecksum sets the Checksum field's value.
  9618  func (s *UploadMultipartPartOutput) SetChecksum(v string) *UploadMultipartPartOutput {
  9619  	s.Checksum = &v
  9620  	return s
  9621  }
  9622  
  9623  // Contains the vault access policy.
  9624  type VaultAccessPolicy struct {
  9625  	_ struct{} `type:"structure"`
  9626  
  9627  	// The vault access policy.
  9628  	Policy *string `type:"string"`
  9629  }
  9630  
  9631  // String returns the string representation.
  9632  //
  9633  // API parameter values that are decorated as "sensitive" in the API will not
  9634  // be included in the string output. The member name will be present, but the
  9635  // value will be replaced with "sensitive".
  9636  func (s VaultAccessPolicy) String() string {
  9637  	return awsutil.Prettify(s)
  9638  }
  9639  
  9640  // GoString returns the string representation.
  9641  //
  9642  // API parameter values that are decorated as "sensitive" in the API will not
  9643  // be included in the string output. The member name will be present, but the
  9644  // value will be replaced with "sensitive".
  9645  func (s VaultAccessPolicy) GoString() string {
  9646  	return s.String()
  9647  }
  9648  
  9649  // SetPolicy sets the Policy field's value.
  9650  func (s *VaultAccessPolicy) SetPolicy(v string) *VaultAccessPolicy {
  9651  	s.Policy = &v
  9652  	return s
  9653  }
  9654  
  9655  // Contains the vault lock policy.
  9656  type VaultLockPolicy struct {
  9657  	_ struct{} `type:"structure"`
  9658  
  9659  	// The vault lock policy.
  9660  	Policy *string `type:"string"`
  9661  }
  9662  
  9663  // String returns the string representation.
  9664  //
  9665  // API parameter values that are decorated as "sensitive" in the API will not
  9666  // be included in the string output. The member name will be present, but the
  9667  // value will be replaced with "sensitive".
  9668  func (s VaultLockPolicy) String() string {
  9669  	return awsutil.Prettify(s)
  9670  }
  9671  
  9672  // GoString returns the string representation.
  9673  //
  9674  // API parameter values that are decorated as "sensitive" in the API will not
  9675  // be included in the string output. The member name will be present, but the
  9676  // value will be replaced with "sensitive".
  9677  func (s VaultLockPolicy) GoString() string {
  9678  	return s.String()
  9679  }
  9680  
  9681  // SetPolicy sets the Policy field's value.
  9682  func (s *VaultLockPolicy) SetPolicy(v string) *VaultLockPolicy {
  9683  	s.Policy = &v
  9684  	return s
  9685  }
  9686  
  9687  // Represents a vault's notification configuration.
  9688  type VaultNotificationConfig struct {
  9689  	_ struct{} `type:"structure"`
  9690  
  9691  	// A list of one or more events for which Amazon S3 Glacier will send a notification
  9692  	// to the specified Amazon SNS topic.
  9693  	Events []*string `type:"list"`
  9694  
  9695  	// The Amazon Simple Notification Service (Amazon SNS) topic Amazon Resource
  9696  	// Name (ARN).
  9697  	SNSTopic *string `type:"string"`
  9698  }
  9699  
  9700  // String returns the string representation.
  9701  //
  9702  // API parameter values that are decorated as "sensitive" in the API will not
  9703  // be included in the string output. The member name will be present, but the
  9704  // value will be replaced with "sensitive".
  9705  func (s VaultNotificationConfig) String() string {
  9706  	return awsutil.Prettify(s)
  9707  }
  9708  
  9709  // GoString returns the string representation.
  9710  //
  9711  // API parameter values that are decorated as "sensitive" in the API will not
  9712  // be included in the string output. The member name will be present, but the
  9713  // value will be replaced with "sensitive".
  9714  func (s VaultNotificationConfig) GoString() string {
  9715  	return s.String()
  9716  }
  9717  
  9718  // SetEvents sets the Events field's value.
  9719  func (s *VaultNotificationConfig) SetEvents(v []*string) *VaultNotificationConfig {
  9720  	s.Events = v
  9721  	return s
  9722  }
  9723  
  9724  // SetSNSTopic sets the SNSTopic field's value.
  9725  func (s *VaultNotificationConfig) SetSNSTopic(v string) *VaultNotificationConfig {
  9726  	s.SNSTopic = &v
  9727  	return s
  9728  }
  9729  
  9730  const (
  9731  	// ActionCodeArchiveRetrieval is a ActionCode enum value
  9732  	ActionCodeArchiveRetrieval = "ArchiveRetrieval"
  9733  
  9734  	// ActionCodeInventoryRetrieval is a ActionCode enum value
  9735  	ActionCodeInventoryRetrieval = "InventoryRetrieval"
  9736  
  9737  	// ActionCodeSelect is a ActionCode enum value
  9738  	ActionCodeSelect = "Select"
  9739  )
  9740  
  9741  // ActionCode_Values returns all elements of the ActionCode enum
  9742  func ActionCode_Values() []string {
  9743  	return []string{
  9744  		ActionCodeArchiveRetrieval,
  9745  		ActionCodeInventoryRetrieval,
  9746  		ActionCodeSelect,
  9747  	}
  9748  }
  9749  
  9750  const (
  9751  	// CannedACLPrivate is a CannedACL enum value
  9752  	CannedACLPrivate = "private"
  9753  
  9754  	// CannedACLPublicRead is a CannedACL enum value
  9755  	CannedACLPublicRead = "public-read"
  9756  
  9757  	// CannedACLPublicReadWrite is a CannedACL enum value
  9758  	CannedACLPublicReadWrite = "public-read-write"
  9759  
  9760  	// CannedACLAwsExecRead is a CannedACL enum value
  9761  	CannedACLAwsExecRead = "aws-exec-read"
  9762  
  9763  	// CannedACLAuthenticatedRead is a CannedACL enum value
  9764  	CannedACLAuthenticatedRead = "authenticated-read"
  9765  
  9766  	// CannedACLBucketOwnerRead is a CannedACL enum value
  9767  	CannedACLBucketOwnerRead = "bucket-owner-read"
  9768  
  9769  	// CannedACLBucketOwnerFullControl is a CannedACL enum value
  9770  	CannedACLBucketOwnerFullControl = "bucket-owner-full-control"
  9771  )
  9772  
  9773  // CannedACL_Values returns all elements of the CannedACL enum
  9774  func CannedACL_Values() []string {
  9775  	return []string{
  9776  		CannedACLPrivate,
  9777  		CannedACLPublicRead,
  9778  		CannedACLPublicReadWrite,
  9779  		CannedACLAwsExecRead,
  9780  		CannedACLAuthenticatedRead,
  9781  		CannedACLBucketOwnerRead,
  9782  		CannedACLBucketOwnerFullControl,
  9783  	}
  9784  }
  9785  
  9786  const (
  9787  	// EncryptionTypeAwsKms is a EncryptionType enum value
  9788  	EncryptionTypeAwsKms = "aws:kms"
  9789  
  9790  	// EncryptionTypeAes256 is a EncryptionType enum value
  9791  	EncryptionTypeAes256 = "AES256"
  9792  )
  9793  
  9794  // EncryptionType_Values returns all elements of the EncryptionType enum
  9795  func EncryptionType_Values() []string {
  9796  	return []string{
  9797  		EncryptionTypeAwsKms,
  9798  		EncryptionTypeAes256,
  9799  	}
  9800  }
  9801  
  9802  const (
  9803  	// ExpressionTypeSql is a ExpressionType enum value
  9804  	ExpressionTypeSql = "SQL"
  9805  )
  9806  
  9807  // ExpressionType_Values returns all elements of the ExpressionType enum
  9808  func ExpressionType_Values() []string {
  9809  	return []string{
  9810  		ExpressionTypeSql,
  9811  	}
  9812  }
  9813  
  9814  const (
  9815  	// FileHeaderInfoUse is a FileHeaderInfo enum value
  9816  	FileHeaderInfoUse = "USE"
  9817  
  9818  	// FileHeaderInfoIgnore is a FileHeaderInfo enum value
  9819  	FileHeaderInfoIgnore = "IGNORE"
  9820  
  9821  	// FileHeaderInfoNone is a FileHeaderInfo enum value
  9822  	FileHeaderInfoNone = "NONE"
  9823  )
  9824  
  9825  // FileHeaderInfo_Values returns all elements of the FileHeaderInfo enum
  9826  func FileHeaderInfo_Values() []string {
  9827  	return []string{
  9828  		FileHeaderInfoUse,
  9829  		FileHeaderInfoIgnore,
  9830  		FileHeaderInfoNone,
  9831  	}
  9832  }
  9833  
  9834  const (
  9835  	// PermissionFullControl is a Permission enum value
  9836  	PermissionFullControl = "FULL_CONTROL"
  9837  
  9838  	// PermissionWrite is a Permission enum value
  9839  	PermissionWrite = "WRITE"
  9840  
  9841  	// PermissionWriteAcp is a Permission enum value
  9842  	PermissionWriteAcp = "WRITE_ACP"
  9843  
  9844  	// PermissionRead is a Permission enum value
  9845  	PermissionRead = "READ"
  9846  
  9847  	// PermissionReadAcp is a Permission enum value
  9848  	PermissionReadAcp = "READ_ACP"
  9849  )
  9850  
  9851  // Permission_Values returns all elements of the Permission enum
  9852  func Permission_Values() []string {
  9853  	return []string{
  9854  		PermissionFullControl,
  9855  		PermissionWrite,
  9856  		PermissionWriteAcp,
  9857  		PermissionRead,
  9858  		PermissionReadAcp,
  9859  	}
  9860  }
  9861  
  9862  const (
  9863  	// QuoteFieldsAlways is a QuoteFields enum value
  9864  	QuoteFieldsAlways = "ALWAYS"
  9865  
  9866  	// QuoteFieldsAsneeded is a QuoteFields enum value
  9867  	QuoteFieldsAsneeded = "ASNEEDED"
  9868  )
  9869  
  9870  // QuoteFields_Values returns all elements of the QuoteFields enum
  9871  func QuoteFields_Values() []string {
  9872  	return []string{
  9873  		QuoteFieldsAlways,
  9874  		QuoteFieldsAsneeded,
  9875  	}
  9876  }
  9877  
  9878  const (
  9879  	// StatusCodeInProgress is a StatusCode enum value
  9880  	StatusCodeInProgress = "InProgress"
  9881  
  9882  	// StatusCodeSucceeded is a StatusCode enum value
  9883  	StatusCodeSucceeded = "Succeeded"
  9884  
  9885  	// StatusCodeFailed is a StatusCode enum value
  9886  	StatusCodeFailed = "Failed"
  9887  )
  9888  
  9889  // StatusCode_Values returns all elements of the StatusCode enum
  9890  func StatusCode_Values() []string {
  9891  	return []string{
  9892  		StatusCodeInProgress,
  9893  		StatusCodeSucceeded,
  9894  		StatusCodeFailed,
  9895  	}
  9896  }
  9897  
  9898  const (
  9899  	// StorageClassStandard is a StorageClass enum value
  9900  	StorageClassStandard = "STANDARD"
  9901  
  9902  	// StorageClassReducedRedundancy is a StorageClass enum value
  9903  	StorageClassReducedRedundancy = "REDUCED_REDUNDANCY"
  9904  
  9905  	// StorageClassStandardIa is a StorageClass enum value
  9906  	StorageClassStandardIa = "STANDARD_IA"
  9907  )
  9908  
  9909  // StorageClass_Values returns all elements of the StorageClass enum
  9910  func StorageClass_Values() []string {
  9911  	return []string{
  9912  		StorageClassStandard,
  9913  		StorageClassReducedRedundancy,
  9914  		StorageClassStandardIa,
  9915  	}
  9916  }
  9917  
  9918  const (
  9919  	// TypeAmazonCustomerByEmail is a Type enum value
  9920  	TypeAmazonCustomerByEmail = "AmazonCustomerByEmail"
  9921  
  9922  	// TypeCanonicalUser is a Type enum value
  9923  	TypeCanonicalUser = "CanonicalUser"
  9924  
  9925  	// TypeGroup is a Type enum value
  9926  	TypeGroup = "Group"
  9927  )
  9928  
  9929  // Type_Values returns all elements of the Type enum
  9930  func Type_Values() []string {
  9931  	return []string{
  9932  		TypeAmazonCustomerByEmail,
  9933  		TypeCanonicalUser,
  9934  		TypeGroup,
  9935  	}
  9936  }