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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package storagegateway
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     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  )
    14  
    15  const opActivateGateway = "ActivateGateway"
    16  
    17  // ActivateGatewayRequest generates a "aws/request.Request" representing the
    18  // client's request for the ActivateGateway operation. The "output" return
    19  // value will be populated with the request's response once the request completes
    20  // successfully.
    21  //
    22  // Use "Send" method on the returned Request to send the API call to the service.
    23  // the "output" return value is not valid until after Send returns without error.
    24  //
    25  // See ActivateGateway for more information on using the ActivateGateway
    26  // API call, and error handling.
    27  //
    28  // This method is useful when you want to inject custom logic or configuration
    29  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    30  //
    31  //
    32  //    // Example sending a request using the ActivateGatewayRequest method.
    33  //    req, resp := client.ActivateGatewayRequest(params)
    34  //
    35  //    err := req.Send()
    36  //    if err == nil { // resp is now filled
    37  //        fmt.Println(resp)
    38  //    }
    39  //
    40  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ActivateGateway
    41  func (c *StorageGateway) ActivateGatewayRequest(input *ActivateGatewayInput) (req *request.Request, output *ActivateGatewayOutput) {
    42  	op := &request.Operation{
    43  		Name:       opActivateGateway,
    44  		HTTPMethod: "POST",
    45  		HTTPPath:   "/",
    46  	}
    47  
    48  	if input == nil {
    49  		input = &ActivateGatewayInput{}
    50  	}
    51  
    52  	output = &ActivateGatewayOutput{}
    53  	req = c.newRequest(op, input, output)
    54  	return
    55  }
    56  
    57  // ActivateGateway API operation for AWS Storage Gateway.
    58  //
    59  // Activates the gateway you previously deployed on your host. In the activation
    60  // process, you specify information such as the Region that you want to use
    61  // for storing snapshots or tapes, the time zone for scheduled snapshots the
    62  // gateway snapshot schedule window, an activation key, and a name for your
    63  // gateway. The activation process also associates your gateway with your account.
    64  // For more information, see UpdateGatewayInformation.
    65  //
    66  // You must turn on the gateway VM before you can activate your gateway.
    67  //
    68  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    69  // with awserr.Error's Code and Message methods to get detailed information about
    70  // the error.
    71  //
    72  // See the AWS API reference guide for AWS Storage Gateway's
    73  // API operation ActivateGateway for usage and error information.
    74  //
    75  // Returned Error Types:
    76  //   * InvalidGatewayRequestException
    77  //   An exception occurred because an invalid gateway request was issued to the
    78  //   service. For more information, see the error and message fields.
    79  //
    80  //   * InternalServerError
    81  //   An internal server error has occurred during the request. For more information,
    82  //   see the error and message fields.
    83  //
    84  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ActivateGateway
    85  func (c *StorageGateway) ActivateGateway(input *ActivateGatewayInput) (*ActivateGatewayOutput, error) {
    86  	req, out := c.ActivateGatewayRequest(input)
    87  	return out, req.Send()
    88  }
    89  
    90  // ActivateGatewayWithContext is the same as ActivateGateway with the addition of
    91  // the ability to pass a context and additional request options.
    92  //
    93  // See ActivateGateway for details on how to use this API operation.
    94  //
    95  // The context must be non-nil and will be used for request cancellation. If
    96  // the context is nil a panic will occur. In the future the SDK may create
    97  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
    98  // for more information on using Contexts.
    99  func (c *StorageGateway) ActivateGatewayWithContext(ctx aws.Context, input *ActivateGatewayInput, opts ...request.Option) (*ActivateGatewayOutput, error) {
   100  	req, out := c.ActivateGatewayRequest(input)
   101  	req.SetContext(ctx)
   102  	req.ApplyOptions(opts...)
   103  	return out, req.Send()
   104  }
   105  
   106  const opAddCache = "AddCache"
   107  
   108  // AddCacheRequest generates a "aws/request.Request" representing the
   109  // client's request for the AddCache operation. The "output" return
   110  // value will be populated with the request's response once the request completes
   111  // successfully.
   112  //
   113  // Use "Send" method on the returned Request to send the API call to the service.
   114  // the "output" return value is not valid until after Send returns without error.
   115  //
   116  // See AddCache for more information on using the AddCache
   117  // API call, and error handling.
   118  //
   119  // This method is useful when you want to inject custom logic or configuration
   120  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   121  //
   122  //
   123  //    // Example sending a request using the AddCacheRequest method.
   124  //    req, resp := client.AddCacheRequest(params)
   125  //
   126  //    err := req.Send()
   127  //    if err == nil { // resp is now filled
   128  //        fmt.Println(resp)
   129  //    }
   130  //
   131  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddCache
   132  func (c *StorageGateway) AddCacheRequest(input *AddCacheInput) (req *request.Request, output *AddCacheOutput) {
   133  	op := &request.Operation{
   134  		Name:       opAddCache,
   135  		HTTPMethod: "POST",
   136  		HTTPPath:   "/",
   137  	}
   138  
   139  	if input == nil {
   140  		input = &AddCacheInput{}
   141  	}
   142  
   143  	output = &AddCacheOutput{}
   144  	req = c.newRequest(op, input, output)
   145  	return
   146  }
   147  
   148  // AddCache API operation for AWS Storage Gateway.
   149  //
   150  // Configures one or more gateway local disks as cache for a gateway. This operation
   151  // is only supported in the cached volume, tape, and file gateway type (see
   152  // How Storage Gateway works (architecture) (https://docs.aws.amazon.com/storagegateway/latest/userguide/StorageGatewayConcepts.html).
   153  //
   154  // In the request, you specify the gateway Amazon Resource Name (ARN) to which
   155  // you want to add cache, and one or more disk IDs that you want to configure
   156  // as cache.
   157  //
   158  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   159  // with awserr.Error's Code and Message methods to get detailed information about
   160  // the error.
   161  //
   162  // See the AWS API reference guide for AWS Storage Gateway's
   163  // API operation AddCache for usage and error information.
   164  //
   165  // Returned Error Types:
   166  //   * InvalidGatewayRequestException
   167  //   An exception occurred because an invalid gateway request was issued to the
   168  //   service. For more information, see the error and message fields.
   169  //
   170  //   * InternalServerError
   171  //   An internal server error has occurred during the request. For more information,
   172  //   see the error and message fields.
   173  //
   174  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddCache
   175  func (c *StorageGateway) AddCache(input *AddCacheInput) (*AddCacheOutput, error) {
   176  	req, out := c.AddCacheRequest(input)
   177  	return out, req.Send()
   178  }
   179  
   180  // AddCacheWithContext is the same as AddCache with the addition of
   181  // the ability to pass a context and additional request options.
   182  //
   183  // See AddCache for details on how to use this API operation.
   184  //
   185  // The context must be non-nil and will be used for request cancellation. If
   186  // the context is nil a panic will occur. In the future the SDK may create
   187  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   188  // for more information on using Contexts.
   189  func (c *StorageGateway) AddCacheWithContext(ctx aws.Context, input *AddCacheInput, opts ...request.Option) (*AddCacheOutput, error) {
   190  	req, out := c.AddCacheRequest(input)
   191  	req.SetContext(ctx)
   192  	req.ApplyOptions(opts...)
   193  	return out, req.Send()
   194  }
   195  
   196  const opAddTagsToResource = "AddTagsToResource"
   197  
   198  // AddTagsToResourceRequest generates a "aws/request.Request" representing the
   199  // client's request for the AddTagsToResource operation. The "output" return
   200  // value will be populated with the request's response once the request completes
   201  // successfully.
   202  //
   203  // Use "Send" method on the returned Request to send the API call to the service.
   204  // the "output" return value is not valid until after Send returns without error.
   205  //
   206  // See AddTagsToResource for more information on using the AddTagsToResource
   207  // API call, and error handling.
   208  //
   209  // This method is useful when you want to inject custom logic or configuration
   210  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   211  //
   212  //
   213  //    // Example sending a request using the AddTagsToResourceRequest method.
   214  //    req, resp := client.AddTagsToResourceRequest(params)
   215  //
   216  //    err := req.Send()
   217  //    if err == nil { // resp is now filled
   218  //        fmt.Println(resp)
   219  //    }
   220  //
   221  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddTagsToResource
   222  func (c *StorageGateway) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req *request.Request, output *AddTagsToResourceOutput) {
   223  	op := &request.Operation{
   224  		Name:       opAddTagsToResource,
   225  		HTTPMethod: "POST",
   226  		HTTPPath:   "/",
   227  	}
   228  
   229  	if input == nil {
   230  		input = &AddTagsToResourceInput{}
   231  	}
   232  
   233  	output = &AddTagsToResourceOutput{}
   234  	req = c.newRequest(op, input, output)
   235  	return
   236  }
   237  
   238  // AddTagsToResource API operation for AWS Storage Gateway.
   239  //
   240  // Adds one or more tags to the specified resource. You use tags to add metadata
   241  // to resources, which you can use to categorize these resources. For example,
   242  // you can categorize resources by purpose, owner, environment, or team. Each
   243  // tag consists of a key and a value, which you define. You can add tags to
   244  // the following Storage Gateway resources:
   245  //
   246  //    * Storage gateways of all types
   247  //
   248  //    * Storage volumes
   249  //
   250  //    * Virtual tapes
   251  //
   252  //    * NFS and SMB file shares
   253  //
   254  //    * File System associations
   255  //
   256  // You can create a maximum of 50 tags for each resource. Virtual tapes and
   257  // storage volumes that are recovered to a new gateway maintain their tags.
   258  //
   259  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   260  // with awserr.Error's Code and Message methods to get detailed information about
   261  // the error.
   262  //
   263  // See the AWS API reference guide for AWS Storage Gateway's
   264  // API operation AddTagsToResource for usage and error information.
   265  //
   266  // Returned Error Types:
   267  //   * InvalidGatewayRequestException
   268  //   An exception occurred because an invalid gateway request was issued to the
   269  //   service. For more information, see the error and message fields.
   270  //
   271  //   * InternalServerError
   272  //   An internal server error has occurred during the request. For more information,
   273  //   see the error and message fields.
   274  //
   275  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddTagsToResource
   276  func (c *StorageGateway) AddTagsToResource(input *AddTagsToResourceInput) (*AddTagsToResourceOutput, error) {
   277  	req, out := c.AddTagsToResourceRequest(input)
   278  	return out, req.Send()
   279  }
   280  
   281  // AddTagsToResourceWithContext is the same as AddTagsToResource with the addition of
   282  // the ability to pass a context and additional request options.
   283  //
   284  // See AddTagsToResource for details on how to use this API operation.
   285  //
   286  // The context must be non-nil and will be used for request cancellation. If
   287  // the context is nil a panic will occur. In the future the SDK may create
   288  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   289  // for more information on using Contexts.
   290  func (c *StorageGateway) AddTagsToResourceWithContext(ctx aws.Context, input *AddTagsToResourceInput, opts ...request.Option) (*AddTagsToResourceOutput, error) {
   291  	req, out := c.AddTagsToResourceRequest(input)
   292  	req.SetContext(ctx)
   293  	req.ApplyOptions(opts...)
   294  	return out, req.Send()
   295  }
   296  
   297  const opAddUploadBuffer = "AddUploadBuffer"
   298  
   299  // AddUploadBufferRequest generates a "aws/request.Request" representing the
   300  // client's request for the AddUploadBuffer operation. The "output" return
   301  // value will be populated with the request's response once the request completes
   302  // successfully.
   303  //
   304  // Use "Send" method on the returned Request to send the API call to the service.
   305  // the "output" return value is not valid until after Send returns without error.
   306  //
   307  // See AddUploadBuffer for more information on using the AddUploadBuffer
   308  // API call, and error handling.
   309  //
   310  // This method is useful when you want to inject custom logic or configuration
   311  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   312  //
   313  //
   314  //    // Example sending a request using the AddUploadBufferRequest method.
   315  //    req, resp := client.AddUploadBufferRequest(params)
   316  //
   317  //    err := req.Send()
   318  //    if err == nil { // resp is now filled
   319  //        fmt.Println(resp)
   320  //    }
   321  //
   322  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddUploadBuffer
   323  func (c *StorageGateway) AddUploadBufferRequest(input *AddUploadBufferInput) (req *request.Request, output *AddUploadBufferOutput) {
   324  	op := &request.Operation{
   325  		Name:       opAddUploadBuffer,
   326  		HTTPMethod: "POST",
   327  		HTTPPath:   "/",
   328  	}
   329  
   330  	if input == nil {
   331  		input = &AddUploadBufferInput{}
   332  	}
   333  
   334  	output = &AddUploadBufferOutput{}
   335  	req = c.newRequest(op, input, output)
   336  	return
   337  }
   338  
   339  // AddUploadBuffer API operation for AWS Storage Gateway.
   340  //
   341  // Configures one or more gateway local disks as upload buffer for a specified
   342  // gateway. This operation is supported for the stored volume, cached volume,
   343  // and tape gateway types.
   344  //
   345  // In the request, you specify the gateway Amazon Resource Name (ARN) to which
   346  // you want to add upload buffer, and one or more disk IDs that you want to
   347  // configure as upload buffer.
   348  //
   349  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   350  // with awserr.Error's Code and Message methods to get detailed information about
   351  // the error.
   352  //
   353  // See the AWS API reference guide for AWS Storage Gateway's
   354  // API operation AddUploadBuffer for usage and error information.
   355  //
   356  // Returned Error Types:
   357  //   * InvalidGatewayRequestException
   358  //   An exception occurred because an invalid gateway request was issued to the
   359  //   service. For more information, see the error and message fields.
   360  //
   361  //   * InternalServerError
   362  //   An internal server error has occurred during the request. For more information,
   363  //   see the error and message fields.
   364  //
   365  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddUploadBuffer
   366  func (c *StorageGateway) AddUploadBuffer(input *AddUploadBufferInput) (*AddUploadBufferOutput, error) {
   367  	req, out := c.AddUploadBufferRequest(input)
   368  	return out, req.Send()
   369  }
   370  
   371  // AddUploadBufferWithContext is the same as AddUploadBuffer with the addition of
   372  // the ability to pass a context and additional request options.
   373  //
   374  // See AddUploadBuffer for details on how to use this API operation.
   375  //
   376  // The context must be non-nil and will be used for request cancellation. If
   377  // the context is nil a panic will occur. In the future the SDK may create
   378  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   379  // for more information on using Contexts.
   380  func (c *StorageGateway) AddUploadBufferWithContext(ctx aws.Context, input *AddUploadBufferInput, opts ...request.Option) (*AddUploadBufferOutput, error) {
   381  	req, out := c.AddUploadBufferRequest(input)
   382  	req.SetContext(ctx)
   383  	req.ApplyOptions(opts...)
   384  	return out, req.Send()
   385  }
   386  
   387  const opAddWorkingStorage = "AddWorkingStorage"
   388  
   389  // AddWorkingStorageRequest generates a "aws/request.Request" representing the
   390  // client's request for the AddWorkingStorage operation. The "output" return
   391  // value will be populated with the request's response once the request completes
   392  // successfully.
   393  //
   394  // Use "Send" method on the returned Request to send the API call to the service.
   395  // the "output" return value is not valid until after Send returns without error.
   396  //
   397  // See AddWorkingStorage for more information on using the AddWorkingStorage
   398  // API call, and error handling.
   399  //
   400  // This method is useful when you want to inject custom logic or configuration
   401  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   402  //
   403  //
   404  //    // Example sending a request using the AddWorkingStorageRequest method.
   405  //    req, resp := client.AddWorkingStorageRequest(params)
   406  //
   407  //    err := req.Send()
   408  //    if err == nil { // resp is now filled
   409  //        fmt.Println(resp)
   410  //    }
   411  //
   412  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddWorkingStorage
   413  func (c *StorageGateway) AddWorkingStorageRequest(input *AddWorkingStorageInput) (req *request.Request, output *AddWorkingStorageOutput) {
   414  	op := &request.Operation{
   415  		Name:       opAddWorkingStorage,
   416  		HTTPMethod: "POST",
   417  		HTTPPath:   "/",
   418  	}
   419  
   420  	if input == nil {
   421  		input = &AddWorkingStorageInput{}
   422  	}
   423  
   424  	output = &AddWorkingStorageOutput{}
   425  	req = c.newRequest(op, input, output)
   426  	return
   427  }
   428  
   429  // AddWorkingStorage API operation for AWS Storage Gateway.
   430  //
   431  // Configures one or more gateway local disks as working storage for a gateway.
   432  // This operation is only supported in the stored volume gateway type. This
   433  // operation is deprecated in cached volume API version 20120630. Use AddUploadBuffer
   434  // instead.
   435  //
   436  // Working storage is also referred to as upload buffer. You can also use the
   437  // AddUploadBuffer operation to add upload buffer to a stored volume gateway.
   438  //
   439  // In the request, you specify the gateway Amazon Resource Name (ARN) to which
   440  // you want to add working storage, and one or more disk IDs that you want to
   441  // configure as working storage.
   442  //
   443  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   444  // with awserr.Error's Code and Message methods to get detailed information about
   445  // the error.
   446  //
   447  // See the AWS API reference guide for AWS Storage Gateway's
   448  // API operation AddWorkingStorage for usage and error information.
   449  //
   450  // Returned Error Types:
   451  //   * InvalidGatewayRequestException
   452  //   An exception occurred because an invalid gateway request was issued to the
   453  //   service. For more information, see the error and message fields.
   454  //
   455  //   * InternalServerError
   456  //   An internal server error has occurred during the request. For more information,
   457  //   see the error and message fields.
   458  //
   459  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddWorkingStorage
   460  func (c *StorageGateway) AddWorkingStorage(input *AddWorkingStorageInput) (*AddWorkingStorageOutput, error) {
   461  	req, out := c.AddWorkingStorageRequest(input)
   462  	return out, req.Send()
   463  }
   464  
   465  // AddWorkingStorageWithContext is the same as AddWorkingStorage with the addition of
   466  // the ability to pass a context and additional request options.
   467  //
   468  // See AddWorkingStorage for details on how to use this API operation.
   469  //
   470  // The context must be non-nil and will be used for request cancellation. If
   471  // the context is nil a panic will occur. In the future the SDK may create
   472  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   473  // for more information on using Contexts.
   474  func (c *StorageGateway) AddWorkingStorageWithContext(ctx aws.Context, input *AddWorkingStorageInput, opts ...request.Option) (*AddWorkingStorageOutput, error) {
   475  	req, out := c.AddWorkingStorageRequest(input)
   476  	req.SetContext(ctx)
   477  	req.ApplyOptions(opts...)
   478  	return out, req.Send()
   479  }
   480  
   481  const opAssignTapePool = "AssignTapePool"
   482  
   483  // AssignTapePoolRequest generates a "aws/request.Request" representing the
   484  // client's request for the AssignTapePool operation. The "output" return
   485  // value will be populated with the request's response once the request completes
   486  // successfully.
   487  //
   488  // Use "Send" method on the returned Request to send the API call to the service.
   489  // the "output" return value is not valid until after Send returns without error.
   490  //
   491  // See AssignTapePool for more information on using the AssignTapePool
   492  // API call, and error handling.
   493  //
   494  // This method is useful when you want to inject custom logic or configuration
   495  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   496  //
   497  //
   498  //    // Example sending a request using the AssignTapePoolRequest method.
   499  //    req, resp := client.AssignTapePoolRequest(params)
   500  //
   501  //    err := req.Send()
   502  //    if err == nil { // resp is now filled
   503  //        fmt.Println(resp)
   504  //    }
   505  //
   506  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AssignTapePool
   507  func (c *StorageGateway) AssignTapePoolRequest(input *AssignTapePoolInput) (req *request.Request, output *AssignTapePoolOutput) {
   508  	op := &request.Operation{
   509  		Name:       opAssignTapePool,
   510  		HTTPMethod: "POST",
   511  		HTTPPath:   "/",
   512  	}
   513  
   514  	if input == nil {
   515  		input = &AssignTapePoolInput{}
   516  	}
   517  
   518  	output = &AssignTapePoolOutput{}
   519  	req = c.newRequest(op, input, output)
   520  	return
   521  }
   522  
   523  // AssignTapePool API operation for AWS Storage Gateway.
   524  //
   525  // Assigns a tape to a tape pool for archiving. The tape assigned to a pool
   526  // is archived in the S3 storage class that is associated with the pool. When
   527  // you use your backup application to eject the tape, the tape is archived directly
   528  // into the S3 storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds
   529  // to the pool.
   530  //
   531  // Valid Values: GLACIER | DEEP_ARCHIVE
   532  //
   533  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   534  // with awserr.Error's Code and Message methods to get detailed information about
   535  // the error.
   536  //
   537  // See the AWS API reference guide for AWS Storage Gateway's
   538  // API operation AssignTapePool for usage and error information.
   539  //
   540  // Returned Error Types:
   541  //   * InvalidGatewayRequestException
   542  //   An exception occurred because an invalid gateway request was issued to the
   543  //   service. For more information, see the error and message fields.
   544  //
   545  //   * InternalServerError
   546  //   An internal server error has occurred during the request. For more information,
   547  //   see the error and message fields.
   548  //
   549  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AssignTapePool
   550  func (c *StorageGateway) AssignTapePool(input *AssignTapePoolInput) (*AssignTapePoolOutput, error) {
   551  	req, out := c.AssignTapePoolRequest(input)
   552  	return out, req.Send()
   553  }
   554  
   555  // AssignTapePoolWithContext is the same as AssignTapePool with the addition of
   556  // the ability to pass a context and additional request options.
   557  //
   558  // See AssignTapePool for details on how to use this API operation.
   559  //
   560  // The context must be non-nil and will be used for request cancellation. If
   561  // the context is nil a panic will occur. In the future the SDK may create
   562  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   563  // for more information on using Contexts.
   564  func (c *StorageGateway) AssignTapePoolWithContext(ctx aws.Context, input *AssignTapePoolInput, opts ...request.Option) (*AssignTapePoolOutput, error) {
   565  	req, out := c.AssignTapePoolRequest(input)
   566  	req.SetContext(ctx)
   567  	req.ApplyOptions(opts...)
   568  	return out, req.Send()
   569  }
   570  
   571  const opAssociateFileSystem = "AssociateFileSystem"
   572  
   573  // AssociateFileSystemRequest generates a "aws/request.Request" representing the
   574  // client's request for the AssociateFileSystem operation. The "output" return
   575  // value will be populated with the request's response once the request completes
   576  // successfully.
   577  //
   578  // Use "Send" method on the returned Request to send the API call to the service.
   579  // the "output" return value is not valid until after Send returns without error.
   580  //
   581  // See AssociateFileSystem for more information on using the AssociateFileSystem
   582  // API call, and error handling.
   583  //
   584  // This method is useful when you want to inject custom logic or configuration
   585  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   586  //
   587  //
   588  //    // Example sending a request using the AssociateFileSystemRequest method.
   589  //    req, resp := client.AssociateFileSystemRequest(params)
   590  //
   591  //    err := req.Send()
   592  //    if err == nil { // resp is now filled
   593  //        fmt.Println(resp)
   594  //    }
   595  //
   596  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AssociateFileSystem
   597  func (c *StorageGateway) AssociateFileSystemRequest(input *AssociateFileSystemInput) (req *request.Request, output *AssociateFileSystemOutput) {
   598  	op := &request.Operation{
   599  		Name:       opAssociateFileSystem,
   600  		HTTPMethod: "POST",
   601  		HTTPPath:   "/",
   602  	}
   603  
   604  	if input == nil {
   605  		input = &AssociateFileSystemInput{}
   606  	}
   607  
   608  	output = &AssociateFileSystemOutput{}
   609  	req = c.newRequest(op, input, output)
   610  	return
   611  }
   612  
   613  // AssociateFileSystem API operation for AWS Storage Gateway.
   614  //
   615  // Associate an Amazon FSx file system with the FSx File Gateway. After the
   616  // association process is complete, the file shares on the Amazon FSx file system
   617  // are available for access through the gateway. This operation only supports
   618  // the FSx File Gateway type.
   619  //
   620  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   621  // with awserr.Error's Code and Message methods to get detailed information about
   622  // the error.
   623  //
   624  // See the AWS API reference guide for AWS Storage Gateway's
   625  // API operation AssociateFileSystem for usage and error information.
   626  //
   627  // Returned Error Types:
   628  //   * InvalidGatewayRequestException
   629  //   An exception occurred because an invalid gateway request was issued to the
   630  //   service. For more information, see the error and message fields.
   631  //
   632  //   * InternalServerError
   633  //   An internal server error has occurred during the request. For more information,
   634  //   see the error and message fields.
   635  //
   636  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AssociateFileSystem
   637  func (c *StorageGateway) AssociateFileSystem(input *AssociateFileSystemInput) (*AssociateFileSystemOutput, error) {
   638  	req, out := c.AssociateFileSystemRequest(input)
   639  	return out, req.Send()
   640  }
   641  
   642  // AssociateFileSystemWithContext is the same as AssociateFileSystem with the addition of
   643  // the ability to pass a context and additional request options.
   644  //
   645  // See AssociateFileSystem for details on how to use this API operation.
   646  //
   647  // The context must be non-nil and will be used for request cancellation. If
   648  // the context is nil a panic will occur. In the future the SDK may create
   649  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   650  // for more information on using Contexts.
   651  func (c *StorageGateway) AssociateFileSystemWithContext(ctx aws.Context, input *AssociateFileSystemInput, opts ...request.Option) (*AssociateFileSystemOutput, error) {
   652  	req, out := c.AssociateFileSystemRequest(input)
   653  	req.SetContext(ctx)
   654  	req.ApplyOptions(opts...)
   655  	return out, req.Send()
   656  }
   657  
   658  const opAttachVolume = "AttachVolume"
   659  
   660  // AttachVolumeRequest generates a "aws/request.Request" representing the
   661  // client's request for the AttachVolume operation. The "output" return
   662  // value will be populated with the request's response once the request completes
   663  // successfully.
   664  //
   665  // Use "Send" method on the returned Request to send the API call to the service.
   666  // the "output" return value is not valid until after Send returns without error.
   667  //
   668  // See AttachVolume for more information on using the AttachVolume
   669  // API call, and error handling.
   670  //
   671  // This method is useful when you want to inject custom logic or configuration
   672  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   673  //
   674  //
   675  //    // Example sending a request using the AttachVolumeRequest method.
   676  //    req, resp := client.AttachVolumeRequest(params)
   677  //
   678  //    err := req.Send()
   679  //    if err == nil { // resp is now filled
   680  //        fmt.Println(resp)
   681  //    }
   682  //
   683  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AttachVolume
   684  func (c *StorageGateway) AttachVolumeRequest(input *AttachVolumeInput) (req *request.Request, output *AttachVolumeOutput) {
   685  	op := &request.Operation{
   686  		Name:       opAttachVolume,
   687  		HTTPMethod: "POST",
   688  		HTTPPath:   "/",
   689  	}
   690  
   691  	if input == nil {
   692  		input = &AttachVolumeInput{}
   693  	}
   694  
   695  	output = &AttachVolumeOutput{}
   696  	req = c.newRequest(op, input, output)
   697  	return
   698  }
   699  
   700  // AttachVolume API operation for AWS Storage Gateway.
   701  //
   702  // Connects a volume to an iSCSI connection and then attaches the volume to
   703  // the specified gateway. Detaching and attaching a volume enables you to recover
   704  // your data from one gateway to a different gateway without creating a snapshot.
   705  // It also makes it easier to move your volumes from an on-premises gateway
   706  // to a gateway hosted on an Amazon EC2 instance.
   707  //
   708  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   709  // with awserr.Error's Code and Message methods to get detailed information about
   710  // the error.
   711  //
   712  // See the AWS API reference guide for AWS Storage Gateway's
   713  // API operation AttachVolume for usage and error information.
   714  //
   715  // Returned Error Types:
   716  //   * InvalidGatewayRequestException
   717  //   An exception occurred because an invalid gateway request was issued to the
   718  //   service. For more information, see the error and message fields.
   719  //
   720  //   * InternalServerError
   721  //   An internal server error has occurred during the request. For more information,
   722  //   see the error and message fields.
   723  //
   724  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AttachVolume
   725  func (c *StorageGateway) AttachVolume(input *AttachVolumeInput) (*AttachVolumeOutput, error) {
   726  	req, out := c.AttachVolumeRequest(input)
   727  	return out, req.Send()
   728  }
   729  
   730  // AttachVolumeWithContext is the same as AttachVolume with the addition of
   731  // the ability to pass a context and additional request options.
   732  //
   733  // See AttachVolume for details on how to use this API operation.
   734  //
   735  // The context must be non-nil and will be used for request cancellation. If
   736  // the context is nil a panic will occur. In the future the SDK may create
   737  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   738  // for more information on using Contexts.
   739  func (c *StorageGateway) AttachVolumeWithContext(ctx aws.Context, input *AttachVolumeInput, opts ...request.Option) (*AttachVolumeOutput, error) {
   740  	req, out := c.AttachVolumeRequest(input)
   741  	req.SetContext(ctx)
   742  	req.ApplyOptions(opts...)
   743  	return out, req.Send()
   744  }
   745  
   746  const opCancelArchival = "CancelArchival"
   747  
   748  // CancelArchivalRequest generates a "aws/request.Request" representing the
   749  // client's request for the CancelArchival operation. The "output" return
   750  // value will be populated with the request's response once the request completes
   751  // successfully.
   752  //
   753  // Use "Send" method on the returned Request to send the API call to the service.
   754  // the "output" return value is not valid until after Send returns without error.
   755  //
   756  // See CancelArchival for more information on using the CancelArchival
   757  // API call, and error handling.
   758  //
   759  // This method is useful when you want to inject custom logic or configuration
   760  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   761  //
   762  //
   763  //    // Example sending a request using the CancelArchivalRequest method.
   764  //    req, resp := client.CancelArchivalRequest(params)
   765  //
   766  //    err := req.Send()
   767  //    if err == nil { // resp is now filled
   768  //        fmt.Println(resp)
   769  //    }
   770  //
   771  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelArchival
   772  func (c *StorageGateway) CancelArchivalRequest(input *CancelArchivalInput) (req *request.Request, output *CancelArchivalOutput) {
   773  	op := &request.Operation{
   774  		Name:       opCancelArchival,
   775  		HTTPMethod: "POST",
   776  		HTTPPath:   "/",
   777  	}
   778  
   779  	if input == nil {
   780  		input = &CancelArchivalInput{}
   781  	}
   782  
   783  	output = &CancelArchivalOutput{}
   784  	req = c.newRequest(op, input, output)
   785  	return
   786  }
   787  
   788  // CancelArchival API operation for AWS Storage Gateway.
   789  //
   790  // Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after
   791  // the archiving process is initiated. This operation is only supported in the
   792  // tape gateway type.
   793  //
   794  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   795  // with awserr.Error's Code and Message methods to get detailed information about
   796  // the error.
   797  //
   798  // See the AWS API reference guide for AWS Storage Gateway's
   799  // API operation CancelArchival for usage and error information.
   800  //
   801  // Returned Error Types:
   802  //   * InvalidGatewayRequestException
   803  //   An exception occurred because an invalid gateway request was issued to the
   804  //   service. For more information, see the error and message fields.
   805  //
   806  //   * InternalServerError
   807  //   An internal server error has occurred during the request. For more information,
   808  //   see the error and message fields.
   809  //
   810  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelArchival
   811  func (c *StorageGateway) CancelArchival(input *CancelArchivalInput) (*CancelArchivalOutput, error) {
   812  	req, out := c.CancelArchivalRequest(input)
   813  	return out, req.Send()
   814  }
   815  
   816  // CancelArchivalWithContext is the same as CancelArchival with the addition of
   817  // the ability to pass a context and additional request options.
   818  //
   819  // See CancelArchival for details on how to use this API operation.
   820  //
   821  // The context must be non-nil and will be used for request cancellation. If
   822  // the context is nil a panic will occur. In the future the SDK may create
   823  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   824  // for more information on using Contexts.
   825  func (c *StorageGateway) CancelArchivalWithContext(ctx aws.Context, input *CancelArchivalInput, opts ...request.Option) (*CancelArchivalOutput, error) {
   826  	req, out := c.CancelArchivalRequest(input)
   827  	req.SetContext(ctx)
   828  	req.ApplyOptions(opts...)
   829  	return out, req.Send()
   830  }
   831  
   832  const opCancelRetrieval = "CancelRetrieval"
   833  
   834  // CancelRetrievalRequest generates a "aws/request.Request" representing the
   835  // client's request for the CancelRetrieval operation. The "output" return
   836  // value will be populated with the request's response once the request completes
   837  // successfully.
   838  //
   839  // Use "Send" method on the returned Request to send the API call to the service.
   840  // the "output" return value is not valid until after Send returns without error.
   841  //
   842  // See CancelRetrieval for more information on using the CancelRetrieval
   843  // API call, and error handling.
   844  //
   845  // This method is useful when you want to inject custom logic or configuration
   846  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   847  //
   848  //
   849  //    // Example sending a request using the CancelRetrievalRequest method.
   850  //    req, resp := client.CancelRetrievalRequest(params)
   851  //
   852  //    err := req.Send()
   853  //    if err == nil { // resp is now filled
   854  //        fmt.Println(resp)
   855  //    }
   856  //
   857  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelRetrieval
   858  func (c *StorageGateway) CancelRetrievalRequest(input *CancelRetrievalInput) (req *request.Request, output *CancelRetrievalOutput) {
   859  	op := &request.Operation{
   860  		Name:       opCancelRetrieval,
   861  		HTTPMethod: "POST",
   862  		HTTPPath:   "/",
   863  	}
   864  
   865  	if input == nil {
   866  		input = &CancelRetrievalInput{}
   867  	}
   868  
   869  	output = &CancelRetrievalOutput{}
   870  	req = c.newRequest(op, input, output)
   871  	return
   872  }
   873  
   874  // CancelRetrieval API operation for AWS Storage Gateway.
   875  //
   876  // Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to
   877  // a gateway after the retrieval process is initiated. The virtual tape is returned
   878  // to the VTS. This operation is only supported in the tape gateway type.
   879  //
   880  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   881  // with awserr.Error's Code and Message methods to get detailed information about
   882  // the error.
   883  //
   884  // See the AWS API reference guide for AWS Storage Gateway's
   885  // API operation CancelRetrieval for usage and error information.
   886  //
   887  // Returned Error Types:
   888  //   * InvalidGatewayRequestException
   889  //   An exception occurred because an invalid gateway request was issued to the
   890  //   service. For more information, see the error and message fields.
   891  //
   892  //   * InternalServerError
   893  //   An internal server error has occurred during the request. For more information,
   894  //   see the error and message fields.
   895  //
   896  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelRetrieval
   897  func (c *StorageGateway) CancelRetrieval(input *CancelRetrievalInput) (*CancelRetrievalOutput, error) {
   898  	req, out := c.CancelRetrievalRequest(input)
   899  	return out, req.Send()
   900  }
   901  
   902  // CancelRetrievalWithContext is the same as CancelRetrieval with the addition of
   903  // the ability to pass a context and additional request options.
   904  //
   905  // See CancelRetrieval for details on how to use this API operation.
   906  //
   907  // The context must be non-nil and will be used for request cancellation. If
   908  // the context is nil a panic will occur. In the future the SDK may create
   909  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   910  // for more information on using Contexts.
   911  func (c *StorageGateway) CancelRetrievalWithContext(ctx aws.Context, input *CancelRetrievalInput, opts ...request.Option) (*CancelRetrievalOutput, error) {
   912  	req, out := c.CancelRetrievalRequest(input)
   913  	req.SetContext(ctx)
   914  	req.ApplyOptions(opts...)
   915  	return out, req.Send()
   916  }
   917  
   918  const opCreateCachediSCSIVolume = "CreateCachediSCSIVolume"
   919  
   920  // CreateCachediSCSIVolumeRequest generates a "aws/request.Request" representing the
   921  // client's request for the CreateCachediSCSIVolume operation. The "output" return
   922  // value will be populated with the request's response once the request completes
   923  // successfully.
   924  //
   925  // Use "Send" method on the returned Request to send the API call to the service.
   926  // the "output" return value is not valid until after Send returns without error.
   927  //
   928  // See CreateCachediSCSIVolume for more information on using the CreateCachediSCSIVolume
   929  // API call, and error handling.
   930  //
   931  // This method is useful when you want to inject custom logic or configuration
   932  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   933  //
   934  //
   935  //    // Example sending a request using the CreateCachediSCSIVolumeRequest method.
   936  //    req, resp := client.CreateCachediSCSIVolumeRequest(params)
   937  //
   938  //    err := req.Send()
   939  //    if err == nil { // resp is now filled
   940  //        fmt.Println(resp)
   941  //    }
   942  //
   943  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateCachediSCSIVolume
   944  func (c *StorageGateway) CreateCachediSCSIVolumeRequest(input *CreateCachediSCSIVolumeInput) (req *request.Request, output *CreateCachediSCSIVolumeOutput) {
   945  	op := &request.Operation{
   946  		Name:       opCreateCachediSCSIVolume,
   947  		HTTPMethod: "POST",
   948  		HTTPPath:   "/",
   949  	}
   950  
   951  	if input == nil {
   952  		input = &CreateCachediSCSIVolumeInput{}
   953  	}
   954  
   955  	output = &CreateCachediSCSIVolumeOutput{}
   956  	req = c.newRequest(op, input, output)
   957  	return
   958  }
   959  
   960  // CreateCachediSCSIVolume API operation for AWS Storage Gateway.
   961  //
   962  // Creates a cached volume on a specified cached volume gateway. This operation
   963  // is only supported in the cached volume gateway type.
   964  //
   965  // Cache storage must be allocated to the gateway before you can create a cached
   966  // volume. Use the AddCache operation to add cache storage to a gateway.
   967  //
   968  // In the request, you must specify the gateway, size of the volume in bytes,
   969  // the iSCSI target name, an IP address on which to expose the target, and a
   970  // unique client token. In response, the gateway creates the volume and returns
   971  // information about it. This information includes the volume Amazon Resource
   972  // Name (ARN), its size, and the iSCSI target ARN that initiators can use to
   973  // connect to the volume target.
   974  //
   975  // Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN
   976  // for this cached volume, which creates an exact copy of the existing volume’s
   977  // latest recovery point. The VolumeSizeInBytes value must be equal to or larger
   978  // than the size of the copied volume, in bytes.
   979  //
   980  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   981  // with awserr.Error's Code and Message methods to get detailed information about
   982  // the error.
   983  //
   984  // See the AWS API reference guide for AWS Storage Gateway's
   985  // API operation CreateCachediSCSIVolume for usage and error information.
   986  //
   987  // Returned Error Types:
   988  //   * InvalidGatewayRequestException
   989  //   An exception occurred because an invalid gateway request was issued to the
   990  //   service. For more information, see the error and message fields.
   991  //
   992  //   * InternalServerError
   993  //   An internal server error has occurred during the request. For more information,
   994  //   see the error and message fields.
   995  //
   996  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateCachediSCSIVolume
   997  func (c *StorageGateway) CreateCachediSCSIVolume(input *CreateCachediSCSIVolumeInput) (*CreateCachediSCSIVolumeOutput, error) {
   998  	req, out := c.CreateCachediSCSIVolumeRequest(input)
   999  	return out, req.Send()
  1000  }
  1001  
  1002  // CreateCachediSCSIVolumeWithContext is the same as CreateCachediSCSIVolume with the addition of
  1003  // the ability to pass a context and additional request options.
  1004  //
  1005  // See CreateCachediSCSIVolume for details on how to use this API operation.
  1006  //
  1007  // The context must be non-nil and will be used for request cancellation. If
  1008  // the context is nil a panic will occur. In the future the SDK may create
  1009  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1010  // for more information on using Contexts.
  1011  func (c *StorageGateway) CreateCachediSCSIVolumeWithContext(ctx aws.Context, input *CreateCachediSCSIVolumeInput, opts ...request.Option) (*CreateCachediSCSIVolumeOutput, error) {
  1012  	req, out := c.CreateCachediSCSIVolumeRequest(input)
  1013  	req.SetContext(ctx)
  1014  	req.ApplyOptions(opts...)
  1015  	return out, req.Send()
  1016  }
  1017  
  1018  const opCreateNFSFileShare = "CreateNFSFileShare"
  1019  
  1020  // CreateNFSFileShareRequest generates a "aws/request.Request" representing the
  1021  // client's request for the CreateNFSFileShare operation. The "output" return
  1022  // value will be populated with the request's response once the request completes
  1023  // successfully.
  1024  //
  1025  // Use "Send" method on the returned Request to send the API call to the service.
  1026  // the "output" return value is not valid until after Send returns without error.
  1027  //
  1028  // See CreateNFSFileShare for more information on using the CreateNFSFileShare
  1029  // API call, and error handling.
  1030  //
  1031  // This method is useful when you want to inject custom logic or configuration
  1032  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1033  //
  1034  //
  1035  //    // Example sending a request using the CreateNFSFileShareRequest method.
  1036  //    req, resp := client.CreateNFSFileShareRequest(params)
  1037  //
  1038  //    err := req.Send()
  1039  //    if err == nil { // resp is now filled
  1040  //        fmt.Println(resp)
  1041  //    }
  1042  //
  1043  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateNFSFileShare
  1044  func (c *StorageGateway) CreateNFSFileShareRequest(input *CreateNFSFileShareInput) (req *request.Request, output *CreateNFSFileShareOutput) {
  1045  	op := &request.Operation{
  1046  		Name:       opCreateNFSFileShare,
  1047  		HTTPMethod: "POST",
  1048  		HTTPPath:   "/",
  1049  	}
  1050  
  1051  	if input == nil {
  1052  		input = &CreateNFSFileShareInput{}
  1053  	}
  1054  
  1055  	output = &CreateNFSFileShareOutput{}
  1056  	req = c.newRequest(op, input, output)
  1057  	return
  1058  }
  1059  
  1060  // CreateNFSFileShare API operation for AWS Storage Gateway.
  1061  //
  1062  // Creates a Network File System (NFS) file share on an existing S3 File Gateway.
  1063  // In Storage Gateway, a file share is a file system mount point backed by Amazon
  1064  // S3 cloud storage. Storage Gateway exposes file shares using an NFS interface.
  1065  // This operation is only supported for S3 File Gateways.
  1066  //
  1067  // S3 File gateway requires Security Token Service (STS) to be activated to
  1068  // enable you to create a file share. Make sure STS is activated in the Region
  1069  // you are creating your S3 File Gateway in. If STS is not activated in the
  1070  // Region, activate it. For information about how to activate STS, see Activating
  1071  // and deactivating STS in an Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
  1072  // in the Identity and Access Management User Guide.
  1073  //
  1074  // S3 File Gateways do not support creating hard or symbolic links on a file
  1075  // share.
  1076  //
  1077  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1078  // with awserr.Error's Code and Message methods to get detailed information about
  1079  // the error.
  1080  //
  1081  // See the AWS API reference guide for AWS Storage Gateway's
  1082  // API operation CreateNFSFileShare for usage and error information.
  1083  //
  1084  // Returned Error Types:
  1085  //   * InvalidGatewayRequestException
  1086  //   An exception occurred because an invalid gateway request was issued to the
  1087  //   service. For more information, see the error and message fields.
  1088  //
  1089  //   * InternalServerError
  1090  //   An internal server error has occurred during the request. For more information,
  1091  //   see the error and message fields.
  1092  //
  1093  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateNFSFileShare
  1094  func (c *StorageGateway) CreateNFSFileShare(input *CreateNFSFileShareInput) (*CreateNFSFileShareOutput, error) {
  1095  	req, out := c.CreateNFSFileShareRequest(input)
  1096  	return out, req.Send()
  1097  }
  1098  
  1099  // CreateNFSFileShareWithContext is the same as CreateNFSFileShare with the addition of
  1100  // the ability to pass a context and additional request options.
  1101  //
  1102  // See CreateNFSFileShare for details on how to use this API operation.
  1103  //
  1104  // The context must be non-nil and will be used for request cancellation. If
  1105  // the context is nil a panic will occur. In the future the SDK may create
  1106  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1107  // for more information on using Contexts.
  1108  func (c *StorageGateway) CreateNFSFileShareWithContext(ctx aws.Context, input *CreateNFSFileShareInput, opts ...request.Option) (*CreateNFSFileShareOutput, error) {
  1109  	req, out := c.CreateNFSFileShareRequest(input)
  1110  	req.SetContext(ctx)
  1111  	req.ApplyOptions(opts...)
  1112  	return out, req.Send()
  1113  }
  1114  
  1115  const opCreateSMBFileShare = "CreateSMBFileShare"
  1116  
  1117  // CreateSMBFileShareRequest generates a "aws/request.Request" representing the
  1118  // client's request for the CreateSMBFileShare operation. The "output" return
  1119  // value will be populated with the request's response once the request completes
  1120  // successfully.
  1121  //
  1122  // Use "Send" method on the returned Request to send the API call to the service.
  1123  // the "output" return value is not valid until after Send returns without error.
  1124  //
  1125  // See CreateSMBFileShare for more information on using the CreateSMBFileShare
  1126  // API call, and error handling.
  1127  //
  1128  // This method is useful when you want to inject custom logic or configuration
  1129  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1130  //
  1131  //
  1132  //    // Example sending a request using the CreateSMBFileShareRequest method.
  1133  //    req, resp := client.CreateSMBFileShareRequest(params)
  1134  //
  1135  //    err := req.Send()
  1136  //    if err == nil { // resp is now filled
  1137  //        fmt.Println(resp)
  1138  //    }
  1139  //
  1140  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSMBFileShare
  1141  func (c *StorageGateway) CreateSMBFileShareRequest(input *CreateSMBFileShareInput) (req *request.Request, output *CreateSMBFileShareOutput) {
  1142  	op := &request.Operation{
  1143  		Name:       opCreateSMBFileShare,
  1144  		HTTPMethod: "POST",
  1145  		HTTPPath:   "/",
  1146  	}
  1147  
  1148  	if input == nil {
  1149  		input = &CreateSMBFileShareInput{}
  1150  	}
  1151  
  1152  	output = &CreateSMBFileShareOutput{}
  1153  	req = c.newRequest(op, input, output)
  1154  	return
  1155  }
  1156  
  1157  // CreateSMBFileShare API operation for AWS Storage Gateway.
  1158  //
  1159  // Creates a Server Message Block (SMB) file share on an existing S3 File Gateway.
  1160  // In Storage Gateway, a file share is a file system mount point backed by Amazon
  1161  // S3 cloud storage. Storage Gateway exposes file shares using an SMB interface.
  1162  // This operation is only supported for S3 File Gateways.
  1163  //
  1164  // S3 File Gateways require Security Token Service (STS) to be activated to
  1165  // enable you to create a file share. Make sure that STS is activated in the
  1166  // Region you are creating your S3 File Gateway in. If STS is not activated
  1167  // in this Region, activate it. For information about how to activate STS, see
  1168  // Activating and deactivating STS in an Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
  1169  // in the Identity and Access Management User Guide.
  1170  //
  1171  // File gateways don't support creating hard or symbolic links on a file share.
  1172  //
  1173  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1174  // with awserr.Error's Code and Message methods to get detailed information about
  1175  // the error.
  1176  //
  1177  // See the AWS API reference guide for AWS Storage Gateway's
  1178  // API operation CreateSMBFileShare for usage and error information.
  1179  //
  1180  // Returned Error Types:
  1181  //   * InvalidGatewayRequestException
  1182  //   An exception occurred because an invalid gateway request was issued to the
  1183  //   service. For more information, see the error and message fields.
  1184  //
  1185  //   * InternalServerError
  1186  //   An internal server error has occurred during the request. For more information,
  1187  //   see the error and message fields.
  1188  //
  1189  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSMBFileShare
  1190  func (c *StorageGateway) CreateSMBFileShare(input *CreateSMBFileShareInput) (*CreateSMBFileShareOutput, error) {
  1191  	req, out := c.CreateSMBFileShareRequest(input)
  1192  	return out, req.Send()
  1193  }
  1194  
  1195  // CreateSMBFileShareWithContext is the same as CreateSMBFileShare with the addition of
  1196  // the ability to pass a context and additional request options.
  1197  //
  1198  // See CreateSMBFileShare for details on how to use this API operation.
  1199  //
  1200  // The context must be non-nil and will be used for request cancellation. If
  1201  // the context is nil a panic will occur. In the future the SDK may create
  1202  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1203  // for more information on using Contexts.
  1204  func (c *StorageGateway) CreateSMBFileShareWithContext(ctx aws.Context, input *CreateSMBFileShareInput, opts ...request.Option) (*CreateSMBFileShareOutput, error) {
  1205  	req, out := c.CreateSMBFileShareRequest(input)
  1206  	req.SetContext(ctx)
  1207  	req.ApplyOptions(opts...)
  1208  	return out, req.Send()
  1209  }
  1210  
  1211  const opCreateSnapshot = "CreateSnapshot"
  1212  
  1213  // CreateSnapshotRequest generates a "aws/request.Request" representing the
  1214  // client's request for the CreateSnapshot operation. The "output" return
  1215  // value will be populated with the request's response once the request completes
  1216  // successfully.
  1217  //
  1218  // Use "Send" method on the returned Request to send the API call to the service.
  1219  // the "output" return value is not valid until after Send returns without error.
  1220  //
  1221  // See CreateSnapshot for more information on using the CreateSnapshot
  1222  // API call, and error handling.
  1223  //
  1224  // This method is useful when you want to inject custom logic or configuration
  1225  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1226  //
  1227  //
  1228  //    // Example sending a request using the CreateSnapshotRequest method.
  1229  //    req, resp := client.CreateSnapshotRequest(params)
  1230  //
  1231  //    err := req.Send()
  1232  //    if err == nil { // resp is now filled
  1233  //        fmt.Println(resp)
  1234  //    }
  1235  //
  1236  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshot
  1237  func (c *StorageGateway) CreateSnapshotRequest(input *CreateSnapshotInput) (req *request.Request, output *CreateSnapshotOutput) {
  1238  	op := &request.Operation{
  1239  		Name:       opCreateSnapshot,
  1240  		HTTPMethod: "POST",
  1241  		HTTPPath:   "/",
  1242  	}
  1243  
  1244  	if input == nil {
  1245  		input = &CreateSnapshotInput{}
  1246  	}
  1247  
  1248  	output = &CreateSnapshotOutput{}
  1249  	req = c.newRequest(op, input, output)
  1250  	return
  1251  }
  1252  
  1253  // CreateSnapshot API operation for AWS Storage Gateway.
  1254  //
  1255  // Initiates a snapshot of a volume.
  1256  //
  1257  // Storage Gateway provides the ability to back up point-in-time snapshots of
  1258  // your data to Amazon Simple Storage (Amazon S3) for durable off-site recovery,
  1259  // and also import the data to an Amazon Elastic Block Store (EBS) volume in
  1260  // Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway
  1261  // volume on a scheduled or ad hoc basis. This API enables you to take an ad
  1262  // hoc snapshot. For more information, see Editing a snapshot schedule (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#SchedulingSnapshot).
  1263  //
  1264  // In the CreateSnapshot request, you identify the volume by providing its Amazon
  1265  // Resource Name (ARN). You must also provide description for the snapshot.
  1266  // When Storage Gateway takes the snapshot of specified volume, the snapshot
  1267  // and description appears in the Storage Gateway console. In response, Storage
  1268  // Gateway returns you a snapshot ID. You can use this snapshot ID to check
  1269  // the snapshot progress or later use it when you want to create a volume from
  1270  // a snapshot. This operation is only supported in stored and cached volume
  1271  // gateway type.
  1272  //
  1273  // To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
  1274  // see DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html)
  1275  // or DeleteSnapshot (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html)
  1276  // in the Amazon Elastic Compute Cloud API Reference.
  1277  //
  1278  // Volume and snapshot IDs are changing to a longer length ID format. For more
  1279  // information, see the important note on the Welcome (https://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html)
  1280  // page.
  1281  //
  1282  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1283  // with awserr.Error's Code and Message methods to get detailed information about
  1284  // the error.
  1285  //
  1286  // See the AWS API reference guide for AWS Storage Gateway's
  1287  // API operation CreateSnapshot for usage and error information.
  1288  //
  1289  // Returned Error Types:
  1290  //   * InvalidGatewayRequestException
  1291  //   An exception occurred because an invalid gateway request was issued to the
  1292  //   service. For more information, see the error and message fields.
  1293  //
  1294  //   * InternalServerError
  1295  //   An internal server error has occurred during the request. For more information,
  1296  //   see the error and message fields.
  1297  //
  1298  //   * ServiceUnavailableError
  1299  //   An internal server error has occurred because the service is unavailable.
  1300  //   For more information, see the error and message fields.
  1301  //
  1302  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshot
  1303  func (c *StorageGateway) CreateSnapshot(input *CreateSnapshotInput) (*CreateSnapshotOutput, error) {
  1304  	req, out := c.CreateSnapshotRequest(input)
  1305  	return out, req.Send()
  1306  }
  1307  
  1308  // CreateSnapshotWithContext is the same as CreateSnapshot with the addition of
  1309  // the ability to pass a context and additional request options.
  1310  //
  1311  // See CreateSnapshot for details on how to use this API operation.
  1312  //
  1313  // The context must be non-nil and will be used for request cancellation. If
  1314  // the context is nil a panic will occur. In the future the SDK may create
  1315  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1316  // for more information on using Contexts.
  1317  func (c *StorageGateway) CreateSnapshotWithContext(ctx aws.Context, input *CreateSnapshotInput, opts ...request.Option) (*CreateSnapshotOutput, error) {
  1318  	req, out := c.CreateSnapshotRequest(input)
  1319  	req.SetContext(ctx)
  1320  	req.ApplyOptions(opts...)
  1321  	return out, req.Send()
  1322  }
  1323  
  1324  const opCreateSnapshotFromVolumeRecoveryPoint = "CreateSnapshotFromVolumeRecoveryPoint"
  1325  
  1326  // CreateSnapshotFromVolumeRecoveryPointRequest generates a "aws/request.Request" representing the
  1327  // client's request for the CreateSnapshotFromVolumeRecoveryPoint operation. The "output" return
  1328  // value will be populated with the request's response once the request completes
  1329  // successfully.
  1330  //
  1331  // Use "Send" method on the returned Request to send the API call to the service.
  1332  // the "output" return value is not valid until after Send returns without error.
  1333  //
  1334  // See CreateSnapshotFromVolumeRecoveryPoint for more information on using the CreateSnapshotFromVolumeRecoveryPoint
  1335  // API call, and error handling.
  1336  //
  1337  // This method is useful when you want to inject custom logic or configuration
  1338  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1339  //
  1340  //
  1341  //    // Example sending a request using the CreateSnapshotFromVolumeRecoveryPointRequest method.
  1342  //    req, resp := client.CreateSnapshotFromVolumeRecoveryPointRequest(params)
  1343  //
  1344  //    err := req.Send()
  1345  //    if err == nil { // resp is now filled
  1346  //        fmt.Println(resp)
  1347  //    }
  1348  //
  1349  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshotFromVolumeRecoveryPoint
  1350  func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPointRequest(input *CreateSnapshotFromVolumeRecoveryPointInput) (req *request.Request, output *CreateSnapshotFromVolumeRecoveryPointOutput) {
  1351  	op := &request.Operation{
  1352  		Name:       opCreateSnapshotFromVolumeRecoveryPoint,
  1353  		HTTPMethod: "POST",
  1354  		HTTPPath:   "/",
  1355  	}
  1356  
  1357  	if input == nil {
  1358  		input = &CreateSnapshotFromVolumeRecoveryPointInput{}
  1359  	}
  1360  
  1361  	output = &CreateSnapshotFromVolumeRecoveryPointOutput{}
  1362  	req = c.newRequest(op, input, output)
  1363  	return
  1364  }
  1365  
  1366  // CreateSnapshotFromVolumeRecoveryPoint API operation for AWS Storage Gateway.
  1367  //
  1368  // Initiates a snapshot of a gateway from a volume recovery point. This operation
  1369  // is only supported in the cached volume gateway type.
  1370  //
  1371  // A volume recovery point is a point in time at which all data of the volume
  1372  // is consistent and from which you can create a snapshot. To get a list of
  1373  // volume recovery point for cached volume gateway, use ListVolumeRecoveryPoints.
  1374  //
  1375  // In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume
  1376  // by providing its Amazon Resource Name (ARN). You must also provide a description
  1377  // for the snapshot. When the gateway takes a snapshot of the specified volume,
  1378  // the snapshot and its description appear in the Storage Gateway console. In
  1379  // response, the gateway returns you a snapshot ID. You can use this snapshot
  1380  // ID to check the snapshot progress or later use it when you want to create
  1381  // a volume from a snapshot.
  1382  //
  1383  // To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
  1384  // see DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html)
  1385  // or DeleteSnapshot (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html)
  1386  // in the Amazon Elastic Compute Cloud API Reference.
  1387  //
  1388  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1389  // with awserr.Error's Code and Message methods to get detailed information about
  1390  // the error.
  1391  //
  1392  // See the AWS API reference guide for AWS Storage Gateway's
  1393  // API operation CreateSnapshotFromVolumeRecoveryPoint for usage and error information.
  1394  //
  1395  // Returned Error Types:
  1396  //   * InvalidGatewayRequestException
  1397  //   An exception occurred because an invalid gateway request was issued to the
  1398  //   service. For more information, see the error and message fields.
  1399  //
  1400  //   * InternalServerError
  1401  //   An internal server error has occurred during the request. For more information,
  1402  //   see the error and message fields.
  1403  //
  1404  //   * ServiceUnavailableError
  1405  //   An internal server error has occurred because the service is unavailable.
  1406  //   For more information, see the error and message fields.
  1407  //
  1408  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshotFromVolumeRecoveryPoint
  1409  func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPoint(input *CreateSnapshotFromVolumeRecoveryPointInput) (*CreateSnapshotFromVolumeRecoveryPointOutput, error) {
  1410  	req, out := c.CreateSnapshotFromVolumeRecoveryPointRequest(input)
  1411  	return out, req.Send()
  1412  }
  1413  
  1414  // CreateSnapshotFromVolumeRecoveryPointWithContext is the same as CreateSnapshotFromVolumeRecoveryPoint with the addition of
  1415  // the ability to pass a context and additional request options.
  1416  //
  1417  // See CreateSnapshotFromVolumeRecoveryPoint for details on how to use this API operation.
  1418  //
  1419  // The context must be non-nil and will be used for request cancellation. If
  1420  // the context is nil a panic will occur. In the future the SDK may create
  1421  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1422  // for more information on using Contexts.
  1423  func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPointWithContext(ctx aws.Context, input *CreateSnapshotFromVolumeRecoveryPointInput, opts ...request.Option) (*CreateSnapshotFromVolumeRecoveryPointOutput, error) {
  1424  	req, out := c.CreateSnapshotFromVolumeRecoveryPointRequest(input)
  1425  	req.SetContext(ctx)
  1426  	req.ApplyOptions(opts...)
  1427  	return out, req.Send()
  1428  }
  1429  
  1430  const opCreateStorediSCSIVolume = "CreateStorediSCSIVolume"
  1431  
  1432  // CreateStorediSCSIVolumeRequest generates a "aws/request.Request" representing the
  1433  // client's request for the CreateStorediSCSIVolume operation. The "output" return
  1434  // value will be populated with the request's response once the request completes
  1435  // successfully.
  1436  //
  1437  // Use "Send" method on the returned Request to send the API call to the service.
  1438  // the "output" return value is not valid until after Send returns without error.
  1439  //
  1440  // See CreateStorediSCSIVolume for more information on using the CreateStorediSCSIVolume
  1441  // API call, and error handling.
  1442  //
  1443  // This method is useful when you want to inject custom logic or configuration
  1444  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1445  //
  1446  //
  1447  //    // Example sending a request using the CreateStorediSCSIVolumeRequest method.
  1448  //    req, resp := client.CreateStorediSCSIVolumeRequest(params)
  1449  //
  1450  //    err := req.Send()
  1451  //    if err == nil { // resp is now filled
  1452  //        fmt.Println(resp)
  1453  //    }
  1454  //
  1455  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateStorediSCSIVolume
  1456  func (c *StorageGateway) CreateStorediSCSIVolumeRequest(input *CreateStorediSCSIVolumeInput) (req *request.Request, output *CreateStorediSCSIVolumeOutput) {
  1457  	op := &request.Operation{
  1458  		Name:       opCreateStorediSCSIVolume,
  1459  		HTTPMethod: "POST",
  1460  		HTTPPath:   "/",
  1461  	}
  1462  
  1463  	if input == nil {
  1464  		input = &CreateStorediSCSIVolumeInput{}
  1465  	}
  1466  
  1467  	output = &CreateStorediSCSIVolumeOutput{}
  1468  	req = c.newRequest(op, input, output)
  1469  	return
  1470  }
  1471  
  1472  // CreateStorediSCSIVolume API operation for AWS Storage Gateway.
  1473  //
  1474  // Creates a volume on a specified gateway. This operation is only supported
  1475  // in the stored volume gateway type.
  1476  //
  1477  // The size of the volume to create is inferred from the disk size. You can
  1478  // choose to preserve existing data on the disk, create volume from an existing
  1479  // snapshot, or create an empty volume. If you choose to create an empty gateway
  1480  // volume, then any existing data on the disk is erased.
  1481  //
  1482  // In the request, you must specify the gateway and the disk information on
  1483  // which you are creating the volume. In response, the gateway creates the volume
  1484  // and returns volume information such as the volume Amazon Resource Name (ARN),
  1485  // its size, and the iSCSI target ARN that initiators can use to connect to
  1486  // the volume target.
  1487  //
  1488  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1489  // with awserr.Error's Code and Message methods to get detailed information about
  1490  // the error.
  1491  //
  1492  // See the AWS API reference guide for AWS Storage Gateway's
  1493  // API operation CreateStorediSCSIVolume for usage and error information.
  1494  //
  1495  // Returned Error Types:
  1496  //   * InvalidGatewayRequestException
  1497  //   An exception occurred because an invalid gateway request was issued to the
  1498  //   service. For more information, see the error and message fields.
  1499  //
  1500  //   * InternalServerError
  1501  //   An internal server error has occurred during the request. For more information,
  1502  //   see the error and message fields.
  1503  //
  1504  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateStorediSCSIVolume
  1505  func (c *StorageGateway) CreateStorediSCSIVolume(input *CreateStorediSCSIVolumeInput) (*CreateStorediSCSIVolumeOutput, error) {
  1506  	req, out := c.CreateStorediSCSIVolumeRequest(input)
  1507  	return out, req.Send()
  1508  }
  1509  
  1510  // CreateStorediSCSIVolumeWithContext is the same as CreateStorediSCSIVolume with the addition of
  1511  // the ability to pass a context and additional request options.
  1512  //
  1513  // See CreateStorediSCSIVolume for details on how to use this API operation.
  1514  //
  1515  // The context must be non-nil and will be used for request cancellation. If
  1516  // the context is nil a panic will occur. In the future the SDK may create
  1517  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1518  // for more information on using Contexts.
  1519  func (c *StorageGateway) CreateStorediSCSIVolumeWithContext(ctx aws.Context, input *CreateStorediSCSIVolumeInput, opts ...request.Option) (*CreateStorediSCSIVolumeOutput, error) {
  1520  	req, out := c.CreateStorediSCSIVolumeRequest(input)
  1521  	req.SetContext(ctx)
  1522  	req.ApplyOptions(opts...)
  1523  	return out, req.Send()
  1524  }
  1525  
  1526  const opCreateTapePool = "CreateTapePool"
  1527  
  1528  // CreateTapePoolRequest generates a "aws/request.Request" representing the
  1529  // client's request for the CreateTapePool operation. The "output" return
  1530  // value will be populated with the request's response once the request completes
  1531  // successfully.
  1532  //
  1533  // Use "Send" method on the returned Request to send the API call to the service.
  1534  // the "output" return value is not valid until after Send returns without error.
  1535  //
  1536  // See CreateTapePool for more information on using the CreateTapePool
  1537  // API call, and error handling.
  1538  //
  1539  // This method is useful when you want to inject custom logic or configuration
  1540  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1541  //
  1542  //
  1543  //    // Example sending a request using the CreateTapePoolRequest method.
  1544  //    req, resp := client.CreateTapePoolRequest(params)
  1545  //
  1546  //    err := req.Send()
  1547  //    if err == nil { // resp is now filled
  1548  //        fmt.Println(resp)
  1549  //    }
  1550  //
  1551  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapePool
  1552  func (c *StorageGateway) CreateTapePoolRequest(input *CreateTapePoolInput) (req *request.Request, output *CreateTapePoolOutput) {
  1553  	op := &request.Operation{
  1554  		Name:       opCreateTapePool,
  1555  		HTTPMethod: "POST",
  1556  		HTTPPath:   "/",
  1557  	}
  1558  
  1559  	if input == nil {
  1560  		input = &CreateTapePoolInput{}
  1561  	}
  1562  
  1563  	output = &CreateTapePoolOutput{}
  1564  	req = c.newRequest(op, input, output)
  1565  	return
  1566  }
  1567  
  1568  // CreateTapePool API operation for AWS Storage Gateway.
  1569  //
  1570  // Creates a new custom tape pool. You can use custom tape pool to enable tape
  1571  // retention lock on tapes that are archived in the custom pool.
  1572  //
  1573  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1574  // with awserr.Error's Code and Message methods to get detailed information about
  1575  // the error.
  1576  //
  1577  // See the AWS API reference guide for AWS Storage Gateway's
  1578  // API operation CreateTapePool for usage and error information.
  1579  //
  1580  // Returned Error Types:
  1581  //   * InvalidGatewayRequestException
  1582  //   An exception occurred because an invalid gateway request was issued to the
  1583  //   service. For more information, see the error and message fields.
  1584  //
  1585  //   * InternalServerError
  1586  //   An internal server error has occurred during the request. For more information,
  1587  //   see the error and message fields.
  1588  //
  1589  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapePool
  1590  func (c *StorageGateway) CreateTapePool(input *CreateTapePoolInput) (*CreateTapePoolOutput, error) {
  1591  	req, out := c.CreateTapePoolRequest(input)
  1592  	return out, req.Send()
  1593  }
  1594  
  1595  // CreateTapePoolWithContext is the same as CreateTapePool with the addition of
  1596  // the ability to pass a context and additional request options.
  1597  //
  1598  // See CreateTapePool for details on how to use this API operation.
  1599  //
  1600  // The context must be non-nil and will be used for request cancellation. If
  1601  // the context is nil a panic will occur. In the future the SDK may create
  1602  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1603  // for more information on using Contexts.
  1604  func (c *StorageGateway) CreateTapePoolWithContext(ctx aws.Context, input *CreateTapePoolInput, opts ...request.Option) (*CreateTapePoolOutput, error) {
  1605  	req, out := c.CreateTapePoolRequest(input)
  1606  	req.SetContext(ctx)
  1607  	req.ApplyOptions(opts...)
  1608  	return out, req.Send()
  1609  }
  1610  
  1611  const opCreateTapeWithBarcode = "CreateTapeWithBarcode"
  1612  
  1613  // CreateTapeWithBarcodeRequest generates a "aws/request.Request" representing the
  1614  // client's request for the CreateTapeWithBarcode operation. The "output" return
  1615  // value will be populated with the request's response once the request completes
  1616  // successfully.
  1617  //
  1618  // Use "Send" method on the returned Request to send the API call to the service.
  1619  // the "output" return value is not valid until after Send returns without error.
  1620  //
  1621  // See CreateTapeWithBarcode for more information on using the CreateTapeWithBarcode
  1622  // API call, and error handling.
  1623  //
  1624  // This method is useful when you want to inject custom logic or configuration
  1625  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1626  //
  1627  //
  1628  //    // Example sending a request using the CreateTapeWithBarcodeRequest method.
  1629  //    req, resp := client.CreateTapeWithBarcodeRequest(params)
  1630  //
  1631  //    err := req.Send()
  1632  //    if err == nil { // resp is now filled
  1633  //        fmt.Println(resp)
  1634  //    }
  1635  //
  1636  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapeWithBarcode
  1637  func (c *StorageGateway) CreateTapeWithBarcodeRequest(input *CreateTapeWithBarcodeInput) (req *request.Request, output *CreateTapeWithBarcodeOutput) {
  1638  	op := &request.Operation{
  1639  		Name:       opCreateTapeWithBarcode,
  1640  		HTTPMethod: "POST",
  1641  		HTTPPath:   "/",
  1642  	}
  1643  
  1644  	if input == nil {
  1645  		input = &CreateTapeWithBarcodeInput{}
  1646  	}
  1647  
  1648  	output = &CreateTapeWithBarcodeOutput{}
  1649  	req = c.newRequest(op, input, output)
  1650  	return
  1651  }
  1652  
  1653  // CreateTapeWithBarcode API operation for AWS Storage Gateway.
  1654  //
  1655  // Creates a virtual tape by using your own barcode. You write data to the virtual
  1656  // tape and then archive the tape. A barcode is unique and cannot be reused
  1657  // if it has already been used on a tape. This applies to barcodes used on deleted
  1658  // tapes. This operation is only supported in the tape gateway type.
  1659  //
  1660  // Cache storage must be allocated to the gateway before you can create a virtual
  1661  // tape. Use the AddCache operation to add cache storage to a gateway.
  1662  //
  1663  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1664  // with awserr.Error's Code and Message methods to get detailed information about
  1665  // the error.
  1666  //
  1667  // See the AWS API reference guide for AWS Storage Gateway's
  1668  // API operation CreateTapeWithBarcode for usage and error information.
  1669  //
  1670  // Returned Error Types:
  1671  //   * InvalidGatewayRequestException
  1672  //   An exception occurred because an invalid gateway request was issued to the
  1673  //   service. For more information, see the error and message fields.
  1674  //
  1675  //   * InternalServerError
  1676  //   An internal server error has occurred during the request. For more information,
  1677  //   see the error and message fields.
  1678  //
  1679  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapeWithBarcode
  1680  func (c *StorageGateway) CreateTapeWithBarcode(input *CreateTapeWithBarcodeInput) (*CreateTapeWithBarcodeOutput, error) {
  1681  	req, out := c.CreateTapeWithBarcodeRequest(input)
  1682  	return out, req.Send()
  1683  }
  1684  
  1685  // CreateTapeWithBarcodeWithContext is the same as CreateTapeWithBarcode with the addition of
  1686  // the ability to pass a context and additional request options.
  1687  //
  1688  // See CreateTapeWithBarcode for details on how to use this API operation.
  1689  //
  1690  // The context must be non-nil and will be used for request cancellation. If
  1691  // the context is nil a panic will occur. In the future the SDK may create
  1692  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1693  // for more information on using Contexts.
  1694  func (c *StorageGateway) CreateTapeWithBarcodeWithContext(ctx aws.Context, input *CreateTapeWithBarcodeInput, opts ...request.Option) (*CreateTapeWithBarcodeOutput, error) {
  1695  	req, out := c.CreateTapeWithBarcodeRequest(input)
  1696  	req.SetContext(ctx)
  1697  	req.ApplyOptions(opts...)
  1698  	return out, req.Send()
  1699  }
  1700  
  1701  const opCreateTapes = "CreateTapes"
  1702  
  1703  // CreateTapesRequest generates a "aws/request.Request" representing the
  1704  // client's request for the CreateTapes operation. The "output" return
  1705  // value will be populated with the request's response once the request completes
  1706  // successfully.
  1707  //
  1708  // Use "Send" method on the returned Request to send the API call to the service.
  1709  // the "output" return value is not valid until after Send returns without error.
  1710  //
  1711  // See CreateTapes for more information on using the CreateTapes
  1712  // API call, and error handling.
  1713  //
  1714  // This method is useful when you want to inject custom logic or configuration
  1715  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1716  //
  1717  //
  1718  //    // Example sending a request using the CreateTapesRequest method.
  1719  //    req, resp := client.CreateTapesRequest(params)
  1720  //
  1721  //    err := req.Send()
  1722  //    if err == nil { // resp is now filled
  1723  //        fmt.Println(resp)
  1724  //    }
  1725  //
  1726  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapes
  1727  func (c *StorageGateway) CreateTapesRequest(input *CreateTapesInput) (req *request.Request, output *CreateTapesOutput) {
  1728  	op := &request.Operation{
  1729  		Name:       opCreateTapes,
  1730  		HTTPMethod: "POST",
  1731  		HTTPPath:   "/",
  1732  	}
  1733  
  1734  	if input == nil {
  1735  		input = &CreateTapesInput{}
  1736  	}
  1737  
  1738  	output = &CreateTapesOutput{}
  1739  	req = c.newRequest(op, input, output)
  1740  	return
  1741  }
  1742  
  1743  // CreateTapes API operation for AWS Storage Gateway.
  1744  //
  1745  // Creates one or more virtual tapes. You write data to the virtual tapes and
  1746  // then archive the tapes. This operation is only supported in the tape gateway
  1747  // type.
  1748  //
  1749  // Cache storage must be allocated to the gateway before you can create virtual
  1750  // tapes. Use the AddCache operation to add cache storage to a gateway.
  1751  //
  1752  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1753  // with awserr.Error's Code and Message methods to get detailed information about
  1754  // the error.
  1755  //
  1756  // See the AWS API reference guide for AWS Storage Gateway's
  1757  // API operation CreateTapes for usage and error information.
  1758  //
  1759  // Returned Error Types:
  1760  //   * InvalidGatewayRequestException
  1761  //   An exception occurred because an invalid gateway request was issued to the
  1762  //   service. For more information, see the error and message fields.
  1763  //
  1764  //   * InternalServerError
  1765  //   An internal server error has occurred during the request. For more information,
  1766  //   see the error and message fields.
  1767  //
  1768  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapes
  1769  func (c *StorageGateway) CreateTapes(input *CreateTapesInput) (*CreateTapesOutput, error) {
  1770  	req, out := c.CreateTapesRequest(input)
  1771  	return out, req.Send()
  1772  }
  1773  
  1774  // CreateTapesWithContext is the same as CreateTapes with the addition of
  1775  // the ability to pass a context and additional request options.
  1776  //
  1777  // See CreateTapes for details on how to use this API operation.
  1778  //
  1779  // The context must be non-nil and will be used for request cancellation. If
  1780  // the context is nil a panic will occur. In the future the SDK may create
  1781  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1782  // for more information on using Contexts.
  1783  func (c *StorageGateway) CreateTapesWithContext(ctx aws.Context, input *CreateTapesInput, opts ...request.Option) (*CreateTapesOutput, error) {
  1784  	req, out := c.CreateTapesRequest(input)
  1785  	req.SetContext(ctx)
  1786  	req.ApplyOptions(opts...)
  1787  	return out, req.Send()
  1788  }
  1789  
  1790  const opDeleteAutomaticTapeCreationPolicy = "DeleteAutomaticTapeCreationPolicy"
  1791  
  1792  // DeleteAutomaticTapeCreationPolicyRequest generates a "aws/request.Request" representing the
  1793  // client's request for the DeleteAutomaticTapeCreationPolicy operation. The "output" return
  1794  // value will be populated with the request's response once the request completes
  1795  // successfully.
  1796  //
  1797  // Use "Send" method on the returned Request to send the API call to the service.
  1798  // the "output" return value is not valid until after Send returns without error.
  1799  //
  1800  // See DeleteAutomaticTapeCreationPolicy for more information on using the DeleteAutomaticTapeCreationPolicy
  1801  // API call, and error handling.
  1802  //
  1803  // This method is useful when you want to inject custom logic or configuration
  1804  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1805  //
  1806  //
  1807  //    // Example sending a request using the DeleteAutomaticTapeCreationPolicyRequest method.
  1808  //    req, resp := client.DeleteAutomaticTapeCreationPolicyRequest(params)
  1809  //
  1810  //    err := req.Send()
  1811  //    if err == nil { // resp is now filled
  1812  //        fmt.Println(resp)
  1813  //    }
  1814  //
  1815  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteAutomaticTapeCreationPolicy
  1816  func (c *StorageGateway) DeleteAutomaticTapeCreationPolicyRequest(input *DeleteAutomaticTapeCreationPolicyInput) (req *request.Request, output *DeleteAutomaticTapeCreationPolicyOutput) {
  1817  	op := &request.Operation{
  1818  		Name:       opDeleteAutomaticTapeCreationPolicy,
  1819  		HTTPMethod: "POST",
  1820  		HTTPPath:   "/",
  1821  	}
  1822  
  1823  	if input == nil {
  1824  		input = &DeleteAutomaticTapeCreationPolicyInput{}
  1825  	}
  1826  
  1827  	output = &DeleteAutomaticTapeCreationPolicyOutput{}
  1828  	req = c.newRequest(op, input, output)
  1829  	return
  1830  }
  1831  
  1832  // DeleteAutomaticTapeCreationPolicy API operation for AWS Storage Gateway.
  1833  //
  1834  // Deletes the automatic tape creation policy of a gateway. If you delete this
  1835  // policy, new virtual tapes must be created manually. Use the Amazon Resource
  1836  // Name (ARN) of the gateway in your request to remove the policy.
  1837  //
  1838  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1839  // with awserr.Error's Code and Message methods to get detailed information about
  1840  // the error.
  1841  //
  1842  // See the AWS API reference guide for AWS Storage Gateway's
  1843  // API operation DeleteAutomaticTapeCreationPolicy for usage and error information.
  1844  //
  1845  // Returned Error Types:
  1846  //   * InvalidGatewayRequestException
  1847  //   An exception occurred because an invalid gateway request was issued to the
  1848  //   service. For more information, see the error and message fields.
  1849  //
  1850  //   * InternalServerError
  1851  //   An internal server error has occurred during the request. For more information,
  1852  //   see the error and message fields.
  1853  //
  1854  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteAutomaticTapeCreationPolicy
  1855  func (c *StorageGateway) DeleteAutomaticTapeCreationPolicy(input *DeleteAutomaticTapeCreationPolicyInput) (*DeleteAutomaticTapeCreationPolicyOutput, error) {
  1856  	req, out := c.DeleteAutomaticTapeCreationPolicyRequest(input)
  1857  	return out, req.Send()
  1858  }
  1859  
  1860  // DeleteAutomaticTapeCreationPolicyWithContext is the same as DeleteAutomaticTapeCreationPolicy with the addition of
  1861  // the ability to pass a context and additional request options.
  1862  //
  1863  // See DeleteAutomaticTapeCreationPolicy for details on how to use this API operation.
  1864  //
  1865  // The context must be non-nil and will be used for request cancellation. If
  1866  // the context is nil a panic will occur. In the future the SDK may create
  1867  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1868  // for more information on using Contexts.
  1869  func (c *StorageGateway) DeleteAutomaticTapeCreationPolicyWithContext(ctx aws.Context, input *DeleteAutomaticTapeCreationPolicyInput, opts ...request.Option) (*DeleteAutomaticTapeCreationPolicyOutput, error) {
  1870  	req, out := c.DeleteAutomaticTapeCreationPolicyRequest(input)
  1871  	req.SetContext(ctx)
  1872  	req.ApplyOptions(opts...)
  1873  	return out, req.Send()
  1874  }
  1875  
  1876  const opDeleteBandwidthRateLimit = "DeleteBandwidthRateLimit"
  1877  
  1878  // DeleteBandwidthRateLimitRequest generates a "aws/request.Request" representing the
  1879  // client's request for the DeleteBandwidthRateLimit operation. The "output" return
  1880  // value will be populated with the request's response once the request completes
  1881  // successfully.
  1882  //
  1883  // Use "Send" method on the returned Request to send the API call to the service.
  1884  // the "output" return value is not valid until after Send returns without error.
  1885  //
  1886  // See DeleteBandwidthRateLimit for more information on using the DeleteBandwidthRateLimit
  1887  // API call, and error handling.
  1888  //
  1889  // This method is useful when you want to inject custom logic or configuration
  1890  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1891  //
  1892  //
  1893  //    // Example sending a request using the DeleteBandwidthRateLimitRequest method.
  1894  //    req, resp := client.DeleteBandwidthRateLimitRequest(params)
  1895  //
  1896  //    err := req.Send()
  1897  //    if err == nil { // resp is now filled
  1898  //        fmt.Println(resp)
  1899  //    }
  1900  //
  1901  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteBandwidthRateLimit
  1902  func (c *StorageGateway) DeleteBandwidthRateLimitRequest(input *DeleteBandwidthRateLimitInput) (req *request.Request, output *DeleteBandwidthRateLimitOutput) {
  1903  	op := &request.Operation{
  1904  		Name:       opDeleteBandwidthRateLimit,
  1905  		HTTPMethod: "POST",
  1906  		HTTPPath:   "/",
  1907  	}
  1908  
  1909  	if input == nil {
  1910  		input = &DeleteBandwidthRateLimitInput{}
  1911  	}
  1912  
  1913  	output = &DeleteBandwidthRateLimitOutput{}
  1914  	req = c.newRequest(op, input, output)
  1915  	return
  1916  }
  1917  
  1918  // DeleteBandwidthRateLimit API operation for AWS Storage Gateway.
  1919  //
  1920  // Deletes the bandwidth rate limits of a gateway. You can delete either the
  1921  // upload and download bandwidth rate limit, or you can delete both. If you
  1922  // delete only one of the limits, the other limit remains unchanged. To specify
  1923  // which gateway to work with, use the Amazon Resource Name (ARN) of the gateway
  1924  // in your request. This operation is supported for the stored volume, cached
  1925  // volume and tape gateway types.
  1926  //
  1927  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1928  // with awserr.Error's Code and Message methods to get detailed information about
  1929  // the error.
  1930  //
  1931  // See the AWS API reference guide for AWS Storage Gateway's
  1932  // API operation DeleteBandwidthRateLimit for usage and error information.
  1933  //
  1934  // Returned Error Types:
  1935  //   * InvalidGatewayRequestException
  1936  //   An exception occurred because an invalid gateway request was issued to the
  1937  //   service. For more information, see the error and message fields.
  1938  //
  1939  //   * InternalServerError
  1940  //   An internal server error has occurred during the request. For more information,
  1941  //   see the error and message fields.
  1942  //
  1943  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteBandwidthRateLimit
  1944  func (c *StorageGateway) DeleteBandwidthRateLimit(input *DeleteBandwidthRateLimitInput) (*DeleteBandwidthRateLimitOutput, error) {
  1945  	req, out := c.DeleteBandwidthRateLimitRequest(input)
  1946  	return out, req.Send()
  1947  }
  1948  
  1949  // DeleteBandwidthRateLimitWithContext is the same as DeleteBandwidthRateLimit with the addition of
  1950  // the ability to pass a context and additional request options.
  1951  //
  1952  // See DeleteBandwidthRateLimit for details on how to use this API operation.
  1953  //
  1954  // The context must be non-nil and will be used for request cancellation. If
  1955  // the context is nil a panic will occur. In the future the SDK may create
  1956  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1957  // for more information on using Contexts.
  1958  func (c *StorageGateway) DeleteBandwidthRateLimitWithContext(ctx aws.Context, input *DeleteBandwidthRateLimitInput, opts ...request.Option) (*DeleteBandwidthRateLimitOutput, error) {
  1959  	req, out := c.DeleteBandwidthRateLimitRequest(input)
  1960  	req.SetContext(ctx)
  1961  	req.ApplyOptions(opts...)
  1962  	return out, req.Send()
  1963  }
  1964  
  1965  const opDeleteChapCredentials = "DeleteChapCredentials"
  1966  
  1967  // DeleteChapCredentialsRequest generates a "aws/request.Request" representing the
  1968  // client's request for the DeleteChapCredentials operation. The "output" return
  1969  // value will be populated with the request's response once the request completes
  1970  // successfully.
  1971  //
  1972  // Use "Send" method on the returned Request to send the API call to the service.
  1973  // the "output" return value is not valid until after Send returns without error.
  1974  //
  1975  // See DeleteChapCredentials for more information on using the DeleteChapCredentials
  1976  // API call, and error handling.
  1977  //
  1978  // This method is useful when you want to inject custom logic or configuration
  1979  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1980  //
  1981  //
  1982  //    // Example sending a request using the DeleteChapCredentialsRequest method.
  1983  //    req, resp := client.DeleteChapCredentialsRequest(params)
  1984  //
  1985  //    err := req.Send()
  1986  //    if err == nil { // resp is now filled
  1987  //        fmt.Println(resp)
  1988  //    }
  1989  //
  1990  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteChapCredentials
  1991  func (c *StorageGateway) DeleteChapCredentialsRequest(input *DeleteChapCredentialsInput) (req *request.Request, output *DeleteChapCredentialsOutput) {
  1992  	op := &request.Operation{
  1993  		Name:       opDeleteChapCredentials,
  1994  		HTTPMethod: "POST",
  1995  		HTTPPath:   "/",
  1996  	}
  1997  
  1998  	if input == nil {
  1999  		input = &DeleteChapCredentialsInput{}
  2000  	}
  2001  
  2002  	output = &DeleteChapCredentialsOutput{}
  2003  	req = c.newRequest(op, input, output)
  2004  	return
  2005  }
  2006  
  2007  // DeleteChapCredentials API operation for AWS Storage Gateway.
  2008  //
  2009  // Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for
  2010  // a specified iSCSI target and initiator pair. This operation is supported
  2011  // in volume and tape gateway types.
  2012  //
  2013  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2014  // with awserr.Error's Code and Message methods to get detailed information about
  2015  // the error.
  2016  //
  2017  // See the AWS API reference guide for AWS Storage Gateway's
  2018  // API operation DeleteChapCredentials for usage and error information.
  2019  //
  2020  // Returned Error Types:
  2021  //   * InvalidGatewayRequestException
  2022  //   An exception occurred because an invalid gateway request was issued to the
  2023  //   service. For more information, see the error and message fields.
  2024  //
  2025  //   * InternalServerError
  2026  //   An internal server error has occurred during the request. For more information,
  2027  //   see the error and message fields.
  2028  //
  2029  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteChapCredentials
  2030  func (c *StorageGateway) DeleteChapCredentials(input *DeleteChapCredentialsInput) (*DeleteChapCredentialsOutput, error) {
  2031  	req, out := c.DeleteChapCredentialsRequest(input)
  2032  	return out, req.Send()
  2033  }
  2034  
  2035  // DeleteChapCredentialsWithContext is the same as DeleteChapCredentials with the addition of
  2036  // the ability to pass a context and additional request options.
  2037  //
  2038  // See DeleteChapCredentials for details on how to use this API operation.
  2039  //
  2040  // The context must be non-nil and will be used for request cancellation. If
  2041  // the context is nil a panic will occur. In the future the SDK may create
  2042  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2043  // for more information on using Contexts.
  2044  func (c *StorageGateway) DeleteChapCredentialsWithContext(ctx aws.Context, input *DeleteChapCredentialsInput, opts ...request.Option) (*DeleteChapCredentialsOutput, error) {
  2045  	req, out := c.DeleteChapCredentialsRequest(input)
  2046  	req.SetContext(ctx)
  2047  	req.ApplyOptions(opts...)
  2048  	return out, req.Send()
  2049  }
  2050  
  2051  const opDeleteFileShare = "DeleteFileShare"
  2052  
  2053  // DeleteFileShareRequest generates a "aws/request.Request" representing the
  2054  // client's request for the DeleteFileShare operation. The "output" return
  2055  // value will be populated with the request's response once the request completes
  2056  // successfully.
  2057  //
  2058  // Use "Send" method on the returned Request to send the API call to the service.
  2059  // the "output" return value is not valid until after Send returns without error.
  2060  //
  2061  // See DeleteFileShare for more information on using the DeleteFileShare
  2062  // API call, and error handling.
  2063  //
  2064  // This method is useful when you want to inject custom logic or configuration
  2065  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2066  //
  2067  //
  2068  //    // Example sending a request using the DeleteFileShareRequest method.
  2069  //    req, resp := client.DeleteFileShareRequest(params)
  2070  //
  2071  //    err := req.Send()
  2072  //    if err == nil { // resp is now filled
  2073  //        fmt.Println(resp)
  2074  //    }
  2075  //
  2076  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteFileShare
  2077  func (c *StorageGateway) DeleteFileShareRequest(input *DeleteFileShareInput) (req *request.Request, output *DeleteFileShareOutput) {
  2078  	op := &request.Operation{
  2079  		Name:       opDeleteFileShare,
  2080  		HTTPMethod: "POST",
  2081  		HTTPPath:   "/",
  2082  	}
  2083  
  2084  	if input == nil {
  2085  		input = &DeleteFileShareInput{}
  2086  	}
  2087  
  2088  	output = &DeleteFileShareOutput{}
  2089  	req = c.newRequest(op, input, output)
  2090  	return
  2091  }
  2092  
  2093  // DeleteFileShare API operation for AWS Storage Gateway.
  2094  //
  2095  // Deletes a file share from an S3 File Gateway. This operation is only supported
  2096  // for S3 File Gateways.
  2097  //
  2098  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2099  // with awserr.Error's Code and Message methods to get detailed information about
  2100  // the error.
  2101  //
  2102  // See the AWS API reference guide for AWS Storage Gateway's
  2103  // API operation DeleteFileShare for usage and error information.
  2104  //
  2105  // Returned Error Types:
  2106  //   * InvalidGatewayRequestException
  2107  //   An exception occurred because an invalid gateway request was issued to the
  2108  //   service. For more information, see the error and message fields.
  2109  //
  2110  //   * InternalServerError
  2111  //   An internal server error has occurred during the request. For more information,
  2112  //   see the error and message fields.
  2113  //
  2114  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteFileShare
  2115  func (c *StorageGateway) DeleteFileShare(input *DeleteFileShareInput) (*DeleteFileShareOutput, error) {
  2116  	req, out := c.DeleteFileShareRequest(input)
  2117  	return out, req.Send()
  2118  }
  2119  
  2120  // DeleteFileShareWithContext is the same as DeleteFileShare with the addition of
  2121  // the ability to pass a context and additional request options.
  2122  //
  2123  // See DeleteFileShare for details on how to use this API operation.
  2124  //
  2125  // The context must be non-nil and will be used for request cancellation. If
  2126  // the context is nil a panic will occur. In the future the SDK may create
  2127  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2128  // for more information on using Contexts.
  2129  func (c *StorageGateway) DeleteFileShareWithContext(ctx aws.Context, input *DeleteFileShareInput, opts ...request.Option) (*DeleteFileShareOutput, error) {
  2130  	req, out := c.DeleteFileShareRequest(input)
  2131  	req.SetContext(ctx)
  2132  	req.ApplyOptions(opts...)
  2133  	return out, req.Send()
  2134  }
  2135  
  2136  const opDeleteGateway = "DeleteGateway"
  2137  
  2138  // DeleteGatewayRequest generates a "aws/request.Request" representing the
  2139  // client's request for the DeleteGateway operation. The "output" return
  2140  // value will be populated with the request's response once the request completes
  2141  // successfully.
  2142  //
  2143  // Use "Send" method on the returned Request to send the API call to the service.
  2144  // the "output" return value is not valid until after Send returns without error.
  2145  //
  2146  // See DeleteGateway for more information on using the DeleteGateway
  2147  // API call, and error handling.
  2148  //
  2149  // This method is useful when you want to inject custom logic or configuration
  2150  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2151  //
  2152  //
  2153  //    // Example sending a request using the DeleteGatewayRequest method.
  2154  //    req, resp := client.DeleteGatewayRequest(params)
  2155  //
  2156  //    err := req.Send()
  2157  //    if err == nil { // resp is now filled
  2158  //        fmt.Println(resp)
  2159  //    }
  2160  //
  2161  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteGateway
  2162  func (c *StorageGateway) DeleteGatewayRequest(input *DeleteGatewayInput) (req *request.Request, output *DeleteGatewayOutput) {
  2163  	op := &request.Operation{
  2164  		Name:       opDeleteGateway,
  2165  		HTTPMethod: "POST",
  2166  		HTTPPath:   "/",
  2167  	}
  2168  
  2169  	if input == nil {
  2170  		input = &DeleteGatewayInput{}
  2171  	}
  2172  
  2173  	output = &DeleteGatewayOutput{}
  2174  	req = c.newRequest(op, input, output)
  2175  	return
  2176  }
  2177  
  2178  // DeleteGateway API operation for AWS Storage Gateway.
  2179  //
  2180  // Deletes a gateway. To specify which gateway to delete, use the Amazon Resource
  2181  // Name (ARN) of the gateway in your request. The operation deletes the gateway;
  2182  // however, it does not delete the gateway virtual machine (VM) from your host
  2183  // computer.
  2184  //
  2185  // After you delete a gateway, you cannot reactivate it. Completed snapshots
  2186  // of the gateway volumes are not deleted upon deleting the gateway, however,
  2187  // pending snapshots will not complete. After you delete a gateway, your next
  2188  // step is to remove it from your environment.
  2189  //
  2190  // You no longer pay software charges after the gateway is deleted; however,
  2191  // your existing Amazon EBS snapshots persist and you will continue to be billed
  2192  // for these snapshots. You can choose to remove all remaining Amazon EBS snapshots
  2193  // by canceling your Amazon EC2 subscription. If you prefer not to cancel your
  2194  // Amazon EC2 subscription, you can delete your snapshots using the Amazon EC2
  2195  // console. For more information, see the Storage Gateway detail page (http://aws.amazon.com/storagegateway).
  2196  //
  2197  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2198  // with awserr.Error's Code and Message methods to get detailed information about
  2199  // the error.
  2200  //
  2201  // See the AWS API reference guide for AWS Storage Gateway's
  2202  // API operation DeleteGateway for usage and error information.
  2203  //
  2204  // Returned Error Types:
  2205  //   * InvalidGatewayRequestException
  2206  //   An exception occurred because an invalid gateway request was issued to the
  2207  //   service. For more information, see the error and message fields.
  2208  //
  2209  //   * InternalServerError
  2210  //   An internal server error has occurred during the request. For more information,
  2211  //   see the error and message fields.
  2212  //
  2213  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteGateway
  2214  func (c *StorageGateway) DeleteGateway(input *DeleteGatewayInput) (*DeleteGatewayOutput, error) {
  2215  	req, out := c.DeleteGatewayRequest(input)
  2216  	return out, req.Send()
  2217  }
  2218  
  2219  // DeleteGatewayWithContext is the same as DeleteGateway with the addition of
  2220  // the ability to pass a context and additional request options.
  2221  //
  2222  // See DeleteGateway for details on how to use this API operation.
  2223  //
  2224  // The context must be non-nil and will be used for request cancellation. If
  2225  // the context is nil a panic will occur. In the future the SDK may create
  2226  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2227  // for more information on using Contexts.
  2228  func (c *StorageGateway) DeleteGatewayWithContext(ctx aws.Context, input *DeleteGatewayInput, opts ...request.Option) (*DeleteGatewayOutput, error) {
  2229  	req, out := c.DeleteGatewayRequest(input)
  2230  	req.SetContext(ctx)
  2231  	req.ApplyOptions(opts...)
  2232  	return out, req.Send()
  2233  }
  2234  
  2235  const opDeleteSnapshotSchedule = "DeleteSnapshotSchedule"
  2236  
  2237  // DeleteSnapshotScheduleRequest generates a "aws/request.Request" representing the
  2238  // client's request for the DeleteSnapshotSchedule operation. The "output" return
  2239  // value will be populated with the request's response once the request completes
  2240  // successfully.
  2241  //
  2242  // Use "Send" method on the returned Request to send the API call to the service.
  2243  // the "output" return value is not valid until after Send returns without error.
  2244  //
  2245  // See DeleteSnapshotSchedule for more information on using the DeleteSnapshotSchedule
  2246  // API call, and error handling.
  2247  //
  2248  // This method is useful when you want to inject custom logic or configuration
  2249  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2250  //
  2251  //
  2252  //    // Example sending a request using the DeleteSnapshotScheduleRequest method.
  2253  //    req, resp := client.DeleteSnapshotScheduleRequest(params)
  2254  //
  2255  //    err := req.Send()
  2256  //    if err == nil { // resp is now filled
  2257  //        fmt.Println(resp)
  2258  //    }
  2259  //
  2260  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteSnapshotSchedule
  2261  func (c *StorageGateway) DeleteSnapshotScheduleRequest(input *DeleteSnapshotScheduleInput) (req *request.Request, output *DeleteSnapshotScheduleOutput) {
  2262  	op := &request.Operation{
  2263  		Name:       opDeleteSnapshotSchedule,
  2264  		HTTPMethod: "POST",
  2265  		HTTPPath:   "/",
  2266  	}
  2267  
  2268  	if input == nil {
  2269  		input = &DeleteSnapshotScheduleInput{}
  2270  	}
  2271  
  2272  	output = &DeleteSnapshotScheduleOutput{}
  2273  	req = c.newRequest(op, input, output)
  2274  	return
  2275  }
  2276  
  2277  // DeleteSnapshotSchedule API operation for AWS Storage Gateway.
  2278  //
  2279  // Deletes a snapshot of a volume.
  2280  //
  2281  // You can take snapshots of your gateway volumes on a scheduled or ad hoc basis.
  2282  // This API action enables you to delete a snapshot schedule for a volume. For
  2283  // more information, see Backing up your volumes (https://docs.aws.amazon.com/storagegateway/latest/userguide/backing-up-volumes.html).
  2284  // In the DeleteSnapshotSchedule request, you identify the volume by providing
  2285  // its Amazon Resource Name (ARN). This operation is only supported in stored
  2286  // and cached volume gateway types.
  2287  //
  2288  // To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
  2289  // go to DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html)
  2290  // in the Amazon Elastic Compute Cloud API Reference.
  2291  //
  2292  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2293  // with awserr.Error's Code and Message methods to get detailed information about
  2294  // the error.
  2295  //
  2296  // See the AWS API reference guide for AWS Storage Gateway's
  2297  // API operation DeleteSnapshotSchedule for usage and error information.
  2298  //
  2299  // Returned Error Types:
  2300  //   * InvalidGatewayRequestException
  2301  //   An exception occurred because an invalid gateway request was issued to the
  2302  //   service. For more information, see the error and message fields.
  2303  //
  2304  //   * InternalServerError
  2305  //   An internal server error has occurred during the request. For more information,
  2306  //   see the error and message fields.
  2307  //
  2308  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteSnapshotSchedule
  2309  func (c *StorageGateway) DeleteSnapshotSchedule(input *DeleteSnapshotScheduleInput) (*DeleteSnapshotScheduleOutput, error) {
  2310  	req, out := c.DeleteSnapshotScheduleRequest(input)
  2311  	return out, req.Send()
  2312  }
  2313  
  2314  // DeleteSnapshotScheduleWithContext is the same as DeleteSnapshotSchedule with the addition of
  2315  // the ability to pass a context and additional request options.
  2316  //
  2317  // See DeleteSnapshotSchedule for details on how to use this API operation.
  2318  //
  2319  // The context must be non-nil and will be used for request cancellation. If
  2320  // the context is nil a panic will occur. In the future the SDK may create
  2321  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2322  // for more information on using Contexts.
  2323  func (c *StorageGateway) DeleteSnapshotScheduleWithContext(ctx aws.Context, input *DeleteSnapshotScheduleInput, opts ...request.Option) (*DeleteSnapshotScheduleOutput, error) {
  2324  	req, out := c.DeleteSnapshotScheduleRequest(input)
  2325  	req.SetContext(ctx)
  2326  	req.ApplyOptions(opts...)
  2327  	return out, req.Send()
  2328  }
  2329  
  2330  const opDeleteTape = "DeleteTape"
  2331  
  2332  // DeleteTapeRequest generates a "aws/request.Request" representing the
  2333  // client's request for the DeleteTape operation. The "output" return
  2334  // value will be populated with the request's response once the request completes
  2335  // successfully.
  2336  //
  2337  // Use "Send" method on the returned Request to send the API call to the service.
  2338  // the "output" return value is not valid until after Send returns without error.
  2339  //
  2340  // See DeleteTape for more information on using the DeleteTape
  2341  // API call, and error handling.
  2342  //
  2343  // This method is useful when you want to inject custom logic or configuration
  2344  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2345  //
  2346  //
  2347  //    // Example sending a request using the DeleteTapeRequest method.
  2348  //    req, resp := client.DeleteTapeRequest(params)
  2349  //
  2350  //    err := req.Send()
  2351  //    if err == nil { // resp is now filled
  2352  //        fmt.Println(resp)
  2353  //    }
  2354  //
  2355  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTape
  2356  func (c *StorageGateway) DeleteTapeRequest(input *DeleteTapeInput) (req *request.Request, output *DeleteTapeOutput) {
  2357  	op := &request.Operation{
  2358  		Name:       opDeleteTape,
  2359  		HTTPMethod: "POST",
  2360  		HTTPPath:   "/",
  2361  	}
  2362  
  2363  	if input == nil {
  2364  		input = &DeleteTapeInput{}
  2365  	}
  2366  
  2367  	output = &DeleteTapeOutput{}
  2368  	req = c.newRequest(op, input, output)
  2369  	return
  2370  }
  2371  
  2372  // DeleteTape API operation for AWS Storage Gateway.
  2373  //
  2374  // Deletes the specified virtual tape. This operation is only supported in the
  2375  // tape gateway type.
  2376  //
  2377  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2378  // with awserr.Error's Code and Message methods to get detailed information about
  2379  // the error.
  2380  //
  2381  // See the AWS API reference guide for AWS Storage Gateway's
  2382  // API operation DeleteTape for usage and error information.
  2383  //
  2384  // Returned Error Types:
  2385  //   * InvalidGatewayRequestException
  2386  //   An exception occurred because an invalid gateway request was issued to the
  2387  //   service. For more information, see the error and message fields.
  2388  //
  2389  //   * InternalServerError
  2390  //   An internal server error has occurred during the request. For more information,
  2391  //   see the error and message fields.
  2392  //
  2393  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTape
  2394  func (c *StorageGateway) DeleteTape(input *DeleteTapeInput) (*DeleteTapeOutput, error) {
  2395  	req, out := c.DeleteTapeRequest(input)
  2396  	return out, req.Send()
  2397  }
  2398  
  2399  // DeleteTapeWithContext is the same as DeleteTape with the addition of
  2400  // the ability to pass a context and additional request options.
  2401  //
  2402  // See DeleteTape for details on how to use this API operation.
  2403  //
  2404  // The context must be non-nil and will be used for request cancellation. If
  2405  // the context is nil a panic will occur. In the future the SDK may create
  2406  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2407  // for more information on using Contexts.
  2408  func (c *StorageGateway) DeleteTapeWithContext(ctx aws.Context, input *DeleteTapeInput, opts ...request.Option) (*DeleteTapeOutput, error) {
  2409  	req, out := c.DeleteTapeRequest(input)
  2410  	req.SetContext(ctx)
  2411  	req.ApplyOptions(opts...)
  2412  	return out, req.Send()
  2413  }
  2414  
  2415  const opDeleteTapeArchive = "DeleteTapeArchive"
  2416  
  2417  // DeleteTapeArchiveRequest generates a "aws/request.Request" representing the
  2418  // client's request for the DeleteTapeArchive operation. The "output" return
  2419  // value will be populated with the request's response once the request completes
  2420  // successfully.
  2421  //
  2422  // Use "Send" method on the returned Request to send the API call to the service.
  2423  // the "output" return value is not valid until after Send returns without error.
  2424  //
  2425  // See DeleteTapeArchive for more information on using the DeleteTapeArchive
  2426  // API call, and error handling.
  2427  //
  2428  // This method is useful when you want to inject custom logic or configuration
  2429  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2430  //
  2431  //
  2432  //    // Example sending a request using the DeleteTapeArchiveRequest method.
  2433  //    req, resp := client.DeleteTapeArchiveRequest(params)
  2434  //
  2435  //    err := req.Send()
  2436  //    if err == nil { // resp is now filled
  2437  //        fmt.Println(resp)
  2438  //    }
  2439  //
  2440  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapeArchive
  2441  func (c *StorageGateway) DeleteTapeArchiveRequest(input *DeleteTapeArchiveInput) (req *request.Request, output *DeleteTapeArchiveOutput) {
  2442  	op := &request.Operation{
  2443  		Name:       opDeleteTapeArchive,
  2444  		HTTPMethod: "POST",
  2445  		HTTPPath:   "/",
  2446  	}
  2447  
  2448  	if input == nil {
  2449  		input = &DeleteTapeArchiveInput{}
  2450  	}
  2451  
  2452  	output = &DeleteTapeArchiveOutput{}
  2453  	req = c.newRequest(op, input, output)
  2454  	return
  2455  }
  2456  
  2457  // DeleteTapeArchive API operation for AWS Storage Gateway.
  2458  //
  2459  // Deletes the specified virtual tape from the virtual tape shelf (VTS). This
  2460  // operation is only supported in the tape gateway type.
  2461  //
  2462  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2463  // with awserr.Error's Code and Message methods to get detailed information about
  2464  // the error.
  2465  //
  2466  // See the AWS API reference guide for AWS Storage Gateway's
  2467  // API operation DeleteTapeArchive for usage and error information.
  2468  //
  2469  // Returned Error Types:
  2470  //   * InvalidGatewayRequestException
  2471  //   An exception occurred because an invalid gateway request was issued to the
  2472  //   service. For more information, see the error and message fields.
  2473  //
  2474  //   * InternalServerError
  2475  //   An internal server error has occurred during the request. For more information,
  2476  //   see the error and message fields.
  2477  //
  2478  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapeArchive
  2479  func (c *StorageGateway) DeleteTapeArchive(input *DeleteTapeArchiveInput) (*DeleteTapeArchiveOutput, error) {
  2480  	req, out := c.DeleteTapeArchiveRequest(input)
  2481  	return out, req.Send()
  2482  }
  2483  
  2484  // DeleteTapeArchiveWithContext is the same as DeleteTapeArchive with the addition of
  2485  // the ability to pass a context and additional request options.
  2486  //
  2487  // See DeleteTapeArchive for details on how to use this API operation.
  2488  //
  2489  // The context must be non-nil and will be used for request cancellation. If
  2490  // the context is nil a panic will occur. In the future the SDK may create
  2491  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2492  // for more information on using Contexts.
  2493  func (c *StorageGateway) DeleteTapeArchiveWithContext(ctx aws.Context, input *DeleteTapeArchiveInput, opts ...request.Option) (*DeleteTapeArchiveOutput, error) {
  2494  	req, out := c.DeleteTapeArchiveRequest(input)
  2495  	req.SetContext(ctx)
  2496  	req.ApplyOptions(opts...)
  2497  	return out, req.Send()
  2498  }
  2499  
  2500  const opDeleteTapePool = "DeleteTapePool"
  2501  
  2502  // DeleteTapePoolRequest generates a "aws/request.Request" representing the
  2503  // client's request for the DeleteTapePool operation. The "output" return
  2504  // value will be populated with the request's response once the request completes
  2505  // successfully.
  2506  //
  2507  // Use "Send" method on the returned Request to send the API call to the service.
  2508  // the "output" return value is not valid until after Send returns without error.
  2509  //
  2510  // See DeleteTapePool for more information on using the DeleteTapePool
  2511  // API call, and error handling.
  2512  //
  2513  // This method is useful when you want to inject custom logic or configuration
  2514  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2515  //
  2516  //
  2517  //    // Example sending a request using the DeleteTapePoolRequest method.
  2518  //    req, resp := client.DeleteTapePoolRequest(params)
  2519  //
  2520  //    err := req.Send()
  2521  //    if err == nil { // resp is now filled
  2522  //        fmt.Println(resp)
  2523  //    }
  2524  //
  2525  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapePool
  2526  func (c *StorageGateway) DeleteTapePoolRequest(input *DeleteTapePoolInput) (req *request.Request, output *DeleteTapePoolOutput) {
  2527  	op := &request.Operation{
  2528  		Name:       opDeleteTapePool,
  2529  		HTTPMethod: "POST",
  2530  		HTTPPath:   "/",
  2531  	}
  2532  
  2533  	if input == nil {
  2534  		input = &DeleteTapePoolInput{}
  2535  	}
  2536  
  2537  	output = &DeleteTapePoolOutput{}
  2538  	req = c.newRequest(op, input, output)
  2539  	return
  2540  }
  2541  
  2542  // DeleteTapePool API operation for AWS Storage Gateway.
  2543  //
  2544  // Delete a custom tape pool. A custom tape pool can only be deleted if there
  2545  // are no tapes in the pool and if there are no automatic tape creation policies
  2546  // that reference the custom tape pool.
  2547  //
  2548  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2549  // with awserr.Error's Code and Message methods to get detailed information about
  2550  // the error.
  2551  //
  2552  // See the AWS API reference guide for AWS Storage Gateway's
  2553  // API operation DeleteTapePool for usage and error information.
  2554  //
  2555  // Returned Error Types:
  2556  //   * InvalidGatewayRequestException
  2557  //   An exception occurred because an invalid gateway request was issued to the
  2558  //   service. For more information, see the error and message fields.
  2559  //
  2560  //   * InternalServerError
  2561  //   An internal server error has occurred during the request. For more information,
  2562  //   see the error and message fields.
  2563  //
  2564  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapePool
  2565  func (c *StorageGateway) DeleteTapePool(input *DeleteTapePoolInput) (*DeleteTapePoolOutput, error) {
  2566  	req, out := c.DeleteTapePoolRequest(input)
  2567  	return out, req.Send()
  2568  }
  2569  
  2570  // DeleteTapePoolWithContext is the same as DeleteTapePool with the addition of
  2571  // the ability to pass a context and additional request options.
  2572  //
  2573  // See DeleteTapePool for details on how to use this API operation.
  2574  //
  2575  // The context must be non-nil and will be used for request cancellation. If
  2576  // the context is nil a panic will occur. In the future the SDK may create
  2577  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2578  // for more information on using Contexts.
  2579  func (c *StorageGateway) DeleteTapePoolWithContext(ctx aws.Context, input *DeleteTapePoolInput, opts ...request.Option) (*DeleteTapePoolOutput, error) {
  2580  	req, out := c.DeleteTapePoolRequest(input)
  2581  	req.SetContext(ctx)
  2582  	req.ApplyOptions(opts...)
  2583  	return out, req.Send()
  2584  }
  2585  
  2586  const opDeleteVolume = "DeleteVolume"
  2587  
  2588  // DeleteVolumeRequest generates a "aws/request.Request" representing the
  2589  // client's request for the DeleteVolume operation. The "output" return
  2590  // value will be populated with the request's response once the request completes
  2591  // successfully.
  2592  //
  2593  // Use "Send" method on the returned Request to send the API call to the service.
  2594  // the "output" return value is not valid until after Send returns without error.
  2595  //
  2596  // See DeleteVolume for more information on using the DeleteVolume
  2597  // API call, and error handling.
  2598  //
  2599  // This method is useful when you want to inject custom logic or configuration
  2600  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2601  //
  2602  //
  2603  //    // Example sending a request using the DeleteVolumeRequest method.
  2604  //    req, resp := client.DeleteVolumeRequest(params)
  2605  //
  2606  //    err := req.Send()
  2607  //    if err == nil { // resp is now filled
  2608  //        fmt.Println(resp)
  2609  //    }
  2610  //
  2611  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteVolume
  2612  func (c *StorageGateway) DeleteVolumeRequest(input *DeleteVolumeInput) (req *request.Request, output *DeleteVolumeOutput) {
  2613  	op := &request.Operation{
  2614  		Name:       opDeleteVolume,
  2615  		HTTPMethod: "POST",
  2616  		HTTPPath:   "/",
  2617  	}
  2618  
  2619  	if input == nil {
  2620  		input = &DeleteVolumeInput{}
  2621  	}
  2622  
  2623  	output = &DeleteVolumeOutput{}
  2624  	req = c.newRequest(op, input, output)
  2625  	return
  2626  }
  2627  
  2628  // DeleteVolume API operation for AWS Storage Gateway.
  2629  //
  2630  // Deletes the specified storage volume that you previously created using the
  2631  // CreateCachediSCSIVolume or CreateStorediSCSIVolume API. This operation is
  2632  // only supported in the cached volume and stored volume types. For stored volume
  2633  // gateways, the local disk that was configured as the storage volume is not
  2634  // deleted. You can reuse the local disk to create another storage volume.
  2635  //
  2636  // Before you delete a volume, make sure there are no iSCSI connections to the
  2637  // volume you are deleting. You should also make sure there is no snapshot in
  2638  // progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to
  2639  // query snapshots on the volume you are deleting and check the snapshot status.
  2640  // For more information, go to DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
  2641  // in the Amazon Elastic Compute Cloud API Reference.
  2642  //
  2643  // In the request, you must provide the Amazon Resource Name (ARN) of the storage
  2644  // volume you want to delete.
  2645  //
  2646  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2647  // with awserr.Error's Code and Message methods to get detailed information about
  2648  // the error.
  2649  //
  2650  // See the AWS API reference guide for AWS Storage Gateway's
  2651  // API operation DeleteVolume for usage and error information.
  2652  //
  2653  // Returned Error Types:
  2654  //   * InvalidGatewayRequestException
  2655  //   An exception occurred because an invalid gateway request was issued to the
  2656  //   service. For more information, see the error and message fields.
  2657  //
  2658  //   * InternalServerError
  2659  //   An internal server error has occurred during the request. For more information,
  2660  //   see the error and message fields.
  2661  //
  2662  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteVolume
  2663  func (c *StorageGateway) DeleteVolume(input *DeleteVolumeInput) (*DeleteVolumeOutput, error) {
  2664  	req, out := c.DeleteVolumeRequest(input)
  2665  	return out, req.Send()
  2666  }
  2667  
  2668  // DeleteVolumeWithContext is the same as DeleteVolume with the addition of
  2669  // the ability to pass a context and additional request options.
  2670  //
  2671  // See DeleteVolume for details on how to use this API operation.
  2672  //
  2673  // The context must be non-nil and will be used for request cancellation. If
  2674  // the context is nil a panic will occur. In the future the SDK may create
  2675  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2676  // for more information on using Contexts.
  2677  func (c *StorageGateway) DeleteVolumeWithContext(ctx aws.Context, input *DeleteVolumeInput, opts ...request.Option) (*DeleteVolumeOutput, error) {
  2678  	req, out := c.DeleteVolumeRequest(input)
  2679  	req.SetContext(ctx)
  2680  	req.ApplyOptions(opts...)
  2681  	return out, req.Send()
  2682  }
  2683  
  2684  const opDescribeAvailabilityMonitorTest = "DescribeAvailabilityMonitorTest"
  2685  
  2686  // DescribeAvailabilityMonitorTestRequest generates a "aws/request.Request" representing the
  2687  // client's request for the DescribeAvailabilityMonitorTest operation. The "output" return
  2688  // value will be populated with the request's response once the request completes
  2689  // successfully.
  2690  //
  2691  // Use "Send" method on the returned Request to send the API call to the service.
  2692  // the "output" return value is not valid until after Send returns without error.
  2693  //
  2694  // See DescribeAvailabilityMonitorTest for more information on using the DescribeAvailabilityMonitorTest
  2695  // API call, and error handling.
  2696  //
  2697  // This method is useful when you want to inject custom logic or configuration
  2698  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2699  //
  2700  //
  2701  //    // Example sending a request using the DescribeAvailabilityMonitorTestRequest method.
  2702  //    req, resp := client.DescribeAvailabilityMonitorTestRequest(params)
  2703  //
  2704  //    err := req.Send()
  2705  //    if err == nil { // resp is now filled
  2706  //        fmt.Println(resp)
  2707  //    }
  2708  //
  2709  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeAvailabilityMonitorTest
  2710  func (c *StorageGateway) DescribeAvailabilityMonitorTestRequest(input *DescribeAvailabilityMonitorTestInput) (req *request.Request, output *DescribeAvailabilityMonitorTestOutput) {
  2711  	op := &request.Operation{
  2712  		Name:       opDescribeAvailabilityMonitorTest,
  2713  		HTTPMethod: "POST",
  2714  		HTTPPath:   "/",
  2715  	}
  2716  
  2717  	if input == nil {
  2718  		input = &DescribeAvailabilityMonitorTestInput{}
  2719  	}
  2720  
  2721  	output = &DescribeAvailabilityMonitorTestOutput{}
  2722  	req = c.newRequest(op, input, output)
  2723  	return
  2724  }
  2725  
  2726  // DescribeAvailabilityMonitorTest API operation for AWS Storage Gateway.
  2727  //
  2728  // Returns information about the most recent high availability monitoring test
  2729  // that was performed on the host in a cluster. If a test isn't performed, the
  2730  // status and start time in the response would be null.
  2731  //
  2732  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2733  // with awserr.Error's Code and Message methods to get detailed information about
  2734  // the error.
  2735  //
  2736  // See the AWS API reference guide for AWS Storage Gateway's
  2737  // API operation DescribeAvailabilityMonitorTest for usage and error information.
  2738  //
  2739  // Returned Error Types:
  2740  //   * InvalidGatewayRequestException
  2741  //   An exception occurred because an invalid gateway request was issued to the
  2742  //   service. For more information, see the error and message fields.
  2743  //
  2744  //   * InternalServerError
  2745  //   An internal server error has occurred during the request. For more information,
  2746  //   see the error and message fields.
  2747  //
  2748  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeAvailabilityMonitorTest
  2749  func (c *StorageGateway) DescribeAvailabilityMonitorTest(input *DescribeAvailabilityMonitorTestInput) (*DescribeAvailabilityMonitorTestOutput, error) {
  2750  	req, out := c.DescribeAvailabilityMonitorTestRequest(input)
  2751  	return out, req.Send()
  2752  }
  2753  
  2754  // DescribeAvailabilityMonitorTestWithContext is the same as DescribeAvailabilityMonitorTest with the addition of
  2755  // the ability to pass a context and additional request options.
  2756  //
  2757  // See DescribeAvailabilityMonitorTest for details on how to use this API operation.
  2758  //
  2759  // The context must be non-nil and will be used for request cancellation. If
  2760  // the context is nil a panic will occur. In the future the SDK may create
  2761  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2762  // for more information on using Contexts.
  2763  func (c *StorageGateway) DescribeAvailabilityMonitorTestWithContext(ctx aws.Context, input *DescribeAvailabilityMonitorTestInput, opts ...request.Option) (*DescribeAvailabilityMonitorTestOutput, error) {
  2764  	req, out := c.DescribeAvailabilityMonitorTestRequest(input)
  2765  	req.SetContext(ctx)
  2766  	req.ApplyOptions(opts...)
  2767  	return out, req.Send()
  2768  }
  2769  
  2770  const opDescribeBandwidthRateLimit = "DescribeBandwidthRateLimit"
  2771  
  2772  // DescribeBandwidthRateLimitRequest generates a "aws/request.Request" representing the
  2773  // client's request for the DescribeBandwidthRateLimit operation. The "output" return
  2774  // value will be populated with the request's response once the request completes
  2775  // successfully.
  2776  //
  2777  // Use "Send" method on the returned Request to send the API call to the service.
  2778  // the "output" return value is not valid until after Send returns without error.
  2779  //
  2780  // See DescribeBandwidthRateLimit for more information on using the DescribeBandwidthRateLimit
  2781  // API call, and error handling.
  2782  //
  2783  // This method is useful when you want to inject custom logic or configuration
  2784  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2785  //
  2786  //
  2787  //    // Example sending a request using the DescribeBandwidthRateLimitRequest method.
  2788  //    req, resp := client.DescribeBandwidthRateLimitRequest(params)
  2789  //
  2790  //    err := req.Send()
  2791  //    if err == nil { // resp is now filled
  2792  //        fmt.Println(resp)
  2793  //    }
  2794  //
  2795  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimit
  2796  func (c *StorageGateway) DescribeBandwidthRateLimitRequest(input *DescribeBandwidthRateLimitInput) (req *request.Request, output *DescribeBandwidthRateLimitOutput) {
  2797  	op := &request.Operation{
  2798  		Name:       opDescribeBandwidthRateLimit,
  2799  		HTTPMethod: "POST",
  2800  		HTTPPath:   "/",
  2801  	}
  2802  
  2803  	if input == nil {
  2804  		input = &DescribeBandwidthRateLimitInput{}
  2805  	}
  2806  
  2807  	output = &DescribeBandwidthRateLimitOutput{}
  2808  	req = c.newRequest(op, input, output)
  2809  	return
  2810  }
  2811  
  2812  // DescribeBandwidthRateLimit API operation for AWS Storage Gateway.
  2813  //
  2814  // Returns the bandwidth rate limits of a gateway. By default, these limits
  2815  // are not set, which means no bandwidth rate limiting is in effect. This operation
  2816  // is supported for the stored volume, cached volume, and tape gateway types.
  2817  //
  2818  // This operation only returns a value for a bandwidth rate limit only if the
  2819  // limit is set. If no limits are set for the gateway, then this operation returns
  2820  // only the gateway ARN in the response body. To specify which gateway to describe,
  2821  // use the Amazon Resource Name (ARN) of the gateway in your request.
  2822  //
  2823  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2824  // with awserr.Error's Code and Message methods to get detailed information about
  2825  // the error.
  2826  //
  2827  // See the AWS API reference guide for AWS Storage Gateway's
  2828  // API operation DescribeBandwidthRateLimit for usage and error information.
  2829  //
  2830  // Returned Error Types:
  2831  //   * InvalidGatewayRequestException
  2832  //   An exception occurred because an invalid gateway request was issued to the
  2833  //   service. For more information, see the error and message fields.
  2834  //
  2835  //   * InternalServerError
  2836  //   An internal server error has occurred during the request. For more information,
  2837  //   see the error and message fields.
  2838  //
  2839  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimit
  2840  func (c *StorageGateway) DescribeBandwidthRateLimit(input *DescribeBandwidthRateLimitInput) (*DescribeBandwidthRateLimitOutput, error) {
  2841  	req, out := c.DescribeBandwidthRateLimitRequest(input)
  2842  	return out, req.Send()
  2843  }
  2844  
  2845  // DescribeBandwidthRateLimitWithContext is the same as DescribeBandwidthRateLimit with the addition of
  2846  // the ability to pass a context and additional request options.
  2847  //
  2848  // See DescribeBandwidthRateLimit for details on how to use this API operation.
  2849  //
  2850  // The context must be non-nil and will be used for request cancellation. If
  2851  // the context is nil a panic will occur. In the future the SDK may create
  2852  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2853  // for more information on using Contexts.
  2854  func (c *StorageGateway) DescribeBandwidthRateLimitWithContext(ctx aws.Context, input *DescribeBandwidthRateLimitInput, opts ...request.Option) (*DescribeBandwidthRateLimitOutput, error) {
  2855  	req, out := c.DescribeBandwidthRateLimitRequest(input)
  2856  	req.SetContext(ctx)
  2857  	req.ApplyOptions(opts...)
  2858  	return out, req.Send()
  2859  }
  2860  
  2861  const opDescribeBandwidthRateLimitSchedule = "DescribeBandwidthRateLimitSchedule"
  2862  
  2863  // DescribeBandwidthRateLimitScheduleRequest generates a "aws/request.Request" representing the
  2864  // client's request for the DescribeBandwidthRateLimitSchedule operation. The "output" return
  2865  // value will be populated with the request's response once the request completes
  2866  // successfully.
  2867  //
  2868  // Use "Send" method on the returned Request to send the API call to the service.
  2869  // the "output" return value is not valid until after Send returns without error.
  2870  //
  2871  // See DescribeBandwidthRateLimitSchedule for more information on using the DescribeBandwidthRateLimitSchedule
  2872  // API call, and error handling.
  2873  //
  2874  // This method is useful when you want to inject custom logic or configuration
  2875  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2876  //
  2877  //
  2878  //    // Example sending a request using the DescribeBandwidthRateLimitScheduleRequest method.
  2879  //    req, resp := client.DescribeBandwidthRateLimitScheduleRequest(params)
  2880  //
  2881  //    err := req.Send()
  2882  //    if err == nil { // resp is now filled
  2883  //        fmt.Println(resp)
  2884  //    }
  2885  //
  2886  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimitSchedule
  2887  func (c *StorageGateway) DescribeBandwidthRateLimitScheduleRequest(input *DescribeBandwidthRateLimitScheduleInput) (req *request.Request, output *DescribeBandwidthRateLimitScheduleOutput) {
  2888  	op := &request.Operation{
  2889  		Name:       opDescribeBandwidthRateLimitSchedule,
  2890  		HTTPMethod: "POST",
  2891  		HTTPPath:   "/",
  2892  	}
  2893  
  2894  	if input == nil {
  2895  		input = &DescribeBandwidthRateLimitScheduleInput{}
  2896  	}
  2897  
  2898  	output = &DescribeBandwidthRateLimitScheduleOutput{}
  2899  	req = c.newRequest(op, input, output)
  2900  	return
  2901  }
  2902  
  2903  // DescribeBandwidthRateLimitSchedule API operation for AWS Storage Gateway.
  2904  //
  2905  // Returns information about the bandwidth rate limit schedule of a gateway.
  2906  // By default, gateways do not have bandwidth rate limit schedules, which means
  2907  // no bandwidth rate limiting is in effect. This operation is supported only
  2908  // in the volume and tape gateway types.
  2909  //
  2910  // This operation returns information about a gateway's bandwidth rate limit
  2911  // schedule. A bandwidth rate limit schedule consists of one or more bandwidth
  2912  // rate limit intervals. A bandwidth rate limit interval defines a period of
  2913  // time on one or more days of the week, during which bandwidth rate limits
  2914  // are specified for uploading, downloading, or both.
  2915  //
  2916  // A bandwidth rate limit interval consists of one or more days of the week,
  2917  // a start hour and minute, an ending hour and minute, and bandwidth rate limits
  2918  // for uploading and downloading
  2919  //
  2920  // If no bandwidth rate limit schedule intervals are set for the gateway, this
  2921  // operation returns an empty response. To specify which gateway to describe,
  2922  // use the Amazon Resource Name (ARN) of the gateway in your request.
  2923  //
  2924  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2925  // with awserr.Error's Code and Message methods to get detailed information about
  2926  // the error.
  2927  //
  2928  // See the AWS API reference guide for AWS Storage Gateway's
  2929  // API operation DescribeBandwidthRateLimitSchedule for usage and error information.
  2930  //
  2931  // Returned Error Types:
  2932  //   * InvalidGatewayRequestException
  2933  //   An exception occurred because an invalid gateway request was issued to the
  2934  //   service. For more information, see the error and message fields.
  2935  //
  2936  //   * InternalServerError
  2937  //   An internal server error has occurred during the request. For more information,
  2938  //   see the error and message fields.
  2939  //
  2940  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimitSchedule
  2941  func (c *StorageGateway) DescribeBandwidthRateLimitSchedule(input *DescribeBandwidthRateLimitScheduleInput) (*DescribeBandwidthRateLimitScheduleOutput, error) {
  2942  	req, out := c.DescribeBandwidthRateLimitScheduleRequest(input)
  2943  	return out, req.Send()
  2944  }
  2945  
  2946  // DescribeBandwidthRateLimitScheduleWithContext is the same as DescribeBandwidthRateLimitSchedule with the addition of
  2947  // the ability to pass a context and additional request options.
  2948  //
  2949  // See DescribeBandwidthRateLimitSchedule for details on how to use this API operation.
  2950  //
  2951  // The context must be non-nil and will be used for request cancellation. If
  2952  // the context is nil a panic will occur. In the future the SDK may create
  2953  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2954  // for more information on using Contexts.
  2955  func (c *StorageGateway) DescribeBandwidthRateLimitScheduleWithContext(ctx aws.Context, input *DescribeBandwidthRateLimitScheduleInput, opts ...request.Option) (*DescribeBandwidthRateLimitScheduleOutput, error) {
  2956  	req, out := c.DescribeBandwidthRateLimitScheduleRequest(input)
  2957  	req.SetContext(ctx)
  2958  	req.ApplyOptions(opts...)
  2959  	return out, req.Send()
  2960  }
  2961  
  2962  const opDescribeCache = "DescribeCache"
  2963  
  2964  // DescribeCacheRequest generates a "aws/request.Request" representing the
  2965  // client's request for the DescribeCache operation. The "output" return
  2966  // value will be populated with the request's response once the request completes
  2967  // successfully.
  2968  //
  2969  // Use "Send" method on the returned Request to send the API call to the service.
  2970  // the "output" return value is not valid until after Send returns without error.
  2971  //
  2972  // See DescribeCache for more information on using the DescribeCache
  2973  // API call, and error handling.
  2974  //
  2975  // This method is useful when you want to inject custom logic or configuration
  2976  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2977  //
  2978  //
  2979  //    // Example sending a request using the DescribeCacheRequest method.
  2980  //    req, resp := client.DescribeCacheRequest(params)
  2981  //
  2982  //    err := req.Send()
  2983  //    if err == nil { // resp is now filled
  2984  //        fmt.Println(resp)
  2985  //    }
  2986  //
  2987  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCache
  2988  func (c *StorageGateway) DescribeCacheRequest(input *DescribeCacheInput) (req *request.Request, output *DescribeCacheOutput) {
  2989  	op := &request.Operation{
  2990  		Name:       opDescribeCache,
  2991  		HTTPMethod: "POST",
  2992  		HTTPPath:   "/",
  2993  	}
  2994  
  2995  	if input == nil {
  2996  		input = &DescribeCacheInput{}
  2997  	}
  2998  
  2999  	output = &DescribeCacheOutput{}
  3000  	req = c.newRequest(op, input, output)
  3001  	return
  3002  }
  3003  
  3004  // DescribeCache API operation for AWS Storage Gateway.
  3005  //
  3006  // Returns information about the cache of a gateway. This operation is only
  3007  // supported in the cached volume, tape, and file gateway types.
  3008  //
  3009  // The response includes disk IDs that are configured as cache, and it includes
  3010  // the amount of cache allocated and used.
  3011  //
  3012  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3013  // with awserr.Error's Code and Message methods to get detailed information about
  3014  // the error.
  3015  //
  3016  // See the AWS API reference guide for AWS Storage Gateway's
  3017  // API operation DescribeCache for usage and error information.
  3018  //
  3019  // Returned Error Types:
  3020  //   * InvalidGatewayRequestException
  3021  //   An exception occurred because an invalid gateway request was issued to the
  3022  //   service. For more information, see the error and message fields.
  3023  //
  3024  //   * InternalServerError
  3025  //   An internal server error has occurred during the request. For more information,
  3026  //   see the error and message fields.
  3027  //
  3028  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCache
  3029  func (c *StorageGateway) DescribeCache(input *DescribeCacheInput) (*DescribeCacheOutput, error) {
  3030  	req, out := c.DescribeCacheRequest(input)
  3031  	return out, req.Send()
  3032  }
  3033  
  3034  // DescribeCacheWithContext is the same as DescribeCache with the addition of
  3035  // the ability to pass a context and additional request options.
  3036  //
  3037  // See DescribeCache for details on how to use this API operation.
  3038  //
  3039  // The context must be non-nil and will be used for request cancellation. If
  3040  // the context is nil a panic will occur. In the future the SDK may create
  3041  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3042  // for more information on using Contexts.
  3043  func (c *StorageGateway) DescribeCacheWithContext(ctx aws.Context, input *DescribeCacheInput, opts ...request.Option) (*DescribeCacheOutput, error) {
  3044  	req, out := c.DescribeCacheRequest(input)
  3045  	req.SetContext(ctx)
  3046  	req.ApplyOptions(opts...)
  3047  	return out, req.Send()
  3048  }
  3049  
  3050  const opDescribeCachediSCSIVolumes = "DescribeCachediSCSIVolumes"
  3051  
  3052  // DescribeCachediSCSIVolumesRequest generates a "aws/request.Request" representing the
  3053  // client's request for the DescribeCachediSCSIVolumes operation. The "output" return
  3054  // value will be populated with the request's response once the request completes
  3055  // successfully.
  3056  //
  3057  // Use "Send" method on the returned Request to send the API call to the service.
  3058  // the "output" return value is not valid until after Send returns without error.
  3059  //
  3060  // See DescribeCachediSCSIVolumes for more information on using the DescribeCachediSCSIVolumes
  3061  // API call, and error handling.
  3062  //
  3063  // This method is useful when you want to inject custom logic or configuration
  3064  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3065  //
  3066  //
  3067  //    // Example sending a request using the DescribeCachediSCSIVolumesRequest method.
  3068  //    req, resp := client.DescribeCachediSCSIVolumesRequest(params)
  3069  //
  3070  //    err := req.Send()
  3071  //    if err == nil { // resp is now filled
  3072  //        fmt.Println(resp)
  3073  //    }
  3074  //
  3075  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCachediSCSIVolumes
  3076  func (c *StorageGateway) DescribeCachediSCSIVolumesRequest(input *DescribeCachediSCSIVolumesInput) (req *request.Request, output *DescribeCachediSCSIVolumesOutput) {
  3077  	op := &request.Operation{
  3078  		Name:       opDescribeCachediSCSIVolumes,
  3079  		HTTPMethod: "POST",
  3080  		HTTPPath:   "/",
  3081  	}
  3082  
  3083  	if input == nil {
  3084  		input = &DescribeCachediSCSIVolumesInput{}
  3085  	}
  3086  
  3087  	output = &DescribeCachediSCSIVolumesOutput{}
  3088  	req = c.newRequest(op, input, output)
  3089  	return
  3090  }
  3091  
  3092  // DescribeCachediSCSIVolumes API operation for AWS Storage Gateway.
  3093  //
  3094  // Returns a description of the gateway volumes specified in the request. This
  3095  // operation is only supported in the cached volume gateway types.
  3096  //
  3097  // The list of gateway volumes in the request must be from one gateway. In the
  3098  // response, Storage Gateway returns volume information sorted by volume Amazon
  3099  // Resource Name (ARN).
  3100  //
  3101  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3102  // with awserr.Error's Code and Message methods to get detailed information about
  3103  // the error.
  3104  //
  3105  // See the AWS API reference guide for AWS Storage Gateway's
  3106  // API operation DescribeCachediSCSIVolumes for usage and error information.
  3107  //
  3108  // Returned Error Types:
  3109  //   * InvalidGatewayRequestException
  3110  //   An exception occurred because an invalid gateway request was issued to the
  3111  //   service. For more information, see the error and message fields.
  3112  //
  3113  //   * InternalServerError
  3114  //   An internal server error has occurred during the request. For more information,
  3115  //   see the error and message fields.
  3116  //
  3117  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCachediSCSIVolumes
  3118  func (c *StorageGateway) DescribeCachediSCSIVolumes(input *DescribeCachediSCSIVolumesInput) (*DescribeCachediSCSIVolumesOutput, error) {
  3119  	req, out := c.DescribeCachediSCSIVolumesRequest(input)
  3120  	return out, req.Send()
  3121  }
  3122  
  3123  // DescribeCachediSCSIVolumesWithContext is the same as DescribeCachediSCSIVolumes with the addition of
  3124  // the ability to pass a context and additional request options.
  3125  //
  3126  // See DescribeCachediSCSIVolumes for details on how to use this API operation.
  3127  //
  3128  // The context must be non-nil and will be used for request cancellation. If
  3129  // the context is nil a panic will occur. In the future the SDK may create
  3130  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3131  // for more information on using Contexts.
  3132  func (c *StorageGateway) DescribeCachediSCSIVolumesWithContext(ctx aws.Context, input *DescribeCachediSCSIVolumesInput, opts ...request.Option) (*DescribeCachediSCSIVolumesOutput, error) {
  3133  	req, out := c.DescribeCachediSCSIVolumesRequest(input)
  3134  	req.SetContext(ctx)
  3135  	req.ApplyOptions(opts...)
  3136  	return out, req.Send()
  3137  }
  3138  
  3139  const opDescribeChapCredentials = "DescribeChapCredentials"
  3140  
  3141  // DescribeChapCredentialsRequest generates a "aws/request.Request" representing the
  3142  // client's request for the DescribeChapCredentials operation. The "output" return
  3143  // value will be populated with the request's response once the request completes
  3144  // successfully.
  3145  //
  3146  // Use "Send" method on the returned Request to send the API call to the service.
  3147  // the "output" return value is not valid until after Send returns without error.
  3148  //
  3149  // See DescribeChapCredentials for more information on using the DescribeChapCredentials
  3150  // API call, and error handling.
  3151  //
  3152  // This method is useful when you want to inject custom logic or configuration
  3153  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3154  //
  3155  //
  3156  //    // Example sending a request using the DescribeChapCredentialsRequest method.
  3157  //    req, resp := client.DescribeChapCredentialsRequest(params)
  3158  //
  3159  //    err := req.Send()
  3160  //    if err == nil { // resp is now filled
  3161  //        fmt.Println(resp)
  3162  //    }
  3163  //
  3164  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeChapCredentials
  3165  func (c *StorageGateway) DescribeChapCredentialsRequest(input *DescribeChapCredentialsInput) (req *request.Request, output *DescribeChapCredentialsOutput) {
  3166  	op := &request.Operation{
  3167  		Name:       opDescribeChapCredentials,
  3168  		HTTPMethod: "POST",
  3169  		HTTPPath:   "/",
  3170  	}
  3171  
  3172  	if input == nil {
  3173  		input = &DescribeChapCredentialsInput{}
  3174  	}
  3175  
  3176  	output = &DescribeChapCredentialsOutput{}
  3177  	req = c.newRequest(op, input, output)
  3178  	return
  3179  }
  3180  
  3181  // DescribeChapCredentials API operation for AWS Storage Gateway.
  3182  //
  3183  // Returns an array of Challenge-Handshake Authentication Protocol (CHAP) credentials
  3184  // information for a specified iSCSI target, one for each target-initiator pair.
  3185  // This operation is supported in the volume and tape gateway types.
  3186  //
  3187  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3188  // with awserr.Error's Code and Message methods to get detailed information about
  3189  // the error.
  3190  //
  3191  // See the AWS API reference guide for AWS Storage Gateway's
  3192  // API operation DescribeChapCredentials for usage and error information.
  3193  //
  3194  // Returned Error Types:
  3195  //   * InvalidGatewayRequestException
  3196  //   An exception occurred because an invalid gateway request was issued to the
  3197  //   service. For more information, see the error and message fields.
  3198  //
  3199  //   * InternalServerError
  3200  //   An internal server error has occurred during the request. For more information,
  3201  //   see the error and message fields.
  3202  //
  3203  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeChapCredentials
  3204  func (c *StorageGateway) DescribeChapCredentials(input *DescribeChapCredentialsInput) (*DescribeChapCredentialsOutput, error) {
  3205  	req, out := c.DescribeChapCredentialsRequest(input)
  3206  	return out, req.Send()
  3207  }
  3208  
  3209  // DescribeChapCredentialsWithContext is the same as DescribeChapCredentials with the addition of
  3210  // the ability to pass a context and additional request options.
  3211  //
  3212  // See DescribeChapCredentials for details on how to use this API operation.
  3213  //
  3214  // The context must be non-nil and will be used for request cancellation. If
  3215  // the context is nil a panic will occur. In the future the SDK may create
  3216  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3217  // for more information on using Contexts.
  3218  func (c *StorageGateway) DescribeChapCredentialsWithContext(ctx aws.Context, input *DescribeChapCredentialsInput, opts ...request.Option) (*DescribeChapCredentialsOutput, error) {
  3219  	req, out := c.DescribeChapCredentialsRequest(input)
  3220  	req.SetContext(ctx)
  3221  	req.ApplyOptions(opts...)
  3222  	return out, req.Send()
  3223  }
  3224  
  3225  const opDescribeFileSystemAssociations = "DescribeFileSystemAssociations"
  3226  
  3227  // DescribeFileSystemAssociationsRequest generates a "aws/request.Request" representing the
  3228  // client's request for the DescribeFileSystemAssociations operation. The "output" return
  3229  // value will be populated with the request's response once the request completes
  3230  // successfully.
  3231  //
  3232  // Use "Send" method on the returned Request to send the API call to the service.
  3233  // the "output" return value is not valid until after Send returns without error.
  3234  //
  3235  // See DescribeFileSystemAssociations for more information on using the DescribeFileSystemAssociations
  3236  // API call, and error handling.
  3237  //
  3238  // This method is useful when you want to inject custom logic or configuration
  3239  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3240  //
  3241  //
  3242  //    // Example sending a request using the DescribeFileSystemAssociationsRequest method.
  3243  //    req, resp := client.DescribeFileSystemAssociationsRequest(params)
  3244  //
  3245  //    err := req.Send()
  3246  //    if err == nil { // resp is now filled
  3247  //        fmt.Println(resp)
  3248  //    }
  3249  //
  3250  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeFileSystemAssociations
  3251  func (c *StorageGateway) DescribeFileSystemAssociationsRequest(input *DescribeFileSystemAssociationsInput) (req *request.Request, output *DescribeFileSystemAssociationsOutput) {
  3252  	op := &request.Operation{
  3253  		Name:       opDescribeFileSystemAssociations,
  3254  		HTTPMethod: "POST",
  3255  		HTTPPath:   "/",
  3256  	}
  3257  
  3258  	if input == nil {
  3259  		input = &DescribeFileSystemAssociationsInput{}
  3260  	}
  3261  
  3262  	output = &DescribeFileSystemAssociationsOutput{}
  3263  	req = c.newRequest(op, input, output)
  3264  	return
  3265  }
  3266  
  3267  // DescribeFileSystemAssociations API operation for AWS Storage Gateway.
  3268  //
  3269  // Gets the file system association information. This operation is only supported
  3270  // for FSx File Gateways.
  3271  //
  3272  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3273  // with awserr.Error's Code and Message methods to get detailed information about
  3274  // the error.
  3275  //
  3276  // See the AWS API reference guide for AWS Storage Gateway's
  3277  // API operation DescribeFileSystemAssociations for usage and error information.
  3278  //
  3279  // Returned Error Types:
  3280  //   * InvalidGatewayRequestException
  3281  //   An exception occurred because an invalid gateway request was issued to the
  3282  //   service. For more information, see the error and message fields.
  3283  //
  3284  //   * InternalServerError
  3285  //   An internal server error has occurred during the request. For more information,
  3286  //   see the error and message fields.
  3287  //
  3288  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeFileSystemAssociations
  3289  func (c *StorageGateway) DescribeFileSystemAssociations(input *DescribeFileSystemAssociationsInput) (*DescribeFileSystemAssociationsOutput, error) {
  3290  	req, out := c.DescribeFileSystemAssociationsRequest(input)
  3291  	return out, req.Send()
  3292  }
  3293  
  3294  // DescribeFileSystemAssociationsWithContext is the same as DescribeFileSystemAssociations with the addition of
  3295  // the ability to pass a context and additional request options.
  3296  //
  3297  // See DescribeFileSystemAssociations for details on how to use this API operation.
  3298  //
  3299  // The context must be non-nil and will be used for request cancellation. If
  3300  // the context is nil a panic will occur. In the future the SDK may create
  3301  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3302  // for more information on using Contexts.
  3303  func (c *StorageGateway) DescribeFileSystemAssociationsWithContext(ctx aws.Context, input *DescribeFileSystemAssociationsInput, opts ...request.Option) (*DescribeFileSystemAssociationsOutput, error) {
  3304  	req, out := c.DescribeFileSystemAssociationsRequest(input)
  3305  	req.SetContext(ctx)
  3306  	req.ApplyOptions(opts...)
  3307  	return out, req.Send()
  3308  }
  3309  
  3310  const opDescribeGatewayInformation = "DescribeGatewayInformation"
  3311  
  3312  // DescribeGatewayInformationRequest generates a "aws/request.Request" representing the
  3313  // client's request for the DescribeGatewayInformation operation. The "output" return
  3314  // value will be populated with the request's response once the request completes
  3315  // successfully.
  3316  //
  3317  // Use "Send" method on the returned Request to send the API call to the service.
  3318  // the "output" return value is not valid until after Send returns without error.
  3319  //
  3320  // See DescribeGatewayInformation for more information on using the DescribeGatewayInformation
  3321  // API call, and error handling.
  3322  //
  3323  // This method is useful when you want to inject custom logic or configuration
  3324  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3325  //
  3326  //
  3327  //    // Example sending a request using the DescribeGatewayInformationRequest method.
  3328  //    req, resp := client.DescribeGatewayInformationRequest(params)
  3329  //
  3330  //    err := req.Send()
  3331  //    if err == nil { // resp is now filled
  3332  //        fmt.Println(resp)
  3333  //    }
  3334  //
  3335  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeGatewayInformation
  3336  func (c *StorageGateway) DescribeGatewayInformationRequest(input *DescribeGatewayInformationInput) (req *request.Request, output *DescribeGatewayInformationOutput) {
  3337  	op := &request.Operation{
  3338  		Name:       opDescribeGatewayInformation,
  3339  		HTTPMethod: "POST",
  3340  		HTTPPath:   "/",
  3341  	}
  3342  
  3343  	if input == nil {
  3344  		input = &DescribeGatewayInformationInput{}
  3345  	}
  3346  
  3347  	output = &DescribeGatewayInformationOutput{}
  3348  	req = c.newRequest(op, input, output)
  3349  	return
  3350  }
  3351  
  3352  // DescribeGatewayInformation API operation for AWS Storage Gateway.
  3353  //
  3354  // Returns metadata about a gateway such as its name, network interfaces, configured
  3355  // time zone, and the state (whether the gateway is running or not). To specify
  3356  // which gateway to describe, use the Amazon Resource Name (ARN) of the gateway
  3357  // in your request.
  3358  //
  3359  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3360  // with awserr.Error's Code and Message methods to get detailed information about
  3361  // the error.
  3362  //
  3363  // See the AWS API reference guide for AWS Storage Gateway's
  3364  // API operation DescribeGatewayInformation for usage and error information.
  3365  //
  3366  // Returned Error Types:
  3367  //   * InvalidGatewayRequestException
  3368  //   An exception occurred because an invalid gateway request was issued to the
  3369  //   service. For more information, see the error and message fields.
  3370  //
  3371  //   * InternalServerError
  3372  //   An internal server error has occurred during the request. For more information,
  3373  //   see the error and message fields.
  3374  //
  3375  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeGatewayInformation
  3376  func (c *StorageGateway) DescribeGatewayInformation(input *DescribeGatewayInformationInput) (*DescribeGatewayInformationOutput, error) {
  3377  	req, out := c.DescribeGatewayInformationRequest(input)
  3378  	return out, req.Send()
  3379  }
  3380  
  3381  // DescribeGatewayInformationWithContext is the same as DescribeGatewayInformation with the addition of
  3382  // the ability to pass a context and additional request options.
  3383  //
  3384  // See DescribeGatewayInformation for details on how to use this API operation.
  3385  //
  3386  // The context must be non-nil and will be used for request cancellation. If
  3387  // the context is nil a panic will occur. In the future the SDK may create
  3388  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3389  // for more information on using Contexts.
  3390  func (c *StorageGateway) DescribeGatewayInformationWithContext(ctx aws.Context, input *DescribeGatewayInformationInput, opts ...request.Option) (*DescribeGatewayInformationOutput, error) {
  3391  	req, out := c.DescribeGatewayInformationRequest(input)
  3392  	req.SetContext(ctx)
  3393  	req.ApplyOptions(opts...)
  3394  	return out, req.Send()
  3395  }
  3396  
  3397  const opDescribeMaintenanceStartTime = "DescribeMaintenanceStartTime"
  3398  
  3399  // DescribeMaintenanceStartTimeRequest generates a "aws/request.Request" representing the
  3400  // client's request for the DescribeMaintenanceStartTime operation. The "output" return
  3401  // value will be populated with the request's response once the request completes
  3402  // successfully.
  3403  //
  3404  // Use "Send" method on the returned Request to send the API call to the service.
  3405  // the "output" return value is not valid until after Send returns without error.
  3406  //
  3407  // See DescribeMaintenanceStartTime for more information on using the DescribeMaintenanceStartTime
  3408  // API call, and error handling.
  3409  //
  3410  // This method is useful when you want to inject custom logic or configuration
  3411  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3412  //
  3413  //
  3414  //    // Example sending a request using the DescribeMaintenanceStartTimeRequest method.
  3415  //    req, resp := client.DescribeMaintenanceStartTimeRequest(params)
  3416  //
  3417  //    err := req.Send()
  3418  //    if err == nil { // resp is now filled
  3419  //        fmt.Println(resp)
  3420  //    }
  3421  //
  3422  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeMaintenanceStartTime
  3423  func (c *StorageGateway) DescribeMaintenanceStartTimeRequest(input *DescribeMaintenanceStartTimeInput) (req *request.Request, output *DescribeMaintenanceStartTimeOutput) {
  3424  	op := &request.Operation{
  3425  		Name:       opDescribeMaintenanceStartTime,
  3426  		HTTPMethod: "POST",
  3427  		HTTPPath:   "/",
  3428  	}
  3429  
  3430  	if input == nil {
  3431  		input = &DescribeMaintenanceStartTimeInput{}
  3432  	}
  3433  
  3434  	output = &DescribeMaintenanceStartTimeOutput{}
  3435  	req = c.newRequest(op, input, output)
  3436  	return
  3437  }
  3438  
  3439  // DescribeMaintenanceStartTime API operation for AWS Storage Gateway.
  3440  //
  3441  // Returns your gateway's weekly maintenance start time including the day and
  3442  // time of the week. Note that values are in terms of the gateway's time zone.
  3443  //
  3444  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3445  // with awserr.Error's Code and Message methods to get detailed information about
  3446  // the error.
  3447  //
  3448  // See the AWS API reference guide for AWS Storage Gateway's
  3449  // API operation DescribeMaintenanceStartTime for usage and error information.
  3450  //
  3451  // Returned Error Types:
  3452  //   * InvalidGatewayRequestException
  3453  //   An exception occurred because an invalid gateway request was issued to the
  3454  //   service. For more information, see the error and message fields.
  3455  //
  3456  //   * InternalServerError
  3457  //   An internal server error has occurred during the request. For more information,
  3458  //   see the error and message fields.
  3459  //
  3460  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeMaintenanceStartTime
  3461  func (c *StorageGateway) DescribeMaintenanceStartTime(input *DescribeMaintenanceStartTimeInput) (*DescribeMaintenanceStartTimeOutput, error) {
  3462  	req, out := c.DescribeMaintenanceStartTimeRequest(input)
  3463  	return out, req.Send()
  3464  }
  3465  
  3466  // DescribeMaintenanceStartTimeWithContext is the same as DescribeMaintenanceStartTime with the addition of
  3467  // the ability to pass a context and additional request options.
  3468  //
  3469  // See DescribeMaintenanceStartTime for details on how to use this API operation.
  3470  //
  3471  // The context must be non-nil and will be used for request cancellation. If
  3472  // the context is nil a panic will occur. In the future the SDK may create
  3473  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3474  // for more information on using Contexts.
  3475  func (c *StorageGateway) DescribeMaintenanceStartTimeWithContext(ctx aws.Context, input *DescribeMaintenanceStartTimeInput, opts ...request.Option) (*DescribeMaintenanceStartTimeOutput, error) {
  3476  	req, out := c.DescribeMaintenanceStartTimeRequest(input)
  3477  	req.SetContext(ctx)
  3478  	req.ApplyOptions(opts...)
  3479  	return out, req.Send()
  3480  }
  3481  
  3482  const opDescribeNFSFileShares = "DescribeNFSFileShares"
  3483  
  3484  // DescribeNFSFileSharesRequest generates a "aws/request.Request" representing the
  3485  // client's request for the DescribeNFSFileShares operation. The "output" return
  3486  // value will be populated with the request's response once the request completes
  3487  // successfully.
  3488  //
  3489  // Use "Send" method on the returned Request to send the API call to the service.
  3490  // the "output" return value is not valid until after Send returns without error.
  3491  //
  3492  // See DescribeNFSFileShares for more information on using the DescribeNFSFileShares
  3493  // API call, and error handling.
  3494  //
  3495  // This method is useful when you want to inject custom logic or configuration
  3496  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3497  //
  3498  //
  3499  //    // Example sending a request using the DescribeNFSFileSharesRequest method.
  3500  //    req, resp := client.DescribeNFSFileSharesRequest(params)
  3501  //
  3502  //    err := req.Send()
  3503  //    if err == nil { // resp is now filled
  3504  //        fmt.Println(resp)
  3505  //    }
  3506  //
  3507  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeNFSFileShares
  3508  func (c *StorageGateway) DescribeNFSFileSharesRequest(input *DescribeNFSFileSharesInput) (req *request.Request, output *DescribeNFSFileSharesOutput) {
  3509  	op := &request.Operation{
  3510  		Name:       opDescribeNFSFileShares,
  3511  		HTTPMethod: "POST",
  3512  		HTTPPath:   "/",
  3513  	}
  3514  
  3515  	if input == nil {
  3516  		input = &DescribeNFSFileSharesInput{}
  3517  	}
  3518  
  3519  	output = &DescribeNFSFileSharesOutput{}
  3520  	req = c.newRequest(op, input, output)
  3521  	return
  3522  }
  3523  
  3524  // DescribeNFSFileShares API operation for AWS Storage Gateway.
  3525  //
  3526  // Gets a description for one or more Network File System (NFS) file shares
  3527  // from an S3 File Gateway. This operation is only supported for S3 File Gateways.
  3528  //
  3529  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3530  // with awserr.Error's Code and Message methods to get detailed information about
  3531  // the error.
  3532  //
  3533  // See the AWS API reference guide for AWS Storage Gateway's
  3534  // API operation DescribeNFSFileShares for usage and error information.
  3535  //
  3536  // Returned Error Types:
  3537  //   * InvalidGatewayRequestException
  3538  //   An exception occurred because an invalid gateway request was issued to the
  3539  //   service. For more information, see the error and message fields.
  3540  //
  3541  //   * InternalServerError
  3542  //   An internal server error has occurred during the request. For more information,
  3543  //   see the error and message fields.
  3544  //
  3545  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeNFSFileShares
  3546  func (c *StorageGateway) DescribeNFSFileShares(input *DescribeNFSFileSharesInput) (*DescribeNFSFileSharesOutput, error) {
  3547  	req, out := c.DescribeNFSFileSharesRequest(input)
  3548  	return out, req.Send()
  3549  }
  3550  
  3551  // DescribeNFSFileSharesWithContext is the same as DescribeNFSFileShares with the addition of
  3552  // the ability to pass a context and additional request options.
  3553  //
  3554  // See DescribeNFSFileShares for details on how to use this API operation.
  3555  //
  3556  // The context must be non-nil and will be used for request cancellation. If
  3557  // the context is nil a panic will occur. In the future the SDK may create
  3558  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3559  // for more information on using Contexts.
  3560  func (c *StorageGateway) DescribeNFSFileSharesWithContext(ctx aws.Context, input *DescribeNFSFileSharesInput, opts ...request.Option) (*DescribeNFSFileSharesOutput, error) {
  3561  	req, out := c.DescribeNFSFileSharesRequest(input)
  3562  	req.SetContext(ctx)
  3563  	req.ApplyOptions(opts...)
  3564  	return out, req.Send()
  3565  }
  3566  
  3567  const opDescribeSMBFileShares = "DescribeSMBFileShares"
  3568  
  3569  // DescribeSMBFileSharesRequest generates a "aws/request.Request" representing the
  3570  // client's request for the DescribeSMBFileShares operation. The "output" return
  3571  // value will be populated with the request's response once the request completes
  3572  // successfully.
  3573  //
  3574  // Use "Send" method on the returned Request to send the API call to the service.
  3575  // the "output" return value is not valid until after Send returns without error.
  3576  //
  3577  // See DescribeSMBFileShares for more information on using the DescribeSMBFileShares
  3578  // API call, and error handling.
  3579  //
  3580  // This method is useful when you want to inject custom logic or configuration
  3581  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3582  //
  3583  //
  3584  //    // Example sending a request using the DescribeSMBFileSharesRequest method.
  3585  //    req, resp := client.DescribeSMBFileSharesRequest(params)
  3586  //
  3587  //    err := req.Send()
  3588  //    if err == nil { // resp is now filled
  3589  //        fmt.Println(resp)
  3590  //    }
  3591  //
  3592  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBFileShares
  3593  func (c *StorageGateway) DescribeSMBFileSharesRequest(input *DescribeSMBFileSharesInput) (req *request.Request, output *DescribeSMBFileSharesOutput) {
  3594  	op := &request.Operation{
  3595  		Name:       opDescribeSMBFileShares,
  3596  		HTTPMethod: "POST",
  3597  		HTTPPath:   "/",
  3598  	}
  3599  
  3600  	if input == nil {
  3601  		input = &DescribeSMBFileSharesInput{}
  3602  	}
  3603  
  3604  	output = &DescribeSMBFileSharesOutput{}
  3605  	req = c.newRequest(op, input, output)
  3606  	return
  3607  }
  3608  
  3609  // DescribeSMBFileShares API operation for AWS Storage Gateway.
  3610  //
  3611  // Gets a description for one or more Server Message Block (SMB) file shares
  3612  // from a S3 File Gateway. This operation is only supported for S3 File Gateways.
  3613  //
  3614  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3615  // with awserr.Error's Code and Message methods to get detailed information about
  3616  // the error.
  3617  //
  3618  // See the AWS API reference guide for AWS Storage Gateway's
  3619  // API operation DescribeSMBFileShares for usage and error information.
  3620  //
  3621  // Returned Error Types:
  3622  //   * InvalidGatewayRequestException
  3623  //   An exception occurred because an invalid gateway request was issued to the
  3624  //   service. For more information, see the error and message fields.
  3625  //
  3626  //   * InternalServerError
  3627  //   An internal server error has occurred during the request. For more information,
  3628  //   see the error and message fields.
  3629  //
  3630  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBFileShares
  3631  func (c *StorageGateway) DescribeSMBFileShares(input *DescribeSMBFileSharesInput) (*DescribeSMBFileSharesOutput, error) {
  3632  	req, out := c.DescribeSMBFileSharesRequest(input)
  3633  	return out, req.Send()
  3634  }
  3635  
  3636  // DescribeSMBFileSharesWithContext is the same as DescribeSMBFileShares with the addition of
  3637  // the ability to pass a context and additional request options.
  3638  //
  3639  // See DescribeSMBFileShares for details on how to use this API operation.
  3640  //
  3641  // The context must be non-nil and will be used for request cancellation. If
  3642  // the context is nil a panic will occur. In the future the SDK may create
  3643  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3644  // for more information on using Contexts.
  3645  func (c *StorageGateway) DescribeSMBFileSharesWithContext(ctx aws.Context, input *DescribeSMBFileSharesInput, opts ...request.Option) (*DescribeSMBFileSharesOutput, error) {
  3646  	req, out := c.DescribeSMBFileSharesRequest(input)
  3647  	req.SetContext(ctx)
  3648  	req.ApplyOptions(opts...)
  3649  	return out, req.Send()
  3650  }
  3651  
  3652  const opDescribeSMBSettings = "DescribeSMBSettings"
  3653  
  3654  // DescribeSMBSettingsRequest generates a "aws/request.Request" representing the
  3655  // client's request for the DescribeSMBSettings operation. The "output" return
  3656  // value will be populated with the request's response once the request completes
  3657  // successfully.
  3658  //
  3659  // Use "Send" method on the returned Request to send the API call to the service.
  3660  // the "output" return value is not valid until after Send returns without error.
  3661  //
  3662  // See DescribeSMBSettings for more information on using the DescribeSMBSettings
  3663  // API call, and error handling.
  3664  //
  3665  // This method is useful when you want to inject custom logic or configuration
  3666  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3667  //
  3668  //
  3669  //    // Example sending a request using the DescribeSMBSettingsRequest method.
  3670  //    req, resp := client.DescribeSMBSettingsRequest(params)
  3671  //
  3672  //    err := req.Send()
  3673  //    if err == nil { // resp is now filled
  3674  //        fmt.Println(resp)
  3675  //    }
  3676  //
  3677  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBSettings
  3678  func (c *StorageGateway) DescribeSMBSettingsRequest(input *DescribeSMBSettingsInput) (req *request.Request, output *DescribeSMBSettingsOutput) {
  3679  	op := &request.Operation{
  3680  		Name:       opDescribeSMBSettings,
  3681  		HTTPMethod: "POST",
  3682  		HTTPPath:   "/",
  3683  	}
  3684  
  3685  	if input == nil {
  3686  		input = &DescribeSMBSettingsInput{}
  3687  	}
  3688  
  3689  	output = &DescribeSMBSettingsOutput{}
  3690  	req = c.newRequest(op, input, output)
  3691  	return
  3692  }
  3693  
  3694  // DescribeSMBSettings API operation for AWS Storage Gateway.
  3695  //
  3696  // Gets a description of a Server Message Block (SMB) file share settings from
  3697  // a file gateway. This operation is only supported for file gateways.
  3698  //
  3699  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3700  // with awserr.Error's Code and Message methods to get detailed information about
  3701  // the error.
  3702  //
  3703  // See the AWS API reference guide for AWS Storage Gateway's
  3704  // API operation DescribeSMBSettings for usage and error information.
  3705  //
  3706  // Returned Error Types:
  3707  //   * InvalidGatewayRequestException
  3708  //   An exception occurred because an invalid gateway request was issued to the
  3709  //   service. For more information, see the error and message fields.
  3710  //
  3711  //   * InternalServerError
  3712  //   An internal server error has occurred during the request. For more information,
  3713  //   see the error and message fields.
  3714  //
  3715  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBSettings
  3716  func (c *StorageGateway) DescribeSMBSettings(input *DescribeSMBSettingsInput) (*DescribeSMBSettingsOutput, error) {
  3717  	req, out := c.DescribeSMBSettingsRequest(input)
  3718  	return out, req.Send()
  3719  }
  3720  
  3721  // DescribeSMBSettingsWithContext is the same as DescribeSMBSettings with the addition of
  3722  // the ability to pass a context and additional request options.
  3723  //
  3724  // See DescribeSMBSettings for details on how to use this API operation.
  3725  //
  3726  // The context must be non-nil and will be used for request cancellation. If
  3727  // the context is nil a panic will occur. In the future the SDK may create
  3728  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3729  // for more information on using Contexts.
  3730  func (c *StorageGateway) DescribeSMBSettingsWithContext(ctx aws.Context, input *DescribeSMBSettingsInput, opts ...request.Option) (*DescribeSMBSettingsOutput, error) {
  3731  	req, out := c.DescribeSMBSettingsRequest(input)
  3732  	req.SetContext(ctx)
  3733  	req.ApplyOptions(opts...)
  3734  	return out, req.Send()
  3735  }
  3736  
  3737  const opDescribeSnapshotSchedule = "DescribeSnapshotSchedule"
  3738  
  3739  // DescribeSnapshotScheduleRequest generates a "aws/request.Request" representing the
  3740  // client's request for the DescribeSnapshotSchedule operation. The "output" return
  3741  // value will be populated with the request's response once the request completes
  3742  // successfully.
  3743  //
  3744  // Use "Send" method on the returned Request to send the API call to the service.
  3745  // the "output" return value is not valid until after Send returns without error.
  3746  //
  3747  // See DescribeSnapshotSchedule for more information on using the DescribeSnapshotSchedule
  3748  // API call, and error handling.
  3749  //
  3750  // This method is useful when you want to inject custom logic or configuration
  3751  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3752  //
  3753  //
  3754  //    // Example sending a request using the DescribeSnapshotScheduleRequest method.
  3755  //    req, resp := client.DescribeSnapshotScheduleRequest(params)
  3756  //
  3757  //    err := req.Send()
  3758  //    if err == nil { // resp is now filled
  3759  //        fmt.Println(resp)
  3760  //    }
  3761  //
  3762  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSnapshotSchedule
  3763  func (c *StorageGateway) DescribeSnapshotScheduleRequest(input *DescribeSnapshotScheduleInput) (req *request.Request, output *DescribeSnapshotScheduleOutput) {
  3764  	op := &request.Operation{
  3765  		Name:       opDescribeSnapshotSchedule,
  3766  		HTTPMethod: "POST",
  3767  		HTTPPath:   "/",
  3768  	}
  3769  
  3770  	if input == nil {
  3771  		input = &DescribeSnapshotScheduleInput{}
  3772  	}
  3773  
  3774  	output = &DescribeSnapshotScheduleOutput{}
  3775  	req = c.newRequest(op, input, output)
  3776  	return
  3777  }
  3778  
  3779  // DescribeSnapshotSchedule API operation for AWS Storage Gateway.
  3780  //
  3781  // Describes the snapshot schedule for the specified gateway volume. The snapshot
  3782  // schedule information includes intervals at which snapshots are automatically
  3783  // initiated on the volume. This operation is only supported in the cached volume
  3784  // and stored volume types.
  3785  //
  3786  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3787  // with awserr.Error's Code and Message methods to get detailed information about
  3788  // the error.
  3789  //
  3790  // See the AWS API reference guide for AWS Storage Gateway's
  3791  // API operation DescribeSnapshotSchedule for usage and error information.
  3792  //
  3793  // Returned Error Types:
  3794  //   * InvalidGatewayRequestException
  3795  //   An exception occurred because an invalid gateway request was issued to the
  3796  //   service. For more information, see the error and message fields.
  3797  //
  3798  //   * InternalServerError
  3799  //   An internal server error has occurred during the request. For more information,
  3800  //   see the error and message fields.
  3801  //
  3802  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSnapshotSchedule
  3803  func (c *StorageGateway) DescribeSnapshotSchedule(input *DescribeSnapshotScheduleInput) (*DescribeSnapshotScheduleOutput, error) {
  3804  	req, out := c.DescribeSnapshotScheduleRequest(input)
  3805  	return out, req.Send()
  3806  }
  3807  
  3808  // DescribeSnapshotScheduleWithContext is the same as DescribeSnapshotSchedule with the addition of
  3809  // the ability to pass a context and additional request options.
  3810  //
  3811  // See DescribeSnapshotSchedule for details on how to use this API operation.
  3812  //
  3813  // The context must be non-nil and will be used for request cancellation. If
  3814  // the context is nil a panic will occur. In the future the SDK may create
  3815  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3816  // for more information on using Contexts.
  3817  func (c *StorageGateway) DescribeSnapshotScheduleWithContext(ctx aws.Context, input *DescribeSnapshotScheduleInput, opts ...request.Option) (*DescribeSnapshotScheduleOutput, error) {
  3818  	req, out := c.DescribeSnapshotScheduleRequest(input)
  3819  	req.SetContext(ctx)
  3820  	req.ApplyOptions(opts...)
  3821  	return out, req.Send()
  3822  }
  3823  
  3824  const opDescribeStorediSCSIVolumes = "DescribeStorediSCSIVolumes"
  3825  
  3826  // DescribeStorediSCSIVolumesRequest generates a "aws/request.Request" representing the
  3827  // client's request for the DescribeStorediSCSIVolumes operation. The "output" return
  3828  // value will be populated with the request's response once the request completes
  3829  // successfully.
  3830  //
  3831  // Use "Send" method on the returned Request to send the API call to the service.
  3832  // the "output" return value is not valid until after Send returns without error.
  3833  //
  3834  // See DescribeStorediSCSIVolumes for more information on using the DescribeStorediSCSIVolumes
  3835  // API call, and error handling.
  3836  //
  3837  // This method is useful when you want to inject custom logic or configuration
  3838  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3839  //
  3840  //
  3841  //    // Example sending a request using the DescribeStorediSCSIVolumesRequest method.
  3842  //    req, resp := client.DescribeStorediSCSIVolumesRequest(params)
  3843  //
  3844  //    err := req.Send()
  3845  //    if err == nil { // resp is now filled
  3846  //        fmt.Println(resp)
  3847  //    }
  3848  //
  3849  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeStorediSCSIVolumes
  3850  func (c *StorageGateway) DescribeStorediSCSIVolumesRequest(input *DescribeStorediSCSIVolumesInput) (req *request.Request, output *DescribeStorediSCSIVolumesOutput) {
  3851  	op := &request.Operation{
  3852  		Name:       opDescribeStorediSCSIVolumes,
  3853  		HTTPMethod: "POST",
  3854  		HTTPPath:   "/",
  3855  	}
  3856  
  3857  	if input == nil {
  3858  		input = &DescribeStorediSCSIVolumesInput{}
  3859  	}
  3860  
  3861  	output = &DescribeStorediSCSIVolumesOutput{}
  3862  	req = c.newRequest(op, input, output)
  3863  	return
  3864  }
  3865  
  3866  // DescribeStorediSCSIVolumes API operation for AWS Storage Gateway.
  3867  //
  3868  // Returns the description of the gateway volumes specified in the request.
  3869  // The list of gateway volumes in the request must be from one gateway. In the
  3870  // response, Storage Gateway returns volume information sorted by volume ARNs.
  3871  // This operation is only supported in stored volume gateway type.
  3872  //
  3873  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3874  // with awserr.Error's Code and Message methods to get detailed information about
  3875  // the error.
  3876  //
  3877  // See the AWS API reference guide for AWS Storage Gateway's
  3878  // API operation DescribeStorediSCSIVolumes for usage and error information.
  3879  //
  3880  // Returned Error Types:
  3881  //   * InvalidGatewayRequestException
  3882  //   An exception occurred because an invalid gateway request was issued to the
  3883  //   service. For more information, see the error and message fields.
  3884  //
  3885  //   * InternalServerError
  3886  //   An internal server error has occurred during the request. For more information,
  3887  //   see the error and message fields.
  3888  //
  3889  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeStorediSCSIVolumes
  3890  func (c *StorageGateway) DescribeStorediSCSIVolumes(input *DescribeStorediSCSIVolumesInput) (*DescribeStorediSCSIVolumesOutput, error) {
  3891  	req, out := c.DescribeStorediSCSIVolumesRequest(input)
  3892  	return out, req.Send()
  3893  }
  3894  
  3895  // DescribeStorediSCSIVolumesWithContext is the same as DescribeStorediSCSIVolumes with the addition of
  3896  // the ability to pass a context and additional request options.
  3897  //
  3898  // See DescribeStorediSCSIVolumes for details on how to use this API operation.
  3899  //
  3900  // The context must be non-nil and will be used for request cancellation. If
  3901  // the context is nil a panic will occur. In the future the SDK may create
  3902  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3903  // for more information on using Contexts.
  3904  func (c *StorageGateway) DescribeStorediSCSIVolumesWithContext(ctx aws.Context, input *DescribeStorediSCSIVolumesInput, opts ...request.Option) (*DescribeStorediSCSIVolumesOutput, error) {
  3905  	req, out := c.DescribeStorediSCSIVolumesRequest(input)
  3906  	req.SetContext(ctx)
  3907  	req.ApplyOptions(opts...)
  3908  	return out, req.Send()
  3909  }
  3910  
  3911  const opDescribeTapeArchives = "DescribeTapeArchives"
  3912  
  3913  // DescribeTapeArchivesRequest generates a "aws/request.Request" representing the
  3914  // client's request for the DescribeTapeArchives operation. The "output" return
  3915  // value will be populated with the request's response once the request completes
  3916  // successfully.
  3917  //
  3918  // Use "Send" method on the returned Request to send the API call to the service.
  3919  // the "output" return value is not valid until after Send returns without error.
  3920  //
  3921  // See DescribeTapeArchives for more information on using the DescribeTapeArchives
  3922  // API call, and error handling.
  3923  //
  3924  // This method is useful when you want to inject custom logic or configuration
  3925  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3926  //
  3927  //
  3928  //    // Example sending a request using the DescribeTapeArchivesRequest method.
  3929  //    req, resp := client.DescribeTapeArchivesRequest(params)
  3930  //
  3931  //    err := req.Send()
  3932  //    if err == nil { // resp is now filled
  3933  //        fmt.Println(resp)
  3934  //    }
  3935  //
  3936  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeArchives
  3937  func (c *StorageGateway) DescribeTapeArchivesRequest(input *DescribeTapeArchivesInput) (req *request.Request, output *DescribeTapeArchivesOutput) {
  3938  	op := &request.Operation{
  3939  		Name:       opDescribeTapeArchives,
  3940  		HTTPMethod: "POST",
  3941  		HTTPPath:   "/",
  3942  		Paginator: &request.Paginator{
  3943  			InputTokens:     []string{"Marker"},
  3944  			OutputTokens:    []string{"Marker"},
  3945  			LimitToken:      "Limit",
  3946  			TruncationToken: "",
  3947  		},
  3948  	}
  3949  
  3950  	if input == nil {
  3951  		input = &DescribeTapeArchivesInput{}
  3952  	}
  3953  
  3954  	output = &DescribeTapeArchivesOutput{}
  3955  	req = c.newRequest(op, input, output)
  3956  	return
  3957  }
  3958  
  3959  // DescribeTapeArchives API operation for AWS Storage Gateway.
  3960  //
  3961  // Returns a description of specified virtual tapes in the virtual tape shelf
  3962  // (VTS). This operation is only supported in the tape gateway type.
  3963  //
  3964  // If a specific TapeARN is not specified, Storage Gateway returns a description
  3965  // of all virtual tapes found in the VTS associated with your account.
  3966  //
  3967  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3968  // with awserr.Error's Code and Message methods to get detailed information about
  3969  // the error.
  3970  //
  3971  // See the AWS API reference guide for AWS Storage Gateway's
  3972  // API operation DescribeTapeArchives for usage and error information.
  3973  //
  3974  // Returned Error Types:
  3975  //   * InvalidGatewayRequestException
  3976  //   An exception occurred because an invalid gateway request was issued to the
  3977  //   service. For more information, see the error and message fields.
  3978  //
  3979  //   * InternalServerError
  3980  //   An internal server error has occurred during the request. For more information,
  3981  //   see the error and message fields.
  3982  //
  3983  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeArchives
  3984  func (c *StorageGateway) DescribeTapeArchives(input *DescribeTapeArchivesInput) (*DescribeTapeArchivesOutput, error) {
  3985  	req, out := c.DescribeTapeArchivesRequest(input)
  3986  	return out, req.Send()
  3987  }
  3988  
  3989  // DescribeTapeArchivesWithContext is the same as DescribeTapeArchives with the addition of
  3990  // the ability to pass a context and additional request options.
  3991  //
  3992  // See DescribeTapeArchives for details on how to use this API operation.
  3993  //
  3994  // The context must be non-nil and will be used for request cancellation. If
  3995  // the context is nil a panic will occur. In the future the SDK may create
  3996  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3997  // for more information on using Contexts.
  3998  func (c *StorageGateway) DescribeTapeArchivesWithContext(ctx aws.Context, input *DescribeTapeArchivesInput, opts ...request.Option) (*DescribeTapeArchivesOutput, error) {
  3999  	req, out := c.DescribeTapeArchivesRequest(input)
  4000  	req.SetContext(ctx)
  4001  	req.ApplyOptions(opts...)
  4002  	return out, req.Send()
  4003  }
  4004  
  4005  // DescribeTapeArchivesPages iterates over the pages of a DescribeTapeArchives operation,
  4006  // calling the "fn" function with the response data for each page. To stop
  4007  // iterating, return false from the fn function.
  4008  //
  4009  // See DescribeTapeArchives method for more information on how to use this operation.
  4010  //
  4011  // Note: This operation can generate multiple requests to a service.
  4012  //
  4013  //    // Example iterating over at most 3 pages of a DescribeTapeArchives operation.
  4014  //    pageNum := 0
  4015  //    err := client.DescribeTapeArchivesPages(params,
  4016  //        func(page *storagegateway.DescribeTapeArchivesOutput, lastPage bool) bool {
  4017  //            pageNum++
  4018  //            fmt.Println(page)
  4019  //            return pageNum <= 3
  4020  //        })
  4021  //
  4022  func (c *StorageGateway) DescribeTapeArchivesPages(input *DescribeTapeArchivesInput, fn func(*DescribeTapeArchivesOutput, bool) bool) error {
  4023  	return c.DescribeTapeArchivesPagesWithContext(aws.BackgroundContext(), input, fn)
  4024  }
  4025  
  4026  // DescribeTapeArchivesPagesWithContext same as DescribeTapeArchivesPages except
  4027  // it takes a Context and allows setting request options on the pages.
  4028  //
  4029  // The context must be non-nil and will be used for request cancellation. If
  4030  // the context is nil a panic will occur. In the future the SDK may create
  4031  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4032  // for more information on using Contexts.
  4033  func (c *StorageGateway) DescribeTapeArchivesPagesWithContext(ctx aws.Context, input *DescribeTapeArchivesInput, fn func(*DescribeTapeArchivesOutput, bool) bool, opts ...request.Option) error {
  4034  	p := request.Pagination{
  4035  		NewRequest: func() (*request.Request, error) {
  4036  			var inCpy *DescribeTapeArchivesInput
  4037  			if input != nil {
  4038  				tmp := *input
  4039  				inCpy = &tmp
  4040  			}
  4041  			req, _ := c.DescribeTapeArchivesRequest(inCpy)
  4042  			req.SetContext(ctx)
  4043  			req.ApplyOptions(opts...)
  4044  			return req, nil
  4045  		},
  4046  	}
  4047  
  4048  	for p.Next() {
  4049  		if !fn(p.Page().(*DescribeTapeArchivesOutput), !p.HasNextPage()) {
  4050  			break
  4051  		}
  4052  	}
  4053  
  4054  	return p.Err()
  4055  }
  4056  
  4057  const opDescribeTapeRecoveryPoints = "DescribeTapeRecoveryPoints"
  4058  
  4059  // DescribeTapeRecoveryPointsRequest generates a "aws/request.Request" representing the
  4060  // client's request for the DescribeTapeRecoveryPoints operation. The "output" return
  4061  // value will be populated with the request's response once the request completes
  4062  // successfully.
  4063  //
  4064  // Use "Send" method on the returned Request to send the API call to the service.
  4065  // the "output" return value is not valid until after Send returns without error.
  4066  //
  4067  // See DescribeTapeRecoveryPoints for more information on using the DescribeTapeRecoveryPoints
  4068  // API call, and error handling.
  4069  //
  4070  // This method is useful when you want to inject custom logic or configuration
  4071  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4072  //
  4073  //
  4074  //    // Example sending a request using the DescribeTapeRecoveryPointsRequest method.
  4075  //    req, resp := client.DescribeTapeRecoveryPointsRequest(params)
  4076  //
  4077  //    err := req.Send()
  4078  //    if err == nil { // resp is now filled
  4079  //        fmt.Println(resp)
  4080  //    }
  4081  //
  4082  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeRecoveryPoints
  4083  func (c *StorageGateway) DescribeTapeRecoveryPointsRequest(input *DescribeTapeRecoveryPointsInput) (req *request.Request, output *DescribeTapeRecoveryPointsOutput) {
  4084  	op := &request.Operation{
  4085  		Name:       opDescribeTapeRecoveryPoints,
  4086  		HTTPMethod: "POST",
  4087  		HTTPPath:   "/",
  4088  		Paginator: &request.Paginator{
  4089  			InputTokens:     []string{"Marker"},
  4090  			OutputTokens:    []string{"Marker"},
  4091  			LimitToken:      "Limit",
  4092  			TruncationToken: "",
  4093  		},
  4094  	}
  4095  
  4096  	if input == nil {
  4097  		input = &DescribeTapeRecoveryPointsInput{}
  4098  	}
  4099  
  4100  	output = &DescribeTapeRecoveryPointsOutput{}
  4101  	req = c.newRequest(op, input, output)
  4102  	return
  4103  }
  4104  
  4105  // DescribeTapeRecoveryPoints API operation for AWS Storage Gateway.
  4106  //
  4107  // Returns a list of virtual tape recovery points that are available for the
  4108  // specified tape gateway.
  4109  //
  4110  // A recovery point is a point-in-time view of a virtual tape at which all the
  4111  // data on the virtual tape is consistent. If your gateway crashes, virtual
  4112  // tapes that have recovery points can be recovered to a new gateway. This operation
  4113  // is only supported in the tape gateway type.
  4114  //
  4115  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4116  // with awserr.Error's Code and Message methods to get detailed information about
  4117  // the error.
  4118  //
  4119  // See the AWS API reference guide for AWS Storage Gateway's
  4120  // API operation DescribeTapeRecoveryPoints for usage and error information.
  4121  //
  4122  // Returned Error Types:
  4123  //   * InvalidGatewayRequestException
  4124  //   An exception occurred because an invalid gateway request was issued to the
  4125  //   service. For more information, see the error and message fields.
  4126  //
  4127  //   * InternalServerError
  4128  //   An internal server error has occurred during the request. For more information,
  4129  //   see the error and message fields.
  4130  //
  4131  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeRecoveryPoints
  4132  func (c *StorageGateway) DescribeTapeRecoveryPoints(input *DescribeTapeRecoveryPointsInput) (*DescribeTapeRecoveryPointsOutput, error) {
  4133  	req, out := c.DescribeTapeRecoveryPointsRequest(input)
  4134  	return out, req.Send()
  4135  }
  4136  
  4137  // DescribeTapeRecoveryPointsWithContext is the same as DescribeTapeRecoveryPoints with the addition of
  4138  // the ability to pass a context and additional request options.
  4139  //
  4140  // See DescribeTapeRecoveryPoints for details on how to use this API operation.
  4141  //
  4142  // The context must be non-nil and will be used for request cancellation. If
  4143  // the context is nil a panic will occur. In the future the SDK may create
  4144  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4145  // for more information on using Contexts.
  4146  func (c *StorageGateway) DescribeTapeRecoveryPointsWithContext(ctx aws.Context, input *DescribeTapeRecoveryPointsInput, opts ...request.Option) (*DescribeTapeRecoveryPointsOutput, error) {
  4147  	req, out := c.DescribeTapeRecoveryPointsRequest(input)
  4148  	req.SetContext(ctx)
  4149  	req.ApplyOptions(opts...)
  4150  	return out, req.Send()
  4151  }
  4152  
  4153  // DescribeTapeRecoveryPointsPages iterates over the pages of a DescribeTapeRecoveryPoints operation,
  4154  // calling the "fn" function with the response data for each page. To stop
  4155  // iterating, return false from the fn function.
  4156  //
  4157  // See DescribeTapeRecoveryPoints method for more information on how to use this operation.
  4158  //
  4159  // Note: This operation can generate multiple requests to a service.
  4160  //
  4161  //    // Example iterating over at most 3 pages of a DescribeTapeRecoveryPoints operation.
  4162  //    pageNum := 0
  4163  //    err := client.DescribeTapeRecoveryPointsPages(params,
  4164  //        func(page *storagegateway.DescribeTapeRecoveryPointsOutput, lastPage bool) bool {
  4165  //            pageNum++
  4166  //            fmt.Println(page)
  4167  //            return pageNum <= 3
  4168  //        })
  4169  //
  4170  func (c *StorageGateway) DescribeTapeRecoveryPointsPages(input *DescribeTapeRecoveryPointsInput, fn func(*DescribeTapeRecoveryPointsOutput, bool) bool) error {
  4171  	return c.DescribeTapeRecoveryPointsPagesWithContext(aws.BackgroundContext(), input, fn)
  4172  }
  4173  
  4174  // DescribeTapeRecoveryPointsPagesWithContext same as DescribeTapeRecoveryPointsPages except
  4175  // it takes a Context and allows setting request options on the pages.
  4176  //
  4177  // The context must be non-nil and will be used for request cancellation. If
  4178  // the context is nil a panic will occur. In the future the SDK may create
  4179  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4180  // for more information on using Contexts.
  4181  func (c *StorageGateway) DescribeTapeRecoveryPointsPagesWithContext(ctx aws.Context, input *DescribeTapeRecoveryPointsInput, fn func(*DescribeTapeRecoveryPointsOutput, bool) bool, opts ...request.Option) error {
  4182  	p := request.Pagination{
  4183  		NewRequest: func() (*request.Request, error) {
  4184  			var inCpy *DescribeTapeRecoveryPointsInput
  4185  			if input != nil {
  4186  				tmp := *input
  4187  				inCpy = &tmp
  4188  			}
  4189  			req, _ := c.DescribeTapeRecoveryPointsRequest(inCpy)
  4190  			req.SetContext(ctx)
  4191  			req.ApplyOptions(opts...)
  4192  			return req, nil
  4193  		},
  4194  	}
  4195  
  4196  	for p.Next() {
  4197  		if !fn(p.Page().(*DescribeTapeRecoveryPointsOutput), !p.HasNextPage()) {
  4198  			break
  4199  		}
  4200  	}
  4201  
  4202  	return p.Err()
  4203  }
  4204  
  4205  const opDescribeTapes = "DescribeTapes"
  4206  
  4207  // DescribeTapesRequest generates a "aws/request.Request" representing the
  4208  // client's request for the DescribeTapes operation. The "output" return
  4209  // value will be populated with the request's response once the request completes
  4210  // successfully.
  4211  //
  4212  // Use "Send" method on the returned Request to send the API call to the service.
  4213  // the "output" return value is not valid until after Send returns without error.
  4214  //
  4215  // See DescribeTapes for more information on using the DescribeTapes
  4216  // API call, and error handling.
  4217  //
  4218  // This method is useful when you want to inject custom logic or configuration
  4219  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4220  //
  4221  //
  4222  //    // Example sending a request using the DescribeTapesRequest method.
  4223  //    req, resp := client.DescribeTapesRequest(params)
  4224  //
  4225  //    err := req.Send()
  4226  //    if err == nil { // resp is now filled
  4227  //        fmt.Println(resp)
  4228  //    }
  4229  //
  4230  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapes
  4231  func (c *StorageGateway) DescribeTapesRequest(input *DescribeTapesInput) (req *request.Request, output *DescribeTapesOutput) {
  4232  	op := &request.Operation{
  4233  		Name:       opDescribeTapes,
  4234  		HTTPMethod: "POST",
  4235  		HTTPPath:   "/",
  4236  		Paginator: &request.Paginator{
  4237  			InputTokens:     []string{"Marker"},
  4238  			OutputTokens:    []string{"Marker"},
  4239  			LimitToken:      "Limit",
  4240  			TruncationToken: "",
  4241  		},
  4242  	}
  4243  
  4244  	if input == nil {
  4245  		input = &DescribeTapesInput{}
  4246  	}
  4247  
  4248  	output = &DescribeTapesOutput{}
  4249  	req = c.newRequest(op, input, output)
  4250  	return
  4251  }
  4252  
  4253  // DescribeTapes API operation for AWS Storage Gateway.
  4254  //
  4255  // Returns a description of the specified Amazon Resource Name (ARN) of virtual
  4256  // tapes. If a TapeARN is not specified, returns a description of all virtual
  4257  // tapes associated with the specified gateway. This operation is only supported
  4258  // in the tape gateway type.
  4259  //
  4260  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4261  // with awserr.Error's Code and Message methods to get detailed information about
  4262  // the error.
  4263  //
  4264  // See the AWS API reference guide for AWS Storage Gateway's
  4265  // API operation DescribeTapes for usage and error information.
  4266  //
  4267  // Returned Error Types:
  4268  //   * InvalidGatewayRequestException
  4269  //   An exception occurred because an invalid gateway request was issued to the
  4270  //   service. For more information, see the error and message fields.
  4271  //
  4272  //   * InternalServerError
  4273  //   An internal server error has occurred during the request. For more information,
  4274  //   see the error and message fields.
  4275  //
  4276  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapes
  4277  func (c *StorageGateway) DescribeTapes(input *DescribeTapesInput) (*DescribeTapesOutput, error) {
  4278  	req, out := c.DescribeTapesRequest(input)
  4279  	return out, req.Send()
  4280  }
  4281  
  4282  // DescribeTapesWithContext is the same as DescribeTapes with the addition of
  4283  // the ability to pass a context and additional request options.
  4284  //
  4285  // See DescribeTapes for details on how to use this API operation.
  4286  //
  4287  // The context must be non-nil and will be used for request cancellation. If
  4288  // the context is nil a panic will occur. In the future the SDK may create
  4289  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4290  // for more information on using Contexts.
  4291  func (c *StorageGateway) DescribeTapesWithContext(ctx aws.Context, input *DescribeTapesInput, opts ...request.Option) (*DescribeTapesOutput, error) {
  4292  	req, out := c.DescribeTapesRequest(input)
  4293  	req.SetContext(ctx)
  4294  	req.ApplyOptions(opts...)
  4295  	return out, req.Send()
  4296  }
  4297  
  4298  // DescribeTapesPages iterates over the pages of a DescribeTapes operation,
  4299  // calling the "fn" function with the response data for each page. To stop
  4300  // iterating, return false from the fn function.
  4301  //
  4302  // See DescribeTapes method for more information on how to use this operation.
  4303  //
  4304  // Note: This operation can generate multiple requests to a service.
  4305  //
  4306  //    // Example iterating over at most 3 pages of a DescribeTapes operation.
  4307  //    pageNum := 0
  4308  //    err := client.DescribeTapesPages(params,
  4309  //        func(page *storagegateway.DescribeTapesOutput, lastPage bool) bool {
  4310  //            pageNum++
  4311  //            fmt.Println(page)
  4312  //            return pageNum <= 3
  4313  //        })
  4314  //
  4315  func (c *StorageGateway) DescribeTapesPages(input *DescribeTapesInput, fn func(*DescribeTapesOutput, bool) bool) error {
  4316  	return c.DescribeTapesPagesWithContext(aws.BackgroundContext(), input, fn)
  4317  }
  4318  
  4319  // DescribeTapesPagesWithContext same as DescribeTapesPages except
  4320  // it takes a Context and allows setting request options on the pages.
  4321  //
  4322  // The context must be non-nil and will be used for request cancellation. If
  4323  // the context is nil a panic will occur. In the future the SDK may create
  4324  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4325  // for more information on using Contexts.
  4326  func (c *StorageGateway) DescribeTapesPagesWithContext(ctx aws.Context, input *DescribeTapesInput, fn func(*DescribeTapesOutput, bool) bool, opts ...request.Option) error {
  4327  	p := request.Pagination{
  4328  		NewRequest: func() (*request.Request, error) {
  4329  			var inCpy *DescribeTapesInput
  4330  			if input != nil {
  4331  				tmp := *input
  4332  				inCpy = &tmp
  4333  			}
  4334  			req, _ := c.DescribeTapesRequest(inCpy)
  4335  			req.SetContext(ctx)
  4336  			req.ApplyOptions(opts...)
  4337  			return req, nil
  4338  		},
  4339  	}
  4340  
  4341  	for p.Next() {
  4342  		if !fn(p.Page().(*DescribeTapesOutput), !p.HasNextPage()) {
  4343  			break
  4344  		}
  4345  	}
  4346  
  4347  	return p.Err()
  4348  }
  4349  
  4350  const opDescribeUploadBuffer = "DescribeUploadBuffer"
  4351  
  4352  // DescribeUploadBufferRequest generates a "aws/request.Request" representing the
  4353  // client's request for the DescribeUploadBuffer operation. The "output" return
  4354  // value will be populated with the request's response once the request completes
  4355  // successfully.
  4356  //
  4357  // Use "Send" method on the returned Request to send the API call to the service.
  4358  // the "output" return value is not valid until after Send returns without error.
  4359  //
  4360  // See DescribeUploadBuffer for more information on using the DescribeUploadBuffer
  4361  // API call, and error handling.
  4362  //
  4363  // This method is useful when you want to inject custom logic or configuration
  4364  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4365  //
  4366  //
  4367  //    // Example sending a request using the DescribeUploadBufferRequest method.
  4368  //    req, resp := client.DescribeUploadBufferRequest(params)
  4369  //
  4370  //    err := req.Send()
  4371  //    if err == nil { // resp is now filled
  4372  //        fmt.Println(resp)
  4373  //    }
  4374  //
  4375  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeUploadBuffer
  4376  func (c *StorageGateway) DescribeUploadBufferRequest(input *DescribeUploadBufferInput) (req *request.Request, output *DescribeUploadBufferOutput) {
  4377  	op := &request.Operation{
  4378  		Name:       opDescribeUploadBuffer,
  4379  		HTTPMethod: "POST",
  4380  		HTTPPath:   "/",
  4381  	}
  4382  
  4383  	if input == nil {
  4384  		input = &DescribeUploadBufferInput{}
  4385  	}
  4386  
  4387  	output = &DescribeUploadBufferOutput{}
  4388  	req = c.newRequest(op, input, output)
  4389  	return
  4390  }
  4391  
  4392  // DescribeUploadBuffer API operation for AWS Storage Gateway.
  4393  //
  4394  // Returns information about the upload buffer of a gateway. This operation
  4395  // is supported for the stored volume, cached volume, and tape gateway types.
  4396  //
  4397  // The response includes disk IDs that are configured as upload buffer space,
  4398  // and it includes the amount of upload buffer space allocated and used.
  4399  //
  4400  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4401  // with awserr.Error's Code and Message methods to get detailed information about
  4402  // the error.
  4403  //
  4404  // See the AWS API reference guide for AWS Storage Gateway's
  4405  // API operation DescribeUploadBuffer for usage and error information.
  4406  //
  4407  // Returned Error Types:
  4408  //   * InvalidGatewayRequestException
  4409  //   An exception occurred because an invalid gateway request was issued to the
  4410  //   service. For more information, see the error and message fields.
  4411  //
  4412  //   * InternalServerError
  4413  //   An internal server error has occurred during the request. For more information,
  4414  //   see the error and message fields.
  4415  //
  4416  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeUploadBuffer
  4417  func (c *StorageGateway) DescribeUploadBuffer(input *DescribeUploadBufferInput) (*DescribeUploadBufferOutput, error) {
  4418  	req, out := c.DescribeUploadBufferRequest(input)
  4419  	return out, req.Send()
  4420  }
  4421  
  4422  // DescribeUploadBufferWithContext is the same as DescribeUploadBuffer with the addition of
  4423  // the ability to pass a context and additional request options.
  4424  //
  4425  // See DescribeUploadBuffer for details on how to use this API operation.
  4426  //
  4427  // The context must be non-nil and will be used for request cancellation. If
  4428  // the context is nil a panic will occur. In the future the SDK may create
  4429  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4430  // for more information on using Contexts.
  4431  func (c *StorageGateway) DescribeUploadBufferWithContext(ctx aws.Context, input *DescribeUploadBufferInput, opts ...request.Option) (*DescribeUploadBufferOutput, error) {
  4432  	req, out := c.DescribeUploadBufferRequest(input)
  4433  	req.SetContext(ctx)
  4434  	req.ApplyOptions(opts...)
  4435  	return out, req.Send()
  4436  }
  4437  
  4438  const opDescribeVTLDevices = "DescribeVTLDevices"
  4439  
  4440  // DescribeVTLDevicesRequest generates a "aws/request.Request" representing the
  4441  // client's request for the DescribeVTLDevices operation. The "output" return
  4442  // value will be populated with the request's response once the request completes
  4443  // successfully.
  4444  //
  4445  // Use "Send" method on the returned Request to send the API call to the service.
  4446  // the "output" return value is not valid until after Send returns without error.
  4447  //
  4448  // See DescribeVTLDevices for more information on using the DescribeVTLDevices
  4449  // API call, and error handling.
  4450  //
  4451  // This method is useful when you want to inject custom logic or configuration
  4452  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4453  //
  4454  //
  4455  //    // Example sending a request using the DescribeVTLDevicesRequest method.
  4456  //    req, resp := client.DescribeVTLDevicesRequest(params)
  4457  //
  4458  //    err := req.Send()
  4459  //    if err == nil { // resp is now filled
  4460  //        fmt.Println(resp)
  4461  //    }
  4462  //
  4463  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeVTLDevices
  4464  func (c *StorageGateway) DescribeVTLDevicesRequest(input *DescribeVTLDevicesInput) (req *request.Request, output *DescribeVTLDevicesOutput) {
  4465  	op := &request.Operation{
  4466  		Name:       opDescribeVTLDevices,
  4467  		HTTPMethod: "POST",
  4468  		HTTPPath:   "/",
  4469  		Paginator: &request.Paginator{
  4470  			InputTokens:     []string{"Marker"},
  4471  			OutputTokens:    []string{"Marker"},
  4472  			LimitToken:      "Limit",
  4473  			TruncationToken: "",
  4474  		},
  4475  	}
  4476  
  4477  	if input == nil {
  4478  		input = &DescribeVTLDevicesInput{}
  4479  	}
  4480  
  4481  	output = &DescribeVTLDevicesOutput{}
  4482  	req = c.newRequest(op, input, output)
  4483  	return
  4484  }
  4485  
  4486  // DescribeVTLDevices API operation for AWS Storage Gateway.
  4487  //
  4488  // Returns a description of virtual tape library (VTL) devices for the specified
  4489  // tape gateway. In the response, Storage Gateway returns VTL device information.
  4490  //
  4491  // This operation is only supported in the tape gateway type.
  4492  //
  4493  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4494  // with awserr.Error's Code and Message methods to get detailed information about
  4495  // the error.
  4496  //
  4497  // See the AWS API reference guide for AWS Storage Gateway's
  4498  // API operation DescribeVTLDevices for usage and error information.
  4499  //
  4500  // Returned Error Types:
  4501  //   * InvalidGatewayRequestException
  4502  //   An exception occurred because an invalid gateway request was issued to the
  4503  //   service. For more information, see the error and message fields.
  4504  //
  4505  //   * InternalServerError
  4506  //   An internal server error has occurred during the request. For more information,
  4507  //   see the error and message fields.
  4508  //
  4509  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeVTLDevices
  4510  func (c *StorageGateway) DescribeVTLDevices(input *DescribeVTLDevicesInput) (*DescribeVTLDevicesOutput, error) {
  4511  	req, out := c.DescribeVTLDevicesRequest(input)
  4512  	return out, req.Send()
  4513  }
  4514  
  4515  // DescribeVTLDevicesWithContext is the same as DescribeVTLDevices with the addition of
  4516  // the ability to pass a context and additional request options.
  4517  //
  4518  // See DescribeVTLDevices for details on how to use this API operation.
  4519  //
  4520  // The context must be non-nil and will be used for request cancellation. If
  4521  // the context is nil a panic will occur. In the future the SDK may create
  4522  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4523  // for more information on using Contexts.
  4524  func (c *StorageGateway) DescribeVTLDevicesWithContext(ctx aws.Context, input *DescribeVTLDevicesInput, opts ...request.Option) (*DescribeVTLDevicesOutput, error) {
  4525  	req, out := c.DescribeVTLDevicesRequest(input)
  4526  	req.SetContext(ctx)
  4527  	req.ApplyOptions(opts...)
  4528  	return out, req.Send()
  4529  }
  4530  
  4531  // DescribeVTLDevicesPages iterates over the pages of a DescribeVTLDevices operation,
  4532  // calling the "fn" function with the response data for each page. To stop
  4533  // iterating, return false from the fn function.
  4534  //
  4535  // See DescribeVTLDevices method for more information on how to use this operation.
  4536  //
  4537  // Note: This operation can generate multiple requests to a service.
  4538  //
  4539  //    // Example iterating over at most 3 pages of a DescribeVTLDevices operation.
  4540  //    pageNum := 0
  4541  //    err := client.DescribeVTLDevicesPages(params,
  4542  //        func(page *storagegateway.DescribeVTLDevicesOutput, lastPage bool) bool {
  4543  //            pageNum++
  4544  //            fmt.Println(page)
  4545  //            return pageNum <= 3
  4546  //        })
  4547  //
  4548  func (c *StorageGateway) DescribeVTLDevicesPages(input *DescribeVTLDevicesInput, fn func(*DescribeVTLDevicesOutput, bool) bool) error {
  4549  	return c.DescribeVTLDevicesPagesWithContext(aws.BackgroundContext(), input, fn)
  4550  }
  4551  
  4552  // DescribeVTLDevicesPagesWithContext same as DescribeVTLDevicesPages except
  4553  // it takes a Context and allows setting request options on the pages.
  4554  //
  4555  // The context must be non-nil and will be used for request cancellation. If
  4556  // the context is nil a panic will occur. In the future the SDK may create
  4557  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4558  // for more information on using Contexts.
  4559  func (c *StorageGateway) DescribeVTLDevicesPagesWithContext(ctx aws.Context, input *DescribeVTLDevicesInput, fn func(*DescribeVTLDevicesOutput, bool) bool, opts ...request.Option) error {
  4560  	p := request.Pagination{
  4561  		NewRequest: func() (*request.Request, error) {
  4562  			var inCpy *DescribeVTLDevicesInput
  4563  			if input != nil {
  4564  				tmp := *input
  4565  				inCpy = &tmp
  4566  			}
  4567  			req, _ := c.DescribeVTLDevicesRequest(inCpy)
  4568  			req.SetContext(ctx)
  4569  			req.ApplyOptions(opts...)
  4570  			return req, nil
  4571  		},
  4572  	}
  4573  
  4574  	for p.Next() {
  4575  		if !fn(p.Page().(*DescribeVTLDevicesOutput), !p.HasNextPage()) {
  4576  			break
  4577  		}
  4578  	}
  4579  
  4580  	return p.Err()
  4581  }
  4582  
  4583  const opDescribeWorkingStorage = "DescribeWorkingStorage"
  4584  
  4585  // DescribeWorkingStorageRequest generates a "aws/request.Request" representing the
  4586  // client's request for the DescribeWorkingStorage operation. The "output" return
  4587  // value will be populated with the request's response once the request completes
  4588  // successfully.
  4589  //
  4590  // Use "Send" method on the returned Request to send the API call to the service.
  4591  // the "output" return value is not valid until after Send returns without error.
  4592  //
  4593  // See DescribeWorkingStorage for more information on using the DescribeWorkingStorage
  4594  // API call, and error handling.
  4595  //
  4596  // This method is useful when you want to inject custom logic or configuration
  4597  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4598  //
  4599  //
  4600  //    // Example sending a request using the DescribeWorkingStorageRequest method.
  4601  //    req, resp := client.DescribeWorkingStorageRequest(params)
  4602  //
  4603  //    err := req.Send()
  4604  //    if err == nil { // resp is now filled
  4605  //        fmt.Println(resp)
  4606  //    }
  4607  //
  4608  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeWorkingStorage
  4609  func (c *StorageGateway) DescribeWorkingStorageRequest(input *DescribeWorkingStorageInput) (req *request.Request, output *DescribeWorkingStorageOutput) {
  4610  	op := &request.Operation{
  4611  		Name:       opDescribeWorkingStorage,
  4612  		HTTPMethod: "POST",
  4613  		HTTPPath:   "/",
  4614  	}
  4615  
  4616  	if input == nil {
  4617  		input = &DescribeWorkingStorageInput{}
  4618  	}
  4619  
  4620  	output = &DescribeWorkingStorageOutput{}
  4621  	req = c.newRequest(op, input, output)
  4622  	return
  4623  }
  4624  
  4625  // DescribeWorkingStorage API operation for AWS Storage Gateway.
  4626  //
  4627  // Returns information about the working storage of a gateway. This operation
  4628  // is only supported in the stored volumes gateway type. This operation is deprecated
  4629  // in cached volumes API version (20120630). Use DescribeUploadBuffer instead.
  4630  //
  4631  // Working storage is also referred to as upload buffer. You can also use the
  4632  // DescribeUploadBuffer operation to add upload buffer to a stored volume gateway.
  4633  //
  4634  // The response includes disk IDs that are configured as working storage, and
  4635  // it includes the amount of working storage allocated and used.
  4636  //
  4637  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4638  // with awserr.Error's Code and Message methods to get detailed information about
  4639  // the error.
  4640  //
  4641  // See the AWS API reference guide for AWS Storage Gateway's
  4642  // API operation DescribeWorkingStorage for usage and error information.
  4643  //
  4644  // Returned Error Types:
  4645  //   * InvalidGatewayRequestException
  4646  //   An exception occurred because an invalid gateway request was issued to the
  4647  //   service. For more information, see the error and message fields.
  4648  //
  4649  //   * InternalServerError
  4650  //   An internal server error has occurred during the request. For more information,
  4651  //   see the error and message fields.
  4652  //
  4653  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeWorkingStorage
  4654  func (c *StorageGateway) DescribeWorkingStorage(input *DescribeWorkingStorageInput) (*DescribeWorkingStorageOutput, error) {
  4655  	req, out := c.DescribeWorkingStorageRequest(input)
  4656  	return out, req.Send()
  4657  }
  4658  
  4659  // DescribeWorkingStorageWithContext is the same as DescribeWorkingStorage with the addition of
  4660  // the ability to pass a context and additional request options.
  4661  //
  4662  // See DescribeWorkingStorage for details on how to use this API operation.
  4663  //
  4664  // The context must be non-nil and will be used for request cancellation. If
  4665  // the context is nil a panic will occur. In the future the SDK may create
  4666  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4667  // for more information on using Contexts.
  4668  func (c *StorageGateway) DescribeWorkingStorageWithContext(ctx aws.Context, input *DescribeWorkingStorageInput, opts ...request.Option) (*DescribeWorkingStorageOutput, error) {
  4669  	req, out := c.DescribeWorkingStorageRequest(input)
  4670  	req.SetContext(ctx)
  4671  	req.ApplyOptions(opts...)
  4672  	return out, req.Send()
  4673  }
  4674  
  4675  const opDetachVolume = "DetachVolume"
  4676  
  4677  // DetachVolumeRequest generates a "aws/request.Request" representing the
  4678  // client's request for the DetachVolume operation. The "output" return
  4679  // value will be populated with the request's response once the request completes
  4680  // successfully.
  4681  //
  4682  // Use "Send" method on the returned Request to send the API call to the service.
  4683  // the "output" return value is not valid until after Send returns without error.
  4684  //
  4685  // See DetachVolume for more information on using the DetachVolume
  4686  // API call, and error handling.
  4687  //
  4688  // This method is useful when you want to inject custom logic or configuration
  4689  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4690  //
  4691  //
  4692  //    // Example sending a request using the DetachVolumeRequest method.
  4693  //    req, resp := client.DetachVolumeRequest(params)
  4694  //
  4695  //    err := req.Send()
  4696  //    if err == nil { // resp is now filled
  4697  //        fmt.Println(resp)
  4698  //    }
  4699  //
  4700  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DetachVolume
  4701  func (c *StorageGateway) DetachVolumeRequest(input *DetachVolumeInput) (req *request.Request, output *DetachVolumeOutput) {
  4702  	op := &request.Operation{
  4703  		Name:       opDetachVolume,
  4704  		HTTPMethod: "POST",
  4705  		HTTPPath:   "/",
  4706  	}
  4707  
  4708  	if input == nil {
  4709  		input = &DetachVolumeInput{}
  4710  	}
  4711  
  4712  	output = &DetachVolumeOutput{}
  4713  	req = c.newRequest(op, input, output)
  4714  	return
  4715  }
  4716  
  4717  // DetachVolume API operation for AWS Storage Gateway.
  4718  //
  4719  // Disconnects a volume from an iSCSI connection and then detaches the volume
  4720  // from the specified gateway. Detaching and attaching a volume enables you
  4721  // to recover your data from one gateway to a different gateway without creating
  4722  // a snapshot. It also makes it easier to move your volumes from an on-premises
  4723  // gateway to a gateway hosted on an Amazon EC2 instance. This operation is
  4724  // only supported in the volume gateway type.
  4725  //
  4726  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4727  // with awserr.Error's Code and Message methods to get detailed information about
  4728  // the error.
  4729  //
  4730  // See the AWS API reference guide for AWS Storage Gateway's
  4731  // API operation DetachVolume for usage and error information.
  4732  //
  4733  // Returned Error Types:
  4734  //   * InvalidGatewayRequestException
  4735  //   An exception occurred because an invalid gateway request was issued to the
  4736  //   service. For more information, see the error and message fields.
  4737  //
  4738  //   * InternalServerError
  4739  //   An internal server error has occurred during the request. For more information,
  4740  //   see the error and message fields.
  4741  //
  4742  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DetachVolume
  4743  func (c *StorageGateway) DetachVolume(input *DetachVolumeInput) (*DetachVolumeOutput, error) {
  4744  	req, out := c.DetachVolumeRequest(input)
  4745  	return out, req.Send()
  4746  }
  4747  
  4748  // DetachVolumeWithContext is the same as DetachVolume with the addition of
  4749  // the ability to pass a context and additional request options.
  4750  //
  4751  // See DetachVolume for details on how to use this API operation.
  4752  //
  4753  // The context must be non-nil and will be used for request cancellation. If
  4754  // the context is nil a panic will occur. In the future the SDK may create
  4755  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4756  // for more information on using Contexts.
  4757  func (c *StorageGateway) DetachVolumeWithContext(ctx aws.Context, input *DetachVolumeInput, opts ...request.Option) (*DetachVolumeOutput, error) {
  4758  	req, out := c.DetachVolumeRequest(input)
  4759  	req.SetContext(ctx)
  4760  	req.ApplyOptions(opts...)
  4761  	return out, req.Send()
  4762  }
  4763  
  4764  const opDisableGateway = "DisableGateway"
  4765  
  4766  // DisableGatewayRequest generates a "aws/request.Request" representing the
  4767  // client's request for the DisableGateway operation. The "output" return
  4768  // value will be populated with the request's response once the request completes
  4769  // successfully.
  4770  //
  4771  // Use "Send" method on the returned Request to send the API call to the service.
  4772  // the "output" return value is not valid until after Send returns without error.
  4773  //
  4774  // See DisableGateway for more information on using the DisableGateway
  4775  // API call, and error handling.
  4776  //
  4777  // This method is useful when you want to inject custom logic or configuration
  4778  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4779  //
  4780  //
  4781  //    // Example sending a request using the DisableGatewayRequest method.
  4782  //    req, resp := client.DisableGatewayRequest(params)
  4783  //
  4784  //    err := req.Send()
  4785  //    if err == nil { // resp is now filled
  4786  //        fmt.Println(resp)
  4787  //    }
  4788  //
  4789  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisableGateway
  4790  func (c *StorageGateway) DisableGatewayRequest(input *DisableGatewayInput) (req *request.Request, output *DisableGatewayOutput) {
  4791  	op := &request.Operation{
  4792  		Name:       opDisableGateway,
  4793  		HTTPMethod: "POST",
  4794  		HTTPPath:   "/",
  4795  	}
  4796  
  4797  	if input == nil {
  4798  		input = &DisableGatewayInput{}
  4799  	}
  4800  
  4801  	output = &DisableGatewayOutput{}
  4802  	req = c.newRequest(op, input, output)
  4803  	return
  4804  }
  4805  
  4806  // DisableGateway API operation for AWS Storage Gateway.
  4807  //
  4808  // Disables a tape gateway when the gateway is no longer functioning. For example,
  4809  // if your gateway VM is damaged, you can disable the gateway so you can recover
  4810  // virtual tapes.
  4811  //
  4812  // Use this operation for a tape gateway that is not reachable or not functioning.
  4813  // This operation is only supported in the tape gateway type.
  4814  //
  4815  // After a gateway is disabled, it cannot be enabled.
  4816  //
  4817  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4818  // with awserr.Error's Code and Message methods to get detailed information about
  4819  // the error.
  4820  //
  4821  // See the AWS API reference guide for AWS Storage Gateway's
  4822  // API operation DisableGateway for usage and error information.
  4823  //
  4824  // Returned Error Types:
  4825  //   * InvalidGatewayRequestException
  4826  //   An exception occurred because an invalid gateway request was issued to the
  4827  //   service. For more information, see the error and message fields.
  4828  //
  4829  //   * InternalServerError
  4830  //   An internal server error has occurred during the request. For more information,
  4831  //   see the error and message fields.
  4832  //
  4833  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisableGateway
  4834  func (c *StorageGateway) DisableGateway(input *DisableGatewayInput) (*DisableGatewayOutput, error) {
  4835  	req, out := c.DisableGatewayRequest(input)
  4836  	return out, req.Send()
  4837  }
  4838  
  4839  // DisableGatewayWithContext is the same as DisableGateway with the addition of
  4840  // the ability to pass a context and additional request options.
  4841  //
  4842  // See DisableGateway for details on how to use this API operation.
  4843  //
  4844  // The context must be non-nil and will be used for request cancellation. If
  4845  // the context is nil a panic will occur. In the future the SDK may create
  4846  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4847  // for more information on using Contexts.
  4848  func (c *StorageGateway) DisableGatewayWithContext(ctx aws.Context, input *DisableGatewayInput, opts ...request.Option) (*DisableGatewayOutput, error) {
  4849  	req, out := c.DisableGatewayRequest(input)
  4850  	req.SetContext(ctx)
  4851  	req.ApplyOptions(opts...)
  4852  	return out, req.Send()
  4853  }
  4854  
  4855  const opDisassociateFileSystem = "DisassociateFileSystem"
  4856  
  4857  // DisassociateFileSystemRequest generates a "aws/request.Request" representing the
  4858  // client's request for the DisassociateFileSystem operation. The "output" return
  4859  // value will be populated with the request's response once the request completes
  4860  // successfully.
  4861  //
  4862  // Use "Send" method on the returned Request to send the API call to the service.
  4863  // the "output" return value is not valid until after Send returns without error.
  4864  //
  4865  // See DisassociateFileSystem for more information on using the DisassociateFileSystem
  4866  // API call, and error handling.
  4867  //
  4868  // This method is useful when you want to inject custom logic or configuration
  4869  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4870  //
  4871  //
  4872  //    // Example sending a request using the DisassociateFileSystemRequest method.
  4873  //    req, resp := client.DisassociateFileSystemRequest(params)
  4874  //
  4875  //    err := req.Send()
  4876  //    if err == nil { // resp is now filled
  4877  //        fmt.Println(resp)
  4878  //    }
  4879  //
  4880  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisassociateFileSystem
  4881  func (c *StorageGateway) DisassociateFileSystemRequest(input *DisassociateFileSystemInput) (req *request.Request, output *DisassociateFileSystemOutput) {
  4882  	op := &request.Operation{
  4883  		Name:       opDisassociateFileSystem,
  4884  		HTTPMethod: "POST",
  4885  		HTTPPath:   "/",
  4886  	}
  4887  
  4888  	if input == nil {
  4889  		input = &DisassociateFileSystemInput{}
  4890  	}
  4891  
  4892  	output = &DisassociateFileSystemOutput{}
  4893  	req = c.newRequest(op, input, output)
  4894  	return
  4895  }
  4896  
  4897  // DisassociateFileSystem API operation for AWS Storage Gateway.
  4898  //
  4899  // Disassociates an Amazon FSx file system from the specified gateway. After
  4900  // the disassociation process finishes, the gateway can no longer access the
  4901  // Amazon FSx file system. This operation is only supported in the FSx File
  4902  // Gateway type.
  4903  //
  4904  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4905  // with awserr.Error's Code and Message methods to get detailed information about
  4906  // the error.
  4907  //
  4908  // See the AWS API reference guide for AWS Storage Gateway's
  4909  // API operation DisassociateFileSystem for usage and error information.
  4910  //
  4911  // Returned Error Types:
  4912  //   * InvalidGatewayRequestException
  4913  //   An exception occurred because an invalid gateway request was issued to the
  4914  //   service. For more information, see the error and message fields.
  4915  //
  4916  //   * InternalServerError
  4917  //   An internal server error has occurred during the request. For more information,
  4918  //   see the error and message fields.
  4919  //
  4920  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisassociateFileSystem
  4921  func (c *StorageGateway) DisassociateFileSystem(input *DisassociateFileSystemInput) (*DisassociateFileSystemOutput, error) {
  4922  	req, out := c.DisassociateFileSystemRequest(input)
  4923  	return out, req.Send()
  4924  }
  4925  
  4926  // DisassociateFileSystemWithContext is the same as DisassociateFileSystem with the addition of
  4927  // the ability to pass a context and additional request options.
  4928  //
  4929  // See DisassociateFileSystem for details on how to use this API operation.
  4930  //
  4931  // The context must be non-nil and will be used for request cancellation. If
  4932  // the context is nil a panic will occur. In the future the SDK may create
  4933  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4934  // for more information on using Contexts.
  4935  func (c *StorageGateway) DisassociateFileSystemWithContext(ctx aws.Context, input *DisassociateFileSystemInput, opts ...request.Option) (*DisassociateFileSystemOutput, error) {
  4936  	req, out := c.DisassociateFileSystemRequest(input)
  4937  	req.SetContext(ctx)
  4938  	req.ApplyOptions(opts...)
  4939  	return out, req.Send()
  4940  }
  4941  
  4942  const opJoinDomain = "JoinDomain"
  4943  
  4944  // JoinDomainRequest generates a "aws/request.Request" representing the
  4945  // client's request for the JoinDomain operation. The "output" return
  4946  // value will be populated with the request's response once the request completes
  4947  // successfully.
  4948  //
  4949  // Use "Send" method on the returned Request to send the API call to the service.
  4950  // the "output" return value is not valid until after Send returns without error.
  4951  //
  4952  // See JoinDomain for more information on using the JoinDomain
  4953  // API call, and error handling.
  4954  //
  4955  // This method is useful when you want to inject custom logic or configuration
  4956  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4957  //
  4958  //
  4959  //    // Example sending a request using the JoinDomainRequest method.
  4960  //    req, resp := client.JoinDomainRequest(params)
  4961  //
  4962  //    err := req.Send()
  4963  //    if err == nil { // resp is now filled
  4964  //        fmt.Println(resp)
  4965  //    }
  4966  //
  4967  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/JoinDomain
  4968  func (c *StorageGateway) JoinDomainRequest(input *JoinDomainInput) (req *request.Request, output *JoinDomainOutput) {
  4969  	op := &request.Operation{
  4970  		Name:       opJoinDomain,
  4971  		HTTPMethod: "POST",
  4972  		HTTPPath:   "/",
  4973  	}
  4974  
  4975  	if input == nil {
  4976  		input = &JoinDomainInput{}
  4977  	}
  4978  
  4979  	output = &JoinDomainOutput{}
  4980  	req = c.newRequest(op, input, output)
  4981  	return
  4982  }
  4983  
  4984  // JoinDomain API operation for AWS Storage Gateway.
  4985  //
  4986  // Adds a file gateway to an Active Directory domain. This operation is only
  4987  // supported for file gateways that support the SMB file protocol.
  4988  //
  4989  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4990  // with awserr.Error's Code and Message methods to get detailed information about
  4991  // the error.
  4992  //
  4993  // See the AWS API reference guide for AWS Storage Gateway's
  4994  // API operation JoinDomain for usage and error information.
  4995  //
  4996  // Returned Error Types:
  4997  //   * InvalidGatewayRequestException
  4998  //   An exception occurred because an invalid gateway request was issued to the
  4999  //   service. For more information, see the error and message fields.
  5000  //
  5001  //   * InternalServerError
  5002  //   An internal server error has occurred during the request. For more information,
  5003  //   see the error and message fields.
  5004  //
  5005  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/JoinDomain
  5006  func (c *StorageGateway) JoinDomain(input *JoinDomainInput) (*JoinDomainOutput, error) {
  5007  	req, out := c.JoinDomainRequest(input)
  5008  	return out, req.Send()
  5009  }
  5010  
  5011  // JoinDomainWithContext is the same as JoinDomain with the addition of
  5012  // the ability to pass a context and additional request options.
  5013  //
  5014  // See JoinDomain for details on how to use this API operation.
  5015  //
  5016  // The context must be non-nil and will be used for request cancellation. If
  5017  // the context is nil a panic will occur. In the future the SDK may create
  5018  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5019  // for more information on using Contexts.
  5020  func (c *StorageGateway) JoinDomainWithContext(ctx aws.Context, input *JoinDomainInput, opts ...request.Option) (*JoinDomainOutput, error) {
  5021  	req, out := c.JoinDomainRequest(input)
  5022  	req.SetContext(ctx)
  5023  	req.ApplyOptions(opts...)
  5024  	return out, req.Send()
  5025  }
  5026  
  5027  const opListAutomaticTapeCreationPolicies = "ListAutomaticTapeCreationPolicies"
  5028  
  5029  // ListAutomaticTapeCreationPoliciesRequest generates a "aws/request.Request" representing the
  5030  // client's request for the ListAutomaticTapeCreationPolicies operation. The "output" return
  5031  // value will be populated with the request's response once the request completes
  5032  // successfully.
  5033  //
  5034  // Use "Send" method on the returned Request to send the API call to the service.
  5035  // the "output" return value is not valid until after Send returns without error.
  5036  //
  5037  // See ListAutomaticTapeCreationPolicies for more information on using the ListAutomaticTapeCreationPolicies
  5038  // API call, and error handling.
  5039  //
  5040  // This method is useful when you want to inject custom logic or configuration
  5041  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5042  //
  5043  //
  5044  //    // Example sending a request using the ListAutomaticTapeCreationPoliciesRequest method.
  5045  //    req, resp := client.ListAutomaticTapeCreationPoliciesRequest(params)
  5046  //
  5047  //    err := req.Send()
  5048  //    if err == nil { // resp is now filled
  5049  //        fmt.Println(resp)
  5050  //    }
  5051  //
  5052  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListAutomaticTapeCreationPolicies
  5053  func (c *StorageGateway) ListAutomaticTapeCreationPoliciesRequest(input *ListAutomaticTapeCreationPoliciesInput) (req *request.Request, output *ListAutomaticTapeCreationPoliciesOutput) {
  5054  	op := &request.Operation{
  5055  		Name:       opListAutomaticTapeCreationPolicies,
  5056  		HTTPMethod: "POST",
  5057  		HTTPPath:   "/",
  5058  	}
  5059  
  5060  	if input == nil {
  5061  		input = &ListAutomaticTapeCreationPoliciesInput{}
  5062  	}
  5063  
  5064  	output = &ListAutomaticTapeCreationPoliciesOutput{}
  5065  	req = c.newRequest(op, input, output)
  5066  	return
  5067  }
  5068  
  5069  // ListAutomaticTapeCreationPolicies API operation for AWS Storage Gateway.
  5070  //
  5071  // Lists the automatic tape creation policies for a gateway. If there are no
  5072  // automatic tape creation policies for the gateway, it returns an empty list.
  5073  //
  5074  // This operation is only supported for tape gateways.
  5075  //
  5076  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5077  // with awserr.Error's Code and Message methods to get detailed information about
  5078  // the error.
  5079  //
  5080  // See the AWS API reference guide for AWS Storage Gateway's
  5081  // API operation ListAutomaticTapeCreationPolicies for usage and error information.
  5082  //
  5083  // Returned Error Types:
  5084  //   * InvalidGatewayRequestException
  5085  //   An exception occurred because an invalid gateway request was issued to the
  5086  //   service. For more information, see the error and message fields.
  5087  //
  5088  //   * InternalServerError
  5089  //   An internal server error has occurred during the request. For more information,
  5090  //   see the error and message fields.
  5091  //
  5092  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListAutomaticTapeCreationPolicies
  5093  func (c *StorageGateway) ListAutomaticTapeCreationPolicies(input *ListAutomaticTapeCreationPoliciesInput) (*ListAutomaticTapeCreationPoliciesOutput, error) {
  5094  	req, out := c.ListAutomaticTapeCreationPoliciesRequest(input)
  5095  	return out, req.Send()
  5096  }
  5097  
  5098  // ListAutomaticTapeCreationPoliciesWithContext is the same as ListAutomaticTapeCreationPolicies with the addition of
  5099  // the ability to pass a context and additional request options.
  5100  //
  5101  // See ListAutomaticTapeCreationPolicies for details on how to use this API operation.
  5102  //
  5103  // The context must be non-nil and will be used for request cancellation. If
  5104  // the context is nil a panic will occur. In the future the SDK may create
  5105  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5106  // for more information on using Contexts.
  5107  func (c *StorageGateway) ListAutomaticTapeCreationPoliciesWithContext(ctx aws.Context, input *ListAutomaticTapeCreationPoliciesInput, opts ...request.Option) (*ListAutomaticTapeCreationPoliciesOutput, error) {
  5108  	req, out := c.ListAutomaticTapeCreationPoliciesRequest(input)
  5109  	req.SetContext(ctx)
  5110  	req.ApplyOptions(opts...)
  5111  	return out, req.Send()
  5112  }
  5113  
  5114  const opListFileShares = "ListFileShares"
  5115  
  5116  // ListFileSharesRequest generates a "aws/request.Request" representing the
  5117  // client's request for the ListFileShares operation. The "output" return
  5118  // value will be populated with the request's response once the request completes
  5119  // successfully.
  5120  //
  5121  // Use "Send" method on the returned Request to send the API call to the service.
  5122  // the "output" return value is not valid until after Send returns without error.
  5123  //
  5124  // See ListFileShares for more information on using the ListFileShares
  5125  // API call, and error handling.
  5126  //
  5127  // This method is useful when you want to inject custom logic or configuration
  5128  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5129  //
  5130  //
  5131  //    // Example sending a request using the ListFileSharesRequest method.
  5132  //    req, resp := client.ListFileSharesRequest(params)
  5133  //
  5134  //    err := req.Send()
  5135  //    if err == nil { // resp is now filled
  5136  //        fmt.Println(resp)
  5137  //    }
  5138  //
  5139  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileShares
  5140  func (c *StorageGateway) ListFileSharesRequest(input *ListFileSharesInput) (req *request.Request, output *ListFileSharesOutput) {
  5141  	op := &request.Operation{
  5142  		Name:       opListFileShares,
  5143  		HTTPMethod: "POST",
  5144  		HTTPPath:   "/",
  5145  		Paginator: &request.Paginator{
  5146  			InputTokens:     []string{"Marker"},
  5147  			OutputTokens:    []string{"NextMarker"},
  5148  			LimitToken:      "Limit",
  5149  			TruncationToken: "",
  5150  		},
  5151  	}
  5152  
  5153  	if input == nil {
  5154  		input = &ListFileSharesInput{}
  5155  	}
  5156  
  5157  	output = &ListFileSharesOutput{}
  5158  	req = c.newRequest(op, input, output)
  5159  	return
  5160  }
  5161  
  5162  // ListFileShares API operation for AWS Storage Gateway.
  5163  //
  5164  // Gets a list of the file shares for a specific S3 File Gateway, or the list
  5165  // of file shares that belong to the calling user account. This operation is
  5166  // only supported for S3 File Gateways.
  5167  //
  5168  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5169  // with awserr.Error's Code and Message methods to get detailed information about
  5170  // the error.
  5171  //
  5172  // See the AWS API reference guide for AWS Storage Gateway's
  5173  // API operation ListFileShares for usage and error information.
  5174  //
  5175  // Returned Error Types:
  5176  //   * InvalidGatewayRequestException
  5177  //   An exception occurred because an invalid gateway request was issued to the
  5178  //   service. For more information, see the error and message fields.
  5179  //
  5180  //   * InternalServerError
  5181  //   An internal server error has occurred during the request. For more information,
  5182  //   see the error and message fields.
  5183  //
  5184  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileShares
  5185  func (c *StorageGateway) ListFileShares(input *ListFileSharesInput) (*ListFileSharesOutput, error) {
  5186  	req, out := c.ListFileSharesRequest(input)
  5187  	return out, req.Send()
  5188  }
  5189  
  5190  // ListFileSharesWithContext is the same as ListFileShares with the addition of
  5191  // the ability to pass a context and additional request options.
  5192  //
  5193  // See ListFileShares for details on how to use this API operation.
  5194  //
  5195  // The context must be non-nil and will be used for request cancellation. If
  5196  // the context is nil a panic will occur. In the future the SDK may create
  5197  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5198  // for more information on using Contexts.
  5199  func (c *StorageGateway) ListFileSharesWithContext(ctx aws.Context, input *ListFileSharesInput, opts ...request.Option) (*ListFileSharesOutput, error) {
  5200  	req, out := c.ListFileSharesRequest(input)
  5201  	req.SetContext(ctx)
  5202  	req.ApplyOptions(opts...)
  5203  	return out, req.Send()
  5204  }
  5205  
  5206  // ListFileSharesPages iterates over the pages of a ListFileShares operation,
  5207  // calling the "fn" function with the response data for each page. To stop
  5208  // iterating, return false from the fn function.
  5209  //
  5210  // See ListFileShares method for more information on how to use this operation.
  5211  //
  5212  // Note: This operation can generate multiple requests to a service.
  5213  //
  5214  //    // Example iterating over at most 3 pages of a ListFileShares operation.
  5215  //    pageNum := 0
  5216  //    err := client.ListFileSharesPages(params,
  5217  //        func(page *storagegateway.ListFileSharesOutput, lastPage bool) bool {
  5218  //            pageNum++
  5219  //            fmt.Println(page)
  5220  //            return pageNum <= 3
  5221  //        })
  5222  //
  5223  func (c *StorageGateway) ListFileSharesPages(input *ListFileSharesInput, fn func(*ListFileSharesOutput, bool) bool) error {
  5224  	return c.ListFileSharesPagesWithContext(aws.BackgroundContext(), input, fn)
  5225  }
  5226  
  5227  // ListFileSharesPagesWithContext same as ListFileSharesPages except
  5228  // it takes a Context and allows setting request options on the pages.
  5229  //
  5230  // The context must be non-nil and will be used for request cancellation. If
  5231  // the context is nil a panic will occur. In the future the SDK may create
  5232  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5233  // for more information on using Contexts.
  5234  func (c *StorageGateway) ListFileSharesPagesWithContext(ctx aws.Context, input *ListFileSharesInput, fn func(*ListFileSharesOutput, bool) bool, opts ...request.Option) error {
  5235  	p := request.Pagination{
  5236  		NewRequest: func() (*request.Request, error) {
  5237  			var inCpy *ListFileSharesInput
  5238  			if input != nil {
  5239  				tmp := *input
  5240  				inCpy = &tmp
  5241  			}
  5242  			req, _ := c.ListFileSharesRequest(inCpy)
  5243  			req.SetContext(ctx)
  5244  			req.ApplyOptions(opts...)
  5245  			return req, nil
  5246  		},
  5247  	}
  5248  
  5249  	for p.Next() {
  5250  		if !fn(p.Page().(*ListFileSharesOutput), !p.HasNextPage()) {
  5251  			break
  5252  		}
  5253  	}
  5254  
  5255  	return p.Err()
  5256  }
  5257  
  5258  const opListFileSystemAssociations = "ListFileSystemAssociations"
  5259  
  5260  // ListFileSystemAssociationsRequest generates a "aws/request.Request" representing the
  5261  // client's request for the ListFileSystemAssociations operation. The "output" return
  5262  // value will be populated with the request's response once the request completes
  5263  // successfully.
  5264  //
  5265  // Use "Send" method on the returned Request to send the API call to the service.
  5266  // the "output" return value is not valid until after Send returns without error.
  5267  //
  5268  // See ListFileSystemAssociations for more information on using the ListFileSystemAssociations
  5269  // API call, and error handling.
  5270  //
  5271  // This method is useful when you want to inject custom logic or configuration
  5272  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5273  //
  5274  //
  5275  //    // Example sending a request using the ListFileSystemAssociationsRequest method.
  5276  //    req, resp := client.ListFileSystemAssociationsRequest(params)
  5277  //
  5278  //    err := req.Send()
  5279  //    if err == nil { // resp is now filled
  5280  //        fmt.Println(resp)
  5281  //    }
  5282  //
  5283  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileSystemAssociations
  5284  func (c *StorageGateway) ListFileSystemAssociationsRequest(input *ListFileSystemAssociationsInput) (req *request.Request, output *ListFileSystemAssociationsOutput) {
  5285  	op := &request.Operation{
  5286  		Name:       opListFileSystemAssociations,
  5287  		HTTPMethod: "POST",
  5288  		HTTPPath:   "/",
  5289  		Paginator: &request.Paginator{
  5290  			InputTokens:     []string{"Marker"},
  5291  			OutputTokens:    []string{"NextMarker"},
  5292  			LimitToken:      "Limit",
  5293  			TruncationToken: "",
  5294  		},
  5295  	}
  5296  
  5297  	if input == nil {
  5298  		input = &ListFileSystemAssociationsInput{}
  5299  	}
  5300  
  5301  	output = &ListFileSystemAssociationsOutput{}
  5302  	req = c.newRequest(op, input, output)
  5303  	return
  5304  }
  5305  
  5306  // ListFileSystemAssociations API operation for AWS Storage Gateway.
  5307  //
  5308  // Gets a list of FileSystemAssociationSummary objects. Each object contains
  5309  // a summary of a file system association. This operation is only supported
  5310  // for FSx File Gateways.
  5311  //
  5312  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5313  // with awserr.Error's Code and Message methods to get detailed information about
  5314  // the error.
  5315  //
  5316  // See the AWS API reference guide for AWS Storage Gateway's
  5317  // API operation ListFileSystemAssociations for usage and error information.
  5318  //
  5319  // Returned Error Types:
  5320  //   * InvalidGatewayRequestException
  5321  //   An exception occurred because an invalid gateway request was issued to the
  5322  //   service. For more information, see the error and message fields.
  5323  //
  5324  //   * InternalServerError
  5325  //   An internal server error has occurred during the request. For more information,
  5326  //   see the error and message fields.
  5327  //
  5328  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileSystemAssociations
  5329  func (c *StorageGateway) ListFileSystemAssociations(input *ListFileSystemAssociationsInput) (*ListFileSystemAssociationsOutput, error) {
  5330  	req, out := c.ListFileSystemAssociationsRequest(input)
  5331  	return out, req.Send()
  5332  }
  5333  
  5334  // ListFileSystemAssociationsWithContext is the same as ListFileSystemAssociations with the addition of
  5335  // the ability to pass a context and additional request options.
  5336  //
  5337  // See ListFileSystemAssociations for details on how to use this API operation.
  5338  //
  5339  // The context must be non-nil and will be used for request cancellation. If
  5340  // the context is nil a panic will occur. In the future the SDK may create
  5341  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5342  // for more information on using Contexts.
  5343  func (c *StorageGateway) ListFileSystemAssociationsWithContext(ctx aws.Context, input *ListFileSystemAssociationsInput, opts ...request.Option) (*ListFileSystemAssociationsOutput, error) {
  5344  	req, out := c.ListFileSystemAssociationsRequest(input)
  5345  	req.SetContext(ctx)
  5346  	req.ApplyOptions(opts...)
  5347  	return out, req.Send()
  5348  }
  5349  
  5350  // ListFileSystemAssociationsPages iterates over the pages of a ListFileSystemAssociations operation,
  5351  // calling the "fn" function with the response data for each page. To stop
  5352  // iterating, return false from the fn function.
  5353  //
  5354  // See ListFileSystemAssociations method for more information on how to use this operation.
  5355  //
  5356  // Note: This operation can generate multiple requests to a service.
  5357  //
  5358  //    // Example iterating over at most 3 pages of a ListFileSystemAssociations operation.
  5359  //    pageNum := 0
  5360  //    err := client.ListFileSystemAssociationsPages(params,
  5361  //        func(page *storagegateway.ListFileSystemAssociationsOutput, lastPage bool) bool {
  5362  //            pageNum++
  5363  //            fmt.Println(page)
  5364  //            return pageNum <= 3
  5365  //        })
  5366  //
  5367  func (c *StorageGateway) ListFileSystemAssociationsPages(input *ListFileSystemAssociationsInput, fn func(*ListFileSystemAssociationsOutput, bool) bool) error {
  5368  	return c.ListFileSystemAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
  5369  }
  5370  
  5371  // ListFileSystemAssociationsPagesWithContext same as ListFileSystemAssociationsPages except
  5372  // it takes a Context and allows setting request options on the pages.
  5373  //
  5374  // The context must be non-nil and will be used for request cancellation. If
  5375  // the context is nil a panic will occur. In the future the SDK may create
  5376  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5377  // for more information on using Contexts.
  5378  func (c *StorageGateway) ListFileSystemAssociationsPagesWithContext(ctx aws.Context, input *ListFileSystemAssociationsInput, fn func(*ListFileSystemAssociationsOutput, bool) bool, opts ...request.Option) error {
  5379  	p := request.Pagination{
  5380  		NewRequest: func() (*request.Request, error) {
  5381  			var inCpy *ListFileSystemAssociationsInput
  5382  			if input != nil {
  5383  				tmp := *input
  5384  				inCpy = &tmp
  5385  			}
  5386  			req, _ := c.ListFileSystemAssociationsRequest(inCpy)
  5387  			req.SetContext(ctx)
  5388  			req.ApplyOptions(opts...)
  5389  			return req, nil
  5390  		},
  5391  	}
  5392  
  5393  	for p.Next() {
  5394  		if !fn(p.Page().(*ListFileSystemAssociationsOutput), !p.HasNextPage()) {
  5395  			break
  5396  		}
  5397  	}
  5398  
  5399  	return p.Err()
  5400  }
  5401  
  5402  const opListGateways = "ListGateways"
  5403  
  5404  // ListGatewaysRequest generates a "aws/request.Request" representing the
  5405  // client's request for the ListGateways operation. The "output" return
  5406  // value will be populated with the request's response once the request completes
  5407  // successfully.
  5408  //
  5409  // Use "Send" method on the returned Request to send the API call to the service.
  5410  // the "output" return value is not valid until after Send returns without error.
  5411  //
  5412  // See ListGateways for more information on using the ListGateways
  5413  // API call, and error handling.
  5414  //
  5415  // This method is useful when you want to inject custom logic or configuration
  5416  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5417  //
  5418  //
  5419  //    // Example sending a request using the ListGatewaysRequest method.
  5420  //    req, resp := client.ListGatewaysRequest(params)
  5421  //
  5422  //    err := req.Send()
  5423  //    if err == nil { // resp is now filled
  5424  //        fmt.Println(resp)
  5425  //    }
  5426  //
  5427  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListGateways
  5428  func (c *StorageGateway) ListGatewaysRequest(input *ListGatewaysInput) (req *request.Request, output *ListGatewaysOutput) {
  5429  	op := &request.Operation{
  5430  		Name:       opListGateways,
  5431  		HTTPMethod: "POST",
  5432  		HTTPPath:   "/",
  5433  		Paginator: &request.Paginator{
  5434  			InputTokens:     []string{"Marker"},
  5435  			OutputTokens:    []string{"Marker"},
  5436  			LimitToken:      "Limit",
  5437  			TruncationToken: "",
  5438  		},
  5439  	}
  5440  
  5441  	if input == nil {
  5442  		input = &ListGatewaysInput{}
  5443  	}
  5444  
  5445  	output = &ListGatewaysOutput{}
  5446  	req = c.newRequest(op, input, output)
  5447  	return
  5448  }
  5449  
  5450  // ListGateways API operation for AWS Storage Gateway.
  5451  //
  5452  // Lists gateways owned by an account in an Region specified in the request.
  5453  // The returned list is ordered by gateway Amazon Resource Name (ARN).
  5454  //
  5455  // By default, the operation returns a maximum of 100 gateways. This operation
  5456  // supports pagination that allows you to optionally reduce the number of gateways
  5457  // returned in a response.
  5458  //
  5459  // If you have more gateways than are returned in a response (that is, the response
  5460  // returns only a truncated list of your gateways), the response contains a
  5461  // marker that you can specify in your next request to fetch the next page of
  5462  // gateways.
  5463  //
  5464  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5465  // with awserr.Error's Code and Message methods to get detailed information about
  5466  // the error.
  5467  //
  5468  // See the AWS API reference guide for AWS Storage Gateway's
  5469  // API operation ListGateways for usage and error information.
  5470  //
  5471  // Returned Error Types:
  5472  //   * InvalidGatewayRequestException
  5473  //   An exception occurred because an invalid gateway request was issued to the
  5474  //   service. For more information, see the error and message fields.
  5475  //
  5476  //   * InternalServerError
  5477  //   An internal server error has occurred during the request. For more information,
  5478  //   see the error and message fields.
  5479  //
  5480  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListGateways
  5481  func (c *StorageGateway) ListGateways(input *ListGatewaysInput) (*ListGatewaysOutput, error) {
  5482  	req, out := c.ListGatewaysRequest(input)
  5483  	return out, req.Send()
  5484  }
  5485  
  5486  // ListGatewaysWithContext is the same as ListGateways with the addition of
  5487  // the ability to pass a context and additional request options.
  5488  //
  5489  // See ListGateways for details on how to use this API operation.
  5490  //
  5491  // The context must be non-nil and will be used for request cancellation. If
  5492  // the context is nil a panic will occur. In the future the SDK may create
  5493  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5494  // for more information on using Contexts.
  5495  func (c *StorageGateway) ListGatewaysWithContext(ctx aws.Context, input *ListGatewaysInput, opts ...request.Option) (*ListGatewaysOutput, error) {
  5496  	req, out := c.ListGatewaysRequest(input)
  5497  	req.SetContext(ctx)
  5498  	req.ApplyOptions(opts...)
  5499  	return out, req.Send()
  5500  }
  5501  
  5502  // ListGatewaysPages iterates over the pages of a ListGateways operation,
  5503  // calling the "fn" function with the response data for each page. To stop
  5504  // iterating, return false from the fn function.
  5505  //
  5506  // See ListGateways method for more information on how to use this operation.
  5507  //
  5508  // Note: This operation can generate multiple requests to a service.
  5509  //
  5510  //    // Example iterating over at most 3 pages of a ListGateways operation.
  5511  //    pageNum := 0
  5512  //    err := client.ListGatewaysPages(params,
  5513  //        func(page *storagegateway.ListGatewaysOutput, lastPage bool) bool {
  5514  //            pageNum++
  5515  //            fmt.Println(page)
  5516  //            return pageNum <= 3
  5517  //        })
  5518  //
  5519  func (c *StorageGateway) ListGatewaysPages(input *ListGatewaysInput, fn func(*ListGatewaysOutput, bool) bool) error {
  5520  	return c.ListGatewaysPagesWithContext(aws.BackgroundContext(), input, fn)
  5521  }
  5522  
  5523  // ListGatewaysPagesWithContext same as ListGatewaysPages except
  5524  // it takes a Context and allows setting request options on the pages.
  5525  //
  5526  // The context must be non-nil and will be used for request cancellation. If
  5527  // the context is nil a panic will occur. In the future the SDK may create
  5528  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5529  // for more information on using Contexts.
  5530  func (c *StorageGateway) ListGatewaysPagesWithContext(ctx aws.Context, input *ListGatewaysInput, fn func(*ListGatewaysOutput, bool) bool, opts ...request.Option) error {
  5531  	p := request.Pagination{
  5532  		NewRequest: func() (*request.Request, error) {
  5533  			var inCpy *ListGatewaysInput
  5534  			if input != nil {
  5535  				tmp := *input
  5536  				inCpy = &tmp
  5537  			}
  5538  			req, _ := c.ListGatewaysRequest(inCpy)
  5539  			req.SetContext(ctx)
  5540  			req.ApplyOptions(opts...)
  5541  			return req, nil
  5542  		},
  5543  	}
  5544  
  5545  	for p.Next() {
  5546  		if !fn(p.Page().(*ListGatewaysOutput), !p.HasNextPage()) {
  5547  			break
  5548  		}
  5549  	}
  5550  
  5551  	return p.Err()
  5552  }
  5553  
  5554  const opListLocalDisks = "ListLocalDisks"
  5555  
  5556  // ListLocalDisksRequest generates a "aws/request.Request" representing the
  5557  // client's request for the ListLocalDisks operation. The "output" return
  5558  // value will be populated with the request's response once the request completes
  5559  // successfully.
  5560  //
  5561  // Use "Send" method on the returned Request to send the API call to the service.
  5562  // the "output" return value is not valid until after Send returns without error.
  5563  //
  5564  // See ListLocalDisks for more information on using the ListLocalDisks
  5565  // API call, and error handling.
  5566  //
  5567  // This method is useful when you want to inject custom logic or configuration
  5568  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5569  //
  5570  //
  5571  //    // Example sending a request using the ListLocalDisksRequest method.
  5572  //    req, resp := client.ListLocalDisksRequest(params)
  5573  //
  5574  //    err := req.Send()
  5575  //    if err == nil { // resp is now filled
  5576  //        fmt.Println(resp)
  5577  //    }
  5578  //
  5579  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListLocalDisks
  5580  func (c *StorageGateway) ListLocalDisksRequest(input *ListLocalDisksInput) (req *request.Request, output *ListLocalDisksOutput) {
  5581  	op := &request.Operation{
  5582  		Name:       opListLocalDisks,
  5583  		HTTPMethod: "POST",
  5584  		HTTPPath:   "/",
  5585  	}
  5586  
  5587  	if input == nil {
  5588  		input = &ListLocalDisksInput{}
  5589  	}
  5590  
  5591  	output = &ListLocalDisksOutput{}
  5592  	req = c.newRequest(op, input, output)
  5593  	return
  5594  }
  5595  
  5596  // ListLocalDisks API operation for AWS Storage Gateway.
  5597  //
  5598  // Returns a list of the gateway's local disks. To specify which gateway to
  5599  // describe, you use the Amazon Resource Name (ARN) of the gateway in the body
  5600  // of the request.
  5601  //
  5602  // The request returns a list of all disks, specifying which are configured
  5603  // as working storage, cache storage, or stored volume or not configured at
  5604  // all. The response includes a DiskStatus field. This field can have a value
  5605  // of present (the disk is available to use), missing (the disk is no longer
  5606  // connected to the gateway), or mismatch (the disk node is occupied by a disk
  5607  // that has incorrect metadata or the disk content is corrupted).
  5608  //
  5609  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5610  // with awserr.Error's Code and Message methods to get detailed information about
  5611  // the error.
  5612  //
  5613  // See the AWS API reference guide for AWS Storage Gateway's
  5614  // API operation ListLocalDisks for usage and error information.
  5615  //
  5616  // Returned Error Types:
  5617  //   * InvalidGatewayRequestException
  5618  //   An exception occurred because an invalid gateway request was issued to the
  5619  //   service. For more information, see the error and message fields.
  5620  //
  5621  //   * InternalServerError
  5622  //   An internal server error has occurred during the request. For more information,
  5623  //   see the error and message fields.
  5624  //
  5625  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListLocalDisks
  5626  func (c *StorageGateway) ListLocalDisks(input *ListLocalDisksInput) (*ListLocalDisksOutput, error) {
  5627  	req, out := c.ListLocalDisksRequest(input)
  5628  	return out, req.Send()
  5629  }
  5630  
  5631  // ListLocalDisksWithContext is the same as ListLocalDisks with the addition of
  5632  // the ability to pass a context and additional request options.
  5633  //
  5634  // See ListLocalDisks for details on how to use this API operation.
  5635  //
  5636  // The context must be non-nil and will be used for request cancellation. If
  5637  // the context is nil a panic will occur. In the future the SDK may create
  5638  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5639  // for more information on using Contexts.
  5640  func (c *StorageGateway) ListLocalDisksWithContext(ctx aws.Context, input *ListLocalDisksInput, opts ...request.Option) (*ListLocalDisksOutput, error) {
  5641  	req, out := c.ListLocalDisksRequest(input)
  5642  	req.SetContext(ctx)
  5643  	req.ApplyOptions(opts...)
  5644  	return out, req.Send()
  5645  }
  5646  
  5647  const opListTagsForResource = "ListTagsForResource"
  5648  
  5649  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  5650  // client's request for the ListTagsForResource operation. The "output" return
  5651  // value will be populated with the request's response once the request completes
  5652  // successfully.
  5653  //
  5654  // Use "Send" method on the returned Request to send the API call to the service.
  5655  // the "output" return value is not valid until after Send returns without error.
  5656  //
  5657  // See ListTagsForResource for more information on using the ListTagsForResource
  5658  // API call, and error handling.
  5659  //
  5660  // This method is useful when you want to inject custom logic or configuration
  5661  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5662  //
  5663  //
  5664  //    // Example sending a request using the ListTagsForResourceRequest method.
  5665  //    req, resp := client.ListTagsForResourceRequest(params)
  5666  //
  5667  //    err := req.Send()
  5668  //    if err == nil { // resp is now filled
  5669  //        fmt.Println(resp)
  5670  //    }
  5671  //
  5672  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTagsForResource
  5673  func (c *StorageGateway) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  5674  	op := &request.Operation{
  5675  		Name:       opListTagsForResource,
  5676  		HTTPMethod: "POST",
  5677  		HTTPPath:   "/",
  5678  		Paginator: &request.Paginator{
  5679  			InputTokens:     []string{"Marker"},
  5680  			OutputTokens:    []string{"Marker"},
  5681  			LimitToken:      "Limit",
  5682  			TruncationToken: "",
  5683  		},
  5684  	}
  5685  
  5686  	if input == nil {
  5687  		input = &ListTagsForResourceInput{}
  5688  	}
  5689  
  5690  	output = &ListTagsForResourceOutput{}
  5691  	req = c.newRequest(op, input, output)
  5692  	return
  5693  }
  5694  
  5695  // ListTagsForResource API operation for AWS Storage Gateway.
  5696  //
  5697  // Lists the tags that have been added to the specified resource. This operation
  5698  // is supported in storage gateways of all types.
  5699  //
  5700  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5701  // with awserr.Error's Code and Message methods to get detailed information about
  5702  // the error.
  5703  //
  5704  // See the AWS API reference guide for AWS Storage Gateway's
  5705  // API operation ListTagsForResource for usage and error information.
  5706  //
  5707  // Returned Error Types:
  5708  //   * InvalidGatewayRequestException
  5709  //   An exception occurred because an invalid gateway request was issued to the
  5710  //   service. For more information, see the error and message fields.
  5711  //
  5712  //   * InternalServerError
  5713  //   An internal server error has occurred during the request. For more information,
  5714  //   see the error and message fields.
  5715  //
  5716  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTagsForResource
  5717  func (c *StorageGateway) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  5718  	req, out := c.ListTagsForResourceRequest(input)
  5719  	return out, req.Send()
  5720  }
  5721  
  5722  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  5723  // the ability to pass a context and additional request options.
  5724  //
  5725  // See ListTagsForResource for details on how to use this API operation.
  5726  //
  5727  // The context must be non-nil and will be used for request cancellation. If
  5728  // the context is nil a panic will occur. In the future the SDK may create
  5729  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5730  // for more information on using Contexts.
  5731  func (c *StorageGateway) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  5732  	req, out := c.ListTagsForResourceRequest(input)
  5733  	req.SetContext(ctx)
  5734  	req.ApplyOptions(opts...)
  5735  	return out, req.Send()
  5736  }
  5737  
  5738  // ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
  5739  // calling the "fn" function with the response data for each page. To stop
  5740  // iterating, return false from the fn function.
  5741  //
  5742  // See ListTagsForResource method for more information on how to use this operation.
  5743  //
  5744  // Note: This operation can generate multiple requests to a service.
  5745  //
  5746  //    // Example iterating over at most 3 pages of a ListTagsForResource operation.
  5747  //    pageNum := 0
  5748  //    err := client.ListTagsForResourcePages(params,
  5749  //        func(page *storagegateway.ListTagsForResourceOutput, lastPage bool) bool {
  5750  //            pageNum++
  5751  //            fmt.Println(page)
  5752  //            return pageNum <= 3
  5753  //        })
  5754  //
  5755  func (c *StorageGateway) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
  5756  	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
  5757  }
  5758  
  5759  // ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
  5760  // it takes a Context and allows setting request options on the pages.
  5761  //
  5762  // The context must be non-nil and will be used for request cancellation. If
  5763  // the context is nil a panic will occur. In the future the SDK may create
  5764  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5765  // for more information on using Contexts.
  5766  func (c *StorageGateway) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
  5767  	p := request.Pagination{
  5768  		NewRequest: func() (*request.Request, error) {
  5769  			var inCpy *ListTagsForResourceInput
  5770  			if input != nil {
  5771  				tmp := *input
  5772  				inCpy = &tmp
  5773  			}
  5774  			req, _ := c.ListTagsForResourceRequest(inCpy)
  5775  			req.SetContext(ctx)
  5776  			req.ApplyOptions(opts...)
  5777  			return req, nil
  5778  		},
  5779  	}
  5780  
  5781  	for p.Next() {
  5782  		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
  5783  			break
  5784  		}
  5785  	}
  5786  
  5787  	return p.Err()
  5788  }
  5789  
  5790  const opListTapePools = "ListTapePools"
  5791  
  5792  // ListTapePoolsRequest generates a "aws/request.Request" representing the
  5793  // client's request for the ListTapePools operation. The "output" return
  5794  // value will be populated with the request's response once the request completes
  5795  // successfully.
  5796  //
  5797  // Use "Send" method on the returned Request to send the API call to the service.
  5798  // the "output" return value is not valid until after Send returns without error.
  5799  //
  5800  // See ListTapePools for more information on using the ListTapePools
  5801  // API call, and error handling.
  5802  //
  5803  // This method is useful when you want to inject custom logic or configuration
  5804  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5805  //
  5806  //
  5807  //    // Example sending a request using the ListTapePoolsRequest method.
  5808  //    req, resp := client.ListTapePoolsRequest(params)
  5809  //
  5810  //    err := req.Send()
  5811  //    if err == nil { // resp is now filled
  5812  //        fmt.Println(resp)
  5813  //    }
  5814  //
  5815  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapePools
  5816  func (c *StorageGateway) ListTapePoolsRequest(input *ListTapePoolsInput) (req *request.Request, output *ListTapePoolsOutput) {
  5817  	op := &request.Operation{
  5818  		Name:       opListTapePools,
  5819  		HTTPMethod: "POST",
  5820  		HTTPPath:   "/",
  5821  		Paginator: &request.Paginator{
  5822  			InputTokens:     []string{"Marker"},
  5823  			OutputTokens:    []string{"Marker"},
  5824  			LimitToken:      "Limit",
  5825  			TruncationToken: "",
  5826  		},
  5827  	}
  5828  
  5829  	if input == nil {
  5830  		input = &ListTapePoolsInput{}
  5831  	}
  5832  
  5833  	output = &ListTapePoolsOutput{}
  5834  	req = c.newRequest(op, input, output)
  5835  	return
  5836  }
  5837  
  5838  // ListTapePools API operation for AWS Storage Gateway.
  5839  //
  5840  // Lists custom tape pools. You specify custom tape pools to list by specifying
  5841  // one or more custom tape pool Amazon Resource Names (ARNs). If you don't specify
  5842  // a custom tape pool ARN, the operation lists all custom tape pools.
  5843  //
  5844  // This operation supports pagination. You can optionally specify the Limit
  5845  // parameter in the body to limit the number of tape pools in the response.
  5846  // If the number of tape pools returned in the response is truncated, the response
  5847  // includes a Marker element that you can use in your subsequent request to
  5848  // retrieve the next set of tape pools.
  5849  //
  5850  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5851  // with awserr.Error's Code and Message methods to get detailed information about
  5852  // the error.
  5853  //
  5854  // See the AWS API reference guide for AWS Storage Gateway's
  5855  // API operation ListTapePools for usage and error information.
  5856  //
  5857  // Returned Error Types:
  5858  //   * InvalidGatewayRequestException
  5859  //   An exception occurred because an invalid gateway request was issued to the
  5860  //   service. For more information, see the error and message fields.
  5861  //
  5862  //   * InternalServerError
  5863  //   An internal server error has occurred during the request. For more information,
  5864  //   see the error and message fields.
  5865  //
  5866  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapePools
  5867  func (c *StorageGateway) ListTapePools(input *ListTapePoolsInput) (*ListTapePoolsOutput, error) {
  5868  	req, out := c.ListTapePoolsRequest(input)
  5869  	return out, req.Send()
  5870  }
  5871  
  5872  // ListTapePoolsWithContext is the same as ListTapePools with the addition of
  5873  // the ability to pass a context and additional request options.
  5874  //
  5875  // See ListTapePools for details on how to use this API operation.
  5876  //
  5877  // The context must be non-nil and will be used for request cancellation. If
  5878  // the context is nil a panic will occur. In the future the SDK may create
  5879  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5880  // for more information on using Contexts.
  5881  func (c *StorageGateway) ListTapePoolsWithContext(ctx aws.Context, input *ListTapePoolsInput, opts ...request.Option) (*ListTapePoolsOutput, error) {
  5882  	req, out := c.ListTapePoolsRequest(input)
  5883  	req.SetContext(ctx)
  5884  	req.ApplyOptions(opts...)
  5885  	return out, req.Send()
  5886  }
  5887  
  5888  // ListTapePoolsPages iterates over the pages of a ListTapePools operation,
  5889  // calling the "fn" function with the response data for each page. To stop
  5890  // iterating, return false from the fn function.
  5891  //
  5892  // See ListTapePools method for more information on how to use this operation.
  5893  //
  5894  // Note: This operation can generate multiple requests to a service.
  5895  //
  5896  //    // Example iterating over at most 3 pages of a ListTapePools operation.
  5897  //    pageNum := 0
  5898  //    err := client.ListTapePoolsPages(params,
  5899  //        func(page *storagegateway.ListTapePoolsOutput, lastPage bool) bool {
  5900  //            pageNum++
  5901  //            fmt.Println(page)
  5902  //            return pageNum <= 3
  5903  //        })
  5904  //
  5905  func (c *StorageGateway) ListTapePoolsPages(input *ListTapePoolsInput, fn func(*ListTapePoolsOutput, bool) bool) error {
  5906  	return c.ListTapePoolsPagesWithContext(aws.BackgroundContext(), input, fn)
  5907  }
  5908  
  5909  // ListTapePoolsPagesWithContext same as ListTapePoolsPages except
  5910  // it takes a Context and allows setting request options on the pages.
  5911  //
  5912  // The context must be non-nil and will be used for request cancellation. If
  5913  // the context is nil a panic will occur. In the future the SDK may create
  5914  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5915  // for more information on using Contexts.
  5916  func (c *StorageGateway) ListTapePoolsPagesWithContext(ctx aws.Context, input *ListTapePoolsInput, fn func(*ListTapePoolsOutput, bool) bool, opts ...request.Option) error {
  5917  	p := request.Pagination{
  5918  		NewRequest: func() (*request.Request, error) {
  5919  			var inCpy *ListTapePoolsInput
  5920  			if input != nil {
  5921  				tmp := *input
  5922  				inCpy = &tmp
  5923  			}
  5924  			req, _ := c.ListTapePoolsRequest(inCpy)
  5925  			req.SetContext(ctx)
  5926  			req.ApplyOptions(opts...)
  5927  			return req, nil
  5928  		},
  5929  	}
  5930  
  5931  	for p.Next() {
  5932  		if !fn(p.Page().(*ListTapePoolsOutput), !p.HasNextPage()) {
  5933  			break
  5934  		}
  5935  	}
  5936  
  5937  	return p.Err()
  5938  }
  5939  
  5940  const opListTapes = "ListTapes"
  5941  
  5942  // ListTapesRequest generates a "aws/request.Request" representing the
  5943  // client's request for the ListTapes operation. The "output" return
  5944  // value will be populated with the request's response once the request completes
  5945  // successfully.
  5946  //
  5947  // Use "Send" method on the returned Request to send the API call to the service.
  5948  // the "output" return value is not valid until after Send returns without error.
  5949  //
  5950  // See ListTapes for more information on using the ListTapes
  5951  // API call, and error handling.
  5952  //
  5953  // This method is useful when you want to inject custom logic or configuration
  5954  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5955  //
  5956  //
  5957  //    // Example sending a request using the ListTapesRequest method.
  5958  //    req, resp := client.ListTapesRequest(params)
  5959  //
  5960  //    err := req.Send()
  5961  //    if err == nil { // resp is now filled
  5962  //        fmt.Println(resp)
  5963  //    }
  5964  //
  5965  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapes
  5966  func (c *StorageGateway) ListTapesRequest(input *ListTapesInput) (req *request.Request, output *ListTapesOutput) {
  5967  	op := &request.Operation{
  5968  		Name:       opListTapes,
  5969  		HTTPMethod: "POST",
  5970  		HTTPPath:   "/",
  5971  		Paginator: &request.Paginator{
  5972  			InputTokens:     []string{"Marker"},
  5973  			OutputTokens:    []string{"Marker"},
  5974  			LimitToken:      "Limit",
  5975  			TruncationToken: "",
  5976  		},
  5977  	}
  5978  
  5979  	if input == nil {
  5980  		input = &ListTapesInput{}
  5981  	}
  5982  
  5983  	output = &ListTapesOutput{}
  5984  	req = c.newRequest(op, input, output)
  5985  	return
  5986  }
  5987  
  5988  // ListTapes API operation for AWS Storage Gateway.
  5989  //
  5990  // Lists virtual tapes in your virtual tape library (VTL) and your virtual tape
  5991  // shelf (VTS). You specify the tapes to list by specifying one or more tape
  5992  // Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation
  5993  // lists all virtual tapes in both your VTL and VTS.
  5994  //
  5995  // This operation supports pagination. By default, the operation returns a maximum
  5996  // of up to 100 tapes. You can optionally specify the Limit parameter in the
  5997  // body to limit the number of tapes in the response. If the number of tapes
  5998  // returned in the response is truncated, the response includes a Marker element
  5999  // that you can use in your subsequent request to retrieve the next set of tapes.
  6000  // This operation is only supported in the tape gateway type.
  6001  //
  6002  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6003  // with awserr.Error's Code and Message methods to get detailed information about
  6004  // the error.
  6005  //
  6006  // See the AWS API reference guide for AWS Storage Gateway's
  6007  // API operation ListTapes for usage and error information.
  6008  //
  6009  // Returned Error Types:
  6010  //   * InvalidGatewayRequestException
  6011  //   An exception occurred because an invalid gateway request was issued to the
  6012  //   service. For more information, see the error and message fields.
  6013  //
  6014  //   * InternalServerError
  6015  //   An internal server error has occurred during the request. For more information,
  6016  //   see the error and message fields.
  6017  //
  6018  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapes
  6019  func (c *StorageGateway) ListTapes(input *ListTapesInput) (*ListTapesOutput, error) {
  6020  	req, out := c.ListTapesRequest(input)
  6021  	return out, req.Send()
  6022  }
  6023  
  6024  // ListTapesWithContext is the same as ListTapes with the addition of
  6025  // the ability to pass a context and additional request options.
  6026  //
  6027  // See ListTapes for details on how to use this API operation.
  6028  //
  6029  // The context must be non-nil and will be used for request cancellation. If
  6030  // the context is nil a panic will occur. In the future the SDK may create
  6031  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6032  // for more information on using Contexts.
  6033  func (c *StorageGateway) ListTapesWithContext(ctx aws.Context, input *ListTapesInput, opts ...request.Option) (*ListTapesOutput, error) {
  6034  	req, out := c.ListTapesRequest(input)
  6035  	req.SetContext(ctx)
  6036  	req.ApplyOptions(opts...)
  6037  	return out, req.Send()
  6038  }
  6039  
  6040  // ListTapesPages iterates over the pages of a ListTapes operation,
  6041  // calling the "fn" function with the response data for each page. To stop
  6042  // iterating, return false from the fn function.
  6043  //
  6044  // See ListTapes method for more information on how to use this operation.
  6045  //
  6046  // Note: This operation can generate multiple requests to a service.
  6047  //
  6048  //    // Example iterating over at most 3 pages of a ListTapes operation.
  6049  //    pageNum := 0
  6050  //    err := client.ListTapesPages(params,
  6051  //        func(page *storagegateway.ListTapesOutput, lastPage bool) bool {
  6052  //            pageNum++
  6053  //            fmt.Println(page)
  6054  //            return pageNum <= 3
  6055  //        })
  6056  //
  6057  func (c *StorageGateway) ListTapesPages(input *ListTapesInput, fn func(*ListTapesOutput, bool) bool) error {
  6058  	return c.ListTapesPagesWithContext(aws.BackgroundContext(), input, fn)
  6059  }
  6060  
  6061  // ListTapesPagesWithContext same as ListTapesPages except
  6062  // it takes a Context and allows setting request options on the pages.
  6063  //
  6064  // The context must be non-nil and will be used for request cancellation. If
  6065  // the context is nil a panic will occur. In the future the SDK may create
  6066  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6067  // for more information on using Contexts.
  6068  func (c *StorageGateway) ListTapesPagesWithContext(ctx aws.Context, input *ListTapesInput, fn func(*ListTapesOutput, bool) bool, opts ...request.Option) error {
  6069  	p := request.Pagination{
  6070  		NewRequest: func() (*request.Request, error) {
  6071  			var inCpy *ListTapesInput
  6072  			if input != nil {
  6073  				tmp := *input
  6074  				inCpy = &tmp
  6075  			}
  6076  			req, _ := c.ListTapesRequest(inCpy)
  6077  			req.SetContext(ctx)
  6078  			req.ApplyOptions(opts...)
  6079  			return req, nil
  6080  		},
  6081  	}
  6082  
  6083  	for p.Next() {
  6084  		if !fn(p.Page().(*ListTapesOutput), !p.HasNextPage()) {
  6085  			break
  6086  		}
  6087  	}
  6088  
  6089  	return p.Err()
  6090  }
  6091  
  6092  const opListVolumeInitiators = "ListVolumeInitiators"
  6093  
  6094  // ListVolumeInitiatorsRequest generates a "aws/request.Request" representing the
  6095  // client's request for the ListVolumeInitiators operation. The "output" return
  6096  // value will be populated with the request's response once the request completes
  6097  // successfully.
  6098  //
  6099  // Use "Send" method on the returned Request to send the API call to the service.
  6100  // the "output" return value is not valid until after Send returns without error.
  6101  //
  6102  // See ListVolumeInitiators for more information on using the ListVolumeInitiators
  6103  // API call, and error handling.
  6104  //
  6105  // This method is useful when you want to inject custom logic or configuration
  6106  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6107  //
  6108  //
  6109  //    // Example sending a request using the ListVolumeInitiatorsRequest method.
  6110  //    req, resp := client.ListVolumeInitiatorsRequest(params)
  6111  //
  6112  //    err := req.Send()
  6113  //    if err == nil { // resp is now filled
  6114  //        fmt.Println(resp)
  6115  //    }
  6116  //
  6117  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeInitiators
  6118  func (c *StorageGateway) ListVolumeInitiatorsRequest(input *ListVolumeInitiatorsInput) (req *request.Request, output *ListVolumeInitiatorsOutput) {
  6119  	op := &request.Operation{
  6120  		Name:       opListVolumeInitiators,
  6121  		HTTPMethod: "POST",
  6122  		HTTPPath:   "/",
  6123  	}
  6124  
  6125  	if input == nil {
  6126  		input = &ListVolumeInitiatorsInput{}
  6127  	}
  6128  
  6129  	output = &ListVolumeInitiatorsOutput{}
  6130  	req = c.newRequest(op, input, output)
  6131  	return
  6132  }
  6133  
  6134  // ListVolumeInitiators API operation for AWS Storage Gateway.
  6135  //
  6136  // Lists iSCSI initiators that are connected to a volume. You can use this operation
  6137  // to determine whether a volume is being used or not. This operation is only
  6138  // supported in the cached volume and stored volume gateway types.
  6139  //
  6140  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6141  // with awserr.Error's Code and Message methods to get detailed information about
  6142  // the error.
  6143  //
  6144  // See the AWS API reference guide for AWS Storage Gateway's
  6145  // API operation ListVolumeInitiators for usage and error information.
  6146  //
  6147  // Returned Error Types:
  6148  //   * InvalidGatewayRequestException
  6149  //   An exception occurred because an invalid gateway request was issued to the
  6150  //   service. For more information, see the error and message fields.
  6151  //
  6152  //   * InternalServerError
  6153  //   An internal server error has occurred during the request. For more information,
  6154  //   see the error and message fields.
  6155  //
  6156  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeInitiators
  6157  func (c *StorageGateway) ListVolumeInitiators(input *ListVolumeInitiatorsInput) (*ListVolumeInitiatorsOutput, error) {
  6158  	req, out := c.ListVolumeInitiatorsRequest(input)
  6159  	return out, req.Send()
  6160  }
  6161  
  6162  // ListVolumeInitiatorsWithContext is the same as ListVolumeInitiators with the addition of
  6163  // the ability to pass a context and additional request options.
  6164  //
  6165  // See ListVolumeInitiators for details on how to use this API operation.
  6166  //
  6167  // The context must be non-nil and will be used for request cancellation. If
  6168  // the context is nil a panic will occur. In the future the SDK may create
  6169  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6170  // for more information on using Contexts.
  6171  func (c *StorageGateway) ListVolumeInitiatorsWithContext(ctx aws.Context, input *ListVolumeInitiatorsInput, opts ...request.Option) (*ListVolumeInitiatorsOutput, error) {
  6172  	req, out := c.ListVolumeInitiatorsRequest(input)
  6173  	req.SetContext(ctx)
  6174  	req.ApplyOptions(opts...)
  6175  	return out, req.Send()
  6176  }
  6177  
  6178  const opListVolumeRecoveryPoints = "ListVolumeRecoveryPoints"
  6179  
  6180  // ListVolumeRecoveryPointsRequest generates a "aws/request.Request" representing the
  6181  // client's request for the ListVolumeRecoveryPoints operation. The "output" return
  6182  // value will be populated with the request's response once the request completes
  6183  // successfully.
  6184  //
  6185  // Use "Send" method on the returned Request to send the API call to the service.
  6186  // the "output" return value is not valid until after Send returns without error.
  6187  //
  6188  // See ListVolumeRecoveryPoints for more information on using the ListVolumeRecoveryPoints
  6189  // API call, and error handling.
  6190  //
  6191  // This method is useful when you want to inject custom logic or configuration
  6192  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6193  //
  6194  //
  6195  //    // Example sending a request using the ListVolumeRecoveryPointsRequest method.
  6196  //    req, resp := client.ListVolumeRecoveryPointsRequest(params)
  6197  //
  6198  //    err := req.Send()
  6199  //    if err == nil { // resp is now filled
  6200  //        fmt.Println(resp)
  6201  //    }
  6202  //
  6203  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeRecoveryPoints
  6204  func (c *StorageGateway) ListVolumeRecoveryPointsRequest(input *ListVolumeRecoveryPointsInput) (req *request.Request, output *ListVolumeRecoveryPointsOutput) {
  6205  	op := &request.Operation{
  6206  		Name:       opListVolumeRecoveryPoints,
  6207  		HTTPMethod: "POST",
  6208  		HTTPPath:   "/",
  6209  	}
  6210  
  6211  	if input == nil {
  6212  		input = &ListVolumeRecoveryPointsInput{}
  6213  	}
  6214  
  6215  	output = &ListVolumeRecoveryPointsOutput{}
  6216  	req = c.newRequest(op, input, output)
  6217  	return
  6218  }
  6219  
  6220  // ListVolumeRecoveryPoints API operation for AWS Storage Gateway.
  6221  //
  6222  // Lists the recovery points for a specified gateway. This operation is only
  6223  // supported in the cached volume gateway type.
  6224  //
  6225  // Each cache volume has one recovery point. A volume recovery point is a point
  6226  // in time at which all data of the volume is consistent and from which you
  6227  // can create a snapshot or clone a new cached volume from a source volume.
  6228  // To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint
  6229  // operation.
  6230  //
  6231  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6232  // with awserr.Error's Code and Message methods to get detailed information about
  6233  // the error.
  6234  //
  6235  // See the AWS API reference guide for AWS Storage Gateway's
  6236  // API operation ListVolumeRecoveryPoints for usage and error information.
  6237  //
  6238  // Returned Error Types:
  6239  //   * InvalidGatewayRequestException
  6240  //   An exception occurred because an invalid gateway request was issued to the
  6241  //   service. For more information, see the error and message fields.
  6242  //
  6243  //   * InternalServerError
  6244  //   An internal server error has occurred during the request. For more information,
  6245  //   see the error and message fields.
  6246  //
  6247  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeRecoveryPoints
  6248  func (c *StorageGateway) ListVolumeRecoveryPoints(input *ListVolumeRecoveryPointsInput) (*ListVolumeRecoveryPointsOutput, error) {
  6249  	req, out := c.ListVolumeRecoveryPointsRequest(input)
  6250  	return out, req.Send()
  6251  }
  6252  
  6253  // ListVolumeRecoveryPointsWithContext is the same as ListVolumeRecoveryPoints with the addition of
  6254  // the ability to pass a context and additional request options.
  6255  //
  6256  // See ListVolumeRecoveryPoints for details on how to use this API operation.
  6257  //
  6258  // The context must be non-nil and will be used for request cancellation. If
  6259  // the context is nil a panic will occur. In the future the SDK may create
  6260  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6261  // for more information on using Contexts.
  6262  func (c *StorageGateway) ListVolumeRecoveryPointsWithContext(ctx aws.Context, input *ListVolumeRecoveryPointsInput, opts ...request.Option) (*ListVolumeRecoveryPointsOutput, error) {
  6263  	req, out := c.ListVolumeRecoveryPointsRequest(input)
  6264  	req.SetContext(ctx)
  6265  	req.ApplyOptions(opts...)
  6266  	return out, req.Send()
  6267  }
  6268  
  6269  const opListVolumes = "ListVolumes"
  6270  
  6271  // ListVolumesRequest generates a "aws/request.Request" representing the
  6272  // client's request for the ListVolumes operation. The "output" return
  6273  // value will be populated with the request's response once the request completes
  6274  // successfully.
  6275  //
  6276  // Use "Send" method on the returned Request to send the API call to the service.
  6277  // the "output" return value is not valid until after Send returns without error.
  6278  //
  6279  // See ListVolumes for more information on using the ListVolumes
  6280  // API call, and error handling.
  6281  //
  6282  // This method is useful when you want to inject custom logic or configuration
  6283  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6284  //
  6285  //
  6286  //    // Example sending a request using the ListVolumesRequest method.
  6287  //    req, resp := client.ListVolumesRequest(params)
  6288  //
  6289  //    err := req.Send()
  6290  //    if err == nil { // resp is now filled
  6291  //        fmt.Println(resp)
  6292  //    }
  6293  //
  6294  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumes
  6295  func (c *StorageGateway) ListVolumesRequest(input *ListVolumesInput) (req *request.Request, output *ListVolumesOutput) {
  6296  	op := &request.Operation{
  6297  		Name:       opListVolumes,
  6298  		HTTPMethod: "POST",
  6299  		HTTPPath:   "/",
  6300  		Paginator: &request.Paginator{
  6301  			InputTokens:     []string{"Marker"},
  6302  			OutputTokens:    []string{"Marker"},
  6303  			LimitToken:      "Limit",
  6304  			TruncationToken: "",
  6305  		},
  6306  	}
  6307  
  6308  	if input == nil {
  6309  		input = &ListVolumesInput{}
  6310  	}
  6311  
  6312  	output = &ListVolumesOutput{}
  6313  	req = c.newRequest(op, input, output)
  6314  	return
  6315  }
  6316  
  6317  // ListVolumes API operation for AWS Storage Gateway.
  6318  //
  6319  // Lists the iSCSI stored volumes of a gateway. Results are sorted by volume
  6320  // ARN. The response includes only the volume ARNs. If you want additional volume
  6321  // information, use the DescribeStorediSCSIVolumes or the DescribeCachediSCSIVolumes
  6322  // API.
  6323  //
  6324  // The operation supports pagination. By default, the operation returns a maximum
  6325  // of up to 100 volumes. You can optionally specify the Limit field in the body
  6326  // to limit the number of volumes in the response. If the number of volumes
  6327  // returned in the response is truncated, the response includes a Marker field.
  6328  // You can use this Marker value in your subsequent request to retrieve the
  6329  // next set of volumes. This operation is only supported in the cached volume
  6330  // and stored volume gateway types.
  6331  //
  6332  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6333  // with awserr.Error's Code and Message methods to get detailed information about
  6334  // the error.
  6335  //
  6336  // See the AWS API reference guide for AWS Storage Gateway's
  6337  // API operation ListVolumes for usage and error information.
  6338  //
  6339  // Returned Error Types:
  6340  //   * InvalidGatewayRequestException
  6341  //   An exception occurred because an invalid gateway request was issued to the
  6342  //   service. For more information, see the error and message fields.
  6343  //
  6344  //   * InternalServerError
  6345  //   An internal server error has occurred during the request. For more information,
  6346  //   see the error and message fields.
  6347  //
  6348  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumes
  6349  func (c *StorageGateway) ListVolumes(input *ListVolumesInput) (*ListVolumesOutput, error) {
  6350  	req, out := c.ListVolumesRequest(input)
  6351  	return out, req.Send()
  6352  }
  6353  
  6354  // ListVolumesWithContext is the same as ListVolumes with the addition of
  6355  // the ability to pass a context and additional request options.
  6356  //
  6357  // See ListVolumes for details on how to use this API operation.
  6358  //
  6359  // The context must be non-nil and will be used for request cancellation. If
  6360  // the context is nil a panic will occur. In the future the SDK may create
  6361  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6362  // for more information on using Contexts.
  6363  func (c *StorageGateway) ListVolumesWithContext(ctx aws.Context, input *ListVolumesInput, opts ...request.Option) (*ListVolumesOutput, error) {
  6364  	req, out := c.ListVolumesRequest(input)
  6365  	req.SetContext(ctx)
  6366  	req.ApplyOptions(opts...)
  6367  	return out, req.Send()
  6368  }
  6369  
  6370  // ListVolumesPages iterates over the pages of a ListVolumes operation,
  6371  // calling the "fn" function with the response data for each page. To stop
  6372  // iterating, return false from the fn function.
  6373  //
  6374  // See ListVolumes method for more information on how to use this operation.
  6375  //
  6376  // Note: This operation can generate multiple requests to a service.
  6377  //
  6378  //    // Example iterating over at most 3 pages of a ListVolumes operation.
  6379  //    pageNum := 0
  6380  //    err := client.ListVolumesPages(params,
  6381  //        func(page *storagegateway.ListVolumesOutput, lastPage bool) bool {
  6382  //            pageNum++
  6383  //            fmt.Println(page)
  6384  //            return pageNum <= 3
  6385  //        })
  6386  //
  6387  func (c *StorageGateway) ListVolumesPages(input *ListVolumesInput, fn func(*ListVolumesOutput, bool) bool) error {
  6388  	return c.ListVolumesPagesWithContext(aws.BackgroundContext(), input, fn)
  6389  }
  6390  
  6391  // ListVolumesPagesWithContext same as ListVolumesPages except
  6392  // it takes a Context and allows setting request options on the pages.
  6393  //
  6394  // The context must be non-nil and will be used for request cancellation. If
  6395  // the context is nil a panic will occur. In the future the SDK may create
  6396  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6397  // for more information on using Contexts.
  6398  func (c *StorageGateway) ListVolumesPagesWithContext(ctx aws.Context, input *ListVolumesInput, fn func(*ListVolumesOutput, bool) bool, opts ...request.Option) error {
  6399  	p := request.Pagination{
  6400  		NewRequest: func() (*request.Request, error) {
  6401  			var inCpy *ListVolumesInput
  6402  			if input != nil {
  6403  				tmp := *input
  6404  				inCpy = &tmp
  6405  			}
  6406  			req, _ := c.ListVolumesRequest(inCpy)
  6407  			req.SetContext(ctx)
  6408  			req.ApplyOptions(opts...)
  6409  			return req, nil
  6410  		},
  6411  	}
  6412  
  6413  	for p.Next() {
  6414  		if !fn(p.Page().(*ListVolumesOutput), !p.HasNextPage()) {
  6415  			break
  6416  		}
  6417  	}
  6418  
  6419  	return p.Err()
  6420  }
  6421  
  6422  const opNotifyWhenUploaded = "NotifyWhenUploaded"
  6423  
  6424  // NotifyWhenUploadedRequest generates a "aws/request.Request" representing the
  6425  // client's request for the NotifyWhenUploaded operation. The "output" return
  6426  // value will be populated with the request's response once the request completes
  6427  // successfully.
  6428  //
  6429  // Use "Send" method on the returned Request to send the API call to the service.
  6430  // the "output" return value is not valid until after Send returns without error.
  6431  //
  6432  // See NotifyWhenUploaded for more information on using the NotifyWhenUploaded
  6433  // API call, and error handling.
  6434  //
  6435  // This method is useful when you want to inject custom logic or configuration
  6436  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6437  //
  6438  //
  6439  //    // Example sending a request using the NotifyWhenUploadedRequest method.
  6440  //    req, resp := client.NotifyWhenUploadedRequest(params)
  6441  //
  6442  //    err := req.Send()
  6443  //    if err == nil { // resp is now filled
  6444  //        fmt.Println(resp)
  6445  //    }
  6446  //
  6447  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/NotifyWhenUploaded
  6448  func (c *StorageGateway) NotifyWhenUploadedRequest(input *NotifyWhenUploadedInput) (req *request.Request, output *NotifyWhenUploadedOutput) {
  6449  	op := &request.Operation{
  6450  		Name:       opNotifyWhenUploaded,
  6451  		HTTPMethod: "POST",
  6452  		HTTPPath:   "/",
  6453  	}
  6454  
  6455  	if input == nil {
  6456  		input = &NotifyWhenUploadedInput{}
  6457  	}
  6458  
  6459  	output = &NotifyWhenUploadedOutput{}
  6460  	req = c.newRequest(op, input, output)
  6461  	return
  6462  }
  6463  
  6464  // NotifyWhenUploaded API operation for AWS Storage Gateway.
  6465  //
  6466  // Sends you notification through CloudWatch Events when all files written to
  6467  // your file share have been uploaded to Amazon S3.
  6468  //
  6469  // Storage Gateway can send a notification through Amazon CloudWatch Events
  6470  // when all files written to your file share up to that point in time have been
  6471  // uploaded to Amazon S3. These files include files written to the file share
  6472  // up to the time that you make a request for notification. When the upload
  6473  // is done, Storage Gateway sends you notification through an Amazon CloudWatch
  6474  // Event. You can configure CloudWatch Events to send the notification through
  6475  // event targets such as Amazon SNS or Lambda function. This operation is only
  6476  // supported for S3 File Gateways.
  6477  //
  6478  // For more information, see Getting file upload notification (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-upload-notification)
  6479  // in the Storage Gateway User Guide.
  6480  //
  6481  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6482  // with awserr.Error's Code and Message methods to get detailed information about
  6483  // the error.
  6484  //
  6485  // See the AWS API reference guide for AWS Storage Gateway's
  6486  // API operation NotifyWhenUploaded for usage and error information.
  6487  //
  6488  // Returned Error Types:
  6489  //   * InvalidGatewayRequestException
  6490  //   An exception occurred because an invalid gateway request was issued to the
  6491  //   service. For more information, see the error and message fields.
  6492  //
  6493  //   * InternalServerError
  6494  //   An internal server error has occurred during the request. For more information,
  6495  //   see the error and message fields.
  6496  //
  6497  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/NotifyWhenUploaded
  6498  func (c *StorageGateway) NotifyWhenUploaded(input *NotifyWhenUploadedInput) (*NotifyWhenUploadedOutput, error) {
  6499  	req, out := c.NotifyWhenUploadedRequest(input)
  6500  	return out, req.Send()
  6501  }
  6502  
  6503  // NotifyWhenUploadedWithContext is the same as NotifyWhenUploaded with the addition of
  6504  // the ability to pass a context and additional request options.
  6505  //
  6506  // See NotifyWhenUploaded for details on how to use this API operation.
  6507  //
  6508  // The context must be non-nil and will be used for request cancellation. If
  6509  // the context is nil a panic will occur. In the future the SDK may create
  6510  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6511  // for more information on using Contexts.
  6512  func (c *StorageGateway) NotifyWhenUploadedWithContext(ctx aws.Context, input *NotifyWhenUploadedInput, opts ...request.Option) (*NotifyWhenUploadedOutput, error) {
  6513  	req, out := c.NotifyWhenUploadedRequest(input)
  6514  	req.SetContext(ctx)
  6515  	req.ApplyOptions(opts...)
  6516  	return out, req.Send()
  6517  }
  6518  
  6519  const opRefreshCache = "RefreshCache"
  6520  
  6521  // RefreshCacheRequest generates a "aws/request.Request" representing the
  6522  // client's request for the RefreshCache operation. The "output" return
  6523  // value will be populated with the request's response once the request completes
  6524  // successfully.
  6525  //
  6526  // Use "Send" method on the returned Request to send the API call to the service.
  6527  // the "output" return value is not valid until after Send returns without error.
  6528  //
  6529  // See RefreshCache for more information on using the RefreshCache
  6530  // API call, and error handling.
  6531  //
  6532  // This method is useful when you want to inject custom logic or configuration
  6533  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6534  //
  6535  //
  6536  //    // Example sending a request using the RefreshCacheRequest method.
  6537  //    req, resp := client.RefreshCacheRequest(params)
  6538  //
  6539  //    err := req.Send()
  6540  //    if err == nil { // resp is now filled
  6541  //        fmt.Println(resp)
  6542  //    }
  6543  //
  6544  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RefreshCache
  6545  func (c *StorageGateway) RefreshCacheRequest(input *RefreshCacheInput) (req *request.Request, output *RefreshCacheOutput) {
  6546  	op := &request.Operation{
  6547  		Name:       opRefreshCache,
  6548  		HTTPMethod: "POST",
  6549  		HTTPPath:   "/",
  6550  	}
  6551  
  6552  	if input == nil {
  6553  		input = &RefreshCacheInput{}
  6554  	}
  6555  
  6556  	output = &RefreshCacheOutput{}
  6557  	req = c.newRequest(op, input, output)
  6558  	return
  6559  }
  6560  
  6561  // RefreshCache API operation for AWS Storage Gateway.
  6562  //
  6563  // Refreshes the cached inventory of objects for the specified file share. This
  6564  // operation finds objects in the Amazon S3 bucket that were added, removed,
  6565  // or replaced since the gateway last listed the bucket's contents and cached
  6566  // the results. This operation does not import files into the S3 File Gateway
  6567  // cache storage. It only updates the cached inventory to reflect changes in
  6568  // the inventory of the objects in the S3 bucket. This operation is only supported
  6569  // in the S3 File Gateway types.
  6570  //
  6571  // You can subscribe to be notified through an Amazon CloudWatch event when
  6572  // your RefreshCache operation completes. For more information, see Getting
  6573  // notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
  6574  // in the Storage Gateway User Guide. This operation is Only supported for S3
  6575  // File Gateways.
  6576  //
  6577  // When this API is called, it only initiates the refresh operation. When the
  6578  // API call completes and returns a success code, it doesn't necessarily mean
  6579  // that the file refresh has completed. You should use the refresh-complete
  6580  // notification to determine that the operation has completed before you check
  6581  // for new files on the gateway file share. You can subscribe to be notified
  6582  // through a CloudWatch event when your RefreshCache operation completes.
  6583  //
  6584  // Throttle limit: This API is asynchronous, so the gateway will accept no more
  6585  // than two refreshes at any time. We recommend using the refresh-complete CloudWatch
  6586  // event notification before issuing additional requests. For more information,
  6587  // see Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
  6588  // in the Storage Gateway User Guide.
  6589  //
  6590  // If you invoke the RefreshCache API when two requests are already being processed,
  6591  // any new request will cause an InvalidGatewayRequestException error because
  6592  // too many requests were sent to the server.
  6593  //
  6594  // For more information, see Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
  6595  // in the Storage Gateway User Guide.
  6596  //
  6597  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6598  // with awserr.Error's Code and Message methods to get detailed information about
  6599  // the error.
  6600  //
  6601  // See the AWS API reference guide for AWS Storage Gateway's
  6602  // API operation RefreshCache for usage and error information.
  6603  //
  6604  // Returned Error Types:
  6605  //   * InvalidGatewayRequestException
  6606  //   An exception occurred because an invalid gateway request was issued to the
  6607  //   service. For more information, see the error and message fields.
  6608  //
  6609  //   * InternalServerError
  6610  //   An internal server error has occurred during the request. For more information,
  6611  //   see the error and message fields.
  6612  //
  6613  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RefreshCache
  6614  func (c *StorageGateway) RefreshCache(input *RefreshCacheInput) (*RefreshCacheOutput, error) {
  6615  	req, out := c.RefreshCacheRequest(input)
  6616  	return out, req.Send()
  6617  }
  6618  
  6619  // RefreshCacheWithContext is the same as RefreshCache with the addition of
  6620  // the ability to pass a context and additional request options.
  6621  //
  6622  // See RefreshCache for details on how to use this API operation.
  6623  //
  6624  // The context must be non-nil and will be used for request cancellation. If
  6625  // the context is nil a panic will occur. In the future the SDK may create
  6626  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6627  // for more information on using Contexts.
  6628  func (c *StorageGateway) RefreshCacheWithContext(ctx aws.Context, input *RefreshCacheInput, opts ...request.Option) (*RefreshCacheOutput, error) {
  6629  	req, out := c.RefreshCacheRequest(input)
  6630  	req.SetContext(ctx)
  6631  	req.ApplyOptions(opts...)
  6632  	return out, req.Send()
  6633  }
  6634  
  6635  const opRemoveTagsFromResource = "RemoveTagsFromResource"
  6636  
  6637  // RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the
  6638  // client's request for the RemoveTagsFromResource operation. The "output" return
  6639  // value will be populated with the request's response once the request completes
  6640  // successfully.
  6641  //
  6642  // Use "Send" method on the returned Request to send the API call to the service.
  6643  // the "output" return value is not valid until after Send returns without error.
  6644  //
  6645  // See RemoveTagsFromResource for more information on using the RemoveTagsFromResource
  6646  // API call, and error handling.
  6647  //
  6648  // This method is useful when you want to inject custom logic or configuration
  6649  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6650  //
  6651  //
  6652  //    // Example sending a request using the RemoveTagsFromResourceRequest method.
  6653  //    req, resp := client.RemoveTagsFromResourceRequest(params)
  6654  //
  6655  //    err := req.Send()
  6656  //    if err == nil { // resp is now filled
  6657  //        fmt.Println(resp)
  6658  //    }
  6659  //
  6660  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RemoveTagsFromResource
  6661  func (c *StorageGateway) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) {
  6662  	op := &request.Operation{
  6663  		Name:       opRemoveTagsFromResource,
  6664  		HTTPMethod: "POST",
  6665  		HTTPPath:   "/",
  6666  	}
  6667  
  6668  	if input == nil {
  6669  		input = &RemoveTagsFromResourceInput{}
  6670  	}
  6671  
  6672  	output = &RemoveTagsFromResourceOutput{}
  6673  	req = c.newRequest(op, input, output)
  6674  	return
  6675  }
  6676  
  6677  // RemoveTagsFromResource API operation for AWS Storage Gateway.
  6678  //
  6679  // Removes one or more tags from the specified resource. This operation is supported
  6680  // in storage gateways of all types.
  6681  //
  6682  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6683  // with awserr.Error's Code and Message methods to get detailed information about
  6684  // the error.
  6685  //
  6686  // See the AWS API reference guide for AWS Storage Gateway's
  6687  // API operation RemoveTagsFromResource for usage and error information.
  6688  //
  6689  // Returned Error Types:
  6690  //   * InvalidGatewayRequestException
  6691  //   An exception occurred because an invalid gateway request was issued to the
  6692  //   service. For more information, see the error and message fields.
  6693  //
  6694  //   * InternalServerError
  6695  //   An internal server error has occurred during the request. For more information,
  6696  //   see the error and message fields.
  6697  //
  6698  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RemoveTagsFromResource
  6699  func (c *StorageGateway) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) {
  6700  	req, out := c.RemoveTagsFromResourceRequest(input)
  6701  	return out, req.Send()
  6702  }
  6703  
  6704  // RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of
  6705  // the ability to pass a context and additional request options.
  6706  //
  6707  // See RemoveTagsFromResource for details on how to use this API operation.
  6708  //
  6709  // The context must be non-nil and will be used for request cancellation. If
  6710  // the context is nil a panic will occur. In the future the SDK may create
  6711  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6712  // for more information on using Contexts.
  6713  func (c *StorageGateway) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) {
  6714  	req, out := c.RemoveTagsFromResourceRequest(input)
  6715  	req.SetContext(ctx)
  6716  	req.ApplyOptions(opts...)
  6717  	return out, req.Send()
  6718  }
  6719  
  6720  const opResetCache = "ResetCache"
  6721  
  6722  // ResetCacheRequest generates a "aws/request.Request" representing the
  6723  // client's request for the ResetCache operation. The "output" return
  6724  // value will be populated with the request's response once the request completes
  6725  // successfully.
  6726  //
  6727  // Use "Send" method on the returned Request to send the API call to the service.
  6728  // the "output" return value is not valid until after Send returns without error.
  6729  //
  6730  // See ResetCache for more information on using the ResetCache
  6731  // API call, and error handling.
  6732  //
  6733  // This method is useful when you want to inject custom logic or configuration
  6734  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6735  //
  6736  //
  6737  //    // Example sending a request using the ResetCacheRequest method.
  6738  //    req, resp := client.ResetCacheRequest(params)
  6739  //
  6740  //    err := req.Send()
  6741  //    if err == nil { // resp is now filled
  6742  //        fmt.Println(resp)
  6743  //    }
  6744  //
  6745  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ResetCache
  6746  func (c *StorageGateway) ResetCacheRequest(input *ResetCacheInput) (req *request.Request, output *ResetCacheOutput) {
  6747  	op := &request.Operation{
  6748  		Name:       opResetCache,
  6749  		HTTPMethod: "POST",
  6750  		HTTPPath:   "/",
  6751  	}
  6752  
  6753  	if input == nil {
  6754  		input = &ResetCacheInput{}
  6755  	}
  6756  
  6757  	output = &ResetCacheOutput{}
  6758  	req = c.newRequest(op, input, output)
  6759  	return
  6760  }
  6761  
  6762  // ResetCache API operation for AWS Storage Gateway.
  6763  //
  6764  // Resets all cache disks that have encountered an error and makes the disks
  6765  // available for reconfiguration as cache storage. If your cache disk encounters
  6766  // an error, the gateway prevents read and write operations on virtual tapes
  6767  // in the gateway. For example, an error can occur when a disk is corrupted
  6768  // or removed from the gateway. When a cache is reset, the gateway loses its
  6769  // cache storage. At this point, you can reconfigure the disks as cache disks.
  6770  // This operation is only supported in the cached volume and tape types.
  6771  //
  6772  // If the cache disk you are resetting contains data that has not been uploaded
  6773  // to Amazon S3 yet, that data can be lost. After you reset cache disks, there
  6774  // will be no configured cache disks left in the gateway, so you must configure
  6775  // at least one new cache disk for your gateway to function properly.
  6776  //
  6777  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6778  // with awserr.Error's Code and Message methods to get detailed information about
  6779  // the error.
  6780  //
  6781  // See the AWS API reference guide for AWS Storage Gateway's
  6782  // API operation ResetCache for usage and error information.
  6783  //
  6784  // Returned Error Types:
  6785  //   * InvalidGatewayRequestException
  6786  //   An exception occurred because an invalid gateway request was issued to the
  6787  //   service. For more information, see the error and message fields.
  6788  //
  6789  //   * InternalServerError
  6790  //   An internal server error has occurred during the request. For more information,
  6791  //   see the error and message fields.
  6792  //
  6793  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ResetCache
  6794  func (c *StorageGateway) ResetCache(input *ResetCacheInput) (*ResetCacheOutput, error) {
  6795  	req, out := c.ResetCacheRequest(input)
  6796  	return out, req.Send()
  6797  }
  6798  
  6799  // ResetCacheWithContext is the same as ResetCache with the addition of
  6800  // the ability to pass a context and additional request options.
  6801  //
  6802  // See ResetCache for details on how to use this API operation.
  6803  //
  6804  // The context must be non-nil and will be used for request cancellation. If
  6805  // the context is nil a panic will occur. In the future the SDK may create
  6806  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6807  // for more information on using Contexts.
  6808  func (c *StorageGateway) ResetCacheWithContext(ctx aws.Context, input *ResetCacheInput, opts ...request.Option) (*ResetCacheOutput, error) {
  6809  	req, out := c.ResetCacheRequest(input)
  6810  	req.SetContext(ctx)
  6811  	req.ApplyOptions(opts...)
  6812  	return out, req.Send()
  6813  }
  6814  
  6815  const opRetrieveTapeArchive = "RetrieveTapeArchive"
  6816  
  6817  // RetrieveTapeArchiveRequest generates a "aws/request.Request" representing the
  6818  // client's request for the RetrieveTapeArchive operation. The "output" return
  6819  // value will be populated with the request's response once the request completes
  6820  // successfully.
  6821  //
  6822  // Use "Send" method on the returned Request to send the API call to the service.
  6823  // the "output" return value is not valid until after Send returns without error.
  6824  //
  6825  // See RetrieveTapeArchive for more information on using the RetrieveTapeArchive
  6826  // API call, and error handling.
  6827  //
  6828  // This method is useful when you want to inject custom logic or configuration
  6829  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6830  //
  6831  //
  6832  //    // Example sending a request using the RetrieveTapeArchiveRequest method.
  6833  //    req, resp := client.RetrieveTapeArchiveRequest(params)
  6834  //
  6835  //    err := req.Send()
  6836  //    if err == nil { // resp is now filled
  6837  //        fmt.Println(resp)
  6838  //    }
  6839  //
  6840  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeArchive
  6841  func (c *StorageGateway) RetrieveTapeArchiveRequest(input *RetrieveTapeArchiveInput) (req *request.Request, output *RetrieveTapeArchiveOutput) {
  6842  	op := &request.Operation{
  6843  		Name:       opRetrieveTapeArchive,
  6844  		HTTPMethod: "POST",
  6845  		HTTPPath:   "/",
  6846  	}
  6847  
  6848  	if input == nil {
  6849  		input = &RetrieveTapeArchiveInput{}
  6850  	}
  6851  
  6852  	output = &RetrieveTapeArchiveOutput{}
  6853  	req = c.newRequest(op, input, output)
  6854  	return
  6855  }
  6856  
  6857  // RetrieveTapeArchive API operation for AWS Storage Gateway.
  6858  //
  6859  // Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a
  6860  // tape gateway. Virtual tapes archived in the VTS are not associated with any
  6861  // gateway. However after a tape is retrieved, it is associated with a gateway,
  6862  // even though it is also listed in the VTS, that is, archive. This operation
  6863  // is only supported in the tape gateway type.
  6864  //
  6865  // Once a tape is successfully retrieved to a gateway, it cannot be retrieved
  6866  // again to another gateway. You must archive the tape again before you can
  6867  // retrieve it to another gateway. This operation is only supported in the tape
  6868  // gateway type.
  6869  //
  6870  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6871  // with awserr.Error's Code and Message methods to get detailed information about
  6872  // the error.
  6873  //
  6874  // See the AWS API reference guide for AWS Storage Gateway's
  6875  // API operation RetrieveTapeArchive for usage and error information.
  6876  //
  6877  // Returned Error Types:
  6878  //   * InvalidGatewayRequestException
  6879  //   An exception occurred because an invalid gateway request was issued to the
  6880  //   service. For more information, see the error and message fields.
  6881  //
  6882  //   * InternalServerError
  6883  //   An internal server error has occurred during the request. For more information,
  6884  //   see the error and message fields.
  6885  //
  6886  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeArchive
  6887  func (c *StorageGateway) RetrieveTapeArchive(input *RetrieveTapeArchiveInput) (*RetrieveTapeArchiveOutput, error) {
  6888  	req, out := c.RetrieveTapeArchiveRequest(input)
  6889  	return out, req.Send()
  6890  }
  6891  
  6892  // RetrieveTapeArchiveWithContext is the same as RetrieveTapeArchive with the addition of
  6893  // the ability to pass a context and additional request options.
  6894  //
  6895  // See RetrieveTapeArchive for details on how to use this API operation.
  6896  //
  6897  // The context must be non-nil and will be used for request cancellation. If
  6898  // the context is nil a panic will occur. In the future the SDK may create
  6899  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6900  // for more information on using Contexts.
  6901  func (c *StorageGateway) RetrieveTapeArchiveWithContext(ctx aws.Context, input *RetrieveTapeArchiveInput, opts ...request.Option) (*RetrieveTapeArchiveOutput, error) {
  6902  	req, out := c.RetrieveTapeArchiveRequest(input)
  6903  	req.SetContext(ctx)
  6904  	req.ApplyOptions(opts...)
  6905  	return out, req.Send()
  6906  }
  6907  
  6908  const opRetrieveTapeRecoveryPoint = "RetrieveTapeRecoveryPoint"
  6909  
  6910  // RetrieveTapeRecoveryPointRequest generates a "aws/request.Request" representing the
  6911  // client's request for the RetrieveTapeRecoveryPoint operation. The "output" return
  6912  // value will be populated with the request's response once the request completes
  6913  // successfully.
  6914  //
  6915  // Use "Send" method on the returned Request to send the API call to the service.
  6916  // the "output" return value is not valid until after Send returns without error.
  6917  //
  6918  // See RetrieveTapeRecoveryPoint for more information on using the RetrieveTapeRecoveryPoint
  6919  // API call, and error handling.
  6920  //
  6921  // This method is useful when you want to inject custom logic or configuration
  6922  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6923  //
  6924  //
  6925  //    // Example sending a request using the RetrieveTapeRecoveryPointRequest method.
  6926  //    req, resp := client.RetrieveTapeRecoveryPointRequest(params)
  6927  //
  6928  //    err := req.Send()
  6929  //    if err == nil { // resp is now filled
  6930  //        fmt.Println(resp)
  6931  //    }
  6932  //
  6933  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeRecoveryPoint
  6934  func (c *StorageGateway) RetrieveTapeRecoveryPointRequest(input *RetrieveTapeRecoveryPointInput) (req *request.Request, output *RetrieveTapeRecoveryPointOutput) {
  6935  	op := &request.Operation{
  6936  		Name:       opRetrieveTapeRecoveryPoint,
  6937  		HTTPMethod: "POST",
  6938  		HTTPPath:   "/",
  6939  	}
  6940  
  6941  	if input == nil {
  6942  		input = &RetrieveTapeRecoveryPointInput{}
  6943  	}
  6944  
  6945  	output = &RetrieveTapeRecoveryPointOutput{}
  6946  	req = c.newRequest(op, input, output)
  6947  	return
  6948  }
  6949  
  6950  // RetrieveTapeRecoveryPoint API operation for AWS Storage Gateway.
  6951  //
  6952  // Retrieves the recovery point for the specified virtual tape. This operation
  6953  // is only supported in the tape gateway type.
  6954  //
  6955  // A recovery point is a point in time view of a virtual tape at which all the
  6956  // data on the tape is consistent. If your gateway crashes, virtual tapes that
  6957  // have recovery points can be recovered to a new gateway.
  6958  //
  6959  // The virtual tape can be retrieved to only one gateway. The retrieved tape
  6960  // is read-only. The virtual tape can be retrieved to only a tape gateway. There
  6961  // is no charge for retrieving recovery points.
  6962  //
  6963  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6964  // with awserr.Error's Code and Message methods to get detailed information about
  6965  // the error.
  6966  //
  6967  // See the AWS API reference guide for AWS Storage Gateway's
  6968  // API operation RetrieveTapeRecoveryPoint for usage and error information.
  6969  //
  6970  // Returned Error Types:
  6971  //   * InvalidGatewayRequestException
  6972  //   An exception occurred because an invalid gateway request was issued to the
  6973  //   service. For more information, see the error and message fields.
  6974  //
  6975  //   * InternalServerError
  6976  //   An internal server error has occurred during the request. For more information,
  6977  //   see the error and message fields.
  6978  //
  6979  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeRecoveryPoint
  6980  func (c *StorageGateway) RetrieveTapeRecoveryPoint(input *RetrieveTapeRecoveryPointInput) (*RetrieveTapeRecoveryPointOutput, error) {
  6981  	req, out := c.RetrieveTapeRecoveryPointRequest(input)
  6982  	return out, req.Send()
  6983  }
  6984  
  6985  // RetrieveTapeRecoveryPointWithContext is the same as RetrieveTapeRecoveryPoint with the addition of
  6986  // the ability to pass a context and additional request options.
  6987  //
  6988  // See RetrieveTapeRecoveryPoint for details on how to use this API operation.
  6989  //
  6990  // The context must be non-nil and will be used for request cancellation. If
  6991  // the context is nil a panic will occur. In the future the SDK may create
  6992  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6993  // for more information on using Contexts.
  6994  func (c *StorageGateway) RetrieveTapeRecoveryPointWithContext(ctx aws.Context, input *RetrieveTapeRecoveryPointInput, opts ...request.Option) (*RetrieveTapeRecoveryPointOutput, error) {
  6995  	req, out := c.RetrieveTapeRecoveryPointRequest(input)
  6996  	req.SetContext(ctx)
  6997  	req.ApplyOptions(opts...)
  6998  	return out, req.Send()
  6999  }
  7000  
  7001  const opSetLocalConsolePassword = "SetLocalConsolePassword"
  7002  
  7003  // SetLocalConsolePasswordRequest generates a "aws/request.Request" representing the
  7004  // client's request for the SetLocalConsolePassword operation. The "output" return
  7005  // value will be populated with the request's response once the request completes
  7006  // successfully.
  7007  //
  7008  // Use "Send" method on the returned Request to send the API call to the service.
  7009  // the "output" return value is not valid until after Send returns without error.
  7010  //
  7011  // See SetLocalConsolePassword for more information on using the SetLocalConsolePassword
  7012  // API call, and error handling.
  7013  //
  7014  // This method is useful when you want to inject custom logic or configuration
  7015  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7016  //
  7017  //
  7018  //    // Example sending a request using the SetLocalConsolePasswordRequest method.
  7019  //    req, resp := client.SetLocalConsolePasswordRequest(params)
  7020  //
  7021  //    err := req.Send()
  7022  //    if err == nil { // resp is now filled
  7023  //        fmt.Println(resp)
  7024  //    }
  7025  //
  7026  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetLocalConsolePassword
  7027  func (c *StorageGateway) SetLocalConsolePasswordRequest(input *SetLocalConsolePasswordInput) (req *request.Request, output *SetLocalConsolePasswordOutput) {
  7028  	op := &request.Operation{
  7029  		Name:       opSetLocalConsolePassword,
  7030  		HTTPMethod: "POST",
  7031  		HTTPPath:   "/",
  7032  	}
  7033  
  7034  	if input == nil {
  7035  		input = &SetLocalConsolePasswordInput{}
  7036  	}
  7037  
  7038  	output = &SetLocalConsolePasswordOutput{}
  7039  	req = c.newRequest(op, input, output)
  7040  	return
  7041  }
  7042  
  7043  // SetLocalConsolePassword API operation for AWS Storage Gateway.
  7044  //
  7045  // Sets the password for your VM local console. When you log in to the local
  7046  // console for the first time, you log in to the VM with the default credentials.
  7047  // We recommend that you set a new password. You don't need to know the default
  7048  // password to set a new password.
  7049  //
  7050  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7051  // with awserr.Error's Code and Message methods to get detailed information about
  7052  // the error.
  7053  //
  7054  // See the AWS API reference guide for AWS Storage Gateway's
  7055  // API operation SetLocalConsolePassword for usage and error information.
  7056  //
  7057  // Returned Error Types:
  7058  //   * InvalidGatewayRequestException
  7059  //   An exception occurred because an invalid gateway request was issued to the
  7060  //   service. For more information, see the error and message fields.
  7061  //
  7062  //   * InternalServerError
  7063  //   An internal server error has occurred during the request. For more information,
  7064  //   see the error and message fields.
  7065  //
  7066  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetLocalConsolePassword
  7067  func (c *StorageGateway) SetLocalConsolePassword(input *SetLocalConsolePasswordInput) (*SetLocalConsolePasswordOutput, error) {
  7068  	req, out := c.SetLocalConsolePasswordRequest(input)
  7069  	return out, req.Send()
  7070  }
  7071  
  7072  // SetLocalConsolePasswordWithContext is the same as SetLocalConsolePassword with the addition of
  7073  // the ability to pass a context and additional request options.
  7074  //
  7075  // See SetLocalConsolePassword for details on how to use this API operation.
  7076  //
  7077  // The context must be non-nil and will be used for request cancellation. If
  7078  // the context is nil a panic will occur. In the future the SDK may create
  7079  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7080  // for more information on using Contexts.
  7081  func (c *StorageGateway) SetLocalConsolePasswordWithContext(ctx aws.Context, input *SetLocalConsolePasswordInput, opts ...request.Option) (*SetLocalConsolePasswordOutput, error) {
  7082  	req, out := c.SetLocalConsolePasswordRequest(input)
  7083  	req.SetContext(ctx)
  7084  	req.ApplyOptions(opts...)
  7085  	return out, req.Send()
  7086  }
  7087  
  7088  const opSetSMBGuestPassword = "SetSMBGuestPassword"
  7089  
  7090  // SetSMBGuestPasswordRequest generates a "aws/request.Request" representing the
  7091  // client's request for the SetSMBGuestPassword operation. The "output" return
  7092  // value will be populated with the request's response once the request completes
  7093  // successfully.
  7094  //
  7095  // Use "Send" method on the returned Request to send the API call to the service.
  7096  // the "output" return value is not valid until after Send returns without error.
  7097  //
  7098  // See SetSMBGuestPassword for more information on using the SetSMBGuestPassword
  7099  // API call, and error handling.
  7100  //
  7101  // This method is useful when you want to inject custom logic or configuration
  7102  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7103  //
  7104  //
  7105  //    // Example sending a request using the SetSMBGuestPasswordRequest method.
  7106  //    req, resp := client.SetSMBGuestPasswordRequest(params)
  7107  //
  7108  //    err := req.Send()
  7109  //    if err == nil { // resp is now filled
  7110  //        fmt.Println(resp)
  7111  //    }
  7112  //
  7113  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetSMBGuestPassword
  7114  func (c *StorageGateway) SetSMBGuestPasswordRequest(input *SetSMBGuestPasswordInput) (req *request.Request, output *SetSMBGuestPasswordOutput) {
  7115  	op := &request.Operation{
  7116  		Name:       opSetSMBGuestPassword,
  7117  		HTTPMethod: "POST",
  7118  		HTTPPath:   "/",
  7119  	}
  7120  
  7121  	if input == nil {
  7122  		input = &SetSMBGuestPasswordInput{}
  7123  	}
  7124  
  7125  	output = &SetSMBGuestPasswordOutput{}
  7126  	req = c.newRequest(op, input, output)
  7127  	return
  7128  }
  7129  
  7130  // SetSMBGuestPassword API operation for AWS Storage Gateway.
  7131  //
  7132  // Sets the password for the guest user smbguest. The smbguest user is the user
  7133  // when the authentication method for the file share is set to GuestAccess.
  7134  // This operation only supported for S3 File Gateways
  7135  //
  7136  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7137  // with awserr.Error's Code and Message methods to get detailed information about
  7138  // the error.
  7139  //
  7140  // See the AWS API reference guide for AWS Storage Gateway's
  7141  // API operation SetSMBGuestPassword for usage and error information.
  7142  //
  7143  // Returned Error Types:
  7144  //   * InvalidGatewayRequestException
  7145  //   An exception occurred because an invalid gateway request was issued to the
  7146  //   service. For more information, see the error and message fields.
  7147  //
  7148  //   * InternalServerError
  7149  //   An internal server error has occurred during the request. For more information,
  7150  //   see the error and message fields.
  7151  //
  7152  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetSMBGuestPassword
  7153  func (c *StorageGateway) SetSMBGuestPassword(input *SetSMBGuestPasswordInput) (*SetSMBGuestPasswordOutput, error) {
  7154  	req, out := c.SetSMBGuestPasswordRequest(input)
  7155  	return out, req.Send()
  7156  }
  7157  
  7158  // SetSMBGuestPasswordWithContext is the same as SetSMBGuestPassword with the addition of
  7159  // the ability to pass a context and additional request options.
  7160  //
  7161  // See SetSMBGuestPassword for details on how to use this API operation.
  7162  //
  7163  // The context must be non-nil and will be used for request cancellation. If
  7164  // the context is nil a panic will occur. In the future the SDK may create
  7165  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7166  // for more information on using Contexts.
  7167  func (c *StorageGateway) SetSMBGuestPasswordWithContext(ctx aws.Context, input *SetSMBGuestPasswordInput, opts ...request.Option) (*SetSMBGuestPasswordOutput, error) {
  7168  	req, out := c.SetSMBGuestPasswordRequest(input)
  7169  	req.SetContext(ctx)
  7170  	req.ApplyOptions(opts...)
  7171  	return out, req.Send()
  7172  }
  7173  
  7174  const opShutdownGateway = "ShutdownGateway"
  7175  
  7176  // ShutdownGatewayRequest generates a "aws/request.Request" representing the
  7177  // client's request for the ShutdownGateway operation. The "output" return
  7178  // value will be populated with the request's response once the request completes
  7179  // successfully.
  7180  //
  7181  // Use "Send" method on the returned Request to send the API call to the service.
  7182  // the "output" return value is not valid until after Send returns without error.
  7183  //
  7184  // See ShutdownGateway for more information on using the ShutdownGateway
  7185  // API call, and error handling.
  7186  //
  7187  // This method is useful when you want to inject custom logic or configuration
  7188  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7189  //
  7190  //
  7191  //    // Example sending a request using the ShutdownGatewayRequest method.
  7192  //    req, resp := client.ShutdownGatewayRequest(params)
  7193  //
  7194  //    err := req.Send()
  7195  //    if err == nil { // resp is now filled
  7196  //        fmt.Println(resp)
  7197  //    }
  7198  //
  7199  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ShutdownGateway
  7200  func (c *StorageGateway) ShutdownGatewayRequest(input *ShutdownGatewayInput) (req *request.Request, output *ShutdownGatewayOutput) {
  7201  	op := &request.Operation{
  7202  		Name:       opShutdownGateway,
  7203  		HTTPMethod: "POST",
  7204  		HTTPPath:   "/",
  7205  	}
  7206  
  7207  	if input == nil {
  7208  		input = &ShutdownGatewayInput{}
  7209  	}
  7210  
  7211  	output = &ShutdownGatewayOutput{}
  7212  	req = c.newRequest(op, input, output)
  7213  	return
  7214  }
  7215  
  7216  // ShutdownGateway API operation for AWS Storage Gateway.
  7217  //
  7218  // Shuts down a gateway. To specify which gateway to shut down, use the Amazon
  7219  // Resource Name (ARN) of the gateway in the body of your request.
  7220  //
  7221  // The operation shuts down the gateway service component running in the gateway's
  7222  // virtual machine (VM) and not the host VM.
  7223  //
  7224  // If you want to shut down the VM, it is recommended that you first shut down
  7225  // the gateway component in the VM to avoid unpredictable conditions.
  7226  //
  7227  // After the gateway is shutdown, you cannot call any other API except StartGateway,
  7228  // DescribeGatewayInformation, and ListGateways. For more information, see ActivateGateway.
  7229  // Your applications cannot read from or write to the gateway's storage volumes,
  7230  // and there are no snapshots taken.
  7231  //
  7232  // When you make a shutdown request, you will get a 200 OK success response
  7233  // immediately. However, it might take some time for the gateway to shut down.
  7234  // You can call the DescribeGatewayInformation API to check the status. For
  7235  // more information, see ActivateGateway.
  7236  //
  7237  // If do not intend to use the gateway again, you must delete the gateway (using
  7238  // DeleteGateway) to no longer pay software charges associated with the gateway.
  7239  //
  7240  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7241  // with awserr.Error's Code and Message methods to get detailed information about
  7242  // the error.
  7243  //
  7244  // See the AWS API reference guide for AWS Storage Gateway's
  7245  // API operation ShutdownGateway for usage and error information.
  7246  //
  7247  // Returned Error Types:
  7248  //   * InvalidGatewayRequestException
  7249  //   An exception occurred because an invalid gateway request was issued to the
  7250  //   service. For more information, see the error and message fields.
  7251  //
  7252  //   * InternalServerError
  7253  //   An internal server error has occurred during the request. For more information,
  7254  //   see the error and message fields.
  7255  //
  7256  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ShutdownGateway
  7257  func (c *StorageGateway) ShutdownGateway(input *ShutdownGatewayInput) (*ShutdownGatewayOutput, error) {
  7258  	req, out := c.ShutdownGatewayRequest(input)
  7259  	return out, req.Send()
  7260  }
  7261  
  7262  // ShutdownGatewayWithContext is the same as ShutdownGateway with the addition of
  7263  // the ability to pass a context and additional request options.
  7264  //
  7265  // See ShutdownGateway for details on how to use this API operation.
  7266  //
  7267  // The context must be non-nil and will be used for request cancellation. If
  7268  // the context is nil a panic will occur. In the future the SDK may create
  7269  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7270  // for more information on using Contexts.
  7271  func (c *StorageGateway) ShutdownGatewayWithContext(ctx aws.Context, input *ShutdownGatewayInput, opts ...request.Option) (*ShutdownGatewayOutput, error) {
  7272  	req, out := c.ShutdownGatewayRequest(input)
  7273  	req.SetContext(ctx)
  7274  	req.ApplyOptions(opts...)
  7275  	return out, req.Send()
  7276  }
  7277  
  7278  const opStartAvailabilityMonitorTest = "StartAvailabilityMonitorTest"
  7279  
  7280  // StartAvailabilityMonitorTestRequest generates a "aws/request.Request" representing the
  7281  // client's request for the StartAvailabilityMonitorTest operation. The "output" return
  7282  // value will be populated with the request's response once the request completes
  7283  // successfully.
  7284  //
  7285  // Use "Send" method on the returned Request to send the API call to the service.
  7286  // the "output" return value is not valid until after Send returns without error.
  7287  //
  7288  // See StartAvailabilityMonitorTest for more information on using the StartAvailabilityMonitorTest
  7289  // API call, and error handling.
  7290  //
  7291  // This method is useful when you want to inject custom logic or configuration
  7292  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7293  //
  7294  //
  7295  //    // Example sending a request using the StartAvailabilityMonitorTestRequest method.
  7296  //    req, resp := client.StartAvailabilityMonitorTestRequest(params)
  7297  //
  7298  //    err := req.Send()
  7299  //    if err == nil { // resp is now filled
  7300  //        fmt.Println(resp)
  7301  //    }
  7302  //
  7303  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartAvailabilityMonitorTest
  7304  func (c *StorageGateway) StartAvailabilityMonitorTestRequest(input *StartAvailabilityMonitorTestInput) (req *request.Request, output *StartAvailabilityMonitorTestOutput) {
  7305  	op := &request.Operation{
  7306  		Name:       opStartAvailabilityMonitorTest,
  7307  		HTTPMethod: "POST",
  7308  		HTTPPath:   "/",
  7309  	}
  7310  
  7311  	if input == nil {
  7312  		input = &StartAvailabilityMonitorTestInput{}
  7313  	}
  7314  
  7315  	output = &StartAvailabilityMonitorTestOutput{}
  7316  	req = c.newRequest(op, input, output)
  7317  	return
  7318  }
  7319  
  7320  // StartAvailabilityMonitorTest API operation for AWS Storage Gateway.
  7321  //
  7322  // Start a test that verifies that the specified gateway is configured for High
  7323  // Availability monitoring in your host environment. This request only initiates
  7324  // the test and that a successful response only indicates that the test was
  7325  // started. It doesn't indicate that the test passed. For the status of the
  7326  // test, invoke the DescribeAvailabilityMonitorTest API.
  7327  //
  7328  // Starting this test will cause your gateway to go offline for a brief period.
  7329  //
  7330  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7331  // with awserr.Error's Code and Message methods to get detailed information about
  7332  // the error.
  7333  //
  7334  // See the AWS API reference guide for AWS Storage Gateway's
  7335  // API operation StartAvailabilityMonitorTest for usage and error information.
  7336  //
  7337  // Returned Error Types:
  7338  //   * InvalidGatewayRequestException
  7339  //   An exception occurred because an invalid gateway request was issued to the
  7340  //   service. For more information, see the error and message fields.
  7341  //
  7342  //   * InternalServerError
  7343  //   An internal server error has occurred during the request. For more information,
  7344  //   see the error and message fields.
  7345  //
  7346  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartAvailabilityMonitorTest
  7347  func (c *StorageGateway) StartAvailabilityMonitorTest(input *StartAvailabilityMonitorTestInput) (*StartAvailabilityMonitorTestOutput, error) {
  7348  	req, out := c.StartAvailabilityMonitorTestRequest(input)
  7349  	return out, req.Send()
  7350  }
  7351  
  7352  // StartAvailabilityMonitorTestWithContext is the same as StartAvailabilityMonitorTest with the addition of
  7353  // the ability to pass a context and additional request options.
  7354  //
  7355  // See StartAvailabilityMonitorTest for details on how to use this API operation.
  7356  //
  7357  // The context must be non-nil and will be used for request cancellation. If
  7358  // the context is nil a panic will occur. In the future the SDK may create
  7359  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7360  // for more information on using Contexts.
  7361  func (c *StorageGateway) StartAvailabilityMonitorTestWithContext(ctx aws.Context, input *StartAvailabilityMonitorTestInput, opts ...request.Option) (*StartAvailabilityMonitorTestOutput, error) {
  7362  	req, out := c.StartAvailabilityMonitorTestRequest(input)
  7363  	req.SetContext(ctx)
  7364  	req.ApplyOptions(opts...)
  7365  	return out, req.Send()
  7366  }
  7367  
  7368  const opStartGateway = "StartGateway"
  7369  
  7370  // StartGatewayRequest generates a "aws/request.Request" representing the
  7371  // client's request for the StartGateway operation. The "output" return
  7372  // value will be populated with the request's response once the request completes
  7373  // successfully.
  7374  //
  7375  // Use "Send" method on the returned Request to send the API call to the service.
  7376  // the "output" return value is not valid until after Send returns without error.
  7377  //
  7378  // See StartGateway for more information on using the StartGateway
  7379  // API call, and error handling.
  7380  //
  7381  // This method is useful when you want to inject custom logic or configuration
  7382  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7383  //
  7384  //
  7385  //    // Example sending a request using the StartGatewayRequest method.
  7386  //    req, resp := client.StartGatewayRequest(params)
  7387  //
  7388  //    err := req.Send()
  7389  //    if err == nil { // resp is now filled
  7390  //        fmt.Println(resp)
  7391  //    }
  7392  //
  7393  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartGateway
  7394  func (c *StorageGateway) StartGatewayRequest(input *StartGatewayInput) (req *request.Request, output *StartGatewayOutput) {
  7395  	op := &request.Operation{
  7396  		Name:       opStartGateway,
  7397  		HTTPMethod: "POST",
  7398  		HTTPPath:   "/",
  7399  	}
  7400  
  7401  	if input == nil {
  7402  		input = &StartGatewayInput{}
  7403  	}
  7404  
  7405  	output = &StartGatewayOutput{}
  7406  	req = c.newRequest(op, input, output)
  7407  	return
  7408  }
  7409  
  7410  // StartGateway API operation for AWS Storage Gateway.
  7411  //
  7412  // Starts a gateway that you previously shut down (see ShutdownGateway). After
  7413  // the gateway starts, you can then make other API calls, your applications
  7414  // can read from or write to the gateway's storage volumes and you will be able
  7415  // to take snapshot backups.
  7416  //
  7417  // When you make a request, you will get a 200 OK success response immediately.
  7418  // However, it might take some time for the gateway to be ready. You should
  7419  // call DescribeGatewayInformation and check the status before making any additional
  7420  // API calls. For more information, see ActivateGateway.
  7421  //
  7422  // To specify which gateway to start, use the Amazon Resource Name (ARN) of
  7423  // the gateway in your request.
  7424  //
  7425  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7426  // with awserr.Error's Code and Message methods to get detailed information about
  7427  // the error.
  7428  //
  7429  // See the AWS API reference guide for AWS Storage Gateway's
  7430  // API operation StartGateway for usage and error information.
  7431  //
  7432  // Returned Error Types:
  7433  //   * InvalidGatewayRequestException
  7434  //   An exception occurred because an invalid gateway request was issued to the
  7435  //   service. For more information, see the error and message fields.
  7436  //
  7437  //   * InternalServerError
  7438  //   An internal server error has occurred during the request. For more information,
  7439  //   see the error and message fields.
  7440  //
  7441  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartGateway
  7442  func (c *StorageGateway) StartGateway(input *StartGatewayInput) (*StartGatewayOutput, error) {
  7443  	req, out := c.StartGatewayRequest(input)
  7444  	return out, req.Send()
  7445  }
  7446  
  7447  // StartGatewayWithContext is the same as StartGateway with the addition of
  7448  // the ability to pass a context and additional request options.
  7449  //
  7450  // See StartGateway for details on how to use this API operation.
  7451  //
  7452  // The context must be non-nil and will be used for request cancellation. If
  7453  // the context is nil a panic will occur. In the future the SDK may create
  7454  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7455  // for more information on using Contexts.
  7456  func (c *StorageGateway) StartGatewayWithContext(ctx aws.Context, input *StartGatewayInput, opts ...request.Option) (*StartGatewayOutput, error) {
  7457  	req, out := c.StartGatewayRequest(input)
  7458  	req.SetContext(ctx)
  7459  	req.ApplyOptions(opts...)
  7460  	return out, req.Send()
  7461  }
  7462  
  7463  const opUpdateAutomaticTapeCreationPolicy = "UpdateAutomaticTapeCreationPolicy"
  7464  
  7465  // UpdateAutomaticTapeCreationPolicyRequest generates a "aws/request.Request" representing the
  7466  // client's request for the UpdateAutomaticTapeCreationPolicy operation. The "output" return
  7467  // value will be populated with the request's response once the request completes
  7468  // successfully.
  7469  //
  7470  // Use "Send" method on the returned Request to send the API call to the service.
  7471  // the "output" return value is not valid until after Send returns without error.
  7472  //
  7473  // See UpdateAutomaticTapeCreationPolicy for more information on using the UpdateAutomaticTapeCreationPolicy
  7474  // API call, and error handling.
  7475  //
  7476  // This method is useful when you want to inject custom logic or configuration
  7477  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7478  //
  7479  //
  7480  //    // Example sending a request using the UpdateAutomaticTapeCreationPolicyRequest method.
  7481  //    req, resp := client.UpdateAutomaticTapeCreationPolicyRequest(params)
  7482  //
  7483  //    err := req.Send()
  7484  //    if err == nil { // resp is now filled
  7485  //        fmt.Println(resp)
  7486  //    }
  7487  //
  7488  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateAutomaticTapeCreationPolicy
  7489  func (c *StorageGateway) UpdateAutomaticTapeCreationPolicyRequest(input *UpdateAutomaticTapeCreationPolicyInput) (req *request.Request, output *UpdateAutomaticTapeCreationPolicyOutput) {
  7490  	op := &request.Operation{
  7491  		Name:       opUpdateAutomaticTapeCreationPolicy,
  7492  		HTTPMethod: "POST",
  7493  		HTTPPath:   "/",
  7494  	}
  7495  
  7496  	if input == nil {
  7497  		input = &UpdateAutomaticTapeCreationPolicyInput{}
  7498  	}
  7499  
  7500  	output = &UpdateAutomaticTapeCreationPolicyOutput{}
  7501  	req = c.newRequest(op, input, output)
  7502  	return
  7503  }
  7504  
  7505  // UpdateAutomaticTapeCreationPolicy API operation for AWS Storage Gateway.
  7506  //
  7507  // Updates the automatic tape creation policy of a gateway. Use this to update
  7508  // the policy with a new set of automatic tape creation rules. This is only
  7509  // supported for tape gateways.
  7510  //
  7511  // By default, there is no automatic tape creation policy.
  7512  //
  7513  // A gateway can have only one automatic tape creation policy.
  7514  //
  7515  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7516  // with awserr.Error's Code and Message methods to get detailed information about
  7517  // the error.
  7518  //
  7519  // See the AWS API reference guide for AWS Storage Gateway's
  7520  // API operation UpdateAutomaticTapeCreationPolicy for usage and error information.
  7521  //
  7522  // Returned Error Types:
  7523  //   * InvalidGatewayRequestException
  7524  //   An exception occurred because an invalid gateway request was issued to the
  7525  //   service. For more information, see the error and message fields.
  7526  //
  7527  //   * InternalServerError
  7528  //   An internal server error has occurred during the request. For more information,
  7529  //   see the error and message fields.
  7530  //
  7531  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateAutomaticTapeCreationPolicy
  7532  func (c *StorageGateway) UpdateAutomaticTapeCreationPolicy(input *UpdateAutomaticTapeCreationPolicyInput) (*UpdateAutomaticTapeCreationPolicyOutput, error) {
  7533  	req, out := c.UpdateAutomaticTapeCreationPolicyRequest(input)
  7534  	return out, req.Send()
  7535  }
  7536  
  7537  // UpdateAutomaticTapeCreationPolicyWithContext is the same as UpdateAutomaticTapeCreationPolicy with the addition of
  7538  // the ability to pass a context and additional request options.
  7539  //
  7540  // See UpdateAutomaticTapeCreationPolicy for details on how to use this API operation.
  7541  //
  7542  // The context must be non-nil and will be used for request cancellation. If
  7543  // the context is nil a panic will occur. In the future the SDK may create
  7544  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7545  // for more information on using Contexts.
  7546  func (c *StorageGateway) UpdateAutomaticTapeCreationPolicyWithContext(ctx aws.Context, input *UpdateAutomaticTapeCreationPolicyInput, opts ...request.Option) (*UpdateAutomaticTapeCreationPolicyOutput, error) {
  7547  	req, out := c.UpdateAutomaticTapeCreationPolicyRequest(input)
  7548  	req.SetContext(ctx)
  7549  	req.ApplyOptions(opts...)
  7550  	return out, req.Send()
  7551  }
  7552  
  7553  const opUpdateBandwidthRateLimit = "UpdateBandwidthRateLimit"
  7554  
  7555  // UpdateBandwidthRateLimitRequest generates a "aws/request.Request" representing the
  7556  // client's request for the UpdateBandwidthRateLimit operation. The "output" return
  7557  // value will be populated with the request's response once the request completes
  7558  // successfully.
  7559  //
  7560  // Use "Send" method on the returned Request to send the API call to the service.
  7561  // the "output" return value is not valid until after Send returns without error.
  7562  //
  7563  // See UpdateBandwidthRateLimit for more information on using the UpdateBandwidthRateLimit
  7564  // API call, and error handling.
  7565  //
  7566  // This method is useful when you want to inject custom logic or configuration
  7567  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7568  //
  7569  //
  7570  //    // Example sending a request using the UpdateBandwidthRateLimitRequest method.
  7571  //    req, resp := client.UpdateBandwidthRateLimitRequest(params)
  7572  //
  7573  //    err := req.Send()
  7574  //    if err == nil { // resp is now filled
  7575  //        fmt.Println(resp)
  7576  //    }
  7577  //
  7578  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimit
  7579  func (c *StorageGateway) UpdateBandwidthRateLimitRequest(input *UpdateBandwidthRateLimitInput) (req *request.Request, output *UpdateBandwidthRateLimitOutput) {
  7580  	op := &request.Operation{
  7581  		Name:       opUpdateBandwidthRateLimit,
  7582  		HTTPMethod: "POST",
  7583  		HTTPPath:   "/",
  7584  	}
  7585  
  7586  	if input == nil {
  7587  		input = &UpdateBandwidthRateLimitInput{}
  7588  	}
  7589  
  7590  	output = &UpdateBandwidthRateLimitOutput{}
  7591  	req = c.newRequest(op, input, output)
  7592  	return
  7593  }
  7594  
  7595  // UpdateBandwidthRateLimit API operation for AWS Storage Gateway.
  7596  //
  7597  // Updates the bandwidth rate limits of a gateway. You can update both the upload
  7598  // and download bandwidth rate limit or specify only one of the two. If you
  7599  // don't set a bandwidth rate limit, the existing rate limit remains. This operation
  7600  // is supported for the stored volume, cached volume, and tape gateway types.
  7601  //
  7602  // By default, a gateway's bandwidth rate limits are not set. If you don't set
  7603  // any limit, the gateway does not have any limitations on its bandwidth usage
  7604  // and could potentially use the maximum available bandwidth.
  7605  //
  7606  // To specify which gateway to update, use the Amazon Resource Name (ARN) of
  7607  // the gateway in your request.
  7608  //
  7609  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7610  // with awserr.Error's Code and Message methods to get detailed information about
  7611  // the error.
  7612  //
  7613  // See the AWS API reference guide for AWS Storage Gateway's
  7614  // API operation UpdateBandwidthRateLimit for usage and error information.
  7615  //
  7616  // Returned Error Types:
  7617  //   * InvalidGatewayRequestException
  7618  //   An exception occurred because an invalid gateway request was issued to the
  7619  //   service. For more information, see the error and message fields.
  7620  //
  7621  //   * InternalServerError
  7622  //   An internal server error has occurred during the request. For more information,
  7623  //   see the error and message fields.
  7624  //
  7625  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimit
  7626  func (c *StorageGateway) UpdateBandwidthRateLimit(input *UpdateBandwidthRateLimitInput) (*UpdateBandwidthRateLimitOutput, error) {
  7627  	req, out := c.UpdateBandwidthRateLimitRequest(input)
  7628  	return out, req.Send()
  7629  }
  7630  
  7631  // UpdateBandwidthRateLimitWithContext is the same as UpdateBandwidthRateLimit with the addition of
  7632  // the ability to pass a context and additional request options.
  7633  //
  7634  // See UpdateBandwidthRateLimit for details on how to use this API operation.
  7635  //
  7636  // The context must be non-nil and will be used for request cancellation. If
  7637  // the context is nil a panic will occur. In the future the SDK may create
  7638  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7639  // for more information on using Contexts.
  7640  func (c *StorageGateway) UpdateBandwidthRateLimitWithContext(ctx aws.Context, input *UpdateBandwidthRateLimitInput, opts ...request.Option) (*UpdateBandwidthRateLimitOutput, error) {
  7641  	req, out := c.UpdateBandwidthRateLimitRequest(input)
  7642  	req.SetContext(ctx)
  7643  	req.ApplyOptions(opts...)
  7644  	return out, req.Send()
  7645  }
  7646  
  7647  const opUpdateBandwidthRateLimitSchedule = "UpdateBandwidthRateLimitSchedule"
  7648  
  7649  // UpdateBandwidthRateLimitScheduleRequest generates a "aws/request.Request" representing the
  7650  // client's request for the UpdateBandwidthRateLimitSchedule operation. The "output" return
  7651  // value will be populated with the request's response once the request completes
  7652  // successfully.
  7653  //
  7654  // Use "Send" method on the returned Request to send the API call to the service.
  7655  // the "output" return value is not valid until after Send returns without error.
  7656  //
  7657  // See UpdateBandwidthRateLimitSchedule for more information on using the UpdateBandwidthRateLimitSchedule
  7658  // API call, and error handling.
  7659  //
  7660  // This method is useful when you want to inject custom logic or configuration
  7661  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7662  //
  7663  //
  7664  //    // Example sending a request using the UpdateBandwidthRateLimitScheduleRequest method.
  7665  //    req, resp := client.UpdateBandwidthRateLimitScheduleRequest(params)
  7666  //
  7667  //    err := req.Send()
  7668  //    if err == nil { // resp is now filled
  7669  //        fmt.Println(resp)
  7670  //    }
  7671  //
  7672  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimitSchedule
  7673  func (c *StorageGateway) UpdateBandwidthRateLimitScheduleRequest(input *UpdateBandwidthRateLimitScheduleInput) (req *request.Request, output *UpdateBandwidthRateLimitScheduleOutput) {
  7674  	op := &request.Operation{
  7675  		Name:       opUpdateBandwidthRateLimitSchedule,
  7676  		HTTPMethod: "POST",
  7677  		HTTPPath:   "/",
  7678  	}
  7679  
  7680  	if input == nil {
  7681  		input = &UpdateBandwidthRateLimitScheduleInput{}
  7682  	}
  7683  
  7684  	output = &UpdateBandwidthRateLimitScheduleOutput{}
  7685  	req = c.newRequest(op, input, output)
  7686  	return
  7687  }
  7688  
  7689  // UpdateBandwidthRateLimitSchedule API operation for AWS Storage Gateway.
  7690  //
  7691  // Updates the bandwidth rate limit schedule for a specified gateway. By default,
  7692  // gateways do not have bandwidth rate limit schedules, which means no bandwidth
  7693  // rate limiting is in effect. Use this to initiate or update a gateway's bandwidth
  7694  // rate limit schedule. This operation is supported in the volume and tape gateway
  7695  // types.
  7696  //
  7697  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7698  // with awserr.Error's Code and Message methods to get detailed information about
  7699  // the error.
  7700  //
  7701  // See the AWS API reference guide for AWS Storage Gateway's
  7702  // API operation UpdateBandwidthRateLimitSchedule for usage and error information.
  7703  //
  7704  // Returned Error Types:
  7705  //   * InvalidGatewayRequestException
  7706  //   An exception occurred because an invalid gateway request was issued to the
  7707  //   service. For more information, see the error and message fields.
  7708  //
  7709  //   * InternalServerError
  7710  //   An internal server error has occurred during the request. For more information,
  7711  //   see the error and message fields.
  7712  //
  7713  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimitSchedule
  7714  func (c *StorageGateway) UpdateBandwidthRateLimitSchedule(input *UpdateBandwidthRateLimitScheduleInput) (*UpdateBandwidthRateLimitScheduleOutput, error) {
  7715  	req, out := c.UpdateBandwidthRateLimitScheduleRequest(input)
  7716  	return out, req.Send()
  7717  }
  7718  
  7719  // UpdateBandwidthRateLimitScheduleWithContext is the same as UpdateBandwidthRateLimitSchedule with the addition of
  7720  // the ability to pass a context and additional request options.
  7721  //
  7722  // See UpdateBandwidthRateLimitSchedule for details on how to use this API operation.
  7723  //
  7724  // The context must be non-nil and will be used for request cancellation. If
  7725  // the context is nil a panic will occur. In the future the SDK may create
  7726  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7727  // for more information on using Contexts.
  7728  func (c *StorageGateway) UpdateBandwidthRateLimitScheduleWithContext(ctx aws.Context, input *UpdateBandwidthRateLimitScheduleInput, opts ...request.Option) (*UpdateBandwidthRateLimitScheduleOutput, error) {
  7729  	req, out := c.UpdateBandwidthRateLimitScheduleRequest(input)
  7730  	req.SetContext(ctx)
  7731  	req.ApplyOptions(opts...)
  7732  	return out, req.Send()
  7733  }
  7734  
  7735  const opUpdateChapCredentials = "UpdateChapCredentials"
  7736  
  7737  // UpdateChapCredentialsRequest generates a "aws/request.Request" representing the
  7738  // client's request for the UpdateChapCredentials operation. The "output" return
  7739  // value will be populated with the request's response once the request completes
  7740  // successfully.
  7741  //
  7742  // Use "Send" method on the returned Request to send the API call to the service.
  7743  // the "output" return value is not valid until after Send returns without error.
  7744  //
  7745  // See UpdateChapCredentials for more information on using the UpdateChapCredentials
  7746  // API call, and error handling.
  7747  //
  7748  // This method is useful when you want to inject custom logic or configuration
  7749  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7750  //
  7751  //
  7752  //    // Example sending a request using the UpdateChapCredentialsRequest method.
  7753  //    req, resp := client.UpdateChapCredentialsRequest(params)
  7754  //
  7755  //    err := req.Send()
  7756  //    if err == nil { // resp is now filled
  7757  //        fmt.Println(resp)
  7758  //    }
  7759  //
  7760  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateChapCredentials
  7761  func (c *StorageGateway) UpdateChapCredentialsRequest(input *UpdateChapCredentialsInput) (req *request.Request, output *UpdateChapCredentialsOutput) {
  7762  	op := &request.Operation{
  7763  		Name:       opUpdateChapCredentials,
  7764  		HTTPMethod: "POST",
  7765  		HTTPPath:   "/",
  7766  	}
  7767  
  7768  	if input == nil {
  7769  		input = &UpdateChapCredentialsInput{}
  7770  	}
  7771  
  7772  	output = &UpdateChapCredentialsOutput{}
  7773  	req = c.newRequest(op, input, output)
  7774  	return
  7775  }
  7776  
  7777  // UpdateChapCredentials API operation for AWS Storage Gateway.
  7778  //
  7779  // Updates the Challenge-Handshake Authentication Protocol (CHAP) credentials
  7780  // for a specified iSCSI target. By default, a gateway does not have CHAP enabled;
  7781  // however, for added security, you might use it. This operation is supported
  7782  // in the volume and tape gateway types.
  7783  //
  7784  // When you update CHAP credentials, all existing connections on the target
  7785  // are closed and initiators must reconnect with the new credentials.
  7786  //
  7787  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7788  // with awserr.Error's Code and Message methods to get detailed information about
  7789  // the error.
  7790  //
  7791  // See the AWS API reference guide for AWS Storage Gateway's
  7792  // API operation UpdateChapCredentials for usage and error information.
  7793  //
  7794  // Returned Error Types:
  7795  //   * InvalidGatewayRequestException
  7796  //   An exception occurred because an invalid gateway request was issued to the
  7797  //   service. For more information, see the error and message fields.
  7798  //
  7799  //   * InternalServerError
  7800  //   An internal server error has occurred during the request. For more information,
  7801  //   see the error and message fields.
  7802  //
  7803  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateChapCredentials
  7804  func (c *StorageGateway) UpdateChapCredentials(input *UpdateChapCredentialsInput) (*UpdateChapCredentialsOutput, error) {
  7805  	req, out := c.UpdateChapCredentialsRequest(input)
  7806  	return out, req.Send()
  7807  }
  7808  
  7809  // UpdateChapCredentialsWithContext is the same as UpdateChapCredentials with the addition of
  7810  // the ability to pass a context and additional request options.
  7811  //
  7812  // See UpdateChapCredentials for details on how to use this API operation.
  7813  //
  7814  // The context must be non-nil and will be used for request cancellation. If
  7815  // the context is nil a panic will occur. In the future the SDK may create
  7816  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7817  // for more information on using Contexts.
  7818  func (c *StorageGateway) UpdateChapCredentialsWithContext(ctx aws.Context, input *UpdateChapCredentialsInput, opts ...request.Option) (*UpdateChapCredentialsOutput, error) {
  7819  	req, out := c.UpdateChapCredentialsRequest(input)
  7820  	req.SetContext(ctx)
  7821  	req.ApplyOptions(opts...)
  7822  	return out, req.Send()
  7823  }
  7824  
  7825  const opUpdateFileSystemAssociation = "UpdateFileSystemAssociation"
  7826  
  7827  // UpdateFileSystemAssociationRequest generates a "aws/request.Request" representing the
  7828  // client's request for the UpdateFileSystemAssociation operation. The "output" return
  7829  // value will be populated with the request's response once the request completes
  7830  // successfully.
  7831  //
  7832  // Use "Send" method on the returned Request to send the API call to the service.
  7833  // the "output" return value is not valid until after Send returns without error.
  7834  //
  7835  // See UpdateFileSystemAssociation for more information on using the UpdateFileSystemAssociation
  7836  // API call, and error handling.
  7837  //
  7838  // This method is useful when you want to inject custom logic or configuration
  7839  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7840  //
  7841  //
  7842  //    // Example sending a request using the UpdateFileSystemAssociationRequest method.
  7843  //    req, resp := client.UpdateFileSystemAssociationRequest(params)
  7844  //
  7845  //    err := req.Send()
  7846  //    if err == nil { // resp is now filled
  7847  //        fmt.Println(resp)
  7848  //    }
  7849  //
  7850  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateFileSystemAssociation
  7851  func (c *StorageGateway) UpdateFileSystemAssociationRequest(input *UpdateFileSystemAssociationInput) (req *request.Request, output *UpdateFileSystemAssociationOutput) {
  7852  	op := &request.Operation{
  7853  		Name:       opUpdateFileSystemAssociation,
  7854  		HTTPMethod: "POST",
  7855  		HTTPPath:   "/",
  7856  	}
  7857  
  7858  	if input == nil {
  7859  		input = &UpdateFileSystemAssociationInput{}
  7860  	}
  7861  
  7862  	output = &UpdateFileSystemAssociationOutput{}
  7863  	req = c.newRequest(op, input, output)
  7864  	return
  7865  }
  7866  
  7867  // UpdateFileSystemAssociation API operation for AWS Storage Gateway.
  7868  //
  7869  // Updates a file system association. This operation is only supported in the
  7870  // FSx File Gateways.
  7871  //
  7872  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7873  // with awserr.Error's Code and Message methods to get detailed information about
  7874  // the error.
  7875  //
  7876  // See the AWS API reference guide for AWS Storage Gateway's
  7877  // API operation UpdateFileSystemAssociation for usage and error information.
  7878  //
  7879  // Returned Error Types:
  7880  //   * InvalidGatewayRequestException
  7881  //   An exception occurred because an invalid gateway request was issued to the
  7882  //   service. For more information, see the error and message fields.
  7883  //
  7884  //   * InternalServerError
  7885  //   An internal server error has occurred during the request. For more information,
  7886  //   see the error and message fields.
  7887  //
  7888  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateFileSystemAssociation
  7889  func (c *StorageGateway) UpdateFileSystemAssociation(input *UpdateFileSystemAssociationInput) (*UpdateFileSystemAssociationOutput, error) {
  7890  	req, out := c.UpdateFileSystemAssociationRequest(input)
  7891  	return out, req.Send()
  7892  }
  7893  
  7894  // UpdateFileSystemAssociationWithContext is the same as UpdateFileSystemAssociation with the addition of
  7895  // the ability to pass a context and additional request options.
  7896  //
  7897  // See UpdateFileSystemAssociation for details on how to use this API operation.
  7898  //
  7899  // The context must be non-nil and will be used for request cancellation. If
  7900  // the context is nil a panic will occur. In the future the SDK may create
  7901  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7902  // for more information on using Contexts.
  7903  func (c *StorageGateway) UpdateFileSystemAssociationWithContext(ctx aws.Context, input *UpdateFileSystemAssociationInput, opts ...request.Option) (*UpdateFileSystemAssociationOutput, error) {
  7904  	req, out := c.UpdateFileSystemAssociationRequest(input)
  7905  	req.SetContext(ctx)
  7906  	req.ApplyOptions(opts...)
  7907  	return out, req.Send()
  7908  }
  7909  
  7910  const opUpdateGatewayInformation = "UpdateGatewayInformation"
  7911  
  7912  // UpdateGatewayInformationRequest generates a "aws/request.Request" representing the
  7913  // client's request for the UpdateGatewayInformation operation. The "output" return
  7914  // value will be populated with the request's response once the request completes
  7915  // successfully.
  7916  //
  7917  // Use "Send" method on the returned Request to send the API call to the service.
  7918  // the "output" return value is not valid until after Send returns without error.
  7919  //
  7920  // See UpdateGatewayInformation for more information on using the UpdateGatewayInformation
  7921  // API call, and error handling.
  7922  //
  7923  // This method is useful when you want to inject custom logic or configuration
  7924  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7925  //
  7926  //
  7927  //    // Example sending a request using the UpdateGatewayInformationRequest method.
  7928  //    req, resp := client.UpdateGatewayInformationRequest(params)
  7929  //
  7930  //    err := req.Send()
  7931  //    if err == nil { // resp is now filled
  7932  //        fmt.Println(resp)
  7933  //    }
  7934  //
  7935  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewayInformation
  7936  func (c *StorageGateway) UpdateGatewayInformationRequest(input *UpdateGatewayInformationInput) (req *request.Request, output *UpdateGatewayInformationOutput) {
  7937  	op := &request.Operation{
  7938  		Name:       opUpdateGatewayInformation,
  7939  		HTTPMethod: "POST",
  7940  		HTTPPath:   "/",
  7941  	}
  7942  
  7943  	if input == nil {
  7944  		input = &UpdateGatewayInformationInput{}
  7945  	}
  7946  
  7947  	output = &UpdateGatewayInformationOutput{}
  7948  	req = c.newRequest(op, input, output)
  7949  	return
  7950  }
  7951  
  7952  // UpdateGatewayInformation API operation for AWS Storage Gateway.
  7953  //
  7954  // Updates a gateway's metadata, which includes the gateway's name and time
  7955  // zone. To specify which gateway to update, use the Amazon Resource Name (ARN)
  7956  // of the gateway in your request.
  7957  //
  7958  // For gateways activated after September 2, 2015, the gateway's ARN contains
  7959  // the gateway ID rather than the gateway name. However, changing the name of
  7960  // the gateway has no effect on the gateway's ARN.
  7961  //
  7962  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7963  // with awserr.Error's Code and Message methods to get detailed information about
  7964  // the error.
  7965  //
  7966  // See the AWS API reference guide for AWS Storage Gateway's
  7967  // API operation UpdateGatewayInformation for usage and error information.
  7968  //
  7969  // Returned Error Types:
  7970  //   * InvalidGatewayRequestException
  7971  //   An exception occurred because an invalid gateway request was issued to the
  7972  //   service. For more information, see the error and message fields.
  7973  //
  7974  //   * InternalServerError
  7975  //   An internal server error has occurred during the request. For more information,
  7976  //   see the error and message fields.
  7977  //
  7978  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewayInformation
  7979  func (c *StorageGateway) UpdateGatewayInformation(input *UpdateGatewayInformationInput) (*UpdateGatewayInformationOutput, error) {
  7980  	req, out := c.UpdateGatewayInformationRequest(input)
  7981  	return out, req.Send()
  7982  }
  7983  
  7984  // UpdateGatewayInformationWithContext is the same as UpdateGatewayInformation with the addition of
  7985  // the ability to pass a context and additional request options.
  7986  //
  7987  // See UpdateGatewayInformation for details on how to use this API operation.
  7988  //
  7989  // The context must be non-nil and will be used for request cancellation. If
  7990  // the context is nil a panic will occur. In the future the SDK may create
  7991  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7992  // for more information on using Contexts.
  7993  func (c *StorageGateway) UpdateGatewayInformationWithContext(ctx aws.Context, input *UpdateGatewayInformationInput, opts ...request.Option) (*UpdateGatewayInformationOutput, error) {
  7994  	req, out := c.UpdateGatewayInformationRequest(input)
  7995  	req.SetContext(ctx)
  7996  	req.ApplyOptions(opts...)
  7997  	return out, req.Send()
  7998  }
  7999  
  8000  const opUpdateGatewaySoftwareNow = "UpdateGatewaySoftwareNow"
  8001  
  8002  // UpdateGatewaySoftwareNowRequest generates a "aws/request.Request" representing the
  8003  // client's request for the UpdateGatewaySoftwareNow operation. The "output" return
  8004  // value will be populated with the request's response once the request completes
  8005  // successfully.
  8006  //
  8007  // Use "Send" method on the returned Request to send the API call to the service.
  8008  // the "output" return value is not valid until after Send returns without error.
  8009  //
  8010  // See UpdateGatewaySoftwareNow for more information on using the UpdateGatewaySoftwareNow
  8011  // API call, and error handling.
  8012  //
  8013  // This method is useful when you want to inject custom logic or configuration
  8014  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8015  //
  8016  //
  8017  //    // Example sending a request using the UpdateGatewaySoftwareNowRequest method.
  8018  //    req, resp := client.UpdateGatewaySoftwareNowRequest(params)
  8019  //
  8020  //    err := req.Send()
  8021  //    if err == nil { // resp is now filled
  8022  //        fmt.Println(resp)
  8023  //    }
  8024  //
  8025  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewaySoftwareNow
  8026  func (c *StorageGateway) UpdateGatewaySoftwareNowRequest(input *UpdateGatewaySoftwareNowInput) (req *request.Request, output *UpdateGatewaySoftwareNowOutput) {
  8027  	op := &request.Operation{
  8028  		Name:       opUpdateGatewaySoftwareNow,
  8029  		HTTPMethod: "POST",
  8030  		HTTPPath:   "/",
  8031  	}
  8032  
  8033  	if input == nil {
  8034  		input = &UpdateGatewaySoftwareNowInput{}
  8035  	}
  8036  
  8037  	output = &UpdateGatewaySoftwareNowOutput{}
  8038  	req = c.newRequest(op, input, output)
  8039  	return
  8040  }
  8041  
  8042  // UpdateGatewaySoftwareNow API operation for AWS Storage Gateway.
  8043  //
  8044  // Updates the gateway virtual machine (VM) software. The request immediately
  8045  // triggers the software update.
  8046  //
  8047  // When you make this request, you get a 200 OK success response immediately.
  8048  // However, it might take some time for the update to complete. You can call
  8049  // DescribeGatewayInformation to verify the gateway is in the STATE_RUNNING
  8050  // state.
  8051  //
  8052  // A software update forces a system restart of your gateway. You can minimize
  8053  // the chance of any disruption to your applications by increasing your iSCSI
  8054  // Initiators' timeouts. For more information about increasing iSCSI Initiator
  8055  // timeouts for Windows and Linux, see Customizing your Windows iSCSI settings
  8056  // (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorWindowsClient.html#CustomizeWindowsiSCSISettings)
  8057  // and Customizing your Linux iSCSI settings (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings),
  8058  // respectively.
  8059  //
  8060  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8061  // with awserr.Error's Code and Message methods to get detailed information about
  8062  // the error.
  8063  //
  8064  // See the AWS API reference guide for AWS Storage Gateway's
  8065  // API operation UpdateGatewaySoftwareNow for usage and error information.
  8066  //
  8067  // Returned Error Types:
  8068  //   * InvalidGatewayRequestException
  8069  //   An exception occurred because an invalid gateway request was issued to the
  8070  //   service. For more information, see the error and message fields.
  8071  //
  8072  //   * InternalServerError
  8073  //   An internal server error has occurred during the request. For more information,
  8074  //   see the error and message fields.
  8075  //
  8076  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewaySoftwareNow
  8077  func (c *StorageGateway) UpdateGatewaySoftwareNow(input *UpdateGatewaySoftwareNowInput) (*UpdateGatewaySoftwareNowOutput, error) {
  8078  	req, out := c.UpdateGatewaySoftwareNowRequest(input)
  8079  	return out, req.Send()
  8080  }
  8081  
  8082  // UpdateGatewaySoftwareNowWithContext is the same as UpdateGatewaySoftwareNow with the addition of
  8083  // the ability to pass a context and additional request options.
  8084  //
  8085  // See UpdateGatewaySoftwareNow for details on how to use this API operation.
  8086  //
  8087  // The context must be non-nil and will be used for request cancellation. If
  8088  // the context is nil a panic will occur. In the future the SDK may create
  8089  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8090  // for more information on using Contexts.
  8091  func (c *StorageGateway) UpdateGatewaySoftwareNowWithContext(ctx aws.Context, input *UpdateGatewaySoftwareNowInput, opts ...request.Option) (*UpdateGatewaySoftwareNowOutput, error) {
  8092  	req, out := c.UpdateGatewaySoftwareNowRequest(input)
  8093  	req.SetContext(ctx)
  8094  	req.ApplyOptions(opts...)
  8095  	return out, req.Send()
  8096  }
  8097  
  8098  const opUpdateMaintenanceStartTime = "UpdateMaintenanceStartTime"
  8099  
  8100  // UpdateMaintenanceStartTimeRequest generates a "aws/request.Request" representing the
  8101  // client's request for the UpdateMaintenanceStartTime operation. The "output" return
  8102  // value will be populated with the request's response once the request completes
  8103  // successfully.
  8104  //
  8105  // Use "Send" method on the returned Request to send the API call to the service.
  8106  // the "output" return value is not valid until after Send returns without error.
  8107  //
  8108  // See UpdateMaintenanceStartTime for more information on using the UpdateMaintenanceStartTime
  8109  // API call, and error handling.
  8110  //
  8111  // This method is useful when you want to inject custom logic or configuration
  8112  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8113  //
  8114  //
  8115  //    // Example sending a request using the UpdateMaintenanceStartTimeRequest method.
  8116  //    req, resp := client.UpdateMaintenanceStartTimeRequest(params)
  8117  //
  8118  //    err := req.Send()
  8119  //    if err == nil { // resp is now filled
  8120  //        fmt.Println(resp)
  8121  //    }
  8122  //
  8123  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateMaintenanceStartTime
  8124  func (c *StorageGateway) UpdateMaintenanceStartTimeRequest(input *UpdateMaintenanceStartTimeInput) (req *request.Request, output *UpdateMaintenanceStartTimeOutput) {
  8125  	op := &request.Operation{
  8126  		Name:       opUpdateMaintenanceStartTime,
  8127  		HTTPMethod: "POST",
  8128  		HTTPPath:   "/",
  8129  	}
  8130  
  8131  	if input == nil {
  8132  		input = &UpdateMaintenanceStartTimeInput{}
  8133  	}
  8134  
  8135  	output = &UpdateMaintenanceStartTimeOutput{}
  8136  	req = c.newRequest(op, input, output)
  8137  	return
  8138  }
  8139  
  8140  // UpdateMaintenanceStartTime API operation for AWS Storage Gateway.
  8141  //
  8142  // Updates a gateway's weekly maintenance start time information, including
  8143  // day and time of the week. The maintenance time is the time in your gateway's
  8144  // time zone.
  8145  //
  8146  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8147  // with awserr.Error's Code and Message methods to get detailed information about
  8148  // the error.
  8149  //
  8150  // See the AWS API reference guide for AWS Storage Gateway's
  8151  // API operation UpdateMaintenanceStartTime for usage and error information.
  8152  //
  8153  // Returned Error Types:
  8154  //   * InvalidGatewayRequestException
  8155  //   An exception occurred because an invalid gateway request was issued to the
  8156  //   service. For more information, see the error and message fields.
  8157  //
  8158  //   * InternalServerError
  8159  //   An internal server error has occurred during the request. For more information,
  8160  //   see the error and message fields.
  8161  //
  8162  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateMaintenanceStartTime
  8163  func (c *StorageGateway) UpdateMaintenanceStartTime(input *UpdateMaintenanceStartTimeInput) (*UpdateMaintenanceStartTimeOutput, error) {
  8164  	req, out := c.UpdateMaintenanceStartTimeRequest(input)
  8165  	return out, req.Send()
  8166  }
  8167  
  8168  // UpdateMaintenanceStartTimeWithContext is the same as UpdateMaintenanceStartTime with the addition of
  8169  // the ability to pass a context and additional request options.
  8170  //
  8171  // See UpdateMaintenanceStartTime for details on how to use this API operation.
  8172  //
  8173  // The context must be non-nil and will be used for request cancellation. If
  8174  // the context is nil a panic will occur. In the future the SDK may create
  8175  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8176  // for more information on using Contexts.
  8177  func (c *StorageGateway) UpdateMaintenanceStartTimeWithContext(ctx aws.Context, input *UpdateMaintenanceStartTimeInput, opts ...request.Option) (*UpdateMaintenanceStartTimeOutput, error) {
  8178  	req, out := c.UpdateMaintenanceStartTimeRequest(input)
  8179  	req.SetContext(ctx)
  8180  	req.ApplyOptions(opts...)
  8181  	return out, req.Send()
  8182  }
  8183  
  8184  const opUpdateNFSFileShare = "UpdateNFSFileShare"
  8185  
  8186  // UpdateNFSFileShareRequest generates a "aws/request.Request" representing the
  8187  // client's request for the UpdateNFSFileShare operation. The "output" return
  8188  // value will be populated with the request's response once the request completes
  8189  // successfully.
  8190  //
  8191  // Use "Send" method on the returned Request to send the API call to the service.
  8192  // the "output" return value is not valid until after Send returns without error.
  8193  //
  8194  // See UpdateNFSFileShare for more information on using the UpdateNFSFileShare
  8195  // API call, and error handling.
  8196  //
  8197  // This method is useful when you want to inject custom logic or configuration
  8198  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8199  //
  8200  //
  8201  //    // Example sending a request using the UpdateNFSFileShareRequest method.
  8202  //    req, resp := client.UpdateNFSFileShareRequest(params)
  8203  //
  8204  //    err := req.Send()
  8205  //    if err == nil { // resp is now filled
  8206  //        fmt.Println(resp)
  8207  //    }
  8208  //
  8209  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateNFSFileShare
  8210  func (c *StorageGateway) UpdateNFSFileShareRequest(input *UpdateNFSFileShareInput) (req *request.Request, output *UpdateNFSFileShareOutput) {
  8211  	op := &request.Operation{
  8212  		Name:       opUpdateNFSFileShare,
  8213  		HTTPMethod: "POST",
  8214  		HTTPPath:   "/",
  8215  	}
  8216  
  8217  	if input == nil {
  8218  		input = &UpdateNFSFileShareInput{}
  8219  	}
  8220  
  8221  	output = &UpdateNFSFileShareOutput{}
  8222  	req = c.newRequest(op, input, output)
  8223  	return
  8224  }
  8225  
  8226  // UpdateNFSFileShare API operation for AWS Storage Gateway.
  8227  //
  8228  // Updates a Network File System (NFS) file share. This operation is only supported
  8229  // in S3 File Gateways.
  8230  //
  8231  // To leave a file share field unchanged, set the corresponding input field
  8232  // to null.
  8233  //
  8234  // Updates the following file share settings:
  8235  //
  8236  //    * Default storage class for your S3 bucket
  8237  //
  8238  //    * Metadata defaults for your S3 bucket
  8239  //
  8240  //    * Allowed NFS clients for your file share
  8241  //
  8242  //    * Squash settings
  8243  //
  8244  //    * Write status of your file share
  8245  //
  8246  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8247  // with awserr.Error's Code and Message methods to get detailed information about
  8248  // the error.
  8249  //
  8250  // See the AWS API reference guide for AWS Storage Gateway's
  8251  // API operation UpdateNFSFileShare for usage and error information.
  8252  //
  8253  // Returned Error Types:
  8254  //   * InvalidGatewayRequestException
  8255  //   An exception occurred because an invalid gateway request was issued to the
  8256  //   service. For more information, see the error and message fields.
  8257  //
  8258  //   * InternalServerError
  8259  //   An internal server error has occurred during the request. For more information,
  8260  //   see the error and message fields.
  8261  //
  8262  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateNFSFileShare
  8263  func (c *StorageGateway) UpdateNFSFileShare(input *UpdateNFSFileShareInput) (*UpdateNFSFileShareOutput, error) {
  8264  	req, out := c.UpdateNFSFileShareRequest(input)
  8265  	return out, req.Send()
  8266  }
  8267  
  8268  // UpdateNFSFileShareWithContext is the same as UpdateNFSFileShare with the addition of
  8269  // the ability to pass a context and additional request options.
  8270  //
  8271  // See UpdateNFSFileShare for details on how to use this API operation.
  8272  //
  8273  // The context must be non-nil and will be used for request cancellation. If
  8274  // the context is nil a panic will occur. In the future the SDK may create
  8275  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8276  // for more information on using Contexts.
  8277  func (c *StorageGateway) UpdateNFSFileShareWithContext(ctx aws.Context, input *UpdateNFSFileShareInput, opts ...request.Option) (*UpdateNFSFileShareOutput, error) {
  8278  	req, out := c.UpdateNFSFileShareRequest(input)
  8279  	req.SetContext(ctx)
  8280  	req.ApplyOptions(opts...)
  8281  	return out, req.Send()
  8282  }
  8283  
  8284  const opUpdateSMBFileShare = "UpdateSMBFileShare"
  8285  
  8286  // UpdateSMBFileShareRequest generates a "aws/request.Request" representing the
  8287  // client's request for the UpdateSMBFileShare operation. The "output" return
  8288  // value will be populated with the request's response once the request completes
  8289  // successfully.
  8290  //
  8291  // Use "Send" method on the returned Request to send the API call to the service.
  8292  // the "output" return value is not valid until after Send returns without error.
  8293  //
  8294  // See UpdateSMBFileShare for more information on using the UpdateSMBFileShare
  8295  // API call, and error handling.
  8296  //
  8297  // This method is useful when you want to inject custom logic or configuration
  8298  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8299  //
  8300  //
  8301  //    // Example sending a request using the UpdateSMBFileShareRequest method.
  8302  //    req, resp := client.UpdateSMBFileShareRequest(params)
  8303  //
  8304  //    err := req.Send()
  8305  //    if err == nil { // resp is now filled
  8306  //        fmt.Println(resp)
  8307  //    }
  8308  //
  8309  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShare
  8310  func (c *StorageGateway) UpdateSMBFileShareRequest(input *UpdateSMBFileShareInput) (req *request.Request, output *UpdateSMBFileShareOutput) {
  8311  	op := &request.Operation{
  8312  		Name:       opUpdateSMBFileShare,
  8313  		HTTPMethod: "POST",
  8314  		HTTPPath:   "/",
  8315  	}
  8316  
  8317  	if input == nil {
  8318  		input = &UpdateSMBFileShareInput{}
  8319  	}
  8320  
  8321  	output = &UpdateSMBFileShareOutput{}
  8322  	req = c.newRequest(op, input, output)
  8323  	return
  8324  }
  8325  
  8326  // UpdateSMBFileShare API operation for AWS Storage Gateway.
  8327  //
  8328  // Updates a Server Message Block (SMB) file share. This operation is only supported
  8329  // for S3 File Gateways.
  8330  //
  8331  // To leave a file share field unchanged, set the corresponding input field
  8332  // to null.
  8333  //
  8334  // File gateways require Security Token Service (STS) to be activated to enable
  8335  // you to create a file share. Make sure that STS is activated in the Region
  8336  // you are creating your file gateway in. If STS is not activated in this Region,
  8337  // activate it. For information about how to activate STS, see Activating and
  8338  // deactivating STS in an Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
  8339  // in the Identity and Access Management User Guide.
  8340  //
  8341  // File gateways don't support creating hard or symbolic links on a file share.
  8342  //
  8343  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8344  // with awserr.Error's Code and Message methods to get detailed information about
  8345  // the error.
  8346  //
  8347  // See the AWS API reference guide for AWS Storage Gateway's
  8348  // API operation UpdateSMBFileShare for usage and error information.
  8349  //
  8350  // Returned Error Types:
  8351  //   * InvalidGatewayRequestException
  8352  //   An exception occurred because an invalid gateway request was issued to the
  8353  //   service. For more information, see the error and message fields.
  8354  //
  8355  //   * InternalServerError
  8356  //   An internal server error has occurred during the request. For more information,
  8357  //   see the error and message fields.
  8358  //
  8359  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShare
  8360  func (c *StorageGateway) UpdateSMBFileShare(input *UpdateSMBFileShareInput) (*UpdateSMBFileShareOutput, error) {
  8361  	req, out := c.UpdateSMBFileShareRequest(input)
  8362  	return out, req.Send()
  8363  }
  8364  
  8365  // UpdateSMBFileShareWithContext is the same as UpdateSMBFileShare with the addition of
  8366  // the ability to pass a context and additional request options.
  8367  //
  8368  // See UpdateSMBFileShare for details on how to use this API operation.
  8369  //
  8370  // The context must be non-nil and will be used for request cancellation. If
  8371  // the context is nil a panic will occur. In the future the SDK may create
  8372  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8373  // for more information on using Contexts.
  8374  func (c *StorageGateway) UpdateSMBFileShareWithContext(ctx aws.Context, input *UpdateSMBFileShareInput, opts ...request.Option) (*UpdateSMBFileShareOutput, error) {
  8375  	req, out := c.UpdateSMBFileShareRequest(input)
  8376  	req.SetContext(ctx)
  8377  	req.ApplyOptions(opts...)
  8378  	return out, req.Send()
  8379  }
  8380  
  8381  const opUpdateSMBFileShareVisibility = "UpdateSMBFileShareVisibility"
  8382  
  8383  // UpdateSMBFileShareVisibilityRequest generates a "aws/request.Request" representing the
  8384  // client's request for the UpdateSMBFileShareVisibility operation. The "output" return
  8385  // value will be populated with the request's response once the request completes
  8386  // successfully.
  8387  //
  8388  // Use "Send" method on the returned Request to send the API call to the service.
  8389  // the "output" return value is not valid until after Send returns without error.
  8390  //
  8391  // See UpdateSMBFileShareVisibility for more information on using the UpdateSMBFileShareVisibility
  8392  // API call, and error handling.
  8393  //
  8394  // This method is useful when you want to inject custom logic or configuration
  8395  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8396  //
  8397  //
  8398  //    // Example sending a request using the UpdateSMBFileShareVisibilityRequest method.
  8399  //    req, resp := client.UpdateSMBFileShareVisibilityRequest(params)
  8400  //
  8401  //    err := req.Send()
  8402  //    if err == nil { // resp is now filled
  8403  //        fmt.Println(resp)
  8404  //    }
  8405  //
  8406  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShareVisibility
  8407  func (c *StorageGateway) UpdateSMBFileShareVisibilityRequest(input *UpdateSMBFileShareVisibilityInput) (req *request.Request, output *UpdateSMBFileShareVisibilityOutput) {
  8408  	op := &request.Operation{
  8409  		Name:       opUpdateSMBFileShareVisibility,
  8410  		HTTPMethod: "POST",
  8411  		HTTPPath:   "/",
  8412  	}
  8413  
  8414  	if input == nil {
  8415  		input = &UpdateSMBFileShareVisibilityInput{}
  8416  	}
  8417  
  8418  	output = &UpdateSMBFileShareVisibilityOutput{}
  8419  	req = c.newRequest(op, input, output)
  8420  	return
  8421  }
  8422  
  8423  // UpdateSMBFileShareVisibility API operation for AWS Storage Gateway.
  8424  //
  8425  // Controls whether the shares on an S3 File Gateway are visible in a net view
  8426  // or browse list. The operation is only supported for S3 File Gateways.
  8427  //
  8428  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8429  // with awserr.Error's Code and Message methods to get detailed information about
  8430  // the error.
  8431  //
  8432  // See the AWS API reference guide for AWS Storage Gateway's
  8433  // API operation UpdateSMBFileShareVisibility for usage and error information.
  8434  //
  8435  // Returned Error Types:
  8436  //   * InvalidGatewayRequestException
  8437  //   An exception occurred because an invalid gateway request was issued to the
  8438  //   service. For more information, see the error and message fields.
  8439  //
  8440  //   * InternalServerError
  8441  //   An internal server error has occurred during the request. For more information,
  8442  //   see the error and message fields.
  8443  //
  8444  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShareVisibility
  8445  func (c *StorageGateway) UpdateSMBFileShareVisibility(input *UpdateSMBFileShareVisibilityInput) (*UpdateSMBFileShareVisibilityOutput, error) {
  8446  	req, out := c.UpdateSMBFileShareVisibilityRequest(input)
  8447  	return out, req.Send()
  8448  }
  8449  
  8450  // UpdateSMBFileShareVisibilityWithContext is the same as UpdateSMBFileShareVisibility with the addition of
  8451  // the ability to pass a context and additional request options.
  8452  //
  8453  // See UpdateSMBFileShareVisibility for details on how to use this API operation.
  8454  //
  8455  // The context must be non-nil and will be used for request cancellation. If
  8456  // the context is nil a panic will occur. In the future the SDK may create
  8457  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8458  // for more information on using Contexts.
  8459  func (c *StorageGateway) UpdateSMBFileShareVisibilityWithContext(ctx aws.Context, input *UpdateSMBFileShareVisibilityInput, opts ...request.Option) (*UpdateSMBFileShareVisibilityOutput, error) {
  8460  	req, out := c.UpdateSMBFileShareVisibilityRequest(input)
  8461  	req.SetContext(ctx)
  8462  	req.ApplyOptions(opts...)
  8463  	return out, req.Send()
  8464  }
  8465  
  8466  const opUpdateSMBSecurityStrategy = "UpdateSMBSecurityStrategy"
  8467  
  8468  // UpdateSMBSecurityStrategyRequest generates a "aws/request.Request" representing the
  8469  // client's request for the UpdateSMBSecurityStrategy operation. The "output" return
  8470  // value will be populated with the request's response once the request completes
  8471  // successfully.
  8472  //
  8473  // Use "Send" method on the returned Request to send the API call to the service.
  8474  // the "output" return value is not valid until after Send returns without error.
  8475  //
  8476  // See UpdateSMBSecurityStrategy for more information on using the UpdateSMBSecurityStrategy
  8477  // API call, and error handling.
  8478  //
  8479  // This method is useful when you want to inject custom logic or configuration
  8480  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8481  //
  8482  //
  8483  //    // Example sending a request using the UpdateSMBSecurityStrategyRequest method.
  8484  //    req, resp := client.UpdateSMBSecurityStrategyRequest(params)
  8485  //
  8486  //    err := req.Send()
  8487  //    if err == nil { // resp is now filled
  8488  //        fmt.Println(resp)
  8489  //    }
  8490  //
  8491  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBSecurityStrategy
  8492  func (c *StorageGateway) UpdateSMBSecurityStrategyRequest(input *UpdateSMBSecurityStrategyInput) (req *request.Request, output *UpdateSMBSecurityStrategyOutput) {
  8493  	op := &request.Operation{
  8494  		Name:       opUpdateSMBSecurityStrategy,
  8495  		HTTPMethod: "POST",
  8496  		HTTPPath:   "/",
  8497  	}
  8498  
  8499  	if input == nil {
  8500  		input = &UpdateSMBSecurityStrategyInput{}
  8501  	}
  8502  
  8503  	output = &UpdateSMBSecurityStrategyOutput{}
  8504  	req = c.newRequest(op, input, output)
  8505  	return
  8506  }
  8507  
  8508  // UpdateSMBSecurityStrategy API operation for AWS Storage Gateway.
  8509  //
  8510  // Updates the SMB security strategy on a file gateway. This action is only
  8511  // supported in file gateways.
  8512  //
  8513  // This API is called Security level in the User Guide.
  8514  //
  8515  // A higher security level can affect performance of the gateway.
  8516  //
  8517  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8518  // with awserr.Error's Code and Message methods to get detailed information about
  8519  // the error.
  8520  //
  8521  // See the AWS API reference guide for AWS Storage Gateway's
  8522  // API operation UpdateSMBSecurityStrategy for usage and error information.
  8523  //
  8524  // Returned Error Types:
  8525  //   * InvalidGatewayRequestException
  8526  //   An exception occurred because an invalid gateway request was issued to the
  8527  //   service. For more information, see the error and message fields.
  8528  //
  8529  //   * InternalServerError
  8530  //   An internal server error has occurred during the request. For more information,
  8531  //   see the error and message fields.
  8532  //
  8533  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBSecurityStrategy
  8534  func (c *StorageGateway) UpdateSMBSecurityStrategy(input *UpdateSMBSecurityStrategyInput) (*UpdateSMBSecurityStrategyOutput, error) {
  8535  	req, out := c.UpdateSMBSecurityStrategyRequest(input)
  8536  	return out, req.Send()
  8537  }
  8538  
  8539  // UpdateSMBSecurityStrategyWithContext is the same as UpdateSMBSecurityStrategy with the addition of
  8540  // the ability to pass a context and additional request options.
  8541  //
  8542  // See UpdateSMBSecurityStrategy for details on how to use this API operation.
  8543  //
  8544  // The context must be non-nil and will be used for request cancellation. If
  8545  // the context is nil a panic will occur. In the future the SDK may create
  8546  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8547  // for more information on using Contexts.
  8548  func (c *StorageGateway) UpdateSMBSecurityStrategyWithContext(ctx aws.Context, input *UpdateSMBSecurityStrategyInput, opts ...request.Option) (*UpdateSMBSecurityStrategyOutput, error) {
  8549  	req, out := c.UpdateSMBSecurityStrategyRequest(input)
  8550  	req.SetContext(ctx)
  8551  	req.ApplyOptions(opts...)
  8552  	return out, req.Send()
  8553  }
  8554  
  8555  const opUpdateSnapshotSchedule = "UpdateSnapshotSchedule"
  8556  
  8557  // UpdateSnapshotScheduleRequest generates a "aws/request.Request" representing the
  8558  // client's request for the UpdateSnapshotSchedule operation. The "output" return
  8559  // value will be populated with the request's response once the request completes
  8560  // successfully.
  8561  //
  8562  // Use "Send" method on the returned Request to send the API call to the service.
  8563  // the "output" return value is not valid until after Send returns without error.
  8564  //
  8565  // See UpdateSnapshotSchedule for more information on using the UpdateSnapshotSchedule
  8566  // API call, and error handling.
  8567  //
  8568  // This method is useful when you want to inject custom logic or configuration
  8569  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8570  //
  8571  //
  8572  //    // Example sending a request using the UpdateSnapshotScheduleRequest method.
  8573  //    req, resp := client.UpdateSnapshotScheduleRequest(params)
  8574  //
  8575  //    err := req.Send()
  8576  //    if err == nil { // resp is now filled
  8577  //        fmt.Println(resp)
  8578  //    }
  8579  //
  8580  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSnapshotSchedule
  8581  func (c *StorageGateway) UpdateSnapshotScheduleRequest(input *UpdateSnapshotScheduleInput) (req *request.Request, output *UpdateSnapshotScheduleOutput) {
  8582  	op := &request.Operation{
  8583  		Name:       opUpdateSnapshotSchedule,
  8584  		HTTPMethod: "POST",
  8585  		HTTPPath:   "/",
  8586  	}
  8587  
  8588  	if input == nil {
  8589  		input = &UpdateSnapshotScheduleInput{}
  8590  	}
  8591  
  8592  	output = &UpdateSnapshotScheduleOutput{}
  8593  	req = c.newRequest(op, input, output)
  8594  	return
  8595  }
  8596  
  8597  // UpdateSnapshotSchedule API operation for AWS Storage Gateway.
  8598  //
  8599  // Updates a snapshot schedule configured for a gateway volume. This operation
  8600  // is only supported in the cached volume and stored volume gateway types.
  8601  //
  8602  // The default snapshot schedule for volume is once every 24 hours, starting
  8603  // at the creation time of the volume. You can use this API to change the snapshot
  8604  // schedule configured for the volume.
  8605  //
  8606  // In the request you must identify the gateway volume whose snapshot schedule
  8607  // you want to update, and the schedule information, including when you want
  8608  // the snapshot to begin on a day and the frequency (in hours) of snapshots.
  8609  //
  8610  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8611  // with awserr.Error's Code and Message methods to get detailed information about
  8612  // the error.
  8613  //
  8614  // See the AWS API reference guide for AWS Storage Gateway's
  8615  // API operation UpdateSnapshotSchedule for usage and error information.
  8616  //
  8617  // Returned Error Types:
  8618  //   * InvalidGatewayRequestException
  8619  //   An exception occurred because an invalid gateway request was issued to the
  8620  //   service. For more information, see the error and message fields.
  8621  //
  8622  //   * InternalServerError
  8623  //   An internal server error has occurred during the request. For more information,
  8624  //   see the error and message fields.
  8625  //
  8626  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSnapshotSchedule
  8627  func (c *StorageGateway) UpdateSnapshotSchedule(input *UpdateSnapshotScheduleInput) (*UpdateSnapshotScheduleOutput, error) {
  8628  	req, out := c.UpdateSnapshotScheduleRequest(input)
  8629  	return out, req.Send()
  8630  }
  8631  
  8632  // UpdateSnapshotScheduleWithContext is the same as UpdateSnapshotSchedule with the addition of
  8633  // the ability to pass a context and additional request options.
  8634  //
  8635  // See UpdateSnapshotSchedule for details on how to use this API operation.
  8636  //
  8637  // The context must be non-nil and will be used for request cancellation. If
  8638  // the context is nil a panic will occur. In the future the SDK may create
  8639  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8640  // for more information on using Contexts.
  8641  func (c *StorageGateway) UpdateSnapshotScheduleWithContext(ctx aws.Context, input *UpdateSnapshotScheduleInput, opts ...request.Option) (*UpdateSnapshotScheduleOutput, error) {
  8642  	req, out := c.UpdateSnapshotScheduleRequest(input)
  8643  	req.SetContext(ctx)
  8644  	req.ApplyOptions(opts...)
  8645  	return out, req.Send()
  8646  }
  8647  
  8648  const opUpdateVTLDeviceType = "UpdateVTLDeviceType"
  8649  
  8650  // UpdateVTLDeviceTypeRequest generates a "aws/request.Request" representing the
  8651  // client's request for the UpdateVTLDeviceType operation. The "output" return
  8652  // value will be populated with the request's response once the request completes
  8653  // successfully.
  8654  //
  8655  // Use "Send" method on the returned Request to send the API call to the service.
  8656  // the "output" return value is not valid until after Send returns without error.
  8657  //
  8658  // See UpdateVTLDeviceType for more information on using the UpdateVTLDeviceType
  8659  // API call, and error handling.
  8660  //
  8661  // This method is useful when you want to inject custom logic or configuration
  8662  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8663  //
  8664  //
  8665  //    // Example sending a request using the UpdateVTLDeviceTypeRequest method.
  8666  //    req, resp := client.UpdateVTLDeviceTypeRequest(params)
  8667  //
  8668  //    err := req.Send()
  8669  //    if err == nil { // resp is now filled
  8670  //        fmt.Println(resp)
  8671  //    }
  8672  //
  8673  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateVTLDeviceType
  8674  func (c *StorageGateway) UpdateVTLDeviceTypeRequest(input *UpdateVTLDeviceTypeInput) (req *request.Request, output *UpdateVTLDeviceTypeOutput) {
  8675  	op := &request.Operation{
  8676  		Name:       opUpdateVTLDeviceType,
  8677  		HTTPMethod: "POST",
  8678  		HTTPPath:   "/",
  8679  	}
  8680  
  8681  	if input == nil {
  8682  		input = &UpdateVTLDeviceTypeInput{}
  8683  	}
  8684  
  8685  	output = &UpdateVTLDeviceTypeOutput{}
  8686  	req = c.newRequest(op, input, output)
  8687  	return
  8688  }
  8689  
  8690  // UpdateVTLDeviceType API operation for AWS Storage Gateway.
  8691  //
  8692  // Updates the type of medium changer in a tape gateway. When you activate a
  8693  // tape gateway, you select a medium changer type for the tape gateway. This
  8694  // operation enables you to select a different type of medium changer after
  8695  // a tape gateway is activated. This operation is only supported in the tape
  8696  // gateway type.
  8697  //
  8698  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8699  // with awserr.Error's Code and Message methods to get detailed information about
  8700  // the error.
  8701  //
  8702  // See the AWS API reference guide for AWS Storage Gateway's
  8703  // API operation UpdateVTLDeviceType for usage and error information.
  8704  //
  8705  // Returned Error Types:
  8706  //   * InvalidGatewayRequestException
  8707  //   An exception occurred because an invalid gateway request was issued to the
  8708  //   service. For more information, see the error and message fields.
  8709  //
  8710  //   * InternalServerError
  8711  //   An internal server error has occurred during the request. For more information,
  8712  //   see the error and message fields.
  8713  //
  8714  // See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateVTLDeviceType
  8715  func (c *StorageGateway) UpdateVTLDeviceType(input *UpdateVTLDeviceTypeInput) (*UpdateVTLDeviceTypeOutput, error) {
  8716  	req, out := c.UpdateVTLDeviceTypeRequest(input)
  8717  	return out, req.Send()
  8718  }
  8719  
  8720  // UpdateVTLDeviceTypeWithContext is the same as UpdateVTLDeviceType with the addition of
  8721  // the ability to pass a context and additional request options.
  8722  //
  8723  // See UpdateVTLDeviceType for details on how to use this API operation.
  8724  //
  8725  // The context must be non-nil and will be used for request cancellation. If
  8726  // the context is nil a panic will occur. In the future the SDK may create
  8727  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8728  // for more information on using Contexts.
  8729  func (c *StorageGateway) UpdateVTLDeviceTypeWithContext(ctx aws.Context, input *UpdateVTLDeviceTypeInput, opts ...request.Option) (*UpdateVTLDeviceTypeOutput, error) {
  8730  	req, out := c.UpdateVTLDeviceTypeRequest(input)
  8731  	req.SetContext(ctx)
  8732  	req.ApplyOptions(opts...)
  8733  	return out, req.Send()
  8734  }
  8735  
  8736  // A JSON object containing one or more of the following fields:
  8737  //
  8738  //    * ActivateGatewayInput$ActivationKey
  8739  //
  8740  //    * ActivateGatewayInput$GatewayName
  8741  //
  8742  //    * ActivateGatewayInput$GatewayRegion
  8743  //
  8744  //    * ActivateGatewayInput$GatewayTimezone
  8745  //
  8746  //    * ActivateGatewayInput$GatewayType
  8747  //
  8748  //    * ActivateGatewayInput$MediumChangerType
  8749  //
  8750  //    * ActivateGatewayInput$TapeDriveType
  8751  type ActivateGatewayInput struct {
  8752  	_ struct{} `type:"structure"`
  8753  
  8754  	// Your gateway activation key. You can obtain the activation key by sending
  8755  	// an HTTP GET request with redirects enabled to the gateway IP address (port
  8756  	// 80). The redirect URL returned in the response provides you the activation
  8757  	// key for your gateway in the query string parameter activationKey. It may
  8758  	// also include other activation-related parameters, however, these are merely
  8759  	// defaults -- the arguments you pass to the ActivateGateway API call determine
  8760  	// the actual configuration of your gateway.
  8761  	//
  8762  	// For more information, see Getting activation key (https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html)
  8763  	// in the Storage Gateway User Guide.
  8764  	//
  8765  	// ActivationKey is a required field
  8766  	ActivationKey *string `min:"1" type:"string" required:"true"`
  8767  
  8768  	// The name you configured for your gateway.
  8769  	//
  8770  	// GatewayName is a required field
  8771  	GatewayName *string `min:"2" type:"string" required:"true"`
  8772  
  8773  	// A value that indicates the Region where you want to store your data. The
  8774  	// gateway Region specified must be the same Region as the Region in your Host
  8775  	// header in the request. For more information about available Regions and endpoints
  8776  	// for Storage Gateway, see Storage Gateway endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/sg.html)
  8777  	// in the Amazon Web Services General Reference.
  8778  	//
  8779  	// Valid Values: See Storage Gateway endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/sg.html)
  8780  	// in the Amazon Web Services General Reference.
  8781  	//
  8782  	// GatewayRegion is a required field
  8783  	GatewayRegion *string `min:"1" type:"string" required:"true"`
  8784  
  8785  	// A value that indicates the time zone you want to set for the gateway. The
  8786  	// time zone is of the format "GMT-hr:mm" or "GMT+hr:mm". For example, GMT-4:00
  8787  	// indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is
  8788  	// 2 hours ahead of GMT. The time zone is used, for example, for scheduling
  8789  	// snapshots and your gateway's maintenance schedule.
  8790  	//
  8791  	// GatewayTimezone is a required field
  8792  	GatewayTimezone *string `min:"3" type:"string" required:"true"`
  8793  
  8794  	// A value that defines the type of gateway to activate. The type specified
  8795  	// is critical to all later functions of the gateway and cannot be changed after
  8796  	// activation. The default value is CACHED.
  8797  	//
  8798  	// Valid Values: STORED | CACHED | VTL | FILE_S3 | FILE_FSX_SMB|
  8799  	GatewayType *string `min:"2" type:"string"`
  8800  
  8801  	// The value that indicates the type of medium changer to use for tape gateway.
  8802  	// This field is optional.
  8803  	//
  8804  	// Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402
  8805  	MediumChangerType *string `min:"2" type:"string"`
  8806  
  8807  	// A list of up to 50 tags that you can assign to the gateway. Each tag is a
  8808  	// key-value pair.
  8809  	//
  8810  	// Valid characters for key and value are letters, spaces, and numbers that
  8811  	// can be represented in UTF-8 format, and the following special characters:
  8812  	// + - = . _ : / @. The maximum length of a tag's key is 128 characters, and
  8813  	// the maximum length for a tag's value is 256 characters.
  8814  	Tags []*Tag `type:"list"`
  8815  
  8816  	// The value that indicates the type of tape drive to use for tape gateway.
  8817  	// This field is optional.
  8818  	//
  8819  	// Valid Values: IBM-ULT3580-TD5
  8820  	TapeDriveType *string `min:"2" type:"string"`
  8821  }
  8822  
  8823  // String returns the string representation.
  8824  //
  8825  // API parameter values that are decorated as "sensitive" in the API will not
  8826  // be included in the string output. The member name will be present, but the
  8827  // value will be replaced with "sensitive".
  8828  func (s ActivateGatewayInput) String() string {
  8829  	return awsutil.Prettify(s)
  8830  }
  8831  
  8832  // GoString returns the string representation.
  8833  //
  8834  // API parameter values that are decorated as "sensitive" in the API will not
  8835  // be included in the string output. The member name will be present, but the
  8836  // value will be replaced with "sensitive".
  8837  func (s ActivateGatewayInput) GoString() string {
  8838  	return s.String()
  8839  }
  8840  
  8841  // Validate inspects the fields of the type to determine if they are valid.
  8842  func (s *ActivateGatewayInput) Validate() error {
  8843  	invalidParams := request.ErrInvalidParams{Context: "ActivateGatewayInput"}
  8844  	if s.ActivationKey == nil {
  8845  		invalidParams.Add(request.NewErrParamRequired("ActivationKey"))
  8846  	}
  8847  	if s.ActivationKey != nil && len(*s.ActivationKey) < 1 {
  8848  		invalidParams.Add(request.NewErrParamMinLen("ActivationKey", 1))
  8849  	}
  8850  	if s.GatewayName == nil {
  8851  		invalidParams.Add(request.NewErrParamRequired("GatewayName"))
  8852  	}
  8853  	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
  8854  		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
  8855  	}
  8856  	if s.GatewayRegion == nil {
  8857  		invalidParams.Add(request.NewErrParamRequired("GatewayRegion"))
  8858  	}
  8859  	if s.GatewayRegion != nil && len(*s.GatewayRegion) < 1 {
  8860  		invalidParams.Add(request.NewErrParamMinLen("GatewayRegion", 1))
  8861  	}
  8862  	if s.GatewayTimezone == nil {
  8863  		invalidParams.Add(request.NewErrParamRequired("GatewayTimezone"))
  8864  	}
  8865  	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
  8866  		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
  8867  	}
  8868  	if s.GatewayType != nil && len(*s.GatewayType) < 2 {
  8869  		invalidParams.Add(request.NewErrParamMinLen("GatewayType", 2))
  8870  	}
  8871  	if s.MediumChangerType != nil && len(*s.MediumChangerType) < 2 {
  8872  		invalidParams.Add(request.NewErrParamMinLen("MediumChangerType", 2))
  8873  	}
  8874  	if s.TapeDriveType != nil && len(*s.TapeDriveType) < 2 {
  8875  		invalidParams.Add(request.NewErrParamMinLen("TapeDriveType", 2))
  8876  	}
  8877  	if s.Tags != nil {
  8878  		for i, v := range s.Tags {
  8879  			if v == nil {
  8880  				continue
  8881  			}
  8882  			if err := v.Validate(); err != nil {
  8883  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  8884  			}
  8885  		}
  8886  	}
  8887  
  8888  	if invalidParams.Len() > 0 {
  8889  		return invalidParams
  8890  	}
  8891  	return nil
  8892  }
  8893  
  8894  // SetActivationKey sets the ActivationKey field's value.
  8895  func (s *ActivateGatewayInput) SetActivationKey(v string) *ActivateGatewayInput {
  8896  	s.ActivationKey = &v
  8897  	return s
  8898  }
  8899  
  8900  // SetGatewayName sets the GatewayName field's value.
  8901  func (s *ActivateGatewayInput) SetGatewayName(v string) *ActivateGatewayInput {
  8902  	s.GatewayName = &v
  8903  	return s
  8904  }
  8905  
  8906  // SetGatewayRegion sets the GatewayRegion field's value.
  8907  func (s *ActivateGatewayInput) SetGatewayRegion(v string) *ActivateGatewayInput {
  8908  	s.GatewayRegion = &v
  8909  	return s
  8910  }
  8911  
  8912  // SetGatewayTimezone sets the GatewayTimezone field's value.
  8913  func (s *ActivateGatewayInput) SetGatewayTimezone(v string) *ActivateGatewayInput {
  8914  	s.GatewayTimezone = &v
  8915  	return s
  8916  }
  8917  
  8918  // SetGatewayType sets the GatewayType field's value.
  8919  func (s *ActivateGatewayInput) SetGatewayType(v string) *ActivateGatewayInput {
  8920  	s.GatewayType = &v
  8921  	return s
  8922  }
  8923  
  8924  // SetMediumChangerType sets the MediumChangerType field's value.
  8925  func (s *ActivateGatewayInput) SetMediumChangerType(v string) *ActivateGatewayInput {
  8926  	s.MediumChangerType = &v
  8927  	return s
  8928  }
  8929  
  8930  // SetTags sets the Tags field's value.
  8931  func (s *ActivateGatewayInput) SetTags(v []*Tag) *ActivateGatewayInput {
  8932  	s.Tags = v
  8933  	return s
  8934  }
  8935  
  8936  // SetTapeDriveType sets the TapeDriveType field's value.
  8937  func (s *ActivateGatewayInput) SetTapeDriveType(v string) *ActivateGatewayInput {
  8938  	s.TapeDriveType = &v
  8939  	return s
  8940  }
  8941  
  8942  // Storage Gateway returns the Amazon Resource Name (ARN) of the activated gateway.
  8943  // It is a string made of information such as your account, gateway name, and
  8944  // Region. This ARN is used to reference the gateway in other API operations
  8945  // as well as resource-based authorization.
  8946  //
  8947  // For gateways activated prior to September 02, 2015, the gateway ARN contains
  8948  // the gateway name rather than the gateway ID. Changing the name of the gateway
  8949  // has no effect on the gateway ARN.
  8950  type ActivateGatewayOutput struct {
  8951  	_ struct{} `type:"structure"`
  8952  
  8953  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
  8954  	// to return a list of gateways for your account and Region.
  8955  	GatewayARN *string `min:"50" type:"string"`
  8956  }
  8957  
  8958  // String returns the string representation.
  8959  //
  8960  // API parameter values that are decorated as "sensitive" in the API will not
  8961  // be included in the string output. The member name will be present, but the
  8962  // value will be replaced with "sensitive".
  8963  func (s ActivateGatewayOutput) String() string {
  8964  	return awsutil.Prettify(s)
  8965  }
  8966  
  8967  // GoString returns the string representation.
  8968  //
  8969  // API parameter values that are decorated as "sensitive" in the API will not
  8970  // be included in the string output. The member name will be present, but the
  8971  // value will be replaced with "sensitive".
  8972  func (s ActivateGatewayOutput) GoString() string {
  8973  	return s.String()
  8974  }
  8975  
  8976  // SetGatewayARN sets the GatewayARN field's value.
  8977  func (s *ActivateGatewayOutput) SetGatewayARN(v string) *ActivateGatewayOutput {
  8978  	s.GatewayARN = &v
  8979  	return s
  8980  }
  8981  
  8982  type AddCacheInput struct {
  8983  	_ struct{} `type:"structure"`
  8984  
  8985  	// An array of strings that identify disks that are to be configured as working
  8986  	// storage. Each string has a minimum length of 1 and maximum length of 300.
  8987  	// You can get the disk IDs from the ListLocalDisks API.
  8988  	//
  8989  	// DiskIds is a required field
  8990  	DiskIds []*string `type:"list" required:"true"`
  8991  
  8992  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
  8993  	// to return a list of gateways for your account and Region.
  8994  	//
  8995  	// GatewayARN is a required field
  8996  	GatewayARN *string `min:"50" type:"string" required:"true"`
  8997  }
  8998  
  8999  // String returns the string representation.
  9000  //
  9001  // API parameter values that are decorated as "sensitive" in the API will not
  9002  // be included in the string output. The member name will be present, but the
  9003  // value will be replaced with "sensitive".
  9004  func (s AddCacheInput) String() string {
  9005  	return awsutil.Prettify(s)
  9006  }
  9007  
  9008  // GoString returns the string representation.
  9009  //
  9010  // API parameter values that are decorated as "sensitive" in the API will not
  9011  // be included in the string output. The member name will be present, but the
  9012  // value will be replaced with "sensitive".
  9013  func (s AddCacheInput) GoString() string {
  9014  	return s.String()
  9015  }
  9016  
  9017  // Validate inspects the fields of the type to determine if they are valid.
  9018  func (s *AddCacheInput) Validate() error {
  9019  	invalidParams := request.ErrInvalidParams{Context: "AddCacheInput"}
  9020  	if s.DiskIds == nil {
  9021  		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
  9022  	}
  9023  	if s.GatewayARN == nil {
  9024  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
  9025  	}
  9026  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
  9027  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
  9028  	}
  9029  
  9030  	if invalidParams.Len() > 0 {
  9031  		return invalidParams
  9032  	}
  9033  	return nil
  9034  }
  9035  
  9036  // SetDiskIds sets the DiskIds field's value.
  9037  func (s *AddCacheInput) SetDiskIds(v []*string) *AddCacheInput {
  9038  	s.DiskIds = v
  9039  	return s
  9040  }
  9041  
  9042  // SetGatewayARN sets the GatewayARN field's value.
  9043  func (s *AddCacheInput) SetGatewayARN(v string) *AddCacheInput {
  9044  	s.GatewayARN = &v
  9045  	return s
  9046  }
  9047  
  9048  type AddCacheOutput struct {
  9049  	_ struct{} `type:"structure"`
  9050  
  9051  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
  9052  	// to return a list of gateways for your account and Region.
  9053  	GatewayARN *string `min:"50" type:"string"`
  9054  }
  9055  
  9056  // String returns the string representation.
  9057  //
  9058  // API parameter values that are decorated as "sensitive" in the API will not
  9059  // be included in the string output. The member name will be present, but the
  9060  // value will be replaced with "sensitive".
  9061  func (s AddCacheOutput) String() string {
  9062  	return awsutil.Prettify(s)
  9063  }
  9064  
  9065  // GoString returns the string representation.
  9066  //
  9067  // API parameter values that are decorated as "sensitive" in the API will not
  9068  // be included in the string output. The member name will be present, but the
  9069  // value will be replaced with "sensitive".
  9070  func (s AddCacheOutput) GoString() string {
  9071  	return s.String()
  9072  }
  9073  
  9074  // SetGatewayARN sets the GatewayARN field's value.
  9075  func (s *AddCacheOutput) SetGatewayARN(v string) *AddCacheOutput {
  9076  	s.GatewayARN = &v
  9077  	return s
  9078  }
  9079  
  9080  // AddTagsToResourceInput
  9081  type AddTagsToResourceInput struct {
  9082  	_ struct{} `type:"structure"`
  9083  
  9084  	// The Amazon Resource Name (ARN) of the resource you want to add tags to.
  9085  	//
  9086  	// ResourceARN is a required field
  9087  	ResourceARN *string `min:"50" type:"string" required:"true"`
  9088  
  9089  	// The key-value pair that represents the tag you want to add to the resource.
  9090  	// The value can be an empty string.
  9091  	//
  9092  	// Valid characters for key and value are letters, spaces, and numbers representable
  9093  	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
  9094  	// maximum length of a tag's key is 128 characters, and the maximum length for
  9095  	// a tag's value is 256.
  9096  	//
  9097  	// Tags is a required field
  9098  	Tags []*Tag `type:"list" required:"true"`
  9099  }
  9100  
  9101  // String returns the string representation.
  9102  //
  9103  // API parameter values that are decorated as "sensitive" in the API will not
  9104  // be included in the string output. The member name will be present, but the
  9105  // value will be replaced with "sensitive".
  9106  func (s AddTagsToResourceInput) String() string {
  9107  	return awsutil.Prettify(s)
  9108  }
  9109  
  9110  // GoString returns the string representation.
  9111  //
  9112  // API parameter values that are decorated as "sensitive" in the API will not
  9113  // be included in the string output. The member name will be present, but the
  9114  // value will be replaced with "sensitive".
  9115  func (s AddTagsToResourceInput) GoString() string {
  9116  	return s.String()
  9117  }
  9118  
  9119  // Validate inspects the fields of the type to determine if they are valid.
  9120  func (s *AddTagsToResourceInput) Validate() error {
  9121  	invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"}
  9122  	if s.ResourceARN == nil {
  9123  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
  9124  	}
  9125  	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
  9126  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
  9127  	}
  9128  	if s.Tags == nil {
  9129  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  9130  	}
  9131  	if s.Tags != nil {
  9132  		for i, v := range s.Tags {
  9133  			if v == nil {
  9134  				continue
  9135  			}
  9136  			if err := v.Validate(); err != nil {
  9137  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  9138  			}
  9139  		}
  9140  	}
  9141  
  9142  	if invalidParams.Len() > 0 {
  9143  		return invalidParams
  9144  	}
  9145  	return nil
  9146  }
  9147  
  9148  // SetResourceARN sets the ResourceARN field's value.
  9149  func (s *AddTagsToResourceInput) SetResourceARN(v string) *AddTagsToResourceInput {
  9150  	s.ResourceARN = &v
  9151  	return s
  9152  }
  9153  
  9154  // SetTags sets the Tags field's value.
  9155  func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput {
  9156  	s.Tags = v
  9157  	return s
  9158  }
  9159  
  9160  // AddTagsToResourceOutput
  9161  type AddTagsToResourceOutput struct {
  9162  	_ struct{} `type:"structure"`
  9163  
  9164  	// The Amazon Resource Name (ARN) of the resource you want to add tags to.
  9165  	ResourceARN *string `min:"50" type:"string"`
  9166  }
  9167  
  9168  // String returns the string representation.
  9169  //
  9170  // API parameter values that are decorated as "sensitive" in the API will not
  9171  // be included in the string output. The member name will be present, but the
  9172  // value will be replaced with "sensitive".
  9173  func (s AddTagsToResourceOutput) String() string {
  9174  	return awsutil.Prettify(s)
  9175  }
  9176  
  9177  // GoString returns the string representation.
  9178  //
  9179  // API parameter values that are decorated as "sensitive" in the API will not
  9180  // be included in the string output. The member name will be present, but the
  9181  // value will be replaced with "sensitive".
  9182  func (s AddTagsToResourceOutput) GoString() string {
  9183  	return s.String()
  9184  }
  9185  
  9186  // SetResourceARN sets the ResourceARN field's value.
  9187  func (s *AddTagsToResourceOutput) SetResourceARN(v string) *AddTagsToResourceOutput {
  9188  	s.ResourceARN = &v
  9189  	return s
  9190  }
  9191  
  9192  type AddUploadBufferInput struct {
  9193  	_ struct{} `type:"structure"`
  9194  
  9195  	// An array of strings that identify disks that are to be configured as working
  9196  	// storage. Each string has a minimum length of 1 and maximum length of 300.
  9197  	// You can get the disk IDs from the ListLocalDisks API.
  9198  	//
  9199  	// DiskIds is a required field
  9200  	DiskIds []*string `type:"list" required:"true"`
  9201  
  9202  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
  9203  	// to return a list of gateways for your account and Region.
  9204  	//
  9205  	// GatewayARN is a required field
  9206  	GatewayARN *string `min:"50" type:"string" required:"true"`
  9207  }
  9208  
  9209  // String returns the string representation.
  9210  //
  9211  // API parameter values that are decorated as "sensitive" in the API will not
  9212  // be included in the string output. The member name will be present, but the
  9213  // value will be replaced with "sensitive".
  9214  func (s AddUploadBufferInput) String() string {
  9215  	return awsutil.Prettify(s)
  9216  }
  9217  
  9218  // GoString returns the string representation.
  9219  //
  9220  // API parameter values that are decorated as "sensitive" in the API will not
  9221  // be included in the string output. The member name will be present, but the
  9222  // value will be replaced with "sensitive".
  9223  func (s AddUploadBufferInput) GoString() string {
  9224  	return s.String()
  9225  }
  9226  
  9227  // Validate inspects the fields of the type to determine if they are valid.
  9228  func (s *AddUploadBufferInput) Validate() error {
  9229  	invalidParams := request.ErrInvalidParams{Context: "AddUploadBufferInput"}
  9230  	if s.DiskIds == nil {
  9231  		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
  9232  	}
  9233  	if s.GatewayARN == nil {
  9234  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
  9235  	}
  9236  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
  9237  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
  9238  	}
  9239  
  9240  	if invalidParams.Len() > 0 {
  9241  		return invalidParams
  9242  	}
  9243  	return nil
  9244  }
  9245  
  9246  // SetDiskIds sets the DiskIds field's value.
  9247  func (s *AddUploadBufferInput) SetDiskIds(v []*string) *AddUploadBufferInput {
  9248  	s.DiskIds = v
  9249  	return s
  9250  }
  9251  
  9252  // SetGatewayARN sets the GatewayARN field's value.
  9253  func (s *AddUploadBufferInput) SetGatewayARN(v string) *AddUploadBufferInput {
  9254  	s.GatewayARN = &v
  9255  	return s
  9256  }
  9257  
  9258  type AddUploadBufferOutput struct {
  9259  	_ struct{} `type:"structure"`
  9260  
  9261  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
  9262  	// to return a list of gateways for your account and Region.
  9263  	GatewayARN *string `min:"50" type:"string"`
  9264  }
  9265  
  9266  // String returns the string representation.
  9267  //
  9268  // API parameter values that are decorated as "sensitive" in the API will not
  9269  // be included in the string output. The member name will be present, but the
  9270  // value will be replaced with "sensitive".
  9271  func (s AddUploadBufferOutput) String() string {
  9272  	return awsutil.Prettify(s)
  9273  }
  9274  
  9275  // GoString returns the string representation.
  9276  //
  9277  // API parameter values that are decorated as "sensitive" in the API will not
  9278  // be included in the string output. The member name will be present, but the
  9279  // value will be replaced with "sensitive".
  9280  func (s AddUploadBufferOutput) GoString() string {
  9281  	return s.String()
  9282  }
  9283  
  9284  // SetGatewayARN sets the GatewayARN field's value.
  9285  func (s *AddUploadBufferOutput) SetGatewayARN(v string) *AddUploadBufferOutput {
  9286  	s.GatewayARN = &v
  9287  	return s
  9288  }
  9289  
  9290  // A JSON object containing one or more of the following fields:
  9291  //
  9292  //    * AddWorkingStorageInput$DiskIds
  9293  type AddWorkingStorageInput struct {
  9294  	_ struct{} `type:"structure"`
  9295  
  9296  	// An array of strings that identify disks that are to be configured as working
  9297  	// storage. Each string has a minimum length of 1 and maximum length of 300.
  9298  	// You can get the disk IDs from the ListLocalDisks API.
  9299  	//
  9300  	// DiskIds is a required field
  9301  	DiskIds []*string `type:"list" required:"true"`
  9302  
  9303  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
  9304  	// to return a list of gateways for your account and Region.
  9305  	//
  9306  	// GatewayARN is a required field
  9307  	GatewayARN *string `min:"50" type:"string" required:"true"`
  9308  }
  9309  
  9310  // String returns the string representation.
  9311  //
  9312  // API parameter values that are decorated as "sensitive" in the API will not
  9313  // be included in the string output. The member name will be present, but the
  9314  // value will be replaced with "sensitive".
  9315  func (s AddWorkingStorageInput) String() string {
  9316  	return awsutil.Prettify(s)
  9317  }
  9318  
  9319  // GoString returns the string representation.
  9320  //
  9321  // API parameter values that are decorated as "sensitive" in the API will not
  9322  // be included in the string output. The member name will be present, but the
  9323  // value will be replaced with "sensitive".
  9324  func (s AddWorkingStorageInput) GoString() string {
  9325  	return s.String()
  9326  }
  9327  
  9328  // Validate inspects the fields of the type to determine if they are valid.
  9329  func (s *AddWorkingStorageInput) Validate() error {
  9330  	invalidParams := request.ErrInvalidParams{Context: "AddWorkingStorageInput"}
  9331  	if s.DiskIds == nil {
  9332  		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
  9333  	}
  9334  	if s.GatewayARN == nil {
  9335  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
  9336  	}
  9337  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
  9338  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
  9339  	}
  9340  
  9341  	if invalidParams.Len() > 0 {
  9342  		return invalidParams
  9343  	}
  9344  	return nil
  9345  }
  9346  
  9347  // SetDiskIds sets the DiskIds field's value.
  9348  func (s *AddWorkingStorageInput) SetDiskIds(v []*string) *AddWorkingStorageInput {
  9349  	s.DiskIds = v
  9350  	return s
  9351  }
  9352  
  9353  // SetGatewayARN sets the GatewayARN field's value.
  9354  func (s *AddWorkingStorageInput) SetGatewayARN(v string) *AddWorkingStorageInput {
  9355  	s.GatewayARN = &v
  9356  	return s
  9357  }
  9358  
  9359  // A JSON object containing the Amazon Resource Name (ARN) of the gateway for
  9360  // which working storage was configured.
  9361  type AddWorkingStorageOutput struct {
  9362  	_ struct{} `type:"structure"`
  9363  
  9364  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
  9365  	// to return a list of gateways for your account and Region.
  9366  	GatewayARN *string `min:"50" type:"string"`
  9367  }
  9368  
  9369  // String returns the string representation.
  9370  //
  9371  // API parameter values that are decorated as "sensitive" in the API will not
  9372  // be included in the string output. The member name will be present, but the
  9373  // value will be replaced with "sensitive".
  9374  func (s AddWorkingStorageOutput) String() string {
  9375  	return awsutil.Prettify(s)
  9376  }
  9377  
  9378  // GoString returns the string representation.
  9379  //
  9380  // API parameter values that are decorated as "sensitive" in the API will not
  9381  // be included in the string output. The member name will be present, but the
  9382  // value will be replaced with "sensitive".
  9383  func (s AddWorkingStorageOutput) GoString() string {
  9384  	return s.String()
  9385  }
  9386  
  9387  // SetGatewayARN sets the GatewayARN field's value.
  9388  func (s *AddWorkingStorageOutput) SetGatewayARN(v string) *AddWorkingStorageOutput {
  9389  	s.GatewayARN = &v
  9390  	return s
  9391  }
  9392  
  9393  type AssignTapePoolInput struct {
  9394  	_ struct{} `type:"structure"`
  9395  
  9396  	// Set permissions to bypass governance retention. If the lock type of the archived
  9397  	// tape is Governance, the tape's archived age is not older than RetentionLockInDays,
  9398  	// and the user does not already have BypassGovernanceRetention, setting this
  9399  	// to TRUE enables the user to bypass the retention lock. This parameter is
  9400  	// set to true by default for calls from the console.
  9401  	//
  9402  	// Valid values: TRUE | FALSE
  9403  	BypassGovernanceRetention *bool `type:"boolean"`
  9404  
  9405  	// The ID of the pool that you want to add your tape to for archiving. The tape
  9406  	// in this pool is archived in the S3 storage class that is associated with
  9407  	// the pool. When you use your backup application to eject the tape, the tape
  9408  	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
  9409  	// Archive) that corresponds to the pool.
  9410  	//
  9411  	// Valid Values: GLACIER | DEEP_ARCHIVE
  9412  	//
  9413  	// PoolId is a required field
  9414  	PoolId *string `min:"1" type:"string" required:"true"`
  9415  
  9416  	// The unique Amazon Resource Name (ARN) of the virtual tape that you want to
  9417  	// add to the tape pool.
  9418  	//
  9419  	// TapeARN is a required field
  9420  	TapeARN *string `min:"50" type:"string" required:"true"`
  9421  }
  9422  
  9423  // String returns the string representation.
  9424  //
  9425  // API parameter values that are decorated as "sensitive" in the API will not
  9426  // be included in the string output. The member name will be present, but the
  9427  // value will be replaced with "sensitive".
  9428  func (s AssignTapePoolInput) String() string {
  9429  	return awsutil.Prettify(s)
  9430  }
  9431  
  9432  // GoString returns the string representation.
  9433  //
  9434  // API parameter values that are decorated as "sensitive" in the API will not
  9435  // be included in the string output. The member name will be present, but the
  9436  // value will be replaced with "sensitive".
  9437  func (s AssignTapePoolInput) GoString() string {
  9438  	return s.String()
  9439  }
  9440  
  9441  // Validate inspects the fields of the type to determine if they are valid.
  9442  func (s *AssignTapePoolInput) Validate() error {
  9443  	invalidParams := request.ErrInvalidParams{Context: "AssignTapePoolInput"}
  9444  	if s.PoolId == nil {
  9445  		invalidParams.Add(request.NewErrParamRequired("PoolId"))
  9446  	}
  9447  	if s.PoolId != nil && len(*s.PoolId) < 1 {
  9448  		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
  9449  	}
  9450  	if s.TapeARN == nil {
  9451  		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
  9452  	}
  9453  	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
  9454  		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
  9455  	}
  9456  
  9457  	if invalidParams.Len() > 0 {
  9458  		return invalidParams
  9459  	}
  9460  	return nil
  9461  }
  9462  
  9463  // SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
  9464  func (s *AssignTapePoolInput) SetBypassGovernanceRetention(v bool) *AssignTapePoolInput {
  9465  	s.BypassGovernanceRetention = &v
  9466  	return s
  9467  }
  9468  
  9469  // SetPoolId sets the PoolId field's value.
  9470  func (s *AssignTapePoolInput) SetPoolId(v string) *AssignTapePoolInput {
  9471  	s.PoolId = &v
  9472  	return s
  9473  }
  9474  
  9475  // SetTapeARN sets the TapeARN field's value.
  9476  func (s *AssignTapePoolInput) SetTapeARN(v string) *AssignTapePoolInput {
  9477  	s.TapeARN = &v
  9478  	return s
  9479  }
  9480  
  9481  type AssignTapePoolOutput struct {
  9482  	_ struct{} `type:"structure"`
  9483  
  9484  	// The unique Amazon Resource Names (ARN) of the virtual tape that was added
  9485  	// to the tape pool.
  9486  	TapeARN *string `min:"50" type:"string"`
  9487  }
  9488  
  9489  // String returns the string representation.
  9490  //
  9491  // API parameter values that are decorated as "sensitive" in the API will not
  9492  // be included in the string output. The member name will be present, but the
  9493  // value will be replaced with "sensitive".
  9494  func (s AssignTapePoolOutput) String() string {
  9495  	return awsutil.Prettify(s)
  9496  }
  9497  
  9498  // GoString returns the string representation.
  9499  //
  9500  // API parameter values that are decorated as "sensitive" in the API will not
  9501  // be included in the string output. The member name will be present, but the
  9502  // value will be replaced with "sensitive".
  9503  func (s AssignTapePoolOutput) GoString() string {
  9504  	return s.String()
  9505  }
  9506  
  9507  // SetTapeARN sets the TapeARN field's value.
  9508  func (s *AssignTapePoolOutput) SetTapeARN(v string) *AssignTapePoolOutput {
  9509  	s.TapeARN = &v
  9510  	return s
  9511  }
  9512  
  9513  type AssociateFileSystemInput struct {
  9514  	_ struct{} `type:"structure"`
  9515  
  9516  	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
  9517  	AuditDestinationARN *string `type:"string"`
  9518  
  9519  	// The refresh cache information for the file share or FSx file systems.
  9520  	CacheAttributes *CacheAttributes `type:"structure"`
  9521  
  9522  	// A unique string value that you supply that is used by the FSx File Gateway
  9523  	// to ensure idempotent file system association creation.
  9524  	//
  9525  	// ClientToken is a required field
  9526  	ClientToken *string `min:"5" type:"string" required:"true"`
  9527  
  9528  	// Specifies the network configuration information for the gateway associated
  9529  	// with the Amazon FSx file system.
  9530  	//
  9531  	// If multiple file systems are associated with this gateway, this parameter's
  9532  	// IpAddresses field is required.
  9533  	EndpointNetworkConfiguration *EndpointNetworkConfiguration `type:"structure"`
  9534  
  9535  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
  9536  	// to return a list of gateways for your account and Region.
  9537  	//
  9538  	// GatewayARN is a required field
  9539  	GatewayARN *string `min:"50" type:"string" required:"true"`
  9540  
  9541  	// The Amazon Resource Name (ARN) of the Amazon FSx file system to associate
  9542  	// with the FSx File Gateway.
  9543  	//
  9544  	// LocationARN is a required field
  9545  	LocationARN *string `min:"8" type:"string" required:"true"`
  9546  
  9547  	// The password of the user credential.
  9548  	//
  9549  	// Password is a sensitive parameter and its value will be
  9550  	// replaced with "sensitive" in string returned by AssociateFileSystemInput's
  9551  	// String and GoString methods.
  9552  	//
  9553  	// Password is a required field
  9554  	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
  9555  
  9556  	// A list of up to 50 tags that can be assigned to the file system association.
  9557  	// Each tag is a key-value pair.
  9558  	Tags []*Tag `type:"list"`
  9559  
  9560  	// The user name of the user credential that has permission to access the root
  9561  	// share D$ of the Amazon FSx file system. The user account must belong to the
  9562  	// Amazon FSx delegated admin user group.
  9563  	//
  9564  	// UserName is a required field
  9565  	UserName *string `min:"1" type:"string" required:"true"`
  9566  }
  9567  
  9568  // String returns the string representation.
  9569  //
  9570  // API parameter values that are decorated as "sensitive" in the API will not
  9571  // be included in the string output. The member name will be present, but the
  9572  // value will be replaced with "sensitive".
  9573  func (s AssociateFileSystemInput) String() string {
  9574  	return awsutil.Prettify(s)
  9575  }
  9576  
  9577  // GoString returns the string representation.
  9578  //
  9579  // API parameter values that are decorated as "sensitive" in the API will not
  9580  // be included in the string output. The member name will be present, but the
  9581  // value will be replaced with "sensitive".
  9582  func (s AssociateFileSystemInput) GoString() string {
  9583  	return s.String()
  9584  }
  9585  
  9586  // Validate inspects the fields of the type to determine if they are valid.
  9587  func (s *AssociateFileSystemInput) Validate() error {
  9588  	invalidParams := request.ErrInvalidParams{Context: "AssociateFileSystemInput"}
  9589  	if s.ClientToken == nil {
  9590  		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
  9591  	}
  9592  	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
  9593  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
  9594  	}
  9595  	if s.GatewayARN == nil {
  9596  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
  9597  	}
  9598  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
  9599  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
  9600  	}
  9601  	if s.LocationARN == nil {
  9602  		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
  9603  	}
  9604  	if s.LocationARN != nil && len(*s.LocationARN) < 8 {
  9605  		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 8))
  9606  	}
  9607  	if s.Password == nil {
  9608  		invalidParams.Add(request.NewErrParamRequired("Password"))
  9609  	}
  9610  	if s.Password != nil && len(*s.Password) < 1 {
  9611  		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
  9612  	}
  9613  	if s.UserName == nil {
  9614  		invalidParams.Add(request.NewErrParamRequired("UserName"))
  9615  	}
  9616  	if s.UserName != nil && len(*s.UserName) < 1 {
  9617  		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
  9618  	}
  9619  	if s.Tags != nil {
  9620  		for i, v := range s.Tags {
  9621  			if v == nil {
  9622  				continue
  9623  			}
  9624  			if err := v.Validate(); err != nil {
  9625  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  9626  			}
  9627  		}
  9628  	}
  9629  
  9630  	if invalidParams.Len() > 0 {
  9631  		return invalidParams
  9632  	}
  9633  	return nil
  9634  }
  9635  
  9636  // SetAuditDestinationARN sets the AuditDestinationARN field's value.
  9637  func (s *AssociateFileSystemInput) SetAuditDestinationARN(v string) *AssociateFileSystemInput {
  9638  	s.AuditDestinationARN = &v
  9639  	return s
  9640  }
  9641  
  9642  // SetCacheAttributes sets the CacheAttributes field's value.
  9643  func (s *AssociateFileSystemInput) SetCacheAttributes(v *CacheAttributes) *AssociateFileSystemInput {
  9644  	s.CacheAttributes = v
  9645  	return s
  9646  }
  9647  
  9648  // SetClientToken sets the ClientToken field's value.
  9649  func (s *AssociateFileSystemInput) SetClientToken(v string) *AssociateFileSystemInput {
  9650  	s.ClientToken = &v
  9651  	return s
  9652  }
  9653  
  9654  // SetEndpointNetworkConfiguration sets the EndpointNetworkConfiguration field's value.
  9655  func (s *AssociateFileSystemInput) SetEndpointNetworkConfiguration(v *EndpointNetworkConfiguration) *AssociateFileSystemInput {
  9656  	s.EndpointNetworkConfiguration = v
  9657  	return s
  9658  }
  9659  
  9660  // SetGatewayARN sets the GatewayARN field's value.
  9661  func (s *AssociateFileSystemInput) SetGatewayARN(v string) *AssociateFileSystemInput {
  9662  	s.GatewayARN = &v
  9663  	return s
  9664  }
  9665  
  9666  // SetLocationARN sets the LocationARN field's value.
  9667  func (s *AssociateFileSystemInput) SetLocationARN(v string) *AssociateFileSystemInput {
  9668  	s.LocationARN = &v
  9669  	return s
  9670  }
  9671  
  9672  // SetPassword sets the Password field's value.
  9673  func (s *AssociateFileSystemInput) SetPassword(v string) *AssociateFileSystemInput {
  9674  	s.Password = &v
  9675  	return s
  9676  }
  9677  
  9678  // SetTags sets the Tags field's value.
  9679  func (s *AssociateFileSystemInput) SetTags(v []*Tag) *AssociateFileSystemInput {
  9680  	s.Tags = v
  9681  	return s
  9682  }
  9683  
  9684  // SetUserName sets the UserName field's value.
  9685  func (s *AssociateFileSystemInput) SetUserName(v string) *AssociateFileSystemInput {
  9686  	s.UserName = &v
  9687  	return s
  9688  }
  9689  
  9690  type AssociateFileSystemOutput struct {
  9691  	_ struct{} `type:"structure"`
  9692  
  9693  	// The ARN of the newly created file system association.
  9694  	FileSystemAssociationARN *string `min:"50" type:"string"`
  9695  }
  9696  
  9697  // String returns the string representation.
  9698  //
  9699  // API parameter values that are decorated as "sensitive" in the API will not
  9700  // be included in the string output. The member name will be present, but the
  9701  // value will be replaced with "sensitive".
  9702  func (s AssociateFileSystemOutput) String() string {
  9703  	return awsutil.Prettify(s)
  9704  }
  9705  
  9706  // GoString returns the string representation.
  9707  //
  9708  // API parameter values that are decorated as "sensitive" in the API will not
  9709  // be included in the string output. The member name will be present, but the
  9710  // value will be replaced with "sensitive".
  9711  func (s AssociateFileSystemOutput) GoString() string {
  9712  	return s.String()
  9713  }
  9714  
  9715  // SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
  9716  func (s *AssociateFileSystemOutput) SetFileSystemAssociationARN(v string) *AssociateFileSystemOutput {
  9717  	s.FileSystemAssociationARN = &v
  9718  	return s
  9719  }
  9720  
  9721  // AttachVolumeInput
  9722  type AttachVolumeInput struct {
  9723  	_ struct{} `type:"structure"`
  9724  
  9725  	// The unique device ID or other distinguishing data that identifies the local
  9726  	// disk used to create the volume. This value is only required when you are
  9727  	// attaching a stored volume.
  9728  	DiskId *string `min:"1" type:"string"`
  9729  
  9730  	// The Amazon Resource Name (ARN) of the gateway that you want to attach the
  9731  	// volume to.
  9732  	//
  9733  	// GatewayARN is a required field
  9734  	GatewayARN *string `min:"50" type:"string" required:"true"`
  9735  
  9736  	// The network interface of the gateway on which to expose the iSCSI target.
  9737  	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
  9738  	// list of the network interfaces available on a gateway.
  9739  	//
  9740  	// Valid Values: A valid IP address.
  9741  	//
  9742  	// NetworkInterfaceId is a required field
  9743  	NetworkInterfaceId *string `type:"string" required:"true"`
  9744  
  9745  	// The name of the iSCSI target used by an initiator to connect to a volume
  9746  	// and used as a suffix for the target ARN. For example, specifying TargetName
  9747  	// as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
  9748  	// The target name must be unique across all volumes on a gateway.
  9749  	//
  9750  	// If you don't specify a value, Storage Gateway uses the value that was previously
  9751  	// used for this volume as the new target name.
  9752  	TargetName *string `min:"1" type:"string"`
  9753  
  9754  	// The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.
  9755  	//
  9756  	// VolumeARN is a required field
  9757  	VolumeARN *string `min:"50" type:"string" required:"true"`
  9758  }
  9759  
  9760  // String returns the string representation.
  9761  //
  9762  // API parameter values that are decorated as "sensitive" in the API will not
  9763  // be included in the string output. The member name will be present, but the
  9764  // value will be replaced with "sensitive".
  9765  func (s AttachVolumeInput) String() string {
  9766  	return awsutil.Prettify(s)
  9767  }
  9768  
  9769  // GoString returns the string representation.
  9770  //
  9771  // API parameter values that are decorated as "sensitive" in the API will not
  9772  // be included in the string output. The member name will be present, but the
  9773  // value will be replaced with "sensitive".
  9774  func (s AttachVolumeInput) GoString() string {
  9775  	return s.String()
  9776  }
  9777  
  9778  // Validate inspects the fields of the type to determine if they are valid.
  9779  func (s *AttachVolumeInput) Validate() error {
  9780  	invalidParams := request.ErrInvalidParams{Context: "AttachVolumeInput"}
  9781  	if s.DiskId != nil && len(*s.DiskId) < 1 {
  9782  		invalidParams.Add(request.NewErrParamMinLen("DiskId", 1))
  9783  	}
  9784  	if s.GatewayARN == nil {
  9785  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
  9786  	}
  9787  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
  9788  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
  9789  	}
  9790  	if s.NetworkInterfaceId == nil {
  9791  		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
  9792  	}
  9793  	if s.TargetName != nil && len(*s.TargetName) < 1 {
  9794  		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
  9795  	}
  9796  	if s.VolumeARN == nil {
  9797  		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
  9798  	}
  9799  	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
  9800  		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
  9801  	}
  9802  
  9803  	if invalidParams.Len() > 0 {
  9804  		return invalidParams
  9805  	}
  9806  	return nil
  9807  }
  9808  
  9809  // SetDiskId sets the DiskId field's value.
  9810  func (s *AttachVolumeInput) SetDiskId(v string) *AttachVolumeInput {
  9811  	s.DiskId = &v
  9812  	return s
  9813  }
  9814  
  9815  // SetGatewayARN sets the GatewayARN field's value.
  9816  func (s *AttachVolumeInput) SetGatewayARN(v string) *AttachVolumeInput {
  9817  	s.GatewayARN = &v
  9818  	return s
  9819  }
  9820  
  9821  // SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
  9822  func (s *AttachVolumeInput) SetNetworkInterfaceId(v string) *AttachVolumeInput {
  9823  	s.NetworkInterfaceId = &v
  9824  	return s
  9825  }
  9826  
  9827  // SetTargetName sets the TargetName field's value.
  9828  func (s *AttachVolumeInput) SetTargetName(v string) *AttachVolumeInput {
  9829  	s.TargetName = &v
  9830  	return s
  9831  }
  9832  
  9833  // SetVolumeARN sets the VolumeARN field's value.
  9834  func (s *AttachVolumeInput) SetVolumeARN(v string) *AttachVolumeInput {
  9835  	s.VolumeARN = &v
  9836  	return s
  9837  }
  9838  
  9839  // AttachVolumeOutput
  9840  type AttachVolumeOutput struct {
  9841  	_ struct{} `type:"structure"`
  9842  
  9843  	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
  9844  	// name for the initiator that was used to connect to the target.
  9845  	TargetARN *string `min:"50" type:"string"`
  9846  
  9847  	// The Amazon Resource Name (ARN) of the volume that was attached to the gateway.
  9848  	VolumeARN *string `min:"50" type:"string"`
  9849  }
  9850  
  9851  // String returns the string representation.
  9852  //
  9853  // API parameter values that are decorated as "sensitive" in the API will not
  9854  // be included in the string output. The member name will be present, but the
  9855  // value will be replaced with "sensitive".
  9856  func (s AttachVolumeOutput) String() string {
  9857  	return awsutil.Prettify(s)
  9858  }
  9859  
  9860  // GoString returns the string representation.
  9861  //
  9862  // API parameter values that are decorated as "sensitive" in the API will not
  9863  // be included in the string output. The member name will be present, but the
  9864  // value will be replaced with "sensitive".
  9865  func (s AttachVolumeOutput) GoString() string {
  9866  	return s.String()
  9867  }
  9868  
  9869  // SetTargetARN sets the TargetARN field's value.
  9870  func (s *AttachVolumeOutput) SetTargetARN(v string) *AttachVolumeOutput {
  9871  	s.TargetARN = &v
  9872  	return s
  9873  }
  9874  
  9875  // SetVolumeARN sets the VolumeARN field's value.
  9876  func (s *AttachVolumeOutput) SetVolumeARN(v string) *AttachVolumeOutput {
  9877  	s.VolumeARN = &v
  9878  	return s
  9879  }
  9880  
  9881  // Information about the gateway's automatic tape creation policies, including
  9882  // the automatic tape creation rules and the gateway that is using the policies.
  9883  type AutomaticTapeCreationPolicyInfo struct {
  9884  	_ struct{} `type:"structure"`
  9885  
  9886  	// An automatic tape creation policy consists of a list of automatic tape creation
  9887  	// rules. This returns the rules that determine when and how to automatically
  9888  	// create new tapes.
  9889  	AutomaticTapeCreationRules []*AutomaticTapeCreationRule `min:"1" type:"list"`
  9890  
  9891  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
  9892  	// to return a list of gateways for your account and Region.
  9893  	GatewayARN *string `min:"50" type:"string"`
  9894  }
  9895  
  9896  // String returns the string representation.
  9897  //
  9898  // API parameter values that are decorated as "sensitive" in the API will not
  9899  // be included in the string output. The member name will be present, but the
  9900  // value will be replaced with "sensitive".
  9901  func (s AutomaticTapeCreationPolicyInfo) String() string {
  9902  	return awsutil.Prettify(s)
  9903  }
  9904  
  9905  // GoString returns the string representation.
  9906  //
  9907  // API parameter values that are decorated as "sensitive" in the API will not
  9908  // be included in the string output. The member name will be present, but the
  9909  // value will be replaced with "sensitive".
  9910  func (s AutomaticTapeCreationPolicyInfo) GoString() string {
  9911  	return s.String()
  9912  }
  9913  
  9914  // SetAutomaticTapeCreationRules sets the AutomaticTapeCreationRules field's value.
  9915  func (s *AutomaticTapeCreationPolicyInfo) SetAutomaticTapeCreationRules(v []*AutomaticTapeCreationRule) *AutomaticTapeCreationPolicyInfo {
  9916  	s.AutomaticTapeCreationRules = v
  9917  	return s
  9918  }
  9919  
  9920  // SetGatewayARN sets the GatewayARN field's value.
  9921  func (s *AutomaticTapeCreationPolicyInfo) SetGatewayARN(v string) *AutomaticTapeCreationPolicyInfo {
  9922  	s.GatewayARN = &v
  9923  	return s
  9924  }
  9925  
  9926  // An automatic tape creation policy consists of automatic tape creation rules
  9927  // where each rule defines when and how to create new tapes. For more information
  9928  // about automatic tape creation, see Creating Tapes Automatically (https://docs.aws.amazon.com/storagegateway/latest/userguide/GettingStartedCreateTapes.html#CreateTapesAutomatically).
  9929  type AutomaticTapeCreationRule struct {
  9930  	_ struct{} `type:"structure"`
  9931  
  9932  	// The minimum number of available virtual tapes that the gateway maintains
  9933  	// at all times. If the number of tapes on the gateway goes below this value,
  9934  	// the gateway creates as many new tapes as are needed to have MinimumNumTapes
  9935  	// on the gateway. For more information about automatic tape creation, see Creating
  9936  	// Tapes Automatically (https://docs.aws.amazon.com/storagegateway/latest/userguide/GettingStartedCreateTapes.html#CreateTapesAutomatically).
  9937  	//
  9938  	// MinimumNumTapes is a required field
  9939  	MinimumNumTapes *int64 `min:"1" type:"integer" required:"true"`
  9940  
  9941  	// The ID of the pool that you want to add your tape to for archiving. The tape
  9942  	// in this pool is archived in the Amazon S3 storage class that is associated
  9943  	// with the pool. When you use your backup application to eject the tape, the
  9944  	// tape is archived directly into the storage class (S3 Glacier or S3 Glacier
  9945  	// Deep Archive) that corresponds to the pool.
  9946  	//
  9947  	// Valid Values: GLACIER | DEEP_ARCHIVE
  9948  	//
  9949  	// PoolId is a required field
  9950  	PoolId *string `min:"1" type:"string" required:"true"`
  9951  
  9952  	// A prefix that you append to the barcode of the virtual tape that you are
  9953  	// creating. This prefix makes the barcode unique.
  9954  	//
  9955  	// The prefix must be 1-4 characters in length and must be one of the uppercase
  9956  	// letters from A to Z.
  9957  	//
  9958  	// TapeBarcodePrefix is a required field
  9959  	TapeBarcodePrefix *string `min:"1" type:"string" required:"true"`
  9960  
  9961  	// The size, in bytes, of the virtual tape capacity.
  9962  	//
  9963  	// TapeSizeInBytes is a required field
  9964  	TapeSizeInBytes *int64 `type:"long" required:"true"`
  9965  
  9966  	// Set to true to indicate that tapes are to be archived as write-once-read-many
  9967  	// (WORM). Set to false when WORM is not enabled for tapes.
  9968  	Worm *bool `type:"boolean"`
  9969  }
  9970  
  9971  // String returns the string representation.
  9972  //
  9973  // API parameter values that are decorated as "sensitive" in the API will not
  9974  // be included in the string output. The member name will be present, but the
  9975  // value will be replaced with "sensitive".
  9976  func (s AutomaticTapeCreationRule) String() string {
  9977  	return awsutil.Prettify(s)
  9978  }
  9979  
  9980  // GoString returns the string representation.
  9981  //
  9982  // API parameter values that are decorated as "sensitive" in the API will not
  9983  // be included in the string output. The member name will be present, but the
  9984  // value will be replaced with "sensitive".
  9985  func (s AutomaticTapeCreationRule) GoString() string {
  9986  	return s.String()
  9987  }
  9988  
  9989  // Validate inspects the fields of the type to determine if they are valid.
  9990  func (s *AutomaticTapeCreationRule) Validate() error {
  9991  	invalidParams := request.ErrInvalidParams{Context: "AutomaticTapeCreationRule"}
  9992  	if s.MinimumNumTapes == nil {
  9993  		invalidParams.Add(request.NewErrParamRequired("MinimumNumTapes"))
  9994  	}
  9995  	if s.MinimumNumTapes != nil && *s.MinimumNumTapes < 1 {
  9996  		invalidParams.Add(request.NewErrParamMinValue("MinimumNumTapes", 1))
  9997  	}
  9998  	if s.PoolId == nil {
  9999  		invalidParams.Add(request.NewErrParamRequired("PoolId"))
 10000  	}
 10001  	if s.PoolId != nil && len(*s.PoolId) < 1 {
 10002  		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
 10003  	}
 10004  	if s.TapeBarcodePrefix == nil {
 10005  		invalidParams.Add(request.NewErrParamRequired("TapeBarcodePrefix"))
 10006  	}
 10007  	if s.TapeBarcodePrefix != nil && len(*s.TapeBarcodePrefix) < 1 {
 10008  		invalidParams.Add(request.NewErrParamMinLen("TapeBarcodePrefix", 1))
 10009  	}
 10010  	if s.TapeSizeInBytes == nil {
 10011  		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
 10012  	}
 10013  
 10014  	if invalidParams.Len() > 0 {
 10015  		return invalidParams
 10016  	}
 10017  	return nil
 10018  }
 10019  
 10020  // SetMinimumNumTapes sets the MinimumNumTapes field's value.
 10021  func (s *AutomaticTapeCreationRule) SetMinimumNumTapes(v int64) *AutomaticTapeCreationRule {
 10022  	s.MinimumNumTapes = &v
 10023  	return s
 10024  }
 10025  
 10026  // SetPoolId sets the PoolId field's value.
 10027  func (s *AutomaticTapeCreationRule) SetPoolId(v string) *AutomaticTapeCreationRule {
 10028  	s.PoolId = &v
 10029  	return s
 10030  }
 10031  
 10032  // SetTapeBarcodePrefix sets the TapeBarcodePrefix field's value.
 10033  func (s *AutomaticTapeCreationRule) SetTapeBarcodePrefix(v string) *AutomaticTapeCreationRule {
 10034  	s.TapeBarcodePrefix = &v
 10035  	return s
 10036  }
 10037  
 10038  // SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
 10039  func (s *AutomaticTapeCreationRule) SetTapeSizeInBytes(v int64) *AutomaticTapeCreationRule {
 10040  	s.TapeSizeInBytes = &v
 10041  	return s
 10042  }
 10043  
 10044  // SetWorm sets the Worm field's value.
 10045  func (s *AutomaticTapeCreationRule) SetWorm(v bool) *AutomaticTapeCreationRule {
 10046  	s.Worm = &v
 10047  	return s
 10048  }
 10049  
 10050  // Describes a bandwidth rate limit interval for a gateway. A bandwidth rate
 10051  // limit schedule consists of one or more bandwidth rate limit intervals. A
 10052  // bandwidth rate limit interval defines a period of time on one or more days
 10053  // of the week, during which bandwidth rate limits are specified for uploading,
 10054  // downloading, or both.
 10055  type BandwidthRateLimitInterval struct {
 10056  	_ struct{} `type:"structure"`
 10057  
 10058  	// The average download rate limit component of the bandwidth rate limit interval,
 10059  	// in bits per second. This field does not appear in the response if the download
 10060  	// rate limit is not set.
 10061  	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
 10062  
 10063  	// The average upload rate limit component of the bandwidth rate limit interval,
 10064  	// in bits per second. This field does not appear in the response if the upload
 10065  	// rate limit is not set.
 10066  	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
 10067  
 10068  	// The days of the week component of the bandwidth rate limit interval, represented
 10069  	// as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 represents
 10070  	// Saturday.
 10071  	//
 10072  	// DaysOfWeek is a required field
 10073  	DaysOfWeek []*int64 `min:"1" type:"list" required:"true"`
 10074  
 10075  	// The hour of the day to end the bandwidth rate limit interval.
 10076  	//
 10077  	// EndHourOfDay is a required field
 10078  	EndHourOfDay *int64 `type:"integer" required:"true"`
 10079  
 10080  	// The minute of the hour to end the bandwidth rate limit interval.
 10081  	//
 10082  	// The bandwidth rate limit interval ends at the end of the minute. To end an
 10083  	// interval at the end of an hour, use the value 59.
 10084  	//
 10085  	// EndMinuteOfHour is a required field
 10086  	EndMinuteOfHour *int64 `type:"integer" required:"true"`
 10087  
 10088  	// The hour of the day to start the bandwidth rate limit interval.
 10089  	//
 10090  	// StartHourOfDay is a required field
 10091  	StartHourOfDay *int64 `type:"integer" required:"true"`
 10092  
 10093  	// The minute of the hour to start the bandwidth rate limit interval. The interval
 10094  	// begins at the start of that minute. To begin an interval exactly at the start
 10095  	// of the hour, use the value 0.
 10096  	//
 10097  	// StartMinuteOfHour is a required field
 10098  	StartMinuteOfHour *int64 `type:"integer" required:"true"`
 10099  }
 10100  
 10101  // String returns the string representation.
 10102  //
 10103  // API parameter values that are decorated as "sensitive" in the API will not
 10104  // be included in the string output. The member name will be present, but the
 10105  // value will be replaced with "sensitive".
 10106  func (s BandwidthRateLimitInterval) String() string {
 10107  	return awsutil.Prettify(s)
 10108  }
 10109  
 10110  // GoString returns the string representation.
 10111  //
 10112  // API parameter values that are decorated as "sensitive" in the API will not
 10113  // be included in the string output. The member name will be present, but the
 10114  // value will be replaced with "sensitive".
 10115  func (s BandwidthRateLimitInterval) GoString() string {
 10116  	return s.String()
 10117  }
 10118  
 10119  // Validate inspects the fields of the type to determine if they are valid.
 10120  func (s *BandwidthRateLimitInterval) Validate() error {
 10121  	invalidParams := request.ErrInvalidParams{Context: "BandwidthRateLimitInterval"}
 10122  	if s.AverageDownloadRateLimitInBitsPerSec != nil && *s.AverageDownloadRateLimitInBitsPerSec < 102400 {
 10123  		invalidParams.Add(request.NewErrParamMinValue("AverageDownloadRateLimitInBitsPerSec", 102400))
 10124  	}
 10125  	if s.AverageUploadRateLimitInBitsPerSec != nil && *s.AverageUploadRateLimitInBitsPerSec < 51200 {
 10126  		invalidParams.Add(request.NewErrParamMinValue("AverageUploadRateLimitInBitsPerSec", 51200))
 10127  	}
 10128  	if s.DaysOfWeek == nil {
 10129  		invalidParams.Add(request.NewErrParamRequired("DaysOfWeek"))
 10130  	}
 10131  	if s.DaysOfWeek != nil && len(s.DaysOfWeek) < 1 {
 10132  		invalidParams.Add(request.NewErrParamMinLen("DaysOfWeek", 1))
 10133  	}
 10134  	if s.EndHourOfDay == nil {
 10135  		invalidParams.Add(request.NewErrParamRequired("EndHourOfDay"))
 10136  	}
 10137  	if s.EndMinuteOfHour == nil {
 10138  		invalidParams.Add(request.NewErrParamRequired("EndMinuteOfHour"))
 10139  	}
 10140  	if s.StartHourOfDay == nil {
 10141  		invalidParams.Add(request.NewErrParamRequired("StartHourOfDay"))
 10142  	}
 10143  	if s.StartMinuteOfHour == nil {
 10144  		invalidParams.Add(request.NewErrParamRequired("StartMinuteOfHour"))
 10145  	}
 10146  
 10147  	if invalidParams.Len() > 0 {
 10148  		return invalidParams
 10149  	}
 10150  	return nil
 10151  }
 10152  
 10153  // SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
 10154  func (s *BandwidthRateLimitInterval) SetAverageDownloadRateLimitInBitsPerSec(v int64) *BandwidthRateLimitInterval {
 10155  	s.AverageDownloadRateLimitInBitsPerSec = &v
 10156  	return s
 10157  }
 10158  
 10159  // SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
 10160  func (s *BandwidthRateLimitInterval) SetAverageUploadRateLimitInBitsPerSec(v int64) *BandwidthRateLimitInterval {
 10161  	s.AverageUploadRateLimitInBitsPerSec = &v
 10162  	return s
 10163  }
 10164  
 10165  // SetDaysOfWeek sets the DaysOfWeek field's value.
 10166  func (s *BandwidthRateLimitInterval) SetDaysOfWeek(v []*int64) *BandwidthRateLimitInterval {
 10167  	s.DaysOfWeek = v
 10168  	return s
 10169  }
 10170  
 10171  // SetEndHourOfDay sets the EndHourOfDay field's value.
 10172  func (s *BandwidthRateLimitInterval) SetEndHourOfDay(v int64) *BandwidthRateLimitInterval {
 10173  	s.EndHourOfDay = &v
 10174  	return s
 10175  }
 10176  
 10177  // SetEndMinuteOfHour sets the EndMinuteOfHour field's value.
 10178  func (s *BandwidthRateLimitInterval) SetEndMinuteOfHour(v int64) *BandwidthRateLimitInterval {
 10179  	s.EndMinuteOfHour = &v
 10180  	return s
 10181  }
 10182  
 10183  // SetStartHourOfDay sets the StartHourOfDay field's value.
 10184  func (s *BandwidthRateLimitInterval) SetStartHourOfDay(v int64) *BandwidthRateLimitInterval {
 10185  	s.StartHourOfDay = &v
 10186  	return s
 10187  }
 10188  
 10189  // SetStartMinuteOfHour sets the StartMinuteOfHour field's value.
 10190  func (s *BandwidthRateLimitInterval) SetStartMinuteOfHour(v int64) *BandwidthRateLimitInterval {
 10191  	s.StartMinuteOfHour = &v
 10192  	return s
 10193  }
 10194  
 10195  // The refresh cache information for the file share or FSx file systems.
 10196  type CacheAttributes struct {
 10197  	_ struct{} `type:"structure"`
 10198  
 10199  	// Refreshes a file share's cache by using Time To Live (TTL). TTL is the length
 10200  	// of time since the last refresh after which access to the directory would
 10201  	// cause the file gateway to first refresh that directory's contents from the
 10202  	// Amazon S3 bucket or Amazon FSx file system. The TTL duration is in seconds.
 10203  	//
 10204  	// Valid Values:0, 300 to 2,592,000 seconds (5 minutes to 30 days)
 10205  	CacheStaleTimeoutInSeconds *int64 `type:"integer"`
 10206  }
 10207  
 10208  // String returns the string representation.
 10209  //
 10210  // API parameter values that are decorated as "sensitive" in the API will not
 10211  // be included in the string output. The member name will be present, but the
 10212  // value will be replaced with "sensitive".
 10213  func (s CacheAttributes) String() string {
 10214  	return awsutil.Prettify(s)
 10215  }
 10216  
 10217  // GoString returns the string representation.
 10218  //
 10219  // API parameter values that are decorated as "sensitive" in the API will not
 10220  // be included in the string output. The member name will be present, but the
 10221  // value will be replaced with "sensitive".
 10222  func (s CacheAttributes) GoString() string {
 10223  	return s.String()
 10224  }
 10225  
 10226  // SetCacheStaleTimeoutInSeconds sets the CacheStaleTimeoutInSeconds field's value.
 10227  func (s *CacheAttributes) SetCacheStaleTimeoutInSeconds(v int64) *CacheAttributes {
 10228  	s.CacheStaleTimeoutInSeconds = &v
 10229  	return s
 10230  }
 10231  
 10232  // Describes an iSCSI cached volume.
 10233  type CachediSCSIVolume struct {
 10234  	_ struct{} `type:"structure"`
 10235  
 10236  	// The date the volume was created. Volumes created prior to March 28, 2017
 10237  	// don’t have this timestamp.
 10238  	CreatedDate *time.Time `type:"timestamp"`
 10239  
 10240  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 10241  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 10242  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 10243  	KMSKey *string `min:"7" type:"string"`
 10244  
 10245  	// If the cached volume was created from a snapshot, this field contains the
 10246  	// snapshot ID used, e.g., snap-78e22663. Otherwise, this field is not included.
 10247  	SourceSnapshotId *string `type:"string"`
 10248  
 10249  	// The name of the iSCSI target used by an initiator to connect to a volume
 10250  	// and used as a suffix for the target ARN. For example, specifying TargetName
 10251  	// as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
 10252  	// The target name must be unique across all volumes on a gateway.
 10253  	//
 10254  	// If you don't specify a value, Storage Gateway uses the value that was previously
 10255  	// used for this volume as the new target name.
 10256  	TargetName *string `min:"1" type:"string"`
 10257  
 10258  	// The Amazon Resource Name (ARN) of the storage volume.
 10259  	VolumeARN *string `min:"50" type:"string"`
 10260  
 10261  	// A value that indicates whether a storage volume is attached to or detached
 10262  	// from a gateway. For more information, see Moving your volumes to a different
 10263  	// gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
 10264  	VolumeAttachmentStatus *string `min:"3" type:"string"`
 10265  
 10266  	// The unique identifier of the volume, e.g., vol-AE4B946D.
 10267  	VolumeId *string `min:"12" type:"string"`
 10268  
 10269  	// Represents the percentage complete if the volume is restoring or bootstrapping
 10270  	// that represents the percent of data transferred. This field does not appear
 10271  	// in the response if the cached volume is not restoring or bootstrapping.
 10272  	VolumeProgress *float64 `type:"double"`
 10273  
 10274  	// The size, in bytes, of the volume capacity.
 10275  	VolumeSizeInBytes *int64 `type:"long"`
 10276  
 10277  	// One of the VolumeStatus values that indicates the state of the storage volume.
 10278  	VolumeStatus *string `min:"3" type:"string"`
 10279  
 10280  	// One of the VolumeType enumeration values that describes the type of the volume.
 10281  	VolumeType *string `min:"3" type:"string"`
 10282  
 10283  	// The size of the data stored on the volume in bytes. This value is calculated
 10284  	// based on the number of blocks that are touched, instead of the actual amount
 10285  	// of data written. This value can be useful for sequential write patterns but
 10286  	// less accurate for random write patterns. VolumeUsedInBytes is different from
 10287  	// the compressed size of the volume, which is the value that is used to calculate
 10288  	// your bill.
 10289  	//
 10290  	// This value is not available for volumes created prior to May 13, 2015, until
 10291  	// you store data on the volume.
 10292  	VolumeUsedInBytes *int64 `type:"long"`
 10293  
 10294  	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
 10295  	// for one stored volume.
 10296  	VolumeiSCSIAttributes *VolumeiSCSIAttributes `type:"structure"`
 10297  }
 10298  
 10299  // String returns the string representation.
 10300  //
 10301  // API parameter values that are decorated as "sensitive" in the API will not
 10302  // be included in the string output. The member name will be present, but the
 10303  // value will be replaced with "sensitive".
 10304  func (s CachediSCSIVolume) String() string {
 10305  	return awsutil.Prettify(s)
 10306  }
 10307  
 10308  // GoString returns the string representation.
 10309  //
 10310  // API parameter values that are decorated as "sensitive" in the API will not
 10311  // be included in the string output. The member name will be present, but the
 10312  // value will be replaced with "sensitive".
 10313  func (s CachediSCSIVolume) GoString() string {
 10314  	return s.String()
 10315  }
 10316  
 10317  // SetCreatedDate sets the CreatedDate field's value.
 10318  func (s *CachediSCSIVolume) SetCreatedDate(v time.Time) *CachediSCSIVolume {
 10319  	s.CreatedDate = &v
 10320  	return s
 10321  }
 10322  
 10323  // SetKMSKey sets the KMSKey field's value.
 10324  func (s *CachediSCSIVolume) SetKMSKey(v string) *CachediSCSIVolume {
 10325  	s.KMSKey = &v
 10326  	return s
 10327  }
 10328  
 10329  // SetSourceSnapshotId sets the SourceSnapshotId field's value.
 10330  func (s *CachediSCSIVolume) SetSourceSnapshotId(v string) *CachediSCSIVolume {
 10331  	s.SourceSnapshotId = &v
 10332  	return s
 10333  }
 10334  
 10335  // SetTargetName sets the TargetName field's value.
 10336  func (s *CachediSCSIVolume) SetTargetName(v string) *CachediSCSIVolume {
 10337  	s.TargetName = &v
 10338  	return s
 10339  }
 10340  
 10341  // SetVolumeARN sets the VolumeARN field's value.
 10342  func (s *CachediSCSIVolume) SetVolumeARN(v string) *CachediSCSIVolume {
 10343  	s.VolumeARN = &v
 10344  	return s
 10345  }
 10346  
 10347  // SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
 10348  func (s *CachediSCSIVolume) SetVolumeAttachmentStatus(v string) *CachediSCSIVolume {
 10349  	s.VolumeAttachmentStatus = &v
 10350  	return s
 10351  }
 10352  
 10353  // SetVolumeId sets the VolumeId field's value.
 10354  func (s *CachediSCSIVolume) SetVolumeId(v string) *CachediSCSIVolume {
 10355  	s.VolumeId = &v
 10356  	return s
 10357  }
 10358  
 10359  // SetVolumeProgress sets the VolumeProgress field's value.
 10360  func (s *CachediSCSIVolume) SetVolumeProgress(v float64) *CachediSCSIVolume {
 10361  	s.VolumeProgress = &v
 10362  	return s
 10363  }
 10364  
 10365  // SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
 10366  func (s *CachediSCSIVolume) SetVolumeSizeInBytes(v int64) *CachediSCSIVolume {
 10367  	s.VolumeSizeInBytes = &v
 10368  	return s
 10369  }
 10370  
 10371  // SetVolumeStatus sets the VolumeStatus field's value.
 10372  func (s *CachediSCSIVolume) SetVolumeStatus(v string) *CachediSCSIVolume {
 10373  	s.VolumeStatus = &v
 10374  	return s
 10375  }
 10376  
 10377  // SetVolumeType sets the VolumeType field's value.
 10378  func (s *CachediSCSIVolume) SetVolumeType(v string) *CachediSCSIVolume {
 10379  	s.VolumeType = &v
 10380  	return s
 10381  }
 10382  
 10383  // SetVolumeUsedInBytes sets the VolumeUsedInBytes field's value.
 10384  func (s *CachediSCSIVolume) SetVolumeUsedInBytes(v int64) *CachediSCSIVolume {
 10385  	s.VolumeUsedInBytes = &v
 10386  	return s
 10387  }
 10388  
 10389  // SetVolumeiSCSIAttributes sets the VolumeiSCSIAttributes field's value.
 10390  func (s *CachediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *CachediSCSIVolume {
 10391  	s.VolumeiSCSIAttributes = v
 10392  	return s
 10393  }
 10394  
 10395  // CancelArchivalInput
 10396  type CancelArchivalInput struct {
 10397  	_ struct{} `type:"structure"`
 10398  
 10399  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 10400  	// to return a list of gateways for your account and Region.
 10401  	//
 10402  	// GatewayARN is a required field
 10403  	GatewayARN *string `min:"50" type:"string" required:"true"`
 10404  
 10405  	// The Amazon Resource Name (ARN) of the virtual tape you want to cancel archiving
 10406  	// for.
 10407  	//
 10408  	// TapeARN is a required field
 10409  	TapeARN *string `min:"50" type:"string" required:"true"`
 10410  }
 10411  
 10412  // String returns the string representation.
 10413  //
 10414  // API parameter values that are decorated as "sensitive" in the API will not
 10415  // be included in the string output. The member name will be present, but the
 10416  // value will be replaced with "sensitive".
 10417  func (s CancelArchivalInput) String() string {
 10418  	return awsutil.Prettify(s)
 10419  }
 10420  
 10421  // GoString returns the string representation.
 10422  //
 10423  // API parameter values that are decorated as "sensitive" in the API will not
 10424  // be included in the string output. The member name will be present, but the
 10425  // value will be replaced with "sensitive".
 10426  func (s CancelArchivalInput) GoString() string {
 10427  	return s.String()
 10428  }
 10429  
 10430  // Validate inspects the fields of the type to determine if they are valid.
 10431  func (s *CancelArchivalInput) Validate() error {
 10432  	invalidParams := request.ErrInvalidParams{Context: "CancelArchivalInput"}
 10433  	if s.GatewayARN == nil {
 10434  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 10435  	}
 10436  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 10437  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 10438  	}
 10439  	if s.TapeARN == nil {
 10440  		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
 10441  	}
 10442  	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
 10443  		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
 10444  	}
 10445  
 10446  	if invalidParams.Len() > 0 {
 10447  		return invalidParams
 10448  	}
 10449  	return nil
 10450  }
 10451  
 10452  // SetGatewayARN sets the GatewayARN field's value.
 10453  func (s *CancelArchivalInput) SetGatewayARN(v string) *CancelArchivalInput {
 10454  	s.GatewayARN = &v
 10455  	return s
 10456  }
 10457  
 10458  // SetTapeARN sets the TapeARN field's value.
 10459  func (s *CancelArchivalInput) SetTapeARN(v string) *CancelArchivalInput {
 10460  	s.TapeARN = &v
 10461  	return s
 10462  }
 10463  
 10464  // CancelArchivalOutput
 10465  type CancelArchivalOutput struct {
 10466  	_ struct{} `type:"structure"`
 10467  
 10468  	// The Amazon Resource Name (ARN) of the virtual tape for which archiving was
 10469  	// canceled.
 10470  	TapeARN *string `min:"50" type:"string"`
 10471  }
 10472  
 10473  // String returns the string representation.
 10474  //
 10475  // API parameter values that are decorated as "sensitive" in the API will not
 10476  // be included in the string output. The member name will be present, but the
 10477  // value will be replaced with "sensitive".
 10478  func (s CancelArchivalOutput) String() string {
 10479  	return awsutil.Prettify(s)
 10480  }
 10481  
 10482  // GoString returns the string representation.
 10483  //
 10484  // API parameter values that are decorated as "sensitive" in the API will not
 10485  // be included in the string output. The member name will be present, but the
 10486  // value will be replaced with "sensitive".
 10487  func (s CancelArchivalOutput) GoString() string {
 10488  	return s.String()
 10489  }
 10490  
 10491  // SetTapeARN sets the TapeARN field's value.
 10492  func (s *CancelArchivalOutput) SetTapeARN(v string) *CancelArchivalOutput {
 10493  	s.TapeARN = &v
 10494  	return s
 10495  }
 10496  
 10497  // CancelRetrievalInput
 10498  type CancelRetrievalInput struct {
 10499  	_ struct{} `type:"structure"`
 10500  
 10501  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 10502  	// to return a list of gateways for your account and Region.
 10503  	//
 10504  	// GatewayARN is a required field
 10505  	GatewayARN *string `min:"50" type:"string" required:"true"`
 10506  
 10507  	// The Amazon Resource Name (ARN) of the virtual tape you want to cancel retrieval
 10508  	// for.
 10509  	//
 10510  	// TapeARN is a required field
 10511  	TapeARN *string `min:"50" type:"string" required:"true"`
 10512  }
 10513  
 10514  // String returns the string representation.
 10515  //
 10516  // API parameter values that are decorated as "sensitive" in the API will not
 10517  // be included in the string output. The member name will be present, but the
 10518  // value will be replaced with "sensitive".
 10519  func (s CancelRetrievalInput) String() string {
 10520  	return awsutil.Prettify(s)
 10521  }
 10522  
 10523  // GoString returns the string representation.
 10524  //
 10525  // API parameter values that are decorated as "sensitive" in the API will not
 10526  // be included in the string output. The member name will be present, but the
 10527  // value will be replaced with "sensitive".
 10528  func (s CancelRetrievalInput) GoString() string {
 10529  	return s.String()
 10530  }
 10531  
 10532  // Validate inspects the fields of the type to determine if they are valid.
 10533  func (s *CancelRetrievalInput) Validate() error {
 10534  	invalidParams := request.ErrInvalidParams{Context: "CancelRetrievalInput"}
 10535  	if s.GatewayARN == nil {
 10536  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 10537  	}
 10538  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 10539  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 10540  	}
 10541  	if s.TapeARN == nil {
 10542  		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
 10543  	}
 10544  	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
 10545  		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
 10546  	}
 10547  
 10548  	if invalidParams.Len() > 0 {
 10549  		return invalidParams
 10550  	}
 10551  	return nil
 10552  }
 10553  
 10554  // SetGatewayARN sets the GatewayARN field's value.
 10555  func (s *CancelRetrievalInput) SetGatewayARN(v string) *CancelRetrievalInput {
 10556  	s.GatewayARN = &v
 10557  	return s
 10558  }
 10559  
 10560  // SetTapeARN sets the TapeARN field's value.
 10561  func (s *CancelRetrievalInput) SetTapeARN(v string) *CancelRetrievalInput {
 10562  	s.TapeARN = &v
 10563  	return s
 10564  }
 10565  
 10566  // CancelRetrievalOutput
 10567  type CancelRetrievalOutput struct {
 10568  	_ struct{} `type:"structure"`
 10569  
 10570  	// The Amazon Resource Name (ARN) of the virtual tape for which retrieval was
 10571  	// canceled.
 10572  	TapeARN *string `min:"50" type:"string"`
 10573  }
 10574  
 10575  // String returns the string representation.
 10576  //
 10577  // API parameter values that are decorated as "sensitive" in the API will not
 10578  // be included in the string output. The member name will be present, but the
 10579  // value will be replaced with "sensitive".
 10580  func (s CancelRetrievalOutput) String() string {
 10581  	return awsutil.Prettify(s)
 10582  }
 10583  
 10584  // GoString returns the string representation.
 10585  //
 10586  // API parameter values that are decorated as "sensitive" in the API will not
 10587  // be included in the string output. The member name will be present, but the
 10588  // value will be replaced with "sensitive".
 10589  func (s CancelRetrievalOutput) GoString() string {
 10590  	return s.String()
 10591  }
 10592  
 10593  // SetTapeARN sets the TapeARN field's value.
 10594  func (s *CancelRetrievalOutput) SetTapeARN(v string) *CancelRetrievalOutput {
 10595  	s.TapeARN = &v
 10596  	return s
 10597  }
 10598  
 10599  // Describes Challenge-Handshake Authentication Protocol (CHAP) information
 10600  // that supports authentication between your gateway and iSCSI initiators.
 10601  type ChapInfo struct {
 10602  	_ struct{} `type:"structure"`
 10603  
 10604  	// The iSCSI initiator that connects to the target.
 10605  	InitiatorName *string `min:"1" type:"string"`
 10606  
 10607  	// The secret key that the initiator (for example, the Windows client) must
 10608  	// provide to participate in mutual CHAP with the target.
 10609  	//
 10610  	// SecretToAuthenticateInitiator is a sensitive parameter and its value will be
 10611  	// replaced with "sensitive" in string returned by ChapInfo's
 10612  	// String and GoString methods.
 10613  	SecretToAuthenticateInitiator *string `min:"1" type:"string" sensitive:"true"`
 10614  
 10615  	// The secret key that the target must provide to participate in mutual CHAP
 10616  	// with the initiator (e.g., Windows client).
 10617  	//
 10618  	// SecretToAuthenticateTarget is a sensitive parameter and its value will be
 10619  	// replaced with "sensitive" in string returned by ChapInfo's
 10620  	// String and GoString methods.
 10621  	SecretToAuthenticateTarget *string `min:"1" type:"string" sensitive:"true"`
 10622  
 10623  	// The Amazon Resource Name (ARN) of the volume.
 10624  	//
 10625  	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
 10626  	// (-).
 10627  	TargetARN *string `min:"50" type:"string"`
 10628  }
 10629  
 10630  // String returns the string representation.
 10631  //
 10632  // API parameter values that are decorated as "sensitive" in the API will not
 10633  // be included in the string output. The member name will be present, but the
 10634  // value will be replaced with "sensitive".
 10635  func (s ChapInfo) String() string {
 10636  	return awsutil.Prettify(s)
 10637  }
 10638  
 10639  // GoString returns the string representation.
 10640  //
 10641  // API parameter values that are decorated as "sensitive" in the API will not
 10642  // be included in the string output. The member name will be present, but the
 10643  // value will be replaced with "sensitive".
 10644  func (s ChapInfo) GoString() string {
 10645  	return s.String()
 10646  }
 10647  
 10648  // SetInitiatorName sets the InitiatorName field's value.
 10649  func (s *ChapInfo) SetInitiatorName(v string) *ChapInfo {
 10650  	s.InitiatorName = &v
 10651  	return s
 10652  }
 10653  
 10654  // SetSecretToAuthenticateInitiator sets the SecretToAuthenticateInitiator field's value.
 10655  func (s *ChapInfo) SetSecretToAuthenticateInitiator(v string) *ChapInfo {
 10656  	s.SecretToAuthenticateInitiator = &v
 10657  	return s
 10658  }
 10659  
 10660  // SetSecretToAuthenticateTarget sets the SecretToAuthenticateTarget field's value.
 10661  func (s *ChapInfo) SetSecretToAuthenticateTarget(v string) *ChapInfo {
 10662  	s.SecretToAuthenticateTarget = &v
 10663  	return s
 10664  }
 10665  
 10666  // SetTargetARN sets the TargetARN field's value.
 10667  func (s *ChapInfo) SetTargetARN(v string) *ChapInfo {
 10668  	s.TargetARN = &v
 10669  	return s
 10670  }
 10671  
 10672  type CreateCachediSCSIVolumeInput struct {
 10673  	_ struct{} `type:"structure"`
 10674  
 10675  	// A unique identifier that you use to retry a request. If you retry a request,
 10676  	// use the same ClientToken you specified in the initial request.
 10677  	//
 10678  	// ClientToken is a required field
 10679  	ClientToken *string `min:"5" type:"string" required:"true"`
 10680  
 10681  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 10682  	// to return a list of gateways for your account and Region.
 10683  	//
 10684  	// GatewayARN is a required field
 10685  	GatewayARN *string `min:"50" type:"string" required:"true"`
 10686  
 10687  	// Set to true to use Amazon S3 server-side encryption with your own KMS key,
 10688  	// or false to use a key managed by Amazon S3. Optional.
 10689  	//
 10690  	// Valid Values: true | false
 10691  	KMSEncrypted *bool `type:"boolean"`
 10692  
 10693  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 10694  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 10695  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 10696  	KMSKey *string `min:"7" type:"string"`
 10697  
 10698  	// The network interface of the gateway on which to expose the iSCSI target.
 10699  	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
 10700  	// list of the network interfaces available on a gateway.
 10701  	//
 10702  	// Valid Values: A valid IP address.
 10703  	//
 10704  	// NetworkInterfaceId is a required field
 10705  	NetworkInterfaceId *string `type:"string" required:"true"`
 10706  
 10707  	// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the
 10708  	// new cached volume. Specify this field if you want to create the iSCSI storage
 10709  	// volume from a snapshot; otherwise, do not include this field. To list snapshots
 10710  	// for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
 10711  	// in the Amazon Elastic Compute Cloud API Reference.
 10712  	SnapshotId *string `type:"string"`
 10713  
 10714  	// The ARN for an existing volume. Specifying this ARN makes the new volume
 10715  	// into an exact copy of the specified existing volume's latest recovery point.
 10716  	// The VolumeSizeInBytes value for this new volume must be equal to or larger
 10717  	// than the size of the existing volume, in bytes.
 10718  	SourceVolumeARN *string `min:"50" type:"string"`
 10719  
 10720  	// A list of up to 50 tags that you can assign to a cached volume. Each tag
 10721  	// is a key-value pair.
 10722  	//
 10723  	// Valid characters for key and value are letters, spaces, and numbers that
 10724  	// you can represent in UTF-8 format, and the following special characters:
 10725  	// + - = . _ : / @. The maximum length of a tag's key is 128 characters, and
 10726  	// the maximum length for a tag's value is 256 characters.
 10727  	Tags []*Tag `type:"list"`
 10728  
 10729  	// The name of the iSCSI target used by an initiator to connect to a volume
 10730  	// and used as a suffix for the target ARN. For example, specifying TargetName
 10731  	// as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
 10732  	// The target name must be unique across all volumes on a gateway.
 10733  	//
 10734  	// If you don't specify a value, Storage Gateway uses the value that was previously
 10735  	// used for this volume as the new target name.
 10736  	//
 10737  	// TargetName is a required field
 10738  	TargetName *string `min:"1" type:"string" required:"true"`
 10739  
 10740  	// The size of the volume in bytes.
 10741  	//
 10742  	// VolumeSizeInBytes is a required field
 10743  	VolumeSizeInBytes *int64 `type:"long" required:"true"`
 10744  }
 10745  
 10746  // String returns the string representation.
 10747  //
 10748  // API parameter values that are decorated as "sensitive" in the API will not
 10749  // be included in the string output. The member name will be present, but the
 10750  // value will be replaced with "sensitive".
 10751  func (s CreateCachediSCSIVolumeInput) String() string {
 10752  	return awsutil.Prettify(s)
 10753  }
 10754  
 10755  // GoString returns the string representation.
 10756  //
 10757  // API parameter values that are decorated as "sensitive" in the API will not
 10758  // be included in the string output. The member name will be present, but the
 10759  // value will be replaced with "sensitive".
 10760  func (s CreateCachediSCSIVolumeInput) GoString() string {
 10761  	return s.String()
 10762  }
 10763  
 10764  // Validate inspects the fields of the type to determine if they are valid.
 10765  func (s *CreateCachediSCSIVolumeInput) Validate() error {
 10766  	invalidParams := request.ErrInvalidParams{Context: "CreateCachediSCSIVolumeInput"}
 10767  	if s.ClientToken == nil {
 10768  		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
 10769  	}
 10770  	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
 10771  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
 10772  	}
 10773  	if s.GatewayARN == nil {
 10774  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 10775  	}
 10776  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 10777  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 10778  	}
 10779  	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
 10780  		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
 10781  	}
 10782  	if s.NetworkInterfaceId == nil {
 10783  		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
 10784  	}
 10785  	if s.SourceVolumeARN != nil && len(*s.SourceVolumeARN) < 50 {
 10786  		invalidParams.Add(request.NewErrParamMinLen("SourceVolumeARN", 50))
 10787  	}
 10788  	if s.TargetName == nil {
 10789  		invalidParams.Add(request.NewErrParamRequired("TargetName"))
 10790  	}
 10791  	if s.TargetName != nil && len(*s.TargetName) < 1 {
 10792  		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
 10793  	}
 10794  	if s.VolumeSizeInBytes == nil {
 10795  		invalidParams.Add(request.NewErrParamRequired("VolumeSizeInBytes"))
 10796  	}
 10797  	if s.Tags != nil {
 10798  		for i, v := range s.Tags {
 10799  			if v == nil {
 10800  				continue
 10801  			}
 10802  			if err := v.Validate(); err != nil {
 10803  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 10804  			}
 10805  		}
 10806  	}
 10807  
 10808  	if invalidParams.Len() > 0 {
 10809  		return invalidParams
 10810  	}
 10811  	return nil
 10812  }
 10813  
 10814  // SetClientToken sets the ClientToken field's value.
 10815  func (s *CreateCachediSCSIVolumeInput) SetClientToken(v string) *CreateCachediSCSIVolumeInput {
 10816  	s.ClientToken = &v
 10817  	return s
 10818  }
 10819  
 10820  // SetGatewayARN sets the GatewayARN field's value.
 10821  func (s *CreateCachediSCSIVolumeInput) SetGatewayARN(v string) *CreateCachediSCSIVolumeInput {
 10822  	s.GatewayARN = &v
 10823  	return s
 10824  }
 10825  
 10826  // SetKMSEncrypted sets the KMSEncrypted field's value.
 10827  func (s *CreateCachediSCSIVolumeInput) SetKMSEncrypted(v bool) *CreateCachediSCSIVolumeInput {
 10828  	s.KMSEncrypted = &v
 10829  	return s
 10830  }
 10831  
 10832  // SetKMSKey sets the KMSKey field's value.
 10833  func (s *CreateCachediSCSIVolumeInput) SetKMSKey(v string) *CreateCachediSCSIVolumeInput {
 10834  	s.KMSKey = &v
 10835  	return s
 10836  }
 10837  
 10838  // SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
 10839  func (s *CreateCachediSCSIVolumeInput) SetNetworkInterfaceId(v string) *CreateCachediSCSIVolumeInput {
 10840  	s.NetworkInterfaceId = &v
 10841  	return s
 10842  }
 10843  
 10844  // SetSnapshotId sets the SnapshotId field's value.
 10845  func (s *CreateCachediSCSIVolumeInput) SetSnapshotId(v string) *CreateCachediSCSIVolumeInput {
 10846  	s.SnapshotId = &v
 10847  	return s
 10848  }
 10849  
 10850  // SetSourceVolumeARN sets the SourceVolumeARN field's value.
 10851  func (s *CreateCachediSCSIVolumeInput) SetSourceVolumeARN(v string) *CreateCachediSCSIVolumeInput {
 10852  	s.SourceVolumeARN = &v
 10853  	return s
 10854  }
 10855  
 10856  // SetTags sets the Tags field's value.
 10857  func (s *CreateCachediSCSIVolumeInput) SetTags(v []*Tag) *CreateCachediSCSIVolumeInput {
 10858  	s.Tags = v
 10859  	return s
 10860  }
 10861  
 10862  // SetTargetName sets the TargetName field's value.
 10863  func (s *CreateCachediSCSIVolumeInput) SetTargetName(v string) *CreateCachediSCSIVolumeInput {
 10864  	s.TargetName = &v
 10865  	return s
 10866  }
 10867  
 10868  // SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
 10869  func (s *CreateCachediSCSIVolumeInput) SetVolumeSizeInBytes(v int64) *CreateCachediSCSIVolumeInput {
 10870  	s.VolumeSizeInBytes = &v
 10871  	return s
 10872  }
 10873  
 10874  type CreateCachediSCSIVolumeOutput struct {
 10875  	_ struct{} `type:"structure"`
 10876  
 10877  	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
 10878  	// name that initiators can use to connect to the target.
 10879  	TargetARN *string `min:"50" type:"string"`
 10880  
 10881  	// The Amazon Resource Name (ARN) of the configured volume.
 10882  	VolumeARN *string `min:"50" type:"string"`
 10883  }
 10884  
 10885  // String returns the string representation.
 10886  //
 10887  // API parameter values that are decorated as "sensitive" in the API will not
 10888  // be included in the string output. The member name will be present, but the
 10889  // value will be replaced with "sensitive".
 10890  func (s CreateCachediSCSIVolumeOutput) String() string {
 10891  	return awsutil.Prettify(s)
 10892  }
 10893  
 10894  // GoString returns the string representation.
 10895  //
 10896  // API parameter values that are decorated as "sensitive" in the API will not
 10897  // be included in the string output. The member name will be present, but the
 10898  // value will be replaced with "sensitive".
 10899  func (s CreateCachediSCSIVolumeOutput) GoString() string {
 10900  	return s.String()
 10901  }
 10902  
 10903  // SetTargetARN sets the TargetARN field's value.
 10904  func (s *CreateCachediSCSIVolumeOutput) SetTargetARN(v string) *CreateCachediSCSIVolumeOutput {
 10905  	s.TargetARN = &v
 10906  	return s
 10907  }
 10908  
 10909  // SetVolumeARN sets the VolumeARN field's value.
 10910  func (s *CreateCachediSCSIVolumeOutput) SetVolumeARN(v string) *CreateCachediSCSIVolumeOutput {
 10911  	s.VolumeARN = &v
 10912  	return s
 10913  }
 10914  
 10915  // CreateNFSFileShareInput
 10916  type CreateNFSFileShareInput struct {
 10917  	_ struct{} `type:"structure"`
 10918  
 10919  	// Specifies the Region of the S3 bucket where the NFS file share stores files.
 10920  	//
 10921  	// This parameter is required for NFS file shares that connect to Amazon S3
 10922  	// through a VPC endpoint, a VPC access point, or an access point alias that
 10923  	// points to a VPC access point.
 10924  	BucketRegion *string `min:"1" type:"string"`
 10925  
 10926  	// Specifies refresh cache information for the file share.
 10927  	CacheAttributes *CacheAttributes `type:"structure"`
 10928  
 10929  	// The list of clients that are allowed to access the S3 File Gateway. The list
 10930  	// must contain either valid IP addresses or valid CIDR blocks.
 10931  	ClientList []*string `min:"1" type:"list"`
 10932  
 10933  	// A unique string value that you supply that is used by S3 File Gateway to
 10934  	// ensure idempotent file share creation.
 10935  	//
 10936  	// ClientToken is a required field
 10937  	ClientToken *string `min:"5" type:"string" required:"true"`
 10938  
 10939  	// The default storage class for objects put into an Amazon S3 bucket by the
 10940  	// S3 File Gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
 10941  	//
 10942  	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
 10943  	DefaultStorageClass *string `min:"5" type:"string"`
 10944  
 10945  	// The name of the file share. Optional.
 10946  	//
 10947  	// FileShareName must be set if an S3 prefix name is set in LocationARN.
 10948  	FileShareName *string `min:"1" type:"string"`
 10949  
 10950  	// The Amazon Resource Name (ARN) of the S3 File Gateway on which you want to
 10951  	// create a file share.
 10952  	//
 10953  	// GatewayARN is a required field
 10954  	GatewayARN *string `min:"50" type:"string" required:"true"`
 10955  
 10956  	// A value that enables guessing of the MIME type for uploaded objects based
 10957  	// on file extensions. Set this value to true to enable MIME type guessing,
 10958  	// otherwise set to false. The default value is true.
 10959  	//
 10960  	// Valid Values: true | false
 10961  	GuessMIMETypeEnabled *bool `type:"boolean"`
 10962  
 10963  	// Set to true to use Amazon S3 server-side encryption with your own KMS key,
 10964  	// or false to use a key managed by Amazon S3. Optional.
 10965  	//
 10966  	// Valid Values: true | false
 10967  	KMSEncrypted *bool `type:"boolean"`
 10968  
 10969  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 10970  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 10971  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 10972  	KMSKey *string `min:"7" type:"string"`
 10973  
 10974  	// The ARN of the backend storage used for storing file data. A prefix name
 10975  	// can be added to the S3 bucket name. It must end with a "/".
 10976  	//
 10977  	// You can specify a bucket attached to an access point using a complete ARN
 10978  	// that includes the bucket region as shown:
 10979  	//
 10980  	// arn:aws:s3:region:account-id:accesspoint/access-point-name
 10981  	//
 10982  	// If you specify a bucket attached to an access point, the bucket policy must
 10983  	// be configured to delegate access control to the access point. For information,
 10984  	// see Delegating access control to access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-policies.html#access-points-delegating-control)
 10985  	// in the Amazon S3 User Guide.
 10986  	//
 10987  	// LocationARN is a required field
 10988  	LocationARN *string `min:"16" type:"string" required:"true"`
 10989  
 10990  	// File share default values. Optional.
 10991  	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
 10992  
 10993  	// The notification policy of the file share. SettlingTimeInSeconds controls
 10994  	// the number of seconds to wait after the last point in time a client wrote
 10995  	// to a file before generating an ObjectUploaded notification. Because clients
 10996  	// can make many small writes to files, it's best to set this parameter for
 10997  	// as long as possible to avoid generating multiple notifications for the same
 10998  	// file in a small time period.
 10999  	//
 11000  	// SettlingTimeInSeconds has no effect on the timing of the object uploading
 11001  	// to Amazon S3, only the timing of the notification.
 11002  	//
 11003  	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
 11004  	// set to 60.
 11005  	//
 11006  	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
 11007  	//
 11008  	// The following example sets NotificationPolicy off.
 11009  	//
 11010  	// {}
 11011  	NotificationPolicy *string `min:"2" type:"string"`
 11012  
 11013  	// A value that sets the access control list (ACL) permission for objects in
 11014  	// the S3 bucket that a S3 File Gateway puts objects into. The default value
 11015  	// is private.
 11016  	ObjectACL *string `type:"string" enum:"ObjectACL"`
 11017  
 11018  	// A value that sets the write status of a file share. Set this value to true
 11019  	// to set the write status to read-only, otherwise set to false.
 11020  	//
 11021  	// Valid Values: true | false
 11022  	ReadOnly *bool `type:"boolean"`
 11023  
 11024  	// A value that sets who pays the cost of the request and the cost associated
 11025  	// with data download from the S3 bucket. If this value is set to true, the
 11026  	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
 11027  	// S3 bucket owner always pays the cost of storing data.
 11028  	//
 11029  	// RequesterPays is a configuration for the S3 bucket that backs the file share,
 11030  	// so make sure that the configuration on the file share is the same as the
 11031  	// S3 bucket configuration.
 11032  	//
 11033  	// Valid Values: true | false
 11034  	RequesterPays *bool `type:"boolean"`
 11035  
 11036  	// The ARN of the Identity and Access Management (IAM) role that an S3 File
 11037  	// Gateway assumes when it accesses the underlying storage.
 11038  	//
 11039  	// Role is a required field
 11040  	Role *string `min:"20" type:"string" required:"true"`
 11041  
 11042  	// A value that maps a user to anonymous user.
 11043  	//
 11044  	// Valid values are the following:
 11045  	//
 11046  	//    * RootSquash: Only root is mapped to anonymous user.
 11047  	//
 11048  	//    * NoSquash: No one is mapped to anonymous user.
 11049  	//
 11050  	//    * AllSquash: Everyone is mapped to anonymous user.
 11051  	Squash *string `min:"5" type:"string"`
 11052  
 11053  	// A list of up to 50 tags that can be assigned to the NFS file share. Each
 11054  	// tag is a key-value pair.
 11055  	//
 11056  	// Valid characters for key and value are letters, spaces, and numbers representable
 11057  	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
 11058  	// maximum length of a tag's key is 128 characters, and the maximum length for
 11059  	// a tag's value is 256.
 11060  	Tags []*Tag `type:"list"`
 11061  
 11062  	// Specifies the DNS name for the VPC endpoint that the NFS file share uses
 11063  	// to connect to Amazon S3.
 11064  	//
 11065  	// This parameter is required for NFS file shares that connect to Amazon S3
 11066  	// through a VPC endpoint, a VPC access point, or an access point alias that
 11067  	// points to a VPC access point.
 11068  	VPCEndpointDNSName *string `min:"1" type:"string"`
 11069  }
 11070  
 11071  // String returns the string representation.
 11072  //
 11073  // API parameter values that are decorated as "sensitive" in the API will not
 11074  // be included in the string output. The member name will be present, but the
 11075  // value will be replaced with "sensitive".
 11076  func (s CreateNFSFileShareInput) String() string {
 11077  	return awsutil.Prettify(s)
 11078  }
 11079  
 11080  // GoString returns the string representation.
 11081  //
 11082  // API parameter values that are decorated as "sensitive" in the API will not
 11083  // be included in the string output. The member name will be present, but the
 11084  // value will be replaced with "sensitive".
 11085  func (s CreateNFSFileShareInput) GoString() string {
 11086  	return s.String()
 11087  }
 11088  
 11089  // Validate inspects the fields of the type to determine if they are valid.
 11090  func (s *CreateNFSFileShareInput) Validate() error {
 11091  	invalidParams := request.ErrInvalidParams{Context: "CreateNFSFileShareInput"}
 11092  	if s.BucketRegion != nil && len(*s.BucketRegion) < 1 {
 11093  		invalidParams.Add(request.NewErrParamMinLen("BucketRegion", 1))
 11094  	}
 11095  	if s.ClientList != nil && len(s.ClientList) < 1 {
 11096  		invalidParams.Add(request.NewErrParamMinLen("ClientList", 1))
 11097  	}
 11098  	if s.ClientToken == nil {
 11099  		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
 11100  	}
 11101  	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
 11102  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
 11103  	}
 11104  	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
 11105  		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
 11106  	}
 11107  	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
 11108  		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
 11109  	}
 11110  	if s.GatewayARN == nil {
 11111  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 11112  	}
 11113  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 11114  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 11115  	}
 11116  	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
 11117  		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
 11118  	}
 11119  	if s.LocationARN == nil {
 11120  		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
 11121  	}
 11122  	if s.LocationARN != nil && len(*s.LocationARN) < 16 {
 11123  		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 16))
 11124  	}
 11125  	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
 11126  		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
 11127  	}
 11128  	if s.Role == nil {
 11129  		invalidParams.Add(request.NewErrParamRequired("Role"))
 11130  	}
 11131  	if s.Role != nil && len(*s.Role) < 20 {
 11132  		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
 11133  	}
 11134  	if s.Squash != nil && len(*s.Squash) < 5 {
 11135  		invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
 11136  	}
 11137  	if s.VPCEndpointDNSName != nil && len(*s.VPCEndpointDNSName) < 1 {
 11138  		invalidParams.Add(request.NewErrParamMinLen("VPCEndpointDNSName", 1))
 11139  	}
 11140  	if s.NFSFileShareDefaults != nil {
 11141  		if err := s.NFSFileShareDefaults.Validate(); err != nil {
 11142  			invalidParams.AddNested("NFSFileShareDefaults", err.(request.ErrInvalidParams))
 11143  		}
 11144  	}
 11145  	if s.Tags != nil {
 11146  		for i, v := range s.Tags {
 11147  			if v == nil {
 11148  				continue
 11149  			}
 11150  			if err := v.Validate(); err != nil {
 11151  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 11152  			}
 11153  		}
 11154  	}
 11155  
 11156  	if invalidParams.Len() > 0 {
 11157  		return invalidParams
 11158  	}
 11159  	return nil
 11160  }
 11161  
 11162  // SetBucketRegion sets the BucketRegion field's value.
 11163  func (s *CreateNFSFileShareInput) SetBucketRegion(v string) *CreateNFSFileShareInput {
 11164  	s.BucketRegion = &v
 11165  	return s
 11166  }
 11167  
 11168  // SetCacheAttributes sets the CacheAttributes field's value.
 11169  func (s *CreateNFSFileShareInput) SetCacheAttributes(v *CacheAttributes) *CreateNFSFileShareInput {
 11170  	s.CacheAttributes = v
 11171  	return s
 11172  }
 11173  
 11174  // SetClientList sets the ClientList field's value.
 11175  func (s *CreateNFSFileShareInput) SetClientList(v []*string) *CreateNFSFileShareInput {
 11176  	s.ClientList = v
 11177  	return s
 11178  }
 11179  
 11180  // SetClientToken sets the ClientToken field's value.
 11181  func (s *CreateNFSFileShareInput) SetClientToken(v string) *CreateNFSFileShareInput {
 11182  	s.ClientToken = &v
 11183  	return s
 11184  }
 11185  
 11186  // SetDefaultStorageClass sets the DefaultStorageClass field's value.
 11187  func (s *CreateNFSFileShareInput) SetDefaultStorageClass(v string) *CreateNFSFileShareInput {
 11188  	s.DefaultStorageClass = &v
 11189  	return s
 11190  }
 11191  
 11192  // SetFileShareName sets the FileShareName field's value.
 11193  func (s *CreateNFSFileShareInput) SetFileShareName(v string) *CreateNFSFileShareInput {
 11194  	s.FileShareName = &v
 11195  	return s
 11196  }
 11197  
 11198  // SetGatewayARN sets the GatewayARN field's value.
 11199  func (s *CreateNFSFileShareInput) SetGatewayARN(v string) *CreateNFSFileShareInput {
 11200  	s.GatewayARN = &v
 11201  	return s
 11202  }
 11203  
 11204  // SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
 11205  func (s *CreateNFSFileShareInput) SetGuessMIMETypeEnabled(v bool) *CreateNFSFileShareInput {
 11206  	s.GuessMIMETypeEnabled = &v
 11207  	return s
 11208  }
 11209  
 11210  // SetKMSEncrypted sets the KMSEncrypted field's value.
 11211  func (s *CreateNFSFileShareInput) SetKMSEncrypted(v bool) *CreateNFSFileShareInput {
 11212  	s.KMSEncrypted = &v
 11213  	return s
 11214  }
 11215  
 11216  // SetKMSKey sets the KMSKey field's value.
 11217  func (s *CreateNFSFileShareInput) SetKMSKey(v string) *CreateNFSFileShareInput {
 11218  	s.KMSKey = &v
 11219  	return s
 11220  }
 11221  
 11222  // SetLocationARN sets the LocationARN field's value.
 11223  func (s *CreateNFSFileShareInput) SetLocationARN(v string) *CreateNFSFileShareInput {
 11224  	s.LocationARN = &v
 11225  	return s
 11226  }
 11227  
 11228  // SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
 11229  func (s *CreateNFSFileShareInput) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *CreateNFSFileShareInput {
 11230  	s.NFSFileShareDefaults = v
 11231  	return s
 11232  }
 11233  
 11234  // SetNotificationPolicy sets the NotificationPolicy field's value.
 11235  func (s *CreateNFSFileShareInput) SetNotificationPolicy(v string) *CreateNFSFileShareInput {
 11236  	s.NotificationPolicy = &v
 11237  	return s
 11238  }
 11239  
 11240  // SetObjectACL sets the ObjectACL field's value.
 11241  func (s *CreateNFSFileShareInput) SetObjectACL(v string) *CreateNFSFileShareInput {
 11242  	s.ObjectACL = &v
 11243  	return s
 11244  }
 11245  
 11246  // SetReadOnly sets the ReadOnly field's value.
 11247  func (s *CreateNFSFileShareInput) SetReadOnly(v bool) *CreateNFSFileShareInput {
 11248  	s.ReadOnly = &v
 11249  	return s
 11250  }
 11251  
 11252  // SetRequesterPays sets the RequesterPays field's value.
 11253  func (s *CreateNFSFileShareInput) SetRequesterPays(v bool) *CreateNFSFileShareInput {
 11254  	s.RequesterPays = &v
 11255  	return s
 11256  }
 11257  
 11258  // SetRole sets the Role field's value.
 11259  func (s *CreateNFSFileShareInput) SetRole(v string) *CreateNFSFileShareInput {
 11260  	s.Role = &v
 11261  	return s
 11262  }
 11263  
 11264  // SetSquash sets the Squash field's value.
 11265  func (s *CreateNFSFileShareInput) SetSquash(v string) *CreateNFSFileShareInput {
 11266  	s.Squash = &v
 11267  	return s
 11268  }
 11269  
 11270  // SetTags sets the Tags field's value.
 11271  func (s *CreateNFSFileShareInput) SetTags(v []*Tag) *CreateNFSFileShareInput {
 11272  	s.Tags = v
 11273  	return s
 11274  }
 11275  
 11276  // SetVPCEndpointDNSName sets the VPCEndpointDNSName field's value.
 11277  func (s *CreateNFSFileShareInput) SetVPCEndpointDNSName(v string) *CreateNFSFileShareInput {
 11278  	s.VPCEndpointDNSName = &v
 11279  	return s
 11280  }
 11281  
 11282  // CreateNFSFileShareOutput
 11283  type CreateNFSFileShareOutput struct {
 11284  	_ struct{} `type:"structure"`
 11285  
 11286  	// The Amazon Resource Name (ARN) of the newly created file share.
 11287  	FileShareARN *string `min:"50" type:"string"`
 11288  }
 11289  
 11290  // String returns the string representation.
 11291  //
 11292  // API parameter values that are decorated as "sensitive" in the API will not
 11293  // be included in the string output. The member name will be present, but the
 11294  // value will be replaced with "sensitive".
 11295  func (s CreateNFSFileShareOutput) String() string {
 11296  	return awsutil.Prettify(s)
 11297  }
 11298  
 11299  // GoString returns the string representation.
 11300  //
 11301  // API parameter values that are decorated as "sensitive" in the API will not
 11302  // be included in the string output. The member name will be present, but the
 11303  // value will be replaced with "sensitive".
 11304  func (s CreateNFSFileShareOutput) GoString() string {
 11305  	return s.String()
 11306  }
 11307  
 11308  // SetFileShareARN sets the FileShareARN field's value.
 11309  func (s *CreateNFSFileShareOutput) SetFileShareARN(v string) *CreateNFSFileShareOutput {
 11310  	s.FileShareARN = &v
 11311  	return s
 11312  }
 11313  
 11314  // CreateSMBFileShareInput
 11315  type CreateSMBFileShareInput struct {
 11316  	_ struct{} `type:"structure"`
 11317  
 11318  	// The files and folders on this share will only be visible to users with read
 11319  	// access.
 11320  	AccessBasedEnumeration *bool `type:"boolean"`
 11321  
 11322  	// A list of users or groups in the Active Directory that will be granted administrator
 11323  	// privileges on the file share. These users can do all file operations as the
 11324  	// super-user. Acceptable formats include: DOMAIN\User1, user1, @group1, and
 11325  	// @DOMAIN\group1.
 11326  	//
 11327  	// Use this option very carefully, because any user in this list can do anything
 11328  	// they like on the file share, regardless of file permissions.
 11329  	AdminUserList []*string `type:"list"`
 11330  
 11331  	// The Amazon Resource Name (ARN) of the storage used for audit logs.
 11332  	AuditDestinationARN *string `type:"string"`
 11333  
 11334  	// The authentication method that users use to access the file share. The default
 11335  	// is ActiveDirectory.
 11336  	//
 11337  	// Valid Values: ActiveDirectory | GuestAccess
 11338  	Authentication *string `min:"5" type:"string"`
 11339  
 11340  	// Specifies the Region of the S3 bucket where the SMB file share stores files.
 11341  	//
 11342  	// This parameter is required for SMB file shares that connect to Amazon S3
 11343  	// through a VPC endpoint, a VPC access point, or an access point alias that
 11344  	// points to a VPC access point.
 11345  	BucketRegion *string `min:"1" type:"string"`
 11346  
 11347  	// Specifies refresh cache information for the file share.
 11348  	CacheAttributes *CacheAttributes `type:"structure"`
 11349  
 11350  	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
 11351  	// client determines the case sensitivity. For CaseSensitive, the gateway determines
 11352  	// the case sensitivity. The default value is ClientSpecified.
 11353  	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
 11354  
 11355  	// A unique string value that you supply that is used by S3 File Gateway to
 11356  	// ensure idempotent file share creation.
 11357  	//
 11358  	// ClientToken is a required field
 11359  	ClientToken *string `min:"5" type:"string" required:"true"`
 11360  
 11361  	// The default storage class for objects put into an Amazon S3 bucket by the
 11362  	// S3 File Gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
 11363  	//
 11364  	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
 11365  	DefaultStorageClass *string `min:"5" type:"string"`
 11366  
 11367  	// The name of the file share. Optional.
 11368  	//
 11369  	// FileShareName must be set if an S3 prefix name is set in LocationARN.
 11370  	FileShareName *string `min:"1" type:"string"`
 11371  
 11372  	// The ARN of the S3 File Gateway on which you want to create a file share.
 11373  	//
 11374  	// GatewayARN is a required field
 11375  	GatewayARN *string `min:"50" type:"string" required:"true"`
 11376  
 11377  	// A value that enables guessing of the MIME type for uploaded objects based
 11378  	// on file extensions. Set this value to true to enable MIME type guessing,
 11379  	// otherwise set to false. The default value is true.
 11380  	//
 11381  	// Valid Values: true | false
 11382  	GuessMIMETypeEnabled *bool `type:"boolean"`
 11383  
 11384  	// A list of users or groups in the Active Directory that are not allowed to
 11385  	// access the file share. A group must be prefixed with the @ character. Acceptable
 11386  	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
 11387  	// be set if Authentication is set to ActiveDirectory.
 11388  	InvalidUserList []*string `type:"list"`
 11389  
 11390  	// Set to true to use Amazon S3 server-side encryption with your own KMS key,
 11391  	// or false to use a key managed by Amazon S3. Optional.
 11392  	//
 11393  	// Valid Values: true | false
 11394  	KMSEncrypted *bool `type:"boolean"`
 11395  
 11396  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 11397  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 11398  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 11399  	KMSKey *string `min:"7" type:"string"`
 11400  
 11401  	// The ARN of the backend storage used for storing file data. A prefix name
 11402  	// can be added to the S3 bucket name. It must end with a "/".
 11403  	//
 11404  	// You can specify a bucket attached to an access point using a complete ARN
 11405  	// that includes the bucket region as shown:
 11406  	//
 11407  	// arn:aws:s3:region:account-id:accesspoint/access-point-name
 11408  	//
 11409  	// If you specify a bucket attached to an access point, the bucket policy must
 11410  	// be configured to delegate access control to the access point. For information,
 11411  	// see Delegating access control to access points (https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-policies.html#access-points-delegating-control)
 11412  	// in the Amazon S3 User Guide.
 11413  	//
 11414  	// LocationARN is a required field
 11415  	LocationARN *string `min:"16" type:"string" required:"true"`
 11416  
 11417  	// The notification policy of the file share. SettlingTimeInSeconds controls
 11418  	// the number of seconds to wait after the last point in time a client wrote
 11419  	// to a file before generating an ObjectUploaded notification. Because clients
 11420  	// can make many small writes to files, it's best to set this parameter for
 11421  	// as long as possible to avoid generating multiple notifications for the same
 11422  	// file in a small time period.
 11423  	//
 11424  	// SettlingTimeInSeconds has no effect on the timing of the object uploading
 11425  	// to Amazon S3, only the timing of the notification.
 11426  	//
 11427  	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
 11428  	// set to 60.
 11429  	//
 11430  	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
 11431  	//
 11432  	// The following example sets NotificationPolicy off.
 11433  	//
 11434  	// {}
 11435  	NotificationPolicy *string `min:"2" type:"string"`
 11436  
 11437  	// A value that sets the access control list (ACL) permission for objects in
 11438  	// the S3 bucket that a S3 File Gateway puts objects into. The default value
 11439  	// is private.
 11440  	ObjectACL *string `type:"string" enum:"ObjectACL"`
 11441  
 11442  	// Specifies whether opportunistic locking is enabled for the SMB file share.
 11443  	//
 11444  	// Enabling opportunistic locking on case-sensitive shares is not recommended
 11445  	// for workloads that involve access to files with the same name in different
 11446  	// case.
 11447  	//
 11448  	// Valid Values: true | false
 11449  	OplocksEnabled *bool `type:"boolean"`
 11450  
 11451  	// A value that sets the write status of a file share. Set this value to true
 11452  	// to set the write status to read-only, otherwise set to false.
 11453  	//
 11454  	// Valid Values: true | false
 11455  	ReadOnly *bool `type:"boolean"`
 11456  
 11457  	// A value that sets who pays the cost of the request and the cost associated
 11458  	// with data download from the S3 bucket. If this value is set to true, the
 11459  	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
 11460  	// S3 bucket owner always pays the cost of storing data.
 11461  	//
 11462  	// RequesterPays is a configuration for the S3 bucket that backs the file share,
 11463  	// so make sure that the configuration on the file share is the same as the
 11464  	// S3 bucket configuration.
 11465  	//
 11466  	// Valid Values: true | false
 11467  	RequesterPays *bool `type:"boolean"`
 11468  
 11469  	// The ARN of the Identity and Access Management (IAM) role that an S3 File
 11470  	// Gateway assumes when it accesses the underlying storage.
 11471  	//
 11472  	// Role is a required field
 11473  	Role *string `min:"20" type:"string" required:"true"`
 11474  
 11475  	// Set this value to true to enable access control list (ACL) on the SMB file
 11476  	// share. Set it to false to map file and directory permissions to the POSIX
 11477  	// permissions.
 11478  	//
 11479  	// For more information, see Using Microsoft Windows ACLs to control access
 11480  	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
 11481  	// in the Storage Gateway User Guide.
 11482  	//
 11483  	// Valid Values: true | false
 11484  	SMBACLEnabled *bool `type:"boolean"`
 11485  
 11486  	// A list of up to 50 tags that can be assigned to the NFS file share. Each
 11487  	// tag is a key-value pair.
 11488  	//
 11489  	// Valid characters for key and value are letters, spaces, and numbers representable
 11490  	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
 11491  	// maximum length of a tag's key is 128 characters, and the maximum length for
 11492  	// a tag's value is 256.
 11493  	Tags []*Tag `type:"list"`
 11494  
 11495  	// Specifies the DNS name for the VPC endpoint that the SMB file share uses
 11496  	// to connect to Amazon S3.
 11497  	//
 11498  	// This parameter is required for SMB file shares that connect to Amazon S3
 11499  	// through a VPC endpoint, a VPC access point, or an access point alias that
 11500  	// points to a VPC access point.
 11501  	VPCEndpointDNSName *string `min:"1" type:"string"`
 11502  
 11503  	// A list of users or groups in the Active Directory that are allowed to access
 11504  	// the file share. A group must be prefixed with the @ character. Acceptable
 11505  	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
 11506  	// be set if Authentication is set to ActiveDirectory.
 11507  	ValidUserList []*string `type:"list"`
 11508  }
 11509  
 11510  // String returns the string representation.
 11511  //
 11512  // API parameter values that are decorated as "sensitive" in the API will not
 11513  // be included in the string output. The member name will be present, but the
 11514  // value will be replaced with "sensitive".
 11515  func (s CreateSMBFileShareInput) String() string {
 11516  	return awsutil.Prettify(s)
 11517  }
 11518  
 11519  // GoString returns the string representation.
 11520  //
 11521  // API parameter values that are decorated as "sensitive" in the API will not
 11522  // be included in the string output. The member name will be present, but the
 11523  // value will be replaced with "sensitive".
 11524  func (s CreateSMBFileShareInput) GoString() string {
 11525  	return s.String()
 11526  }
 11527  
 11528  // Validate inspects the fields of the type to determine if they are valid.
 11529  func (s *CreateSMBFileShareInput) Validate() error {
 11530  	invalidParams := request.ErrInvalidParams{Context: "CreateSMBFileShareInput"}
 11531  	if s.Authentication != nil && len(*s.Authentication) < 5 {
 11532  		invalidParams.Add(request.NewErrParamMinLen("Authentication", 5))
 11533  	}
 11534  	if s.BucketRegion != nil && len(*s.BucketRegion) < 1 {
 11535  		invalidParams.Add(request.NewErrParamMinLen("BucketRegion", 1))
 11536  	}
 11537  	if s.ClientToken == nil {
 11538  		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
 11539  	}
 11540  	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
 11541  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
 11542  	}
 11543  	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
 11544  		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
 11545  	}
 11546  	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
 11547  		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
 11548  	}
 11549  	if s.GatewayARN == nil {
 11550  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 11551  	}
 11552  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 11553  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 11554  	}
 11555  	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
 11556  		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
 11557  	}
 11558  	if s.LocationARN == nil {
 11559  		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
 11560  	}
 11561  	if s.LocationARN != nil && len(*s.LocationARN) < 16 {
 11562  		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 16))
 11563  	}
 11564  	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
 11565  		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
 11566  	}
 11567  	if s.Role == nil {
 11568  		invalidParams.Add(request.NewErrParamRequired("Role"))
 11569  	}
 11570  	if s.Role != nil && len(*s.Role) < 20 {
 11571  		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
 11572  	}
 11573  	if s.VPCEndpointDNSName != nil && len(*s.VPCEndpointDNSName) < 1 {
 11574  		invalidParams.Add(request.NewErrParamMinLen("VPCEndpointDNSName", 1))
 11575  	}
 11576  	if s.Tags != nil {
 11577  		for i, v := range s.Tags {
 11578  			if v == nil {
 11579  				continue
 11580  			}
 11581  			if err := v.Validate(); err != nil {
 11582  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 11583  			}
 11584  		}
 11585  	}
 11586  
 11587  	if invalidParams.Len() > 0 {
 11588  		return invalidParams
 11589  	}
 11590  	return nil
 11591  }
 11592  
 11593  // SetAccessBasedEnumeration sets the AccessBasedEnumeration field's value.
 11594  func (s *CreateSMBFileShareInput) SetAccessBasedEnumeration(v bool) *CreateSMBFileShareInput {
 11595  	s.AccessBasedEnumeration = &v
 11596  	return s
 11597  }
 11598  
 11599  // SetAdminUserList sets the AdminUserList field's value.
 11600  func (s *CreateSMBFileShareInput) SetAdminUserList(v []*string) *CreateSMBFileShareInput {
 11601  	s.AdminUserList = v
 11602  	return s
 11603  }
 11604  
 11605  // SetAuditDestinationARN sets the AuditDestinationARN field's value.
 11606  func (s *CreateSMBFileShareInput) SetAuditDestinationARN(v string) *CreateSMBFileShareInput {
 11607  	s.AuditDestinationARN = &v
 11608  	return s
 11609  }
 11610  
 11611  // SetAuthentication sets the Authentication field's value.
 11612  func (s *CreateSMBFileShareInput) SetAuthentication(v string) *CreateSMBFileShareInput {
 11613  	s.Authentication = &v
 11614  	return s
 11615  }
 11616  
 11617  // SetBucketRegion sets the BucketRegion field's value.
 11618  func (s *CreateSMBFileShareInput) SetBucketRegion(v string) *CreateSMBFileShareInput {
 11619  	s.BucketRegion = &v
 11620  	return s
 11621  }
 11622  
 11623  // SetCacheAttributes sets the CacheAttributes field's value.
 11624  func (s *CreateSMBFileShareInput) SetCacheAttributes(v *CacheAttributes) *CreateSMBFileShareInput {
 11625  	s.CacheAttributes = v
 11626  	return s
 11627  }
 11628  
 11629  // SetCaseSensitivity sets the CaseSensitivity field's value.
 11630  func (s *CreateSMBFileShareInput) SetCaseSensitivity(v string) *CreateSMBFileShareInput {
 11631  	s.CaseSensitivity = &v
 11632  	return s
 11633  }
 11634  
 11635  // SetClientToken sets the ClientToken field's value.
 11636  func (s *CreateSMBFileShareInput) SetClientToken(v string) *CreateSMBFileShareInput {
 11637  	s.ClientToken = &v
 11638  	return s
 11639  }
 11640  
 11641  // SetDefaultStorageClass sets the DefaultStorageClass field's value.
 11642  func (s *CreateSMBFileShareInput) SetDefaultStorageClass(v string) *CreateSMBFileShareInput {
 11643  	s.DefaultStorageClass = &v
 11644  	return s
 11645  }
 11646  
 11647  // SetFileShareName sets the FileShareName field's value.
 11648  func (s *CreateSMBFileShareInput) SetFileShareName(v string) *CreateSMBFileShareInput {
 11649  	s.FileShareName = &v
 11650  	return s
 11651  }
 11652  
 11653  // SetGatewayARN sets the GatewayARN field's value.
 11654  func (s *CreateSMBFileShareInput) SetGatewayARN(v string) *CreateSMBFileShareInput {
 11655  	s.GatewayARN = &v
 11656  	return s
 11657  }
 11658  
 11659  // SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
 11660  func (s *CreateSMBFileShareInput) SetGuessMIMETypeEnabled(v bool) *CreateSMBFileShareInput {
 11661  	s.GuessMIMETypeEnabled = &v
 11662  	return s
 11663  }
 11664  
 11665  // SetInvalidUserList sets the InvalidUserList field's value.
 11666  func (s *CreateSMBFileShareInput) SetInvalidUserList(v []*string) *CreateSMBFileShareInput {
 11667  	s.InvalidUserList = v
 11668  	return s
 11669  }
 11670  
 11671  // SetKMSEncrypted sets the KMSEncrypted field's value.
 11672  func (s *CreateSMBFileShareInput) SetKMSEncrypted(v bool) *CreateSMBFileShareInput {
 11673  	s.KMSEncrypted = &v
 11674  	return s
 11675  }
 11676  
 11677  // SetKMSKey sets the KMSKey field's value.
 11678  func (s *CreateSMBFileShareInput) SetKMSKey(v string) *CreateSMBFileShareInput {
 11679  	s.KMSKey = &v
 11680  	return s
 11681  }
 11682  
 11683  // SetLocationARN sets the LocationARN field's value.
 11684  func (s *CreateSMBFileShareInput) SetLocationARN(v string) *CreateSMBFileShareInput {
 11685  	s.LocationARN = &v
 11686  	return s
 11687  }
 11688  
 11689  // SetNotificationPolicy sets the NotificationPolicy field's value.
 11690  func (s *CreateSMBFileShareInput) SetNotificationPolicy(v string) *CreateSMBFileShareInput {
 11691  	s.NotificationPolicy = &v
 11692  	return s
 11693  }
 11694  
 11695  // SetObjectACL sets the ObjectACL field's value.
 11696  func (s *CreateSMBFileShareInput) SetObjectACL(v string) *CreateSMBFileShareInput {
 11697  	s.ObjectACL = &v
 11698  	return s
 11699  }
 11700  
 11701  // SetOplocksEnabled sets the OplocksEnabled field's value.
 11702  func (s *CreateSMBFileShareInput) SetOplocksEnabled(v bool) *CreateSMBFileShareInput {
 11703  	s.OplocksEnabled = &v
 11704  	return s
 11705  }
 11706  
 11707  // SetReadOnly sets the ReadOnly field's value.
 11708  func (s *CreateSMBFileShareInput) SetReadOnly(v bool) *CreateSMBFileShareInput {
 11709  	s.ReadOnly = &v
 11710  	return s
 11711  }
 11712  
 11713  // SetRequesterPays sets the RequesterPays field's value.
 11714  func (s *CreateSMBFileShareInput) SetRequesterPays(v bool) *CreateSMBFileShareInput {
 11715  	s.RequesterPays = &v
 11716  	return s
 11717  }
 11718  
 11719  // SetRole sets the Role field's value.
 11720  func (s *CreateSMBFileShareInput) SetRole(v string) *CreateSMBFileShareInput {
 11721  	s.Role = &v
 11722  	return s
 11723  }
 11724  
 11725  // SetSMBACLEnabled sets the SMBACLEnabled field's value.
 11726  func (s *CreateSMBFileShareInput) SetSMBACLEnabled(v bool) *CreateSMBFileShareInput {
 11727  	s.SMBACLEnabled = &v
 11728  	return s
 11729  }
 11730  
 11731  // SetTags sets the Tags field's value.
 11732  func (s *CreateSMBFileShareInput) SetTags(v []*Tag) *CreateSMBFileShareInput {
 11733  	s.Tags = v
 11734  	return s
 11735  }
 11736  
 11737  // SetVPCEndpointDNSName sets the VPCEndpointDNSName field's value.
 11738  func (s *CreateSMBFileShareInput) SetVPCEndpointDNSName(v string) *CreateSMBFileShareInput {
 11739  	s.VPCEndpointDNSName = &v
 11740  	return s
 11741  }
 11742  
 11743  // SetValidUserList sets the ValidUserList field's value.
 11744  func (s *CreateSMBFileShareInput) SetValidUserList(v []*string) *CreateSMBFileShareInput {
 11745  	s.ValidUserList = v
 11746  	return s
 11747  }
 11748  
 11749  // CreateSMBFileShareOutput
 11750  type CreateSMBFileShareOutput struct {
 11751  	_ struct{} `type:"structure"`
 11752  
 11753  	// The Amazon Resource Name (ARN) of the newly created file share.
 11754  	FileShareARN *string `min:"50" type:"string"`
 11755  }
 11756  
 11757  // String returns the string representation.
 11758  //
 11759  // API parameter values that are decorated as "sensitive" in the API will not
 11760  // be included in the string output. The member name will be present, but the
 11761  // value will be replaced with "sensitive".
 11762  func (s CreateSMBFileShareOutput) String() string {
 11763  	return awsutil.Prettify(s)
 11764  }
 11765  
 11766  // GoString returns the string representation.
 11767  //
 11768  // API parameter values that are decorated as "sensitive" in the API will not
 11769  // be included in the string output. The member name will be present, but the
 11770  // value will be replaced with "sensitive".
 11771  func (s CreateSMBFileShareOutput) GoString() string {
 11772  	return s.String()
 11773  }
 11774  
 11775  // SetFileShareARN sets the FileShareARN field's value.
 11776  func (s *CreateSMBFileShareOutput) SetFileShareARN(v string) *CreateSMBFileShareOutput {
 11777  	s.FileShareARN = &v
 11778  	return s
 11779  }
 11780  
 11781  type CreateSnapshotFromVolumeRecoveryPointInput struct {
 11782  	_ struct{} `type:"structure"`
 11783  
 11784  	// Textual description of the snapshot that appears in the Amazon EC2 console,
 11785  	// Elastic Block Store snapshots panel in the Description field, and in the
 11786  	// Storage Gateway snapshot Details pane, Description field.
 11787  	//
 11788  	// SnapshotDescription is a required field
 11789  	SnapshotDescription *string `min:"1" type:"string" required:"true"`
 11790  
 11791  	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
 11792  	// key-value pair.
 11793  	//
 11794  	// Valid characters for key and value are letters, spaces, and numbers representable
 11795  	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
 11796  	// maximum length of a tag's key is 128 characters, and the maximum length for
 11797  	// a tag's value is 256.
 11798  	Tags []*Tag `type:"list"`
 11799  
 11800  	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
 11801  	// operation to return to retrieve the TargetARN for specified VolumeARN.
 11802  	//
 11803  	// VolumeARN is a required field
 11804  	VolumeARN *string `min:"50" type:"string" required:"true"`
 11805  }
 11806  
 11807  // String returns the string representation.
 11808  //
 11809  // API parameter values that are decorated as "sensitive" in the API will not
 11810  // be included in the string output. The member name will be present, but the
 11811  // value will be replaced with "sensitive".
 11812  func (s CreateSnapshotFromVolumeRecoveryPointInput) String() string {
 11813  	return awsutil.Prettify(s)
 11814  }
 11815  
 11816  // GoString returns the string representation.
 11817  //
 11818  // API parameter values that are decorated as "sensitive" in the API will not
 11819  // be included in the string output. The member name will be present, but the
 11820  // value will be replaced with "sensitive".
 11821  func (s CreateSnapshotFromVolumeRecoveryPointInput) GoString() string {
 11822  	return s.String()
 11823  }
 11824  
 11825  // Validate inspects the fields of the type to determine if they are valid.
 11826  func (s *CreateSnapshotFromVolumeRecoveryPointInput) Validate() error {
 11827  	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotFromVolumeRecoveryPointInput"}
 11828  	if s.SnapshotDescription == nil {
 11829  		invalidParams.Add(request.NewErrParamRequired("SnapshotDescription"))
 11830  	}
 11831  	if s.SnapshotDescription != nil && len(*s.SnapshotDescription) < 1 {
 11832  		invalidParams.Add(request.NewErrParamMinLen("SnapshotDescription", 1))
 11833  	}
 11834  	if s.VolumeARN == nil {
 11835  		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
 11836  	}
 11837  	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
 11838  		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
 11839  	}
 11840  	if s.Tags != nil {
 11841  		for i, v := range s.Tags {
 11842  			if v == nil {
 11843  				continue
 11844  			}
 11845  			if err := v.Validate(); err != nil {
 11846  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 11847  			}
 11848  		}
 11849  	}
 11850  
 11851  	if invalidParams.Len() > 0 {
 11852  		return invalidParams
 11853  	}
 11854  	return nil
 11855  }
 11856  
 11857  // SetSnapshotDescription sets the SnapshotDescription field's value.
 11858  func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetSnapshotDescription(v string) *CreateSnapshotFromVolumeRecoveryPointInput {
 11859  	s.SnapshotDescription = &v
 11860  	return s
 11861  }
 11862  
 11863  // SetTags sets the Tags field's value.
 11864  func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetTags(v []*Tag) *CreateSnapshotFromVolumeRecoveryPointInput {
 11865  	s.Tags = v
 11866  	return s
 11867  }
 11868  
 11869  // SetVolumeARN sets the VolumeARN field's value.
 11870  func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetVolumeARN(v string) *CreateSnapshotFromVolumeRecoveryPointInput {
 11871  	s.VolumeARN = &v
 11872  	return s
 11873  }
 11874  
 11875  type CreateSnapshotFromVolumeRecoveryPointOutput struct {
 11876  	_ struct{} `type:"structure"`
 11877  
 11878  	// The ID of the snapshot.
 11879  	SnapshotId *string `type:"string"`
 11880  
 11881  	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
 11882  	// operation to return to retrieve the TargetARN for specified VolumeARN.
 11883  	VolumeARN *string `min:"50" type:"string"`
 11884  
 11885  	// The time the volume was created from the recovery point.
 11886  	VolumeRecoveryPointTime *string `type:"string"`
 11887  }
 11888  
 11889  // String returns the string representation.
 11890  //
 11891  // API parameter values that are decorated as "sensitive" in the API will not
 11892  // be included in the string output. The member name will be present, but the
 11893  // value will be replaced with "sensitive".
 11894  func (s CreateSnapshotFromVolumeRecoveryPointOutput) String() string {
 11895  	return awsutil.Prettify(s)
 11896  }
 11897  
 11898  // GoString returns the string representation.
 11899  //
 11900  // API parameter values that are decorated as "sensitive" in the API will not
 11901  // be included in the string output. The member name will be present, but the
 11902  // value will be replaced with "sensitive".
 11903  func (s CreateSnapshotFromVolumeRecoveryPointOutput) GoString() string {
 11904  	return s.String()
 11905  }
 11906  
 11907  // SetSnapshotId sets the SnapshotId field's value.
 11908  func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetSnapshotId(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
 11909  	s.SnapshotId = &v
 11910  	return s
 11911  }
 11912  
 11913  // SetVolumeARN sets the VolumeARN field's value.
 11914  func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetVolumeARN(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
 11915  	s.VolumeARN = &v
 11916  	return s
 11917  }
 11918  
 11919  // SetVolumeRecoveryPointTime sets the VolumeRecoveryPointTime field's value.
 11920  func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetVolumeRecoveryPointTime(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
 11921  	s.VolumeRecoveryPointTime = &v
 11922  	return s
 11923  }
 11924  
 11925  // A JSON object containing one or more of the following fields:
 11926  //
 11927  //    * CreateSnapshotInput$SnapshotDescription
 11928  //
 11929  //    * CreateSnapshotInput$VolumeARN
 11930  type CreateSnapshotInput struct {
 11931  	_ struct{} `type:"structure"`
 11932  
 11933  	// Textual description of the snapshot that appears in the Amazon EC2 console,
 11934  	// Elastic Block Store snapshots panel in the Description field, and in the
 11935  	// Storage Gateway snapshot Details pane, Description field.
 11936  	//
 11937  	// SnapshotDescription is a required field
 11938  	SnapshotDescription *string `min:"1" type:"string" required:"true"`
 11939  
 11940  	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
 11941  	// key-value pair.
 11942  	//
 11943  	// Valid characters for key and value are letters, spaces, and numbers representable
 11944  	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
 11945  	// maximum length of a tag's key is 128 characters, and the maximum length for
 11946  	// a tag's value is 256.
 11947  	Tags []*Tag `type:"list"`
 11948  
 11949  	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
 11950  	// to return a list of gateway volumes.
 11951  	//
 11952  	// VolumeARN is a required field
 11953  	VolumeARN *string `min:"50" type:"string" required:"true"`
 11954  }
 11955  
 11956  // String returns the string representation.
 11957  //
 11958  // API parameter values that are decorated as "sensitive" in the API will not
 11959  // be included in the string output. The member name will be present, but the
 11960  // value will be replaced with "sensitive".
 11961  func (s CreateSnapshotInput) String() string {
 11962  	return awsutil.Prettify(s)
 11963  }
 11964  
 11965  // GoString returns the string representation.
 11966  //
 11967  // API parameter values that are decorated as "sensitive" in the API will not
 11968  // be included in the string output. The member name will be present, but the
 11969  // value will be replaced with "sensitive".
 11970  func (s CreateSnapshotInput) GoString() string {
 11971  	return s.String()
 11972  }
 11973  
 11974  // Validate inspects the fields of the type to determine if they are valid.
 11975  func (s *CreateSnapshotInput) Validate() error {
 11976  	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotInput"}
 11977  	if s.SnapshotDescription == nil {
 11978  		invalidParams.Add(request.NewErrParamRequired("SnapshotDescription"))
 11979  	}
 11980  	if s.SnapshotDescription != nil && len(*s.SnapshotDescription) < 1 {
 11981  		invalidParams.Add(request.NewErrParamMinLen("SnapshotDescription", 1))
 11982  	}
 11983  	if s.VolumeARN == nil {
 11984  		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
 11985  	}
 11986  	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
 11987  		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
 11988  	}
 11989  	if s.Tags != nil {
 11990  		for i, v := range s.Tags {
 11991  			if v == nil {
 11992  				continue
 11993  			}
 11994  			if err := v.Validate(); err != nil {
 11995  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 11996  			}
 11997  		}
 11998  	}
 11999  
 12000  	if invalidParams.Len() > 0 {
 12001  		return invalidParams
 12002  	}
 12003  	return nil
 12004  }
 12005  
 12006  // SetSnapshotDescription sets the SnapshotDescription field's value.
 12007  func (s *CreateSnapshotInput) SetSnapshotDescription(v string) *CreateSnapshotInput {
 12008  	s.SnapshotDescription = &v
 12009  	return s
 12010  }
 12011  
 12012  // SetTags sets the Tags field's value.
 12013  func (s *CreateSnapshotInput) SetTags(v []*Tag) *CreateSnapshotInput {
 12014  	s.Tags = v
 12015  	return s
 12016  }
 12017  
 12018  // SetVolumeARN sets the VolumeARN field's value.
 12019  func (s *CreateSnapshotInput) SetVolumeARN(v string) *CreateSnapshotInput {
 12020  	s.VolumeARN = &v
 12021  	return s
 12022  }
 12023  
 12024  // A JSON object containing the following fields:
 12025  type CreateSnapshotOutput struct {
 12026  	_ struct{} `type:"structure"`
 12027  
 12028  	// The snapshot ID that is used to refer to the snapshot in future operations
 12029  	// such as describing snapshots (Amazon Elastic Compute Cloud API DescribeSnapshots)
 12030  	// or creating a volume from a snapshot (CreateStorediSCSIVolume).
 12031  	SnapshotId *string `type:"string"`
 12032  
 12033  	// The Amazon Resource Name (ARN) of the volume of which the snapshot was taken.
 12034  	VolumeARN *string `min:"50" type:"string"`
 12035  }
 12036  
 12037  // String returns the string representation.
 12038  //
 12039  // API parameter values that are decorated as "sensitive" in the API will not
 12040  // be included in the string output. The member name will be present, but the
 12041  // value will be replaced with "sensitive".
 12042  func (s CreateSnapshotOutput) String() string {
 12043  	return awsutil.Prettify(s)
 12044  }
 12045  
 12046  // GoString returns the string representation.
 12047  //
 12048  // API parameter values that are decorated as "sensitive" in the API will not
 12049  // be included in the string output. The member name will be present, but the
 12050  // value will be replaced with "sensitive".
 12051  func (s CreateSnapshotOutput) GoString() string {
 12052  	return s.String()
 12053  }
 12054  
 12055  // SetSnapshotId sets the SnapshotId field's value.
 12056  func (s *CreateSnapshotOutput) SetSnapshotId(v string) *CreateSnapshotOutput {
 12057  	s.SnapshotId = &v
 12058  	return s
 12059  }
 12060  
 12061  // SetVolumeARN sets the VolumeARN field's value.
 12062  func (s *CreateSnapshotOutput) SetVolumeARN(v string) *CreateSnapshotOutput {
 12063  	s.VolumeARN = &v
 12064  	return s
 12065  }
 12066  
 12067  // A JSON object containing one or more of the following fields:
 12068  //
 12069  //    * CreateStorediSCSIVolumeInput$DiskId
 12070  //
 12071  //    * CreateStorediSCSIVolumeInput$NetworkInterfaceId
 12072  //
 12073  //    * CreateStorediSCSIVolumeInput$PreserveExistingData
 12074  //
 12075  //    * CreateStorediSCSIVolumeInput$SnapshotId
 12076  //
 12077  //    * CreateStorediSCSIVolumeInput$TargetName
 12078  type CreateStorediSCSIVolumeInput struct {
 12079  	_ struct{} `type:"structure"`
 12080  
 12081  	// The unique identifier for the gateway local disk that is configured as a
 12082  	// stored volume. Use ListLocalDisks (https://docs.aws.amazon.com/storagegateway/latest/userguide/API_ListLocalDisks.html)
 12083  	// to list disk IDs for a gateway.
 12084  	//
 12085  	// DiskId is a required field
 12086  	DiskId *string `min:"1" type:"string" required:"true"`
 12087  
 12088  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 12089  	// to return a list of gateways for your account and Region.
 12090  	//
 12091  	// GatewayARN is a required field
 12092  	GatewayARN *string `min:"50" type:"string" required:"true"`
 12093  
 12094  	// Set to true to use Amazon S3 server-side encryption with your own KMS key,
 12095  	// or false to use a key managed by Amazon S3. Optional.
 12096  	//
 12097  	// Valid Values: true | false
 12098  	KMSEncrypted *bool `type:"boolean"`
 12099  
 12100  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 12101  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 12102  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 12103  	KMSKey *string `min:"7" type:"string"`
 12104  
 12105  	// The network interface of the gateway on which to expose the iSCSI target.
 12106  	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
 12107  	// list of the network interfaces available on a gateway.
 12108  	//
 12109  	// Valid Values: A valid IP address.
 12110  	//
 12111  	// NetworkInterfaceId is a required field
 12112  	NetworkInterfaceId *string `type:"string" required:"true"`
 12113  
 12114  	// Set to true if you want to preserve the data on the local disk. Otherwise,
 12115  	// set to false to create an empty volume.
 12116  	//
 12117  	// Valid Values: true | false
 12118  	//
 12119  	// PreserveExistingData is a required field
 12120  	PreserveExistingData *bool `type:"boolean" required:"true"`
 12121  
 12122  	// The snapshot ID (e.g., "snap-1122aabb") of the snapshot to restore as the
 12123  	// new stored volume. Specify this field if you want to create the iSCSI storage
 12124  	// volume from a snapshot; otherwise, do not include this field. To list snapshots
 12125  	// for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
 12126  	// in the Amazon Elastic Compute Cloud API Reference.
 12127  	SnapshotId *string `type:"string"`
 12128  
 12129  	// A list of up to 50 tags that can be assigned to a stored volume. Each tag
 12130  	// is a key-value pair.
 12131  	//
 12132  	// Valid characters for key and value are letters, spaces, and numbers representable
 12133  	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
 12134  	// maximum length of a tag's key is 128 characters, and the maximum length for
 12135  	// a tag's value is 256.
 12136  	Tags []*Tag `type:"list"`
 12137  
 12138  	// The name of the iSCSI target used by an initiator to connect to a volume
 12139  	// and used as a suffix for the target ARN. For example, specifying TargetName
 12140  	// as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
 12141  	// The target name must be unique across all volumes on a gateway.
 12142  	//
 12143  	// If you don't specify a value, Storage Gateway uses the value that was previously
 12144  	// used for this volume as the new target name.
 12145  	//
 12146  	// TargetName is a required field
 12147  	TargetName *string `min:"1" type:"string" required:"true"`
 12148  }
 12149  
 12150  // String returns the string representation.
 12151  //
 12152  // API parameter values that are decorated as "sensitive" in the API will not
 12153  // be included in the string output. The member name will be present, but the
 12154  // value will be replaced with "sensitive".
 12155  func (s CreateStorediSCSIVolumeInput) String() string {
 12156  	return awsutil.Prettify(s)
 12157  }
 12158  
 12159  // GoString returns the string representation.
 12160  //
 12161  // API parameter values that are decorated as "sensitive" in the API will not
 12162  // be included in the string output. The member name will be present, but the
 12163  // value will be replaced with "sensitive".
 12164  func (s CreateStorediSCSIVolumeInput) GoString() string {
 12165  	return s.String()
 12166  }
 12167  
 12168  // Validate inspects the fields of the type to determine if they are valid.
 12169  func (s *CreateStorediSCSIVolumeInput) Validate() error {
 12170  	invalidParams := request.ErrInvalidParams{Context: "CreateStorediSCSIVolumeInput"}
 12171  	if s.DiskId == nil {
 12172  		invalidParams.Add(request.NewErrParamRequired("DiskId"))
 12173  	}
 12174  	if s.DiskId != nil && len(*s.DiskId) < 1 {
 12175  		invalidParams.Add(request.NewErrParamMinLen("DiskId", 1))
 12176  	}
 12177  	if s.GatewayARN == nil {
 12178  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 12179  	}
 12180  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 12181  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 12182  	}
 12183  	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
 12184  		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
 12185  	}
 12186  	if s.NetworkInterfaceId == nil {
 12187  		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
 12188  	}
 12189  	if s.PreserveExistingData == nil {
 12190  		invalidParams.Add(request.NewErrParamRequired("PreserveExistingData"))
 12191  	}
 12192  	if s.TargetName == nil {
 12193  		invalidParams.Add(request.NewErrParamRequired("TargetName"))
 12194  	}
 12195  	if s.TargetName != nil && len(*s.TargetName) < 1 {
 12196  		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
 12197  	}
 12198  	if s.Tags != nil {
 12199  		for i, v := range s.Tags {
 12200  			if v == nil {
 12201  				continue
 12202  			}
 12203  			if err := v.Validate(); err != nil {
 12204  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 12205  			}
 12206  		}
 12207  	}
 12208  
 12209  	if invalidParams.Len() > 0 {
 12210  		return invalidParams
 12211  	}
 12212  	return nil
 12213  }
 12214  
 12215  // SetDiskId sets the DiskId field's value.
 12216  func (s *CreateStorediSCSIVolumeInput) SetDiskId(v string) *CreateStorediSCSIVolumeInput {
 12217  	s.DiskId = &v
 12218  	return s
 12219  }
 12220  
 12221  // SetGatewayARN sets the GatewayARN field's value.
 12222  func (s *CreateStorediSCSIVolumeInput) SetGatewayARN(v string) *CreateStorediSCSIVolumeInput {
 12223  	s.GatewayARN = &v
 12224  	return s
 12225  }
 12226  
 12227  // SetKMSEncrypted sets the KMSEncrypted field's value.
 12228  func (s *CreateStorediSCSIVolumeInput) SetKMSEncrypted(v bool) *CreateStorediSCSIVolumeInput {
 12229  	s.KMSEncrypted = &v
 12230  	return s
 12231  }
 12232  
 12233  // SetKMSKey sets the KMSKey field's value.
 12234  func (s *CreateStorediSCSIVolumeInput) SetKMSKey(v string) *CreateStorediSCSIVolumeInput {
 12235  	s.KMSKey = &v
 12236  	return s
 12237  }
 12238  
 12239  // SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
 12240  func (s *CreateStorediSCSIVolumeInput) SetNetworkInterfaceId(v string) *CreateStorediSCSIVolumeInput {
 12241  	s.NetworkInterfaceId = &v
 12242  	return s
 12243  }
 12244  
 12245  // SetPreserveExistingData sets the PreserveExistingData field's value.
 12246  func (s *CreateStorediSCSIVolumeInput) SetPreserveExistingData(v bool) *CreateStorediSCSIVolumeInput {
 12247  	s.PreserveExistingData = &v
 12248  	return s
 12249  }
 12250  
 12251  // SetSnapshotId sets the SnapshotId field's value.
 12252  func (s *CreateStorediSCSIVolumeInput) SetSnapshotId(v string) *CreateStorediSCSIVolumeInput {
 12253  	s.SnapshotId = &v
 12254  	return s
 12255  }
 12256  
 12257  // SetTags sets the Tags field's value.
 12258  func (s *CreateStorediSCSIVolumeInput) SetTags(v []*Tag) *CreateStorediSCSIVolumeInput {
 12259  	s.Tags = v
 12260  	return s
 12261  }
 12262  
 12263  // SetTargetName sets the TargetName field's value.
 12264  func (s *CreateStorediSCSIVolumeInput) SetTargetName(v string) *CreateStorediSCSIVolumeInput {
 12265  	s.TargetName = &v
 12266  	return s
 12267  }
 12268  
 12269  // A JSON object containing the following fields:
 12270  type CreateStorediSCSIVolumeOutput struct {
 12271  	_ struct{} `type:"structure"`
 12272  
 12273  	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
 12274  	// name that initiators can use to connect to the target.
 12275  	TargetARN *string `min:"50" type:"string"`
 12276  
 12277  	// The Amazon Resource Name (ARN) of the configured volume.
 12278  	VolumeARN *string `min:"50" type:"string"`
 12279  
 12280  	// The size of the volume in bytes.
 12281  	VolumeSizeInBytes *int64 `type:"long"`
 12282  }
 12283  
 12284  // String returns the string representation.
 12285  //
 12286  // API parameter values that are decorated as "sensitive" in the API will not
 12287  // be included in the string output. The member name will be present, but the
 12288  // value will be replaced with "sensitive".
 12289  func (s CreateStorediSCSIVolumeOutput) String() string {
 12290  	return awsutil.Prettify(s)
 12291  }
 12292  
 12293  // GoString returns the string representation.
 12294  //
 12295  // API parameter values that are decorated as "sensitive" in the API will not
 12296  // be included in the string output. The member name will be present, but the
 12297  // value will be replaced with "sensitive".
 12298  func (s CreateStorediSCSIVolumeOutput) GoString() string {
 12299  	return s.String()
 12300  }
 12301  
 12302  // SetTargetARN sets the TargetARN field's value.
 12303  func (s *CreateStorediSCSIVolumeOutput) SetTargetARN(v string) *CreateStorediSCSIVolumeOutput {
 12304  	s.TargetARN = &v
 12305  	return s
 12306  }
 12307  
 12308  // SetVolumeARN sets the VolumeARN field's value.
 12309  func (s *CreateStorediSCSIVolumeOutput) SetVolumeARN(v string) *CreateStorediSCSIVolumeOutput {
 12310  	s.VolumeARN = &v
 12311  	return s
 12312  }
 12313  
 12314  // SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
 12315  func (s *CreateStorediSCSIVolumeOutput) SetVolumeSizeInBytes(v int64) *CreateStorediSCSIVolumeOutput {
 12316  	s.VolumeSizeInBytes = &v
 12317  	return s
 12318  }
 12319  
 12320  type CreateTapePoolInput struct {
 12321  	_ struct{} `type:"structure"`
 12322  
 12323  	// The name of the new custom tape pool.
 12324  	//
 12325  	// PoolName is a required field
 12326  	PoolName *string `min:"1" type:"string" required:"true"`
 12327  
 12328  	// Tape retention lock time is set in days. Tape retention lock can be enabled
 12329  	// for up to 100 years (36,500 days).
 12330  	RetentionLockTimeInDays *int64 `type:"integer"`
 12331  
 12332  	// Tape retention lock can be configured in two modes. When configured in governance
 12333  	// mode, accounts with specific IAM permissions are authorized to remove the
 12334  	// tape retention lock from archived virtual tapes. When configured in compliance
 12335  	// mode, the tape retention lock cannot be removed by any user, including the
 12336  	// root account.
 12337  	RetentionLockType *string `type:"string" enum:"RetentionLockType"`
 12338  
 12339  	// The storage class that is associated with the new custom pool. When you use
 12340  	// your backup application to eject the tape, the tape is archived directly
 12341  	// into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds
 12342  	// to the pool.
 12343  	//
 12344  	// StorageClass is a required field
 12345  	StorageClass *string `type:"string" required:"true" enum:"TapeStorageClass"`
 12346  
 12347  	// A list of up to 50 tags that can be assigned to tape pool. Each tag is a
 12348  	// key-value pair.
 12349  	//
 12350  	// Valid characters for key and value are letters, spaces, and numbers representable
 12351  	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
 12352  	// maximum length of a tag's key is 128 characters, and the maximum length for
 12353  	// a tag's value is 256.
 12354  	Tags []*Tag `type:"list"`
 12355  }
 12356  
 12357  // String returns the string representation.
 12358  //
 12359  // API parameter values that are decorated as "sensitive" in the API will not
 12360  // be included in the string output. The member name will be present, but the
 12361  // value will be replaced with "sensitive".
 12362  func (s CreateTapePoolInput) String() string {
 12363  	return awsutil.Prettify(s)
 12364  }
 12365  
 12366  // GoString returns the string representation.
 12367  //
 12368  // API parameter values that are decorated as "sensitive" in the API will not
 12369  // be included in the string output. The member name will be present, but the
 12370  // value will be replaced with "sensitive".
 12371  func (s CreateTapePoolInput) GoString() string {
 12372  	return s.String()
 12373  }
 12374  
 12375  // Validate inspects the fields of the type to determine if they are valid.
 12376  func (s *CreateTapePoolInput) Validate() error {
 12377  	invalidParams := request.ErrInvalidParams{Context: "CreateTapePoolInput"}
 12378  	if s.PoolName == nil {
 12379  		invalidParams.Add(request.NewErrParamRequired("PoolName"))
 12380  	}
 12381  	if s.PoolName != nil && len(*s.PoolName) < 1 {
 12382  		invalidParams.Add(request.NewErrParamMinLen("PoolName", 1))
 12383  	}
 12384  	if s.StorageClass == nil {
 12385  		invalidParams.Add(request.NewErrParamRequired("StorageClass"))
 12386  	}
 12387  	if s.Tags != nil {
 12388  		for i, v := range s.Tags {
 12389  			if v == nil {
 12390  				continue
 12391  			}
 12392  			if err := v.Validate(); err != nil {
 12393  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 12394  			}
 12395  		}
 12396  	}
 12397  
 12398  	if invalidParams.Len() > 0 {
 12399  		return invalidParams
 12400  	}
 12401  	return nil
 12402  }
 12403  
 12404  // SetPoolName sets the PoolName field's value.
 12405  func (s *CreateTapePoolInput) SetPoolName(v string) *CreateTapePoolInput {
 12406  	s.PoolName = &v
 12407  	return s
 12408  }
 12409  
 12410  // SetRetentionLockTimeInDays sets the RetentionLockTimeInDays field's value.
 12411  func (s *CreateTapePoolInput) SetRetentionLockTimeInDays(v int64) *CreateTapePoolInput {
 12412  	s.RetentionLockTimeInDays = &v
 12413  	return s
 12414  }
 12415  
 12416  // SetRetentionLockType sets the RetentionLockType field's value.
 12417  func (s *CreateTapePoolInput) SetRetentionLockType(v string) *CreateTapePoolInput {
 12418  	s.RetentionLockType = &v
 12419  	return s
 12420  }
 12421  
 12422  // SetStorageClass sets the StorageClass field's value.
 12423  func (s *CreateTapePoolInput) SetStorageClass(v string) *CreateTapePoolInput {
 12424  	s.StorageClass = &v
 12425  	return s
 12426  }
 12427  
 12428  // SetTags sets the Tags field's value.
 12429  func (s *CreateTapePoolInput) SetTags(v []*Tag) *CreateTapePoolInput {
 12430  	s.Tags = v
 12431  	return s
 12432  }
 12433  
 12434  type CreateTapePoolOutput struct {
 12435  	_ struct{} `type:"structure"`
 12436  
 12437  	// The unique Amazon Resource Name (ARN) that represents the custom tape pool.
 12438  	// Use the ListTapePools operation to return a list of tape pools for your account
 12439  	// and Region.
 12440  	PoolARN *string `min:"50" type:"string"`
 12441  }
 12442  
 12443  // String returns the string representation.
 12444  //
 12445  // API parameter values that are decorated as "sensitive" in the API will not
 12446  // be included in the string output. The member name will be present, but the
 12447  // value will be replaced with "sensitive".
 12448  func (s CreateTapePoolOutput) String() string {
 12449  	return awsutil.Prettify(s)
 12450  }
 12451  
 12452  // GoString returns the string representation.
 12453  //
 12454  // API parameter values that are decorated as "sensitive" in the API will not
 12455  // be included in the string output. The member name will be present, but the
 12456  // value will be replaced with "sensitive".
 12457  func (s CreateTapePoolOutput) GoString() string {
 12458  	return s.String()
 12459  }
 12460  
 12461  // SetPoolARN sets the PoolARN field's value.
 12462  func (s *CreateTapePoolOutput) SetPoolARN(v string) *CreateTapePoolOutput {
 12463  	s.PoolARN = &v
 12464  	return s
 12465  }
 12466  
 12467  // CreateTapeWithBarcodeInput
 12468  type CreateTapeWithBarcodeInput struct {
 12469  	_ struct{} `type:"structure"`
 12470  
 12471  	// The unique Amazon Resource Name (ARN) that represents the gateway to associate
 12472  	// the virtual tape with. Use the ListGateways operation to return a list of
 12473  	// gateways for your account and Region.
 12474  	//
 12475  	// GatewayARN is a required field
 12476  	GatewayARN *string `min:"50" type:"string" required:"true"`
 12477  
 12478  	// Set to true to use Amazon S3 server-side encryption with your own KMS key,
 12479  	// or false to use a key managed by Amazon S3. Optional.
 12480  	//
 12481  	// Valid Values: true | false
 12482  	KMSEncrypted *bool `type:"boolean"`
 12483  
 12484  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 12485  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 12486  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 12487  	KMSKey *string `min:"7" type:"string"`
 12488  
 12489  	// The ID of the pool that you want to add your tape to for archiving. The tape
 12490  	// in this pool is archived in the S3 storage class that is associated with
 12491  	// the pool. When you use your backup application to eject the tape, the tape
 12492  	// is archived directly into the storage class (S3 Glacier or S3 Deep Archive)
 12493  	// that corresponds to the pool.
 12494  	//
 12495  	// Valid Values: GLACIER | DEEP_ARCHIVE
 12496  	PoolId *string `min:"1" type:"string"`
 12497  
 12498  	// A list of up to 50 tags that can be assigned to a virtual tape that has a
 12499  	// barcode. Each tag is a key-value pair.
 12500  	//
 12501  	// Valid characters for key and value are letters, spaces, and numbers representable
 12502  	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
 12503  	// maximum length of a tag's key is 128 characters, and the maximum length for
 12504  	// a tag's value is 256.
 12505  	Tags []*Tag `type:"list"`
 12506  
 12507  	// The barcode that you want to assign to the tape.
 12508  	//
 12509  	// Barcodes cannot be reused. This includes barcodes used for tapes that have
 12510  	// been deleted.
 12511  	//
 12512  	// TapeBarcode is a required field
 12513  	TapeBarcode *string `min:"7" type:"string" required:"true"`
 12514  
 12515  	// The size, in bytes, of the virtual tape that you want to create.
 12516  	//
 12517  	// The size must be aligned by gigabyte (1024*1024*1024 bytes).
 12518  	//
 12519  	// TapeSizeInBytes is a required field
 12520  	TapeSizeInBytes *int64 `type:"long" required:"true"`
 12521  
 12522  	// Set to TRUE if the tape you are creating is to be configured as a write-once-read-many
 12523  	// (WORM) tape.
 12524  	Worm *bool `type:"boolean"`
 12525  }
 12526  
 12527  // String returns the string representation.
 12528  //
 12529  // API parameter values that are decorated as "sensitive" in the API will not
 12530  // be included in the string output. The member name will be present, but the
 12531  // value will be replaced with "sensitive".
 12532  func (s CreateTapeWithBarcodeInput) String() string {
 12533  	return awsutil.Prettify(s)
 12534  }
 12535  
 12536  // GoString returns the string representation.
 12537  //
 12538  // API parameter values that are decorated as "sensitive" in the API will not
 12539  // be included in the string output. The member name will be present, but the
 12540  // value will be replaced with "sensitive".
 12541  func (s CreateTapeWithBarcodeInput) GoString() string {
 12542  	return s.String()
 12543  }
 12544  
 12545  // Validate inspects the fields of the type to determine if they are valid.
 12546  func (s *CreateTapeWithBarcodeInput) Validate() error {
 12547  	invalidParams := request.ErrInvalidParams{Context: "CreateTapeWithBarcodeInput"}
 12548  	if s.GatewayARN == nil {
 12549  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 12550  	}
 12551  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 12552  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 12553  	}
 12554  	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
 12555  		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
 12556  	}
 12557  	if s.PoolId != nil && len(*s.PoolId) < 1 {
 12558  		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
 12559  	}
 12560  	if s.TapeBarcode == nil {
 12561  		invalidParams.Add(request.NewErrParamRequired("TapeBarcode"))
 12562  	}
 12563  	if s.TapeBarcode != nil && len(*s.TapeBarcode) < 7 {
 12564  		invalidParams.Add(request.NewErrParamMinLen("TapeBarcode", 7))
 12565  	}
 12566  	if s.TapeSizeInBytes == nil {
 12567  		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
 12568  	}
 12569  	if s.Tags != nil {
 12570  		for i, v := range s.Tags {
 12571  			if v == nil {
 12572  				continue
 12573  			}
 12574  			if err := v.Validate(); err != nil {
 12575  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 12576  			}
 12577  		}
 12578  	}
 12579  
 12580  	if invalidParams.Len() > 0 {
 12581  		return invalidParams
 12582  	}
 12583  	return nil
 12584  }
 12585  
 12586  // SetGatewayARN sets the GatewayARN field's value.
 12587  func (s *CreateTapeWithBarcodeInput) SetGatewayARN(v string) *CreateTapeWithBarcodeInput {
 12588  	s.GatewayARN = &v
 12589  	return s
 12590  }
 12591  
 12592  // SetKMSEncrypted sets the KMSEncrypted field's value.
 12593  func (s *CreateTapeWithBarcodeInput) SetKMSEncrypted(v bool) *CreateTapeWithBarcodeInput {
 12594  	s.KMSEncrypted = &v
 12595  	return s
 12596  }
 12597  
 12598  // SetKMSKey sets the KMSKey field's value.
 12599  func (s *CreateTapeWithBarcodeInput) SetKMSKey(v string) *CreateTapeWithBarcodeInput {
 12600  	s.KMSKey = &v
 12601  	return s
 12602  }
 12603  
 12604  // SetPoolId sets the PoolId field's value.
 12605  func (s *CreateTapeWithBarcodeInput) SetPoolId(v string) *CreateTapeWithBarcodeInput {
 12606  	s.PoolId = &v
 12607  	return s
 12608  }
 12609  
 12610  // SetTags sets the Tags field's value.
 12611  func (s *CreateTapeWithBarcodeInput) SetTags(v []*Tag) *CreateTapeWithBarcodeInput {
 12612  	s.Tags = v
 12613  	return s
 12614  }
 12615  
 12616  // SetTapeBarcode sets the TapeBarcode field's value.
 12617  func (s *CreateTapeWithBarcodeInput) SetTapeBarcode(v string) *CreateTapeWithBarcodeInput {
 12618  	s.TapeBarcode = &v
 12619  	return s
 12620  }
 12621  
 12622  // SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
 12623  func (s *CreateTapeWithBarcodeInput) SetTapeSizeInBytes(v int64) *CreateTapeWithBarcodeInput {
 12624  	s.TapeSizeInBytes = &v
 12625  	return s
 12626  }
 12627  
 12628  // SetWorm sets the Worm field's value.
 12629  func (s *CreateTapeWithBarcodeInput) SetWorm(v bool) *CreateTapeWithBarcodeInput {
 12630  	s.Worm = &v
 12631  	return s
 12632  }
 12633  
 12634  // CreateTapeOutput
 12635  type CreateTapeWithBarcodeOutput struct {
 12636  	_ struct{} `type:"structure"`
 12637  
 12638  	// A unique Amazon Resource Name (ARN) that represents the virtual tape that
 12639  	// was created.
 12640  	TapeARN *string `min:"50" type:"string"`
 12641  }
 12642  
 12643  // String returns the string representation.
 12644  //
 12645  // API parameter values that are decorated as "sensitive" in the API will not
 12646  // be included in the string output. The member name will be present, but the
 12647  // value will be replaced with "sensitive".
 12648  func (s CreateTapeWithBarcodeOutput) String() string {
 12649  	return awsutil.Prettify(s)
 12650  }
 12651  
 12652  // GoString returns the string representation.
 12653  //
 12654  // API parameter values that are decorated as "sensitive" in the API will not
 12655  // be included in the string output. The member name will be present, but the
 12656  // value will be replaced with "sensitive".
 12657  func (s CreateTapeWithBarcodeOutput) GoString() string {
 12658  	return s.String()
 12659  }
 12660  
 12661  // SetTapeARN sets the TapeARN field's value.
 12662  func (s *CreateTapeWithBarcodeOutput) SetTapeARN(v string) *CreateTapeWithBarcodeOutput {
 12663  	s.TapeARN = &v
 12664  	return s
 12665  }
 12666  
 12667  // CreateTapesInput
 12668  type CreateTapesInput struct {
 12669  	_ struct{} `type:"structure"`
 12670  
 12671  	// A unique identifier that you use to retry a request. If you retry a request,
 12672  	// use the same ClientToken you specified in the initial request.
 12673  	//
 12674  	// Using the same ClientToken prevents creating the tape multiple times.
 12675  	//
 12676  	// ClientToken is a required field
 12677  	ClientToken *string `min:"5" type:"string" required:"true"`
 12678  
 12679  	// The unique Amazon Resource Name (ARN) that represents the gateway to associate
 12680  	// the virtual tapes with. Use the ListGateways operation to return a list of
 12681  	// gateways for your account and Region.
 12682  	//
 12683  	// GatewayARN is a required field
 12684  	GatewayARN *string `min:"50" type:"string" required:"true"`
 12685  
 12686  	// Set to true to use Amazon S3 server-side encryption with your own KMS key,
 12687  	// or false to use a key managed by Amazon S3. Optional.
 12688  	//
 12689  	// Valid Values: true | false
 12690  	KMSEncrypted *bool `type:"boolean"`
 12691  
 12692  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 12693  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 12694  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 12695  	KMSKey *string `min:"7" type:"string"`
 12696  
 12697  	// The number of virtual tapes that you want to create.
 12698  	//
 12699  	// NumTapesToCreate is a required field
 12700  	NumTapesToCreate *int64 `min:"1" type:"integer" required:"true"`
 12701  
 12702  	// The ID of the pool that you want to add your tape to for archiving. The tape
 12703  	// in this pool is archived in the S3 storage class that is associated with
 12704  	// the pool. When you use your backup application to eject the tape, the tape
 12705  	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
 12706  	// Archive) that corresponds to the pool.
 12707  	//
 12708  	// Valid Values: GLACIER | DEEP_ARCHIVE
 12709  	PoolId *string `min:"1" type:"string"`
 12710  
 12711  	// A list of up to 50 tags that can be assigned to a virtual tape. Each tag
 12712  	// is a key-value pair.
 12713  	//
 12714  	// Valid characters for key and value are letters, spaces, and numbers representable
 12715  	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
 12716  	// maximum length of a tag's key is 128 characters, and the maximum length for
 12717  	// a tag's value is 256.
 12718  	Tags []*Tag `type:"list"`
 12719  
 12720  	// A prefix that you append to the barcode of the virtual tape you are creating.
 12721  	// This prefix makes the barcode unique.
 12722  	//
 12723  	// The prefix must be 1-4 characters in length and must be one of the uppercase
 12724  	// letters from A to Z.
 12725  	//
 12726  	// TapeBarcodePrefix is a required field
 12727  	TapeBarcodePrefix *string `min:"1" type:"string" required:"true"`
 12728  
 12729  	// The size, in bytes, of the virtual tapes that you want to create.
 12730  	//
 12731  	// The size must be aligned by gigabyte (1024*1024*1024 bytes).
 12732  	//
 12733  	// TapeSizeInBytes is a required field
 12734  	TapeSizeInBytes *int64 `type:"long" required:"true"`
 12735  
 12736  	// Set to TRUE if the tape you are creating is to be configured as a write-once-read-many
 12737  	// (WORM) tape.
 12738  	Worm *bool `type:"boolean"`
 12739  }
 12740  
 12741  // String returns the string representation.
 12742  //
 12743  // API parameter values that are decorated as "sensitive" in the API will not
 12744  // be included in the string output. The member name will be present, but the
 12745  // value will be replaced with "sensitive".
 12746  func (s CreateTapesInput) String() string {
 12747  	return awsutil.Prettify(s)
 12748  }
 12749  
 12750  // GoString returns the string representation.
 12751  //
 12752  // API parameter values that are decorated as "sensitive" in the API will not
 12753  // be included in the string output. The member name will be present, but the
 12754  // value will be replaced with "sensitive".
 12755  func (s CreateTapesInput) GoString() string {
 12756  	return s.String()
 12757  }
 12758  
 12759  // Validate inspects the fields of the type to determine if they are valid.
 12760  func (s *CreateTapesInput) Validate() error {
 12761  	invalidParams := request.ErrInvalidParams{Context: "CreateTapesInput"}
 12762  	if s.ClientToken == nil {
 12763  		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
 12764  	}
 12765  	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
 12766  		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
 12767  	}
 12768  	if s.GatewayARN == nil {
 12769  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 12770  	}
 12771  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 12772  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 12773  	}
 12774  	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
 12775  		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
 12776  	}
 12777  	if s.NumTapesToCreate == nil {
 12778  		invalidParams.Add(request.NewErrParamRequired("NumTapesToCreate"))
 12779  	}
 12780  	if s.NumTapesToCreate != nil && *s.NumTapesToCreate < 1 {
 12781  		invalidParams.Add(request.NewErrParamMinValue("NumTapesToCreate", 1))
 12782  	}
 12783  	if s.PoolId != nil && len(*s.PoolId) < 1 {
 12784  		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
 12785  	}
 12786  	if s.TapeBarcodePrefix == nil {
 12787  		invalidParams.Add(request.NewErrParamRequired("TapeBarcodePrefix"))
 12788  	}
 12789  	if s.TapeBarcodePrefix != nil && len(*s.TapeBarcodePrefix) < 1 {
 12790  		invalidParams.Add(request.NewErrParamMinLen("TapeBarcodePrefix", 1))
 12791  	}
 12792  	if s.TapeSizeInBytes == nil {
 12793  		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
 12794  	}
 12795  	if s.Tags != nil {
 12796  		for i, v := range s.Tags {
 12797  			if v == nil {
 12798  				continue
 12799  			}
 12800  			if err := v.Validate(); err != nil {
 12801  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 12802  			}
 12803  		}
 12804  	}
 12805  
 12806  	if invalidParams.Len() > 0 {
 12807  		return invalidParams
 12808  	}
 12809  	return nil
 12810  }
 12811  
 12812  // SetClientToken sets the ClientToken field's value.
 12813  func (s *CreateTapesInput) SetClientToken(v string) *CreateTapesInput {
 12814  	s.ClientToken = &v
 12815  	return s
 12816  }
 12817  
 12818  // SetGatewayARN sets the GatewayARN field's value.
 12819  func (s *CreateTapesInput) SetGatewayARN(v string) *CreateTapesInput {
 12820  	s.GatewayARN = &v
 12821  	return s
 12822  }
 12823  
 12824  // SetKMSEncrypted sets the KMSEncrypted field's value.
 12825  func (s *CreateTapesInput) SetKMSEncrypted(v bool) *CreateTapesInput {
 12826  	s.KMSEncrypted = &v
 12827  	return s
 12828  }
 12829  
 12830  // SetKMSKey sets the KMSKey field's value.
 12831  func (s *CreateTapesInput) SetKMSKey(v string) *CreateTapesInput {
 12832  	s.KMSKey = &v
 12833  	return s
 12834  }
 12835  
 12836  // SetNumTapesToCreate sets the NumTapesToCreate field's value.
 12837  func (s *CreateTapesInput) SetNumTapesToCreate(v int64) *CreateTapesInput {
 12838  	s.NumTapesToCreate = &v
 12839  	return s
 12840  }
 12841  
 12842  // SetPoolId sets the PoolId field's value.
 12843  func (s *CreateTapesInput) SetPoolId(v string) *CreateTapesInput {
 12844  	s.PoolId = &v
 12845  	return s
 12846  }
 12847  
 12848  // SetTags sets the Tags field's value.
 12849  func (s *CreateTapesInput) SetTags(v []*Tag) *CreateTapesInput {
 12850  	s.Tags = v
 12851  	return s
 12852  }
 12853  
 12854  // SetTapeBarcodePrefix sets the TapeBarcodePrefix field's value.
 12855  func (s *CreateTapesInput) SetTapeBarcodePrefix(v string) *CreateTapesInput {
 12856  	s.TapeBarcodePrefix = &v
 12857  	return s
 12858  }
 12859  
 12860  // SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
 12861  func (s *CreateTapesInput) SetTapeSizeInBytes(v int64) *CreateTapesInput {
 12862  	s.TapeSizeInBytes = &v
 12863  	return s
 12864  }
 12865  
 12866  // SetWorm sets the Worm field's value.
 12867  func (s *CreateTapesInput) SetWorm(v bool) *CreateTapesInput {
 12868  	s.Worm = &v
 12869  	return s
 12870  }
 12871  
 12872  // CreateTapeOutput
 12873  type CreateTapesOutput struct {
 12874  	_ struct{} `type:"structure"`
 12875  
 12876  	// A list of unique Amazon Resource Names (ARNs) that represents the virtual
 12877  	// tapes that were created.
 12878  	TapeARNs []*string `type:"list"`
 12879  }
 12880  
 12881  // String returns the string representation.
 12882  //
 12883  // API parameter values that are decorated as "sensitive" in the API will not
 12884  // be included in the string output. The member name will be present, but the
 12885  // value will be replaced with "sensitive".
 12886  func (s CreateTapesOutput) String() string {
 12887  	return awsutil.Prettify(s)
 12888  }
 12889  
 12890  // GoString returns the string representation.
 12891  //
 12892  // API parameter values that are decorated as "sensitive" in the API will not
 12893  // be included in the string output. The member name will be present, but the
 12894  // value will be replaced with "sensitive".
 12895  func (s CreateTapesOutput) GoString() string {
 12896  	return s.String()
 12897  }
 12898  
 12899  // SetTapeARNs sets the TapeARNs field's value.
 12900  func (s *CreateTapesOutput) SetTapeARNs(v []*string) *CreateTapesOutput {
 12901  	s.TapeARNs = v
 12902  	return s
 12903  }
 12904  
 12905  type DeleteAutomaticTapeCreationPolicyInput struct {
 12906  	_ struct{} `type:"structure"`
 12907  
 12908  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 12909  	// to return a list of gateways for your account and Region.
 12910  	//
 12911  	// GatewayARN is a required field
 12912  	GatewayARN *string `min:"50" type:"string" required:"true"`
 12913  }
 12914  
 12915  // String returns the string representation.
 12916  //
 12917  // API parameter values that are decorated as "sensitive" in the API will not
 12918  // be included in the string output. The member name will be present, but the
 12919  // value will be replaced with "sensitive".
 12920  func (s DeleteAutomaticTapeCreationPolicyInput) String() string {
 12921  	return awsutil.Prettify(s)
 12922  }
 12923  
 12924  // GoString returns the string representation.
 12925  //
 12926  // API parameter values that are decorated as "sensitive" in the API will not
 12927  // be included in the string output. The member name will be present, but the
 12928  // value will be replaced with "sensitive".
 12929  func (s DeleteAutomaticTapeCreationPolicyInput) GoString() string {
 12930  	return s.String()
 12931  }
 12932  
 12933  // Validate inspects the fields of the type to determine if they are valid.
 12934  func (s *DeleteAutomaticTapeCreationPolicyInput) Validate() error {
 12935  	invalidParams := request.ErrInvalidParams{Context: "DeleteAutomaticTapeCreationPolicyInput"}
 12936  	if s.GatewayARN == nil {
 12937  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 12938  	}
 12939  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 12940  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 12941  	}
 12942  
 12943  	if invalidParams.Len() > 0 {
 12944  		return invalidParams
 12945  	}
 12946  	return nil
 12947  }
 12948  
 12949  // SetGatewayARN sets the GatewayARN field's value.
 12950  func (s *DeleteAutomaticTapeCreationPolicyInput) SetGatewayARN(v string) *DeleteAutomaticTapeCreationPolicyInput {
 12951  	s.GatewayARN = &v
 12952  	return s
 12953  }
 12954  
 12955  type DeleteAutomaticTapeCreationPolicyOutput struct {
 12956  	_ struct{} `type:"structure"`
 12957  
 12958  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 12959  	// to return a list of gateways for your account and Region.
 12960  	GatewayARN *string `min:"50" type:"string"`
 12961  }
 12962  
 12963  // String returns the string representation.
 12964  //
 12965  // API parameter values that are decorated as "sensitive" in the API will not
 12966  // be included in the string output. The member name will be present, but the
 12967  // value will be replaced with "sensitive".
 12968  func (s DeleteAutomaticTapeCreationPolicyOutput) String() string {
 12969  	return awsutil.Prettify(s)
 12970  }
 12971  
 12972  // GoString returns the string representation.
 12973  //
 12974  // API parameter values that are decorated as "sensitive" in the API will not
 12975  // be included in the string output. The member name will be present, but the
 12976  // value will be replaced with "sensitive".
 12977  func (s DeleteAutomaticTapeCreationPolicyOutput) GoString() string {
 12978  	return s.String()
 12979  }
 12980  
 12981  // SetGatewayARN sets the GatewayARN field's value.
 12982  func (s *DeleteAutomaticTapeCreationPolicyOutput) SetGatewayARN(v string) *DeleteAutomaticTapeCreationPolicyOutput {
 12983  	s.GatewayARN = &v
 12984  	return s
 12985  }
 12986  
 12987  // A JSON object containing the following fields:
 12988  //
 12989  //    * DeleteBandwidthRateLimitInput$BandwidthType
 12990  type DeleteBandwidthRateLimitInput struct {
 12991  	_ struct{} `type:"structure"`
 12992  
 12993  	// One of the BandwidthType values that indicates the gateway bandwidth rate
 12994  	// limit to delete.
 12995  	//
 12996  	// Valid Values: UPLOAD | DOWNLOAD | ALL
 12997  	//
 12998  	// BandwidthType is a required field
 12999  	BandwidthType *string `min:"3" type:"string" required:"true"`
 13000  
 13001  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 13002  	// to return a list of gateways for your account and Region.
 13003  	//
 13004  	// GatewayARN is a required field
 13005  	GatewayARN *string `min:"50" type:"string" required:"true"`
 13006  }
 13007  
 13008  // String returns the string representation.
 13009  //
 13010  // API parameter values that are decorated as "sensitive" in the API will not
 13011  // be included in the string output. The member name will be present, but the
 13012  // value will be replaced with "sensitive".
 13013  func (s DeleteBandwidthRateLimitInput) String() string {
 13014  	return awsutil.Prettify(s)
 13015  }
 13016  
 13017  // GoString returns the string representation.
 13018  //
 13019  // API parameter values that are decorated as "sensitive" in the API will not
 13020  // be included in the string output. The member name will be present, but the
 13021  // value will be replaced with "sensitive".
 13022  func (s DeleteBandwidthRateLimitInput) GoString() string {
 13023  	return s.String()
 13024  }
 13025  
 13026  // Validate inspects the fields of the type to determine if they are valid.
 13027  func (s *DeleteBandwidthRateLimitInput) Validate() error {
 13028  	invalidParams := request.ErrInvalidParams{Context: "DeleteBandwidthRateLimitInput"}
 13029  	if s.BandwidthType == nil {
 13030  		invalidParams.Add(request.NewErrParamRequired("BandwidthType"))
 13031  	}
 13032  	if s.BandwidthType != nil && len(*s.BandwidthType) < 3 {
 13033  		invalidParams.Add(request.NewErrParamMinLen("BandwidthType", 3))
 13034  	}
 13035  	if s.GatewayARN == nil {
 13036  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 13037  	}
 13038  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 13039  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 13040  	}
 13041  
 13042  	if invalidParams.Len() > 0 {
 13043  		return invalidParams
 13044  	}
 13045  	return nil
 13046  }
 13047  
 13048  // SetBandwidthType sets the BandwidthType field's value.
 13049  func (s *DeleteBandwidthRateLimitInput) SetBandwidthType(v string) *DeleteBandwidthRateLimitInput {
 13050  	s.BandwidthType = &v
 13051  	return s
 13052  }
 13053  
 13054  // SetGatewayARN sets the GatewayARN field's value.
 13055  func (s *DeleteBandwidthRateLimitInput) SetGatewayARN(v string) *DeleteBandwidthRateLimitInput {
 13056  	s.GatewayARN = &v
 13057  	return s
 13058  }
 13059  
 13060  // A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
 13061  // bandwidth rate information was deleted.
 13062  type DeleteBandwidthRateLimitOutput struct {
 13063  	_ struct{} `type:"structure"`
 13064  
 13065  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 13066  	// to return a list of gateways for your account and Region.
 13067  	GatewayARN *string `min:"50" type:"string"`
 13068  }
 13069  
 13070  // String returns the string representation.
 13071  //
 13072  // API parameter values that are decorated as "sensitive" in the API will not
 13073  // be included in the string output. The member name will be present, but the
 13074  // value will be replaced with "sensitive".
 13075  func (s DeleteBandwidthRateLimitOutput) String() string {
 13076  	return awsutil.Prettify(s)
 13077  }
 13078  
 13079  // GoString returns the string representation.
 13080  //
 13081  // API parameter values that are decorated as "sensitive" in the API will not
 13082  // be included in the string output. The member name will be present, but the
 13083  // value will be replaced with "sensitive".
 13084  func (s DeleteBandwidthRateLimitOutput) GoString() string {
 13085  	return s.String()
 13086  }
 13087  
 13088  // SetGatewayARN sets the GatewayARN field's value.
 13089  func (s *DeleteBandwidthRateLimitOutput) SetGatewayARN(v string) *DeleteBandwidthRateLimitOutput {
 13090  	s.GatewayARN = &v
 13091  	return s
 13092  }
 13093  
 13094  // A JSON object containing one or more of the following fields:
 13095  //
 13096  //    * DeleteChapCredentialsInput$InitiatorName
 13097  //
 13098  //    * DeleteChapCredentialsInput$TargetARN
 13099  type DeleteChapCredentialsInput struct {
 13100  	_ struct{} `type:"structure"`
 13101  
 13102  	// The iSCSI initiator that connects to the target.
 13103  	//
 13104  	// InitiatorName is a required field
 13105  	InitiatorName *string `min:"1" type:"string" required:"true"`
 13106  
 13107  	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
 13108  	// operation to return to retrieve the TargetARN for specified VolumeARN.
 13109  	//
 13110  	// TargetARN is a required field
 13111  	TargetARN *string `min:"50" type:"string" required:"true"`
 13112  }
 13113  
 13114  // String returns the string representation.
 13115  //
 13116  // API parameter values that are decorated as "sensitive" in the API will not
 13117  // be included in the string output. The member name will be present, but the
 13118  // value will be replaced with "sensitive".
 13119  func (s DeleteChapCredentialsInput) String() string {
 13120  	return awsutil.Prettify(s)
 13121  }
 13122  
 13123  // GoString returns the string representation.
 13124  //
 13125  // API parameter values that are decorated as "sensitive" in the API will not
 13126  // be included in the string output. The member name will be present, but the
 13127  // value will be replaced with "sensitive".
 13128  func (s DeleteChapCredentialsInput) GoString() string {
 13129  	return s.String()
 13130  }
 13131  
 13132  // Validate inspects the fields of the type to determine if they are valid.
 13133  func (s *DeleteChapCredentialsInput) Validate() error {
 13134  	invalidParams := request.ErrInvalidParams{Context: "DeleteChapCredentialsInput"}
 13135  	if s.InitiatorName == nil {
 13136  		invalidParams.Add(request.NewErrParamRequired("InitiatorName"))
 13137  	}
 13138  	if s.InitiatorName != nil && len(*s.InitiatorName) < 1 {
 13139  		invalidParams.Add(request.NewErrParamMinLen("InitiatorName", 1))
 13140  	}
 13141  	if s.TargetARN == nil {
 13142  		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
 13143  	}
 13144  	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
 13145  		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
 13146  	}
 13147  
 13148  	if invalidParams.Len() > 0 {
 13149  		return invalidParams
 13150  	}
 13151  	return nil
 13152  }
 13153  
 13154  // SetInitiatorName sets the InitiatorName field's value.
 13155  func (s *DeleteChapCredentialsInput) SetInitiatorName(v string) *DeleteChapCredentialsInput {
 13156  	s.InitiatorName = &v
 13157  	return s
 13158  }
 13159  
 13160  // SetTargetARN sets the TargetARN field's value.
 13161  func (s *DeleteChapCredentialsInput) SetTargetARN(v string) *DeleteChapCredentialsInput {
 13162  	s.TargetARN = &v
 13163  	return s
 13164  }
 13165  
 13166  // A JSON object containing the following fields:
 13167  type DeleteChapCredentialsOutput struct {
 13168  	_ struct{} `type:"structure"`
 13169  
 13170  	// The iSCSI initiator that connects to the target.
 13171  	InitiatorName *string `min:"1" type:"string"`
 13172  
 13173  	// The Amazon Resource Name (ARN) of the target.
 13174  	TargetARN *string `min:"50" type:"string"`
 13175  }
 13176  
 13177  // String returns the string representation.
 13178  //
 13179  // API parameter values that are decorated as "sensitive" in the API will not
 13180  // be included in the string output. The member name will be present, but the
 13181  // value will be replaced with "sensitive".
 13182  func (s DeleteChapCredentialsOutput) String() string {
 13183  	return awsutil.Prettify(s)
 13184  }
 13185  
 13186  // GoString returns the string representation.
 13187  //
 13188  // API parameter values that are decorated as "sensitive" in the API will not
 13189  // be included in the string output. The member name will be present, but the
 13190  // value will be replaced with "sensitive".
 13191  func (s DeleteChapCredentialsOutput) GoString() string {
 13192  	return s.String()
 13193  }
 13194  
 13195  // SetInitiatorName sets the InitiatorName field's value.
 13196  func (s *DeleteChapCredentialsOutput) SetInitiatorName(v string) *DeleteChapCredentialsOutput {
 13197  	s.InitiatorName = &v
 13198  	return s
 13199  }
 13200  
 13201  // SetTargetARN sets the TargetARN field's value.
 13202  func (s *DeleteChapCredentialsOutput) SetTargetARN(v string) *DeleteChapCredentialsOutput {
 13203  	s.TargetARN = &v
 13204  	return s
 13205  }
 13206  
 13207  // DeleteFileShareInput
 13208  type DeleteFileShareInput struct {
 13209  	_ struct{} `type:"structure"`
 13210  
 13211  	// The Amazon Resource Name (ARN) of the file share to be deleted.
 13212  	//
 13213  	// FileShareARN is a required field
 13214  	FileShareARN *string `min:"50" type:"string" required:"true"`
 13215  
 13216  	// If this value is set to true, the operation deletes a file share immediately
 13217  	// and aborts all data uploads to Amazon Web Services. Otherwise, the file share
 13218  	// is not deleted until all data is uploaded to Amazon Web Services. This process
 13219  	// aborts the data upload process, and the file share enters the FORCE_DELETING
 13220  	// status.
 13221  	//
 13222  	// Valid Values: true | false
 13223  	ForceDelete *bool `type:"boolean"`
 13224  }
 13225  
 13226  // String returns the string representation.
 13227  //
 13228  // API parameter values that are decorated as "sensitive" in the API will not
 13229  // be included in the string output. The member name will be present, but the
 13230  // value will be replaced with "sensitive".
 13231  func (s DeleteFileShareInput) String() string {
 13232  	return awsutil.Prettify(s)
 13233  }
 13234  
 13235  // GoString returns the string representation.
 13236  //
 13237  // API parameter values that are decorated as "sensitive" in the API will not
 13238  // be included in the string output. The member name will be present, but the
 13239  // value will be replaced with "sensitive".
 13240  func (s DeleteFileShareInput) GoString() string {
 13241  	return s.String()
 13242  }
 13243  
 13244  // Validate inspects the fields of the type to determine if they are valid.
 13245  func (s *DeleteFileShareInput) Validate() error {
 13246  	invalidParams := request.ErrInvalidParams{Context: "DeleteFileShareInput"}
 13247  	if s.FileShareARN == nil {
 13248  		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
 13249  	}
 13250  	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
 13251  		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
 13252  	}
 13253  
 13254  	if invalidParams.Len() > 0 {
 13255  		return invalidParams
 13256  	}
 13257  	return nil
 13258  }
 13259  
 13260  // SetFileShareARN sets the FileShareARN field's value.
 13261  func (s *DeleteFileShareInput) SetFileShareARN(v string) *DeleteFileShareInput {
 13262  	s.FileShareARN = &v
 13263  	return s
 13264  }
 13265  
 13266  // SetForceDelete sets the ForceDelete field's value.
 13267  func (s *DeleteFileShareInput) SetForceDelete(v bool) *DeleteFileShareInput {
 13268  	s.ForceDelete = &v
 13269  	return s
 13270  }
 13271  
 13272  // DeleteFileShareOutput
 13273  type DeleteFileShareOutput struct {
 13274  	_ struct{} `type:"structure"`
 13275  
 13276  	// The Amazon Resource Name (ARN) of the deleted file share.
 13277  	FileShareARN *string `min:"50" type:"string"`
 13278  }
 13279  
 13280  // String returns the string representation.
 13281  //
 13282  // API parameter values that are decorated as "sensitive" in the API will not
 13283  // be included in the string output. The member name will be present, but the
 13284  // value will be replaced with "sensitive".
 13285  func (s DeleteFileShareOutput) String() string {
 13286  	return awsutil.Prettify(s)
 13287  }
 13288  
 13289  // GoString returns the string representation.
 13290  //
 13291  // API parameter values that are decorated as "sensitive" in the API will not
 13292  // be included in the string output. The member name will be present, but the
 13293  // value will be replaced with "sensitive".
 13294  func (s DeleteFileShareOutput) GoString() string {
 13295  	return s.String()
 13296  }
 13297  
 13298  // SetFileShareARN sets the FileShareARN field's value.
 13299  func (s *DeleteFileShareOutput) SetFileShareARN(v string) *DeleteFileShareOutput {
 13300  	s.FileShareARN = &v
 13301  	return s
 13302  }
 13303  
 13304  // A JSON object containing the ID of the gateway to delete.
 13305  type DeleteGatewayInput struct {
 13306  	_ struct{} `type:"structure"`
 13307  
 13308  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 13309  	// to return a list of gateways for your account and Region.
 13310  	//
 13311  	// GatewayARN is a required field
 13312  	GatewayARN *string `min:"50" type:"string" required:"true"`
 13313  }
 13314  
 13315  // String returns the string representation.
 13316  //
 13317  // API parameter values that are decorated as "sensitive" in the API will not
 13318  // be included in the string output. The member name will be present, but the
 13319  // value will be replaced with "sensitive".
 13320  func (s DeleteGatewayInput) String() string {
 13321  	return awsutil.Prettify(s)
 13322  }
 13323  
 13324  // GoString returns the string representation.
 13325  //
 13326  // API parameter values that are decorated as "sensitive" in the API will not
 13327  // be included in the string output. The member name will be present, but the
 13328  // value will be replaced with "sensitive".
 13329  func (s DeleteGatewayInput) GoString() string {
 13330  	return s.String()
 13331  }
 13332  
 13333  // Validate inspects the fields of the type to determine if they are valid.
 13334  func (s *DeleteGatewayInput) Validate() error {
 13335  	invalidParams := request.ErrInvalidParams{Context: "DeleteGatewayInput"}
 13336  	if s.GatewayARN == nil {
 13337  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 13338  	}
 13339  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 13340  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 13341  	}
 13342  
 13343  	if invalidParams.Len() > 0 {
 13344  		return invalidParams
 13345  	}
 13346  	return nil
 13347  }
 13348  
 13349  // SetGatewayARN sets the GatewayARN field's value.
 13350  func (s *DeleteGatewayInput) SetGatewayARN(v string) *DeleteGatewayInput {
 13351  	s.GatewayARN = &v
 13352  	return s
 13353  }
 13354  
 13355  // A JSON object containing the ID of the deleted gateway.
 13356  type DeleteGatewayOutput struct {
 13357  	_ struct{} `type:"structure"`
 13358  
 13359  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 13360  	// to return a list of gateways for your account and Region.
 13361  	GatewayARN *string `min:"50" type:"string"`
 13362  }
 13363  
 13364  // String returns the string representation.
 13365  //
 13366  // API parameter values that are decorated as "sensitive" in the API will not
 13367  // be included in the string output. The member name will be present, but the
 13368  // value will be replaced with "sensitive".
 13369  func (s DeleteGatewayOutput) String() string {
 13370  	return awsutil.Prettify(s)
 13371  }
 13372  
 13373  // GoString returns the string representation.
 13374  //
 13375  // API parameter values that are decorated as "sensitive" in the API will not
 13376  // be included in the string output. The member name will be present, but the
 13377  // value will be replaced with "sensitive".
 13378  func (s DeleteGatewayOutput) GoString() string {
 13379  	return s.String()
 13380  }
 13381  
 13382  // SetGatewayARN sets the GatewayARN field's value.
 13383  func (s *DeleteGatewayOutput) SetGatewayARN(v string) *DeleteGatewayOutput {
 13384  	s.GatewayARN = &v
 13385  	return s
 13386  }
 13387  
 13388  type DeleteSnapshotScheduleInput struct {
 13389  	_ struct{} `type:"structure"`
 13390  
 13391  	// The volume which snapshot schedule to delete.
 13392  	//
 13393  	// VolumeARN is a required field
 13394  	VolumeARN *string `min:"50" type:"string" required:"true"`
 13395  }
 13396  
 13397  // String returns the string representation.
 13398  //
 13399  // API parameter values that are decorated as "sensitive" in the API will not
 13400  // be included in the string output. The member name will be present, but the
 13401  // value will be replaced with "sensitive".
 13402  func (s DeleteSnapshotScheduleInput) String() string {
 13403  	return awsutil.Prettify(s)
 13404  }
 13405  
 13406  // GoString returns the string representation.
 13407  //
 13408  // API parameter values that are decorated as "sensitive" in the API will not
 13409  // be included in the string output. The member name will be present, but the
 13410  // value will be replaced with "sensitive".
 13411  func (s DeleteSnapshotScheduleInput) GoString() string {
 13412  	return s.String()
 13413  }
 13414  
 13415  // Validate inspects the fields of the type to determine if they are valid.
 13416  func (s *DeleteSnapshotScheduleInput) Validate() error {
 13417  	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotScheduleInput"}
 13418  	if s.VolumeARN == nil {
 13419  		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
 13420  	}
 13421  	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
 13422  		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
 13423  	}
 13424  
 13425  	if invalidParams.Len() > 0 {
 13426  		return invalidParams
 13427  	}
 13428  	return nil
 13429  }
 13430  
 13431  // SetVolumeARN sets the VolumeARN field's value.
 13432  func (s *DeleteSnapshotScheduleInput) SetVolumeARN(v string) *DeleteSnapshotScheduleInput {
 13433  	s.VolumeARN = &v
 13434  	return s
 13435  }
 13436  
 13437  type DeleteSnapshotScheduleOutput struct {
 13438  	_ struct{} `type:"structure"`
 13439  
 13440  	// The volume which snapshot schedule was deleted.
 13441  	VolumeARN *string `min:"50" type:"string"`
 13442  }
 13443  
 13444  // String returns the string representation.
 13445  //
 13446  // API parameter values that are decorated as "sensitive" in the API will not
 13447  // be included in the string output. The member name will be present, but the
 13448  // value will be replaced with "sensitive".
 13449  func (s DeleteSnapshotScheduleOutput) String() string {
 13450  	return awsutil.Prettify(s)
 13451  }
 13452  
 13453  // GoString returns the string representation.
 13454  //
 13455  // API parameter values that are decorated as "sensitive" in the API will not
 13456  // be included in the string output. The member name will be present, but the
 13457  // value will be replaced with "sensitive".
 13458  func (s DeleteSnapshotScheduleOutput) GoString() string {
 13459  	return s.String()
 13460  }
 13461  
 13462  // SetVolumeARN sets the VolumeARN field's value.
 13463  func (s *DeleteSnapshotScheduleOutput) SetVolumeARN(v string) *DeleteSnapshotScheduleOutput {
 13464  	s.VolumeARN = &v
 13465  	return s
 13466  }
 13467  
 13468  // DeleteTapeArchiveInput
 13469  type DeleteTapeArchiveInput struct {
 13470  	_ struct{} `type:"structure"`
 13471  
 13472  	// Set to TRUE to delete an archived tape that belongs to a custom pool with
 13473  	// tape retention lock. Only archived tapes with tape retention lock set to
 13474  	// governance can be deleted. Archived tapes with tape retention lock set to
 13475  	// compliance can't be deleted.
 13476  	BypassGovernanceRetention *bool `type:"boolean"`
 13477  
 13478  	// The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual
 13479  	// tape shelf (VTS).
 13480  	//
 13481  	// TapeARN is a required field
 13482  	TapeARN *string `min:"50" type:"string" required:"true"`
 13483  }
 13484  
 13485  // String returns the string representation.
 13486  //
 13487  // API parameter values that are decorated as "sensitive" in the API will not
 13488  // be included in the string output. The member name will be present, but the
 13489  // value will be replaced with "sensitive".
 13490  func (s DeleteTapeArchiveInput) String() string {
 13491  	return awsutil.Prettify(s)
 13492  }
 13493  
 13494  // GoString returns the string representation.
 13495  //
 13496  // API parameter values that are decorated as "sensitive" in the API will not
 13497  // be included in the string output. The member name will be present, but the
 13498  // value will be replaced with "sensitive".
 13499  func (s DeleteTapeArchiveInput) GoString() string {
 13500  	return s.String()
 13501  }
 13502  
 13503  // Validate inspects the fields of the type to determine if they are valid.
 13504  func (s *DeleteTapeArchiveInput) Validate() error {
 13505  	invalidParams := request.ErrInvalidParams{Context: "DeleteTapeArchiveInput"}
 13506  	if s.TapeARN == nil {
 13507  		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
 13508  	}
 13509  	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
 13510  		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
 13511  	}
 13512  
 13513  	if invalidParams.Len() > 0 {
 13514  		return invalidParams
 13515  	}
 13516  	return nil
 13517  }
 13518  
 13519  // SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
 13520  func (s *DeleteTapeArchiveInput) SetBypassGovernanceRetention(v bool) *DeleteTapeArchiveInput {
 13521  	s.BypassGovernanceRetention = &v
 13522  	return s
 13523  }
 13524  
 13525  // SetTapeARN sets the TapeARN field's value.
 13526  func (s *DeleteTapeArchiveInput) SetTapeARN(v string) *DeleteTapeArchiveInput {
 13527  	s.TapeARN = &v
 13528  	return s
 13529  }
 13530  
 13531  // DeleteTapeArchiveOutput
 13532  type DeleteTapeArchiveOutput struct {
 13533  	_ struct{} `type:"structure"`
 13534  
 13535  	// The Amazon Resource Name (ARN) of the virtual tape that was deleted from
 13536  	// the virtual tape shelf (VTS).
 13537  	TapeARN *string `min:"50" type:"string"`
 13538  }
 13539  
 13540  // String returns the string representation.
 13541  //
 13542  // API parameter values that are decorated as "sensitive" in the API will not
 13543  // be included in the string output. The member name will be present, but the
 13544  // value will be replaced with "sensitive".
 13545  func (s DeleteTapeArchiveOutput) String() string {
 13546  	return awsutil.Prettify(s)
 13547  }
 13548  
 13549  // GoString returns the string representation.
 13550  //
 13551  // API parameter values that are decorated as "sensitive" in the API will not
 13552  // be included in the string output. The member name will be present, but the
 13553  // value will be replaced with "sensitive".
 13554  func (s DeleteTapeArchiveOutput) GoString() string {
 13555  	return s.String()
 13556  }
 13557  
 13558  // SetTapeARN sets the TapeARN field's value.
 13559  func (s *DeleteTapeArchiveOutput) SetTapeARN(v string) *DeleteTapeArchiveOutput {
 13560  	s.TapeARN = &v
 13561  	return s
 13562  }
 13563  
 13564  // DeleteTapeInput
 13565  type DeleteTapeInput struct {
 13566  	_ struct{} `type:"structure"`
 13567  
 13568  	// Set to TRUE to delete an archived tape that belongs to a custom pool with
 13569  	// tape retention lock. Only archived tapes with tape retention lock set to
 13570  	// governance can be deleted. Archived tapes with tape retention lock set to
 13571  	// compliance can't be deleted.
 13572  	BypassGovernanceRetention *bool `type:"boolean"`
 13573  
 13574  	// The unique Amazon Resource Name (ARN) of the gateway that the virtual tape
 13575  	// to delete is associated with. Use the ListGateways operation to return a
 13576  	// list of gateways for your account and Region.
 13577  	//
 13578  	// GatewayARN is a required field
 13579  	GatewayARN *string `min:"50" type:"string" required:"true"`
 13580  
 13581  	// The Amazon Resource Name (ARN) of the virtual tape to delete.
 13582  	//
 13583  	// TapeARN is a required field
 13584  	TapeARN *string `min:"50" type:"string" required:"true"`
 13585  }
 13586  
 13587  // String returns the string representation.
 13588  //
 13589  // API parameter values that are decorated as "sensitive" in the API will not
 13590  // be included in the string output. The member name will be present, but the
 13591  // value will be replaced with "sensitive".
 13592  func (s DeleteTapeInput) String() string {
 13593  	return awsutil.Prettify(s)
 13594  }
 13595  
 13596  // GoString returns the string representation.
 13597  //
 13598  // API parameter values that are decorated as "sensitive" in the API will not
 13599  // be included in the string output. The member name will be present, but the
 13600  // value will be replaced with "sensitive".
 13601  func (s DeleteTapeInput) GoString() string {
 13602  	return s.String()
 13603  }
 13604  
 13605  // Validate inspects the fields of the type to determine if they are valid.
 13606  func (s *DeleteTapeInput) Validate() error {
 13607  	invalidParams := request.ErrInvalidParams{Context: "DeleteTapeInput"}
 13608  	if s.GatewayARN == nil {
 13609  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 13610  	}
 13611  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 13612  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 13613  	}
 13614  	if s.TapeARN == nil {
 13615  		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
 13616  	}
 13617  	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
 13618  		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
 13619  	}
 13620  
 13621  	if invalidParams.Len() > 0 {
 13622  		return invalidParams
 13623  	}
 13624  	return nil
 13625  }
 13626  
 13627  // SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
 13628  func (s *DeleteTapeInput) SetBypassGovernanceRetention(v bool) *DeleteTapeInput {
 13629  	s.BypassGovernanceRetention = &v
 13630  	return s
 13631  }
 13632  
 13633  // SetGatewayARN sets the GatewayARN field's value.
 13634  func (s *DeleteTapeInput) SetGatewayARN(v string) *DeleteTapeInput {
 13635  	s.GatewayARN = &v
 13636  	return s
 13637  }
 13638  
 13639  // SetTapeARN sets the TapeARN field's value.
 13640  func (s *DeleteTapeInput) SetTapeARN(v string) *DeleteTapeInput {
 13641  	s.TapeARN = &v
 13642  	return s
 13643  }
 13644  
 13645  // DeleteTapeOutput
 13646  type DeleteTapeOutput struct {
 13647  	_ struct{} `type:"structure"`
 13648  
 13649  	// The Amazon Resource Name (ARN) of the deleted virtual tape.
 13650  	TapeARN *string `min:"50" type:"string"`
 13651  }
 13652  
 13653  // String returns the string representation.
 13654  //
 13655  // API parameter values that are decorated as "sensitive" in the API will not
 13656  // be included in the string output. The member name will be present, but the
 13657  // value will be replaced with "sensitive".
 13658  func (s DeleteTapeOutput) String() string {
 13659  	return awsutil.Prettify(s)
 13660  }
 13661  
 13662  // GoString returns the string representation.
 13663  //
 13664  // API parameter values that are decorated as "sensitive" in the API will not
 13665  // be included in the string output. The member name will be present, but the
 13666  // value will be replaced with "sensitive".
 13667  func (s DeleteTapeOutput) GoString() string {
 13668  	return s.String()
 13669  }
 13670  
 13671  // SetTapeARN sets the TapeARN field's value.
 13672  func (s *DeleteTapeOutput) SetTapeARN(v string) *DeleteTapeOutput {
 13673  	s.TapeARN = &v
 13674  	return s
 13675  }
 13676  
 13677  type DeleteTapePoolInput struct {
 13678  	_ struct{} `type:"structure"`
 13679  
 13680  	// The Amazon Resource Name (ARN) of the custom tape pool to delete.
 13681  	//
 13682  	// PoolARN is a required field
 13683  	PoolARN *string `min:"50" type:"string" required:"true"`
 13684  }
 13685  
 13686  // String returns the string representation.
 13687  //
 13688  // API parameter values that are decorated as "sensitive" in the API will not
 13689  // be included in the string output. The member name will be present, but the
 13690  // value will be replaced with "sensitive".
 13691  func (s DeleteTapePoolInput) String() string {
 13692  	return awsutil.Prettify(s)
 13693  }
 13694  
 13695  // GoString returns the string representation.
 13696  //
 13697  // API parameter values that are decorated as "sensitive" in the API will not
 13698  // be included in the string output. The member name will be present, but the
 13699  // value will be replaced with "sensitive".
 13700  func (s DeleteTapePoolInput) GoString() string {
 13701  	return s.String()
 13702  }
 13703  
 13704  // Validate inspects the fields of the type to determine if they are valid.
 13705  func (s *DeleteTapePoolInput) Validate() error {
 13706  	invalidParams := request.ErrInvalidParams{Context: "DeleteTapePoolInput"}
 13707  	if s.PoolARN == nil {
 13708  		invalidParams.Add(request.NewErrParamRequired("PoolARN"))
 13709  	}
 13710  	if s.PoolARN != nil && len(*s.PoolARN) < 50 {
 13711  		invalidParams.Add(request.NewErrParamMinLen("PoolARN", 50))
 13712  	}
 13713  
 13714  	if invalidParams.Len() > 0 {
 13715  		return invalidParams
 13716  	}
 13717  	return nil
 13718  }
 13719  
 13720  // SetPoolARN sets the PoolARN field's value.
 13721  func (s *DeleteTapePoolInput) SetPoolARN(v string) *DeleteTapePoolInput {
 13722  	s.PoolARN = &v
 13723  	return s
 13724  }
 13725  
 13726  type DeleteTapePoolOutput struct {
 13727  	_ struct{} `type:"structure"`
 13728  
 13729  	// The Amazon Resource Name (ARN) of the custom tape pool being deleted.
 13730  	PoolARN *string `min:"50" type:"string"`
 13731  }
 13732  
 13733  // String returns the string representation.
 13734  //
 13735  // API parameter values that are decorated as "sensitive" in the API will not
 13736  // be included in the string output. The member name will be present, but the
 13737  // value will be replaced with "sensitive".
 13738  func (s DeleteTapePoolOutput) String() string {
 13739  	return awsutil.Prettify(s)
 13740  }
 13741  
 13742  // GoString returns the string representation.
 13743  //
 13744  // API parameter values that are decorated as "sensitive" in the API will not
 13745  // be included in the string output. The member name will be present, but the
 13746  // value will be replaced with "sensitive".
 13747  func (s DeleteTapePoolOutput) GoString() string {
 13748  	return s.String()
 13749  }
 13750  
 13751  // SetPoolARN sets the PoolARN field's value.
 13752  func (s *DeleteTapePoolOutput) SetPoolARN(v string) *DeleteTapePoolOutput {
 13753  	s.PoolARN = &v
 13754  	return s
 13755  }
 13756  
 13757  // A JSON object containing the DeleteVolumeInput$VolumeARN to delete.
 13758  type DeleteVolumeInput struct {
 13759  	_ struct{} `type:"structure"`
 13760  
 13761  	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
 13762  	// to return a list of gateway volumes.
 13763  	//
 13764  	// VolumeARN is a required field
 13765  	VolumeARN *string `min:"50" type:"string" required:"true"`
 13766  }
 13767  
 13768  // String returns the string representation.
 13769  //
 13770  // API parameter values that are decorated as "sensitive" in the API will not
 13771  // be included in the string output. The member name will be present, but the
 13772  // value will be replaced with "sensitive".
 13773  func (s DeleteVolumeInput) String() string {
 13774  	return awsutil.Prettify(s)
 13775  }
 13776  
 13777  // GoString returns the string representation.
 13778  //
 13779  // API parameter values that are decorated as "sensitive" in the API will not
 13780  // be included in the string output. The member name will be present, but the
 13781  // value will be replaced with "sensitive".
 13782  func (s DeleteVolumeInput) GoString() string {
 13783  	return s.String()
 13784  }
 13785  
 13786  // Validate inspects the fields of the type to determine if they are valid.
 13787  func (s *DeleteVolumeInput) Validate() error {
 13788  	invalidParams := request.ErrInvalidParams{Context: "DeleteVolumeInput"}
 13789  	if s.VolumeARN == nil {
 13790  		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
 13791  	}
 13792  	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
 13793  		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
 13794  	}
 13795  
 13796  	if invalidParams.Len() > 0 {
 13797  		return invalidParams
 13798  	}
 13799  	return nil
 13800  }
 13801  
 13802  // SetVolumeARN sets the VolumeARN field's value.
 13803  func (s *DeleteVolumeInput) SetVolumeARN(v string) *DeleteVolumeInput {
 13804  	s.VolumeARN = &v
 13805  	return s
 13806  }
 13807  
 13808  // A JSON object containing the Amazon Resource Name (ARN) of the storage volume
 13809  // that was deleted.
 13810  type DeleteVolumeOutput struct {
 13811  	_ struct{} `type:"structure"`
 13812  
 13813  	// The Amazon Resource Name (ARN) of the storage volume that was deleted. It
 13814  	// is the same ARN you provided in the request.
 13815  	VolumeARN *string `min:"50" type:"string"`
 13816  }
 13817  
 13818  // String returns the string representation.
 13819  //
 13820  // API parameter values that are decorated as "sensitive" in the API will not
 13821  // be included in the string output. The member name will be present, but the
 13822  // value will be replaced with "sensitive".
 13823  func (s DeleteVolumeOutput) String() string {
 13824  	return awsutil.Prettify(s)
 13825  }
 13826  
 13827  // GoString returns the string representation.
 13828  //
 13829  // API parameter values that are decorated as "sensitive" in the API will not
 13830  // be included in the string output. The member name will be present, but the
 13831  // value will be replaced with "sensitive".
 13832  func (s DeleteVolumeOutput) GoString() string {
 13833  	return s.String()
 13834  }
 13835  
 13836  // SetVolumeARN sets the VolumeARN field's value.
 13837  func (s *DeleteVolumeOutput) SetVolumeARN(v string) *DeleteVolumeOutput {
 13838  	s.VolumeARN = &v
 13839  	return s
 13840  }
 13841  
 13842  type DescribeAvailabilityMonitorTestInput struct {
 13843  	_ struct{} `type:"structure"`
 13844  
 13845  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 13846  	// to return a list of gateways for your account and Region.
 13847  	//
 13848  	// GatewayARN is a required field
 13849  	GatewayARN *string `min:"50" type:"string" required:"true"`
 13850  }
 13851  
 13852  // String returns the string representation.
 13853  //
 13854  // API parameter values that are decorated as "sensitive" in the API will not
 13855  // be included in the string output. The member name will be present, but the
 13856  // value will be replaced with "sensitive".
 13857  func (s DescribeAvailabilityMonitorTestInput) String() string {
 13858  	return awsutil.Prettify(s)
 13859  }
 13860  
 13861  // GoString returns the string representation.
 13862  //
 13863  // API parameter values that are decorated as "sensitive" in the API will not
 13864  // be included in the string output. The member name will be present, but the
 13865  // value will be replaced with "sensitive".
 13866  func (s DescribeAvailabilityMonitorTestInput) GoString() string {
 13867  	return s.String()
 13868  }
 13869  
 13870  // Validate inspects the fields of the type to determine if they are valid.
 13871  func (s *DescribeAvailabilityMonitorTestInput) Validate() error {
 13872  	invalidParams := request.ErrInvalidParams{Context: "DescribeAvailabilityMonitorTestInput"}
 13873  	if s.GatewayARN == nil {
 13874  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 13875  	}
 13876  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 13877  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 13878  	}
 13879  
 13880  	if invalidParams.Len() > 0 {
 13881  		return invalidParams
 13882  	}
 13883  	return nil
 13884  }
 13885  
 13886  // SetGatewayARN sets the GatewayARN field's value.
 13887  func (s *DescribeAvailabilityMonitorTestInput) SetGatewayARN(v string) *DescribeAvailabilityMonitorTestInput {
 13888  	s.GatewayARN = &v
 13889  	return s
 13890  }
 13891  
 13892  type DescribeAvailabilityMonitorTestOutput struct {
 13893  	_ struct{} `type:"structure"`
 13894  
 13895  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 13896  	// to return a list of gateways for your account and Region.
 13897  	GatewayARN *string `min:"50" type:"string"`
 13898  
 13899  	// The time the high availability monitoring test was started. If a test hasn't
 13900  	// been performed, the value of this field is null.
 13901  	StartTime *time.Time `type:"timestamp"`
 13902  
 13903  	// The status of the high availability monitoring test. If a test hasn't been
 13904  	// performed, the value of this field is null.
 13905  	Status *string `type:"string" enum:"AvailabilityMonitorTestStatus"`
 13906  }
 13907  
 13908  // String returns the string representation.
 13909  //
 13910  // API parameter values that are decorated as "sensitive" in the API will not
 13911  // be included in the string output. The member name will be present, but the
 13912  // value will be replaced with "sensitive".
 13913  func (s DescribeAvailabilityMonitorTestOutput) String() string {
 13914  	return awsutil.Prettify(s)
 13915  }
 13916  
 13917  // GoString returns the string representation.
 13918  //
 13919  // API parameter values that are decorated as "sensitive" in the API will not
 13920  // be included in the string output. The member name will be present, but the
 13921  // value will be replaced with "sensitive".
 13922  func (s DescribeAvailabilityMonitorTestOutput) GoString() string {
 13923  	return s.String()
 13924  }
 13925  
 13926  // SetGatewayARN sets the GatewayARN field's value.
 13927  func (s *DescribeAvailabilityMonitorTestOutput) SetGatewayARN(v string) *DescribeAvailabilityMonitorTestOutput {
 13928  	s.GatewayARN = &v
 13929  	return s
 13930  }
 13931  
 13932  // SetStartTime sets the StartTime field's value.
 13933  func (s *DescribeAvailabilityMonitorTestOutput) SetStartTime(v time.Time) *DescribeAvailabilityMonitorTestOutput {
 13934  	s.StartTime = &v
 13935  	return s
 13936  }
 13937  
 13938  // SetStatus sets the Status field's value.
 13939  func (s *DescribeAvailabilityMonitorTestOutput) SetStatus(v string) *DescribeAvailabilityMonitorTestOutput {
 13940  	s.Status = &v
 13941  	return s
 13942  }
 13943  
 13944  // A JSON object containing the Amazon Resource Name (ARN) of the gateway.
 13945  type DescribeBandwidthRateLimitInput struct {
 13946  	_ struct{} `type:"structure"`
 13947  
 13948  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 13949  	// to return a list of gateways for your account and Region.
 13950  	//
 13951  	// GatewayARN is a required field
 13952  	GatewayARN *string `min:"50" type:"string" required:"true"`
 13953  }
 13954  
 13955  // String returns the string representation.
 13956  //
 13957  // API parameter values that are decorated as "sensitive" in the API will not
 13958  // be included in the string output. The member name will be present, but the
 13959  // value will be replaced with "sensitive".
 13960  func (s DescribeBandwidthRateLimitInput) String() string {
 13961  	return awsutil.Prettify(s)
 13962  }
 13963  
 13964  // GoString returns the string representation.
 13965  //
 13966  // API parameter values that are decorated as "sensitive" in the API will not
 13967  // be included in the string output. The member name will be present, but the
 13968  // value will be replaced with "sensitive".
 13969  func (s DescribeBandwidthRateLimitInput) GoString() string {
 13970  	return s.String()
 13971  }
 13972  
 13973  // Validate inspects the fields of the type to determine if they are valid.
 13974  func (s *DescribeBandwidthRateLimitInput) Validate() error {
 13975  	invalidParams := request.ErrInvalidParams{Context: "DescribeBandwidthRateLimitInput"}
 13976  	if s.GatewayARN == nil {
 13977  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 13978  	}
 13979  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 13980  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 13981  	}
 13982  
 13983  	if invalidParams.Len() > 0 {
 13984  		return invalidParams
 13985  	}
 13986  	return nil
 13987  }
 13988  
 13989  // SetGatewayARN sets the GatewayARN field's value.
 13990  func (s *DescribeBandwidthRateLimitInput) SetGatewayARN(v string) *DescribeBandwidthRateLimitInput {
 13991  	s.GatewayARN = &v
 13992  	return s
 13993  }
 13994  
 13995  // A JSON object containing the following fields:
 13996  type DescribeBandwidthRateLimitOutput struct {
 13997  	_ struct{} `type:"structure"`
 13998  
 13999  	// The average download bandwidth rate limit in bits per second. This field
 14000  	// does not appear in the response if the download rate limit is not set.
 14001  	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
 14002  
 14003  	// The average upload bandwidth rate limit in bits per second. This field does
 14004  	// not appear in the response if the upload rate limit is not set.
 14005  	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
 14006  
 14007  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 14008  	// to return a list of gateways for your account and Region.
 14009  	GatewayARN *string `min:"50" type:"string"`
 14010  }
 14011  
 14012  // String returns the string representation.
 14013  //
 14014  // API parameter values that are decorated as "sensitive" in the API will not
 14015  // be included in the string output. The member name will be present, but the
 14016  // value will be replaced with "sensitive".
 14017  func (s DescribeBandwidthRateLimitOutput) String() string {
 14018  	return awsutil.Prettify(s)
 14019  }
 14020  
 14021  // GoString returns the string representation.
 14022  //
 14023  // API parameter values that are decorated as "sensitive" in the API will not
 14024  // be included in the string output. The member name will be present, but the
 14025  // value will be replaced with "sensitive".
 14026  func (s DescribeBandwidthRateLimitOutput) GoString() string {
 14027  	return s.String()
 14028  }
 14029  
 14030  // SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
 14031  func (s *DescribeBandwidthRateLimitOutput) SetAverageDownloadRateLimitInBitsPerSec(v int64) *DescribeBandwidthRateLimitOutput {
 14032  	s.AverageDownloadRateLimitInBitsPerSec = &v
 14033  	return s
 14034  }
 14035  
 14036  // SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
 14037  func (s *DescribeBandwidthRateLimitOutput) SetAverageUploadRateLimitInBitsPerSec(v int64) *DescribeBandwidthRateLimitOutput {
 14038  	s.AverageUploadRateLimitInBitsPerSec = &v
 14039  	return s
 14040  }
 14041  
 14042  // SetGatewayARN sets the GatewayARN field's value.
 14043  func (s *DescribeBandwidthRateLimitOutput) SetGatewayARN(v string) *DescribeBandwidthRateLimitOutput {
 14044  	s.GatewayARN = &v
 14045  	return s
 14046  }
 14047  
 14048  type DescribeBandwidthRateLimitScheduleInput struct {
 14049  	_ struct{} `type:"structure"`
 14050  
 14051  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 14052  	// to return a list of gateways for your account and Region.
 14053  	//
 14054  	// GatewayARN is a required field
 14055  	GatewayARN *string `min:"50" type:"string" required:"true"`
 14056  }
 14057  
 14058  // String returns the string representation.
 14059  //
 14060  // API parameter values that are decorated as "sensitive" in the API will not
 14061  // be included in the string output. The member name will be present, but the
 14062  // value will be replaced with "sensitive".
 14063  func (s DescribeBandwidthRateLimitScheduleInput) String() string {
 14064  	return awsutil.Prettify(s)
 14065  }
 14066  
 14067  // GoString returns the string representation.
 14068  //
 14069  // API parameter values that are decorated as "sensitive" in the API will not
 14070  // be included in the string output. The member name will be present, but the
 14071  // value will be replaced with "sensitive".
 14072  func (s DescribeBandwidthRateLimitScheduleInput) GoString() string {
 14073  	return s.String()
 14074  }
 14075  
 14076  // Validate inspects the fields of the type to determine if they are valid.
 14077  func (s *DescribeBandwidthRateLimitScheduleInput) Validate() error {
 14078  	invalidParams := request.ErrInvalidParams{Context: "DescribeBandwidthRateLimitScheduleInput"}
 14079  	if s.GatewayARN == nil {
 14080  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 14081  	}
 14082  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 14083  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 14084  	}
 14085  
 14086  	if invalidParams.Len() > 0 {
 14087  		return invalidParams
 14088  	}
 14089  	return nil
 14090  }
 14091  
 14092  // SetGatewayARN sets the GatewayARN field's value.
 14093  func (s *DescribeBandwidthRateLimitScheduleInput) SetGatewayARN(v string) *DescribeBandwidthRateLimitScheduleInput {
 14094  	s.GatewayARN = &v
 14095  	return s
 14096  }
 14097  
 14098  type DescribeBandwidthRateLimitScheduleOutput struct {
 14099  	_ struct{} `type:"structure"`
 14100  
 14101  	// An array that contains the bandwidth rate limit intervals for a tape or volume
 14102  	// gateway.
 14103  	BandwidthRateLimitIntervals []*BandwidthRateLimitInterval `type:"list"`
 14104  
 14105  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 14106  	// to return a list of gateways for your account and Region.
 14107  	GatewayARN *string `min:"50" type:"string"`
 14108  }
 14109  
 14110  // String returns the string representation.
 14111  //
 14112  // API parameter values that are decorated as "sensitive" in the API will not
 14113  // be included in the string output. The member name will be present, but the
 14114  // value will be replaced with "sensitive".
 14115  func (s DescribeBandwidthRateLimitScheduleOutput) String() string {
 14116  	return awsutil.Prettify(s)
 14117  }
 14118  
 14119  // GoString returns the string representation.
 14120  //
 14121  // API parameter values that are decorated as "sensitive" in the API will not
 14122  // be included in the string output. The member name will be present, but the
 14123  // value will be replaced with "sensitive".
 14124  func (s DescribeBandwidthRateLimitScheduleOutput) GoString() string {
 14125  	return s.String()
 14126  }
 14127  
 14128  // SetBandwidthRateLimitIntervals sets the BandwidthRateLimitIntervals field's value.
 14129  func (s *DescribeBandwidthRateLimitScheduleOutput) SetBandwidthRateLimitIntervals(v []*BandwidthRateLimitInterval) *DescribeBandwidthRateLimitScheduleOutput {
 14130  	s.BandwidthRateLimitIntervals = v
 14131  	return s
 14132  }
 14133  
 14134  // SetGatewayARN sets the GatewayARN field's value.
 14135  func (s *DescribeBandwidthRateLimitScheduleOutput) SetGatewayARN(v string) *DescribeBandwidthRateLimitScheduleOutput {
 14136  	s.GatewayARN = &v
 14137  	return s
 14138  }
 14139  
 14140  type DescribeCacheInput struct {
 14141  	_ struct{} `type:"structure"`
 14142  
 14143  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 14144  	// to return a list of gateways for your account and Region.
 14145  	//
 14146  	// GatewayARN is a required field
 14147  	GatewayARN *string `min:"50" type:"string" required:"true"`
 14148  }
 14149  
 14150  // String returns the string representation.
 14151  //
 14152  // API parameter values that are decorated as "sensitive" in the API will not
 14153  // be included in the string output. The member name will be present, but the
 14154  // value will be replaced with "sensitive".
 14155  func (s DescribeCacheInput) String() string {
 14156  	return awsutil.Prettify(s)
 14157  }
 14158  
 14159  // GoString returns the string representation.
 14160  //
 14161  // API parameter values that are decorated as "sensitive" in the API will not
 14162  // be included in the string output. The member name will be present, but the
 14163  // value will be replaced with "sensitive".
 14164  func (s DescribeCacheInput) GoString() string {
 14165  	return s.String()
 14166  }
 14167  
 14168  // Validate inspects the fields of the type to determine if they are valid.
 14169  func (s *DescribeCacheInput) Validate() error {
 14170  	invalidParams := request.ErrInvalidParams{Context: "DescribeCacheInput"}
 14171  	if s.GatewayARN == nil {
 14172  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 14173  	}
 14174  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 14175  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 14176  	}
 14177  
 14178  	if invalidParams.Len() > 0 {
 14179  		return invalidParams
 14180  	}
 14181  	return nil
 14182  }
 14183  
 14184  // SetGatewayARN sets the GatewayARN field's value.
 14185  func (s *DescribeCacheInput) SetGatewayARN(v string) *DescribeCacheInput {
 14186  	s.GatewayARN = &v
 14187  	return s
 14188  }
 14189  
 14190  type DescribeCacheOutput struct {
 14191  	_ struct{} `type:"structure"`
 14192  
 14193  	// The amount of cache in bytes allocated to a gateway.
 14194  	CacheAllocatedInBytes *int64 `type:"long"`
 14195  
 14196  	// The file share's contribution to the overall percentage of the gateway's
 14197  	// cache that has not been persisted to Amazon Web Services. The sample is taken
 14198  	// at the end of the reporting period.
 14199  	CacheDirtyPercentage *float64 `type:"double"`
 14200  
 14201  	// Percent of application read operations from the file shares that are served
 14202  	// from cache. The sample is taken at the end of the reporting period.
 14203  	CacheHitPercentage *float64 `type:"double"`
 14204  
 14205  	// Percent of application read operations from the file shares that are not
 14206  	// served from cache. The sample is taken at the end of the reporting period.
 14207  	CacheMissPercentage *float64 `type:"double"`
 14208  
 14209  	// Percent use of the gateway's cache storage. This metric applies only to the
 14210  	// gateway-cached volume setup. The sample is taken at the end of the reporting
 14211  	// period.
 14212  	CacheUsedPercentage *float64 `type:"double"`
 14213  
 14214  	// An array of strings that identify disks that are to be configured as working
 14215  	// storage. Each string has a minimum length of 1 and maximum length of 300.
 14216  	// You can get the disk IDs from the ListLocalDisks API.
 14217  	DiskIds []*string `type:"list"`
 14218  
 14219  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 14220  	// to return a list of gateways for your account and Region.
 14221  	GatewayARN *string `min:"50" type:"string"`
 14222  }
 14223  
 14224  // String returns the string representation.
 14225  //
 14226  // API parameter values that are decorated as "sensitive" in the API will not
 14227  // be included in the string output. The member name will be present, but the
 14228  // value will be replaced with "sensitive".
 14229  func (s DescribeCacheOutput) String() string {
 14230  	return awsutil.Prettify(s)
 14231  }
 14232  
 14233  // GoString returns the string representation.
 14234  //
 14235  // API parameter values that are decorated as "sensitive" in the API will not
 14236  // be included in the string output. The member name will be present, but the
 14237  // value will be replaced with "sensitive".
 14238  func (s DescribeCacheOutput) GoString() string {
 14239  	return s.String()
 14240  }
 14241  
 14242  // SetCacheAllocatedInBytes sets the CacheAllocatedInBytes field's value.
 14243  func (s *DescribeCacheOutput) SetCacheAllocatedInBytes(v int64) *DescribeCacheOutput {
 14244  	s.CacheAllocatedInBytes = &v
 14245  	return s
 14246  }
 14247  
 14248  // SetCacheDirtyPercentage sets the CacheDirtyPercentage field's value.
 14249  func (s *DescribeCacheOutput) SetCacheDirtyPercentage(v float64) *DescribeCacheOutput {
 14250  	s.CacheDirtyPercentage = &v
 14251  	return s
 14252  }
 14253  
 14254  // SetCacheHitPercentage sets the CacheHitPercentage field's value.
 14255  func (s *DescribeCacheOutput) SetCacheHitPercentage(v float64) *DescribeCacheOutput {
 14256  	s.CacheHitPercentage = &v
 14257  	return s
 14258  }
 14259  
 14260  // SetCacheMissPercentage sets the CacheMissPercentage field's value.
 14261  func (s *DescribeCacheOutput) SetCacheMissPercentage(v float64) *DescribeCacheOutput {
 14262  	s.CacheMissPercentage = &v
 14263  	return s
 14264  }
 14265  
 14266  // SetCacheUsedPercentage sets the CacheUsedPercentage field's value.
 14267  func (s *DescribeCacheOutput) SetCacheUsedPercentage(v float64) *DescribeCacheOutput {
 14268  	s.CacheUsedPercentage = &v
 14269  	return s
 14270  }
 14271  
 14272  // SetDiskIds sets the DiskIds field's value.
 14273  func (s *DescribeCacheOutput) SetDiskIds(v []*string) *DescribeCacheOutput {
 14274  	s.DiskIds = v
 14275  	return s
 14276  }
 14277  
 14278  // SetGatewayARN sets the GatewayARN field's value.
 14279  func (s *DescribeCacheOutput) SetGatewayARN(v string) *DescribeCacheOutput {
 14280  	s.GatewayARN = &v
 14281  	return s
 14282  }
 14283  
 14284  type DescribeCachediSCSIVolumesInput struct {
 14285  	_ struct{} `type:"structure"`
 14286  
 14287  	// An array of strings where each string represents the Amazon Resource Name
 14288  	// (ARN) of a cached volume. All of the specified cached volumes must be from
 14289  	// the same gateway. Use ListVolumes to get volume ARNs for a gateway.
 14290  	//
 14291  	// VolumeARNs is a required field
 14292  	VolumeARNs []*string `type:"list" required:"true"`
 14293  }
 14294  
 14295  // String returns the string representation.
 14296  //
 14297  // API parameter values that are decorated as "sensitive" in the API will not
 14298  // be included in the string output. The member name will be present, but the
 14299  // value will be replaced with "sensitive".
 14300  func (s DescribeCachediSCSIVolumesInput) String() string {
 14301  	return awsutil.Prettify(s)
 14302  }
 14303  
 14304  // GoString returns the string representation.
 14305  //
 14306  // API parameter values that are decorated as "sensitive" in the API will not
 14307  // be included in the string output. The member name will be present, but the
 14308  // value will be replaced with "sensitive".
 14309  func (s DescribeCachediSCSIVolumesInput) GoString() string {
 14310  	return s.String()
 14311  }
 14312  
 14313  // Validate inspects the fields of the type to determine if they are valid.
 14314  func (s *DescribeCachediSCSIVolumesInput) Validate() error {
 14315  	invalidParams := request.ErrInvalidParams{Context: "DescribeCachediSCSIVolumesInput"}
 14316  	if s.VolumeARNs == nil {
 14317  		invalidParams.Add(request.NewErrParamRequired("VolumeARNs"))
 14318  	}
 14319  
 14320  	if invalidParams.Len() > 0 {
 14321  		return invalidParams
 14322  	}
 14323  	return nil
 14324  }
 14325  
 14326  // SetVolumeARNs sets the VolumeARNs field's value.
 14327  func (s *DescribeCachediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeCachediSCSIVolumesInput {
 14328  	s.VolumeARNs = v
 14329  	return s
 14330  }
 14331  
 14332  // A JSON object containing the following fields:
 14333  type DescribeCachediSCSIVolumesOutput struct {
 14334  	_ struct{} `type:"structure"`
 14335  
 14336  	// An array of objects where each object contains metadata about one cached
 14337  	// volume.
 14338  	CachediSCSIVolumes []*CachediSCSIVolume `type:"list"`
 14339  }
 14340  
 14341  // String returns the string representation.
 14342  //
 14343  // API parameter values that are decorated as "sensitive" in the API will not
 14344  // be included in the string output. The member name will be present, but the
 14345  // value will be replaced with "sensitive".
 14346  func (s DescribeCachediSCSIVolumesOutput) String() string {
 14347  	return awsutil.Prettify(s)
 14348  }
 14349  
 14350  // GoString returns the string representation.
 14351  //
 14352  // API parameter values that are decorated as "sensitive" in the API will not
 14353  // be included in the string output. The member name will be present, but the
 14354  // value will be replaced with "sensitive".
 14355  func (s DescribeCachediSCSIVolumesOutput) GoString() string {
 14356  	return s.String()
 14357  }
 14358  
 14359  // SetCachediSCSIVolumes sets the CachediSCSIVolumes field's value.
 14360  func (s *DescribeCachediSCSIVolumesOutput) SetCachediSCSIVolumes(v []*CachediSCSIVolume) *DescribeCachediSCSIVolumesOutput {
 14361  	s.CachediSCSIVolumes = v
 14362  	return s
 14363  }
 14364  
 14365  // A JSON object containing the Amazon Resource Name (ARN) of the iSCSI volume
 14366  // target.
 14367  type DescribeChapCredentialsInput struct {
 14368  	_ struct{} `type:"structure"`
 14369  
 14370  	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
 14371  	// operation to return to retrieve the TargetARN for specified VolumeARN.
 14372  	//
 14373  	// TargetARN is a required field
 14374  	TargetARN *string `min:"50" type:"string" required:"true"`
 14375  }
 14376  
 14377  // String returns the string representation.
 14378  //
 14379  // API parameter values that are decorated as "sensitive" in the API will not
 14380  // be included in the string output. The member name will be present, but the
 14381  // value will be replaced with "sensitive".
 14382  func (s DescribeChapCredentialsInput) String() string {
 14383  	return awsutil.Prettify(s)
 14384  }
 14385  
 14386  // GoString returns the string representation.
 14387  //
 14388  // API parameter values that are decorated as "sensitive" in the API will not
 14389  // be included in the string output. The member name will be present, but the
 14390  // value will be replaced with "sensitive".
 14391  func (s DescribeChapCredentialsInput) GoString() string {
 14392  	return s.String()
 14393  }
 14394  
 14395  // Validate inspects the fields of the type to determine if they are valid.
 14396  func (s *DescribeChapCredentialsInput) Validate() error {
 14397  	invalidParams := request.ErrInvalidParams{Context: "DescribeChapCredentialsInput"}
 14398  	if s.TargetARN == nil {
 14399  		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
 14400  	}
 14401  	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
 14402  		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
 14403  	}
 14404  
 14405  	if invalidParams.Len() > 0 {
 14406  		return invalidParams
 14407  	}
 14408  	return nil
 14409  }
 14410  
 14411  // SetTargetARN sets the TargetARN field's value.
 14412  func (s *DescribeChapCredentialsInput) SetTargetARN(v string) *DescribeChapCredentialsInput {
 14413  	s.TargetARN = &v
 14414  	return s
 14415  }
 14416  
 14417  // A JSON object containing the following fields:
 14418  type DescribeChapCredentialsOutput struct {
 14419  	_ struct{} `type:"structure"`
 14420  
 14421  	// An array of ChapInfo objects that represent CHAP credentials. Each object
 14422  	// in the array contains CHAP credential information for one target-initiator
 14423  	// pair. If no CHAP credentials are set, an empty array is returned. CHAP credential
 14424  	// information is provided in a JSON object with the following fields:
 14425  	//
 14426  	//    * InitiatorName: The iSCSI initiator that connects to the target.
 14427  	//
 14428  	//    * SecretToAuthenticateInitiator: The secret key that the initiator (for
 14429  	//    example, the Windows client) must provide to participate in mutual CHAP
 14430  	//    with the target.
 14431  	//
 14432  	//    * SecretToAuthenticateTarget: The secret key that the target must provide
 14433  	//    to participate in mutual CHAP with the initiator (e.g. Windows client).
 14434  	//
 14435  	//    * TargetARN: The Amazon Resource Name (ARN) of the storage volume.
 14436  	ChapCredentials []*ChapInfo `type:"list"`
 14437  }
 14438  
 14439  // String returns the string representation.
 14440  //
 14441  // API parameter values that are decorated as "sensitive" in the API will not
 14442  // be included in the string output. The member name will be present, but the
 14443  // value will be replaced with "sensitive".
 14444  func (s DescribeChapCredentialsOutput) String() string {
 14445  	return awsutil.Prettify(s)
 14446  }
 14447  
 14448  // GoString returns the string representation.
 14449  //
 14450  // API parameter values that are decorated as "sensitive" in the API will not
 14451  // be included in the string output. The member name will be present, but the
 14452  // value will be replaced with "sensitive".
 14453  func (s DescribeChapCredentialsOutput) GoString() string {
 14454  	return s.String()
 14455  }
 14456  
 14457  // SetChapCredentials sets the ChapCredentials field's value.
 14458  func (s *DescribeChapCredentialsOutput) SetChapCredentials(v []*ChapInfo) *DescribeChapCredentialsOutput {
 14459  	s.ChapCredentials = v
 14460  	return s
 14461  }
 14462  
 14463  type DescribeFileSystemAssociationsInput struct {
 14464  	_ struct{} `type:"structure"`
 14465  
 14466  	// An array containing the Amazon Resource Name (ARN) of each file system association
 14467  	// to be described.
 14468  	//
 14469  	// FileSystemAssociationARNList is a required field
 14470  	FileSystemAssociationARNList []*string `min:"1" type:"list" required:"true"`
 14471  }
 14472  
 14473  // String returns the string representation.
 14474  //
 14475  // API parameter values that are decorated as "sensitive" in the API will not
 14476  // be included in the string output. The member name will be present, but the
 14477  // value will be replaced with "sensitive".
 14478  func (s DescribeFileSystemAssociationsInput) String() string {
 14479  	return awsutil.Prettify(s)
 14480  }
 14481  
 14482  // GoString returns the string representation.
 14483  //
 14484  // API parameter values that are decorated as "sensitive" in the API will not
 14485  // be included in the string output. The member name will be present, but the
 14486  // value will be replaced with "sensitive".
 14487  func (s DescribeFileSystemAssociationsInput) GoString() string {
 14488  	return s.String()
 14489  }
 14490  
 14491  // Validate inspects the fields of the type to determine if they are valid.
 14492  func (s *DescribeFileSystemAssociationsInput) Validate() error {
 14493  	invalidParams := request.ErrInvalidParams{Context: "DescribeFileSystemAssociationsInput"}
 14494  	if s.FileSystemAssociationARNList == nil {
 14495  		invalidParams.Add(request.NewErrParamRequired("FileSystemAssociationARNList"))
 14496  	}
 14497  	if s.FileSystemAssociationARNList != nil && len(s.FileSystemAssociationARNList) < 1 {
 14498  		invalidParams.Add(request.NewErrParamMinLen("FileSystemAssociationARNList", 1))
 14499  	}
 14500  
 14501  	if invalidParams.Len() > 0 {
 14502  		return invalidParams
 14503  	}
 14504  	return nil
 14505  }
 14506  
 14507  // SetFileSystemAssociationARNList sets the FileSystemAssociationARNList field's value.
 14508  func (s *DescribeFileSystemAssociationsInput) SetFileSystemAssociationARNList(v []*string) *DescribeFileSystemAssociationsInput {
 14509  	s.FileSystemAssociationARNList = v
 14510  	return s
 14511  }
 14512  
 14513  type DescribeFileSystemAssociationsOutput struct {
 14514  	_ struct{} `type:"structure"`
 14515  
 14516  	// An array containing the FileSystemAssociationInfo data type of each file
 14517  	// system association to be described.
 14518  	FileSystemAssociationInfoList []*FileSystemAssociationInfo `type:"list"`
 14519  }
 14520  
 14521  // String returns the string representation.
 14522  //
 14523  // API parameter values that are decorated as "sensitive" in the API will not
 14524  // be included in the string output. The member name will be present, but the
 14525  // value will be replaced with "sensitive".
 14526  func (s DescribeFileSystemAssociationsOutput) String() string {
 14527  	return awsutil.Prettify(s)
 14528  }
 14529  
 14530  // GoString returns the string representation.
 14531  //
 14532  // API parameter values that are decorated as "sensitive" in the API will not
 14533  // be included in the string output. The member name will be present, but the
 14534  // value will be replaced with "sensitive".
 14535  func (s DescribeFileSystemAssociationsOutput) GoString() string {
 14536  	return s.String()
 14537  }
 14538  
 14539  // SetFileSystemAssociationInfoList sets the FileSystemAssociationInfoList field's value.
 14540  func (s *DescribeFileSystemAssociationsOutput) SetFileSystemAssociationInfoList(v []*FileSystemAssociationInfo) *DescribeFileSystemAssociationsOutput {
 14541  	s.FileSystemAssociationInfoList = v
 14542  	return s
 14543  }
 14544  
 14545  // A JSON object containing the ID of the gateway.
 14546  type DescribeGatewayInformationInput struct {
 14547  	_ struct{} `type:"structure"`
 14548  
 14549  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 14550  	// to return a list of gateways for your account and Region.
 14551  	//
 14552  	// GatewayARN is a required field
 14553  	GatewayARN *string `min:"50" type:"string" required:"true"`
 14554  }
 14555  
 14556  // String returns the string representation.
 14557  //
 14558  // API parameter values that are decorated as "sensitive" in the API will not
 14559  // be included in the string output. The member name will be present, but the
 14560  // value will be replaced with "sensitive".
 14561  func (s DescribeGatewayInformationInput) String() string {
 14562  	return awsutil.Prettify(s)
 14563  }
 14564  
 14565  // GoString returns the string representation.
 14566  //
 14567  // API parameter values that are decorated as "sensitive" in the API will not
 14568  // be included in the string output. The member name will be present, but the
 14569  // value will be replaced with "sensitive".
 14570  func (s DescribeGatewayInformationInput) GoString() string {
 14571  	return s.String()
 14572  }
 14573  
 14574  // Validate inspects the fields of the type to determine if they are valid.
 14575  func (s *DescribeGatewayInformationInput) Validate() error {
 14576  	invalidParams := request.ErrInvalidParams{Context: "DescribeGatewayInformationInput"}
 14577  	if s.GatewayARN == nil {
 14578  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 14579  	}
 14580  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 14581  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 14582  	}
 14583  
 14584  	if invalidParams.Len() > 0 {
 14585  		return invalidParams
 14586  	}
 14587  	return nil
 14588  }
 14589  
 14590  // SetGatewayARN sets the GatewayARN field's value.
 14591  func (s *DescribeGatewayInformationInput) SetGatewayARN(v string) *DescribeGatewayInformationInput {
 14592  	s.GatewayARN = &v
 14593  	return s
 14594  }
 14595  
 14596  // A JSON object containing the following fields:
 14597  type DescribeGatewayInformationOutput struct {
 14598  	_ struct{} `type:"structure"`
 14599  
 14600  	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is
 14601  	// used to monitor events in the gateway.
 14602  	CloudWatchLogGroupARN *string `type:"string"`
 14603  
 14604  	// Date after which this gateway will not receive software updates for new features
 14605  	// and bug fixes.
 14606  	DeprecationDate *string `min:"1" type:"string"`
 14607  
 14608  	// The ID of the Amazon EC2 instance that was used to launch the gateway.
 14609  	Ec2InstanceId *string `type:"string"`
 14610  
 14611  	// The Region where the Amazon EC2 instance is located.
 14612  	Ec2InstanceRegion *string `type:"string"`
 14613  
 14614  	// The type of endpoint for your gateway.
 14615  	//
 14616  	// Valid Values: STANDARD | FIPS
 14617  	EndpointType *string `min:"4" type:"string"`
 14618  
 14619  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 14620  	// to return a list of gateways for your account and Region.
 14621  	GatewayARN *string `min:"50" type:"string"`
 14622  
 14623  	// Specifies the size of the gateway's metadata cache.
 14624  	GatewayCapacity *string `type:"string" enum:"GatewayCapacity"`
 14625  
 14626  	// The unique identifier assigned to your gateway during activation. This ID
 14627  	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
 14628  	// input for other operations.
 14629  	GatewayId *string `min:"12" type:"string"`
 14630  
 14631  	// The name you configured for your gateway.
 14632  	GatewayName *string `type:"string"`
 14633  
 14634  	// A NetworkInterface array that contains descriptions of the gateway network
 14635  	// interfaces.
 14636  	GatewayNetworkInterfaces []*NetworkInterface `type:"list"`
 14637  
 14638  	// A value that indicates the operating state of the gateway.
 14639  	GatewayState *string `min:"2" type:"string"`
 14640  
 14641  	// A value that indicates the time zone configured for the gateway.
 14642  	GatewayTimezone *string `min:"3" type:"string"`
 14643  
 14644  	// The type of the gateway.
 14645  	GatewayType *string `min:"2" type:"string"`
 14646  
 14647  	// The type of hypervisor environment used by the host.
 14648  	HostEnvironment *string `type:"string" enum:"HostEnvironment"`
 14649  
 14650  	// The date on which the last software update was applied to the gateway. If
 14651  	// the gateway has never been updated, this field does not return a value in
 14652  	// the response.
 14653  	LastSoftwareUpdate *string `min:"1" type:"string"`
 14654  
 14655  	// The date on which an update to the gateway is available. This date is in
 14656  	// the time zone of the gateway. If the gateway is not available for an update
 14657  	// this field is not returned in the response.
 14658  	NextUpdateAvailabilityDate *string `min:"1" type:"string"`
 14659  
 14660  	// Date after which this gateway will not receive software updates for new features.
 14661  	SoftwareUpdatesEndDate *string `min:"1" type:"string"`
 14662  
 14663  	// A list of the metadata cache sizes that the gateway can support based on
 14664  	// its current hardware specifications.
 14665  	SupportedGatewayCapacities []*string `type:"list"`
 14666  
 14667  	// A list of up to 50 tags assigned to the gateway, sorted alphabetically by
 14668  	// key name. Each tag is a key-value pair. For a gateway with more than 10 tags
 14669  	// assigned, you can view all tags using the ListTagsForResource API operation.
 14670  	Tags []*Tag `type:"list"`
 14671  
 14672  	// The configuration settings for the virtual private cloud (VPC) endpoint for
 14673  	// your gateway.
 14674  	VPCEndpoint *string `type:"string"`
 14675  }
 14676  
 14677  // String returns the string representation.
 14678  //
 14679  // API parameter values that are decorated as "sensitive" in the API will not
 14680  // be included in the string output. The member name will be present, but the
 14681  // value will be replaced with "sensitive".
 14682  func (s DescribeGatewayInformationOutput) String() string {
 14683  	return awsutil.Prettify(s)
 14684  }
 14685  
 14686  // GoString returns the string representation.
 14687  //
 14688  // API parameter values that are decorated as "sensitive" in the API will not
 14689  // be included in the string output. The member name will be present, but the
 14690  // value will be replaced with "sensitive".
 14691  func (s DescribeGatewayInformationOutput) GoString() string {
 14692  	return s.String()
 14693  }
 14694  
 14695  // SetCloudWatchLogGroupARN sets the CloudWatchLogGroupARN field's value.
 14696  func (s *DescribeGatewayInformationOutput) SetCloudWatchLogGroupARN(v string) *DescribeGatewayInformationOutput {
 14697  	s.CloudWatchLogGroupARN = &v
 14698  	return s
 14699  }
 14700  
 14701  // SetDeprecationDate sets the DeprecationDate field's value.
 14702  func (s *DescribeGatewayInformationOutput) SetDeprecationDate(v string) *DescribeGatewayInformationOutput {
 14703  	s.DeprecationDate = &v
 14704  	return s
 14705  }
 14706  
 14707  // SetEc2InstanceId sets the Ec2InstanceId field's value.
 14708  func (s *DescribeGatewayInformationOutput) SetEc2InstanceId(v string) *DescribeGatewayInformationOutput {
 14709  	s.Ec2InstanceId = &v
 14710  	return s
 14711  }
 14712  
 14713  // SetEc2InstanceRegion sets the Ec2InstanceRegion field's value.
 14714  func (s *DescribeGatewayInformationOutput) SetEc2InstanceRegion(v string) *DescribeGatewayInformationOutput {
 14715  	s.Ec2InstanceRegion = &v
 14716  	return s
 14717  }
 14718  
 14719  // SetEndpointType sets the EndpointType field's value.
 14720  func (s *DescribeGatewayInformationOutput) SetEndpointType(v string) *DescribeGatewayInformationOutput {
 14721  	s.EndpointType = &v
 14722  	return s
 14723  }
 14724  
 14725  // SetGatewayARN sets the GatewayARN field's value.
 14726  func (s *DescribeGatewayInformationOutput) SetGatewayARN(v string) *DescribeGatewayInformationOutput {
 14727  	s.GatewayARN = &v
 14728  	return s
 14729  }
 14730  
 14731  // SetGatewayCapacity sets the GatewayCapacity field's value.
 14732  func (s *DescribeGatewayInformationOutput) SetGatewayCapacity(v string) *DescribeGatewayInformationOutput {
 14733  	s.GatewayCapacity = &v
 14734  	return s
 14735  }
 14736  
 14737  // SetGatewayId sets the GatewayId field's value.
 14738  func (s *DescribeGatewayInformationOutput) SetGatewayId(v string) *DescribeGatewayInformationOutput {
 14739  	s.GatewayId = &v
 14740  	return s
 14741  }
 14742  
 14743  // SetGatewayName sets the GatewayName field's value.
 14744  func (s *DescribeGatewayInformationOutput) SetGatewayName(v string) *DescribeGatewayInformationOutput {
 14745  	s.GatewayName = &v
 14746  	return s
 14747  }
 14748  
 14749  // SetGatewayNetworkInterfaces sets the GatewayNetworkInterfaces field's value.
 14750  func (s *DescribeGatewayInformationOutput) SetGatewayNetworkInterfaces(v []*NetworkInterface) *DescribeGatewayInformationOutput {
 14751  	s.GatewayNetworkInterfaces = v
 14752  	return s
 14753  }
 14754  
 14755  // SetGatewayState sets the GatewayState field's value.
 14756  func (s *DescribeGatewayInformationOutput) SetGatewayState(v string) *DescribeGatewayInformationOutput {
 14757  	s.GatewayState = &v
 14758  	return s
 14759  }
 14760  
 14761  // SetGatewayTimezone sets the GatewayTimezone field's value.
 14762  func (s *DescribeGatewayInformationOutput) SetGatewayTimezone(v string) *DescribeGatewayInformationOutput {
 14763  	s.GatewayTimezone = &v
 14764  	return s
 14765  }
 14766  
 14767  // SetGatewayType sets the GatewayType field's value.
 14768  func (s *DescribeGatewayInformationOutput) SetGatewayType(v string) *DescribeGatewayInformationOutput {
 14769  	s.GatewayType = &v
 14770  	return s
 14771  }
 14772  
 14773  // SetHostEnvironment sets the HostEnvironment field's value.
 14774  func (s *DescribeGatewayInformationOutput) SetHostEnvironment(v string) *DescribeGatewayInformationOutput {
 14775  	s.HostEnvironment = &v
 14776  	return s
 14777  }
 14778  
 14779  // SetLastSoftwareUpdate sets the LastSoftwareUpdate field's value.
 14780  func (s *DescribeGatewayInformationOutput) SetLastSoftwareUpdate(v string) *DescribeGatewayInformationOutput {
 14781  	s.LastSoftwareUpdate = &v
 14782  	return s
 14783  }
 14784  
 14785  // SetNextUpdateAvailabilityDate sets the NextUpdateAvailabilityDate field's value.
 14786  func (s *DescribeGatewayInformationOutput) SetNextUpdateAvailabilityDate(v string) *DescribeGatewayInformationOutput {
 14787  	s.NextUpdateAvailabilityDate = &v
 14788  	return s
 14789  }
 14790  
 14791  // SetSoftwareUpdatesEndDate sets the SoftwareUpdatesEndDate field's value.
 14792  func (s *DescribeGatewayInformationOutput) SetSoftwareUpdatesEndDate(v string) *DescribeGatewayInformationOutput {
 14793  	s.SoftwareUpdatesEndDate = &v
 14794  	return s
 14795  }
 14796  
 14797  // SetSupportedGatewayCapacities sets the SupportedGatewayCapacities field's value.
 14798  func (s *DescribeGatewayInformationOutput) SetSupportedGatewayCapacities(v []*string) *DescribeGatewayInformationOutput {
 14799  	s.SupportedGatewayCapacities = v
 14800  	return s
 14801  }
 14802  
 14803  // SetTags sets the Tags field's value.
 14804  func (s *DescribeGatewayInformationOutput) SetTags(v []*Tag) *DescribeGatewayInformationOutput {
 14805  	s.Tags = v
 14806  	return s
 14807  }
 14808  
 14809  // SetVPCEndpoint sets the VPCEndpoint field's value.
 14810  func (s *DescribeGatewayInformationOutput) SetVPCEndpoint(v string) *DescribeGatewayInformationOutput {
 14811  	s.VPCEndpoint = &v
 14812  	return s
 14813  }
 14814  
 14815  // A JSON object containing the Amazon Resource Name (ARN) of the gateway.
 14816  type DescribeMaintenanceStartTimeInput struct {
 14817  	_ struct{} `type:"structure"`
 14818  
 14819  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 14820  	// to return a list of gateways for your account and Region.
 14821  	//
 14822  	// GatewayARN is a required field
 14823  	GatewayARN *string `min:"50" type:"string" required:"true"`
 14824  }
 14825  
 14826  // String returns the string representation.
 14827  //
 14828  // API parameter values that are decorated as "sensitive" in the API will not
 14829  // be included in the string output. The member name will be present, but the
 14830  // value will be replaced with "sensitive".
 14831  func (s DescribeMaintenanceStartTimeInput) String() string {
 14832  	return awsutil.Prettify(s)
 14833  }
 14834  
 14835  // GoString returns the string representation.
 14836  //
 14837  // API parameter values that are decorated as "sensitive" in the API will not
 14838  // be included in the string output. The member name will be present, but the
 14839  // value will be replaced with "sensitive".
 14840  func (s DescribeMaintenanceStartTimeInput) GoString() string {
 14841  	return s.String()
 14842  }
 14843  
 14844  // Validate inspects the fields of the type to determine if they are valid.
 14845  func (s *DescribeMaintenanceStartTimeInput) Validate() error {
 14846  	invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceStartTimeInput"}
 14847  	if s.GatewayARN == nil {
 14848  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 14849  	}
 14850  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 14851  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 14852  	}
 14853  
 14854  	if invalidParams.Len() > 0 {
 14855  		return invalidParams
 14856  	}
 14857  	return nil
 14858  }
 14859  
 14860  // SetGatewayARN sets the GatewayARN field's value.
 14861  func (s *DescribeMaintenanceStartTimeInput) SetGatewayARN(v string) *DescribeMaintenanceStartTimeInput {
 14862  	s.GatewayARN = &v
 14863  	return s
 14864  }
 14865  
 14866  // A JSON object containing the following fields:
 14867  //
 14868  //    * DescribeMaintenanceStartTimeOutput$DayOfMonth
 14869  //
 14870  //    * DescribeMaintenanceStartTimeOutput$DayOfWeek
 14871  //
 14872  //    * DescribeMaintenanceStartTimeOutput$HourOfDay
 14873  //
 14874  //    * DescribeMaintenanceStartTimeOutput$MinuteOfHour
 14875  //
 14876  //    * DescribeMaintenanceStartTimeOutput$Timezone
 14877  type DescribeMaintenanceStartTimeOutput struct {
 14878  	_ struct{} `type:"structure"`
 14879  
 14880  	// The day of the month component of the maintenance start time represented
 14881  	// as an ordinal number from 1 to 28, where 1 represents the first day of the
 14882  	// month and 28 represents the last day of the month.
 14883  	DayOfMonth *int64 `min:"1" type:"integer"`
 14884  
 14885  	// An ordinal number between 0 and 6 that represents the day of the week, where
 14886  	// 0 represents Sunday and 6 represents Saturday. The day of week is in the
 14887  	// time zone of the gateway.
 14888  	DayOfWeek *int64 `type:"integer"`
 14889  
 14890  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 14891  	// to return a list of gateways for your account and Region.
 14892  	GatewayARN *string `min:"50" type:"string"`
 14893  
 14894  	// The hour component of the maintenance start time represented as hh, where
 14895  	// hh is the hour (0 to 23). The hour of the day is in the time zone of the
 14896  	// gateway.
 14897  	HourOfDay *int64 `type:"integer"`
 14898  
 14899  	// The minute component of the maintenance start time represented as mm, where
 14900  	// mm is the minute (0 to 59). The minute of the hour is in the time zone of
 14901  	// the gateway.
 14902  	MinuteOfHour *int64 `type:"integer"`
 14903  
 14904  	// A value that indicates the time zone that is set for the gateway. The start
 14905  	// time and day of week specified should be in the time zone of the gateway.
 14906  	Timezone *string `min:"3" type:"string"`
 14907  }
 14908  
 14909  // String returns the string representation.
 14910  //
 14911  // API parameter values that are decorated as "sensitive" in the API will not
 14912  // be included in the string output. The member name will be present, but the
 14913  // value will be replaced with "sensitive".
 14914  func (s DescribeMaintenanceStartTimeOutput) String() string {
 14915  	return awsutil.Prettify(s)
 14916  }
 14917  
 14918  // GoString returns the string representation.
 14919  //
 14920  // API parameter values that are decorated as "sensitive" in the API will not
 14921  // be included in the string output. The member name will be present, but the
 14922  // value will be replaced with "sensitive".
 14923  func (s DescribeMaintenanceStartTimeOutput) GoString() string {
 14924  	return s.String()
 14925  }
 14926  
 14927  // SetDayOfMonth sets the DayOfMonth field's value.
 14928  func (s *DescribeMaintenanceStartTimeOutput) SetDayOfMonth(v int64) *DescribeMaintenanceStartTimeOutput {
 14929  	s.DayOfMonth = &v
 14930  	return s
 14931  }
 14932  
 14933  // SetDayOfWeek sets the DayOfWeek field's value.
 14934  func (s *DescribeMaintenanceStartTimeOutput) SetDayOfWeek(v int64) *DescribeMaintenanceStartTimeOutput {
 14935  	s.DayOfWeek = &v
 14936  	return s
 14937  }
 14938  
 14939  // SetGatewayARN sets the GatewayARN field's value.
 14940  func (s *DescribeMaintenanceStartTimeOutput) SetGatewayARN(v string) *DescribeMaintenanceStartTimeOutput {
 14941  	s.GatewayARN = &v
 14942  	return s
 14943  }
 14944  
 14945  // SetHourOfDay sets the HourOfDay field's value.
 14946  func (s *DescribeMaintenanceStartTimeOutput) SetHourOfDay(v int64) *DescribeMaintenanceStartTimeOutput {
 14947  	s.HourOfDay = &v
 14948  	return s
 14949  }
 14950  
 14951  // SetMinuteOfHour sets the MinuteOfHour field's value.
 14952  func (s *DescribeMaintenanceStartTimeOutput) SetMinuteOfHour(v int64) *DescribeMaintenanceStartTimeOutput {
 14953  	s.MinuteOfHour = &v
 14954  	return s
 14955  }
 14956  
 14957  // SetTimezone sets the Timezone field's value.
 14958  func (s *DescribeMaintenanceStartTimeOutput) SetTimezone(v string) *DescribeMaintenanceStartTimeOutput {
 14959  	s.Timezone = &v
 14960  	return s
 14961  }
 14962  
 14963  // DescribeNFSFileSharesInput
 14964  type DescribeNFSFileSharesInput struct {
 14965  	_ struct{} `type:"structure"`
 14966  
 14967  	// An array containing the Amazon Resource Name (ARN) of each file share to
 14968  	// be described.
 14969  	//
 14970  	// FileShareARNList is a required field
 14971  	FileShareARNList []*string `min:"1" type:"list" required:"true"`
 14972  }
 14973  
 14974  // String returns the string representation.
 14975  //
 14976  // API parameter values that are decorated as "sensitive" in the API will not
 14977  // be included in the string output. The member name will be present, but the
 14978  // value will be replaced with "sensitive".
 14979  func (s DescribeNFSFileSharesInput) String() string {
 14980  	return awsutil.Prettify(s)
 14981  }
 14982  
 14983  // GoString returns the string representation.
 14984  //
 14985  // API parameter values that are decorated as "sensitive" in the API will not
 14986  // be included in the string output. The member name will be present, but the
 14987  // value will be replaced with "sensitive".
 14988  func (s DescribeNFSFileSharesInput) GoString() string {
 14989  	return s.String()
 14990  }
 14991  
 14992  // Validate inspects the fields of the type to determine if they are valid.
 14993  func (s *DescribeNFSFileSharesInput) Validate() error {
 14994  	invalidParams := request.ErrInvalidParams{Context: "DescribeNFSFileSharesInput"}
 14995  	if s.FileShareARNList == nil {
 14996  		invalidParams.Add(request.NewErrParamRequired("FileShareARNList"))
 14997  	}
 14998  	if s.FileShareARNList != nil && len(s.FileShareARNList) < 1 {
 14999  		invalidParams.Add(request.NewErrParamMinLen("FileShareARNList", 1))
 15000  	}
 15001  
 15002  	if invalidParams.Len() > 0 {
 15003  		return invalidParams
 15004  	}
 15005  	return nil
 15006  }
 15007  
 15008  // SetFileShareARNList sets the FileShareARNList field's value.
 15009  func (s *DescribeNFSFileSharesInput) SetFileShareARNList(v []*string) *DescribeNFSFileSharesInput {
 15010  	s.FileShareARNList = v
 15011  	return s
 15012  }
 15013  
 15014  // DescribeNFSFileSharesOutput
 15015  type DescribeNFSFileSharesOutput struct {
 15016  	_ struct{} `type:"structure"`
 15017  
 15018  	// An array containing a description for each requested file share.
 15019  	NFSFileShareInfoList []*NFSFileShareInfo `type:"list"`
 15020  }
 15021  
 15022  // String returns the string representation.
 15023  //
 15024  // API parameter values that are decorated as "sensitive" in the API will not
 15025  // be included in the string output. The member name will be present, but the
 15026  // value will be replaced with "sensitive".
 15027  func (s DescribeNFSFileSharesOutput) String() string {
 15028  	return awsutil.Prettify(s)
 15029  }
 15030  
 15031  // GoString returns the string representation.
 15032  //
 15033  // API parameter values that are decorated as "sensitive" in the API will not
 15034  // be included in the string output. The member name will be present, but the
 15035  // value will be replaced with "sensitive".
 15036  func (s DescribeNFSFileSharesOutput) GoString() string {
 15037  	return s.String()
 15038  }
 15039  
 15040  // SetNFSFileShareInfoList sets the NFSFileShareInfoList field's value.
 15041  func (s *DescribeNFSFileSharesOutput) SetNFSFileShareInfoList(v []*NFSFileShareInfo) *DescribeNFSFileSharesOutput {
 15042  	s.NFSFileShareInfoList = v
 15043  	return s
 15044  }
 15045  
 15046  // DescribeSMBFileSharesInput
 15047  type DescribeSMBFileSharesInput struct {
 15048  	_ struct{} `type:"structure"`
 15049  
 15050  	// An array containing the Amazon Resource Name (ARN) of each file share to
 15051  	// be described.
 15052  	//
 15053  	// FileShareARNList is a required field
 15054  	FileShareARNList []*string `min:"1" type:"list" required:"true"`
 15055  }
 15056  
 15057  // String returns the string representation.
 15058  //
 15059  // API parameter values that are decorated as "sensitive" in the API will not
 15060  // be included in the string output. The member name will be present, but the
 15061  // value will be replaced with "sensitive".
 15062  func (s DescribeSMBFileSharesInput) String() string {
 15063  	return awsutil.Prettify(s)
 15064  }
 15065  
 15066  // GoString returns the string representation.
 15067  //
 15068  // API parameter values that are decorated as "sensitive" in the API will not
 15069  // be included in the string output. The member name will be present, but the
 15070  // value will be replaced with "sensitive".
 15071  func (s DescribeSMBFileSharesInput) GoString() string {
 15072  	return s.String()
 15073  }
 15074  
 15075  // Validate inspects the fields of the type to determine if they are valid.
 15076  func (s *DescribeSMBFileSharesInput) Validate() error {
 15077  	invalidParams := request.ErrInvalidParams{Context: "DescribeSMBFileSharesInput"}
 15078  	if s.FileShareARNList == nil {
 15079  		invalidParams.Add(request.NewErrParamRequired("FileShareARNList"))
 15080  	}
 15081  	if s.FileShareARNList != nil && len(s.FileShareARNList) < 1 {
 15082  		invalidParams.Add(request.NewErrParamMinLen("FileShareARNList", 1))
 15083  	}
 15084  
 15085  	if invalidParams.Len() > 0 {
 15086  		return invalidParams
 15087  	}
 15088  	return nil
 15089  }
 15090  
 15091  // SetFileShareARNList sets the FileShareARNList field's value.
 15092  func (s *DescribeSMBFileSharesInput) SetFileShareARNList(v []*string) *DescribeSMBFileSharesInput {
 15093  	s.FileShareARNList = v
 15094  	return s
 15095  }
 15096  
 15097  // DescribeSMBFileSharesOutput
 15098  type DescribeSMBFileSharesOutput struct {
 15099  	_ struct{} `type:"structure"`
 15100  
 15101  	// An array containing a description for each requested file share.
 15102  	SMBFileShareInfoList []*SMBFileShareInfo `type:"list"`
 15103  }
 15104  
 15105  // String returns the string representation.
 15106  //
 15107  // API parameter values that are decorated as "sensitive" in the API will not
 15108  // be included in the string output. The member name will be present, but the
 15109  // value will be replaced with "sensitive".
 15110  func (s DescribeSMBFileSharesOutput) String() string {
 15111  	return awsutil.Prettify(s)
 15112  }
 15113  
 15114  // GoString returns the string representation.
 15115  //
 15116  // API parameter values that are decorated as "sensitive" in the API will not
 15117  // be included in the string output. The member name will be present, but the
 15118  // value will be replaced with "sensitive".
 15119  func (s DescribeSMBFileSharesOutput) GoString() string {
 15120  	return s.String()
 15121  }
 15122  
 15123  // SetSMBFileShareInfoList sets the SMBFileShareInfoList field's value.
 15124  func (s *DescribeSMBFileSharesOutput) SetSMBFileShareInfoList(v []*SMBFileShareInfo) *DescribeSMBFileSharesOutput {
 15125  	s.SMBFileShareInfoList = v
 15126  	return s
 15127  }
 15128  
 15129  type DescribeSMBSettingsInput struct {
 15130  	_ struct{} `type:"structure"`
 15131  
 15132  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 15133  	// to return a list of gateways for your account and Region.
 15134  	//
 15135  	// GatewayARN is a required field
 15136  	GatewayARN *string `min:"50" type:"string" required:"true"`
 15137  }
 15138  
 15139  // String returns the string representation.
 15140  //
 15141  // API parameter values that are decorated as "sensitive" in the API will not
 15142  // be included in the string output. The member name will be present, but the
 15143  // value will be replaced with "sensitive".
 15144  func (s DescribeSMBSettingsInput) String() string {
 15145  	return awsutil.Prettify(s)
 15146  }
 15147  
 15148  // GoString returns the string representation.
 15149  //
 15150  // API parameter values that are decorated as "sensitive" in the API will not
 15151  // be included in the string output. The member name will be present, but the
 15152  // value will be replaced with "sensitive".
 15153  func (s DescribeSMBSettingsInput) GoString() string {
 15154  	return s.String()
 15155  }
 15156  
 15157  // Validate inspects the fields of the type to determine if they are valid.
 15158  func (s *DescribeSMBSettingsInput) Validate() error {
 15159  	invalidParams := request.ErrInvalidParams{Context: "DescribeSMBSettingsInput"}
 15160  	if s.GatewayARN == nil {
 15161  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 15162  	}
 15163  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 15164  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 15165  	}
 15166  
 15167  	if invalidParams.Len() > 0 {
 15168  		return invalidParams
 15169  	}
 15170  	return nil
 15171  }
 15172  
 15173  // SetGatewayARN sets the GatewayARN field's value.
 15174  func (s *DescribeSMBSettingsInput) SetGatewayARN(v string) *DescribeSMBSettingsInput {
 15175  	s.GatewayARN = &v
 15176  	return s
 15177  }
 15178  
 15179  type DescribeSMBSettingsOutput struct {
 15180  	_ struct{} `type:"structure"`
 15181  
 15182  	// Indicates the status of a gateway that is a member of the Active Directory
 15183  	// domain.
 15184  	//
 15185  	//    * ACCESS_DENIED: Indicates that the JoinDomain operation failed due to
 15186  	//    an authentication error.
 15187  	//
 15188  	//    * DETACHED: Indicates that gateway is not joined to a domain.
 15189  	//
 15190  	//    * JOINED: Indicates that the gateway has successfully joined a domain.
 15191  	//
 15192  	//    * JOINING: Indicates that a JoinDomain operation is in progress.
 15193  	//
 15194  	//    * NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network
 15195  	//    or connectivity error.
 15196  	//
 15197  	//    * TIMEOUT: Indicates that the JoinDomain operation failed because the
 15198  	//    operation didn't complete within the allotted time.
 15199  	//
 15200  	//    * UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to
 15201  	//    another type of error.
 15202  	ActiveDirectoryStatus *string `type:"string" enum:"ActiveDirectoryStatus"`
 15203  
 15204  	// The name of the domain that the gateway is joined to.
 15205  	DomainName *string `min:"1" type:"string"`
 15206  
 15207  	// The shares on this gateway appear when listing shares. Only supported for
 15208  	// S3 File Gateways.
 15209  	FileSharesVisible *bool `type:"boolean"`
 15210  
 15211  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 15212  	// to return a list of gateways for your account and Region.
 15213  	GatewayARN *string `min:"50" type:"string"`
 15214  
 15215  	// This value is true if a password for the guest user smbguest is set, otherwise
 15216  	// false. Only supported for S3 File Gateways.
 15217  	//
 15218  	// Valid Values: true | false
 15219  	SMBGuestPasswordSet *bool `type:"boolean"`
 15220  
 15221  	// The type of security strategy that was specified for file gateway.
 15222  	//
 15223  	//    * ClientSpecified: If you use this option, requests are established based
 15224  	//    on what is negotiated by the client. This option is recommended when you
 15225  	//    want to maximize compatibility across different clients in your environment.
 15226  	//    Only supported for S3 File Gateways.
 15227  	//
 15228  	//    * MandatorySigning: If you use this option, file gateway only allows connections
 15229  	//    from SMBv2 or SMBv3 clients that have signing enabled. This option works
 15230  	//    with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer.
 15231  	//
 15232  	//    * MandatoryEncryption: If you use this option, file gateway only allows
 15233  	//    connections from SMBv3 clients that have encryption enabled. This option
 15234  	//    is highly recommended for environments that handle sensitive data. This
 15235  	//    option works with SMB clients on Microsoft Windows 8, Windows Server 2012
 15236  	//    or newer.
 15237  	SMBSecurityStrategy *string `type:"string" enum:"SMBSecurityStrategy"`
 15238  }
 15239  
 15240  // String returns the string representation.
 15241  //
 15242  // API parameter values that are decorated as "sensitive" in the API will not
 15243  // be included in the string output. The member name will be present, but the
 15244  // value will be replaced with "sensitive".
 15245  func (s DescribeSMBSettingsOutput) String() string {
 15246  	return awsutil.Prettify(s)
 15247  }
 15248  
 15249  // GoString returns the string representation.
 15250  //
 15251  // API parameter values that are decorated as "sensitive" in the API will not
 15252  // be included in the string output. The member name will be present, but the
 15253  // value will be replaced with "sensitive".
 15254  func (s DescribeSMBSettingsOutput) GoString() string {
 15255  	return s.String()
 15256  }
 15257  
 15258  // SetActiveDirectoryStatus sets the ActiveDirectoryStatus field's value.
 15259  func (s *DescribeSMBSettingsOutput) SetActiveDirectoryStatus(v string) *DescribeSMBSettingsOutput {
 15260  	s.ActiveDirectoryStatus = &v
 15261  	return s
 15262  }
 15263  
 15264  // SetDomainName sets the DomainName field's value.
 15265  func (s *DescribeSMBSettingsOutput) SetDomainName(v string) *DescribeSMBSettingsOutput {
 15266  	s.DomainName = &v
 15267  	return s
 15268  }
 15269  
 15270  // SetFileSharesVisible sets the FileSharesVisible field's value.
 15271  func (s *DescribeSMBSettingsOutput) SetFileSharesVisible(v bool) *DescribeSMBSettingsOutput {
 15272  	s.FileSharesVisible = &v
 15273  	return s
 15274  }
 15275  
 15276  // SetGatewayARN sets the GatewayARN field's value.
 15277  func (s *DescribeSMBSettingsOutput) SetGatewayARN(v string) *DescribeSMBSettingsOutput {
 15278  	s.GatewayARN = &v
 15279  	return s
 15280  }
 15281  
 15282  // SetSMBGuestPasswordSet sets the SMBGuestPasswordSet field's value.
 15283  func (s *DescribeSMBSettingsOutput) SetSMBGuestPasswordSet(v bool) *DescribeSMBSettingsOutput {
 15284  	s.SMBGuestPasswordSet = &v
 15285  	return s
 15286  }
 15287  
 15288  // SetSMBSecurityStrategy sets the SMBSecurityStrategy field's value.
 15289  func (s *DescribeSMBSettingsOutput) SetSMBSecurityStrategy(v string) *DescribeSMBSettingsOutput {
 15290  	s.SMBSecurityStrategy = &v
 15291  	return s
 15292  }
 15293  
 15294  // A JSON object containing the DescribeSnapshotScheduleInput$VolumeARN of the
 15295  // volume.
 15296  type DescribeSnapshotScheduleInput struct {
 15297  	_ struct{} `type:"structure"`
 15298  
 15299  	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
 15300  	// to return a list of gateway volumes.
 15301  	//
 15302  	// VolumeARN is a required field
 15303  	VolumeARN *string `min:"50" type:"string" required:"true"`
 15304  }
 15305  
 15306  // String returns the string representation.
 15307  //
 15308  // API parameter values that are decorated as "sensitive" in the API will not
 15309  // be included in the string output. The member name will be present, but the
 15310  // value will be replaced with "sensitive".
 15311  func (s DescribeSnapshotScheduleInput) String() string {
 15312  	return awsutil.Prettify(s)
 15313  }
 15314  
 15315  // GoString returns the string representation.
 15316  //
 15317  // API parameter values that are decorated as "sensitive" in the API will not
 15318  // be included in the string output. The member name will be present, but the
 15319  // value will be replaced with "sensitive".
 15320  func (s DescribeSnapshotScheduleInput) GoString() string {
 15321  	return s.String()
 15322  }
 15323  
 15324  // Validate inspects the fields of the type to determine if they are valid.
 15325  func (s *DescribeSnapshotScheduleInput) Validate() error {
 15326  	invalidParams := request.ErrInvalidParams{Context: "DescribeSnapshotScheduleInput"}
 15327  	if s.VolumeARN == nil {
 15328  		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
 15329  	}
 15330  	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
 15331  		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
 15332  	}
 15333  
 15334  	if invalidParams.Len() > 0 {
 15335  		return invalidParams
 15336  	}
 15337  	return nil
 15338  }
 15339  
 15340  // SetVolumeARN sets the VolumeARN field's value.
 15341  func (s *DescribeSnapshotScheduleInput) SetVolumeARN(v string) *DescribeSnapshotScheduleInput {
 15342  	s.VolumeARN = &v
 15343  	return s
 15344  }
 15345  
 15346  type DescribeSnapshotScheduleOutput struct {
 15347  	_ struct{} `type:"structure"`
 15348  
 15349  	// The snapshot description.
 15350  	Description *string `min:"1" type:"string"`
 15351  
 15352  	// The number of hours between snapshots.
 15353  	RecurrenceInHours *int64 `min:"1" type:"integer"`
 15354  
 15355  	// The hour of the day at which the snapshot schedule begins represented as
 15356  	// hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
 15357  	// of the gateway.
 15358  	StartAt *int64 `type:"integer"`
 15359  
 15360  	// A list of up to 50 tags assigned to the snapshot schedule, sorted alphabetically
 15361  	// by key name. Each tag is a key-value pair. For a gateway with more than 10
 15362  	// tags assigned, you can view all tags using the ListTagsForResource API operation.
 15363  	Tags []*Tag `type:"list"`
 15364  
 15365  	// A value that indicates the time zone of the gateway.
 15366  	Timezone *string `min:"3" type:"string"`
 15367  
 15368  	// The Amazon Resource Name (ARN) of the volume that was specified in the request.
 15369  	VolumeARN *string `min:"50" type:"string"`
 15370  }
 15371  
 15372  // String returns the string representation.
 15373  //
 15374  // API parameter values that are decorated as "sensitive" in the API will not
 15375  // be included in the string output. The member name will be present, but the
 15376  // value will be replaced with "sensitive".
 15377  func (s DescribeSnapshotScheduleOutput) String() string {
 15378  	return awsutil.Prettify(s)
 15379  }
 15380  
 15381  // GoString returns the string representation.
 15382  //
 15383  // API parameter values that are decorated as "sensitive" in the API will not
 15384  // be included in the string output. The member name will be present, but the
 15385  // value will be replaced with "sensitive".
 15386  func (s DescribeSnapshotScheduleOutput) GoString() string {
 15387  	return s.String()
 15388  }
 15389  
 15390  // SetDescription sets the Description field's value.
 15391  func (s *DescribeSnapshotScheduleOutput) SetDescription(v string) *DescribeSnapshotScheduleOutput {
 15392  	s.Description = &v
 15393  	return s
 15394  }
 15395  
 15396  // SetRecurrenceInHours sets the RecurrenceInHours field's value.
 15397  func (s *DescribeSnapshotScheduleOutput) SetRecurrenceInHours(v int64) *DescribeSnapshotScheduleOutput {
 15398  	s.RecurrenceInHours = &v
 15399  	return s
 15400  }
 15401  
 15402  // SetStartAt sets the StartAt field's value.
 15403  func (s *DescribeSnapshotScheduleOutput) SetStartAt(v int64) *DescribeSnapshotScheduleOutput {
 15404  	s.StartAt = &v
 15405  	return s
 15406  }
 15407  
 15408  // SetTags sets the Tags field's value.
 15409  func (s *DescribeSnapshotScheduleOutput) SetTags(v []*Tag) *DescribeSnapshotScheduleOutput {
 15410  	s.Tags = v
 15411  	return s
 15412  }
 15413  
 15414  // SetTimezone sets the Timezone field's value.
 15415  func (s *DescribeSnapshotScheduleOutput) SetTimezone(v string) *DescribeSnapshotScheduleOutput {
 15416  	s.Timezone = &v
 15417  	return s
 15418  }
 15419  
 15420  // SetVolumeARN sets the VolumeARN field's value.
 15421  func (s *DescribeSnapshotScheduleOutput) SetVolumeARN(v string) *DescribeSnapshotScheduleOutput {
 15422  	s.VolumeARN = &v
 15423  	return s
 15424  }
 15425  
 15426  // A JSON object containing a list of DescribeStorediSCSIVolumesInput$VolumeARNs.
 15427  type DescribeStorediSCSIVolumesInput struct {
 15428  	_ struct{} `type:"structure"`
 15429  
 15430  	// An array of strings where each string represents the Amazon Resource Name
 15431  	// (ARN) of a stored volume. All of the specified stored volumes must be from
 15432  	// the same gateway. Use ListVolumes to get volume ARNs for a gateway.
 15433  	//
 15434  	// VolumeARNs is a required field
 15435  	VolumeARNs []*string `type:"list" required:"true"`
 15436  }
 15437  
 15438  // String returns the string representation.
 15439  //
 15440  // API parameter values that are decorated as "sensitive" in the API will not
 15441  // be included in the string output. The member name will be present, but the
 15442  // value will be replaced with "sensitive".
 15443  func (s DescribeStorediSCSIVolumesInput) String() string {
 15444  	return awsutil.Prettify(s)
 15445  }
 15446  
 15447  // GoString returns the string representation.
 15448  //
 15449  // API parameter values that are decorated as "sensitive" in the API will not
 15450  // be included in the string output. The member name will be present, but the
 15451  // value will be replaced with "sensitive".
 15452  func (s DescribeStorediSCSIVolumesInput) GoString() string {
 15453  	return s.String()
 15454  }
 15455  
 15456  // Validate inspects the fields of the type to determine if they are valid.
 15457  func (s *DescribeStorediSCSIVolumesInput) Validate() error {
 15458  	invalidParams := request.ErrInvalidParams{Context: "DescribeStorediSCSIVolumesInput"}
 15459  	if s.VolumeARNs == nil {
 15460  		invalidParams.Add(request.NewErrParamRequired("VolumeARNs"))
 15461  	}
 15462  
 15463  	if invalidParams.Len() > 0 {
 15464  		return invalidParams
 15465  	}
 15466  	return nil
 15467  }
 15468  
 15469  // SetVolumeARNs sets the VolumeARNs field's value.
 15470  func (s *DescribeStorediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeStorediSCSIVolumesInput {
 15471  	s.VolumeARNs = v
 15472  	return s
 15473  }
 15474  
 15475  type DescribeStorediSCSIVolumesOutput struct {
 15476  	_ struct{} `type:"structure"`
 15477  
 15478  	// Describes a single unit of output from DescribeStorediSCSIVolumes. The following
 15479  	// fields are returned:
 15480  	//
 15481  	//    * ChapEnabled: Indicates whether mutual CHAP is enabled for the iSCSI
 15482  	//    target.
 15483  	//
 15484  	//    * LunNumber: The logical disk number.
 15485  	//
 15486  	//    * NetworkInterfaceId: The network interface ID of the stored volume that
 15487  	//    initiator use to map the stored volume as an iSCSI target.
 15488  	//
 15489  	//    * NetworkInterfacePort: The port used to communicate with iSCSI targets.
 15490  	//
 15491  	//    * PreservedExistingData: Indicates when the stored volume was created,
 15492  	//    existing data on the underlying local disk was preserved.
 15493  	//
 15494  	//    * SourceSnapshotId: If the stored volume was created from a snapshot,
 15495  	//    this field contains the snapshot ID used, e.g. snap-1122aabb. Otherwise,
 15496  	//    this field is not included.
 15497  	//
 15498  	//    * StorediSCSIVolumes: An array of StorediSCSIVolume objects where each
 15499  	//    object contains metadata about one stored volume.
 15500  	//
 15501  	//    * TargetARN: The Amazon Resource Name (ARN) of the volume target.
 15502  	//
 15503  	//    * VolumeARN: The Amazon Resource Name (ARN) of the stored volume.
 15504  	//
 15505  	//    * VolumeDiskId: The disk ID of the local disk that was specified in the
 15506  	//    CreateStorediSCSIVolume operation.
 15507  	//
 15508  	//    * VolumeId: The unique identifier of the storage volume, e.g. vol-1122AABB.
 15509  	//
 15510  	//    * VolumeiSCSIAttributes: An VolumeiSCSIAttributes object that represents
 15511  	//    a collection of iSCSI attributes for one stored volume.
 15512  	//
 15513  	//    * VolumeProgress: Represents the percentage complete if the volume is
 15514  	//    restoring or bootstrapping that represents the percent of data transferred.
 15515  	//    This field does not appear in the response if the stored volume is not
 15516  	//    restoring or bootstrapping.
 15517  	//
 15518  	//    * VolumeSizeInBytes: The size of the volume in bytes.
 15519  	//
 15520  	//    * VolumeStatus: One of the VolumeStatus values that indicates the state
 15521  	//    of the volume.
 15522  	//
 15523  	//    * VolumeType: One of the enumeration values describing the type of the
 15524  	//    volume. Currently, only STORED volumes are supported.
 15525  	StorediSCSIVolumes []*StorediSCSIVolume `type:"list"`
 15526  }
 15527  
 15528  // String returns the string representation.
 15529  //
 15530  // API parameter values that are decorated as "sensitive" in the API will not
 15531  // be included in the string output. The member name will be present, but the
 15532  // value will be replaced with "sensitive".
 15533  func (s DescribeStorediSCSIVolumesOutput) String() string {
 15534  	return awsutil.Prettify(s)
 15535  }
 15536  
 15537  // GoString returns the string representation.
 15538  //
 15539  // API parameter values that are decorated as "sensitive" in the API will not
 15540  // be included in the string output. The member name will be present, but the
 15541  // value will be replaced with "sensitive".
 15542  func (s DescribeStorediSCSIVolumesOutput) GoString() string {
 15543  	return s.String()
 15544  }
 15545  
 15546  // SetStorediSCSIVolumes sets the StorediSCSIVolumes field's value.
 15547  func (s *DescribeStorediSCSIVolumesOutput) SetStorediSCSIVolumes(v []*StorediSCSIVolume) *DescribeStorediSCSIVolumesOutput {
 15548  	s.StorediSCSIVolumes = v
 15549  	return s
 15550  }
 15551  
 15552  // DescribeTapeArchivesInput
 15553  type DescribeTapeArchivesInput struct {
 15554  	_ struct{} `type:"structure"`
 15555  
 15556  	// Specifies that the number of virtual tapes described be limited to the specified
 15557  	// number.
 15558  	Limit *int64 `min:"1" type:"integer"`
 15559  
 15560  	// An opaque string that indicates the position at which to begin describing
 15561  	// virtual tapes.
 15562  	Marker *string `min:"1" type:"string"`
 15563  
 15564  	// Specifies one or more unique Amazon Resource Names (ARNs) that represent
 15565  	// the virtual tapes you want to describe.
 15566  	TapeARNs []*string `type:"list"`
 15567  }
 15568  
 15569  // String returns the string representation.
 15570  //
 15571  // API parameter values that are decorated as "sensitive" in the API will not
 15572  // be included in the string output. The member name will be present, but the
 15573  // value will be replaced with "sensitive".
 15574  func (s DescribeTapeArchivesInput) String() string {
 15575  	return awsutil.Prettify(s)
 15576  }
 15577  
 15578  // GoString returns the string representation.
 15579  //
 15580  // API parameter values that are decorated as "sensitive" in the API will not
 15581  // be included in the string output. The member name will be present, but the
 15582  // value will be replaced with "sensitive".
 15583  func (s DescribeTapeArchivesInput) GoString() string {
 15584  	return s.String()
 15585  }
 15586  
 15587  // Validate inspects the fields of the type to determine if they are valid.
 15588  func (s *DescribeTapeArchivesInput) Validate() error {
 15589  	invalidParams := request.ErrInvalidParams{Context: "DescribeTapeArchivesInput"}
 15590  	if s.Limit != nil && *s.Limit < 1 {
 15591  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 15592  	}
 15593  	if s.Marker != nil && len(*s.Marker) < 1 {
 15594  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 15595  	}
 15596  
 15597  	if invalidParams.Len() > 0 {
 15598  		return invalidParams
 15599  	}
 15600  	return nil
 15601  }
 15602  
 15603  // SetLimit sets the Limit field's value.
 15604  func (s *DescribeTapeArchivesInput) SetLimit(v int64) *DescribeTapeArchivesInput {
 15605  	s.Limit = &v
 15606  	return s
 15607  }
 15608  
 15609  // SetMarker sets the Marker field's value.
 15610  func (s *DescribeTapeArchivesInput) SetMarker(v string) *DescribeTapeArchivesInput {
 15611  	s.Marker = &v
 15612  	return s
 15613  }
 15614  
 15615  // SetTapeARNs sets the TapeARNs field's value.
 15616  func (s *DescribeTapeArchivesInput) SetTapeARNs(v []*string) *DescribeTapeArchivesInput {
 15617  	s.TapeARNs = v
 15618  	return s
 15619  }
 15620  
 15621  // DescribeTapeArchivesOutput
 15622  type DescribeTapeArchivesOutput struct {
 15623  	_ struct{} `type:"structure"`
 15624  
 15625  	// An opaque string that indicates the position at which the virtual tapes that
 15626  	// were fetched for description ended. Use this marker in your next request
 15627  	// to fetch the next set of virtual tapes in the virtual tape shelf (VTS). If
 15628  	// there are no more virtual tapes to describe, this field does not appear in
 15629  	// the response.
 15630  	Marker *string `min:"1" type:"string"`
 15631  
 15632  	// An array of virtual tape objects in the virtual tape shelf (VTS). The description
 15633  	// includes of the Amazon Resource Name (ARN) of the virtual tapes. The information
 15634  	// returned includes the Amazon Resource Names (ARNs) of the tapes, size of
 15635  	// the tapes, status of the tapes, progress of the description, and tape barcode.
 15636  	TapeArchives []*TapeArchive `type:"list"`
 15637  }
 15638  
 15639  // String returns the string representation.
 15640  //
 15641  // API parameter values that are decorated as "sensitive" in the API will not
 15642  // be included in the string output. The member name will be present, but the
 15643  // value will be replaced with "sensitive".
 15644  func (s DescribeTapeArchivesOutput) String() string {
 15645  	return awsutil.Prettify(s)
 15646  }
 15647  
 15648  // GoString returns the string representation.
 15649  //
 15650  // API parameter values that are decorated as "sensitive" in the API will not
 15651  // be included in the string output. The member name will be present, but the
 15652  // value will be replaced with "sensitive".
 15653  func (s DescribeTapeArchivesOutput) GoString() string {
 15654  	return s.String()
 15655  }
 15656  
 15657  // SetMarker sets the Marker field's value.
 15658  func (s *DescribeTapeArchivesOutput) SetMarker(v string) *DescribeTapeArchivesOutput {
 15659  	s.Marker = &v
 15660  	return s
 15661  }
 15662  
 15663  // SetTapeArchives sets the TapeArchives field's value.
 15664  func (s *DescribeTapeArchivesOutput) SetTapeArchives(v []*TapeArchive) *DescribeTapeArchivesOutput {
 15665  	s.TapeArchives = v
 15666  	return s
 15667  }
 15668  
 15669  // DescribeTapeRecoveryPointsInput
 15670  type DescribeTapeRecoveryPointsInput struct {
 15671  	_ struct{} `type:"structure"`
 15672  
 15673  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 15674  	// to return a list of gateways for your account and Region.
 15675  	//
 15676  	// GatewayARN is a required field
 15677  	GatewayARN *string `min:"50" type:"string" required:"true"`
 15678  
 15679  	// Specifies that the number of virtual tape recovery points that are described
 15680  	// be limited to the specified number.
 15681  	Limit *int64 `min:"1" type:"integer"`
 15682  
 15683  	// An opaque string that indicates the position at which to begin describing
 15684  	// the virtual tape recovery points.
 15685  	Marker *string `min:"1" type:"string"`
 15686  }
 15687  
 15688  // String returns the string representation.
 15689  //
 15690  // API parameter values that are decorated as "sensitive" in the API will not
 15691  // be included in the string output. The member name will be present, but the
 15692  // value will be replaced with "sensitive".
 15693  func (s DescribeTapeRecoveryPointsInput) String() string {
 15694  	return awsutil.Prettify(s)
 15695  }
 15696  
 15697  // GoString returns the string representation.
 15698  //
 15699  // API parameter values that are decorated as "sensitive" in the API will not
 15700  // be included in the string output. The member name will be present, but the
 15701  // value will be replaced with "sensitive".
 15702  func (s DescribeTapeRecoveryPointsInput) GoString() string {
 15703  	return s.String()
 15704  }
 15705  
 15706  // Validate inspects the fields of the type to determine if they are valid.
 15707  func (s *DescribeTapeRecoveryPointsInput) Validate() error {
 15708  	invalidParams := request.ErrInvalidParams{Context: "DescribeTapeRecoveryPointsInput"}
 15709  	if s.GatewayARN == nil {
 15710  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 15711  	}
 15712  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 15713  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 15714  	}
 15715  	if s.Limit != nil && *s.Limit < 1 {
 15716  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 15717  	}
 15718  	if s.Marker != nil && len(*s.Marker) < 1 {
 15719  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 15720  	}
 15721  
 15722  	if invalidParams.Len() > 0 {
 15723  		return invalidParams
 15724  	}
 15725  	return nil
 15726  }
 15727  
 15728  // SetGatewayARN sets the GatewayARN field's value.
 15729  func (s *DescribeTapeRecoveryPointsInput) SetGatewayARN(v string) *DescribeTapeRecoveryPointsInput {
 15730  	s.GatewayARN = &v
 15731  	return s
 15732  }
 15733  
 15734  // SetLimit sets the Limit field's value.
 15735  func (s *DescribeTapeRecoveryPointsInput) SetLimit(v int64) *DescribeTapeRecoveryPointsInput {
 15736  	s.Limit = &v
 15737  	return s
 15738  }
 15739  
 15740  // SetMarker sets the Marker field's value.
 15741  func (s *DescribeTapeRecoveryPointsInput) SetMarker(v string) *DescribeTapeRecoveryPointsInput {
 15742  	s.Marker = &v
 15743  	return s
 15744  }
 15745  
 15746  // DescribeTapeRecoveryPointsOutput
 15747  type DescribeTapeRecoveryPointsOutput struct {
 15748  	_ struct{} `type:"structure"`
 15749  
 15750  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 15751  	// to return a list of gateways for your account and Region.
 15752  	GatewayARN *string `min:"50" type:"string"`
 15753  
 15754  	// An opaque string that indicates the position at which the virtual tape recovery
 15755  	// points that were listed for description ended.
 15756  	//
 15757  	// Use this marker in your next request to list the next set of virtual tape
 15758  	// recovery points in the list. If there are no more recovery points to describe,
 15759  	// this field does not appear in the response.
 15760  	Marker *string `min:"1" type:"string"`
 15761  
 15762  	// An array of TapeRecoveryPointInfos that are available for the specified gateway.
 15763  	TapeRecoveryPointInfos []*TapeRecoveryPointInfo `type:"list"`
 15764  }
 15765  
 15766  // String returns the string representation.
 15767  //
 15768  // API parameter values that are decorated as "sensitive" in the API will not
 15769  // be included in the string output. The member name will be present, but the
 15770  // value will be replaced with "sensitive".
 15771  func (s DescribeTapeRecoveryPointsOutput) String() string {
 15772  	return awsutil.Prettify(s)
 15773  }
 15774  
 15775  // GoString returns the string representation.
 15776  //
 15777  // API parameter values that are decorated as "sensitive" in the API will not
 15778  // be included in the string output. The member name will be present, but the
 15779  // value will be replaced with "sensitive".
 15780  func (s DescribeTapeRecoveryPointsOutput) GoString() string {
 15781  	return s.String()
 15782  }
 15783  
 15784  // SetGatewayARN sets the GatewayARN field's value.
 15785  func (s *DescribeTapeRecoveryPointsOutput) SetGatewayARN(v string) *DescribeTapeRecoveryPointsOutput {
 15786  	s.GatewayARN = &v
 15787  	return s
 15788  }
 15789  
 15790  // SetMarker sets the Marker field's value.
 15791  func (s *DescribeTapeRecoveryPointsOutput) SetMarker(v string) *DescribeTapeRecoveryPointsOutput {
 15792  	s.Marker = &v
 15793  	return s
 15794  }
 15795  
 15796  // SetTapeRecoveryPointInfos sets the TapeRecoveryPointInfos field's value.
 15797  func (s *DescribeTapeRecoveryPointsOutput) SetTapeRecoveryPointInfos(v []*TapeRecoveryPointInfo) *DescribeTapeRecoveryPointsOutput {
 15798  	s.TapeRecoveryPointInfos = v
 15799  	return s
 15800  }
 15801  
 15802  // DescribeTapesInput
 15803  type DescribeTapesInput struct {
 15804  	_ struct{} `type:"structure"`
 15805  
 15806  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 15807  	// to return a list of gateways for your account and Region.
 15808  	//
 15809  	// GatewayARN is a required field
 15810  	GatewayARN *string `min:"50" type:"string" required:"true"`
 15811  
 15812  	// Specifies that the number of virtual tapes described be limited to the specified
 15813  	// number.
 15814  	//
 15815  	// Amazon Web Services may impose its own limit, if this field is not set.
 15816  	Limit *int64 `min:"1" type:"integer"`
 15817  
 15818  	// A marker value, obtained in a previous call to DescribeTapes. This marker
 15819  	// indicates which page of results to retrieve.
 15820  	//
 15821  	// If not specified, the first page of results is retrieved.
 15822  	Marker *string `min:"1" type:"string"`
 15823  
 15824  	// Specifies one or more unique Amazon Resource Names (ARNs) that represent
 15825  	// the virtual tapes you want to describe. If this parameter is not specified,
 15826  	// Tape gateway returns a description of all virtual tapes associated with the
 15827  	// specified gateway.
 15828  	TapeARNs []*string `type:"list"`
 15829  }
 15830  
 15831  // String returns the string representation.
 15832  //
 15833  // API parameter values that are decorated as "sensitive" in the API will not
 15834  // be included in the string output. The member name will be present, but the
 15835  // value will be replaced with "sensitive".
 15836  func (s DescribeTapesInput) String() string {
 15837  	return awsutil.Prettify(s)
 15838  }
 15839  
 15840  // GoString returns the string representation.
 15841  //
 15842  // API parameter values that are decorated as "sensitive" in the API will not
 15843  // be included in the string output. The member name will be present, but the
 15844  // value will be replaced with "sensitive".
 15845  func (s DescribeTapesInput) GoString() string {
 15846  	return s.String()
 15847  }
 15848  
 15849  // Validate inspects the fields of the type to determine if they are valid.
 15850  func (s *DescribeTapesInput) Validate() error {
 15851  	invalidParams := request.ErrInvalidParams{Context: "DescribeTapesInput"}
 15852  	if s.GatewayARN == nil {
 15853  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 15854  	}
 15855  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 15856  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 15857  	}
 15858  	if s.Limit != nil && *s.Limit < 1 {
 15859  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 15860  	}
 15861  	if s.Marker != nil && len(*s.Marker) < 1 {
 15862  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 15863  	}
 15864  
 15865  	if invalidParams.Len() > 0 {
 15866  		return invalidParams
 15867  	}
 15868  	return nil
 15869  }
 15870  
 15871  // SetGatewayARN sets the GatewayARN field's value.
 15872  func (s *DescribeTapesInput) SetGatewayARN(v string) *DescribeTapesInput {
 15873  	s.GatewayARN = &v
 15874  	return s
 15875  }
 15876  
 15877  // SetLimit sets the Limit field's value.
 15878  func (s *DescribeTapesInput) SetLimit(v int64) *DescribeTapesInput {
 15879  	s.Limit = &v
 15880  	return s
 15881  }
 15882  
 15883  // SetMarker sets the Marker field's value.
 15884  func (s *DescribeTapesInput) SetMarker(v string) *DescribeTapesInput {
 15885  	s.Marker = &v
 15886  	return s
 15887  }
 15888  
 15889  // SetTapeARNs sets the TapeARNs field's value.
 15890  func (s *DescribeTapesInput) SetTapeARNs(v []*string) *DescribeTapesInput {
 15891  	s.TapeARNs = v
 15892  	return s
 15893  }
 15894  
 15895  // DescribeTapesOutput
 15896  type DescribeTapesOutput struct {
 15897  	_ struct{} `type:"structure"`
 15898  
 15899  	// An opaque string that can be used as part of a subsequent DescribeTapes call
 15900  	// to retrieve the next page of results.
 15901  	//
 15902  	// If a response does not contain a marker, then there are no more results to
 15903  	// be retrieved.
 15904  	Marker *string `min:"1" type:"string"`
 15905  
 15906  	// An array of virtual tape descriptions.
 15907  	Tapes []*Tape `type:"list"`
 15908  }
 15909  
 15910  // String returns the string representation.
 15911  //
 15912  // API parameter values that are decorated as "sensitive" in the API will not
 15913  // be included in the string output. The member name will be present, but the
 15914  // value will be replaced with "sensitive".
 15915  func (s DescribeTapesOutput) String() string {
 15916  	return awsutil.Prettify(s)
 15917  }
 15918  
 15919  // GoString returns the string representation.
 15920  //
 15921  // API parameter values that are decorated as "sensitive" in the API will not
 15922  // be included in the string output. The member name will be present, but the
 15923  // value will be replaced with "sensitive".
 15924  func (s DescribeTapesOutput) GoString() string {
 15925  	return s.String()
 15926  }
 15927  
 15928  // SetMarker sets the Marker field's value.
 15929  func (s *DescribeTapesOutput) SetMarker(v string) *DescribeTapesOutput {
 15930  	s.Marker = &v
 15931  	return s
 15932  }
 15933  
 15934  // SetTapes sets the Tapes field's value.
 15935  func (s *DescribeTapesOutput) SetTapes(v []*Tape) *DescribeTapesOutput {
 15936  	s.Tapes = v
 15937  	return s
 15938  }
 15939  
 15940  type DescribeUploadBufferInput struct {
 15941  	_ struct{} `type:"structure"`
 15942  
 15943  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 15944  	// to return a list of gateways for your account and Region.
 15945  	//
 15946  	// GatewayARN is a required field
 15947  	GatewayARN *string `min:"50" type:"string" required:"true"`
 15948  }
 15949  
 15950  // String returns the string representation.
 15951  //
 15952  // API parameter values that are decorated as "sensitive" in the API will not
 15953  // be included in the string output. The member name will be present, but the
 15954  // value will be replaced with "sensitive".
 15955  func (s DescribeUploadBufferInput) String() string {
 15956  	return awsutil.Prettify(s)
 15957  }
 15958  
 15959  // GoString returns the string representation.
 15960  //
 15961  // API parameter values that are decorated as "sensitive" in the API will not
 15962  // be included in the string output. The member name will be present, but the
 15963  // value will be replaced with "sensitive".
 15964  func (s DescribeUploadBufferInput) GoString() string {
 15965  	return s.String()
 15966  }
 15967  
 15968  // Validate inspects the fields of the type to determine if they are valid.
 15969  func (s *DescribeUploadBufferInput) Validate() error {
 15970  	invalidParams := request.ErrInvalidParams{Context: "DescribeUploadBufferInput"}
 15971  	if s.GatewayARN == nil {
 15972  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 15973  	}
 15974  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 15975  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 15976  	}
 15977  
 15978  	if invalidParams.Len() > 0 {
 15979  		return invalidParams
 15980  	}
 15981  	return nil
 15982  }
 15983  
 15984  // SetGatewayARN sets the GatewayARN field's value.
 15985  func (s *DescribeUploadBufferInput) SetGatewayARN(v string) *DescribeUploadBufferInput {
 15986  	s.GatewayARN = &v
 15987  	return s
 15988  }
 15989  
 15990  type DescribeUploadBufferOutput struct {
 15991  	_ struct{} `type:"structure"`
 15992  
 15993  	// An array of the gateway's local disk IDs that are configured as working storage.
 15994  	// Each local disk ID is specified as a string (minimum length of 1 and maximum
 15995  	// length of 300). If no local disks are configured as working storage, then
 15996  	// the DiskIds array is empty.
 15997  	DiskIds []*string `type:"list"`
 15998  
 15999  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 16000  	// to return a list of gateways for your account and Region.
 16001  	GatewayARN *string `min:"50" type:"string"`
 16002  
 16003  	// The total number of bytes allocated in the gateway's as upload buffer.
 16004  	UploadBufferAllocatedInBytes *int64 `type:"long"`
 16005  
 16006  	// The total number of bytes being used in the gateway's upload buffer.
 16007  	UploadBufferUsedInBytes *int64 `type:"long"`
 16008  }
 16009  
 16010  // String returns the string representation.
 16011  //
 16012  // API parameter values that are decorated as "sensitive" in the API will not
 16013  // be included in the string output. The member name will be present, but the
 16014  // value will be replaced with "sensitive".
 16015  func (s DescribeUploadBufferOutput) String() string {
 16016  	return awsutil.Prettify(s)
 16017  }
 16018  
 16019  // GoString returns the string representation.
 16020  //
 16021  // API parameter values that are decorated as "sensitive" in the API will not
 16022  // be included in the string output. The member name will be present, but the
 16023  // value will be replaced with "sensitive".
 16024  func (s DescribeUploadBufferOutput) GoString() string {
 16025  	return s.String()
 16026  }
 16027  
 16028  // SetDiskIds sets the DiskIds field's value.
 16029  func (s *DescribeUploadBufferOutput) SetDiskIds(v []*string) *DescribeUploadBufferOutput {
 16030  	s.DiskIds = v
 16031  	return s
 16032  }
 16033  
 16034  // SetGatewayARN sets the GatewayARN field's value.
 16035  func (s *DescribeUploadBufferOutput) SetGatewayARN(v string) *DescribeUploadBufferOutput {
 16036  	s.GatewayARN = &v
 16037  	return s
 16038  }
 16039  
 16040  // SetUploadBufferAllocatedInBytes sets the UploadBufferAllocatedInBytes field's value.
 16041  func (s *DescribeUploadBufferOutput) SetUploadBufferAllocatedInBytes(v int64) *DescribeUploadBufferOutput {
 16042  	s.UploadBufferAllocatedInBytes = &v
 16043  	return s
 16044  }
 16045  
 16046  // SetUploadBufferUsedInBytes sets the UploadBufferUsedInBytes field's value.
 16047  func (s *DescribeUploadBufferOutput) SetUploadBufferUsedInBytes(v int64) *DescribeUploadBufferOutput {
 16048  	s.UploadBufferUsedInBytes = &v
 16049  	return s
 16050  }
 16051  
 16052  // DescribeVTLDevicesInput
 16053  type DescribeVTLDevicesInput struct {
 16054  	_ struct{} `type:"structure"`
 16055  
 16056  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 16057  	// to return a list of gateways for your account and Region.
 16058  	//
 16059  	// GatewayARN is a required field
 16060  	GatewayARN *string `min:"50" type:"string" required:"true"`
 16061  
 16062  	// Specifies that the number of VTL devices described be limited to the specified
 16063  	// number.
 16064  	Limit *int64 `min:"1" type:"integer"`
 16065  
 16066  	// An opaque string that indicates the position at which to begin describing
 16067  	// the VTL devices.
 16068  	Marker *string `min:"1" type:"string"`
 16069  
 16070  	// An array of strings, where each string represents the Amazon Resource Name
 16071  	// (ARN) of a VTL device.
 16072  	//
 16073  	// All of the specified VTL devices must be from the same gateway. If no VTL
 16074  	// devices are specified, the result will contain all devices on the specified
 16075  	// gateway.
 16076  	VTLDeviceARNs []*string `type:"list"`
 16077  }
 16078  
 16079  // String returns the string representation.
 16080  //
 16081  // API parameter values that are decorated as "sensitive" in the API will not
 16082  // be included in the string output. The member name will be present, but the
 16083  // value will be replaced with "sensitive".
 16084  func (s DescribeVTLDevicesInput) String() string {
 16085  	return awsutil.Prettify(s)
 16086  }
 16087  
 16088  // GoString returns the string representation.
 16089  //
 16090  // API parameter values that are decorated as "sensitive" in the API will not
 16091  // be included in the string output. The member name will be present, but the
 16092  // value will be replaced with "sensitive".
 16093  func (s DescribeVTLDevicesInput) GoString() string {
 16094  	return s.String()
 16095  }
 16096  
 16097  // Validate inspects the fields of the type to determine if they are valid.
 16098  func (s *DescribeVTLDevicesInput) Validate() error {
 16099  	invalidParams := request.ErrInvalidParams{Context: "DescribeVTLDevicesInput"}
 16100  	if s.GatewayARN == nil {
 16101  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 16102  	}
 16103  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 16104  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 16105  	}
 16106  	if s.Limit != nil && *s.Limit < 1 {
 16107  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 16108  	}
 16109  	if s.Marker != nil && len(*s.Marker) < 1 {
 16110  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 16111  	}
 16112  
 16113  	if invalidParams.Len() > 0 {
 16114  		return invalidParams
 16115  	}
 16116  	return nil
 16117  }
 16118  
 16119  // SetGatewayARN sets the GatewayARN field's value.
 16120  func (s *DescribeVTLDevicesInput) SetGatewayARN(v string) *DescribeVTLDevicesInput {
 16121  	s.GatewayARN = &v
 16122  	return s
 16123  }
 16124  
 16125  // SetLimit sets the Limit field's value.
 16126  func (s *DescribeVTLDevicesInput) SetLimit(v int64) *DescribeVTLDevicesInput {
 16127  	s.Limit = &v
 16128  	return s
 16129  }
 16130  
 16131  // SetMarker sets the Marker field's value.
 16132  func (s *DescribeVTLDevicesInput) SetMarker(v string) *DescribeVTLDevicesInput {
 16133  	s.Marker = &v
 16134  	return s
 16135  }
 16136  
 16137  // SetVTLDeviceARNs sets the VTLDeviceARNs field's value.
 16138  func (s *DescribeVTLDevicesInput) SetVTLDeviceARNs(v []*string) *DescribeVTLDevicesInput {
 16139  	s.VTLDeviceARNs = v
 16140  	return s
 16141  }
 16142  
 16143  // DescribeVTLDevicesOutput
 16144  type DescribeVTLDevicesOutput struct {
 16145  	_ struct{} `type:"structure"`
 16146  
 16147  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 16148  	// to return a list of gateways for your account and Region.
 16149  	GatewayARN *string `min:"50" type:"string"`
 16150  
 16151  	// An opaque string that indicates the position at which the VTL devices that
 16152  	// were fetched for description ended. Use the marker in your next request to
 16153  	// fetch the next set of VTL devices in the list. If there are no more VTL devices
 16154  	// to describe, this field does not appear in the response.
 16155  	Marker *string `min:"1" type:"string"`
 16156  
 16157  	// An array of VTL device objects composed of the Amazon Resource Name (ARN)
 16158  	// of the VTL devices.
 16159  	VTLDevices []*VTLDevice `type:"list"`
 16160  }
 16161  
 16162  // String returns the string representation.
 16163  //
 16164  // API parameter values that are decorated as "sensitive" in the API will not
 16165  // be included in the string output. The member name will be present, but the
 16166  // value will be replaced with "sensitive".
 16167  func (s DescribeVTLDevicesOutput) String() string {
 16168  	return awsutil.Prettify(s)
 16169  }
 16170  
 16171  // GoString returns the string representation.
 16172  //
 16173  // API parameter values that are decorated as "sensitive" in the API will not
 16174  // be included in the string output. The member name will be present, but the
 16175  // value will be replaced with "sensitive".
 16176  func (s DescribeVTLDevicesOutput) GoString() string {
 16177  	return s.String()
 16178  }
 16179  
 16180  // SetGatewayARN sets the GatewayARN field's value.
 16181  func (s *DescribeVTLDevicesOutput) SetGatewayARN(v string) *DescribeVTLDevicesOutput {
 16182  	s.GatewayARN = &v
 16183  	return s
 16184  }
 16185  
 16186  // SetMarker sets the Marker field's value.
 16187  func (s *DescribeVTLDevicesOutput) SetMarker(v string) *DescribeVTLDevicesOutput {
 16188  	s.Marker = &v
 16189  	return s
 16190  }
 16191  
 16192  // SetVTLDevices sets the VTLDevices field's value.
 16193  func (s *DescribeVTLDevicesOutput) SetVTLDevices(v []*VTLDevice) *DescribeVTLDevicesOutput {
 16194  	s.VTLDevices = v
 16195  	return s
 16196  }
 16197  
 16198  // A JSON object containing the Amazon Resource Name (ARN) of the gateway.
 16199  type DescribeWorkingStorageInput struct {
 16200  	_ struct{} `type:"structure"`
 16201  
 16202  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 16203  	// to return a list of gateways for your account and Region.
 16204  	//
 16205  	// GatewayARN is a required field
 16206  	GatewayARN *string `min:"50" type:"string" required:"true"`
 16207  }
 16208  
 16209  // String returns the string representation.
 16210  //
 16211  // API parameter values that are decorated as "sensitive" in the API will not
 16212  // be included in the string output. The member name will be present, but the
 16213  // value will be replaced with "sensitive".
 16214  func (s DescribeWorkingStorageInput) String() string {
 16215  	return awsutil.Prettify(s)
 16216  }
 16217  
 16218  // GoString returns the string representation.
 16219  //
 16220  // API parameter values that are decorated as "sensitive" in the API will not
 16221  // be included in the string output. The member name will be present, but the
 16222  // value will be replaced with "sensitive".
 16223  func (s DescribeWorkingStorageInput) GoString() string {
 16224  	return s.String()
 16225  }
 16226  
 16227  // Validate inspects the fields of the type to determine if they are valid.
 16228  func (s *DescribeWorkingStorageInput) Validate() error {
 16229  	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkingStorageInput"}
 16230  	if s.GatewayARN == nil {
 16231  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 16232  	}
 16233  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 16234  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 16235  	}
 16236  
 16237  	if invalidParams.Len() > 0 {
 16238  		return invalidParams
 16239  	}
 16240  	return nil
 16241  }
 16242  
 16243  // SetGatewayARN sets the GatewayARN field's value.
 16244  func (s *DescribeWorkingStorageInput) SetGatewayARN(v string) *DescribeWorkingStorageInput {
 16245  	s.GatewayARN = &v
 16246  	return s
 16247  }
 16248  
 16249  // A JSON object containing the following fields:
 16250  type DescribeWorkingStorageOutput struct {
 16251  	_ struct{} `type:"structure"`
 16252  
 16253  	// An array of the gateway's local disk IDs that are configured as working storage.
 16254  	// Each local disk ID is specified as a string (minimum length of 1 and maximum
 16255  	// length of 300). If no local disks are configured as working storage, then
 16256  	// the DiskIds array is empty.
 16257  	DiskIds []*string `type:"list"`
 16258  
 16259  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 16260  	// to return a list of gateways for your account and Region.
 16261  	GatewayARN *string `min:"50" type:"string"`
 16262  
 16263  	// The total working storage in bytes allocated for the gateway. If no working
 16264  	// storage is configured for the gateway, this field returns 0.
 16265  	WorkingStorageAllocatedInBytes *int64 `type:"long"`
 16266  
 16267  	// The total working storage in bytes in use by the gateway. If no working storage
 16268  	// is configured for the gateway, this field returns 0.
 16269  	WorkingStorageUsedInBytes *int64 `type:"long"`
 16270  }
 16271  
 16272  // String returns the string representation.
 16273  //
 16274  // API parameter values that are decorated as "sensitive" in the API will not
 16275  // be included in the string output. The member name will be present, but the
 16276  // value will be replaced with "sensitive".
 16277  func (s DescribeWorkingStorageOutput) String() string {
 16278  	return awsutil.Prettify(s)
 16279  }
 16280  
 16281  // GoString returns the string representation.
 16282  //
 16283  // API parameter values that are decorated as "sensitive" in the API will not
 16284  // be included in the string output. The member name will be present, but the
 16285  // value will be replaced with "sensitive".
 16286  func (s DescribeWorkingStorageOutput) GoString() string {
 16287  	return s.String()
 16288  }
 16289  
 16290  // SetDiskIds sets the DiskIds field's value.
 16291  func (s *DescribeWorkingStorageOutput) SetDiskIds(v []*string) *DescribeWorkingStorageOutput {
 16292  	s.DiskIds = v
 16293  	return s
 16294  }
 16295  
 16296  // SetGatewayARN sets the GatewayARN field's value.
 16297  func (s *DescribeWorkingStorageOutput) SetGatewayARN(v string) *DescribeWorkingStorageOutput {
 16298  	s.GatewayARN = &v
 16299  	return s
 16300  }
 16301  
 16302  // SetWorkingStorageAllocatedInBytes sets the WorkingStorageAllocatedInBytes field's value.
 16303  func (s *DescribeWorkingStorageOutput) SetWorkingStorageAllocatedInBytes(v int64) *DescribeWorkingStorageOutput {
 16304  	s.WorkingStorageAllocatedInBytes = &v
 16305  	return s
 16306  }
 16307  
 16308  // SetWorkingStorageUsedInBytes sets the WorkingStorageUsedInBytes field's value.
 16309  func (s *DescribeWorkingStorageOutput) SetWorkingStorageUsedInBytes(v int64) *DescribeWorkingStorageOutput {
 16310  	s.WorkingStorageUsedInBytes = &v
 16311  	return s
 16312  }
 16313  
 16314  // AttachVolumeInput
 16315  type DetachVolumeInput struct {
 16316  	_ struct{} `type:"structure"`
 16317  
 16318  	// Set to true to forcibly remove the iSCSI connection of the target volume
 16319  	// and detach the volume. The default is false. If this value is set to false,
 16320  	// you must manually disconnect the iSCSI connection from the target volume.
 16321  	//
 16322  	// Valid Values: true | false
 16323  	ForceDetach *bool `type:"boolean"`
 16324  
 16325  	// The Amazon Resource Name (ARN) of the volume to detach from the gateway.
 16326  	//
 16327  	// VolumeARN is a required field
 16328  	VolumeARN *string `min:"50" type:"string" required:"true"`
 16329  }
 16330  
 16331  // String returns the string representation.
 16332  //
 16333  // API parameter values that are decorated as "sensitive" in the API will not
 16334  // be included in the string output. The member name will be present, but the
 16335  // value will be replaced with "sensitive".
 16336  func (s DetachVolumeInput) String() string {
 16337  	return awsutil.Prettify(s)
 16338  }
 16339  
 16340  // GoString returns the string representation.
 16341  //
 16342  // API parameter values that are decorated as "sensitive" in the API will not
 16343  // be included in the string output. The member name will be present, but the
 16344  // value will be replaced with "sensitive".
 16345  func (s DetachVolumeInput) GoString() string {
 16346  	return s.String()
 16347  }
 16348  
 16349  // Validate inspects the fields of the type to determine if they are valid.
 16350  func (s *DetachVolumeInput) Validate() error {
 16351  	invalidParams := request.ErrInvalidParams{Context: "DetachVolumeInput"}
 16352  	if s.VolumeARN == nil {
 16353  		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
 16354  	}
 16355  	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
 16356  		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
 16357  	}
 16358  
 16359  	if invalidParams.Len() > 0 {
 16360  		return invalidParams
 16361  	}
 16362  	return nil
 16363  }
 16364  
 16365  // SetForceDetach sets the ForceDetach field's value.
 16366  func (s *DetachVolumeInput) SetForceDetach(v bool) *DetachVolumeInput {
 16367  	s.ForceDetach = &v
 16368  	return s
 16369  }
 16370  
 16371  // SetVolumeARN sets the VolumeARN field's value.
 16372  func (s *DetachVolumeInput) SetVolumeARN(v string) *DetachVolumeInput {
 16373  	s.VolumeARN = &v
 16374  	return s
 16375  }
 16376  
 16377  // AttachVolumeOutput
 16378  type DetachVolumeOutput struct {
 16379  	_ struct{} `type:"structure"`
 16380  
 16381  	// The Amazon Resource Name (ARN) of the volume that was detached.
 16382  	VolumeARN *string `min:"50" type:"string"`
 16383  }
 16384  
 16385  // String returns the string representation.
 16386  //
 16387  // API parameter values that are decorated as "sensitive" in the API will not
 16388  // be included in the string output. The member name will be present, but the
 16389  // value will be replaced with "sensitive".
 16390  func (s DetachVolumeOutput) String() string {
 16391  	return awsutil.Prettify(s)
 16392  }
 16393  
 16394  // GoString returns the string representation.
 16395  //
 16396  // API parameter values that are decorated as "sensitive" in the API will not
 16397  // be included in the string output. The member name will be present, but the
 16398  // value will be replaced with "sensitive".
 16399  func (s DetachVolumeOutput) GoString() string {
 16400  	return s.String()
 16401  }
 16402  
 16403  // SetVolumeARN sets the VolumeARN field's value.
 16404  func (s *DetachVolumeOutput) SetVolumeARN(v string) *DetachVolumeOutput {
 16405  	s.VolumeARN = &v
 16406  	return s
 16407  }
 16408  
 16409  // Lists iSCSI information about a VTL device.
 16410  type DeviceiSCSIAttributes struct {
 16411  	_ struct{} `type:"structure"`
 16412  
 16413  	// Indicates whether mutual CHAP is enabled for the iSCSI target.
 16414  	ChapEnabled *bool `type:"boolean"`
 16415  
 16416  	// The network interface identifier of the VTL device.
 16417  	NetworkInterfaceId *string `type:"string"`
 16418  
 16419  	// The port used to communicate with iSCSI VTL device targets.
 16420  	NetworkInterfacePort *int64 `type:"integer"`
 16421  
 16422  	// Specifies the unique Amazon Resource Name (ARN) that encodes the iSCSI qualified
 16423  	// name(iqn) of a tape drive or media changer target.
 16424  	TargetARN *string `min:"50" type:"string"`
 16425  }
 16426  
 16427  // String returns the string representation.
 16428  //
 16429  // API parameter values that are decorated as "sensitive" in the API will not
 16430  // be included in the string output. The member name will be present, but the
 16431  // value will be replaced with "sensitive".
 16432  func (s DeviceiSCSIAttributes) String() string {
 16433  	return awsutil.Prettify(s)
 16434  }
 16435  
 16436  // GoString returns the string representation.
 16437  //
 16438  // API parameter values that are decorated as "sensitive" in the API will not
 16439  // be included in the string output. The member name will be present, but the
 16440  // value will be replaced with "sensitive".
 16441  func (s DeviceiSCSIAttributes) GoString() string {
 16442  	return s.String()
 16443  }
 16444  
 16445  // SetChapEnabled sets the ChapEnabled field's value.
 16446  func (s *DeviceiSCSIAttributes) SetChapEnabled(v bool) *DeviceiSCSIAttributes {
 16447  	s.ChapEnabled = &v
 16448  	return s
 16449  }
 16450  
 16451  // SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
 16452  func (s *DeviceiSCSIAttributes) SetNetworkInterfaceId(v string) *DeviceiSCSIAttributes {
 16453  	s.NetworkInterfaceId = &v
 16454  	return s
 16455  }
 16456  
 16457  // SetNetworkInterfacePort sets the NetworkInterfacePort field's value.
 16458  func (s *DeviceiSCSIAttributes) SetNetworkInterfacePort(v int64) *DeviceiSCSIAttributes {
 16459  	s.NetworkInterfacePort = &v
 16460  	return s
 16461  }
 16462  
 16463  // SetTargetARN sets the TargetARN field's value.
 16464  func (s *DeviceiSCSIAttributes) SetTargetARN(v string) *DeviceiSCSIAttributes {
 16465  	s.TargetARN = &v
 16466  	return s
 16467  }
 16468  
 16469  // DisableGatewayInput
 16470  type DisableGatewayInput struct {
 16471  	_ struct{} `type:"structure"`
 16472  
 16473  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 16474  	// to return a list of gateways for your account and Region.
 16475  	//
 16476  	// GatewayARN is a required field
 16477  	GatewayARN *string `min:"50" type:"string" required:"true"`
 16478  }
 16479  
 16480  // String returns the string representation.
 16481  //
 16482  // API parameter values that are decorated as "sensitive" in the API will not
 16483  // be included in the string output. The member name will be present, but the
 16484  // value will be replaced with "sensitive".
 16485  func (s DisableGatewayInput) String() string {
 16486  	return awsutil.Prettify(s)
 16487  }
 16488  
 16489  // GoString returns the string representation.
 16490  //
 16491  // API parameter values that are decorated as "sensitive" in the API will not
 16492  // be included in the string output. The member name will be present, but the
 16493  // value will be replaced with "sensitive".
 16494  func (s DisableGatewayInput) GoString() string {
 16495  	return s.String()
 16496  }
 16497  
 16498  // Validate inspects the fields of the type to determine if they are valid.
 16499  func (s *DisableGatewayInput) Validate() error {
 16500  	invalidParams := request.ErrInvalidParams{Context: "DisableGatewayInput"}
 16501  	if s.GatewayARN == nil {
 16502  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 16503  	}
 16504  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 16505  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 16506  	}
 16507  
 16508  	if invalidParams.Len() > 0 {
 16509  		return invalidParams
 16510  	}
 16511  	return nil
 16512  }
 16513  
 16514  // SetGatewayARN sets the GatewayARN field's value.
 16515  func (s *DisableGatewayInput) SetGatewayARN(v string) *DisableGatewayInput {
 16516  	s.GatewayARN = &v
 16517  	return s
 16518  }
 16519  
 16520  // DisableGatewayOutput
 16521  type DisableGatewayOutput struct {
 16522  	_ struct{} `type:"structure"`
 16523  
 16524  	// The unique Amazon Resource Name (ARN) of the disabled gateway.
 16525  	GatewayARN *string `min:"50" type:"string"`
 16526  }
 16527  
 16528  // String returns the string representation.
 16529  //
 16530  // API parameter values that are decorated as "sensitive" in the API will not
 16531  // be included in the string output. The member name will be present, but the
 16532  // value will be replaced with "sensitive".
 16533  func (s DisableGatewayOutput) String() string {
 16534  	return awsutil.Prettify(s)
 16535  }
 16536  
 16537  // GoString returns the string representation.
 16538  //
 16539  // API parameter values that are decorated as "sensitive" in the API will not
 16540  // be included in the string output. The member name will be present, but the
 16541  // value will be replaced with "sensitive".
 16542  func (s DisableGatewayOutput) GoString() string {
 16543  	return s.String()
 16544  }
 16545  
 16546  // SetGatewayARN sets the GatewayARN field's value.
 16547  func (s *DisableGatewayOutput) SetGatewayARN(v string) *DisableGatewayOutput {
 16548  	s.GatewayARN = &v
 16549  	return s
 16550  }
 16551  
 16552  type DisassociateFileSystemInput struct {
 16553  	_ struct{} `type:"structure"`
 16554  
 16555  	// The Amazon Resource Name (ARN) of the file system association to be deleted.
 16556  	//
 16557  	// FileSystemAssociationARN is a required field
 16558  	FileSystemAssociationARN *string `min:"50" type:"string" required:"true"`
 16559  
 16560  	// If this value is set to true, the operation disassociates an Amazon FSx file
 16561  	// system immediately. It ends all data uploads to the file system, and the
 16562  	// file system association enters the FORCE_DELETING status. If this value is
 16563  	// set to false, the Amazon FSx file system does not disassociate until all
 16564  	// data is uploaded.
 16565  	ForceDelete *bool `type:"boolean"`
 16566  }
 16567  
 16568  // String returns the string representation.
 16569  //
 16570  // API parameter values that are decorated as "sensitive" in the API will not
 16571  // be included in the string output. The member name will be present, but the
 16572  // value will be replaced with "sensitive".
 16573  func (s DisassociateFileSystemInput) String() string {
 16574  	return awsutil.Prettify(s)
 16575  }
 16576  
 16577  // GoString returns the string representation.
 16578  //
 16579  // API parameter values that are decorated as "sensitive" in the API will not
 16580  // be included in the string output. The member name will be present, but the
 16581  // value will be replaced with "sensitive".
 16582  func (s DisassociateFileSystemInput) GoString() string {
 16583  	return s.String()
 16584  }
 16585  
 16586  // Validate inspects the fields of the type to determine if they are valid.
 16587  func (s *DisassociateFileSystemInput) Validate() error {
 16588  	invalidParams := request.ErrInvalidParams{Context: "DisassociateFileSystemInput"}
 16589  	if s.FileSystemAssociationARN == nil {
 16590  		invalidParams.Add(request.NewErrParamRequired("FileSystemAssociationARN"))
 16591  	}
 16592  	if s.FileSystemAssociationARN != nil && len(*s.FileSystemAssociationARN) < 50 {
 16593  		invalidParams.Add(request.NewErrParamMinLen("FileSystemAssociationARN", 50))
 16594  	}
 16595  
 16596  	if invalidParams.Len() > 0 {
 16597  		return invalidParams
 16598  	}
 16599  	return nil
 16600  }
 16601  
 16602  // SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
 16603  func (s *DisassociateFileSystemInput) SetFileSystemAssociationARN(v string) *DisassociateFileSystemInput {
 16604  	s.FileSystemAssociationARN = &v
 16605  	return s
 16606  }
 16607  
 16608  // SetForceDelete sets the ForceDelete field's value.
 16609  func (s *DisassociateFileSystemInput) SetForceDelete(v bool) *DisassociateFileSystemInput {
 16610  	s.ForceDelete = &v
 16611  	return s
 16612  }
 16613  
 16614  type DisassociateFileSystemOutput struct {
 16615  	_ struct{} `type:"structure"`
 16616  
 16617  	// The Amazon Resource Name (ARN) of the deleted file system association.
 16618  	FileSystemAssociationARN *string `min:"50" type:"string"`
 16619  }
 16620  
 16621  // String returns the string representation.
 16622  //
 16623  // API parameter values that are decorated as "sensitive" in the API will not
 16624  // be included in the string output. The member name will be present, but the
 16625  // value will be replaced with "sensitive".
 16626  func (s DisassociateFileSystemOutput) String() string {
 16627  	return awsutil.Prettify(s)
 16628  }
 16629  
 16630  // GoString returns the string representation.
 16631  //
 16632  // API parameter values that are decorated as "sensitive" in the API will not
 16633  // be included in the string output. The member name will be present, but the
 16634  // value will be replaced with "sensitive".
 16635  func (s DisassociateFileSystemOutput) GoString() string {
 16636  	return s.String()
 16637  }
 16638  
 16639  // SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
 16640  func (s *DisassociateFileSystemOutput) SetFileSystemAssociationARN(v string) *DisassociateFileSystemOutput {
 16641  	s.FileSystemAssociationARN = &v
 16642  	return s
 16643  }
 16644  
 16645  // Represents a gateway's local disk.
 16646  type Disk struct {
 16647  	_ struct{} `type:"structure"`
 16648  
 16649  	// The iSCSI qualified name (IQN) that is defined for a disk. This field is
 16650  	// not included in the response if the local disk is not defined as an iSCSI
 16651  	// target. The format of this field is targetIqn::LUNNumber::region-volumeId.
 16652  	DiskAllocationResource *string `type:"string"`
 16653  
 16654  	// One of the DiskAllocationType enumeration values that identifies how a local
 16655  	// disk is used.
 16656  	//
 16657  	// Valid Values: UPLOAD_BUFFER | CACHE_STORAGE
 16658  	DiskAllocationType *string `min:"3" type:"string"`
 16659  
 16660  	// A list of values that represents attributes of a local disk.
 16661  	DiskAttributeList []*string `type:"list"`
 16662  
 16663  	// The unique device ID or other distinguishing data that identifies a local
 16664  	// disk.
 16665  	DiskId *string `min:"1" type:"string"`
 16666  
 16667  	// The device node of a local disk as assigned by the virtualization environment.
 16668  	DiskNode *string `type:"string"`
 16669  
 16670  	// The path of a local disk in the gateway virtual machine (VM).
 16671  	DiskPath *string `type:"string"`
 16672  
 16673  	// The local disk size in bytes.
 16674  	DiskSizeInBytes *int64 `type:"long"`
 16675  
 16676  	// A value that represents the status of a local disk.
 16677  	DiskStatus *string `type:"string"`
 16678  }
 16679  
 16680  // String returns the string representation.
 16681  //
 16682  // API parameter values that are decorated as "sensitive" in the API will not
 16683  // be included in the string output. The member name will be present, but the
 16684  // value will be replaced with "sensitive".
 16685  func (s Disk) String() string {
 16686  	return awsutil.Prettify(s)
 16687  }
 16688  
 16689  // GoString returns the string representation.
 16690  //
 16691  // API parameter values that are decorated as "sensitive" in the API will not
 16692  // be included in the string output. The member name will be present, but the
 16693  // value will be replaced with "sensitive".
 16694  func (s Disk) GoString() string {
 16695  	return s.String()
 16696  }
 16697  
 16698  // SetDiskAllocationResource sets the DiskAllocationResource field's value.
 16699  func (s *Disk) SetDiskAllocationResource(v string) *Disk {
 16700  	s.DiskAllocationResource = &v
 16701  	return s
 16702  }
 16703  
 16704  // SetDiskAllocationType sets the DiskAllocationType field's value.
 16705  func (s *Disk) SetDiskAllocationType(v string) *Disk {
 16706  	s.DiskAllocationType = &v
 16707  	return s
 16708  }
 16709  
 16710  // SetDiskAttributeList sets the DiskAttributeList field's value.
 16711  func (s *Disk) SetDiskAttributeList(v []*string) *Disk {
 16712  	s.DiskAttributeList = v
 16713  	return s
 16714  }
 16715  
 16716  // SetDiskId sets the DiskId field's value.
 16717  func (s *Disk) SetDiskId(v string) *Disk {
 16718  	s.DiskId = &v
 16719  	return s
 16720  }
 16721  
 16722  // SetDiskNode sets the DiskNode field's value.
 16723  func (s *Disk) SetDiskNode(v string) *Disk {
 16724  	s.DiskNode = &v
 16725  	return s
 16726  }
 16727  
 16728  // SetDiskPath sets the DiskPath field's value.
 16729  func (s *Disk) SetDiskPath(v string) *Disk {
 16730  	s.DiskPath = &v
 16731  	return s
 16732  }
 16733  
 16734  // SetDiskSizeInBytes sets the DiskSizeInBytes field's value.
 16735  func (s *Disk) SetDiskSizeInBytes(v int64) *Disk {
 16736  	s.DiskSizeInBytes = &v
 16737  	return s
 16738  }
 16739  
 16740  // SetDiskStatus sets the DiskStatus field's value.
 16741  func (s *Disk) SetDiskStatus(v string) *Disk {
 16742  	s.DiskStatus = &v
 16743  	return s
 16744  }
 16745  
 16746  // Specifies network configuration information for the gateway associated with
 16747  // the Amazon FSx file system.
 16748  type EndpointNetworkConfiguration struct {
 16749  	_ struct{} `type:"structure"`
 16750  
 16751  	// A list of gateway IP addresses on which the associated Amazon FSx file system
 16752  	// is available.
 16753  	//
 16754  	// If multiple file systems are associated with this gateway, this field is
 16755  	// required.
 16756  	IpAddresses []*string `type:"list"`
 16757  }
 16758  
 16759  // String returns the string representation.
 16760  //
 16761  // API parameter values that are decorated as "sensitive" in the API will not
 16762  // be included in the string output. The member name will be present, but the
 16763  // value will be replaced with "sensitive".
 16764  func (s EndpointNetworkConfiguration) String() string {
 16765  	return awsutil.Prettify(s)
 16766  }
 16767  
 16768  // GoString returns the string representation.
 16769  //
 16770  // API parameter values that are decorated as "sensitive" in the API will not
 16771  // be included in the string output. The member name will be present, but the
 16772  // value will be replaced with "sensitive".
 16773  func (s EndpointNetworkConfiguration) GoString() string {
 16774  	return s.String()
 16775  }
 16776  
 16777  // SetIpAddresses sets the IpAddresses field's value.
 16778  func (s *EndpointNetworkConfiguration) SetIpAddresses(v []*string) *EndpointNetworkConfiguration {
 16779  	s.IpAddresses = v
 16780  	return s
 16781  }
 16782  
 16783  // Provides additional information about an error that was returned by the service.
 16784  // See the errorCode and errorDetails members for more information about the
 16785  // error.
 16786  type Error struct {
 16787  	_ struct{} `type:"structure"`
 16788  
 16789  	// Additional information about the error.
 16790  	ErrorCode *string `locationName:"errorCode" type:"string" enum:"ErrorCode"`
 16791  
 16792  	// Human-readable text that provides detail about the error that occurred.
 16793  	ErrorDetails map[string]*string `locationName:"errorDetails" type:"map"`
 16794  }
 16795  
 16796  // String returns the string representation.
 16797  //
 16798  // API parameter values that are decorated as "sensitive" in the API will not
 16799  // be included in the string output. The member name will be present, but the
 16800  // value will be replaced with "sensitive".
 16801  func (s Error) String() string {
 16802  	return awsutil.Prettify(s)
 16803  }
 16804  
 16805  // GoString returns the string representation.
 16806  //
 16807  // API parameter values that are decorated as "sensitive" in the API will not
 16808  // be included in the string output. The member name will be present, but the
 16809  // value will be replaced with "sensitive".
 16810  func (s Error) GoString() string {
 16811  	return s.String()
 16812  }
 16813  
 16814  // SetErrorCode sets the ErrorCode field's value.
 16815  func (s *Error) SetErrorCode(v string) *Error {
 16816  	s.ErrorCode = &v
 16817  	return s
 16818  }
 16819  
 16820  // SetErrorDetails sets the ErrorDetails field's value.
 16821  func (s *Error) SetErrorDetails(v map[string]*string) *Error {
 16822  	s.ErrorDetails = v
 16823  	return s
 16824  }
 16825  
 16826  // Describes a file share. Only supported S3 File Gateway.
 16827  type FileShareInfo struct {
 16828  	_ struct{} `type:"structure"`
 16829  
 16830  	// The Amazon Resource Name (ARN) of the file share.
 16831  	FileShareARN *string `min:"50" type:"string"`
 16832  
 16833  	// The ID of the file share.
 16834  	FileShareId *string `min:"12" type:"string"`
 16835  
 16836  	// The status of the file share.
 16837  	//
 16838  	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
 16839  	FileShareStatus *string `min:"3" type:"string"`
 16840  
 16841  	// The type of the file share.
 16842  	FileShareType *string `type:"string" enum:"FileShareType"`
 16843  
 16844  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 16845  	// to return a list of gateways for your account and Region.
 16846  	GatewayARN *string `min:"50" type:"string"`
 16847  }
 16848  
 16849  // String returns the string representation.
 16850  //
 16851  // API parameter values that are decorated as "sensitive" in the API will not
 16852  // be included in the string output. The member name will be present, but the
 16853  // value will be replaced with "sensitive".
 16854  func (s FileShareInfo) String() string {
 16855  	return awsutil.Prettify(s)
 16856  }
 16857  
 16858  // GoString returns the string representation.
 16859  //
 16860  // API parameter values that are decorated as "sensitive" in the API will not
 16861  // be included in the string output. The member name will be present, but the
 16862  // value will be replaced with "sensitive".
 16863  func (s FileShareInfo) GoString() string {
 16864  	return s.String()
 16865  }
 16866  
 16867  // SetFileShareARN sets the FileShareARN field's value.
 16868  func (s *FileShareInfo) SetFileShareARN(v string) *FileShareInfo {
 16869  	s.FileShareARN = &v
 16870  	return s
 16871  }
 16872  
 16873  // SetFileShareId sets the FileShareId field's value.
 16874  func (s *FileShareInfo) SetFileShareId(v string) *FileShareInfo {
 16875  	s.FileShareId = &v
 16876  	return s
 16877  }
 16878  
 16879  // SetFileShareStatus sets the FileShareStatus field's value.
 16880  func (s *FileShareInfo) SetFileShareStatus(v string) *FileShareInfo {
 16881  	s.FileShareStatus = &v
 16882  	return s
 16883  }
 16884  
 16885  // SetFileShareType sets the FileShareType field's value.
 16886  func (s *FileShareInfo) SetFileShareType(v string) *FileShareInfo {
 16887  	s.FileShareType = &v
 16888  	return s
 16889  }
 16890  
 16891  // SetGatewayARN sets the GatewayARN field's value.
 16892  func (s *FileShareInfo) SetGatewayARN(v string) *FileShareInfo {
 16893  	s.GatewayARN = &v
 16894  	return s
 16895  }
 16896  
 16897  // Describes the object returned by DescribeFileSystemAssociations that describes
 16898  // a created file system association.
 16899  type FileSystemAssociationInfo struct {
 16900  	_ struct{} `type:"structure"`
 16901  
 16902  	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
 16903  	AuditDestinationARN *string `type:"string"`
 16904  
 16905  	// The refresh cache information for the file share or FSx file systems.
 16906  	CacheAttributes *CacheAttributes `type:"structure"`
 16907  
 16908  	// Specifies network configuration information for the gateway associated with
 16909  	// the Amazon FSx file system.
 16910  	//
 16911  	// If multiple file systems are associated with this gateway, this parameter's
 16912  	// IpAddresses field is required.
 16913  	EndpointNetworkConfiguration *EndpointNetworkConfiguration `type:"structure"`
 16914  
 16915  	// The Amazon Resource Name (ARN) of the file system association.
 16916  	FileSystemAssociationARN *string `min:"50" type:"string"`
 16917  
 16918  	// The status of the file system association. Valid Values: AVAILABLE | CREATING
 16919  	// | DELETING | FORCE_DELETING | UPDATING | ERROR
 16920  	FileSystemAssociationStatus *string `min:"3" type:"string"`
 16921  
 16922  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 16923  	// to return a list of gateways for your account and Region.
 16924  	GatewayARN *string `min:"50" type:"string"`
 16925  
 16926  	// The ARN of the backend Amazon FSx file system used for storing file data.
 16927  	// For information, see FileSystem (https://docs.aws.amazon.com/fsx/latest/APIReference/API_FileSystem.html)
 16928  	// in the Amazon FSx API Reference.
 16929  	LocationARN *string `min:"8" type:"string"`
 16930  
 16931  	// A list of up to 50 tags assigned to the SMB file share, sorted alphabetically
 16932  	// by key name. Each tag is a key-value pair.
 16933  	Tags []*Tag `type:"list"`
 16934  }
 16935  
 16936  // String returns the string representation.
 16937  //
 16938  // API parameter values that are decorated as "sensitive" in the API will not
 16939  // be included in the string output. The member name will be present, but the
 16940  // value will be replaced with "sensitive".
 16941  func (s FileSystemAssociationInfo) String() string {
 16942  	return awsutil.Prettify(s)
 16943  }
 16944  
 16945  // GoString returns the string representation.
 16946  //
 16947  // API parameter values that are decorated as "sensitive" in the API will not
 16948  // be included in the string output. The member name will be present, but the
 16949  // value will be replaced with "sensitive".
 16950  func (s FileSystemAssociationInfo) GoString() string {
 16951  	return s.String()
 16952  }
 16953  
 16954  // SetAuditDestinationARN sets the AuditDestinationARN field's value.
 16955  func (s *FileSystemAssociationInfo) SetAuditDestinationARN(v string) *FileSystemAssociationInfo {
 16956  	s.AuditDestinationARN = &v
 16957  	return s
 16958  }
 16959  
 16960  // SetCacheAttributes sets the CacheAttributes field's value.
 16961  func (s *FileSystemAssociationInfo) SetCacheAttributes(v *CacheAttributes) *FileSystemAssociationInfo {
 16962  	s.CacheAttributes = v
 16963  	return s
 16964  }
 16965  
 16966  // SetEndpointNetworkConfiguration sets the EndpointNetworkConfiguration field's value.
 16967  func (s *FileSystemAssociationInfo) SetEndpointNetworkConfiguration(v *EndpointNetworkConfiguration) *FileSystemAssociationInfo {
 16968  	s.EndpointNetworkConfiguration = v
 16969  	return s
 16970  }
 16971  
 16972  // SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
 16973  func (s *FileSystemAssociationInfo) SetFileSystemAssociationARN(v string) *FileSystemAssociationInfo {
 16974  	s.FileSystemAssociationARN = &v
 16975  	return s
 16976  }
 16977  
 16978  // SetFileSystemAssociationStatus sets the FileSystemAssociationStatus field's value.
 16979  func (s *FileSystemAssociationInfo) SetFileSystemAssociationStatus(v string) *FileSystemAssociationInfo {
 16980  	s.FileSystemAssociationStatus = &v
 16981  	return s
 16982  }
 16983  
 16984  // SetGatewayARN sets the GatewayARN field's value.
 16985  func (s *FileSystemAssociationInfo) SetGatewayARN(v string) *FileSystemAssociationInfo {
 16986  	s.GatewayARN = &v
 16987  	return s
 16988  }
 16989  
 16990  // SetLocationARN sets the LocationARN field's value.
 16991  func (s *FileSystemAssociationInfo) SetLocationARN(v string) *FileSystemAssociationInfo {
 16992  	s.LocationARN = &v
 16993  	return s
 16994  }
 16995  
 16996  // SetTags sets the Tags field's value.
 16997  func (s *FileSystemAssociationInfo) SetTags(v []*Tag) *FileSystemAssociationInfo {
 16998  	s.Tags = v
 16999  	return s
 17000  }
 17001  
 17002  // Gets the summary returned by ListFileSystemAssociation, which is a summary
 17003  // of a created file system association.
 17004  type FileSystemAssociationSummary struct {
 17005  	_ struct{} `type:"structure"`
 17006  
 17007  	// The Amazon Resource Name (ARN) of the file system association.
 17008  	FileSystemAssociationARN *string `min:"50" type:"string"`
 17009  
 17010  	// The ID of the file system association.
 17011  	FileSystemAssociationId *string `min:"10" type:"string"`
 17012  
 17013  	// The status of the file share. Valid Values: AVAILABLE | CREATING | DELETING
 17014  	// | FORCE_DELETING | UPDATING | ERROR
 17015  	FileSystemAssociationStatus *string `min:"3" type:"string"`
 17016  
 17017  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 17018  	// to return a list of gateways for your account and Region.
 17019  	GatewayARN *string `min:"50" type:"string"`
 17020  }
 17021  
 17022  // String returns the string representation.
 17023  //
 17024  // API parameter values that are decorated as "sensitive" in the API will not
 17025  // be included in the string output. The member name will be present, but the
 17026  // value will be replaced with "sensitive".
 17027  func (s FileSystemAssociationSummary) String() string {
 17028  	return awsutil.Prettify(s)
 17029  }
 17030  
 17031  // GoString returns the string representation.
 17032  //
 17033  // API parameter values that are decorated as "sensitive" in the API will not
 17034  // be included in the string output. The member name will be present, but the
 17035  // value will be replaced with "sensitive".
 17036  func (s FileSystemAssociationSummary) GoString() string {
 17037  	return s.String()
 17038  }
 17039  
 17040  // SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
 17041  func (s *FileSystemAssociationSummary) SetFileSystemAssociationARN(v string) *FileSystemAssociationSummary {
 17042  	s.FileSystemAssociationARN = &v
 17043  	return s
 17044  }
 17045  
 17046  // SetFileSystemAssociationId sets the FileSystemAssociationId field's value.
 17047  func (s *FileSystemAssociationSummary) SetFileSystemAssociationId(v string) *FileSystemAssociationSummary {
 17048  	s.FileSystemAssociationId = &v
 17049  	return s
 17050  }
 17051  
 17052  // SetFileSystemAssociationStatus sets the FileSystemAssociationStatus field's value.
 17053  func (s *FileSystemAssociationSummary) SetFileSystemAssociationStatus(v string) *FileSystemAssociationSummary {
 17054  	s.FileSystemAssociationStatus = &v
 17055  	return s
 17056  }
 17057  
 17058  // SetGatewayARN sets the GatewayARN field's value.
 17059  func (s *FileSystemAssociationSummary) SetGatewayARN(v string) *FileSystemAssociationSummary {
 17060  	s.GatewayARN = &v
 17061  	return s
 17062  }
 17063  
 17064  // Describes a gateway object.
 17065  type GatewayInfo struct {
 17066  	_ struct{} `type:"structure"`
 17067  
 17068  	// The ID of the Amazon EC2 instance that was used to launch the gateway.
 17069  	Ec2InstanceId *string `type:"string"`
 17070  
 17071  	// The Region where the Amazon EC2 instance is located.
 17072  	Ec2InstanceRegion *string `type:"string"`
 17073  
 17074  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 17075  	// to return a list of gateways for your account and Region.
 17076  	GatewayARN *string `min:"50" type:"string"`
 17077  
 17078  	// The unique identifier assigned to your gateway during activation. This ID
 17079  	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
 17080  	// input for other operations.
 17081  	GatewayId *string `min:"12" type:"string"`
 17082  
 17083  	// The name of the gateway.
 17084  	GatewayName *string `type:"string"`
 17085  
 17086  	// The state of the gateway.
 17087  	//
 17088  	// Valid Values: DISABLED | ACTIVE
 17089  	GatewayOperationalState *string `min:"2" type:"string"`
 17090  
 17091  	// The type of the gateway.
 17092  	GatewayType *string `min:"2" type:"string"`
 17093  }
 17094  
 17095  // String returns the string representation.
 17096  //
 17097  // API parameter values that are decorated as "sensitive" in the API will not
 17098  // be included in the string output. The member name will be present, but the
 17099  // value will be replaced with "sensitive".
 17100  func (s GatewayInfo) String() string {
 17101  	return awsutil.Prettify(s)
 17102  }
 17103  
 17104  // GoString returns the string representation.
 17105  //
 17106  // API parameter values that are decorated as "sensitive" in the API will not
 17107  // be included in the string output. The member name will be present, but the
 17108  // value will be replaced with "sensitive".
 17109  func (s GatewayInfo) GoString() string {
 17110  	return s.String()
 17111  }
 17112  
 17113  // SetEc2InstanceId sets the Ec2InstanceId field's value.
 17114  func (s *GatewayInfo) SetEc2InstanceId(v string) *GatewayInfo {
 17115  	s.Ec2InstanceId = &v
 17116  	return s
 17117  }
 17118  
 17119  // SetEc2InstanceRegion sets the Ec2InstanceRegion field's value.
 17120  func (s *GatewayInfo) SetEc2InstanceRegion(v string) *GatewayInfo {
 17121  	s.Ec2InstanceRegion = &v
 17122  	return s
 17123  }
 17124  
 17125  // SetGatewayARN sets the GatewayARN field's value.
 17126  func (s *GatewayInfo) SetGatewayARN(v string) *GatewayInfo {
 17127  	s.GatewayARN = &v
 17128  	return s
 17129  }
 17130  
 17131  // SetGatewayId sets the GatewayId field's value.
 17132  func (s *GatewayInfo) SetGatewayId(v string) *GatewayInfo {
 17133  	s.GatewayId = &v
 17134  	return s
 17135  }
 17136  
 17137  // SetGatewayName sets the GatewayName field's value.
 17138  func (s *GatewayInfo) SetGatewayName(v string) *GatewayInfo {
 17139  	s.GatewayName = &v
 17140  	return s
 17141  }
 17142  
 17143  // SetGatewayOperationalState sets the GatewayOperationalState field's value.
 17144  func (s *GatewayInfo) SetGatewayOperationalState(v string) *GatewayInfo {
 17145  	s.GatewayOperationalState = &v
 17146  	return s
 17147  }
 17148  
 17149  // SetGatewayType sets the GatewayType field's value.
 17150  func (s *GatewayInfo) SetGatewayType(v string) *GatewayInfo {
 17151  	s.GatewayType = &v
 17152  	return s
 17153  }
 17154  
 17155  // An internal server error has occurred during the request. For more information,
 17156  // see the error and message fields.
 17157  type InternalServerError struct {
 17158  	_            struct{}                  `type:"structure"`
 17159  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17160  
 17161  	// A StorageGatewayError that provides more information about the cause of the
 17162  	// error.
 17163  	Error_ *Error `locationName:"error" type:"structure"`
 17164  
 17165  	// A human-readable message describing the error that occurred.
 17166  	Message_ *string `locationName:"message" type:"string"`
 17167  }
 17168  
 17169  // String returns the string representation.
 17170  //
 17171  // API parameter values that are decorated as "sensitive" in the API will not
 17172  // be included in the string output. The member name will be present, but the
 17173  // value will be replaced with "sensitive".
 17174  func (s InternalServerError) String() string {
 17175  	return awsutil.Prettify(s)
 17176  }
 17177  
 17178  // GoString returns the string representation.
 17179  //
 17180  // API parameter values that are decorated as "sensitive" in the API will not
 17181  // be included in the string output. The member name will be present, but the
 17182  // value will be replaced with "sensitive".
 17183  func (s InternalServerError) GoString() string {
 17184  	return s.String()
 17185  }
 17186  
 17187  func newErrorInternalServerError(v protocol.ResponseMetadata) error {
 17188  	return &InternalServerError{
 17189  		RespMetadata: v,
 17190  	}
 17191  }
 17192  
 17193  // Code returns the exception type name.
 17194  func (s *InternalServerError) Code() string {
 17195  	return "InternalServerError"
 17196  }
 17197  
 17198  // Message returns the exception's message.
 17199  func (s *InternalServerError) Message() string {
 17200  	if s.Message_ != nil {
 17201  		return *s.Message_
 17202  	}
 17203  	return ""
 17204  }
 17205  
 17206  // OrigErr always returns nil, satisfies awserr.Error interface.
 17207  func (s *InternalServerError) OrigErr() error {
 17208  	return nil
 17209  }
 17210  
 17211  func (s *InternalServerError) Error() string {
 17212  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 17213  }
 17214  
 17215  // Status code returns the HTTP status code for the request's response error.
 17216  func (s *InternalServerError) StatusCode() int {
 17217  	return s.RespMetadata.StatusCode
 17218  }
 17219  
 17220  // RequestID returns the service's response RequestID for request.
 17221  func (s *InternalServerError) RequestID() string {
 17222  	return s.RespMetadata.RequestID
 17223  }
 17224  
 17225  // An exception occurred because an invalid gateway request was issued to the
 17226  // service. For more information, see the error and message fields.
 17227  type InvalidGatewayRequestException struct {
 17228  	_            struct{}                  `type:"structure"`
 17229  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17230  
 17231  	// A StorageGatewayError that provides more detail about the cause of the error.
 17232  	Error_ *Error `locationName:"error" type:"structure"`
 17233  
 17234  	// A human-readable message describing the error that occurred.
 17235  	Message_ *string `locationName:"message" type:"string"`
 17236  }
 17237  
 17238  // String returns the string representation.
 17239  //
 17240  // API parameter values that are decorated as "sensitive" in the API will not
 17241  // be included in the string output. The member name will be present, but the
 17242  // value will be replaced with "sensitive".
 17243  func (s InvalidGatewayRequestException) String() string {
 17244  	return awsutil.Prettify(s)
 17245  }
 17246  
 17247  // GoString returns the string representation.
 17248  //
 17249  // API parameter values that are decorated as "sensitive" in the API will not
 17250  // be included in the string output. The member name will be present, but the
 17251  // value will be replaced with "sensitive".
 17252  func (s InvalidGatewayRequestException) GoString() string {
 17253  	return s.String()
 17254  }
 17255  
 17256  func newErrorInvalidGatewayRequestException(v protocol.ResponseMetadata) error {
 17257  	return &InvalidGatewayRequestException{
 17258  		RespMetadata: v,
 17259  	}
 17260  }
 17261  
 17262  // Code returns the exception type name.
 17263  func (s *InvalidGatewayRequestException) Code() string {
 17264  	return "InvalidGatewayRequestException"
 17265  }
 17266  
 17267  // Message returns the exception's message.
 17268  func (s *InvalidGatewayRequestException) Message() string {
 17269  	if s.Message_ != nil {
 17270  		return *s.Message_
 17271  	}
 17272  	return ""
 17273  }
 17274  
 17275  // OrigErr always returns nil, satisfies awserr.Error interface.
 17276  func (s *InvalidGatewayRequestException) OrigErr() error {
 17277  	return nil
 17278  }
 17279  
 17280  func (s *InvalidGatewayRequestException) Error() string {
 17281  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 17282  }
 17283  
 17284  // Status code returns the HTTP status code for the request's response error.
 17285  func (s *InvalidGatewayRequestException) StatusCode() int {
 17286  	return s.RespMetadata.StatusCode
 17287  }
 17288  
 17289  // RequestID returns the service's response RequestID for request.
 17290  func (s *InvalidGatewayRequestException) RequestID() string {
 17291  	return s.RespMetadata.RequestID
 17292  }
 17293  
 17294  // JoinDomainInput
 17295  type JoinDomainInput struct {
 17296  	_ struct{} `type:"structure"`
 17297  
 17298  	// List of IPv4 addresses, NetBIOS names, or host names of your domain server.
 17299  	// If you need to specify the port number include it after the colon (“:”).
 17300  	// For example, mydc.mydomain.com:389.
 17301  	DomainControllers []*string `type:"list"`
 17302  
 17303  	// The name of the domain that you want the gateway to join.
 17304  	//
 17305  	// DomainName is a required field
 17306  	DomainName *string `min:"1" type:"string" required:"true"`
 17307  
 17308  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 17309  	// to return a list of gateways for your account and Region.
 17310  	//
 17311  	// GatewayARN is a required field
 17312  	GatewayARN *string `min:"50" type:"string" required:"true"`
 17313  
 17314  	// The organizational unit (OU) is a container in an Active Directory that can
 17315  	// hold users, groups, computers, and other OUs and this parameter specifies
 17316  	// the OU that the gateway will join within the AD domain.
 17317  	OrganizationalUnit *string `min:"1" type:"string"`
 17318  
 17319  	// Sets the password of the user who has permission to add the gateway to the
 17320  	// Active Directory domain.
 17321  	//
 17322  	// Password is a sensitive parameter and its value will be
 17323  	// replaced with "sensitive" in string returned by JoinDomainInput's
 17324  	// String and GoString methods.
 17325  	//
 17326  	// Password is a required field
 17327  	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
 17328  
 17329  	// Specifies the time in seconds, in which the JoinDomain operation must complete.
 17330  	// The default is 20 seconds.
 17331  	TimeoutInSeconds *int64 `type:"integer"`
 17332  
 17333  	// Sets the user name of user who has permission to add the gateway to the Active
 17334  	// Directory domain. The domain user account should be enabled to join computers
 17335  	// to the domain. For example, you can use the domain administrator account
 17336  	// or an account with delegated permissions to join computers to the domain.
 17337  	//
 17338  	// UserName is a required field
 17339  	UserName *string `min:"1" type:"string" required:"true"`
 17340  }
 17341  
 17342  // String returns the string representation.
 17343  //
 17344  // API parameter values that are decorated as "sensitive" in the API will not
 17345  // be included in the string output. The member name will be present, but the
 17346  // value will be replaced with "sensitive".
 17347  func (s JoinDomainInput) String() string {
 17348  	return awsutil.Prettify(s)
 17349  }
 17350  
 17351  // GoString returns the string representation.
 17352  //
 17353  // API parameter values that are decorated as "sensitive" in the API will not
 17354  // be included in the string output. The member name will be present, but the
 17355  // value will be replaced with "sensitive".
 17356  func (s JoinDomainInput) GoString() string {
 17357  	return s.String()
 17358  }
 17359  
 17360  // Validate inspects the fields of the type to determine if they are valid.
 17361  func (s *JoinDomainInput) Validate() error {
 17362  	invalidParams := request.ErrInvalidParams{Context: "JoinDomainInput"}
 17363  	if s.DomainName == nil {
 17364  		invalidParams.Add(request.NewErrParamRequired("DomainName"))
 17365  	}
 17366  	if s.DomainName != nil && len(*s.DomainName) < 1 {
 17367  		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
 17368  	}
 17369  	if s.GatewayARN == nil {
 17370  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 17371  	}
 17372  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 17373  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 17374  	}
 17375  	if s.OrganizationalUnit != nil && len(*s.OrganizationalUnit) < 1 {
 17376  		invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnit", 1))
 17377  	}
 17378  	if s.Password == nil {
 17379  		invalidParams.Add(request.NewErrParamRequired("Password"))
 17380  	}
 17381  	if s.Password != nil && len(*s.Password) < 1 {
 17382  		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
 17383  	}
 17384  	if s.UserName == nil {
 17385  		invalidParams.Add(request.NewErrParamRequired("UserName"))
 17386  	}
 17387  	if s.UserName != nil && len(*s.UserName) < 1 {
 17388  		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
 17389  	}
 17390  
 17391  	if invalidParams.Len() > 0 {
 17392  		return invalidParams
 17393  	}
 17394  	return nil
 17395  }
 17396  
 17397  // SetDomainControllers sets the DomainControllers field's value.
 17398  func (s *JoinDomainInput) SetDomainControllers(v []*string) *JoinDomainInput {
 17399  	s.DomainControllers = v
 17400  	return s
 17401  }
 17402  
 17403  // SetDomainName sets the DomainName field's value.
 17404  func (s *JoinDomainInput) SetDomainName(v string) *JoinDomainInput {
 17405  	s.DomainName = &v
 17406  	return s
 17407  }
 17408  
 17409  // SetGatewayARN sets the GatewayARN field's value.
 17410  func (s *JoinDomainInput) SetGatewayARN(v string) *JoinDomainInput {
 17411  	s.GatewayARN = &v
 17412  	return s
 17413  }
 17414  
 17415  // SetOrganizationalUnit sets the OrganizationalUnit field's value.
 17416  func (s *JoinDomainInput) SetOrganizationalUnit(v string) *JoinDomainInput {
 17417  	s.OrganizationalUnit = &v
 17418  	return s
 17419  }
 17420  
 17421  // SetPassword sets the Password field's value.
 17422  func (s *JoinDomainInput) SetPassword(v string) *JoinDomainInput {
 17423  	s.Password = &v
 17424  	return s
 17425  }
 17426  
 17427  // SetTimeoutInSeconds sets the TimeoutInSeconds field's value.
 17428  func (s *JoinDomainInput) SetTimeoutInSeconds(v int64) *JoinDomainInput {
 17429  	s.TimeoutInSeconds = &v
 17430  	return s
 17431  }
 17432  
 17433  // SetUserName sets the UserName field's value.
 17434  func (s *JoinDomainInput) SetUserName(v string) *JoinDomainInput {
 17435  	s.UserName = &v
 17436  	return s
 17437  }
 17438  
 17439  // JoinDomainOutput
 17440  type JoinDomainOutput struct {
 17441  	_ struct{} `type:"structure"`
 17442  
 17443  	// Indicates the status of the gateway as a member of the Active Directory domain.
 17444  	//
 17445  	//    * ACCESS_DENIED: Indicates that the JoinDomain operation failed due to
 17446  	//    an authentication error.
 17447  	//
 17448  	//    * DETACHED: Indicates that gateway is not joined to a domain.
 17449  	//
 17450  	//    * JOINED: Indicates that the gateway has successfully joined a domain.
 17451  	//
 17452  	//    * JOINING: Indicates that a JoinDomain operation is in progress.
 17453  	//
 17454  	//    * NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network
 17455  	//    or connectivity error.
 17456  	//
 17457  	//    * TIMEOUT: Indicates that the JoinDomain operation failed because the
 17458  	//    operation didn't complete within the allotted time.
 17459  	//
 17460  	//    * UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to
 17461  	//    another type of error.
 17462  	ActiveDirectoryStatus *string `type:"string" enum:"ActiveDirectoryStatus"`
 17463  
 17464  	// The unique Amazon Resource Name (ARN) of the gateway that joined the domain.
 17465  	GatewayARN *string `min:"50" type:"string"`
 17466  }
 17467  
 17468  // String returns the string representation.
 17469  //
 17470  // API parameter values that are decorated as "sensitive" in the API will not
 17471  // be included in the string output. The member name will be present, but the
 17472  // value will be replaced with "sensitive".
 17473  func (s JoinDomainOutput) String() string {
 17474  	return awsutil.Prettify(s)
 17475  }
 17476  
 17477  // GoString returns the string representation.
 17478  //
 17479  // API parameter values that are decorated as "sensitive" in the API will not
 17480  // be included in the string output. The member name will be present, but the
 17481  // value will be replaced with "sensitive".
 17482  func (s JoinDomainOutput) GoString() string {
 17483  	return s.String()
 17484  }
 17485  
 17486  // SetActiveDirectoryStatus sets the ActiveDirectoryStatus field's value.
 17487  func (s *JoinDomainOutput) SetActiveDirectoryStatus(v string) *JoinDomainOutput {
 17488  	s.ActiveDirectoryStatus = &v
 17489  	return s
 17490  }
 17491  
 17492  // SetGatewayARN sets the GatewayARN field's value.
 17493  func (s *JoinDomainOutput) SetGatewayARN(v string) *JoinDomainOutput {
 17494  	s.GatewayARN = &v
 17495  	return s
 17496  }
 17497  
 17498  type ListAutomaticTapeCreationPoliciesInput struct {
 17499  	_ struct{} `type:"structure"`
 17500  
 17501  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 17502  	// to return a list of gateways for your account and Region.
 17503  	GatewayARN *string `min:"50" type:"string"`
 17504  }
 17505  
 17506  // String returns the string representation.
 17507  //
 17508  // API parameter values that are decorated as "sensitive" in the API will not
 17509  // be included in the string output. The member name will be present, but the
 17510  // value will be replaced with "sensitive".
 17511  func (s ListAutomaticTapeCreationPoliciesInput) String() string {
 17512  	return awsutil.Prettify(s)
 17513  }
 17514  
 17515  // GoString returns the string representation.
 17516  //
 17517  // API parameter values that are decorated as "sensitive" in the API will not
 17518  // be included in the string output. The member name will be present, but the
 17519  // value will be replaced with "sensitive".
 17520  func (s ListAutomaticTapeCreationPoliciesInput) GoString() string {
 17521  	return s.String()
 17522  }
 17523  
 17524  // Validate inspects the fields of the type to determine if they are valid.
 17525  func (s *ListAutomaticTapeCreationPoliciesInput) Validate() error {
 17526  	invalidParams := request.ErrInvalidParams{Context: "ListAutomaticTapeCreationPoliciesInput"}
 17527  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 17528  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 17529  	}
 17530  
 17531  	if invalidParams.Len() > 0 {
 17532  		return invalidParams
 17533  	}
 17534  	return nil
 17535  }
 17536  
 17537  // SetGatewayARN sets the GatewayARN field's value.
 17538  func (s *ListAutomaticTapeCreationPoliciesInput) SetGatewayARN(v string) *ListAutomaticTapeCreationPoliciesInput {
 17539  	s.GatewayARN = &v
 17540  	return s
 17541  }
 17542  
 17543  type ListAutomaticTapeCreationPoliciesOutput struct {
 17544  	_ struct{} `type:"structure"`
 17545  
 17546  	// Gets a listing of information about the gateway's automatic tape creation
 17547  	// policies, including the automatic tape creation rules and the gateway that
 17548  	// is using the policies.
 17549  	AutomaticTapeCreationPolicyInfos []*AutomaticTapeCreationPolicyInfo `type:"list"`
 17550  }
 17551  
 17552  // String returns the string representation.
 17553  //
 17554  // API parameter values that are decorated as "sensitive" in the API will not
 17555  // be included in the string output. The member name will be present, but the
 17556  // value will be replaced with "sensitive".
 17557  func (s ListAutomaticTapeCreationPoliciesOutput) String() string {
 17558  	return awsutil.Prettify(s)
 17559  }
 17560  
 17561  // GoString returns the string representation.
 17562  //
 17563  // API parameter values that are decorated as "sensitive" in the API will not
 17564  // be included in the string output. The member name will be present, but the
 17565  // value will be replaced with "sensitive".
 17566  func (s ListAutomaticTapeCreationPoliciesOutput) GoString() string {
 17567  	return s.String()
 17568  }
 17569  
 17570  // SetAutomaticTapeCreationPolicyInfos sets the AutomaticTapeCreationPolicyInfos field's value.
 17571  func (s *ListAutomaticTapeCreationPoliciesOutput) SetAutomaticTapeCreationPolicyInfos(v []*AutomaticTapeCreationPolicyInfo) *ListAutomaticTapeCreationPoliciesOutput {
 17572  	s.AutomaticTapeCreationPolicyInfos = v
 17573  	return s
 17574  }
 17575  
 17576  // ListFileShareInput
 17577  type ListFileSharesInput struct {
 17578  	_ struct{} `type:"structure"`
 17579  
 17580  	// The Amazon Resource Name (ARN) of the gateway whose file shares you want
 17581  	// to list. If this field is not present, all file shares under your account
 17582  	// are listed.
 17583  	GatewayARN *string `min:"50" type:"string"`
 17584  
 17585  	// The maximum number of file shares to return in the response. The value must
 17586  	// be an integer with a value greater than zero. Optional.
 17587  	Limit *int64 `min:"1" type:"integer"`
 17588  
 17589  	// Opaque pagination token returned from a previous ListFileShares operation.
 17590  	// If present, Marker specifies where to continue the list from after a previous
 17591  	// call to ListFileShares. Optional.
 17592  	Marker *string `min:"1" type:"string"`
 17593  }
 17594  
 17595  // String returns the string representation.
 17596  //
 17597  // API parameter values that are decorated as "sensitive" in the API will not
 17598  // be included in the string output. The member name will be present, but the
 17599  // value will be replaced with "sensitive".
 17600  func (s ListFileSharesInput) String() string {
 17601  	return awsutil.Prettify(s)
 17602  }
 17603  
 17604  // GoString returns the string representation.
 17605  //
 17606  // API parameter values that are decorated as "sensitive" in the API will not
 17607  // be included in the string output. The member name will be present, but the
 17608  // value will be replaced with "sensitive".
 17609  func (s ListFileSharesInput) GoString() string {
 17610  	return s.String()
 17611  }
 17612  
 17613  // Validate inspects the fields of the type to determine if they are valid.
 17614  func (s *ListFileSharesInput) Validate() error {
 17615  	invalidParams := request.ErrInvalidParams{Context: "ListFileSharesInput"}
 17616  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 17617  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 17618  	}
 17619  	if s.Limit != nil && *s.Limit < 1 {
 17620  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 17621  	}
 17622  	if s.Marker != nil && len(*s.Marker) < 1 {
 17623  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 17624  	}
 17625  
 17626  	if invalidParams.Len() > 0 {
 17627  		return invalidParams
 17628  	}
 17629  	return nil
 17630  }
 17631  
 17632  // SetGatewayARN sets the GatewayARN field's value.
 17633  func (s *ListFileSharesInput) SetGatewayARN(v string) *ListFileSharesInput {
 17634  	s.GatewayARN = &v
 17635  	return s
 17636  }
 17637  
 17638  // SetLimit sets the Limit field's value.
 17639  func (s *ListFileSharesInput) SetLimit(v int64) *ListFileSharesInput {
 17640  	s.Limit = &v
 17641  	return s
 17642  }
 17643  
 17644  // SetMarker sets the Marker field's value.
 17645  func (s *ListFileSharesInput) SetMarker(v string) *ListFileSharesInput {
 17646  	s.Marker = &v
 17647  	return s
 17648  }
 17649  
 17650  // ListFileShareOutput
 17651  type ListFileSharesOutput struct {
 17652  	_ struct{} `type:"structure"`
 17653  
 17654  	// An array of information about the S3 File Gateway's file shares.
 17655  	FileShareInfoList []*FileShareInfo `type:"list"`
 17656  
 17657  	// If the request includes Marker, the response returns that value in this field.
 17658  	Marker *string `min:"1" type:"string"`
 17659  
 17660  	// If a value is present, there are more file shares to return. In a subsequent
 17661  	// request, use NextMarker as the value for Marker to retrieve the next set
 17662  	// of file shares.
 17663  	NextMarker *string `min:"1" type:"string"`
 17664  }
 17665  
 17666  // String returns the string representation.
 17667  //
 17668  // API parameter values that are decorated as "sensitive" in the API will not
 17669  // be included in the string output. The member name will be present, but the
 17670  // value will be replaced with "sensitive".
 17671  func (s ListFileSharesOutput) String() string {
 17672  	return awsutil.Prettify(s)
 17673  }
 17674  
 17675  // GoString returns the string representation.
 17676  //
 17677  // API parameter values that are decorated as "sensitive" in the API will not
 17678  // be included in the string output. The member name will be present, but the
 17679  // value will be replaced with "sensitive".
 17680  func (s ListFileSharesOutput) GoString() string {
 17681  	return s.String()
 17682  }
 17683  
 17684  // SetFileShareInfoList sets the FileShareInfoList field's value.
 17685  func (s *ListFileSharesOutput) SetFileShareInfoList(v []*FileShareInfo) *ListFileSharesOutput {
 17686  	s.FileShareInfoList = v
 17687  	return s
 17688  }
 17689  
 17690  // SetMarker sets the Marker field's value.
 17691  func (s *ListFileSharesOutput) SetMarker(v string) *ListFileSharesOutput {
 17692  	s.Marker = &v
 17693  	return s
 17694  }
 17695  
 17696  // SetNextMarker sets the NextMarker field's value.
 17697  func (s *ListFileSharesOutput) SetNextMarker(v string) *ListFileSharesOutput {
 17698  	s.NextMarker = &v
 17699  	return s
 17700  }
 17701  
 17702  type ListFileSystemAssociationsInput struct {
 17703  	_ struct{} `type:"structure"`
 17704  
 17705  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 17706  	// to return a list of gateways for your account and Region.
 17707  	GatewayARN *string `min:"50" type:"string"`
 17708  
 17709  	// The maximum number of file system associations to return in the response.
 17710  	// If present, Limit must be an integer with a value greater than zero. Optional.
 17711  	Limit *int64 `min:"1" type:"integer"`
 17712  
 17713  	// Opaque pagination token returned from a previous ListFileSystemAssociations
 17714  	// operation. If present, Marker specifies where to continue the list from after
 17715  	// a previous call to ListFileSystemAssociations. Optional.
 17716  	Marker *string `min:"1" type:"string"`
 17717  }
 17718  
 17719  // String returns the string representation.
 17720  //
 17721  // API parameter values that are decorated as "sensitive" in the API will not
 17722  // be included in the string output. The member name will be present, but the
 17723  // value will be replaced with "sensitive".
 17724  func (s ListFileSystemAssociationsInput) String() string {
 17725  	return awsutil.Prettify(s)
 17726  }
 17727  
 17728  // GoString returns the string representation.
 17729  //
 17730  // API parameter values that are decorated as "sensitive" in the API will not
 17731  // be included in the string output. The member name will be present, but the
 17732  // value will be replaced with "sensitive".
 17733  func (s ListFileSystemAssociationsInput) GoString() string {
 17734  	return s.String()
 17735  }
 17736  
 17737  // Validate inspects the fields of the type to determine if they are valid.
 17738  func (s *ListFileSystemAssociationsInput) Validate() error {
 17739  	invalidParams := request.ErrInvalidParams{Context: "ListFileSystemAssociationsInput"}
 17740  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 17741  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 17742  	}
 17743  	if s.Limit != nil && *s.Limit < 1 {
 17744  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 17745  	}
 17746  	if s.Marker != nil && len(*s.Marker) < 1 {
 17747  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 17748  	}
 17749  
 17750  	if invalidParams.Len() > 0 {
 17751  		return invalidParams
 17752  	}
 17753  	return nil
 17754  }
 17755  
 17756  // SetGatewayARN sets the GatewayARN field's value.
 17757  func (s *ListFileSystemAssociationsInput) SetGatewayARN(v string) *ListFileSystemAssociationsInput {
 17758  	s.GatewayARN = &v
 17759  	return s
 17760  }
 17761  
 17762  // SetLimit sets the Limit field's value.
 17763  func (s *ListFileSystemAssociationsInput) SetLimit(v int64) *ListFileSystemAssociationsInput {
 17764  	s.Limit = &v
 17765  	return s
 17766  }
 17767  
 17768  // SetMarker sets the Marker field's value.
 17769  func (s *ListFileSystemAssociationsInput) SetMarker(v string) *ListFileSystemAssociationsInput {
 17770  	s.Marker = &v
 17771  	return s
 17772  }
 17773  
 17774  type ListFileSystemAssociationsOutput struct {
 17775  	_ struct{} `type:"structure"`
 17776  
 17777  	// An array of information about the Amazon FSx gateway's file system associations.
 17778  	FileSystemAssociationSummaryList []*FileSystemAssociationSummary `type:"list"`
 17779  
 17780  	// If the request includes Marker, the response returns that value in this field.
 17781  	Marker *string `min:"1" type:"string"`
 17782  
 17783  	// If a value is present, there are more file system associations to return.
 17784  	// In a subsequent request, use NextMarker as the value for Marker to retrieve
 17785  	// the next set of file system associations.
 17786  	NextMarker *string `min:"1" type:"string"`
 17787  }
 17788  
 17789  // String returns the string representation.
 17790  //
 17791  // API parameter values that are decorated as "sensitive" in the API will not
 17792  // be included in the string output. The member name will be present, but the
 17793  // value will be replaced with "sensitive".
 17794  func (s ListFileSystemAssociationsOutput) String() string {
 17795  	return awsutil.Prettify(s)
 17796  }
 17797  
 17798  // GoString returns the string representation.
 17799  //
 17800  // API parameter values that are decorated as "sensitive" in the API will not
 17801  // be included in the string output. The member name will be present, but the
 17802  // value will be replaced with "sensitive".
 17803  func (s ListFileSystemAssociationsOutput) GoString() string {
 17804  	return s.String()
 17805  }
 17806  
 17807  // SetFileSystemAssociationSummaryList sets the FileSystemAssociationSummaryList field's value.
 17808  func (s *ListFileSystemAssociationsOutput) SetFileSystemAssociationSummaryList(v []*FileSystemAssociationSummary) *ListFileSystemAssociationsOutput {
 17809  	s.FileSystemAssociationSummaryList = v
 17810  	return s
 17811  }
 17812  
 17813  // SetMarker sets the Marker field's value.
 17814  func (s *ListFileSystemAssociationsOutput) SetMarker(v string) *ListFileSystemAssociationsOutput {
 17815  	s.Marker = &v
 17816  	return s
 17817  }
 17818  
 17819  // SetNextMarker sets the NextMarker field's value.
 17820  func (s *ListFileSystemAssociationsOutput) SetNextMarker(v string) *ListFileSystemAssociationsOutput {
 17821  	s.NextMarker = &v
 17822  	return s
 17823  }
 17824  
 17825  // A JSON object containing zero or more of the following fields:
 17826  //
 17827  //    * ListGatewaysInput$Limit
 17828  //
 17829  //    * ListGatewaysInput$Marker
 17830  type ListGatewaysInput struct {
 17831  	_ struct{} `type:"structure"`
 17832  
 17833  	// Specifies that the list of gateways returned be limited to the specified
 17834  	// number of items.
 17835  	Limit *int64 `min:"1" type:"integer"`
 17836  
 17837  	// An opaque string that indicates the position at which to begin the returned
 17838  	// list of gateways.
 17839  	Marker *string `min:"1" type:"string"`
 17840  }
 17841  
 17842  // String returns the string representation.
 17843  //
 17844  // API parameter values that are decorated as "sensitive" in the API will not
 17845  // be included in the string output. The member name will be present, but the
 17846  // value will be replaced with "sensitive".
 17847  func (s ListGatewaysInput) String() string {
 17848  	return awsutil.Prettify(s)
 17849  }
 17850  
 17851  // GoString returns the string representation.
 17852  //
 17853  // API parameter values that are decorated as "sensitive" in the API will not
 17854  // be included in the string output. The member name will be present, but the
 17855  // value will be replaced with "sensitive".
 17856  func (s ListGatewaysInput) GoString() string {
 17857  	return s.String()
 17858  }
 17859  
 17860  // Validate inspects the fields of the type to determine if they are valid.
 17861  func (s *ListGatewaysInput) Validate() error {
 17862  	invalidParams := request.ErrInvalidParams{Context: "ListGatewaysInput"}
 17863  	if s.Limit != nil && *s.Limit < 1 {
 17864  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 17865  	}
 17866  	if s.Marker != nil && len(*s.Marker) < 1 {
 17867  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 17868  	}
 17869  
 17870  	if invalidParams.Len() > 0 {
 17871  		return invalidParams
 17872  	}
 17873  	return nil
 17874  }
 17875  
 17876  // SetLimit sets the Limit field's value.
 17877  func (s *ListGatewaysInput) SetLimit(v int64) *ListGatewaysInput {
 17878  	s.Limit = &v
 17879  	return s
 17880  }
 17881  
 17882  // SetMarker sets the Marker field's value.
 17883  func (s *ListGatewaysInput) SetMarker(v string) *ListGatewaysInput {
 17884  	s.Marker = &v
 17885  	return s
 17886  }
 17887  
 17888  type ListGatewaysOutput struct {
 17889  	_ struct{} `type:"structure"`
 17890  
 17891  	// An array of GatewayInfo objects.
 17892  	Gateways []*GatewayInfo `type:"list"`
 17893  
 17894  	// Use the marker in your next request to fetch the next set of gateways in
 17895  	// the list. If there are no more gateways to list, this field does not appear
 17896  	// in the response.
 17897  	Marker *string `min:"1" type:"string"`
 17898  }
 17899  
 17900  // String returns the string representation.
 17901  //
 17902  // API parameter values that are decorated as "sensitive" in the API will not
 17903  // be included in the string output. The member name will be present, but the
 17904  // value will be replaced with "sensitive".
 17905  func (s ListGatewaysOutput) String() string {
 17906  	return awsutil.Prettify(s)
 17907  }
 17908  
 17909  // GoString returns the string representation.
 17910  //
 17911  // API parameter values that are decorated as "sensitive" in the API will not
 17912  // be included in the string output. The member name will be present, but the
 17913  // value will be replaced with "sensitive".
 17914  func (s ListGatewaysOutput) GoString() string {
 17915  	return s.String()
 17916  }
 17917  
 17918  // SetGateways sets the Gateways field's value.
 17919  func (s *ListGatewaysOutput) SetGateways(v []*GatewayInfo) *ListGatewaysOutput {
 17920  	s.Gateways = v
 17921  	return s
 17922  }
 17923  
 17924  // SetMarker sets the Marker field's value.
 17925  func (s *ListGatewaysOutput) SetMarker(v string) *ListGatewaysOutput {
 17926  	s.Marker = &v
 17927  	return s
 17928  }
 17929  
 17930  // A JSON object containing the Amazon Resource Name (ARN) of the gateway.
 17931  type ListLocalDisksInput struct {
 17932  	_ struct{} `type:"structure"`
 17933  
 17934  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 17935  	// to return a list of gateways for your account and Region.
 17936  	//
 17937  	// GatewayARN is a required field
 17938  	GatewayARN *string `min:"50" type:"string" required:"true"`
 17939  }
 17940  
 17941  // String returns the string representation.
 17942  //
 17943  // API parameter values that are decorated as "sensitive" in the API will not
 17944  // be included in the string output. The member name will be present, but the
 17945  // value will be replaced with "sensitive".
 17946  func (s ListLocalDisksInput) String() string {
 17947  	return awsutil.Prettify(s)
 17948  }
 17949  
 17950  // GoString returns the string representation.
 17951  //
 17952  // API parameter values that are decorated as "sensitive" in the API will not
 17953  // be included in the string output. The member name will be present, but the
 17954  // value will be replaced with "sensitive".
 17955  func (s ListLocalDisksInput) GoString() string {
 17956  	return s.String()
 17957  }
 17958  
 17959  // Validate inspects the fields of the type to determine if they are valid.
 17960  func (s *ListLocalDisksInput) Validate() error {
 17961  	invalidParams := request.ErrInvalidParams{Context: "ListLocalDisksInput"}
 17962  	if s.GatewayARN == nil {
 17963  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 17964  	}
 17965  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 17966  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 17967  	}
 17968  
 17969  	if invalidParams.Len() > 0 {
 17970  		return invalidParams
 17971  	}
 17972  	return nil
 17973  }
 17974  
 17975  // SetGatewayARN sets the GatewayARN field's value.
 17976  func (s *ListLocalDisksInput) SetGatewayARN(v string) *ListLocalDisksInput {
 17977  	s.GatewayARN = &v
 17978  	return s
 17979  }
 17980  
 17981  type ListLocalDisksOutput struct {
 17982  	_ struct{} `type:"structure"`
 17983  
 17984  	// A JSON object containing the following fields:
 17985  	//
 17986  	//    * ListLocalDisksOutput$Disks
 17987  	Disks []*Disk `type:"list"`
 17988  
 17989  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 17990  	// to return a list of gateways for your account and Region.
 17991  	GatewayARN *string `min:"50" type:"string"`
 17992  }
 17993  
 17994  // String returns the string representation.
 17995  //
 17996  // API parameter values that are decorated as "sensitive" in the API will not
 17997  // be included in the string output. The member name will be present, but the
 17998  // value will be replaced with "sensitive".
 17999  func (s ListLocalDisksOutput) String() string {
 18000  	return awsutil.Prettify(s)
 18001  }
 18002  
 18003  // GoString returns the string representation.
 18004  //
 18005  // API parameter values that are decorated as "sensitive" in the API will not
 18006  // be included in the string output. The member name will be present, but the
 18007  // value will be replaced with "sensitive".
 18008  func (s ListLocalDisksOutput) GoString() string {
 18009  	return s.String()
 18010  }
 18011  
 18012  // SetDisks sets the Disks field's value.
 18013  func (s *ListLocalDisksOutput) SetDisks(v []*Disk) *ListLocalDisksOutput {
 18014  	s.Disks = v
 18015  	return s
 18016  }
 18017  
 18018  // SetGatewayARN sets the GatewayARN field's value.
 18019  func (s *ListLocalDisksOutput) SetGatewayARN(v string) *ListLocalDisksOutput {
 18020  	s.GatewayARN = &v
 18021  	return s
 18022  }
 18023  
 18024  // ListTagsForResourceInput
 18025  type ListTagsForResourceInput struct {
 18026  	_ struct{} `type:"structure"`
 18027  
 18028  	// Specifies that the list of tags returned be limited to the specified number
 18029  	// of items.
 18030  	Limit *int64 `min:"1" type:"integer"`
 18031  
 18032  	// An opaque string that indicates the position at which to begin returning
 18033  	// the list of tags.
 18034  	Marker *string `min:"1" type:"string"`
 18035  
 18036  	// The Amazon Resource Name (ARN) of the resource for which you want to list
 18037  	// tags.
 18038  	//
 18039  	// ResourceARN is a required field
 18040  	ResourceARN *string `min:"50" type:"string" required:"true"`
 18041  }
 18042  
 18043  // String returns the string representation.
 18044  //
 18045  // API parameter values that are decorated as "sensitive" in the API will not
 18046  // be included in the string output. The member name will be present, but the
 18047  // value will be replaced with "sensitive".
 18048  func (s ListTagsForResourceInput) String() string {
 18049  	return awsutil.Prettify(s)
 18050  }
 18051  
 18052  // GoString returns the string representation.
 18053  //
 18054  // API parameter values that are decorated as "sensitive" in the API will not
 18055  // be included in the string output. The member name will be present, but the
 18056  // value will be replaced with "sensitive".
 18057  func (s ListTagsForResourceInput) GoString() string {
 18058  	return s.String()
 18059  }
 18060  
 18061  // Validate inspects the fields of the type to determine if they are valid.
 18062  func (s *ListTagsForResourceInput) Validate() error {
 18063  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
 18064  	if s.Limit != nil && *s.Limit < 1 {
 18065  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 18066  	}
 18067  	if s.Marker != nil && len(*s.Marker) < 1 {
 18068  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 18069  	}
 18070  	if s.ResourceARN == nil {
 18071  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
 18072  	}
 18073  	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
 18074  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
 18075  	}
 18076  
 18077  	if invalidParams.Len() > 0 {
 18078  		return invalidParams
 18079  	}
 18080  	return nil
 18081  }
 18082  
 18083  // SetLimit sets the Limit field's value.
 18084  func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
 18085  	s.Limit = &v
 18086  	return s
 18087  }
 18088  
 18089  // SetMarker sets the Marker field's value.
 18090  func (s *ListTagsForResourceInput) SetMarker(v string) *ListTagsForResourceInput {
 18091  	s.Marker = &v
 18092  	return s
 18093  }
 18094  
 18095  // SetResourceARN sets the ResourceARN field's value.
 18096  func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
 18097  	s.ResourceARN = &v
 18098  	return s
 18099  }
 18100  
 18101  // ListTagsForResourceOutput
 18102  type ListTagsForResourceOutput struct {
 18103  	_ struct{} `type:"structure"`
 18104  
 18105  	// An opaque string that indicates the position at which to stop returning the
 18106  	// list of tags.
 18107  	Marker *string `min:"1" type:"string"`
 18108  
 18109  	// The Amazon Resource Name (ARN) of the resource for which you want to list
 18110  	// tags.
 18111  	ResourceARN *string `min:"50" type:"string"`
 18112  
 18113  	// An array that contains the tags for the specified resource.
 18114  	Tags []*Tag `type:"list"`
 18115  }
 18116  
 18117  // String returns the string representation.
 18118  //
 18119  // API parameter values that are decorated as "sensitive" in the API will not
 18120  // be included in the string output. The member name will be present, but the
 18121  // value will be replaced with "sensitive".
 18122  func (s ListTagsForResourceOutput) String() string {
 18123  	return awsutil.Prettify(s)
 18124  }
 18125  
 18126  // GoString returns the string representation.
 18127  //
 18128  // API parameter values that are decorated as "sensitive" in the API will not
 18129  // be included in the string output. The member name will be present, but the
 18130  // value will be replaced with "sensitive".
 18131  func (s ListTagsForResourceOutput) GoString() string {
 18132  	return s.String()
 18133  }
 18134  
 18135  // SetMarker sets the Marker field's value.
 18136  func (s *ListTagsForResourceOutput) SetMarker(v string) *ListTagsForResourceOutput {
 18137  	s.Marker = &v
 18138  	return s
 18139  }
 18140  
 18141  // SetResourceARN sets the ResourceARN field's value.
 18142  func (s *ListTagsForResourceOutput) SetResourceARN(v string) *ListTagsForResourceOutput {
 18143  	s.ResourceARN = &v
 18144  	return s
 18145  }
 18146  
 18147  // SetTags sets the Tags field's value.
 18148  func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
 18149  	s.Tags = v
 18150  	return s
 18151  }
 18152  
 18153  type ListTapePoolsInput struct {
 18154  	_ struct{} `type:"structure"`
 18155  
 18156  	// An optional number limit for the tape pools in the list returned by this
 18157  	// call.
 18158  	Limit *int64 `min:"1" type:"integer"`
 18159  
 18160  	// A string that indicates the position at which to begin the returned list
 18161  	// of tape pools.
 18162  	Marker *string `min:"1" type:"string"`
 18163  
 18164  	// The Amazon Resource Name (ARN) of each of the custom tape pools you want
 18165  	// to list. If you don't specify a custom tape pool ARN, the response lists
 18166  	// all custom tape pools.
 18167  	PoolARNs []*string `type:"list"`
 18168  }
 18169  
 18170  // String returns the string representation.
 18171  //
 18172  // API parameter values that are decorated as "sensitive" in the API will not
 18173  // be included in the string output. The member name will be present, but the
 18174  // value will be replaced with "sensitive".
 18175  func (s ListTapePoolsInput) String() string {
 18176  	return awsutil.Prettify(s)
 18177  }
 18178  
 18179  // GoString returns the string representation.
 18180  //
 18181  // API parameter values that are decorated as "sensitive" in the API will not
 18182  // be included in the string output. The member name will be present, but the
 18183  // value will be replaced with "sensitive".
 18184  func (s ListTapePoolsInput) GoString() string {
 18185  	return s.String()
 18186  }
 18187  
 18188  // Validate inspects the fields of the type to determine if they are valid.
 18189  func (s *ListTapePoolsInput) Validate() error {
 18190  	invalidParams := request.ErrInvalidParams{Context: "ListTapePoolsInput"}
 18191  	if s.Limit != nil && *s.Limit < 1 {
 18192  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 18193  	}
 18194  	if s.Marker != nil && len(*s.Marker) < 1 {
 18195  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 18196  	}
 18197  
 18198  	if invalidParams.Len() > 0 {
 18199  		return invalidParams
 18200  	}
 18201  	return nil
 18202  }
 18203  
 18204  // SetLimit sets the Limit field's value.
 18205  func (s *ListTapePoolsInput) SetLimit(v int64) *ListTapePoolsInput {
 18206  	s.Limit = &v
 18207  	return s
 18208  }
 18209  
 18210  // SetMarker sets the Marker field's value.
 18211  func (s *ListTapePoolsInput) SetMarker(v string) *ListTapePoolsInput {
 18212  	s.Marker = &v
 18213  	return s
 18214  }
 18215  
 18216  // SetPoolARNs sets the PoolARNs field's value.
 18217  func (s *ListTapePoolsInput) SetPoolARNs(v []*string) *ListTapePoolsInput {
 18218  	s.PoolARNs = v
 18219  	return s
 18220  }
 18221  
 18222  type ListTapePoolsOutput struct {
 18223  	_ struct{} `type:"structure"`
 18224  
 18225  	// A string that indicates the position at which to begin the returned list
 18226  	// of tape pools. Use the marker in your next request to continue pagination
 18227  	// of tape pools. If there are no more tape pools to list, this element does
 18228  	// not appear in the response body.
 18229  	Marker *string `min:"1" type:"string"`
 18230  
 18231  	// An array of PoolInfo objects, where each object describes a single custom
 18232  	// tape pool. If there are no custom tape pools, the PoolInfos is an empty array.
 18233  	PoolInfos []*PoolInfo `type:"list"`
 18234  }
 18235  
 18236  // String returns the string representation.
 18237  //
 18238  // API parameter values that are decorated as "sensitive" in the API will not
 18239  // be included in the string output. The member name will be present, but the
 18240  // value will be replaced with "sensitive".
 18241  func (s ListTapePoolsOutput) String() string {
 18242  	return awsutil.Prettify(s)
 18243  }
 18244  
 18245  // GoString returns the string representation.
 18246  //
 18247  // API parameter values that are decorated as "sensitive" in the API will not
 18248  // be included in the string output. The member name will be present, but the
 18249  // value will be replaced with "sensitive".
 18250  func (s ListTapePoolsOutput) GoString() string {
 18251  	return s.String()
 18252  }
 18253  
 18254  // SetMarker sets the Marker field's value.
 18255  func (s *ListTapePoolsOutput) SetMarker(v string) *ListTapePoolsOutput {
 18256  	s.Marker = &v
 18257  	return s
 18258  }
 18259  
 18260  // SetPoolInfos sets the PoolInfos field's value.
 18261  func (s *ListTapePoolsOutput) SetPoolInfos(v []*PoolInfo) *ListTapePoolsOutput {
 18262  	s.PoolInfos = v
 18263  	return s
 18264  }
 18265  
 18266  // A JSON object that contains one or more of the following fields:
 18267  //
 18268  //    * ListTapesInput$Limit
 18269  //
 18270  //    * ListTapesInput$Marker
 18271  //
 18272  //    * ListTapesInput$TapeARNs
 18273  type ListTapesInput struct {
 18274  	_ struct{} `type:"structure"`
 18275  
 18276  	// An optional number limit for the tapes in the list returned by this call.
 18277  	Limit *int64 `min:"1" type:"integer"`
 18278  
 18279  	// A string that indicates the position at which to begin the returned list
 18280  	// of tapes.
 18281  	Marker *string `min:"1" type:"string"`
 18282  
 18283  	// The Amazon Resource Name (ARN) of each of the tapes you want to list. If
 18284  	// you don't specify a tape ARN, the response lists all tapes in both your VTL
 18285  	// and VTS.
 18286  	TapeARNs []*string `type:"list"`
 18287  }
 18288  
 18289  // String returns the string representation.
 18290  //
 18291  // API parameter values that are decorated as "sensitive" in the API will not
 18292  // be included in the string output. The member name will be present, but the
 18293  // value will be replaced with "sensitive".
 18294  func (s ListTapesInput) String() string {
 18295  	return awsutil.Prettify(s)
 18296  }
 18297  
 18298  // GoString returns the string representation.
 18299  //
 18300  // API parameter values that are decorated as "sensitive" in the API will not
 18301  // be included in the string output. The member name will be present, but the
 18302  // value will be replaced with "sensitive".
 18303  func (s ListTapesInput) GoString() string {
 18304  	return s.String()
 18305  }
 18306  
 18307  // Validate inspects the fields of the type to determine if they are valid.
 18308  func (s *ListTapesInput) Validate() error {
 18309  	invalidParams := request.ErrInvalidParams{Context: "ListTapesInput"}
 18310  	if s.Limit != nil && *s.Limit < 1 {
 18311  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 18312  	}
 18313  	if s.Marker != nil && len(*s.Marker) < 1 {
 18314  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 18315  	}
 18316  
 18317  	if invalidParams.Len() > 0 {
 18318  		return invalidParams
 18319  	}
 18320  	return nil
 18321  }
 18322  
 18323  // SetLimit sets the Limit field's value.
 18324  func (s *ListTapesInput) SetLimit(v int64) *ListTapesInput {
 18325  	s.Limit = &v
 18326  	return s
 18327  }
 18328  
 18329  // SetMarker sets the Marker field's value.
 18330  func (s *ListTapesInput) SetMarker(v string) *ListTapesInput {
 18331  	s.Marker = &v
 18332  	return s
 18333  }
 18334  
 18335  // SetTapeARNs sets the TapeARNs field's value.
 18336  func (s *ListTapesInput) SetTapeARNs(v []*string) *ListTapesInput {
 18337  	s.TapeARNs = v
 18338  	return s
 18339  }
 18340  
 18341  // A JSON object containing the following fields:
 18342  //
 18343  //    * ListTapesOutput$Marker
 18344  //
 18345  //    * ListTapesOutput$VolumeInfos
 18346  type ListTapesOutput struct {
 18347  	_ struct{} `type:"structure"`
 18348  
 18349  	// A string that indicates the position at which to begin returning the next
 18350  	// list of tapes. Use the marker in your next request to continue pagination
 18351  	// of tapes. If there are no more tapes to list, this element does not appear
 18352  	// in the response body.
 18353  	Marker *string `min:"1" type:"string"`
 18354  
 18355  	// An array of TapeInfo objects, where each object describes a single tape.
 18356  	// If there are no tapes in the tape library or VTS, then the TapeInfos is an
 18357  	// empty array.
 18358  	TapeInfos []*TapeInfo `type:"list"`
 18359  }
 18360  
 18361  // String returns the string representation.
 18362  //
 18363  // API parameter values that are decorated as "sensitive" in the API will not
 18364  // be included in the string output. The member name will be present, but the
 18365  // value will be replaced with "sensitive".
 18366  func (s ListTapesOutput) String() string {
 18367  	return awsutil.Prettify(s)
 18368  }
 18369  
 18370  // GoString returns the string representation.
 18371  //
 18372  // API parameter values that are decorated as "sensitive" in the API will not
 18373  // be included in the string output. The member name will be present, but the
 18374  // value will be replaced with "sensitive".
 18375  func (s ListTapesOutput) GoString() string {
 18376  	return s.String()
 18377  }
 18378  
 18379  // SetMarker sets the Marker field's value.
 18380  func (s *ListTapesOutput) SetMarker(v string) *ListTapesOutput {
 18381  	s.Marker = &v
 18382  	return s
 18383  }
 18384  
 18385  // SetTapeInfos sets the TapeInfos field's value.
 18386  func (s *ListTapesOutput) SetTapeInfos(v []*TapeInfo) *ListTapesOutput {
 18387  	s.TapeInfos = v
 18388  	return s
 18389  }
 18390  
 18391  // ListVolumeInitiatorsInput
 18392  type ListVolumeInitiatorsInput struct {
 18393  	_ struct{} `type:"structure"`
 18394  
 18395  	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
 18396  	// to return a list of gateway volumes for the gateway.
 18397  	//
 18398  	// VolumeARN is a required field
 18399  	VolumeARN *string `min:"50" type:"string" required:"true"`
 18400  }
 18401  
 18402  // String returns the string representation.
 18403  //
 18404  // API parameter values that are decorated as "sensitive" in the API will not
 18405  // be included in the string output. The member name will be present, but the
 18406  // value will be replaced with "sensitive".
 18407  func (s ListVolumeInitiatorsInput) String() string {
 18408  	return awsutil.Prettify(s)
 18409  }
 18410  
 18411  // GoString returns the string representation.
 18412  //
 18413  // API parameter values that are decorated as "sensitive" in the API will not
 18414  // be included in the string output. The member name will be present, but the
 18415  // value will be replaced with "sensitive".
 18416  func (s ListVolumeInitiatorsInput) GoString() string {
 18417  	return s.String()
 18418  }
 18419  
 18420  // Validate inspects the fields of the type to determine if they are valid.
 18421  func (s *ListVolumeInitiatorsInput) Validate() error {
 18422  	invalidParams := request.ErrInvalidParams{Context: "ListVolumeInitiatorsInput"}
 18423  	if s.VolumeARN == nil {
 18424  		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
 18425  	}
 18426  	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
 18427  		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
 18428  	}
 18429  
 18430  	if invalidParams.Len() > 0 {
 18431  		return invalidParams
 18432  	}
 18433  	return nil
 18434  }
 18435  
 18436  // SetVolumeARN sets the VolumeARN field's value.
 18437  func (s *ListVolumeInitiatorsInput) SetVolumeARN(v string) *ListVolumeInitiatorsInput {
 18438  	s.VolumeARN = &v
 18439  	return s
 18440  }
 18441  
 18442  // ListVolumeInitiatorsOutput
 18443  type ListVolumeInitiatorsOutput struct {
 18444  	_ struct{} `type:"structure"`
 18445  
 18446  	// The host names and port numbers of all iSCSI initiators that are connected
 18447  	// to the gateway.
 18448  	Initiators []*string `type:"list"`
 18449  }
 18450  
 18451  // String returns the string representation.
 18452  //
 18453  // API parameter values that are decorated as "sensitive" in the API will not
 18454  // be included in the string output. The member name will be present, but the
 18455  // value will be replaced with "sensitive".
 18456  func (s ListVolumeInitiatorsOutput) String() string {
 18457  	return awsutil.Prettify(s)
 18458  }
 18459  
 18460  // GoString returns the string representation.
 18461  //
 18462  // API parameter values that are decorated as "sensitive" in the API will not
 18463  // be included in the string output. The member name will be present, but the
 18464  // value will be replaced with "sensitive".
 18465  func (s ListVolumeInitiatorsOutput) GoString() string {
 18466  	return s.String()
 18467  }
 18468  
 18469  // SetInitiators sets the Initiators field's value.
 18470  func (s *ListVolumeInitiatorsOutput) SetInitiators(v []*string) *ListVolumeInitiatorsOutput {
 18471  	s.Initiators = v
 18472  	return s
 18473  }
 18474  
 18475  type ListVolumeRecoveryPointsInput struct {
 18476  	_ struct{} `type:"structure"`
 18477  
 18478  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 18479  	// to return a list of gateways for your account and Region.
 18480  	//
 18481  	// GatewayARN is a required field
 18482  	GatewayARN *string `min:"50" type:"string" required:"true"`
 18483  }
 18484  
 18485  // String returns the string representation.
 18486  //
 18487  // API parameter values that are decorated as "sensitive" in the API will not
 18488  // be included in the string output. The member name will be present, but the
 18489  // value will be replaced with "sensitive".
 18490  func (s ListVolumeRecoveryPointsInput) String() string {
 18491  	return awsutil.Prettify(s)
 18492  }
 18493  
 18494  // GoString returns the string representation.
 18495  //
 18496  // API parameter values that are decorated as "sensitive" in the API will not
 18497  // be included in the string output. The member name will be present, but the
 18498  // value will be replaced with "sensitive".
 18499  func (s ListVolumeRecoveryPointsInput) GoString() string {
 18500  	return s.String()
 18501  }
 18502  
 18503  // Validate inspects the fields of the type to determine if they are valid.
 18504  func (s *ListVolumeRecoveryPointsInput) Validate() error {
 18505  	invalidParams := request.ErrInvalidParams{Context: "ListVolumeRecoveryPointsInput"}
 18506  	if s.GatewayARN == nil {
 18507  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 18508  	}
 18509  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 18510  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 18511  	}
 18512  
 18513  	if invalidParams.Len() > 0 {
 18514  		return invalidParams
 18515  	}
 18516  	return nil
 18517  }
 18518  
 18519  // SetGatewayARN sets the GatewayARN field's value.
 18520  func (s *ListVolumeRecoveryPointsInput) SetGatewayARN(v string) *ListVolumeRecoveryPointsInput {
 18521  	s.GatewayARN = &v
 18522  	return s
 18523  }
 18524  
 18525  type ListVolumeRecoveryPointsOutput struct {
 18526  	_ struct{} `type:"structure"`
 18527  
 18528  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 18529  	// to return a list of gateways for your account and Region.
 18530  	GatewayARN *string `min:"50" type:"string"`
 18531  
 18532  	// An array of VolumeRecoveryPointInfo objects.
 18533  	VolumeRecoveryPointInfos []*VolumeRecoveryPointInfo `type:"list"`
 18534  }
 18535  
 18536  // String returns the string representation.
 18537  //
 18538  // API parameter values that are decorated as "sensitive" in the API will not
 18539  // be included in the string output. The member name will be present, but the
 18540  // value will be replaced with "sensitive".
 18541  func (s ListVolumeRecoveryPointsOutput) String() string {
 18542  	return awsutil.Prettify(s)
 18543  }
 18544  
 18545  // GoString returns the string representation.
 18546  //
 18547  // API parameter values that are decorated as "sensitive" in the API will not
 18548  // be included in the string output. The member name will be present, but the
 18549  // value will be replaced with "sensitive".
 18550  func (s ListVolumeRecoveryPointsOutput) GoString() string {
 18551  	return s.String()
 18552  }
 18553  
 18554  // SetGatewayARN sets the GatewayARN field's value.
 18555  func (s *ListVolumeRecoveryPointsOutput) SetGatewayARN(v string) *ListVolumeRecoveryPointsOutput {
 18556  	s.GatewayARN = &v
 18557  	return s
 18558  }
 18559  
 18560  // SetVolumeRecoveryPointInfos sets the VolumeRecoveryPointInfos field's value.
 18561  func (s *ListVolumeRecoveryPointsOutput) SetVolumeRecoveryPointInfos(v []*VolumeRecoveryPointInfo) *ListVolumeRecoveryPointsOutput {
 18562  	s.VolumeRecoveryPointInfos = v
 18563  	return s
 18564  }
 18565  
 18566  // A JSON object that contains one or more of the following fields:
 18567  //
 18568  //    * ListVolumesInput$Limit
 18569  //
 18570  //    * ListVolumesInput$Marker
 18571  type ListVolumesInput struct {
 18572  	_ struct{} `type:"structure"`
 18573  
 18574  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 18575  	// to return a list of gateways for your account and Region.
 18576  	GatewayARN *string `min:"50" type:"string"`
 18577  
 18578  	// Specifies that the list of volumes returned be limited to the specified number
 18579  	// of items.
 18580  	Limit *int64 `min:"1" type:"integer"`
 18581  
 18582  	// A string that indicates the position at which to begin the returned list
 18583  	// of volumes. Obtain the marker from the response of a previous List iSCSI
 18584  	// Volumes request.
 18585  	Marker *string `min:"1" type:"string"`
 18586  }
 18587  
 18588  // String returns the string representation.
 18589  //
 18590  // API parameter values that are decorated as "sensitive" in the API will not
 18591  // be included in the string output. The member name will be present, but the
 18592  // value will be replaced with "sensitive".
 18593  func (s ListVolumesInput) String() string {
 18594  	return awsutil.Prettify(s)
 18595  }
 18596  
 18597  // GoString returns the string representation.
 18598  //
 18599  // API parameter values that are decorated as "sensitive" in the API will not
 18600  // be included in the string output. The member name will be present, but the
 18601  // value will be replaced with "sensitive".
 18602  func (s ListVolumesInput) GoString() string {
 18603  	return s.String()
 18604  }
 18605  
 18606  // Validate inspects the fields of the type to determine if they are valid.
 18607  func (s *ListVolumesInput) Validate() error {
 18608  	invalidParams := request.ErrInvalidParams{Context: "ListVolumesInput"}
 18609  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 18610  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 18611  	}
 18612  	if s.Limit != nil && *s.Limit < 1 {
 18613  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
 18614  	}
 18615  	if s.Marker != nil && len(*s.Marker) < 1 {
 18616  		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
 18617  	}
 18618  
 18619  	if invalidParams.Len() > 0 {
 18620  		return invalidParams
 18621  	}
 18622  	return nil
 18623  }
 18624  
 18625  // SetGatewayARN sets the GatewayARN field's value.
 18626  func (s *ListVolumesInput) SetGatewayARN(v string) *ListVolumesInput {
 18627  	s.GatewayARN = &v
 18628  	return s
 18629  }
 18630  
 18631  // SetLimit sets the Limit field's value.
 18632  func (s *ListVolumesInput) SetLimit(v int64) *ListVolumesInput {
 18633  	s.Limit = &v
 18634  	return s
 18635  }
 18636  
 18637  // SetMarker sets the Marker field's value.
 18638  func (s *ListVolumesInput) SetMarker(v string) *ListVolumesInput {
 18639  	s.Marker = &v
 18640  	return s
 18641  }
 18642  
 18643  // A JSON object containing the following fields:
 18644  //
 18645  //    * ListVolumesOutput$Marker
 18646  //
 18647  //    * ListVolumesOutput$VolumeInfos
 18648  type ListVolumesOutput struct {
 18649  	_ struct{} `type:"structure"`
 18650  
 18651  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 18652  	// to return a list of gateways for your account and Region.
 18653  	GatewayARN *string `min:"50" type:"string"`
 18654  
 18655  	// Use the marker in your next request to continue pagination of iSCSI volumes.
 18656  	// If there are no more volumes to list, this field does not appear in the response
 18657  	// body.
 18658  	Marker *string `min:"1" type:"string"`
 18659  
 18660  	// An array of VolumeInfo objects, where each object describes an iSCSI volume.
 18661  	// If no volumes are defined for the gateway, then VolumeInfos is an empty array
 18662  	// "[]".
 18663  	VolumeInfos []*VolumeInfo `type:"list"`
 18664  }
 18665  
 18666  // String returns the string representation.
 18667  //
 18668  // API parameter values that are decorated as "sensitive" in the API will not
 18669  // be included in the string output. The member name will be present, but the
 18670  // value will be replaced with "sensitive".
 18671  func (s ListVolumesOutput) String() string {
 18672  	return awsutil.Prettify(s)
 18673  }
 18674  
 18675  // GoString returns the string representation.
 18676  //
 18677  // API parameter values that are decorated as "sensitive" in the API will not
 18678  // be included in the string output. The member name will be present, but the
 18679  // value will be replaced with "sensitive".
 18680  func (s ListVolumesOutput) GoString() string {
 18681  	return s.String()
 18682  }
 18683  
 18684  // SetGatewayARN sets the GatewayARN field's value.
 18685  func (s *ListVolumesOutput) SetGatewayARN(v string) *ListVolumesOutput {
 18686  	s.GatewayARN = &v
 18687  	return s
 18688  }
 18689  
 18690  // SetMarker sets the Marker field's value.
 18691  func (s *ListVolumesOutput) SetMarker(v string) *ListVolumesOutput {
 18692  	s.Marker = &v
 18693  	return s
 18694  }
 18695  
 18696  // SetVolumeInfos sets the VolumeInfos field's value.
 18697  func (s *ListVolumesOutput) SetVolumeInfos(v []*VolumeInfo) *ListVolumesOutput {
 18698  	s.VolumeInfos = v
 18699  	return s
 18700  }
 18701  
 18702  // Describes Network File System (NFS) file share default values. Files and
 18703  // folders stored as Amazon S3 objects in S3 buckets don't, by default, have
 18704  // Unix file permissions assigned to them. Upon discovery in an S3 bucket by
 18705  // Storage Gateway, the S3 objects that represent files and folders are assigned
 18706  // these default Unix permissions. This operation is only supported for S3 File
 18707  // Gateways.
 18708  type NFSFileShareDefaults struct {
 18709  	_ struct{} `type:"structure"`
 18710  
 18711  	// The Unix directory mode in the form "nnnn". For example, 0666 represents
 18712  	// the default access mode for all directories inside the file share. The default
 18713  	// value is 0777.
 18714  	DirectoryMode *string `min:"1" type:"string"`
 18715  
 18716  	// The Unix file mode in the form "nnnn". For example, 0666 represents the default
 18717  	// file mode inside the file share. The default value is 0666.
 18718  	FileMode *string `min:"1" type:"string"`
 18719  
 18720  	// The default group ID for the file share (unless the files have another group
 18721  	// ID specified). The default value is nfsnobody.
 18722  	GroupId *int64 `type:"long"`
 18723  
 18724  	// The default owner ID for files in the file share (unless the files have another
 18725  	// owner ID specified). The default value is nfsnobody.
 18726  	OwnerId *int64 `type:"long"`
 18727  }
 18728  
 18729  // String returns the string representation.
 18730  //
 18731  // API parameter values that are decorated as "sensitive" in the API will not
 18732  // be included in the string output. The member name will be present, but the
 18733  // value will be replaced with "sensitive".
 18734  func (s NFSFileShareDefaults) String() string {
 18735  	return awsutil.Prettify(s)
 18736  }
 18737  
 18738  // GoString returns the string representation.
 18739  //
 18740  // API parameter values that are decorated as "sensitive" in the API will not
 18741  // be included in the string output. The member name will be present, but the
 18742  // value will be replaced with "sensitive".
 18743  func (s NFSFileShareDefaults) GoString() string {
 18744  	return s.String()
 18745  }
 18746  
 18747  // Validate inspects the fields of the type to determine if they are valid.
 18748  func (s *NFSFileShareDefaults) Validate() error {
 18749  	invalidParams := request.ErrInvalidParams{Context: "NFSFileShareDefaults"}
 18750  	if s.DirectoryMode != nil && len(*s.DirectoryMode) < 1 {
 18751  		invalidParams.Add(request.NewErrParamMinLen("DirectoryMode", 1))
 18752  	}
 18753  	if s.FileMode != nil && len(*s.FileMode) < 1 {
 18754  		invalidParams.Add(request.NewErrParamMinLen("FileMode", 1))
 18755  	}
 18756  
 18757  	if invalidParams.Len() > 0 {
 18758  		return invalidParams
 18759  	}
 18760  	return nil
 18761  }
 18762  
 18763  // SetDirectoryMode sets the DirectoryMode field's value.
 18764  func (s *NFSFileShareDefaults) SetDirectoryMode(v string) *NFSFileShareDefaults {
 18765  	s.DirectoryMode = &v
 18766  	return s
 18767  }
 18768  
 18769  // SetFileMode sets the FileMode field's value.
 18770  func (s *NFSFileShareDefaults) SetFileMode(v string) *NFSFileShareDefaults {
 18771  	s.FileMode = &v
 18772  	return s
 18773  }
 18774  
 18775  // SetGroupId sets the GroupId field's value.
 18776  func (s *NFSFileShareDefaults) SetGroupId(v int64) *NFSFileShareDefaults {
 18777  	s.GroupId = &v
 18778  	return s
 18779  }
 18780  
 18781  // SetOwnerId sets the OwnerId field's value.
 18782  func (s *NFSFileShareDefaults) SetOwnerId(v int64) *NFSFileShareDefaults {
 18783  	s.OwnerId = &v
 18784  	return s
 18785  }
 18786  
 18787  // The Unix file permissions and ownership information assigned, by default,
 18788  // to native S3 objects when an S3 File Gateway discovers them in S3 buckets.
 18789  // This operation is only supported in S3 File Gateways.
 18790  type NFSFileShareInfo struct {
 18791  	_ struct{} `type:"structure"`
 18792  
 18793  	// Specifies the Region of the S3 bucket where the NFS file share stores files.
 18794  	//
 18795  	// This parameter is required for NFS file shares that connect to Amazon S3
 18796  	// through a VPC endpoint, a VPC access point, or an access point alias that
 18797  	// points to a VPC access point.
 18798  	BucketRegion *string `min:"1" type:"string"`
 18799  
 18800  	// Refresh cache information for the file share.
 18801  	CacheAttributes *CacheAttributes `type:"structure"`
 18802  
 18803  	// The list of clients that are allowed to access the S3 File Gateway. The list
 18804  	// must contain either valid IP addresses or valid CIDR blocks.
 18805  	ClientList []*string `min:"1" type:"list"`
 18806  
 18807  	// The default storage class for objects put into an Amazon S3 bucket by the
 18808  	// S3 File Gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
 18809  	//
 18810  	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
 18811  	DefaultStorageClass *string `min:"5" type:"string"`
 18812  
 18813  	// The Amazon Resource Name (ARN) of the file share.
 18814  	FileShareARN *string `min:"50" type:"string"`
 18815  
 18816  	// The ID of the file share.
 18817  	FileShareId *string `min:"12" type:"string"`
 18818  
 18819  	// The name of the file share. Optional.
 18820  	//
 18821  	// FileShareName must be set if an S3 prefix name is set in LocationARN.
 18822  	FileShareName *string `min:"1" type:"string"`
 18823  
 18824  	// The status of the file share.
 18825  	//
 18826  	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
 18827  	FileShareStatus *string `min:"3" type:"string"`
 18828  
 18829  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 18830  	// to return a list of gateways for your account and Region.
 18831  	GatewayARN *string `min:"50" type:"string"`
 18832  
 18833  	// A value that enables guessing of the MIME type for uploaded objects based
 18834  	// on file extensions. Set this value to true to enable MIME type guessing,
 18835  	// otherwise set to false. The default value is true.
 18836  	//
 18837  	// Valid Values: true | false
 18838  	GuessMIMETypeEnabled *bool `type:"boolean"`
 18839  
 18840  	// Set to true to use Amazon S3 server-side encryption with your own KMS key,
 18841  	// or false to use a key managed by Amazon S3. Optional.
 18842  	//
 18843  	// Valid Values: true | false
 18844  	KMSEncrypted *bool `type:"boolean"`
 18845  
 18846  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 18847  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 18848  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 18849  	KMSKey *string `min:"7" type:"string"`
 18850  
 18851  	// The ARN of the backend storage used for storing file data. A prefix name
 18852  	// can be added to the S3 bucket name. It must end with a "/".
 18853  	LocationARN *string `min:"16" type:"string"`
 18854  
 18855  	// Describes Network File System (NFS) file share default values. Files and
 18856  	// folders stored as Amazon S3 objects in S3 buckets don't, by default, have
 18857  	// Unix file permissions assigned to them. Upon discovery in an S3 bucket by
 18858  	// Storage Gateway, the S3 objects that represent files and folders are assigned
 18859  	// these default Unix permissions. This operation is only supported for S3 File
 18860  	// Gateways.
 18861  	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
 18862  
 18863  	// The notification policy of the file share. SettlingTimeInSeconds controls
 18864  	// the number of seconds to wait after the last point in time a client wrote
 18865  	// to a file before generating an ObjectUploaded notification. Because clients
 18866  	// can make many small writes to files, it's best to set this parameter for
 18867  	// as long as possible to avoid generating multiple notifications for the same
 18868  	// file in a small time period.
 18869  	//
 18870  	// SettlingTimeInSeconds has no effect on the timing of the object uploading
 18871  	// to Amazon S3, only the timing of the notification.
 18872  	//
 18873  	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
 18874  	// set to 60.
 18875  	//
 18876  	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
 18877  	//
 18878  	// The following example sets NotificationPolicy off.
 18879  	//
 18880  	// {}
 18881  	NotificationPolicy *string `min:"2" type:"string"`
 18882  
 18883  	// A value that sets the access control list (ACL) permission for objects in
 18884  	// the S3 bucket that an S3 File Gateway puts objects into. The default value
 18885  	// is private.
 18886  	ObjectACL *string `type:"string" enum:"ObjectACL"`
 18887  
 18888  	// The file share path used by the NFS client to identify the mount point.
 18889  	Path *string `type:"string"`
 18890  
 18891  	// A value that sets the write status of a file share. Set this value to true
 18892  	// to set the write status to read-only, otherwise set to false.
 18893  	//
 18894  	// Valid Values: true | false
 18895  	ReadOnly *bool `type:"boolean"`
 18896  
 18897  	// A value that sets who pays the cost of the request and the cost associated
 18898  	// with data download from the S3 bucket. If this value is set to true, the
 18899  	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
 18900  	// S3 bucket owner always pays the cost of storing data.
 18901  	//
 18902  	// RequesterPays is a configuration for the S3 bucket that backs the file share,
 18903  	// so make sure that the configuration on the file share is the same as the
 18904  	// S3 bucket configuration.
 18905  	//
 18906  	// Valid Values: true | false
 18907  	RequesterPays *bool `type:"boolean"`
 18908  
 18909  	// The ARN of the IAM role that an S3 File Gateway assumes when it accesses
 18910  	// the underlying storage.
 18911  	Role *string `min:"20" type:"string"`
 18912  
 18913  	// The user mapped to anonymous user. Valid options are the following:
 18914  	//
 18915  	//    * RootSquash: Only root is mapped to anonymous user.
 18916  	//
 18917  	//    * NoSquash: No one is mapped to anonymous user.
 18918  	//
 18919  	//    * AllSquash: Everyone is mapped to anonymous user.
 18920  	Squash *string `min:"5" type:"string"`
 18921  
 18922  	// A list of up to 50 tags assigned to the NFS file share, sorted alphabetically
 18923  	// by key name. Each tag is a key-value pair. For a gateway with more than 10
 18924  	// tags assigned, you can view all tags using the ListTagsForResource API operation.
 18925  	Tags []*Tag `type:"list"`
 18926  
 18927  	// Specifies the DNS name for the VPC endpoint that the NFS file share uses
 18928  	// to connect to Amazon S3.
 18929  	//
 18930  	// This parameter is required for NFS file shares that connect to Amazon S3
 18931  	// through a VPC endpoint, a VPC access point, or an access point alias that
 18932  	// points to a VPC access point.
 18933  	VPCEndpointDNSName *string `min:"1" type:"string"`
 18934  }
 18935  
 18936  // String returns the string representation.
 18937  //
 18938  // API parameter values that are decorated as "sensitive" in the API will not
 18939  // be included in the string output. The member name will be present, but the
 18940  // value will be replaced with "sensitive".
 18941  func (s NFSFileShareInfo) String() string {
 18942  	return awsutil.Prettify(s)
 18943  }
 18944  
 18945  // GoString returns the string representation.
 18946  //
 18947  // API parameter values that are decorated as "sensitive" in the API will not
 18948  // be included in the string output. The member name will be present, but the
 18949  // value will be replaced with "sensitive".
 18950  func (s NFSFileShareInfo) GoString() string {
 18951  	return s.String()
 18952  }
 18953  
 18954  // SetBucketRegion sets the BucketRegion field's value.
 18955  func (s *NFSFileShareInfo) SetBucketRegion(v string) *NFSFileShareInfo {
 18956  	s.BucketRegion = &v
 18957  	return s
 18958  }
 18959  
 18960  // SetCacheAttributes sets the CacheAttributes field's value.
 18961  func (s *NFSFileShareInfo) SetCacheAttributes(v *CacheAttributes) *NFSFileShareInfo {
 18962  	s.CacheAttributes = v
 18963  	return s
 18964  }
 18965  
 18966  // SetClientList sets the ClientList field's value.
 18967  func (s *NFSFileShareInfo) SetClientList(v []*string) *NFSFileShareInfo {
 18968  	s.ClientList = v
 18969  	return s
 18970  }
 18971  
 18972  // SetDefaultStorageClass sets the DefaultStorageClass field's value.
 18973  func (s *NFSFileShareInfo) SetDefaultStorageClass(v string) *NFSFileShareInfo {
 18974  	s.DefaultStorageClass = &v
 18975  	return s
 18976  }
 18977  
 18978  // SetFileShareARN sets the FileShareARN field's value.
 18979  func (s *NFSFileShareInfo) SetFileShareARN(v string) *NFSFileShareInfo {
 18980  	s.FileShareARN = &v
 18981  	return s
 18982  }
 18983  
 18984  // SetFileShareId sets the FileShareId field's value.
 18985  func (s *NFSFileShareInfo) SetFileShareId(v string) *NFSFileShareInfo {
 18986  	s.FileShareId = &v
 18987  	return s
 18988  }
 18989  
 18990  // SetFileShareName sets the FileShareName field's value.
 18991  func (s *NFSFileShareInfo) SetFileShareName(v string) *NFSFileShareInfo {
 18992  	s.FileShareName = &v
 18993  	return s
 18994  }
 18995  
 18996  // SetFileShareStatus sets the FileShareStatus field's value.
 18997  func (s *NFSFileShareInfo) SetFileShareStatus(v string) *NFSFileShareInfo {
 18998  	s.FileShareStatus = &v
 18999  	return s
 19000  }
 19001  
 19002  // SetGatewayARN sets the GatewayARN field's value.
 19003  func (s *NFSFileShareInfo) SetGatewayARN(v string) *NFSFileShareInfo {
 19004  	s.GatewayARN = &v
 19005  	return s
 19006  }
 19007  
 19008  // SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
 19009  func (s *NFSFileShareInfo) SetGuessMIMETypeEnabled(v bool) *NFSFileShareInfo {
 19010  	s.GuessMIMETypeEnabled = &v
 19011  	return s
 19012  }
 19013  
 19014  // SetKMSEncrypted sets the KMSEncrypted field's value.
 19015  func (s *NFSFileShareInfo) SetKMSEncrypted(v bool) *NFSFileShareInfo {
 19016  	s.KMSEncrypted = &v
 19017  	return s
 19018  }
 19019  
 19020  // SetKMSKey sets the KMSKey field's value.
 19021  func (s *NFSFileShareInfo) SetKMSKey(v string) *NFSFileShareInfo {
 19022  	s.KMSKey = &v
 19023  	return s
 19024  }
 19025  
 19026  // SetLocationARN sets the LocationARN field's value.
 19027  func (s *NFSFileShareInfo) SetLocationARN(v string) *NFSFileShareInfo {
 19028  	s.LocationARN = &v
 19029  	return s
 19030  }
 19031  
 19032  // SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
 19033  func (s *NFSFileShareInfo) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *NFSFileShareInfo {
 19034  	s.NFSFileShareDefaults = v
 19035  	return s
 19036  }
 19037  
 19038  // SetNotificationPolicy sets the NotificationPolicy field's value.
 19039  func (s *NFSFileShareInfo) SetNotificationPolicy(v string) *NFSFileShareInfo {
 19040  	s.NotificationPolicy = &v
 19041  	return s
 19042  }
 19043  
 19044  // SetObjectACL sets the ObjectACL field's value.
 19045  func (s *NFSFileShareInfo) SetObjectACL(v string) *NFSFileShareInfo {
 19046  	s.ObjectACL = &v
 19047  	return s
 19048  }
 19049  
 19050  // SetPath sets the Path field's value.
 19051  func (s *NFSFileShareInfo) SetPath(v string) *NFSFileShareInfo {
 19052  	s.Path = &v
 19053  	return s
 19054  }
 19055  
 19056  // SetReadOnly sets the ReadOnly field's value.
 19057  func (s *NFSFileShareInfo) SetReadOnly(v bool) *NFSFileShareInfo {
 19058  	s.ReadOnly = &v
 19059  	return s
 19060  }
 19061  
 19062  // SetRequesterPays sets the RequesterPays field's value.
 19063  func (s *NFSFileShareInfo) SetRequesterPays(v bool) *NFSFileShareInfo {
 19064  	s.RequesterPays = &v
 19065  	return s
 19066  }
 19067  
 19068  // SetRole sets the Role field's value.
 19069  func (s *NFSFileShareInfo) SetRole(v string) *NFSFileShareInfo {
 19070  	s.Role = &v
 19071  	return s
 19072  }
 19073  
 19074  // SetSquash sets the Squash field's value.
 19075  func (s *NFSFileShareInfo) SetSquash(v string) *NFSFileShareInfo {
 19076  	s.Squash = &v
 19077  	return s
 19078  }
 19079  
 19080  // SetTags sets the Tags field's value.
 19081  func (s *NFSFileShareInfo) SetTags(v []*Tag) *NFSFileShareInfo {
 19082  	s.Tags = v
 19083  	return s
 19084  }
 19085  
 19086  // SetVPCEndpointDNSName sets the VPCEndpointDNSName field's value.
 19087  func (s *NFSFileShareInfo) SetVPCEndpointDNSName(v string) *NFSFileShareInfo {
 19088  	s.VPCEndpointDNSName = &v
 19089  	return s
 19090  }
 19091  
 19092  // Describes a gateway's network interface.
 19093  type NetworkInterface struct {
 19094  	_ struct{} `type:"structure"`
 19095  
 19096  	// The Internet Protocol version 4 (IPv4) address of the interface.
 19097  	Ipv4Address *string `type:"string"`
 19098  
 19099  	// The Internet Protocol version 6 (IPv6) address of the interface. Currently
 19100  	// not supported.
 19101  	Ipv6Address *string `type:"string"`
 19102  
 19103  	// The Media Access Control (MAC) address of the interface.
 19104  	//
 19105  	// This is currently unsupported and will not be returned in output.
 19106  	MacAddress *string `type:"string"`
 19107  }
 19108  
 19109  // String returns the string representation.
 19110  //
 19111  // API parameter values that are decorated as "sensitive" in the API will not
 19112  // be included in the string output. The member name will be present, but the
 19113  // value will be replaced with "sensitive".
 19114  func (s NetworkInterface) String() string {
 19115  	return awsutil.Prettify(s)
 19116  }
 19117  
 19118  // GoString returns the string representation.
 19119  //
 19120  // API parameter values that are decorated as "sensitive" in the API will not
 19121  // be included in the string output. The member name will be present, but the
 19122  // value will be replaced with "sensitive".
 19123  func (s NetworkInterface) GoString() string {
 19124  	return s.String()
 19125  }
 19126  
 19127  // SetIpv4Address sets the Ipv4Address field's value.
 19128  func (s *NetworkInterface) SetIpv4Address(v string) *NetworkInterface {
 19129  	s.Ipv4Address = &v
 19130  	return s
 19131  }
 19132  
 19133  // SetIpv6Address sets the Ipv6Address field's value.
 19134  func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
 19135  	s.Ipv6Address = &v
 19136  	return s
 19137  }
 19138  
 19139  // SetMacAddress sets the MacAddress field's value.
 19140  func (s *NetworkInterface) SetMacAddress(v string) *NetworkInterface {
 19141  	s.MacAddress = &v
 19142  	return s
 19143  }
 19144  
 19145  type NotifyWhenUploadedInput struct {
 19146  	_ struct{} `type:"structure"`
 19147  
 19148  	// The Amazon Resource Name (ARN) of the file share.
 19149  	//
 19150  	// FileShareARN is a required field
 19151  	FileShareARN *string `min:"50" type:"string" required:"true"`
 19152  }
 19153  
 19154  // String returns the string representation.
 19155  //
 19156  // API parameter values that are decorated as "sensitive" in the API will not
 19157  // be included in the string output. The member name will be present, but the
 19158  // value will be replaced with "sensitive".
 19159  func (s NotifyWhenUploadedInput) String() string {
 19160  	return awsutil.Prettify(s)
 19161  }
 19162  
 19163  // GoString returns the string representation.
 19164  //
 19165  // API parameter values that are decorated as "sensitive" in the API will not
 19166  // be included in the string output. The member name will be present, but the
 19167  // value will be replaced with "sensitive".
 19168  func (s NotifyWhenUploadedInput) GoString() string {
 19169  	return s.String()
 19170  }
 19171  
 19172  // Validate inspects the fields of the type to determine if they are valid.
 19173  func (s *NotifyWhenUploadedInput) Validate() error {
 19174  	invalidParams := request.ErrInvalidParams{Context: "NotifyWhenUploadedInput"}
 19175  	if s.FileShareARN == nil {
 19176  		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
 19177  	}
 19178  	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
 19179  		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
 19180  	}
 19181  
 19182  	if invalidParams.Len() > 0 {
 19183  		return invalidParams
 19184  	}
 19185  	return nil
 19186  }
 19187  
 19188  // SetFileShareARN sets the FileShareARN field's value.
 19189  func (s *NotifyWhenUploadedInput) SetFileShareARN(v string) *NotifyWhenUploadedInput {
 19190  	s.FileShareARN = &v
 19191  	return s
 19192  }
 19193  
 19194  type NotifyWhenUploadedOutput struct {
 19195  	_ struct{} `type:"structure"`
 19196  
 19197  	// The Amazon Resource Name (ARN) of the file share.
 19198  	FileShareARN *string `min:"50" type:"string"`
 19199  
 19200  	// The randomly generated ID of the notification that was sent. This ID is in
 19201  	// UUID format.
 19202  	NotificationId *string `min:"1" type:"string"`
 19203  }
 19204  
 19205  // String returns the string representation.
 19206  //
 19207  // API parameter values that are decorated as "sensitive" in the API will not
 19208  // be included in the string output. The member name will be present, but the
 19209  // value will be replaced with "sensitive".
 19210  func (s NotifyWhenUploadedOutput) String() string {
 19211  	return awsutil.Prettify(s)
 19212  }
 19213  
 19214  // GoString returns the string representation.
 19215  //
 19216  // API parameter values that are decorated as "sensitive" in the API will not
 19217  // be included in the string output. The member name will be present, but the
 19218  // value will be replaced with "sensitive".
 19219  func (s NotifyWhenUploadedOutput) GoString() string {
 19220  	return s.String()
 19221  }
 19222  
 19223  // SetFileShareARN sets the FileShareARN field's value.
 19224  func (s *NotifyWhenUploadedOutput) SetFileShareARN(v string) *NotifyWhenUploadedOutput {
 19225  	s.FileShareARN = &v
 19226  	return s
 19227  }
 19228  
 19229  // SetNotificationId sets the NotificationId field's value.
 19230  func (s *NotifyWhenUploadedOutput) SetNotificationId(v string) *NotifyWhenUploadedOutput {
 19231  	s.NotificationId = &v
 19232  	return s
 19233  }
 19234  
 19235  // Describes a custom tape pool.
 19236  type PoolInfo struct {
 19237  	_ struct{} `type:"structure"`
 19238  
 19239  	// The Amazon Resource Name (ARN) of the custom tape pool. Use the ListTapePools
 19240  	// operation to return a list of custom tape pools for your account and Region.
 19241  	PoolARN *string `min:"50" type:"string"`
 19242  
 19243  	// The name of the custom tape pool. PoolName can use all ASCII characters,
 19244  	// except '/' and '\'.
 19245  	PoolName *string `min:"1" type:"string"`
 19246  
 19247  	// Status of the custom tape pool. Pool can be ACTIVE or DELETED.
 19248  	PoolStatus *string `type:"string" enum:"PoolStatus"`
 19249  
 19250  	// Tape retention lock time is set in days. Tape retention lock can be enabled
 19251  	// for up to 100 years (36,500 days).
 19252  	RetentionLockTimeInDays *int64 `type:"integer"`
 19253  
 19254  	// Tape retention lock type, which can be configured in two modes. When configured
 19255  	// in governance mode, accounts with specific IAM permissions are authorized
 19256  	// to remove the tape retention lock from archived virtual tapes. When configured
 19257  	// in compliance mode, the tape retention lock cannot be removed by any user,
 19258  	// including the root account.
 19259  	RetentionLockType *string `type:"string" enum:"RetentionLockType"`
 19260  
 19261  	// The storage class that is associated with the custom pool. When you use your
 19262  	// backup application to eject the tape, the tape is archived directly into
 19263  	// the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds
 19264  	// to the pool.
 19265  	StorageClass *string `type:"string" enum:"TapeStorageClass"`
 19266  }
 19267  
 19268  // String returns the string representation.
 19269  //
 19270  // API parameter values that are decorated as "sensitive" in the API will not
 19271  // be included in the string output. The member name will be present, but the
 19272  // value will be replaced with "sensitive".
 19273  func (s PoolInfo) String() string {
 19274  	return awsutil.Prettify(s)
 19275  }
 19276  
 19277  // GoString returns the string representation.
 19278  //
 19279  // API parameter values that are decorated as "sensitive" in the API will not
 19280  // be included in the string output. The member name will be present, but the
 19281  // value will be replaced with "sensitive".
 19282  func (s PoolInfo) GoString() string {
 19283  	return s.String()
 19284  }
 19285  
 19286  // SetPoolARN sets the PoolARN field's value.
 19287  func (s *PoolInfo) SetPoolARN(v string) *PoolInfo {
 19288  	s.PoolARN = &v
 19289  	return s
 19290  }
 19291  
 19292  // SetPoolName sets the PoolName field's value.
 19293  func (s *PoolInfo) SetPoolName(v string) *PoolInfo {
 19294  	s.PoolName = &v
 19295  	return s
 19296  }
 19297  
 19298  // SetPoolStatus sets the PoolStatus field's value.
 19299  func (s *PoolInfo) SetPoolStatus(v string) *PoolInfo {
 19300  	s.PoolStatus = &v
 19301  	return s
 19302  }
 19303  
 19304  // SetRetentionLockTimeInDays sets the RetentionLockTimeInDays field's value.
 19305  func (s *PoolInfo) SetRetentionLockTimeInDays(v int64) *PoolInfo {
 19306  	s.RetentionLockTimeInDays = &v
 19307  	return s
 19308  }
 19309  
 19310  // SetRetentionLockType sets the RetentionLockType field's value.
 19311  func (s *PoolInfo) SetRetentionLockType(v string) *PoolInfo {
 19312  	s.RetentionLockType = &v
 19313  	return s
 19314  }
 19315  
 19316  // SetStorageClass sets the StorageClass field's value.
 19317  func (s *PoolInfo) SetStorageClass(v string) *PoolInfo {
 19318  	s.StorageClass = &v
 19319  	return s
 19320  }
 19321  
 19322  // RefreshCacheInput
 19323  type RefreshCacheInput struct {
 19324  	_ struct{} `type:"structure"`
 19325  
 19326  	// The Amazon Resource Name (ARN) of the file share you want to refresh.
 19327  	//
 19328  	// FileShareARN is a required field
 19329  	FileShareARN *string `min:"50" type:"string" required:"true"`
 19330  
 19331  	// A comma-separated list of the paths of folders to refresh in the cache. The
 19332  	// default is ["/"]. The default refreshes objects and folders at the root of
 19333  	// the Amazon S3 bucket. If Recursive is set to true, the entire S3 bucket that
 19334  	// the file share has access to is refreshed.
 19335  	FolderList []*string `min:"1" type:"list"`
 19336  
 19337  	// A value that specifies whether to recursively refresh folders in the cache.
 19338  	// The refresh includes folders that were in the cache the last time the gateway
 19339  	// listed the folder's contents. If this value set to true, each folder that
 19340  	// is listed in FolderList is recursively updated. Otherwise, subfolders listed
 19341  	// in FolderList are not refreshed. Only objects that are in folders listed
 19342  	// directly under FolderList are found and used for the update. The default
 19343  	// is true.
 19344  	//
 19345  	// Valid Values: true | false
 19346  	Recursive *bool `type:"boolean"`
 19347  }
 19348  
 19349  // String returns the string representation.
 19350  //
 19351  // API parameter values that are decorated as "sensitive" in the API will not
 19352  // be included in the string output. The member name will be present, but the
 19353  // value will be replaced with "sensitive".
 19354  func (s RefreshCacheInput) String() string {
 19355  	return awsutil.Prettify(s)
 19356  }
 19357  
 19358  // GoString returns the string representation.
 19359  //
 19360  // API parameter values that are decorated as "sensitive" in the API will not
 19361  // be included in the string output. The member name will be present, but the
 19362  // value will be replaced with "sensitive".
 19363  func (s RefreshCacheInput) GoString() string {
 19364  	return s.String()
 19365  }
 19366  
 19367  // Validate inspects the fields of the type to determine if they are valid.
 19368  func (s *RefreshCacheInput) Validate() error {
 19369  	invalidParams := request.ErrInvalidParams{Context: "RefreshCacheInput"}
 19370  	if s.FileShareARN == nil {
 19371  		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
 19372  	}
 19373  	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
 19374  		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
 19375  	}
 19376  	if s.FolderList != nil && len(s.FolderList) < 1 {
 19377  		invalidParams.Add(request.NewErrParamMinLen("FolderList", 1))
 19378  	}
 19379  
 19380  	if invalidParams.Len() > 0 {
 19381  		return invalidParams
 19382  	}
 19383  	return nil
 19384  }
 19385  
 19386  // SetFileShareARN sets the FileShareARN field's value.
 19387  func (s *RefreshCacheInput) SetFileShareARN(v string) *RefreshCacheInput {
 19388  	s.FileShareARN = &v
 19389  	return s
 19390  }
 19391  
 19392  // SetFolderList sets the FolderList field's value.
 19393  func (s *RefreshCacheInput) SetFolderList(v []*string) *RefreshCacheInput {
 19394  	s.FolderList = v
 19395  	return s
 19396  }
 19397  
 19398  // SetRecursive sets the Recursive field's value.
 19399  func (s *RefreshCacheInput) SetRecursive(v bool) *RefreshCacheInput {
 19400  	s.Recursive = &v
 19401  	return s
 19402  }
 19403  
 19404  // RefreshCacheOutput
 19405  type RefreshCacheOutput struct {
 19406  	_ struct{} `type:"structure"`
 19407  
 19408  	// The Amazon Resource Name (ARN) of the file share.
 19409  	FileShareARN *string `min:"50" type:"string"`
 19410  
 19411  	// The randomly generated ID of the notification that was sent. This ID is in
 19412  	// UUID format.
 19413  	NotificationId *string `min:"1" type:"string"`
 19414  }
 19415  
 19416  // String returns the string representation.
 19417  //
 19418  // API parameter values that are decorated as "sensitive" in the API will not
 19419  // be included in the string output. The member name will be present, but the
 19420  // value will be replaced with "sensitive".
 19421  func (s RefreshCacheOutput) String() string {
 19422  	return awsutil.Prettify(s)
 19423  }
 19424  
 19425  // GoString returns the string representation.
 19426  //
 19427  // API parameter values that are decorated as "sensitive" in the API will not
 19428  // be included in the string output. The member name will be present, but the
 19429  // value will be replaced with "sensitive".
 19430  func (s RefreshCacheOutput) GoString() string {
 19431  	return s.String()
 19432  }
 19433  
 19434  // SetFileShareARN sets the FileShareARN field's value.
 19435  func (s *RefreshCacheOutput) SetFileShareARN(v string) *RefreshCacheOutput {
 19436  	s.FileShareARN = &v
 19437  	return s
 19438  }
 19439  
 19440  // SetNotificationId sets the NotificationId field's value.
 19441  func (s *RefreshCacheOutput) SetNotificationId(v string) *RefreshCacheOutput {
 19442  	s.NotificationId = &v
 19443  	return s
 19444  }
 19445  
 19446  // RemoveTagsFromResourceInput
 19447  type RemoveTagsFromResourceInput struct {
 19448  	_ struct{} `type:"structure"`
 19449  
 19450  	// The Amazon Resource Name (ARN) of the resource you want to remove the tags
 19451  	// from.
 19452  	//
 19453  	// ResourceARN is a required field
 19454  	ResourceARN *string `min:"50" type:"string" required:"true"`
 19455  
 19456  	// The keys of the tags you want to remove from the specified resource. A tag
 19457  	// is composed of a key-value pair.
 19458  	//
 19459  	// TagKeys is a required field
 19460  	TagKeys []*string `type:"list" required:"true"`
 19461  }
 19462  
 19463  // String returns the string representation.
 19464  //
 19465  // API parameter values that are decorated as "sensitive" in the API will not
 19466  // be included in the string output. The member name will be present, but the
 19467  // value will be replaced with "sensitive".
 19468  func (s RemoveTagsFromResourceInput) String() string {
 19469  	return awsutil.Prettify(s)
 19470  }
 19471  
 19472  // GoString returns the string representation.
 19473  //
 19474  // API parameter values that are decorated as "sensitive" in the API will not
 19475  // be included in the string output. The member name will be present, but the
 19476  // value will be replaced with "sensitive".
 19477  func (s RemoveTagsFromResourceInput) GoString() string {
 19478  	return s.String()
 19479  }
 19480  
 19481  // Validate inspects the fields of the type to determine if they are valid.
 19482  func (s *RemoveTagsFromResourceInput) Validate() error {
 19483  	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"}
 19484  	if s.ResourceARN == nil {
 19485  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
 19486  	}
 19487  	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
 19488  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
 19489  	}
 19490  	if s.TagKeys == nil {
 19491  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 19492  	}
 19493  
 19494  	if invalidParams.Len() > 0 {
 19495  		return invalidParams
 19496  	}
 19497  	return nil
 19498  }
 19499  
 19500  // SetResourceARN sets the ResourceARN field's value.
 19501  func (s *RemoveTagsFromResourceInput) SetResourceARN(v string) *RemoveTagsFromResourceInput {
 19502  	s.ResourceARN = &v
 19503  	return s
 19504  }
 19505  
 19506  // SetTagKeys sets the TagKeys field's value.
 19507  func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput {
 19508  	s.TagKeys = v
 19509  	return s
 19510  }
 19511  
 19512  // RemoveTagsFromResourceOutput
 19513  type RemoveTagsFromResourceOutput struct {
 19514  	_ struct{} `type:"structure"`
 19515  
 19516  	// The Amazon Resource Name (ARN) of the resource that the tags were removed
 19517  	// from.
 19518  	ResourceARN *string `min:"50" type:"string"`
 19519  }
 19520  
 19521  // String returns the string representation.
 19522  //
 19523  // API parameter values that are decorated as "sensitive" in the API will not
 19524  // be included in the string output. The member name will be present, but the
 19525  // value will be replaced with "sensitive".
 19526  func (s RemoveTagsFromResourceOutput) String() string {
 19527  	return awsutil.Prettify(s)
 19528  }
 19529  
 19530  // GoString returns the string representation.
 19531  //
 19532  // API parameter values that are decorated as "sensitive" in the API will not
 19533  // be included in the string output. The member name will be present, but the
 19534  // value will be replaced with "sensitive".
 19535  func (s RemoveTagsFromResourceOutput) GoString() string {
 19536  	return s.String()
 19537  }
 19538  
 19539  // SetResourceARN sets the ResourceARN field's value.
 19540  func (s *RemoveTagsFromResourceOutput) SetResourceARN(v string) *RemoveTagsFromResourceOutput {
 19541  	s.ResourceARN = &v
 19542  	return s
 19543  }
 19544  
 19545  type ResetCacheInput struct {
 19546  	_ struct{} `type:"structure"`
 19547  
 19548  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 19549  	// to return a list of gateways for your account and Region.
 19550  	//
 19551  	// GatewayARN is a required field
 19552  	GatewayARN *string `min:"50" type:"string" required:"true"`
 19553  }
 19554  
 19555  // String returns the string representation.
 19556  //
 19557  // API parameter values that are decorated as "sensitive" in the API will not
 19558  // be included in the string output. The member name will be present, but the
 19559  // value will be replaced with "sensitive".
 19560  func (s ResetCacheInput) String() string {
 19561  	return awsutil.Prettify(s)
 19562  }
 19563  
 19564  // GoString returns the string representation.
 19565  //
 19566  // API parameter values that are decorated as "sensitive" in the API will not
 19567  // be included in the string output. The member name will be present, but the
 19568  // value will be replaced with "sensitive".
 19569  func (s ResetCacheInput) GoString() string {
 19570  	return s.String()
 19571  }
 19572  
 19573  // Validate inspects the fields of the type to determine if they are valid.
 19574  func (s *ResetCacheInput) Validate() error {
 19575  	invalidParams := request.ErrInvalidParams{Context: "ResetCacheInput"}
 19576  	if s.GatewayARN == nil {
 19577  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 19578  	}
 19579  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 19580  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 19581  	}
 19582  
 19583  	if invalidParams.Len() > 0 {
 19584  		return invalidParams
 19585  	}
 19586  	return nil
 19587  }
 19588  
 19589  // SetGatewayARN sets the GatewayARN field's value.
 19590  func (s *ResetCacheInput) SetGatewayARN(v string) *ResetCacheInput {
 19591  	s.GatewayARN = &v
 19592  	return s
 19593  }
 19594  
 19595  type ResetCacheOutput struct {
 19596  	_ struct{} `type:"structure"`
 19597  
 19598  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 19599  	// to return a list of gateways for your account and Region.
 19600  	GatewayARN *string `min:"50" type:"string"`
 19601  }
 19602  
 19603  // String returns the string representation.
 19604  //
 19605  // API parameter values that are decorated as "sensitive" in the API will not
 19606  // be included in the string output. The member name will be present, but the
 19607  // value will be replaced with "sensitive".
 19608  func (s ResetCacheOutput) String() string {
 19609  	return awsutil.Prettify(s)
 19610  }
 19611  
 19612  // GoString returns the string representation.
 19613  //
 19614  // API parameter values that are decorated as "sensitive" in the API will not
 19615  // be included in the string output. The member name will be present, but the
 19616  // value will be replaced with "sensitive".
 19617  func (s ResetCacheOutput) GoString() string {
 19618  	return s.String()
 19619  }
 19620  
 19621  // SetGatewayARN sets the GatewayARN field's value.
 19622  func (s *ResetCacheOutput) SetGatewayARN(v string) *ResetCacheOutput {
 19623  	s.GatewayARN = &v
 19624  	return s
 19625  }
 19626  
 19627  // RetrieveTapeArchiveInput
 19628  type RetrieveTapeArchiveInput struct {
 19629  	_ struct{} `type:"structure"`
 19630  
 19631  	// The Amazon Resource Name (ARN) of the gateway you want to retrieve the virtual
 19632  	// tape to. Use the ListGateways operation to return a list of gateways for
 19633  	// your account and Region.
 19634  	//
 19635  	// You retrieve archived virtual tapes to only one gateway and the gateway must
 19636  	// be a tape gateway.
 19637  	//
 19638  	// GatewayARN is a required field
 19639  	GatewayARN *string `min:"50" type:"string" required:"true"`
 19640  
 19641  	// The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from
 19642  	// the virtual tape shelf (VTS).
 19643  	//
 19644  	// TapeARN is a required field
 19645  	TapeARN *string `min:"50" type:"string" required:"true"`
 19646  }
 19647  
 19648  // String returns the string representation.
 19649  //
 19650  // API parameter values that are decorated as "sensitive" in the API will not
 19651  // be included in the string output. The member name will be present, but the
 19652  // value will be replaced with "sensitive".
 19653  func (s RetrieveTapeArchiveInput) String() string {
 19654  	return awsutil.Prettify(s)
 19655  }
 19656  
 19657  // GoString returns the string representation.
 19658  //
 19659  // API parameter values that are decorated as "sensitive" in the API will not
 19660  // be included in the string output. The member name will be present, but the
 19661  // value will be replaced with "sensitive".
 19662  func (s RetrieveTapeArchiveInput) GoString() string {
 19663  	return s.String()
 19664  }
 19665  
 19666  // Validate inspects the fields of the type to determine if they are valid.
 19667  func (s *RetrieveTapeArchiveInput) Validate() error {
 19668  	invalidParams := request.ErrInvalidParams{Context: "RetrieveTapeArchiveInput"}
 19669  	if s.GatewayARN == nil {
 19670  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 19671  	}
 19672  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 19673  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 19674  	}
 19675  	if s.TapeARN == nil {
 19676  		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
 19677  	}
 19678  	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
 19679  		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
 19680  	}
 19681  
 19682  	if invalidParams.Len() > 0 {
 19683  		return invalidParams
 19684  	}
 19685  	return nil
 19686  }
 19687  
 19688  // SetGatewayARN sets the GatewayARN field's value.
 19689  func (s *RetrieveTapeArchiveInput) SetGatewayARN(v string) *RetrieveTapeArchiveInput {
 19690  	s.GatewayARN = &v
 19691  	return s
 19692  }
 19693  
 19694  // SetTapeARN sets the TapeARN field's value.
 19695  func (s *RetrieveTapeArchiveInput) SetTapeARN(v string) *RetrieveTapeArchiveInput {
 19696  	s.TapeARN = &v
 19697  	return s
 19698  }
 19699  
 19700  // RetrieveTapeArchiveOutput
 19701  type RetrieveTapeArchiveOutput struct {
 19702  	_ struct{} `type:"structure"`
 19703  
 19704  	// The Amazon Resource Name (ARN) of the retrieved virtual tape.
 19705  	TapeARN *string `min:"50" type:"string"`
 19706  }
 19707  
 19708  // String returns the string representation.
 19709  //
 19710  // API parameter values that are decorated as "sensitive" in the API will not
 19711  // be included in the string output. The member name will be present, but the
 19712  // value will be replaced with "sensitive".
 19713  func (s RetrieveTapeArchiveOutput) String() string {
 19714  	return awsutil.Prettify(s)
 19715  }
 19716  
 19717  // GoString returns the string representation.
 19718  //
 19719  // API parameter values that are decorated as "sensitive" in the API will not
 19720  // be included in the string output. The member name will be present, but the
 19721  // value will be replaced with "sensitive".
 19722  func (s RetrieveTapeArchiveOutput) GoString() string {
 19723  	return s.String()
 19724  }
 19725  
 19726  // SetTapeARN sets the TapeARN field's value.
 19727  func (s *RetrieveTapeArchiveOutput) SetTapeARN(v string) *RetrieveTapeArchiveOutput {
 19728  	s.TapeARN = &v
 19729  	return s
 19730  }
 19731  
 19732  // RetrieveTapeRecoveryPointInput
 19733  type RetrieveTapeRecoveryPointInput struct {
 19734  	_ struct{} `type:"structure"`
 19735  
 19736  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 19737  	// to return a list of gateways for your account and Region.
 19738  	//
 19739  	// GatewayARN is a required field
 19740  	GatewayARN *string `min:"50" type:"string" required:"true"`
 19741  
 19742  	// The Amazon Resource Name (ARN) of the virtual tape for which you want to
 19743  	// retrieve the recovery point.
 19744  	//
 19745  	// TapeARN is a required field
 19746  	TapeARN *string `min:"50" type:"string" required:"true"`
 19747  }
 19748  
 19749  // String returns the string representation.
 19750  //
 19751  // API parameter values that are decorated as "sensitive" in the API will not
 19752  // be included in the string output. The member name will be present, but the
 19753  // value will be replaced with "sensitive".
 19754  func (s RetrieveTapeRecoveryPointInput) String() string {
 19755  	return awsutil.Prettify(s)
 19756  }
 19757  
 19758  // GoString returns the string representation.
 19759  //
 19760  // API parameter values that are decorated as "sensitive" in the API will not
 19761  // be included in the string output. The member name will be present, but the
 19762  // value will be replaced with "sensitive".
 19763  func (s RetrieveTapeRecoveryPointInput) GoString() string {
 19764  	return s.String()
 19765  }
 19766  
 19767  // Validate inspects the fields of the type to determine if they are valid.
 19768  func (s *RetrieveTapeRecoveryPointInput) Validate() error {
 19769  	invalidParams := request.ErrInvalidParams{Context: "RetrieveTapeRecoveryPointInput"}
 19770  	if s.GatewayARN == nil {
 19771  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 19772  	}
 19773  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 19774  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 19775  	}
 19776  	if s.TapeARN == nil {
 19777  		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
 19778  	}
 19779  	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
 19780  		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
 19781  	}
 19782  
 19783  	if invalidParams.Len() > 0 {
 19784  		return invalidParams
 19785  	}
 19786  	return nil
 19787  }
 19788  
 19789  // SetGatewayARN sets the GatewayARN field's value.
 19790  func (s *RetrieveTapeRecoveryPointInput) SetGatewayARN(v string) *RetrieveTapeRecoveryPointInput {
 19791  	s.GatewayARN = &v
 19792  	return s
 19793  }
 19794  
 19795  // SetTapeARN sets the TapeARN field's value.
 19796  func (s *RetrieveTapeRecoveryPointInput) SetTapeARN(v string) *RetrieveTapeRecoveryPointInput {
 19797  	s.TapeARN = &v
 19798  	return s
 19799  }
 19800  
 19801  // RetrieveTapeRecoveryPointOutput
 19802  type RetrieveTapeRecoveryPointOutput struct {
 19803  	_ struct{} `type:"structure"`
 19804  
 19805  	// The Amazon Resource Name (ARN) of the virtual tape for which the recovery
 19806  	// point was retrieved.
 19807  	TapeARN *string `min:"50" type:"string"`
 19808  }
 19809  
 19810  // String returns the string representation.
 19811  //
 19812  // API parameter values that are decorated as "sensitive" in the API will not
 19813  // be included in the string output. The member name will be present, but the
 19814  // value will be replaced with "sensitive".
 19815  func (s RetrieveTapeRecoveryPointOutput) String() string {
 19816  	return awsutil.Prettify(s)
 19817  }
 19818  
 19819  // GoString returns the string representation.
 19820  //
 19821  // API parameter values that are decorated as "sensitive" in the API will not
 19822  // be included in the string output. The member name will be present, but the
 19823  // value will be replaced with "sensitive".
 19824  func (s RetrieveTapeRecoveryPointOutput) GoString() string {
 19825  	return s.String()
 19826  }
 19827  
 19828  // SetTapeARN sets the TapeARN field's value.
 19829  func (s *RetrieveTapeRecoveryPointOutput) SetTapeARN(v string) *RetrieveTapeRecoveryPointOutput {
 19830  	s.TapeARN = &v
 19831  	return s
 19832  }
 19833  
 19834  // The Windows file permissions and ownership information assigned, by default,
 19835  // to native S3 objects when S3 File Gateway discovers them in S3 buckets. This
 19836  // operation is only supported for S3 File Gateways.
 19837  type SMBFileShareInfo struct {
 19838  	_ struct{} `type:"structure"`
 19839  
 19840  	// Indicates whether AccessBasedEnumeration is enabled.
 19841  	AccessBasedEnumeration *bool `type:"boolean"`
 19842  
 19843  	// A list of users or groups in the Active Directory that have administrator
 19844  	// rights to the file share. A group must be prefixed with the @ character.
 19845  	// Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1.
 19846  	// Can only be set if Authentication is set to ActiveDirectory.
 19847  	AdminUserList []*string `type:"list"`
 19848  
 19849  	// The Amazon Resource Name (ARN) of the storage used for audit logs.
 19850  	AuditDestinationARN *string `type:"string"`
 19851  
 19852  	// The authentication method of the file share. The default is ActiveDirectory.
 19853  	//
 19854  	// Valid Values: ActiveDirectory | GuestAccess
 19855  	Authentication *string `min:"5" type:"string"`
 19856  
 19857  	// Specifies the Region of the S3 bucket where the SMB file share stores files.
 19858  	//
 19859  	// This parameter is required for SMB file shares that connect to Amazon S3
 19860  	// through a VPC endpoint, a VPC access point, or an access point alias that
 19861  	// points to a VPC access point.
 19862  	BucketRegion *string `min:"1" type:"string"`
 19863  
 19864  	// Refresh cache information for the file share.
 19865  	CacheAttributes *CacheAttributes `type:"structure"`
 19866  
 19867  	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
 19868  	// client determines the case sensitivity. For CaseSensitive, the gateway determines
 19869  	// the case sensitivity. The default value is ClientSpecified.
 19870  	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
 19871  
 19872  	// The default storage class for objects put into an Amazon S3 bucket by the
 19873  	// S3 File Gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
 19874  	//
 19875  	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
 19876  	DefaultStorageClass *string `min:"5" type:"string"`
 19877  
 19878  	// The Amazon Resource Name (ARN) of the file share.
 19879  	FileShareARN *string `min:"50" type:"string"`
 19880  
 19881  	// The ID of the file share.
 19882  	FileShareId *string `min:"12" type:"string"`
 19883  
 19884  	// The name of the file share. Optional.
 19885  	//
 19886  	// FileShareName must be set if an S3 prefix name is set in LocationARN.
 19887  	FileShareName *string `min:"1" type:"string"`
 19888  
 19889  	// The status of the file share.
 19890  	//
 19891  	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
 19892  	FileShareStatus *string `min:"3" type:"string"`
 19893  
 19894  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 19895  	// to return a list of gateways for your account and Region.
 19896  	GatewayARN *string `min:"50" type:"string"`
 19897  
 19898  	// A value that enables guessing of the MIME type for uploaded objects based
 19899  	// on file extensions. Set this value to true to enable MIME type guessing,
 19900  	// otherwise set to false. The default value is true.
 19901  	//
 19902  	// Valid Values: true | false
 19903  	GuessMIMETypeEnabled *bool `type:"boolean"`
 19904  
 19905  	// A list of users or groups in the Active Directory that are not allowed to
 19906  	// access the file share. A group must be prefixed with the @ character. Acceptable
 19907  	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
 19908  	// be set if Authentication is set to ActiveDirectory.
 19909  	InvalidUserList []*string `type:"list"`
 19910  
 19911  	// Set to true to use Amazon S3 server-side encryption with your own KMS key,
 19912  	// or false to use a key managed by Amazon S3. Optional.
 19913  	//
 19914  	// Valid Values: true | false
 19915  	KMSEncrypted *bool `type:"boolean"`
 19916  
 19917  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 19918  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 19919  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 19920  	KMSKey *string `min:"7" type:"string"`
 19921  
 19922  	// The ARN of the backend storage used for storing file data. A prefix name
 19923  	// can be added to the S3 bucket name. It must end with a "/".
 19924  	LocationARN *string `min:"16" type:"string"`
 19925  
 19926  	// The notification policy of the file share. SettlingTimeInSeconds controls
 19927  	// the number of seconds to wait after the last point in time a client wrote
 19928  	// to a file before generating an ObjectUploaded notification. Because clients
 19929  	// can make many small writes to files, it's best to set this parameter for
 19930  	// as long as possible to avoid generating multiple notifications for the same
 19931  	// file in a small time period.
 19932  	//
 19933  	// SettlingTimeInSeconds has no effect on the timing of the object uploading
 19934  	// to Amazon S3, only the timing of the notification.
 19935  	//
 19936  	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
 19937  	// set to 60.
 19938  	//
 19939  	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
 19940  	//
 19941  	// The following example sets NotificationPolicy off.
 19942  	//
 19943  	// {}
 19944  	NotificationPolicy *string `min:"2" type:"string"`
 19945  
 19946  	// A value that sets the access control list (ACL) permission for objects in
 19947  	// the S3 bucket that an S3 File Gateway puts objects into. The default value
 19948  	// is private.
 19949  	ObjectACL *string `type:"string" enum:"ObjectACL"`
 19950  
 19951  	// Specifies whether opportunistic locking is enabled for the SMB file share.
 19952  	//
 19953  	// Enabling opportunistic locking on case-sensitive shares is not recommended
 19954  	// for workloads that involve access to files with the same name in different
 19955  	// case.
 19956  	//
 19957  	// Valid Values: true | false
 19958  	OplocksEnabled *bool `type:"boolean"`
 19959  
 19960  	// The file share path used by the SMB client to identify the mount point.
 19961  	Path *string `type:"string"`
 19962  
 19963  	// A value that sets the write status of a file share. Set this value to true
 19964  	// to set the write status to read-only, otherwise set to false.
 19965  	//
 19966  	// Valid Values: true | false
 19967  	ReadOnly *bool `type:"boolean"`
 19968  
 19969  	// A value that sets who pays the cost of the request and the cost associated
 19970  	// with data download from the S3 bucket. If this value is set to true, the
 19971  	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
 19972  	// S3 bucket owner always pays the cost of storing data.
 19973  	//
 19974  	// RequesterPays is a configuration for the S3 bucket that backs the file share,
 19975  	// so make sure that the configuration on the file share is the same as the
 19976  	// S3 bucket configuration.
 19977  	//
 19978  	// Valid Values: true | false
 19979  	RequesterPays *bool `type:"boolean"`
 19980  
 19981  	// The ARN of the IAM role that an S3 File Gateway assumes when it accesses
 19982  	// the underlying storage.
 19983  	Role *string `min:"20" type:"string"`
 19984  
 19985  	// If this value is set to true, it indicates that access control list (ACL)
 19986  	// is enabled on the SMB file share. If it is set to false, it indicates that
 19987  	// file and directory permissions are mapped to the POSIX permission.
 19988  	//
 19989  	// For more information, see Using Microsoft Windows ACLs to control access
 19990  	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
 19991  	// in the Storage Gateway User Guide.
 19992  	SMBACLEnabled *bool `type:"boolean"`
 19993  
 19994  	// A list of up to 50 tags assigned to the SMB file share, sorted alphabetically
 19995  	// by key name. Each tag is a key-value pair. For a gateway with more than 10
 19996  	// tags assigned, you can view all tags using the ListTagsForResource API operation.
 19997  	Tags []*Tag `type:"list"`
 19998  
 19999  	// Specifies the DNS name for the VPC endpoint that the SMB file share uses
 20000  	// to connect to Amazon S3.
 20001  	//
 20002  	// This parameter is required for SMB file shares that connect to Amazon S3
 20003  	// through a VPC endpoint, a VPC access point, or an access point alias that
 20004  	// points to a VPC access point.
 20005  	VPCEndpointDNSName *string `min:"1" type:"string"`
 20006  
 20007  	// A list of users or groups in the Active Directory that are allowed to access
 20008  	// the file share. A group must be prefixed with the @ character. Acceptable
 20009  	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
 20010  	// be set if Authentication is set to ActiveDirectory.
 20011  	ValidUserList []*string `type:"list"`
 20012  }
 20013  
 20014  // String returns the string representation.
 20015  //
 20016  // API parameter values that are decorated as "sensitive" in the API will not
 20017  // be included in the string output. The member name will be present, but the
 20018  // value will be replaced with "sensitive".
 20019  func (s SMBFileShareInfo) String() string {
 20020  	return awsutil.Prettify(s)
 20021  }
 20022  
 20023  // GoString returns the string representation.
 20024  //
 20025  // API parameter values that are decorated as "sensitive" in the API will not
 20026  // be included in the string output. The member name will be present, but the
 20027  // value will be replaced with "sensitive".
 20028  func (s SMBFileShareInfo) GoString() string {
 20029  	return s.String()
 20030  }
 20031  
 20032  // SetAccessBasedEnumeration sets the AccessBasedEnumeration field's value.
 20033  func (s *SMBFileShareInfo) SetAccessBasedEnumeration(v bool) *SMBFileShareInfo {
 20034  	s.AccessBasedEnumeration = &v
 20035  	return s
 20036  }
 20037  
 20038  // SetAdminUserList sets the AdminUserList field's value.
 20039  func (s *SMBFileShareInfo) SetAdminUserList(v []*string) *SMBFileShareInfo {
 20040  	s.AdminUserList = v
 20041  	return s
 20042  }
 20043  
 20044  // SetAuditDestinationARN sets the AuditDestinationARN field's value.
 20045  func (s *SMBFileShareInfo) SetAuditDestinationARN(v string) *SMBFileShareInfo {
 20046  	s.AuditDestinationARN = &v
 20047  	return s
 20048  }
 20049  
 20050  // SetAuthentication sets the Authentication field's value.
 20051  func (s *SMBFileShareInfo) SetAuthentication(v string) *SMBFileShareInfo {
 20052  	s.Authentication = &v
 20053  	return s
 20054  }
 20055  
 20056  // SetBucketRegion sets the BucketRegion field's value.
 20057  func (s *SMBFileShareInfo) SetBucketRegion(v string) *SMBFileShareInfo {
 20058  	s.BucketRegion = &v
 20059  	return s
 20060  }
 20061  
 20062  // SetCacheAttributes sets the CacheAttributes field's value.
 20063  func (s *SMBFileShareInfo) SetCacheAttributes(v *CacheAttributes) *SMBFileShareInfo {
 20064  	s.CacheAttributes = v
 20065  	return s
 20066  }
 20067  
 20068  // SetCaseSensitivity sets the CaseSensitivity field's value.
 20069  func (s *SMBFileShareInfo) SetCaseSensitivity(v string) *SMBFileShareInfo {
 20070  	s.CaseSensitivity = &v
 20071  	return s
 20072  }
 20073  
 20074  // SetDefaultStorageClass sets the DefaultStorageClass field's value.
 20075  func (s *SMBFileShareInfo) SetDefaultStorageClass(v string) *SMBFileShareInfo {
 20076  	s.DefaultStorageClass = &v
 20077  	return s
 20078  }
 20079  
 20080  // SetFileShareARN sets the FileShareARN field's value.
 20081  func (s *SMBFileShareInfo) SetFileShareARN(v string) *SMBFileShareInfo {
 20082  	s.FileShareARN = &v
 20083  	return s
 20084  }
 20085  
 20086  // SetFileShareId sets the FileShareId field's value.
 20087  func (s *SMBFileShareInfo) SetFileShareId(v string) *SMBFileShareInfo {
 20088  	s.FileShareId = &v
 20089  	return s
 20090  }
 20091  
 20092  // SetFileShareName sets the FileShareName field's value.
 20093  func (s *SMBFileShareInfo) SetFileShareName(v string) *SMBFileShareInfo {
 20094  	s.FileShareName = &v
 20095  	return s
 20096  }
 20097  
 20098  // SetFileShareStatus sets the FileShareStatus field's value.
 20099  func (s *SMBFileShareInfo) SetFileShareStatus(v string) *SMBFileShareInfo {
 20100  	s.FileShareStatus = &v
 20101  	return s
 20102  }
 20103  
 20104  // SetGatewayARN sets the GatewayARN field's value.
 20105  func (s *SMBFileShareInfo) SetGatewayARN(v string) *SMBFileShareInfo {
 20106  	s.GatewayARN = &v
 20107  	return s
 20108  }
 20109  
 20110  // SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
 20111  func (s *SMBFileShareInfo) SetGuessMIMETypeEnabled(v bool) *SMBFileShareInfo {
 20112  	s.GuessMIMETypeEnabled = &v
 20113  	return s
 20114  }
 20115  
 20116  // SetInvalidUserList sets the InvalidUserList field's value.
 20117  func (s *SMBFileShareInfo) SetInvalidUserList(v []*string) *SMBFileShareInfo {
 20118  	s.InvalidUserList = v
 20119  	return s
 20120  }
 20121  
 20122  // SetKMSEncrypted sets the KMSEncrypted field's value.
 20123  func (s *SMBFileShareInfo) SetKMSEncrypted(v bool) *SMBFileShareInfo {
 20124  	s.KMSEncrypted = &v
 20125  	return s
 20126  }
 20127  
 20128  // SetKMSKey sets the KMSKey field's value.
 20129  func (s *SMBFileShareInfo) SetKMSKey(v string) *SMBFileShareInfo {
 20130  	s.KMSKey = &v
 20131  	return s
 20132  }
 20133  
 20134  // SetLocationARN sets the LocationARN field's value.
 20135  func (s *SMBFileShareInfo) SetLocationARN(v string) *SMBFileShareInfo {
 20136  	s.LocationARN = &v
 20137  	return s
 20138  }
 20139  
 20140  // SetNotificationPolicy sets the NotificationPolicy field's value.
 20141  func (s *SMBFileShareInfo) SetNotificationPolicy(v string) *SMBFileShareInfo {
 20142  	s.NotificationPolicy = &v
 20143  	return s
 20144  }
 20145  
 20146  // SetObjectACL sets the ObjectACL field's value.
 20147  func (s *SMBFileShareInfo) SetObjectACL(v string) *SMBFileShareInfo {
 20148  	s.ObjectACL = &v
 20149  	return s
 20150  }
 20151  
 20152  // SetOplocksEnabled sets the OplocksEnabled field's value.
 20153  func (s *SMBFileShareInfo) SetOplocksEnabled(v bool) *SMBFileShareInfo {
 20154  	s.OplocksEnabled = &v
 20155  	return s
 20156  }
 20157  
 20158  // SetPath sets the Path field's value.
 20159  func (s *SMBFileShareInfo) SetPath(v string) *SMBFileShareInfo {
 20160  	s.Path = &v
 20161  	return s
 20162  }
 20163  
 20164  // SetReadOnly sets the ReadOnly field's value.
 20165  func (s *SMBFileShareInfo) SetReadOnly(v bool) *SMBFileShareInfo {
 20166  	s.ReadOnly = &v
 20167  	return s
 20168  }
 20169  
 20170  // SetRequesterPays sets the RequesterPays field's value.
 20171  func (s *SMBFileShareInfo) SetRequesterPays(v bool) *SMBFileShareInfo {
 20172  	s.RequesterPays = &v
 20173  	return s
 20174  }
 20175  
 20176  // SetRole sets the Role field's value.
 20177  func (s *SMBFileShareInfo) SetRole(v string) *SMBFileShareInfo {
 20178  	s.Role = &v
 20179  	return s
 20180  }
 20181  
 20182  // SetSMBACLEnabled sets the SMBACLEnabled field's value.
 20183  func (s *SMBFileShareInfo) SetSMBACLEnabled(v bool) *SMBFileShareInfo {
 20184  	s.SMBACLEnabled = &v
 20185  	return s
 20186  }
 20187  
 20188  // SetTags sets the Tags field's value.
 20189  func (s *SMBFileShareInfo) SetTags(v []*Tag) *SMBFileShareInfo {
 20190  	s.Tags = v
 20191  	return s
 20192  }
 20193  
 20194  // SetVPCEndpointDNSName sets the VPCEndpointDNSName field's value.
 20195  func (s *SMBFileShareInfo) SetVPCEndpointDNSName(v string) *SMBFileShareInfo {
 20196  	s.VPCEndpointDNSName = &v
 20197  	return s
 20198  }
 20199  
 20200  // SetValidUserList sets the ValidUserList field's value.
 20201  func (s *SMBFileShareInfo) SetValidUserList(v []*string) *SMBFileShareInfo {
 20202  	s.ValidUserList = v
 20203  	return s
 20204  }
 20205  
 20206  // An internal server error has occurred because the service is unavailable.
 20207  // For more information, see the error and message fields.
 20208  type ServiceUnavailableError struct {
 20209  	_            struct{}                  `type:"structure"`
 20210  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 20211  
 20212  	// A StorageGatewayError that provides more information about the cause of the
 20213  	// error.
 20214  	Error_ *Error `locationName:"error" type:"structure"`
 20215  
 20216  	// A human-readable message describing the error that occurred.
 20217  	Message_ *string `locationName:"message" type:"string"`
 20218  }
 20219  
 20220  // String returns the string representation.
 20221  //
 20222  // API parameter values that are decorated as "sensitive" in the API will not
 20223  // be included in the string output. The member name will be present, but the
 20224  // value will be replaced with "sensitive".
 20225  func (s ServiceUnavailableError) String() string {
 20226  	return awsutil.Prettify(s)
 20227  }
 20228  
 20229  // GoString returns the string representation.
 20230  //
 20231  // API parameter values that are decorated as "sensitive" in the API will not
 20232  // be included in the string output. The member name will be present, but the
 20233  // value will be replaced with "sensitive".
 20234  func (s ServiceUnavailableError) GoString() string {
 20235  	return s.String()
 20236  }
 20237  
 20238  func newErrorServiceUnavailableError(v protocol.ResponseMetadata) error {
 20239  	return &ServiceUnavailableError{
 20240  		RespMetadata: v,
 20241  	}
 20242  }
 20243  
 20244  // Code returns the exception type name.
 20245  func (s *ServiceUnavailableError) Code() string {
 20246  	return "ServiceUnavailableError"
 20247  }
 20248  
 20249  // Message returns the exception's message.
 20250  func (s *ServiceUnavailableError) Message() string {
 20251  	if s.Message_ != nil {
 20252  		return *s.Message_
 20253  	}
 20254  	return ""
 20255  }
 20256  
 20257  // OrigErr always returns nil, satisfies awserr.Error interface.
 20258  func (s *ServiceUnavailableError) OrigErr() error {
 20259  	return nil
 20260  }
 20261  
 20262  func (s *ServiceUnavailableError) Error() string {
 20263  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 20264  }
 20265  
 20266  // Status code returns the HTTP status code for the request's response error.
 20267  func (s *ServiceUnavailableError) StatusCode() int {
 20268  	return s.RespMetadata.StatusCode
 20269  }
 20270  
 20271  // RequestID returns the service's response RequestID for request.
 20272  func (s *ServiceUnavailableError) RequestID() string {
 20273  	return s.RespMetadata.RequestID
 20274  }
 20275  
 20276  // SetLocalConsolePasswordInput
 20277  type SetLocalConsolePasswordInput struct {
 20278  	_ struct{} `type:"structure"`
 20279  
 20280  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 20281  	// to return a list of gateways for your account and Region.
 20282  	//
 20283  	// GatewayARN is a required field
 20284  	GatewayARN *string `min:"50" type:"string" required:"true"`
 20285  
 20286  	// The password you want to set for your VM local console.
 20287  	//
 20288  	// LocalConsolePassword is a sensitive parameter and its value will be
 20289  	// replaced with "sensitive" in string returned by SetLocalConsolePasswordInput's
 20290  	// String and GoString methods.
 20291  	//
 20292  	// LocalConsolePassword is a required field
 20293  	LocalConsolePassword *string `min:"6" type:"string" required:"true" sensitive:"true"`
 20294  }
 20295  
 20296  // String returns the string representation.
 20297  //
 20298  // API parameter values that are decorated as "sensitive" in the API will not
 20299  // be included in the string output. The member name will be present, but the
 20300  // value will be replaced with "sensitive".
 20301  func (s SetLocalConsolePasswordInput) String() string {
 20302  	return awsutil.Prettify(s)
 20303  }
 20304  
 20305  // GoString returns the string representation.
 20306  //
 20307  // API parameter values that are decorated as "sensitive" in the API will not
 20308  // be included in the string output. The member name will be present, but the
 20309  // value will be replaced with "sensitive".
 20310  func (s SetLocalConsolePasswordInput) GoString() string {
 20311  	return s.String()
 20312  }
 20313  
 20314  // Validate inspects the fields of the type to determine if they are valid.
 20315  func (s *SetLocalConsolePasswordInput) Validate() error {
 20316  	invalidParams := request.ErrInvalidParams{Context: "SetLocalConsolePasswordInput"}
 20317  	if s.GatewayARN == nil {
 20318  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 20319  	}
 20320  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 20321  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 20322  	}
 20323  	if s.LocalConsolePassword == nil {
 20324  		invalidParams.Add(request.NewErrParamRequired("LocalConsolePassword"))
 20325  	}
 20326  	if s.LocalConsolePassword != nil && len(*s.LocalConsolePassword) < 6 {
 20327  		invalidParams.Add(request.NewErrParamMinLen("LocalConsolePassword", 6))
 20328  	}
 20329  
 20330  	if invalidParams.Len() > 0 {
 20331  		return invalidParams
 20332  	}
 20333  	return nil
 20334  }
 20335  
 20336  // SetGatewayARN sets the GatewayARN field's value.
 20337  func (s *SetLocalConsolePasswordInput) SetGatewayARN(v string) *SetLocalConsolePasswordInput {
 20338  	s.GatewayARN = &v
 20339  	return s
 20340  }
 20341  
 20342  // SetLocalConsolePassword sets the LocalConsolePassword field's value.
 20343  func (s *SetLocalConsolePasswordInput) SetLocalConsolePassword(v string) *SetLocalConsolePasswordInput {
 20344  	s.LocalConsolePassword = &v
 20345  	return s
 20346  }
 20347  
 20348  type SetLocalConsolePasswordOutput struct {
 20349  	_ struct{} `type:"structure"`
 20350  
 20351  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 20352  	// to return a list of gateways for your account and Region.
 20353  	GatewayARN *string `min:"50" type:"string"`
 20354  }
 20355  
 20356  // String returns the string representation.
 20357  //
 20358  // API parameter values that are decorated as "sensitive" in the API will not
 20359  // be included in the string output. The member name will be present, but the
 20360  // value will be replaced with "sensitive".
 20361  func (s SetLocalConsolePasswordOutput) String() string {
 20362  	return awsutil.Prettify(s)
 20363  }
 20364  
 20365  // GoString returns the string representation.
 20366  //
 20367  // API parameter values that are decorated as "sensitive" in the API will not
 20368  // be included in the string output. The member name will be present, but the
 20369  // value will be replaced with "sensitive".
 20370  func (s SetLocalConsolePasswordOutput) GoString() string {
 20371  	return s.String()
 20372  }
 20373  
 20374  // SetGatewayARN sets the GatewayARN field's value.
 20375  func (s *SetLocalConsolePasswordOutput) SetGatewayARN(v string) *SetLocalConsolePasswordOutput {
 20376  	s.GatewayARN = &v
 20377  	return s
 20378  }
 20379  
 20380  // SetSMBGuestPasswordInput
 20381  type SetSMBGuestPasswordInput struct {
 20382  	_ struct{} `type:"structure"`
 20383  
 20384  	// The Amazon Resource Name (ARN) of the S3 File Gateway the SMB file share
 20385  	// is associated with.
 20386  	//
 20387  	// GatewayARN is a required field
 20388  	GatewayARN *string `min:"50" type:"string" required:"true"`
 20389  
 20390  	// The password that you want to set for your SMB server.
 20391  	//
 20392  	// Password is a sensitive parameter and its value will be
 20393  	// replaced with "sensitive" in string returned by SetSMBGuestPasswordInput's
 20394  	// String and GoString methods.
 20395  	//
 20396  	// Password is a required field
 20397  	Password *string `min:"6" type:"string" required:"true" sensitive:"true"`
 20398  }
 20399  
 20400  // String returns the string representation.
 20401  //
 20402  // API parameter values that are decorated as "sensitive" in the API will not
 20403  // be included in the string output. The member name will be present, but the
 20404  // value will be replaced with "sensitive".
 20405  func (s SetSMBGuestPasswordInput) String() string {
 20406  	return awsutil.Prettify(s)
 20407  }
 20408  
 20409  // GoString returns the string representation.
 20410  //
 20411  // API parameter values that are decorated as "sensitive" in the API will not
 20412  // be included in the string output. The member name will be present, but the
 20413  // value will be replaced with "sensitive".
 20414  func (s SetSMBGuestPasswordInput) GoString() string {
 20415  	return s.String()
 20416  }
 20417  
 20418  // Validate inspects the fields of the type to determine if they are valid.
 20419  func (s *SetSMBGuestPasswordInput) Validate() error {
 20420  	invalidParams := request.ErrInvalidParams{Context: "SetSMBGuestPasswordInput"}
 20421  	if s.GatewayARN == nil {
 20422  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 20423  	}
 20424  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 20425  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 20426  	}
 20427  	if s.Password == nil {
 20428  		invalidParams.Add(request.NewErrParamRequired("Password"))
 20429  	}
 20430  	if s.Password != nil && len(*s.Password) < 6 {
 20431  		invalidParams.Add(request.NewErrParamMinLen("Password", 6))
 20432  	}
 20433  
 20434  	if invalidParams.Len() > 0 {
 20435  		return invalidParams
 20436  	}
 20437  	return nil
 20438  }
 20439  
 20440  // SetGatewayARN sets the GatewayARN field's value.
 20441  func (s *SetSMBGuestPasswordInput) SetGatewayARN(v string) *SetSMBGuestPasswordInput {
 20442  	s.GatewayARN = &v
 20443  	return s
 20444  }
 20445  
 20446  // SetPassword sets the Password field's value.
 20447  func (s *SetSMBGuestPasswordInput) SetPassword(v string) *SetSMBGuestPasswordInput {
 20448  	s.Password = &v
 20449  	return s
 20450  }
 20451  
 20452  type SetSMBGuestPasswordOutput struct {
 20453  	_ struct{} `type:"structure"`
 20454  
 20455  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 20456  	// to return a list of gateways for your account and Region.
 20457  	GatewayARN *string `min:"50" type:"string"`
 20458  }
 20459  
 20460  // String returns the string representation.
 20461  //
 20462  // API parameter values that are decorated as "sensitive" in the API will not
 20463  // be included in the string output. The member name will be present, but the
 20464  // value will be replaced with "sensitive".
 20465  func (s SetSMBGuestPasswordOutput) String() string {
 20466  	return awsutil.Prettify(s)
 20467  }
 20468  
 20469  // GoString returns the string representation.
 20470  //
 20471  // API parameter values that are decorated as "sensitive" in the API will not
 20472  // be included in the string output. The member name will be present, but the
 20473  // value will be replaced with "sensitive".
 20474  func (s SetSMBGuestPasswordOutput) GoString() string {
 20475  	return s.String()
 20476  }
 20477  
 20478  // SetGatewayARN sets the GatewayARN field's value.
 20479  func (s *SetSMBGuestPasswordOutput) SetGatewayARN(v string) *SetSMBGuestPasswordOutput {
 20480  	s.GatewayARN = &v
 20481  	return s
 20482  }
 20483  
 20484  // A JSON object containing the Amazon Resource Name (ARN) of the gateway to
 20485  // shut down.
 20486  type ShutdownGatewayInput struct {
 20487  	_ struct{} `type:"structure"`
 20488  
 20489  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 20490  	// to return a list of gateways for your account and Region.
 20491  	//
 20492  	// GatewayARN is a required field
 20493  	GatewayARN *string `min:"50" type:"string" required:"true"`
 20494  }
 20495  
 20496  // String returns the string representation.
 20497  //
 20498  // API parameter values that are decorated as "sensitive" in the API will not
 20499  // be included in the string output. The member name will be present, but the
 20500  // value will be replaced with "sensitive".
 20501  func (s ShutdownGatewayInput) String() string {
 20502  	return awsutil.Prettify(s)
 20503  }
 20504  
 20505  // GoString returns the string representation.
 20506  //
 20507  // API parameter values that are decorated as "sensitive" in the API will not
 20508  // be included in the string output. The member name will be present, but the
 20509  // value will be replaced with "sensitive".
 20510  func (s ShutdownGatewayInput) GoString() string {
 20511  	return s.String()
 20512  }
 20513  
 20514  // Validate inspects the fields of the type to determine if they are valid.
 20515  func (s *ShutdownGatewayInput) Validate() error {
 20516  	invalidParams := request.ErrInvalidParams{Context: "ShutdownGatewayInput"}
 20517  	if s.GatewayARN == nil {
 20518  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 20519  	}
 20520  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 20521  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 20522  	}
 20523  
 20524  	if invalidParams.Len() > 0 {
 20525  		return invalidParams
 20526  	}
 20527  	return nil
 20528  }
 20529  
 20530  // SetGatewayARN sets the GatewayARN field's value.
 20531  func (s *ShutdownGatewayInput) SetGatewayARN(v string) *ShutdownGatewayInput {
 20532  	s.GatewayARN = &v
 20533  	return s
 20534  }
 20535  
 20536  // A JSON object containing the Amazon Resource Name (ARN) of the gateway that
 20537  // was shut down.
 20538  type ShutdownGatewayOutput struct {
 20539  	_ struct{} `type:"structure"`
 20540  
 20541  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 20542  	// to return a list of gateways for your account and Region.
 20543  	GatewayARN *string `min:"50" type:"string"`
 20544  }
 20545  
 20546  // String returns the string representation.
 20547  //
 20548  // API parameter values that are decorated as "sensitive" in the API will not
 20549  // be included in the string output. The member name will be present, but the
 20550  // value will be replaced with "sensitive".
 20551  func (s ShutdownGatewayOutput) String() string {
 20552  	return awsutil.Prettify(s)
 20553  }
 20554  
 20555  // GoString returns the string representation.
 20556  //
 20557  // API parameter values that are decorated as "sensitive" in the API will not
 20558  // be included in the string output. The member name will be present, but the
 20559  // value will be replaced with "sensitive".
 20560  func (s ShutdownGatewayOutput) GoString() string {
 20561  	return s.String()
 20562  }
 20563  
 20564  // SetGatewayARN sets the GatewayARN field's value.
 20565  func (s *ShutdownGatewayOutput) SetGatewayARN(v string) *ShutdownGatewayOutput {
 20566  	s.GatewayARN = &v
 20567  	return s
 20568  }
 20569  
 20570  type StartAvailabilityMonitorTestInput struct {
 20571  	_ struct{} `type:"structure"`
 20572  
 20573  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 20574  	// to return a list of gateways for your account and Region.
 20575  	//
 20576  	// GatewayARN is a required field
 20577  	GatewayARN *string `min:"50" type:"string" required:"true"`
 20578  }
 20579  
 20580  // String returns the string representation.
 20581  //
 20582  // API parameter values that are decorated as "sensitive" in the API will not
 20583  // be included in the string output. The member name will be present, but the
 20584  // value will be replaced with "sensitive".
 20585  func (s StartAvailabilityMonitorTestInput) String() string {
 20586  	return awsutil.Prettify(s)
 20587  }
 20588  
 20589  // GoString returns the string representation.
 20590  //
 20591  // API parameter values that are decorated as "sensitive" in the API will not
 20592  // be included in the string output. The member name will be present, but the
 20593  // value will be replaced with "sensitive".
 20594  func (s StartAvailabilityMonitorTestInput) GoString() string {
 20595  	return s.String()
 20596  }
 20597  
 20598  // Validate inspects the fields of the type to determine if they are valid.
 20599  func (s *StartAvailabilityMonitorTestInput) Validate() error {
 20600  	invalidParams := request.ErrInvalidParams{Context: "StartAvailabilityMonitorTestInput"}
 20601  	if s.GatewayARN == nil {
 20602  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 20603  	}
 20604  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 20605  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 20606  	}
 20607  
 20608  	if invalidParams.Len() > 0 {
 20609  		return invalidParams
 20610  	}
 20611  	return nil
 20612  }
 20613  
 20614  // SetGatewayARN sets the GatewayARN field's value.
 20615  func (s *StartAvailabilityMonitorTestInput) SetGatewayARN(v string) *StartAvailabilityMonitorTestInput {
 20616  	s.GatewayARN = &v
 20617  	return s
 20618  }
 20619  
 20620  type StartAvailabilityMonitorTestOutput struct {
 20621  	_ struct{} `type:"structure"`
 20622  
 20623  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 20624  	// to return a list of gateways for your account and Region.
 20625  	GatewayARN *string `min:"50" type:"string"`
 20626  }
 20627  
 20628  // String returns the string representation.
 20629  //
 20630  // API parameter values that are decorated as "sensitive" in the API will not
 20631  // be included in the string output. The member name will be present, but the
 20632  // value will be replaced with "sensitive".
 20633  func (s StartAvailabilityMonitorTestOutput) String() string {
 20634  	return awsutil.Prettify(s)
 20635  }
 20636  
 20637  // GoString returns the string representation.
 20638  //
 20639  // API parameter values that are decorated as "sensitive" in the API will not
 20640  // be included in the string output. The member name will be present, but the
 20641  // value will be replaced with "sensitive".
 20642  func (s StartAvailabilityMonitorTestOutput) GoString() string {
 20643  	return s.String()
 20644  }
 20645  
 20646  // SetGatewayARN sets the GatewayARN field's value.
 20647  func (s *StartAvailabilityMonitorTestOutput) SetGatewayARN(v string) *StartAvailabilityMonitorTestOutput {
 20648  	s.GatewayARN = &v
 20649  	return s
 20650  }
 20651  
 20652  // A JSON object containing the Amazon Resource Name (ARN) of the gateway to
 20653  // start.
 20654  type StartGatewayInput struct {
 20655  	_ struct{} `type:"structure"`
 20656  
 20657  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 20658  	// to return a list of gateways for your account and Region.
 20659  	//
 20660  	// GatewayARN is a required field
 20661  	GatewayARN *string `min:"50" type:"string" required:"true"`
 20662  }
 20663  
 20664  // String returns the string representation.
 20665  //
 20666  // API parameter values that are decorated as "sensitive" in the API will not
 20667  // be included in the string output. The member name will be present, but the
 20668  // value will be replaced with "sensitive".
 20669  func (s StartGatewayInput) String() string {
 20670  	return awsutil.Prettify(s)
 20671  }
 20672  
 20673  // GoString returns the string representation.
 20674  //
 20675  // API parameter values that are decorated as "sensitive" in the API will not
 20676  // be included in the string output. The member name will be present, but the
 20677  // value will be replaced with "sensitive".
 20678  func (s StartGatewayInput) GoString() string {
 20679  	return s.String()
 20680  }
 20681  
 20682  // Validate inspects the fields of the type to determine if they are valid.
 20683  func (s *StartGatewayInput) Validate() error {
 20684  	invalidParams := request.ErrInvalidParams{Context: "StartGatewayInput"}
 20685  	if s.GatewayARN == nil {
 20686  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 20687  	}
 20688  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 20689  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 20690  	}
 20691  
 20692  	if invalidParams.Len() > 0 {
 20693  		return invalidParams
 20694  	}
 20695  	return nil
 20696  }
 20697  
 20698  // SetGatewayARN sets the GatewayARN field's value.
 20699  func (s *StartGatewayInput) SetGatewayARN(v string) *StartGatewayInput {
 20700  	s.GatewayARN = &v
 20701  	return s
 20702  }
 20703  
 20704  // A JSON object containing the Amazon Resource Name (ARN) of the gateway that
 20705  // was restarted.
 20706  type StartGatewayOutput struct {
 20707  	_ struct{} `type:"structure"`
 20708  
 20709  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 20710  	// to return a list of gateways for your account and Region.
 20711  	GatewayARN *string `min:"50" type:"string"`
 20712  }
 20713  
 20714  // String returns the string representation.
 20715  //
 20716  // API parameter values that are decorated as "sensitive" in the API will not
 20717  // be included in the string output. The member name will be present, but the
 20718  // value will be replaced with "sensitive".
 20719  func (s StartGatewayOutput) String() string {
 20720  	return awsutil.Prettify(s)
 20721  }
 20722  
 20723  // GoString returns the string representation.
 20724  //
 20725  // API parameter values that are decorated as "sensitive" in the API will not
 20726  // be included in the string output. The member name will be present, but the
 20727  // value will be replaced with "sensitive".
 20728  func (s StartGatewayOutput) GoString() string {
 20729  	return s.String()
 20730  }
 20731  
 20732  // SetGatewayARN sets the GatewayARN field's value.
 20733  func (s *StartGatewayOutput) SetGatewayARN(v string) *StartGatewayOutput {
 20734  	s.GatewayARN = &v
 20735  	return s
 20736  }
 20737  
 20738  // Describes an iSCSI stored volume.
 20739  type StorediSCSIVolume struct {
 20740  	_ struct{} `type:"structure"`
 20741  
 20742  	// The date the volume was created. Volumes created prior to March 28, 2017
 20743  	// don’t have this timestamp.
 20744  	CreatedDate *time.Time `type:"timestamp"`
 20745  
 20746  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 20747  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 20748  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 20749  	KMSKey *string `min:"7" type:"string"`
 20750  
 20751  	// Indicates if when the stored volume was created, existing data on the underlying
 20752  	// local disk was preserved.
 20753  	//
 20754  	// Valid Values: true | false
 20755  	PreservedExistingData *bool `type:"boolean"`
 20756  
 20757  	// If the stored volume was created from a snapshot, this field contains the
 20758  	// snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
 20759  	SourceSnapshotId *string `type:"string"`
 20760  
 20761  	// The name of the iSCSI target used by an initiator to connect to a volume
 20762  	// and used as a suffix for the target ARN. For example, specifying TargetName
 20763  	// as myvolume results in the target ARN of arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/target/iqn.1997-05.com.amazon:myvolume.
 20764  	// The target name must be unique across all volumes on a gateway.
 20765  	//
 20766  	// If you don't specify a value, Storage Gateway uses the value that was previously
 20767  	// used for this volume as the new target name.
 20768  	TargetName *string `min:"1" type:"string"`
 20769  
 20770  	// The Amazon Resource Name (ARN) of the storage volume.
 20771  	VolumeARN *string `min:"50" type:"string"`
 20772  
 20773  	// A value that indicates whether a storage volume is attached to, detached
 20774  	// from, or is in the process of detaching from a gateway. For more information,
 20775  	// see Moving your volumes to a different gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
 20776  	VolumeAttachmentStatus *string `min:"3" type:"string"`
 20777  
 20778  	// The ID of the local disk that was specified in the CreateStorediSCSIVolume
 20779  	// operation.
 20780  	VolumeDiskId *string `min:"1" type:"string"`
 20781  
 20782  	// The unique identifier of the volume, e.g., vol-AE4B946D.
 20783  	VolumeId *string `min:"12" type:"string"`
 20784  
 20785  	// Represents the percentage complete if the volume is restoring or bootstrapping
 20786  	// that represents the percent of data transferred. This field does not appear
 20787  	// in the response if the stored volume is not restoring or bootstrapping.
 20788  	VolumeProgress *float64 `type:"double"`
 20789  
 20790  	// The size of the volume in bytes.
 20791  	VolumeSizeInBytes *int64 `type:"long"`
 20792  
 20793  	// One of the VolumeStatus values that indicates the state of the storage volume.
 20794  	VolumeStatus *string `min:"3" type:"string"`
 20795  
 20796  	// One of the VolumeType enumeration values describing the type of the volume.
 20797  	VolumeType *string `min:"3" type:"string"`
 20798  
 20799  	// The size of the data stored on the volume in bytes. This value is calculated
 20800  	// based on the number of blocks that are touched, instead of the actual amount
 20801  	// of data written. This value can be useful for sequential write patterns but
 20802  	// less accurate for random write patterns. VolumeUsedInBytes is different from
 20803  	// the compressed size of the volume, which is the value that is used to calculate
 20804  	// your bill.
 20805  	//
 20806  	// This value is not available for volumes created prior to May 13, 2015, until
 20807  	// you store data on the volume.
 20808  	VolumeUsedInBytes *int64 `type:"long"`
 20809  
 20810  	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
 20811  	// for one stored volume.
 20812  	VolumeiSCSIAttributes *VolumeiSCSIAttributes `type:"structure"`
 20813  }
 20814  
 20815  // String returns the string representation.
 20816  //
 20817  // API parameter values that are decorated as "sensitive" in the API will not
 20818  // be included in the string output. The member name will be present, but the
 20819  // value will be replaced with "sensitive".
 20820  func (s StorediSCSIVolume) String() string {
 20821  	return awsutil.Prettify(s)
 20822  }
 20823  
 20824  // GoString returns the string representation.
 20825  //
 20826  // API parameter values that are decorated as "sensitive" in the API will not
 20827  // be included in the string output. The member name will be present, but the
 20828  // value will be replaced with "sensitive".
 20829  func (s StorediSCSIVolume) GoString() string {
 20830  	return s.String()
 20831  }
 20832  
 20833  // SetCreatedDate sets the CreatedDate field's value.
 20834  func (s *StorediSCSIVolume) SetCreatedDate(v time.Time) *StorediSCSIVolume {
 20835  	s.CreatedDate = &v
 20836  	return s
 20837  }
 20838  
 20839  // SetKMSKey sets the KMSKey field's value.
 20840  func (s *StorediSCSIVolume) SetKMSKey(v string) *StorediSCSIVolume {
 20841  	s.KMSKey = &v
 20842  	return s
 20843  }
 20844  
 20845  // SetPreservedExistingData sets the PreservedExistingData field's value.
 20846  func (s *StorediSCSIVolume) SetPreservedExistingData(v bool) *StorediSCSIVolume {
 20847  	s.PreservedExistingData = &v
 20848  	return s
 20849  }
 20850  
 20851  // SetSourceSnapshotId sets the SourceSnapshotId field's value.
 20852  func (s *StorediSCSIVolume) SetSourceSnapshotId(v string) *StorediSCSIVolume {
 20853  	s.SourceSnapshotId = &v
 20854  	return s
 20855  }
 20856  
 20857  // SetTargetName sets the TargetName field's value.
 20858  func (s *StorediSCSIVolume) SetTargetName(v string) *StorediSCSIVolume {
 20859  	s.TargetName = &v
 20860  	return s
 20861  }
 20862  
 20863  // SetVolumeARN sets the VolumeARN field's value.
 20864  func (s *StorediSCSIVolume) SetVolumeARN(v string) *StorediSCSIVolume {
 20865  	s.VolumeARN = &v
 20866  	return s
 20867  }
 20868  
 20869  // SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
 20870  func (s *StorediSCSIVolume) SetVolumeAttachmentStatus(v string) *StorediSCSIVolume {
 20871  	s.VolumeAttachmentStatus = &v
 20872  	return s
 20873  }
 20874  
 20875  // SetVolumeDiskId sets the VolumeDiskId field's value.
 20876  func (s *StorediSCSIVolume) SetVolumeDiskId(v string) *StorediSCSIVolume {
 20877  	s.VolumeDiskId = &v
 20878  	return s
 20879  }
 20880  
 20881  // SetVolumeId sets the VolumeId field's value.
 20882  func (s *StorediSCSIVolume) SetVolumeId(v string) *StorediSCSIVolume {
 20883  	s.VolumeId = &v
 20884  	return s
 20885  }
 20886  
 20887  // SetVolumeProgress sets the VolumeProgress field's value.
 20888  func (s *StorediSCSIVolume) SetVolumeProgress(v float64) *StorediSCSIVolume {
 20889  	s.VolumeProgress = &v
 20890  	return s
 20891  }
 20892  
 20893  // SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
 20894  func (s *StorediSCSIVolume) SetVolumeSizeInBytes(v int64) *StorediSCSIVolume {
 20895  	s.VolumeSizeInBytes = &v
 20896  	return s
 20897  }
 20898  
 20899  // SetVolumeStatus sets the VolumeStatus field's value.
 20900  func (s *StorediSCSIVolume) SetVolumeStatus(v string) *StorediSCSIVolume {
 20901  	s.VolumeStatus = &v
 20902  	return s
 20903  }
 20904  
 20905  // SetVolumeType sets the VolumeType field's value.
 20906  func (s *StorediSCSIVolume) SetVolumeType(v string) *StorediSCSIVolume {
 20907  	s.VolumeType = &v
 20908  	return s
 20909  }
 20910  
 20911  // SetVolumeUsedInBytes sets the VolumeUsedInBytes field's value.
 20912  func (s *StorediSCSIVolume) SetVolumeUsedInBytes(v int64) *StorediSCSIVolume {
 20913  	s.VolumeUsedInBytes = &v
 20914  	return s
 20915  }
 20916  
 20917  // SetVolumeiSCSIAttributes sets the VolumeiSCSIAttributes field's value.
 20918  func (s *StorediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *StorediSCSIVolume {
 20919  	s.VolumeiSCSIAttributes = v
 20920  	return s
 20921  }
 20922  
 20923  // A key-value pair that helps you manage, filter, and search for your resource.
 20924  // Allowed characters: letters, white space, and numbers, representable in UTF-8,
 20925  // and the following characters: + - = . _ : /.
 20926  type Tag struct {
 20927  	_ struct{} `type:"structure"`
 20928  
 20929  	// Tag key. The key can't start with aws:.
 20930  	//
 20931  	// Key is a required field
 20932  	Key *string `min:"1" type:"string" required:"true"`
 20933  
 20934  	// Value of the tag key.
 20935  	//
 20936  	// Value is a required field
 20937  	Value *string `type:"string" required:"true"`
 20938  }
 20939  
 20940  // String returns the string representation.
 20941  //
 20942  // API parameter values that are decorated as "sensitive" in the API will not
 20943  // be included in the string output. The member name will be present, but the
 20944  // value will be replaced with "sensitive".
 20945  func (s Tag) String() string {
 20946  	return awsutil.Prettify(s)
 20947  }
 20948  
 20949  // GoString returns the string representation.
 20950  //
 20951  // API parameter values that are decorated as "sensitive" in the API will not
 20952  // be included in the string output. The member name will be present, but the
 20953  // value will be replaced with "sensitive".
 20954  func (s Tag) GoString() string {
 20955  	return s.String()
 20956  }
 20957  
 20958  // Validate inspects the fields of the type to determine if they are valid.
 20959  func (s *Tag) Validate() error {
 20960  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 20961  	if s.Key == nil {
 20962  		invalidParams.Add(request.NewErrParamRequired("Key"))
 20963  	}
 20964  	if s.Key != nil && len(*s.Key) < 1 {
 20965  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 20966  	}
 20967  	if s.Value == nil {
 20968  		invalidParams.Add(request.NewErrParamRequired("Value"))
 20969  	}
 20970  
 20971  	if invalidParams.Len() > 0 {
 20972  		return invalidParams
 20973  	}
 20974  	return nil
 20975  }
 20976  
 20977  // SetKey sets the Key field's value.
 20978  func (s *Tag) SetKey(v string) *Tag {
 20979  	s.Key = &v
 20980  	return s
 20981  }
 20982  
 20983  // SetValue sets the Value field's value.
 20984  func (s *Tag) SetValue(v string) *Tag {
 20985  	s.Value = &v
 20986  	return s
 20987  }
 20988  
 20989  // Describes a virtual tape object.
 20990  type Tape struct {
 20991  	_ struct{} `type:"structure"`
 20992  
 20993  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 20994  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 20995  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 20996  	KMSKey *string `min:"7" type:"string"`
 20997  
 20998  	// The date that the tape enters a custom tape pool.
 20999  	PoolEntryDate *time.Time `type:"timestamp"`
 21000  
 21001  	// The ID of the pool that contains tapes that will be archived. The tapes in
 21002  	// this pool are archived in the S3 storage class that is associated with the
 21003  	// pool. When you use your backup application to eject the tape, the tape is
 21004  	// archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive)
 21005  	// that corresponds to the pool.
 21006  	//
 21007  	// Valid Values: GLACIER | DEEP_ARCHIVE
 21008  	PoolId *string `min:"1" type:"string"`
 21009  
 21010  	// For archiving virtual tapes, indicates how much data remains to be uploaded
 21011  	// before archiving is complete.
 21012  	//
 21013  	// Range: 0 (not started) to 100 (complete).
 21014  	Progress *float64 `type:"double"`
 21015  
 21016  	// The date that the tape is first archived with tape retention lock enabled.
 21017  	RetentionStartDate *time.Time `type:"timestamp"`
 21018  
 21019  	// The Amazon Resource Name (ARN) of the virtual tape.
 21020  	TapeARN *string `min:"50" type:"string"`
 21021  
 21022  	// The barcode that identifies a specific virtual tape.
 21023  	TapeBarcode *string `min:"7" type:"string"`
 21024  
 21025  	// The date the virtual tape was created.
 21026  	TapeCreatedDate *time.Time `type:"timestamp"`
 21027  
 21028  	// The size, in bytes, of the virtual tape capacity.
 21029  	TapeSizeInBytes *int64 `type:"long"`
 21030  
 21031  	// The current state of the virtual tape.
 21032  	TapeStatus *string `type:"string"`
 21033  
 21034  	// The size, in bytes, of data stored on the virtual tape.
 21035  	//
 21036  	// This value is not available for tapes created prior to May 13, 2015.
 21037  	TapeUsedInBytes *int64 `type:"long"`
 21038  
 21039  	// The virtual tape library (VTL) device that the virtual tape is associated
 21040  	// with.
 21041  	VTLDevice *string `min:"50" type:"string"`
 21042  
 21043  	// If the tape is archived as write-once-read-many (WORM), this value is true.
 21044  	Worm *bool `type:"boolean"`
 21045  }
 21046  
 21047  // String returns the string representation.
 21048  //
 21049  // API parameter values that are decorated as "sensitive" in the API will not
 21050  // be included in the string output. The member name will be present, but the
 21051  // value will be replaced with "sensitive".
 21052  func (s Tape) String() string {
 21053  	return awsutil.Prettify(s)
 21054  }
 21055  
 21056  // GoString returns the string representation.
 21057  //
 21058  // API parameter values that are decorated as "sensitive" in the API will not
 21059  // be included in the string output. The member name will be present, but the
 21060  // value will be replaced with "sensitive".
 21061  func (s Tape) GoString() string {
 21062  	return s.String()
 21063  }
 21064  
 21065  // SetKMSKey sets the KMSKey field's value.
 21066  func (s *Tape) SetKMSKey(v string) *Tape {
 21067  	s.KMSKey = &v
 21068  	return s
 21069  }
 21070  
 21071  // SetPoolEntryDate sets the PoolEntryDate field's value.
 21072  func (s *Tape) SetPoolEntryDate(v time.Time) *Tape {
 21073  	s.PoolEntryDate = &v
 21074  	return s
 21075  }
 21076  
 21077  // SetPoolId sets the PoolId field's value.
 21078  func (s *Tape) SetPoolId(v string) *Tape {
 21079  	s.PoolId = &v
 21080  	return s
 21081  }
 21082  
 21083  // SetProgress sets the Progress field's value.
 21084  func (s *Tape) SetProgress(v float64) *Tape {
 21085  	s.Progress = &v
 21086  	return s
 21087  }
 21088  
 21089  // SetRetentionStartDate sets the RetentionStartDate field's value.
 21090  func (s *Tape) SetRetentionStartDate(v time.Time) *Tape {
 21091  	s.RetentionStartDate = &v
 21092  	return s
 21093  }
 21094  
 21095  // SetTapeARN sets the TapeARN field's value.
 21096  func (s *Tape) SetTapeARN(v string) *Tape {
 21097  	s.TapeARN = &v
 21098  	return s
 21099  }
 21100  
 21101  // SetTapeBarcode sets the TapeBarcode field's value.
 21102  func (s *Tape) SetTapeBarcode(v string) *Tape {
 21103  	s.TapeBarcode = &v
 21104  	return s
 21105  }
 21106  
 21107  // SetTapeCreatedDate sets the TapeCreatedDate field's value.
 21108  func (s *Tape) SetTapeCreatedDate(v time.Time) *Tape {
 21109  	s.TapeCreatedDate = &v
 21110  	return s
 21111  }
 21112  
 21113  // SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
 21114  func (s *Tape) SetTapeSizeInBytes(v int64) *Tape {
 21115  	s.TapeSizeInBytes = &v
 21116  	return s
 21117  }
 21118  
 21119  // SetTapeStatus sets the TapeStatus field's value.
 21120  func (s *Tape) SetTapeStatus(v string) *Tape {
 21121  	s.TapeStatus = &v
 21122  	return s
 21123  }
 21124  
 21125  // SetTapeUsedInBytes sets the TapeUsedInBytes field's value.
 21126  func (s *Tape) SetTapeUsedInBytes(v int64) *Tape {
 21127  	s.TapeUsedInBytes = &v
 21128  	return s
 21129  }
 21130  
 21131  // SetVTLDevice sets the VTLDevice field's value.
 21132  func (s *Tape) SetVTLDevice(v string) *Tape {
 21133  	s.VTLDevice = &v
 21134  	return s
 21135  }
 21136  
 21137  // SetWorm sets the Worm field's value.
 21138  func (s *Tape) SetWorm(v bool) *Tape {
 21139  	s.Worm = &v
 21140  	return s
 21141  }
 21142  
 21143  // Represents a virtual tape that is archived in the virtual tape shelf (VTS).
 21144  type TapeArchive struct {
 21145  	_ struct{} `type:"structure"`
 21146  
 21147  	// The time that the archiving of the virtual tape was completed.
 21148  	//
 21149  	// The default timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z'
 21150  	// format.
 21151  	CompletionTime *time.Time `type:"timestamp"`
 21152  
 21153  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 21154  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 21155  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 21156  	KMSKey *string `min:"7" type:"string"`
 21157  
 21158  	// The time that the tape entered the custom tape pool.
 21159  	//
 21160  	// The default timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z'
 21161  	// format.
 21162  	PoolEntryDate *time.Time `type:"timestamp"`
 21163  
 21164  	// The ID of the pool that was used to archive the tape. The tapes in this pool
 21165  	// are archived in the S3 storage class that is associated with the pool.
 21166  	//
 21167  	// Valid Values: GLACIER | DEEP_ARCHIVE
 21168  	PoolId *string `min:"1" type:"string"`
 21169  
 21170  	// If the archived tape is subject to tape retention lock, the date that the
 21171  	// archived tape started being retained.
 21172  	RetentionStartDate *time.Time `type:"timestamp"`
 21173  
 21174  	// The Amazon Resource Name (ARN) of the tape gateway that the virtual tape
 21175  	// is being retrieved to.
 21176  	//
 21177  	// The virtual tape is retrieved from the virtual tape shelf (VTS).
 21178  	RetrievedTo *string `min:"50" type:"string"`
 21179  
 21180  	// The Amazon Resource Name (ARN) of an archived virtual tape.
 21181  	TapeARN *string `min:"50" type:"string"`
 21182  
 21183  	// The barcode that identifies the archived virtual tape.
 21184  	TapeBarcode *string `min:"7" type:"string"`
 21185  
 21186  	// The date the virtual tape was created.
 21187  	TapeCreatedDate *time.Time `type:"timestamp"`
 21188  
 21189  	// The size, in bytes, of the archived virtual tape.
 21190  	TapeSizeInBytes *int64 `type:"long"`
 21191  
 21192  	// The current state of the archived virtual tape.
 21193  	TapeStatus *string `type:"string"`
 21194  
 21195  	// The size, in bytes, of data stored on the virtual tape.
 21196  	//
 21197  	// This value is not available for tapes created prior to May 13, 2015.
 21198  	TapeUsedInBytes *int64 `type:"long"`
 21199  
 21200  	// Set to true if the archived tape is stored as write-once-read-many (WORM).
 21201  	Worm *bool `type:"boolean"`
 21202  }
 21203  
 21204  // String returns the string representation.
 21205  //
 21206  // API parameter values that are decorated as "sensitive" in the API will not
 21207  // be included in the string output. The member name will be present, but the
 21208  // value will be replaced with "sensitive".
 21209  func (s TapeArchive) String() string {
 21210  	return awsutil.Prettify(s)
 21211  }
 21212  
 21213  // GoString returns the string representation.
 21214  //
 21215  // API parameter values that are decorated as "sensitive" in the API will not
 21216  // be included in the string output. The member name will be present, but the
 21217  // value will be replaced with "sensitive".
 21218  func (s TapeArchive) GoString() string {
 21219  	return s.String()
 21220  }
 21221  
 21222  // SetCompletionTime sets the CompletionTime field's value.
 21223  func (s *TapeArchive) SetCompletionTime(v time.Time) *TapeArchive {
 21224  	s.CompletionTime = &v
 21225  	return s
 21226  }
 21227  
 21228  // SetKMSKey sets the KMSKey field's value.
 21229  func (s *TapeArchive) SetKMSKey(v string) *TapeArchive {
 21230  	s.KMSKey = &v
 21231  	return s
 21232  }
 21233  
 21234  // SetPoolEntryDate sets the PoolEntryDate field's value.
 21235  func (s *TapeArchive) SetPoolEntryDate(v time.Time) *TapeArchive {
 21236  	s.PoolEntryDate = &v
 21237  	return s
 21238  }
 21239  
 21240  // SetPoolId sets the PoolId field's value.
 21241  func (s *TapeArchive) SetPoolId(v string) *TapeArchive {
 21242  	s.PoolId = &v
 21243  	return s
 21244  }
 21245  
 21246  // SetRetentionStartDate sets the RetentionStartDate field's value.
 21247  func (s *TapeArchive) SetRetentionStartDate(v time.Time) *TapeArchive {
 21248  	s.RetentionStartDate = &v
 21249  	return s
 21250  }
 21251  
 21252  // SetRetrievedTo sets the RetrievedTo field's value.
 21253  func (s *TapeArchive) SetRetrievedTo(v string) *TapeArchive {
 21254  	s.RetrievedTo = &v
 21255  	return s
 21256  }
 21257  
 21258  // SetTapeARN sets the TapeARN field's value.
 21259  func (s *TapeArchive) SetTapeARN(v string) *TapeArchive {
 21260  	s.TapeARN = &v
 21261  	return s
 21262  }
 21263  
 21264  // SetTapeBarcode sets the TapeBarcode field's value.
 21265  func (s *TapeArchive) SetTapeBarcode(v string) *TapeArchive {
 21266  	s.TapeBarcode = &v
 21267  	return s
 21268  }
 21269  
 21270  // SetTapeCreatedDate sets the TapeCreatedDate field's value.
 21271  func (s *TapeArchive) SetTapeCreatedDate(v time.Time) *TapeArchive {
 21272  	s.TapeCreatedDate = &v
 21273  	return s
 21274  }
 21275  
 21276  // SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
 21277  func (s *TapeArchive) SetTapeSizeInBytes(v int64) *TapeArchive {
 21278  	s.TapeSizeInBytes = &v
 21279  	return s
 21280  }
 21281  
 21282  // SetTapeStatus sets the TapeStatus field's value.
 21283  func (s *TapeArchive) SetTapeStatus(v string) *TapeArchive {
 21284  	s.TapeStatus = &v
 21285  	return s
 21286  }
 21287  
 21288  // SetTapeUsedInBytes sets the TapeUsedInBytes field's value.
 21289  func (s *TapeArchive) SetTapeUsedInBytes(v int64) *TapeArchive {
 21290  	s.TapeUsedInBytes = &v
 21291  	return s
 21292  }
 21293  
 21294  // SetWorm sets the Worm field's value.
 21295  func (s *TapeArchive) SetWorm(v bool) *TapeArchive {
 21296  	s.Worm = &v
 21297  	return s
 21298  }
 21299  
 21300  // Describes a virtual tape.
 21301  type TapeInfo struct {
 21302  	_ struct{} `type:"structure"`
 21303  
 21304  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 21305  	// to return a list of gateways for your account and Region.
 21306  	GatewayARN *string `min:"50" type:"string"`
 21307  
 21308  	// The date that the tape entered the custom tape pool with tape retention lock
 21309  	// enabled.
 21310  	PoolEntryDate *time.Time `type:"timestamp"`
 21311  
 21312  	// The ID of the pool that you want to add your tape to for archiving. The tape
 21313  	// in this pool is archived in the S3 storage class that is associated with
 21314  	// the pool. When you use your backup application to eject the tape, the tape
 21315  	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
 21316  	// Archive) that corresponds to the pool.
 21317  	//
 21318  	// Valid Values: GLACIER | DEEP_ARCHIVE
 21319  	PoolId *string `min:"1" type:"string"`
 21320  
 21321  	// The date that the tape became subject to tape retention lock.
 21322  	RetentionStartDate *time.Time `type:"timestamp"`
 21323  
 21324  	// The Amazon Resource Name (ARN) of a virtual tape.
 21325  	TapeARN *string `min:"50" type:"string"`
 21326  
 21327  	// The barcode that identifies a specific virtual tape.
 21328  	TapeBarcode *string `min:"7" type:"string"`
 21329  
 21330  	// The size, in bytes, of a virtual tape.
 21331  	TapeSizeInBytes *int64 `type:"long"`
 21332  
 21333  	// The status of the tape.
 21334  	TapeStatus *string `type:"string"`
 21335  }
 21336  
 21337  // String returns the string representation.
 21338  //
 21339  // API parameter values that are decorated as "sensitive" in the API will not
 21340  // be included in the string output. The member name will be present, but the
 21341  // value will be replaced with "sensitive".
 21342  func (s TapeInfo) String() string {
 21343  	return awsutil.Prettify(s)
 21344  }
 21345  
 21346  // GoString returns the string representation.
 21347  //
 21348  // API parameter values that are decorated as "sensitive" in the API will not
 21349  // be included in the string output. The member name will be present, but the
 21350  // value will be replaced with "sensitive".
 21351  func (s TapeInfo) GoString() string {
 21352  	return s.String()
 21353  }
 21354  
 21355  // SetGatewayARN sets the GatewayARN field's value.
 21356  func (s *TapeInfo) SetGatewayARN(v string) *TapeInfo {
 21357  	s.GatewayARN = &v
 21358  	return s
 21359  }
 21360  
 21361  // SetPoolEntryDate sets the PoolEntryDate field's value.
 21362  func (s *TapeInfo) SetPoolEntryDate(v time.Time) *TapeInfo {
 21363  	s.PoolEntryDate = &v
 21364  	return s
 21365  }
 21366  
 21367  // SetPoolId sets the PoolId field's value.
 21368  func (s *TapeInfo) SetPoolId(v string) *TapeInfo {
 21369  	s.PoolId = &v
 21370  	return s
 21371  }
 21372  
 21373  // SetRetentionStartDate sets the RetentionStartDate field's value.
 21374  func (s *TapeInfo) SetRetentionStartDate(v time.Time) *TapeInfo {
 21375  	s.RetentionStartDate = &v
 21376  	return s
 21377  }
 21378  
 21379  // SetTapeARN sets the TapeARN field's value.
 21380  func (s *TapeInfo) SetTapeARN(v string) *TapeInfo {
 21381  	s.TapeARN = &v
 21382  	return s
 21383  }
 21384  
 21385  // SetTapeBarcode sets the TapeBarcode field's value.
 21386  func (s *TapeInfo) SetTapeBarcode(v string) *TapeInfo {
 21387  	s.TapeBarcode = &v
 21388  	return s
 21389  }
 21390  
 21391  // SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
 21392  func (s *TapeInfo) SetTapeSizeInBytes(v int64) *TapeInfo {
 21393  	s.TapeSizeInBytes = &v
 21394  	return s
 21395  }
 21396  
 21397  // SetTapeStatus sets the TapeStatus field's value.
 21398  func (s *TapeInfo) SetTapeStatus(v string) *TapeInfo {
 21399  	s.TapeStatus = &v
 21400  	return s
 21401  }
 21402  
 21403  // Describes a recovery point.
 21404  type TapeRecoveryPointInfo struct {
 21405  	_ struct{} `type:"structure"`
 21406  
 21407  	// The Amazon Resource Name (ARN) of the virtual tape.
 21408  	TapeARN *string `min:"50" type:"string"`
 21409  
 21410  	// The time when the point-in-time view of the virtual tape was replicated for
 21411  	// later recovery.
 21412  	//
 21413  	// The default timestamp format of the tape recovery point time is in the ISO8601
 21414  	// extended YYYY-MM-DD'T'HH:MM:SS'Z' format.
 21415  	TapeRecoveryPointTime *time.Time `type:"timestamp"`
 21416  
 21417  	// The size, in bytes, of the virtual tapes to recover.
 21418  	TapeSizeInBytes *int64 `type:"long"`
 21419  
 21420  	// The status of the virtual tapes.
 21421  	TapeStatus *string `type:"string"`
 21422  }
 21423  
 21424  // String returns the string representation.
 21425  //
 21426  // API parameter values that are decorated as "sensitive" in the API will not
 21427  // be included in the string output. The member name will be present, but the
 21428  // value will be replaced with "sensitive".
 21429  func (s TapeRecoveryPointInfo) String() string {
 21430  	return awsutil.Prettify(s)
 21431  }
 21432  
 21433  // GoString returns the string representation.
 21434  //
 21435  // API parameter values that are decorated as "sensitive" in the API will not
 21436  // be included in the string output. The member name will be present, but the
 21437  // value will be replaced with "sensitive".
 21438  func (s TapeRecoveryPointInfo) GoString() string {
 21439  	return s.String()
 21440  }
 21441  
 21442  // SetTapeARN sets the TapeARN field's value.
 21443  func (s *TapeRecoveryPointInfo) SetTapeARN(v string) *TapeRecoveryPointInfo {
 21444  	s.TapeARN = &v
 21445  	return s
 21446  }
 21447  
 21448  // SetTapeRecoveryPointTime sets the TapeRecoveryPointTime field's value.
 21449  func (s *TapeRecoveryPointInfo) SetTapeRecoveryPointTime(v time.Time) *TapeRecoveryPointInfo {
 21450  	s.TapeRecoveryPointTime = &v
 21451  	return s
 21452  }
 21453  
 21454  // SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
 21455  func (s *TapeRecoveryPointInfo) SetTapeSizeInBytes(v int64) *TapeRecoveryPointInfo {
 21456  	s.TapeSizeInBytes = &v
 21457  	return s
 21458  }
 21459  
 21460  // SetTapeStatus sets the TapeStatus field's value.
 21461  func (s *TapeRecoveryPointInfo) SetTapeStatus(v string) *TapeRecoveryPointInfo {
 21462  	s.TapeStatus = &v
 21463  	return s
 21464  }
 21465  
 21466  type UpdateAutomaticTapeCreationPolicyInput struct {
 21467  	_ struct{} `type:"structure"`
 21468  
 21469  	// An automatic tape creation policy consists of a list of automatic tape creation
 21470  	// rules. The rules determine when and how to automatically create new tapes.
 21471  	//
 21472  	// AutomaticTapeCreationRules is a required field
 21473  	AutomaticTapeCreationRules []*AutomaticTapeCreationRule `min:"1" type:"list" required:"true"`
 21474  
 21475  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 21476  	// to return a list of gateways for your account and Region.
 21477  	//
 21478  	// GatewayARN is a required field
 21479  	GatewayARN *string `min:"50" type:"string" required:"true"`
 21480  }
 21481  
 21482  // String returns the string representation.
 21483  //
 21484  // API parameter values that are decorated as "sensitive" in the API will not
 21485  // be included in the string output. The member name will be present, but the
 21486  // value will be replaced with "sensitive".
 21487  func (s UpdateAutomaticTapeCreationPolicyInput) String() string {
 21488  	return awsutil.Prettify(s)
 21489  }
 21490  
 21491  // GoString returns the string representation.
 21492  //
 21493  // API parameter values that are decorated as "sensitive" in the API will not
 21494  // be included in the string output. The member name will be present, but the
 21495  // value will be replaced with "sensitive".
 21496  func (s UpdateAutomaticTapeCreationPolicyInput) GoString() string {
 21497  	return s.String()
 21498  }
 21499  
 21500  // Validate inspects the fields of the type to determine if they are valid.
 21501  func (s *UpdateAutomaticTapeCreationPolicyInput) Validate() error {
 21502  	invalidParams := request.ErrInvalidParams{Context: "UpdateAutomaticTapeCreationPolicyInput"}
 21503  	if s.AutomaticTapeCreationRules == nil {
 21504  		invalidParams.Add(request.NewErrParamRequired("AutomaticTapeCreationRules"))
 21505  	}
 21506  	if s.AutomaticTapeCreationRules != nil && len(s.AutomaticTapeCreationRules) < 1 {
 21507  		invalidParams.Add(request.NewErrParamMinLen("AutomaticTapeCreationRules", 1))
 21508  	}
 21509  	if s.GatewayARN == nil {
 21510  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 21511  	}
 21512  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 21513  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 21514  	}
 21515  	if s.AutomaticTapeCreationRules != nil {
 21516  		for i, v := range s.AutomaticTapeCreationRules {
 21517  			if v == nil {
 21518  				continue
 21519  			}
 21520  			if err := v.Validate(); err != nil {
 21521  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AutomaticTapeCreationRules", i), err.(request.ErrInvalidParams))
 21522  			}
 21523  		}
 21524  	}
 21525  
 21526  	if invalidParams.Len() > 0 {
 21527  		return invalidParams
 21528  	}
 21529  	return nil
 21530  }
 21531  
 21532  // SetAutomaticTapeCreationRules sets the AutomaticTapeCreationRules field's value.
 21533  func (s *UpdateAutomaticTapeCreationPolicyInput) SetAutomaticTapeCreationRules(v []*AutomaticTapeCreationRule) *UpdateAutomaticTapeCreationPolicyInput {
 21534  	s.AutomaticTapeCreationRules = v
 21535  	return s
 21536  }
 21537  
 21538  // SetGatewayARN sets the GatewayARN field's value.
 21539  func (s *UpdateAutomaticTapeCreationPolicyInput) SetGatewayARN(v string) *UpdateAutomaticTapeCreationPolicyInput {
 21540  	s.GatewayARN = &v
 21541  	return s
 21542  }
 21543  
 21544  type UpdateAutomaticTapeCreationPolicyOutput struct {
 21545  	_ struct{} `type:"structure"`
 21546  
 21547  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 21548  	// to return a list of gateways for your account and Region.
 21549  	GatewayARN *string `min:"50" type:"string"`
 21550  }
 21551  
 21552  // String returns the string representation.
 21553  //
 21554  // API parameter values that are decorated as "sensitive" in the API will not
 21555  // be included in the string output. The member name will be present, but the
 21556  // value will be replaced with "sensitive".
 21557  func (s UpdateAutomaticTapeCreationPolicyOutput) String() string {
 21558  	return awsutil.Prettify(s)
 21559  }
 21560  
 21561  // GoString returns the string representation.
 21562  //
 21563  // API parameter values that are decorated as "sensitive" in the API will not
 21564  // be included in the string output. The member name will be present, but the
 21565  // value will be replaced with "sensitive".
 21566  func (s UpdateAutomaticTapeCreationPolicyOutput) GoString() string {
 21567  	return s.String()
 21568  }
 21569  
 21570  // SetGatewayARN sets the GatewayARN field's value.
 21571  func (s *UpdateAutomaticTapeCreationPolicyOutput) SetGatewayARN(v string) *UpdateAutomaticTapeCreationPolicyOutput {
 21572  	s.GatewayARN = &v
 21573  	return s
 21574  }
 21575  
 21576  // A JSON object containing one or more of the following fields:
 21577  //
 21578  //    * UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec
 21579  //
 21580  //    * UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec
 21581  type UpdateBandwidthRateLimitInput struct {
 21582  	_ struct{} `type:"structure"`
 21583  
 21584  	// The average download bandwidth rate limit in bits per second.
 21585  	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
 21586  
 21587  	// The average upload bandwidth rate limit in bits per second.
 21588  	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
 21589  
 21590  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 21591  	// to return a list of gateways for your account and Region.
 21592  	//
 21593  	// GatewayARN is a required field
 21594  	GatewayARN *string `min:"50" type:"string" required:"true"`
 21595  }
 21596  
 21597  // String returns the string representation.
 21598  //
 21599  // API parameter values that are decorated as "sensitive" in the API will not
 21600  // be included in the string output. The member name will be present, but the
 21601  // value will be replaced with "sensitive".
 21602  func (s UpdateBandwidthRateLimitInput) String() string {
 21603  	return awsutil.Prettify(s)
 21604  }
 21605  
 21606  // GoString returns the string representation.
 21607  //
 21608  // API parameter values that are decorated as "sensitive" in the API will not
 21609  // be included in the string output. The member name will be present, but the
 21610  // value will be replaced with "sensitive".
 21611  func (s UpdateBandwidthRateLimitInput) GoString() string {
 21612  	return s.String()
 21613  }
 21614  
 21615  // Validate inspects the fields of the type to determine if they are valid.
 21616  func (s *UpdateBandwidthRateLimitInput) Validate() error {
 21617  	invalidParams := request.ErrInvalidParams{Context: "UpdateBandwidthRateLimitInput"}
 21618  	if s.AverageDownloadRateLimitInBitsPerSec != nil && *s.AverageDownloadRateLimitInBitsPerSec < 102400 {
 21619  		invalidParams.Add(request.NewErrParamMinValue("AverageDownloadRateLimitInBitsPerSec", 102400))
 21620  	}
 21621  	if s.AverageUploadRateLimitInBitsPerSec != nil && *s.AverageUploadRateLimitInBitsPerSec < 51200 {
 21622  		invalidParams.Add(request.NewErrParamMinValue("AverageUploadRateLimitInBitsPerSec", 51200))
 21623  	}
 21624  	if s.GatewayARN == nil {
 21625  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 21626  	}
 21627  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 21628  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 21629  	}
 21630  
 21631  	if invalidParams.Len() > 0 {
 21632  		return invalidParams
 21633  	}
 21634  	return nil
 21635  }
 21636  
 21637  // SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
 21638  func (s *UpdateBandwidthRateLimitInput) SetAverageDownloadRateLimitInBitsPerSec(v int64) *UpdateBandwidthRateLimitInput {
 21639  	s.AverageDownloadRateLimitInBitsPerSec = &v
 21640  	return s
 21641  }
 21642  
 21643  // SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
 21644  func (s *UpdateBandwidthRateLimitInput) SetAverageUploadRateLimitInBitsPerSec(v int64) *UpdateBandwidthRateLimitInput {
 21645  	s.AverageUploadRateLimitInBitsPerSec = &v
 21646  	return s
 21647  }
 21648  
 21649  // SetGatewayARN sets the GatewayARN field's value.
 21650  func (s *UpdateBandwidthRateLimitInput) SetGatewayARN(v string) *UpdateBandwidthRateLimitInput {
 21651  	s.GatewayARN = &v
 21652  	return s
 21653  }
 21654  
 21655  // A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
 21656  // throttle information was updated.
 21657  type UpdateBandwidthRateLimitOutput struct {
 21658  	_ struct{} `type:"structure"`
 21659  
 21660  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 21661  	// to return a list of gateways for your account and Region.
 21662  	GatewayARN *string `min:"50" type:"string"`
 21663  }
 21664  
 21665  // String returns the string representation.
 21666  //
 21667  // API parameter values that are decorated as "sensitive" in the API will not
 21668  // be included in the string output. The member name will be present, but the
 21669  // value will be replaced with "sensitive".
 21670  func (s UpdateBandwidthRateLimitOutput) String() string {
 21671  	return awsutil.Prettify(s)
 21672  }
 21673  
 21674  // GoString returns the string representation.
 21675  //
 21676  // API parameter values that are decorated as "sensitive" in the API will not
 21677  // be included in the string output. The member name will be present, but the
 21678  // value will be replaced with "sensitive".
 21679  func (s UpdateBandwidthRateLimitOutput) GoString() string {
 21680  	return s.String()
 21681  }
 21682  
 21683  // SetGatewayARN sets the GatewayARN field's value.
 21684  func (s *UpdateBandwidthRateLimitOutput) SetGatewayARN(v string) *UpdateBandwidthRateLimitOutput {
 21685  	s.GatewayARN = &v
 21686  	return s
 21687  }
 21688  
 21689  type UpdateBandwidthRateLimitScheduleInput struct {
 21690  	_ struct{} `type:"structure"`
 21691  
 21692  	// An array containing bandwidth rate limit schedule intervals for a gateway.
 21693  	// When no bandwidth rate limit intervals have been scheduled, the array is
 21694  	// empty.
 21695  	//
 21696  	// BandwidthRateLimitIntervals is a required field
 21697  	BandwidthRateLimitIntervals []*BandwidthRateLimitInterval `type:"list" required:"true"`
 21698  
 21699  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 21700  	// to return a list of gateways for your account and Region.
 21701  	//
 21702  	// GatewayARN is a required field
 21703  	GatewayARN *string `min:"50" type:"string" required:"true"`
 21704  }
 21705  
 21706  // String returns the string representation.
 21707  //
 21708  // API parameter values that are decorated as "sensitive" in the API will not
 21709  // be included in the string output. The member name will be present, but the
 21710  // value will be replaced with "sensitive".
 21711  func (s UpdateBandwidthRateLimitScheduleInput) String() string {
 21712  	return awsutil.Prettify(s)
 21713  }
 21714  
 21715  // GoString returns the string representation.
 21716  //
 21717  // API parameter values that are decorated as "sensitive" in the API will not
 21718  // be included in the string output. The member name will be present, but the
 21719  // value will be replaced with "sensitive".
 21720  func (s UpdateBandwidthRateLimitScheduleInput) GoString() string {
 21721  	return s.String()
 21722  }
 21723  
 21724  // Validate inspects the fields of the type to determine if they are valid.
 21725  func (s *UpdateBandwidthRateLimitScheduleInput) Validate() error {
 21726  	invalidParams := request.ErrInvalidParams{Context: "UpdateBandwidthRateLimitScheduleInput"}
 21727  	if s.BandwidthRateLimitIntervals == nil {
 21728  		invalidParams.Add(request.NewErrParamRequired("BandwidthRateLimitIntervals"))
 21729  	}
 21730  	if s.GatewayARN == nil {
 21731  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 21732  	}
 21733  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 21734  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 21735  	}
 21736  	if s.BandwidthRateLimitIntervals != nil {
 21737  		for i, v := range s.BandwidthRateLimitIntervals {
 21738  			if v == nil {
 21739  				continue
 21740  			}
 21741  			if err := v.Validate(); err != nil {
 21742  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BandwidthRateLimitIntervals", i), err.(request.ErrInvalidParams))
 21743  			}
 21744  		}
 21745  	}
 21746  
 21747  	if invalidParams.Len() > 0 {
 21748  		return invalidParams
 21749  	}
 21750  	return nil
 21751  }
 21752  
 21753  // SetBandwidthRateLimitIntervals sets the BandwidthRateLimitIntervals field's value.
 21754  func (s *UpdateBandwidthRateLimitScheduleInput) SetBandwidthRateLimitIntervals(v []*BandwidthRateLimitInterval) *UpdateBandwidthRateLimitScheduleInput {
 21755  	s.BandwidthRateLimitIntervals = v
 21756  	return s
 21757  }
 21758  
 21759  // SetGatewayARN sets the GatewayARN field's value.
 21760  func (s *UpdateBandwidthRateLimitScheduleInput) SetGatewayARN(v string) *UpdateBandwidthRateLimitScheduleInput {
 21761  	s.GatewayARN = &v
 21762  	return s
 21763  }
 21764  
 21765  type UpdateBandwidthRateLimitScheduleOutput struct {
 21766  	_ struct{} `type:"structure"`
 21767  
 21768  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 21769  	// to return a list of gateways for your account and Region.
 21770  	GatewayARN *string `min:"50" type:"string"`
 21771  }
 21772  
 21773  // String returns the string representation.
 21774  //
 21775  // API parameter values that are decorated as "sensitive" in the API will not
 21776  // be included in the string output. The member name will be present, but the
 21777  // value will be replaced with "sensitive".
 21778  func (s UpdateBandwidthRateLimitScheduleOutput) String() string {
 21779  	return awsutil.Prettify(s)
 21780  }
 21781  
 21782  // GoString returns the string representation.
 21783  //
 21784  // API parameter values that are decorated as "sensitive" in the API will not
 21785  // be included in the string output. The member name will be present, but the
 21786  // value will be replaced with "sensitive".
 21787  func (s UpdateBandwidthRateLimitScheduleOutput) GoString() string {
 21788  	return s.String()
 21789  }
 21790  
 21791  // SetGatewayARN sets the GatewayARN field's value.
 21792  func (s *UpdateBandwidthRateLimitScheduleOutput) SetGatewayARN(v string) *UpdateBandwidthRateLimitScheduleOutput {
 21793  	s.GatewayARN = &v
 21794  	return s
 21795  }
 21796  
 21797  // A JSON object containing one or more of the following fields:
 21798  //
 21799  //    * UpdateChapCredentialsInput$InitiatorName
 21800  //
 21801  //    * UpdateChapCredentialsInput$SecretToAuthenticateInitiator
 21802  //
 21803  //    * UpdateChapCredentialsInput$SecretToAuthenticateTarget
 21804  //
 21805  //    * UpdateChapCredentialsInput$TargetARN
 21806  type UpdateChapCredentialsInput struct {
 21807  	_ struct{} `type:"structure"`
 21808  
 21809  	// The iSCSI initiator that connects to the target.
 21810  	//
 21811  	// InitiatorName is a required field
 21812  	InitiatorName *string `min:"1" type:"string" required:"true"`
 21813  
 21814  	// The secret key that the initiator (for example, the Windows client) must
 21815  	// provide to participate in mutual CHAP with the target.
 21816  	//
 21817  	// The secret key must be between 12 and 16 bytes when encoded in UTF-8.
 21818  	//
 21819  	// SecretToAuthenticateInitiator is a sensitive parameter and its value will be
 21820  	// replaced with "sensitive" in string returned by UpdateChapCredentialsInput's
 21821  	// String and GoString methods.
 21822  	//
 21823  	// SecretToAuthenticateInitiator is a required field
 21824  	SecretToAuthenticateInitiator *string `min:"1" type:"string" required:"true" sensitive:"true"`
 21825  
 21826  	// The secret key that the target must provide to participate in mutual CHAP
 21827  	// with the initiator (e.g. Windows client).
 21828  	//
 21829  	// Byte constraints: Minimum bytes of 12. Maximum bytes of 16.
 21830  	//
 21831  	// The secret key must be between 12 and 16 bytes when encoded in UTF-8.
 21832  	//
 21833  	// SecretToAuthenticateTarget is a sensitive parameter and its value will be
 21834  	// replaced with "sensitive" in string returned by UpdateChapCredentialsInput's
 21835  	// String and GoString methods.
 21836  	SecretToAuthenticateTarget *string `min:"1" type:"string" sensitive:"true"`
 21837  
 21838  	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
 21839  	// operation to return the TargetARN for specified VolumeARN.
 21840  	//
 21841  	// TargetARN is a required field
 21842  	TargetARN *string `min:"50" type:"string" required:"true"`
 21843  }
 21844  
 21845  // String returns the string representation.
 21846  //
 21847  // API parameter values that are decorated as "sensitive" in the API will not
 21848  // be included in the string output. The member name will be present, but the
 21849  // value will be replaced with "sensitive".
 21850  func (s UpdateChapCredentialsInput) String() string {
 21851  	return awsutil.Prettify(s)
 21852  }
 21853  
 21854  // GoString returns the string representation.
 21855  //
 21856  // API parameter values that are decorated as "sensitive" in the API will not
 21857  // be included in the string output. The member name will be present, but the
 21858  // value will be replaced with "sensitive".
 21859  func (s UpdateChapCredentialsInput) GoString() string {
 21860  	return s.String()
 21861  }
 21862  
 21863  // Validate inspects the fields of the type to determine if they are valid.
 21864  func (s *UpdateChapCredentialsInput) Validate() error {
 21865  	invalidParams := request.ErrInvalidParams{Context: "UpdateChapCredentialsInput"}
 21866  	if s.InitiatorName == nil {
 21867  		invalidParams.Add(request.NewErrParamRequired("InitiatorName"))
 21868  	}
 21869  	if s.InitiatorName != nil && len(*s.InitiatorName) < 1 {
 21870  		invalidParams.Add(request.NewErrParamMinLen("InitiatorName", 1))
 21871  	}
 21872  	if s.SecretToAuthenticateInitiator == nil {
 21873  		invalidParams.Add(request.NewErrParamRequired("SecretToAuthenticateInitiator"))
 21874  	}
 21875  	if s.SecretToAuthenticateInitiator != nil && len(*s.SecretToAuthenticateInitiator) < 1 {
 21876  		invalidParams.Add(request.NewErrParamMinLen("SecretToAuthenticateInitiator", 1))
 21877  	}
 21878  	if s.SecretToAuthenticateTarget != nil && len(*s.SecretToAuthenticateTarget) < 1 {
 21879  		invalidParams.Add(request.NewErrParamMinLen("SecretToAuthenticateTarget", 1))
 21880  	}
 21881  	if s.TargetARN == nil {
 21882  		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
 21883  	}
 21884  	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
 21885  		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
 21886  	}
 21887  
 21888  	if invalidParams.Len() > 0 {
 21889  		return invalidParams
 21890  	}
 21891  	return nil
 21892  }
 21893  
 21894  // SetInitiatorName sets the InitiatorName field's value.
 21895  func (s *UpdateChapCredentialsInput) SetInitiatorName(v string) *UpdateChapCredentialsInput {
 21896  	s.InitiatorName = &v
 21897  	return s
 21898  }
 21899  
 21900  // SetSecretToAuthenticateInitiator sets the SecretToAuthenticateInitiator field's value.
 21901  func (s *UpdateChapCredentialsInput) SetSecretToAuthenticateInitiator(v string) *UpdateChapCredentialsInput {
 21902  	s.SecretToAuthenticateInitiator = &v
 21903  	return s
 21904  }
 21905  
 21906  // SetSecretToAuthenticateTarget sets the SecretToAuthenticateTarget field's value.
 21907  func (s *UpdateChapCredentialsInput) SetSecretToAuthenticateTarget(v string) *UpdateChapCredentialsInput {
 21908  	s.SecretToAuthenticateTarget = &v
 21909  	return s
 21910  }
 21911  
 21912  // SetTargetARN sets the TargetARN field's value.
 21913  func (s *UpdateChapCredentialsInput) SetTargetARN(v string) *UpdateChapCredentialsInput {
 21914  	s.TargetARN = &v
 21915  	return s
 21916  }
 21917  
 21918  // A JSON object containing the following fields:
 21919  type UpdateChapCredentialsOutput struct {
 21920  	_ struct{} `type:"structure"`
 21921  
 21922  	// The iSCSI initiator that connects to the target. This is the same initiator
 21923  	// name specified in the request.
 21924  	InitiatorName *string `min:"1" type:"string"`
 21925  
 21926  	// The Amazon Resource Name (ARN) of the target. This is the same target specified
 21927  	// in the request.
 21928  	TargetARN *string `min:"50" type:"string"`
 21929  }
 21930  
 21931  // String returns the string representation.
 21932  //
 21933  // API parameter values that are decorated as "sensitive" in the API will not
 21934  // be included in the string output. The member name will be present, but the
 21935  // value will be replaced with "sensitive".
 21936  func (s UpdateChapCredentialsOutput) String() string {
 21937  	return awsutil.Prettify(s)
 21938  }
 21939  
 21940  // GoString returns the string representation.
 21941  //
 21942  // API parameter values that are decorated as "sensitive" in the API will not
 21943  // be included in the string output. The member name will be present, but the
 21944  // value will be replaced with "sensitive".
 21945  func (s UpdateChapCredentialsOutput) GoString() string {
 21946  	return s.String()
 21947  }
 21948  
 21949  // SetInitiatorName sets the InitiatorName field's value.
 21950  func (s *UpdateChapCredentialsOutput) SetInitiatorName(v string) *UpdateChapCredentialsOutput {
 21951  	s.InitiatorName = &v
 21952  	return s
 21953  }
 21954  
 21955  // SetTargetARN sets the TargetARN field's value.
 21956  func (s *UpdateChapCredentialsOutput) SetTargetARN(v string) *UpdateChapCredentialsOutput {
 21957  	s.TargetARN = &v
 21958  	return s
 21959  }
 21960  
 21961  type UpdateFileSystemAssociationInput struct {
 21962  	_ struct{} `type:"structure"`
 21963  
 21964  	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
 21965  	AuditDestinationARN *string `type:"string"`
 21966  
 21967  	// The refresh cache information for the file share or FSx file systems.
 21968  	CacheAttributes *CacheAttributes `type:"structure"`
 21969  
 21970  	// The Amazon Resource Name (ARN) of the file system association that you want
 21971  	// to update.
 21972  	//
 21973  	// FileSystemAssociationARN is a required field
 21974  	FileSystemAssociationARN *string `min:"50" type:"string" required:"true"`
 21975  
 21976  	// The password of the user credential.
 21977  	//
 21978  	// Password is a sensitive parameter and its value will be
 21979  	// replaced with "sensitive" in string returned by UpdateFileSystemAssociationInput's
 21980  	// String and GoString methods.
 21981  	Password *string `min:"1" type:"string" sensitive:"true"`
 21982  
 21983  	// The user name of the user credential that has permission to access the root
 21984  	// share D$ of the Amazon FSx file system. The user account must belong to the
 21985  	// Amazon FSx delegated admin user group.
 21986  	UserName *string `min:"1" type:"string"`
 21987  }
 21988  
 21989  // String returns the string representation.
 21990  //
 21991  // API parameter values that are decorated as "sensitive" in the API will not
 21992  // be included in the string output. The member name will be present, but the
 21993  // value will be replaced with "sensitive".
 21994  func (s UpdateFileSystemAssociationInput) String() string {
 21995  	return awsutil.Prettify(s)
 21996  }
 21997  
 21998  // GoString returns the string representation.
 21999  //
 22000  // API parameter values that are decorated as "sensitive" in the API will not
 22001  // be included in the string output. The member name will be present, but the
 22002  // value will be replaced with "sensitive".
 22003  func (s UpdateFileSystemAssociationInput) GoString() string {
 22004  	return s.String()
 22005  }
 22006  
 22007  // Validate inspects the fields of the type to determine if they are valid.
 22008  func (s *UpdateFileSystemAssociationInput) Validate() error {
 22009  	invalidParams := request.ErrInvalidParams{Context: "UpdateFileSystemAssociationInput"}
 22010  	if s.FileSystemAssociationARN == nil {
 22011  		invalidParams.Add(request.NewErrParamRequired("FileSystemAssociationARN"))
 22012  	}
 22013  	if s.FileSystemAssociationARN != nil && len(*s.FileSystemAssociationARN) < 50 {
 22014  		invalidParams.Add(request.NewErrParamMinLen("FileSystemAssociationARN", 50))
 22015  	}
 22016  	if s.Password != nil && len(*s.Password) < 1 {
 22017  		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
 22018  	}
 22019  	if s.UserName != nil && len(*s.UserName) < 1 {
 22020  		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
 22021  	}
 22022  
 22023  	if invalidParams.Len() > 0 {
 22024  		return invalidParams
 22025  	}
 22026  	return nil
 22027  }
 22028  
 22029  // SetAuditDestinationARN sets the AuditDestinationARN field's value.
 22030  func (s *UpdateFileSystemAssociationInput) SetAuditDestinationARN(v string) *UpdateFileSystemAssociationInput {
 22031  	s.AuditDestinationARN = &v
 22032  	return s
 22033  }
 22034  
 22035  // SetCacheAttributes sets the CacheAttributes field's value.
 22036  func (s *UpdateFileSystemAssociationInput) SetCacheAttributes(v *CacheAttributes) *UpdateFileSystemAssociationInput {
 22037  	s.CacheAttributes = v
 22038  	return s
 22039  }
 22040  
 22041  // SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
 22042  func (s *UpdateFileSystemAssociationInput) SetFileSystemAssociationARN(v string) *UpdateFileSystemAssociationInput {
 22043  	s.FileSystemAssociationARN = &v
 22044  	return s
 22045  }
 22046  
 22047  // SetPassword sets the Password field's value.
 22048  func (s *UpdateFileSystemAssociationInput) SetPassword(v string) *UpdateFileSystemAssociationInput {
 22049  	s.Password = &v
 22050  	return s
 22051  }
 22052  
 22053  // SetUserName sets the UserName field's value.
 22054  func (s *UpdateFileSystemAssociationInput) SetUserName(v string) *UpdateFileSystemAssociationInput {
 22055  	s.UserName = &v
 22056  	return s
 22057  }
 22058  
 22059  type UpdateFileSystemAssociationOutput struct {
 22060  	_ struct{} `type:"structure"`
 22061  
 22062  	// The ARN of the updated file system association.
 22063  	FileSystemAssociationARN *string `min:"50" type:"string"`
 22064  }
 22065  
 22066  // String returns the string representation.
 22067  //
 22068  // API parameter values that are decorated as "sensitive" in the API will not
 22069  // be included in the string output. The member name will be present, but the
 22070  // value will be replaced with "sensitive".
 22071  func (s UpdateFileSystemAssociationOutput) String() string {
 22072  	return awsutil.Prettify(s)
 22073  }
 22074  
 22075  // GoString returns the string representation.
 22076  //
 22077  // API parameter values that are decorated as "sensitive" in the API will not
 22078  // be included in the string output. The member name will be present, but the
 22079  // value will be replaced with "sensitive".
 22080  func (s UpdateFileSystemAssociationOutput) GoString() string {
 22081  	return s.String()
 22082  }
 22083  
 22084  // SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
 22085  func (s *UpdateFileSystemAssociationOutput) SetFileSystemAssociationARN(v string) *UpdateFileSystemAssociationOutput {
 22086  	s.FileSystemAssociationARN = &v
 22087  	return s
 22088  }
 22089  
 22090  type UpdateGatewayInformationInput struct {
 22091  	_ struct{} `type:"structure"`
 22092  
 22093  	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that you
 22094  	// want to use to monitor and log events in the gateway.
 22095  	//
 22096  	// For more information, see What is Amazon CloudWatch Logs? (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)
 22097  	CloudWatchLogGroupARN *string `type:"string"`
 22098  
 22099  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 22100  	// to return a list of gateways for your account and Region.
 22101  	//
 22102  	// GatewayARN is a required field
 22103  	GatewayARN *string `min:"50" type:"string" required:"true"`
 22104  
 22105  	// Specifies the size of the gateway's metadata cache.
 22106  	GatewayCapacity *string `type:"string" enum:"GatewayCapacity"`
 22107  
 22108  	// The name you configured for your gateway.
 22109  	GatewayName *string `min:"2" type:"string"`
 22110  
 22111  	// A value that indicates the time zone of the gateway.
 22112  	GatewayTimezone *string `min:"3" type:"string"`
 22113  }
 22114  
 22115  // String returns the string representation.
 22116  //
 22117  // API parameter values that are decorated as "sensitive" in the API will not
 22118  // be included in the string output. The member name will be present, but the
 22119  // value will be replaced with "sensitive".
 22120  func (s UpdateGatewayInformationInput) String() string {
 22121  	return awsutil.Prettify(s)
 22122  }
 22123  
 22124  // GoString returns the string representation.
 22125  //
 22126  // API parameter values that are decorated as "sensitive" in the API will not
 22127  // be included in the string output. The member name will be present, but the
 22128  // value will be replaced with "sensitive".
 22129  func (s UpdateGatewayInformationInput) GoString() string {
 22130  	return s.String()
 22131  }
 22132  
 22133  // Validate inspects the fields of the type to determine if they are valid.
 22134  func (s *UpdateGatewayInformationInput) Validate() error {
 22135  	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewayInformationInput"}
 22136  	if s.GatewayARN == nil {
 22137  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 22138  	}
 22139  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 22140  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 22141  	}
 22142  	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
 22143  		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
 22144  	}
 22145  	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
 22146  		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
 22147  	}
 22148  
 22149  	if invalidParams.Len() > 0 {
 22150  		return invalidParams
 22151  	}
 22152  	return nil
 22153  }
 22154  
 22155  // SetCloudWatchLogGroupARN sets the CloudWatchLogGroupARN field's value.
 22156  func (s *UpdateGatewayInformationInput) SetCloudWatchLogGroupARN(v string) *UpdateGatewayInformationInput {
 22157  	s.CloudWatchLogGroupARN = &v
 22158  	return s
 22159  }
 22160  
 22161  // SetGatewayARN sets the GatewayARN field's value.
 22162  func (s *UpdateGatewayInformationInput) SetGatewayARN(v string) *UpdateGatewayInformationInput {
 22163  	s.GatewayARN = &v
 22164  	return s
 22165  }
 22166  
 22167  // SetGatewayCapacity sets the GatewayCapacity field's value.
 22168  func (s *UpdateGatewayInformationInput) SetGatewayCapacity(v string) *UpdateGatewayInformationInput {
 22169  	s.GatewayCapacity = &v
 22170  	return s
 22171  }
 22172  
 22173  // SetGatewayName sets the GatewayName field's value.
 22174  func (s *UpdateGatewayInformationInput) SetGatewayName(v string) *UpdateGatewayInformationInput {
 22175  	s.GatewayName = &v
 22176  	return s
 22177  }
 22178  
 22179  // SetGatewayTimezone sets the GatewayTimezone field's value.
 22180  func (s *UpdateGatewayInformationInput) SetGatewayTimezone(v string) *UpdateGatewayInformationInput {
 22181  	s.GatewayTimezone = &v
 22182  	return s
 22183  }
 22184  
 22185  // A JSON object containing the Amazon Resource Name (ARN) of the gateway that
 22186  // was updated.
 22187  type UpdateGatewayInformationOutput struct {
 22188  	_ struct{} `type:"structure"`
 22189  
 22190  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 22191  	// to return a list of gateways for your account and Region.
 22192  	GatewayARN *string `min:"50" type:"string"`
 22193  
 22194  	// The name you configured for your gateway.
 22195  	GatewayName *string `type:"string"`
 22196  }
 22197  
 22198  // String returns the string representation.
 22199  //
 22200  // API parameter values that are decorated as "sensitive" in the API will not
 22201  // be included in the string output. The member name will be present, but the
 22202  // value will be replaced with "sensitive".
 22203  func (s UpdateGatewayInformationOutput) String() string {
 22204  	return awsutil.Prettify(s)
 22205  }
 22206  
 22207  // GoString returns the string representation.
 22208  //
 22209  // API parameter values that are decorated as "sensitive" in the API will not
 22210  // be included in the string output. The member name will be present, but the
 22211  // value will be replaced with "sensitive".
 22212  func (s UpdateGatewayInformationOutput) GoString() string {
 22213  	return s.String()
 22214  }
 22215  
 22216  // SetGatewayARN sets the GatewayARN field's value.
 22217  func (s *UpdateGatewayInformationOutput) SetGatewayARN(v string) *UpdateGatewayInformationOutput {
 22218  	s.GatewayARN = &v
 22219  	return s
 22220  }
 22221  
 22222  // SetGatewayName sets the GatewayName field's value.
 22223  func (s *UpdateGatewayInformationOutput) SetGatewayName(v string) *UpdateGatewayInformationOutput {
 22224  	s.GatewayName = &v
 22225  	return s
 22226  }
 22227  
 22228  // A JSON object containing the Amazon Resource Name (ARN) of the gateway to
 22229  // update.
 22230  type UpdateGatewaySoftwareNowInput struct {
 22231  	_ struct{} `type:"structure"`
 22232  
 22233  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 22234  	// to return a list of gateways for your account and Region.
 22235  	//
 22236  	// GatewayARN is a required field
 22237  	GatewayARN *string `min:"50" type:"string" required:"true"`
 22238  }
 22239  
 22240  // String returns the string representation.
 22241  //
 22242  // API parameter values that are decorated as "sensitive" in the API will not
 22243  // be included in the string output. The member name will be present, but the
 22244  // value will be replaced with "sensitive".
 22245  func (s UpdateGatewaySoftwareNowInput) String() string {
 22246  	return awsutil.Prettify(s)
 22247  }
 22248  
 22249  // GoString returns the string representation.
 22250  //
 22251  // API parameter values that are decorated as "sensitive" in the API will not
 22252  // be included in the string output. The member name will be present, but the
 22253  // value will be replaced with "sensitive".
 22254  func (s UpdateGatewaySoftwareNowInput) GoString() string {
 22255  	return s.String()
 22256  }
 22257  
 22258  // Validate inspects the fields of the type to determine if they are valid.
 22259  func (s *UpdateGatewaySoftwareNowInput) Validate() error {
 22260  	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewaySoftwareNowInput"}
 22261  	if s.GatewayARN == nil {
 22262  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 22263  	}
 22264  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 22265  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 22266  	}
 22267  
 22268  	if invalidParams.Len() > 0 {
 22269  		return invalidParams
 22270  	}
 22271  	return nil
 22272  }
 22273  
 22274  // SetGatewayARN sets the GatewayARN field's value.
 22275  func (s *UpdateGatewaySoftwareNowInput) SetGatewayARN(v string) *UpdateGatewaySoftwareNowInput {
 22276  	s.GatewayARN = &v
 22277  	return s
 22278  }
 22279  
 22280  // A JSON object containing the Amazon Resource Name (ARN) of the gateway that
 22281  // was updated.
 22282  type UpdateGatewaySoftwareNowOutput struct {
 22283  	_ struct{} `type:"structure"`
 22284  
 22285  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 22286  	// to return a list of gateways for your account and Region.
 22287  	GatewayARN *string `min:"50" type:"string"`
 22288  }
 22289  
 22290  // String returns the string representation.
 22291  //
 22292  // API parameter values that are decorated as "sensitive" in the API will not
 22293  // be included in the string output. The member name will be present, but the
 22294  // value will be replaced with "sensitive".
 22295  func (s UpdateGatewaySoftwareNowOutput) String() string {
 22296  	return awsutil.Prettify(s)
 22297  }
 22298  
 22299  // GoString returns the string representation.
 22300  //
 22301  // API parameter values that are decorated as "sensitive" in the API will not
 22302  // be included in the string output. The member name will be present, but the
 22303  // value will be replaced with "sensitive".
 22304  func (s UpdateGatewaySoftwareNowOutput) GoString() string {
 22305  	return s.String()
 22306  }
 22307  
 22308  // SetGatewayARN sets the GatewayARN field's value.
 22309  func (s *UpdateGatewaySoftwareNowOutput) SetGatewayARN(v string) *UpdateGatewaySoftwareNowOutput {
 22310  	s.GatewayARN = &v
 22311  	return s
 22312  }
 22313  
 22314  // A JSON object containing the following fields:
 22315  //
 22316  //    * UpdateMaintenanceStartTimeInput$DayOfMonth
 22317  //
 22318  //    * UpdateMaintenanceStartTimeInput$DayOfWeek
 22319  //
 22320  //    * UpdateMaintenanceStartTimeInput$HourOfDay
 22321  //
 22322  //    * UpdateMaintenanceStartTimeInput$MinuteOfHour
 22323  type UpdateMaintenanceStartTimeInput struct {
 22324  	_ struct{} `type:"structure"`
 22325  
 22326  	// The day of the month component of the maintenance start time represented
 22327  	// as an ordinal number from 1 to 28, where 1 represents the first day of the
 22328  	// month and 28 represents the last day of the month.
 22329  	DayOfMonth *int64 `min:"1" type:"integer"`
 22330  
 22331  	// The day of the week component of the maintenance start time week represented
 22332  	// as an ordinal number from 0 to 6, where 0 represents Sunday and 6 Saturday.
 22333  	DayOfWeek *int64 `type:"integer"`
 22334  
 22335  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 22336  	// to return a list of gateways for your account and Region.
 22337  	//
 22338  	// GatewayARN is a required field
 22339  	GatewayARN *string `min:"50" type:"string" required:"true"`
 22340  
 22341  	// The hour component of the maintenance start time represented as hh, where
 22342  	// hh is the hour (00 to 23). The hour of the day is in the time zone of the
 22343  	// gateway.
 22344  	//
 22345  	// HourOfDay is a required field
 22346  	HourOfDay *int64 `type:"integer" required:"true"`
 22347  
 22348  	// The minute component of the maintenance start time represented as mm, where
 22349  	// mm is the minute (00 to 59). The minute of the hour is in the time zone of
 22350  	// the gateway.
 22351  	//
 22352  	// MinuteOfHour is a required field
 22353  	MinuteOfHour *int64 `type:"integer" required:"true"`
 22354  }
 22355  
 22356  // String returns the string representation.
 22357  //
 22358  // API parameter values that are decorated as "sensitive" in the API will not
 22359  // be included in the string output. The member name will be present, but the
 22360  // value will be replaced with "sensitive".
 22361  func (s UpdateMaintenanceStartTimeInput) String() string {
 22362  	return awsutil.Prettify(s)
 22363  }
 22364  
 22365  // GoString returns the string representation.
 22366  //
 22367  // API parameter values that are decorated as "sensitive" in the API will not
 22368  // be included in the string output. The member name will be present, but the
 22369  // value will be replaced with "sensitive".
 22370  func (s UpdateMaintenanceStartTimeInput) GoString() string {
 22371  	return s.String()
 22372  }
 22373  
 22374  // Validate inspects the fields of the type to determine if they are valid.
 22375  func (s *UpdateMaintenanceStartTimeInput) Validate() error {
 22376  	invalidParams := request.ErrInvalidParams{Context: "UpdateMaintenanceStartTimeInput"}
 22377  	if s.DayOfMonth != nil && *s.DayOfMonth < 1 {
 22378  		invalidParams.Add(request.NewErrParamMinValue("DayOfMonth", 1))
 22379  	}
 22380  	if s.GatewayARN == nil {
 22381  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 22382  	}
 22383  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 22384  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 22385  	}
 22386  	if s.HourOfDay == nil {
 22387  		invalidParams.Add(request.NewErrParamRequired("HourOfDay"))
 22388  	}
 22389  	if s.MinuteOfHour == nil {
 22390  		invalidParams.Add(request.NewErrParamRequired("MinuteOfHour"))
 22391  	}
 22392  
 22393  	if invalidParams.Len() > 0 {
 22394  		return invalidParams
 22395  	}
 22396  	return nil
 22397  }
 22398  
 22399  // SetDayOfMonth sets the DayOfMonth field's value.
 22400  func (s *UpdateMaintenanceStartTimeInput) SetDayOfMonth(v int64) *UpdateMaintenanceStartTimeInput {
 22401  	s.DayOfMonth = &v
 22402  	return s
 22403  }
 22404  
 22405  // SetDayOfWeek sets the DayOfWeek field's value.
 22406  func (s *UpdateMaintenanceStartTimeInput) SetDayOfWeek(v int64) *UpdateMaintenanceStartTimeInput {
 22407  	s.DayOfWeek = &v
 22408  	return s
 22409  }
 22410  
 22411  // SetGatewayARN sets the GatewayARN field's value.
 22412  func (s *UpdateMaintenanceStartTimeInput) SetGatewayARN(v string) *UpdateMaintenanceStartTimeInput {
 22413  	s.GatewayARN = &v
 22414  	return s
 22415  }
 22416  
 22417  // SetHourOfDay sets the HourOfDay field's value.
 22418  func (s *UpdateMaintenanceStartTimeInput) SetHourOfDay(v int64) *UpdateMaintenanceStartTimeInput {
 22419  	s.HourOfDay = &v
 22420  	return s
 22421  }
 22422  
 22423  // SetMinuteOfHour sets the MinuteOfHour field's value.
 22424  func (s *UpdateMaintenanceStartTimeInput) SetMinuteOfHour(v int64) *UpdateMaintenanceStartTimeInput {
 22425  	s.MinuteOfHour = &v
 22426  	return s
 22427  }
 22428  
 22429  // A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
 22430  // maintenance start time is updated.
 22431  type UpdateMaintenanceStartTimeOutput struct {
 22432  	_ struct{} `type:"structure"`
 22433  
 22434  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 22435  	// to return a list of gateways for your account and Region.
 22436  	GatewayARN *string `min:"50" type:"string"`
 22437  }
 22438  
 22439  // String returns the string representation.
 22440  //
 22441  // API parameter values that are decorated as "sensitive" in the API will not
 22442  // be included in the string output. The member name will be present, but the
 22443  // value will be replaced with "sensitive".
 22444  func (s UpdateMaintenanceStartTimeOutput) String() string {
 22445  	return awsutil.Prettify(s)
 22446  }
 22447  
 22448  // GoString returns the string representation.
 22449  //
 22450  // API parameter values that are decorated as "sensitive" in the API will not
 22451  // be included in the string output. The member name will be present, but the
 22452  // value will be replaced with "sensitive".
 22453  func (s UpdateMaintenanceStartTimeOutput) GoString() string {
 22454  	return s.String()
 22455  }
 22456  
 22457  // SetGatewayARN sets the GatewayARN field's value.
 22458  func (s *UpdateMaintenanceStartTimeOutput) SetGatewayARN(v string) *UpdateMaintenanceStartTimeOutput {
 22459  	s.GatewayARN = &v
 22460  	return s
 22461  }
 22462  
 22463  // UpdateNFSFileShareInput
 22464  type UpdateNFSFileShareInput struct {
 22465  	_ struct{} `type:"structure"`
 22466  
 22467  	// specifies refresh cache information for the file share.
 22468  	CacheAttributes *CacheAttributes `type:"structure"`
 22469  
 22470  	// The list of clients that are allowed to access the S3 File Gateway. The list
 22471  	// must contain either valid IP addresses or valid CIDR blocks.
 22472  	ClientList []*string `min:"1" type:"list"`
 22473  
 22474  	// The default storage class for objects put into an Amazon S3 bucket by the
 22475  	// S3 File Gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
 22476  	//
 22477  	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
 22478  	DefaultStorageClass *string `min:"5" type:"string"`
 22479  
 22480  	// The Amazon Resource Name (ARN) of the file share to be updated.
 22481  	//
 22482  	// FileShareARN is a required field
 22483  	FileShareARN *string `min:"50" type:"string" required:"true"`
 22484  
 22485  	// The name of the file share. Optional.
 22486  	//
 22487  	// FileShareName must be set if an S3 prefix name is set in LocationARN.
 22488  	FileShareName *string `min:"1" type:"string"`
 22489  
 22490  	// A value that enables guessing of the MIME type for uploaded objects based
 22491  	// on file extensions. Set this value to true to enable MIME type guessing,
 22492  	// otherwise set to false. The default value is true.
 22493  	//
 22494  	// Valid Values: true | false
 22495  	GuessMIMETypeEnabled *bool `type:"boolean"`
 22496  
 22497  	// Set to true to use Amazon S3 server-side encryption with your own KMS key,
 22498  	// or false to use a key managed by Amazon S3. Optional.
 22499  	//
 22500  	// Valid Values: true | false
 22501  	KMSEncrypted *bool `type:"boolean"`
 22502  
 22503  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 22504  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 22505  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 22506  	KMSKey *string `min:"7" type:"string"`
 22507  
 22508  	// The default values for the file share. Optional.
 22509  	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
 22510  
 22511  	// The notification policy of the file share. SettlingTimeInSeconds controls
 22512  	// the number of seconds to wait after the last point in time a client wrote
 22513  	// to a file before generating an ObjectUploaded notification. Because clients
 22514  	// can make many small writes to files, it's best to set this parameter for
 22515  	// as long as possible to avoid generating multiple notifications for the same
 22516  	// file in a small time period.
 22517  	//
 22518  	// SettlingTimeInSeconds has no effect on the timing of the object uploading
 22519  	// to Amazon S3, only the timing of the notification.
 22520  	//
 22521  	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
 22522  	// set to 60.
 22523  	//
 22524  	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
 22525  	//
 22526  	// The following example sets NotificationPolicy off.
 22527  	//
 22528  	// {}
 22529  	NotificationPolicy *string `min:"2" type:"string"`
 22530  
 22531  	// A value that sets the access control list (ACL) permission for objects in
 22532  	// the S3 bucket that a S3 File Gateway puts objects into. The default value
 22533  	// is private.
 22534  	ObjectACL *string `type:"string" enum:"ObjectACL"`
 22535  
 22536  	// A value that sets the write status of a file share. Set this value to true
 22537  	// to set the write status to read-only, otherwise set to false.
 22538  	//
 22539  	// Valid Values: true | false
 22540  	ReadOnly *bool `type:"boolean"`
 22541  
 22542  	// A value that sets who pays the cost of the request and the cost associated
 22543  	// with data download from the S3 bucket. If this value is set to true, the
 22544  	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
 22545  	// S3 bucket owner always pays the cost of storing data.
 22546  	//
 22547  	// RequesterPays is a configuration for the S3 bucket that backs the file share,
 22548  	// so make sure that the configuration on the file share is the same as the
 22549  	// S3 bucket configuration.
 22550  	//
 22551  	// Valid Values: true | false
 22552  	RequesterPays *bool `type:"boolean"`
 22553  
 22554  	// The user mapped to anonymous user.
 22555  	//
 22556  	// Valid values are the following:
 22557  	//
 22558  	//    * RootSquash: Only root is mapped to anonymous user.
 22559  	//
 22560  	//    * NoSquash: No one is mapped to anonymous user.
 22561  	//
 22562  	//    * AllSquash: Everyone is mapped to anonymous user.
 22563  	Squash *string `min:"5" type:"string"`
 22564  }
 22565  
 22566  // String returns the string representation.
 22567  //
 22568  // API parameter values that are decorated as "sensitive" in the API will not
 22569  // be included in the string output. The member name will be present, but the
 22570  // value will be replaced with "sensitive".
 22571  func (s UpdateNFSFileShareInput) String() string {
 22572  	return awsutil.Prettify(s)
 22573  }
 22574  
 22575  // GoString returns the string representation.
 22576  //
 22577  // API parameter values that are decorated as "sensitive" in the API will not
 22578  // be included in the string output. The member name will be present, but the
 22579  // value will be replaced with "sensitive".
 22580  func (s UpdateNFSFileShareInput) GoString() string {
 22581  	return s.String()
 22582  }
 22583  
 22584  // Validate inspects the fields of the type to determine if they are valid.
 22585  func (s *UpdateNFSFileShareInput) Validate() error {
 22586  	invalidParams := request.ErrInvalidParams{Context: "UpdateNFSFileShareInput"}
 22587  	if s.ClientList != nil && len(s.ClientList) < 1 {
 22588  		invalidParams.Add(request.NewErrParamMinLen("ClientList", 1))
 22589  	}
 22590  	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
 22591  		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
 22592  	}
 22593  	if s.FileShareARN == nil {
 22594  		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
 22595  	}
 22596  	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
 22597  		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
 22598  	}
 22599  	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
 22600  		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
 22601  	}
 22602  	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
 22603  		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
 22604  	}
 22605  	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
 22606  		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
 22607  	}
 22608  	if s.Squash != nil && len(*s.Squash) < 5 {
 22609  		invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
 22610  	}
 22611  	if s.NFSFileShareDefaults != nil {
 22612  		if err := s.NFSFileShareDefaults.Validate(); err != nil {
 22613  			invalidParams.AddNested("NFSFileShareDefaults", err.(request.ErrInvalidParams))
 22614  		}
 22615  	}
 22616  
 22617  	if invalidParams.Len() > 0 {
 22618  		return invalidParams
 22619  	}
 22620  	return nil
 22621  }
 22622  
 22623  // SetCacheAttributes sets the CacheAttributes field's value.
 22624  func (s *UpdateNFSFileShareInput) SetCacheAttributes(v *CacheAttributes) *UpdateNFSFileShareInput {
 22625  	s.CacheAttributes = v
 22626  	return s
 22627  }
 22628  
 22629  // SetClientList sets the ClientList field's value.
 22630  func (s *UpdateNFSFileShareInput) SetClientList(v []*string) *UpdateNFSFileShareInput {
 22631  	s.ClientList = v
 22632  	return s
 22633  }
 22634  
 22635  // SetDefaultStorageClass sets the DefaultStorageClass field's value.
 22636  func (s *UpdateNFSFileShareInput) SetDefaultStorageClass(v string) *UpdateNFSFileShareInput {
 22637  	s.DefaultStorageClass = &v
 22638  	return s
 22639  }
 22640  
 22641  // SetFileShareARN sets the FileShareARN field's value.
 22642  func (s *UpdateNFSFileShareInput) SetFileShareARN(v string) *UpdateNFSFileShareInput {
 22643  	s.FileShareARN = &v
 22644  	return s
 22645  }
 22646  
 22647  // SetFileShareName sets the FileShareName field's value.
 22648  func (s *UpdateNFSFileShareInput) SetFileShareName(v string) *UpdateNFSFileShareInput {
 22649  	s.FileShareName = &v
 22650  	return s
 22651  }
 22652  
 22653  // SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
 22654  func (s *UpdateNFSFileShareInput) SetGuessMIMETypeEnabled(v bool) *UpdateNFSFileShareInput {
 22655  	s.GuessMIMETypeEnabled = &v
 22656  	return s
 22657  }
 22658  
 22659  // SetKMSEncrypted sets the KMSEncrypted field's value.
 22660  func (s *UpdateNFSFileShareInput) SetKMSEncrypted(v bool) *UpdateNFSFileShareInput {
 22661  	s.KMSEncrypted = &v
 22662  	return s
 22663  }
 22664  
 22665  // SetKMSKey sets the KMSKey field's value.
 22666  func (s *UpdateNFSFileShareInput) SetKMSKey(v string) *UpdateNFSFileShareInput {
 22667  	s.KMSKey = &v
 22668  	return s
 22669  }
 22670  
 22671  // SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
 22672  func (s *UpdateNFSFileShareInput) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *UpdateNFSFileShareInput {
 22673  	s.NFSFileShareDefaults = v
 22674  	return s
 22675  }
 22676  
 22677  // SetNotificationPolicy sets the NotificationPolicy field's value.
 22678  func (s *UpdateNFSFileShareInput) SetNotificationPolicy(v string) *UpdateNFSFileShareInput {
 22679  	s.NotificationPolicy = &v
 22680  	return s
 22681  }
 22682  
 22683  // SetObjectACL sets the ObjectACL field's value.
 22684  func (s *UpdateNFSFileShareInput) SetObjectACL(v string) *UpdateNFSFileShareInput {
 22685  	s.ObjectACL = &v
 22686  	return s
 22687  }
 22688  
 22689  // SetReadOnly sets the ReadOnly field's value.
 22690  func (s *UpdateNFSFileShareInput) SetReadOnly(v bool) *UpdateNFSFileShareInput {
 22691  	s.ReadOnly = &v
 22692  	return s
 22693  }
 22694  
 22695  // SetRequesterPays sets the RequesterPays field's value.
 22696  func (s *UpdateNFSFileShareInput) SetRequesterPays(v bool) *UpdateNFSFileShareInput {
 22697  	s.RequesterPays = &v
 22698  	return s
 22699  }
 22700  
 22701  // SetSquash sets the Squash field's value.
 22702  func (s *UpdateNFSFileShareInput) SetSquash(v string) *UpdateNFSFileShareInput {
 22703  	s.Squash = &v
 22704  	return s
 22705  }
 22706  
 22707  // UpdateNFSFileShareOutput
 22708  type UpdateNFSFileShareOutput struct {
 22709  	_ struct{} `type:"structure"`
 22710  
 22711  	// The Amazon Resource Name (ARN) of the updated file share.
 22712  	FileShareARN *string `min:"50" type:"string"`
 22713  }
 22714  
 22715  // String returns the string representation.
 22716  //
 22717  // API parameter values that are decorated as "sensitive" in the API will not
 22718  // be included in the string output. The member name will be present, but the
 22719  // value will be replaced with "sensitive".
 22720  func (s UpdateNFSFileShareOutput) String() string {
 22721  	return awsutil.Prettify(s)
 22722  }
 22723  
 22724  // GoString returns the string representation.
 22725  //
 22726  // API parameter values that are decorated as "sensitive" in the API will not
 22727  // be included in the string output. The member name will be present, but the
 22728  // value will be replaced with "sensitive".
 22729  func (s UpdateNFSFileShareOutput) GoString() string {
 22730  	return s.String()
 22731  }
 22732  
 22733  // SetFileShareARN sets the FileShareARN field's value.
 22734  func (s *UpdateNFSFileShareOutput) SetFileShareARN(v string) *UpdateNFSFileShareOutput {
 22735  	s.FileShareARN = &v
 22736  	return s
 22737  }
 22738  
 22739  // UpdateSMBFileShareInput
 22740  type UpdateSMBFileShareInput struct {
 22741  	_ struct{} `type:"structure"`
 22742  
 22743  	// The files and folders on this share will only be visible to users with read
 22744  	// access.
 22745  	AccessBasedEnumeration *bool `type:"boolean"`
 22746  
 22747  	// A list of users or groups in the Active Directory that have administrator
 22748  	// rights to the file share. A group must be prefixed with the @ character.
 22749  	// Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1.
 22750  	// Can only be set if Authentication is set to ActiveDirectory.
 22751  	AdminUserList []*string `type:"list"`
 22752  
 22753  	// The Amazon Resource Name (ARN) of the storage used for audit logs.
 22754  	AuditDestinationARN *string `type:"string"`
 22755  
 22756  	// Specifies refresh cache information for the file share.
 22757  	CacheAttributes *CacheAttributes `type:"structure"`
 22758  
 22759  	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
 22760  	// client determines the case sensitivity. For CaseSensitive, the gateway determines
 22761  	// the case sensitivity. The default value is ClientSpecified.
 22762  	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
 22763  
 22764  	// The default storage class for objects put into an Amazon S3 bucket by the
 22765  	// S3 File Gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
 22766  	//
 22767  	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
 22768  	DefaultStorageClass *string `min:"5" type:"string"`
 22769  
 22770  	// The Amazon Resource Name (ARN) of the SMB file share that you want to update.
 22771  	//
 22772  	// FileShareARN is a required field
 22773  	FileShareARN *string `min:"50" type:"string" required:"true"`
 22774  
 22775  	// The name of the file share. Optional.
 22776  	//
 22777  	// FileShareName must be set if an S3 prefix name is set in LocationARN.
 22778  	FileShareName *string `min:"1" type:"string"`
 22779  
 22780  	// A value that enables guessing of the MIME type for uploaded objects based
 22781  	// on file extensions. Set this value to true to enable MIME type guessing,
 22782  	// otherwise set to false. The default value is true.
 22783  	//
 22784  	// Valid Values: true | false
 22785  	GuessMIMETypeEnabled *bool `type:"boolean"`
 22786  
 22787  	// A list of users or groups in the Active Directory that are not allowed to
 22788  	// access the file share. A group must be prefixed with the @ character. Acceptable
 22789  	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
 22790  	// be set if Authentication is set to ActiveDirectory.
 22791  	InvalidUserList []*string `type:"list"`
 22792  
 22793  	// Set to true to use Amazon S3 server-side encryption with your own KMS key,
 22794  	// or false to use a key managed by Amazon S3. Optional.
 22795  	//
 22796  	// Valid Values: true | false
 22797  	KMSEncrypted *bool `type:"boolean"`
 22798  
 22799  	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
 22800  	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
 22801  	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
 22802  	KMSKey *string `min:"7" type:"string"`
 22803  
 22804  	// The notification policy of the file share. SettlingTimeInSeconds controls
 22805  	// the number of seconds to wait after the last point in time a client wrote
 22806  	// to a file before generating an ObjectUploaded notification. Because clients
 22807  	// can make many small writes to files, it's best to set this parameter for
 22808  	// as long as possible to avoid generating multiple notifications for the same
 22809  	// file in a small time period.
 22810  	//
 22811  	// SettlingTimeInSeconds has no effect on the timing of the object uploading
 22812  	// to Amazon S3, only the timing of the notification.
 22813  	//
 22814  	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
 22815  	// set to 60.
 22816  	//
 22817  	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
 22818  	//
 22819  	// The following example sets NotificationPolicy off.
 22820  	//
 22821  	// {}
 22822  	NotificationPolicy *string `min:"2" type:"string"`
 22823  
 22824  	// A value that sets the access control list (ACL) permission for objects in
 22825  	// the S3 bucket that a S3 File Gateway puts objects into. The default value
 22826  	// is private.
 22827  	ObjectACL *string `type:"string" enum:"ObjectACL"`
 22828  
 22829  	// Specifies whether opportunistic locking is enabled for the SMB file share.
 22830  	//
 22831  	// Enabling opportunistic locking on case-sensitive shares is not recommended
 22832  	// for workloads that involve access to files with the same name in different
 22833  	// case.
 22834  	//
 22835  	// Valid Values: true | false
 22836  	OplocksEnabled *bool `type:"boolean"`
 22837  
 22838  	// A value that sets the write status of a file share. Set this value to true
 22839  	// to set write status to read-only, otherwise set to false.
 22840  	//
 22841  	// Valid Values: true | false
 22842  	ReadOnly *bool `type:"boolean"`
 22843  
 22844  	// A value that sets who pays the cost of the request and the cost associated
 22845  	// with data download from the S3 bucket. If this value is set to true, the
 22846  	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
 22847  	// S3 bucket owner always pays the cost of storing data.
 22848  	//
 22849  	// RequesterPays is a configuration for the S3 bucket that backs the file share,
 22850  	// so make sure that the configuration on the file share is the same as the
 22851  	// S3 bucket configuration.
 22852  	//
 22853  	// Valid Values: true | false
 22854  	RequesterPays *bool `type:"boolean"`
 22855  
 22856  	// Set this value to true to enable access control list (ACL) on the SMB file
 22857  	// share. Set it to false to map file and directory permissions to the POSIX
 22858  	// permissions.
 22859  	//
 22860  	// For more information, see Using Microsoft Windows ACLs to control access
 22861  	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
 22862  	// in the Storage Gateway User Guide.
 22863  	//
 22864  	// Valid Values: true | false
 22865  	SMBACLEnabled *bool `type:"boolean"`
 22866  
 22867  	// A list of users or groups in the Active Directory that are allowed to access
 22868  	// the file share. A group must be prefixed with the @ character. Acceptable
 22869  	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
 22870  	// be set if Authentication is set to ActiveDirectory.
 22871  	ValidUserList []*string `type:"list"`
 22872  }
 22873  
 22874  // String returns the string representation.
 22875  //
 22876  // API parameter values that are decorated as "sensitive" in the API will not
 22877  // be included in the string output. The member name will be present, but the
 22878  // value will be replaced with "sensitive".
 22879  func (s UpdateSMBFileShareInput) String() string {
 22880  	return awsutil.Prettify(s)
 22881  }
 22882  
 22883  // GoString returns the string representation.
 22884  //
 22885  // API parameter values that are decorated as "sensitive" in the API will not
 22886  // be included in the string output. The member name will be present, but the
 22887  // value will be replaced with "sensitive".
 22888  func (s UpdateSMBFileShareInput) GoString() string {
 22889  	return s.String()
 22890  }
 22891  
 22892  // Validate inspects the fields of the type to determine if they are valid.
 22893  func (s *UpdateSMBFileShareInput) Validate() error {
 22894  	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBFileShareInput"}
 22895  	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
 22896  		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
 22897  	}
 22898  	if s.FileShareARN == nil {
 22899  		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
 22900  	}
 22901  	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
 22902  		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
 22903  	}
 22904  	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
 22905  		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
 22906  	}
 22907  	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
 22908  		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
 22909  	}
 22910  	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
 22911  		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
 22912  	}
 22913  
 22914  	if invalidParams.Len() > 0 {
 22915  		return invalidParams
 22916  	}
 22917  	return nil
 22918  }
 22919  
 22920  // SetAccessBasedEnumeration sets the AccessBasedEnumeration field's value.
 22921  func (s *UpdateSMBFileShareInput) SetAccessBasedEnumeration(v bool) *UpdateSMBFileShareInput {
 22922  	s.AccessBasedEnumeration = &v
 22923  	return s
 22924  }
 22925  
 22926  // SetAdminUserList sets the AdminUserList field's value.
 22927  func (s *UpdateSMBFileShareInput) SetAdminUserList(v []*string) *UpdateSMBFileShareInput {
 22928  	s.AdminUserList = v
 22929  	return s
 22930  }
 22931  
 22932  // SetAuditDestinationARN sets the AuditDestinationARN field's value.
 22933  func (s *UpdateSMBFileShareInput) SetAuditDestinationARN(v string) *UpdateSMBFileShareInput {
 22934  	s.AuditDestinationARN = &v
 22935  	return s
 22936  }
 22937  
 22938  // SetCacheAttributes sets the CacheAttributes field's value.
 22939  func (s *UpdateSMBFileShareInput) SetCacheAttributes(v *CacheAttributes) *UpdateSMBFileShareInput {
 22940  	s.CacheAttributes = v
 22941  	return s
 22942  }
 22943  
 22944  // SetCaseSensitivity sets the CaseSensitivity field's value.
 22945  func (s *UpdateSMBFileShareInput) SetCaseSensitivity(v string) *UpdateSMBFileShareInput {
 22946  	s.CaseSensitivity = &v
 22947  	return s
 22948  }
 22949  
 22950  // SetDefaultStorageClass sets the DefaultStorageClass field's value.
 22951  func (s *UpdateSMBFileShareInput) SetDefaultStorageClass(v string) *UpdateSMBFileShareInput {
 22952  	s.DefaultStorageClass = &v
 22953  	return s
 22954  }
 22955  
 22956  // SetFileShareARN sets the FileShareARN field's value.
 22957  func (s *UpdateSMBFileShareInput) SetFileShareARN(v string) *UpdateSMBFileShareInput {
 22958  	s.FileShareARN = &v
 22959  	return s
 22960  }
 22961  
 22962  // SetFileShareName sets the FileShareName field's value.
 22963  func (s *UpdateSMBFileShareInput) SetFileShareName(v string) *UpdateSMBFileShareInput {
 22964  	s.FileShareName = &v
 22965  	return s
 22966  }
 22967  
 22968  // SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
 22969  func (s *UpdateSMBFileShareInput) SetGuessMIMETypeEnabled(v bool) *UpdateSMBFileShareInput {
 22970  	s.GuessMIMETypeEnabled = &v
 22971  	return s
 22972  }
 22973  
 22974  // SetInvalidUserList sets the InvalidUserList field's value.
 22975  func (s *UpdateSMBFileShareInput) SetInvalidUserList(v []*string) *UpdateSMBFileShareInput {
 22976  	s.InvalidUserList = v
 22977  	return s
 22978  }
 22979  
 22980  // SetKMSEncrypted sets the KMSEncrypted field's value.
 22981  func (s *UpdateSMBFileShareInput) SetKMSEncrypted(v bool) *UpdateSMBFileShareInput {
 22982  	s.KMSEncrypted = &v
 22983  	return s
 22984  }
 22985  
 22986  // SetKMSKey sets the KMSKey field's value.
 22987  func (s *UpdateSMBFileShareInput) SetKMSKey(v string) *UpdateSMBFileShareInput {
 22988  	s.KMSKey = &v
 22989  	return s
 22990  }
 22991  
 22992  // SetNotificationPolicy sets the NotificationPolicy field's value.
 22993  func (s *UpdateSMBFileShareInput) SetNotificationPolicy(v string) *UpdateSMBFileShareInput {
 22994  	s.NotificationPolicy = &v
 22995  	return s
 22996  }
 22997  
 22998  // SetObjectACL sets the ObjectACL field's value.
 22999  func (s *UpdateSMBFileShareInput) SetObjectACL(v string) *UpdateSMBFileShareInput {
 23000  	s.ObjectACL = &v
 23001  	return s
 23002  }
 23003  
 23004  // SetOplocksEnabled sets the OplocksEnabled field's value.
 23005  func (s *UpdateSMBFileShareInput) SetOplocksEnabled(v bool) *UpdateSMBFileShareInput {
 23006  	s.OplocksEnabled = &v
 23007  	return s
 23008  }
 23009  
 23010  // SetReadOnly sets the ReadOnly field's value.
 23011  func (s *UpdateSMBFileShareInput) SetReadOnly(v bool) *UpdateSMBFileShareInput {
 23012  	s.ReadOnly = &v
 23013  	return s
 23014  }
 23015  
 23016  // SetRequesterPays sets the RequesterPays field's value.
 23017  func (s *UpdateSMBFileShareInput) SetRequesterPays(v bool) *UpdateSMBFileShareInput {
 23018  	s.RequesterPays = &v
 23019  	return s
 23020  }
 23021  
 23022  // SetSMBACLEnabled sets the SMBACLEnabled field's value.
 23023  func (s *UpdateSMBFileShareInput) SetSMBACLEnabled(v bool) *UpdateSMBFileShareInput {
 23024  	s.SMBACLEnabled = &v
 23025  	return s
 23026  }
 23027  
 23028  // SetValidUserList sets the ValidUserList field's value.
 23029  func (s *UpdateSMBFileShareInput) SetValidUserList(v []*string) *UpdateSMBFileShareInput {
 23030  	s.ValidUserList = v
 23031  	return s
 23032  }
 23033  
 23034  // UpdateSMBFileShareOutput
 23035  type UpdateSMBFileShareOutput struct {
 23036  	_ struct{} `type:"structure"`
 23037  
 23038  	// The Amazon Resource Name (ARN) of the updated SMB file share.
 23039  	FileShareARN *string `min:"50" type:"string"`
 23040  }
 23041  
 23042  // String returns the string representation.
 23043  //
 23044  // API parameter values that are decorated as "sensitive" in the API will not
 23045  // be included in the string output. The member name will be present, but the
 23046  // value will be replaced with "sensitive".
 23047  func (s UpdateSMBFileShareOutput) String() string {
 23048  	return awsutil.Prettify(s)
 23049  }
 23050  
 23051  // GoString returns the string representation.
 23052  //
 23053  // API parameter values that are decorated as "sensitive" in the API will not
 23054  // be included in the string output. The member name will be present, but the
 23055  // value will be replaced with "sensitive".
 23056  func (s UpdateSMBFileShareOutput) GoString() string {
 23057  	return s.String()
 23058  }
 23059  
 23060  // SetFileShareARN sets the FileShareARN field's value.
 23061  func (s *UpdateSMBFileShareOutput) SetFileShareARN(v string) *UpdateSMBFileShareOutput {
 23062  	s.FileShareARN = &v
 23063  	return s
 23064  }
 23065  
 23066  type UpdateSMBFileShareVisibilityInput struct {
 23067  	_ struct{} `type:"structure"`
 23068  
 23069  	// The shares on this gateway appear when listing shares.
 23070  	//
 23071  	// FileSharesVisible is a required field
 23072  	FileSharesVisible *bool `type:"boolean" required:"true"`
 23073  
 23074  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 23075  	// to return a list of gateways for your account and Region.
 23076  	//
 23077  	// GatewayARN is a required field
 23078  	GatewayARN *string `min:"50" type:"string" required:"true"`
 23079  }
 23080  
 23081  // String returns the string representation.
 23082  //
 23083  // API parameter values that are decorated as "sensitive" in the API will not
 23084  // be included in the string output. The member name will be present, but the
 23085  // value will be replaced with "sensitive".
 23086  func (s UpdateSMBFileShareVisibilityInput) String() string {
 23087  	return awsutil.Prettify(s)
 23088  }
 23089  
 23090  // GoString returns the string representation.
 23091  //
 23092  // API parameter values that are decorated as "sensitive" in the API will not
 23093  // be included in the string output. The member name will be present, but the
 23094  // value will be replaced with "sensitive".
 23095  func (s UpdateSMBFileShareVisibilityInput) GoString() string {
 23096  	return s.String()
 23097  }
 23098  
 23099  // Validate inspects the fields of the type to determine if they are valid.
 23100  func (s *UpdateSMBFileShareVisibilityInput) Validate() error {
 23101  	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBFileShareVisibilityInput"}
 23102  	if s.FileSharesVisible == nil {
 23103  		invalidParams.Add(request.NewErrParamRequired("FileSharesVisible"))
 23104  	}
 23105  	if s.GatewayARN == nil {
 23106  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 23107  	}
 23108  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 23109  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 23110  	}
 23111  
 23112  	if invalidParams.Len() > 0 {
 23113  		return invalidParams
 23114  	}
 23115  	return nil
 23116  }
 23117  
 23118  // SetFileSharesVisible sets the FileSharesVisible field's value.
 23119  func (s *UpdateSMBFileShareVisibilityInput) SetFileSharesVisible(v bool) *UpdateSMBFileShareVisibilityInput {
 23120  	s.FileSharesVisible = &v
 23121  	return s
 23122  }
 23123  
 23124  // SetGatewayARN sets the GatewayARN field's value.
 23125  func (s *UpdateSMBFileShareVisibilityInput) SetGatewayARN(v string) *UpdateSMBFileShareVisibilityInput {
 23126  	s.GatewayARN = &v
 23127  	return s
 23128  }
 23129  
 23130  type UpdateSMBFileShareVisibilityOutput struct {
 23131  	_ struct{} `type:"structure"`
 23132  
 23133  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 23134  	// to return a list of gateways for your account and Region.
 23135  	GatewayARN *string `min:"50" type:"string"`
 23136  }
 23137  
 23138  // String returns the string representation.
 23139  //
 23140  // API parameter values that are decorated as "sensitive" in the API will not
 23141  // be included in the string output. The member name will be present, but the
 23142  // value will be replaced with "sensitive".
 23143  func (s UpdateSMBFileShareVisibilityOutput) String() string {
 23144  	return awsutil.Prettify(s)
 23145  }
 23146  
 23147  // GoString returns the string representation.
 23148  //
 23149  // API parameter values that are decorated as "sensitive" in the API will not
 23150  // be included in the string output. The member name will be present, but the
 23151  // value will be replaced with "sensitive".
 23152  func (s UpdateSMBFileShareVisibilityOutput) GoString() string {
 23153  	return s.String()
 23154  }
 23155  
 23156  // SetGatewayARN sets the GatewayARN field's value.
 23157  func (s *UpdateSMBFileShareVisibilityOutput) SetGatewayARN(v string) *UpdateSMBFileShareVisibilityOutput {
 23158  	s.GatewayARN = &v
 23159  	return s
 23160  }
 23161  
 23162  type UpdateSMBSecurityStrategyInput struct {
 23163  	_ struct{} `type:"structure"`
 23164  
 23165  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 23166  	// to return a list of gateways for your account and Region.
 23167  	//
 23168  	// GatewayARN is a required field
 23169  	GatewayARN *string `min:"50" type:"string" required:"true"`
 23170  
 23171  	// Specifies the type of security strategy.
 23172  	//
 23173  	// ClientSpecified: if you use this option, requests are established based on
 23174  	// what is negotiated by the client. This option is recommended when you want
 23175  	// to maximize compatibility across different clients in your environment. Supported
 23176  	// only in S3 File Gateway.
 23177  	//
 23178  	// MandatorySigning: if you use this option, file gateway only allows connections
 23179  	// from SMBv2 or SMBv3 clients that have signing enabled. This option works
 23180  	// with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer.
 23181  	//
 23182  	// MandatoryEncryption: if you use this option, file gateway only allows connections
 23183  	// from SMBv3 clients that have encryption enabled. This option is highly recommended
 23184  	// for environments that handle sensitive data. This option works with SMB clients
 23185  	// on Microsoft Windows 8, Windows Server 2012 or newer.
 23186  	//
 23187  	// SMBSecurityStrategy is a required field
 23188  	SMBSecurityStrategy *string `type:"string" required:"true" enum:"SMBSecurityStrategy"`
 23189  }
 23190  
 23191  // String returns the string representation.
 23192  //
 23193  // API parameter values that are decorated as "sensitive" in the API will not
 23194  // be included in the string output. The member name will be present, but the
 23195  // value will be replaced with "sensitive".
 23196  func (s UpdateSMBSecurityStrategyInput) String() string {
 23197  	return awsutil.Prettify(s)
 23198  }
 23199  
 23200  // GoString returns the string representation.
 23201  //
 23202  // API parameter values that are decorated as "sensitive" in the API will not
 23203  // be included in the string output. The member name will be present, but the
 23204  // value will be replaced with "sensitive".
 23205  func (s UpdateSMBSecurityStrategyInput) GoString() string {
 23206  	return s.String()
 23207  }
 23208  
 23209  // Validate inspects the fields of the type to determine if they are valid.
 23210  func (s *UpdateSMBSecurityStrategyInput) Validate() error {
 23211  	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBSecurityStrategyInput"}
 23212  	if s.GatewayARN == nil {
 23213  		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
 23214  	}
 23215  	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
 23216  		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
 23217  	}
 23218  	if s.SMBSecurityStrategy == nil {
 23219  		invalidParams.Add(request.NewErrParamRequired("SMBSecurityStrategy"))
 23220  	}
 23221  
 23222  	if invalidParams.Len() > 0 {
 23223  		return invalidParams
 23224  	}
 23225  	return nil
 23226  }
 23227  
 23228  // SetGatewayARN sets the GatewayARN field's value.
 23229  func (s *UpdateSMBSecurityStrategyInput) SetGatewayARN(v string) *UpdateSMBSecurityStrategyInput {
 23230  	s.GatewayARN = &v
 23231  	return s
 23232  }
 23233  
 23234  // SetSMBSecurityStrategy sets the SMBSecurityStrategy field's value.
 23235  func (s *UpdateSMBSecurityStrategyInput) SetSMBSecurityStrategy(v string) *UpdateSMBSecurityStrategyInput {
 23236  	s.SMBSecurityStrategy = &v
 23237  	return s
 23238  }
 23239  
 23240  type UpdateSMBSecurityStrategyOutput struct {
 23241  	_ struct{} `type:"structure"`
 23242  
 23243  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 23244  	// to return a list of gateways for your account and Region.
 23245  	GatewayARN *string `min:"50" type:"string"`
 23246  }
 23247  
 23248  // String returns the string representation.
 23249  //
 23250  // API parameter values that are decorated as "sensitive" in the API will not
 23251  // be included in the string output. The member name will be present, but the
 23252  // value will be replaced with "sensitive".
 23253  func (s UpdateSMBSecurityStrategyOutput) String() string {
 23254  	return awsutil.Prettify(s)
 23255  }
 23256  
 23257  // GoString returns the string representation.
 23258  //
 23259  // API parameter values that are decorated as "sensitive" in the API will not
 23260  // be included in the string output. The member name will be present, but the
 23261  // value will be replaced with "sensitive".
 23262  func (s UpdateSMBSecurityStrategyOutput) GoString() string {
 23263  	return s.String()
 23264  }
 23265  
 23266  // SetGatewayARN sets the GatewayARN field's value.
 23267  func (s *UpdateSMBSecurityStrategyOutput) SetGatewayARN(v string) *UpdateSMBSecurityStrategyOutput {
 23268  	s.GatewayARN = &v
 23269  	return s
 23270  }
 23271  
 23272  // A JSON object containing one or more of the following fields:
 23273  //
 23274  //    * UpdateSnapshotScheduleInput$Description
 23275  //
 23276  //    * UpdateSnapshotScheduleInput$RecurrenceInHours
 23277  //
 23278  //    * UpdateSnapshotScheduleInput$StartAt
 23279  //
 23280  //    * UpdateSnapshotScheduleInput$VolumeARN
 23281  type UpdateSnapshotScheduleInput struct {
 23282  	_ struct{} `type:"structure"`
 23283  
 23284  	// Optional description of the snapshot that overwrites the existing description.
 23285  	Description *string `min:"1" type:"string"`
 23286  
 23287  	// Frequency of snapshots. Specify the number of hours between snapshots.
 23288  	//
 23289  	// RecurrenceInHours is a required field
 23290  	RecurrenceInHours *int64 `min:"1" type:"integer" required:"true"`
 23291  
 23292  	// The hour of the day at which the snapshot schedule begins represented as
 23293  	// hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
 23294  	// of the gateway.
 23295  	//
 23296  	// StartAt is a required field
 23297  	StartAt *int64 `type:"integer" required:"true"`
 23298  
 23299  	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
 23300  	// key-value pair.
 23301  	//
 23302  	// Valid characters for key and value are letters, spaces, and numbers representable
 23303  	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
 23304  	// maximum length of a tag's key is 128 characters, and the maximum length for
 23305  	// a tag's value is 256.
 23306  	Tags []*Tag `type:"list"`
 23307  
 23308  	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
 23309  	// to return a list of gateway volumes.
 23310  	//
 23311  	// VolumeARN is a required field
 23312  	VolumeARN *string `min:"50" type:"string" required:"true"`
 23313  }
 23314  
 23315  // String returns the string representation.
 23316  //
 23317  // API parameter values that are decorated as "sensitive" in the API will not
 23318  // be included in the string output. The member name will be present, but the
 23319  // value will be replaced with "sensitive".
 23320  func (s UpdateSnapshotScheduleInput) String() string {
 23321  	return awsutil.Prettify(s)
 23322  }
 23323  
 23324  // GoString returns the string representation.
 23325  //
 23326  // API parameter values that are decorated as "sensitive" in the API will not
 23327  // be included in the string output. The member name will be present, but the
 23328  // value will be replaced with "sensitive".
 23329  func (s UpdateSnapshotScheduleInput) GoString() string {
 23330  	return s.String()
 23331  }
 23332  
 23333  // Validate inspects the fields of the type to determine if they are valid.
 23334  func (s *UpdateSnapshotScheduleInput) Validate() error {
 23335  	invalidParams := request.ErrInvalidParams{Context: "UpdateSnapshotScheduleInput"}
 23336  	if s.Description != nil && len(*s.Description) < 1 {
 23337  		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
 23338  	}
 23339  	if s.RecurrenceInHours == nil {
 23340  		invalidParams.Add(request.NewErrParamRequired("RecurrenceInHours"))
 23341  	}
 23342  	if s.RecurrenceInHours != nil && *s.RecurrenceInHours < 1 {
 23343  		invalidParams.Add(request.NewErrParamMinValue("RecurrenceInHours", 1))
 23344  	}
 23345  	if s.StartAt == nil {
 23346  		invalidParams.Add(request.NewErrParamRequired("StartAt"))
 23347  	}
 23348  	if s.VolumeARN == nil {
 23349  		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
 23350  	}
 23351  	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
 23352  		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
 23353  	}
 23354  	if s.Tags != nil {
 23355  		for i, v := range s.Tags {
 23356  			if v == nil {
 23357  				continue
 23358  			}
 23359  			if err := v.Validate(); err != nil {
 23360  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 23361  			}
 23362  		}
 23363  	}
 23364  
 23365  	if invalidParams.Len() > 0 {
 23366  		return invalidParams
 23367  	}
 23368  	return nil
 23369  }
 23370  
 23371  // SetDescription sets the Description field's value.
 23372  func (s *UpdateSnapshotScheduleInput) SetDescription(v string) *UpdateSnapshotScheduleInput {
 23373  	s.Description = &v
 23374  	return s
 23375  }
 23376  
 23377  // SetRecurrenceInHours sets the RecurrenceInHours field's value.
 23378  func (s *UpdateSnapshotScheduleInput) SetRecurrenceInHours(v int64) *UpdateSnapshotScheduleInput {
 23379  	s.RecurrenceInHours = &v
 23380  	return s
 23381  }
 23382  
 23383  // SetStartAt sets the StartAt field's value.
 23384  func (s *UpdateSnapshotScheduleInput) SetStartAt(v int64) *UpdateSnapshotScheduleInput {
 23385  	s.StartAt = &v
 23386  	return s
 23387  }
 23388  
 23389  // SetTags sets the Tags field's value.
 23390  func (s *UpdateSnapshotScheduleInput) SetTags(v []*Tag) *UpdateSnapshotScheduleInput {
 23391  	s.Tags = v
 23392  	return s
 23393  }
 23394  
 23395  // SetVolumeARN sets the VolumeARN field's value.
 23396  func (s *UpdateSnapshotScheduleInput) SetVolumeARN(v string) *UpdateSnapshotScheduleInput {
 23397  	s.VolumeARN = &v
 23398  	return s
 23399  }
 23400  
 23401  // A JSON object containing the Amazon Resource Name (ARN) of the updated storage
 23402  // volume.
 23403  type UpdateSnapshotScheduleOutput struct {
 23404  	_ struct{} `type:"structure"`
 23405  
 23406  	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
 23407  	// to return a list of gateway volumes.
 23408  	VolumeARN *string `min:"50" type:"string"`
 23409  }
 23410  
 23411  // String returns the string representation.
 23412  //
 23413  // API parameter values that are decorated as "sensitive" in the API will not
 23414  // be included in the string output. The member name will be present, but the
 23415  // value will be replaced with "sensitive".
 23416  func (s UpdateSnapshotScheduleOutput) String() string {
 23417  	return awsutil.Prettify(s)
 23418  }
 23419  
 23420  // GoString returns the string representation.
 23421  //
 23422  // API parameter values that are decorated as "sensitive" in the API will not
 23423  // be included in the string output. The member name will be present, but the
 23424  // value will be replaced with "sensitive".
 23425  func (s UpdateSnapshotScheduleOutput) GoString() string {
 23426  	return s.String()
 23427  }
 23428  
 23429  // SetVolumeARN sets the VolumeARN field's value.
 23430  func (s *UpdateSnapshotScheduleOutput) SetVolumeARN(v string) *UpdateSnapshotScheduleOutput {
 23431  	s.VolumeARN = &v
 23432  	return s
 23433  }
 23434  
 23435  type UpdateVTLDeviceTypeInput struct {
 23436  	_ struct{} `type:"structure"`
 23437  
 23438  	// The type of medium changer you want to select.
 23439  	//
 23440  	// Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402
 23441  	//
 23442  	// DeviceType is a required field
 23443  	DeviceType *string `min:"2" type:"string" required:"true"`
 23444  
 23445  	// The Amazon Resource Name (ARN) of the medium changer you want to select.
 23446  	//
 23447  	// VTLDeviceARN is a required field
 23448  	VTLDeviceARN *string `min:"50" type:"string" required:"true"`
 23449  }
 23450  
 23451  // String returns the string representation.
 23452  //
 23453  // API parameter values that are decorated as "sensitive" in the API will not
 23454  // be included in the string output. The member name will be present, but the
 23455  // value will be replaced with "sensitive".
 23456  func (s UpdateVTLDeviceTypeInput) String() string {
 23457  	return awsutil.Prettify(s)
 23458  }
 23459  
 23460  // GoString returns the string representation.
 23461  //
 23462  // API parameter values that are decorated as "sensitive" in the API will not
 23463  // be included in the string output. The member name will be present, but the
 23464  // value will be replaced with "sensitive".
 23465  func (s UpdateVTLDeviceTypeInput) GoString() string {
 23466  	return s.String()
 23467  }
 23468  
 23469  // Validate inspects the fields of the type to determine if they are valid.
 23470  func (s *UpdateVTLDeviceTypeInput) Validate() error {
 23471  	invalidParams := request.ErrInvalidParams{Context: "UpdateVTLDeviceTypeInput"}
 23472  	if s.DeviceType == nil {
 23473  		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
 23474  	}
 23475  	if s.DeviceType != nil && len(*s.DeviceType) < 2 {
 23476  		invalidParams.Add(request.NewErrParamMinLen("DeviceType", 2))
 23477  	}
 23478  	if s.VTLDeviceARN == nil {
 23479  		invalidParams.Add(request.NewErrParamRequired("VTLDeviceARN"))
 23480  	}
 23481  	if s.VTLDeviceARN != nil && len(*s.VTLDeviceARN) < 50 {
 23482  		invalidParams.Add(request.NewErrParamMinLen("VTLDeviceARN", 50))
 23483  	}
 23484  
 23485  	if invalidParams.Len() > 0 {
 23486  		return invalidParams
 23487  	}
 23488  	return nil
 23489  }
 23490  
 23491  // SetDeviceType sets the DeviceType field's value.
 23492  func (s *UpdateVTLDeviceTypeInput) SetDeviceType(v string) *UpdateVTLDeviceTypeInput {
 23493  	s.DeviceType = &v
 23494  	return s
 23495  }
 23496  
 23497  // SetVTLDeviceARN sets the VTLDeviceARN field's value.
 23498  func (s *UpdateVTLDeviceTypeInput) SetVTLDeviceARN(v string) *UpdateVTLDeviceTypeInput {
 23499  	s.VTLDeviceARN = &v
 23500  	return s
 23501  }
 23502  
 23503  // UpdateVTLDeviceTypeOutput
 23504  type UpdateVTLDeviceTypeOutput struct {
 23505  	_ struct{} `type:"structure"`
 23506  
 23507  	// The Amazon Resource Name (ARN) of the medium changer you have selected.
 23508  	VTLDeviceARN *string `min:"50" type:"string"`
 23509  }
 23510  
 23511  // String returns the string representation.
 23512  //
 23513  // API parameter values that are decorated as "sensitive" in the API will not
 23514  // be included in the string output. The member name will be present, but the
 23515  // value will be replaced with "sensitive".
 23516  func (s UpdateVTLDeviceTypeOutput) String() string {
 23517  	return awsutil.Prettify(s)
 23518  }
 23519  
 23520  // GoString returns the string representation.
 23521  //
 23522  // API parameter values that are decorated as "sensitive" in the API will not
 23523  // be included in the string output. The member name will be present, but the
 23524  // value will be replaced with "sensitive".
 23525  func (s UpdateVTLDeviceTypeOutput) GoString() string {
 23526  	return s.String()
 23527  }
 23528  
 23529  // SetVTLDeviceARN sets the VTLDeviceARN field's value.
 23530  func (s *UpdateVTLDeviceTypeOutput) SetVTLDeviceARN(v string) *UpdateVTLDeviceTypeOutput {
 23531  	s.VTLDeviceARN = &v
 23532  	return s
 23533  }
 23534  
 23535  // Represents a device object associated with a tape gateway.
 23536  type VTLDevice struct {
 23537  	_ struct{} `type:"structure"`
 23538  
 23539  	// A list of iSCSI information about a VTL device.
 23540  	DeviceiSCSIAttributes *DeviceiSCSIAttributes `type:"structure"`
 23541  
 23542  	// Specifies the unique Amazon Resource Name (ARN) of the device (tape drive
 23543  	// or media changer).
 23544  	VTLDeviceARN *string `min:"50" type:"string"`
 23545  
 23546  	// Specifies the model number of device that the VTL device emulates.
 23547  	VTLDeviceProductIdentifier *string `type:"string"`
 23548  
 23549  	// Specifies the type of device that the VTL device emulates.
 23550  	VTLDeviceType *string `type:"string"`
 23551  
 23552  	// Specifies the vendor of the device that the VTL device object emulates.
 23553  	VTLDeviceVendor *string `type:"string"`
 23554  }
 23555  
 23556  // String returns the string representation.
 23557  //
 23558  // API parameter values that are decorated as "sensitive" in the API will not
 23559  // be included in the string output. The member name will be present, but the
 23560  // value will be replaced with "sensitive".
 23561  func (s VTLDevice) String() string {
 23562  	return awsutil.Prettify(s)
 23563  }
 23564  
 23565  // GoString returns the string representation.
 23566  //
 23567  // API parameter values that are decorated as "sensitive" in the API will not
 23568  // be included in the string output. The member name will be present, but the
 23569  // value will be replaced with "sensitive".
 23570  func (s VTLDevice) GoString() string {
 23571  	return s.String()
 23572  }
 23573  
 23574  // SetDeviceiSCSIAttributes sets the DeviceiSCSIAttributes field's value.
 23575  func (s *VTLDevice) SetDeviceiSCSIAttributes(v *DeviceiSCSIAttributes) *VTLDevice {
 23576  	s.DeviceiSCSIAttributes = v
 23577  	return s
 23578  }
 23579  
 23580  // SetVTLDeviceARN sets the VTLDeviceARN field's value.
 23581  func (s *VTLDevice) SetVTLDeviceARN(v string) *VTLDevice {
 23582  	s.VTLDeviceARN = &v
 23583  	return s
 23584  }
 23585  
 23586  // SetVTLDeviceProductIdentifier sets the VTLDeviceProductIdentifier field's value.
 23587  func (s *VTLDevice) SetVTLDeviceProductIdentifier(v string) *VTLDevice {
 23588  	s.VTLDeviceProductIdentifier = &v
 23589  	return s
 23590  }
 23591  
 23592  // SetVTLDeviceType sets the VTLDeviceType field's value.
 23593  func (s *VTLDevice) SetVTLDeviceType(v string) *VTLDevice {
 23594  	s.VTLDeviceType = &v
 23595  	return s
 23596  }
 23597  
 23598  // SetVTLDeviceVendor sets the VTLDeviceVendor field's value.
 23599  func (s *VTLDevice) SetVTLDeviceVendor(v string) *VTLDevice {
 23600  	s.VTLDeviceVendor = &v
 23601  	return s
 23602  }
 23603  
 23604  // Describes a storage volume object.
 23605  type VolumeInfo struct {
 23606  	_ struct{} `type:"structure"`
 23607  
 23608  	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
 23609  	// to return a list of gateways for your account and Region.
 23610  	GatewayARN *string `min:"50" type:"string"`
 23611  
 23612  	// The unique identifier assigned to your gateway during activation. This ID
 23613  	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
 23614  	// input for other operations.
 23615  	//
 23616  	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
 23617  	// (-).
 23618  	GatewayId *string `min:"12" type:"string"`
 23619  
 23620  	// The Amazon Resource Name (ARN) for the storage volume. For example, the following
 23621  	// is a valid ARN:
 23622  	//
 23623  	// arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB
 23624  	//
 23625  	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
 23626  	// (-).
 23627  	VolumeARN *string `min:"50" type:"string"`
 23628  
 23629  	// One of the VolumeStatus values that indicates the state of the storage volume.
 23630  	VolumeAttachmentStatus *string `min:"3" type:"string"`
 23631  
 23632  	// The unique identifier assigned to the volume. This ID becomes part of the
 23633  	// volume Amazon Resource Name (ARN), which you use as input for other operations.
 23634  	//
 23635  	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
 23636  	// (-).
 23637  	VolumeId *string `min:"12" type:"string"`
 23638  
 23639  	// The size of the volume in bytes.
 23640  	//
 23641  	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
 23642  	// (-).
 23643  	VolumeSizeInBytes *int64 `type:"long"`
 23644  
 23645  	// One of the VolumeType enumeration values describing the type of the volume.
 23646  	VolumeType *string `min:"3" type:"string"`
 23647  }
 23648  
 23649  // String returns the string representation.
 23650  //
 23651  // API parameter values that are decorated as "sensitive" in the API will not
 23652  // be included in the string output. The member name will be present, but the
 23653  // value will be replaced with "sensitive".
 23654  func (s VolumeInfo) String() string {
 23655  	return awsutil.Prettify(s)
 23656  }
 23657  
 23658  // GoString returns the string representation.
 23659  //
 23660  // API parameter values that are decorated as "sensitive" in the API will not
 23661  // be included in the string output. The member name will be present, but the
 23662  // value will be replaced with "sensitive".
 23663  func (s VolumeInfo) GoString() string {
 23664  	return s.String()
 23665  }
 23666  
 23667  // SetGatewayARN sets the GatewayARN field's value.
 23668  func (s *VolumeInfo) SetGatewayARN(v string) *VolumeInfo {
 23669  	s.GatewayARN = &v
 23670  	return s
 23671  }
 23672  
 23673  // SetGatewayId sets the GatewayId field's value.
 23674  func (s *VolumeInfo) SetGatewayId(v string) *VolumeInfo {
 23675  	s.GatewayId = &v
 23676  	return s
 23677  }
 23678  
 23679  // SetVolumeARN sets the VolumeARN field's value.
 23680  func (s *VolumeInfo) SetVolumeARN(v string) *VolumeInfo {
 23681  	s.VolumeARN = &v
 23682  	return s
 23683  }
 23684  
 23685  // SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
 23686  func (s *VolumeInfo) SetVolumeAttachmentStatus(v string) *VolumeInfo {
 23687  	s.VolumeAttachmentStatus = &v
 23688  	return s
 23689  }
 23690  
 23691  // SetVolumeId sets the VolumeId field's value.
 23692  func (s *VolumeInfo) SetVolumeId(v string) *VolumeInfo {
 23693  	s.VolumeId = &v
 23694  	return s
 23695  }
 23696  
 23697  // SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
 23698  func (s *VolumeInfo) SetVolumeSizeInBytes(v int64) *VolumeInfo {
 23699  	s.VolumeSizeInBytes = &v
 23700  	return s
 23701  }
 23702  
 23703  // SetVolumeType sets the VolumeType field's value.
 23704  func (s *VolumeInfo) SetVolumeType(v string) *VolumeInfo {
 23705  	s.VolumeType = &v
 23706  	return s
 23707  }
 23708  
 23709  // Describes a storage volume recovery point object.
 23710  type VolumeRecoveryPointInfo struct {
 23711  	_ struct{} `type:"structure"`
 23712  
 23713  	// The Amazon Resource Name (ARN) of the volume target.
 23714  	VolumeARN *string `min:"50" type:"string"`
 23715  
 23716  	// The time the recovery point was taken.
 23717  	VolumeRecoveryPointTime *string `type:"string"`
 23718  
 23719  	// The size of the volume in bytes.
 23720  	VolumeSizeInBytes *int64 `type:"long"`
 23721  
 23722  	// The size of the data stored on the volume in bytes.
 23723  	//
 23724  	// This value is not available for volumes created prior to May 13, 2015, until
 23725  	// you store data on the volume.
 23726  	VolumeUsageInBytes *int64 `type:"long"`
 23727  }
 23728  
 23729  // String returns the string representation.
 23730  //
 23731  // API parameter values that are decorated as "sensitive" in the API will not
 23732  // be included in the string output. The member name will be present, but the
 23733  // value will be replaced with "sensitive".
 23734  func (s VolumeRecoveryPointInfo) String() string {
 23735  	return awsutil.Prettify(s)
 23736  }
 23737  
 23738  // GoString returns the string representation.
 23739  //
 23740  // API parameter values that are decorated as "sensitive" in the API will not
 23741  // be included in the string output. The member name will be present, but the
 23742  // value will be replaced with "sensitive".
 23743  func (s VolumeRecoveryPointInfo) GoString() string {
 23744  	return s.String()
 23745  }
 23746  
 23747  // SetVolumeARN sets the VolumeARN field's value.
 23748  func (s *VolumeRecoveryPointInfo) SetVolumeARN(v string) *VolumeRecoveryPointInfo {
 23749  	s.VolumeARN = &v
 23750  	return s
 23751  }
 23752  
 23753  // SetVolumeRecoveryPointTime sets the VolumeRecoveryPointTime field's value.
 23754  func (s *VolumeRecoveryPointInfo) SetVolumeRecoveryPointTime(v string) *VolumeRecoveryPointInfo {
 23755  	s.VolumeRecoveryPointTime = &v
 23756  	return s
 23757  }
 23758  
 23759  // SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
 23760  func (s *VolumeRecoveryPointInfo) SetVolumeSizeInBytes(v int64) *VolumeRecoveryPointInfo {
 23761  	s.VolumeSizeInBytes = &v
 23762  	return s
 23763  }
 23764  
 23765  // SetVolumeUsageInBytes sets the VolumeUsageInBytes field's value.
 23766  func (s *VolumeRecoveryPointInfo) SetVolumeUsageInBytes(v int64) *VolumeRecoveryPointInfo {
 23767  	s.VolumeUsageInBytes = &v
 23768  	return s
 23769  }
 23770  
 23771  // Lists iSCSI information about a volume.
 23772  type VolumeiSCSIAttributes struct {
 23773  	_ struct{} `type:"structure"`
 23774  
 23775  	// Indicates whether mutual CHAP is enabled for the iSCSI target.
 23776  	ChapEnabled *bool `type:"boolean"`
 23777  
 23778  	// The logical disk number.
 23779  	LunNumber *int64 `min:"1" type:"integer"`
 23780  
 23781  	// The network interface identifier.
 23782  	NetworkInterfaceId *string `type:"string"`
 23783  
 23784  	// The port used to communicate with iSCSI targets.
 23785  	NetworkInterfacePort *int64 `type:"integer"`
 23786  
 23787  	// The Amazon Resource Name (ARN) of the volume target.
 23788  	TargetARN *string `min:"50" type:"string"`
 23789  }
 23790  
 23791  // String returns the string representation.
 23792  //
 23793  // API parameter values that are decorated as "sensitive" in the API will not
 23794  // be included in the string output. The member name will be present, but the
 23795  // value will be replaced with "sensitive".
 23796  func (s VolumeiSCSIAttributes) String() string {
 23797  	return awsutil.Prettify(s)
 23798  }
 23799  
 23800  // GoString returns the string representation.
 23801  //
 23802  // API parameter values that are decorated as "sensitive" in the API will not
 23803  // be included in the string output. The member name will be present, but the
 23804  // value will be replaced with "sensitive".
 23805  func (s VolumeiSCSIAttributes) GoString() string {
 23806  	return s.String()
 23807  }
 23808  
 23809  // SetChapEnabled sets the ChapEnabled field's value.
 23810  func (s *VolumeiSCSIAttributes) SetChapEnabled(v bool) *VolumeiSCSIAttributes {
 23811  	s.ChapEnabled = &v
 23812  	return s
 23813  }
 23814  
 23815  // SetLunNumber sets the LunNumber field's value.
 23816  func (s *VolumeiSCSIAttributes) SetLunNumber(v int64) *VolumeiSCSIAttributes {
 23817  	s.LunNumber = &v
 23818  	return s
 23819  }
 23820  
 23821  // SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
 23822  func (s *VolumeiSCSIAttributes) SetNetworkInterfaceId(v string) *VolumeiSCSIAttributes {
 23823  	s.NetworkInterfaceId = &v
 23824  	return s
 23825  }
 23826  
 23827  // SetNetworkInterfacePort sets the NetworkInterfacePort field's value.
 23828  func (s *VolumeiSCSIAttributes) SetNetworkInterfacePort(v int64) *VolumeiSCSIAttributes {
 23829  	s.NetworkInterfacePort = &v
 23830  	return s
 23831  }
 23832  
 23833  // SetTargetARN sets the TargetARN field's value.
 23834  func (s *VolumeiSCSIAttributes) SetTargetARN(v string) *VolumeiSCSIAttributes {
 23835  	s.TargetARN = &v
 23836  	return s
 23837  }
 23838  
 23839  const (
 23840  	// ActiveDirectoryStatusAccessDenied is a ActiveDirectoryStatus enum value
 23841  	ActiveDirectoryStatusAccessDenied = "ACCESS_DENIED"
 23842  
 23843  	// ActiveDirectoryStatusDetached is a ActiveDirectoryStatus enum value
 23844  	ActiveDirectoryStatusDetached = "DETACHED"
 23845  
 23846  	// ActiveDirectoryStatusJoined is a ActiveDirectoryStatus enum value
 23847  	ActiveDirectoryStatusJoined = "JOINED"
 23848  
 23849  	// ActiveDirectoryStatusJoining is a ActiveDirectoryStatus enum value
 23850  	ActiveDirectoryStatusJoining = "JOINING"
 23851  
 23852  	// ActiveDirectoryStatusNetworkError is a ActiveDirectoryStatus enum value
 23853  	ActiveDirectoryStatusNetworkError = "NETWORK_ERROR"
 23854  
 23855  	// ActiveDirectoryStatusTimeout is a ActiveDirectoryStatus enum value
 23856  	ActiveDirectoryStatusTimeout = "TIMEOUT"
 23857  
 23858  	// ActiveDirectoryStatusUnknownError is a ActiveDirectoryStatus enum value
 23859  	ActiveDirectoryStatusUnknownError = "UNKNOWN_ERROR"
 23860  )
 23861  
 23862  // ActiveDirectoryStatus_Values returns all elements of the ActiveDirectoryStatus enum
 23863  func ActiveDirectoryStatus_Values() []string {
 23864  	return []string{
 23865  		ActiveDirectoryStatusAccessDenied,
 23866  		ActiveDirectoryStatusDetached,
 23867  		ActiveDirectoryStatusJoined,
 23868  		ActiveDirectoryStatusJoining,
 23869  		ActiveDirectoryStatusNetworkError,
 23870  		ActiveDirectoryStatusTimeout,
 23871  		ActiveDirectoryStatusUnknownError,
 23872  	}
 23873  }
 23874  
 23875  const (
 23876  	// AvailabilityMonitorTestStatusComplete is a AvailabilityMonitorTestStatus enum value
 23877  	AvailabilityMonitorTestStatusComplete = "COMPLETE"
 23878  
 23879  	// AvailabilityMonitorTestStatusFailed is a AvailabilityMonitorTestStatus enum value
 23880  	AvailabilityMonitorTestStatusFailed = "FAILED"
 23881  
 23882  	// AvailabilityMonitorTestStatusPending is a AvailabilityMonitorTestStatus enum value
 23883  	AvailabilityMonitorTestStatusPending = "PENDING"
 23884  )
 23885  
 23886  // AvailabilityMonitorTestStatus_Values returns all elements of the AvailabilityMonitorTestStatus enum
 23887  func AvailabilityMonitorTestStatus_Values() []string {
 23888  	return []string{
 23889  		AvailabilityMonitorTestStatusComplete,
 23890  		AvailabilityMonitorTestStatusFailed,
 23891  		AvailabilityMonitorTestStatusPending,
 23892  	}
 23893  }
 23894  
 23895  const (
 23896  	// CaseSensitivityClientSpecified is a CaseSensitivity enum value
 23897  	CaseSensitivityClientSpecified = "ClientSpecified"
 23898  
 23899  	// CaseSensitivityCaseSensitive is a CaseSensitivity enum value
 23900  	CaseSensitivityCaseSensitive = "CaseSensitive"
 23901  )
 23902  
 23903  // CaseSensitivity_Values returns all elements of the CaseSensitivity enum
 23904  func CaseSensitivity_Values() []string {
 23905  	return []string{
 23906  		CaseSensitivityClientSpecified,
 23907  		CaseSensitivityCaseSensitive,
 23908  	}
 23909  }
 23910  
 23911  const (
 23912  	// ErrorCodeActivationKeyExpired is a ErrorCode enum value
 23913  	ErrorCodeActivationKeyExpired = "ActivationKeyExpired"
 23914  
 23915  	// ErrorCodeActivationKeyInvalid is a ErrorCode enum value
 23916  	ErrorCodeActivationKeyInvalid = "ActivationKeyInvalid"
 23917  
 23918  	// ErrorCodeActivationKeyNotFound is a ErrorCode enum value
 23919  	ErrorCodeActivationKeyNotFound = "ActivationKeyNotFound"
 23920  
 23921  	// ErrorCodeGatewayInternalError is a ErrorCode enum value
 23922  	ErrorCodeGatewayInternalError = "GatewayInternalError"
 23923  
 23924  	// ErrorCodeGatewayNotConnected is a ErrorCode enum value
 23925  	ErrorCodeGatewayNotConnected = "GatewayNotConnected"
 23926  
 23927  	// ErrorCodeGatewayNotFound is a ErrorCode enum value
 23928  	ErrorCodeGatewayNotFound = "GatewayNotFound"
 23929  
 23930  	// ErrorCodeGatewayProxyNetworkConnectionBusy is a ErrorCode enum value
 23931  	ErrorCodeGatewayProxyNetworkConnectionBusy = "GatewayProxyNetworkConnectionBusy"
 23932  
 23933  	// ErrorCodeAuthenticationFailure is a ErrorCode enum value
 23934  	ErrorCodeAuthenticationFailure = "AuthenticationFailure"
 23935  
 23936  	// ErrorCodeBandwidthThrottleScheduleNotFound is a ErrorCode enum value
 23937  	ErrorCodeBandwidthThrottleScheduleNotFound = "BandwidthThrottleScheduleNotFound"
 23938  
 23939  	// ErrorCodeBlocked is a ErrorCode enum value
 23940  	ErrorCodeBlocked = "Blocked"
 23941  
 23942  	// ErrorCodeCannotExportSnapshot is a ErrorCode enum value
 23943  	ErrorCodeCannotExportSnapshot = "CannotExportSnapshot"
 23944  
 23945  	// ErrorCodeChapCredentialNotFound is a ErrorCode enum value
 23946  	ErrorCodeChapCredentialNotFound = "ChapCredentialNotFound"
 23947  
 23948  	// ErrorCodeDiskAlreadyAllocated is a ErrorCode enum value
 23949  	ErrorCodeDiskAlreadyAllocated = "DiskAlreadyAllocated"
 23950  
 23951  	// ErrorCodeDiskDoesNotExist is a ErrorCode enum value
 23952  	ErrorCodeDiskDoesNotExist = "DiskDoesNotExist"
 23953  
 23954  	// ErrorCodeDiskSizeGreaterThanVolumeMaxSize is a ErrorCode enum value
 23955  	ErrorCodeDiskSizeGreaterThanVolumeMaxSize = "DiskSizeGreaterThanVolumeMaxSize"
 23956  
 23957  	// ErrorCodeDiskSizeLessThanVolumeSize is a ErrorCode enum value
 23958  	ErrorCodeDiskSizeLessThanVolumeSize = "DiskSizeLessThanVolumeSize"
 23959  
 23960  	// ErrorCodeDiskSizeNotGigAligned is a ErrorCode enum value
 23961  	ErrorCodeDiskSizeNotGigAligned = "DiskSizeNotGigAligned"
 23962  
 23963  	// ErrorCodeDuplicateCertificateInfo is a ErrorCode enum value
 23964  	ErrorCodeDuplicateCertificateInfo = "DuplicateCertificateInfo"
 23965  
 23966  	// ErrorCodeDuplicateSchedule is a ErrorCode enum value
 23967  	ErrorCodeDuplicateSchedule = "DuplicateSchedule"
 23968  
 23969  	// ErrorCodeEndpointNotFound is a ErrorCode enum value
 23970  	ErrorCodeEndpointNotFound = "EndpointNotFound"
 23971  
 23972  	// ErrorCodeIamnotSupported is a ErrorCode enum value
 23973  	ErrorCodeIamnotSupported = "IAMNotSupported"
 23974  
 23975  	// ErrorCodeInitiatorInvalid is a ErrorCode enum value
 23976  	ErrorCodeInitiatorInvalid = "InitiatorInvalid"
 23977  
 23978  	// ErrorCodeInitiatorNotFound is a ErrorCode enum value
 23979  	ErrorCodeInitiatorNotFound = "InitiatorNotFound"
 23980  
 23981  	// ErrorCodeInternalError is a ErrorCode enum value
 23982  	ErrorCodeInternalError = "InternalError"
 23983  
 23984  	// ErrorCodeInvalidGateway is a ErrorCode enum value
 23985  	ErrorCodeInvalidGateway = "InvalidGateway"
 23986  
 23987  	// ErrorCodeInvalidEndpoint is a ErrorCode enum value
 23988  	ErrorCodeInvalidEndpoint = "InvalidEndpoint"
 23989  
 23990  	// ErrorCodeInvalidParameters is a ErrorCode enum value
 23991  	ErrorCodeInvalidParameters = "InvalidParameters"
 23992  
 23993  	// ErrorCodeInvalidSchedule is a ErrorCode enum value
 23994  	ErrorCodeInvalidSchedule = "InvalidSchedule"
 23995  
 23996  	// ErrorCodeLocalStorageLimitExceeded is a ErrorCode enum value
 23997  	ErrorCodeLocalStorageLimitExceeded = "LocalStorageLimitExceeded"
 23998  
 23999  	// ErrorCodeLunAlreadyAllocated is a ErrorCode enum value
 24000  	ErrorCodeLunAlreadyAllocated = "LunAlreadyAllocated "
 24001  
 24002  	// ErrorCodeLunInvalid is a ErrorCode enum value
 24003  	ErrorCodeLunInvalid = "LunInvalid"
 24004  
 24005  	// ErrorCodeJoinDomainInProgress is a ErrorCode enum value
 24006  	ErrorCodeJoinDomainInProgress = "JoinDomainInProgress"
 24007  
 24008  	// ErrorCodeMaximumContentLengthExceeded is a ErrorCode enum value
 24009  	ErrorCodeMaximumContentLengthExceeded = "MaximumContentLengthExceeded"
 24010  
 24011  	// ErrorCodeMaximumTapeCartridgeCountExceeded is a ErrorCode enum value
 24012  	ErrorCodeMaximumTapeCartridgeCountExceeded = "MaximumTapeCartridgeCountExceeded"
 24013  
 24014  	// ErrorCodeMaximumVolumeCountExceeded is a ErrorCode enum value
 24015  	ErrorCodeMaximumVolumeCountExceeded = "MaximumVolumeCountExceeded"
 24016  
 24017  	// ErrorCodeNetworkConfigurationChanged is a ErrorCode enum value
 24018  	ErrorCodeNetworkConfigurationChanged = "NetworkConfigurationChanged"
 24019  
 24020  	// ErrorCodeNoDisksAvailable is a ErrorCode enum value
 24021  	ErrorCodeNoDisksAvailable = "NoDisksAvailable"
 24022  
 24023  	// ErrorCodeNotImplemented is a ErrorCode enum value
 24024  	ErrorCodeNotImplemented = "NotImplemented"
 24025  
 24026  	// ErrorCodeNotSupported is a ErrorCode enum value
 24027  	ErrorCodeNotSupported = "NotSupported"
 24028  
 24029  	// ErrorCodeOperationAborted is a ErrorCode enum value
 24030  	ErrorCodeOperationAborted = "OperationAborted"
 24031  
 24032  	// ErrorCodeOutdatedGateway is a ErrorCode enum value
 24033  	ErrorCodeOutdatedGateway = "OutdatedGateway"
 24034  
 24035  	// ErrorCodeParametersNotImplemented is a ErrorCode enum value
 24036  	ErrorCodeParametersNotImplemented = "ParametersNotImplemented"
 24037  
 24038  	// ErrorCodeRegionInvalid is a ErrorCode enum value
 24039  	ErrorCodeRegionInvalid = "RegionInvalid"
 24040  
 24041  	// ErrorCodeRequestTimeout is a ErrorCode enum value
 24042  	ErrorCodeRequestTimeout = "RequestTimeout"
 24043  
 24044  	// ErrorCodeServiceUnavailable is a ErrorCode enum value
 24045  	ErrorCodeServiceUnavailable = "ServiceUnavailable"
 24046  
 24047  	// ErrorCodeSnapshotDeleted is a ErrorCode enum value
 24048  	ErrorCodeSnapshotDeleted = "SnapshotDeleted"
 24049  
 24050  	// ErrorCodeSnapshotIdInvalid is a ErrorCode enum value
 24051  	ErrorCodeSnapshotIdInvalid = "SnapshotIdInvalid"
 24052  
 24053  	// ErrorCodeSnapshotInProgress is a ErrorCode enum value
 24054  	ErrorCodeSnapshotInProgress = "SnapshotInProgress"
 24055  
 24056  	// ErrorCodeSnapshotNotFound is a ErrorCode enum value
 24057  	ErrorCodeSnapshotNotFound = "SnapshotNotFound"
 24058  
 24059  	// ErrorCodeSnapshotScheduleNotFound is a ErrorCode enum value
 24060  	ErrorCodeSnapshotScheduleNotFound = "SnapshotScheduleNotFound"
 24061  
 24062  	// ErrorCodeStagingAreaFull is a ErrorCode enum value
 24063  	ErrorCodeStagingAreaFull = "StagingAreaFull"
 24064  
 24065  	// ErrorCodeStorageFailure is a ErrorCode enum value
 24066  	ErrorCodeStorageFailure = "StorageFailure"
 24067  
 24068  	// ErrorCodeTapeCartridgeNotFound is a ErrorCode enum value
 24069  	ErrorCodeTapeCartridgeNotFound = "TapeCartridgeNotFound"
 24070  
 24071  	// ErrorCodeTargetAlreadyExists is a ErrorCode enum value
 24072  	ErrorCodeTargetAlreadyExists = "TargetAlreadyExists"
 24073  
 24074  	// ErrorCodeTargetInvalid is a ErrorCode enum value
 24075  	ErrorCodeTargetInvalid = "TargetInvalid"
 24076  
 24077  	// ErrorCodeTargetNotFound is a ErrorCode enum value
 24078  	ErrorCodeTargetNotFound = "TargetNotFound"
 24079  
 24080  	// ErrorCodeUnauthorizedOperation is a ErrorCode enum value
 24081  	ErrorCodeUnauthorizedOperation = "UnauthorizedOperation"
 24082  
 24083  	// ErrorCodeVolumeAlreadyExists is a ErrorCode enum value
 24084  	ErrorCodeVolumeAlreadyExists = "VolumeAlreadyExists"
 24085  
 24086  	// ErrorCodeVolumeIdInvalid is a ErrorCode enum value
 24087  	ErrorCodeVolumeIdInvalid = "VolumeIdInvalid"
 24088  
 24089  	// ErrorCodeVolumeInUse is a ErrorCode enum value
 24090  	ErrorCodeVolumeInUse = "VolumeInUse"
 24091  
 24092  	// ErrorCodeVolumeNotFound is a ErrorCode enum value
 24093  	ErrorCodeVolumeNotFound = "VolumeNotFound"
 24094  
 24095  	// ErrorCodeVolumeNotReady is a ErrorCode enum value
 24096  	ErrorCodeVolumeNotReady = "VolumeNotReady"
 24097  )
 24098  
 24099  // ErrorCode_Values returns all elements of the ErrorCode enum
 24100  func ErrorCode_Values() []string {
 24101  	return []string{
 24102  		ErrorCodeActivationKeyExpired,
 24103  		ErrorCodeActivationKeyInvalid,
 24104  		ErrorCodeActivationKeyNotFound,
 24105  		ErrorCodeGatewayInternalError,
 24106  		ErrorCodeGatewayNotConnected,
 24107  		ErrorCodeGatewayNotFound,
 24108  		ErrorCodeGatewayProxyNetworkConnectionBusy,
 24109  		ErrorCodeAuthenticationFailure,
 24110  		ErrorCodeBandwidthThrottleScheduleNotFound,
 24111  		ErrorCodeBlocked,
 24112  		ErrorCodeCannotExportSnapshot,
 24113  		ErrorCodeChapCredentialNotFound,
 24114  		ErrorCodeDiskAlreadyAllocated,
 24115  		ErrorCodeDiskDoesNotExist,
 24116  		ErrorCodeDiskSizeGreaterThanVolumeMaxSize,
 24117  		ErrorCodeDiskSizeLessThanVolumeSize,
 24118  		ErrorCodeDiskSizeNotGigAligned,
 24119  		ErrorCodeDuplicateCertificateInfo,
 24120  		ErrorCodeDuplicateSchedule,
 24121  		ErrorCodeEndpointNotFound,
 24122  		ErrorCodeIamnotSupported,
 24123  		ErrorCodeInitiatorInvalid,
 24124  		ErrorCodeInitiatorNotFound,
 24125  		ErrorCodeInternalError,
 24126  		ErrorCodeInvalidGateway,
 24127  		ErrorCodeInvalidEndpoint,
 24128  		ErrorCodeInvalidParameters,
 24129  		ErrorCodeInvalidSchedule,
 24130  		ErrorCodeLocalStorageLimitExceeded,
 24131  		ErrorCodeLunAlreadyAllocated,
 24132  		ErrorCodeLunInvalid,
 24133  		ErrorCodeJoinDomainInProgress,
 24134  		ErrorCodeMaximumContentLengthExceeded,
 24135  		ErrorCodeMaximumTapeCartridgeCountExceeded,
 24136  		ErrorCodeMaximumVolumeCountExceeded,
 24137  		ErrorCodeNetworkConfigurationChanged,
 24138  		ErrorCodeNoDisksAvailable,
 24139  		ErrorCodeNotImplemented,
 24140  		ErrorCodeNotSupported,
 24141  		ErrorCodeOperationAborted,
 24142  		ErrorCodeOutdatedGateway,
 24143  		ErrorCodeParametersNotImplemented,
 24144  		ErrorCodeRegionInvalid,
 24145  		ErrorCodeRequestTimeout,
 24146  		ErrorCodeServiceUnavailable,
 24147  		ErrorCodeSnapshotDeleted,
 24148  		ErrorCodeSnapshotIdInvalid,
 24149  		ErrorCodeSnapshotInProgress,
 24150  		ErrorCodeSnapshotNotFound,
 24151  		ErrorCodeSnapshotScheduleNotFound,
 24152  		ErrorCodeStagingAreaFull,
 24153  		ErrorCodeStorageFailure,
 24154  		ErrorCodeTapeCartridgeNotFound,
 24155  		ErrorCodeTargetAlreadyExists,
 24156  		ErrorCodeTargetInvalid,
 24157  		ErrorCodeTargetNotFound,
 24158  		ErrorCodeUnauthorizedOperation,
 24159  		ErrorCodeVolumeAlreadyExists,
 24160  		ErrorCodeVolumeIdInvalid,
 24161  		ErrorCodeVolumeInUse,
 24162  		ErrorCodeVolumeNotFound,
 24163  		ErrorCodeVolumeNotReady,
 24164  	}
 24165  }
 24166  
 24167  // The type of the file share.
 24168  const (
 24169  	// FileShareTypeNfs is a FileShareType enum value
 24170  	FileShareTypeNfs = "NFS"
 24171  
 24172  	// FileShareTypeSmb is a FileShareType enum value
 24173  	FileShareTypeSmb = "SMB"
 24174  )
 24175  
 24176  // FileShareType_Values returns all elements of the FileShareType enum
 24177  func FileShareType_Values() []string {
 24178  	return []string{
 24179  		FileShareTypeNfs,
 24180  		FileShareTypeSmb,
 24181  	}
 24182  }
 24183  
 24184  const (
 24185  	// GatewayCapacitySmall is a GatewayCapacity enum value
 24186  	GatewayCapacitySmall = "Small"
 24187  
 24188  	// GatewayCapacityMedium is a GatewayCapacity enum value
 24189  	GatewayCapacityMedium = "Medium"
 24190  
 24191  	// GatewayCapacityLarge is a GatewayCapacity enum value
 24192  	GatewayCapacityLarge = "Large"
 24193  )
 24194  
 24195  // GatewayCapacity_Values returns all elements of the GatewayCapacity enum
 24196  func GatewayCapacity_Values() []string {
 24197  	return []string{
 24198  		GatewayCapacitySmall,
 24199  		GatewayCapacityMedium,
 24200  		GatewayCapacityLarge,
 24201  	}
 24202  }
 24203  
 24204  const (
 24205  	// HostEnvironmentVmware is a HostEnvironment enum value
 24206  	HostEnvironmentVmware = "VMWARE"
 24207  
 24208  	// HostEnvironmentHyperV is a HostEnvironment enum value
 24209  	HostEnvironmentHyperV = "HYPER-V"
 24210  
 24211  	// HostEnvironmentEc2 is a HostEnvironment enum value
 24212  	HostEnvironmentEc2 = "EC2"
 24213  
 24214  	// HostEnvironmentKvm is a HostEnvironment enum value
 24215  	HostEnvironmentKvm = "KVM"
 24216  
 24217  	// HostEnvironmentOther is a HostEnvironment enum value
 24218  	HostEnvironmentOther = "OTHER"
 24219  )
 24220  
 24221  // HostEnvironment_Values returns all elements of the HostEnvironment enum
 24222  func HostEnvironment_Values() []string {
 24223  	return []string{
 24224  		HostEnvironmentVmware,
 24225  		HostEnvironmentHyperV,
 24226  		HostEnvironmentEc2,
 24227  		HostEnvironmentKvm,
 24228  		HostEnvironmentOther,
 24229  	}
 24230  }
 24231  
 24232  // A value that sets the access control list (ACL) permission for objects in
 24233  // the S3 bucket that an S3 File Gateway puts objects into. The default value
 24234  // is private.
 24235  const (
 24236  	// ObjectACLPrivate is a ObjectACL enum value
 24237  	ObjectACLPrivate = "private"
 24238  
 24239  	// ObjectACLPublicRead is a ObjectACL enum value
 24240  	ObjectACLPublicRead = "public-read"
 24241  
 24242  	// ObjectACLPublicReadWrite is a ObjectACL enum value
 24243  	ObjectACLPublicReadWrite = "public-read-write"
 24244  
 24245  	// ObjectACLAuthenticatedRead is a ObjectACL enum value
 24246  	ObjectACLAuthenticatedRead = "authenticated-read"
 24247  
 24248  	// ObjectACLBucketOwnerRead is a ObjectACL enum value
 24249  	ObjectACLBucketOwnerRead = "bucket-owner-read"
 24250  
 24251  	// ObjectACLBucketOwnerFullControl is a ObjectACL enum value
 24252  	ObjectACLBucketOwnerFullControl = "bucket-owner-full-control"
 24253  
 24254  	// ObjectACLAwsExecRead is a ObjectACL enum value
 24255  	ObjectACLAwsExecRead = "aws-exec-read"
 24256  )
 24257  
 24258  // ObjectACL_Values returns all elements of the ObjectACL enum
 24259  func ObjectACL_Values() []string {
 24260  	return []string{
 24261  		ObjectACLPrivate,
 24262  		ObjectACLPublicRead,
 24263  		ObjectACLPublicReadWrite,
 24264  		ObjectACLAuthenticatedRead,
 24265  		ObjectACLBucketOwnerRead,
 24266  		ObjectACLBucketOwnerFullControl,
 24267  		ObjectACLAwsExecRead,
 24268  	}
 24269  }
 24270  
 24271  const (
 24272  	// PoolStatusActive is a PoolStatus enum value
 24273  	PoolStatusActive = "ACTIVE"
 24274  
 24275  	// PoolStatusDeleted is a PoolStatus enum value
 24276  	PoolStatusDeleted = "DELETED"
 24277  )
 24278  
 24279  // PoolStatus_Values returns all elements of the PoolStatus enum
 24280  func PoolStatus_Values() []string {
 24281  	return []string{
 24282  		PoolStatusActive,
 24283  		PoolStatusDeleted,
 24284  	}
 24285  }
 24286  
 24287  const (
 24288  	// RetentionLockTypeCompliance is a RetentionLockType enum value
 24289  	RetentionLockTypeCompliance = "COMPLIANCE"
 24290  
 24291  	// RetentionLockTypeGovernance is a RetentionLockType enum value
 24292  	RetentionLockTypeGovernance = "GOVERNANCE"
 24293  
 24294  	// RetentionLockTypeNone is a RetentionLockType enum value
 24295  	RetentionLockTypeNone = "NONE"
 24296  )
 24297  
 24298  // RetentionLockType_Values returns all elements of the RetentionLockType enum
 24299  func RetentionLockType_Values() []string {
 24300  	return []string{
 24301  		RetentionLockTypeCompliance,
 24302  		RetentionLockTypeGovernance,
 24303  		RetentionLockTypeNone,
 24304  	}
 24305  }
 24306  
 24307  const (
 24308  	// SMBSecurityStrategyClientSpecified is a SMBSecurityStrategy enum value
 24309  	SMBSecurityStrategyClientSpecified = "ClientSpecified"
 24310  
 24311  	// SMBSecurityStrategyMandatorySigning is a SMBSecurityStrategy enum value
 24312  	SMBSecurityStrategyMandatorySigning = "MandatorySigning"
 24313  
 24314  	// SMBSecurityStrategyMandatoryEncryption is a SMBSecurityStrategy enum value
 24315  	SMBSecurityStrategyMandatoryEncryption = "MandatoryEncryption"
 24316  )
 24317  
 24318  // SMBSecurityStrategy_Values returns all elements of the SMBSecurityStrategy enum
 24319  func SMBSecurityStrategy_Values() []string {
 24320  	return []string{
 24321  		SMBSecurityStrategyClientSpecified,
 24322  		SMBSecurityStrategyMandatorySigning,
 24323  		SMBSecurityStrategyMandatoryEncryption,
 24324  	}
 24325  }
 24326  
 24327  const (
 24328  	// TapeStorageClassDeepArchive is a TapeStorageClass enum value
 24329  	TapeStorageClassDeepArchive = "DEEP_ARCHIVE"
 24330  
 24331  	// TapeStorageClassGlacier is a TapeStorageClass enum value
 24332  	TapeStorageClassGlacier = "GLACIER"
 24333  )
 24334  
 24335  // TapeStorageClass_Values returns all elements of the TapeStorageClass enum
 24336  func TapeStorageClass_Values() []string {
 24337  	return []string{
 24338  		TapeStorageClassDeepArchive,
 24339  		TapeStorageClassGlacier,
 24340  	}
 24341  }