1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package storagegateway
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13)
14
15const 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
41func (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 AWS Region that you want to
61// use for storing snapshots or tapes, the time zone for scheduled snapshots
62// the 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
85func (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.
99func (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
106const 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
132func (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 AWS 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
175func (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.
189func (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
196const 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
222func (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 AWS 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// You can create a maximum of 50 tags for each resource. Virtual tapes and
255// storage volumes that are recovered to a new gateway maintain their tags.
256//
257// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
258// with awserr.Error's Code and Message methods to get detailed information about
259// the error.
260//
261// See the AWS API reference guide for AWS Storage Gateway's
262// API operation AddTagsToResource for usage and error information.
263//
264// Returned Error Types:
265//   * InvalidGatewayRequestException
266//   An exception occurred because an invalid gateway request was issued to the
267//   service. For more information, see the error and message fields.
268//
269//   * InternalServerError
270//   An internal server error has occurred during the request. For more information,
271//   see the error and message fields.
272//
273// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddTagsToResource
274func (c *StorageGateway) AddTagsToResource(input *AddTagsToResourceInput) (*AddTagsToResourceOutput, error) {
275	req, out := c.AddTagsToResourceRequest(input)
276	return out, req.Send()
277}
278
279// AddTagsToResourceWithContext is the same as AddTagsToResource with the addition of
280// the ability to pass a context and additional request options.
281//
282// See AddTagsToResource for details on how to use this API operation.
283//
284// The context must be non-nil and will be used for request cancellation. If
285// the context is nil a panic will occur. In the future the SDK may create
286// sub-contexts for http.Requests. See https://golang.org/pkg/context/
287// for more information on using Contexts.
288func (c *StorageGateway) AddTagsToResourceWithContext(ctx aws.Context, input *AddTagsToResourceInput, opts ...request.Option) (*AddTagsToResourceOutput, error) {
289	req, out := c.AddTagsToResourceRequest(input)
290	req.SetContext(ctx)
291	req.ApplyOptions(opts...)
292	return out, req.Send()
293}
294
295const opAddUploadBuffer = "AddUploadBuffer"
296
297// AddUploadBufferRequest generates a "aws/request.Request" representing the
298// client's request for the AddUploadBuffer operation. The "output" return
299// value will be populated with the request's response once the request completes
300// successfully.
301//
302// Use "Send" method on the returned Request to send the API call to the service.
303// the "output" return value is not valid until after Send returns without error.
304//
305// See AddUploadBuffer for more information on using the AddUploadBuffer
306// API call, and error handling.
307//
308// This method is useful when you want to inject custom logic or configuration
309// into the SDK's request lifecycle. Such as custom headers, or retry logic.
310//
311//
312//    // Example sending a request using the AddUploadBufferRequest method.
313//    req, resp := client.AddUploadBufferRequest(params)
314//
315//    err := req.Send()
316//    if err == nil { // resp is now filled
317//        fmt.Println(resp)
318//    }
319//
320// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddUploadBuffer
321func (c *StorageGateway) AddUploadBufferRequest(input *AddUploadBufferInput) (req *request.Request, output *AddUploadBufferOutput) {
322	op := &request.Operation{
323		Name:       opAddUploadBuffer,
324		HTTPMethod: "POST",
325		HTTPPath:   "/",
326	}
327
328	if input == nil {
329		input = &AddUploadBufferInput{}
330	}
331
332	output = &AddUploadBufferOutput{}
333	req = c.newRequest(op, input, output)
334	return
335}
336
337// AddUploadBuffer API operation for AWS Storage Gateway.
338//
339// Configures one or more gateway local disks as upload buffer for a specified
340// gateway. This operation is supported for the stored volume, cached volume,
341// and tape gateway types.
342//
343// In the request, you specify the gateway Amazon Resource Name (ARN) to which
344// you want to add upload buffer, and one or more disk IDs that you want to
345// configure as upload buffer.
346//
347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
348// with awserr.Error's Code and Message methods to get detailed information about
349// the error.
350//
351// See the AWS API reference guide for AWS Storage Gateway's
352// API operation AddUploadBuffer for usage and error information.
353//
354// Returned Error Types:
355//   * InvalidGatewayRequestException
356//   An exception occurred because an invalid gateway request was issued to the
357//   service. For more information, see the error and message fields.
358//
359//   * InternalServerError
360//   An internal server error has occurred during the request. For more information,
361//   see the error and message fields.
362//
363// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddUploadBuffer
364func (c *StorageGateway) AddUploadBuffer(input *AddUploadBufferInput) (*AddUploadBufferOutput, error) {
365	req, out := c.AddUploadBufferRequest(input)
366	return out, req.Send()
367}
368
369// AddUploadBufferWithContext is the same as AddUploadBuffer with the addition of
370// the ability to pass a context and additional request options.
371//
372// See AddUploadBuffer for details on how to use this API operation.
373//
374// The context must be non-nil and will be used for request cancellation. If
375// the context is nil a panic will occur. In the future the SDK may create
376// sub-contexts for http.Requests. See https://golang.org/pkg/context/
377// for more information on using Contexts.
378func (c *StorageGateway) AddUploadBufferWithContext(ctx aws.Context, input *AddUploadBufferInput, opts ...request.Option) (*AddUploadBufferOutput, error) {
379	req, out := c.AddUploadBufferRequest(input)
380	req.SetContext(ctx)
381	req.ApplyOptions(opts...)
382	return out, req.Send()
383}
384
385const opAddWorkingStorage = "AddWorkingStorage"
386
387// AddWorkingStorageRequest generates a "aws/request.Request" representing the
388// client's request for the AddWorkingStorage operation. The "output" return
389// value will be populated with the request's response once the request completes
390// successfully.
391//
392// Use "Send" method on the returned Request to send the API call to the service.
393// the "output" return value is not valid until after Send returns without error.
394//
395// See AddWorkingStorage for more information on using the AddWorkingStorage
396// API call, and error handling.
397//
398// This method is useful when you want to inject custom logic or configuration
399// into the SDK's request lifecycle. Such as custom headers, or retry logic.
400//
401//
402//    // Example sending a request using the AddWorkingStorageRequest method.
403//    req, resp := client.AddWorkingStorageRequest(params)
404//
405//    err := req.Send()
406//    if err == nil { // resp is now filled
407//        fmt.Println(resp)
408//    }
409//
410// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddWorkingStorage
411func (c *StorageGateway) AddWorkingStorageRequest(input *AddWorkingStorageInput) (req *request.Request, output *AddWorkingStorageOutput) {
412	op := &request.Operation{
413		Name:       opAddWorkingStorage,
414		HTTPMethod: "POST",
415		HTTPPath:   "/",
416	}
417
418	if input == nil {
419		input = &AddWorkingStorageInput{}
420	}
421
422	output = &AddWorkingStorageOutput{}
423	req = c.newRequest(op, input, output)
424	return
425}
426
427// AddWorkingStorage API operation for AWS Storage Gateway.
428//
429// Configures one or more gateway local disks as working storage for a gateway.
430// This operation is only supported in the stored volume gateway type. This
431// operation is deprecated in cached volume API version 20120630. Use AddUploadBuffer
432// instead.
433//
434// Working storage is also referred to as upload buffer. You can also use the
435// AddUploadBuffer operation to add upload buffer to a stored volume gateway.
436//
437// In the request, you specify the gateway Amazon Resource Name (ARN) to which
438// you want to add working storage, and one or more disk IDs that you want to
439// configure as working storage.
440//
441// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
442// with awserr.Error's Code and Message methods to get detailed information about
443// the error.
444//
445// See the AWS API reference guide for AWS Storage Gateway's
446// API operation AddWorkingStorage for usage and error information.
447//
448// Returned Error Types:
449//   * InvalidGatewayRequestException
450//   An exception occurred because an invalid gateway request was issued to the
451//   service. For more information, see the error and message fields.
452//
453//   * InternalServerError
454//   An internal server error has occurred during the request. For more information,
455//   see the error and message fields.
456//
457// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddWorkingStorage
458func (c *StorageGateway) AddWorkingStorage(input *AddWorkingStorageInput) (*AddWorkingStorageOutput, error) {
459	req, out := c.AddWorkingStorageRequest(input)
460	return out, req.Send()
461}
462
463// AddWorkingStorageWithContext is the same as AddWorkingStorage with the addition of
464// the ability to pass a context and additional request options.
465//
466// See AddWorkingStorage for details on how to use this API operation.
467//
468// The context must be non-nil and will be used for request cancellation. If
469// the context is nil a panic will occur. In the future the SDK may create
470// sub-contexts for http.Requests. See https://golang.org/pkg/context/
471// for more information on using Contexts.
472func (c *StorageGateway) AddWorkingStorageWithContext(ctx aws.Context, input *AddWorkingStorageInput, opts ...request.Option) (*AddWorkingStorageOutput, error) {
473	req, out := c.AddWorkingStorageRequest(input)
474	req.SetContext(ctx)
475	req.ApplyOptions(opts...)
476	return out, req.Send()
477}
478
479const opAssignTapePool = "AssignTapePool"
480
481// AssignTapePoolRequest generates a "aws/request.Request" representing the
482// client's request for the AssignTapePool operation. The "output" return
483// value will be populated with the request's response once the request completes
484// successfully.
485//
486// Use "Send" method on the returned Request to send the API call to the service.
487// the "output" return value is not valid until after Send returns without error.
488//
489// See AssignTapePool for more information on using the AssignTapePool
490// API call, and error handling.
491//
492// This method is useful when you want to inject custom logic or configuration
493// into the SDK's request lifecycle. Such as custom headers, or retry logic.
494//
495//
496//    // Example sending a request using the AssignTapePoolRequest method.
497//    req, resp := client.AssignTapePoolRequest(params)
498//
499//    err := req.Send()
500//    if err == nil { // resp is now filled
501//        fmt.Println(resp)
502//    }
503//
504// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AssignTapePool
505func (c *StorageGateway) AssignTapePoolRequest(input *AssignTapePoolInput) (req *request.Request, output *AssignTapePoolOutput) {
506	op := &request.Operation{
507		Name:       opAssignTapePool,
508		HTTPMethod: "POST",
509		HTTPPath:   "/",
510	}
511
512	if input == nil {
513		input = &AssignTapePoolInput{}
514	}
515
516	output = &AssignTapePoolOutput{}
517	req = c.newRequest(op, input, output)
518	return
519}
520
521// AssignTapePool API operation for AWS Storage Gateway.
522//
523// Assigns a tape to a tape pool for archiving. The tape assigned to a pool
524// is archived in the S3 storage class that is associated with the pool. When
525// you use your backup application to eject the tape, the tape is archived directly
526// into the S3 storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds
527// to the pool.
528//
529// Valid Values: GLACIER | DEEP_ARCHIVE
530//
531// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
532// with awserr.Error's Code and Message methods to get detailed information about
533// the error.
534//
535// See the AWS API reference guide for AWS Storage Gateway's
536// API operation AssignTapePool for usage and error information.
537//
538// Returned Error Types:
539//   * InvalidGatewayRequestException
540//   An exception occurred because an invalid gateway request was issued to the
541//   service. For more information, see the error and message fields.
542//
543//   * InternalServerError
544//   An internal server error has occurred during the request. For more information,
545//   see the error and message fields.
546//
547// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AssignTapePool
548func (c *StorageGateway) AssignTapePool(input *AssignTapePoolInput) (*AssignTapePoolOutput, error) {
549	req, out := c.AssignTapePoolRequest(input)
550	return out, req.Send()
551}
552
553// AssignTapePoolWithContext is the same as AssignTapePool with the addition of
554// the ability to pass a context and additional request options.
555//
556// See AssignTapePool for details on how to use this API operation.
557//
558// The context must be non-nil and will be used for request cancellation. If
559// the context is nil a panic will occur. In the future the SDK may create
560// sub-contexts for http.Requests. See https://golang.org/pkg/context/
561// for more information on using Contexts.
562func (c *StorageGateway) AssignTapePoolWithContext(ctx aws.Context, input *AssignTapePoolInput, opts ...request.Option) (*AssignTapePoolOutput, error) {
563	req, out := c.AssignTapePoolRequest(input)
564	req.SetContext(ctx)
565	req.ApplyOptions(opts...)
566	return out, req.Send()
567}
568
569const opAssociateFileSystem = "AssociateFileSystem"
570
571// AssociateFileSystemRequest generates a "aws/request.Request" representing the
572// client's request for the AssociateFileSystem operation. The "output" return
573// value will be populated with the request's response once the request completes
574// successfully.
575//
576// Use "Send" method on the returned Request to send the API call to the service.
577// the "output" return value is not valid until after Send returns without error.
578//
579// See AssociateFileSystem for more information on using the AssociateFileSystem
580// API call, and error handling.
581//
582// This method is useful when you want to inject custom logic or configuration
583// into the SDK's request lifecycle. Such as custom headers, or retry logic.
584//
585//
586//    // Example sending a request using the AssociateFileSystemRequest method.
587//    req, resp := client.AssociateFileSystemRequest(params)
588//
589//    err := req.Send()
590//    if err == nil { // resp is now filled
591//        fmt.Println(resp)
592//    }
593//
594// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AssociateFileSystem
595func (c *StorageGateway) AssociateFileSystemRequest(input *AssociateFileSystemInput) (req *request.Request, output *AssociateFileSystemOutput) {
596	op := &request.Operation{
597		Name:       opAssociateFileSystem,
598		HTTPMethod: "POST",
599		HTTPPath:   "/",
600	}
601
602	if input == nil {
603		input = &AssociateFileSystemInput{}
604	}
605
606	output = &AssociateFileSystemOutput{}
607	req = c.newRequest(op, input, output)
608	return
609}
610
611// AssociateFileSystem API operation for AWS Storage Gateway.
612//
613// Associate an Amazon FSx file system with the Amazon FSx file gateway. After
614// the association process is complete, the file shares on the Amazon FSx file
615// system are available for access through the gateway. This operation only
616// supports the Amazon FSx file gateway type.
617//
618// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
619// with awserr.Error's Code and Message methods to get detailed information about
620// the error.
621//
622// See the AWS API reference guide for AWS Storage Gateway's
623// API operation AssociateFileSystem for usage and error information.
624//
625// Returned Error Types:
626//   * InvalidGatewayRequestException
627//   An exception occurred because an invalid gateway request was issued to the
628//   service. For more information, see the error and message fields.
629//
630//   * InternalServerError
631//   An internal server error has occurred during the request. For more information,
632//   see the error and message fields.
633//
634// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AssociateFileSystem
635func (c *StorageGateway) AssociateFileSystem(input *AssociateFileSystemInput) (*AssociateFileSystemOutput, error) {
636	req, out := c.AssociateFileSystemRequest(input)
637	return out, req.Send()
638}
639
640// AssociateFileSystemWithContext is the same as AssociateFileSystem with the addition of
641// the ability to pass a context and additional request options.
642//
643// See AssociateFileSystem for details on how to use this API operation.
644//
645// The context must be non-nil and will be used for request cancellation. If
646// the context is nil a panic will occur. In the future the SDK may create
647// sub-contexts for http.Requests. See https://golang.org/pkg/context/
648// for more information on using Contexts.
649func (c *StorageGateway) AssociateFileSystemWithContext(ctx aws.Context, input *AssociateFileSystemInput, opts ...request.Option) (*AssociateFileSystemOutput, error) {
650	req, out := c.AssociateFileSystemRequest(input)
651	req.SetContext(ctx)
652	req.ApplyOptions(opts...)
653	return out, req.Send()
654}
655
656const opAttachVolume = "AttachVolume"
657
658// AttachVolumeRequest generates a "aws/request.Request" representing the
659// client's request for the AttachVolume operation. The "output" return
660// value will be populated with the request's response once the request completes
661// successfully.
662//
663// Use "Send" method on the returned Request to send the API call to the service.
664// the "output" return value is not valid until after Send returns without error.
665//
666// See AttachVolume for more information on using the AttachVolume
667// API call, and error handling.
668//
669// This method is useful when you want to inject custom logic or configuration
670// into the SDK's request lifecycle. Such as custom headers, or retry logic.
671//
672//
673//    // Example sending a request using the AttachVolumeRequest method.
674//    req, resp := client.AttachVolumeRequest(params)
675//
676//    err := req.Send()
677//    if err == nil { // resp is now filled
678//        fmt.Println(resp)
679//    }
680//
681// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AttachVolume
682func (c *StorageGateway) AttachVolumeRequest(input *AttachVolumeInput) (req *request.Request, output *AttachVolumeOutput) {
683	op := &request.Operation{
684		Name:       opAttachVolume,
685		HTTPMethod: "POST",
686		HTTPPath:   "/",
687	}
688
689	if input == nil {
690		input = &AttachVolumeInput{}
691	}
692
693	output = &AttachVolumeOutput{}
694	req = c.newRequest(op, input, output)
695	return
696}
697
698// AttachVolume API operation for AWS Storage Gateway.
699//
700// Connects a volume to an iSCSI connection and then attaches the volume to
701// the specified gateway. Detaching and attaching a volume enables you to recover
702// your data from one gateway to a different gateway without creating a snapshot.
703// It also makes it easier to move your volumes from an on-premises gateway
704// to a gateway hosted on an Amazon EC2 instance.
705//
706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
707// with awserr.Error's Code and Message methods to get detailed information about
708// the error.
709//
710// See the AWS API reference guide for AWS Storage Gateway's
711// API operation AttachVolume for usage and error information.
712//
713// Returned Error Types:
714//   * InvalidGatewayRequestException
715//   An exception occurred because an invalid gateway request was issued to the
716//   service. For more information, see the error and message fields.
717//
718//   * InternalServerError
719//   An internal server error has occurred during the request. For more information,
720//   see the error and message fields.
721//
722// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AttachVolume
723func (c *StorageGateway) AttachVolume(input *AttachVolumeInput) (*AttachVolumeOutput, error) {
724	req, out := c.AttachVolumeRequest(input)
725	return out, req.Send()
726}
727
728// AttachVolumeWithContext is the same as AttachVolume with the addition of
729// the ability to pass a context and additional request options.
730//
731// See AttachVolume for details on how to use this API operation.
732//
733// The context must be non-nil and will be used for request cancellation. If
734// the context is nil a panic will occur. In the future the SDK may create
735// sub-contexts for http.Requests. See https://golang.org/pkg/context/
736// for more information on using Contexts.
737func (c *StorageGateway) AttachVolumeWithContext(ctx aws.Context, input *AttachVolumeInput, opts ...request.Option) (*AttachVolumeOutput, error) {
738	req, out := c.AttachVolumeRequest(input)
739	req.SetContext(ctx)
740	req.ApplyOptions(opts...)
741	return out, req.Send()
742}
743
744const opCancelArchival = "CancelArchival"
745
746// CancelArchivalRequest generates a "aws/request.Request" representing the
747// client's request for the CancelArchival operation. The "output" return
748// value will be populated with the request's response once the request completes
749// successfully.
750//
751// Use "Send" method on the returned Request to send the API call to the service.
752// the "output" return value is not valid until after Send returns without error.
753//
754// See CancelArchival for more information on using the CancelArchival
755// API call, and error handling.
756//
757// This method is useful when you want to inject custom logic or configuration
758// into the SDK's request lifecycle. Such as custom headers, or retry logic.
759//
760//
761//    // Example sending a request using the CancelArchivalRequest method.
762//    req, resp := client.CancelArchivalRequest(params)
763//
764//    err := req.Send()
765//    if err == nil { // resp is now filled
766//        fmt.Println(resp)
767//    }
768//
769// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelArchival
770func (c *StorageGateway) CancelArchivalRequest(input *CancelArchivalInput) (req *request.Request, output *CancelArchivalOutput) {
771	op := &request.Operation{
772		Name:       opCancelArchival,
773		HTTPMethod: "POST",
774		HTTPPath:   "/",
775	}
776
777	if input == nil {
778		input = &CancelArchivalInput{}
779	}
780
781	output = &CancelArchivalOutput{}
782	req = c.newRequest(op, input, output)
783	return
784}
785
786// CancelArchival API operation for AWS Storage Gateway.
787//
788// Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after
789// the archiving process is initiated. This operation is only supported in the
790// tape gateway type.
791//
792// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
793// with awserr.Error's Code and Message methods to get detailed information about
794// the error.
795//
796// See the AWS API reference guide for AWS Storage Gateway's
797// API operation CancelArchival for usage and error information.
798//
799// Returned Error Types:
800//   * InvalidGatewayRequestException
801//   An exception occurred because an invalid gateway request was issued to the
802//   service. For more information, see the error and message fields.
803//
804//   * InternalServerError
805//   An internal server error has occurred during the request. For more information,
806//   see the error and message fields.
807//
808// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelArchival
809func (c *StorageGateway) CancelArchival(input *CancelArchivalInput) (*CancelArchivalOutput, error) {
810	req, out := c.CancelArchivalRequest(input)
811	return out, req.Send()
812}
813
814// CancelArchivalWithContext is the same as CancelArchival with the addition of
815// the ability to pass a context and additional request options.
816//
817// See CancelArchival for details on how to use this API operation.
818//
819// The context must be non-nil and will be used for request cancellation. If
820// the context is nil a panic will occur. In the future the SDK may create
821// sub-contexts for http.Requests. See https://golang.org/pkg/context/
822// for more information on using Contexts.
823func (c *StorageGateway) CancelArchivalWithContext(ctx aws.Context, input *CancelArchivalInput, opts ...request.Option) (*CancelArchivalOutput, error) {
824	req, out := c.CancelArchivalRequest(input)
825	req.SetContext(ctx)
826	req.ApplyOptions(opts...)
827	return out, req.Send()
828}
829
830const opCancelRetrieval = "CancelRetrieval"
831
832// CancelRetrievalRequest generates a "aws/request.Request" representing the
833// client's request for the CancelRetrieval operation. The "output" return
834// value will be populated with the request's response once the request completes
835// successfully.
836//
837// Use "Send" method on the returned Request to send the API call to the service.
838// the "output" return value is not valid until after Send returns without error.
839//
840// See CancelRetrieval for more information on using the CancelRetrieval
841// API call, and error handling.
842//
843// This method is useful when you want to inject custom logic or configuration
844// into the SDK's request lifecycle. Such as custom headers, or retry logic.
845//
846//
847//    // Example sending a request using the CancelRetrievalRequest method.
848//    req, resp := client.CancelRetrievalRequest(params)
849//
850//    err := req.Send()
851//    if err == nil { // resp is now filled
852//        fmt.Println(resp)
853//    }
854//
855// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelRetrieval
856func (c *StorageGateway) CancelRetrievalRequest(input *CancelRetrievalInput) (req *request.Request, output *CancelRetrievalOutput) {
857	op := &request.Operation{
858		Name:       opCancelRetrieval,
859		HTTPMethod: "POST",
860		HTTPPath:   "/",
861	}
862
863	if input == nil {
864		input = &CancelRetrievalInput{}
865	}
866
867	output = &CancelRetrievalOutput{}
868	req = c.newRequest(op, input, output)
869	return
870}
871
872// CancelRetrieval API operation for AWS Storage Gateway.
873//
874// Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to
875// a gateway after the retrieval process is initiated. The virtual tape is returned
876// to the VTS. This operation is only supported in the tape gateway type.
877//
878// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
879// with awserr.Error's Code and Message methods to get detailed information about
880// the error.
881//
882// See the AWS API reference guide for AWS Storage Gateway's
883// API operation CancelRetrieval for usage and error information.
884//
885// Returned Error Types:
886//   * InvalidGatewayRequestException
887//   An exception occurred because an invalid gateway request was issued to the
888//   service. For more information, see the error and message fields.
889//
890//   * InternalServerError
891//   An internal server error has occurred during the request. For more information,
892//   see the error and message fields.
893//
894// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelRetrieval
895func (c *StorageGateway) CancelRetrieval(input *CancelRetrievalInput) (*CancelRetrievalOutput, error) {
896	req, out := c.CancelRetrievalRequest(input)
897	return out, req.Send()
898}
899
900// CancelRetrievalWithContext is the same as CancelRetrieval with the addition of
901// the ability to pass a context and additional request options.
902//
903// See CancelRetrieval for details on how to use this API operation.
904//
905// The context must be non-nil and will be used for request cancellation. If
906// the context is nil a panic will occur. In the future the SDK may create
907// sub-contexts for http.Requests. See https://golang.org/pkg/context/
908// for more information on using Contexts.
909func (c *StorageGateway) CancelRetrievalWithContext(ctx aws.Context, input *CancelRetrievalInput, opts ...request.Option) (*CancelRetrievalOutput, error) {
910	req, out := c.CancelRetrievalRequest(input)
911	req.SetContext(ctx)
912	req.ApplyOptions(opts...)
913	return out, req.Send()
914}
915
916const opCreateCachediSCSIVolume = "CreateCachediSCSIVolume"
917
918// CreateCachediSCSIVolumeRequest generates a "aws/request.Request" representing the
919// client's request for the CreateCachediSCSIVolume operation. The "output" return
920// value will be populated with the request's response once the request completes
921// successfully.
922//
923// Use "Send" method on the returned Request to send the API call to the service.
924// the "output" return value is not valid until after Send returns without error.
925//
926// See CreateCachediSCSIVolume for more information on using the CreateCachediSCSIVolume
927// API call, and error handling.
928//
929// This method is useful when you want to inject custom logic or configuration
930// into the SDK's request lifecycle. Such as custom headers, or retry logic.
931//
932//
933//    // Example sending a request using the CreateCachediSCSIVolumeRequest method.
934//    req, resp := client.CreateCachediSCSIVolumeRequest(params)
935//
936//    err := req.Send()
937//    if err == nil { // resp is now filled
938//        fmt.Println(resp)
939//    }
940//
941// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateCachediSCSIVolume
942func (c *StorageGateway) CreateCachediSCSIVolumeRequest(input *CreateCachediSCSIVolumeInput) (req *request.Request, output *CreateCachediSCSIVolumeOutput) {
943	op := &request.Operation{
944		Name:       opCreateCachediSCSIVolume,
945		HTTPMethod: "POST",
946		HTTPPath:   "/",
947	}
948
949	if input == nil {
950		input = &CreateCachediSCSIVolumeInput{}
951	}
952
953	output = &CreateCachediSCSIVolumeOutput{}
954	req = c.newRequest(op, input, output)
955	return
956}
957
958// CreateCachediSCSIVolume API operation for AWS Storage Gateway.
959//
960// Creates a cached volume on a specified cached volume gateway. This operation
961// is only supported in the cached volume gateway type.
962//
963// Cache storage must be allocated to the gateway before you can create a cached
964// volume. Use the AddCache operation to add cache storage to a gateway.
965//
966// In the request, you must specify the gateway, size of the volume in bytes,
967// the iSCSI target name, an IP address on which to expose the target, and a
968// unique client token. In response, the gateway creates the volume and returns
969// information about it. This information includes the volume Amazon Resource
970// Name (ARN), its size, and the iSCSI target ARN that initiators can use to
971// connect to the volume target.
972//
973// Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN
974// for this cached volume, which creates an exact copy of the existing volume’s
975// latest recovery point. The VolumeSizeInBytes value must be equal to or larger
976// than the size of the copied volume, in bytes.
977//
978// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
979// with awserr.Error's Code and Message methods to get detailed information about
980// the error.
981//
982// See the AWS API reference guide for AWS Storage Gateway's
983// API operation CreateCachediSCSIVolume for usage and error information.
984//
985// Returned Error Types:
986//   * InvalidGatewayRequestException
987//   An exception occurred because an invalid gateway request was issued to the
988//   service. For more information, see the error and message fields.
989//
990//   * InternalServerError
991//   An internal server error has occurred during the request. For more information,
992//   see the error and message fields.
993//
994// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateCachediSCSIVolume
995func (c *StorageGateway) CreateCachediSCSIVolume(input *CreateCachediSCSIVolumeInput) (*CreateCachediSCSIVolumeOutput, error) {
996	req, out := c.CreateCachediSCSIVolumeRequest(input)
997	return out, req.Send()
998}
999
1000// CreateCachediSCSIVolumeWithContext is the same as CreateCachediSCSIVolume with the addition of
1001// the ability to pass a context and additional request options.
1002//
1003// See CreateCachediSCSIVolume for details on how to use this API operation.
1004//
1005// The context must be non-nil and will be used for request cancellation. If
1006// the context is nil a panic will occur. In the future the SDK may create
1007// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1008// for more information on using Contexts.
1009func (c *StorageGateway) CreateCachediSCSIVolumeWithContext(ctx aws.Context, input *CreateCachediSCSIVolumeInput, opts ...request.Option) (*CreateCachediSCSIVolumeOutput, error) {
1010	req, out := c.CreateCachediSCSIVolumeRequest(input)
1011	req.SetContext(ctx)
1012	req.ApplyOptions(opts...)
1013	return out, req.Send()
1014}
1015
1016const opCreateNFSFileShare = "CreateNFSFileShare"
1017
1018// CreateNFSFileShareRequest generates a "aws/request.Request" representing the
1019// client's request for the CreateNFSFileShare operation. The "output" return
1020// value will be populated with the request's response once the request completes
1021// successfully.
1022//
1023// Use "Send" method on the returned Request to send the API call to the service.
1024// the "output" return value is not valid until after Send returns without error.
1025//
1026// See CreateNFSFileShare for more information on using the CreateNFSFileShare
1027// API call, and error handling.
1028//
1029// This method is useful when you want to inject custom logic or configuration
1030// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1031//
1032//
1033//    // Example sending a request using the CreateNFSFileShareRequest method.
1034//    req, resp := client.CreateNFSFileShareRequest(params)
1035//
1036//    err := req.Send()
1037//    if err == nil { // resp is now filled
1038//        fmt.Println(resp)
1039//    }
1040//
1041// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateNFSFileShare
1042func (c *StorageGateway) CreateNFSFileShareRequest(input *CreateNFSFileShareInput) (req *request.Request, output *CreateNFSFileShareOutput) {
1043	op := &request.Operation{
1044		Name:       opCreateNFSFileShare,
1045		HTTPMethod: "POST",
1046		HTTPPath:   "/",
1047	}
1048
1049	if input == nil {
1050		input = &CreateNFSFileShareInput{}
1051	}
1052
1053	output = &CreateNFSFileShareOutput{}
1054	req = c.newRequest(op, input, output)
1055	return
1056}
1057
1058// CreateNFSFileShare API operation for AWS Storage Gateway.
1059//
1060// Creates a Network File System (NFS) file share on an existing file gateway.
1061// In Storage Gateway, a file share is a file system mount point backed by Amazon
1062// S3 cloud storage. Storage Gateway exposes file shares using an NFS interface.
1063// This operation is only supported for file gateways.
1064//
1065// File gateway requires AWS Security Token Service (AWS STS) to be activated
1066// to enable you to create a file share. Make sure AWS STS is activated in the
1067// AWS Region you are creating your file gateway in. If AWS STS is not activated
1068// in the AWS Region, activate it. For information about how to activate AWS
1069// STS, see Activating and deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
1070// in the AWS Identity and Access Management User Guide.
1071//
1072// File gateway does not support creating hard or symbolic links on a file share.
1073//
1074// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1075// with awserr.Error's Code and Message methods to get detailed information about
1076// the error.
1077//
1078// See the AWS API reference guide for AWS Storage Gateway's
1079// API operation CreateNFSFileShare for usage and error information.
1080//
1081// Returned Error Types:
1082//   * InvalidGatewayRequestException
1083//   An exception occurred because an invalid gateway request was issued to the
1084//   service. For more information, see the error and message fields.
1085//
1086//   * InternalServerError
1087//   An internal server error has occurred during the request. For more information,
1088//   see the error and message fields.
1089//
1090// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateNFSFileShare
1091func (c *StorageGateway) CreateNFSFileShare(input *CreateNFSFileShareInput) (*CreateNFSFileShareOutput, error) {
1092	req, out := c.CreateNFSFileShareRequest(input)
1093	return out, req.Send()
1094}
1095
1096// CreateNFSFileShareWithContext is the same as CreateNFSFileShare with the addition of
1097// the ability to pass a context and additional request options.
1098//
1099// See CreateNFSFileShare for details on how to use this API operation.
1100//
1101// The context must be non-nil and will be used for request cancellation. If
1102// the context is nil a panic will occur. In the future the SDK may create
1103// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1104// for more information on using Contexts.
1105func (c *StorageGateway) CreateNFSFileShareWithContext(ctx aws.Context, input *CreateNFSFileShareInput, opts ...request.Option) (*CreateNFSFileShareOutput, error) {
1106	req, out := c.CreateNFSFileShareRequest(input)
1107	req.SetContext(ctx)
1108	req.ApplyOptions(opts...)
1109	return out, req.Send()
1110}
1111
1112const opCreateSMBFileShare = "CreateSMBFileShare"
1113
1114// CreateSMBFileShareRequest generates a "aws/request.Request" representing the
1115// client's request for the CreateSMBFileShare operation. The "output" return
1116// value will be populated with the request's response once the request completes
1117// successfully.
1118//
1119// Use "Send" method on the returned Request to send the API call to the service.
1120// the "output" return value is not valid until after Send returns without error.
1121//
1122// See CreateSMBFileShare for more information on using the CreateSMBFileShare
1123// API call, and error handling.
1124//
1125// This method is useful when you want to inject custom logic or configuration
1126// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1127//
1128//
1129//    // Example sending a request using the CreateSMBFileShareRequest method.
1130//    req, resp := client.CreateSMBFileShareRequest(params)
1131//
1132//    err := req.Send()
1133//    if err == nil { // resp is now filled
1134//        fmt.Println(resp)
1135//    }
1136//
1137// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSMBFileShare
1138func (c *StorageGateway) CreateSMBFileShareRequest(input *CreateSMBFileShareInput) (req *request.Request, output *CreateSMBFileShareOutput) {
1139	op := &request.Operation{
1140		Name:       opCreateSMBFileShare,
1141		HTTPMethod: "POST",
1142		HTTPPath:   "/",
1143	}
1144
1145	if input == nil {
1146		input = &CreateSMBFileShareInput{}
1147	}
1148
1149	output = &CreateSMBFileShareOutput{}
1150	req = c.newRequest(op, input, output)
1151	return
1152}
1153
1154// CreateSMBFileShare API operation for AWS Storage Gateway.
1155//
1156// Creates a Server Message Block (SMB) file share on an existing file gateway.
1157// In Storage Gateway, a file share is a file system mount point backed by Amazon
1158// S3 cloud storage. Storage Gateway exposes file shares using an SMB interface.
1159// This operation is only supported for file gateways.
1160//
1161// File gateways require AWS Security Token Service (AWS STS) to be activated
1162// to enable you to create a file share. Make sure that AWS STS is activated
1163// in the AWS Region you are creating your file gateway in. If AWS STS is not
1164// activated in this AWS Region, activate it. For information about how to activate
1165// AWS STS, see Activating and deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
1166// in the AWS Identity and Access Management User Guide.
1167//
1168// File gateways don't support creating hard or symbolic links on a file share.
1169//
1170// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1171// with awserr.Error's Code and Message methods to get detailed information about
1172// the error.
1173//
1174// See the AWS API reference guide for AWS Storage Gateway's
1175// API operation CreateSMBFileShare for usage and error information.
1176//
1177// Returned Error Types:
1178//   * InvalidGatewayRequestException
1179//   An exception occurred because an invalid gateway request was issued to the
1180//   service. For more information, see the error and message fields.
1181//
1182//   * InternalServerError
1183//   An internal server error has occurred during the request. For more information,
1184//   see the error and message fields.
1185//
1186// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSMBFileShare
1187func (c *StorageGateway) CreateSMBFileShare(input *CreateSMBFileShareInput) (*CreateSMBFileShareOutput, error) {
1188	req, out := c.CreateSMBFileShareRequest(input)
1189	return out, req.Send()
1190}
1191
1192// CreateSMBFileShareWithContext is the same as CreateSMBFileShare with the addition of
1193// the ability to pass a context and additional request options.
1194//
1195// See CreateSMBFileShare for details on how to use this API operation.
1196//
1197// The context must be non-nil and will be used for request cancellation. If
1198// the context is nil a panic will occur. In the future the SDK may create
1199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1200// for more information on using Contexts.
1201func (c *StorageGateway) CreateSMBFileShareWithContext(ctx aws.Context, input *CreateSMBFileShareInput, opts ...request.Option) (*CreateSMBFileShareOutput, error) {
1202	req, out := c.CreateSMBFileShareRequest(input)
1203	req.SetContext(ctx)
1204	req.ApplyOptions(opts...)
1205	return out, req.Send()
1206}
1207
1208const opCreateSnapshot = "CreateSnapshot"
1209
1210// CreateSnapshotRequest generates a "aws/request.Request" representing the
1211// client's request for the CreateSnapshot operation. The "output" return
1212// value will be populated with the request's response once the request completes
1213// successfully.
1214//
1215// Use "Send" method on the returned Request to send the API call to the service.
1216// the "output" return value is not valid until after Send returns without error.
1217//
1218// See CreateSnapshot for more information on using the CreateSnapshot
1219// API call, and error handling.
1220//
1221// This method is useful when you want to inject custom logic or configuration
1222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1223//
1224//
1225//    // Example sending a request using the CreateSnapshotRequest method.
1226//    req, resp := client.CreateSnapshotRequest(params)
1227//
1228//    err := req.Send()
1229//    if err == nil { // resp is now filled
1230//        fmt.Println(resp)
1231//    }
1232//
1233// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshot
1234func (c *StorageGateway) CreateSnapshotRequest(input *CreateSnapshotInput) (req *request.Request, output *CreateSnapshotOutput) {
1235	op := &request.Operation{
1236		Name:       opCreateSnapshot,
1237		HTTPMethod: "POST",
1238		HTTPPath:   "/",
1239	}
1240
1241	if input == nil {
1242		input = &CreateSnapshotInput{}
1243	}
1244
1245	output = &CreateSnapshotOutput{}
1246	req = c.newRequest(op, input, output)
1247	return
1248}
1249
1250// CreateSnapshot API operation for AWS Storage Gateway.
1251//
1252// Initiates a snapshot of a volume.
1253//
1254// AWS Storage Gateway provides the ability to back up point-in-time snapshots
1255// of your data to Amazon Simple Storage (Amazon S3) for durable off-site recovery,
1256// and also import the data to an Amazon Elastic Block Store (EBS) volume in
1257// Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway
1258// volume on a scheduled or ad hoc basis. This API enables you to take an ad
1259// hoc snapshot. For more information, see Editing a snapshot schedule (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#SchedulingSnapshot).
1260//
1261// In the CreateSnapshot request, you identify the volume by providing its Amazon
1262// Resource Name (ARN). You must also provide description for the snapshot.
1263// When AWS Storage Gateway takes the snapshot of specified volume, the snapshot
1264// and description appears in the AWS Storage Gateway console. In response,
1265// AWS Storage Gateway returns you a snapshot ID. You can use this snapshot
1266// ID to check the snapshot progress or later use it when you want to create
1267// a volume from a snapshot. This operation is only supported in stored and
1268// cached volume gateway type.
1269//
1270// To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
1271// see DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html)
1272// or DeleteSnapshot (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html)
1273// in the Amazon Elastic Compute Cloud API Reference.
1274//
1275// Volume and snapshot IDs are changing to a longer length ID format. For more
1276// information, see the important note on the Welcome (https://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html)
1277// page.
1278//
1279// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1280// with awserr.Error's Code and Message methods to get detailed information about
1281// the error.
1282//
1283// See the AWS API reference guide for AWS Storage Gateway's
1284// API operation CreateSnapshot for usage and error information.
1285//
1286// Returned Error Types:
1287//   * InvalidGatewayRequestException
1288//   An exception occurred because an invalid gateway request was issued to the
1289//   service. For more information, see the error and message fields.
1290//
1291//   * InternalServerError
1292//   An internal server error has occurred during the request. For more information,
1293//   see the error and message fields.
1294//
1295//   * ServiceUnavailableError
1296//   An internal server error has occurred because the service is unavailable.
1297//   For more information, see the error and message fields.
1298//
1299// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshot
1300func (c *StorageGateway) CreateSnapshot(input *CreateSnapshotInput) (*CreateSnapshotOutput, error) {
1301	req, out := c.CreateSnapshotRequest(input)
1302	return out, req.Send()
1303}
1304
1305// CreateSnapshotWithContext is the same as CreateSnapshot with the addition of
1306// the ability to pass a context and additional request options.
1307//
1308// See CreateSnapshot for details on how to use this API operation.
1309//
1310// The context must be non-nil and will be used for request cancellation. If
1311// the context is nil a panic will occur. In the future the SDK may create
1312// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1313// for more information on using Contexts.
1314func (c *StorageGateway) CreateSnapshotWithContext(ctx aws.Context, input *CreateSnapshotInput, opts ...request.Option) (*CreateSnapshotOutput, error) {
1315	req, out := c.CreateSnapshotRequest(input)
1316	req.SetContext(ctx)
1317	req.ApplyOptions(opts...)
1318	return out, req.Send()
1319}
1320
1321const opCreateSnapshotFromVolumeRecoveryPoint = "CreateSnapshotFromVolumeRecoveryPoint"
1322
1323// CreateSnapshotFromVolumeRecoveryPointRequest generates a "aws/request.Request" representing the
1324// client's request for the CreateSnapshotFromVolumeRecoveryPoint operation. The "output" return
1325// value will be populated with the request's response once the request completes
1326// successfully.
1327//
1328// Use "Send" method on the returned Request to send the API call to the service.
1329// the "output" return value is not valid until after Send returns without error.
1330//
1331// See CreateSnapshotFromVolumeRecoveryPoint for more information on using the CreateSnapshotFromVolumeRecoveryPoint
1332// API call, and error handling.
1333//
1334// This method is useful when you want to inject custom logic or configuration
1335// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1336//
1337//
1338//    // Example sending a request using the CreateSnapshotFromVolumeRecoveryPointRequest method.
1339//    req, resp := client.CreateSnapshotFromVolumeRecoveryPointRequest(params)
1340//
1341//    err := req.Send()
1342//    if err == nil { // resp is now filled
1343//        fmt.Println(resp)
1344//    }
1345//
1346// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshotFromVolumeRecoveryPoint
1347func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPointRequest(input *CreateSnapshotFromVolumeRecoveryPointInput) (req *request.Request, output *CreateSnapshotFromVolumeRecoveryPointOutput) {
1348	op := &request.Operation{
1349		Name:       opCreateSnapshotFromVolumeRecoveryPoint,
1350		HTTPMethod: "POST",
1351		HTTPPath:   "/",
1352	}
1353
1354	if input == nil {
1355		input = &CreateSnapshotFromVolumeRecoveryPointInput{}
1356	}
1357
1358	output = &CreateSnapshotFromVolumeRecoveryPointOutput{}
1359	req = c.newRequest(op, input, output)
1360	return
1361}
1362
1363// CreateSnapshotFromVolumeRecoveryPoint API operation for AWS Storage Gateway.
1364//
1365// Initiates a snapshot of a gateway from a volume recovery point. This operation
1366// is only supported in the cached volume gateway type.
1367//
1368// A volume recovery point is a point in time at which all data of the volume
1369// is consistent and from which you can create a snapshot. To get a list of
1370// volume recovery point for cached volume gateway, use ListVolumeRecoveryPoints.
1371//
1372// In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume
1373// by providing its Amazon Resource Name (ARN). You must also provide a description
1374// for the snapshot. When the gateway takes a snapshot of the specified volume,
1375// the snapshot and its description appear in the AWS Storage Gateway console.
1376// In response, the gateway returns you a snapshot ID. You can use this snapshot
1377// ID to check the snapshot progress or later use it when you want to create
1378// a volume from a snapshot.
1379//
1380// To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
1381// see DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html)
1382// or DeleteSnapshot (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html)
1383// in the Amazon Elastic Compute Cloud API Reference.
1384//
1385// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1386// with awserr.Error's Code and Message methods to get detailed information about
1387// the error.
1388//
1389// See the AWS API reference guide for AWS Storage Gateway's
1390// API operation CreateSnapshotFromVolumeRecoveryPoint for usage and error information.
1391//
1392// Returned Error Types:
1393//   * InvalidGatewayRequestException
1394//   An exception occurred because an invalid gateway request was issued to the
1395//   service. For more information, see the error and message fields.
1396//
1397//   * InternalServerError
1398//   An internal server error has occurred during the request. For more information,
1399//   see the error and message fields.
1400//
1401//   * ServiceUnavailableError
1402//   An internal server error has occurred because the service is unavailable.
1403//   For more information, see the error and message fields.
1404//
1405// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshotFromVolumeRecoveryPoint
1406func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPoint(input *CreateSnapshotFromVolumeRecoveryPointInput) (*CreateSnapshotFromVolumeRecoveryPointOutput, error) {
1407	req, out := c.CreateSnapshotFromVolumeRecoveryPointRequest(input)
1408	return out, req.Send()
1409}
1410
1411// CreateSnapshotFromVolumeRecoveryPointWithContext is the same as CreateSnapshotFromVolumeRecoveryPoint with the addition of
1412// the ability to pass a context and additional request options.
1413//
1414// See CreateSnapshotFromVolumeRecoveryPoint for details on how to use this API operation.
1415//
1416// The context must be non-nil and will be used for request cancellation. If
1417// the context is nil a panic will occur. In the future the SDK may create
1418// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1419// for more information on using Contexts.
1420func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPointWithContext(ctx aws.Context, input *CreateSnapshotFromVolumeRecoveryPointInput, opts ...request.Option) (*CreateSnapshotFromVolumeRecoveryPointOutput, error) {
1421	req, out := c.CreateSnapshotFromVolumeRecoveryPointRequest(input)
1422	req.SetContext(ctx)
1423	req.ApplyOptions(opts...)
1424	return out, req.Send()
1425}
1426
1427const opCreateStorediSCSIVolume = "CreateStorediSCSIVolume"
1428
1429// CreateStorediSCSIVolumeRequest generates a "aws/request.Request" representing the
1430// client's request for the CreateStorediSCSIVolume operation. The "output" return
1431// value will be populated with the request's response once the request completes
1432// successfully.
1433//
1434// Use "Send" method on the returned Request to send the API call to the service.
1435// the "output" return value is not valid until after Send returns without error.
1436//
1437// See CreateStorediSCSIVolume for more information on using the CreateStorediSCSIVolume
1438// API call, and error handling.
1439//
1440// This method is useful when you want to inject custom logic or configuration
1441// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1442//
1443//
1444//    // Example sending a request using the CreateStorediSCSIVolumeRequest method.
1445//    req, resp := client.CreateStorediSCSIVolumeRequest(params)
1446//
1447//    err := req.Send()
1448//    if err == nil { // resp is now filled
1449//        fmt.Println(resp)
1450//    }
1451//
1452// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateStorediSCSIVolume
1453func (c *StorageGateway) CreateStorediSCSIVolumeRequest(input *CreateStorediSCSIVolumeInput) (req *request.Request, output *CreateStorediSCSIVolumeOutput) {
1454	op := &request.Operation{
1455		Name:       opCreateStorediSCSIVolume,
1456		HTTPMethod: "POST",
1457		HTTPPath:   "/",
1458	}
1459
1460	if input == nil {
1461		input = &CreateStorediSCSIVolumeInput{}
1462	}
1463
1464	output = &CreateStorediSCSIVolumeOutput{}
1465	req = c.newRequest(op, input, output)
1466	return
1467}
1468
1469// CreateStorediSCSIVolume API operation for AWS Storage Gateway.
1470//
1471// Creates a volume on a specified gateway. This operation is only supported
1472// in the stored volume gateway type.
1473//
1474// The size of the volume to create is inferred from the disk size. You can
1475// choose to preserve existing data on the disk, create volume from an existing
1476// snapshot, or create an empty volume. If you choose to create an empty gateway
1477// volume, then any existing data on the disk is erased.
1478//
1479// In the request, you must specify the gateway and the disk information on
1480// which you are creating the volume. In response, the gateway creates the volume
1481// and returns volume information such as the volume Amazon Resource Name (ARN),
1482// its size, and the iSCSI target ARN that initiators can use to connect to
1483// the volume target.
1484//
1485// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1486// with awserr.Error's Code and Message methods to get detailed information about
1487// the error.
1488//
1489// See the AWS API reference guide for AWS Storage Gateway's
1490// API operation CreateStorediSCSIVolume for usage and error information.
1491//
1492// Returned Error Types:
1493//   * InvalidGatewayRequestException
1494//   An exception occurred because an invalid gateway request was issued to the
1495//   service. For more information, see the error and message fields.
1496//
1497//   * InternalServerError
1498//   An internal server error has occurred during the request. For more information,
1499//   see the error and message fields.
1500//
1501// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateStorediSCSIVolume
1502func (c *StorageGateway) CreateStorediSCSIVolume(input *CreateStorediSCSIVolumeInput) (*CreateStorediSCSIVolumeOutput, error) {
1503	req, out := c.CreateStorediSCSIVolumeRequest(input)
1504	return out, req.Send()
1505}
1506
1507// CreateStorediSCSIVolumeWithContext is the same as CreateStorediSCSIVolume with the addition of
1508// the ability to pass a context and additional request options.
1509//
1510// See CreateStorediSCSIVolume for details on how to use this API operation.
1511//
1512// The context must be non-nil and will be used for request cancellation. If
1513// the context is nil a panic will occur. In the future the SDK may create
1514// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1515// for more information on using Contexts.
1516func (c *StorageGateway) CreateStorediSCSIVolumeWithContext(ctx aws.Context, input *CreateStorediSCSIVolumeInput, opts ...request.Option) (*CreateStorediSCSIVolumeOutput, error) {
1517	req, out := c.CreateStorediSCSIVolumeRequest(input)
1518	req.SetContext(ctx)
1519	req.ApplyOptions(opts...)
1520	return out, req.Send()
1521}
1522
1523const opCreateTapePool = "CreateTapePool"
1524
1525// CreateTapePoolRequest generates a "aws/request.Request" representing the
1526// client's request for the CreateTapePool operation. The "output" return
1527// value will be populated with the request's response once the request completes
1528// successfully.
1529//
1530// Use "Send" method on the returned Request to send the API call to the service.
1531// the "output" return value is not valid until after Send returns without error.
1532//
1533// See CreateTapePool for more information on using the CreateTapePool
1534// API call, and error handling.
1535//
1536// This method is useful when you want to inject custom logic or configuration
1537// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1538//
1539//
1540//    // Example sending a request using the CreateTapePoolRequest method.
1541//    req, resp := client.CreateTapePoolRequest(params)
1542//
1543//    err := req.Send()
1544//    if err == nil { // resp is now filled
1545//        fmt.Println(resp)
1546//    }
1547//
1548// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapePool
1549func (c *StorageGateway) CreateTapePoolRequest(input *CreateTapePoolInput) (req *request.Request, output *CreateTapePoolOutput) {
1550	op := &request.Operation{
1551		Name:       opCreateTapePool,
1552		HTTPMethod: "POST",
1553		HTTPPath:   "/",
1554	}
1555
1556	if input == nil {
1557		input = &CreateTapePoolInput{}
1558	}
1559
1560	output = &CreateTapePoolOutput{}
1561	req = c.newRequest(op, input, output)
1562	return
1563}
1564
1565// CreateTapePool API operation for AWS Storage Gateway.
1566//
1567// Creates a new custom tape pool. You can use custom tape pool to enable tape
1568// retention lock on tapes that are archived in the custom pool.
1569//
1570// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1571// with awserr.Error's Code and Message methods to get detailed information about
1572// the error.
1573//
1574// See the AWS API reference guide for AWS Storage Gateway's
1575// API operation CreateTapePool for usage and error information.
1576//
1577// Returned Error Types:
1578//   * InvalidGatewayRequestException
1579//   An exception occurred because an invalid gateway request was issued to the
1580//   service. For more information, see the error and message fields.
1581//
1582//   * InternalServerError
1583//   An internal server error has occurred during the request. For more information,
1584//   see the error and message fields.
1585//
1586// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapePool
1587func (c *StorageGateway) CreateTapePool(input *CreateTapePoolInput) (*CreateTapePoolOutput, error) {
1588	req, out := c.CreateTapePoolRequest(input)
1589	return out, req.Send()
1590}
1591
1592// CreateTapePoolWithContext is the same as CreateTapePool with the addition of
1593// the ability to pass a context and additional request options.
1594//
1595// See CreateTapePool for details on how to use this API operation.
1596//
1597// The context must be non-nil and will be used for request cancellation. If
1598// the context is nil a panic will occur. In the future the SDK may create
1599// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1600// for more information on using Contexts.
1601func (c *StorageGateway) CreateTapePoolWithContext(ctx aws.Context, input *CreateTapePoolInput, opts ...request.Option) (*CreateTapePoolOutput, error) {
1602	req, out := c.CreateTapePoolRequest(input)
1603	req.SetContext(ctx)
1604	req.ApplyOptions(opts...)
1605	return out, req.Send()
1606}
1607
1608const opCreateTapeWithBarcode = "CreateTapeWithBarcode"
1609
1610// CreateTapeWithBarcodeRequest generates a "aws/request.Request" representing the
1611// client's request for the CreateTapeWithBarcode operation. The "output" return
1612// value will be populated with the request's response once the request completes
1613// successfully.
1614//
1615// Use "Send" method on the returned Request to send the API call to the service.
1616// the "output" return value is not valid until after Send returns without error.
1617//
1618// See CreateTapeWithBarcode for more information on using the CreateTapeWithBarcode
1619// API call, and error handling.
1620//
1621// This method is useful when you want to inject custom logic or configuration
1622// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1623//
1624//
1625//    // Example sending a request using the CreateTapeWithBarcodeRequest method.
1626//    req, resp := client.CreateTapeWithBarcodeRequest(params)
1627//
1628//    err := req.Send()
1629//    if err == nil { // resp is now filled
1630//        fmt.Println(resp)
1631//    }
1632//
1633// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapeWithBarcode
1634func (c *StorageGateway) CreateTapeWithBarcodeRequest(input *CreateTapeWithBarcodeInput) (req *request.Request, output *CreateTapeWithBarcodeOutput) {
1635	op := &request.Operation{
1636		Name:       opCreateTapeWithBarcode,
1637		HTTPMethod: "POST",
1638		HTTPPath:   "/",
1639	}
1640
1641	if input == nil {
1642		input = &CreateTapeWithBarcodeInput{}
1643	}
1644
1645	output = &CreateTapeWithBarcodeOutput{}
1646	req = c.newRequest(op, input, output)
1647	return
1648}
1649
1650// CreateTapeWithBarcode API operation for AWS Storage Gateway.
1651//
1652// Creates a virtual tape by using your own barcode. You write data to the virtual
1653// tape and then archive the tape. A barcode is unique and cannot be reused
1654// if it has already been used on a tape. This applies to barcodes used on deleted
1655// tapes. This operation is only supported in the tape gateway type.
1656//
1657// Cache storage must be allocated to the gateway before you can create a virtual
1658// tape. Use the AddCache operation to add cache storage to a gateway.
1659//
1660// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1661// with awserr.Error's Code and Message methods to get detailed information about
1662// the error.
1663//
1664// See the AWS API reference guide for AWS Storage Gateway's
1665// API operation CreateTapeWithBarcode for usage and error information.
1666//
1667// Returned Error Types:
1668//   * InvalidGatewayRequestException
1669//   An exception occurred because an invalid gateway request was issued to the
1670//   service. For more information, see the error and message fields.
1671//
1672//   * InternalServerError
1673//   An internal server error has occurred during the request. For more information,
1674//   see the error and message fields.
1675//
1676// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapeWithBarcode
1677func (c *StorageGateway) CreateTapeWithBarcode(input *CreateTapeWithBarcodeInput) (*CreateTapeWithBarcodeOutput, error) {
1678	req, out := c.CreateTapeWithBarcodeRequest(input)
1679	return out, req.Send()
1680}
1681
1682// CreateTapeWithBarcodeWithContext is the same as CreateTapeWithBarcode with the addition of
1683// the ability to pass a context and additional request options.
1684//
1685// See CreateTapeWithBarcode for details on how to use this API operation.
1686//
1687// The context must be non-nil and will be used for request cancellation. If
1688// the context is nil a panic will occur. In the future the SDK may create
1689// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1690// for more information on using Contexts.
1691func (c *StorageGateway) CreateTapeWithBarcodeWithContext(ctx aws.Context, input *CreateTapeWithBarcodeInput, opts ...request.Option) (*CreateTapeWithBarcodeOutput, error) {
1692	req, out := c.CreateTapeWithBarcodeRequest(input)
1693	req.SetContext(ctx)
1694	req.ApplyOptions(opts...)
1695	return out, req.Send()
1696}
1697
1698const opCreateTapes = "CreateTapes"
1699
1700// CreateTapesRequest generates a "aws/request.Request" representing the
1701// client's request for the CreateTapes operation. The "output" return
1702// value will be populated with the request's response once the request completes
1703// successfully.
1704//
1705// Use "Send" method on the returned Request to send the API call to the service.
1706// the "output" return value is not valid until after Send returns without error.
1707//
1708// See CreateTapes for more information on using the CreateTapes
1709// API call, and error handling.
1710//
1711// This method is useful when you want to inject custom logic or configuration
1712// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1713//
1714//
1715//    // Example sending a request using the CreateTapesRequest method.
1716//    req, resp := client.CreateTapesRequest(params)
1717//
1718//    err := req.Send()
1719//    if err == nil { // resp is now filled
1720//        fmt.Println(resp)
1721//    }
1722//
1723// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapes
1724func (c *StorageGateway) CreateTapesRequest(input *CreateTapesInput) (req *request.Request, output *CreateTapesOutput) {
1725	op := &request.Operation{
1726		Name:       opCreateTapes,
1727		HTTPMethod: "POST",
1728		HTTPPath:   "/",
1729	}
1730
1731	if input == nil {
1732		input = &CreateTapesInput{}
1733	}
1734
1735	output = &CreateTapesOutput{}
1736	req = c.newRequest(op, input, output)
1737	return
1738}
1739
1740// CreateTapes API operation for AWS Storage Gateway.
1741//
1742// Creates one or more virtual tapes. You write data to the virtual tapes and
1743// then archive the tapes. This operation is only supported in the tape gateway
1744// type.
1745//
1746// Cache storage must be allocated to the gateway before you can create virtual
1747// tapes. Use the AddCache operation to add cache storage to a gateway.
1748//
1749// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1750// with awserr.Error's Code and Message methods to get detailed information about
1751// the error.
1752//
1753// See the AWS API reference guide for AWS Storage Gateway's
1754// API operation CreateTapes for usage and error information.
1755//
1756// Returned Error Types:
1757//   * InvalidGatewayRequestException
1758//   An exception occurred because an invalid gateway request was issued to the
1759//   service. For more information, see the error and message fields.
1760//
1761//   * InternalServerError
1762//   An internal server error has occurred during the request. For more information,
1763//   see the error and message fields.
1764//
1765// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapes
1766func (c *StorageGateway) CreateTapes(input *CreateTapesInput) (*CreateTapesOutput, error) {
1767	req, out := c.CreateTapesRequest(input)
1768	return out, req.Send()
1769}
1770
1771// CreateTapesWithContext is the same as CreateTapes with the addition of
1772// the ability to pass a context and additional request options.
1773//
1774// See CreateTapes for details on how to use this API operation.
1775//
1776// The context must be non-nil and will be used for request cancellation. If
1777// the context is nil a panic will occur. In the future the SDK may create
1778// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1779// for more information on using Contexts.
1780func (c *StorageGateway) CreateTapesWithContext(ctx aws.Context, input *CreateTapesInput, opts ...request.Option) (*CreateTapesOutput, error) {
1781	req, out := c.CreateTapesRequest(input)
1782	req.SetContext(ctx)
1783	req.ApplyOptions(opts...)
1784	return out, req.Send()
1785}
1786
1787const opDeleteAutomaticTapeCreationPolicy = "DeleteAutomaticTapeCreationPolicy"
1788
1789// DeleteAutomaticTapeCreationPolicyRequest generates a "aws/request.Request" representing the
1790// client's request for the DeleteAutomaticTapeCreationPolicy operation. The "output" return
1791// value will be populated with the request's response once the request completes
1792// successfully.
1793//
1794// Use "Send" method on the returned Request to send the API call to the service.
1795// the "output" return value is not valid until after Send returns without error.
1796//
1797// See DeleteAutomaticTapeCreationPolicy for more information on using the DeleteAutomaticTapeCreationPolicy
1798// API call, and error handling.
1799//
1800// This method is useful when you want to inject custom logic or configuration
1801// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1802//
1803//
1804//    // Example sending a request using the DeleteAutomaticTapeCreationPolicyRequest method.
1805//    req, resp := client.DeleteAutomaticTapeCreationPolicyRequest(params)
1806//
1807//    err := req.Send()
1808//    if err == nil { // resp is now filled
1809//        fmt.Println(resp)
1810//    }
1811//
1812// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteAutomaticTapeCreationPolicy
1813func (c *StorageGateway) DeleteAutomaticTapeCreationPolicyRequest(input *DeleteAutomaticTapeCreationPolicyInput) (req *request.Request, output *DeleteAutomaticTapeCreationPolicyOutput) {
1814	op := &request.Operation{
1815		Name:       opDeleteAutomaticTapeCreationPolicy,
1816		HTTPMethod: "POST",
1817		HTTPPath:   "/",
1818	}
1819
1820	if input == nil {
1821		input = &DeleteAutomaticTapeCreationPolicyInput{}
1822	}
1823
1824	output = &DeleteAutomaticTapeCreationPolicyOutput{}
1825	req = c.newRequest(op, input, output)
1826	return
1827}
1828
1829// DeleteAutomaticTapeCreationPolicy API operation for AWS Storage Gateway.
1830//
1831// Deletes the automatic tape creation policy of a gateway. If you delete this
1832// policy, new virtual tapes must be created manually. Use the Amazon Resource
1833// Name (ARN) of the gateway in your request to remove the policy.
1834//
1835// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1836// with awserr.Error's Code and Message methods to get detailed information about
1837// the error.
1838//
1839// See the AWS API reference guide for AWS Storage Gateway's
1840// API operation DeleteAutomaticTapeCreationPolicy for usage and error information.
1841//
1842// Returned Error Types:
1843//   * InvalidGatewayRequestException
1844//   An exception occurred because an invalid gateway request was issued to the
1845//   service. For more information, see the error and message fields.
1846//
1847//   * InternalServerError
1848//   An internal server error has occurred during the request. For more information,
1849//   see the error and message fields.
1850//
1851// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteAutomaticTapeCreationPolicy
1852func (c *StorageGateway) DeleteAutomaticTapeCreationPolicy(input *DeleteAutomaticTapeCreationPolicyInput) (*DeleteAutomaticTapeCreationPolicyOutput, error) {
1853	req, out := c.DeleteAutomaticTapeCreationPolicyRequest(input)
1854	return out, req.Send()
1855}
1856
1857// DeleteAutomaticTapeCreationPolicyWithContext is the same as DeleteAutomaticTapeCreationPolicy with the addition of
1858// the ability to pass a context and additional request options.
1859//
1860// See DeleteAutomaticTapeCreationPolicy for details on how to use this API operation.
1861//
1862// The context must be non-nil and will be used for request cancellation. If
1863// the context is nil a panic will occur. In the future the SDK may create
1864// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1865// for more information on using Contexts.
1866func (c *StorageGateway) DeleteAutomaticTapeCreationPolicyWithContext(ctx aws.Context, input *DeleteAutomaticTapeCreationPolicyInput, opts ...request.Option) (*DeleteAutomaticTapeCreationPolicyOutput, error) {
1867	req, out := c.DeleteAutomaticTapeCreationPolicyRequest(input)
1868	req.SetContext(ctx)
1869	req.ApplyOptions(opts...)
1870	return out, req.Send()
1871}
1872
1873const opDeleteBandwidthRateLimit = "DeleteBandwidthRateLimit"
1874
1875// DeleteBandwidthRateLimitRequest generates a "aws/request.Request" representing the
1876// client's request for the DeleteBandwidthRateLimit operation. The "output" return
1877// value will be populated with the request's response once the request completes
1878// successfully.
1879//
1880// Use "Send" method on the returned Request to send the API call to the service.
1881// the "output" return value is not valid until after Send returns without error.
1882//
1883// See DeleteBandwidthRateLimit for more information on using the DeleteBandwidthRateLimit
1884// API call, and error handling.
1885//
1886// This method is useful when you want to inject custom logic or configuration
1887// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1888//
1889//
1890//    // Example sending a request using the DeleteBandwidthRateLimitRequest method.
1891//    req, resp := client.DeleteBandwidthRateLimitRequest(params)
1892//
1893//    err := req.Send()
1894//    if err == nil { // resp is now filled
1895//        fmt.Println(resp)
1896//    }
1897//
1898// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteBandwidthRateLimit
1899func (c *StorageGateway) DeleteBandwidthRateLimitRequest(input *DeleteBandwidthRateLimitInput) (req *request.Request, output *DeleteBandwidthRateLimitOutput) {
1900	op := &request.Operation{
1901		Name:       opDeleteBandwidthRateLimit,
1902		HTTPMethod: "POST",
1903		HTTPPath:   "/",
1904	}
1905
1906	if input == nil {
1907		input = &DeleteBandwidthRateLimitInput{}
1908	}
1909
1910	output = &DeleteBandwidthRateLimitOutput{}
1911	req = c.newRequest(op, input, output)
1912	return
1913}
1914
1915// DeleteBandwidthRateLimit API operation for AWS Storage Gateway.
1916//
1917// Deletes the bandwidth rate limits of a gateway. You can delete either the
1918// upload and download bandwidth rate limit, or you can delete both. If you
1919// delete only one of the limits, the other limit remains unchanged. To specify
1920// which gateway to work with, use the Amazon Resource Name (ARN) of the gateway
1921// in your request. This operation is supported for the stored volume, cached
1922// volume and tape gateway types.
1923//
1924// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1925// with awserr.Error's Code and Message methods to get detailed information about
1926// the error.
1927//
1928// See the AWS API reference guide for AWS Storage Gateway's
1929// API operation DeleteBandwidthRateLimit for usage and error information.
1930//
1931// Returned Error Types:
1932//   * InvalidGatewayRequestException
1933//   An exception occurred because an invalid gateway request was issued to the
1934//   service. For more information, see the error and message fields.
1935//
1936//   * InternalServerError
1937//   An internal server error has occurred during the request. For more information,
1938//   see the error and message fields.
1939//
1940// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteBandwidthRateLimit
1941func (c *StorageGateway) DeleteBandwidthRateLimit(input *DeleteBandwidthRateLimitInput) (*DeleteBandwidthRateLimitOutput, error) {
1942	req, out := c.DeleteBandwidthRateLimitRequest(input)
1943	return out, req.Send()
1944}
1945
1946// DeleteBandwidthRateLimitWithContext is the same as DeleteBandwidthRateLimit with the addition of
1947// the ability to pass a context and additional request options.
1948//
1949// See DeleteBandwidthRateLimit for details on how to use this API operation.
1950//
1951// The context must be non-nil and will be used for request cancellation. If
1952// the context is nil a panic will occur. In the future the SDK may create
1953// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1954// for more information on using Contexts.
1955func (c *StorageGateway) DeleteBandwidthRateLimitWithContext(ctx aws.Context, input *DeleteBandwidthRateLimitInput, opts ...request.Option) (*DeleteBandwidthRateLimitOutput, error) {
1956	req, out := c.DeleteBandwidthRateLimitRequest(input)
1957	req.SetContext(ctx)
1958	req.ApplyOptions(opts...)
1959	return out, req.Send()
1960}
1961
1962const opDeleteChapCredentials = "DeleteChapCredentials"
1963
1964// DeleteChapCredentialsRequest generates a "aws/request.Request" representing the
1965// client's request for the DeleteChapCredentials operation. The "output" return
1966// value will be populated with the request's response once the request completes
1967// successfully.
1968//
1969// Use "Send" method on the returned Request to send the API call to the service.
1970// the "output" return value is not valid until after Send returns without error.
1971//
1972// See DeleteChapCredentials for more information on using the DeleteChapCredentials
1973// API call, and error handling.
1974//
1975// This method is useful when you want to inject custom logic or configuration
1976// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1977//
1978//
1979//    // Example sending a request using the DeleteChapCredentialsRequest method.
1980//    req, resp := client.DeleteChapCredentialsRequest(params)
1981//
1982//    err := req.Send()
1983//    if err == nil { // resp is now filled
1984//        fmt.Println(resp)
1985//    }
1986//
1987// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteChapCredentials
1988func (c *StorageGateway) DeleteChapCredentialsRequest(input *DeleteChapCredentialsInput) (req *request.Request, output *DeleteChapCredentialsOutput) {
1989	op := &request.Operation{
1990		Name:       opDeleteChapCredentials,
1991		HTTPMethod: "POST",
1992		HTTPPath:   "/",
1993	}
1994
1995	if input == nil {
1996		input = &DeleteChapCredentialsInput{}
1997	}
1998
1999	output = &DeleteChapCredentialsOutput{}
2000	req = c.newRequest(op, input, output)
2001	return
2002}
2003
2004// DeleteChapCredentials API operation for AWS Storage Gateway.
2005//
2006// Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for
2007// a specified iSCSI target and initiator pair. This operation is supported
2008// in volume and tape gateway types.
2009//
2010// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2011// with awserr.Error's Code and Message methods to get detailed information about
2012// the error.
2013//
2014// See the AWS API reference guide for AWS Storage Gateway's
2015// API operation DeleteChapCredentials for usage and error information.
2016//
2017// Returned Error Types:
2018//   * InvalidGatewayRequestException
2019//   An exception occurred because an invalid gateway request was issued to the
2020//   service. For more information, see the error and message fields.
2021//
2022//   * InternalServerError
2023//   An internal server error has occurred during the request. For more information,
2024//   see the error and message fields.
2025//
2026// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteChapCredentials
2027func (c *StorageGateway) DeleteChapCredentials(input *DeleteChapCredentialsInput) (*DeleteChapCredentialsOutput, error) {
2028	req, out := c.DeleteChapCredentialsRequest(input)
2029	return out, req.Send()
2030}
2031
2032// DeleteChapCredentialsWithContext is the same as DeleteChapCredentials with the addition of
2033// the ability to pass a context and additional request options.
2034//
2035// See DeleteChapCredentials for details on how to use this API operation.
2036//
2037// The context must be non-nil and will be used for request cancellation. If
2038// the context is nil a panic will occur. In the future the SDK may create
2039// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2040// for more information on using Contexts.
2041func (c *StorageGateway) DeleteChapCredentialsWithContext(ctx aws.Context, input *DeleteChapCredentialsInput, opts ...request.Option) (*DeleteChapCredentialsOutput, error) {
2042	req, out := c.DeleteChapCredentialsRequest(input)
2043	req.SetContext(ctx)
2044	req.ApplyOptions(opts...)
2045	return out, req.Send()
2046}
2047
2048const opDeleteFileShare = "DeleteFileShare"
2049
2050// DeleteFileShareRequest generates a "aws/request.Request" representing the
2051// client's request for the DeleteFileShare operation. The "output" return
2052// value will be populated with the request's response once the request completes
2053// successfully.
2054//
2055// Use "Send" method on the returned Request to send the API call to the service.
2056// the "output" return value is not valid until after Send returns without error.
2057//
2058// See DeleteFileShare for more information on using the DeleteFileShare
2059// API call, and error handling.
2060//
2061// This method is useful when you want to inject custom logic or configuration
2062// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2063//
2064//
2065//    // Example sending a request using the DeleteFileShareRequest method.
2066//    req, resp := client.DeleteFileShareRequest(params)
2067//
2068//    err := req.Send()
2069//    if err == nil { // resp is now filled
2070//        fmt.Println(resp)
2071//    }
2072//
2073// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteFileShare
2074func (c *StorageGateway) DeleteFileShareRequest(input *DeleteFileShareInput) (req *request.Request, output *DeleteFileShareOutput) {
2075	op := &request.Operation{
2076		Name:       opDeleteFileShare,
2077		HTTPMethod: "POST",
2078		HTTPPath:   "/",
2079	}
2080
2081	if input == nil {
2082		input = &DeleteFileShareInput{}
2083	}
2084
2085	output = &DeleteFileShareOutput{}
2086	req = c.newRequest(op, input, output)
2087	return
2088}
2089
2090// DeleteFileShare API operation for AWS Storage Gateway.
2091//
2092// Deletes a file share from a file gateway. This operation is only supported
2093// for file gateways.
2094//
2095// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2096// with awserr.Error's Code and Message methods to get detailed information about
2097// the error.
2098//
2099// See the AWS API reference guide for AWS Storage Gateway's
2100// API operation DeleteFileShare for usage and error information.
2101//
2102// Returned Error Types:
2103//   * InvalidGatewayRequestException
2104//   An exception occurred because an invalid gateway request was issued to the
2105//   service. For more information, see the error and message fields.
2106//
2107//   * InternalServerError
2108//   An internal server error has occurred during the request. For more information,
2109//   see the error and message fields.
2110//
2111// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteFileShare
2112func (c *StorageGateway) DeleteFileShare(input *DeleteFileShareInput) (*DeleteFileShareOutput, error) {
2113	req, out := c.DeleteFileShareRequest(input)
2114	return out, req.Send()
2115}
2116
2117// DeleteFileShareWithContext is the same as DeleteFileShare with the addition of
2118// the ability to pass a context and additional request options.
2119//
2120// See DeleteFileShare for details on how to use this API operation.
2121//
2122// The context must be non-nil and will be used for request cancellation. If
2123// the context is nil a panic will occur. In the future the SDK may create
2124// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2125// for more information on using Contexts.
2126func (c *StorageGateway) DeleteFileShareWithContext(ctx aws.Context, input *DeleteFileShareInput, opts ...request.Option) (*DeleteFileShareOutput, error) {
2127	req, out := c.DeleteFileShareRequest(input)
2128	req.SetContext(ctx)
2129	req.ApplyOptions(opts...)
2130	return out, req.Send()
2131}
2132
2133const opDeleteGateway = "DeleteGateway"
2134
2135// DeleteGatewayRequest generates a "aws/request.Request" representing the
2136// client's request for the DeleteGateway operation. The "output" return
2137// value will be populated with the request's response once the request completes
2138// successfully.
2139//
2140// Use "Send" method on the returned Request to send the API call to the service.
2141// the "output" return value is not valid until after Send returns without error.
2142//
2143// See DeleteGateway for more information on using the DeleteGateway
2144// API call, and error handling.
2145//
2146// This method is useful when you want to inject custom logic or configuration
2147// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2148//
2149//
2150//    // Example sending a request using the DeleteGatewayRequest method.
2151//    req, resp := client.DeleteGatewayRequest(params)
2152//
2153//    err := req.Send()
2154//    if err == nil { // resp is now filled
2155//        fmt.Println(resp)
2156//    }
2157//
2158// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteGateway
2159func (c *StorageGateway) DeleteGatewayRequest(input *DeleteGatewayInput) (req *request.Request, output *DeleteGatewayOutput) {
2160	op := &request.Operation{
2161		Name:       opDeleteGateway,
2162		HTTPMethod: "POST",
2163		HTTPPath:   "/",
2164	}
2165
2166	if input == nil {
2167		input = &DeleteGatewayInput{}
2168	}
2169
2170	output = &DeleteGatewayOutput{}
2171	req = c.newRequest(op, input, output)
2172	return
2173}
2174
2175// DeleteGateway API operation for AWS Storage Gateway.
2176//
2177// Deletes a gateway. To specify which gateway to delete, use the Amazon Resource
2178// Name (ARN) of the gateway in your request. The operation deletes the gateway;
2179// however, it does not delete the gateway virtual machine (VM) from your host
2180// computer.
2181//
2182// After you delete a gateway, you cannot reactivate it. Completed snapshots
2183// of the gateway volumes are not deleted upon deleting the gateway, however,
2184// pending snapshots will not complete. After you delete a gateway, your next
2185// step is to remove it from your environment.
2186//
2187// You no longer pay software charges after the gateway is deleted; however,
2188// your existing Amazon EBS snapshots persist and you will continue to be billed
2189// for these snapshots. You can choose to remove all remaining Amazon EBS snapshots
2190// by canceling your Amazon EC2 subscription. If you prefer not to cancel your
2191// Amazon EC2 subscription, you can delete your snapshots using the Amazon EC2
2192// console. For more information, see the AWS Storage Gateway detail page (http://aws.amazon.com/storagegateway).
2193//
2194// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2195// with awserr.Error's Code and Message methods to get detailed information about
2196// the error.
2197//
2198// See the AWS API reference guide for AWS Storage Gateway's
2199// API operation DeleteGateway for usage and error information.
2200//
2201// Returned Error Types:
2202//   * InvalidGatewayRequestException
2203//   An exception occurred because an invalid gateway request was issued to the
2204//   service. For more information, see the error and message fields.
2205//
2206//   * InternalServerError
2207//   An internal server error has occurred during the request. For more information,
2208//   see the error and message fields.
2209//
2210// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteGateway
2211func (c *StorageGateway) DeleteGateway(input *DeleteGatewayInput) (*DeleteGatewayOutput, error) {
2212	req, out := c.DeleteGatewayRequest(input)
2213	return out, req.Send()
2214}
2215
2216// DeleteGatewayWithContext is the same as DeleteGateway with the addition of
2217// the ability to pass a context and additional request options.
2218//
2219// See DeleteGateway for details on how to use this API operation.
2220//
2221// The context must be non-nil and will be used for request cancellation. If
2222// the context is nil a panic will occur. In the future the SDK may create
2223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2224// for more information on using Contexts.
2225func (c *StorageGateway) DeleteGatewayWithContext(ctx aws.Context, input *DeleteGatewayInput, opts ...request.Option) (*DeleteGatewayOutput, error) {
2226	req, out := c.DeleteGatewayRequest(input)
2227	req.SetContext(ctx)
2228	req.ApplyOptions(opts...)
2229	return out, req.Send()
2230}
2231
2232const opDeleteSnapshotSchedule = "DeleteSnapshotSchedule"
2233
2234// DeleteSnapshotScheduleRequest generates a "aws/request.Request" representing the
2235// client's request for the DeleteSnapshotSchedule operation. The "output" return
2236// value will be populated with the request's response once the request completes
2237// successfully.
2238//
2239// Use "Send" method on the returned Request to send the API call to the service.
2240// the "output" return value is not valid until after Send returns without error.
2241//
2242// See DeleteSnapshotSchedule for more information on using the DeleteSnapshotSchedule
2243// API call, and error handling.
2244//
2245// This method is useful when you want to inject custom logic or configuration
2246// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2247//
2248//
2249//    // Example sending a request using the DeleteSnapshotScheduleRequest method.
2250//    req, resp := client.DeleteSnapshotScheduleRequest(params)
2251//
2252//    err := req.Send()
2253//    if err == nil { // resp is now filled
2254//        fmt.Println(resp)
2255//    }
2256//
2257// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteSnapshotSchedule
2258func (c *StorageGateway) DeleteSnapshotScheduleRequest(input *DeleteSnapshotScheduleInput) (req *request.Request, output *DeleteSnapshotScheduleOutput) {
2259	op := &request.Operation{
2260		Name:       opDeleteSnapshotSchedule,
2261		HTTPMethod: "POST",
2262		HTTPPath:   "/",
2263	}
2264
2265	if input == nil {
2266		input = &DeleteSnapshotScheduleInput{}
2267	}
2268
2269	output = &DeleteSnapshotScheduleOutput{}
2270	req = c.newRequest(op, input, output)
2271	return
2272}
2273
2274// DeleteSnapshotSchedule API operation for AWS Storage Gateway.
2275//
2276// Deletes a snapshot of a volume.
2277//
2278// You can take snapshots of your gateway volumes on a scheduled or ad hoc basis.
2279// This API action enables you to delete a snapshot schedule for a volume. For
2280// more information, see Backing up your volumes (https://docs.aws.amazon.com/storagegateway/latest/userguide/backing-up-volumes.html).
2281// In the DeleteSnapshotSchedule request, you identify the volume by providing
2282// its Amazon Resource Name (ARN). This operation is only supported in stored
2283// and cached volume gateway types.
2284//
2285// To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
2286// go to DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html)
2287// in the Amazon Elastic Compute Cloud API Reference.
2288//
2289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2290// with awserr.Error's Code and Message methods to get detailed information about
2291// the error.
2292//
2293// See the AWS API reference guide for AWS Storage Gateway's
2294// API operation DeleteSnapshotSchedule for usage and error information.
2295//
2296// Returned Error Types:
2297//   * InvalidGatewayRequestException
2298//   An exception occurred because an invalid gateway request was issued to the
2299//   service. For more information, see the error and message fields.
2300//
2301//   * InternalServerError
2302//   An internal server error has occurred during the request. For more information,
2303//   see the error and message fields.
2304//
2305// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteSnapshotSchedule
2306func (c *StorageGateway) DeleteSnapshotSchedule(input *DeleteSnapshotScheduleInput) (*DeleteSnapshotScheduleOutput, error) {
2307	req, out := c.DeleteSnapshotScheduleRequest(input)
2308	return out, req.Send()
2309}
2310
2311// DeleteSnapshotScheduleWithContext is the same as DeleteSnapshotSchedule with the addition of
2312// the ability to pass a context and additional request options.
2313//
2314// See DeleteSnapshotSchedule for details on how to use this API operation.
2315//
2316// The context must be non-nil and will be used for request cancellation. If
2317// the context is nil a panic will occur. In the future the SDK may create
2318// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2319// for more information on using Contexts.
2320func (c *StorageGateway) DeleteSnapshotScheduleWithContext(ctx aws.Context, input *DeleteSnapshotScheduleInput, opts ...request.Option) (*DeleteSnapshotScheduleOutput, error) {
2321	req, out := c.DeleteSnapshotScheduleRequest(input)
2322	req.SetContext(ctx)
2323	req.ApplyOptions(opts...)
2324	return out, req.Send()
2325}
2326
2327const opDeleteTape = "DeleteTape"
2328
2329// DeleteTapeRequest generates a "aws/request.Request" representing the
2330// client's request for the DeleteTape operation. The "output" return
2331// value will be populated with the request's response once the request completes
2332// successfully.
2333//
2334// Use "Send" method on the returned Request to send the API call to the service.
2335// the "output" return value is not valid until after Send returns without error.
2336//
2337// See DeleteTape for more information on using the DeleteTape
2338// API call, and error handling.
2339//
2340// This method is useful when you want to inject custom logic or configuration
2341// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2342//
2343//
2344//    // Example sending a request using the DeleteTapeRequest method.
2345//    req, resp := client.DeleteTapeRequest(params)
2346//
2347//    err := req.Send()
2348//    if err == nil { // resp is now filled
2349//        fmt.Println(resp)
2350//    }
2351//
2352// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTape
2353func (c *StorageGateway) DeleteTapeRequest(input *DeleteTapeInput) (req *request.Request, output *DeleteTapeOutput) {
2354	op := &request.Operation{
2355		Name:       opDeleteTape,
2356		HTTPMethod: "POST",
2357		HTTPPath:   "/",
2358	}
2359
2360	if input == nil {
2361		input = &DeleteTapeInput{}
2362	}
2363
2364	output = &DeleteTapeOutput{}
2365	req = c.newRequest(op, input, output)
2366	return
2367}
2368
2369// DeleteTape API operation for AWS Storage Gateway.
2370//
2371// Deletes the specified virtual tape. This operation is only supported in the
2372// tape gateway type.
2373//
2374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2375// with awserr.Error's Code and Message methods to get detailed information about
2376// the error.
2377//
2378// See the AWS API reference guide for AWS Storage Gateway's
2379// API operation DeleteTape for usage and error information.
2380//
2381// Returned Error Types:
2382//   * InvalidGatewayRequestException
2383//   An exception occurred because an invalid gateway request was issued to the
2384//   service. For more information, see the error and message fields.
2385//
2386//   * InternalServerError
2387//   An internal server error has occurred during the request. For more information,
2388//   see the error and message fields.
2389//
2390// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTape
2391func (c *StorageGateway) DeleteTape(input *DeleteTapeInput) (*DeleteTapeOutput, error) {
2392	req, out := c.DeleteTapeRequest(input)
2393	return out, req.Send()
2394}
2395
2396// DeleteTapeWithContext is the same as DeleteTape with the addition of
2397// the ability to pass a context and additional request options.
2398//
2399// See DeleteTape for details on how to use this API operation.
2400//
2401// The context must be non-nil and will be used for request cancellation. If
2402// the context is nil a panic will occur. In the future the SDK may create
2403// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2404// for more information on using Contexts.
2405func (c *StorageGateway) DeleteTapeWithContext(ctx aws.Context, input *DeleteTapeInput, opts ...request.Option) (*DeleteTapeOutput, error) {
2406	req, out := c.DeleteTapeRequest(input)
2407	req.SetContext(ctx)
2408	req.ApplyOptions(opts...)
2409	return out, req.Send()
2410}
2411
2412const opDeleteTapeArchive = "DeleteTapeArchive"
2413
2414// DeleteTapeArchiveRequest generates a "aws/request.Request" representing the
2415// client's request for the DeleteTapeArchive operation. The "output" return
2416// value will be populated with the request's response once the request completes
2417// successfully.
2418//
2419// Use "Send" method on the returned Request to send the API call to the service.
2420// the "output" return value is not valid until after Send returns without error.
2421//
2422// See DeleteTapeArchive for more information on using the DeleteTapeArchive
2423// API call, and error handling.
2424//
2425// This method is useful when you want to inject custom logic or configuration
2426// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2427//
2428//
2429//    // Example sending a request using the DeleteTapeArchiveRequest method.
2430//    req, resp := client.DeleteTapeArchiveRequest(params)
2431//
2432//    err := req.Send()
2433//    if err == nil { // resp is now filled
2434//        fmt.Println(resp)
2435//    }
2436//
2437// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapeArchive
2438func (c *StorageGateway) DeleteTapeArchiveRequest(input *DeleteTapeArchiveInput) (req *request.Request, output *DeleteTapeArchiveOutput) {
2439	op := &request.Operation{
2440		Name:       opDeleteTapeArchive,
2441		HTTPMethod: "POST",
2442		HTTPPath:   "/",
2443	}
2444
2445	if input == nil {
2446		input = &DeleteTapeArchiveInput{}
2447	}
2448
2449	output = &DeleteTapeArchiveOutput{}
2450	req = c.newRequest(op, input, output)
2451	return
2452}
2453
2454// DeleteTapeArchive API operation for AWS Storage Gateway.
2455//
2456// Deletes the specified virtual tape from the virtual tape shelf (VTS). This
2457// operation is only supported in the tape gateway type.
2458//
2459// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2460// with awserr.Error's Code and Message methods to get detailed information about
2461// the error.
2462//
2463// See the AWS API reference guide for AWS Storage Gateway's
2464// API operation DeleteTapeArchive for usage and error information.
2465//
2466// Returned Error Types:
2467//   * InvalidGatewayRequestException
2468//   An exception occurred because an invalid gateway request was issued to the
2469//   service. For more information, see the error and message fields.
2470//
2471//   * InternalServerError
2472//   An internal server error has occurred during the request. For more information,
2473//   see the error and message fields.
2474//
2475// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapeArchive
2476func (c *StorageGateway) DeleteTapeArchive(input *DeleteTapeArchiveInput) (*DeleteTapeArchiveOutput, error) {
2477	req, out := c.DeleteTapeArchiveRequest(input)
2478	return out, req.Send()
2479}
2480
2481// DeleteTapeArchiveWithContext is the same as DeleteTapeArchive with the addition of
2482// the ability to pass a context and additional request options.
2483//
2484// See DeleteTapeArchive for details on how to use this API operation.
2485//
2486// The context must be non-nil and will be used for request cancellation. If
2487// the context is nil a panic will occur. In the future the SDK may create
2488// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2489// for more information on using Contexts.
2490func (c *StorageGateway) DeleteTapeArchiveWithContext(ctx aws.Context, input *DeleteTapeArchiveInput, opts ...request.Option) (*DeleteTapeArchiveOutput, error) {
2491	req, out := c.DeleteTapeArchiveRequest(input)
2492	req.SetContext(ctx)
2493	req.ApplyOptions(opts...)
2494	return out, req.Send()
2495}
2496
2497const opDeleteTapePool = "DeleteTapePool"
2498
2499// DeleteTapePoolRequest generates a "aws/request.Request" representing the
2500// client's request for the DeleteTapePool operation. The "output" return
2501// value will be populated with the request's response once the request completes
2502// successfully.
2503//
2504// Use "Send" method on the returned Request to send the API call to the service.
2505// the "output" return value is not valid until after Send returns without error.
2506//
2507// See DeleteTapePool for more information on using the DeleteTapePool
2508// API call, and error handling.
2509//
2510// This method is useful when you want to inject custom logic or configuration
2511// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2512//
2513//
2514//    // Example sending a request using the DeleteTapePoolRequest method.
2515//    req, resp := client.DeleteTapePoolRequest(params)
2516//
2517//    err := req.Send()
2518//    if err == nil { // resp is now filled
2519//        fmt.Println(resp)
2520//    }
2521//
2522// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapePool
2523func (c *StorageGateway) DeleteTapePoolRequest(input *DeleteTapePoolInput) (req *request.Request, output *DeleteTapePoolOutput) {
2524	op := &request.Operation{
2525		Name:       opDeleteTapePool,
2526		HTTPMethod: "POST",
2527		HTTPPath:   "/",
2528	}
2529
2530	if input == nil {
2531		input = &DeleteTapePoolInput{}
2532	}
2533
2534	output = &DeleteTapePoolOutput{}
2535	req = c.newRequest(op, input, output)
2536	return
2537}
2538
2539// DeleteTapePool API operation for AWS Storage Gateway.
2540//
2541// Delete a custom tape pool. A custom tape pool can only be deleted if there
2542// are no tapes in the pool and if there are no automatic tape creation policies
2543// that reference the custom tape pool.
2544//
2545// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2546// with awserr.Error's Code and Message methods to get detailed information about
2547// the error.
2548//
2549// See the AWS API reference guide for AWS Storage Gateway's
2550// API operation DeleteTapePool for usage and error information.
2551//
2552// Returned Error Types:
2553//   * InvalidGatewayRequestException
2554//   An exception occurred because an invalid gateway request was issued to the
2555//   service. For more information, see the error and message fields.
2556//
2557//   * InternalServerError
2558//   An internal server error has occurred during the request. For more information,
2559//   see the error and message fields.
2560//
2561// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapePool
2562func (c *StorageGateway) DeleteTapePool(input *DeleteTapePoolInput) (*DeleteTapePoolOutput, error) {
2563	req, out := c.DeleteTapePoolRequest(input)
2564	return out, req.Send()
2565}
2566
2567// DeleteTapePoolWithContext is the same as DeleteTapePool with the addition of
2568// the ability to pass a context and additional request options.
2569//
2570// See DeleteTapePool for details on how to use this API operation.
2571//
2572// The context must be non-nil and will be used for request cancellation. If
2573// the context is nil a panic will occur. In the future the SDK may create
2574// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2575// for more information on using Contexts.
2576func (c *StorageGateway) DeleteTapePoolWithContext(ctx aws.Context, input *DeleteTapePoolInput, opts ...request.Option) (*DeleteTapePoolOutput, error) {
2577	req, out := c.DeleteTapePoolRequest(input)
2578	req.SetContext(ctx)
2579	req.ApplyOptions(opts...)
2580	return out, req.Send()
2581}
2582
2583const opDeleteVolume = "DeleteVolume"
2584
2585// DeleteVolumeRequest generates a "aws/request.Request" representing the
2586// client's request for the DeleteVolume operation. The "output" return
2587// value will be populated with the request's response once the request completes
2588// successfully.
2589//
2590// Use "Send" method on the returned Request to send the API call to the service.
2591// the "output" return value is not valid until after Send returns without error.
2592//
2593// See DeleteVolume for more information on using the DeleteVolume
2594// API call, and error handling.
2595//
2596// This method is useful when you want to inject custom logic or configuration
2597// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2598//
2599//
2600//    // Example sending a request using the DeleteVolumeRequest method.
2601//    req, resp := client.DeleteVolumeRequest(params)
2602//
2603//    err := req.Send()
2604//    if err == nil { // resp is now filled
2605//        fmt.Println(resp)
2606//    }
2607//
2608// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteVolume
2609func (c *StorageGateway) DeleteVolumeRequest(input *DeleteVolumeInput) (req *request.Request, output *DeleteVolumeOutput) {
2610	op := &request.Operation{
2611		Name:       opDeleteVolume,
2612		HTTPMethod: "POST",
2613		HTTPPath:   "/",
2614	}
2615
2616	if input == nil {
2617		input = &DeleteVolumeInput{}
2618	}
2619
2620	output = &DeleteVolumeOutput{}
2621	req = c.newRequest(op, input, output)
2622	return
2623}
2624
2625// DeleteVolume API operation for AWS Storage Gateway.
2626//
2627// Deletes the specified storage volume that you previously created using the
2628// CreateCachediSCSIVolume or CreateStorediSCSIVolume API. This operation is
2629// only supported in the cached volume and stored volume types. For stored volume
2630// gateways, the local disk that was configured as the storage volume is not
2631// deleted. You can reuse the local disk to create another storage volume.
2632//
2633// Before you delete a volume, make sure there are no iSCSI connections to the
2634// volume you are deleting. You should also make sure there is no snapshot in
2635// progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to
2636// query snapshots on the volume you are deleting and check the snapshot status.
2637// For more information, go to DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
2638// in the Amazon Elastic Compute Cloud API Reference.
2639//
2640// In the request, you must provide the Amazon Resource Name (ARN) of the storage
2641// volume you want to delete.
2642//
2643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2644// with awserr.Error's Code and Message methods to get detailed information about
2645// the error.
2646//
2647// See the AWS API reference guide for AWS Storage Gateway's
2648// API operation DeleteVolume for usage and error information.
2649//
2650// Returned Error Types:
2651//   * InvalidGatewayRequestException
2652//   An exception occurred because an invalid gateway request was issued to the
2653//   service. For more information, see the error and message fields.
2654//
2655//   * InternalServerError
2656//   An internal server error has occurred during the request. For more information,
2657//   see the error and message fields.
2658//
2659// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteVolume
2660func (c *StorageGateway) DeleteVolume(input *DeleteVolumeInput) (*DeleteVolumeOutput, error) {
2661	req, out := c.DeleteVolumeRequest(input)
2662	return out, req.Send()
2663}
2664
2665// DeleteVolumeWithContext is the same as DeleteVolume with the addition of
2666// the ability to pass a context and additional request options.
2667//
2668// See DeleteVolume for details on how to use this API operation.
2669//
2670// The context must be non-nil and will be used for request cancellation. If
2671// the context is nil a panic will occur. In the future the SDK may create
2672// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2673// for more information on using Contexts.
2674func (c *StorageGateway) DeleteVolumeWithContext(ctx aws.Context, input *DeleteVolumeInput, opts ...request.Option) (*DeleteVolumeOutput, error) {
2675	req, out := c.DeleteVolumeRequest(input)
2676	req.SetContext(ctx)
2677	req.ApplyOptions(opts...)
2678	return out, req.Send()
2679}
2680
2681const opDescribeAvailabilityMonitorTest = "DescribeAvailabilityMonitorTest"
2682
2683// DescribeAvailabilityMonitorTestRequest generates a "aws/request.Request" representing the
2684// client's request for the DescribeAvailabilityMonitorTest operation. The "output" return
2685// value will be populated with the request's response once the request completes
2686// successfully.
2687//
2688// Use "Send" method on the returned Request to send the API call to the service.
2689// the "output" return value is not valid until after Send returns without error.
2690//
2691// See DescribeAvailabilityMonitorTest for more information on using the DescribeAvailabilityMonitorTest
2692// API call, and error handling.
2693//
2694// This method is useful when you want to inject custom logic or configuration
2695// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2696//
2697//
2698//    // Example sending a request using the DescribeAvailabilityMonitorTestRequest method.
2699//    req, resp := client.DescribeAvailabilityMonitorTestRequest(params)
2700//
2701//    err := req.Send()
2702//    if err == nil { // resp is now filled
2703//        fmt.Println(resp)
2704//    }
2705//
2706// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeAvailabilityMonitorTest
2707func (c *StorageGateway) DescribeAvailabilityMonitorTestRequest(input *DescribeAvailabilityMonitorTestInput) (req *request.Request, output *DescribeAvailabilityMonitorTestOutput) {
2708	op := &request.Operation{
2709		Name:       opDescribeAvailabilityMonitorTest,
2710		HTTPMethod: "POST",
2711		HTTPPath:   "/",
2712	}
2713
2714	if input == nil {
2715		input = &DescribeAvailabilityMonitorTestInput{}
2716	}
2717
2718	output = &DescribeAvailabilityMonitorTestOutput{}
2719	req = c.newRequest(op, input, output)
2720	return
2721}
2722
2723// DescribeAvailabilityMonitorTest API operation for AWS Storage Gateway.
2724//
2725// Returns information about the most recent high availability monitoring test
2726// that was performed on the host in a cluster. If a test isn't performed, the
2727// status and start time in the response would be null.
2728//
2729// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2730// with awserr.Error's Code and Message methods to get detailed information about
2731// the error.
2732//
2733// See the AWS API reference guide for AWS Storage Gateway's
2734// API operation DescribeAvailabilityMonitorTest for usage and error information.
2735//
2736// Returned Error Types:
2737//   * InvalidGatewayRequestException
2738//   An exception occurred because an invalid gateway request was issued to the
2739//   service. For more information, see the error and message fields.
2740//
2741//   * InternalServerError
2742//   An internal server error has occurred during the request. For more information,
2743//   see the error and message fields.
2744//
2745// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeAvailabilityMonitorTest
2746func (c *StorageGateway) DescribeAvailabilityMonitorTest(input *DescribeAvailabilityMonitorTestInput) (*DescribeAvailabilityMonitorTestOutput, error) {
2747	req, out := c.DescribeAvailabilityMonitorTestRequest(input)
2748	return out, req.Send()
2749}
2750
2751// DescribeAvailabilityMonitorTestWithContext is the same as DescribeAvailabilityMonitorTest with the addition of
2752// the ability to pass a context and additional request options.
2753//
2754// See DescribeAvailabilityMonitorTest for details on how to use this API operation.
2755//
2756// The context must be non-nil and will be used for request cancellation. If
2757// the context is nil a panic will occur. In the future the SDK may create
2758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2759// for more information on using Contexts.
2760func (c *StorageGateway) DescribeAvailabilityMonitorTestWithContext(ctx aws.Context, input *DescribeAvailabilityMonitorTestInput, opts ...request.Option) (*DescribeAvailabilityMonitorTestOutput, error) {
2761	req, out := c.DescribeAvailabilityMonitorTestRequest(input)
2762	req.SetContext(ctx)
2763	req.ApplyOptions(opts...)
2764	return out, req.Send()
2765}
2766
2767const opDescribeBandwidthRateLimit = "DescribeBandwidthRateLimit"
2768
2769// DescribeBandwidthRateLimitRequest generates a "aws/request.Request" representing the
2770// client's request for the DescribeBandwidthRateLimit operation. The "output" return
2771// value will be populated with the request's response once the request completes
2772// successfully.
2773//
2774// Use "Send" method on the returned Request to send the API call to the service.
2775// the "output" return value is not valid until after Send returns without error.
2776//
2777// See DescribeBandwidthRateLimit for more information on using the DescribeBandwidthRateLimit
2778// API call, and error handling.
2779//
2780// This method is useful when you want to inject custom logic or configuration
2781// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2782//
2783//
2784//    // Example sending a request using the DescribeBandwidthRateLimitRequest method.
2785//    req, resp := client.DescribeBandwidthRateLimitRequest(params)
2786//
2787//    err := req.Send()
2788//    if err == nil { // resp is now filled
2789//        fmt.Println(resp)
2790//    }
2791//
2792// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimit
2793func (c *StorageGateway) DescribeBandwidthRateLimitRequest(input *DescribeBandwidthRateLimitInput) (req *request.Request, output *DescribeBandwidthRateLimitOutput) {
2794	op := &request.Operation{
2795		Name:       opDescribeBandwidthRateLimit,
2796		HTTPMethod: "POST",
2797		HTTPPath:   "/",
2798	}
2799
2800	if input == nil {
2801		input = &DescribeBandwidthRateLimitInput{}
2802	}
2803
2804	output = &DescribeBandwidthRateLimitOutput{}
2805	req = c.newRequest(op, input, output)
2806	return
2807}
2808
2809// DescribeBandwidthRateLimit API operation for AWS Storage Gateway.
2810//
2811// Returns the bandwidth rate limits of a gateway. By default, these limits
2812// are not set, which means no bandwidth rate limiting is in effect. This operation
2813// is supported for the stored volume, cached volume, and tape gateway types.
2814//
2815// This operation only returns a value for a bandwidth rate limit only if the
2816// limit is set. If no limits are set for the gateway, then this operation returns
2817// only the gateway ARN in the response body. To specify which gateway to describe,
2818// use the Amazon Resource Name (ARN) of the gateway in your request.
2819//
2820// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2821// with awserr.Error's Code and Message methods to get detailed information about
2822// the error.
2823//
2824// See the AWS API reference guide for AWS Storage Gateway's
2825// API operation DescribeBandwidthRateLimit for usage and error information.
2826//
2827// Returned Error Types:
2828//   * InvalidGatewayRequestException
2829//   An exception occurred because an invalid gateway request was issued to the
2830//   service. For more information, see the error and message fields.
2831//
2832//   * InternalServerError
2833//   An internal server error has occurred during the request. For more information,
2834//   see the error and message fields.
2835//
2836// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimit
2837func (c *StorageGateway) DescribeBandwidthRateLimit(input *DescribeBandwidthRateLimitInput) (*DescribeBandwidthRateLimitOutput, error) {
2838	req, out := c.DescribeBandwidthRateLimitRequest(input)
2839	return out, req.Send()
2840}
2841
2842// DescribeBandwidthRateLimitWithContext is the same as DescribeBandwidthRateLimit with the addition of
2843// the ability to pass a context and additional request options.
2844//
2845// See DescribeBandwidthRateLimit for details on how to use this API operation.
2846//
2847// The context must be non-nil and will be used for request cancellation. If
2848// the context is nil a panic will occur. In the future the SDK may create
2849// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2850// for more information on using Contexts.
2851func (c *StorageGateway) DescribeBandwidthRateLimitWithContext(ctx aws.Context, input *DescribeBandwidthRateLimitInput, opts ...request.Option) (*DescribeBandwidthRateLimitOutput, error) {
2852	req, out := c.DescribeBandwidthRateLimitRequest(input)
2853	req.SetContext(ctx)
2854	req.ApplyOptions(opts...)
2855	return out, req.Send()
2856}
2857
2858const opDescribeBandwidthRateLimitSchedule = "DescribeBandwidthRateLimitSchedule"
2859
2860// DescribeBandwidthRateLimitScheduleRequest generates a "aws/request.Request" representing the
2861// client's request for the DescribeBandwidthRateLimitSchedule operation. The "output" return
2862// value will be populated with the request's response once the request completes
2863// successfully.
2864//
2865// Use "Send" method on the returned Request to send the API call to the service.
2866// the "output" return value is not valid until after Send returns without error.
2867//
2868// See DescribeBandwidthRateLimitSchedule for more information on using the DescribeBandwidthRateLimitSchedule
2869// API call, and error handling.
2870//
2871// This method is useful when you want to inject custom logic or configuration
2872// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2873//
2874//
2875//    // Example sending a request using the DescribeBandwidthRateLimitScheduleRequest method.
2876//    req, resp := client.DescribeBandwidthRateLimitScheduleRequest(params)
2877//
2878//    err := req.Send()
2879//    if err == nil { // resp is now filled
2880//        fmt.Println(resp)
2881//    }
2882//
2883// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimitSchedule
2884func (c *StorageGateway) DescribeBandwidthRateLimitScheduleRequest(input *DescribeBandwidthRateLimitScheduleInput) (req *request.Request, output *DescribeBandwidthRateLimitScheduleOutput) {
2885	op := &request.Operation{
2886		Name:       opDescribeBandwidthRateLimitSchedule,
2887		HTTPMethod: "POST",
2888		HTTPPath:   "/",
2889	}
2890
2891	if input == nil {
2892		input = &DescribeBandwidthRateLimitScheduleInput{}
2893	}
2894
2895	output = &DescribeBandwidthRateLimitScheduleOutput{}
2896	req = c.newRequest(op, input, output)
2897	return
2898}
2899
2900// DescribeBandwidthRateLimitSchedule API operation for AWS Storage Gateway.
2901//
2902// Returns information about the bandwidth rate limit schedule of a gateway.
2903// By default, gateways do not have bandwidth rate limit schedules, which means
2904// no bandwidth rate limiting is in effect. This operation is supported only
2905// in the volume and tape gateway types.
2906//
2907// This operation returns information about a gateway's bandwidth rate limit
2908// schedule. A bandwidth rate limit schedule consists of one or more bandwidth
2909// rate limit intervals. A bandwidth rate limit interval defines a period of
2910// time on one or more days of the week, during which bandwidth rate limits
2911// are specified for uploading, downloading, or both.
2912//
2913// A bandwidth rate limit interval consists of one or more days of the week,
2914// a start hour and minute, an ending hour and minute, and bandwidth rate limits
2915// for uploading and downloading
2916//
2917// If no bandwidth rate limit schedule intervals are set for the gateway, this
2918// operation returns an empty response. To specify which gateway to describe,
2919// use the Amazon Resource Name (ARN) of the gateway in your request.
2920//
2921// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2922// with awserr.Error's Code and Message methods to get detailed information about
2923// the error.
2924//
2925// See the AWS API reference guide for AWS Storage Gateway's
2926// API operation DescribeBandwidthRateLimitSchedule for usage and error information.
2927//
2928// Returned Error Types:
2929//   * InvalidGatewayRequestException
2930//   An exception occurred because an invalid gateway request was issued to the
2931//   service. For more information, see the error and message fields.
2932//
2933//   * InternalServerError
2934//   An internal server error has occurred during the request. For more information,
2935//   see the error and message fields.
2936//
2937// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimitSchedule
2938func (c *StorageGateway) DescribeBandwidthRateLimitSchedule(input *DescribeBandwidthRateLimitScheduleInput) (*DescribeBandwidthRateLimitScheduleOutput, error) {
2939	req, out := c.DescribeBandwidthRateLimitScheduleRequest(input)
2940	return out, req.Send()
2941}
2942
2943// DescribeBandwidthRateLimitScheduleWithContext is the same as DescribeBandwidthRateLimitSchedule with the addition of
2944// the ability to pass a context and additional request options.
2945//
2946// See DescribeBandwidthRateLimitSchedule for details on how to use this API operation.
2947//
2948// The context must be non-nil and will be used for request cancellation. If
2949// the context is nil a panic will occur. In the future the SDK may create
2950// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2951// for more information on using Contexts.
2952func (c *StorageGateway) DescribeBandwidthRateLimitScheduleWithContext(ctx aws.Context, input *DescribeBandwidthRateLimitScheduleInput, opts ...request.Option) (*DescribeBandwidthRateLimitScheduleOutput, error) {
2953	req, out := c.DescribeBandwidthRateLimitScheduleRequest(input)
2954	req.SetContext(ctx)
2955	req.ApplyOptions(opts...)
2956	return out, req.Send()
2957}
2958
2959const opDescribeCache = "DescribeCache"
2960
2961// DescribeCacheRequest generates a "aws/request.Request" representing the
2962// client's request for the DescribeCache operation. The "output" return
2963// value will be populated with the request's response once the request completes
2964// successfully.
2965//
2966// Use "Send" method on the returned Request to send the API call to the service.
2967// the "output" return value is not valid until after Send returns without error.
2968//
2969// See DescribeCache for more information on using the DescribeCache
2970// API call, and error handling.
2971//
2972// This method is useful when you want to inject custom logic or configuration
2973// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2974//
2975//
2976//    // Example sending a request using the DescribeCacheRequest method.
2977//    req, resp := client.DescribeCacheRequest(params)
2978//
2979//    err := req.Send()
2980//    if err == nil { // resp is now filled
2981//        fmt.Println(resp)
2982//    }
2983//
2984// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCache
2985func (c *StorageGateway) DescribeCacheRequest(input *DescribeCacheInput) (req *request.Request, output *DescribeCacheOutput) {
2986	op := &request.Operation{
2987		Name:       opDescribeCache,
2988		HTTPMethod: "POST",
2989		HTTPPath:   "/",
2990	}
2991
2992	if input == nil {
2993		input = &DescribeCacheInput{}
2994	}
2995
2996	output = &DescribeCacheOutput{}
2997	req = c.newRequest(op, input, output)
2998	return
2999}
3000
3001// DescribeCache API operation for AWS Storage Gateway.
3002//
3003// Returns information about the cache of a gateway. This operation is only
3004// supported in the cached volume, tape, and file gateway types.
3005//
3006// The response includes disk IDs that are configured as cache, and it includes
3007// the amount of cache allocated and used.
3008//
3009// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3010// with awserr.Error's Code and Message methods to get detailed information about
3011// the error.
3012//
3013// See the AWS API reference guide for AWS Storage Gateway's
3014// API operation DescribeCache for usage and error information.
3015//
3016// Returned Error Types:
3017//   * InvalidGatewayRequestException
3018//   An exception occurred because an invalid gateway request was issued to the
3019//   service. For more information, see the error and message fields.
3020//
3021//   * InternalServerError
3022//   An internal server error has occurred during the request. For more information,
3023//   see the error and message fields.
3024//
3025// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCache
3026func (c *StorageGateway) DescribeCache(input *DescribeCacheInput) (*DescribeCacheOutput, error) {
3027	req, out := c.DescribeCacheRequest(input)
3028	return out, req.Send()
3029}
3030
3031// DescribeCacheWithContext is the same as DescribeCache with the addition of
3032// the ability to pass a context and additional request options.
3033//
3034// See DescribeCache for details on how to use this API operation.
3035//
3036// The context must be non-nil and will be used for request cancellation. If
3037// the context is nil a panic will occur. In the future the SDK may create
3038// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3039// for more information on using Contexts.
3040func (c *StorageGateway) DescribeCacheWithContext(ctx aws.Context, input *DescribeCacheInput, opts ...request.Option) (*DescribeCacheOutput, error) {
3041	req, out := c.DescribeCacheRequest(input)
3042	req.SetContext(ctx)
3043	req.ApplyOptions(opts...)
3044	return out, req.Send()
3045}
3046
3047const opDescribeCachediSCSIVolumes = "DescribeCachediSCSIVolumes"
3048
3049// DescribeCachediSCSIVolumesRequest generates a "aws/request.Request" representing the
3050// client's request for the DescribeCachediSCSIVolumes operation. The "output" return
3051// value will be populated with the request's response once the request completes
3052// successfully.
3053//
3054// Use "Send" method on the returned Request to send the API call to the service.
3055// the "output" return value is not valid until after Send returns without error.
3056//
3057// See DescribeCachediSCSIVolumes for more information on using the DescribeCachediSCSIVolumes
3058// API call, and error handling.
3059//
3060// This method is useful when you want to inject custom logic or configuration
3061// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3062//
3063//
3064//    // Example sending a request using the DescribeCachediSCSIVolumesRequest method.
3065//    req, resp := client.DescribeCachediSCSIVolumesRequest(params)
3066//
3067//    err := req.Send()
3068//    if err == nil { // resp is now filled
3069//        fmt.Println(resp)
3070//    }
3071//
3072// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCachediSCSIVolumes
3073func (c *StorageGateway) DescribeCachediSCSIVolumesRequest(input *DescribeCachediSCSIVolumesInput) (req *request.Request, output *DescribeCachediSCSIVolumesOutput) {
3074	op := &request.Operation{
3075		Name:       opDescribeCachediSCSIVolumes,
3076		HTTPMethod: "POST",
3077		HTTPPath:   "/",
3078	}
3079
3080	if input == nil {
3081		input = &DescribeCachediSCSIVolumesInput{}
3082	}
3083
3084	output = &DescribeCachediSCSIVolumesOutput{}
3085	req = c.newRequest(op, input, output)
3086	return
3087}
3088
3089// DescribeCachediSCSIVolumes API operation for AWS Storage Gateway.
3090//
3091// Returns a description of the gateway volumes specified in the request. This
3092// operation is only supported in the cached volume gateway types.
3093//
3094// The list of gateway volumes in the request must be from one gateway. In the
3095// response, AWS Storage Gateway returns volume information sorted by volume
3096// Amazon Resource Name (ARN).
3097//
3098// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3099// with awserr.Error's Code and Message methods to get detailed information about
3100// the error.
3101//
3102// See the AWS API reference guide for AWS Storage Gateway's
3103// API operation DescribeCachediSCSIVolumes for usage and error information.
3104//
3105// Returned Error Types:
3106//   * InvalidGatewayRequestException
3107//   An exception occurred because an invalid gateway request was issued to the
3108//   service. For more information, see the error and message fields.
3109//
3110//   * InternalServerError
3111//   An internal server error has occurred during the request. For more information,
3112//   see the error and message fields.
3113//
3114// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCachediSCSIVolumes
3115func (c *StorageGateway) DescribeCachediSCSIVolumes(input *DescribeCachediSCSIVolumesInput) (*DescribeCachediSCSIVolumesOutput, error) {
3116	req, out := c.DescribeCachediSCSIVolumesRequest(input)
3117	return out, req.Send()
3118}
3119
3120// DescribeCachediSCSIVolumesWithContext is the same as DescribeCachediSCSIVolumes with the addition of
3121// the ability to pass a context and additional request options.
3122//
3123// See DescribeCachediSCSIVolumes for details on how to use this API operation.
3124//
3125// The context must be non-nil and will be used for request cancellation. If
3126// the context is nil a panic will occur. In the future the SDK may create
3127// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3128// for more information on using Contexts.
3129func (c *StorageGateway) DescribeCachediSCSIVolumesWithContext(ctx aws.Context, input *DescribeCachediSCSIVolumesInput, opts ...request.Option) (*DescribeCachediSCSIVolumesOutput, error) {
3130	req, out := c.DescribeCachediSCSIVolumesRequest(input)
3131	req.SetContext(ctx)
3132	req.ApplyOptions(opts...)
3133	return out, req.Send()
3134}
3135
3136const opDescribeChapCredentials = "DescribeChapCredentials"
3137
3138// DescribeChapCredentialsRequest generates a "aws/request.Request" representing the
3139// client's request for the DescribeChapCredentials operation. The "output" return
3140// value will be populated with the request's response once the request completes
3141// successfully.
3142//
3143// Use "Send" method on the returned Request to send the API call to the service.
3144// the "output" return value is not valid until after Send returns without error.
3145//
3146// See DescribeChapCredentials for more information on using the DescribeChapCredentials
3147// API call, and error handling.
3148//
3149// This method is useful when you want to inject custom logic or configuration
3150// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3151//
3152//
3153//    // Example sending a request using the DescribeChapCredentialsRequest method.
3154//    req, resp := client.DescribeChapCredentialsRequest(params)
3155//
3156//    err := req.Send()
3157//    if err == nil { // resp is now filled
3158//        fmt.Println(resp)
3159//    }
3160//
3161// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeChapCredentials
3162func (c *StorageGateway) DescribeChapCredentialsRequest(input *DescribeChapCredentialsInput) (req *request.Request, output *DescribeChapCredentialsOutput) {
3163	op := &request.Operation{
3164		Name:       opDescribeChapCredentials,
3165		HTTPMethod: "POST",
3166		HTTPPath:   "/",
3167	}
3168
3169	if input == nil {
3170		input = &DescribeChapCredentialsInput{}
3171	}
3172
3173	output = &DescribeChapCredentialsOutput{}
3174	req = c.newRequest(op, input, output)
3175	return
3176}
3177
3178// DescribeChapCredentials API operation for AWS Storage Gateway.
3179//
3180// Returns an array of Challenge-Handshake Authentication Protocol (CHAP) credentials
3181// information for a specified iSCSI target, one for each target-initiator pair.
3182// This operation is supported in the volume and tape gateway types.
3183//
3184// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3185// with awserr.Error's Code and Message methods to get detailed information about
3186// the error.
3187//
3188// See the AWS API reference guide for AWS Storage Gateway's
3189// API operation DescribeChapCredentials for usage and error information.
3190//
3191// Returned Error Types:
3192//   * InvalidGatewayRequestException
3193//   An exception occurred because an invalid gateway request was issued to the
3194//   service. For more information, see the error and message fields.
3195//
3196//   * InternalServerError
3197//   An internal server error has occurred during the request. For more information,
3198//   see the error and message fields.
3199//
3200// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeChapCredentials
3201func (c *StorageGateway) DescribeChapCredentials(input *DescribeChapCredentialsInput) (*DescribeChapCredentialsOutput, error) {
3202	req, out := c.DescribeChapCredentialsRequest(input)
3203	return out, req.Send()
3204}
3205
3206// DescribeChapCredentialsWithContext is the same as DescribeChapCredentials with the addition of
3207// the ability to pass a context and additional request options.
3208//
3209// See DescribeChapCredentials for details on how to use this API operation.
3210//
3211// The context must be non-nil and will be used for request cancellation. If
3212// the context is nil a panic will occur. In the future the SDK may create
3213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3214// for more information on using Contexts.
3215func (c *StorageGateway) DescribeChapCredentialsWithContext(ctx aws.Context, input *DescribeChapCredentialsInput, opts ...request.Option) (*DescribeChapCredentialsOutput, error) {
3216	req, out := c.DescribeChapCredentialsRequest(input)
3217	req.SetContext(ctx)
3218	req.ApplyOptions(opts...)
3219	return out, req.Send()
3220}
3221
3222const opDescribeFileSystemAssociations = "DescribeFileSystemAssociations"
3223
3224// DescribeFileSystemAssociationsRequest generates a "aws/request.Request" representing the
3225// client's request for the DescribeFileSystemAssociations operation. The "output" return
3226// value will be populated with the request's response once the request completes
3227// successfully.
3228//
3229// Use "Send" method on the returned Request to send the API call to the service.
3230// the "output" return value is not valid until after Send returns without error.
3231//
3232// See DescribeFileSystemAssociations for more information on using the DescribeFileSystemAssociations
3233// API call, and error handling.
3234//
3235// This method is useful when you want to inject custom logic or configuration
3236// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3237//
3238//
3239//    // Example sending a request using the DescribeFileSystemAssociationsRequest method.
3240//    req, resp := client.DescribeFileSystemAssociationsRequest(params)
3241//
3242//    err := req.Send()
3243//    if err == nil { // resp is now filled
3244//        fmt.Println(resp)
3245//    }
3246//
3247// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeFileSystemAssociations
3248func (c *StorageGateway) DescribeFileSystemAssociationsRequest(input *DescribeFileSystemAssociationsInput) (req *request.Request, output *DescribeFileSystemAssociationsOutput) {
3249	op := &request.Operation{
3250		Name:       opDescribeFileSystemAssociations,
3251		HTTPMethod: "POST",
3252		HTTPPath:   "/",
3253	}
3254
3255	if input == nil {
3256		input = &DescribeFileSystemAssociationsInput{}
3257	}
3258
3259	output = &DescribeFileSystemAssociationsOutput{}
3260	req = c.newRequest(op, input, output)
3261	return
3262}
3263
3264// DescribeFileSystemAssociations API operation for AWS Storage Gateway.
3265//
3266// Gets the file system association information. This operation is only supported
3267// for Amazon FSx file gateways.
3268//
3269// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3270// with awserr.Error's Code and Message methods to get detailed information about
3271// the error.
3272//
3273// See the AWS API reference guide for AWS Storage Gateway's
3274// API operation DescribeFileSystemAssociations for usage and error information.
3275//
3276// Returned Error Types:
3277//   * InvalidGatewayRequestException
3278//   An exception occurred because an invalid gateway request was issued to the
3279//   service. For more information, see the error and message fields.
3280//
3281//   * InternalServerError
3282//   An internal server error has occurred during the request. For more information,
3283//   see the error and message fields.
3284//
3285// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeFileSystemAssociations
3286func (c *StorageGateway) DescribeFileSystemAssociations(input *DescribeFileSystemAssociationsInput) (*DescribeFileSystemAssociationsOutput, error) {
3287	req, out := c.DescribeFileSystemAssociationsRequest(input)
3288	return out, req.Send()
3289}
3290
3291// DescribeFileSystemAssociationsWithContext is the same as DescribeFileSystemAssociations with the addition of
3292// the ability to pass a context and additional request options.
3293//
3294// See DescribeFileSystemAssociations for details on how to use this API operation.
3295//
3296// The context must be non-nil and will be used for request cancellation. If
3297// the context is nil a panic will occur. In the future the SDK may create
3298// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3299// for more information on using Contexts.
3300func (c *StorageGateway) DescribeFileSystemAssociationsWithContext(ctx aws.Context, input *DescribeFileSystemAssociationsInput, opts ...request.Option) (*DescribeFileSystemAssociationsOutput, error) {
3301	req, out := c.DescribeFileSystemAssociationsRequest(input)
3302	req.SetContext(ctx)
3303	req.ApplyOptions(opts...)
3304	return out, req.Send()
3305}
3306
3307const opDescribeGatewayInformation = "DescribeGatewayInformation"
3308
3309// DescribeGatewayInformationRequest generates a "aws/request.Request" representing the
3310// client's request for the DescribeGatewayInformation operation. The "output" return
3311// value will be populated with the request's response once the request completes
3312// successfully.
3313//
3314// Use "Send" method on the returned Request to send the API call to the service.
3315// the "output" return value is not valid until after Send returns without error.
3316//
3317// See DescribeGatewayInformation for more information on using the DescribeGatewayInformation
3318// API call, and error handling.
3319//
3320// This method is useful when you want to inject custom logic or configuration
3321// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3322//
3323//
3324//    // Example sending a request using the DescribeGatewayInformationRequest method.
3325//    req, resp := client.DescribeGatewayInformationRequest(params)
3326//
3327//    err := req.Send()
3328//    if err == nil { // resp is now filled
3329//        fmt.Println(resp)
3330//    }
3331//
3332// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeGatewayInformation
3333func (c *StorageGateway) DescribeGatewayInformationRequest(input *DescribeGatewayInformationInput) (req *request.Request, output *DescribeGatewayInformationOutput) {
3334	op := &request.Operation{
3335		Name:       opDescribeGatewayInformation,
3336		HTTPMethod: "POST",
3337		HTTPPath:   "/",
3338	}
3339
3340	if input == nil {
3341		input = &DescribeGatewayInformationInput{}
3342	}
3343
3344	output = &DescribeGatewayInformationOutput{}
3345	req = c.newRequest(op, input, output)
3346	return
3347}
3348
3349// DescribeGatewayInformation API operation for AWS Storage Gateway.
3350//
3351// Returns metadata about a gateway such as its name, network interfaces, configured
3352// time zone, and the state (whether the gateway is running or not). To specify
3353// which gateway to describe, use the Amazon Resource Name (ARN) of the gateway
3354// in your request.
3355//
3356// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3357// with awserr.Error's Code and Message methods to get detailed information about
3358// the error.
3359//
3360// See the AWS API reference guide for AWS Storage Gateway's
3361// API operation DescribeGatewayInformation for usage and error information.
3362//
3363// Returned Error Types:
3364//   * InvalidGatewayRequestException
3365//   An exception occurred because an invalid gateway request was issued to the
3366//   service. For more information, see the error and message fields.
3367//
3368//   * InternalServerError
3369//   An internal server error has occurred during the request. For more information,
3370//   see the error and message fields.
3371//
3372// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeGatewayInformation
3373func (c *StorageGateway) DescribeGatewayInformation(input *DescribeGatewayInformationInput) (*DescribeGatewayInformationOutput, error) {
3374	req, out := c.DescribeGatewayInformationRequest(input)
3375	return out, req.Send()
3376}
3377
3378// DescribeGatewayInformationWithContext is the same as DescribeGatewayInformation with the addition of
3379// the ability to pass a context and additional request options.
3380//
3381// See DescribeGatewayInformation for details on how to use this API operation.
3382//
3383// The context must be non-nil and will be used for request cancellation. If
3384// the context is nil a panic will occur. In the future the SDK may create
3385// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3386// for more information on using Contexts.
3387func (c *StorageGateway) DescribeGatewayInformationWithContext(ctx aws.Context, input *DescribeGatewayInformationInput, opts ...request.Option) (*DescribeGatewayInformationOutput, error) {
3388	req, out := c.DescribeGatewayInformationRequest(input)
3389	req.SetContext(ctx)
3390	req.ApplyOptions(opts...)
3391	return out, req.Send()
3392}
3393
3394const opDescribeMaintenanceStartTime = "DescribeMaintenanceStartTime"
3395
3396// DescribeMaintenanceStartTimeRequest generates a "aws/request.Request" representing the
3397// client's request for the DescribeMaintenanceStartTime operation. The "output" return
3398// value will be populated with the request's response once the request completes
3399// successfully.
3400//
3401// Use "Send" method on the returned Request to send the API call to the service.
3402// the "output" return value is not valid until after Send returns without error.
3403//
3404// See DescribeMaintenanceStartTime for more information on using the DescribeMaintenanceStartTime
3405// API call, and error handling.
3406//
3407// This method is useful when you want to inject custom logic or configuration
3408// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3409//
3410//
3411//    // Example sending a request using the DescribeMaintenanceStartTimeRequest method.
3412//    req, resp := client.DescribeMaintenanceStartTimeRequest(params)
3413//
3414//    err := req.Send()
3415//    if err == nil { // resp is now filled
3416//        fmt.Println(resp)
3417//    }
3418//
3419// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeMaintenanceStartTime
3420func (c *StorageGateway) DescribeMaintenanceStartTimeRequest(input *DescribeMaintenanceStartTimeInput) (req *request.Request, output *DescribeMaintenanceStartTimeOutput) {
3421	op := &request.Operation{
3422		Name:       opDescribeMaintenanceStartTime,
3423		HTTPMethod: "POST",
3424		HTTPPath:   "/",
3425	}
3426
3427	if input == nil {
3428		input = &DescribeMaintenanceStartTimeInput{}
3429	}
3430
3431	output = &DescribeMaintenanceStartTimeOutput{}
3432	req = c.newRequest(op, input, output)
3433	return
3434}
3435
3436// DescribeMaintenanceStartTime API operation for AWS Storage Gateway.
3437//
3438// Returns your gateway's weekly maintenance start time including the day and
3439// time of the week. Note that values are in terms of the gateway's time zone.
3440//
3441// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3442// with awserr.Error's Code and Message methods to get detailed information about
3443// the error.
3444//
3445// See the AWS API reference guide for AWS Storage Gateway's
3446// API operation DescribeMaintenanceStartTime for usage and error information.
3447//
3448// Returned Error Types:
3449//   * InvalidGatewayRequestException
3450//   An exception occurred because an invalid gateway request was issued to the
3451//   service. For more information, see the error and message fields.
3452//
3453//   * InternalServerError
3454//   An internal server error has occurred during the request. For more information,
3455//   see the error and message fields.
3456//
3457// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeMaintenanceStartTime
3458func (c *StorageGateway) DescribeMaintenanceStartTime(input *DescribeMaintenanceStartTimeInput) (*DescribeMaintenanceStartTimeOutput, error) {
3459	req, out := c.DescribeMaintenanceStartTimeRequest(input)
3460	return out, req.Send()
3461}
3462
3463// DescribeMaintenanceStartTimeWithContext is the same as DescribeMaintenanceStartTime with the addition of
3464// the ability to pass a context and additional request options.
3465//
3466// See DescribeMaintenanceStartTime for details on how to use this API operation.
3467//
3468// The context must be non-nil and will be used for request cancellation. If
3469// the context is nil a panic will occur. In the future the SDK may create
3470// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3471// for more information on using Contexts.
3472func (c *StorageGateway) DescribeMaintenanceStartTimeWithContext(ctx aws.Context, input *DescribeMaintenanceStartTimeInput, opts ...request.Option) (*DescribeMaintenanceStartTimeOutput, error) {
3473	req, out := c.DescribeMaintenanceStartTimeRequest(input)
3474	req.SetContext(ctx)
3475	req.ApplyOptions(opts...)
3476	return out, req.Send()
3477}
3478
3479const opDescribeNFSFileShares = "DescribeNFSFileShares"
3480
3481// DescribeNFSFileSharesRequest generates a "aws/request.Request" representing the
3482// client's request for the DescribeNFSFileShares operation. The "output" return
3483// value will be populated with the request's response once the request completes
3484// successfully.
3485//
3486// Use "Send" method on the returned Request to send the API call to the service.
3487// the "output" return value is not valid until after Send returns without error.
3488//
3489// See DescribeNFSFileShares for more information on using the DescribeNFSFileShares
3490// API call, and error handling.
3491//
3492// This method is useful when you want to inject custom logic or configuration
3493// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3494//
3495//
3496//    // Example sending a request using the DescribeNFSFileSharesRequest method.
3497//    req, resp := client.DescribeNFSFileSharesRequest(params)
3498//
3499//    err := req.Send()
3500//    if err == nil { // resp is now filled
3501//        fmt.Println(resp)
3502//    }
3503//
3504// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeNFSFileShares
3505func (c *StorageGateway) DescribeNFSFileSharesRequest(input *DescribeNFSFileSharesInput) (req *request.Request, output *DescribeNFSFileSharesOutput) {
3506	op := &request.Operation{
3507		Name:       opDescribeNFSFileShares,
3508		HTTPMethod: "POST",
3509		HTTPPath:   "/",
3510	}
3511
3512	if input == nil {
3513		input = &DescribeNFSFileSharesInput{}
3514	}
3515
3516	output = &DescribeNFSFileSharesOutput{}
3517	req = c.newRequest(op, input, output)
3518	return
3519}
3520
3521// DescribeNFSFileShares API operation for AWS Storage Gateway.
3522//
3523// Gets a description for one or more Network File System (NFS) file shares
3524// from a file gateway. This operation is only supported for file gateways.
3525//
3526// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3527// with awserr.Error's Code and Message methods to get detailed information about
3528// the error.
3529//
3530// See the AWS API reference guide for AWS Storage Gateway's
3531// API operation DescribeNFSFileShares for usage and error information.
3532//
3533// Returned Error Types:
3534//   * InvalidGatewayRequestException
3535//   An exception occurred because an invalid gateway request was issued to the
3536//   service. For more information, see the error and message fields.
3537//
3538//   * InternalServerError
3539//   An internal server error has occurred during the request. For more information,
3540//   see the error and message fields.
3541//
3542// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeNFSFileShares
3543func (c *StorageGateway) DescribeNFSFileShares(input *DescribeNFSFileSharesInput) (*DescribeNFSFileSharesOutput, error) {
3544	req, out := c.DescribeNFSFileSharesRequest(input)
3545	return out, req.Send()
3546}
3547
3548// DescribeNFSFileSharesWithContext is the same as DescribeNFSFileShares with the addition of
3549// the ability to pass a context and additional request options.
3550//
3551// See DescribeNFSFileShares for details on how to use this API operation.
3552//
3553// The context must be non-nil and will be used for request cancellation. If
3554// the context is nil a panic will occur. In the future the SDK may create
3555// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3556// for more information on using Contexts.
3557func (c *StorageGateway) DescribeNFSFileSharesWithContext(ctx aws.Context, input *DescribeNFSFileSharesInput, opts ...request.Option) (*DescribeNFSFileSharesOutput, error) {
3558	req, out := c.DescribeNFSFileSharesRequest(input)
3559	req.SetContext(ctx)
3560	req.ApplyOptions(opts...)
3561	return out, req.Send()
3562}
3563
3564const opDescribeSMBFileShares = "DescribeSMBFileShares"
3565
3566// DescribeSMBFileSharesRequest generates a "aws/request.Request" representing the
3567// client's request for the DescribeSMBFileShares operation. The "output" return
3568// value will be populated with the request's response once the request completes
3569// successfully.
3570//
3571// Use "Send" method on the returned Request to send the API call to the service.
3572// the "output" return value is not valid until after Send returns without error.
3573//
3574// See DescribeSMBFileShares for more information on using the DescribeSMBFileShares
3575// API call, and error handling.
3576//
3577// This method is useful when you want to inject custom logic or configuration
3578// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3579//
3580//
3581//    // Example sending a request using the DescribeSMBFileSharesRequest method.
3582//    req, resp := client.DescribeSMBFileSharesRequest(params)
3583//
3584//    err := req.Send()
3585//    if err == nil { // resp is now filled
3586//        fmt.Println(resp)
3587//    }
3588//
3589// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBFileShares
3590func (c *StorageGateway) DescribeSMBFileSharesRequest(input *DescribeSMBFileSharesInput) (req *request.Request, output *DescribeSMBFileSharesOutput) {
3591	op := &request.Operation{
3592		Name:       opDescribeSMBFileShares,
3593		HTTPMethod: "POST",
3594		HTTPPath:   "/",
3595	}
3596
3597	if input == nil {
3598		input = &DescribeSMBFileSharesInput{}
3599	}
3600
3601	output = &DescribeSMBFileSharesOutput{}
3602	req = c.newRequest(op, input, output)
3603	return
3604}
3605
3606// DescribeSMBFileShares API operation for AWS Storage Gateway.
3607//
3608// Gets a description for one or more Server Message Block (SMB) file shares
3609// from a file gateway. This operation is only supported for file gateways.
3610//
3611// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3612// with awserr.Error's Code and Message methods to get detailed information about
3613// the error.
3614//
3615// See the AWS API reference guide for AWS Storage Gateway's
3616// API operation DescribeSMBFileShares for usage and error information.
3617//
3618// Returned Error Types:
3619//   * InvalidGatewayRequestException
3620//   An exception occurred because an invalid gateway request was issued to the
3621//   service. For more information, see the error and message fields.
3622//
3623//   * InternalServerError
3624//   An internal server error has occurred during the request. For more information,
3625//   see the error and message fields.
3626//
3627// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBFileShares
3628func (c *StorageGateway) DescribeSMBFileShares(input *DescribeSMBFileSharesInput) (*DescribeSMBFileSharesOutput, error) {
3629	req, out := c.DescribeSMBFileSharesRequest(input)
3630	return out, req.Send()
3631}
3632
3633// DescribeSMBFileSharesWithContext is the same as DescribeSMBFileShares with the addition of
3634// the ability to pass a context and additional request options.
3635//
3636// See DescribeSMBFileShares for details on how to use this API operation.
3637//
3638// The context must be non-nil and will be used for request cancellation. If
3639// the context is nil a panic will occur. In the future the SDK may create
3640// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3641// for more information on using Contexts.
3642func (c *StorageGateway) DescribeSMBFileSharesWithContext(ctx aws.Context, input *DescribeSMBFileSharesInput, opts ...request.Option) (*DescribeSMBFileSharesOutput, error) {
3643	req, out := c.DescribeSMBFileSharesRequest(input)
3644	req.SetContext(ctx)
3645	req.ApplyOptions(opts...)
3646	return out, req.Send()
3647}
3648
3649const opDescribeSMBSettings = "DescribeSMBSettings"
3650
3651// DescribeSMBSettingsRequest generates a "aws/request.Request" representing the
3652// client's request for the DescribeSMBSettings operation. The "output" return
3653// value will be populated with the request's response once the request completes
3654// successfully.
3655//
3656// Use "Send" method on the returned Request to send the API call to the service.
3657// the "output" return value is not valid until after Send returns without error.
3658//
3659// See DescribeSMBSettings for more information on using the DescribeSMBSettings
3660// API call, and error handling.
3661//
3662// This method is useful when you want to inject custom logic or configuration
3663// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3664//
3665//
3666//    // Example sending a request using the DescribeSMBSettingsRequest method.
3667//    req, resp := client.DescribeSMBSettingsRequest(params)
3668//
3669//    err := req.Send()
3670//    if err == nil { // resp is now filled
3671//        fmt.Println(resp)
3672//    }
3673//
3674// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBSettings
3675func (c *StorageGateway) DescribeSMBSettingsRequest(input *DescribeSMBSettingsInput) (req *request.Request, output *DescribeSMBSettingsOutput) {
3676	op := &request.Operation{
3677		Name:       opDescribeSMBSettings,
3678		HTTPMethod: "POST",
3679		HTTPPath:   "/",
3680	}
3681
3682	if input == nil {
3683		input = &DescribeSMBSettingsInput{}
3684	}
3685
3686	output = &DescribeSMBSettingsOutput{}
3687	req = c.newRequest(op, input, output)
3688	return
3689}
3690
3691// DescribeSMBSettings API operation for AWS Storage Gateway.
3692//
3693// Gets a description of a Server Message Block (SMB) file share settings from
3694// a file gateway. This operation is only supported for file gateways.
3695//
3696// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3697// with awserr.Error's Code and Message methods to get detailed information about
3698// the error.
3699//
3700// See the AWS API reference guide for AWS Storage Gateway's
3701// API operation DescribeSMBSettings for usage and error information.
3702//
3703// Returned Error Types:
3704//   * InvalidGatewayRequestException
3705//   An exception occurred because an invalid gateway request was issued to the
3706//   service. For more information, see the error and message fields.
3707//
3708//   * InternalServerError
3709//   An internal server error has occurred during the request. For more information,
3710//   see the error and message fields.
3711//
3712// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBSettings
3713func (c *StorageGateway) DescribeSMBSettings(input *DescribeSMBSettingsInput) (*DescribeSMBSettingsOutput, error) {
3714	req, out := c.DescribeSMBSettingsRequest(input)
3715	return out, req.Send()
3716}
3717
3718// DescribeSMBSettingsWithContext is the same as DescribeSMBSettings with the addition of
3719// the ability to pass a context and additional request options.
3720//
3721// See DescribeSMBSettings for details on how to use this API operation.
3722//
3723// The context must be non-nil and will be used for request cancellation. If
3724// the context is nil a panic will occur. In the future the SDK may create
3725// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3726// for more information on using Contexts.
3727func (c *StorageGateway) DescribeSMBSettingsWithContext(ctx aws.Context, input *DescribeSMBSettingsInput, opts ...request.Option) (*DescribeSMBSettingsOutput, error) {
3728	req, out := c.DescribeSMBSettingsRequest(input)
3729	req.SetContext(ctx)
3730	req.ApplyOptions(opts...)
3731	return out, req.Send()
3732}
3733
3734const opDescribeSnapshotSchedule = "DescribeSnapshotSchedule"
3735
3736// DescribeSnapshotScheduleRequest generates a "aws/request.Request" representing the
3737// client's request for the DescribeSnapshotSchedule operation. The "output" return
3738// value will be populated with the request's response once the request completes
3739// successfully.
3740//
3741// Use "Send" method on the returned Request to send the API call to the service.
3742// the "output" return value is not valid until after Send returns without error.
3743//
3744// See DescribeSnapshotSchedule for more information on using the DescribeSnapshotSchedule
3745// API call, and error handling.
3746//
3747// This method is useful when you want to inject custom logic or configuration
3748// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3749//
3750//
3751//    // Example sending a request using the DescribeSnapshotScheduleRequest method.
3752//    req, resp := client.DescribeSnapshotScheduleRequest(params)
3753//
3754//    err := req.Send()
3755//    if err == nil { // resp is now filled
3756//        fmt.Println(resp)
3757//    }
3758//
3759// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSnapshotSchedule
3760func (c *StorageGateway) DescribeSnapshotScheduleRequest(input *DescribeSnapshotScheduleInput) (req *request.Request, output *DescribeSnapshotScheduleOutput) {
3761	op := &request.Operation{
3762		Name:       opDescribeSnapshotSchedule,
3763		HTTPMethod: "POST",
3764		HTTPPath:   "/",
3765	}
3766
3767	if input == nil {
3768		input = &DescribeSnapshotScheduleInput{}
3769	}
3770
3771	output = &DescribeSnapshotScheduleOutput{}
3772	req = c.newRequest(op, input, output)
3773	return
3774}
3775
3776// DescribeSnapshotSchedule API operation for AWS Storage Gateway.
3777//
3778// Describes the snapshot schedule for the specified gateway volume. The snapshot
3779// schedule information includes intervals at which snapshots are automatically
3780// initiated on the volume. This operation is only supported in the cached volume
3781// and stored volume types.
3782//
3783// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3784// with awserr.Error's Code and Message methods to get detailed information about
3785// the error.
3786//
3787// See the AWS API reference guide for AWS Storage Gateway's
3788// API operation DescribeSnapshotSchedule for usage and error information.
3789//
3790// Returned Error Types:
3791//   * InvalidGatewayRequestException
3792//   An exception occurred because an invalid gateway request was issued to the
3793//   service. For more information, see the error and message fields.
3794//
3795//   * InternalServerError
3796//   An internal server error has occurred during the request. For more information,
3797//   see the error and message fields.
3798//
3799// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSnapshotSchedule
3800func (c *StorageGateway) DescribeSnapshotSchedule(input *DescribeSnapshotScheduleInput) (*DescribeSnapshotScheduleOutput, error) {
3801	req, out := c.DescribeSnapshotScheduleRequest(input)
3802	return out, req.Send()
3803}
3804
3805// DescribeSnapshotScheduleWithContext is the same as DescribeSnapshotSchedule with the addition of
3806// the ability to pass a context and additional request options.
3807//
3808// See DescribeSnapshotSchedule for details on how to use this API operation.
3809//
3810// The context must be non-nil and will be used for request cancellation. If
3811// the context is nil a panic will occur. In the future the SDK may create
3812// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3813// for more information on using Contexts.
3814func (c *StorageGateway) DescribeSnapshotScheduleWithContext(ctx aws.Context, input *DescribeSnapshotScheduleInput, opts ...request.Option) (*DescribeSnapshotScheduleOutput, error) {
3815	req, out := c.DescribeSnapshotScheduleRequest(input)
3816	req.SetContext(ctx)
3817	req.ApplyOptions(opts...)
3818	return out, req.Send()
3819}
3820
3821const opDescribeStorediSCSIVolumes = "DescribeStorediSCSIVolumes"
3822
3823// DescribeStorediSCSIVolumesRequest generates a "aws/request.Request" representing the
3824// client's request for the DescribeStorediSCSIVolumes operation. The "output" return
3825// value will be populated with the request's response once the request completes
3826// successfully.
3827//
3828// Use "Send" method on the returned Request to send the API call to the service.
3829// the "output" return value is not valid until after Send returns without error.
3830//
3831// See DescribeStorediSCSIVolumes for more information on using the DescribeStorediSCSIVolumes
3832// API call, and error handling.
3833//
3834// This method is useful when you want to inject custom logic or configuration
3835// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3836//
3837//
3838//    // Example sending a request using the DescribeStorediSCSIVolumesRequest method.
3839//    req, resp := client.DescribeStorediSCSIVolumesRequest(params)
3840//
3841//    err := req.Send()
3842//    if err == nil { // resp is now filled
3843//        fmt.Println(resp)
3844//    }
3845//
3846// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeStorediSCSIVolumes
3847func (c *StorageGateway) DescribeStorediSCSIVolumesRequest(input *DescribeStorediSCSIVolumesInput) (req *request.Request, output *DescribeStorediSCSIVolumesOutput) {
3848	op := &request.Operation{
3849		Name:       opDescribeStorediSCSIVolumes,
3850		HTTPMethod: "POST",
3851		HTTPPath:   "/",
3852	}
3853
3854	if input == nil {
3855		input = &DescribeStorediSCSIVolumesInput{}
3856	}
3857
3858	output = &DescribeStorediSCSIVolumesOutput{}
3859	req = c.newRequest(op, input, output)
3860	return
3861}
3862
3863// DescribeStorediSCSIVolumes API operation for AWS Storage Gateway.
3864//
3865// Returns the description of the gateway volumes specified in the request.
3866// The list of gateway volumes in the request must be from one gateway. In the
3867// response, AWS Storage Gateway returns volume information sorted by volume
3868// ARNs. This operation is only supported in stored volume gateway type.
3869//
3870// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3871// with awserr.Error's Code and Message methods to get detailed information about
3872// the error.
3873//
3874// See the AWS API reference guide for AWS Storage Gateway's
3875// API operation DescribeStorediSCSIVolumes for usage and error information.
3876//
3877// Returned Error Types:
3878//   * InvalidGatewayRequestException
3879//   An exception occurred because an invalid gateway request was issued to the
3880//   service. For more information, see the error and message fields.
3881//
3882//   * InternalServerError
3883//   An internal server error has occurred during the request. For more information,
3884//   see the error and message fields.
3885//
3886// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeStorediSCSIVolumes
3887func (c *StorageGateway) DescribeStorediSCSIVolumes(input *DescribeStorediSCSIVolumesInput) (*DescribeStorediSCSIVolumesOutput, error) {
3888	req, out := c.DescribeStorediSCSIVolumesRequest(input)
3889	return out, req.Send()
3890}
3891
3892// DescribeStorediSCSIVolumesWithContext is the same as DescribeStorediSCSIVolumes with the addition of
3893// the ability to pass a context and additional request options.
3894//
3895// See DescribeStorediSCSIVolumes for details on how to use this API operation.
3896//
3897// The context must be non-nil and will be used for request cancellation. If
3898// the context is nil a panic will occur. In the future the SDK may create
3899// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3900// for more information on using Contexts.
3901func (c *StorageGateway) DescribeStorediSCSIVolumesWithContext(ctx aws.Context, input *DescribeStorediSCSIVolumesInput, opts ...request.Option) (*DescribeStorediSCSIVolumesOutput, error) {
3902	req, out := c.DescribeStorediSCSIVolumesRequest(input)
3903	req.SetContext(ctx)
3904	req.ApplyOptions(opts...)
3905	return out, req.Send()
3906}
3907
3908const opDescribeTapeArchives = "DescribeTapeArchives"
3909
3910// DescribeTapeArchivesRequest generates a "aws/request.Request" representing the
3911// client's request for the DescribeTapeArchives operation. The "output" return
3912// value will be populated with the request's response once the request completes
3913// successfully.
3914//
3915// Use "Send" method on the returned Request to send the API call to the service.
3916// the "output" return value is not valid until after Send returns without error.
3917//
3918// See DescribeTapeArchives for more information on using the DescribeTapeArchives
3919// API call, and error handling.
3920//
3921// This method is useful when you want to inject custom logic or configuration
3922// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3923//
3924//
3925//    // Example sending a request using the DescribeTapeArchivesRequest method.
3926//    req, resp := client.DescribeTapeArchivesRequest(params)
3927//
3928//    err := req.Send()
3929//    if err == nil { // resp is now filled
3930//        fmt.Println(resp)
3931//    }
3932//
3933// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeArchives
3934func (c *StorageGateway) DescribeTapeArchivesRequest(input *DescribeTapeArchivesInput) (req *request.Request, output *DescribeTapeArchivesOutput) {
3935	op := &request.Operation{
3936		Name:       opDescribeTapeArchives,
3937		HTTPMethod: "POST",
3938		HTTPPath:   "/",
3939		Paginator: &request.Paginator{
3940			InputTokens:     []string{"Marker"},
3941			OutputTokens:    []string{"Marker"},
3942			LimitToken:      "Limit",
3943			TruncationToken: "",
3944		},
3945	}
3946
3947	if input == nil {
3948		input = &DescribeTapeArchivesInput{}
3949	}
3950
3951	output = &DescribeTapeArchivesOutput{}
3952	req = c.newRequest(op, input, output)
3953	return
3954}
3955
3956// DescribeTapeArchives API operation for AWS Storage Gateway.
3957//
3958// Returns a description of specified virtual tapes in the virtual tape shelf
3959// (VTS). This operation is only supported in the tape gateway type.
3960//
3961// If a specific TapeARN is not specified, AWS Storage Gateway returns a description
3962// of all virtual tapes found in the VTS associated with your account.
3963//
3964// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3965// with awserr.Error's Code and Message methods to get detailed information about
3966// the error.
3967//
3968// See the AWS API reference guide for AWS Storage Gateway's
3969// API operation DescribeTapeArchives for usage and error information.
3970//
3971// Returned Error Types:
3972//   * InvalidGatewayRequestException
3973//   An exception occurred because an invalid gateway request was issued to the
3974//   service. For more information, see the error and message fields.
3975//
3976//   * InternalServerError
3977//   An internal server error has occurred during the request. For more information,
3978//   see the error and message fields.
3979//
3980// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeArchives
3981func (c *StorageGateway) DescribeTapeArchives(input *DescribeTapeArchivesInput) (*DescribeTapeArchivesOutput, error) {
3982	req, out := c.DescribeTapeArchivesRequest(input)
3983	return out, req.Send()
3984}
3985
3986// DescribeTapeArchivesWithContext is the same as DescribeTapeArchives with the addition of
3987// the ability to pass a context and additional request options.
3988//
3989// See DescribeTapeArchives for details on how to use this API operation.
3990//
3991// The context must be non-nil and will be used for request cancellation. If
3992// the context is nil a panic will occur. In the future the SDK may create
3993// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3994// for more information on using Contexts.
3995func (c *StorageGateway) DescribeTapeArchivesWithContext(ctx aws.Context, input *DescribeTapeArchivesInput, opts ...request.Option) (*DescribeTapeArchivesOutput, error) {
3996	req, out := c.DescribeTapeArchivesRequest(input)
3997	req.SetContext(ctx)
3998	req.ApplyOptions(opts...)
3999	return out, req.Send()
4000}
4001
4002// DescribeTapeArchivesPages iterates over the pages of a DescribeTapeArchives operation,
4003// calling the "fn" function with the response data for each page. To stop
4004// iterating, return false from the fn function.
4005//
4006// See DescribeTapeArchives method for more information on how to use this operation.
4007//
4008// Note: This operation can generate multiple requests to a service.
4009//
4010//    // Example iterating over at most 3 pages of a DescribeTapeArchives operation.
4011//    pageNum := 0
4012//    err := client.DescribeTapeArchivesPages(params,
4013//        func(page *storagegateway.DescribeTapeArchivesOutput, lastPage bool) bool {
4014//            pageNum++
4015//            fmt.Println(page)
4016//            return pageNum <= 3
4017//        })
4018//
4019func (c *StorageGateway) DescribeTapeArchivesPages(input *DescribeTapeArchivesInput, fn func(*DescribeTapeArchivesOutput, bool) bool) error {
4020	return c.DescribeTapeArchivesPagesWithContext(aws.BackgroundContext(), input, fn)
4021}
4022
4023// DescribeTapeArchivesPagesWithContext same as DescribeTapeArchivesPages except
4024// it takes a Context and allows setting request options on the pages.
4025//
4026// The context must be non-nil and will be used for request cancellation. If
4027// the context is nil a panic will occur. In the future the SDK may create
4028// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4029// for more information on using Contexts.
4030func (c *StorageGateway) DescribeTapeArchivesPagesWithContext(ctx aws.Context, input *DescribeTapeArchivesInput, fn func(*DescribeTapeArchivesOutput, bool) bool, opts ...request.Option) error {
4031	p := request.Pagination{
4032		NewRequest: func() (*request.Request, error) {
4033			var inCpy *DescribeTapeArchivesInput
4034			if input != nil {
4035				tmp := *input
4036				inCpy = &tmp
4037			}
4038			req, _ := c.DescribeTapeArchivesRequest(inCpy)
4039			req.SetContext(ctx)
4040			req.ApplyOptions(opts...)
4041			return req, nil
4042		},
4043	}
4044
4045	for p.Next() {
4046		if !fn(p.Page().(*DescribeTapeArchivesOutput), !p.HasNextPage()) {
4047			break
4048		}
4049	}
4050
4051	return p.Err()
4052}
4053
4054const opDescribeTapeRecoveryPoints = "DescribeTapeRecoveryPoints"
4055
4056// DescribeTapeRecoveryPointsRequest generates a "aws/request.Request" representing the
4057// client's request for the DescribeTapeRecoveryPoints operation. The "output" return
4058// value will be populated with the request's response once the request completes
4059// successfully.
4060//
4061// Use "Send" method on the returned Request to send the API call to the service.
4062// the "output" return value is not valid until after Send returns without error.
4063//
4064// See DescribeTapeRecoveryPoints for more information on using the DescribeTapeRecoveryPoints
4065// API call, and error handling.
4066//
4067// This method is useful when you want to inject custom logic or configuration
4068// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4069//
4070//
4071//    // Example sending a request using the DescribeTapeRecoveryPointsRequest method.
4072//    req, resp := client.DescribeTapeRecoveryPointsRequest(params)
4073//
4074//    err := req.Send()
4075//    if err == nil { // resp is now filled
4076//        fmt.Println(resp)
4077//    }
4078//
4079// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeRecoveryPoints
4080func (c *StorageGateway) DescribeTapeRecoveryPointsRequest(input *DescribeTapeRecoveryPointsInput) (req *request.Request, output *DescribeTapeRecoveryPointsOutput) {
4081	op := &request.Operation{
4082		Name:       opDescribeTapeRecoveryPoints,
4083		HTTPMethod: "POST",
4084		HTTPPath:   "/",
4085		Paginator: &request.Paginator{
4086			InputTokens:     []string{"Marker"},
4087			OutputTokens:    []string{"Marker"},
4088			LimitToken:      "Limit",
4089			TruncationToken: "",
4090		},
4091	}
4092
4093	if input == nil {
4094		input = &DescribeTapeRecoveryPointsInput{}
4095	}
4096
4097	output = &DescribeTapeRecoveryPointsOutput{}
4098	req = c.newRequest(op, input, output)
4099	return
4100}
4101
4102// DescribeTapeRecoveryPoints API operation for AWS Storage Gateway.
4103//
4104// Returns a list of virtual tape recovery points that are available for the
4105// specified tape gateway.
4106//
4107// A recovery point is a point-in-time view of a virtual tape at which all the
4108// data on the virtual tape is consistent. If your gateway crashes, virtual
4109// tapes that have recovery points can be recovered to a new gateway. This operation
4110// is only supported in the tape gateway type.
4111//
4112// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4113// with awserr.Error's Code and Message methods to get detailed information about
4114// the error.
4115//
4116// See the AWS API reference guide for AWS Storage Gateway's
4117// API operation DescribeTapeRecoveryPoints for usage and error information.
4118//
4119// Returned Error Types:
4120//   * InvalidGatewayRequestException
4121//   An exception occurred because an invalid gateway request was issued to the
4122//   service. For more information, see the error and message fields.
4123//
4124//   * InternalServerError
4125//   An internal server error has occurred during the request. For more information,
4126//   see the error and message fields.
4127//
4128// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeRecoveryPoints
4129func (c *StorageGateway) DescribeTapeRecoveryPoints(input *DescribeTapeRecoveryPointsInput) (*DescribeTapeRecoveryPointsOutput, error) {
4130	req, out := c.DescribeTapeRecoveryPointsRequest(input)
4131	return out, req.Send()
4132}
4133
4134// DescribeTapeRecoveryPointsWithContext is the same as DescribeTapeRecoveryPoints with the addition of
4135// the ability to pass a context and additional request options.
4136//
4137// See DescribeTapeRecoveryPoints for details on how to use this API operation.
4138//
4139// The context must be non-nil and will be used for request cancellation. If
4140// the context is nil a panic will occur. In the future the SDK may create
4141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4142// for more information on using Contexts.
4143func (c *StorageGateway) DescribeTapeRecoveryPointsWithContext(ctx aws.Context, input *DescribeTapeRecoveryPointsInput, opts ...request.Option) (*DescribeTapeRecoveryPointsOutput, error) {
4144	req, out := c.DescribeTapeRecoveryPointsRequest(input)
4145	req.SetContext(ctx)
4146	req.ApplyOptions(opts...)
4147	return out, req.Send()
4148}
4149
4150// DescribeTapeRecoveryPointsPages iterates over the pages of a DescribeTapeRecoveryPoints operation,
4151// calling the "fn" function with the response data for each page. To stop
4152// iterating, return false from the fn function.
4153//
4154// See DescribeTapeRecoveryPoints method for more information on how to use this operation.
4155//
4156// Note: This operation can generate multiple requests to a service.
4157//
4158//    // Example iterating over at most 3 pages of a DescribeTapeRecoveryPoints operation.
4159//    pageNum := 0
4160//    err := client.DescribeTapeRecoveryPointsPages(params,
4161//        func(page *storagegateway.DescribeTapeRecoveryPointsOutput, lastPage bool) bool {
4162//            pageNum++
4163//            fmt.Println(page)
4164//            return pageNum <= 3
4165//        })
4166//
4167func (c *StorageGateway) DescribeTapeRecoveryPointsPages(input *DescribeTapeRecoveryPointsInput, fn func(*DescribeTapeRecoveryPointsOutput, bool) bool) error {
4168	return c.DescribeTapeRecoveryPointsPagesWithContext(aws.BackgroundContext(), input, fn)
4169}
4170
4171// DescribeTapeRecoveryPointsPagesWithContext same as DescribeTapeRecoveryPointsPages except
4172// it takes a Context and allows setting request options on the pages.
4173//
4174// The context must be non-nil and will be used for request cancellation. If
4175// the context is nil a panic will occur. In the future the SDK may create
4176// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4177// for more information on using Contexts.
4178func (c *StorageGateway) DescribeTapeRecoveryPointsPagesWithContext(ctx aws.Context, input *DescribeTapeRecoveryPointsInput, fn func(*DescribeTapeRecoveryPointsOutput, bool) bool, opts ...request.Option) error {
4179	p := request.Pagination{
4180		NewRequest: func() (*request.Request, error) {
4181			var inCpy *DescribeTapeRecoveryPointsInput
4182			if input != nil {
4183				tmp := *input
4184				inCpy = &tmp
4185			}
4186			req, _ := c.DescribeTapeRecoveryPointsRequest(inCpy)
4187			req.SetContext(ctx)
4188			req.ApplyOptions(opts...)
4189			return req, nil
4190		},
4191	}
4192
4193	for p.Next() {
4194		if !fn(p.Page().(*DescribeTapeRecoveryPointsOutput), !p.HasNextPage()) {
4195			break
4196		}
4197	}
4198
4199	return p.Err()
4200}
4201
4202const opDescribeTapes = "DescribeTapes"
4203
4204// DescribeTapesRequest generates a "aws/request.Request" representing the
4205// client's request for the DescribeTapes operation. The "output" return
4206// value will be populated with the request's response once the request completes
4207// successfully.
4208//
4209// Use "Send" method on the returned Request to send the API call to the service.
4210// the "output" return value is not valid until after Send returns without error.
4211//
4212// See DescribeTapes for more information on using the DescribeTapes
4213// API call, and error handling.
4214//
4215// This method is useful when you want to inject custom logic or configuration
4216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4217//
4218//
4219//    // Example sending a request using the DescribeTapesRequest method.
4220//    req, resp := client.DescribeTapesRequest(params)
4221//
4222//    err := req.Send()
4223//    if err == nil { // resp is now filled
4224//        fmt.Println(resp)
4225//    }
4226//
4227// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapes
4228func (c *StorageGateway) DescribeTapesRequest(input *DescribeTapesInput) (req *request.Request, output *DescribeTapesOutput) {
4229	op := &request.Operation{
4230		Name:       opDescribeTapes,
4231		HTTPMethod: "POST",
4232		HTTPPath:   "/",
4233		Paginator: &request.Paginator{
4234			InputTokens:     []string{"Marker"},
4235			OutputTokens:    []string{"Marker"},
4236			LimitToken:      "Limit",
4237			TruncationToken: "",
4238		},
4239	}
4240
4241	if input == nil {
4242		input = &DescribeTapesInput{}
4243	}
4244
4245	output = &DescribeTapesOutput{}
4246	req = c.newRequest(op, input, output)
4247	return
4248}
4249
4250// DescribeTapes API operation for AWS Storage Gateway.
4251//
4252// Returns a description of the specified Amazon Resource Name (ARN) of virtual
4253// tapes. If a TapeARN is not specified, returns a description of all virtual
4254// tapes associated with the specified gateway. This operation is only supported
4255// in the tape gateway type.
4256//
4257// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4258// with awserr.Error's Code and Message methods to get detailed information about
4259// the error.
4260//
4261// See the AWS API reference guide for AWS Storage Gateway's
4262// API operation DescribeTapes for usage and error information.
4263//
4264// Returned Error Types:
4265//   * InvalidGatewayRequestException
4266//   An exception occurred because an invalid gateway request was issued to the
4267//   service. For more information, see the error and message fields.
4268//
4269//   * InternalServerError
4270//   An internal server error has occurred during the request. For more information,
4271//   see the error and message fields.
4272//
4273// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapes
4274func (c *StorageGateway) DescribeTapes(input *DescribeTapesInput) (*DescribeTapesOutput, error) {
4275	req, out := c.DescribeTapesRequest(input)
4276	return out, req.Send()
4277}
4278
4279// DescribeTapesWithContext is the same as DescribeTapes with the addition of
4280// the ability to pass a context and additional request options.
4281//
4282// See DescribeTapes for details on how to use this API operation.
4283//
4284// The context must be non-nil and will be used for request cancellation. If
4285// the context is nil a panic will occur. In the future the SDK may create
4286// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4287// for more information on using Contexts.
4288func (c *StorageGateway) DescribeTapesWithContext(ctx aws.Context, input *DescribeTapesInput, opts ...request.Option) (*DescribeTapesOutput, error) {
4289	req, out := c.DescribeTapesRequest(input)
4290	req.SetContext(ctx)
4291	req.ApplyOptions(opts...)
4292	return out, req.Send()
4293}
4294
4295// DescribeTapesPages iterates over the pages of a DescribeTapes operation,
4296// calling the "fn" function with the response data for each page. To stop
4297// iterating, return false from the fn function.
4298//
4299// See DescribeTapes method for more information on how to use this operation.
4300//
4301// Note: This operation can generate multiple requests to a service.
4302//
4303//    // Example iterating over at most 3 pages of a DescribeTapes operation.
4304//    pageNum := 0
4305//    err := client.DescribeTapesPages(params,
4306//        func(page *storagegateway.DescribeTapesOutput, lastPage bool) bool {
4307//            pageNum++
4308//            fmt.Println(page)
4309//            return pageNum <= 3
4310//        })
4311//
4312func (c *StorageGateway) DescribeTapesPages(input *DescribeTapesInput, fn func(*DescribeTapesOutput, bool) bool) error {
4313	return c.DescribeTapesPagesWithContext(aws.BackgroundContext(), input, fn)
4314}
4315
4316// DescribeTapesPagesWithContext same as DescribeTapesPages except
4317// it takes a Context and allows setting request options on the pages.
4318//
4319// The context must be non-nil and will be used for request cancellation. If
4320// the context is nil a panic will occur. In the future the SDK may create
4321// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4322// for more information on using Contexts.
4323func (c *StorageGateway) DescribeTapesPagesWithContext(ctx aws.Context, input *DescribeTapesInput, fn func(*DescribeTapesOutput, bool) bool, opts ...request.Option) error {
4324	p := request.Pagination{
4325		NewRequest: func() (*request.Request, error) {
4326			var inCpy *DescribeTapesInput
4327			if input != nil {
4328				tmp := *input
4329				inCpy = &tmp
4330			}
4331			req, _ := c.DescribeTapesRequest(inCpy)
4332			req.SetContext(ctx)
4333			req.ApplyOptions(opts...)
4334			return req, nil
4335		},
4336	}
4337
4338	for p.Next() {
4339		if !fn(p.Page().(*DescribeTapesOutput), !p.HasNextPage()) {
4340			break
4341		}
4342	}
4343
4344	return p.Err()
4345}
4346
4347const opDescribeUploadBuffer = "DescribeUploadBuffer"
4348
4349// DescribeUploadBufferRequest generates a "aws/request.Request" representing the
4350// client's request for the DescribeUploadBuffer operation. The "output" return
4351// value will be populated with the request's response once the request completes
4352// successfully.
4353//
4354// Use "Send" method on the returned Request to send the API call to the service.
4355// the "output" return value is not valid until after Send returns without error.
4356//
4357// See DescribeUploadBuffer for more information on using the DescribeUploadBuffer
4358// API call, and error handling.
4359//
4360// This method is useful when you want to inject custom logic or configuration
4361// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4362//
4363//
4364//    // Example sending a request using the DescribeUploadBufferRequest method.
4365//    req, resp := client.DescribeUploadBufferRequest(params)
4366//
4367//    err := req.Send()
4368//    if err == nil { // resp is now filled
4369//        fmt.Println(resp)
4370//    }
4371//
4372// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeUploadBuffer
4373func (c *StorageGateway) DescribeUploadBufferRequest(input *DescribeUploadBufferInput) (req *request.Request, output *DescribeUploadBufferOutput) {
4374	op := &request.Operation{
4375		Name:       opDescribeUploadBuffer,
4376		HTTPMethod: "POST",
4377		HTTPPath:   "/",
4378	}
4379
4380	if input == nil {
4381		input = &DescribeUploadBufferInput{}
4382	}
4383
4384	output = &DescribeUploadBufferOutput{}
4385	req = c.newRequest(op, input, output)
4386	return
4387}
4388
4389// DescribeUploadBuffer API operation for AWS Storage Gateway.
4390//
4391// Returns information about the upload buffer of a gateway. This operation
4392// is supported for the stored volume, cached volume, and tape gateway types.
4393//
4394// The response includes disk IDs that are configured as upload buffer space,
4395// and it includes the amount of upload buffer space allocated and used.
4396//
4397// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4398// with awserr.Error's Code and Message methods to get detailed information about
4399// the error.
4400//
4401// See the AWS API reference guide for AWS Storage Gateway's
4402// API operation DescribeUploadBuffer for usage and error information.
4403//
4404// Returned Error Types:
4405//   * InvalidGatewayRequestException
4406//   An exception occurred because an invalid gateway request was issued to the
4407//   service. For more information, see the error and message fields.
4408//
4409//   * InternalServerError
4410//   An internal server error has occurred during the request. For more information,
4411//   see the error and message fields.
4412//
4413// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeUploadBuffer
4414func (c *StorageGateway) DescribeUploadBuffer(input *DescribeUploadBufferInput) (*DescribeUploadBufferOutput, error) {
4415	req, out := c.DescribeUploadBufferRequest(input)
4416	return out, req.Send()
4417}
4418
4419// DescribeUploadBufferWithContext is the same as DescribeUploadBuffer with the addition of
4420// the ability to pass a context and additional request options.
4421//
4422// See DescribeUploadBuffer for details on how to use this API operation.
4423//
4424// The context must be non-nil and will be used for request cancellation. If
4425// the context is nil a panic will occur. In the future the SDK may create
4426// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4427// for more information on using Contexts.
4428func (c *StorageGateway) DescribeUploadBufferWithContext(ctx aws.Context, input *DescribeUploadBufferInput, opts ...request.Option) (*DescribeUploadBufferOutput, error) {
4429	req, out := c.DescribeUploadBufferRequest(input)
4430	req.SetContext(ctx)
4431	req.ApplyOptions(opts...)
4432	return out, req.Send()
4433}
4434
4435const opDescribeVTLDevices = "DescribeVTLDevices"
4436
4437// DescribeVTLDevicesRequest generates a "aws/request.Request" representing the
4438// client's request for the DescribeVTLDevices operation. The "output" return
4439// value will be populated with the request's response once the request completes
4440// successfully.
4441//
4442// Use "Send" method on the returned Request to send the API call to the service.
4443// the "output" return value is not valid until after Send returns without error.
4444//
4445// See DescribeVTLDevices for more information on using the DescribeVTLDevices
4446// API call, and error handling.
4447//
4448// This method is useful when you want to inject custom logic or configuration
4449// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4450//
4451//
4452//    // Example sending a request using the DescribeVTLDevicesRequest method.
4453//    req, resp := client.DescribeVTLDevicesRequest(params)
4454//
4455//    err := req.Send()
4456//    if err == nil { // resp is now filled
4457//        fmt.Println(resp)
4458//    }
4459//
4460// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeVTLDevices
4461func (c *StorageGateway) DescribeVTLDevicesRequest(input *DescribeVTLDevicesInput) (req *request.Request, output *DescribeVTLDevicesOutput) {
4462	op := &request.Operation{
4463		Name:       opDescribeVTLDevices,
4464		HTTPMethod: "POST",
4465		HTTPPath:   "/",
4466		Paginator: &request.Paginator{
4467			InputTokens:     []string{"Marker"},
4468			OutputTokens:    []string{"Marker"},
4469			LimitToken:      "Limit",
4470			TruncationToken: "",
4471		},
4472	}
4473
4474	if input == nil {
4475		input = &DescribeVTLDevicesInput{}
4476	}
4477
4478	output = &DescribeVTLDevicesOutput{}
4479	req = c.newRequest(op, input, output)
4480	return
4481}
4482
4483// DescribeVTLDevices API operation for AWS Storage Gateway.
4484//
4485// Returns a description of virtual tape library (VTL) devices for the specified
4486// tape gateway. In the response, AWS Storage Gateway returns VTL device information.
4487//
4488// This operation is only supported in the tape gateway type.
4489//
4490// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4491// with awserr.Error's Code and Message methods to get detailed information about
4492// the error.
4493//
4494// See the AWS API reference guide for AWS Storage Gateway's
4495// API operation DescribeVTLDevices for usage and error information.
4496//
4497// Returned Error Types:
4498//   * InvalidGatewayRequestException
4499//   An exception occurred because an invalid gateway request was issued to the
4500//   service. For more information, see the error and message fields.
4501//
4502//   * InternalServerError
4503//   An internal server error has occurred during the request. For more information,
4504//   see the error and message fields.
4505//
4506// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeVTLDevices
4507func (c *StorageGateway) DescribeVTLDevices(input *DescribeVTLDevicesInput) (*DescribeVTLDevicesOutput, error) {
4508	req, out := c.DescribeVTLDevicesRequest(input)
4509	return out, req.Send()
4510}
4511
4512// DescribeVTLDevicesWithContext is the same as DescribeVTLDevices with the addition of
4513// the ability to pass a context and additional request options.
4514//
4515// See DescribeVTLDevices for details on how to use this API operation.
4516//
4517// The context must be non-nil and will be used for request cancellation. If
4518// the context is nil a panic will occur. In the future the SDK may create
4519// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4520// for more information on using Contexts.
4521func (c *StorageGateway) DescribeVTLDevicesWithContext(ctx aws.Context, input *DescribeVTLDevicesInput, opts ...request.Option) (*DescribeVTLDevicesOutput, error) {
4522	req, out := c.DescribeVTLDevicesRequest(input)
4523	req.SetContext(ctx)
4524	req.ApplyOptions(opts...)
4525	return out, req.Send()
4526}
4527
4528// DescribeVTLDevicesPages iterates over the pages of a DescribeVTLDevices operation,
4529// calling the "fn" function with the response data for each page. To stop
4530// iterating, return false from the fn function.
4531//
4532// See DescribeVTLDevices method for more information on how to use this operation.
4533//
4534// Note: This operation can generate multiple requests to a service.
4535//
4536//    // Example iterating over at most 3 pages of a DescribeVTLDevices operation.
4537//    pageNum := 0
4538//    err := client.DescribeVTLDevicesPages(params,
4539//        func(page *storagegateway.DescribeVTLDevicesOutput, lastPage bool) bool {
4540//            pageNum++
4541//            fmt.Println(page)
4542//            return pageNum <= 3
4543//        })
4544//
4545func (c *StorageGateway) DescribeVTLDevicesPages(input *DescribeVTLDevicesInput, fn func(*DescribeVTLDevicesOutput, bool) bool) error {
4546	return c.DescribeVTLDevicesPagesWithContext(aws.BackgroundContext(), input, fn)
4547}
4548
4549// DescribeVTLDevicesPagesWithContext same as DescribeVTLDevicesPages except
4550// it takes a Context and allows setting request options on the pages.
4551//
4552// The context must be non-nil and will be used for request cancellation. If
4553// the context is nil a panic will occur. In the future the SDK may create
4554// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4555// for more information on using Contexts.
4556func (c *StorageGateway) DescribeVTLDevicesPagesWithContext(ctx aws.Context, input *DescribeVTLDevicesInput, fn func(*DescribeVTLDevicesOutput, bool) bool, opts ...request.Option) error {
4557	p := request.Pagination{
4558		NewRequest: func() (*request.Request, error) {
4559			var inCpy *DescribeVTLDevicesInput
4560			if input != nil {
4561				tmp := *input
4562				inCpy = &tmp
4563			}
4564			req, _ := c.DescribeVTLDevicesRequest(inCpy)
4565			req.SetContext(ctx)
4566			req.ApplyOptions(opts...)
4567			return req, nil
4568		},
4569	}
4570
4571	for p.Next() {
4572		if !fn(p.Page().(*DescribeVTLDevicesOutput), !p.HasNextPage()) {
4573			break
4574		}
4575	}
4576
4577	return p.Err()
4578}
4579
4580const opDescribeWorkingStorage = "DescribeWorkingStorage"
4581
4582// DescribeWorkingStorageRequest generates a "aws/request.Request" representing the
4583// client's request for the DescribeWorkingStorage operation. The "output" return
4584// value will be populated with the request's response once the request completes
4585// successfully.
4586//
4587// Use "Send" method on the returned Request to send the API call to the service.
4588// the "output" return value is not valid until after Send returns without error.
4589//
4590// See DescribeWorkingStorage for more information on using the DescribeWorkingStorage
4591// API call, and error handling.
4592//
4593// This method is useful when you want to inject custom logic or configuration
4594// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4595//
4596//
4597//    // Example sending a request using the DescribeWorkingStorageRequest method.
4598//    req, resp := client.DescribeWorkingStorageRequest(params)
4599//
4600//    err := req.Send()
4601//    if err == nil { // resp is now filled
4602//        fmt.Println(resp)
4603//    }
4604//
4605// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeWorkingStorage
4606func (c *StorageGateway) DescribeWorkingStorageRequest(input *DescribeWorkingStorageInput) (req *request.Request, output *DescribeWorkingStorageOutput) {
4607	op := &request.Operation{
4608		Name:       opDescribeWorkingStorage,
4609		HTTPMethod: "POST",
4610		HTTPPath:   "/",
4611	}
4612
4613	if input == nil {
4614		input = &DescribeWorkingStorageInput{}
4615	}
4616
4617	output = &DescribeWorkingStorageOutput{}
4618	req = c.newRequest(op, input, output)
4619	return
4620}
4621
4622// DescribeWorkingStorage API operation for AWS Storage Gateway.
4623//
4624// Returns information about the working storage of a gateway. This operation
4625// is only supported in the stored volumes gateway type. This operation is deprecated
4626// in cached volumes API version (20120630). Use DescribeUploadBuffer instead.
4627//
4628// Working storage is also referred to as upload buffer. You can also use the
4629// DescribeUploadBuffer operation to add upload buffer to a stored volume gateway.
4630//
4631// The response includes disk IDs that are configured as working storage, and
4632// it includes the amount of working storage allocated and used.
4633//
4634// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4635// with awserr.Error's Code and Message methods to get detailed information about
4636// the error.
4637//
4638// See the AWS API reference guide for AWS Storage Gateway's
4639// API operation DescribeWorkingStorage for usage and error information.
4640//
4641// Returned Error Types:
4642//   * InvalidGatewayRequestException
4643//   An exception occurred because an invalid gateway request was issued to the
4644//   service. For more information, see the error and message fields.
4645//
4646//   * InternalServerError
4647//   An internal server error has occurred during the request. For more information,
4648//   see the error and message fields.
4649//
4650// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeWorkingStorage
4651func (c *StorageGateway) DescribeWorkingStorage(input *DescribeWorkingStorageInput) (*DescribeWorkingStorageOutput, error) {
4652	req, out := c.DescribeWorkingStorageRequest(input)
4653	return out, req.Send()
4654}
4655
4656// DescribeWorkingStorageWithContext is the same as DescribeWorkingStorage with the addition of
4657// the ability to pass a context and additional request options.
4658//
4659// See DescribeWorkingStorage for details on how to use this API operation.
4660//
4661// The context must be non-nil and will be used for request cancellation. If
4662// the context is nil a panic will occur. In the future the SDK may create
4663// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4664// for more information on using Contexts.
4665func (c *StorageGateway) DescribeWorkingStorageWithContext(ctx aws.Context, input *DescribeWorkingStorageInput, opts ...request.Option) (*DescribeWorkingStorageOutput, error) {
4666	req, out := c.DescribeWorkingStorageRequest(input)
4667	req.SetContext(ctx)
4668	req.ApplyOptions(opts...)
4669	return out, req.Send()
4670}
4671
4672const opDetachVolume = "DetachVolume"
4673
4674// DetachVolumeRequest generates a "aws/request.Request" representing the
4675// client's request for the DetachVolume operation. The "output" return
4676// value will be populated with the request's response once the request completes
4677// successfully.
4678//
4679// Use "Send" method on the returned Request to send the API call to the service.
4680// the "output" return value is not valid until after Send returns without error.
4681//
4682// See DetachVolume for more information on using the DetachVolume
4683// API call, and error handling.
4684//
4685// This method is useful when you want to inject custom logic or configuration
4686// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4687//
4688//
4689//    // Example sending a request using the DetachVolumeRequest method.
4690//    req, resp := client.DetachVolumeRequest(params)
4691//
4692//    err := req.Send()
4693//    if err == nil { // resp is now filled
4694//        fmt.Println(resp)
4695//    }
4696//
4697// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DetachVolume
4698func (c *StorageGateway) DetachVolumeRequest(input *DetachVolumeInput) (req *request.Request, output *DetachVolumeOutput) {
4699	op := &request.Operation{
4700		Name:       opDetachVolume,
4701		HTTPMethod: "POST",
4702		HTTPPath:   "/",
4703	}
4704
4705	if input == nil {
4706		input = &DetachVolumeInput{}
4707	}
4708
4709	output = &DetachVolumeOutput{}
4710	req = c.newRequest(op, input, output)
4711	return
4712}
4713
4714// DetachVolume API operation for AWS Storage Gateway.
4715//
4716// Disconnects a volume from an iSCSI connection and then detaches the volume
4717// from the specified gateway. Detaching and attaching a volume enables you
4718// to recover your data from one gateway to a different gateway without creating
4719// a snapshot. It also makes it easier to move your volumes from an on-premises
4720// gateway to a gateway hosted on an Amazon EC2 instance. This operation is
4721// only supported in the volume gateway type.
4722//
4723// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4724// with awserr.Error's Code and Message methods to get detailed information about
4725// the error.
4726//
4727// See the AWS API reference guide for AWS Storage Gateway's
4728// API operation DetachVolume for usage and error information.
4729//
4730// Returned Error Types:
4731//   * InvalidGatewayRequestException
4732//   An exception occurred because an invalid gateway request was issued to the
4733//   service. For more information, see the error and message fields.
4734//
4735//   * InternalServerError
4736//   An internal server error has occurred during the request. For more information,
4737//   see the error and message fields.
4738//
4739// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DetachVolume
4740func (c *StorageGateway) DetachVolume(input *DetachVolumeInput) (*DetachVolumeOutput, error) {
4741	req, out := c.DetachVolumeRequest(input)
4742	return out, req.Send()
4743}
4744
4745// DetachVolumeWithContext is the same as DetachVolume with the addition of
4746// the ability to pass a context and additional request options.
4747//
4748// See DetachVolume for details on how to use this API operation.
4749//
4750// The context must be non-nil and will be used for request cancellation. If
4751// the context is nil a panic will occur. In the future the SDK may create
4752// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4753// for more information on using Contexts.
4754func (c *StorageGateway) DetachVolumeWithContext(ctx aws.Context, input *DetachVolumeInput, opts ...request.Option) (*DetachVolumeOutput, error) {
4755	req, out := c.DetachVolumeRequest(input)
4756	req.SetContext(ctx)
4757	req.ApplyOptions(opts...)
4758	return out, req.Send()
4759}
4760
4761const opDisableGateway = "DisableGateway"
4762
4763// DisableGatewayRequest generates a "aws/request.Request" representing the
4764// client's request for the DisableGateway operation. The "output" return
4765// value will be populated with the request's response once the request completes
4766// successfully.
4767//
4768// Use "Send" method on the returned Request to send the API call to the service.
4769// the "output" return value is not valid until after Send returns without error.
4770//
4771// See DisableGateway for more information on using the DisableGateway
4772// API call, and error handling.
4773//
4774// This method is useful when you want to inject custom logic or configuration
4775// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4776//
4777//
4778//    // Example sending a request using the DisableGatewayRequest method.
4779//    req, resp := client.DisableGatewayRequest(params)
4780//
4781//    err := req.Send()
4782//    if err == nil { // resp is now filled
4783//        fmt.Println(resp)
4784//    }
4785//
4786// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisableGateway
4787func (c *StorageGateway) DisableGatewayRequest(input *DisableGatewayInput) (req *request.Request, output *DisableGatewayOutput) {
4788	op := &request.Operation{
4789		Name:       opDisableGateway,
4790		HTTPMethod: "POST",
4791		HTTPPath:   "/",
4792	}
4793
4794	if input == nil {
4795		input = &DisableGatewayInput{}
4796	}
4797
4798	output = &DisableGatewayOutput{}
4799	req = c.newRequest(op, input, output)
4800	return
4801}
4802
4803// DisableGateway API operation for AWS Storage Gateway.
4804//
4805// Disables a tape gateway when the gateway is no longer functioning. For example,
4806// if your gateway VM is damaged, you can disable the gateway so you can recover
4807// virtual tapes.
4808//
4809// Use this operation for a tape gateway that is not reachable or not functioning.
4810// This operation is only supported in the tape gateway type.
4811//
4812// After a gateway is disabled, it cannot be enabled.
4813//
4814// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4815// with awserr.Error's Code and Message methods to get detailed information about
4816// the error.
4817//
4818// See the AWS API reference guide for AWS Storage Gateway's
4819// API operation DisableGateway for usage and error information.
4820//
4821// Returned Error Types:
4822//   * InvalidGatewayRequestException
4823//   An exception occurred because an invalid gateway request was issued to the
4824//   service. For more information, see the error and message fields.
4825//
4826//   * InternalServerError
4827//   An internal server error has occurred during the request. For more information,
4828//   see the error and message fields.
4829//
4830// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisableGateway
4831func (c *StorageGateway) DisableGateway(input *DisableGatewayInput) (*DisableGatewayOutput, error) {
4832	req, out := c.DisableGatewayRequest(input)
4833	return out, req.Send()
4834}
4835
4836// DisableGatewayWithContext is the same as DisableGateway with the addition of
4837// the ability to pass a context and additional request options.
4838//
4839// See DisableGateway for details on how to use this API operation.
4840//
4841// The context must be non-nil and will be used for request cancellation. If
4842// the context is nil a panic will occur. In the future the SDK may create
4843// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4844// for more information on using Contexts.
4845func (c *StorageGateway) DisableGatewayWithContext(ctx aws.Context, input *DisableGatewayInput, opts ...request.Option) (*DisableGatewayOutput, error) {
4846	req, out := c.DisableGatewayRequest(input)
4847	req.SetContext(ctx)
4848	req.ApplyOptions(opts...)
4849	return out, req.Send()
4850}
4851
4852const opDisassociateFileSystem = "DisassociateFileSystem"
4853
4854// DisassociateFileSystemRequest generates a "aws/request.Request" representing the
4855// client's request for the DisassociateFileSystem operation. The "output" return
4856// value will be populated with the request's response once the request completes
4857// successfully.
4858//
4859// Use "Send" method on the returned Request to send the API call to the service.
4860// the "output" return value is not valid until after Send returns without error.
4861//
4862// See DisassociateFileSystem for more information on using the DisassociateFileSystem
4863// API call, and error handling.
4864//
4865// This method is useful when you want to inject custom logic or configuration
4866// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4867//
4868//
4869//    // Example sending a request using the DisassociateFileSystemRequest method.
4870//    req, resp := client.DisassociateFileSystemRequest(params)
4871//
4872//    err := req.Send()
4873//    if err == nil { // resp is now filled
4874//        fmt.Println(resp)
4875//    }
4876//
4877// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisassociateFileSystem
4878func (c *StorageGateway) DisassociateFileSystemRequest(input *DisassociateFileSystemInput) (req *request.Request, output *DisassociateFileSystemOutput) {
4879	op := &request.Operation{
4880		Name:       opDisassociateFileSystem,
4881		HTTPMethod: "POST",
4882		HTTPPath:   "/",
4883	}
4884
4885	if input == nil {
4886		input = &DisassociateFileSystemInput{}
4887	}
4888
4889	output = &DisassociateFileSystemOutput{}
4890	req = c.newRequest(op, input, output)
4891	return
4892}
4893
4894// DisassociateFileSystem API operation for AWS Storage Gateway.
4895//
4896// Disassociates an Amazon FSx file system from the specified gateway. After
4897// the disassociation process finishes, the gateway can no longer access the
4898// Amazon FSx file system. This operation is only supported in the Amazon FSx
4899// file gateway type.
4900//
4901// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4902// with awserr.Error's Code and Message methods to get detailed information about
4903// the error.
4904//
4905// See the AWS API reference guide for AWS Storage Gateway's
4906// API operation DisassociateFileSystem for usage and error information.
4907//
4908// Returned Error Types:
4909//   * InvalidGatewayRequestException
4910//   An exception occurred because an invalid gateway request was issued to the
4911//   service. For more information, see the error and message fields.
4912//
4913//   * InternalServerError
4914//   An internal server error has occurred during the request. For more information,
4915//   see the error and message fields.
4916//
4917// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisassociateFileSystem
4918func (c *StorageGateway) DisassociateFileSystem(input *DisassociateFileSystemInput) (*DisassociateFileSystemOutput, error) {
4919	req, out := c.DisassociateFileSystemRequest(input)
4920	return out, req.Send()
4921}
4922
4923// DisassociateFileSystemWithContext is the same as DisassociateFileSystem with the addition of
4924// the ability to pass a context and additional request options.
4925//
4926// See DisassociateFileSystem for details on how to use this API operation.
4927//
4928// The context must be non-nil and will be used for request cancellation. If
4929// the context is nil a panic will occur. In the future the SDK may create
4930// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4931// for more information on using Contexts.
4932func (c *StorageGateway) DisassociateFileSystemWithContext(ctx aws.Context, input *DisassociateFileSystemInput, opts ...request.Option) (*DisassociateFileSystemOutput, error) {
4933	req, out := c.DisassociateFileSystemRequest(input)
4934	req.SetContext(ctx)
4935	req.ApplyOptions(opts...)
4936	return out, req.Send()
4937}
4938
4939const opJoinDomain = "JoinDomain"
4940
4941// JoinDomainRequest generates a "aws/request.Request" representing the
4942// client's request for the JoinDomain operation. The "output" return
4943// value will be populated with the request's response once the request completes
4944// successfully.
4945//
4946// Use "Send" method on the returned Request to send the API call to the service.
4947// the "output" return value is not valid until after Send returns without error.
4948//
4949// See JoinDomain for more information on using the JoinDomain
4950// API call, and error handling.
4951//
4952// This method is useful when you want to inject custom logic or configuration
4953// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4954//
4955//
4956//    // Example sending a request using the JoinDomainRequest method.
4957//    req, resp := client.JoinDomainRequest(params)
4958//
4959//    err := req.Send()
4960//    if err == nil { // resp is now filled
4961//        fmt.Println(resp)
4962//    }
4963//
4964// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/JoinDomain
4965func (c *StorageGateway) JoinDomainRequest(input *JoinDomainInput) (req *request.Request, output *JoinDomainOutput) {
4966	op := &request.Operation{
4967		Name:       opJoinDomain,
4968		HTTPMethod: "POST",
4969		HTTPPath:   "/",
4970	}
4971
4972	if input == nil {
4973		input = &JoinDomainInput{}
4974	}
4975
4976	output = &JoinDomainOutput{}
4977	req = c.newRequest(op, input, output)
4978	return
4979}
4980
4981// JoinDomain API operation for AWS Storage Gateway.
4982//
4983// Adds a file gateway to an Active Directory domain. This operation is only
4984// supported for file gateways that support the SMB file protocol.
4985//
4986// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4987// with awserr.Error's Code and Message methods to get detailed information about
4988// the error.
4989//
4990// See the AWS API reference guide for AWS Storage Gateway's
4991// API operation JoinDomain for usage and error information.
4992//
4993// Returned Error Types:
4994//   * InvalidGatewayRequestException
4995//   An exception occurred because an invalid gateway request was issued to the
4996//   service. For more information, see the error and message fields.
4997//
4998//   * InternalServerError
4999//   An internal server error has occurred during the request. For more information,
5000//   see the error and message fields.
5001//
5002// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/JoinDomain
5003func (c *StorageGateway) JoinDomain(input *JoinDomainInput) (*JoinDomainOutput, error) {
5004	req, out := c.JoinDomainRequest(input)
5005	return out, req.Send()
5006}
5007
5008// JoinDomainWithContext is the same as JoinDomain with the addition of
5009// the ability to pass a context and additional request options.
5010//
5011// See JoinDomain for details on how to use this API operation.
5012//
5013// The context must be non-nil and will be used for request cancellation. If
5014// the context is nil a panic will occur. In the future the SDK may create
5015// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5016// for more information on using Contexts.
5017func (c *StorageGateway) JoinDomainWithContext(ctx aws.Context, input *JoinDomainInput, opts ...request.Option) (*JoinDomainOutput, error) {
5018	req, out := c.JoinDomainRequest(input)
5019	req.SetContext(ctx)
5020	req.ApplyOptions(opts...)
5021	return out, req.Send()
5022}
5023
5024const opListAutomaticTapeCreationPolicies = "ListAutomaticTapeCreationPolicies"
5025
5026// ListAutomaticTapeCreationPoliciesRequest generates a "aws/request.Request" representing the
5027// client's request for the ListAutomaticTapeCreationPolicies operation. The "output" return
5028// value will be populated with the request's response once the request completes
5029// successfully.
5030//
5031// Use "Send" method on the returned Request to send the API call to the service.
5032// the "output" return value is not valid until after Send returns without error.
5033//
5034// See ListAutomaticTapeCreationPolicies for more information on using the ListAutomaticTapeCreationPolicies
5035// API call, and error handling.
5036//
5037// This method is useful when you want to inject custom logic or configuration
5038// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5039//
5040//
5041//    // Example sending a request using the ListAutomaticTapeCreationPoliciesRequest method.
5042//    req, resp := client.ListAutomaticTapeCreationPoliciesRequest(params)
5043//
5044//    err := req.Send()
5045//    if err == nil { // resp is now filled
5046//        fmt.Println(resp)
5047//    }
5048//
5049// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListAutomaticTapeCreationPolicies
5050func (c *StorageGateway) ListAutomaticTapeCreationPoliciesRequest(input *ListAutomaticTapeCreationPoliciesInput) (req *request.Request, output *ListAutomaticTapeCreationPoliciesOutput) {
5051	op := &request.Operation{
5052		Name:       opListAutomaticTapeCreationPolicies,
5053		HTTPMethod: "POST",
5054		HTTPPath:   "/",
5055	}
5056
5057	if input == nil {
5058		input = &ListAutomaticTapeCreationPoliciesInput{}
5059	}
5060
5061	output = &ListAutomaticTapeCreationPoliciesOutput{}
5062	req = c.newRequest(op, input, output)
5063	return
5064}
5065
5066// ListAutomaticTapeCreationPolicies API operation for AWS Storage Gateway.
5067//
5068// Lists the automatic tape creation policies for a gateway. If there are no
5069// automatic tape creation policies for the gateway, it returns an empty list.
5070//
5071// This operation is only supported for tape gateways.
5072//
5073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5074// with awserr.Error's Code and Message methods to get detailed information about
5075// the error.
5076//
5077// See the AWS API reference guide for AWS Storage Gateway's
5078// API operation ListAutomaticTapeCreationPolicies for usage and error information.
5079//
5080// Returned Error Types:
5081//   * InvalidGatewayRequestException
5082//   An exception occurred because an invalid gateway request was issued to the
5083//   service. For more information, see the error and message fields.
5084//
5085//   * InternalServerError
5086//   An internal server error has occurred during the request. For more information,
5087//   see the error and message fields.
5088//
5089// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListAutomaticTapeCreationPolicies
5090func (c *StorageGateway) ListAutomaticTapeCreationPolicies(input *ListAutomaticTapeCreationPoliciesInput) (*ListAutomaticTapeCreationPoliciesOutput, error) {
5091	req, out := c.ListAutomaticTapeCreationPoliciesRequest(input)
5092	return out, req.Send()
5093}
5094
5095// ListAutomaticTapeCreationPoliciesWithContext is the same as ListAutomaticTapeCreationPolicies with the addition of
5096// the ability to pass a context and additional request options.
5097//
5098// See ListAutomaticTapeCreationPolicies for details on how to use this API operation.
5099//
5100// The context must be non-nil and will be used for request cancellation. If
5101// the context is nil a panic will occur. In the future the SDK may create
5102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5103// for more information on using Contexts.
5104func (c *StorageGateway) ListAutomaticTapeCreationPoliciesWithContext(ctx aws.Context, input *ListAutomaticTapeCreationPoliciesInput, opts ...request.Option) (*ListAutomaticTapeCreationPoliciesOutput, error) {
5105	req, out := c.ListAutomaticTapeCreationPoliciesRequest(input)
5106	req.SetContext(ctx)
5107	req.ApplyOptions(opts...)
5108	return out, req.Send()
5109}
5110
5111const opListFileShares = "ListFileShares"
5112
5113// ListFileSharesRequest generates a "aws/request.Request" representing the
5114// client's request for the ListFileShares operation. The "output" return
5115// value will be populated with the request's response once the request completes
5116// successfully.
5117//
5118// Use "Send" method on the returned Request to send the API call to the service.
5119// the "output" return value is not valid until after Send returns without error.
5120//
5121// See ListFileShares for more information on using the ListFileShares
5122// API call, and error handling.
5123//
5124// This method is useful when you want to inject custom logic or configuration
5125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5126//
5127//
5128//    // Example sending a request using the ListFileSharesRequest method.
5129//    req, resp := client.ListFileSharesRequest(params)
5130//
5131//    err := req.Send()
5132//    if err == nil { // resp is now filled
5133//        fmt.Println(resp)
5134//    }
5135//
5136// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileShares
5137func (c *StorageGateway) ListFileSharesRequest(input *ListFileSharesInput) (req *request.Request, output *ListFileSharesOutput) {
5138	op := &request.Operation{
5139		Name:       opListFileShares,
5140		HTTPMethod: "POST",
5141		HTTPPath:   "/",
5142		Paginator: &request.Paginator{
5143			InputTokens:     []string{"Marker"},
5144			OutputTokens:    []string{"NextMarker"},
5145			LimitToken:      "Limit",
5146			TruncationToken: "",
5147		},
5148	}
5149
5150	if input == nil {
5151		input = &ListFileSharesInput{}
5152	}
5153
5154	output = &ListFileSharesOutput{}
5155	req = c.newRequest(op, input, output)
5156	return
5157}
5158
5159// ListFileShares API operation for AWS Storage Gateway.
5160//
5161// Gets a list of the file shares for a specific file gateway, or the list of
5162// file shares that belong to the calling user account. This operation is only
5163// supported for file gateways.
5164//
5165// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5166// with awserr.Error's Code and Message methods to get detailed information about
5167// the error.
5168//
5169// See the AWS API reference guide for AWS Storage Gateway's
5170// API operation ListFileShares for usage and error information.
5171//
5172// Returned Error Types:
5173//   * InvalidGatewayRequestException
5174//   An exception occurred because an invalid gateway request was issued to the
5175//   service. For more information, see the error and message fields.
5176//
5177//   * InternalServerError
5178//   An internal server error has occurred during the request. For more information,
5179//   see the error and message fields.
5180//
5181// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileShares
5182func (c *StorageGateway) ListFileShares(input *ListFileSharesInput) (*ListFileSharesOutput, error) {
5183	req, out := c.ListFileSharesRequest(input)
5184	return out, req.Send()
5185}
5186
5187// ListFileSharesWithContext is the same as ListFileShares with the addition of
5188// the ability to pass a context and additional request options.
5189//
5190// See ListFileShares for details on how to use this API operation.
5191//
5192// The context must be non-nil and will be used for request cancellation. If
5193// the context is nil a panic will occur. In the future the SDK may create
5194// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5195// for more information on using Contexts.
5196func (c *StorageGateway) ListFileSharesWithContext(ctx aws.Context, input *ListFileSharesInput, opts ...request.Option) (*ListFileSharesOutput, error) {
5197	req, out := c.ListFileSharesRequest(input)
5198	req.SetContext(ctx)
5199	req.ApplyOptions(opts...)
5200	return out, req.Send()
5201}
5202
5203// ListFileSharesPages iterates over the pages of a ListFileShares operation,
5204// calling the "fn" function with the response data for each page. To stop
5205// iterating, return false from the fn function.
5206//
5207// See ListFileShares method for more information on how to use this operation.
5208//
5209// Note: This operation can generate multiple requests to a service.
5210//
5211//    // Example iterating over at most 3 pages of a ListFileShares operation.
5212//    pageNum := 0
5213//    err := client.ListFileSharesPages(params,
5214//        func(page *storagegateway.ListFileSharesOutput, lastPage bool) bool {
5215//            pageNum++
5216//            fmt.Println(page)
5217//            return pageNum <= 3
5218//        })
5219//
5220func (c *StorageGateway) ListFileSharesPages(input *ListFileSharesInput, fn func(*ListFileSharesOutput, bool) bool) error {
5221	return c.ListFileSharesPagesWithContext(aws.BackgroundContext(), input, fn)
5222}
5223
5224// ListFileSharesPagesWithContext same as ListFileSharesPages except
5225// it takes a Context and allows setting request options on the pages.
5226//
5227// The context must be non-nil and will be used for request cancellation. If
5228// the context is nil a panic will occur. In the future the SDK may create
5229// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5230// for more information on using Contexts.
5231func (c *StorageGateway) ListFileSharesPagesWithContext(ctx aws.Context, input *ListFileSharesInput, fn func(*ListFileSharesOutput, bool) bool, opts ...request.Option) error {
5232	p := request.Pagination{
5233		NewRequest: func() (*request.Request, error) {
5234			var inCpy *ListFileSharesInput
5235			if input != nil {
5236				tmp := *input
5237				inCpy = &tmp
5238			}
5239			req, _ := c.ListFileSharesRequest(inCpy)
5240			req.SetContext(ctx)
5241			req.ApplyOptions(opts...)
5242			return req, nil
5243		},
5244	}
5245
5246	for p.Next() {
5247		if !fn(p.Page().(*ListFileSharesOutput), !p.HasNextPage()) {
5248			break
5249		}
5250	}
5251
5252	return p.Err()
5253}
5254
5255const opListFileSystemAssociations = "ListFileSystemAssociations"
5256
5257// ListFileSystemAssociationsRequest generates a "aws/request.Request" representing the
5258// client's request for the ListFileSystemAssociations operation. The "output" return
5259// value will be populated with the request's response once the request completes
5260// successfully.
5261//
5262// Use "Send" method on the returned Request to send the API call to the service.
5263// the "output" return value is not valid until after Send returns without error.
5264//
5265// See ListFileSystemAssociations for more information on using the ListFileSystemAssociations
5266// API call, and error handling.
5267//
5268// This method is useful when you want to inject custom logic or configuration
5269// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5270//
5271//
5272//    // Example sending a request using the ListFileSystemAssociationsRequest method.
5273//    req, resp := client.ListFileSystemAssociationsRequest(params)
5274//
5275//    err := req.Send()
5276//    if err == nil { // resp is now filled
5277//        fmt.Println(resp)
5278//    }
5279//
5280// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileSystemAssociations
5281func (c *StorageGateway) ListFileSystemAssociationsRequest(input *ListFileSystemAssociationsInput) (req *request.Request, output *ListFileSystemAssociationsOutput) {
5282	op := &request.Operation{
5283		Name:       opListFileSystemAssociations,
5284		HTTPMethod: "POST",
5285		HTTPPath:   "/",
5286		Paginator: &request.Paginator{
5287			InputTokens:     []string{"Marker"},
5288			OutputTokens:    []string{"NextMarker"},
5289			LimitToken:      "Limit",
5290			TruncationToken: "",
5291		},
5292	}
5293
5294	if input == nil {
5295		input = &ListFileSystemAssociationsInput{}
5296	}
5297
5298	output = &ListFileSystemAssociationsOutput{}
5299	req = c.newRequest(op, input, output)
5300	return
5301}
5302
5303// ListFileSystemAssociations API operation for AWS Storage Gateway.
5304//
5305// Gets a list of FileSystemAssociationSummary objects. Each object contains
5306// a summary of a file system association. This operation is only supported
5307// for Amazon FSx file gateways.
5308//
5309// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5310// with awserr.Error's Code and Message methods to get detailed information about
5311// the error.
5312//
5313// See the AWS API reference guide for AWS Storage Gateway's
5314// API operation ListFileSystemAssociations for usage and error information.
5315//
5316// Returned Error Types:
5317//   * InvalidGatewayRequestException
5318//   An exception occurred because an invalid gateway request was issued to the
5319//   service. For more information, see the error and message fields.
5320//
5321//   * InternalServerError
5322//   An internal server error has occurred during the request. For more information,
5323//   see the error and message fields.
5324//
5325// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileSystemAssociations
5326func (c *StorageGateway) ListFileSystemAssociations(input *ListFileSystemAssociationsInput) (*ListFileSystemAssociationsOutput, error) {
5327	req, out := c.ListFileSystemAssociationsRequest(input)
5328	return out, req.Send()
5329}
5330
5331// ListFileSystemAssociationsWithContext is the same as ListFileSystemAssociations with the addition of
5332// the ability to pass a context and additional request options.
5333//
5334// See ListFileSystemAssociations for details on how to use this API operation.
5335//
5336// The context must be non-nil and will be used for request cancellation. If
5337// the context is nil a panic will occur. In the future the SDK may create
5338// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5339// for more information on using Contexts.
5340func (c *StorageGateway) ListFileSystemAssociationsWithContext(ctx aws.Context, input *ListFileSystemAssociationsInput, opts ...request.Option) (*ListFileSystemAssociationsOutput, error) {
5341	req, out := c.ListFileSystemAssociationsRequest(input)
5342	req.SetContext(ctx)
5343	req.ApplyOptions(opts...)
5344	return out, req.Send()
5345}
5346
5347// ListFileSystemAssociationsPages iterates over the pages of a ListFileSystemAssociations operation,
5348// calling the "fn" function with the response data for each page. To stop
5349// iterating, return false from the fn function.
5350//
5351// See ListFileSystemAssociations method for more information on how to use this operation.
5352//
5353// Note: This operation can generate multiple requests to a service.
5354//
5355//    // Example iterating over at most 3 pages of a ListFileSystemAssociations operation.
5356//    pageNum := 0
5357//    err := client.ListFileSystemAssociationsPages(params,
5358//        func(page *storagegateway.ListFileSystemAssociationsOutput, lastPage bool) bool {
5359//            pageNum++
5360//            fmt.Println(page)
5361//            return pageNum <= 3
5362//        })
5363//
5364func (c *StorageGateway) ListFileSystemAssociationsPages(input *ListFileSystemAssociationsInput, fn func(*ListFileSystemAssociationsOutput, bool) bool) error {
5365	return c.ListFileSystemAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
5366}
5367
5368// ListFileSystemAssociationsPagesWithContext same as ListFileSystemAssociationsPages except
5369// it takes a Context and allows setting request options on the pages.
5370//
5371// The context must be non-nil and will be used for request cancellation. If
5372// the context is nil a panic will occur. In the future the SDK may create
5373// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5374// for more information on using Contexts.
5375func (c *StorageGateway) ListFileSystemAssociationsPagesWithContext(ctx aws.Context, input *ListFileSystemAssociationsInput, fn func(*ListFileSystemAssociationsOutput, bool) bool, opts ...request.Option) error {
5376	p := request.Pagination{
5377		NewRequest: func() (*request.Request, error) {
5378			var inCpy *ListFileSystemAssociationsInput
5379			if input != nil {
5380				tmp := *input
5381				inCpy = &tmp
5382			}
5383			req, _ := c.ListFileSystemAssociationsRequest(inCpy)
5384			req.SetContext(ctx)
5385			req.ApplyOptions(opts...)
5386			return req, nil
5387		},
5388	}
5389
5390	for p.Next() {
5391		if !fn(p.Page().(*ListFileSystemAssociationsOutput), !p.HasNextPage()) {
5392			break
5393		}
5394	}
5395
5396	return p.Err()
5397}
5398
5399const opListGateways = "ListGateways"
5400
5401// ListGatewaysRequest generates a "aws/request.Request" representing the
5402// client's request for the ListGateways operation. The "output" return
5403// value will be populated with the request's response once the request completes
5404// successfully.
5405//
5406// Use "Send" method on the returned Request to send the API call to the service.
5407// the "output" return value is not valid until after Send returns without error.
5408//
5409// See ListGateways for more information on using the ListGateways
5410// API call, and error handling.
5411//
5412// This method is useful when you want to inject custom logic or configuration
5413// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5414//
5415//
5416//    // Example sending a request using the ListGatewaysRequest method.
5417//    req, resp := client.ListGatewaysRequest(params)
5418//
5419//    err := req.Send()
5420//    if err == nil { // resp is now filled
5421//        fmt.Println(resp)
5422//    }
5423//
5424// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListGateways
5425func (c *StorageGateway) ListGatewaysRequest(input *ListGatewaysInput) (req *request.Request, output *ListGatewaysOutput) {
5426	op := &request.Operation{
5427		Name:       opListGateways,
5428		HTTPMethod: "POST",
5429		HTTPPath:   "/",
5430		Paginator: &request.Paginator{
5431			InputTokens:     []string{"Marker"},
5432			OutputTokens:    []string{"Marker"},
5433			LimitToken:      "Limit",
5434			TruncationToken: "",
5435		},
5436	}
5437
5438	if input == nil {
5439		input = &ListGatewaysInput{}
5440	}
5441
5442	output = &ListGatewaysOutput{}
5443	req = c.newRequest(op, input, output)
5444	return
5445}
5446
5447// ListGateways API operation for AWS Storage Gateway.
5448//
5449// Lists gateways owned by an AWS account in an AWS Region specified in the
5450// request. The returned list is ordered by gateway Amazon Resource Name (ARN).
5451//
5452// By default, the operation returns a maximum of 100 gateways. This operation
5453// supports pagination that allows you to optionally reduce the number of gateways
5454// returned in a response.
5455//
5456// If you have more gateways than are returned in a response (that is, the response
5457// returns only a truncated list of your gateways), the response contains a
5458// marker that you can specify in your next request to fetch the next page of
5459// gateways.
5460//
5461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5462// with awserr.Error's Code and Message methods to get detailed information about
5463// the error.
5464//
5465// See the AWS API reference guide for AWS Storage Gateway's
5466// API operation ListGateways for usage and error information.
5467//
5468// Returned Error Types:
5469//   * InvalidGatewayRequestException
5470//   An exception occurred because an invalid gateway request was issued to the
5471//   service. For more information, see the error and message fields.
5472//
5473//   * InternalServerError
5474//   An internal server error has occurred during the request. For more information,
5475//   see the error and message fields.
5476//
5477// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListGateways
5478func (c *StorageGateway) ListGateways(input *ListGatewaysInput) (*ListGatewaysOutput, error) {
5479	req, out := c.ListGatewaysRequest(input)
5480	return out, req.Send()
5481}
5482
5483// ListGatewaysWithContext is the same as ListGateways with the addition of
5484// the ability to pass a context and additional request options.
5485//
5486// See ListGateways for details on how to use this API operation.
5487//
5488// The context must be non-nil and will be used for request cancellation. If
5489// the context is nil a panic will occur. In the future the SDK may create
5490// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5491// for more information on using Contexts.
5492func (c *StorageGateway) ListGatewaysWithContext(ctx aws.Context, input *ListGatewaysInput, opts ...request.Option) (*ListGatewaysOutput, error) {
5493	req, out := c.ListGatewaysRequest(input)
5494	req.SetContext(ctx)
5495	req.ApplyOptions(opts...)
5496	return out, req.Send()
5497}
5498
5499// ListGatewaysPages iterates over the pages of a ListGateways operation,
5500// calling the "fn" function with the response data for each page. To stop
5501// iterating, return false from the fn function.
5502//
5503// See ListGateways method for more information on how to use this operation.
5504//
5505// Note: This operation can generate multiple requests to a service.
5506//
5507//    // Example iterating over at most 3 pages of a ListGateways operation.
5508//    pageNum := 0
5509//    err := client.ListGatewaysPages(params,
5510//        func(page *storagegateway.ListGatewaysOutput, lastPage bool) bool {
5511//            pageNum++
5512//            fmt.Println(page)
5513//            return pageNum <= 3
5514//        })
5515//
5516func (c *StorageGateway) ListGatewaysPages(input *ListGatewaysInput, fn func(*ListGatewaysOutput, bool) bool) error {
5517	return c.ListGatewaysPagesWithContext(aws.BackgroundContext(), input, fn)
5518}
5519
5520// ListGatewaysPagesWithContext same as ListGatewaysPages except
5521// it takes a Context and allows setting request options on the pages.
5522//
5523// The context must be non-nil and will be used for request cancellation. If
5524// the context is nil a panic will occur. In the future the SDK may create
5525// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5526// for more information on using Contexts.
5527func (c *StorageGateway) ListGatewaysPagesWithContext(ctx aws.Context, input *ListGatewaysInput, fn func(*ListGatewaysOutput, bool) bool, opts ...request.Option) error {
5528	p := request.Pagination{
5529		NewRequest: func() (*request.Request, error) {
5530			var inCpy *ListGatewaysInput
5531			if input != nil {
5532				tmp := *input
5533				inCpy = &tmp
5534			}
5535			req, _ := c.ListGatewaysRequest(inCpy)
5536			req.SetContext(ctx)
5537			req.ApplyOptions(opts...)
5538			return req, nil
5539		},
5540	}
5541
5542	for p.Next() {
5543		if !fn(p.Page().(*ListGatewaysOutput), !p.HasNextPage()) {
5544			break
5545		}
5546	}
5547
5548	return p.Err()
5549}
5550
5551const opListLocalDisks = "ListLocalDisks"
5552
5553// ListLocalDisksRequest generates a "aws/request.Request" representing the
5554// client's request for the ListLocalDisks operation. The "output" return
5555// value will be populated with the request's response once the request completes
5556// successfully.
5557//
5558// Use "Send" method on the returned Request to send the API call to the service.
5559// the "output" return value is not valid until after Send returns without error.
5560//
5561// See ListLocalDisks for more information on using the ListLocalDisks
5562// API call, and error handling.
5563//
5564// This method is useful when you want to inject custom logic or configuration
5565// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5566//
5567//
5568//    // Example sending a request using the ListLocalDisksRequest method.
5569//    req, resp := client.ListLocalDisksRequest(params)
5570//
5571//    err := req.Send()
5572//    if err == nil { // resp is now filled
5573//        fmt.Println(resp)
5574//    }
5575//
5576// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListLocalDisks
5577func (c *StorageGateway) ListLocalDisksRequest(input *ListLocalDisksInput) (req *request.Request, output *ListLocalDisksOutput) {
5578	op := &request.Operation{
5579		Name:       opListLocalDisks,
5580		HTTPMethod: "POST",
5581		HTTPPath:   "/",
5582	}
5583
5584	if input == nil {
5585		input = &ListLocalDisksInput{}
5586	}
5587
5588	output = &ListLocalDisksOutput{}
5589	req = c.newRequest(op, input, output)
5590	return
5591}
5592
5593// ListLocalDisks API operation for AWS Storage Gateway.
5594//
5595// Returns a list of the gateway's local disks. To specify which gateway to
5596// describe, you use the Amazon Resource Name (ARN) of the gateway in the body
5597// of the request.
5598//
5599// The request returns a list of all disks, specifying which are configured
5600// as working storage, cache storage, or stored volume or not configured at
5601// all. The response includes a DiskStatus field. This field can have a value
5602// of present (the disk is available to use), missing (the disk is no longer
5603// connected to the gateway), or mismatch (the disk node is occupied by a disk
5604// that has incorrect metadata or the disk content is corrupted).
5605//
5606// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5607// with awserr.Error's Code and Message methods to get detailed information about
5608// the error.
5609//
5610// See the AWS API reference guide for AWS Storage Gateway's
5611// API operation ListLocalDisks for usage and error information.
5612//
5613// Returned Error Types:
5614//   * InvalidGatewayRequestException
5615//   An exception occurred because an invalid gateway request was issued to the
5616//   service. For more information, see the error and message fields.
5617//
5618//   * InternalServerError
5619//   An internal server error has occurred during the request. For more information,
5620//   see the error and message fields.
5621//
5622// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListLocalDisks
5623func (c *StorageGateway) ListLocalDisks(input *ListLocalDisksInput) (*ListLocalDisksOutput, error) {
5624	req, out := c.ListLocalDisksRequest(input)
5625	return out, req.Send()
5626}
5627
5628// ListLocalDisksWithContext is the same as ListLocalDisks with the addition of
5629// the ability to pass a context and additional request options.
5630//
5631// See ListLocalDisks for details on how to use this API operation.
5632//
5633// The context must be non-nil and will be used for request cancellation. If
5634// the context is nil a panic will occur. In the future the SDK may create
5635// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5636// for more information on using Contexts.
5637func (c *StorageGateway) ListLocalDisksWithContext(ctx aws.Context, input *ListLocalDisksInput, opts ...request.Option) (*ListLocalDisksOutput, error) {
5638	req, out := c.ListLocalDisksRequest(input)
5639	req.SetContext(ctx)
5640	req.ApplyOptions(opts...)
5641	return out, req.Send()
5642}
5643
5644const opListTagsForResource = "ListTagsForResource"
5645
5646// ListTagsForResourceRequest generates a "aws/request.Request" representing the
5647// client's request for the ListTagsForResource operation. The "output" return
5648// value will be populated with the request's response once the request completes
5649// successfully.
5650//
5651// Use "Send" method on the returned Request to send the API call to the service.
5652// the "output" return value is not valid until after Send returns without error.
5653//
5654// See ListTagsForResource for more information on using the ListTagsForResource
5655// API call, and error handling.
5656//
5657// This method is useful when you want to inject custom logic or configuration
5658// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5659//
5660//
5661//    // Example sending a request using the ListTagsForResourceRequest method.
5662//    req, resp := client.ListTagsForResourceRequest(params)
5663//
5664//    err := req.Send()
5665//    if err == nil { // resp is now filled
5666//        fmt.Println(resp)
5667//    }
5668//
5669// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTagsForResource
5670func (c *StorageGateway) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
5671	op := &request.Operation{
5672		Name:       opListTagsForResource,
5673		HTTPMethod: "POST",
5674		HTTPPath:   "/",
5675		Paginator: &request.Paginator{
5676			InputTokens:     []string{"Marker"},
5677			OutputTokens:    []string{"Marker"},
5678			LimitToken:      "Limit",
5679			TruncationToken: "",
5680		},
5681	}
5682
5683	if input == nil {
5684		input = &ListTagsForResourceInput{}
5685	}
5686
5687	output = &ListTagsForResourceOutput{}
5688	req = c.newRequest(op, input, output)
5689	return
5690}
5691
5692// ListTagsForResource API operation for AWS Storage Gateway.
5693//
5694// Lists the tags that have been added to the specified resource. This operation
5695// is supported in storage gateways of all types.
5696//
5697// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5698// with awserr.Error's Code and Message methods to get detailed information about
5699// the error.
5700//
5701// See the AWS API reference guide for AWS Storage Gateway's
5702// API operation ListTagsForResource for usage and error information.
5703//
5704// Returned Error Types:
5705//   * InvalidGatewayRequestException
5706//   An exception occurred because an invalid gateway request was issued to the
5707//   service. For more information, see the error and message fields.
5708//
5709//   * InternalServerError
5710//   An internal server error has occurred during the request. For more information,
5711//   see the error and message fields.
5712//
5713// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTagsForResource
5714func (c *StorageGateway) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
5715	req, out := c.ListTagsForResourceRequest(input)
5716	return out, req.Send()
5717}
5718
5719// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
5720// the ability to pass a context and additional request options.
5721//
5722// See ListTagsForResource for details on how to use this API operation.
5723//
5724// The context must be non-nil and will be used for request cancellation. If
5725// the context is nil a panic will occur. In the future the SDK may create
5726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5727// for more information on using Contexts.
5728func (c *StorageGateway) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
5729	req, out := c.ListTagsForResourceRequest(input)
5730	req.SetContext(ctx)
5731	req.ApplyOptions(opts...)
5732	return out, req.Send()
5733}
5734
5735// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
5736// calling the "fn" function with the response data for each page. To stop
5737// iterating, return false from the fn function.
5738//
5739// See ListTagsForResource method for more information on how to use this operation.
5740//
5741// Note: This operation can generate multiple requests to a service.
5742//
5743//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
5744//    pageNum := 0
5745//    err := client.ListTagsForResourcePages(params,
5746//        func(page *storagegateway.ListTagsForResourceOutput, lastPage bool) bool {
5747//            pageNum++
5748//            fmt.Println(page)
5749//            return pageNum <= 3
5750//        })
5751//
5752func (c *StorageGateway) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
5753	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
5754}
5755
5756// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
5757// it takes a Context and allows setting request options on the pages.
5758//
5759// The context must be non-nil and will be used for request cancellation. If
5760// the context is nil a panic will occur. In the future the SDK may create
5761// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5762// for more information on using Contexts.
5763func (c *StorageGateway) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
5764	p := request.Pagination{
5765		NewRequest: func() (*request.Request, error) {
5766			var inCpy *ListTagsForResourceInput
5767			if input != nil {
5768				tmp := *input
5769				inCpy = &tmp
5770			}
5771			req, _ := c.ListTagsForResourceRequest(inCpy)
5772			req.SetContext(ctx)
5773			req.ApplyOptions(opts...)
5774			return req, nil
5775		},
5776	}
5777
5778	for p.Next() {
5779		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
5780			break
5781		}
5782	}
5783
5784	return p.Err()
5785}
5786
5787const opListTapePools = "ListTapePools"
5788
5789// ListTapePoolsRequest generates a "aws/request.Request" representing the
5790// client's request for the ListTapePools operation. The "output" return
5791// value will be populated with the request's response once the request completes
5792// successfully.
5793//
5794// Use "Send" method on the returned Request to send the API call to the service.
5795// the "output" return value is not valid until after Send returns without error.
5796//
5797// See ListTapePools for more information on using the ListTapePools
5798// API call, and error handling.
5799//
5800// This method is useful when you want to inject custom logic or configuration
5801// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5802//
5803//
5804//    // Example sending a request using the ListTapePoolsRequest method.
5805//    req, resp := client.ListTapePoolsRequest(params)
5806//
5807//    err := req.Send()
5808//    if err == nil { // resp is now filled
5809//        fmt.Println(resp)
5810//    }
5811//
5812// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapePools
5813func (c *StorageGateway) ListTapePoolsRequest(input *ListTapePoolsInput) (req *request.Request, output *ListTapePoolsOutput) {
5814	op := &request.Operation{
5815		Name:       opListTapePools,
5816		HTTPMethod: "POST",
5817		HTTPPath:   "/",
5818		Paginator: &request.Paginator{
5819			InputTokens:     []string{"Marker"},
5820			OutputTokens:    []string{"Marker"},
5821			LimitToken:      "Limit",
5822			TruncationToken: "",
5823		},
5824	}
5825
5826	if input == nil {
5827		input = &ListTapePoolsInput{}
5828	}
5829
5830	output = &ListTapePoolsOutput{}
5831	req = c.newRequest(op, input, output)
5832	return
5833}
5834
5835// ListTapePools API operation for AWS Storage Gateway.
5836//
5837// Lists custom tape pools. You specify custom tape pools to list by specifying
5838// one or more custom tape pool Amazon Resource Names (ARNs). If you don't specify
5839// a custom tape pool ARN, the operation lists all custom tape pools.
5840//
5841// This operation supports pagination. You can optionally specify the Limit
5842// parameter in the body to limit the number of tape pools in the response.
5843// If the number of tape pools returned in the response is truncated, the response
5844// includes a Marker element that you can use in your subsequent request to
5845// retrieve the next set of tape pools.
5846//
5847// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5848// with awserr.Error's Code and Message methods to get detailed information about
5849// the error.
5850//
5851// See the AWS API reference guide for AWS Storage Gateway's
5852// API operation ListTapePools for usage and error information.
5853//
5854// Returned Error Types:
5855//   * InvalidGatewayRequestException
5856//   An exception occurred because an invalid gateway request was issued to the
5857//   service. For more information, see the error and message fields.
5858//
5859//   * InternalServerError
5860//   An internal server error has occurred during the request. For more information,
5861//   see the error and message fields.
5862//
5863// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapePools
5864func (c *StorageGateway) ListTapePools(input *ListTapePoolsInput) (*ListTapePoolsOutput, error) {
5865	req, out := c.ListTapePoolsRequest(input)
5866	return out, req.Send()
5867}
5868
5869// ListTapePoolsWithContext is the same as ListTapePools with the addition of
5870// the ability to pass a context and additional request options.
5871//
5872// See ListTapePools for details on how to use this API operation.
5873//
5874// The context must be non-nil and will be used for request cancellation. If
5875// the context is nil a panic will occur. In the future the SDK may create
5876// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5877// for more information on using Contexts.
5878func (c *StorageGateway) ListTapePoolsWithContext(ctx aws.Context, input *ListTapePoolsInput, opts ...request.Option) (*ListTapePoolsOutput, error) {
5879	req, out := c.ListTapePoolsRequest(input)
5880	req.SetContext(ctx)
5881	req.ApplyOptions(opts...)
5882	return out, req.Send()
5883}
5884
5885// ListTapePoolsPages iterates over the pages of a ListTapePools operation,
5886// calling the "fn" function with the response data for each page. To stop
5887// iterating, return false from the fn function.
5888//
5889// See ListTapePools method for more information on how to use this operation.
5890//
5891// Note: This operation can generate multiple requests to a service.
5892//
5893//    // Example iterating over at most 3 pages of a ListTapePools operation.
5894//    pageNum := 0
5895//    err := client.ListTapePoolsPages(params,
5896//        func(page *storagegateway.ListTapePoolsOutput, lastPage bool) bool {
5897//            pageNum++
5898//            fmt.Println(page)
5899//            return pageNum <= 3
5900//        })
5901//
5902func (c *StorageGateway) ListTapePoolsPages(input *ListTapePoolsInput, fn func(*ListTapePoolsOutput, bool) bool) error {
5903	return c.ListTapePoolsPagesWithContext(aws.BackgroundContext(), input, fn)
5904}
5905
5906// ListTapePoolsPagesWithContext same as ListTapePoolsPages except
5907// it takes a Context and allows setting request options on the pages.
5908//
5909// The context must be non-nil and will be used for request cancellation. If
5910// the context is nil a panic will occur. In the future the SDK may create
5911// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5912// for more information on using Contexts.
5913func (c *StorageGateway) ListTapePoolsPagesWithContext(ctx aws.Context, input *ListTapePoolsInput, fn func(*ListTapePoolsOutput, bool) bool, opts ...request.Option) error {
5914	p := request.Pagination{
5915		NewRequest: func() (*request.Request, error) {
5916			var inCpy *ListTapePoolsInput
5917			if input != nil {
5918				tmp := *input
5919				inCpy = &tmp
5920			}
5921			req, _ := c.ListTapePoolsRequest(inCpy)
5922			req.SetContext(ctx)
5923			req.ApplyOptions(opts...)
5924			return req, nil
5925		},
5926	}
5927
5928	for p.Next() {
5929		if !fn(p.Page().(*ListTapePoolsOutput), !p.HasNextPage()) {
5930			break
5931		}
5932	}
5933
5934	return p.Err()
5935}
5936
5937const opListTapes = "ListTapes"
5938
5939// ListTapesRequest generates a "aws/request.Request" representing the
5940// client's request for the ListTapes operation. The "output" return
5941// value will be populated with the request's response once the request completes
5942// successfully.
5943//
5944// Use "Send" method on the returned Request to send the API call to the service.
5945// the "output" return value is not valid until after Send returns without error.
5946//
5947// See ListTapes for more information on using the ListTapes
5948// API call, and error handling.
5949//
5950// This method is useful when you want to inject custom logic or configuration
5951// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5952//
5953//
5954//    // Example sending a request using the ListTapesRequest method.
5955//    req, resp := client.ListTapesRequest(params)
5956//
5957//    err := req.Send()
5958//    if err == nil { // resp is now filled
5959//        fmt.Println(resp)
5960//    }
5961//
5962// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapes
5963func (c *StorageGateway) ListTapesRequest(input *ListTapesInput) (req *request.Request, output *ListTapesOutput) {
5964	op := &request.Operation{
5965		Name:       opListTapes,
5966		HTTPMethod: "POST",
5967		HTTPPath:   "/",
5968		Paginator: &request.Paginator{
5969			InputTokens:     []string{"Marker"},
5970			OutputTokens:    []string{"Marker"},
5971			LimitToken:      "Limit",
5972			TruncationToken: "",
5973		},
5974	}
5975
5976	if input == nil {
5977		input = &ListTapesInput{}
5978	}
5979
5980	output = &ListTapesOutput{}
5981	req = c.newRequest(op, input, output)
5982	return
5983}
5984
5985// ListTapes API operation for AWS Storage Gateway.
5986//
5987// Lists virtual tapes in your virtual tape library (VTL) and your virtual tape
5988// shelf (VTS). You specify the tapes to list by specifying one or more tape
5989// Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation
5990// lists all virtual tapes in both your VTL and VTS.
5991//
5992// This operation supports pagination. By default, the operation returns a maximum
5993// of up to 100 tapes. You can optionally specify the Limit parameter in the
5994// body to limit the number of tapes in the response. If the number of tapes
5995// returned in the response is truncated, the response includes a Marker element
5996// that you can use in your subsequent request to retrieve the next set of tapes.
5997// This operation is only supported in the tape gateway type.
5998//
5999// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6000// with awserr.Error's Code and Message methods to get detailed information about
6001// the error.
6002//
6003// See the AWS API reference guide for AWS Storage Gateway's
6004// API operation ListTapes for usage and error information.
6005//
6006// Returned Error Types:
6007//   * InvalidGatewayRequestException
6008//   An exception occurred because an invalid gateway request was issued to the
6009//   service. For more information, see the error and message fields.
6010//
6011//   * InternalServerError
6012//   An internal server error has occurred during the request. For more information,
6013//   see the error and message fields.
6014//
6015// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapes
6016func (c *StorageGateway) ListTapes(input *ListTapesInput) (*ListTapesOutput, error) {
6017	req, out := c.ListTapesRequest(input)
6018	return out, req.Send()
6019}
6020
6021// ListTapesWithContext is the same as ListTapes with the addition of
6022// the ability to pass a context and additional request options.
6023//
6024// See ListTapes for details on how to use this API operation.
6025//
6026// The context must be non-nil and will be used for request cancellation. If
6027// the context is nil a panic will occur. In the future the SDK may create
6028// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6029// for more information on using Contexts.
6030func (c *StorageGateway) ListTapesWithContext(ctx aws.Context, input *ListTapesInput, opts ...request.Option) (*ListTapesOutput, error) {
6031	req, out := c.ListTapesRequest(input)
6032	req.SetContext(ctx)
6033	req.ApplyOptions(opts...)
6034	return out, req.Send()
6035}
6036
6037// ListTapesPages iterates over the pages of a ListTapes operation,
6038// calling the "fn" function with the response data for each page. To stop
6039// iterating, return false from the fn function.
6040//
6041// See ListTapes method for more information on how to use this operation.
6042//
6043// Note: This operation can generate multiple requests to a service.
6044//
6045//    // Example iterating over at most 3 pages of a ListTapes operation.
6046//    pageNum := 0
6047//    err := client.ListTapesPages(params,
6048//        func(page *storagegateway.ListTapesOutput, lastPage bool) bool {
6049//            pageNum++
6050//            fmt.Println(page)
6051//            return pageNum <= 3
6052//        })
6053//
6054func (c *StorageGateway) ListTapesPages(input *ListTapesInput, fn func(*ListTapesOutput, bool) bool) error {
6055	return c.ListTapesPagesWithContext(aws.BackgroundContext(), input, fn)
6056}
6057
6058// ListTapesPagesWithContext same as ListTapesPages except
6059// it takes a Context and allows setting request options on the pages.
6060//
6061// The context must be non-nil and will be used for request cancellation. If
6062// the context is nil a panic will occur. In the future the SDK may create
6063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6064// for more information on using Contexts.
6065func (c *StorageGateway) ListTapesPagesWithContext(ctx aws.Context, input *ListTapesInput, fn func(*ListTapesOutput, bool) bool, opts ...request.Option) error {
6066	p := request.Pagination{
6067		NewRequest: func() (*request.Request, error) {
6068			var inCpy *ListTapesInput
6069			if input != nil {
6070				tmp := *input
6071				inCpy = &tmp
6072			}
6073			req, _ := c.ListTapesRequest(inCpy)
6074			req.SetContext(ctx)
6075			req.ApplyOptions(opts...)
6076			return req, nil
6077		},
6078	}
6079
6080	for p.Next() {
6081		if !fn(p.Page().(*ListTapesOutput), !p.HasNextPage()) {
6082			break
6083		}
6084	}
6085
6086	return p.Err()
6087}
6088
6089const opListVolumeInitiators = "ListVolumeInitiators"
6090
6091// ListVolumeInitiatorsRequest generates a "aws/request.Request" representing the
6092// client's request for the ListVolumeInitiators operation. The "output" return
6093// value will be populated with the request's response once the request completes
6094// successfully.
6095//
6096// Use "Send" method on the returned Request to send the API call to the service.
6097// the "output" return value is not valid until after Send returns without error.
6098//
6099// See ListVolumeInitiators for more information on using the ListVolumeInitiators
6100// API call, and error handling.
6101//
6102// This method is useful when you want to inject custom logic or configuration
6103// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6104//
6105//
6106//    // Example sending a request using the ListVolumeInitiatorsRequest method.
6107//    req, resp := client.ListVolumeInitiatorsRequest(params)
6108//
6109//    err := req.Send()
6110//    if err == nil { // resp is now filled
6111//        fmt.Println(resp)
6112//    }
6113//
6114// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeInitiators
6115func (c *StorageGateway) ListVolumeInitiatorsRequest(input *ListVolumeInitiatorsInput) (req *request.Request, output *ListVolumeInitiatorsOutput) {
6116	op := &request.Operation{
6117		Name:       opListVolumeInitiators,
6118		HTTPMethod: "POST",
6119		HTTPPath:   "/",
6120	}
6121
6122	if input == nil {
6123		input = &ListVolumeInitiatorsInput{}
6124	}
6125
6126	output = &ListVolumeInitiatorsOutput{}
6127	req = c.newRequest(op, input, output)
6128	return
6129}
6130
6131// ListVolumeInitiators API operation for AWS Storage Gateway.
6132//
6133// Lists iSCSI initiators that are connected to a volume. You can use this operation
6134// to determine whether a volume is being used or not. This operation is only
6135// supported in the cached volume and stored volume gateway types.
6136//
6137// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6138// with awserr.Error's Code and Message methods to get detailed information about
6139// the error.
6140//
6141// See the AWS API reference guide for AWS Storage Gateway's
6142// API operation ListVolumeInitiators for usage and error information.
6143//
6144// Returned Error Types:
6145//   * InvalidGatewayRequestException
6146//   An exception occurred because an invalid gateway request was issued to the
6147//   service. For more information, see the error and message fields.
6148//
6149//   * InternalServerError
6150//   An internal server error has occurred during the request. For more information,
6151//   see the error and message fields.
6152//
6153// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeInitiators
6154func (c *StorageGateway) ListVolumeInitiators(input *ListVolumeInitiatorsInput) (*ListVolumeInitiatorsOutput, error) {
6155	req, out := c.ListVolumeInitiatorsRequest(input)
6156	return out, req.Send()
6157}
6158
6159// ListVolumeInitiatorsWithContext is the same as ListVolumeInitiators with the addition of
6160// the ability to pass a context and additional request options.
6161//
6162// See ListVolumeInitiators for details on how to use this API operation.
6163//
6164// The context must be non-nil and will be used for request cancellation. If
6165// the context is nil a panic will occur. In the future the SDK may create
6166// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6167// for more information on using Contexts.
6168func (c *StorageGateway) ListVolumeInitiatorsWithContext(ctx aws.Context, input *ListVolumeInitiatorsInput, opts ...request.Option) (*ListVolumeInitiatorsOutput, error) {
6169	req, out := c.ListVolumeInitiatorsRequest(input)
6170	req.SetContext(ctx)
6171	req.ApplyOptions(opts...)
6172	return out, req.Send()
6173}
6174
6175const opListVolumeRecoveryPoints = "ListVolumeRecoveryPoints"
6176
6177// ListVolumeRecoveryPointsRequest generates a "aws/request.Request" representing the
6178// client's request for the ListVolumeRecoveryPoints operation. The "output" return
6179// value will be populated with the request's response once the request completes
6180// successfully.
6181//
6182// Use "Send" method on the returned Request to send the API call to the service.
6183// the "output" return value is not valid until after Send returns without error.
6184//
6185// See ListVolumeRecoveryPoints for more information on using the ListVolumeRecoveryPoints
6186// API call, and error handling.
6187//
6188// This method is useful when you want to inject custom logic or configuration
6189// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6190//
6191//
6192//    // Example sending a request using the ListVolumeRecoveryPointsRequest method.
6193//    req, resp := client.ListVolumeRecoveryPointsRequest(params)
6194//
6195//    err := req.Send()
6196//    if err == nil { // resp is now filled
6197//        fmt.Println(resp)
6198//    }
6199//
6200// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeRecoveryPoints
6201func (c *StorageGateway) ListVolumeRecoveryPointsRequest(input *ListVolumeRecoveryPointsInput) (req *request.Request, output *ListVolumeRecoveryPointsOutput) {
6202	op := &request.Operation{
6203		Name:       opListVolumeRecoveryPoints,
6204		HTTPMethod: "POST",
6205		HTTPPath:   "/",
6206	}
6207
6208	if input == nil {
6209		input = &ListVolumeRecoveryPointsInput{}
6210	}
6211
6212	output = &ListVolumeRecoveryPointsOutput{}
6213	req = c.newRequest(op, input, output)
6214	return
6215}
6216
6217// ListVolumeRecoveryPoints API operation for AWS Storage Gateway.
6218//
6219// Lists the recovery points for a specified gateway. This operation is only
6220// supported in the cached volume gateway type.
6221//
6222// Each cache volume has one recovery point. A volume recovery point is a point
6223// in time at which all data of the volume is consistent and from which you
6224// can create a snapshot or clone a new cached volume from a source volume.
6225// To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint
6226// operation.
6227//
6228// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6229// with awserr.Error's Code and Message methods to get detailed information about
6230// the error.
6231//
6232// See the AWS API reference guide for AWS Storage Gateway's
6233// API operation ListVolumeRecoveryPoints for usage and error information.
6234//
6235// Returned Error Types:
6236//   * InvalidGatewayRequestException
6237//   An exception occurred because an invalid gateway request was issued to the
6238//   service. For more information, see the error and message fields.
6239//
6240//   * InternalServerError
6241//   An internal server error has occurred during the request. For more information,
6242//   see the error and message fields.
6243//
6244// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeRecoveryPoints
6245func (c *StorageGateway) ListVolumeRecoveryPoints(input *ListVolumeRecoveryPointsInput) (*ListVolumeRecoveryPointsOutput, error) {
6246	req, out := c.ListVolumeRecoveryPointsRequest(input)
6247	return out, req.Send()
6248}
6249
6250// ListVolumeRecoveryPointsWithContext is the same as ListVolumeRecoveryPoints with the addition of
6251// the ability to pass a context and additional request options.
6252//
6253// See ListVolumeRecoveryPoints for details on how to use this API operation.
6254//
6255// The context must be non-nil and will be used for request cancellation. If
6256// the context is nil a panic will occur. In the future the SDK may create
6257// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6258// for more information on using Contexts.
6259func (c *StorageGateway) ListVolumeRecoveryPointsWithContext(ctx aws.Context, input *ListVolumeRecoveryPointsInput, opts ...request.Option) (*ListVolumeRecoveryPointsOutput, error) {
6260	req, out := c.ListVolumeRecoveryPointsRequest(input)
6261	req.SetContext(ctx)
6262	req.ApplyOptions(opts...)
6263	return out, req.Send()
6264}
6265
6266const opListVolumes = "ListVolumes"
6267
6268// ListVolumesRequest generates a "aws/request.Request" representing the
6269// client's request for the ListVolumes operation. The "output" return
6270// value will be populated with the request's response once the request completes
6271// successfully.
6272//
6273// Use "Send" method on the returned Request to send the API call to the service.
6274// the "output" return value is not valid until after Send returns without error.
6275//
6276// See ListVolumes for more information on using the ListVolumes
6277// API call, and error handling.
6278//
6279// This method is useful when you want to inject custom logic or configuration
6280// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6281//
6282//
6283//    // Example sending a request using the ListVolumesRequest method.
6284//    req, resp := client.ListVolumesRequest(params)
6285//
6286//    err := req.Send()
6287//    if err == nil { // resp is now filled
6288//        fmt.Println(resp)
6289//    }
6290//
6291// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumes
6292func (c *StorageGateway) ListVolumesRequest(input *ListVolumesInput) (req *request.Request, output *ListVolumesOutput) {
6293	op := &request.Operation{
6294		Name:       opListVolumes,
6295		HTTPMethod: "POST",
6296		HTTPPath:   "/",
6297		Paginator: &request.Paginator{
6298			InputTokens:     []string{"Marker"},
6299			OutputTokens:    []string{"Marker"},
6300			LimitToken:      "Limit",
6301			TruncationToken: "",
6302		},
6303	}
6304
6305	if input == nil {
6306		input = &ListVolumesInput{}
6307	}
6308
6309	output = &ListVolumesOutput{}
6310	req = c.newRequest(op, input, output)
6311	return
6312}
6313
6314// ListVolumes API operation for AWS Storage Gateway.
6315//
6316// Lists the iSCSI stored volumes of a gateway. Results are sorted by volume
6317// ARN. The response includes only the volume ARNs. If you want additional volume
6318// information, use the DescribeStorediSCSIVolumes or the DescribeCachediSCSIVolumes
6319// API.
6320//
6321// The operation supports pagination. By default, the operation returns a maximum
6322// of up to 100 volumes. You can optionally specify the Limit field in the body
6323// to limit the number of volumes in the response. If the number of volumes
6324// returned in the response is truncated, the response includes a Marker field.
6325// You can use this Marker value in your subsequent request to retrieve the
6326// next set of volumes. This operation is only supported in the cached volume
6327// and stored volume gateway types.
6328//
6329// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6330// with awserr.Error's Code and Message methods to get detailed information about
6331// the error.
6332//
6333// See the AWS API reference guide for AWS Storage Gateway's
6334// API operation ListVolumes for usage and error information.
6335//
6336// Returned Error Types:
6337//   * InvalidGatewayRequestException
6338//   An exception occurred because an invalid gateway request was issued to the
6339//   service. For more information, see the error and message fields.
6340//
6341//   * InternalServerError
6342//   An internal server error has occurred during the request. For more information,
6343//   see the error and message fields.
6344//
6345// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumes
6346func (c *StorageGateway) ListVolumes(input *ListVolumesInput) (*ListVolumesOutput, error) {
6347	req, out := c.ListVolumesRequest(input)
6348	return out, req.Send()
6349}
6350
6351// ListVolumesWithContext is the same as ListVolumes with the addition of
6352// the ability to pass a context and additional request options.
6353//
6354// See ListVolumes for details on how to use this API operation.
6355//
6356// The context must be non-nil and will be used for request cancellation. If
6357// the context is nil a panic will occur. In the future the SDK may create
6358// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6359// for more information on using Contexts.
6360func (c *StorageGateway) ListVolumesWithContext(ctx aws.Context, input *ListVolumesInput, opts ...request.Option) (*ListVolumesOutput, error) {
6361	req, out := c.ListVolumesRequest(input)
6362	req.SetContext(ctx)
6363	req.ApplyOptions(opts...)
6364	return out, req.Send()
6365}
6366
6367// ListVolumesPages iterates over the pages of a ListVolumes operation,
6368// calling the "fn" function with the response data for each page. To stop
6369// iterating, return false from the fn function.
6370//
6371// See ListVolumes method for more information on how to use this operation.
6372//
6373// Note: This operation can generate multiple requests to a service.
6374//
6375//    // Example iterating over at most 3 pages of a ListVolumes operation.
6376//    pageNum := 0
6377//    err := client.ListVolumesPages(params,
6378//        func(page *storagegateway.ListVolumesOutput, lastPage bool) bool {
6379//            pageNum++
6380//            fmt.Println(page)
6381//            return pageNum <= 3
6382//        })
6383//
6384func (c *StorageGateway) ListVolumesPages(input *ListVolumesInput, fn func(*ListVolumesOutput, bool) bool) error {
6385	return c.ListVolumesPagesWithContext(aws.BackgroundContext(), input, fn)
6386}
6387
6388// ListVolumesPagesWithContext same as ListVolumesPages except
6389// it takes a Context and allows setting request options on the pages.
6390//
6391// The context must be non-nil and will be used for request cancellation. If
6392// the context is nil a panic will occur. In the future the SDK may create
6393// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6394// for more information on using Contexts.
6395func (c *StorageGateway) ListVolumesPagesWithContext(ctx aws.Context, input *ListVolumesInput, fn func(*ListVolumesOutput, bool) bool, opts ...request.Option) error {
6396	p := request.Pagination{
6397		NewRequest: func() (*request.Request, error) {
6398			var inCpy *ListVolumesInput
6399			if input != nil {
6400				tmp := *input
6401				inCpy = &tmp
6402			}
6403			req, _ := c.ListVolumesRequest(inCpy)
6404			req.SetContext(ctx)
6405			req.ApplyOptions(opts...)
6406			return req, nil
6407		},
6408	}
6409
6410	for p.Next() {
6411		if !fn(p.Page().(*ListVolumesOutput), !p.HasNextPage()) {
6412			break
6413		}
6414	}
6415
6416	return p.Err()
6417}
6418
6419const opNotifyWhenUploaded = "NotifyWhenUploaded"
6420
6421// NotifyWhenUploadedRequest generates a "aws/request.Request" representing the
6422// client's request for the NotifyWhenUploaded operation. The "output" return
6423// value will be populated with the request's response once the request completes
6424// successfully.
6425//
6426// Use "Send" method on the returned Request to send the API call to the service.
6427// the "output" return value is not valid until after Send returns without error.
6428//
6429// See NotifyWhenUploaded for more information on using the NotifyWhenUploaded
6430// API call, and error handling.
6431//
6432// This method is useful when you want to inject custom logic or configuration
6433// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6434//
6435//
6436//    // Example sending a request using the NotifyWhenUploadedRequest method.
6437//    req, resp := client.NotifyWhenUploadedRequest(params)
6438//
6439//    err := req.Send()
6440//    if err == nil { // resp is now filled
6441//        fmt.Println(resp)
6442//    }
6443//
6444// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/NotifyWhenUploaded
6445func (c *StorageGateway) NotifyWhenUploadedRequest(input *NotifyWhenUploadedInput) (req *request.Request, output *NotifyWhenUploadedOutput) {
6446	op := &request.Operation{
6447		Name:       opNotifyWhenUploaded,
6448		HTTPMethod: "POST",
6449		HTTPPath:   "/",
6450	}
6451
6452	if input == nil {
6453		input = &NotifyWhenUploadedInput{}
6454	}
6455
6456	output = &NotifyWhenUploadedOutput{}
6457	req = c.newRequest(op, input, output)
6458	return
6459}
6460
6461// NotifyWhenUploaded API operation for AWS Storage Gateway.
6462//
6463// Sends you notification through CloudWatch Events when all files written to
6464// your file share have been uploaded to Amazon S3.
6465//
6466// AWS Storage Gateway can send a notification through Amazon CloudWatch Events
6467// when all files written to your file share up to that point in time have been
6468// uploaded to Amazon S3. These files include files written to the file share
6469// up to the time that you make a request for notification. When the upload
6470// is done, Storage Gateway sends you notification through an Amazon CloudWatch
6471// Event. You can configure CloudWatch Events to send the notification through
6472// event targets such as Amazon SNS or AWS Lambda function. This operation is
6473// only supported for file gateways.
6474//
6475// For more information, see Getting file upload notification (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-upload-notification)
6476// in the AWS Storage Gateway User Guide.
6477//
6478// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6479// with awserr.Error's Code and Message methods to get detailed information about
6480// the error.
6481//
6482// See the AWS API reference guide for AWS Storage Gateway's
6483// API operation NotifyWhenUploaded for usage and error information.
6484//
6485// Returned Error Types:
6486//   * InvalidGatewayRequestException
6487//   An exception occurred because an invalid gateway request was issued to the
6488//   service. For more information, see the error and message fields.
6489//
6490//   * InternalServerError
6491//   An internal server error has occurred during the request. For more information,
6492//   see the error and message fields.
6493//
6494// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/NotifyWhenUploaded
6495func (c *StorageGateway) NotifyWhenUploaded(input *NotifyWhenUploadedInput) (*NotifyWhenUploadedOutput, error) {
6496	req, out := c.NotifyWhenUploadedRequest(input)
6497	return out, req.Send()
6498}
6499
6500// NotifyWhenUploadedWithContext is the same as NotifyWhenUploaded with the addition of
6501// the ability to pass a context and additional request options.
6502//
6503// See NotifyWhenUploaded for details on how to use this API operation.
6504//
6505// The context must be non-nil and will be used for request cancellation. If
6506// the context is nil a panic will occur. In the future the SDK may create
6507// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6508// for more information on using Contexts.
6509func (c *StorageGateway) NotifyWhenUploadedWithContext(ctx aws.Context, input *NotifyWhenUploadedInput, opts ...request.Option) (*NotifyWhenUploadedOutput, error) {
6510	req, out := c.NotifyWhenUploadedRequest(input)
6511	req.SetContext(ctx)
6512	req.ApplyOptions(opts...)
6513	return out, req.Send()
6514}
6515
6516const opRefreshCache = "RefreshCache"
6517
6518// RefreshCacheRequest generates a "aws/request.Request" representing the
6519// client's request for the RefreshCache operation. The "output" return
6520// value will be populated with the request's response once the request completes
6521// successfully.
6522//
6523// Use "Send" method on the returned Request to send the API call to the service.
6524// the "output" return value is not valid until after Send returns without error.
6525//
6526// See RefreshCache for more information on using the RefreshCache
6527// API call, and error handling.
6528//
6529// This method is useful when you want to inject custom logic or configuration
6530// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6531//
6532//
6533//    // Example sending a request using the RefreshCacheRequest method.
6534//    req, resp := client.RefreshCacheRequest(params)
6535//
6536//    err := req.Send()
6537//    if err == nil { // resp is now filled
6538//        fmt.Println(resp)
6539//    }
6540//
6541// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RefreshCache
6542func (c *StorageGateway) RefreshCacheRequest(input *RefreshCacheInput) (req *request.Request, output *RefreshCacheOutput) {
6543	op := &request.Operation{
6544		Name:       opRefreshCache,
6545		HTTPMethod: "POST",
6546		HTTPPath:   "/",
6547	}
6548
6549	if input == nil {
6550		input = &RefreshCacheInput{}
6551	}
6552
6553	output = &RefreshCacheOutput{}
6554	req = c.newRequest(op, input, output)
6555	return
6556}
6557
6558// RefreshCache API operation for AWS Storage Gateway.
6559//
6560// Refreshes the cached inventory of objects for the specified file share. This
6561// operation finds objects in the Amazon S3 bucket that were added, removed,
6562// or replaced since the gateway last listed the bucket's contents and cached
6563// the results. This operation does not import files into the file gateway cache
6564// storage. It only updates the cached inventory to reflect changes in the inventory
6565// of the objects in the S3 bucket. This operation is only supported in the
6566// file gateway type. You can subscribe to be notified through an Amazon CloudWatch
6567// event when your RefreshCache operation completes. For more information, see
6568// Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
6569// in the AWS Storage Gateway User Guide.
6570//
6571// When this API is called, it only initiates the refresh operation. When the
6572// API call completes and returns a success code, it doesn't necessarily mean
6573// that the file refresh has completed. You should use the refresh-complete
6574// notification to determine that the operation has completed before you check
6575// for new files on the gateway file share. You can subscribe to be notified
6576// through a CloudWatch event when your RefreshCache operation completes.
6577//
6578// Throttle limit: This API is asynchronous, so the gateway will accept no more
6579// than two refreshes at any time. We recommend using the refresh-complete CloudWatch
6580// event notification before issuing additional requests. For more information,
6581// see Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
6582// in the AWS Storage Gateway User Guide.
6583//
6584// If you invoke the RefreshCache API when two requests are already being processed,
6585// any new request will cause an InvalidGatewayRequestException error because
6586// too many requests were sent to the server.
6587//
6588// For more information, see Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
6589// in the AWS Storage Gateway User Guide.
6590//
6591// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6592// with awserr.Error's Code and Message methods to get detailed information about
6593// the error.
6594//
6595// See the AWS API reference guide for AWS Storage Gateway's
6596// API operation RefreshCache for usage and error information.
6597//
6598// Returned Error Types:
6599//   * InvalidGatewayRequestException
6600//   An exception occurred because an invalid gateway request was issued to the
6601//   service. For more information, see the error and message fields.
6602//
6603//   * InternalServerError
6604//   An internal server error has occurred during the request. For more information,
6605//   see the error and message fields.
6606//
6607// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RefreshCache
6608func (c *StorageGateway) RefreshCache(input *RefreshCacheInput) (*RefreshCacheOutput, error) {
6609	req, out := c.RefreshCacheRequest(input)
6610	return out, req.Send()
6611}
6612
6613// RefreshCacheWithContext is the same as RefreshCache with the addition of
6614// the ability to pass a context and additional request options.
6615//
6616// See RefreshCache for details on how to use this API operation.
6617//
6618// The context must be non-nil and will be used for request cancellation. If
6619// the context is nil a panic will occur. In the future the SDK may create
6620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6621// for more information on using Contexts.
6622func (c *StorageGateway) RefreshCacheWithContext(ctx aws.Context, input *RefreshCacheInput, opts ...request.Option) (*RefreshCacheOutput, error) {
6623	req, out := c.RefreshCacheRequest(input)
6624	req.SetContext(ctx)
6625	req.ApplyOptions(opts...)
6626	return out, req.Send()
6627}
6628
6629const opRemoveTagsFromResource = "RemoveTagsFromResource"
6630
6631// RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the
6632// client's request for the RemoveTagsFromResource operation. The "output" return
6633// value will be populated with the request's response once the request completes
6634// successfully.
6635//
6636// Use "Send" method on the returned Request to send the API call to the service.
6637// the "output" return value is not valid until after Send returns without error.
6638//
6639// See RemoveTagsFromResource for more information on using the RemoveTagsFromResource
6640// API call, and error handling.
6641//
6642// This method is useful when you want to inject custom logic or configuration
6643// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6644//
6645//
6646//    // Example sending a request using the RemoveTagsFromResourceRequest method.
6647//    req, resp := client.RemoveTagsFromResourceRequest(params)
6648//
6649//    err := req.Send()
6650//    if err == nil { // resp is now filled
6651//        fmt.Println(resp)
6652//    }
6653//
6654// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RemoveTagsFromResource
6655func (c *StorageGateway) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) {
6656	op := &request.Operation{
6657		Name:       opRemoveTagsFromResource,
6658		HTTPMethod: "POST",
6659		HTTPPath:   "/",
6660	}
6661
6662	if input == nil {
6663		input = &RemoveTagsFromResourceInput{}
6664	}
6665
6666	output = &RemoveTagsFromResourceOutput{}
6667	req = c.newRequest(op, input, output)
6668	return
6669}
6670
6671// RemoveTagsFromResource API operation for AWS Storage Gateway.
6672//
6673// Removes one or more tags from the specified resource. This operation is supported
6674// in storage gateways of all types.
6675//
6676// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6677// with awserr.Error's Code and Message methods to get detailed information about
6678// the error.
6679//
6680// See the AWS API reference guide for AWS Storage Gateway's
6681// API operation RemoveTagsFromResource for usage and error information.
6682//
6683// Returned Error Types:
6684//   * InvalidGatewayRequestException
6685//   An exception occurred because an invalid gateway request was issued to the
6686//   service. For more information, see the error and message fields.
6687//
6688//   * InternalServerError
6689//   An internal server error has occurred during the request. For more information,
6690//   see the error and message fields.
6691//
6692// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RemoveTagsFromResource
6693func (c *StorageGateway) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) {
6694	req, out := c.RemoveTagsFromResourceRequest(input)
6695	return out, req.Send()
6696}
6697
6698// RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of
6699// the ability to pass a context and additional request options.
6700//
6701// See RemoveTagsFromResource for details on how to use this API operation.
6702//
6703// The context must be non-nil and will be used for request cancellation. If
6704// the context is nil a panic will occur. In the future the SDK may create
6705// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6706// for more information on using Contexts.
6707func (c *StorageGateway) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) {
6708	req, out := c.RemoveTagsFromResourceRequest(input)
6709	req.SetContext(ctx)
6710	req.ApplyOptions(opts...)
6711	return out, req.Send()
6712}
6713
6714const opResetCache = "ResetCache"
6715
6716// ResetCacheRequest generates a "aws/request.Request" representing the
6717// client's request for the ResetCache operation. The "output" return
6718// value will be populated with the request's response once the request completes
6719// successfully.
6720//
6721// Use "Send" method on the returned Request to send the API call to the service.
6722// the "output" return value is not valid until after Send returns without error.
6723//
6724// See ResetCache for more information on using the ResetCache
6725// API call, and error handling.
6726//
6727// This method is useful when you want to inject custom logic or configuration
6728// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6729//
6730//
6731//    // Example sending a request using the ResetCacheRequest method.
6732//    req, resp := client.ResetCacheRequest(params)
6733//
6734//    err := req.Send()
6735//    if err == nil { // resp is now filled
6736//        fmt.Println(resp)
6737//    }
6738//
6739// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ResetCache
6740func (c *StorageGateway) ResetCacheRequest(input *ResetCacheInput) (req *request.Request, output *ResetCacheOutput) {
6741	op := &request.Operation{
6742		Name:       opResetCache,
6743		HTTPMethod: "POST",
6744		HTTPPath:   "/",
6745	}
6746
6747	if input == nil {
6748		input = &ResetCacheInput{}
6749	}
6750
6751	output = &ResetCacheOutput{}
6752	req = c.newRequest(op, input, output)
6753	return
6754}
6755
6756// ResetCache API operation for AWS Storage Gateway.
6757//
6758// Resets all cache disks that have encountered an error and makes the disks
6759// available for reconfiguration as cache storage. If your cache disk encounters
6760// an error, the gateway prevents read and write operations on virtual tapes
6761// in the gateway. For example, an error can occur when a disk is corrupted
6762// or removed from the gateway. When a cache is reset, the gateway loses its
6763// cache storage. At this point, you can reconfigure the disks as cache disks.
6764// This operation is only supported in the cached volume and tape types.
6765//
6766// If the cache disk you are resetting contains data that has not been uploaded
6767// to Amazon S3 yet, that data can be lost. After you reset cache disks, there
6768// will be no configured cache disks left in the gateway, so you must configure
6769// at least one new cache disk for your gateway to function properly.
6770//
6771// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6772// with awserr.Error's Code and Message methods to get detailed information about
6773// the error.
6774//
6775// See the AWS API reference guide for AWS Storage Gateway's
6776// API operation ResetCache for usage and error information.
6777//
6778// Returned Error Types:
6779//   * InvalidGatewayRequestException
6780//   An exception occurred because an invalid gateway request was issued to the
6781//   service. For more information, see the error and message fields.
6782//
6783//   * InternalServerError
6784//   An internal server error has occurred during the request. For more information,
6785//   see the error and message fields.
6786//
6787// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ResetCache
6788func (c *StorageGateway) ResetCache(input *ResetCacheInput) (*ResetCacheOutput, error) {
6789	req, out := c.ResetCacheRequest(input)
6790	return out, req.Send()
6791}
6792
6793// ResetCacheWithContext is the same as ResetCache with the addition of
6794// the ability to pass a context and additional request options.
6795//
6796// See ResetCache for details on how to use this API operation.
6797//
6798// The context must be non-nil and will be used for request cancellation. If
6799// the context is nil a panic will occur. In the future the SDK may create
6800// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6801// for more information on using Contexts.
6802func (c *StorageGateway) ResetCacheWithContext(ctx aws.Context, input *ResetCacheInput, opts ...request.Option) (*ResetCacheOutput, error) {
6803	req, out := c.ResetCacheRequest(input)
6804	req.SetContext(ctx)
6805	req.ApplyOptions(opts...)
6806	return out, req.Send()
6807}
6808
6809const opRetrieveTapeArchive = "RetrieveTapeArchive"
6810
6811// RetrieveTapeArchiveRequest generates a "aws/request.Request" representing the
6812// client's request for the RetrieveTapeArchive operation. The "output" return
6813// value will be populated with the request's response once the request completes
6814// successfully.
6815//
6816// Use "Send" method on the returned Request to send the API call to the service.
6817// the "output" return value is not valid until after Send returns without error.
6818//
6819// See RetrieveTapeArchive for more information on using the RetrieveTapeArchive
6820// API call, and error handling.
6821//
6822// This method is useful when you want to inject custom logic or configuration
6823// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6824//
6825//
6826//    // Example sending a request using the RetrieveTapeArchiveRequest method.
6827//    req, resp := client.RetrieveTapeArchiveRequest(params)
6828//
6829//    err := req.Send()
6830//    if err == nil { // resp is now filled
6831//        fmt.Println(resp)
6832//    }
6833//
6834// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeArchive
6835func (c *StorageGateway) RetrieveTapeArchiveRequest(input *RetrieveTapeArchiveInput) (req *request.Request, output *RetrieveTapeArchiveOutput) {
6836	op := &request.Operation{
6837		Name:       opRetrieveTapeArchive,
6838		HTTPMethod: "POST",
6839		HTTPPath:   "/",
6840	}
6841
6842	if input == nil {
6843		input = &RetrieveTapeArchiveInput{}
6844	}
6845
6846	output = &RetrieveTapeArchiveOutput{}
6847	req = c.newRequest(op, input, output)
6848	return
6849}
6850
6851// RetrieveTapeArchive API operation for AWS Storage Gateway.
6852//
6853// Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a
6854// tape gateway. Virtual tapes archived in the VTS are not associated with any
6855// gateway. However after a tape is retrieved, it is associated with a gateway,
6856// even though it is also listed in the VTS, that is, archive. This operation
6857// is only supported in the tape gateway type.
6858//
6859// Once a tape is successfully retrieved to a gateway, it cannot be retrieved
6860// again to another gateway. You must archive the tape again before you can
6861// retrieve it to another gateway. This operation is only supported in the tape
6862// gateway type.
6863//
6864// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6865// with awserr.Error's Code and Message methods to get detailed information about
6866// the error.
6867//
6868// See the AWS API reference guide for AWS Storage Gateway's
6869// API operation RetrieveTapeArchive for usage and error information.
6870//
6871// Returned Error Types:
6872//   * InvalidGatewayRequestException
6873//   An exception occurred because an invalid gateway request was issued to the
6874//   service. For more information, see the error and message fields.
6875//
6876//   * InternalServerError
6877//   An internal server error has occurred during the request. For more information,
6878//   see the error and message fields.
6879//
6880// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeArchive
6881func (c *StorageGateway) RetrieveTapeArchive(input *RetrieveTapeArchiveInput) (*RetrieveTapeArchiveOutput, error) {
6882	req, out := c.RetrieveTapeArchiveRequest(input)
6883	return out, req.Send()
6884}
6885
6886// RetrieveTapeArchiveWithContext is the same as RetrieveTapeArchive with the addition of
6887// the ability to pass a context and additional request options.
6888//
6889// See RetrieveTapeArchive for details on how to use this API operation.
6890//
6891// The context must be non-nil and will be used for request cancellation. If
6892// the context is nil a panic will occur. In the future the SDK may create
6893// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6894// for more information on using Contexts.
6895func (c *StorageGateway) RetrieveTapeArchiveWithContext(ctx aws.Context, input *RetrieveTapeArchiveInput, opts ...request.Option) (*RetrieveTapeArchiveOutput, error) {
6896	req, out := c.RetrieveTapeArchiveRequest(input)
6897	req.SetContext(ctx)
6898	req.ApplyOptions(opts...)
6899	return out, req.Send()
6900}
6901
6902const opRetrieveTapeRecoveryPoint = "RetrieveTapeRecoveryPoint"
6903
6904// RetrieveTapeRecoveryPointRequest generates a "aws/request.Request" representing the
6905// client's request for the RetrieveTapeRecoveryPoint operation. The "output" return
6906// value will be populated with the request's response once the request completes
6907// successfully.
6908//
6909// Use "Send" method on the returned Request to send the API call to the service.
6910// the "output" return value is not valid until after Send returns without error.
6911//
6912// See RetrieveTapeRecoveryPoint for more information on using the RetrieveTapeRecoveryPoint
6913// API call, and error handling.
6914//
6915// This method is useful when you want to inject custom logic or configuration
6916// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6917//
6918//
6919//    // Example sending a request using the RetrieveTapeRecoveryPointRequest method.
6920//    req, resp := client.RetrieveTapeRecoveryPointRequest(params)
6921//
6922//    err := req.Send()
6923//    if err == nil { // resp is now filled
6924//        fmt.Println(resp)
6925//    }
6926//
6927// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeRecoveryPoint
6928func (c *StorageGateway) RetrieveTapeRecoveryPointRequest(input *RetrieveTapeRecoveryPointInput) (req *request.Request, output *RetrieveTapeRecoveryPointOutput) {
6929	op := &request.Operation{
6930		Name:       opRetrieveTapeRecoveryPoint,
6931		HTTPMethod: "POST",
6932		HTTPPath:   "/",
6933	}
6934
6935	if input == nil {
6936		input = &RetrieveTapeRecoveryPointInput{}
6937	}
6938
6939	output = &RetrieveTapeRecoveryPointOutput{}
6940	req = c.newRequest(op, input, output)
6941	return
6942}
6943
6944// RetrieveTapeRecoveryPoint API operation for AWS Storage Gateway.
6945//
6946// Retrieves the recovery point for the specified virtual tape. This operation
6947// is only supported in the tape gateway type.
6948//
6949// A recovery point is a point in time view of a virtual tape at which all the
6950// data on the tape is consistent. If your gateway crashes, virtual tapes that
6951// have recovery points can be recovered to a new gateway.
6952//
6953// The virtual tape can be retrieved to only one gateway. The retrieved tape
6954// is read-only. The virtual tape can be retrieved to only a tape gateway. There
6955// is no charge for retrieving recovery points.
6956//
6957// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6958// with awserr.Error's Code and Message methods to get detailed information about
6959// the error.
6960//
6961// See the AWS API reference guide for AWS Storage Gateway's
6962// API operation RetrieveTapeRecoveryPoint for usage and error information.
6963//
6964// Returned Error Types:
6965//   * InvalidGatewayRequestException
6966//   An exception occurred because an invalid gateway request was issued to the
6967//   service. For more information, see the error and message fields.
6968//
6969//   * InternalServerError
6970//   An internal server error has occurred during the request. For more information,
6971//   see the error and message fields.
6972//
6973// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeRecoveryPoint
6974func (c *StorageGateway) RetrieveTapeRecoveryPoint(input *RetrieveTapeRecoveryPointInput) (*RetrieveTapeRecoveryPointOutput, error) {
6975	req, out := c.RetrieveTapeRecoveryPointRequest(input)
6976	return out, req.Send()
6977}
6978
6979// RetrieveTapeRecoveryPointWithContext is the same as RetrieveTapeRecoveryPoint with the addition of
6980// the ability to pass a context and additional request options.
6981//
6982// See RetrieveTapeRecoveryPoint for details on how to use this API operation.
6983//
6984// The context must be non-nil and will be used for request cancellation. If
6985// the context is nil a panic will occur. In the future the SDK may create
6986// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6987// for more information on using Contexts.
6988func (c *StorageGateway) RetrieveTapeRecoveryPointWithContext(ctx aws.Context, input *RetrieveTapeRecoveryPointInput, opts ...request.Option) (*RetrieveTapeRecoveryPointOutput, error) {
6989	req, out := c.RetrieveTapeRecoveryPointRequest(input)
6990	req.SetContext(ctx)
6991	req.ApplyOptions(opts...)
6992	return out, req.Send()
6993}
6994
6995const opSetLocalConsolePassword = "SetLocalConsolePassword"
6996
6997// SetLocalConsolePasswordRequest generates a "aws/request.Request" representing the
6998// client's request for the SetLocalConsolePassword operation. The "output" return
6999// value will be populated with the request's response once the request completes
7000// successfully.
7001//
7002// Use "Send" method on the returned Request to send the API call to the service.
7003// the "output" return value is not valid until after Send returns without error.
7004//
7005// See SetLocalConsolePassword for more information on using the SetLocalConsolePassword
7006// API call, and error handling.
7007//
7008// This method is useful when you want to inject custom logic or configuration
7009// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7010//
7011//
7012//    // Example sending a request using the SetLocalConsolePasswordRequest method.
7013//    req, resp := client.SetLocalConsolePasswordRequest(params)
7014//
7015//    err := req.Send()
7016//    if err == nil { // resp is now filled
7017//        fmt.Println(resp)
7018//    }
7019//
7020// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetLocalConsolePassword
7021func (c *StorageGateway) SetLocalConsolePasswordRequest(input *SetLocalConsolePasswordInput) (req *request.Request, output *SetLocalConsolePasswordOutput) {
7022	op := &request.Operation{
7023		Name:       opSetLocalConsolePassword,
7024		HTTPMethod: "POST",
7025		HTTPPath:   "/",
7026	}
7027
7028	if input == nil {
7029		input = &SetLocalConsolePasswordInput{}
7030	}
7031
7032	output = &SetLocalConsolePasswordOutput{}
7033	req = c.newRequest(op, input, output)
7034	return
7035}
7036
7037// SetLocalConsolePassword API operation for AWS Storage Gateway.
7038//
7039// Sets the password for your VM local console. When you log in to the local
7040// console for the first time, you log in to the VM with the default credentials.
7041// We recommend that you set a new password. You don't need to know the default
7042// password to set a new password.
7043//
7044// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7045// with awserr.Error's Code and Message methods to get detailed information about
7046// the error.
7047//
7048// See the AWS API reference guide for AWS Storage Gateway's
7049// API operation SetLocalConsolePassword for usage and error information.
7050//
7051// Returned Error Types:
7052//   * InvalidGatewayRequestException
7053//   An exception occurred because an invalid gateway request was issued to the
7054//   service. For more information, see the error and message fields.
7055//
7056//   * InternalServerError
7057//   An internal server error has occurred during the request. For more information,
7058//   see the error and message fields.
7059//
7060// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetLocalConsolePassword
7061func (c *StorageGateway) SetLocalConsolePassword(input *SetLocalConsolePasswordInput) (*SetLocalConsolePasswordOutput, error) {
7062	req, out := c.SetLocalConsolePasswordRequest(input)
7063	return out, req.Send()
7064}
7065
7066// SetLocalConsolePasswordWithContext is the same as SetLocalConsolePassword with the addition of
7067// the ability to pass a context and additional request options.
7068//
7069// See SetLocalConsolePassword for details on how to use this API operation.
7070//
7071// The context must be non-nil and will be used for request cancellation. If
7072// the context is nil a panic will occur. In the future the SDK may create
7073// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7074// for more information on using Contexts.
7075func (c *StorageGateway) SetLocalConsolePasswordWithContext(ctx aws.Context, input *SetLocalConsolePasswordInput, opts ...request.Option) (*SetLocalConsolePasswordOutput, error) {
7076	req, out := c.SetLocalConsolePasswordRequest(input)
7077	req.SetContext(ctx)
7078	req.ApplyOptions(opts...)
7079	return out, req.Send()
7080}
7081
7082const opSetSMBGuestPassword = "SetSMBGuestPassword"
7083
7084// SetSMBGuestPasswordRequest generates a "aws/request.Request" representing the
7085// client's request for the SetSMBGuestPassword operation. The "output" return
7086// value will be populated with the request's response once the request completes
7087// successfully.
7088//
7089// Use "Send" method on the returned Request to send the API call to the service.
7090// the "output" return value is not valid until after Send returns without error.
7091//
7092// See SetSMBGuestPassword for more information on using the SetSMBGuestPassword
7093// API call, and error handling.
7094//
7095// This method is useful when you want to inject custom logic or configuration
7096// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7097//
7098//
7099//    // Example sending a request using the SetSMBGuestPasswordRequest method.
7100//    req, resp := client.SetSMBGuestPasswordRequest(params)
7101//
7102//    err := req.Send()
7103//    if err == nil { // resp is now filled
7104//        fmt.Println(resp)
7105//    }
7106//
7107// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetSMBGuestPassword
7108func (c *StorageGateway) SetSMBGuestPasswordRequest(input *SetSMBGuestPasswordInput) (req *request.Request, output *SetSMBGuestPasswordOutput) {
7109	op := &request.Operation{
7110		Name:       opSetSMBGuestPassword,
7111		HTTPMethod: "POST",
7112		HTTPPath:   "/",
7113	}
7114
7115	if input == nil {
7116		input = &SetSMBGuestPasswordInput{}
7117	}
7118
7119	output = &SetSMBGuestPasswordOutput{}
7120	req = c.newRequest(op, input, output)
7121	return
7122}
7123
7124// SetSMBGuestPassword API operation for AWS Storage Gateway.
7125//
7126// Sets the password for the guest user smbguest. The smbguest user is the user
7127// when the authentication method for the file share is set to GuestAccess.
7128//
7129// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7130// with awserr.Error's Code and Message methods to get detailed information about
7131// the error.
7132//
7133// See the AWS API reference guide for AWS Storage Gateway's
7134// API operation SetSMBGuestPassword for usage and error information.
7135//
7136// Returned Error Types:
7137//   * InvalidGatewayRequestException
7138//   An exception occurred because an invalid gateway request was issued to the
7139//   service. For more information, see the error and message fields.
7140//
7141//   * InternalServerError
7142//   An internal server error has occurred during the request. For more information,
7143//   see the error and message fields.
7144//
7145// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetSMBGuestPassword
7146func (c *StorageGateway) SetSMBGuestPassword(input *SetSMBGuestPasswordInput) (*SetSMBGuestPasswordOutput, error) {
7147	req, out := c.SetSMBGuestPasswordRequest(input)
7148	return out, req.Send()
7149}
7150
7151// SetSMBGuestPasswordWithContext is the same as SetSMBGuestPassword with the addition of
7152// the ability to pass a context and additional request options.
7153//
7154// See SetSMBGuestPassword for details on how to use this API operation.
7155//
7156// The context must be non-nil and will be used for request cancellation. If
7157// the context is nil a panic will occur. In the future the SDK may create
7158// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7159// for more information on using Contexts.
7160func (c *StorageGateway) SetSMBGuestPasswordWithContext(ctx aws.Context, input *SetSMBGuestPasswordInput, opts ...request.Option) (*SetSMBGuestPasswordOutput, error) {
7161	req, out := c.SetSMBGuestPasswordRequest(input)
7162	req.SetContext(ctx)
7163	req.ApplyOptions(opts...)
7164	return out, req.Send()
7165}
7166
7167const opShutdownGateway = "ShutdownGateway"
7168
7169// ShutdownGatewayRequest generates a "aws/request.Request" representing the
7170// client's request for the ShutdownGateway operation. The "output" return
7171// value will be populated with the request's response once the request completes
7172// successfully.
7173//
7174// Use "Send" method on the returned Request to send the API call to the service.
7175// the "output" return value is not valid until after Send returns without error.
7176//
7177// See ShutdownGateway for more information on using the ShutdownGateway
7178// API call, and error handling.
7179//
7180// This method is useful when you want to inject custom logic or configuration
7181// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7182//
7183//
7184//    // Example sending a request using the ShutdownGatewayRequest method.
7185//    req, resp := client.ShutdownGatewayRequest(params)
7186//
7187//    err := req.Send()
7188//    if err == nil { // resp is now filled
7189//        fmt.Println(resp)
7190//    }
7191//
7192// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ShutdownGateway
7193func (c *StorageGateway) ShutdownGatewayRequest(input *ShutdownGatewayInput) (req *request.Request, output *ShutdownGatewayOutput) {
7194	op := &request.Operation{
7195		Name:       opShutdownGateway,
7196		HTTPMethod: "POST",
7197		HTTPPath:   "/",
7198	}
7199
7200	if input == nil {
7201		input = &ShutdownGatewayInput{}
7202	}
7203
7204	output = &ShutdownGatewayOutput{}
7205	req = c.newRequest(op, input, output)
7206	return
7207}
7208
7209// ShutdownGateway API operation for AWS Storage Gateway.
7210//
7211// Shuts down a gateway. To specify which gateway to shut down, use the Amazon
7212// Resource Name (ARN) of the gateway in the body of your request.
7213//
7214// The operation shuts down the gateway service component running in the gateway's
7215// virtual machine (VM) and not the host VM.
7216//
7217// If you want to shut down the VM, it is recommended that you first shut down
7218// the gateway component in the VM to avoid unpredictable conditions.
7219//
7220// After the gateway is shutdown, you cannot call any other API except StartGateway,
7221// DescribeGatewayInformation, and ListGateways. For more information, see ActivateGateway.
7222// Your applications cannot read from or write to the gateway's storage volumes,
7223// and there are no snapshots taken.
7224//
7225// When you make a shutdown request, you will get a 200 OK success response
7226// immediately. However, it might take some time for the gateway to shut down.
7227// You can call the DescribeGatewayInformation API to check the status. For
7228// more information, see ActivateGateway.
7229//
7230// If do not intend to use the gateway again, you must delete the gateway (using
7231// DeleteGateway) to no longer pay software charges associated with the gateway.
7232//
7233// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7234// with awserr.Error's Code and Message methods to get detailed information about
7235// the error.
7236//
7237// See the AWS API reference guide for AWS Storage Gateway's
7238// API operation ShutdownGateway for usage and error information.
7239//
7240// Returned Error Types:
7241//   * InvalidGatewayRequestException
7242//   An exception occurred because an invalid gateway request was issued to the
7243//   service. For more information, see the error and message fields.
7244//
7245//   * InternalServerError
7246//   An internal server error has occurred during the request. For more information,
7247//   see the error and message fields.
7248//
7249// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ShutdownGateway
7250func (c *StorageGateway) ShutdownGateway(input *ShutdownGatewayInput) (*ShutdownGatewayOutput, error) {
7251	req, out := c.ShutdownGatewayRequest(input)
7252	return out, req.Send()
7253}
7254
7255// ShutdownGatewayWithContext is the same as ShutdownGateway with the addition of
7256// the ability to pass a context and additional request options.
7257//
7258// See ShutdownGateway for details on how to use this API operation.
7259//
7260// The context must be non-nil and will be used for request cancellation. If
7261// the context is nil a panic will occur. In the future the SDK may create
7262// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7263// for more information on using Contexts.
7264func (c *StorageGateway) ShutdownGatewayWithContext(ctx aws.Context, input *ShutdownGatewayInput, opts ...request.Option) (*ShutdownGatewayOutput, error) {
7265	req, out := c.ShutdownGatewayRequest(input)
7266	req.SetContext(ctx)
7267	req.ApplyOptions(opts...)
7268	return out, req.Send()
7269}
7270
7271const opStartAvailabilityMonitorTest = "StartAvailabilityMonitorTest"
7272
7273// StartAvailabilityMonitorTestRequest generates a "aws/request.Request" representing the
7274// client's request for the StartAvailabilityMonitorTest operation. The "output" return
7275// value will be populated with the request's response once the request completes
7276// successfully.
7277//
7278// Use "Send" method on the returned Request to send the API call to the service.
7279// the "output" return value is not valid until after Send returns without error.
7280//
7281// See StartAvailabilityMonitorTest for more information on using the StartAvailabilityMonitorTest
7282// API call, and error handling.
7283//
7284// This method is useful when you want to inject custom logic or configuration
7285// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7286//
7287//
7288//    // Example sending a request using the StartAvailabilityMonitorTestRequest method.
7289//    req, resp := client.StartAvailabilityMonitorTestRequest(params)
7290//
7291//    err := req.Send()
7292//    if err == nil { // resp is now filled
7293//        fmt.Println(resp)
7294//    }
7295//
7296// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartAvailabilityMonitorTest
7297func (c *StorageGateway) StartAvailabilityMonitorTestRequest(input *StartAvailabilityMonitorTestInput) (req *request.Request, output *StartAvailabilityMonitorTestOutput) {
7298	op := &request.Operation{
7299		Name:       opStartAvailabilityMonitorTest,
7300		HTTPMethod: "POST",
7301		HTTPPath:   "/",
7302	}
7303
7304	if input == nil {
7305		input = &StartAvailabilityMonitorTestInput{}
7306	}
7307
7308	output = &StartAvailabilityMonitorTestOutput{}
7309	req = c.newRequest(op, input, output)
7310	return
7311}
7312
7313// StartAvailabilityMonitorTest API operation for AWS Storage Gateway.
7314//
7315// Start a test that verifies that the specified gateway is configured for High
7316// Availability monitoring in your host environment. This request only initiates
7317// the test and that a successful response only indicates that the test was
7318// started. It doesn't indicate that the test passed. For the status of the
7319// test, invoke the DescribeAvailabilityMonitorTest API.
7320//
7321// Starting this test will cause your gateway to go offline for a brief period.
7322//
7323// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7324// with awserr.Error's Code and Message methods to get detailed information about
7325// the error.
7326//
7327// See the AWS API reference guide for AWS Storage Gateway's
7328// API operation StartAvailabilityMonitorTest for usage and error information.
7329//
7330// Returned Error Types:
7331//   * InvalidGatewayRequestException
7332//   An exception occurred because an invalid gateway request was issued to the
7333//   service. For more information, see the error and message fields.
7334//
7335//   * InternalServerError
7336//   An internal server error has occurred during the request. For more information,
7337//   see the error and message fields.
7338//
7339// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartAvailabilityMonitorTest
7340func (c *StorageGateway) StartAvailabilityMonitorTest(input *StartAvailabilityMonitorTestInput) (*StartAvailabilityMonitorTestOutput, error) {
7341	req, out := c.StartAvailabilityMonitorTestRequest(input)
7342	return out, req.Send()
7343}
7344
7345// StartAvailabilityMonitorTestWithContext is the same as StartAvailabilityMonitorTest with the addition of
7346// the ability to pass a context and additional request options.
7347//
7348// See StartAvailabilityMonitorTest for details on how to use this API operation.
7349//
7350// The context must be non-nil and will be used for request cancellation. If
7351// the context is nil a panic will occur. In the future the SDK may create
7352// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7353// for more information on using Contexts.
7354func (c *StorageGateway) StartAvailabilityMonitorTestWithContext(ctx aws.Context, input *StartAvailabilityMonitorTestInput, opts ...request.Option) (*StartAvailabilityMonitorTestOutput, error) {
7355	req, out := c.StartAvailabilityMonitorTestRequest(input)
7356	req.SetContext(ctx)
7357	req.ApplyOptions(opts...)
7358	return out, req.Send()
7359}
7360
7361const opStartGateway = "StartGateway"
7362
7363// StartGatewayRequest generates a "aws/request.Request" representing the
7364// client's request for the StartGateway operation. The "output" return
7365// value will be populated with the request's response once the request completes
7366// successfully.
7367//
7368// Use "Send" method on the returned Request to send the API call to the service.
7369// the "output" return value is not valid until after Send returns without error.
7370//
7371// See StartGateway for more information on using the StartGateway
7372// API call, and error handling.
7373//
7374// This method is useful when you want to inject custom logic or configuration
7375// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7376//
7377//
7378//    // Example sending a request using the StartGatewayRequest method.
7379//    req, resp := client.StartGatewayRequest(params)
7380//
7381//    err := req.Send()
7382//    if err == nil { // resp is now filled
7383//        fmt.Println(resp)
7384//    }
7385//
7386// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartGateway
7387func (c *StorageGateway) StartGatewayRequest(input *StartGatewayInput) (req *request.Request, output *StartGatewayOutput) {
7388	op := &request.Operation{
7389		Name:       opStartGateway,
7390		HTTPMethod: "POST",
7391		HTTPPath:   "/",
7392	}
7393
7394	if input == nil {
7395		input = &StartGatewayInput{}
7396	}
7397
7398	output = &StartGatewayOutput{}
7399	req = c.newRequest(op, input, output)
7400	return
7401}
7402
7403// StartGateway API operation for AWS Storage Gateway.
7404//
7405// Starts a gateway that you previously shut down (see ShutdownGateway). After
7406// the gateway starts, you can then make other API calls, your applications
7407// can read from or write to the gateway's storage volumes and you will be able
7408// to take snapshot backups.
7409//
7410// When you make a request, you will get a 200 OK success response immediately.
7411// However, it might take some time for the gateway to be ready. You should
7412// call DescribeGatewayInformation and check the status before making any additional
7413// API calls. For more information, see ActivateGateway.
7414//
7415// To specify which gateway to start, use the Amazon Resource Name (ARN) of
7416// the gateway in your request.
7417//
7418// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7419// with awserr.Error's Code and Message methods to get detailed information about
7420// the error.
7421//
7422// See the AWS API reference guide for AWS Storage Gateway's
7423// API operation StartGateway for usage and error information.
7424//
7425// Returned Error Types:
7426//   * InvalidGatewayRequestException
7427//   An exception occurred because an invalid gateway request was issued to the
7428//   service. For more information, see the error and message fields.
7429//
7430//   * InternalServerError
7431//   An internal server error has occurred during the request. For more information,
7432//   see the error and message fields.
7433//
7434// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartGateway
7435func (c *StorageGateway) StartGateway(input *StartGatewayInput) (*StartGatewayOutput, error) {
7436	req, out := c.StartGatewayRequest(input)
7437	return out, req.Send()
7438}
7439
7440// StartGatewayWithContext is the same as StartGateway with the addition of
7441// the ability to pass a context and additional request options.
7442//
7443// See StartGateway for details on how to use this API operation.
7444//
7445// The context must be non-nil and will be used for request cancellation. If
7446// the context is nil a panic will occur. In the future the SDK may create
7447// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7448// for more information on using Contexts.
7449func (c *StorageGateway) StartGatewayWithContext(ctx aws.Context, input *StartGatewayInput, opts ...request.Option) (*StartGatewayOutput, error) {
7450	req, out := c.StartGatewayRequest(input)
7451	req.SetContext(ctx)
7452	req.ApplyOptions(opts...)
7453	return out, req.Send()
7454}
7455
7456const opUpdateAutomaticTapeCreationPolicy = "UpdateAutomaticTapeCreationPolicy"
7457
7458// UpdateAutomaticTapeCreationPolicyRequest generates a "aws/request.Request" representing the
7459// client's request for the UpdateAutomaticTapeCreationPolicy operation. The "output" return
7460// value will be populated with the request's response once the request completes
7461// successfully.
7462//
7463// Use "Send" method on the returned Request to send the API call to the service.
7464// the "output" return value is not valid until after Send returns without error.
7465//
7466// See UpdateAutomaticTapeCreationPolicy for more information on using the UpdateAutomaticTapeCreationPolicy
7467// API call, and error handling.
7468//
7469// This method is useful when you want to inject custom logic or configuration
7470// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7471//
7472//
7473//    // Example sending a request using the UpdateAutomaticTapeCreationPolicyRequest method.
7474//    req, resp := client.UpdateAutomaticTapeCreationPolicyRequest(params)
7475//
7476//    err := req.Send()
7477//    if err == nil { // resp is now filled
7478//        fmt.Println(resp)
7479//    }
7480//
7481// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateAutomaticTapeCreationPolicy
7482func (c *StorageGateway) UpdateAutomaticTapeCreationPolicyRequest(input *UpdateAutomaticTapeCreationPolicyInput) (req *request.Request, output *UpdateAutomaticTapeCreationPolicyOutput) {
7483	op := &request.Operation{
7484		Name:       opUpdateAutomaticTapeCreationPolicy,
7485		HTTPMethod: "POST",
7486		HTTPPath:   "/",
7487	}
7488
7489	if input == nil {
7490		input = &UpdateAutomaticTapeCreationPolicyInput{}
7491	}
7492
7493	output = &UpdateAutomaticTapeCreationPolicyOutput{}
7494	req = c.newRequest(op, input, output)
7495	return
7496}
7497
7498// UpdateAutomaticTapeCreationPolicy API operation for AWS Storage Gateway.
7499//
7500// Updates the automatic tape creation policy of a gateway. Use this to update
7501// the policy with a new set of automatic tape creation rules. This is only
7502// supported for tape gateways.
7503//
7504// By default, there is no automatic tape creation policy.
7505//
7506// A gateway can have only one automatic tape creation policy.
7507//
7508// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7509// with awserr.Error's Code and Message methods to get detailed information about
7510// the error.
7511//
7512// See the AWS API reference guide for AWS Storage Gateway's
7513// API operation UpdateAutomaticTapeCreationPolicy for usage and error information.
7514//
7515// Returned Error Types:
7516//   * InvalidGatewayRequestException
7517//   An exception occurred because an invalid gateway request was issued to the
7518//   service. For more information, see the error and message fields.
7519//
7520//   * InternalServerError
7521//   An internal server error has occurred during the request. For more information,
7522//   see the error and message fields.
7523//
7524// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateAutomaticTapeCreationPolicy
7525func (c *StorageGateway) UpdateAutomaticTapeCreationPolicy(input *UpdateAutomaticTapeCreationPolicyInput) (*UpdateAutomaticTapeCreationPolicyOutput, error) {
7526	req, out := c.UpdateAutomaticTapeCreationPolicyRequest(input)
7527	return out, req.Send()
7528}
7529
7530// UpdateAutomaticTapeCreationPolicyWithContext is the same as UpdateAutomaticTapeCreationPolicy with the addition of
7531// the ability to pass a context and additional request options.
7532//
7533// See UpdateAutomaticTapeCreationPolicy for details on how to use this API operation.
7534//
7535// The context must be non-nil and will be used for request cancellation. If
7536// the context is nil a panic will occur. In the future the SDK may create
7537// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7538// for more information on using Contexts.
7539func (c *StorageGateway) UpdateAutomaticTapeCreationPolicyWithContext(ctx aws.Context, input *UpdateAutomaticTapeCreationPolicyInput, opts ...request.Option) (*UpdateAutomaticTapeCreationPolicyOutput, error) {
7540	req, out := c.UpdateAutomaticTapeCreationPolicyRequest(input)
7541	req.SetContext(ctx)
7542	req.ApplyOptions(opts...)
7543	return out, req.Send()
7544}
7545
7546const opUpdateBandwidthRateLimit = "UpdateBandwidthRateLimit"
7547
7548// UpdateBandwidthRateLimitRequest generates a "aws/request.Request" representing the
7549// client's request for the UpdateBandwidthRateLimit operation. The "output" return
7550// value will be populated with the request's response once the request completes
7551// successfully.
7552//
7553// Use "Send" method on the returned Request to send the API call to the service.
7554// the "output" return value is not valid until after Send returns without error.
7555//
7556// See UpdateBandwidthRateLimit for more information on using the UpdateBandwidthRateLimit
7557// API call, and error handling.
7558//
7559// This method is useful when you want to inject custom logic or configuration
7560// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7561//
7562//
7563//    // Example sending a request using the UpdateBandwidthRateLimitRequest method.
7564//    req, resp := client.UpdateBandwidthRateLimitRequest(params)
7565//
7566//    err := req.Send()
7567//    if err == nil { // resp is now filled
7568//        fmt.Println(resp)
7569//    }
7570//
7571// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimit
7572func (c *StorageGateway) UpdateBandwidthRateLimitRequest(input *UpdateBandwidthRateLimitInput) (req *request.Request, output *UpdateBandwidthRateLimitOutput) {
7573	op := &request.Operation{
7574		Name:       opUpdateBandwidthRateLimit,
7575		HTTPMethod: "POST",
7576		HTTPPath:   "/",
7577	}
7578
7579	if input == nil {
7580		input = &UpdateBandwidthRateLimitInput{}
7581	}
7582
7583	output = &UpdateBandwidthRateLimitOutput{}
7584	req = c.newRequest(op, input, output)
7585	return
7586}
7587
7588// UpdateBandwidthRateLimit API operation for AWS Storage Gateway.
7589//
7590// Updates the bandwidth rate limits of a gateway. You can update both the upload
7591// and download bandwidth rate limit or specify only one of the two. If you
7592// don't set a bandwidth rate limit, the existing rate limit remains. This operation
7593// is supported for the stored volume, cached volume, and tape gateway types.
7594//
7595// By default, a gateway's bandwidth rate limits are not set. If you don't set
7596// any limit, the gateway does not have any limitations on its bandwidth usage
7597// and could potentially use the maximum available bandwidth.
7598//
7599// To specify which gateway to update, use the Amazon Resource Name (ARN) of
7600// the gateway in your request.
7601//
7602// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7603// with awserr.Error's Code and Message methods to get detailed information about
7604// the error.
7605//
7606// See the AWS API reference guide for AWS Storage Gateway's
7607// API operation UpdateBandwidthRateLimit for usage and error information.
7608//
7609// Returned Error Types:
7610//   * InvalidGatewayRequestException
7611//   An exception occurred because an invalid gateway request was issued to the
7612//   service. For more information, see the error and message fields.
7613//
7614//   * InternalServerError
7615//   An internal server error has occurred during the request. For more information,
7616//   see the error and message fields.
7617//
7618// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimit
7619func (c *StorageGateway) UpdateBandwidthRateLimit(input *UpdateBandwidthRateLimitInput) (*UpdateBandwidthRateLimitOutput, error) {
7620	req, out := c.UpdateBandwidthRateLimitRequest(input)
7621	return out, req.Send()
7622}
7623
7624// UpdateBandwidthRateLimitWithContext is the same as UpdateBandwidthRateLimit with the addition of
7625// the ability to pass a context and additional request options.
7626//
7627// See UpdateBandwidthRateLimit for details on how to use this API operation.
7628//
7629// The context must be non-nil and will be used for request cancellation. If
7630// the context is nil a panic will occur. In the future the SDK may create
7631// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7632// for more information on using Contexts.
7633func (c *StorageGateway) UpdateBandwidthRateLimitWithContext(ctx aws.Context, input *UpdateBandwidthRateLimitInput, opts ...request.Option) (*UpdateBandwidthRateLimitOutput, error) {
7634	req, out := c.UpdateBandwidthRateLimitRequest(input)
7635	req.SetContext(ctx)
7636	req.ApplyOptions(opts...)
7637	return out, req.Send()
7638}
7639
7640const opUpdateBandwidthRateLimitSchedule = "UpdateBandwidthRateLimitSchedule"
7641
7642// UpdateBandwidthRateLimitScheduleRequest generates a "aws/request.Request" representing the
7643// client's request for the UpdateBandwidthRateLimitSchedule operation. The "output" return
7644// value will be populated with the request's response once the request completes
7645// successfully.
7646//
7647// Use "Send" method on the returned Request to send the API call to the service.
7648// the "output" return value is not valid until after Send returns without error.
7649//
7650// See UpdateBandwidthRateLimitSchedule for more information on using the UpdateBandwidthRateLimitSchedule
7651// API call, and error handling.
7652//
7653// This method is useful when you want to inject custom logic or configuration
7654// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7655//
7656//
7657//    // Example sending a request using the UpdateBandwidthRateLimitScheduleRequest method.
7658//    req, resp := client.UpdateBandwidthRateLimitScheduleRequest(params)
7659//
7660//    err := req.Send()
7661//    if err == nil { // resp is now filled
7662//        fmt.Println(resp)
7663//    }
7664//
7665// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimitSchedule
7666func (c *StorageGateway) UpdateBandwidthRateLimitScheduleRequest(input *UpdateBandwidthRateLimitScheduleInput) (req *request.Request, output *UpdateBandwidthRateLimitScheduleOutput) {
7667	op := &request.Operation{
7668		Name:       opUpdateBandwidthRateLimitSchedule,
7669		HTTPMethod: "POST",
7670		HTTPPath:   "/",
7671	}
7672
7673	if input == nil {
7674		input = &UpdateBandwidthRateLimitScheduleInput{}
7675	}
7676
7677	output = &UpdateBandwidthRateLimitScheduleOutput{}
7678	req = c.newRequest(op, input, output)
7679	return
7680}
7681
7682// UpdateBandwidthRateLimitSchedule API operation for AWS Storage Gateway.
7683//
7684// Updates the bandwidth rate limit schedule for a specified gateway. By default,
7685// gateways do not have bandwidth rate limit schedules, which means no bandwidth
7686// rate limiting is in effect. Use this to initiate or update a gateway's bandwidth
7687// rate limit schedule. This operation is supported in the volume and tape gateway
7688// types.
7689//
7690// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7691// with awserr.Error's Code and Message methods to get detailed information about
7692// the error.
7693//
7694// See the AWS API reference guide for AWS Storage Gateway's
7695// API operation UpdateBandwidthRateLimitSchedule for usage and error information.
7696//
7697// Returned Error Types:
7698//   * InvalidGatewayRequestException
7699//   An exception occurred because an invalid gateway request was issued to the
7700//   service. For more information, see the error and message fields.
7701//
7702//   * InternalServerError
7703//   An internal server error has occurred during the request. For more information,
7704//   see the error and message fields.
7705//
7706// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimitSchedule
7707func (c *StorageGateway) UpdateBandwidthRateLimitSchedule(input *UpdateBandwidthRateLimitScheduleInput) (*UpdateBandwidthRateLimitScheduleOutput, error) {
7708	req, out := c.UpdateBandwidthRateLimitScheduleRequest(input)
7709	return out, req.Send()
7710}
7711
7712// UpdateBandwidthRateLimitScheduleWithContext is the same as UpdateBandwidthRateLimitSchedule with the addition of
7713// the ability to pass a context and additional request options.
7714//
7715// See UpdateBandwidthRateLimitSchedule for details on how to use this API operation.
7716//
7717// The context must be non-nil and will be used for request cancellation. If
7718// the context is nil a panic will occur. In the future the SDK may create
7719// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7720// for more information on using Contexts.
7721func (c *StorageGateway) UpdateBandwidthRateLimitScheduleWithContext(ctx aws.Context, input *UpdateBandwidthRateLimitScheduleInput, opts ...request.Option) (*UpdateBandwidthRateLimitScheduleOutput, error) {
7722	req, out := c.UpdateBandwidthRateLimitScheduleRequest(input)
7723	req.SetContext(ctx)
7724	req.ApplyOptions(opts...)
7725	return out, req.Send()
7726}
7727
7728const opUpdateChapCredentials = "UpdateChapCredentials"
7729
7730// UpdateChapCredentialsRequest generates a "aws/request.Request" representing the
7731// client's request for the UpdateChapCredentials operation. The "output" return
7732// value will be populated with the request's response once the request completes
7733// successfully.
7734//
7735// Use "Send" method on the returned Request to send the API call to the service.
7736// the "output" return value is not valid until after Send returns without error.
7737//
7738// See UpdateChapCredentials for more information on using the UpdateChapCredentials
7739// API call, and error handling.
7740//
7741// This method is useful when you want to inject custom logic or configuration
7742// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7743//
7744//
7745//    // Example sending a request using the UpdateChapCredentialsRequest method.
7746//    req, resp := client.UpdateChapCredentialsRequest(params)
7747//
7748//    err := req.Send()
7749//    if err == nil { // resp is now filled
7750//        fmt.Println(resp)
7751//    }
7752//
7753// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateChapCredentials
7754func (c *StorageGateway) UpdateChapCredentialsRequest(input *UpdateChapCredentialsInput) (req *request.Request, output *UpdateChapCredentialsOutput) {
7755	op := &request.Operation{
7756		Name:       opUpdateChapCredentials,
7757		HTTPMethod: "POST",
7758		HTTPPath:   "/",
7759	}
7760
7761	if input == nil {
7762		input = &UpdateChapCredentialsInput{}
7763	}
7764
7765	output = &UpdateChapCredentialsOutput{}
7766	req = c.newRequest(op, input, output)
7767	return
7768}
7769
7770// UpdateChapCredentials API operation for AWS Storage Gateway.
7771//
7772// Updates the Challenge-Handshake Authentication Protocol (CHAP) credentials
7773// for a specified iSCSI target. By default, a gateway does not have CHAP enabled;
7774// however, for added security, you might use it. This operation is supported
7775// in the volume and tape gateway types.
7776//
7777// When you update CHAP credentials, all existing connections on the target
7778// are closed and initiators must reconnect with the new credentials.
7779//
7780// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7781// with awserr.Error's Code and Message methods to get detailed information about
7782// the error.
7783//
7784// See the AWS API reference guide for AWS Storage Gateway's
7785// API operation UpdateChapCredentials for usage and error information.
7786//
7787// Returned Error Types:
7788//   * InvalidGatewayRequestException
7789//   An exception occurred because an invalid gateway request was issued to the
7790//   service. For more information, see the error and message fields.
7791//
7792//   * InternalServerError
7793//   An internal server error has occurred during the request. For more information,
7794//   see the error and message fields.
7795//
7796// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateChapCredentials
7797func (c *StorageGateway) UpdateChapCredentials(input *UpdateChapCredentialsInput) (*UpdateChapCredentialsOutput, error) {
7798	req, out := c.UpdateChapCredentialsRequest(input)
7799	return out, req.Send()
7800}
7801
7802// UpdateChapCredentialsWithContext is the same as UpdateChapCredentials with the addition of
7803// the ability to pass a context and additional request options.
7804//
7805// See UpdateChapCredentials for details on how to use this API operation.
7806//
7807// The context must be non-nil and will be used for request cancellation. If
7808// the context is nil a panic will occur. In the future the SDK may create
7809// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7810// for more information on using Contexts.
7811func (c *StorageGateway) UpdateChapCredentialsWithContext(ctx aws.Context, input *UpdateChapCredentialsInput, opts ...request.Option) (*UpdateChapCredentialsOutput, error) {
7812	req, out := c.UpdateChapCredentialsRequest(input)
7813	req.SetContext(ctx)
7814	req.ApplyOptions(opts...)
7815	return out, req.Send()
7816}
7817
7818const opUpdateFileSystemAssociation = "UpdateFileSystemAssociation"
7819
7820// UpdateFileSystemAssociationRequest generates a "aws/request.Request" representing the
7821// client's request for the UpdateFileSystemAssociation operation. The "output" return
7822// value will be populated with the request's response once the request completes
7823// successfully.
7824//
7825// Use "Send" method on the returned Request to send the API call to the service.
7826// the "output" return value is not valid until after Send returns without error.
7827//
7828// See UpdateFileSystemAssociation for more information on using the UpdateFileSystemAssociation
7829// API call, and error handling.
7830//
7831// This method is useful when you want to inject custom logic or configuration
7832// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7833//
7834//
7835//    // Example sending a request using the UpdateFileSystemAssociationRequest method.
7836//    req, resp := client.UpdateFileSystemAssociationRequest(params)
7837//
7838//    err := req.Send()
7839//    if err == nil { // resp is now filled
7840//        fmt.Println(resp)
7841//    }
7842//
7843// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateFileSystemAssociation
7844func (c *StorageGateway) UpdateFileSystemAssociationRequest(input *UpdateFileSystemAssociationInput) (req *request.Request, output *UpdateFileSystemAssociationOutput) {
7845	op := &request.Operation{
7846		Name:       opUpdateFileSystemAssociation,
7847		HTTPMethod: "POST",
7848		HTTPPath:   "/",
7849	}
7850
7851	if input == nil {
7852		input = &UpdateFileSystemAssociationInput{}
7853	}
7854
7855	output = &UpdateFileSystemAssociationOutput{}
7856	req = c.newRequest(op, input, output)
7857	return
7858}
7859
7860// UpdateFileSystemAssociation API operation for AWS Storage Gateway.
7861//
7862// Updates a file system association. This operation is only supported in the
7863// Amazon FSx file gateway type.
7864//
7865// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7866// with awserr.Error's Code and Message methods to get detailed information about
7867// the error.
7868//
7869// See the AWS API reference guide for AWS Storage Gateway's
7870// API operation UpdateFileSystemAssociation for usage and error information.
7871//
7872// Returned Error Types:
7873//   * InvalidGatewayRequestException
7874//   An exception occurred because an invalid gateway request was issued to the
7875//   service. For more information, see the error and message fields.
7876//
7877//   * InternalServerError
7878//   An internal server error has occurred during the request. For more information,
7879//   see the error and message fields.
7880//
7881// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateFileSystemAssociation
7882func (c *StorageGateway) UpdateFileSystemAssociation(input *UpdateFileSystemAssociationInput) (*UpdateFileSystemAssociationOutput, error) {
7883	req, out := c.UpdateFileSystemAssociationRequest(input)
7884	return out, req.Send()
7885}
7886
7887// UpdateFileSystemAssociationWithContext is the same as UpdateFileSystemAssociation with the addition of
7888// the ability to pass a context and additional request options.
7889//
7890// See UpdateFileSystemAssociation for details on how to use this API operation.
7891//
7892// The context must be non-nil and will be used for request cancellation. If
7893// the context is nil a panic will occur. In the future the SDK may create
7894// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7895// for more information on using Contexts.
7896func (c *StorageGateway) UpdateFileSystemAssociationWithContext(ctx aws.Context, input *UpdateFileSystemAssociationInput, opts ...request.Option) (*UpdateFileSystemAssociationOutput, error) {
7897	req, out := c.UpdateFileSystemAssociationRequest(input)
7898	req.SetContext(ctx)
7899	req.ApplyOptions(opts...)
7900	return out, req.Send()
7901}
7902
7903const opUpdateGatewayInformation = "UpdateGatewayInformation"
7904
7905// UpdateGatewayInformationRequest generates a "aws/request.Request" representing the
7906// client's request for the UpdateGatewayInformation operation. The "output" return
7907// value will be populated with the request's response once the request completes
7908// successfully.
7909//
7910// Use "Send" method on the returned Request to send the API call to the service.
7911// the "output" return value is not valid until after Send returns without error.
7912//
7913// See UpdateGatewayInformation for more information on using the UpdateGatewayInformation
7914// API call, and error handling.
7915//
7916// This method is useful when you want to inject custom logic or configuration
7917// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7918//
7919//
7920//    // Example sending a request using the UpdateGatewayInformationRequest method.
7921//    req, resp := client.UpdateGatewayInformationRequest(params)
7922//
7923//    err := req.Send()
7924//    if err == nil { // resp is now filled
7925//        fmt.Println(resp)
7926//    }
7927//
7928// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewayInformation
7929func (c *StorageGateway) UpdateGatewayInformationRequest(input *UpdateGatewayInformationInput) (req *request.Request, output *UpdateGatewayInformationOutput) {
7930	op := &request.Operation{
7931		Name:       opUpdateGatewayInformation,
7932		HTTPMethod: "POST",
7933		HTTPPath:   "/",
7934	}
7935
7936	if input == nil {
7937		input = &UpdateGatewayInformationInput{}
7938	}
7939
7940	output = &UpdateGatewayInformationOutput{}
7941	req = c.newRequest(op, input, output)
7942	return
7943}
7944
7945// UpdateGatewayInformation API operation for AWS Storage Gateway.
7946//
7947// Updates a gateway's metadata, which includes the gateway's name and time
7948// zone. To specify which gateway to update, use the Amazon Resource Name (ARN)
7949// of the gateway in your request.
7950//
7951// For gateways activated after September 2, 2015, the gateway's ARN contains
7952// the gateway ID rather than the gateway name. However, changing the name of
7953// the gateway has no effect on the gateway's ARN.
7954//
7955// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7956// with awserr.Error's Code and Message methods to get detailed information about
7957// the error.
7958//
7959// See the AWS API reference guide for AWS Storage Gateway's
7960// API operation UpdateGatewayInformation for usage and error information.
7961//
7962// Returned Error Types:
7963//   * InvalidGatewayRequestException
7964//   An exception occurred because an invalid gateway request was issued to the
7965//   service. For more information, see the error and message fields.
7966//
7967//   * InternalServerError
7968//   An internal server error has occurred during the request. For more information,
7969//   see the error and message fields.
7970//
7971// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewayInformation
7972func (c *StorageGateway) UpdateGatewayInformation(input *UpdateGatewayInformationInput) (*UpdateGatewayInformationOutput, error) {
7973	req, out := c.UpdateGatewayInformationRequest(input)
7974	return out, req.Send()
7975}
7976
7977// UpdateGatewayInformationWithContext is the same as UpdateGatewayInformation with the addition of
7978// the ability to pass a context and additional request options.
7979//
7980// See UpdateGatewayInformation for details on how to use this API operation.
7981//
7982// The context must be non-nil and will be used for request cancellation. If
7983// the context is nil a panic will occur. In the future the SDK may create
7984// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7985// for more information on using Contexts.
7986func (c *StorageGateway) UpdateGatewayInformationWithContext(ctx aws.Context, input *UpdateGatewayInformationInput, opts ...request.Option) (*UpdateGatewayInformationOutput, error) {
7987	req, out := c.UpdateGatewayInformationRequest(input)
7988	req.SetContext(ctx)
7989	req.ApplyOptions(opts...)
7990	return out, req.Send()
7991}
7992
7993const opUpdateGatewaySoftwareNow = "UpdateGatewaySoftwareNow"
7994
7995// UpdateGatewaySoftwareNowRequest generates a "aws/request.Request" representing the
7996// client's request for the UpdateGatewaySoftwareNow operation. The "output" return
7997// value will be populated with the request's response once the request completes
7998// successfully.
7999//
8000// Use "Send" method on the returned Request to send the API call to the service.
8001// the "output" return value is not valid until after Send returns without error.
8002//
8003// See UpdateGatewaySoftwareNow for more information on using the UpdateGatewaySoftwareNow
8004// API call, and error handling.
8005//
8006// This method is useful when you want to inject custom logic or configuration
8007// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8008//
8009//
8010//    // Example sending a request using the UpdateGatewaySoftwareNowRequest method.
8011//    req, resp := client.UpdateGatewaySoftwareNowRequest(params)
8012//
8013//    err := req.Send()
8014//    if err == nil { // resp is now filled
8015//        fmt.Println(resp)
8016//    }
8017//
8018// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewaySoftwareNow
8019func (c *StorageGateway) UpdateGatewaySoftwareNowRequest(input *UpdateGatewaySoftwareNowInput) (req *request.Request, output *UpdateGatewaySoftwareNowOutput) {
8020	op := &request.Operation{
8021		Name:       opUpdateGatewaySoftwareNow,
8022		HTTPMethod: "POST",
8023		HTTPPath:   "/",
8024	}
8025
8026	if input == nil {
8027		input = &UpdateGatewaySoftwareNowInput{}
8028	}
8029
8030	output = &UpdateGatewaySoftwareNowOutput{}
8031	req = c.newRequest(op, input, output)
8032	return
8033}
8034
8035// UpdateGatewaySoftwareNow API operation for AWS Storage Gateway.
8036//
8037// Updates the gateway virtual machine (VM) software. The request immediately
8038// triggers the software update.
8039//
8040// When you make this request, you get a 200 OK success response immediately.
8041// However, it might take some time for the update to complete. You can call
8042// DescribeGatewayInformation to verify the gateway is in the STATE_RUNNING
8043// state.
8044//
8045// A software update forces a system restart of your gateway. You can minimize
8046// the chance of any disruption to your applications by increasing your iSCSI
8047// Initiators' timeouts. For more information about increasing iSCSI Initiator
8048// timeouts for Windows and Linux, see Customizing your Windows iSCSI settings
8049// (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorWindowsClient.html#CustomizeWindowsiSCSISettings)
8050// and Customizing your Linux iSCSI settings (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings),
8051// respectively.
8052//
8053// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8054// with awserr.Error's Code and Message methods to get detailed information about
8055// the error.
8056//
8057// See the AWS API reference guide for AWS Storage Gateway's
8058// API operation UpdateGatewaySoftwareNow for usage and error information.
8059//
8060// Returned Error Types:
8061//   * InvalidGatewayRequestException
8062//   An exception occurred because an invalid gateway request was issued to the
8063//   service. For more information, see the error and message fields.
8064//
8065//   * InternalServerError
8066//   An internal server error has occurred during the request. For more information,
8067//   see the error and message fields.
8068//
8069// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewaySoftwareNow
8070func (c *StorageGateway) UpdateGatewaySoftwareNow(input *UpdateGatewaySoftwareNowInput) (*UpdateGatewaySoftwareNowOutput, error) {
8071	req, out := c.UpdateGatewaySoftwareNowRequest(input)
8072	return out, req.Send()
8073}
8074
8075// UpdateGatewaySoftwareNowWithContext is the same as UpdateGatewaySoftwareNow with the addition of
8076// the ability to pass a context and additional request options.
8077//
8078// See UpdateGatewaySoftwareNow for details on how to use this API operation.
8079//
8080// The context must be non-nil and will be used for request cancellation. If
8081// the context is nil a panic will occur. In the future the SDK may create
8082// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8083// for more information on using Contexts.
8084func (c *StorageGateway) UpdateGatewaySoftwareNowWithContext(ctx aws.Context, input *UpdateGatewaySoftwareNowInput, opts ...request.Option) (*UpdateGatewaySoftwareNowOutput, error) {
8085	req, out := c.UpdateGatewaySoftwareNowRequest(input)
8086	req.SetContext(ctx)
8087	req.ApplyOptions(opts...)
8088	return out, req.Send()
8089}
8090
8091const opUpdateMaintenanceStartTime = "UpdateMaintenanceStartTime"
8092
8093// UpdateMaintenanceStartTimeRequest generates a "aws/request.Request" representing the
8094// client's request for the UpdateMaintenanceStartTime operation. The "output" return
8095// value will be populated with the request's response once the request completes
8096// successfully.
8097//
8098// Use "Send" method on the returned Request to send the API call to the service.
8099// the "output" return value is not valid until after Send returns without error.
8100//
8101// See UpdateMaintenanceStartTime for more information on using the UpdateMaintenanceStartTime
8102// API call, and error handling.
8103//
8104// This method is useful when you want to inject custom logic or configuration
8105// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8106//
8107//
8108//    // Example sending a request using the UpdateMaintenanceStartTimeRequest method.
8109//    req, resp := client.UpdateMaintenanceStartTimeRequest(params)
8110//
8111//    err := req.Send()
8112//    if err == nil { // resp is now filled
8113//        fmt.Println(resp)
8114//    }
8115//
8116// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateMaintenanceStartTime
8117func (c *StorageGateway) UpdateMaintenanceStartTimeRequest(input *UpdateMaintenanceStartTimeInput) (req *request.Request, output *UpdateMaintenanceStartTimeOutput) {
8118	op := &request.Operation{
8119		Name:       opUpdateMaintenanceStartTime,
8120		HTTPMethod: "POST",
8121		HTTPPath:   "/",
8122	}
8123
8124	if input == nil {
8125		input = &UpdateMaintenanceStartTimeInput{}
8126	}
8127
8128	output = &UpdateMaintenanceStartTimeOutput{}
8129	req = c.newRequest(op, input, output)
8130	return
8131}
8132
8133// UpdateMaintenanceStartTime API operation for AWS Storage Gateway.
8134//
8135// Updates a gateway's weekly maintenance start time information, including
8136// day and time of the week. The maintenance time is the time in your gateway's
8137// time zone.
8138//
8139// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8140// with awserr.Error's Code and Message methods to get detailed information about
8141// the error.
8142//
8143// See the AWS API reference guide for AWS Storage Gateway's
8144// API operation UpdateMaintenanceStartTime for usage and error information.
8145//
8146// Returned Error Types:
8147//   * InvalidGatewayRequestException
8148//   An exception occurred because an invalid gateway request was issued to the
8149//   service. For more information, see the error and message fields.
8150//
8151//   * InternalServerError
8152//   An internal server error has occurred during the request. For more information,
8153//   see the error and message fields.
8154//
8155// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateMaintenanceStartTime
8156func (c *StorageGateway) UpdateMaintenanceStartTime(input *UpdateMaintenanceStartTimeInput) (*UpdateMaintenanceStartTimeOutput, error) {
8157	req, out := c.UpdateMaintenanceStartTimeRequest(input)
8158	return out, req.Send()
8159}
8160
8161// UpdateMaintenanceStartTimeWithContext is the same as UpdateMaintenanceStartTime with the addition of
8162// the ability to pass a context and additional request options.
8163//
8164// See UpdateMaintenanceStartTime for details on how to use this API operation.
8165//
8166// The context must be non-nil and will be used for request cancellation. If
8167// the context is nil a panic will occur. In the future the SDK may create
8168// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8169// for more information on using Contexts.
8170func (c *StorageGateway) UpdateMaintenanceStartTimeWithContext(ctx aws.Context, input *UpdateMaintenanceStartTimeInput, opts ...request.Option) (*UpdateMaintenanceStartTimeOutput, error) {
8171	req, out := c.UpdateMaintenanceStartTimeRequest(input)
8172	req.SetContext(ctx)
8173	req.ApplyOptions(opts...)
8174	return out, req.Send()
8175}
8176
8177const opUpdateNFSFileShare = "UpdateNFSFileShare"
8178
8179// UpdateNFSFileShareRequest generates a "aws/request.Request" representing the
8180// client's request for the UpdateNFSFileShare operation. The "output" return
8181// value will be populated with the request's response once the request completes
8182// successfully.
8183//
8184// Use "Send" method on the returned Request to send the API call to the service.
8185// the "output" return value is not valid until after Send returns without error.
8186//
8187// See UpdateNFSFileShare for more information on using the UpdateNFSFileShare
8188// API call, and error handling.
8189//
8190// This method is useful when you want to inject custom logic or configuration
8191// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8192//
8193//
8194//    // Example sending a request using the UpdateNFSFileShareRequest method.
8195//    req, resp := client.UpdateNFSFileShareRequest(params)
8196//
8197//    err := req.Send()
8198//    if err == nil { // resp is now filled
8199//        fmt.Println(resp)
8200//    }
8201//
8202// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateNFSFileShare
8203func (c *StorageGateway) UpdateNFSFileShareRequest(input *UpdateNFSFileShareInput) (req *request.Request, output *UpdateNFSFileShareOutput) {
8204	op := &request.Operation{
8205		Name:       opUpdateNFSFileShare,
8206		HTTPMethod: "POST",
8207		HTTPPath:   "/",
8208	}
8209
8210	if input == nil {
8211		input = &UpdateNFSFileShareInput{}
8212	}
8213
8214	output = &UpdateNFSFileShareOutput{}
8215	req = c.newRequest(op, input, output)
8216	return
8217}
8218
8219// UpdateNFSFileShare API operation for AWS Storage Gateway.
8220//
8221// Updates a Network File System (NFS) file share. This operation is only supported
8222// in the file gateway type.
8223//
8224// To leave a file share field unchanged, set the corresponding input field
8225// to null.
8226//
8227// Updates the following file share settings:
8228//
8229//    * Default storage class for your S3 bucket
8230//
8231//    * Metadata defaults for your S3 bucket
8232//
8233//    * Allowed NFS clients for your file share
8234//
8235//    * Squash settings
8236//
8237//    * Write status of your file share
8238//
8239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8240// with awserr.Error's Code and Message methods to get detailed information about
8241// the error.
8242//
8243// See the AWS API reference guide for AWS Storage Gateway's
8244// API operation UpdateNFSFileShare for usage and error information.
8245//
8246// Returned Error Types:
8247//   * InvalidGatewayRequestException
8248//   An exception occurred because an invalid gateway request was issued to the
8249//   service. For more information, see the error and message fields.
8250//
8251//   * InternalServerError
8252//   An internal server error has occurred during the request. For more information,
8253//   see the error and message fields.
8254//
8255// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateNFSFileShare
8256func (c *StorageGateway) UpdateNFSFileShare(input *UpdateNFSFileShareInput) (*UpdateNFSFileShareOutput, error) {
8257	req, out := c.UpdateNFSFileShareRequest(input)
8258	return out, req.Send()
8259}
8260
8261// UpdateNFSFileShareWithContext is the same as UpdateNFSFileShare with the addition of
8262// the ability to pass a context and additional request options.
8263//
8264// See UpdateNFSFileShare for details on how to use this API operation.
8265//
8266// The context must be non-nil and will be used for request cancellation. If
8267// the context is nil a panic will occur. In the future the SDK may create
8268// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8269// for more information on using Contexts.
8270func (c *StorageGateway) UpdateNFSFileShareWithContext(ctx aws.Context, input *UpdateNFSFileShareInput, opts ...request.Option) (*UpdateNFSFileShareOutput, error) {
8271	req, out := c.UpdateNFSFileShareRequest(input)
8272	req.SetContext(ctx)
8273	req.ApplyOptions(opts...)
8274	return out, req.Send()
8275}
8276
8277const opUpdateSMBFileShare = "UpdateSMBFileShare"
8278
8279// UpdateSMBFileShareRequest generates a "aws/request.Request" representing the
8280// client's request for the UpdateSMBFileShare operation. The "output" return
8281// value will be populated with the request's response once the request completes
8282// successfully.
8283//
8284// Use "Send" method on the returned Request to send the API call to the service.
8285// the "output" return value is not valid until after Send returns without error.
8286//
8287// See UpdateSMBFileShare for more information on using the UpdateSMBFileShare
8288// API call, and error handling.
8289//
8290// This method is useful when you want to inject custom logic or configuration
8291// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8292//
8293//
8294//    // Example sending a request using the UpdateSMBFileShareRequest method.
8295//    req, resp := client.UpdateSMBFileShareRequest(params)
8296//
8297//    err := req.Send()
8298//    if err == nil { // resp is now filled
8299//        fmt.Println(resp)
8300//    }
8301//
8302// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShare
8303func (c *StorageGateway) UpdateSMBFileShareRequest(input *UpdateSMBFileShareInput) (req *request.Request, output *UpdateSMBFileShareOutput) {
8304	op := &request.Operation{
8305		Name:       opUpdateSMBFileShare,
8306		HTTPMethod: "POST",
8307		HTTPPath:   "/",
8308	}
8309
8310	if input == nil {
8311		input = &UpdateSMBFileShareInput{}
8312	}
8313
8314	output = &UpdateSMBFileShareOutput{}
8315	req = c.newRequest(op, input, output)
8316	return
8317}
8318
8319// UpdateSMBFileShare API operation for AWS Storage Gateway.
8320//
8321// Updates a Server Message Block (SMB) file share. This operation is only supported
8322// for file gateways.
8323//
8324// To leave a file share field unchanged, set the corresponding input field
8325// to null.
8326//
8327// File gateways require AWS Security Token Service (AWS STS) to be activated
8328// to enable you to create a file share. Make sure that AWS STS is activated
8329// in the AWS Region you are creating your file gateway in. If AWS STS is not
8330// activated in this AWS Region, activate it. For information about how to activate
8331// AWS STS, see Activating and deactivating AWS STS in an AWS Region (https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)
8332// in the AWS Identity and Access Management User Guide.
8333//
8334// File gateways don't support creating hard or symbolic links on a file share.
8335//
8336// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8337// with awserr.Error's Code and Message methods to get detailed information about
8338// the error.
8339//
8340// See the AWS API reference guide for AWS Storage Gateway's
8341// API operation UpdateSMBFileShare for usage and error information.
8342//
8343// Returned Error Types:
8344//   * InvalidGatewayRequestException
8345//   An exception occurred because an invalid gateway request was issued to the
8346//   service. For more information, see the error and message fields.
8347//
8348//   * InternalServerError
8349//   An internal server error has occurred during the request. For more information,
8350//   see the error and message fields.
8351//
8352// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShare
8353func (c *StorageGateway) UpdateSMBFileShare(input *UpdateSMBFileShareInput) (*UpdateSMBFileShareOutput, error) {
8354	req, out := c.UpdateSMBFileShareRequest(input)
8355	return out, req.Send()
8356}
8357
8358// UpdateSMBFileShareWithContext is the same as UpdateSMBFileShare with the addition of
8359// the ability to pass a context and additional request options.
8360//
8361// See UpdateSMBFileShare for details on how to use this API operation.
8362//
8363// The context must be non-nil and will be used for request cancellation. If
8364// the context is nil a panic will occur. In the future the SDK may create
8365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8366// for more information on using Contexts.
8367func (c *StorageGateway) UpdateSMBFileShareWithContext(ctx aws.Context, input *UpdateSMBFileShareInput, opts ...request.Option) (*UpdateSMBFileShareOutput, error) {
8368	req, out := c.UpdateSMBFileShareRequest(input)
8369	req.SetContext(ctx)
8370	req.ApplyOptions(opts...)
8371	return out, req.Send()
8372}
8373
8374const opUpdateSMBFileShareVisibility = "UpdateSMBFileShareVisibility"
8375
8376// UpdateSMBFileShareVisibilityRequest generates a "aws/request.Request" representing the
8377// client's request for the UpdateSMBFileShareVisibility operation. The "output" return
8378// value will be populated with the request's response once the request completes
8379// successfully.
8380//
8381// Use "Send" method on the returned Request to send the API call to the service.
8382// the "output" return value is not valid until after Send returns without error.
8383//
8384// See UpdateSMBFileShareVisibility for more information on using the UpdateSMBFileShareVisibility
8385// API call, and error handling.
8386//
8387// This method is useful when you want to inject custom logic or configuration
8388// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8389//
8390//
8391//    // Example sending a request using the UpdateSMBFileShareVisibilityRequest method.
8392//    req, resp := client.UpdateSMBFileShareVisibilityRequest(params)
8393//
8394//    err := req.Send()
8395//    if err == nil { // resp is now filled
8396//        fmt.Println(resp)
8397//    }
8398//
8399// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShareVisibility
8400func (c *StorageGateway) UpdateSMBFileShareVisibilityRequest(input *UpdateSMBFileShareVisibilityInput) (req *request.Request, output *UpdateSMBFileShareVisibilityOutput) {
8401	op := &request.Operation{
8402		Name:       opUpdateSMBFileShareVisibility,
8403		HTTPMethod: "POST",
8404		HTTPPath:   "/",
8405	}
8406
8407	if input == nil {
8408		input = &UpdateSMBFileShareVisibilityInput{}
8409	}
8410
8411	output = &UpdateSMBFileShareVisibilityOutput{}
8412	req = c.newRequest(op, input, output)
8413	return
8414}
8415
8416// UpdateSMBFileShareVisibility API operation for AWS Storage Gateway.
8417//
8418// Controls whether the shares on a gateway are visible in a net view or browse
8419// list.
8420//
8421// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8422// with awserr.Error's Code and Message methods to get detailed information about
8423// the error.
8424//
8425// See the AWS API reference guide for AWS Storage Gateway's
8426// API operation UpdateSMBFileShareVisibility for usage and error information.
8427//
8428// Returned Error Types:
8429//   * InvalidGatewayRequestException
8430//   An exception occurred because an invalid gateway request was issued to the
8431//   service. For more information, see the error and message fields.
8432//
8433//   * InternalServerError
8434//   An internal server error has occurred during the request. For more information,
8435//   see the error and message fields.
8436//
8437// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShareVisibility
8438func (c *StorageGateway) UpdateSMBFileShareVisibility(input *UpdateSMBFileShareVisibilityInput) (*UpdateSMBFileShareVisibilityOutput, error) {
8439	req, out := c.UpdateSMBFileShareVisibilityRequest(input)
8440	return out, req.Send()
8441}
8442
8443// UpdateSMBFileShareVisibilityWithContext is the same as UpdateSMBFileShareVisibility with the addition of
8444// the ability to pass a context and additional request options.
8445//
8446// See UpdateSMBFileShareVisibility for details on how to use this API operation.
8447//
8448// The context must be non-nil and will be used for request cancellation. If
8449// the context is nil a panic will occur. In the future the SDK may create
8450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8451// for more information on using Contexts.
8452func (c *StorageGateway) UpdateSMBFileShareVisibilityWithContext(ctx aws.Context, input *UpdateSMBFileShareVisibilityInput, opts ...request.Option) (*UpdateSMBFileShareVisibilityOutput, error) {
8453	req, out := c.UpdateSMBFileShareVisibilityRequest(input)
8454	req.SetContext(ctx)
8455	req.ApplyOptions(opts...)
8456	return out, req.Send()
8457}
8458
8459const opUpdateSMBSecurityStrategy = "UpdateSMBSecurityStrategy"
8460
8461// UpdateSMBSecurityStrategyRequest generates a "aws/request.Request" representing the
8462// client's request for the UpdateSMBSecurityStrategy operation. The "output" return
8463// value will be populated with the request's response once the request completes
8464// successfully.
8465//
8466// Use "Send" method on the returned Request to send the API call to the service.
8467// the "output" return value is not valid until after Send returns without error.
8468//
8469// See UpdateSMBSecurityStrategy for more information on using the UpdateSMBSecurityStrategy
8470// API call, and error handling.
8471//
8472// This method is useful when you want to inject custom logic or configuration
8473// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8474//
8475//
8476//    // Example sending a request using the UpdateSMBSecurityStrategyRequest method.
8477//    req, resp := client.UpdateSMBSecurityStrategyRequest(params)
8478//
8479//    err := req.Send()
8480//    if err == nil { // resp is now filled
8481//        fmt.Println(resp)
8482//    }
8483//
8484// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBSecurityStrategy
8485func (c *StorageGateway) UpdateSMBSecurityStrategyRequest(input *UpdateSMBSecurityStrategyInput) (req *request.Request, output *UpdateSMBSecurityStrategyOutput) {
8486	op := &request.Operation{
8487		Name:       opUpdateSMBSecurityStrategy,
8488		HTTPMethod: "POST",
8489		HTTPPath:   "/",
8490	}
8491
8492	if input == nil {
8493		input = &UpdateSMBSecurityStrategyInput{}
8494	}
8495
8496	output = &UpdateSMBSecurityStrategyOutput{}
8497	req = c.newRequest(op, input, output)
8498	return
8499}
8500
8501// UpdateSMBSecurityStrategy API operation for AWS Storage Gateway.
8502//
8503// Updates the SMB security strategy on a file gateway. This action is only
8504// supported in file gateways.
8505//
8506// This API is called Security level in the User Guide.
8507//
8508// A higher security level can affect performance of the gateway.
8509//
8510// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8511// with awserr.Error's Code and Message methods to get detailed information about
8512// the error.
8513//
8514// See the AWS API reference guide for AWS Storage Gateway's
8515// API operation UpdateSMBSecurityStrategy for usage and error information.
8516//
8517// Returned Error Types:
8518//   * InvalidGatewayRequestException
8519//   An exception occurred because an invalid gateway request was issued to the
8520//   service. For more information, see the error and message fields.
8521//
8522//   * InternalServerError
8523//   An internal server error has occurred during the request. For more information,
8524//   see the error and message fields.
8525//
8526// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBSecurityStrategy
8527func (c *StorageGateway) UpdateSMBSecurityStrategy(input *UpdateSMBSecurityStrategyInput) (*UpdateSMBSecurityStrategyOutput, error) {
8528	req, out := c.UpdateSMBSecurityStrategyRequest(input)
8529	return out, req.Send()
8530}
8531
8532// UpdateSMBSecurityStrategyWithContext is the same as UpdateSMBSecurityStrategy with the addition of
8533// the ability to pass a context and additional request options.
8534//
8535// See UpdateSMBSecurityStrategy for details on how to use this API operation.
8536//
8537// The context must be non-nil and will be used for request cancellation. If
8538// the context is nil a panic will occur. In the future the SDK may create
8539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8540// for more information on using Contexts.
8541func (c *StorageGateway) UpdateSMBSecurityStrategyWithContext(ctx aws.Context, input *UpdateSMBSecurityStrategyInput, opts ...request.Option) (*UpdateSMBSecurityStrategyOutput, error) {
8542	req, out := c.UpdateSMBSecurityStrategyRequest(input)
8543	req.SetContext(ctx)
8544	req.ApplyOptions(opts...)
8545	return out, req.Send()
8546}
8547
8548const opUpdateSnapshotSchedule = "UpdateSnapshotSchedule"
8549
8550// UpdateSnapshotScheduleRequest generates a "aws/request.Request" representing the
8551// client's request for the UpdateSnapshotSchedule operation. The "output" return
8552// value will be populated with the request's response once the request completes
8553// successfully.
8554//
8555// Use "Send" method on the returned Request to send the API call to the service.
8556// the "output" return value is not valid until after Send returns without error.
8557//
8558// See UpdateSnapshotSchedule for more information on using the UpdateSnapshotSchedule
8559// API call, and error handling.
8560//
8561// This method is useful when you want to inject custom logic or configuration
8562// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8563//
8564//
8565//    // Example sending a request using the UpdateSnapshotScheduleRequest method.
8566//    req, resp := client.UpdateSnapshotScheduleRequest(params)
8567//
8568//    err := req.Send()
8569//    if err == nil { // resp is now filled
8570//        fmt.Println(resp)
8571//    }
8572//
8573// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSnapshotSchedule
8574func (c *StorageGateway) UpdateSnapshotScheduleRequest(input *UpdateSnapshotScheduleInput) (req *request.Request, output *UpdateSnapshotScheduleOutput) {
8575	op := &request.Operation{
8576		Name:       opUpdateSnapshotSchedule,
8577		HTTPMethod: "POST",
8578		HTTPPath:   "/",
8579	}
8580
8581	if input == nil {
8582		input = &UpdateSnapshotScheduleInput{}
8583	}
8584
8585	output = &UpdateSnapshotScheduleOutput{}
8586	req = c.newRequest(op, input, output)
8587	return
8588}
8589
8590// UpdateSnapshotSchedule API operation for AWS Storage Gateway.
8591//
8592// Updates a snapshot schedule configured for a gateway volume. This operation
8593// is only supported in the cached volume and stored volume gateway types.
8594//
8595// The default snapshot schedule for volume is once every 24 hours, starting
8596// at the creation time of the volume. You can use this API to change the snapshot
8597// schedule configured for the volume.
8598//
8599// In the request you must identify the gateway volume whose snapshot schedule
8600// you want to update, and the schedule information, including when you want
8601// the snapshot to begin on a day and the frequency (in hours) of snapshots.
8602//
8603// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8604// with awserr.Error's Code and Message methods to get detailed information about
8605// the error.
8606//
8607// See the AWS API reference guide for AWS Storage Gateway's
8608// API operation UpdateSnapshotSchedule for usage and error information.
8609//
8610// Returned Error Types:
8611//   * InvalidGatewayRequestException
8612//   An exception occurred because an invalid gateway request was issued to the
8613//   service. For more information, see the error and message fields.
8614//
8615//   * InternalServerError
8616//   An internal server error has occurred during the request. For more information,
8617//   see the error and message fields.
8618//
8619// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSnapshotSchedule
8620func (c *StorageGateway) UpdateSnapshotSchedule(input *UpdateSnapshotScheduleInput) (*UpdateSnapshotScheduleOutput, error) {
8621	req, out := c.UpdateSnapshotScheduleRequest(input)
8622	return out, req.Send()
8623}
8624
8625// UpdateSnapshotScheduleWithContext is the same as UpdateSnapshotSchedule with the addition of
8626// the ability to pass a context and additional request options.
8627//
8628// See UpdateSnapshotSchedule for details on how to use this API operation.
8629//
8630// The context must be non-nil and will be used for request cancellation. If
8631// the context is nil a panic will occur. In the future the SDK may create
8632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8633// for more information on using Contexts.
8634func (c *StorageGateway) UpdateSnapshotScheduleWithContext(ctx aws.Context, input *UpdateSnapshotScheduleInput, opts ...request.Option) (*UpdateSnapshotScheduleOutput, error) {
8635	req, out := c.UpdateSnapshotScheduleRequest(input)
8636	req.SetContext(ctx)
8637	req.ApplyOptions(opts...)
8638	return out, req.Send()
8639}
8640
8641const opUpdateVTLDeviceType = "UpdateVTLDeviceType"
8642
8643// UpdateVTLDeviceTypeRequest generates a "aws/request.Request" representing the
8644// client's request for the UpdateVTLDeviceType operation. The "output" return
8645// value will be populated with the request's response once the request completes
8646// successfully.
8647//
8648// Use "Send" method on the returned Request to send the API call to the service.
8649// the "output" return value is not valid until after Send returns without error.
8650//
8651// See UpdateVTLDeviceType for more information on using the UpdateVTLDeviceType
8652// API call, and error handling.
8653//
8654// This method is useful when you want to inject custom logic or configuration
8655// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8656//
8657//
8658//    // Example sending a request using the UpdateVTLDeviceTypeRequest method.
8659//    req, resp := client.UpdateVTLDeviceTypeRequest(params)
8660//
8661//    err := req.Send()
8662//    if err == nil { // resp is now filled
8663//        fmt.Println(resp)
8664//    }
8665//
8666// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateVTLDeviceType
8667func (c *StorageGateway) UpdateVTLDeviceTypeRequest(input *UpdateVTLDeviceTypeInput) (req *request.Request, output *UpdateVTLDeviceTypeOutput) {
8668	op := &request.Operation{
8669		Name:       opUpdateVTLDeviceType,
8670		HTTPMethod: "POST",
8671		HTTPPath:   "/",
8672	}
8673
8674	if input == nil {
8675		input = &UpdateVTLDeviceTypeInput{}
8676	}
8677
8678	output = &UpdateVTLDeviceTypeOutput{}
8679	req = c.newRequest(op, input, output)
8680	return
8681}
8682
8683// UpdateVTLDeviceType API operation for AWS Storage Gateway.
8684//
8685// Updates the type of medium changer in a tape gateway. When you activate a
8686// tape gateway, you select a medium changer type for the tape gateway. This
8687// operation enables you to select a different type of medium changer after
8688// a tape gateway is activated. This operation is only supported in the tape
8689// gateway type.
8690//
8691// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8692// with awserr.Error's Code and Message methods to get detailed information about
8693// the error.
8694//
8695// See the AWS API reference guide for AWS Storage Gateway's
8696// API operation UpdateVTLDeviceType for usage and error information.
8697//
8698// Returned Error Types:
8699//   * InvalidGatewayRequestException
8700//   An exception occurred because an invalid gateway request was issued to the
8701//   service. For more information, see the error and message fields.
8702//
8703//   * InternalServerError
8704//   An internal server error has occurred during the request. For more information,
8705//   see the error and message fields.
8706//
8707// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateVTLDeviceType
8708func (c *StorageGateway) UpdateVTLDeviceType(input *UpdateVTLDeviceTypeInput) (*UpdateVTLDeviceTypeOutput, error) {
8709	req, out := c.UpdateVTLDeviceTypeRequest(input)
8710	return out, req.Send()
8711}
8712
8713// UpdateVTLDeviceTypeWithContext is the same as UpdateVTLDeviceType with the addition of
8714// the ability to pass a context and additional request options.
8715//
8716// See UpdateVTLDeviceType for details on how to use this API operation.
8717//
8718// The context must be non-nil and will be used for request cancellation. If
8719// the context is nil a panic will occur. In the future the SDK may create
8720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8721// for more information on using Contexts.
8722func (c *StorageGateway) UpdateVTLDeviceTypeWithContext(ctx aws.Context, input *UpdateVTLDeviceTypeInput, opts ...request.Option) (*UpdateVTLDeviceTypeOutput, error) {
8723	req, out := c.UpdateVTLDeviceTypeRequest(input)
8724	req.SetContext(ctx)
8725	req.ApplyOptions(opts...)
8726	return out, req.Send()
8727}
8728
8729// A JSON object containing one or more of the following fields:
8730//
8731//    * ActivateGatewayInput$ActivationKey
8732//
8733//    * ActivateGatewayInput$GatewayName
8734//
8735//    * ActivateGatewayInput$GatewayRegion
8736//
8737//    * ActivateGatewayInput$GatewayTimezone
8738//
8739//    * ActivateGatewayInput$GatewayType
8740//
8741//    * ActivateGatewayInput$MediumChangerType
8742//
8743//    * ActivateGatewayInput$TapeDriveType
8744type ActivateGatewayInput struct {
8745	_ struct{} `type:"structure"`
8746
8747	// Your gateway activation key. You can obtain the activation key by sending
8748	// an HTTP GET request with redirects enabled to the gateway IP address (port
8749	// 80). The redirect URL returned in the response provides you the activation
8750	// key for your gateway in the query string parameter activationKey. It may
8751	// also include other activation-related parameters, however, these are merely
8752	// defaults -- the arguments you pass to the ActivateGateway API call determine
8753	// the actual configuration of your gateway.
8754	//
8755	// For more information, see Getting activation key (https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html)
8756	// in the AWS Storage Gateway User Guide.
8757	//
8758	// ActivationKey is a required field
8759	ActivationKey *string `min:"1" type:"string" required:"true"`
8760
8761	// The name you configured for your gateway.
8762	//
8763	// GatewayName is a required field
8764	GatewayName *string `min:"2" type:"string" required:"true"`
8765
8766	// A value that indicates the AWS Region where you want to store your data.
8767	// The gateway AWS Region specified must be the same AWS Region as the AWS Region
8768	// in your Host header in the request. For more information about available
8769	// AWS Regions and endpoints for AWS Storage Gateway, see AWS Storage Gateway
8770	// endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/sg.html)
8771	// in the AWS General Reference.
8772	//
8773	// Valid Values: See AWS Storage Gateway endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/sg.html)
8774	// in the AWS General Reference.
8775	//
8776	// GatewayRegion is a required field
8777	GatewayRegion *string `min:"1" type:"string" required:"true"`
8778
8779	// A value that indicates the time zone you want to set for the gateway. The
8780	// time zone is of the format "GMT-hr:mm" or "GMT+hr:mm". For example, GMT-4:00
8781	// indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is
8782	// 2 hours ahead of GMT. The time zone is used, for example, for scheduling
8783	// snapshots and your gateway's maintenance schedule.
8784	//
8785	// GatewayTimezone is a required field
8786	GatewayTimezone *string `min:"3" type:"string" required:"true"`
8787
8788	// A value that defines the type of gateway to activate. The type specified
8789	// is critical to all later functions of the gateway and cannot be changed after
8790	// activation. The default value is CACHED.
8791	//
8792	// Valid Values: STORED | CACHED | VTL | FILE_S3
8793	GatewayType *string `min:"2" type:"string"`
8794
8795	// The value that indicates the type of medium changer to use for tape gateway.
8796	// This field is optional.
8797	//
8798	// Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402
8799	MediumChangerType *string `min:"2" type:"string"`
8800
8801	// A list of up to 50 tags that you can assign to the gateway. Each tag is a
8802	// key-value pair.
8803	//
8804	// Valid characters for key and value are letters, spaces, and numbers that
8805	// can be represented in UTF-8 format, and the following special characters:
8806	// + - = . _ : / @. The maximum length of a tag's key is 128 characters, and
8807	// the maximum length for a tag's value is 256 characters.
8808	Tags []*Tag `type:"list"`
8809
8810	// The value that indicates the type of tape drive to use for tape gateway.
8811	// This field is optional.
8812	//
8813	// Valid Values: IBM-ULT3580-TD5
8814	TapeDriveType *string `min:"2" type:"string"`
8815}
8816
8817// String returns the string representation
8818func (s ActivateGatewayInput) String() string {
8819	return awsutil.Prettify(s)
8820}
8821
8822// GoString returns the string representation
8823func (s ActivateGatewayInput) GoString() string {
8824	return s.String()
8825}
8826
8827// Validate inspects the fields of the type to determine if they are valid.
8828func (s *ActivateGatewayInput) Validate() error {
8829	invalidParams := request.ErrInvalidParams{Context: "ActivateGatewayInput"}
8830	if s.ActivationKey == nil {
8831		invalidParams.Add(request.NewErrParamRequired("ActivationKey"))
8832	}
8833	if s.ActivationKey != nil && len(*s.ActivationKey) < 1 {
8834		invalidParams.Add(request.NewErrParamMinLen("ActivationKey", 1))
8835	}
8836	if s.GatewayName == nil {
8837		invalidParams.Add(request.NewErrParamRequired("GatewayName"))
8838	}
8839	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
8840		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
8841	}
8842	if s.GatewayRegion == nil {
8843		invalidParams.Add(request.NewErrParamRequired("GatewayRegion"))
8844	}
8845	if s.GatewayRegion != nil && len(*s.GatewayRegion) < 1 {
8846		invalidParams.Add(request.NewErrParamMinLen("GatewayRegion", 1))
8847	}
8848	if s.GatewayTimezone == nil {
8849		invalidParams.Add(request.NewErrParamRequired("GatewayTimezone"))
8850	}
8851	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
8852		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
8853	}
8854	if s.GatewayType != nil && len(*s.GatewayType) < 2 {
8855		invalidParams.Add(request.NewErrParamMinLen("GatewayType", 2))
8856	}
8857	if s.MediumChangerType != nil && len(*s.MediumChangerType) < 2 {
8858		invalidParams.Add(request.NewErrParamMinLen("MediumChangerType", 2))
8859	}
8860	if s.TapeDriveType != nil && len(*s.TapeDriveType) < 2 {
8861		invalidParams.Add(request.NewErrParamMinLen("TapeDriveType", 2))
8862	}
8863	if s.Tags != nil {
8864		for i, v := range s.Tags {
8865			if v == nil {
8866				continue
8867			}
8868			if err := v.Validate(); err != nil {
8869				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8870			}
8871		}
8872	}
8873
8874	if invalidParams.Len() > 0 {
8875		return invalidParams
8876	}
8877	return nil
8878}
8879
8880// SetActivationKey sets the ActivationKey field's value.
8881func (s *ActivateGatewayInput) SetActivationKey(v string) *ActivateGatewayInput {
8882	s.ActivationKey = &v
8883	return s
8884}
8885
8886// SetGatewayName sets the GatewayName field's value.
8887func (s *ActivateGatewayInput) SetGatewayName(v string) *ActivateGatewayInput {
8888	s.GatewayName = &v
8889	return s
8890}
8891
8892// SetGatewayRegion sets the GatewayRegion field's value.
8893func (s *ActivateGatewayInput) SetGatewayRegion(v string) *ActivateGatewayInput {
8894	s.GatewayRegion = &v
8895	return s
8896}
8897
8898// SetGatewayTimezone sets the GatewayTimezone field's value.
8899func (s *ActivateGatewayInput) SetGatewayTimezone(v string) *ActivateGatewayInput {
8900	s.GatewayTimezone = &v
8901	return s
8902}
8903
8904// SetGatewayType sets the GatewayType field's value.
8905func (s *ActivateGatewayInput) SetGatewayType(v string) *ActivateGatewayInput {
8906	s.GatewayType = &v
8907	return s
8908}
8909
8910// SetMediumChangerType sets the MediumChangerType field's value.
8911func (s *ActivateGatewayInput) SetMediumChangerType(v string) *ActivateGatewayInput {
8912	s.MediumChangerType = &v
8913	return s
8914}
8915
8916// SetTags sets the Tags field's value.
8917func (s *ActivateGatewayInput) SetTags(v []*Tag) *ActivateGatewayInput {
8918	s.Tags = v
8919	return s
8920}
8921
8922// SetTapeDriveType sets the TapeDriveType field's value.
8923func (s *ActivateGatewayInput) SetTapeDriveType(v string) *ActivateGatewayInput {
8924	s.TapeDriveType = &v
8925	return s
8926}
8927
8928// AWS Storage Gateway returns the Amazon Resource Name (ARN) of the activated
8929// gateway. It is a string made of information such as your account, gateway
8930// name, and AWS Region. This ARN is used to reference the gateway in other
8931// API operations as well as resource-based authorization.
8932//
8933// For gateways activated prior to September 02, 2015, the gateway ARN contains
8934// the gateway name rather than the gateway ID. Changing the name of the gateway
8935// has no effect on the gateway ARN.
8936type ActivateGatewayOutput struct {
8937	_ struct{} `type:"structure"`
8938
8939	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8940	// to return a list of gateways for your account and AWS Region.
8941	GatewayARN *string `min:"50" type:"string"`
8942}
8943
8944// String returns the string representation
8945func (s ActivateGatewayOutput) String() string {
8946	return awsutil.Prettify(s)
8947}
8948
8949// GoString returns the string representation
8950func (s ActivateGatewayOutput) GoString() string {
8951	return s.String()
8952}
8953
8954// SetGatewayARN sets the GatewayARN field's value.
8955func (s *ActivateGatewayOutput) SetGatewayARN(v string) *ActivateGatewayOutput {
8956	s.GatewayARN = &v
8957	return s
8958}
8959
8960type AddCacheInput struct {
8961	_ struct{} `type:"structure"`
8962
8963	// An array of strings that identify disks that are to be configured as working
8964	// storage. Each string has a minimum length of 1 and maximum length of 300.
8965	// You can get the disk IDs from the ListLocalDisks API.
8966	//
8967	// DiskIds is a required field
8968	DiskIds []*string `type:"list" required:"true"`
8969
8970	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8971	// to return a list of gateways for your account and AWS Region.
8972	//
8973	// GatewayARN is a required field
8974	GatewayARN *string `min:"50" type:"string" required:"true"`
8975}
8976
8977// String returns the string representation
8978func (s AddCacheInput) String() string {
8979	return awsutil.Prettify(s)
8980}
8981
8982// GoString returns the string representation
8983func (s AddCacheInput) GoString() string {
8984	return s.String()
8985}
8986
8987// Validate inspects the fields of the type to determine if they are valid.
8988func (s *AddCacheInput) Validate() error {
8989	invalidParams := request.ErrInvalidParams{Context: "AddCacheInput"}
8990	if s.DiskIds == nil {
8991		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
8992	}
8993	if s.GatewayARN == nil {
8994		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8995	}
8996	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8997		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8998	}
8999
9000	if invalidParams.Len() > 0 {
9001		return invalidParams
9002	}
9003	return nil
9004}
9005
9006// SetDiskIds sets the DiskIds field's value.
9007func (s *AddCacheInput) SetDiskIds(v []*string) *AddCacheInput {
9008	s.DiskIds = v
9009	return s
9010}
9011
9012// SetGatewayARN sets the GatewayARN field's value.
9013func (s *AddCacheInput) SetGatewayARN(v string) *AddCacheInput {
9014	s.GatewayARN = &v
9015	return s
9016}
9017
9018type AddCacheOutput struct {
9019	_ struct{} `type:"structure"`
9020
9021	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9022	// to return a list of gateways for your account and AWS Region.
9023	GatewayARN *string `min:"50" type:"string"`
9024}
9025
9026// String returns the string representation
9027func (s AddCacheOutput) String() string {
9028	return awsutil.Prettify(s)
9029}
9030
9031// GoString returns the string representation
9032func (s AddCacheOutput) GoString() string {
9033	return s.String()
9034}
9035
9036// SetGatewayARN sets the GatewayARN field's value.
9037func (s *AddCacheOutput) SetGatewayARN(v string) *AddCacheOutput {
9038	s.GatewayARN = &v
9039	return s
9040}
9041
9042// AddTagsToResourceInput
9043type AddTagsToResourceInput struct {
9044	_ struct{} `type:"structure"`
9045
9046	// The Amazon Resource Name (ARN) of the resource you want to add tags to.
9047	//
9048	// ResourceARN is a required field
9049	ResourceARN *string `min:"50" type:"string" required:"true"`
9050
9051	// The key-value pair that represents the tag you want to add to the resource.
9052	// The value can be an empty string.
9053	//
9054	// Valid characters for key and value are letters, spaces, and numbers representable
9055	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
9056	// maximum length of a tag's key is 128 characters, and the maximum length for
9057	// a tag's value is 256.
9058	//
9059	// Tags is a required field
9060	Tags []*Tag `type:"list" required:"true"`
9061}
9062
9063// String returns the string representation
9064func (s AddTagsToResourceInput) String() string {
9065	return awsutil.Prettify(s)
9066}
9067
9068// GoString returns the string representation
9069func (s AddTagsToResourceInput) GoString() string {
9070	return s.String()
9071}
9072
9073// Validate inspects the fields of the type to determine if they are valid.
9074func (s *AddTagsToResourceInput) Validate() error {
9075	invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"}
9076	if s.ResourceARN == nil {
9077		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
9078	}
9079	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
9080		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
9081	}
9082	if s.Tags == nil {
9083		invalidParams.Add(request.NewErrParamRequired("Tags"))
9084	}
9085	if s.Tags != nil {
9086		for i, v := range s.Tags {
9087			if v == nil {
9088				continue
9089			}
9090			if err := v.Validate(); err != nil {
9091				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9092			}
9093		}
9094	}
9095
9096	if invalidParams.Len() > 0 {
9097		return invalidParams
9098	}
9099	return nil
9100}
9101
9102// SetResourceARN sets the ResourceARN field's value.
9103func (s *AddTagsToResourceInput) SetResourceARN(v string) *AddTagsToResourceInput {
9104	s.ResourceARN = &v
9105	return s
9106}
9107
9108// SetTags sets the Tags field's value.
9109func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput {
9110	s.Tags = v
9111	return s
9112}
9113
9114// AddTagsToResourceOutput
9115type AddTagsToResourceOutput struct {
9116	_ struct{} `type:"structure"`
9117
9118	// The Amazon Resource Name (ARN) of the resource you want to add tags to.
9119	ResourceARN *string `min:"50" type:"string"`
9120}
9121
9122// String returns the string representation
9123func (s AddTagsToResourceOutput) String() string {
9124	return awsutil.Prettify(s)
9125}
9126
9127// GoString returns the string representation
9128func (s AddTagsToResourceOutput) GoString() string {
9129	return s.String()
9130}
9131
9132// SetResourceARN sets the ResourceARN field's value.
9133func (s *AddTagsToResourceOutput) SetResourceARN(v string) *AddTagsToResourceOutput {
9134	s.ResourceARN = &v
9135	return s
9136}
9137
9138type AddUploadBufferInput struct {
9139	_ struct{} `type:"structure"`
9140
9141	// An array of strings that identify disks that are to be configured as working
9142	// storage. Each string has a minimum length of 1 and maximum length of 300.
9143	// You can get the disk IDs from the ListLocalDisks API.
9144	//
9145	// DiskIds is a required field
9146	DiskIds []*string `type:"list" required:"true"`
9147
9148	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9149	// to return a list of gateways for your account and AWS Region.
9150	//
9151	// GatewayARN is a required field
9152	GatewayARN *string `min:"50" type:"string" required:"true"`
9153}
9154
9155// String returns the string representation
9156func (s AddUploadBufferInput) String() string {
9157	return awsutil.Prettify(s)
9158}
9159
9160// GoString returns the string representation
9161func (s AddUploadBufferInput) GoString() string {
9162	return s.String()
9163}
9164
9165// Validate inspects the fields of the type to determine if they are valid.
9166func (s *AddUploadBufferInput) Validate() error {
9167	invalidParams := request.ErrInvalidParams{Context: "AddUploadBufferInput"}
9168	if s.DiskIds == nil {
9169		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
9170	}
9171	if s.GatewayARN == nil {
9172		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9173	}
9174	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9175		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9176	}
9177
9178	if invalidParams.Len() > 0 {
9179		return invalidParams
9180	}
9181	return nil
9182}
9183
9184// SetDiskIds sets the DiskIds field's value.
9185func (s *AddUploadBufferInput) SetDiskIds(v []*string) *AddUploadBufferInput {
9186	s.DiskIds = v
9187	return s
9188}
9189
9190// SetGatewayARN sets the GatewayARN field's value.
9191func (s *AddUploadBufferInput) SetGatewayARN(v string) *AddUploadBufferInput {
9192	s.GatewayARN = &v
9193	return s
9194}
9195
9196type AddUploadBufferOutput struct {
9197	_ struct{} `type:"structure"`
9198
9199	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9200	// to return a list of gateways for your account and AWS Region.
9201	GatewayARN *string `min:"50" type:"string"`
9202}
9203
9204// String returns the string representation
9205func (s AddUploadBufferOutput) String() string {
9206	return awsutil.Prettify(s)
9207}
9208
9209// GoString returns the string representation
9210func (s AddUploadBufferOutput) GoString() string {
9211	return s.String()
9212}
9213
9214// SetGatewayARN sets the GatewayARN field's value.
9215func (s *AddUploadBufferOutput) SetGatewayARN(v string) *AddUploadBufferOutput {
9216	s.GatewayARN = &v
9217	return s
9218}
9219
9220// A JSON object containing one or more of the following fields:
9221//
9222//    * AddWorkingStorageInput$DiskIds
9223type AddWorkingStorageInput struct {
9224	_ struct{} `type:"structure"`
9225
9226	// An array of strings that identify disks that are to be configured as working
9227	// storage. Each string has a minimum length of 1 and maximum length of 300.
9228	// You can get the disk IDs from the ListLocalDisks API.
9229	//
9230	// DiskIds is a required field
9231	DiskIds []*string `type:"list" required:"true"`
9232
9233	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9234	// to return a list of gateways for your account and AWS Region.
9235	//
9236	// GatewayARN is a required field
9237	GatewayARN *string `min:"50" type:"string" required:"true"`
9238}
9239
9240// String returns the string representation
9241func (s AddWorkingStorageInput) String() string {
9242	return awsutil.Prettify(s)
9243}
9244
9245// GoString returns the string representation
9246func (s AddWorkingStorageInput) GoString() string {
9247	return s.String()
9248}
9249
9250// Validate inspects the fields of the type to determine if they are valid.
9251func (s *AddWorkingStorageInput) Validate() error {
9252	invalidParams := request.ErrInvalidParams{Context: "AddWorkingStorageInput"}
9253	if s.DiskIds == nil {
9254		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
9255	}
9256	if s.GatewayARN == nil {
9257		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9258	}
9259	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9260		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9261	}
9262
9263	if invalidParams.Len() > 0 {
9264		return invalidParams
9265	}
9266	return nil
9267}
9268
9269// SetDiskIds sets the DiskIds field's value.
9270func (s *AddWorkingStorageInput) SetDiskIds(v []*string) *AddWorkingStorageInput {
9271	s.DiskIds = v
9272	return s
9273}
9274
9275// SetGatewayARN sets the GatewayARN field's value.
9276func (s *AddWorkingStorageInput) SetGatewayARN(v string) *AddWorkingStorageInput {
9277	s.GatewayARN = &v
9278	return s
9279}
9280
9281// A JSON object containing the Amazon Resource Name (ARN) of the gateway for
9282// which working storage was configured.
9283type AddWorkingStorageOutput struct {
9284	_ struct{} `type:"structure"`
9285
9286	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9287	// to return a list of gateways for your account and AWS Region.
9288	GatewayARN *string `min:"50" type:"string"`
9289}
9290
9291// String returns the string representation
9292func (s AddWorkingStorageOutput) String() string {
9293	return awsutil.Prettify(s)
9294}
9295
9296// GoString returns the string representation
9297func (s AddWorkingStorageOutput) GoString() string {
9298	return s.String()
9299}
9300
9301// SetGatewayARN sets the GatewayARN field's value.
9302func (s *AddWorkingStorageOutput) SetGatewayARN(v string) *AddWorkingStorageOutput {
9303	s.GatewayARN = &v
9304	return s
9305}
9306
9307type AssignTapePoolInput struct {
9308	_ struct{} `type:"structure"`
9309
9310	// Set permissions to bypass governance retention. If the lock type of the archived
9311	// tape is Governance, the tape's archived age is not older than RetentionLockInDays,
9312	// and the user does not already have BypassGovernanceRetention, setting this
9313	// to TRUE enables the user to bypass the retention lock. This parameter is
9314	// set to true by default for calls from the console.
9315	//
9316	// Valid values: TRUE | FALSE
9317	BypassGovernanceRetention *bool `type:"boolean"`
9318
9319	// The ID of the pool that you want to add your tape to for archiving. The tape
9320	// in this pool is archived in the S3 storage class that is associated with
9321	// the pool. When you use your backup application to eject the tape, the tape
9322	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
9323	// Archive) that corresponds to the pool.
9324	//
9325	// Valid Values: GLACIER | DEEP_ARCHIVE
9326	//
9327	// PoolId is a required field
9328	PoolId *string `min:"1" type:"string" required:"true"`
9329
9330	// The unique Amazon Resource Name (ARN) of the virtual tape that you want to
9331	// add to the tape pool.
9332	//
9333	// TapeARN is a required field
9334	TapeARN *string `min:"50" type:"string" required:"true"`
9335}
9336
9337// String returns the string representation
9338func (s AssignTapePoolInput) String() string {
9339	return awsutil.Prettify(s)
9340}
9341
9342// GoString returns the string representation
9343func (s AssignTapePoolInput) GoString() string {
9344	return s.String()
9345}
9346
9347// Validate inspects the fields of the type to determine if they are valid.
9348func (s *AssignTapePoolInput) Validate() error {
9349	invalidParams := request.ErrInvalidParams{Context: "AssignTapePoolInput"}
9350	if s.PoolId == nil {
9351		invalidParams.Add(request.NewErrParamRequired("PoolId"))
9352	}
9353	if s.PoolId != nil && len(*s.PoolId) < 1 {
9354		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
9355	}
9356	if s.TapeARN == nil {
9357		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
9358	}
9359	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
9360		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
9361	}
9362
9363	if invalidParams.Len() > 0 {
9364		return invalidParams
9365	}
9366	return nil
9367}
9368
9369// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
9370func (s *AssignTapePoolInput) SetBypassGovernanceRetention(v bool) *AssignTapePoolInput {
9371	s.BypassGovernanceRetention = &v
9372	return s
9373}
9374
9375// SetPoolId sets the PoolId field's value.
9376func (s *AssignTapePoolInput) SetPoolId(v string) *AssignTapePoolInput {
9377	s.PoolId = &v
9378	return s
9379}
9380
9381// SetTapeARN sets the TapeARN field's value.
9382func (s *AssignTapePoolInput) SetTapeARN(v string) *AssignTapePoolInput {
9383	s.TapeARN = &v
9384	return s
9385}
9386
9387type AssignTapePoolOutput struct {
9388	_ struct{} `type:"structure"`
9389
9390	// The unique Amazon Resource Names (ARN) of the virtual tape that was added
9391	// to the tape pool.
9392	TapeARN *string `min:"50" type:"string"`
9393}
9394
9395// String returns the string representation
9396func (s AssignTapePoolOutput) String() string {
9397	return awsutil.Prettify(s)
9398}
9399
9400// GoString returns the string representation
9401func (s AssignTapePoolOutput) GoString() string {
9402	return s.String()
9403}
9404
9405// SetTapeARN sets the TapeARN field's value.
9406func (s *AssignTapePoolOutput) SetTapeARN(v string) *AssignTapePoolOutput {
9407	s.TapeARN = &v
9408	return s
9409}
9410
9411type AssociateFileSystemInput struct {
9412	_ struct{} `type:"structure"`
9413
9414	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
9415	AuditDestinationARN *string `type:"string"`
9416
9417	// The refresh cache information for the file share.
9418	CacheAttributes *CacheAttributes `type:"structure"`
9419
9420	// A unique string value that you supply that is used by the file gateway to
9421	// ensure idempotent file system association creation.
9422	//
9423	// ClientToken is a required field
9424	ClientToken *string `min:"5" type:"string" required:"true"`
9425
9426	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9427	// to return a list of gateways for your account and AWS Region.
9428	//
9429	// GatewayARN is a required field
9430	GatewayARN *string `min:"50" type:"string" required:"true"`
9431
9432	// The Amazon Resource Name (ARN) of the Amazon FSx file system to associate
9433	// with the Amazon FSx file gateway.
9434	//
9435	// LocationARN is a required field
9436	LocationARN *string `min:"8" type:"string" required:"true"`
9437
9438	// The password of the user credential.
9439	//
9440	// Password is a required field
9441	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
9442
9443	// A list of up to 50 tags that can be assigned to the file system association.
9444	// Each tag is a key-value pair.
9445	Tags []*Tag `type:"list"`
9446
9447	// The user name of the user credential that has permission to access the root
9448	// share D$ of the Amazon FSx file system. The user account must belong to the
9449	// Amazon FSx delegated admin user group.
9450	//
9451	// UserName is a required field
9452	UserName *string `min:"1" type:"string" required:"true"`
9453}
9454
9455// String returns the string representation
9456func (s AssociateFileSystemInput) String() string {
9457	return awsutil.Prettify(s)
9458}
9459
9460// GoString returns the string representation
9461func (s AssociateFileSystemInput) GoString() string {
9462	return s.String()
9463}
9464
9465// Validate inspects the fields of the type to determine if they are valid.
9466func (s *AssociateFileSystemInput) Validate() error {
9467	invalidParams := request.ErrInvalidParams{Context: "AssociateFileSystemInput"}
9468	if s.ClientToken == nil {
9469		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
9470	}
9471	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
9472		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
9473	}
9474	if s.GatewayARN == nil {
9475		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9476	}
9477	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9478		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9479	}
9480	if s.LocationARN == nil {
9481		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
9482	}
9483	if s.LocationARN != nil && len(*s.LocationARN) < 8 {
9484		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 8))
9485	}
9486	if s.Password == nil {
9487		invalidParams.Add(request.NewErrParamRequired("Password"))
9488	}
9489	if s.Password != nil && len(*s.Password) < 1 {
9490		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
9491	}
9492	if s.UserName == nil {
9493		invalidParams.Add(request.NewErrParamRequired("UserName"))
9494	}
9495	if s.UserName != nil && len(*s.UserName) < 1 {
9496		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
9497	}
9498	if s.Tags != nil {
9499		for i, v := range s.Tags {
9500			if v == nil {
9501				continue
9502			}
9503			if err := v.Validate(); err != nil {
9504				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9505			}
9506		}
9507	}
9508
9509	if invalidParams.Len() > 0 {
9510		return invalidParams
9511	}
9512	return nil
9513}
9514
9515// SetAuditDestinationARN sets the AuditDestinationARN field's value.
9516func (s *AssociateFileSystemInput) SetAuditDestinationARN(v string) *AssociateFileSystemInput {
9517	s.AuditDestinationARN = &v
9518	return s
9519}
9520
9521// SetCacheAttributes sets the CacheAttributes field's value.
9522func (s *AssociateFileSystemInput) SetCacheAttributes(v *CacheAttributes) *AssociateFileSystemInput {
9523	s.CacheAttributes = v
9524	return s
9525}
9526
9527// SetClientToken sets the ClientToken field's value.
9528func (s *AssociateFileSystemInput) SetClientToken(v string) *AssociateFileSystemInput {
9529	s.ClientToken = &v
9530	return s
9531}
9532
9533// SetGatewayARN sets the GatewayARN field's value.
9534func (s *AssociateFileSystemInput) SetGatewayARN(v string) *AssociateFileSystemInput {
9535	s.GatewayARN = &v
9536	return s
9537}
9538
9539// SetLocationARN sets the LocationARN field's value.
9540func (s *AssociateFileSystemInput) SetLocationARN(v string) *AssociateFileSystemInput {
9541	s.LocationARN = &v
9542	return s
9543}
9544
9545// SetPassword sets the Password field's value.
9546func (s *AssociateFileSystemInput) SetPassword(v string) *AssociateFileSystemInput {
9547	s.Password = &v
9548	return s
9549}
9550
9551// SetTags sets the Tags field's value.
9552func (s *AssociateFileSystemInput) SetTags(v []*Tag) *AssociateFileSystemInput {
9553	s.Tags = v
9554	return s
9555}
9556
9557// SetUserName sets the UserName field's value.
9558func (s *AssociateFileSystemInput) SetUserName(v string) *AssociateFileSystemInput {
9559	s.UserName = &v
9560	return s
9561}
9562
9563type AssociateFileSystemOutput struct {
9564	_ struct{} `type:"structure"`
9565
9566	// The ARN of the newly created file system association.
9567	FileSystemAssociationARN *string `min:"50" type:"string"`
9568}
9569
9570// String returns the string representation
9571func (s AssociateFileSystemOutput) String() string {
9572	return awsutil.Prettify(s)
9573}
9574
9575// GoString returns the string representation
9576func (s AssociateFileSystemOutput) GoString() string {
9577	return s.String()
9578}
9579
9580// SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
9581func (s *AssociateFileSystemOutput) SetFileSystemAssociationARN(v string) *AssociateFileSystemOutput {
9582	s.FileSystemAssociationARN = &v
9583	return s
9584}
9585
9586// AttachVolumeInput
9587type AttachVolumeInput struct {
9588	_ struct{} `type:"structure"`
9589
9590	// The unique device ID or other distinguishing data that identifies the local
9591	// disk used to create the volume. This value is only required when you are
9592	// attaching a stored volume.
9593	DiskId *string `min:"1" type:"string"`
9594
9595	// The Amazon Resource Name (ARN) of the gateway that you want to attach the
9596	// volume to.
9597	//
9598	// GatewayARN is a required field
9599	GatewayARN *string `min:"50" type:"string" required:"true"`
9600
9601	// The network interface of the gateway on which to expose the iSCSI target.
9602	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
9603	// list of the network interfaces available on a gateway.
9604	//
9605	// Valid Values: A valid IP address.
9606	//
9607	// NetworkInterfaceId is a required field
9608	NetworkInterfaceId *string `type:"string" required:"true"`
9609
9610	// The name of the iSCSI target used by an initiator to connect to a volume
9611	// and used as a suffix for the target ARN. For example, specifying TargetName
9612	// 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.
9613	// The target name must be unique across all volumes on a gateway.
9614	//
9615	// If you don't specify a value, Storage Gateway uses the value that was previously
9616	// used for this volume as the new target name.
9617	TargetName *string `min:"1" type:"string"`
9618
9619	// The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.
9620	//
9621	// VolumeARN is a required field
9622	VolumeARN *string `min:"50" type:"string" required:"true"`
9623}
9624
9625// String returns the string representation
9626func (s AttachVolumeInput) String() string {
9627	return awsutil.Prettify(s)
9628}
9629
9630// GoString returns the string representation
9631func (s AttachVolumeInput) GoString() string {
9632	return s.String()
9633}
9634
9635// Validate inspects the fields of the type to determine if they are valid.
9636func (s *AttachVolumeInput) Validate() error {
9637	invalidParams := request.ErrInvalidParams{Context: "AttachVolumeInput"}
9638	if s.DiskId != nil && len(*s.DiskId) < 1 {
9639		invalidParams.Add(request.NewErrParamMinLen("DiskId", 1))
9640	}
9641	if s.GatewayARN == nil {
9642		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9643	}
9644	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9645		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9646	}
9647	if s.NetworkInterfaceId == nil {
9648		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
9649	}
9650	if s.TargetName != nil && len(*s.TargetName) < 1 {
9651		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
9652	}
9653	if s.VolumeARN == nil {
9654		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
9655	}
9656	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
9657		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
9658	}
9659
9660	if invalidParams.Len() > 0 {
9661		return invalidParams
9662	}
9663	return nil
9664}
9665
9666// SetDiskId sets the DiskId field's value.
9667func (s *AttachVolumeInput) SetDiskId(v string) *AttachVolumeInput {
9668	s.DiskId = &v
9669	return s
9670}
9671
9672// SetGatewayARN sets the GatewayARN field's value.
9673func (s *AttachVolumeInput) SetGatewayARN(v string) *AttachVolumeInput {
9674	s.GatewayARN = &v
9675	return s
9676}
9677
9678// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
9679func (s *AttachVolumeInput) SetNetworkInterfaceId(v string) *AttachVolumeInput {
9680	s.NetworkInterfaceId = &v
9681	return s
9682}
9683
9684// SetTargetName sets the TargetName field's value.
9685func (s *AttachVolumeInput) SetTargetName(v string) *AttachVolumeInput {
9686	s.TargetName = &v
9687	return s
9688}
9689
9690// SetVolumeARN sets the VolumeARN field's value.
9691func (s *AttachVolumeInput) SetVolumeARN(v string) *AttachVolumeInput {
9692	s.VolumeARN = &v
9693	return s
9694}
9695
9696// AttachVolumeOutput
9697type AttachVolumeOutput struct {
9698	_ struct{} `type:"structure"`
9699
9700	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
9701	// name for the initiator that was used to connect to the target.
9702	TargetARN *string `min:"50" type:"string"`
9703
9704	// The Amazon Resource Name (ARN) of the volume that was attached to the gateway.
9705	VolumeARN *string `min:"50" type:"string"`
9706}
9707
9708// String returns the string representation
9709func (s AttachVolumeOutput) String() string {
9710	return awsutil.Prettify(s)
9711}
9712
9713// GoString returns the string representation
9714func (s AttachVolumeOutput) GoString() string {
9715	return s.String()
9716}
9717
9718// SetTargetARN sets the TargetARN field's value.
9719func (s *AttachVolumeOutput) SetTargetARN(v string) *AttachVolumeOutput {
9720	s.TargetARN = &v
9721	return s
9722}
9723
9724// SetVolumeARN sets the VolumeARN field's value.
9725func (s *AttachVolumeOutput) SetVolumeARN(v string) *AttachVolumeOutput {
9726	s.VolumeARN = &v
9727	return s
9728}
9729
9730// Information about the gateway's automatic tape creation policies, including
9731// the automatic tape creation rules and the gateway that is using the policies.
9732type AutomaticTapeCreationPolicyInfo struct {
9733	_ struct{} `type:"structure"`
9734
9735	// An automatic tape creation policy consists of a list of automatic tape creation
9736	// rules. This returns the rules that determine when and how to automatically
9737	// create new tapes.
9738	AutomaticTapeCreationRules []*AutomaticTapeCreationRule `min:"1" type:"list"`
9739
9740	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9741	// to return a list of gateways for your account and AWS Region.
9742	GatewayARN *string `min:"50" type:"string"`
9743}
9744
9745// String returns the string representation
9746func (s AutomaticTapeCreationPolicyInfo) String() string {
9747	return awsutil.Prettify(s)
9748}
9749
9750// GoString returns the string representation
9751func (s AutomaticTapeCreationPolicyInfo) GoString() string {
9752	return s.String()
9753}
9754
9755// SetAutomaticTapeCreationRules sets the AutomaticTapeCreationRules field's value.
9756func (s *AutomaticTapeCreationPolicyInfo) SetAutomaticTapeCreationRules(v []*AutomaticTapeCreationRule) *AutomaticTapeCreationPolicyInfo {
9757	s.AutomaticTapeCreationRules = v
9758	return s
9759}
9760
9761// SetGatewayARN sets the GatewayARN field's value.
9762func (s *AutomaticTapeCreationPolicyInfo) SetGatewayARN(v string) *AutomaticTapeCreationPolicyInfo {
9763	s.GatewayARN = &v
9764	return s
9765}
9766
9767// An automatic tape creation policy consists of automatic tape creation rules
9768// where each rule defines when and how to create new tapes. For more information
9769// about automatic tape creation, see Creating Tapes Automatically (https://docs.aws.amazon.com/storagegateway/latest/userguide/GettingStartedCreateTapes.html#CreateTapesAutomatically).
9770type AutomaticTapeCreationRule struct {
9771	_ struct{} `type:"structure"`
9772
9773	// The minimum number of available virtual tapes that the gateway maintains
9774	// at all times. If the number of tapes on the gateway goes below this value,
9775	// the gateway creates as many new tapes as are needed to have MinimumNumTapes
9776	// on the gateway. For more information about automatic tape creation, see Creating
9777	// Tapes Automatically (https://docs.aws.amazon.com/storagegateway/latest/userguide/GettingStartedCreateTapes.html#CreateTapesAutomatically).
9778	//
9779	// MinimumNumTapes is a required field
9780	MinimumNumTapes *int64 `min:"1" type:"integer" required:"true"`
9781
9782	// The ID of the pool that you want to add your tape to for archiving. The tape
9783	// in this pool is archived in the Amazon S3 storage class that is associated
9784	// with the pool. When you use your backup application to eject the tape, the
9785	// tape is archived directly into the storage class (S3 Glacier or S3 Glacier
9786	// Deep Archive) that corresponds to the pool.
9787	//
9788	// Valid Values: GLACIER | DEEP_ARCHIVE
9789	//
9790	// PoolId is a required field
9791	PoolId *string `min:"1" type:"string" required:"true"`
9792
9793	// A prefix that you append to the barcode of the virtual tape that you are
9794	// creating. This prefix makes the barcode unique.
9795	//
9796	// The prefix must be 1-4 characters in length and must be one of the uppercase
9797	// letters from A to Z.
9798	//
9799	// TapeBarcodePrefix is a required field
9800	TapeBarcodePrefix *string `min:"1" type:"string" required:"true"`
9801
9802	// The size, in bytes, of the virtual tape capacity.
9803	//
9804	// TapeSizeInBytes is a required field
9805	TapeSizeInBytes *int64 `type:"long" required:"true"`
9806
9807	// Set to true to indicate that tapes are to be archived as write-once-read-many
9808	// (WORM). Set to false when WORM is not enabled for tapes.
9809	Worm *bool `type:"boolean"`
9810}
9811
9812// String returns the string representation
9813func (s AutomaticTapeCreationRule) String() string {
9814	return awsutil.Prettify(s)
9815}
9816
9817// GoString returns the string representation
9818func (s AutomaticTapeCreationRule) GoString() string {
9819	return s.String()
9820}
9821
9822// Validate inspects the fields of the type to determine if they are valid.
9823func (s *AutomaticTapeCreationRule) Validate() error {
9824	invalidParams := request.ErrInvalidParams{Context: "AutomaticTapeCreationRule"}
9825	if s.MinimumNumTapes == nil {
9826		invalidParams.Add(request.NewErrParamRequired("MinimumNumTapes"))
9827	}
9828	if s.MinimumNumTapes != nil && *s.MinimumNumTapes < 1 {
9829		invalidParams.Add(request.NewErrParamMinValue("MinimumNumTapes", 1))
9830	}
9831	if s.PoolId == nil {
9832		invalidParams.Add(request.NewErrParamRequired("PoolId"))
9833	}
9834	if s.PoolId != nil && len(*s.PoolId) < 1 {
9835		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
9836	}
9837	if s.TapeBarcodePrefix == nil {
9838		invalidParams.Add(request.NewErrParamRequired("TapeBarcodePrefix"))
9839	}
9840	if s.TapeBarcodePrefix != nil && len(*s.TapeBarcodePrefix) < 1 {
9841		invalidParams.Add(request.NewErrParamMinLen("TapeBarcodePrefix", 1))
9842	}
9843	if s.TapeSizeInBytes == nil {
9844		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
9845	}
9846
9847	if invalidParams.Len() > 0 {
9848		return invalidParams
9849	}
9850	return nil
9851}
9852
9853// SetMinimumNumTapes sets the MinimumNumTapes field's value.
9854func (s *AutomaticTapeCreationRule) SetMinimumNumTapes(v int64) *AutomaticTapeCreationRule {
9855	s.MinimumNumTapes = &v
9856	return s
9857}
9858
9859// SetPoolId sets the PoolId field's value.
9860func (s *AutomaticTapeCreationRule) SetPoolId(v string) *AutomaticTapeCreationRule {
9861	s.PoolId = &v
9862	return s
9863}
9864
9865// SetTapeBarcodePrefix sets the TapeBarcodePrefix field's value.
9866func (s *AutomaticTapeCreationRule) SetTapeBarcodePrefix(v string) *AutomaticTapeCreationRule {
9867	s.TapeBarcodePrefix = &v
9868	return s
9869}
9870
9871// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
9872func (s *AutomaticTapeCreationRule) SetTapeSizeInBytes(v int64) *AutomaticTapeCreationRule {
9873	s.TapeSizeInBytes = &v
9874	return s
9875}
9876
9877// SetWorm sets the Worm field's value.
9878func (s *AutomaticTapeCreationRule) SetWorm(v bool) *AutomaticTapeCreationRule {
9879	s.Worm = &v
9880	return s
9881}
9882
9883// Describes a bandwidth rate limit interval for a gateway. A bandwidth rate
9884// limit schedule consists of one or more bandwidth rate limit intervals. A
9885// bandwidth rate limit interval defines a period of time on one or more days
9886// of the week, during which bandwidth rate limits are specified for uploading,
9887// downloading, or both.
9888type BandwidthRateLimitInterval struct {
9889	_ struct{} `type:"structure"`
9890
9891	// The average download rate limit component of the bandwidth rate limit interval,
9892	// in bits per second. This field does not appear in the response if the download
9893	// rate limit is not set.
9894	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
9895
9896	// The average upload rate limit component of the bandwidth rate limit interval,
9897	// in bits per second. This field does not appear in the response if the upload
9898	// rate limit is not set.
9899	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
9900
9901	// The days of the week component of the bandwidth rate limit interval, represented
9902	// as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 represents
9903	// Saturday.
9904	//
9905	// DaysOfWeek is a required field
9906	DaysOfWeek []*int64 `min:"1" type:"list" required:"true"`
9907
9908	// The hour of the day to end the bandwidth rate limit interval.
9909	//
9910	// EndHourOfDay is a required field
9911	EndHourOfDay *int64 `type:"integer" required:"true"`
9912
9913	// The minute of the hour to end the bandwidth rate limit interval.
9914	//
9915	// The bandwidth rate limit interval ends at the end of the minute. To end an
9916	// interval at the end of an hour, use the value 59.
9917	//
9918	// EndMinuteOfHour is a required field
9919	EndMinuteOfHour *int64 `type:"integer" required:"true"`
9920
9921	// The hour of the day to start the bandwidth rate limit interval.
9922	//
9923	// StartHourOfDay is a required field
9924	StartHourOfDay *int64 `type:"integer" required:"true"`
9925
9926	// The minute of the hour to start the bandwidth rate limit interval. The interval
9927	// begins at the start of that minute. To begin an interval exactly at the start
9928	// of the hour, use the value 0.
9929	//
9930	// StartMinuteOfHour is a required field
9931	StartMinuteOfHour *int64 `type:"integer" required:"true"`
9932}
9933
9934// String returns the string representation
9935func (s BandwidthRateLimitInterval) String() string {
9936	return awsutil.Prettify(s)
9937}
9938
9939// GoString returns the string representation
9940func (s BandwidthRateLimitInterval) GoString() string {
9941	return s.String()
9942}
9943
9944// Validate inspects the fields of the type to determine if they are valid.
9945func (s *BandwidthRateLimitInterval) Validate() error {
9946	invalidParams := request.ErrInvalidParams{Context: "BandwidthRateLimitInterval"}
9947	if s.AverageDownloadRateLimitInBitsPerSec != nil && *s.AverageDownloadRateLimitInBitsPerSec < 102400 {
9948		invalidParams.Add(request.NewErrParamMinValue("AverageDownloadRateLimitInBitsPerSec", 102400))
9949	}
9950	if s.AverageUploadRateLimitInBitsPerSec != nil && *s.AverageUploadRateLimitInBitsPerSec < 51200 {
9951		invalidParams.Add(request.NewErrParamMinValue("AverageUploadRateLimitInBitsPerSec", 51200))
9952	}
9953	if s.DaysOfWeek == nil {
9954		invalidParams.Add(request.NewErrParamRequired("DaysOfWeek"))
9955	}
9956	if s.DaysOfWeek != nil && len(s.DaysOfWeek) < 1 {
9957		invalidParams.Add(request.NewErrParamMinLen("DaysOfWeek", 1))
9958	}
9959	if s.EndHourOfDay == nil {
9960		invalidParams.Add(request.NewErrParamRequired("EndHourOfDay"))
9961	}
9962	if s.EndMinuteOfHour == nil {
9963		invalidParams.Add(request.NewErrParamRequired("EndMinuteOfHour"))
9964	}
9965	if s.StartHourOfDay == nil {
9966		invalidParams.Add(request.NewErrParamRequired("StartHourOfDay"))
9967	}
9968	if s.StartMinuteOfHour == nil {
9969		invalidParams.Add(request.NewErrParamRequired("StartMinuteOfHour"))
9970	}
9971
9972	if invalidParams.Len() > 0 {
9973		return invalidParams
9974	}
9975	return nil
9976}
9977
9978// SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
9979func (s *BandwidthRateLimitInterval) SetAverageDownloadRateLimitInBitsPerSec(v int64) *BandwidthRateLimitInterval {
9980	s.AverageDownloadRateLimitInBitsPerSec = &v
9981	return s
9982}
9983
9984// SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
9985func (s *BandwidthRateLimitInterval) SetAverageUploadRateLimitInBitsPerSec(v int64) *BandwidthRateLimitInterval {
9986	s.AverageUploadRateLimitInBitsPerSec = &v
9987	return s
9988}
9989
9990// SetDaysOfWeek sets the DaysOfWeek field's value.
9991func (s *BandwidthRateLimitInterval) SetDaysOfWeek(v []*int64) *BandwidthRateLimitInterval {
9992	s.DaysOfWeek = v
9993	return s
9994}
9995
9996// SetEndHourOfDay sets the EndHourOfDay field's value.
9997func (s *BandwidthRateLimitInterval) SetEndHourOfDay(v int64) *BandwidthRateLimitInterval {
9998	s.EndHourOfDay = &v
9999	return s
10000}
10001
10002// SetEndMinuteOfHour sets the EndMinuteOfHour field's value.
10003func (s *BandwidthRateLimitInterval) SetEndMinuteOfHour(v int64) *BandwidthRateLimitInterval {
10004	s.EndMinuteOfHour = &v
10005	return s
10006}
10007
10008// SetStartHourOfDay sets the StartHourOfDay field's value.
10009func (s *BandwidthRateLimitInterval) SetStartHourOfDay(v int64) *BandwidthRateLimitInterval {
10010	s.StartHourOfDay = &v
10011	return s
10012}
10013
10014// SetStartMinuteOfHour sets the StartMinuteOfHour field's value.
10015func (s *BandwidthRateLimitInterval) SetStartMinuteOfHour(v int64) *BandwidthRateLimitInterval {
10016	s.StartMinuteOfHour = &v
10017	return s
10018}
10019
10020// The refresh cache information for the file share.
10021type CacheAttributes struct {
10022	_ struct{} `type:"structure"`
10023
10024	// Refreshes a file share's cache by using Time To Live (TTL). TTL is the length
10025	// of time since the last refresh after which access to the directory would
10026	// cause the file gateway to first refresh that directory's contents from the
10027	// Amazon S3 bucket or Amazon FSx file system. The TTL duration is in seconds.
10028	//
10029	// Valid Values: 300 to 2,592,000 seconds (5 minutes to 30 days)
10030	CacheStaleTimeoutInSeconds *int64 `type:"integer"`
10031}
10032
10033// String returns the string representation
10034func (s CacheAttributes) String() string {
10035	return awsutil.Prettify(s)
10036}
10037
10038// GoString returns the string representation
10039func (s CacheAttributes) GoString() string {
10040	return s.String()
10041}
10042
10043// SetCacheStaleTimeoutInSeconds sets the CacheStaleTimeoutInSeconds field's value.
10044func (s *CacheAttributes) SetCacheStaleTimeoutInSeconds(v int64) *CacheAttributes {
10045	s.CacheStaleTimeoutInSeconds = &v
10046	return s
10047}
10048
10049// Describes an iSCSI cached volume.
10050type CachediSCSIVolume struct {
10051	_ struct{} `type:"structure"`
10052
10053	// The date the volume was created. Volumes created prior to March 28, 2017
10054	// don’t have this timestamp.
10055	CreatedDate *time.Time `type:"timestamp"`
10056
10057	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
10058	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
10059	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
10060	KMSKey *string `min:"7" type:"string"`
10061
10062	// If the cached volume was created from a snapshot, this field contains the
10063	// snapshot ID used, e.g., snap-78e22663. Otherwise, this field is not included.
10064	SourceSnapshotId *string `type:"string"`
10065
10066	// The name of the iSCSI target used by an initiator to connect to a volume
10067	// and used as a suffix for the target ARN. For example, specifying TargetName
10068	// 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.
10069	// The target name must be unique across all volumes on a gateway.
10070	//
10071	// If you don't specify a value, Storage Gateway uses the value that was previously
10072	// used for this volume as the new target name.
10073	TargetName *string `min:"1" type:"string"`
10074
10075	// The Amazon Resource Name (ARN) of the storage volume.
10076	VolumeARN *string `min:"50" type:"string"`
10077
10078	// A value that indicates whether a storage volume is attached to or detached
10079	// from a gateway. For more information, see Moving your volumes to a different
10080	// gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
10081	VolumeAttachmentStatus *string `min:"3" type:"string"`
10082
10083	// The unique identifier of the volume, e.g., vol-AE4B946D.
10084	VolumeId *string `min:"12" type:"string"`
10085
10086	// Represents the percentage complete if the volume is restoring or bootstrapping
10087	// that represents the percent of data transferred. This field does not appear
10088	// in the response if the cached volume is not restoring or bootstrapping.
10089	VolumeProgress *float64 `type:"double"`
10090
10091	// The size, in bytes, of the volume capacity.
10092	VolumeSizeInBytes *int64 `type:"long"`
10093
10094	// One of the VolumeStatus values that indicates the state of the storage volume.
10095	VolumeStatus *string `min:"3" type:"string"`
10096
10097	// One of the VolumeType enumeration values that describes the type of the volume.
10098	VolumeType *string `min:"3" type:"string"`
10099
10100	// The size of the data stored on the volume in bytes. This value is calculated
10101	// based on the number of blocks that are touched, instead of the actual amount
10102	// of data written. This value can be useful for sequential write patterns but
10103	// less accurate for random write patterns. VolumeUsedInBytes is different from
10104	// the compressed size of the volume, which is the value that is used to calculate
10105	// your bill.
10106	//
10107	// This value is not available for volumes created prior to May 13, 2015, until
10108	// you store data on the volume.
10109	VolumeUsedInBytes *int64 `type:"long"`
10110
10111	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
10112	// for one stored volume.
10113	VolumeiSCSIAttributes *VolumeiSCSIAttributes `type:"structure"`
10114}
10115
10116// String returns the string representation
10117func (s CachediSCSIVolume) String() string {
10118	return awsutil.Prettify(s)
10119}
10120
10121// GoString returns the string representation
10122func (s CachediSCSIVolume) GoString() string {
10123	return s.String()
10124}
10125
10126// SetCreatedDate sets the CreatedDate field's value.
10127func (s *CachediSCSIVolume) SetCreatedDate(v time.Time) *CachediSCSIVolume {
10128	s.CreatedDate = &v
10129	return s
10130}
10131
10132// SetKMSKey sets the KMSKey field's value.
10133func (s *CachediSCSIVolume) SetKMSKey(v string) *CachediSCSIVolume {
10134	s.KMSKey = &v
10135	return s
10136}
10137
10138// SetSourceSnapshotId sets the SourceSnapshotId field's value.
10139func (s *CachediSCSIVolume) SetSourceSnapshotId(v string) *CachediSCSIVolume {
10140	s.SourceSnapshotId = &v
10141	return s
10142}
10143
10144// SetTargetName sets the TargetName field's value.
10145func (s *CachediSCSIVolume) SetTargetName(v string) *CachediSCSIVolume {
10146	s.TargetName = &v
10147	return s
10148}
10149
10150// SetVolumeARN sets the VolumeARN field's value.
10151func (s *CachediSCSIVolume) SetVolumeARN(v string) *CachediSCSIVolume {
10152	s.VolumeARN = &v
10153	return s
10154}
10155
10156// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
10157func (s *CachediSCSIVolume) SetVolumeAttachmentStatus(v string) *CachediSCSIVolume {
10158	s.VolumeAttachmentStatus = &v
10159	return s
10160}
10161
10162// SetVolumeId sets the VolumeId field's value.
10163func (s *CachediSCSIVolume) SetVolumeId(v string) *CachediSCSIVolume {
10164	s.VolumeId = &v
10165	return s
10166}
10167
10168// SetVolumeProgress sets the VolumeProgress field's value.
10169func (s *CachediSCSIVolume) SetVolumeProgress(v float64) *CachediSCSIVolume {
10170	s.VolumeProgress = &v
10171	return s
10172}
10173
10174// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
10175func (s *CachediSCSIVolume) SetVolumeSizeInBytes(v int64) *CachediSCSIVolume {
10176	s.VolumeSizeInBytes = &v
10177	return s
10178}
10179
10180// SetVolumeStatus sets the VolumeStatus field's value.
10181func (s *CachediSCSIVolume) SetVolumeStatus(v string) *CachediSCSIVolume {
10182	s.VolumeStatus = &v
10183	return s
10184}
10185
10186// SetVolumeType sets the VolumeType field's value.
10187func (s *CachediSCSIVolume) SetVolumeType(v string) *CachediSCSIVolume {
10188	s.VolumeType = &v
10189	return s
10190}
10191
10192// SetVolumeUsedInBytes sets the VolumeUsedInBytes field's value.
10193func (s *CachediSCSIVolume) SetVolumeUsedInBytes(v int64) *CachediSCSIVolume {
10194	s.VolumeUsedInBytes = &v
10195	return s
10196}
10197
10198// SetVolumeiSCSIAttributes sets the VolumeiSCSIAttributes field's value.
10199func (s *CachediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *CachediSCSIVolume {
10200	s.VolumeiSCSIAttributes = v
10201	return s
10202}
10203
10204// CancelArchivalInput
10205type CancelArchivalInput struct {
10206	_ struct{} `type:"structure"`
10207
10208	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10209	// to return a list of gateways for your account and AWS Region.
10210	//
10211	// GatewayARN is a required field
10212	GatewayARN *string `min:"50" type:"string" required:"true"`
10213
10214	// The Amazon Resource Name (ARN) of the virtual tape you want to cancel archiving
10215	// for.
10216	//
10217	// TapeARN is a required field
10218	TapeARN *string `min:"50" type:"string" required:"true"`
10219}
10220
10221// String returns the string representation
10222func (s CancelArchivalInput) String() string {
10223	return awsutil.Prettify(s)
10224}
10225
10226// GoString returns the string representation
10227func (s CancelArchivalInput) GoString() string {
10228	return s.String()
10229}
10230
10231// Validate inspects the fields of the type to determine if they are valid.
10232func (s *CancelArchivalInput) Validate() error {
10233	invalidParams := request.ErrInvalidParams{Context: "CancelArchivalInput"}
10234	if s.GatewayARN == nil {
10235		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10236	}
10237	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10238		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10239	}
10240	if s.TapeARN == nil {
10241		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
10242	}
10243	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
10244		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
10245	}
10246
10247	if invalidParams.Len() > 0 {
10248		return invalidParams
10249	}
10250	return nil
10251}
10252
10253// SetGatewayARN sets the GatewayARN field's value.
10254func (s *CancelArchivalInput) SetGatewayARN(v string) *CancelArchivalInput {
10255	s.GatewayARN = &v
10256	return s
10257}
10258
10259// SetTapeARN sets the TapeARN field's value.
10260func (s *CancelArchivalInput) SetTapeARN(v string) *CancelArchivalInput {
10261	s.TapeARN = &v
10262	return s
10263}
10264
10265// CancelArchivalOutput
10266type CancelArchivalOutput struct {
10267	_ struct{} `type:"structure"`
10268
10269	// The Amazon Resource Name (ARN) of the virtual tape for which archiving was
10270	// canceled.
10271	TapeARN *string `min:"50" type:"string"`
10272}
10273
10274// String returns the string representation
10275func (s CancelArchivalOutput) String() string {
10276	return awsutil.Prettify(s)
10277}
10278
10279// GoString returns the string representation
10280func (s CancelArchivalOutput) GoString() string {
10281	return s.String()
10282}
10283
10284// SetTapeARN sets the TapeARN field's value.
10285func (s *CancelArchivalOutput) SetTapeARN(v string) *CancelArchivalOutput {
10286	s.TapeARN = &v
10287	return s
10288}
10289
10290// CancelRetrievalInput
10291type CancelRetrievalInput struct {
10292	_ struct{} `type:"structure"`
10293
10294	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10295	// to return a list of gateways for your account and AWS Region.
10296	//
10297	// GatewayARN is a required field
10298	GatewayARN *string `min:"50" type:"string" required:"true"`
10299
10300	// The Amazon Resource Name (ARN) of the virtual tape you want to cancel retrieval
10301	// for.
10302	//
10303	// TapeARN is a required field
10304	TapeARN *string `min:"50" type:"string" required:"true"`
10305}
10306
10307// String returns the string representation
10308func (s CancelRetrievalInput) String() string {
10309	return awsutil.Prettify(s)
10310}
10311
10312// GoString returns the string representation
10313func (s CancelRetrievalInput) GoString() string {
10314	return s.String()
10315}
10316
10317// Validate inspects the fields of the type to determine if they are valid.
10318func (s *CancelRetrievalInput) Validate() error {
10319	invalidParams := request.ErrInvalidParams{Context: "CancelRetrievalInput"}
10320	if s.GatewayARN == nil {
10321		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10322	}
10323	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10324		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10325	}
10326	if s.TapeARN == nil {
10327		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
10328	}
10329	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
10330		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
10331	}
10332
10333	if invalidParams.Len() > 0 {
10334		return invalidParams
10335	}
10336	return nil
10337}
10338
10339// SetGatewayARN sets the GatewayARN field's value.
10340func (s *CancelRetrievalInput) SetGatewayARN(v string) *CancelRetrievalInput {
10341	s.GatewayARN = &v
10342	return s
10343}
10344
10345// SetTapeARN sets the TapeARN field's value.
10346func (s *CancelRetrievalInput) SetTapeARN(v string) *CancelRetrievalInput {
10347	s.TapeARN = &v
10348	return s
10349}
10350
10351// CancelRetrievalOutput
10352type CancelRetrievalOutput struct {
10353	_ struct{} `type:"structure"`
10354
10355	// The Amazon Resource Name (ARN) of the virtual tape for which retrieval was
10356	// canceled.
10357	TapeARN *string `min:"50" type:"string"`
10358}
10359
10360// String returns the string representation
10361func (s CancelRetrievalOutput) String() string {
10362	return awsutil.Prettify(s)
10363}
10364
10365// GoString returns the string representation
10366func (s CancelRetrievalOutput) GoString() string {
10367	return s.String()
10368}
10369
10370// SetTapeARN sets the TapeARN field's value.
10371func (s *CancelRetrievalOutput) SetTapeARN(v string) *CancelRetrievalOutput {
10372	s.TapeARN = &v
10373	return s
10374}
10375
10376// Describes Challenge-Handshake Authentication Protocol (CHAP) information
10377// that supports authentication between your gateway and iSCSI initiators.
10378type ChapInfo struct {
10379	_ struct{} `type:"structure"`
10380
10381	// The iSCSI initiator that connects to the target.
10382	InitiatorName *string `min:"1" type:"string"`
10383
10384	// The secret key that the initiator (for example, the Windows client) must
10385	// provide to participate in mutual CHAP with the target.
10386	SecretToAuthenticateInitiator *string `min:"1" type:"string" sensitive:"true"`
10387
10388	// The secret key that the target must provide to participate in mutual CHAP
10389	// with the initiator (e.g., Windows client).
10390	SecretToAuthenticateTarget *string `min:"1" type:"string" sensitive:"true"`
10391
10392	// The Amazon Resource Name (ARN) of the volume.
10393	//
10394	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
10395	// (-).
10396	TargetARN *string `min:"50" type:"string"`
10397}
10398
10399// String returns the string representation
10400func (s ChapInfo) String() string {
10401	return awsutil.Prettify(s)
10402}
10403
10404// GoString returns the string representation
10405func (s ChapInfo) GoString() string {
10406	return s.String()
10407}
10408
10409// SetInitiatorName sets the InitiatorName field's value.
10410func (s *ChapInfo) SetInitiatorName(v string) *ChapInfo {
10411	s.InitiatorName = &v
10412	return s
10413}
10414
10415// SetSecretToAuthenticateInitiator sets the SecretToAuthenticateInitiator field's value.
10416func (s *ChapInfo) SetSecretToAuthenticateInitiator(v string) *ChapInfo {
10417	s.SecretToAuthenticateInitiator = &v
10418	return s
10419}
10420
10421// SetSecretToAuthenticateTarget sets the SecretToAuthenticateTarget field's value.
10422func (s *ChapInfo) SetSecretToAuthenticateTarget(v string) *ChapInfo {
10423	s.SecretToAuthenticateTarget = &v
10424	return s
10425}
10426
10427// SetTargetARN sets the TargetARN field's value.
10428func (s *ChapInfo) SetTargetARN(v string) *ChapInfo {
10429	s.TargetARN = &v
10430	return s
10431}
10432
10433type CreateCachediSCSIVolumeInput struct {
10434	_ struct{} `type:"structure"`
10435
10436	// A unique identifier that you use to retry a request. If you retry a request,
10437	// use the same ClientToken you specified in the initial request.
10438	//
10439	// ClientToken is a required field
10440	ClientToken *string `min:"5" type:"string" required:"true"`
10441
10442	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10443	// to return a list of gateways for your account and AWS Region.
10444	//
10445	// GatewayARN is a required field
10446	GatewayARN *string `min:"50" type:"string" required:"true"`
10447
10448	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
10449	// key, or false to use a key managed by Amazon S3. Optional.
10450	//
10451	// Valid Values: true | false
10452	KMSEncrypted *bool `type:"boolean"`
10453
10454	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
10455	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
10456	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
10457	KMSKey *string `min:"7" type:"string"`
10458
10459	// The network interface of the gateway on which to expose the iSCSI target.
10460	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
10461	// list of the network interfaces available on a gateway.
10462	//
10463	// Valid Values: A valid IP address.
10464	//
10465	// NetworkInterfaceId is a required field
10466	NetworkInterfaceId *string `type:"string" required:"true"`
10467
10468	// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the
10469	// new cached volume. Specify this field if you want to create the iSCSI storage
10470	// volume from a snapshot; otherwise, do not include this field. To list snapshots
10471	// for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
10472	// in the Amazon Elastic Compute Cloud API Reference.
10473	SnapshotId *string `type:"string"`
10474
10475	// The ARN for an existing volume. Specifying this ARN makes the new volume
10476	// into an exact copy of the specified existing volume's latest recovery point.
10477	// The VolumeSizeInBytes value for this new volume must be equal to or larger
10478	// than the size of the existing volume, in bytes.
10479	SourceVolumeARN *string `min:"50" type:"string"`
10480
10481	// A list of up to 50 tags that you can assign to a cached volume. Each tag
10482	// is a key-value pair.
10483	//
10484	// Valid characters for key and value are letters, spaces, and numbers that
10485	// you can represent in UTF-8 format, and the following special characters:
10486	// + - = . _ : / @. The maximum length of a tag's key is 128 characters, and
10487	// the maximum length for a tag's value is 256 characters.
10488	Tags []*Tag `type:"list"`
10489
10490	// The name of the iSCSI target used by an initiator to connect to a volume
10491	// and used as a suffix for the target ARN. For example, specifying TargetName
10492	// 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.
10493	// The target name must be unique across all volumes on a gateway.
10494	//
10495	// If you don't specify a value, Storage Gateway uses the value that was previously
10496	// used for this volume as the new target name.
10497	//
10498	// TargetName is a required field
10499	TargetName *string `min:"1" type:"string" required:"true"`
10500
10501	// The size of the volume in bytes.
10502	//
10503	// VolumeSizeInBytes is a required field
10504	VolumeSizeInBytes *int64 `type:"long" required:"true"`
10505}
10506
10507// String returns the string representation
10508func (s CreateCachediSCSIVolumeInput) String() string {
10509	return awsutil.Prettify(s)
10510}
10511
10512// GoString returns the string representation
10513func (s CreateCachediSCSIVolumeInput) GoString() string {
10514	return s.String()
10515}
10516
10517// Validate inspects the fields of the type to determine if they are valid.
10518func (s *CreateCachediSCSIVolumeInput) Validate() error {
10519	invalidParams := request.ErrInvalidParams{Context: "CreateCachediSCSIVolumeInput"}
10520	if s.ClientToken == nil {
10521		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
10522	}
10523	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
10524		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
10525	}
10526	if s.GatewayARN == nil {
10527		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10528	}
10529	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10530		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10531	}
10532	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
10533		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
10534	}
10535	if s.NetworkInterfaceId == nil {
10536		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
10537	}
10538	if s.SourceVolumeARN != nil && len(*s.SourceVolumeARN) < 50 {
10539		invalidParams.Add(request.NewErrParamMinLen("SourceVolumeARN", 50))
10540	}
10541	if s.TargetName == nil {
10542		invalidParams.Add(request.NewErrParamRequired("TargetName"))
10543	}
10544	if s.TargetName != nil && len(*s.TargetName) < 1 {
10545		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
10546	}
10547	if s.VolumeSizeInBytes == nil {
10548		invalidParams.Add(request.NewErrParamRequired("VolumeSizeInBytes"))
10549	}
10550	if s.Tags != nil {
10551		for i, v := range s.Tags {
10552			if v == nil {
10553				continue
10554			}
10555			if err := v.Validate(); err != nil {
10556				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10557			}
10558		}
10559	}
10560
10561	if invalidParams.Len() > 0 {
10562		return invalidParams
10563	}
10564	return nil
10565}
10566
10567// SetClientToken sets the ClientToken field's value.
10568func (s *CreateCachediSCSIVolumeInput) SetClientToken(v string) *CreateCachediSCSIVolumeInput {
10569	s.ClientToken = &v
10570	return s
10571}
10572
10573// SetGatewayARN sets the GatewayARN field's value.
10574func (s *CreateCachediSCSIVolumeInput) SetGatewayARN(v string) *CreateCachediSCSIVolumeInput {
10575	s.GatewayARN = &v
10576	return s
10577}
10578
10579// SetKMSEncrypted sets the KMSEncrypted field's value.
10580func (s *CreateCachediSCSIVolumeInput) SetKMSEncrypted(v bool) *CreateCachediSCSIVolumeInput {
10581	s.KMSEncrypted = &v
10582	return s
10583}
10584
10585// SetKMSKey sets the KMSKey field's value.
10586func (s *CreateCachediSCSIVolumeInput) SetKMSKey(v string) *CreateCachediSCSIVolumeInput {
10587	s.KMSKey = &v
10588	return s
10589}
10590
10591// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
10592func (s *CreateCachediSCSIVolumeInput) SetNetworkInterfaceId(v string) *CreateCachediSCSIVolumeInput {
10593	s.NetworkInterfaceId = &v
10594	return s
10595}
10596
10597// SetSnapshotId sets the SnapshotId field's value.
10598func (s *CreateCachediSCSIVolumeInput) SetSnapshotId(v string) *CreateCachediSCSIVolumeInput {
10599	s.SnapshotId = &v
10600	return s
10601}
10602
10603// SetSourceVolumeARN sets the SourceVolumeARN field's value.
10604func (s *CreateCachediSCSIVolumeInput) SetSourceVolumeARN(v string) *CreateCachediSCSIVolumeInput {
10605	s.SourceVolumeARN = &v
10606	return s
10607}
10608
10609// SetTags sets the Tags field's value.
10610func (s *CreateCachediSCSIVolumeInput) SetTags(v []*Tag) *CreateCachediSCSIVolumeInput {
10611	s.Tags = v
10612	return s
10613}
10614
10615// SetTargetName sets the TargetName field's value.
10616func (s *CreateCachediSCSIVolumeInput) SetTargetName(v string) *CreateCachediSCSIVolumeInput {
10617	s.TargetName = &v
10618	return s
10619}
10620
10621// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
10622func (s *CreateCachediSCSIVolumeInput) SetVolumeSizeInBytes(v int64) *CreateCachediSCSIVolumeInput {
10623	s.VolumeSizeInBytes = &v
10624	return s
10625}
10626
10627type CreateCachediSCSIVolumeOutput struct {
10628	_ struct{} `type:"structure"`
10629
10630	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
10631	// name that initiators can use to connect to the target.
10632	TargetARN *string `min:"50" type:"string"`
10633
10634	// The Amazon Resource Name (ARN) of the configured volume.
10635	VolumeARN *string `min:"50" type:"string"`
10636}
10637
10638// String returns the string representation
10639func (s CreateCachediSCSIVolumeOutput) String() string {
10640	return awsutil.Prettify(s)
10641}
10642
10643// GoString returns the string representation
10644func (s CreateCachediSCSIVolumeOutput) GoString() string {
10645	return s.String()
10646}
10647
10648// SetTargetARN sets the TargetARN field's value.
10649func (s *CreateCachediSCSIVolumeOutput) SetTargetARN(v string) *CreateCachediSCSIVolumeOutput {
10650	s.TargetARN = &v
10651	return s
10652}
10653
10654// SetVolumeARN sets the VolumeARN field's value.
10655func (s *CreateCachediSCSIVolumeOutput) SetVolumeARN(v string) *CreateCachediSCSIVolumeOutput {
10656	s.VolumeARN = &v
10657	return s
10658}
10659
10660// CreateNFSFileShareInput
10661type CreateNFSFileShareInput struct {
10662	_ struct{} `type:"structure"`
10663
10664	// Specifies refresh cache information for the file share.
10665	CacheAttributes *CacheAttributes `type:"structure"`
10666
10667	// The list of clients that are allowed to access the file gateway. The list
10668	// must contain either valid IP addresses or valid CIDR blocks.
10669	ClientList []*string `min:"1" type:"list"`
10670
10671	// A unique string value that you supply that is used by file gateway to ensure
10672	// idempotent file share creation.
10673	//
10674	// ClientToken is a required field
10675	ClientToken *string `min:"5" type:"string" required:"true"`
10676
10677	// The default storage class for objects put into an Amazon S3 bucket by the
10678	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
10679	//
10680	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
10681	DefaultStorageClass *string `min:"5" type:"string"`
10682
10683	// The name of the file share. Optional.
10684	//
10685	// FileShareName must be set if an S3 prefix name is set in LocationARN.
10686	FileShareName *string `min:"1" type:"string"`
10687
10688	// The Amazon Resource Name (ARN) of the file gateway on which you want to create
10689	// a file share.
10690	//
10691	// GatewayARN is a required field
10692	GatewayARN *string `min:"50" type:"string" required:"true"`
10693
10694	// A value that enables guessing of the MIME type for uploaded objects based
10695	// on file extensions. Set this value to true to enable MIME type guessing,
10696	// otherwise set to false. The default value is true.
10697	//
10698	// Valid Values: true | false
10699	GuessMIMETypeEnabled *bool `type:"boolean"`
10700
10701	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
10702	// key, or false to use a key managed by Amazon S3. Optional.
10703	//
10704	// Valid Values: true | false
10705	KMSEncrypted *bool `type:"boolean"`
10706
10707	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
10708	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
10709	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
10710	KMSKey *string `min:"7" type:"string"`
10711
10712	// The ARN of the backend storage used for storing file data. A prefix name
10713	// can be added to the S3 bucket name. It must end with a "/".
10714	//
10715	// LocationARN is a required field
10716	LocationARN *string `min:"16" type:"string" required:"true"`
10717
10718	// File share default values. Optional.
10719	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
10720
10721	// The notification policy of the file share. SettlingTimeInSeconds controls
10722	// the number of seconds to wait after the last point in time a client wrote
10723	// to a file before generating an ObjectUploaded notification. Because clients
10724	// can make many small writes to files, it's best to set this parameter for
10725	// as long as possible to avoid generating multiple notifications for the same
10726	// file in a small time period.
10727	//
10728	// SettlingTimeInSeconds has no effect on the timing of the object uploading
10729	// to Amazon S3, only the timing of the notification.
10730	//
10731	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
10732	// set to 60.
10733	//
10734	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
10735	//
10736	// The following example sets NotificationPolicy off.
10737	//
10738	// {}
10739	NotificationPolicy *string `min:"2" type:"string"`
10740
10741	// A value that sets the access control list (ACL) permission for objects in
10742	// the S3 bucket that a file gateway puts objects into. The default value is
10743	// private.
10744	ObjectACL *string `type:"string" enum:"ObjectACL"`
10745
10746	// A value that sets the write status of a file share. Set this value to true
10747	// to set the write status to read-only, otherwise set to false.
10748	//
10749	// Valid Values: true | false
10750	ReadOnly *bool `type:"boolean"`
10751
10752	// A value that sets who pays the cost of the request and the cost associated
10753	// with data download from the S3 bucket. If this value is set to true, the
10754	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
10755	// S3 bucket owner always pays the cost of storing data.
10756	//
10757	// RequesterPays is a configuration for the S3 bucket that backs the file share,
10758	// so make sure that the configuration on the file share is the same as the
10759	// S3 bucket configuration.
10760	//
10761	// Valid Values: true | false
10762	RequesterPays *bool `type:"boolean"`
10763
10764	// The ARN of the AWS Identity and Access Management (IAM) role that a file
10765	// gateway assumes when it accesses the underlying storage.
10766	//
10767	// Role is a required field
10768	Role *string `min:"20" type:"string" required:"true"`
10769
10770	// A value that maps a user to anonymous user.
10771	//
10772	// Valid values are the following:
10773	//
10774	//    * RootSquash: Only root is mapped to anonymous user.
10775	//
10776	//    * NoSquash: No one is mapped to anonymous user.
10777	//
10778	//    * AllSquash: Everyone is mapped to anonymous user.
10779	Squash *string `min:"5" type:"string"`
10780
10781	// A list of up to 50 tags that can be assigned to the NFS file share. Each
10782	// tag is a key-value pair.
10783	//
10784	// Valid characters for key and value are letters, spaces, and numbers representable
10785	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
10786	// maximum length of a tag's key is 128 characters, and the maximum length for
10787	// a tag's value is 256.
10788	Tags []*Tag `type:"list"`
10789}
10790
10791// String returns the string representation
10792func (s CreateNFSFileShareInput) String() string {
10793	return awsutil.Prettify(s)
10794}
10795
10796// GoString returns the string representation
10797func (s CreateNFSFileShareInput) GoString() string {
10798	return s.String()
10799}
10800
10801// Validate inspects the fields of the type to determine if they are valid.
10802func (s *CreateNFSFileShareInput) Validate() error {
10803	invalidParams := request.ErrInvalidParams{Context: "CreateNFSFileShareInput"}
10804	if s.ClientList != nil && len(s.ClientList) < 1 {
10805		invalidParams.Add(request.NewErrParamMinLen("ClientList", 1))
10806	}
10807	if s.ClientToken == nil {
10808		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
10809	}
10810	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
10811		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
10812	}
10813	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
10814		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
10815	}
10816	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
10817		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
10818	}
10819	if s.GatewayARN == nil {
10820		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10821	}
10822	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10823		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10824	}
10825	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
10826		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
10827	}
10828	if s.LocationARN == nil {
10829		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
10830	}
10831	if s.LocationARN != nil && len(*s.LocationARN) < 16 {
10832		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 16))
10833	}
10834	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
10835		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
10836	}
10837	if s.Role == nil {
10838		invalidParams.Add(request.NewErrParamRequired("Role"))
10839	}
10840	if s.Role != nil && len(*s.Role) < 20 {
10841		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
10842	}
10843	if s.Squash != nil && len(*s.Squash) < 5 {
10844		invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
10845	}
10846	if s.NFSFileShareDefaults != nil {
10847		if err := s.NFSFileShareDefaults.Validate(); err != nil {
10848			invalidParams.AddNested("NFSFileShareDefaults", err.(request.ErrInvalidParams))
10849		}
10850	}
10851	if s.Tags != nil {
10852		for i, v := range s.Tags {
10853			if v == nil {
10854				continue
10855			}
10856			if err := v.Validate(); err != nil {
10857				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10858			}
10859		}
10860	}
10861
10862	if invalidParams.Len() > 0 {
10863		return invalidParams
10864	}
10865	return nil
10866}
10867
10868// SetCacheAttributes sets the CacheAttributes field's value.
10869func (s *CreateNFSFileShareInput) SetCacheAttributes(v *CacheAttributes) *CreateNFSFileShareInput {
10870	s.CacheAttributes = v
10871	return s
10872}
10873
10874// SetClientList sets the ClientList field's value.
10875func (s *CreateNFSFileShareInput) SetClientList(v []*string) *CreateNFSFileShareInput {
10876	s.ClientList = v
10877	return s
10878}
10879
10880// SetClientToken sets the ClientToken field's value.
10881func (s *CreateNFSFileShareInput) SetClientToken(v string) *CreateNFSFileShareInput {
10882	s.ClientToken = &v
10883	return s
10884}
10885
10886// SetDefaultStorageClass sets the DefaultStorageClass field's value.
10887func (s *CreateNFSFileShareInput) SetDefaultStorageClass(v string) *CreateNFSFileShareInput {
10888	s.DefaultStorageClass = &v
10889	return s
10890}
10891
10892// SetFileShareName sets the FileShareName field's value.
10893func (s *CreateNFSFileShareInput) SetFileShareName(v string) *CreateNFSFileShareInput {
10894	s.FileShareName = &v
10895	return s
10896}
10897
10898// SetGatewayARN sets the GatewayARN field's value.
10899func (s *CreateNFSFileShareInput) SetGatewayARN(v string) *CreateNFSFileShareInput {
10900	s.GatewayARN = &v
10901	return s
10902}
10903
10904// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
10905func (s *CreateNFSFileShareInput) SetGuessMIMETypeEnabled(v bool) *CreateNFSFileShareInput {
10906	s.GuessMIMETypeEnabled = &v
10907	return s
10908}
10909
10910// SetKMSEncrypted sets the KMSEncrypted field's value.
10911func (s *CreateNFSFileShareInput) SetKMSEncrypted(v bool) *CreateNFSFileShareInput {
10912	s.KMSEncrypted = &v
10913	return s
10914}
10915
10916// SetKMSKey sets the KMSKey field's value.
10917func (s *CreateNFSFileShareInput) SetKMSKey(v string) *CreateNFSFileShareInput {
10918	s.KMSKey = &v
10919	return s
10920}
10921
10922// SetLocationARN sets the LocationARN field's value.
10923func (s *CreateNFSFileShareInput) SetLocationARN(v string) *CreateNFSFileShareInput {
10924	s.LocationARN = &v
10925	return s
10926}
10927
10928// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
10929func (s *CreateNFSFileShareInput) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *CreateNFSFileShareInput {
10930	s.NFSFileShareDefaults = v
10931	return s
10932}
10933
10934// SetNotificationPolicy sets the NotificationPolicy field's value.
10935func (s *CreateNFSFileShareInput) SetNotificationPolicy(v string) *CreateNFSFileShareInput {
10936	s.NotificationPolicy = &v
10937	return s
10938}
10939
10940// SetObjectACL sets the ObjectACL field's value.
10941func (s *CreateNFSFileShareInput) SetObjectACL(v string) *CreateNFSFileShareInput {
10942	s.ObjectACL = &v
10943	return s
10944}
10945
10946// SetReadOnly sets the ReadOnly field's value.
10947func (s *CreateNFSFileShareInput) SetReadOnly(v bool) *CreateNFSFileShareInput {
10948	s.ReadOnly = &v
10949	return s
10950}
10951
10952// SetRequesterPays sets the RequesterPays field's value.
10953func (s *CreateNFSFileShareInput) SetRequesterPays(v bool) *CreateNFSFileShareInput {
10954	s.RequesterPays = &v
10955	return s
10956}
10957
10958// SetRole sets the Role field's value.
10959func (s *CreateNFSFileShareInput) SetRole(v string) *CreateNFSFileShareInput {
10960	s.Role = &v
10961	return s
10962}
10963
10964// SetSquash sets the Squash field's value.
10965func (s *CreateNFSFileShareInput) SetSquash(v string) *CreateNFSFileShareInput {
10966	s.Squash = &v
10967	return s
10968}
10969
10970// SetTags sets the Tags field's value.
10971func (s *CreateNFSFileShareInput) SetTags(v []*Tag) *CreateNFSFileShareInput {
10972	s.Tags = v
10973	return s
10974}
10975
10976// CreateNFSFileShareOutput
10977type CreateNFSFileShareOutput struct {
10978	_ struct{} `type:"structure"`
10979
10980	// The Amazon Resource Name (ARN) of the newly created file share.
10981	FileShareARN *string `min:"50" type:"string"`
10982}
10983
10984// String returns the string representation
10985func (s CreateNFSFileShareOutput) String() string {
10986	return awsutil.Prettify(s)
10987}
10988
10989// GoString returns the string representation
10990func (s CreateNFSFileShareOutput) GoString() string {
10991	return s.String()
10992}
10993
10994// SetFileShareARN sets the FileShareARN field's value.
10995func (s *CreateNFSFileShareOutput) SetFileShareARN(v string) *CreateNFSFileShareOutput {
10996	s.FileShareARN = &v
10997	return s
10998}
10999
11000// CreateSMBFileShareInput
11001type CreateSMBFileShareInput struct {
11002	_ struct{} `type:"structure"`
11003
11004	// The files and folders on this share will only be visible to users with read
11005	// access.
11006	AccessBasedEnumeration *bool `type:"boolean"`
11007
11008	// A list of users or groups in the Active Directory that will be granted administrator
11009	// privileges on the file share. These users can do all file operations as the
11010	// super-user. Acceptable formats include: DOMAIN\User1, user1, @group1, and
11011	// @DOMAIN\group1.
11012	//
11013	// Use this option very carefully, because any user in this list can do anything
11014	// they like on the file share, regardless of file permissions.
11015	AdminUserList []*string `type:"list"`
11016
11017	// The Amazon Resource Name (ARN) of the storage used for audit logs.
11018	AuditDestinationARN *string `type:"string"`
11019
11020	// The authentication method that users use to access the file share. The default
11021	// is ActiveDirectory.
11022	//
11023	// Valid Values: ActiveDirectory | GuestAccess
11024	Authentication *string `min:"5" type:"string"`
11025
11026	// Specifies refresh cache information for the file share.
11027	CacheAttributes *CacheAttributes `type:"structure"`
11028
11029	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
11030	// client determines the case sensitivity. For CaseSensitive, the gateway determines
11031	// the case sensitivity. The default value is ClientSpecified.
11032	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
11033
11034	// A unique string value that you supply that is used by file gateway to ensure
11035	// idempotent file share creation.
11036	//
11037	// ClientToken is a required field
11038	ClientToken *string `min:"5" type:"string" required:"true"`
11039
11040	// The default storage class for objects put into an Amazon S3 bucket by the
11041	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
11042	//
11043	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
11044	DefaultStorageClass *string `min:"5" type:"string"`
11045
11046	// The name of the file share. Optional.
11047	//
11048	// FileShareName must be set if an S3 prefix name is set in LocationARN.
11049	FileShareName *string `min:"1" type:"string"`
11050
11051	// The ARN of the file gateway on which you want to create a file share.
11052	//
11053	// GatewayARN is a required field
11054	GatewayARN *string `min:"50" type:"string" required:"true"`
11055
11056	// A value that enables guessing of the MIME type for uploaded objects based
11057	// on file extensions. Set this value to true to enable MIME type guessing,
11058	// otherwise set to false. The default value is true.
11059	//
11060	// Valid Values: true | false
11061	GuessMIMETypeEnabled *bool `type:"boolean"`
11062
11063	// A list of users or groups in the Active Directory that are not allowed to
11064	// access the file share. A group must be prefixed with the @ character. Acceptable
11065	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
11066	// be set if Authentication is set to ActiveDirectory.
11067	InvalidUserList []*string `type:"list"`
11068
11069	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
11070	// key, or false to use a key managed by Amazon S3. Optional.
11071	//
11072	// Valid Values: true | false
11073	KMSEncrypted *bool `type:"boolean"`
11074
11075	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
11076	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
11077	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
11078	KMSKey *string `min:"7" type:"string"`
11079
11080	// The ARN of the backend storage used for storing file data. A prefix name
11081	// can be added to the S3 bucket name. It must end with a "/".
11082	//
11083	// LocationARN is a required field
11084	LocationARN *string `min:"16" type:"string" required:"true"`
11085
11086	// The notification policy of the file share. SettlingTimeInSeconds controls
11087	// the number of seconds to wait after the last point in time a client wrote
11088	// to a file before generating an ObjectUploaded notification. Because clients
11089	// can make many small writes to files, it's best to set this parameter for
11090	// as long as possible to avoid generating multiple notifications for the same
11091	// file in a small time period.
11092	//
11093	// SettlingTimeInSeconds has no effect on the timing of the object uploading
11094	// to Amazon S3, only the timing of the notification.
11095	//
11096	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
11097	// set to 60.
11098	//
11099	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
11100	//
11101	// The following example sets NotificationPolicy off.
11102	//
11103	// {}
11104	NotificationPolicy *string `min:"2" type:"string"`
11105
11106	// A value that sets the access control list (ACL) permission for objects in
11107	// the S3 bucket that a file gateway puts objects into. The default value is
11108	// private.
11109	ObjectACL *string `type:"string" enum:"ObjectACL"`
11110
11111	// A value that sets the write status of a file share. Set this value to true
11112	// to set the write status to read-only, otherwise set to false.
11113	//
11114	// Valid Values: true | false
11115	ReadOnly *bool `type:"boolean"`
11116
11117	// A value that sets who pays the cost of the request and the cost associated
11118	// with data download from the S3 bucket. If this value is set to true, the
11119	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
11120	// S3 bucket owner always pays the cost of storing data.
11121	//
11122	// RequesterPays is a configuration for the S3 bucket that backs the file share,
11123	// so make sure that the configuration on the file share is the same as the
11124	// S3 bucket configuration.
11125	//
11126	// Valid Values: true | false
11127	RequesterPays *bool `type:"boolean"`
11128
11129	// The ARN of the AWS Identity and Access Management (IAM) role that a file
11130	// gateway assumes when it accesses the underlying storage.
11131	//
11132	// Role is a required field
11133	Role *string `min:"20" type:"string" required:"true"`
11134
11135	// Set this value to true to enable access control list (ACL) on the SMB file
11136	// share. Set it to false to map file and directory permissions to the POSIX
11137	// permissions.
11138	//
11139	// For more information, see Using Microsoft Windows ACLs to control access
11140	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
11141	// in the AWS Storage Gateway User Guide.
11142	//
11143	// Valid Values: true | false
11144	SMBACLEnabled *bool `type:"boolean"`
11145
11146	// A list of up to 50 tags that can be assigned to the NFS file share. Each
11147	// tag is a key-value pair.
11148	//
11149	// Valid characters for key and value are letters, spaces, and numbers representable
11150	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
11151	// maximum length of a tag's key is 128 characters, and the maximum length for
11152	// a tag's value is 256.
11153	Tags []*Tag `type:"list"`
11154
11155	// A list of users or groups in the Active Directory that are allowed to access
11156	// the file share. A group must be prefixed with the @ character. Acceptable
11157	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
11158	// be set if Authentication is set to ActiveDirectory.
11159	ValidUserList []*string `type:"list"`
11160}
11161
11162// String returns the string representation
11163func (s CreateSMBFileShareInput) String() string {
11164	return awsutil.Prettify(s)
11165}
11166
11167// GoString returns the string representation
11168func (s CreateSMBFileShareInput) GoString() string {
11169	return s.String()
11170}
11171
11172// Validate inspects the fields of the type to determine if they are valid.
11173func (s *CreateSMBFileShareInput) Validate() error {
11174	invalidParams := request.ErrInvalidParams{Context: "CreateSMBFileShareInput"}
11175	if s.Authentication != nil && len(*s.Authentication) < 5 {
11176		invalidParams.Add(request.NewErrParamMinLen("Authentication", 5))
11177	}
11178	if s.ClientToken == nil {
11179		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
11180	}
11181	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
11182		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
11183	}
11184	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
11185		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
11186	}
11187	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
11188		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
11189	}
11190	if s.GatewayARN == nil {
11191		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11192	}
11193	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11194		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11195	}
11196	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
11197		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
11198	}
11199	if s.LocationARN == nil {
11200		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
11201	}
11202	if s.LocationARN != nil && len(*s.LocationARN) < 16 {
11203		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 16))
11204	}
11205	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
11206		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
11207	}
11208	if s.Role == nil {
11209		invalidParams.Add(request.NewErrParamRequired("Role"))
11210	}
11211	if s.Role != nil && len(*s.Role) < 20 {
11212		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
11213	}
11214	if s.Tags != nil {
11215		for i, v := range s.Tags {
11216			if v == nil {
11217				continue
11218			}
11219			if err := v.Validate(); err != nil {
11220				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11221			}
11222		}
11223	}
11224
11225	if invalidParams.Len() > 0 {
11226		return invalidParams
11227	}
11228	return nil
11229}
11230
11231// SetAccessBasedEnumeration sets the AccessBasedEnumeration field's value.
11232func (s *CreateSMBFileShareInput) SetAccessBasedEnumeration(v bool) *CreateSMBFileShareInput {
11233	s.AccessBasedEnumeration = &v
11234	return s
11235}
11236
11237// SetAdminUserList sets the AdminUserList field's value.
11238func (s *CreateSMBFileShareInput) SetAdminUserList(v []*string) *CreateSMBFileShareInput {
11239	s.AdminUserList = v
11240	return s
11241}
11242
11243// SetAuditDestinationARN sets the AuditDestinationARN field's value.
11244func (s *CreateSMBFileShareInput) SetAuditDestinationARN(v string) *CreateSMBFileShareInput {
11245	s.AuditDestinationARN = &v
11246	return s
11247}
11248
11249// SetAuthentication sets the Authentication field's value.
11250func (s *CreateSMBFileShareInput) SetAuthentication(v string) *CreateSMBFileShareInput {
11251	s.Authentication = &v
11252	return s
11253}
11254
11255// SetCacheAttributes sets the CacheAttributes field's value.
11256func (s *CreateSMBFileShareInput) SetCacheAttributes(v *CacheAttributes) *CreateSMBFileShareInput {
11257	s.CacheAttributes = v
11258	return s
11259}
11260
11261// SetCaseSensitivity sets the CaseSensitivity field's value.
11262func (s *CreateSMBFileShareInput) SetCaseSensitivity(v string) *CreateSMBFileShareInput {
11263	s.CaseSensitivity = &v
11264	return s
11265}
11266
11267// SetClientToken sets the ClientToken field's value.
11268func (s *CreateSMBFileShareInput) SetClientToken(v string) *CreateSMBFileShareInput {
11269	s.ClientToken = &v
11270	return s
11271}
11272
11273// SetDefaultStorageClass sets the DefaultStorageClass field's value.
11274func (s *CreateSMBFileShareInput) SetDefaultStorageClass(v string) *CreateSMBFileShareInput {
11275	s.DefaultStorageClass = &v
11276	return s
11277}
11278
11279// SetFileShareName sets the FileShareName field's value.
11280func (s *CreateSMBFileShareInput) SetFileShareName(v string) *CreateSMBFileShareInput {
11281	s.FileShareName = &v
11282	return s
11283}
11284
11285// SetGatewayARN sets the GatewayARN field's value.
11286func (s *CreateSMBFileShareInput) SetGatewayARN(v string) *CreateSMBFileShareInput {
11287	s.GatewayARN = &v
11288	return s
11289}
11290
11291// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
11292func (s *CreateSMBFileShareInput) SetGuessMIMETypeEnabled(v bool) *CreateSMBFileShareInput {
11293	s.GuessMIMETypeEnabled = &v
11294	return s
11295}
11296
11297// SetInvalidUserList sets the InvalidUserList field's value.
11298func (s *CreateSMBFileShareInput) SetInvalidUserList(v []*string) *CreateSMBFileShareInput {
11299	s.InvalidUserList = v
11300	return s
11301}
11302
11303// SetKMSEncrypted sets the KMSEncrypted field's value.
11304func (s *CreateSMBFileShareInput) SetKMSEncrypted(v bool) *CreateSMBFileShareInput {
11305	s.KMSEncrypted = &v
11306	return s
11307}
11308
11309// SetKMSKey sets the KMSKey field's value.
11310func (s *CreateSMBFileShareInput) SetKMSKey(v string) *CreateSMBFileShareInput {
11311	s.KMSKey = &v
11312	return s
11313}
11314
11315// SetLocationARN sets the LocationARN field's value.
11316func (s *CreateSMBFileShareInput) SetLocationARN(v string) *CreateSMBFileShareInput {
11317	s.LocationARN = &v
11318	return s
11319}
11320
11321// SetNotificationPolicy sets the NotificationPolicy field's value.
11322func (s *CreateSMBFileShareInput) SetNotificationPolicy(v string) *CreateSMBFileShareInput {
11323	s.NotificationPolicy = &v
11324	return s
11325}
11326
11327// SetObjectACL sets the ObjectACL field's value.
11328func (s *CreateSMBFileShareInput) SetObjectACL(v string) *CreateSMBFileShareInput {
11329	s.ObjectACL = &v
11330	return s
11331}
11332
11333// SetReadOnly sets the ReadOnly field's value.
11334func (s *CreateSMBFileShareInput) SetReadOnly(v bool) *CreateSMBFileShareInput {
11335	s.ReadOnly = &v
11336	return s
11337}
11338
11339// SetRequesterPays sets the RequesterPays field's value.
11340func (s *CreateSMBFileShareInput) SetRequesterPays(v bool) *CreateSMBFileShareInput {
11341	s.RequesterPays = &v
11342	return s
11343}
11344
11345// SetRole sets the Role field's value.
11346func (s *CreateSMBFileShareInput) SetRole(v string) *CreateSMBFileShareInput {
11347	s.Role = &v
11348	return s
11349}
11350
11351// SetSMBACLEnabled sets the SMBACLEnabled field's value.
11352func (s *CreateSMBFileShareInput) SetSMBACLEnabled(v bool) *CreateSMBFileShareInput {
11353	s.SMBACLEnabled = &v
11354	return s
11355}
11356
11357// SetTags sets the Tags field's value.
11358func (s *CreateSMBFileShareInput) SetTags(v []*Tag) *CreateSMBFileShareInput {
11359	s.Tags = v
11360	return s
11361}
11362
11363// SetValidUserList sets the ValidUserList field's value.
11364func (s *CreateSMBFileShareInput) SetValidUserList(v []*string) *CreateSMBFileShareInput {
11365	s.ValidUserList = v
11366	return s
11367}
11368
11369// CreateSMBFileShareOutput
11370type CreateSMBFileShareOutput struct {
11371	_ struct{} `type:"structure"`
11372
11373	// The Amazon Resource Name (ARN) of the newly created file share.
11374	FileShareARN *string `min:"50" type:"string"`
11375}
11376
11377// String returns the string representation
11378func (s CreateSMBFileShareOutput) String() string {
11379	return awsutil.Prettify(s)
11380}
11381
11382// GoString returns the string representation
11383func (s CreateSMBFileShareOutput) GoString() string {
11384	return s.String()
11385}
11386
11387// SetFileShareARN sets the FileShareARN field's value.
11388func (s *CreateSMBFileShareOutput) SetFileShareARN(v string) *CreateSMBFileShareOutput {
11389	s.FileShareARN = &v
11390	return s
11391}
11392
11393type CreateSnapshotFromVolumeRecoveryPointInput struct {
11394	_ struct{} `type:"structure"`
11395
11396	// Textual description of the snapshot that appears in the Amazon EC2 console,
11397	// Elastic Block Store snapshots panel in the Description field, and in the
11398	// AWS Storage Gateway snapshot Details pane, Description field.
11399	//
11400	// SnapshotDescription is a required field
11401	SnapshotDescription *string `min:"1" type:"string" required:"true"`
11402
11403	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
11404	// key-value pair.
11405	//
11406	// Valid characters for key and value are letters, spaces, and numbers representable
11407	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
11408	// maximum length of a tag's key is 128 characters, and the maximum length for
11409	// a tag's value is 256.
11410	Tags []*Tag `type:"list"`
11411
11412	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
11413	// operation to return to retrieve the TargetARN for specified VolumeARN.
11414	//
11415	// VolumeARN is a required field
11416	VolumeARN *string `min:"50" type:"string" required:"true"`
11417}
11418
11419// String returns the string representation
11420func (s CreateSnapshotFromVolumeRecoveryPointInput) String() string {
11421	return awsutil.Prettify(s)
11422}
11423
11424// GoString returns the string representation
11425func (s CreateSnapshotFromVolumeRecoveryPointInput) GoString() string {
11426	return s.String()
11427}
11428
11429// Validate inspects the fields of the type to determine if they are valid.
11430func (s *CreateSnapshotFromVolumeRecoveryPointInput) Validate() error {
11431	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotFromVolumeRecoveryPointInput"}
11432	if s.SnapshotDescription == nil {
11433		invalidParams.Add(request.NewErrParamRequired("SnapshotDescription"))
11434	}
11435	if s.SnapshotDescription != nil && len(*s.SnapshotDescription) < 1 {
11436		invalidParams.Add(request.NewErrParamMinLen("SnapshotDescription", 1))
11437	}
11438	if s.VolumeARN == nil {
11439		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
11440	}
11441	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
11442		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
11443	}
11444	if s.Tags != nil {
11445		for i, v := range s.Tags {
11446			if v == nil {
11447				continue
11448			}
11449			if err := v.Validate(); err != nil {
11450				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11451			}
11452		}
11453	}
11454
11455	if invalidParams.Len() > 0 {
11456		return invalidParams
11457	}
11458	return nil
11459}
11460
11461// SetSnapshotDescription sets the SnapshotDescription field's value.
11462func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetSnapshotDescription(v string) *CreateSnapshotFromVolumeRecoveryPointInput {
11463	s.SnapshotDescription = &v
11464	return s
11465}
11466
11467// SetTags sets the Tags field's value.
11468func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetTags(v []*Tag) *CreateSnapshotFromVolumeRecoveryPointInput {
11469	s.Tags = v
11470	return s
11471}
11472
11473// SetVolumeARN sets the VolumeARN field's value.
11474func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetVolumeARN(v string) *CreateSnapshotFromVolumeRecoveryPointInput {
11475	s.VolumeARN = &v
11476	return s
11477}
11478
11479type CreateSnapshotFromVolumeRecoveryPointOutput struct {
11480	_ struct{} `type:"structure"`
11481
11482	// The ID of the snapshot.
11483	SnapshotId *string `type:"string"`
11484
11485	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
11486	// operation to return to retrieve the TargetARN for specified VolumeARN.
11487	VolumeARN *string `min:"50" type:"string"`
11488
11489	// The time the volume was created from the recovery point.
11490	VolumeRecoveryPointTime *string `type:"string"`
11491}
11492
11493// String returns the string representation
11494func (s CreateSnapshotFromVolumeRecoveryPointOutput) String() string {
11495	return awsutil.Prettify(s)
11496}
11497
11498// GoString returns the string representation
11499func (s CreateSnapshotFromVolumeRecoveryPointOutput) GoString() string {
11500	return s.String()
11501}
11502
11503// SetSnapshotId sets the SnapshotId field's value.
11504func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetSnapshotId(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
11505	s.SnapshotId = &v
11506	return s
11507}
11508
11509// SetVolumeARN sets the VolumeARN field's value.
11510func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetVolumeARN(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
11511	s.VolumeARN = &v
11512	return s
11513}
11514
11515// SetVolumeRecoveryPointTime sets the VolumeRecoveryPointTime field's value.
11516func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetVolumeRecoveryPointTime(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
11517	s.VolumeRecoveryPointTime = &v
11518	return s
11519}
11520
11521// A JSON object containing one or more of the following fields:
11522//
11523//    * CreateSnapshotInput$SnapshotDescription
11524//
11525//    * CreateSnapshotInput$VolumeARN
11526type CreateSnapshotInput struct {
11527	_ struct{} `type:"structure"`
11528
11529	// Textual description of the snapshot that appears in the Amazon EC2 console,
11530	// Elastic Block Store snapshots panel in the Description field, and in the
11531	// AWS Storage Gateway snapshot Details pane, Description field.
11532	//
11533	// SnapshotDescription is a required field
11534	SnapshotDescription *string `min:"1" type:"string" required:"true"`
11535
11536	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
11537	// key-value pair.
11538	//
11539	// Valid characters for key and value are letters, spaces, and numbers representable
11540	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
11541	// maximum length of a tag's key is 128 characters, and the maximum length for
11542	// a tag's value is 256.
11543	Tags []*Tag `type:"list"`
11544
11545	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
11546	// to return a list of gateway volumes.
11547	//
11548	// VolumeARN is a required field
11549	VolumeARN *string `min:"50" type:"string" required:"true"`
11550}
11551
11552// String returns the string representation
11553func (s CreateSnapshotInput) String() string {
11554	return awsutil.Prettify(s)
11555}
11556
11557// GoString returns the string representation
11558func (s CreateSnapshotInput) GoString() string {
11559	return s.String()
11560}
11561
11562// Validate inspects the fields of the type to determine if they are valid.
11563func (s *CreateSnapshotInput) Validate() error {
11564	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotInput"}
11565	if s.SnapshotDescription == nil {
11566		invalidParams.Add(request.NewErrParamRequired("SnapshotDescription"))
11567	}
11568	if s.SnapshotDescription != nil && len(*s.SnapshotDescription) < 1 {
11569		invalidParams.Add(request.NewErrParamMinLen("SnapshotDescription", 1))
11570	}
11571	if s.VolumeARN == nil {
11572		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
11573	}
11574	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
11575		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
11576	}
11577	if s.Tags != nil {
11578		for i, v := range s.Tags {
11579			if v == nil {
11580				continue
11581			}
11582			if err := v.Validate(); err != nil {
11583				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11584			}
11585		}
11586	}
11587
11588	if invalidParams.Len() > 0 {
11589		return invalidParams
11590	}
11591	return nil
11592}
11593
11594// SetSnapshotDescription sets the SnapshotDescription field's value.
11595func (s *CreateSnapshotInput) SetSnapshotDescription(v string) *CreateSnapshotInput {
11596	s.SnapshotDescription = &v
11597	return s
11598}
11599
11600// SetTags sets the Tags field's value.
11601func (s *CreateSnapshotInput) SetTags(v []*Tag) *CreateSnapshotInput {
11602	s.Tags = v
11603	return s
11604}
11605
11606// SetVolumeARN sets the VolumeARN field's value.
11607func (s *CreateSnapshotInput) SetVolumeARN(v string) *CreateSnapshotInput {
11608	s.VolumeARN = &v
11609	return s
11610}
11611
11612// A JSON object containing the following fields:
11613type CreateSnapshotOutput struct {
11614	_ struct{} `type:"structure"`
11615
11616	// The snapshot ID that is used to refer to the snapshot in future operations
11617	// such as describing snapshots (Amazon Elastic Compute Cloud API DescribeSnapshots)
11618	// or creating a volume from a snapshot (CreateStorediSCSIVolume).
11619	SnapshotId *string `type:"string"`
11620
11621	// The Amazon Resource Name (ARN) of the volume of which the snapshot was taken.
11622	VolumeARN *string `min:"50" type:"string"`
11623}
11624
11625// String returns the string representation
11626func (s CreateSnapshotOutput) String() string {
11627	return awsutil.Prettify(s)
11628}
11629
11630// GoString returns the string representation
11631func (s CreateSnapshotOutput) GoString() string {
11632	return s.String()
11633}
11634
11635// SetSnapshotId sets the SnapshotId field's value.
11636func (s *CreateSnapshotOutput) SetSnapshotId(v string) *CreateSnapshotOutput {
11637	s.SnapshotId = &v
11638	return s
11639}
11640
11641// SetVolumeARN sets the VolumeARN field's value.
11642func (s *CreateSnapshotOutput) SetVolumeARN(v string) *CreateSnapshotOutput {
11643	s.VolumeARN = &v
11644	return s
11645}
11646
11647// A JSON object containing one or more of the following fields:
11648//
11649//    * CreateStorediSCSIVolumeInput$DiskId
11650//
11651//    * CreateStorediSCSIVolumeInput$NetworkInterfaceId
11652//
11653//    * CreateStorediSCSIVolumeInput$PreserveExistingData
11654//
11655//    * CreateStorediSCSIVolumeInput$SnapshotId
11656//
11657//    * CreateStorediSCSIVolumeInput$TargetName
11658type CreateStorediSCSIVolumeInput struct {
11659	_ struct{} `type:"structure"`
11660
11661	// The unique identifier for the gateway local disk that is configured as a
11662	// stored volume. Use ListLocalDisks (https://docs.aws.amazon.com/storagegateway/latest/userguide/API_ListLocalDisks.html)
11663	// to list disk IDs for a gateway.
11664	//
11665	// DiskId is a required field
11666	DiskId *string `min:"1" type:"string" required:"true"`
11667
11668	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11669	// to return a list of gateways for your account and AWS Region.
11670	//
11671	// GatewayARN is a required field
11672	GatewayARN *string `min:"50" type:"string" required:"true"`
11673
11674	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
11675	// key, or false to use a key managed by Amazon S3. Optional.
11676	//
11677	// Valid Values: true | false
11678	KMSEncrypted *bool `type:"boolean"`
11679
11680	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
11681	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
11682	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
11683	KMSKey *string `min:"7" type:"string"`
11684
11685	// The network interface of the gateway on which to expose the iSCSI target.
11686	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
11687	// list of the network interfaces available on a gateway.
11688	//
11689	// Valid Values: A valid IP address.
11690	//
11691	// NetworkInterfaceId is a required field
11692	NetworkInterfaceId *string `type:"string" required:"true"`
11693
11694	// Set to true if you want to preserve the data on the local disk. Otherwise,
11695	// set to false to create an empty volume.
11696	//
11697	// Valid Values: true | false
11698	//
11699	// PreserveExistingData is a required field
11700	PreserveExistingData *bool `type:"boolean" required:"true"`
11701
11702	// The snapshot ID (e.g., "snap-1122aabb") of the snapshot to restore as the
11703	// new stored volume. Specify this field if you want to create the iSCSI storage
11704	// volume from a snapshot; otherwise, do not include this field. To list snapshots
11705	// for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
11706	// in the Amazon Elastic Compute Cloud API Reference.
11707	SnapshotId *string `type:"string"`
11708
11709	// A list of up to 50 tags that can be assigned to a stored volume. Each tag
11710	// is a key-value pair.
11711	//
11712	// Valid characters for key and value are letters, spaces, and numbers representable
11713	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
11714	// maximum length of a tag's key is 128 characters, and the maximum length for
11715	// a tag's value is 256.
11716	Tags []*Tag `type:"list"`
11717
11718	// The name of the iSCSI target used by an initiator to connect to a volume
11719	// and used as a suffix for the target ARN. For example, specifying TargetName
11720	// 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.
11721	// The target name must be unique across all volumes on a gateway.
11722	//
11723	// If you don't specify a value, Storage Gateway uses the value that was previously
11724	// used for this volume as the new target name.
11725	//
11726	// TargetName is a required field
11727	TargetName *string `min:"1" type:"string" required:"true"`
11728}
11729
11730// String returns the string representation
11731func (s CreateStorediSCSIVolumeInput) String() string {
11732	return awsutil.Prettify(s)
11733}
11734
11735// GoString returns the string representation
11736func (s CreateStorediSCSIVolumeInput) GoString() string {
11737	return s.String()
11738}
11739
11740// Validate inspects the fields of the type to determine if they are valid.
11741func (s *CreateStorediSCSIVolumeInput) Validate() error {
11742	invalidParams := request.ErrInvalidParams{Context: "CreateStorediSCSIVolumeInput"}
11743	if s.DiskId == nil {
11744		invalidParams.Add(request.NewErrParamRequired("DiskId"))
11745	}
11746	if s.DiskId != nil && len(*s.DiskId) < 1 {
11747		invalidParams.Add(request.NewErrParamMinLen("DiskId", 1))
11748	}
11749	if s.GatewayARN == nil {
11750		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11751	}
11752	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11753		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11754	}
11755	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
11756		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
11757	}
11758	if s.NetworkInterfaceId == nil {
11759		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
11760	}
11761	if s.PreserveExistingData == nil {
11762		invalidParams.Add(request.NewErrParamRequired("PreserveExistingData"))
11763	}
11764	if s.TargetName == nil {
11765		invalidParams.Add(request.NewErrParamRequired("TargetName"))
11766	}
11767	if s.TargetName != nil && len(*s.TargetName) < 1 {
11768		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
11769	}
11770	if s.Tags != nil {
11771		for i, v := range s.Tags {
11772			if v == nil {
11773				continue
11774			}
11775			if err := v.Validate(); err != nil {
11776				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11777			}
11778		}
11779	}
11780
11781	if invalidParams.Len() > 0 {
11782		return invalidParams
11783	}
11784	return nil
11785}
11786
11787// SetDiskId sets the DiskId field's value.
11788func (s *CreateStorediSCSIVolumeInput) SetDiskId(v string) *CreateStorediSCSIVolumeInput {
11789	s.DiskId = &v
11790	return s
11791}
11792
11793// SetGatewayARN sets the GatewayARN field's value.
11794func (s *CreateStorediSCSIVolumeInput) SetGatewayARN(v string) *CreateStorediSCSIVolumeInput {
11795	s.GatewayARN = &v
11796	return s
11797}
11798
11799// SetKMSEncrypted sets the KMSEncrypted field's value.
11800func (s *CreateStorediSCSIVolumeInput) SetKMSEncrypted(v bool) *CreateStorediSCSIVolumeInput {
11801	s.KMSEncrypted = &v
11802	return s
11803}
11804
11805// SetKMSKey sets the KMSKey field's value.
11806func (s *CreateStorediSCSIVolumeInput) SetKMSKey(v string) *CreateStorediSCSIVolumeInput {
11807	s.KMSKey = &v
11808	return s
11809}
11810
11811// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
11812func (s *CreateStorediSCSIVolumeInput) SetNetworkInterfaceId(v string) *CreateStorediSCSIVolumeInput {
11813	s.NetworkInterfaceId = &v
11814	return s
11815}
11816
11817// SetPreserveExistingData sets the PreserveExistingData field's value.
11818func (s *CreateStorediSCSIVolumeInput) SetPreserveExistingData(v bool) *CreateStorediSCSIVolumeInput {
11819	s.PreserveExistingData = &v
11820	return s
11821}
11822
11823// SetSnapshotId sets the SnapshotId field's value.
11824func (s *CreateStorediSCSIVolumeInput) SetSnapshotId(v string) *CreateStorediSCSIVolumeInput {
11825	s.SnapshotId = &v
11826	return s
11827}
11828
11829// SetTags sets the Tags field's value.
11830func (s *CreateStorediSCSIVolumeInput) SetTags(v []*Tag) *CreateStorediSCSIVolumeInput {
11831	s.Tags = v
11832	return s
11833}
11834
11835// SetTargetName sets the TargetName field's value.
11836func (s *CreateStorediSCSIVolumeInput) SetTargetName(v string) *CreateStorediSCSIVolumeInput {
11837	s.TargetName = &v
11838	return s
11839}
11840
11841// A JSON object containing the following fields:
11842type CreateStorediSCSIVolumeOutput struct {
11843	_ struct{} `type:"structure"`
11844
11845	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
11846	// name that initiators can use to connect to the target.
11847	TargetARN *string `min:"50" type:"string"`
11848
11849	// The Amazon Resource Name (ARN) of the configured volume.
11850	VolumeARN *string `min:"50" type:"string"`
11851
11852	// The size of the volume in bytes.
11853	VolumeSizeInBytes *int64 `type:"long"`
11854}
11855
11856// String returns the string representation
11857func (s CreateStorediSCSIVolumeOutput) String() string {
11858	return awsutil.Prettify(s)
11859}
11860
11861// GoString returns the string representation
11862func (s CreateStorediSCSIVolumeOutput) GoString() string {
11863	return s.String()
11864}
11865
11866// SetTargetARN sets the TargetARN field's value.
11867func (s *CreateStorediSCSIVolumeOutput) SetTargetARN(v string) *CreateStorediSCSIVolumeOutput {
11868	s.TargetARN = &v
11869	return s
11870}
11871
11872// SetVolumeARN sets the VolumeARN field's value.
11873func (s *CreateStorediSCSIVolumeOutput) SetVolumeARN(v string) *CreateStorediSCSIVolumeOutput {
11874	s.VolumeARN = &v
11875	return s
11876}
11877
11878// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
11879func (s *CreateStorediSCSIVolumeOutput) SetVolumeSizeInBytes(v int64) *CreateStorediSCSIVolumeOutput {
11880	s.VolumeSizeInBytes = &v
11881	return s
11882}
11883
11884type CreateTapePoolInput struct {
11885	_ struct{} `type:"structure"`
11886
11887	// The name of the new custom tape pool.
11888	//
11889	// PoolName is a required field
11890	PoolName *string `min:"1" type:"string" required:"true"`
11891
11892	// Tape retention lock time is set in days. Tape retention lock can be enabled
11893	// for up to 100 years (36,500 days).
11894	RetentionLockTimeInDays *int64 `type:"integer"`
11895
11896	// Tape retention lock can be configured in two modes. When configured in governance
11897	// mode, AWS accounts with specific IAM permissions are authorized to remove
11898	// the tape retention lock from archived virtual tapes. When configured in compliance
11899	// mode, the tape retention lock cannot be removed by any user, including the
11900	// root AWS account.
11901	RetentionLockType *string `type:"string" enum:"RetentionLockType"`
11902
11903	// The storage class that is associated with the new custom pool. When you use
11904	// your backup application to eject the tape, the tape is archived directly
11905	// into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds
11906	// to the pool.
11907	//
11908	// StorageClass is a required field
11909	StorageClass *string `type:"string" required:"true" enum:"TapeStorageClass"`
11910
11911	// A list of up to 50 tags that can be assigned to tape pool. Each tag is a
11912	// key-value pair.
11913	//
11914	// Valid characters for key and value are letters, spaces, and numbers representable
11915	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
11916	// maximum length of a tag's key is 128 characters, and the maximum length for
11917	// a tag's value is 256.
11918	Tags []*Tag `type:"list"`
11919}
11920
11921// String returns the string representation
11922func (s CreateTapePoolInput) String() string {
11923	return awsutil.Prettify(s)
11924}
11925
11926// GoString returns the string representation
11927func (s CreateTapePoolInput) GoString() string {
11928	return s.String()
11929}
11930
11931// Validate inspects the fields of the type to determine if they are valid.
11932func (s *CreateTapePoolInput) Validate() error {
11933	invalidParams := request.ErrInvalidParams{Context: "CreateTapePoolInput"}
11934	if s.PoolName == nil {
11935		invalidParams.Add(request.NewErrParamRequired("PoolName"))
11936	}
11937	if s.PoolName != nil && len(*s.PoolName) < 1 {
11938		invalidParams.Add(request.NewErrParamMinLen("PoolName", 1))
11939	}
11940	if s.StorageClass == nil {
11941		invalidParams.Add(request.NewErrParamRequired("StorageClass"))
11942	}
11943	if s.Tags != nil {
11944		for i, v := range s.Tags {
11945			if v == nil {
11946				continue
11947			}
11948			if err := v.Validate(); err != nil {
11949				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11950			}
11951		}
11952	}
11953
11954	if invalidParams.Len() > 0 {
11955		return invalidParams
11956	}
11957	return nil
11958}
11959
11960// SetPoolName sets the PoolName field's value.
11961func (s *CreateTapePoolInput) SetPoolName(v string) *CreateTapePoolInput {
11962	s.PoolName = &v
11963	return s
11964}
11965
11966// SetRetentionLockTimeInDays sets the RetentionLockTimeInDays field's value.
11967func (s *CreateTapePoolInput) SetRetentionLockTimeInDays(v int64) *CreateTapePoolInput {
11968	s.RetentionLockTimeInDays = &v
11969	return s
11970}
11971
11972// SetRetentionLockType sets the RetentionLockType field's value.
11973func (s *CreateTapePoolInput) SetRetentionLockType(v string) *CreateTapePoolInput {
11974	s.RetentionLockType = &v
11975	return s
11976}
11977
11978// SetStorageClass sets the StorageClass field's value.
11979func (s *CreateTapePoolInput) SetStorageClass(v string) *CreateTapePoolInput {
11980	s.StorageClass = &v
11981	return s
11982}
11983
11984// SetTags sets the Tags field's value.
11985func (s *CreateTapePoolInput) SetTags(v []*Tag) *CreateTapePoolInput {
11986	s.Tags = v
11987	return s
11988}
11989
11990type CreateTapePoolOutput struct {
11991	_ struct{} `type:"structure"`
11992
11993	// The unique Amazon Resource Name (ARN) that represents the custom tape pool.
11994	// Use the ListTapePools operation to return a list of tape pools for your account
11995	// and AWS Region.
11996	PoolARN *string `min:"50" type:"string"`
11997}
11998
11999// String returns the string representation
12000func (s CreateTapePoolOutput) String() string {
12001	return awsutil.Prettify(s)
12002}
12003
12004// GoString returns the string representation
12005func (s CreateTapePoolOutput) GoString() string {
12006	return s.String()
12007}
12008
12009// SetPoolARN sets the PoolARN field's value.
12010func (s *CreateTapePoolOutput) SetPoolARN(v string) *CreateTapePoolOutput {
12011	s.PoolARN = &v
12012	return s
12013}
12014
12015// CreateTapeWithBarcodeInput
12016type CreateTapeWithBarcodeInput struct {
12017	_ struct{} `type:"structure"`
12018
12019	// The unique Amazon Resource Name (ARN) that represents the gateway to associate
12020	// the virtual tape with. Use the ListGateways operation to return a list of
12021	// gateways for your account and AWS Region.
12022	//
12023	// GatewayARN is a required field
12024	GatewayARN *string `min:"50" type:"string" required:"true"`
12025
12026	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
12027	// key, or false to use a key managed by Amazon S3. Optional.
12028	//
12029	// Valid Values: true | false
12030	KMSEncrypted *bool `type:"boolean"`
12031
12032	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
12033	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
12034	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
12035	KMSKey *string `min:"7" type:"string"`
12036
12037	// The ID of the pool that you want to add your tape to for archiving. The tape
12038	// in this pool is archived in the S3 storage class that is associated with
12039	// the pool. When you use your backup application to eject the tape, the tape
12040	// is archived directly into the storage class (S3 Glacier or S3 Deep Archive)
12041	// that corresponds to the pool.
12042	//
12043	// Valid Values: GLACIER | DEEP_ARCHIVE
12044	PoolId *string `min:"1" type:"string"`
12045
12046	// A list of up to 50 tags that can be assigned to a virtual tape that has a
12047	// barcode. Each tag is a key-value pair.
12048	//
12049	// Valid characters for key and value are letters, spaces, and numbers representable
12050	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
12051	// maximum length of a tag's key is 128 characters, and the maximum length for
12052	// a tag's value is 256.
12053	Tags []*Tag `type:"list"`
12054
12055	// The barcode that you want to assign to the tape.
12056	//
12057	// Barcodes cannot be reused. This includes barcodes used for tapes that have
12058	// been deleted.
12059	//
12060	// TapeBarcode is a required field
12061	TapeBarcode *string `min:"7" type:"string" required:"true"`
12062
12063	// The size, in bytes, of the virtual tape that you want to create.
12064	//
12065	// The size must be aligned by gigabyte (1024*1024*1024 bytes).
12066	//
12067	// TapeSizeInBytes is a required field
12068	TapeSizeInBytes *int64 `type:"long" required:"true"`
12069
12070	// Set to TRUE if the tape you are creating is to be configured as a write-once-read-many
12071	// (WORM) tape.
12072	Worm *bool `type:"boolean"`
12073}
12074
12075// String returns the string representation
12076func (s CreateTapeWithBarcodeInput) String() string {
12077	return awsutil.Prettify(s)
12078}
12079
12080// GoString returns the string representation
12081func (s CreateTapeWithBarcodeInput) GoString() string {
12082	return s.String()
12083}
12084
12085// Validate inspects the fields of the type to determine if they are valid.
12086func (s *CreateTapeWithBarcodeInput) Validate() error {
12087	invalidParams := request.ErrInvalidParams{Context: "CreateTapeWithBarcodeInput"}
12088	if s.GatewayARN == nil {
12089		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12090	}
12091	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12092		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12093	}
12094	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
12095		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
12096	}
12097	if s.PoolId != nil && len(*s.PoolId) < 1 {
12098		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
12099	}
12100	if s.TapeBarcode == nil {
12101		invalidParams.Add(request.NewErrParamRequired("TapeBarcode"))
12102	}
12103	if s.TapeBarcode != nil && len(*s.TapeBarcode) < 7 {
12104		invalidParams.Add(request.NewErrParamMinLen("TapeBarcode", 7))
12105	}
12106	if s.TapeSizeInBytes == nil {
12107		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
12108	}
12109	if s.Tags != nil {
12110		for i, v := range s.Tags {
12111			if v == nil {
12112				continue
12113			}
12114			if err := v.Validate(); err != nil {
12115				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12116			}
12117		}
12118	}
12119
12120	if invalidParams.Len() > 0 {
12121		return invalidParams
12122	}
12123	return nil
12124}
12125
12126// SetGatewayARN sets the GatewayARN field's value.
12127func (s *CreateTapeWithBarcodeInput) SetGatewayARN(v string) *CreateTapeWithBarcodeInput {
12128	s.GatewayARN = &v
12129	return s
12130}
12131
12132// SetKMSEncrypted sets the KMSEncrypted field's value.
12133func (s *CreateTapeWithBarcodeInput) SetKMSEncrypted(v bool) *CreateTapeWithBarcodeInput {
12134	s.KMSEncrypted = &v
12135	return s
12136}
12137
12138// SetKMSKey sets the KMSKey field's value.
12139func (s *CreateTapeWithBarcodeInput) SetKMSKey(v string) *CreateTapeWithBarcodeInput {
12140	s.KMSKey = &v
12141	return s
12142}
12143
12144// SetPoolId sets the PoolId field's value.
12145func (s *CreateTapeWithBarcodeInput) SetPoolId(v string) *CreateTapeWithBarcodeInput {
12146	s.PoolId = &v
12147	return s
12148}
12149
12150// SetTags sets the Tags field's value.
12151func (s *CreateTapeWithBarcodeInput) SetTags(v []*Tag) *CreateTapeWithBarcodeInput {
12152	s.Tags = v
12153	return s
12154}
12155
12156// SetTapeBarcode sets the TapeBarcode field's value.
12157func (s *CreateTapeWithBarcodeInput) SetTapeBarcode(v string) *CreateTapeWithBarcodeInput {
12158	s.TapeBarcode = &v
12159	return s
12160}
12161
12162// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
12163func (s *CreateTapeWithBarcodeInput) SetTapeSizeInBytes(v int64) *CreateTapeWithBarcodeInput {
12164	s.TapeSizeInBytes = &v
12165	return s
12166}
12167
12168// SetWorm sets the Worm field's value.
12169func (s *CreateTapeWithBarcodeInput) SetWorm(v bool) *CreateTapeWithBarcodeInput {
12170	s.Worm = &v
12171	return s
12172}
12173
12174// CreateTapeOutput
12175type CreateTapeWithBarcodeOutput struct {
12176	_ struct{} `type:"structure"`
12177
12178	// A unique Amazon Resource Name (ARN) that represents the virtual tape that
12179	// was created.
12180	TapeARN *string `min:"50" type:"string"`
12181}
12182
12183// String returns the string representation
12184func (s CreateTapeWithBarcodeOutput) String() string {
12185	return awsutil.Prettify(s)
12186}
12187
12188// GoString returns the string representation
12189func (s CreateTapeWithBarcodeOutput) GoString() string {
12190	return s.String()
12191}
12192
12193// SetTapeARN sets the TapeARN field's value.
12194func (s *CreateTapeWithBarcodeOutput) SetTapeARN(v string) *CreateTapeWithBarcodeOutput {
12195	s.TapeARN = &v
12196	return s
12197}
12198
12199// CreateTapesInput
12200type CreateTapesInput struct {
12201	_ struct{} `type:"structure"`
12202
12203	// A unique identifier that you use to retry a request. If you retry a request,
12204	// use the same ClientToken you specified in the initial request.
12205	//
12206	// Using the same ClientToken prevents creating the tape multiple times.
12207	//
12208	// ClientToken is a required field
12209	ClientToken *string `min:"5" type:"string" required:"true"`
12210
12211	// The unique Amazon Resource Name (ARN) that represents the gateway to associate
12212	// the virtual tapes with. Use the ListGateways operation to return a list of
12213	// gateways for your account and AWS Region.
12214	//
12215	// GatewayARN is a required field
12216	GatewayARN *string `min:"50" type:"string" required:"true"`
12217
12218	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
12219	// key, or false to use a key managed by Amazon S3. Optional.
12220	//
12221	// Valid Values: true | false
12222	KMSEncrypted *bool `type:"boolean"`
12223
12224	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
12225	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
12226	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
12227	KMSKey *string `min:"7" type:"string"`
12228
12229	// The number of virtual tapes that you want to create.
12230	//
12231	// NumTapesToCreate is a required field
12232	NumTapesToCreate *int64 `min:"1" type:"integer" required:"true"`
12233
12234	// The ID of the pool that you want to add your tape to for archiving. The tape
12235	// in this pool is archived in the S3 storage class that is associated with
12236	// the pool. When you use your backup application to eject the tape, the tape
12237	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
12238	// Archive) that corresponds to the pool.
12239	//
12240	// Valid Values: GLACIER | DEEP_ARCHIVE
12241	PoolId *string `min:"1" type:"string"`
12242
12243	// A list of up to 50 tags that can be assigned to a virtual tape. Each tag
12244	// is a key-value pair.
12245	//
12246	// Valid characters for key and value are letters, spaces, and numbers representable
12247	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
12248	// maximum length of a tag's key is 128 characters, and the maximum length for
12249	// a tag's value is 256.
12250	Tags []*Tag `type:"list"`
12251
12252	// A prefix that you append to the barcode of the virtual tape you are creating.
12253	// This prefix makes the barcode unique.
12254	//
12255	// The prefix must be 1-4 characters in length and must be one of the uppercase
12256	// letters from A to Z.
12257	//
12258	// TapeBarcodePrefix is a required field
12259	TapeBarcodePrefix *string `min:"1" type:"string" required:"true"`
12260
12261	// The size, in bytes, of the virtual tapes that you want to create.
12262	//
12263	// The size must be aligned by gigabyte (1024*1024*1024 bytes).
12264	//
12265	// TapeSizeInBytes is a required field
12266	TapeSizeInBytes *int64 `type:"long" required:"true"`
12267
12268	// Set to TRUE if the tape you are creating is to be configured as a write-once-read-many
12269	// (WORM) tape.
12270	Worm *bool `type:"boolean"`
12271}
12272
12273// String returns the string representation
12274func (s CreateTapesInput) String() string {
12275	return awsutil.Prettify(s)
12276}
12277
12278// GoString returns the string representation
12279func (s CreateTapesInput) GoString() string {
12280	return s.String()
12281}
12282
12283// Validate inspects the fields of the type to determine if they are valid.
12284func (s *CreateTapesInput) Validate() error {
12285	invalidParams := request.ErrInvalidParams{Context: "CreateTapesInput"}
12286	if s.ClientToken == nil {
12287		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
12288	}
12289	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
12290		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
12291	}
12292	if s.GatewayARN == nil {
12293		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12294	}
12295	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12296		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12297	}
12298	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
12299		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
12300	}
12301	if s.NumTapesToCreate == nil {
12302		invalidParams.Add(request.NewErrParamRequired("NumTapesToCreate"))
12303	}
12304	if s.NumTapesToCreate != nil && *s.NumTapesToCreate < 1 {
12305		invalidParams.Add(request.NewErrParamMinValue("NumTapesToCreate", 1))
12306	}
12307	if s.PoolId != nil && len(*s.PoolId) < 1 {
12308		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
12309	}
12310	if s.TapeBarcodePrefix == nil {
12311		invalidParams.Add(request.NewErrParamRequired("TapeBarcodePrefix"))
12312	}
12313	if s.TapeBarcodePrefix != nil && len(*s.TapeBarcodePrefix) < 1 {
12314		invalidParams.Add(request.NewErrParamMinLen("TapeBarcodePrefix", 1))
12315	}
12316	if s.TapeSizeInBytes == nil {
12317		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
12318	}
12319	if s.Tags != nil {
12320		for i, v := range s.Tags {
12321			if v == nil {
12322				continue
12323			}
12324			if err := v.Validate(); err != nil {
12325				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12326			}
12327		}
12328	}
12329
12330	if invalidParams.Len() > 0 {
12331		return invalidParams
12332	}
12333	return nil
12334}
12335
12336// SetClientToken sets the ClientToken field's value.
12337func (s *CreateTapesInput) SetClientToken(v string) *CreateTapesInput {
12338	s.ClientToken = &v
12339	return s
12340}
12341
12342// SetGatewayARN sets the GatewayARN field's value.
12343func (s *CreateTapesInput) SetGatewayARN(v string) *CreateTapesInput {
12344	s.GatewayARN = &v
12345	return s
12346}
12347
12348// SetKMSEncrypted sets the KMSEncrypted field's value.
12349func (s *CreateTapesInput) SetKMSEncrypted(v bool) *CreateTapesInput {
12350	s.KMSEncrypted = &v
12351	return s
12352}
12353
12354// SetKMSKey sets the KMSKey field's value.
12355func (s *CreateTapesInput) SetKMSKey(v string) *CreateTapesInput {
12356	s.KMSKey = &v
12357	return s
12358}
12359
12360// SetNumTapesToCreate sets the NumTapesToCreate field's value.
12361func (s *CreateTapesInput) SetNumTapesToCreate(v int64) *CreateTapesInput {
12362	s.NumTapesToCreate = &v
12363	return s
12364}
12365
12366// SetPoolId sets the PoolId field's value.
12367func (s *CreateTapesInput) SetPoolId(v string) *CreateTapesInput {
12368	s.PoolId = &v
12369	return s
12370}
12371
12372// SetTags sets the Tags field's value.
12373func (s *CreateTapesInput) SetTags(v []*Tag) *CreateTapesInput {
12374	s.Tags = v
12375	return s
12376}
12377
12378// SetTapeBarcodePrefix sets the TapeBarcodePrefix field's value.
12379func (s *CreateTapesInput) SetTapeBarcodePrefix(v string) *CreateTapesInput {
12380	s.TapeBarcodePrefix = &v
12381	return s
12382}
12383
12384// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
12385func (s *CreateTapesInput) SetTapeSizeInBytes(v int64) *CreateTapesInput {
12386	s.TapeSizeInBytes = &v
12387	return s
12388}
12389
12390// SetWorm sets the Worm field's value.
12391func (s *CreateTapesInput) SetWorm(v bool) *CreateTapesInput {
12392	s.Worm = &v
12393	return s
12394}
12395
12396// CreateTapeOutput
12397type CreateTapesOutput struct {
12398	_ struct{} `type:"structure"`
12399
12400	// A list of unique Amazon Resource Names (ARNs) that represents the virtual
12401	// tapes that were created.
12402	TapeARNs []*string `type:"list"`
12403}
12404
12405// String returns the string representation
12406func (s CreateTapesOutput) String() string {
12407	return awsutil.Prettify(s)
12408}
12409
12410// GoString returns the string representation
12411func (s CreateTapesOutput) GoString() string {
12412	return s.String()
12413}
12414
12415// SetTapeARNs sets the TapeARNs field's value.
12416func (s *CreateTapesOutput) SetTapeARNs(v []*string) *CreateTapesOutput {
12417	s.TapeARNs = v
12418	return s
12419}
12420
12421type DeleteAutomaticTapeCreationPolicyInput struct {
12422	_ struct{} `type:"structure"`
12423
12424	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12425	// to return a list of gateways for your account and AWS Region.
12426	//
12427	// GatewayARN is a required field
12428	GatewayARN *string `min:"50" type:"string" required:"true"`
12429}
12430
12431// String returns the string representation
12432func (s DeleteAutomaticTapeCreationPolicyInput) String() string {
12433	return awsutil.Prettify(s)
12434}
12435
12436// GoString returns the string representation
12437func (s DeleteAutomaticTapeCreationPolicyInput) GoString() string {
12438	return s.String()
12439}
12440
12441// Validate inspects the fields of the type to determine if they are valid.
12442func (s *DeleteAutomaticTapeCreationPolicyInput) Validate() error {
12443	invalidParams := request.ErrInvalidParams{Context: "DeleteAutomaticTapeCreationPolicyInput"}
12444	if s.GatewayARN == nil {
12445		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12446	}
12447	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12448		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12449	}
12450
12451	if invalidParams.Len() > 0 {
12452		return invalidParams
12453	}
12454	return nil
12455}
12456
12457// SetGatewayARN sets the GatewayARN field's value.
12458func (s *DeleteAutomaticTapeCreationPolicyInput) SetGatewayARN(v string) *DeleteAutomaticTapeCreationPolicyInput {
12459	s.GatewayARN = &v
12460	return s
12461}
12462
12463type DeleteAutomaticTapeCreationPolicyOutput struct {
12464	_ struct{} `type:"structure"`
12465
12466	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12467	// to return a list of gateways for your account and AWS Region.
12468	GatewayARN *string `min:"50" type:"string"`
12469}
12470
12471// String returns the string representation
12472func (s DeleteAutomaticTapeCreationPolicyOutput) String() string {
12473	return awsutil.Prettify(s)
12474}
12475
12476// GoString returns the string representation
12477func (s DeleteAutomaticTapeCreationPolicyOutput) GoString() string {
12478	return s.String()
12479}
12480
12481// SetGatewayARN sets the GatewayARN field's value.
12482func (s *DeleteAutomaticTapeCreationPolicyOutput) SetGatewayARN(v string) *DeleteAutomaticTapeCreationPolicyOutput {
12483	s.GatewayARN = &v
12484	return s
12485}
12486
12487// A JSON object containing the following fields:
12488//
12489//    * DeleteBandwidthRateLimitInput$BandwidthType
12490type DeleteBandwidthRateLimitInput struct {
12491	_ struct{} `type:"structure"`
12492
12493	// One of the BandwidthType values that indicates the gateway bandwidth rate
12494	// limit to delete.
12495	//
12496	// Valid Values: UPLOAD | DOWNLOAD | ALL
12497	//
12498	// BandwidthType is a required field
12499	BandwidthType *string `min:"3" type:"string" required:"true"`
12500
12501	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12502	// to return a list of gateways for your account and AWS Region.
12503	//
12504	// GatewayARN is a required field
12505	GatewayARN *string `min:"50" type:"string" required:"true"`
12506}
12507
12508// String returns the string representation
12509func (s DeleteBandwidthRateLimitInput) String() string {
12510	return awsutil.Prettify(s)
12511}
12512
12513// GoString returns the string representation
12514func (s DeleteBandwidthRateLimitInput) GoString() string {
12515	return s.String()
12516}
12517
12518// Validate inspects the fields of the type to determine if they are valid.
12519func (s *DeleteBandwidthRateLimitInput) Validate() error {
12520	invalidParams := request.ErrInvalidParams{Context: "DeleteBandwidthRateLimitInput"}
12521	if s.BandwidthType == nil {
12522		invalidParams.Add(request.NewErrParamRequired("BandwidthType"))
12523	}
12524	if s.BandwidthType != nil && len(*s.BandwidthType) < 3 {
12525		invalidParams.Add(request.NewErrParamMinLen("BandwidthType", 3))
12526	}
12527	if s.GatewayARN == nil {
12528		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12529	}
12530	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12531		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12532	}
12533
12534	if invalidParams.Len() > 0 {
12535		return invalidParams
12536	}
12537	return nil
12538}
12539
12540// SetBandwidthType sets the BandwidthType field's value.
12541func (s *DeleteBandwidthRateLimitInput) SetBandwidthType(v string) *DeleteBandwidthRateLimitInput {
12542	s.BandwidthType = &v
12543	return s
12544}
12545
12546// SetGatewayARN sets the GatewayARN field's value.
12547func (s *DeleteBandwidthRateLimitInput) SetGatewayARN(v string) *DeleteBandwidthRateLimitInput {
12548	s.GatewayARN = &v
12549	return s
12550}
12551
12552// A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
12553// bandwidth rate information was deleted.
12554type DeleteBandwidthRateLimitOutput struct {
12555	_ struct{} `type:"structure"`
12556
12557	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12558	// to return a list of gateways for your account and AWS Region.
12559	GatewayARN *string `min:"50" type:"string"`
12560}
12561
12562// String returns the string representation
12563func (s DeleteBandwidthRateLimitOutput) String() string {
12564	return awsutil.Prettify(s)
12565}
12566
12567// GoString returns the string representation
12568func (s DeleteBandwidthRateLimitOutput) GoString() string {
12569	return s.String()
12570}
12571
12572// SetGatewayARN sets the GatewayARN field's value.
12573func (s *DeleteBandwidthRateLimitOutput) SetGatewayARN(v string) *DeleteBandwidthRateLimitOutput {
12574	s.GatewayARN = &v
12575	return s
12576}
12577
12578// A JSON object containing one or more of the following fields:
12579//
12580//    * DeleteChapCredentialsInput$InitiatorName
12581//
12582//    * DeleteChapCredentialsInput$TargetARN
12583type DeleteChapCredentialsInput struct {
12584	_ struct{} `type:"structure"`
12585
12586	// The iSCSI initiator that connects to the target.
12587	//
12588	// InitiatorName is a required field
12589	InitiatorName *string `min:"1" type:"string" required:"true"`
12590
12591	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
12592	// operation to return to retrieve the TargetARN for specified VolumeARN.
12593	//
12594	// TargetARN is a required field
12595	TargetARN *string `min:"50" type:"string" required:"true"`
12596}
12597
12598// String returns the string representation
12599func (s DeleteChapCredentialsInput) String() string {
12600	return awsutil.Prettify(s)
12601}
12602
12603// GoString returns the string representation
12604func (s DeleteChapCredentialsInput) GoString() string {
12605	return s.String()
12606}
12607
12608// Validate inspects the fields of the type to determine if they are valid.
12609func (s *DeleteChapCredentialsInput) Validate() error {
12610	invalidParams := request.ErrInvalidParams{Context: "DeleteChapCredentialsInput"}
12611	if s.InitiatorName == nil {
12612		invalidParams.Add(request.NewErrParamRequired("InitiatorName"))
12613	}
12614	if s.InitiatorName != nil && len(*s.InitiatorName) < 1 {
12615		invalidParams.Add(request.NewErrParamMinLen("InitiatorName", 1))
12616	}
12617	if s.TargetARN == nil {
12618		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
12619	}
12620	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
12621		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
12622	}
12623
12624	if invalidParams.Len() > 0 {
12625		return invalidParams
12626	}
12627	return nil
12628}
12629
12630// SetInitiatorName sets the InitiatorName field's value.
12631func (s *DeleteChapCredentialsInput) SetInitiatorName(v string) *DeleteChapCredentialsInput {
12632	s.InitiatorName = &v
12633	return s
12634}
12635
12636// SetTargetARN sets the TargetARN field's value.
12637func (s *DeleteChapCredentialsInput) SetTargetARN(v string) *DeleteChapCredentialsInput {
12638	s.TargetARN = &v
12639	return s
12640}
12641
12642// A JSON object containing the following fields:
12643type DeleteChapCredentialsOutput struct {
12644	_ struct{} `type:"structure"`
12645
12646	// The iSCSI initiator that connects to the target.
12647	InitiatorName *string `min:"1" type:"string"`
12648
12649	// The Amazon Resource Name (ARN) of the target.
12650	TargetARN *string `min:"50" type:"string"`
12651}
12652
12653// String returns the string representation
12654func (s DeleteChapCredentialsOutput) String() string {
12655	return awsutil.Prettify(s)
12656}
12657
12658// GoString returns the string representation
12659func (s DeleteChapCredentialsOutput) GoString() string {
12660	return s.String()
12661}
12662
12663// SetInitiatorName sets the InitiatorName field's value.
12664func (s *DeleteChapCredentialsOutput) SetInitiatorName(v string) *DeleteChapCredentialsOutput {
12665	s.InitiatorName = &v
12666	return s
12667}
12668
12669// SetTargetARN sets the TargetARN field's value.
12670func (s *DeleteChapCredentialsOutput) SetTargetARN(v string) *DeleteChapCredentialsOutput {
12671	s.TargetARN = &v
12672	return s
12673}
12674
12675// DeleteFileShareInput
12676type DeleteFileShareInput struct {
12677	_ struct{} `type:"structure"`
12678
12679	// The Amazon Resource Name (ARN) of the file share to be deleted.
12680	//
12681	// FileShareARN is a required field
12682	FileShareARN *string `min:"50" type:"string" required:"true"`
12683
12684	// If this value is set to true, the operation deletes a file share immediately
12685	// and aborts all data uploads to AWS. Otherwise, the file share is not deleted
12686	// until all data is uploaded to AWS. This process aborts the data upload process,
12687	// and the file share enters the FORCE_DELETING status.
12688	//
12689	// Valid Values: true | false
12690	ForceDelete *bool `type:"boolean"`
12691}
12692
12693// String returns the string representation
12694func (s DeleteFileShareInput) String() string {
12695	return awsutil.Prettify(s)
12696}
12697
12698// GoString returns the string representation
12699func (s DeleteFileShareInput) GoString() string {
12700	return s.String()
12701}
12702
12703// Validate inspects the fields of the type to determine if they are valid.
12704func (s *DeleteFileShareInput) Validate() error {
12705	invalidParams := request.ErrInvalidParams{Context: "DeleteFileShareInput"}
12706	if s.FileShareARN == nil {
12707		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
12708	}
12709	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
12710		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
12711	}
12712
12713	if invalidParams.Len() > 0 {
12714		return invalidParams
12715	}
12716	return nil
12717}
12718
12719// SetFileShareARN sets the FileShareARN field's value.
12720func (s *DeleteFileShareInput) SetFileShareARN(v string) *DeleteFileShareInput {
12721	s.FileShareARN = &v
12722	return s
12723}
12724
12725// SetForceDelete sets the ForceDelete field's value.
12726func (s *DeleteFileShareInput) SetForceDelete(v bool) *DeleteFileShareInput {
12727	s.ForceDelete = &v
12728	return s
12729}
12730
12731// DeleteFileShareOutput
12732type DeleteFileShareOutput struct {
12733	_ struct{} `type:"structure"`
12734
12735	// The Amazon Resource Name (ARN) of the deleted file share.
12736	FileShareARN *string `min:"50" type:"string"`
12737}
12738
12739// String returns the string representation
12740func (s DeleteFileShareOutput) String() string {
12741	return awsutil.Prettify(s)
12742}
12743
12744// GoString returns the string representation
12745func (s DeleteFileShareOutput) GoString() string {
12746	return s.String()
12747}
12748
12749// SetFileShareARN sets the FileShareARN field's value.
12750func (s *DeleteFileShareOutput) SetFileShareARN(v string) *DeleteFileShareOutput {
12751	s.FileShareARN = &v
12752	return s
12753}
12754
12755// A JSON object containing the ID of the gateway to delete.
12756type DeleteGatewayInput struct {
12757	_ struct{} `type:"structure"`
12758
12759	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12760	// to return a list of gateways for your account and AWS Region.
12761	//
12762	// GatewayARN is a required field
12763	GatewayARN *string `min:"50" type:"string" required:"true"`
12764}
12765
12766// String returns the string representation
12767func (s DeleteGatewayInput) String() string {
12768	return awsutil.Prettify(s)
12769}
12770
12771// GoString returns the string representation
12772func (s DeleteGatewayInput) GoString() string {
12773	return s.String()
12774}
12775
12776// Validate inspects the fields of the type to determine if they are valid.
12777func (s *DeleteGatewayInput) Validate() error {
12778	invalidParams := request.ErrInvalidParams{Context: "DeleteGatewayInput"}
12779	if s.GatewayARN == nil {
12780		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12781	}
12782	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12783		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12784	}
12785
12786	if invalidParams.Len() > 0 {
12787		return invalidParams
12788	}
12789	return nil
12790}
12791
12792// SetGatewayARN sets the GatewayARN field's value.
12793func (s *DeleteGatewayInput) SetGatewayARN(v string) *DeleteGatewayInput {
12794	s.GatewayARN = &v
12795	return s
12796}
12797
12798// A JSON object containing the ID of the deleted gateway.
12799type DeleteGatewayOutput struct {
12800	_ struct{} `type:"structure"`
12801
12802	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12803	// to return a list of gateways for your account and AWS Region.
12804	GatewayARN *string `min:"50" type:"string"`
12805}
12806
12807// String returns the string representation
12808func (s DeleteGatewayOutput) String() string {
12809	return awsutil.Prettify(s)
12810}
12811
12812// GoString returns the string representation
12813func (s DeleteGatewayOutput) GoString() string {
12814	return s.String()
12815}
12816
12817// SetGatewayARN sets the GatewayARN field's value.
12818func (s *DeleteGatewayOutput) SetGatewayARN(v string) *DeleteGatewayOutput {
12819	s.GatewayARN = &v
12820	return s
12821}
12822
12823type DeleteSnapshotScheduleInput struct {
12824	_ struct{} `type:"structure"`
12825
12826	// The volume which snapshot schedule to delete.
12827	//
12828	// VolumeARN is a required field
12829	VolumeARN *string `min:"50" type:"string" required:"true"`
12830}
12831
12832// String returns the string representation
12833func (s DeleteSnapshotScheduleInput) String() string {
12834	return awsutil.Prettify(s)
12835}
12836
12837// GoString returns the string representation
12838func (s DeleteSnapshotScheduleInput) GoString() string {
12839	return s.String()
12840}
12841
12842// Validate inspects the fields of the type to determine if they are valid.
12843func (s *DeleteSnapshotScheduleInput) Validate() error {
12844	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotScheduleInput"}
12845	if s.VolumeARN == nil {
12846		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
12847	}
12848	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
12849		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
12850	}
12851
12852	if invalidParams.Len() > 0 {
12853		return invalidParams
12854	}
12855	return nil
12856}
12857
12858// SetVolumeARN sets the VolumeARN field's value.
12859func (s *DeleteSnapshotScheduleInput) SetVolumeARN(v string) *DeleteSnapshotScheduleInput {
12860	s.VolumeARN = &v
12861	return s
12862}
12863
12864type DeleteSnapshotScheduleOutput struct {
12865	_ struct{} `type:"structure"`
12866
12867	// The volume which snapshot schedule was deleted.
12868	VolumeARN *string `min:"50" type:"string"`
12869}
12870
12871// String returns the string representation
12872func (s DeleteSnapshotScheduleOutput) String() string {
12873	return awsutil.Prettify(s)
12874}
12875
12876// GoString returns the string representation
12877func (s DeleteSnapshotScheduleOutput) GoString() string {
12878	return s.String()
12879}
12880
12881// SetVolumeARN sets the VolumeARN field's value.
12882func (s *DeleteSnapshotScheduleOutput) SetVolumeARN(v string) *DeleteSnapshotScheduleOutput {
12883	s.VolumeARN = &v
12884	return s
12885}
12886
12887// DeleteTapeArchiveInput
12888type DeleteTapeArchiveInput struct {
12889	_ struct{} `type:"structure"`
12890
12891	// Set to TRUE to delete an archived tape that belongs to a custom pool with
12892	// tape retention lock. Only archived tapes with tape retention lock set to
12893	// governance can be deleted. Archived tapes with tape retention lock set to
12894	// compliance can't be deleted.
12895	BypassGovernanceRetention *bool `type:"boolean"`
12896
12897	// The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual
12898	// tape shelf (VTS).
12899	//
12900	// TapeARN is a required field
12901	TapeARN *string `min:"50" type:"string" required:"true"`
12902}
12903
12904// String returns the string representation
12905func (s DeleteTapeArchiveInput) String() string {
12906	return awsutil.Prettify(s)
12907}
12908
12909// GoString returns the string representation
12910func (s DeleteTapeArchiveInput) GoString() string {
12911	return s.String()
12912}
12913
12914// Validate inspects the fields of the type to determine if they are valid.
12915func (s *DeleteTapeArchiveInput) Validate() error {
12916	invalidParams := request.ErrInvalidParams{Context: "DeleteTapeArchiveInput"}
12917	if s.TapeARN == nil {
12918		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
12919	}
12920	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
12921		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
12922	}
12923
12924	if invalidParams.Len() > 0 {
12925		return invalidParams
12926	}
12927	return nil
12928}
12929
12930// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
12931func (s *DeleteTapeArchiveInput) SetBypassGovernanceRetention(v bool) *DeleteTapeArchiveInput {
12932	s.BypassGovernanceRetention = &v
12933	return s
12934}
12935
12936// SetTapeARN sets the TapeARN field's value.
12937func (s *DeleteTapeArchiveInput) SetTapeARN(v string) *DeleteTapeArchiveInput {
12938	s.TapeARN = &v
12939	return s
12940}
12941
12942// DeleteTapeArchiveOutput
12943type DeleteTapeArchiveOutput struct {
12944	_ struct{} `type:"structure"`
12945
12946	// The Amazon Resource Name (ARN) of the virtual tape that was deleted from
12947	// the virtual tape shelf (VTS).
12948	TapeARN *string `min:"50" type:"string"`
12949}
12950
12951// String returns the string representation
12952func (s DeleteTapeArchiveOutput) String() string {
12953	return awsutil.Prettify(s)
12954}
12955
12956// GoString returns the string representation
12957func (s DeleteTapeArchiveOutput) GoString() string {
12958	return s.String()
12959}
12960
12961// SetTapeARN sets the TapeARN field's value.
12962func (s *DeleteTapeArchiveOutput) SetTapeARN(v string) *DeleteTapeArchiveOutput {
12963	s.TapeARN = &v
12964	return s
12965}
12966
12967// DeleteTapeInput
12968type DeleteTapeInput struct {
12969	_ struct{} `type:"structure"`
12970
12971	// Set to TRUE to delete an archived tape that belongs to a custom pool with
12972	// tape retention lock. Only archived tapes with tape retention lock set to
12973	// governance can be deleted. Archived tapes with tape retention lock set to
12974	// compliance can't be deleted.
12975	BypassGovernanceRetention *bool `type:"boolean"`
12976
12977	// The unique Amazon Resource Name (ARN) of the gateway that the virtual tape
12978	// to delete is associated with. Use the ListGateways operation to return a
12979	// list of gateways for your account and AWS Region.
12980	//
12981	// GatewayARN is a required field
12982	GatewayARN *string `min:"50" type:"string" required:"true"`
12983
12984	// The Amazon Resource Name (ARN) of the virtual tape to delete.
12985	//
12986	// TapeARN is a required field
12987	TapeARN *string `min:"50" type:"string" required:"true"`
12988}
12989
12990// String returns the string representation
12991func (s DeleteTapeInput) String() string {
12992	return awsutil.Prettify(s)
12993}
12994
12995// GoString returns the string representation
12996func (s DeleteTapeInput) GoString() string {
12997	return s.String()
12998}
12999
13000// Validate inspects the fields of the type to determine if they are valid.
13001func (s *DeleteTapeInput) Validate() error {
13002	invalidParams := request.ErrInvalidParams{Context: "DeleteTapeInput"}
13003	if s.GatewayARN == nil {
13004		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13005	}
13006	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13007		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13008	}
13009	if s.TapeARN == nil {
13010		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
13011	}
13012	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
13013		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
13014	}
13015
13016	if invalidParams.Len() > 0 {
13017		return invalidParams
13018	}
13019	return nil
13020}
13021
13022// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
13023func (s *DeleteTapeInput) SetBypassGovernanceRetention(v bool) *DeleteTapeInput {
13024	s.BypassGovernanceRetention = &v
13025	return s
13026}
13027
13028// SetGatewayARN sets the GatewayARN field's value.
13029func (s *DeleteTapeInput) SetGatewayARN(v string) *DeleteTapeInput {
13030	s.GatewayARN = &v
13031	return s
13032}
13033
13034// SetTapeARN sets the TapeARN field's value.
13035func (s *DeleteTapeInput) SetTapeARN(v string) *DeleteTapeInput {
13036	s.TapeARN = &v
13037	return s
13038}
13039
13040// DeleteTapeOutput
13041type DeleteTapeOutput struct {
13042	_ struct{} `type:"structure"`
13043
13044	// The Amazon Resource Name (ARN) of the deleted virtual tape.
13045	TapeARN *string `min:"50" type:"string"`
13046}
13047
13048// String returns the string representation
13049func (s DeleteTapeOutput) String() string {
13050	return awsutil.Prettify(s)
13051}
13052
13053// GoString returns the string representation
13054func (s DeleteTapeOutput) GoString() string {
13055	return s.String()
13056}
13057
13058// SetTapeARN sets the TapeARN field's value.
13059func (s *DeleteTapeOutput) SetTapeARN(v string) *DeleteTapeOutput {
13060	s.TapeARN = &v
13061	return s
13062}
13063
13064type DeleteTapePoolInput struct {
13065	_ struct{} `type:"structure"`
13066
13067	// The Amazon Resource Name (ARN) of the custom tape pool to delete.
13068	//
13069	// PoolARN is a required field
13070	PoolARN *string `min:"50" type:"string" required:"true"`
13071}
13072
13073// String returns the string representation
13074func (s DeleteTapePoolInput) String() string {
13075	return awsutil.Prettify(s)
13076}
13077
13078// GoString returns the string representation
13079func (s DeleteTapePoolInput) GoString() string {
13080	return s.String()
13081}
13082
13083// Validate inspects the fields of the type to determine if they are valid.
13084func (s *DeleteTapePoolInput) Validate() error {
13085	invalidParams := request.ErrInvalidParams{Context: "DeleteTapePoolInput"}
13086	if s.PoolARN == nil {
13087		invalidParams.Add(request.NewErrParamRequired("PoolARN"))
13088	}
13089	if s.PoolARN != nil && len(*s.PoolARN) < 50 {
13090		invalidParams.Add(request.NewErrParamMinLen("PoolARN", 50))
13091	}
13092
13093	if invalidParams.Len() > 0 {
13094		return invalidParams
13095	}
13096	return nil
13097}
13098
13099// SetPoolARN sets the PoolARN field's value.
13100func (s *DeleteTapePoolInput) SetPoolARN(v string) *DeleteTapePoolInput {
13101	s.PoolARN = &v
13102	return s
13103}
13104
13105type DeleteTapePoolOutput struct {
13106	_ struct{} `type:"structure"`
13107
13108	// The Amazon Resource Name (ARN) of the custom tape pool being deleted.
13109	PoolARN *string `min:"50" type:"string"`
13110}
13111
13112// String returns the string representation
13113func (s DeleteTapePoolOutput) String() string {
13114	return awsutil.Prettify(s)
13115}
13116
13117// GoString returns the string representation
13118func (s DeleteTapePoolOutput) GoString() string {
13119	return s.String()
13120}
13121
13122// SetPoolARN sets the PoolARN field's value.
13123func (s *DeleteTapePoolOutput) SetPoolARN(v string) *DeleteTapePoolOutput {
13124	s.PoolARN = &v
13125	return s
13126}
13127
13128// A JSON object containing the DeleteVolumeInput$VolumeARN to delete.
13129type DeleteVolumeInput struct {
13130	_ struct{} `type:"structure"`
13131
13132	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
13133	// to return a list of gateway volumes.
13134	//
13135	// VolumeARN is a required field
13136	VolumeARN *string `min:"50" type:"string" required:"true"`
13137}
13138
13139// String returns the string representation
13140func (s DeleteVolumeInput) String() string {
13141	return awsutil.Prettify(s)
13142}
13143
13144// GoString returns the string representation
13145func (s DeleteVolumeInput) GoString() string {
13146	return s.String()
13147}
13148
13149// Validate inspects the fields of the type to determine if they are valid.
13150func (s *DeleteVolumeInput) Validate() error {
13151	invalidParams := request.ErrInvalidParams{Context: "DeleteVolumeInput"}
13152	if s.VolumeARN == nil {
13153		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
13154	}
13155	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
13156		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
13157	}
13158
13159	if invalidParams.Len() > 0 {
13160		return invalidParams
13161	}
13162	return nil
13163}
13164
13165// SetVolumeARN sets the VolumeARN field's value.
13166func (s *DeleteVolumeInput) SetVolumeARN(v string) *DeleteVolumeInput {
13167	s.VolumeARN = &v
13168	return s
13169}
13170
13171// A JSON object containing the Amazon Resource Name (ARN) of the storage volume
13172// that was deleted.
13173type DeleteVolumeOutput struct {
13174	_ struct{} `type:"structure"`
13175
13176	// The Amazon Resource Name (ARN) of the storage volume that was deleted. It
13177	// is the same ARN you provided in the request.
13178	VolumeARN *string `min:"50" type:"string"`
13179}
13180
13181// String returns the string representation
13182func (s DeleteVolumeOutput) String() string {
13183	return awsutil.Prettify(s)
13184}
13185
13186// GoString returns the string representation
13187func (s DeleteVolumeOutput) GoString() string {
13188	return s.String()
13189}
13190
13191// SetVolumeARN sets the VolumeARN field's value.
13192func (s *DeleteVolumeOutput) SetVolumeARN(v string) *DeleteVolumeOutput {
13193	s.VolumeARN = &v
13194	return s
13195}
13196
13197type DescribeAvailabilityMonitorTestInput struct {
13198	_ struct{} `type:"structure"`
13199
13200	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13201	// to return a list of gateways for your account and AWS Region.
13202	//
13203	// GatewayARN is a required field
13204	GatewayARN *string `min:"50" type:"string" required:"true"`
13205}
13206
13207// String returns the string representation
13208func (s DescribeAvailabilityMonitorTestInput) String() string {
13209	return awsutil.Prettify(s)
13210}
13211
13212// GoString returns the string representation
13213func (s DescribeAvailabilityMonitorTestInput) GoString() string {
13214	return s.String()
13215}
13216
13217// Validate inspects the fields of the type to determine if they are valid.
13218func (s *DescribeAvailabilityMonitorTestInput) Validate() error {
13219	invalidParams := request.ErrInvalidParams{Context: "DescribeAvailabilityMonitorTestInput"}
13220	if s.GatewayARN == nil {
13221		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13222	}
13223	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13224		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13225	}
13226
13227	if invalidParams.Len() > 0 {
13228		return invalidParams
13229	}
13230	return nil
13231}
13232
13233// SetGatewayARN sets the GatewayARN field's value.
13234func (s *DescribeAvailabilityMonitorTestInput) SetGatewayARN(v string) *DescribeAvailabilityMonitorTestInput {
13235	s.GatewayARN = &v
13236	return s
13237}
13238
13239type DescribeAvailabilityMonitorTestOutput struct {
13240	_ struct{} `type:"structure"`
13241
13242	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13243	// to return a list of gateways for your account and AWS Region.
13244	GatewayARN *string `min:"50" type:"string"`
13245
13246	// The time the high availability monitoring test was started. If a test hasn't
13247	// been performed, the value of this field is null.
13248	StartTime *time.Time `type:"timestamp"`
13249
13250	// The status of the high availability monitoring test. If a test hasn't been
13251	// performed, the value of this field is null.
13252	Status *string `type:"string" enum:"AvailabilityMonitorTestStatus"`
13253}
13254
13255// String returns the string representation
13256func (s DescribeAvailabilityMonitorTestOutput) String() string {
13257	return awsutil.Prettify(s)
13258}
13259
13260// GoString returns the string representation
13261func (s DescribeAvailabilityMonitorTestOutput) GoString() string {
13262	return s.String()
13263}
13264
13265// SetGatewayARN sets the GatewayARN field's value.
13266func (s *DescribeAvailabilityMonitorTestOutput) SetGatewayARN(v string) *DescribeAvailabilityMonitorTestOutput {
13267	s.GatewayARN = &v
13268	return s
13269}
13270
13271// SetStartTime sets the StartTime field's value.
13272func (s *DescribeAvailabilityMonitorTestOutput) SetStartTime(v time.Time) *DescribeAvailabilityMonitorTestOutput {
13273	s.StartTime = &v
13274	return s
13275}
13276
13277// SetStatus sets the Status field's value.
13278func (s *DescribeAvailabilityMonitorTestOutput) SetStatus(v string) *DescribeAvailabilityMonitorTestOutput {
13279	s.Status = &v
13280	return s
13281}
13282
13283// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
13284type DescribeBandwidthRateLimitInput struct {
13285	_ struct{} `type:"structure"`
13286
13287	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13288	// to return a list of gateways for your account and AWS Region.
13289	//
13290	// GatewayARN is a required field
13291	GatewayARN *string `min:"50" type:"string" required:"true"`
13292}
13293
13294// String returns the string representation
13295func (s DescribeBandwidthRateLimitInput) String() string {
13296	return awsutil.Prettify(s)
13297}
13298
13299// GoString returns the string representation
13300func (s DescribeBandwidthRateLimitInput) GoString() string {
13301	return s.String()
13302}
13303
13304// Validate inspects the fields of the type to determine if they are valid.
13305func (s *DescribeBandwidthRateLimitInput) Validate() error {
13306	invalidParams := request.ErrInvalidParams{Context: "DescribeBandwidthRateLimitInput"}
13307	if s.GatewayARN == nil {
13308		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13309	}
13310	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13311		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13312	}
13313
13314	if invalidParams.Len() > 0 {
13315		return invalidParams
13316	}
13317	return nil
13318}
13319
13320// SetGatewayARN sets the GatewayARN field's value.
13321func (s *DescribeBandwidthRateLimitInput) SetGatewayARN(v string) *DescribeBandwidthRateLimitInput {
13322	s.GatewayARN = &v
13323	return s
13324}
13325
13326// A JSON object containing the following fields:
13327type DescribeBandwidthRateLimitOutput struct {
13328	_ struct{} `type:"structure"`
13329
13330	// The average download bandwidth rate limit in bits per second. This field
13331	// does not appear in the response if the download rate limit is not set.
13332	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
13333
13334	// The average upload bandwidth rate limit in bits per second. This field does
13335	// not appear in the response if the upload rate limit is not set.
13336	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
13337
13338	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13339	// to return a list of gateways for your account and AWS Region.
13340	GatewayARN *string `min:"50" type:"string"`
13341}
13342
13343// String returns the string representation
13344func (s DescribeBandwidthRateLimitOutput) String() string {
13345	return awsutil.Prettify(s)
13346}
13347
13348// GoString returns the string representation
13349func (s DescribeBandwidthRateLimitOutput) GoString() string {
13350	return s.String()
13351}
13352
13353// SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
13354func (s *DescribeBandwidthRateLimitOutput) SetAverageDownloadRateLimitInBitsPerSec(v int64) *DescribeBandwidthRateLimitOutput {
13355	s.AverageDownloadRateLimitInBitsPerSec = &v
13356	return s
13357}
13358
13359// SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
13360func (s *DescribeBandwidthRateLimitOutput) SetAverageUploadRateLimitInBitsPerSec(v int64) *DescribeBandwidthRateLimitOutput {
13361	s.AverageUploadRateLimitInBitsPerSec = &v
13362	return s
13363}
13364
13365// SetGatewayARN sets the GatewayARN field's value.
13366func (s *DescribeBandwidthRateLimitOutput) SetGatewayARN(v string) *DescribeBandwidthRateLimitOutput {
13367	s.GatewayARN = &v
13368	return s
13369}
13370
13371type DescribeBandwidthRateLimitScheduleInput struct {
13372	_ struct{} `type:"structure"`
13373
13374	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13375	// to return a list of gateways for your account and AWS Region.
13376	//
13377	// GatewayARN is a required field
13378	GatewayARN *string `min:"50" type:"string" required:"true"`
13379}
13380
13381// String returns the string representation
13382func (s DescribeBandwidthRateLimitScheduleInput) String() string {
13383	return awsutil.Prettify(s)
13384}
13385
13386// GoString returns the string representation
13387func (s DescribeBandwidthRateLimitScheduleInput) GoString() string {
13388	return s.String()
13389}
13390
13391// Validate inspects the fields of the type to determine if they are valid.
13392func (s *DescribeBandwidthRateLimitScheduleInput) Validate() error {
13393	invalidParams := request.ErrInvalidParams{Context: "DescribeBandwidthRateLimitScheduleInput"}
13394	if s.GatewayARN == nil {
13395		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13396	}
13397	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13398		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13399	}
13400
13401	if invalidParams.Len() > 0 {
13402		return invalidParams
13403	}
13404	return nil
13405}
13406
13407// SetGatewayARN sets the GatewayARN field's value.
13408func (s *DescribeBandwidthRateLimitScheduleInput) SetGatewayARN(v string) *DescribeBandwidthRateLimitScheduleInput {
13409	s.GatewayARN = &v
13410	return s
13411}
13412
13413type DescribeBandwidthRateLimitScheduleOutput struct {
13414	_ struct{} `type:"structure"`
13415
13416	// An array that contains the bandwidth rate limit intervals for a tape or volume
13417	// gateway.
13418	BandwidthRateLimitIntervals []*BandwidthRateLimitInterval `type:"list"`
13419
13420	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13421	// to return a list of gateways for your account and AWS Region.
13422	GatewayARN *string `min:"50" type:"string"`
13423}
13424
13425// String returns the string representation
13426func (s DescribeBandwidthRateLimitScheduleOutput) String() string {
13427	return awsutil.Prettify(s)
13428}
13429
13430// GoString returns the string representation
13431func (s DescribeBandwidthRateLimitScheduleOutput) GoString() string {
13432	return s.String()
13433}
13434
13435// SetBandwidthRateLimitIntervals sets the BandwidthRateLimitIntervals field's value.
13436func (s *DescribeBandwidthRateLimitScheduleOutput) SetBandwidthRateLimitIntervals(v []*BandwidthRateLimitInterval) *DescribeBandwidthRateLimitScheduleOutput {
13437	s.BandwidthRateLimitIntervals = v
13438	return s
13439}
13440
13441// SetGatewayARN sets the GatewayARN field's value.
13442func (s *DescribeBandwidthRateLimitScheduleOutput) SetGatewayARN(v string) *DescribeBandwidthRateLimitScheduleOutput {
13443	s.GatewayARN = &v
13444	return s
13445}
13446
13447type DescribeCacheInput struct {
13448	_ struct{} `type:"structure"`
13449
13450	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13451	// to return a list of gateways for your account and AWS Region.
13452	//
13453	// GatewayARN is a required field
13454	GatewayARN *string `min:"50" type:"string" required:"true"`
13455}
13456
13457// String returns the string representation
13458func (s DescribeCacheInput) String() string {
13459	return awsutil.Prettify(s)
13460}
13461
13462// GoString returns the string representation
13463func (s DescribeCacheInput) GoString() string {
13464	return s.String()
13465}
13466
13467// Validate inspects the fields of the type to determine if they are valid.
13468func (s *DescribeCacheInput) Validate() error {
13469	invalidParams := request.ErrInvalidParams{Context: "DescribeCacheInput"}
13470	if s.GatewayARN == nil {
13471		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13472	}
13473	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13474		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13475	}
13476
13477	if invalidParams.Len() > 0 {
13478		return invalidParams
13479	}
13480	return nil
13481}
13482
13483// SetGatewayARN sets the GatewayARN field's value.
13484func (s *DescribeCacheInput) SetGatewayARN(v string) *DescribeCacheInput {
13485	s.GatewayARN = &v
13486	return s
13487}
13488
13489type DescribeCacheOutput struct {
13490	_ struct{} `type:"structure"`
13491
13492	// The amount of cache in bytes allocated to a gateway.
13493	CacheAllocatedInBytes *int64 `type:"long"`
13494
13495	// The file share's contribution to the overall percentage of the gateway's
13496	// cache that has not been persisted to AWS. The sample is taken at the end
13497	// of the reporting period.
13498	CacheDirtyPercentage *float64 `type:"double"`
13499
13500	// Percent of application read operations from the file shares that are served
13501	// from cache. The sample is taken at the end of the reporting period.
13502	CacheHitPercentage *float64 `type:"double"`
13503
13504	// Percent of application read operations from the file shares that are not
13505	// served from cache. The sample is taken at the end of the reporting period.
13506	CacheMissPercentage *float64 `type:"double"`
13507
13508	// Percent use of the gateway's cache storage. This metric applies only to the
13509	// gateway-cached volume setup. The sample is taken at the end of the reporting
13510	// period.
13511	CacheUsedPercentage *float64 `type:"double"`
13512
13513	// An array of strings that identify disks that are to be configured as working
13514	// storage. Each string has a minimum length of 1 and maximum length of 300.
13515	// You can get the disk IDs from the ListLocalDisks API.
13516	DiskIds []*string `type:"list"`
13517
13518	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13519	// to return a list of gateways for your account and AWS Region.
13520	GatewayARN *string `min:"50" type:"string"`
13521}
13522
13523// String returns the string representation
13524func (s DescribeCacheOutput) String() string {
13525	return awsutil.Prettify(s)
13526}
13527
13528// GoString returns the string representation
13529func (s DescribeCacheOutput) GoString() string {
13530	return s.String()
13531}
13532
13533// SetCacheAllocatedInBytes sets the CacheAllocatedInBytes field's value.
13534func (s *DescribeCacheOutput) SetCacheAllocatedInBytes(v int64) *DescribeCacheOutput {
13535	s.CacheAllocatedInBytes = &v
13536	return s
13537}
13538
13539// SetCacheDirtyPercentage sets the CacheDirtyPercentage field's value.
13540func (s *DescribeCacheOutput) SetCacheDirtyPercentage(v float64) *DescribeCacheOutput {
13541	s.CacheDirtyPercentage = &v
13542	return s
13543}
13544
13545// SetCacheHitPercentage sets the CacheHitPercentage field's value.
13546func (s *DescribeCacheOutput) SetCacheHitPercentage(v float64) *DescribeCacheOutput {
13547	s.CacheHitPercentage = &v
13548	return s
13549}
13550
13551// SetCacheMissPercentage sets the CacheMissPercentage field's value.
13552func (s *DescribeCacheOutput) SetCacheMissPercentage(v float64) *DescribeCacheOutput {
13553	s.CacheMissPercentage = &v
13554	return s
13555}
13556
13557// SetCacheUsedPercentage sets the CacheUsedPercentage field's value.
13558func (s *DescribeCacheOutput) SetCacheUsedPercentage(v float64) *DescribeCacheOutput {
13559	s.CacheUsedPercentage = &v
13560	return s
13561}
13562
13563// SetDiskIds sets the DiskIds field's value.
13564func (s *DescribeCacheOutput) SetDiskIds(v []*string) *DescribeCacheOutput {
13565	s.DiskIds = v
13566	return s
13567}
13568
13569// SetGatewayARN sets the GatewayARN field's value.
13570func (s *DescribeCacheOutput) SetGatewayARN(v string) *DescribeCacheOutput {
13571	s.GatewayARN = &v
13572	return s
13573}
13574
13575type DescribeCachediSCSIVolumesInput struct {
13576	_ struct{} `type:"structure"`
13577
13578	// An array of strings where each string represents the Amazon Resource Name
13579	// (ARN) of a cached volume. All of the specified cached volumes must be from
13580	// the same gateway. Use ListVolumes to get volume ARNs for a gateway.
13581	//
13582	// VolumeARNs is a required field
13583	VolumeARNs []*string `type:"list" required:"true"`
13584}
13585
13586// String returns the string representation
13587func (s DescribeCachediSCSIVolumesInput) String() string {
13588	return awsutil.Prettify(s)
13589}
13590
13591// GoString returns the string representation
13592func (s DescribeCachediSCSIVolumesInput) GoString() string {
13593	return s.String()
13594}
13595
13596// Validate inspects the fields of the type to determine if they are valid.
13597func (s *DescribeCachediSCSIVolumesInput) Validate() error {
13598	invalidParams := request.ErrInvalidParams{Context: "DescribeCachediSCSIVolumesInput"}
13599	if s.VolumeARNs == nil {
13600		invalidParams.Add(request.NewErrParamRequired("VolumeARNs"))
13601	}
13602
13603	if invalidParams.Len() > 0 {
13604		return invalidParams
13605	}
13606	return nil
13607}
13608
13609// SetVolumeARNs sets the VolumeARNs field's value.
13610func (s *DescribeCachediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeCachediSCSIVolumesInput {
13611	s.VolumeARNs = v
13612	return s
13613}
13614
13615// A JSON object containing the following fields:
13616type DescribeCachediSCSIVolumesOutput struct {
13617	_ struct{} `type:"structure"`
13618
13619	// An array of objects where each object contains metadata about one cached
13620	// volume.
13621	CachediSCSIVolumes []*CachediSCSIVolume `type:"list"`
13622}
13623
13624// String returns the string representation
13625func (s DescribeCachediSCSIVolumesOutput) String() string {
13626	return awsutil.Prettify(s)
13627}
13628
13629// GoString returns the string representation
13630func (s DescribeCachediSCSIVolumesOutput) GoString() string {
13631	return s.String()
13632}
13633
13634// SetCachediSCSIVolumes sets the CachediSCSIVolumes field's value.
13635func (s *DescribeCachediSCSIVolumesOutput) SetCachediSCSIVolumes(v []*CachediSCSIVolume) *DescribeCachediSCSIVolumesOutput {
13636	s.CachediSCSIVolumes = v
13637	return s
13638}
13639
13640// A JSON object containing the Amazon Resource Name (ARN) of the iSCSI volume
13641// target.
13642type DescribeChapCredentialsInput struct {
13643	_ struct{} `type:"structure"`
13644
13645	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
13646	// operation to return to retrieve the TargetARN for specified VolumeARN.
13647	//
13648	// TargetARN is a required field
13649	TargetARN *string `min:"50" type:"string" required:"true"`
13650}
13651
13652// String returns the string representation
13653func (s DescribeChapCredentialsInput) String() string {
13654	return awsutil.Prettify(s)
13655}
13656
13657// GoString returns the string representation
13658func (s DescribeChapCredentialsInput) GoString() string {
13659	return s.String()
13660}
13661
13662// Validate inspects the fields of the type to determine if they are valid.
13663func (s *DescribeChapCredentialsInput) Validate() error {
13664	invalidParams := request.ErrInvalidParams{Context: "DescribeChapCredentialsInput"}
13665	if s.TargetARN == nil {
13666		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
13667	}
13668	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
13669		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
13670	}
13671
13672	if invalidParams.Len() > 0 {
13673		return invalidParams
13674	}
13675	return nil
13676}
13677
13678// SetTargetARN sets the TargetARN field's value.
13679func (s *DescribeChapCredentialsInput) SetTargetARN(v string) *DescribeChapCredentialsInput {
13680	s.TargetARN = &v
13681	return s
13682}
13683
13684// A JSON object containing the following fields:
13685type DescribeChapCredentialsOutput struct {
13686	_ struct{} `type:"structure"`
13687
13688	// An array of ChapInfo objects that represent CHAP credentials. Each object
13689	// in the array contains CHAP credential information for one target-initiator
13690	// pair. If no CHAP credentials are set, an empty array is returned. CHAP credential
13691	// information is provided in a JSON object with the following fields:
13692	//
13693	//    * InitiatorName: The iSCSI initiator that connects to the target.
13694	//
13695	//    * SecretToAuthenticateInitiator: The secret key that the initiator (for
13696	//    example, the Windows client) must provide to participate in mutual CHAP
13697	//    with the target.
13698	//
13699	//    * SecretToAuthenticateTarget: The secret key that the target must provide
13700	//    to participate in mutual CHAP with the initiator (e.g. Windows client).
13701	//
13702	//    * TargetARN: The Amazon Resource Name (ARN) of the storage volume.
13703	ChapCredentials []*ChapInfo `type:"list"`
13704}
13705
13706// String returns the string representation
13707func (s DescribeChapCredentialsOutput) String() string {
13708	return awsutil.Prettify(s)
13709}
13710
13711// GoString returns the string representation
13712func (s DescribeChapCredentialsOutput) GoString() string {
13713	return s.String()
13714}
13715
13716// SetChapCredentials sets the ChapCredentials field's value.
13717func (s *DescribeChapCredentialsOutput) SetChapCredentials(v []*ChapInfo) *DescribeChapCredentialsOutput {
13718	s.ChapCredentials = v
13719	return s
13720}
13721
13722type DescribeFileSystemAssociationsInput struct {
13723	_ struct{} `type:"structure"`
13724
13725	// An array containing the Amazon Resource Name (ARN) of each file system association
13726	// to be described.
13727	//
13728	// FileSystemAssociationARNList is a required field
13729	FileSystemAssociationARNList []*string `min:"1" type:"list" required:"true"`
13730}
13731
13732// String returns the string representation
13733func (s DescribeFileSystemAssociationsInput) String() string {
13734	return awsutil.Prettify(s)
13735}
13736
13737// GoString returns the string representation
13738func (s DescribeFileSystemAssociationsInput) GoString() string {
13739	return s.String()
13740}
13741
13742// Validate inspects the fields of the type to determine if they are valid.
13743func (s *DescribeFileSystemAssociationsInput) Validate() error {
13744	invalidParams := request.ErrInvalidParams{Context: "DescribeFileSystemAssociationsInput"}
13745	if s.FileSystemAssociationARNList == nil {
13746		invalidParams.Add(request.NewErrParamRequired("FileSystemAssociationARNList"))
13747	}
13748	if s.FileSystemAssociationARNList != nil && len(s.FileSystemAssociationARNList) < 1 {
13749		invalidParams.Add(request.NewErrParamMinLen("FileSystemAssociationARNList", 1))
13750	}
13751
13752	if invalidParams.Len() > 0 {
13753		return invalidParams
13754	}
13755	return nil
13756}
13757
13758// SetFileSystemAssociationARNList sets the FileSystemAssociationARNList field's value.
13759func (s *DescribeFileSystemAssociationsInput) SetFileSystemAssociationARNList(v []*string) *DescribeFileSystemAssociationsInput {
13760	s.FileSystemAssociationARNList = v
13761	return s
13762}
13763
13764type DescribeFileSystemAssociationsOutput struct {
13765	_ struct{} `type:"structure"`
13766
13767	// An array containing the FileSystemAssociationInfo data type of each file
13768	// system association to be described.
13769	FileSystemAssociationInfoList []*FileSystemAssociationInfo `type:"list"`
13770}
13771
13772// String returns the string representation
13773func (s DescribeFileSystemAssociationsOutput) String() string {
13774	return awsutil.Prettify(s)
13775}
13776
13777// GoString returns the string representation
13778func (s DescribeFileSystemAssociationsOutput) GoString() string {
13779	return s.String()
13780}
13781
13782// SetFileSystemAssociationInfoList sets the FileSystemAssociationInfoList field's value.
13783func (s *DescribeFileSystemAssociationsOutput) SetFileSystemAssociationInfoList(v []*FileSystemAssociationInfo) *DescribeFileSystemAssociationsOutput {
13784	s.FileSystemAssociationInfoList = v
13785	return s
13786}
13787
13788// A JSON object containing the ID of the gateway.
13789type DescribeGatewayInformationInput struct {
13790	_ struct{} `type:"structure"`
13791
13792	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13793	// to return a list of gateways for your account and AWS Region.
13794	//
13795	// GatewayARN is a required field
13796	GatewayARN *string `min:"50" type:"string" required:"true"`
13797}
13798
13799// String returns the string representation
13800func (s DescribeGatewayInformationInput) String() string {
13801	return awsutil.Prettify(s)
13802}
13803
13804// GoString returns the string representation
13805func (s DescribeGatewayInformationInput) GoString() string {
13806	return s.String()
13807}
13808
13809// Validate inspects the fields of the type to determine if they are valid.
13810func (s *DescribeGatewayInformationInput) Validate() error {
13811	invalidParams := request.ErrInvalidParams{Context: "DescribeGatewayInformationInput"}
13812	if s.GatewayARN == nil {
13813		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13814	}
13815	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13816		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13817	}
13818
13819	if invalidParams.Len() > 0 {
13820		return invalidParams
13821	}
13822	return nil
13823}
13824
13825// SetGatewayARN sets the GatewayARN field's value.
13826func (s *DescribeGatewayInformationInput) SetGatewayARN(v string) *DescribeGatewayInformationInput {
13827	s.GatewayARN = &v
13828	return s
13829}
13830
13831// A JSON object containing the following fields:
13832type DescribeGatewayInformationOutput struct {
13833	_ struct{} `type:"structure"`
13834
13835	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is
13836	// used to monitor events in the gateway.
13837	CloudWatchLogGroupARN *string `type:"string"`
13838
13839	// Date after which this gateway will not receive software updates for new features
13840	// and bug fixes.
13841	DeprecationDate *string `min:"1" type:"string"`
13842
13843	// The ID of the Amazon EC2 instance that was used to launch the gateway.
13844	Ec2InstanceId *string `type:"string"`
13845
13846	// The AWS Region where the Amazon EC2 instance is located.
13847	Ec2InstanceRegion *string `type:"string"`
13848
13849	// The type of endpoint for your gateway.
13850	//
13851	// Valid Values: STANDARD | FIPS
13852	EndpointType *string `min:"4" type:"string"`
13853
13854	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13855	// to return a list of gateways for your account and AWS Region.
13856	GatewayARN *string `min:"50" type:"string"`
13857
13858	// The unique identifier assigned to your gateway during activation. This ID
13859	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
13860	// input for other operations.
13861	GatewayId *string `min:"12" type:"string"`
13862
13863	// The name you configured for your gateway.
13864	GatewayName *string `type:"string"`
13865
13866	// A NetworkInterface array that contains descriptions of the gateway network
13867	// interfaces.
13868	GatewayNetworkInterfaces []*NetworkInterface `type:"list"`
13869
13870	// A value that indicates the operating state of the gateway.
13871	GatewayState *string `min:"2" type:"string"`
13872
13873	// A value that indicates the time zone configured for the gateway.
13874	GatewayTimezone *string `min:"3" type:"string"`
13875
13876	// The type of the gateway.
13877	GatewayType *string `min:"2" type:"string"`
13878
13879	// The type of hypervisor environment used by the host.
13880	HostEnvironment *string `type:"string" enum:"HostEnvironment"`
13881
13882	// The date on which the last software update was applied to the gateway. If
13883	// the gateway has never been updated, this field does not return a value in
13884	// the response.
13885	LastSoftwareUpdate *string `min:"1" type:"string"`
13886
13887	// The date on which an update to the gateway is available. This date is in
13888	// the time zone of the gateway. If the gateway is not available for an update
13889	// this field is not returned in the response.
13890	NextUpdateAvailabilityDate *string `min:"1" type:"string"`
13891
13892	// Date after which this gateway will not receive software updates for new features.
13893	SoftwareUpdatesEndDate *string `min:"1" type:"string"`
13894
13895	// A list of up to 50 tags assigned to the gateway, sorted alphabetically by
13896	// key name. Each tag is a key-value pair. For a gateway with more than 10 tags
13897	// assigned, you can view all tags using the ListTagsForResource API operation.
13898	Tags []*Tag `type:"list"`
13899
13900	// The configuration settings for the virtual private cloud (VPC) endpoint for
13901	// your gateway.
13902	VPCEndpoint *string `type:"string"`
13903}
13904
13905// String returns the string representation
13906func (s DescribeGatewayInformationOutput) String() string {
13907	return awsutil.Prettify(s)
13908}
13909
13910// GoString returns the string representation
13911func (s DescribeGatewayInformationOutput) GoString() string {
13912	return s.String()
13913}
13914
13915// SetCloudWatchLogGroupARN sets the CloudWatchLogGroupARN field's value.
13916func (s *DescribeGatewayInformationOutput) SetCloudWatchLogGroupARN(v string) *DescribeGatewayInformationOutput {
13917	s.CloudWatchLogGroupARN = &v
13918	return s
13919}
13920
13921// SetDeprecationDate sets the DeprecationDate field's value.
13922func (s *DescribeGatewayInformationOutput) SetDeprecationDate(v string) *DescribeGatewayInformationOutput {
13923	s.DeprecationDate = &v
13924	return s
13925}
13926
13927// SetEc2InstanceId sets the Ec2InstanceId field's value.
13928func (s *DescribeGatewayInformationOutput) SetEc2InstanceId(v string) *DescribeGatewayInformationOutput {
13929	s.Ec2InstanceId = &v
13930	return s
13931}
13932
13933// SetEc2InstanceRegion sets the Ec2InstanceRegion field's value.
13934func (s *DescribeGatewayInformationOutput) SetEc2InstanceRegion(v string) *DescribeGatewayInformationOutput {
13935	s.Ec2InstanceRegion = &v
13936	return s
13937}
13938
13939// SetEndpointType sets the EndpointType field's value.
13940func (s *DescribeGatewayInformationOutput) SetEndpointType(v string) *DescribeGatewayInformationOutput {
13941	s.EndpointType = &v
13942	return s
13943}
13944
13945// SetGatewayARN sets the GatewayARN field's value.
13946func (s *DescribeGatewayInformationOutput) SetGatewayARN(v string) *DescribeGatewayInformationOutput {
13947	s.GatewayARN = &v
13948	return s
13949}
13950
13951// SetGatewayId sets the GatewayId field's value.
13952func (s *DescribeGatewayInformationOutput) SetGatewayId(v string) *DescribeGatewayInformationOutput {
13953	s.GatewayId = &v
13954	return s
13955}
13956
13957// SetGatewayName sets the GatewayName field's value.
13958func (s *DescribeGatewayInformationOutput) SetGatewayName(v string) *DescribeGatewayInformationOutput {
13959	s.GatewayName = &v
13960	return s
13961}
13962
13963// SetGatewayNetworkInterfaces sets the GatewayNetworkInterfaces field's value.
13964func (s *DescribeGatewayInformationOutput) SetGatewayNetworkInterfaces(v []*NetworkInterface) *DescribeGatewayInformationOutput {
13965	s.GatewayNetworkInterfaces = v
13966	return s
13967}
13968
13969// SetGatewayState sets the GatewayState field's value.
13970func (s *DescribeGatewayInformationOutput) SetGatewayState(v string) *DescribeGatewayInformationOutput {
13971	s.GatewayState = &v
13972	return s
13973}
13974
13975// SetGatewayTimezone sets the GatewayTimezone field's value.
13976func (s *DescribeGatewayInformationOutput) SetGatewayTimezone(v string) *DescribeGatewayInformationOutput {
13977	s.GatewayTimezone = &v
13978	return s
13979}
13980
13981// SetGatewayType sets the GatewayType field's value.
13982func (s *DescribeGatewayInformationOutput) SetGatewayType(v string) *DescribeGatewayInformationOutput {
13983	s.GatewayType = &v
13984	return s
13985}
13986
13987// SetHostEnvironment sets the HostEnvironment field's value.
13988func (s *DescribeGatewayInformationOutput) SetHostEnvironment(v string) *DescribeGatewayInformationOutput {
13989	s.HostEnvironment = &v
13990	return s
13991}
13992
13993// SetLastSoftwareUpdate sets the LastSoftwareUpdate field's value.
13994func (s *DescribeGatewayInformationOutput) SetLastSoftwareUpdate(v string) *DescribeGatewayInformationOutput {
13995	s.LastSoftwareUpdate = &v
13996	return s
13997}
13998
13999// SetNextUpdateAvailabilityDate sets the NextUpdateAvailabilityDate field's value.
14000func (s *DescribeGatewayInformationOutput) SetNextUpdateAvailabilityDate(v string) *DescribeGatewayInformationOutput {
14001	s.NextUpdateAvailabilityDate = &v
14002	return s
14003}
14004
14005// SetSoftwareUpdatesEndDate sets the SoftwareUpdatesEndDate field's value.
14006func (s *DescribeGatewayInformationOutput) SetSoftwareUpdatesEndDate(v string) *DescribeGatewayInformationOutput {
14007	s.SoftwareUpdatesEndDate = &v
14008	return s
14009}
14010
14011// SetTags sets the Tags field's value.
14012func (s *DescribeGatewayInformationOutput) SetTags(v []*Tag) *DescribeGatewayInformationOutput {
14013	s.Tags = v
14014	return s
14015}
14016
14017// SetVPCEndpoint sets the VPCEndpoint field's value.
14018func (s *DescribeGatewayInformationOutput) SetVPCEndpoint(v string) *DescribeGatewayInformationOutput {
14019	s.VPCEndpoint = &v
14020	return s
14021}
14022
14023// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
14024type DescribeMaintenanceStartTimeInput struct {
14025	_ struct{} `type:"structure"`
14026
14027	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14028	// to return a list of gateways for your account and AWS Region.
14029	//
14030	// GatewayARN is a required field
14031	GatewayARN *string `min:"50" type:"string" required:"true"`
14032}
14033
14034// String returns the string representation
14035func (s DescribeMaintenanceStartTimeInput) String() string {
14036	return awsutil.Prettify(s)
14037}
14038
14039// GoString returns the string representation
14040func (s DescribeMaintenanceStartTimeInput) GoString() string {
14041	return s.String()
14042}
14043
14044// Validate inspects the fields of the type to determine if they are valid.
14045func (s *DescribeMaintenanceStartTimeInput) Validate() error {
14046	invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceStartTimeInput"}
14047	if s.GatewayARN == nil {
14048		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14049	}
14050	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14051		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14052	}
14053
14054	if invalidParams.Len() > 0 {
14055		return invalidParams
14056	}
14057	return nil
14058}
14059
14060// SetGatewayARN sets the GatewayARN field's value.
14061func (s *DescribeMaintenanceStartTimeInput) SetGatewayARN(v string) *DescribeMaintenanceStartTimeInput {
14062	s.GatewayARN = &v
14063	return s
14064}
14065
14066// A JSON object containing the following fields:
14067//
14068//    * DescribeMaintenanceStartTimeOutput$DayOfMonth
14069//
14070//    * DescribeMaintenanceStartTimeOutput$DayOfWeek
14071//
14072//    * DescribeMaintenanceStartTimeOutput$HourOfDay
14073//
14074//    * DescribeMaintenanceStartTimeOutput$MinuteOfHour
14075//
14076//    * DescribeMaintenanceStartTimeOutput$Timezone
14077type DescribeMaintenanceStartTimeOutput struct {
14078	_ struct{} `type:"structure"`
14079
14080	// The day of the month component of the maintenance start time represented
14081	// as an ordinal number from 1 to 28, where 1 represents the first day of the
14082	// month and 28 represents the last day of the month.
14083	DayOfMonth *int64 `min:"1" type:"integer"`
14084
14085	// An ordinal number between 0 and 6 that represents the day of the week, where
14086	// 0 represents Sunday and 6 represents Saturday. The day of week is in the
14087	// time zone of the gateway.
14088	DayOfWeek *int64 `type:"integer"`
14089
14090	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14091	// to return a list of gateways for your account and AWS Region.
14092	GatewayARN *string `min:"50" type:"string"`
14093
14094	// The hour component of the maintenance start time represented as hh, where
14095	// hh is the hour (0 to 23). The hour of the day is in the time zone of the
14096	// gateway.
14097	HourOfDay *int64 `type:"integer"`
14098
14099	// The minute component of the maintenance start time represented as mm, where
14100	// mm is the minute (0 to 59). The minute of the hour is in the time zone of
14101	// the gateway.
14102	MinuteOfHour *int64 `type:"integer"`
14103
14104	// A value that indicates the time zone that is set for the gateway. The start
14105	// time and day of week specified should be in the time zone of the gateway.
14106	Timezone *string `min:"3" type:"string"`
14107}
14108
14109// String returns the string representation
14110func (s DescribeMaintenanceStartTimeOutput) String() string {
14111	return awsutil.Prettify(s)
14112}
14113
14114// GoString returns the string representation
14115func (s DescribeMaintenanceStartTimeOutput) GoString() string {
14116	return s.String()
14117}
14118
14119// SetDayOfMonth sets the DayOfMonth field's value.
14120func (s *DescribeMaintenanceStartTimeOutput) SetDayOfMonth(v int64) *DescribeMaintenanceStartTimeOutput {
14121	s.DayOfMonth = &v
14122	return s
14123}
14124
14125// SetDayOfWeek sets the DayOfWeek field's value.
14126func (s *DescribeMaintenanceStartTimeOutput) SetDayOfWeek(v int64) *DescribeMaintenanceStartTimeOutput {
14127	s.DayOfWeek = &v
14128	return s
14129}
14130
14131// SetGatewayARN sets the GatewayARN field's value.
14132func (s *DescribeMaintenanceStartTimeOutput) SetGatewayARN(v string) *DescribeMaintenanceStartTimeOutput {
14133	s.GatewayARN = &v
14134	return s
14135}
14136
14137// SetHourOfDay sets the HourOfDay field's value.
14138func (s *DescribeMaintenanceStartTimeOutput) SetHourOfDay(v int64) *DescribeMaintenanceStartTimeOutput {
14139	s.HourOfDay = &v
14140	return s
14141}
14142
14143// SetMinuteOfHour sets the MinuteOfHour field's value.
14144func (s *DescribeMaintenanceStartTimeOutput) SetMinuteOfHour(v int64) *DescribeMaintenanceStartTimeOutput {
14145	s.MinuteOfHour = &v
14146	return s
14147}
14148
14149// SetTimezone sets the Timezone field's value.
14150func (s *DescribeMaintenanceStartTimeOutput) SetTimezone(v string) *DescribeMaintenanceStartTimeOutput {
14151	s.Timezone = &v
14152	return s
14153}
14154
14155// DescribeNFSFileSharesInput
14156type DescribeNFSFileSharesInput struct {
14157	_ struct{} `type:"structure"`
14158
14159	// An array containing the Amazon Resource Name (ARN) of each file share to
14160	// be described.
14161	//
14162	// FileShareARNList is a required field
14163	FileShareARNList []*string `min:"1" type:"list" required:"true"`
14164}
14165
14166// String returns the string representation
14167func (s DescribeNFSFileSharesInput) String() string {
14168	return awsutil.Prettify(s)
14169}
14170
14171// GoString returns the string representation
14172func (s DescribeNFSFileSharesInput) GoString() string {
14173	return s.String()
14174}
14175
14176// Validate inspects the fields of the type to determine if they are valid.
14177func (s *DescribeNFSFileSharesInput) Validate() error {
14178	invalidParams := request.ErrInvalidParams{Context: "DescribeNFSFileSharesInput"}
14179	if s.FileShareARNList == nil {
14180		invalidParams.Add(request.NewErrParamRequired("FileShareARNList"))
14181	}
14182	if s.FileShareARNList != nil && len(s.FileShareARNList) < 1 {
14183		invalidParams.Add(request.NewErrParamMinLen("FileShareARNList", 1))
14184	}
14185
14186	if invalidParams.Len() > 0 {
14187		return invalidParams
14188	}
14189	return nil
14190}
14191
14192// SetFileShareARNList sets the FileShareARNList field's value.
14193func (s *DescribeNFSFileSharesInput) SetFileShareARNList(v []*string) *DescribeNFSFileSharesInput {
14194	s.FileShareARNList = v
14195	return s
14196}
14197
14198// DescribeNFSFileSharesOutput
14199type DescribeNFSFileSharesOutput struct {
14200	_ struct{} `type:"structure"`
14201
14202	// An array containing a description for each requested file share.
14203	NFSFileShareInfoList []*NFSFileShareInfo `type:"list"`
14204}
14205
14206// String returns the string representation
14207func (s DescribeNFSFileSharesOutput) String() string {
14208	return awsutil.Prettify(s)
14209}
14210
14211// GoString returns the string representation
14212func (s DescribeNFSFileSharesOutput) GoString() string {
14213	return s.String()
14214}
14215
14216// SetNFSFileShareInfoList sets the NFSFileShareInfoList field's value.
14217func (s *DescribeNFSFileSharesOutput) SetNFSFileShareInfoList(v []*NFSFileShareInfo) *DescribeNFSFileSharesOutput {
14218	s.NFSFileShareInfoList = v
14219	return s
14220}
14221
14222// DescribeSMBFileSharesInput
14223type DescribeSMBFileSharesInput struct {
14224	_ struct{} `type:"structure"`
14225
14226	// An array containing the Amazon Resource Name (ARN) of each file share to
14227	// be described.
14228	//
14229	// FileShareARNList is a required field
14230	FileShareARNList []*string `min:"1" type:"list" required:"true"`
14231}
14232
14233// String returns the string representation
14234func (s DescribeSMBFileSharesInput) String() string {
14235	return awsutil.Prettify(s)
14236}
14237
14238// GoString returns the string representation
14239func (s DescribeSMBFileSharesInput) GoString() string {
14240	return s.String()
14241}
14242
14243// Validate inspects the fields of the type to determine if they are valid.
14244func (s *DescribeSMBFileSharesInput) Validate() error {
14245	invalidParams := request.ErrInvalidParams{Context: "DescribeSMBFileSharesInput"}
14246	if s.FileShareARNList == nil {
14247		invalidParams.Add(request.NewErrParamRequired("FileShareARNList"))
14248	}
14249	if s.FileShareARNList != nil && len(s.FileShareARNList) < 1 {
14250		invalidParams.Add(request.NewErrParamMinLen("FileShareARNList", 1))
14251	}
14252
14253	if invalidParams.Len() > 0 {
14254		return invalidParams
14255	}
14256	return nil
14257}
14258
14259// SetFileShareARNList sets the FileShareARNList field's value.
14260func (s *DescribeSMBFileSharesInput) SetFileShareARNList(v []*string) *DescribeSMBFileSharesInput {
14261	s.FileShareARNList = v
14262	return s
14263}
14264
14265// DescribeSMBFileSharesOutput
14266type DescribeSMBFileSharesOutput struct {
14267	_ struct{} `type:"structure"`
14268
14269	// An array containing a description for each requested file share.
14270	SMBFileShareInfoList []*SMBFileShareInfo `type:"list"`
14271}
14272
14273// String returns the string representation
14274func (s DescribeSMBFileSharesOutput) String() string {
14275	return awsutil.Prettify(s)
14276}
14277
14278// GoString returns the string representation
14279func (s DescribeSMBFileSharesOutput) GoString() string {
14280	return s.String()
14281}
14282
14283// SetSMBFileShareInfoList sets the SMBFileShareInfoList field's value.
14284func (s *DescribeSMBFileSharesOutput) SetSMBFileShareInfoList(v []*SMBFileShareInfo) *DescribeSMBFileSharesOutput {
14285	s.SMBFileShareInfoList = v
14286	return s
14287}
14288
14289type DescribeSMBSettingsInput struct {
14290	_ struct{} `type:"structure"`
14291
14292	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14293	// to return a list of gateways for your account and AWS Region.
14294	//
14295	// GatewayARN is a required field
14296	GatewayARN *string `min:"50" type:"string" required:"true"`
14297}
14298
14299// String returns the string representation
14300func (s DescribeSMBSettingsInput) String() string {
14301	return awsutil.Prettify(s)
14302}
14303
14304// GoString returns the string representation
14305func (s DescribeSMBSettingsInput) GoString() string {
14306	return s.String()
14307}
14308
14309// Validate inspects the fields of the type to determine if they are valid.
14310func (s *DescribeSMBSettingsInput) Validate() error {
14311	invalidParams := request.ErrInvalidParams{Context: "DescribeSMBSettingsInput"}
14312	if s.GatewayARN == nil {
14313		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14314	}
14315	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14316		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14317	}
14318
14319	if invalidParams.Len() > 0 {
14320		return invalidParams
14321	}
14322	return nil
14323}
14324
14325// SetGatewayARN sets the GatewayARN field's value.
14326func (s *DescribeSMBSettingsInput) SetGatewayARN(v string) *DescribeSMBSettingsInput {
14327	s.GatewayARN = &v
14328	return s
14329}
14330
14331type DescribeSMBSettingsOutput struct {
14332	_ struct{} `type:"structure"`
14333
14334	// Indicates the status of a gateway that is a member of the Active Directory
14335	// domain.
14336	//
14337	//    * ACCESS_DENIED: Indicates that the JoinDomain operation failed due to
14338	//    an authentication error.
14339	//
14340	//    * DETACHED: Indicates that gateway is not joined to a domain.
14341	//
14342	//    * JOINED: Indicates that the gateway has successfully joined a domain.
14343	//
14344	//    * JOINING: Indicates that a JoinDomain operation is in progress.
14345	//
14346	//    * NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network
14347	//    or connectivity error.
14348	//
14349	//    * TIMEOUT: Indicates that the JoinDomain operation failed because the
14350	//    operation didn't complete within the allotted time.
14351	//
14352	//    * UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to
14353	//    another type of error.
14354	ActiveDirectoryStatus *string `type:"string" enum:"ActiveDirectoryStatus"`
14355
14356	// The name of the domain that the gateway is joined to.
14357	DomainName *string `min:"1" type:"string"`
14358
14359	// The shares on this gateway appear when listing shares.
14360	FileSharesVisible *bool `type:"boolean"`
14361
14362	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14363	// to return a list of gateways for your account and AWS Region.
14364	GatewayARN *string `min:"50" type:"string"`
14365
14366	// This value is true if a password for the guest user smbguest is set, otherwise
14367	// false.
14368	//
14369	// Valid Values: true | false
14370	SMBGuestPasswordSet *bool `type:"boolean"`
14371
14372	// The type of security strategy that was specified for file gateway.
14373	//
14374	//    * ClientSpecified: If you use this option, requests are established based
14375	//    on what is negotiated by the client. This option is recommended when you
14376	//    want to maximize compatibility across different clients in your environment.
14377	//
14378	//    * MandatorySigning: If you use this option, file gateway only allows connections
14379	//    from SMBv2 or SMBv3 clients that have signing enabled. This option works
14380	//    with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer.
14381	//
14382	//    * MandatoryEncryption: If you use this option, file gateway only allows
14383	//    connections from SMBv3 clients that have encryption enabled. This option
14384	//    is highly recommended for environments that handle sensitive data. This
14385	//    option works with SMB clients on Microsoft Windows 8, Windows Server 2012
14386	//    or newer.
14387	SMBSecurityStrategy *string `type:"string" enum:"SMBSecurityStrategy"`
14388}
14389
14390// String returns the string representation
14391func (s DescribeSMBSettingsOutput) String() string {
14392	return awsutil.Prettify(s)
14393}
14394
14395// GoString returns the string representation
14396func (s DescribeSMBSettingsOutput) GoString() string {
14397	return s.String()
14398}
14399
14400// SetActiveDirectoryStatus sets the ActiveDirectoryStatus field's value.
14401func (s *DescribeSMBSettingsOutput) SetActiveDirectoryStatus(v string) *DescribeSMBSettingsOutput {
14402	s.ActiveDirectoryStatus = &v
14403	return s
14404}
14405
14406// SetDomainName sets the DomainName field's value.
14407func (s *DescribeSMBSettingsOutput) SetDomainName(v string) *DescribeSMBSettingsOutput {
14408	s.DomainName = &v
14409	return s
14410}
14411
14412// SetFileSharesVisible sets the FileSharesVisible field's value.
14413func (s *DescribeSMBSettingsOutput) SetFileSharesVisible(v bool) *DescribeSMBSettingsOutput {
14414	s.FileSharesVisible = &v
14415	return s
14416}
14417
14418// SetGatewayARN sets the GatewayARN field's value.
14419func (s *DescribeSMBSettingsOutput) SetGatewayARN(v string) *DescribeSMBSettingsOutput {
14420	s.GatewayARN = &v
14421	return s
14422}
14423
14424// SetSMBGuestPasswordSet sets the SMBGuestPasswordSet field's value.
14425func (s *DescribeSMBSettingsOutput) SetSMBGuestPasswordSet(v bool) *DescribeSMBSettingsOutput {
14426	s.SMBGuestPasswordSet = &v
14427	return s
14428}
14429
14430// SetSMBSecurityStrategy sets the SMBSecurityStrategy field's value.
14431func (s *DescribeSMBSettingsOutput) SetSMBSecurityStrategy(v string) *DescribeSMBSettingsOutput {
14432	s.SMBSecurityStrategy = &v
14433	return s
14434}
14435
14436// A JSON object containing the DescribeSnapshotScheduleInput$VolumeARN of the
14437// volume.
14438type DescribeSnapshotScheduleInput struct {
14439	_ struct{} `type:"structure"`
14440
14441	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
14442	// to return a list of gateway volumes.
14443	//
14444	// VolumeARN is a required field
14445	VolumeARN *string `min:"50" type:"string" required:"true"`
14446}
14447
14448// String returns the string representation
14449func (s DescribeSnapshotScheduleInput) String() string {
14450	return awsutil.Prettify(s)
14451}
14452
14453// GoString returns the string representation
14454func (s DescribeSnapshotScheduleInput) GoString() string {
14455	return s.String()
14456}
14457
14458// Validate inspects the fields of the type to determine if they are valid.
14459func (s *DescribeSnapshotScheduleInput) Validate() error {
14460	invalidParams := request.ErrInvalidParams{Context: "DescribeSnapshotScheduleInput"}
14461	if s.VolumeARN == nil {
14462		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
14463	}
14464	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
14465		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
14466	}
14467
14468	if invalidParams.Len() > 0 {
14469		return invalidParams
14470	}
14471	return nil
14472}
14473
14474// SetVolumeARN sets the VolumeARN field's value.
14475func (s *DescribeSnapshotScheduleInput) SetVolumeARN(v string) *DescribeSnapshotScheduleInput {
14476	s.VolumeARN = &v
14477	return s
14478}
14479
14480type DescribeSnapshotScheduleOutput struct {
14481	_ struct{} `type:"structure"`
14482
14483	// The snapshot description.
14484	Description *string `min:"1" type:"string"`
14485
14486	// The number of hours between snapshots.
14487	RecurrenceInHours *int64 `min:"1" type:"integer"`
14488
14489	// The hour of the day at which the snapshot schedule begins represented as
14490	// hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
14491	// of the gateway.
14492	StartAt *int64 `type:"integer"`
14493
14494	// A list of up to 50 tags assigned to the snapshot schedule, sorted alphabetically
14495	// by key name. Each tag is a key-value pair. For a gateway with more than 10
14496	// tags assigned, you can view all tags using the ListTagsForResource API operation.
14497	Tags []*Tag `type:"list"`
14498
14499	// A value that indicates the time zone of the gateway.
14500	Timezone *string `min:"3" type:"string"`
14501
14502	// The Amazon Resource Name (ARN) of the volume that was specified in the request.
14503	VolumeARN *string `min:"50" type:"string"`
14504}
14505
14506// String returns the string representation
14507func (s DescribeSnapshotScheduleOutput) String() string {
14508	return awsutil.Prettify(s)
14509}
14510
14511// GoString returns the string representation
14512func (s DescribeSnapshotScheduleOutput) GoString() string {
14513	return s.String()
14514}
14515
14516// SetDescription sets the Description field's value.
14517func (s *DescribeSnapshotScheduleOutput) SetDescription(v string) *DescribeSnapshotScheduleOutput {
14518	s.Description = &v
14519	return s
14520}
14521
14522// SetRecurrenceInHours sets the RecurrenceInHours field's value.
14523func (s *DescribeSnapshotScheduleOutput) SetRecurrenceInHours(v int64) *DescribeSnapshotScheduleOutput {
14524	s.RecurrenceInHours = &v
14525	return s
14526}
14527
14528// SetStartAt sets the StartAt field's value.
14529func (s *DescribeSnapshotScheduleOutput) SetStartAt(v int64) *DescribeSnapshotScheduleOutput {
14530	s.StartAt = &v
14531	return s
14532}
14533
14534// SetTags sets the Tags field's value.
14535func (s *DescribeSnapshotScheduleOutput) SetTags(v []*Tag) *DescribeSnapshotScheduleOutput {
14536	s.Tags = v
14537	return s
14538}
14539
14540// SetTimezone sets the Timezone field's value.
14541func (s *DescribeSnapshotScheduleOutput) SetTimezone(v string) *DescribeSnapshotScheduleOutput {
14542	s.Timezone = &v
14543	return s
14544}
14545
14546// SetVolumeARN sets the VolumeARN field's value.
14547func (s *DescribeSnapshotScheduleOutput) SetVolumeARN(v string) *DescribeSnapshotScheduleOutput {
14548	s.VolumeARN = &v
14549	return s
14550}
14551
14552// A JSON object containing a list of DescribeStorediSCSIVolumesInput$VolumeARNs.
14553type DescribeStorediSCSIVolumesInput struct {
14554	_ struct{} `type:"structure"`
14555
14556	// An array of strings where each string represents the Amazon Resource Name
14557	// (ARN) of a stored volume. All of the specified stored volumes must be from
14558	// the same gateway. Use ListVolumes to get volume ARNs for a gateway.
14559	//
14560	// VolumeARNs is a required field
14561	VolumeARNs []*string `type:"list" required:"true"`
14562}
14563
14564// String returns the string representation
14565func (s DescribeStorediSCSIVolumesInput) String() string {
14566	return awsutil.Prettify(s)
14567}
14568
14569// GoString returns the string representation
14570func (s DescribeStorediSCSIVolumesInput) GoString() string {
14571	return s.String()
14572}
14573
14574// Validate inspects the fields of the type to determine if they are valid.
14575func (s *DescribeStorediSCSIVolumesInput) Validate() error {
14576	invalidParams := request.ErrInvalidParams{Context: "DescribeStorediSCSIVolumesInput"}
14577	if s.VolumeARNs == nil {
14578		invalidParams.Add(request.NewErrParamRequired("VolumeARNs"))
14579	}
14580
14581	if invalidParams.Len() > 0 {
14582		return invalidParams
14583	}
14584	return nil
14585}
14586
14587// SetVolumeARNs sets the VolumeARNs field's value.
14588func (s *DescribeStorediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeStorediSCSIVolumesInput {
14589	s.VolumeARNs = v
14590	return s
14591}
14592
14593type DescribeStorediSCSIVolumesOutput struct {
14594	_ struct{} `type:"structure"`
14595
14596	// Describes a single unit of output from DescribeStorediSCSIVolumes. The following
14597	// fields are returned:
14598	//
14599	//    * ChapEnabled: Indicates whether mutual CHAP is enabled for the iSCSI
14600	//    target.
14601	//
14602	//    * LunNumber: The logical disk number.
14603	//
14604	//    * NetworkInterfaceId: The network interface ID of the stored volume that
14605	//    initiator use to map the stored volume as an iSCSI target.
14606	//
14607	//    * NetworkInterfacePort: The port used to communicate with iSCSI targets.
14608	//
14609	//    * PreservedExistingData: Indicates when the stored volume was created,
14610	//    existing data on the underlying local disk was preserved.
14611	//
14612	//    * SourceSnapshotId: If the stored volume was created from a snapshot,
14613	//    this field contains the snapshot ID used, e.g. snap-1122aabb. Otherwise,
14614	//    this field is not included.
14615	//
14616	//    * StorediSCSIVolumes: An array of StorediSCSIVolume objects where each
14617	//    object contains metadata about one stored volume.
14618	//
14619	//    * TargetARN: The Amazon Resource Name (ARN) of the volume target.
14620	//
14621	//    * VolumeARN: The Amazon Resource Name (ARN) of the stored volume.
14622	//
14623	//    * VolumeDiskId: The disk ID of the local disk that was specified in the
14624	//    CreateStorediSCSIVolume operation.
14625	//
14626	//    * VolumeId: The unique identifier of the storage volume, e.g. vol-1122AABB.
14627	//
14628	//    * VolumeiSCSIAttributes: An VolumeiSCSIAttributes object that represents
14629	//    a collection of iSCSI attributes for one stored volume.
14630	//
14631	//    * VolumeProgress: Represents the percentage complete if the volume is
14632	//    restoring or bootstrapping that represents the percent of data transferred.
14633	//    This field does not appear in the response if the stored volume is not
14634	//    restoring or bootstrapping.
14635	//
14636	//    * VolumeSizeInBytes: The size of the volume in bytes.
14637	//
14638	//    * VolumeStatus: One of the VolumeStatus values that indicates the state
14639	//    of the volume.
14640	//
14641	//    * VolumeType: One of the enumeration values describing the type of the
14642	//    volume. Currently, only STORED volumes are supported.
14643	StorediSCSIVolumes []*StorediSCSIVolume `type:"list"`
14644}
14645
14646// String returns the string representation
14647func (s DescribeStorediSCSIVolumesOutput) String() string {
14648	return awsutil.Prettify(s)
14649}
14650
14651// GoString returns the string representation
14652func (s DescribeStorediSCSIVolumesOutput) GoString() string {
14653	return s.String()
14654}
14655
14656// SetStorediSCSIVolumes sets the StorediSCSIVolumes field's value.
14657func (s *DescribeStorediSCSIVolumesOutput) SetStorediSCSIVolumes(v []*StorediSCSIVolume) *DescribeStorediSCSIVolumesOutput {
14658	s.StorediSCSIVolumes = v
14659	return s
14660}
14661
14662// DescribeTapeArchivesInput
14663type DescribeTapeArchivesInput struct {
14664	_ struct{} `type:"structure"`
14665
14666	// Specifies that the number of virtual tapes described be limited to the specified
14667	// number.
14668	Limit *int64 `min:"1" type:"integer"`
14669
14670	// An opaque string that indicates the position at which to begin describing
14671	// virtual tapes.
14672	Marker *string `min:"1" type:"string"`
14673
14674	// Specifies one or more unique Amazon Resource Names (ARNs) that represent
14675	// the virtual tapes you want to describe.
14676	TapeARNs []*string `type:"list"`
14677}
14678
14679// String returns the string representation
14680func (s DescribeTapeArchivesInput) String() string {
14681	return awsutil.Prettify(s)
14682}
14683
14684// GoString returns the string representation
14685func (s DescribeTapeArchivesInput) GoString() string {
14686	return s.String()
14687}
14688
14689// Validate inspects the fields of the type to determine if they are valid.
14690func (s *DescribeTapeArchivesInput) Validate() error {
14691	invalidParams := request.ErrInvalidParams{Context: "DescribeTapeArchivesInput"}
14692	if s.Limit != nil && *s.Limit < 1 {
14693		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14694	}
14695	if s.Marker != nil && len(*s.Marker) < 1 {
14696		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14697	}
14698
14699	if invalidParams.Len() > 0 {
14700		return invalidParams
14701	}
14702	return nil
14703}
14704
14705// SetLimit sets the Limit field's value.
14706func (s *DescribeTapeArchivesInput) SetLimit(v int64) *DescribeTapeArchivesInput {
14707	s.Limit = &v
14708	return s
14709}
14710
14711// SetMarker sets the Marker field's value.
14712func (s *DescribeTapeArchivesInput) SetMarker(v string) *DescribeTapeArchivesInput {
14713	s.Marker = &v
14714	return s
14715}
14716
14717// SetTapeARNs sets the TapeARNs field's value.
14718func (s *DescribeTapeArchivesInput) SetTapeARNs(v []*string) *DescribeTapeArchivesInput {
14719	s.TapeARNs = v
14720	return s
14721}
14722
14723// DescribeTapeArchivesOutput
14724type DescribeTapeArchivesOutput struct {
14725	_ struct{} `type:"structure"`
14726
14727	// An opaque string that indicates the position at which the virtual tapes that
14728	// were fetched for description ended. Use this marker in your next request
14729	// to fetch the next set of virtual tapes in the virtual tape shelf (VTS). If
14730	// there are no more virtual tapes to describe, this field does not appear in
14731	// the response.
14732	Marker *string `min:"1" type:"string"`
14733
14734	// An array of virtual tape objects in the virtual tape shelf (VTS). The description
14735	// includes of the Amazon Resource Name (ARN) of the virtual tapes. The information
14736	// returned includes the Amazon Resource Names (ARNs) of the tapes, size of
14737	// the tapes, status of the tapes, progress of the description, and tape barcode.
14738	TapeArchives []*TapeArchive `type:"list"`
14739}
14740
14741// String returns the string representation
14742func (s DescribeTapeArchivesOutput) String() string {
14743	return awsutil.Prettify(s)
14744}
14745
14746// GoString returns the string representation
14747func (s DescribeTapeArchivesOutput) GoString() string {
14748	return s.String()
14749}
14750
14751// SetMarker sets the Marker field's value.
14752func (s *DescribeTapeArchivesOutput) SetMarker(v string) *DescribeTapeArchivesOutput {
14753	s.Marker = &v
14754	return s
14755}
14756
14757// SetTapeArchives sets the TapeArchives field's value.
14758func (s *DescribeTapeArchivesOutput) SetTapeArchives(v []*TapeArchive) *DescribeTapeArchivesOutput {
14759	s.TapeArchives = v
14760	return s
14761}
14762
14763// DescribeTapeRecoveryPointsInput
14764type DescribeTapeRecoveryPointsInput struct {
14765	_ struct{} `type:"structure"`
14766
14767	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14768	// to return a list of gateways for your account and AWS Region.
14769	//
14770	// GatewayARN is a required field
14771	GatewayARN *string `min:"50" type:"string" required:"true"`
14772
14773	// Specifies that the number of virtual tape recovery points that are described
14774	// be limited to the specified number.
14775	Limit *int64 `min:"1" type:"integer"`
14776
14777	// An opaque string that indicates the position at which to begin describing
14778	// the virtual tape recovery points.
14779	Marker *string `min:"1" type:"string"`
14780}
14781
14782// String returns the string representation
14783func (s DescribeTapeRecoveryPointsInput) String() string {
14784	return awsutil.Prettify(s)
14785}
14786
14787// GoString returns the string representation
14788func (s DescribeTapeRecoveryPointsInput) GoString() string {
14789	return s.String()
14790}
14791
14792// Validate inspects the fields of the type to determine if they are valid.
14793func (s *DescribeTapeRecoveryPointsInput) Validate() error {
14794	invalidParams := request.ErrInvalidParams{Context: "DescribeTapeRecoveryPointsInput"}
14795	if s.GatewayARN == nil {
14796		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14797	}
14798	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14799		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14800	}
14801	if s.Limit != nil && *s.Limit < 1 {
14802		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14803	}
14804	if s.Marker != nil && len(*s.Marker) < 1 {
14805		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14806	}
14807
14808	if invalidParams.Len() > 0 {
14809		return invalidParams
14810	}
14811	return nil
14812}
14813
14814// SetGatewayARN sets the GatewayARN field's value.
14815func (s *DescribeTapeRecoveryPointsInput) SetGatewayARN(v string) *DescribeTapeRecoveryPointsInput {
14816	s.GatewayARN = &v
14817	return s
14818}
14819
14820// SetLimit sets the Limit field's value.
14821func (s *DescribeTapeRecoveryPointsInput) SetLimit(v int64) *DescribeTapeRecoveryPointsInput {
14822	s.Limit = &v
14823	return s
14824}
14825
14826// SetMarker sets the Marker field's value.
14827func (s *DescribeTapeRecoveryPointsInput) SetMarker(v string) *DescribeTapeRecoveryPointsInput {
14828	s.Marker = &v
14829	return s
14830}
14831
14832// DescribeTapeRecoveryPointsOutput
14833type DescribeTapeRecoveryPointsOutput struct {
14834	_ struct{} `type:"structure"`
14835
14836	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14837	// to return a list of gateways for your account and AWS Region.
14838	GatewayARN *string `min:"50" type:"string"`
14839
14840	// An opaque string that indicates the position at which the virtual tape recovery
14841	// points that were listed for description ended.
14842	//
14843	// Use this marker in your next request to list the next set of virtual tape
14844	// recovery points in the list. If there are no more recovery points to describe,
14845	// this field does not appear in the response.
14846	Marker *string `min:"1" type:"string"`
14847
14848	// An array of TapeRecoveryPointInfos that are available for the specified gateway.
14849	TapeRecoveryPointInfos []*TapeRecoveryPointInfo `type:"list"`
14850}
14851
14852// String returns the string representation
14853func (s DescribeTapeRecoveryPointsOutput) String() string {
14854	return awsutil.Prettify(s)
14855}
14856
14857// GoString returns the string representation
14858func (s DescribeTapeRecoveryPointsOutput) GoString() string {
14859	return s.String()
14860}
14861
14862// SetGatewayARN sets the GatewayARN field's value.
14863func (s *DescribeTapeRecoveryPointsOutput) SetGatewayARN(v string) *DescribeTapeRecoveryPointsOutput {
14864	s.GatewayARN = &v
14865	return s
14866}
14867
14868// SetMarker sets the Marker field's value.
14869func (s *DescribeTapeRecoveryPointsOutput) SetMarker(v string) *DescribeTapeRecoveryPointsOutput {
14870	s.Marker = &v
14871	return s
14872}
14873
14874// SetTapeRecoveryPointInfos sets the TapeRecoveryPointInfos field's value.
14875func (s *DescribeTapeRecoveryPointsOutput) SetTapeRecoveryPointInfos(v []*TapeRecoveryPointInfo) *DescribeTapeRecoveryPointsOutput {
14876	s.TapeRecoveryPointInfos = v
14877	return s
14878}
14879
14880// DescribeTapesInput
14881type DescribeTapesInput struct {
14882	_ struct{} `type:"structure"`
14883
14884	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14885	// to return a list of gateways for your account and AWS Region.
14886	//
14887	// GatewayARN is a required field
14888	GatewayARN *string `min:"50" type:"string" required:"true"`
14889
14890	// Specifies that the number of virtual tapes described be limited to the specified
14891	// number.
14892	//
14893	// Amazon Web Services may impose its own limit, if this field is not set.
14894	Limit *int64 `min:"1" type:"integer"`
14895
14896	// A marker value, obtained in a previous call to DescribeTapes. This marker
14897	// indicates which page of results to retrieve.
14898	//
14899	// If not specified, the first page of results is retrieved.
14900	Marker *string `min:"1" type:"string"`
14901
14902	// Specifies one or more unique Amazon Resource Names (ARNs) that represent
14903	// the virtual tapes you want to describe. If this parameter is not specified,
14904	// Tape gateway returns a description of all virtual tapes associated with the
14905	// specified gateway.
14906	TapeARNs []*string `type:"list"`
14907}
14908
14909// String returns the string representation
14910func (s DescribeTapesInput) String() string {
14911	return awsutil.Prettify(s)
14912}
14913
14914// GoString returns the string representation
14915func (s DescribeTapesInput) GoString() string {
14916	return s.String()
14917}
14918
14919// Validate inspects the fields of the type to determine if they are valid.
14920func (s *DescribeTapesInput) Validate() error {
14921	invalidParams := request.ErrInvalidParams{Context: "DescribeTapesInput"}
14922	if s.GatewayARN == nil {
14923		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14924	}
14925	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14926		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14927	}
14928	if s.Limit != nil && *s.Limit < 1 {
14929		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14930	}
14931	if s.Marker != nil && len(*s.Marker) < 1 {
14932		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14933	}
14934
14935	if invalidParams.Len() > 0 {
14936		return invalidParams
14937	}
14938	return nil
14939}
14940
14941// SetGatewayARN sets the GatewayARN field's value.
14942func (s *DescribeTapesInput) SetGatewayARN(v string) *DescribeTapesInput {
14943	s.GatewayARN = &v
14944	return s
14945}
14946
14947// SetLimit sets the Limit field's value.
14948func (s *DescribeTapesInput) SetLimit(v int64) *DescribeTapesInput {
14949	s.Limit = &v
14950	return s
14951}
14952
14953// SetMarker sets the Marker field's value.
14954func (s *DescribeTapesInput) SetMarker(v string) *DescribeTapesInput {
14955	s.Marker = &v
14956	return s
14957}
14958
14959// SetTapeARNs sets the TapeARNs field's value.
14960func (s *DescribeTapesInput) SetTapeARNs(v []*string) *DescribeTapesInput {
14961	s.TapeARNs = v
14962	return s
14963}
14964
14965// DescribeTapesOutput
14966type DescribeTapesOutput struct {
14967	_ struct{} `type:"structure"`
14968
14969	// An opaque string that can be used as part of a subsequent DescribeTapes call
14970	// to retrieve the next page of results.
14971	//
14972	// If a response does not contain a marker, then there are no more results to
14973	// be retrieved.
14974	Marker *string `min:"1" type:"string"`
14975
14976	// An array of virtual tape descriptions.
14977	Tapes []*Tape `type:"list"`
14978}
14979
14980// String returns the string representation
14981func (s DescribeTapesOutput) String() string {
14982	return awsutil.Prettify(s)
14983}
14984
14985// GoString returns the string representation
14986func (s DescribeTapesOutput) GoString() string {
14987	return s.String()
14988}
14989
14990// SetMarker sets the Marker field's value.
14991func (s *DescribeTapesOutput) SetMarker(v string) *DescribeTapesOutput {
14992	s.Marker = &v
14993	return s
14994}
14995
14996// SetTapes sets the Tapes field's value.
14997func (s *DescribeTapesOutput) SetTapes(v []*Tape) *DescribeTapesOutput {
14998	s.Tapes = v
14999	return s
15000}
15001
15002type DescribeUploadBufferInput struct {
15003	_ struct{} `type:"structure"`
15004
15005	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15006	// to return a list of gateways for your account and AWS Region.
15007	//
15008	// GatewayARN is a required field
15009	GatewayARN *string `min:"50" type:"string" required:"true"`
15010}
15011
15012// String returns the string representation
15013func (s DescribeUploadBufferInput) String() string {
15014	return awsutil.Prettify(s)
15015}
15016
15017// GoString returns the string representation
15018func (s DescribeUploadBufferInput) GoString() string {
15019	return s.String()
15020}
15021
15022// Validate inspects the fields of the type to determine if they are valid.
15023func (s *DescribeUploadBufferInput) Validate() error {
15024	invalidParams := request.ErrInvalidParams{Context: "DescribeUploadBufferInput"}
15025	if s.GatewayARN == nil {
15026		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15027	}
15028	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15029		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15030	}
15031
15032	if invalidParams.Len() > 0 {
15033		return invalidParams
15034	}
15035	return nil
15036}
15037
15038// SetGatewayARN sets the GatewayARN field's value.
15039func (s *DescribeUploadBufferInput) SetGatewayARN(v string) *DescribeUploadBufferInput {
15040	s.GatewayARN = &v
15041	return s
15042}
15043
15044type DescribeUploadBufferOutput struct {
15045	_ struct{} `type:"structure"`
15046
15047	// An array of the gateway's local disk IDs that are configured as working storage.
15048	// Each local disk ID is specified as a string (minimum length of 1 and maximum
15049	// length of 300). If no local disks are configured as working storage, then
15050	// the DiskIds array is empty.
15051	DiskIds []*string `type:"list"`
15052
15053	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15054	// to return a list of gateways for your account and AWS Region.
15055	GatewayARN *string `min:"50" type:"string"`
15056
15057	// The total number of bytes allocated in the gateway's as upload buffer.
15058	UploadBufferAllocatedInBytes *int64 `type:"long"`
15059
15060	// The total number of bytes being used in the gateway's upload buffer.
15061	UploadBufferUsedInBytes *int64 `type:"long"`
15062}
15063
15064// String returns the string representation
15065func (s DescribeUploadBufferOutput) String() string {
15066	return awsutil.Prettify(s)
15067}
15068
15069// GoString returns the string representation
15070func (s DescribeUploadBufferOutput) GoString() string {
15071	return s.String()
15072}
15073
15074// SetDiskIds sets the DiskIds field's value.
15075func (s *DescribeUploadBufferOutput) SetDiskIds(v []*string) *DescribeUploadBufferOutput {
15076	s.DiskIds = v
15077	return s
15078}
15079
15080// SetGatewayARN sets the GatewayARN field's value.
15081func (s *DescribeUploadBufferOutput) SetGatewayARN(v string) *DescribeUploadBufferOutput {
15082	s.GatewayARN = &v
15083	return s
15084}
15085
15086// SetUploadBufferAllocatedInBytes sets the UploadBufferAllocatedInBytes field's value.
15087func (s *DescribeUploadBufferOutput) SetUploadBufferAllocatedInBytes(v int64) *DescribeUploadBufferOutput {
15088	s.UploadBufferAllocatedInBytes = &v
15089	return s
15090}
15091
15092// SetUploadBufferUsedInBytes sets the UploadBufferUsedInBytes field's value.
15093func (s *DescribeUploadBufferOutput) SetUploadBufferUsedInBytes(v int64) *DescribeUploadBufferOutput {
15094	s.UploadBufferUsedInBytes = &v
15095	return s
15096}
15097
15098// DescribeVTLDevicesInput
15099type DescribeVTLDevicesInput struct {
15100	_ struct{} `type:"structure"`
15101
15102	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15103	// to return a list of gateways for your account and AWS Region.
15104	//
15105	// GatewayARN is a required field
15106	GatewayARN *string `min:"50" type:"string" required:"true"`
15107
15108	// Specifies that the number of VTL devices described be limited to the specified
15109	// number.
15110	Limit *int64 `min:"1" type:"integer"`
15111
15112	// An opaque string that indicates the position at which to begin describing
15113	// the VTL devices.
15114	Marker *string `min:"1" type:"string"`
15115
15116	// An array of strings, where each string represents the Amazon Resource Name
15117	// (ARN) of a VTL device.
15118	//
15119	// All of the specified VTL devices must be from the same gateway. If no VTL
15120	// devices are specified, the result will contain all devices on the specified
15121	// gateway.
15122	VTLDeviceARNs []*string `type:"list"`
15123}
15124
15125// String returns the string representation
15126func (s DescribeVTLDevicesInput) String() string {
15127	return awsutil.Prettify(s)
15128}
15129
15130// GoString returns the string representation
15131func (s DescribeVTLDevicesInput) GoString() string {
15132	return s.String()
15133}
15134
15135// Validate inspects the fields of the type to determine if they are valid.
15136func (s *DescribeVTLDevicesInput) Validate() error {
15137	invalidParams := request.ErrInvalidParams{Context: "DescribeVTLDevicesInput"}
15138	if s.GatewayARN == nil {
15139		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15140	}
15141	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15142		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15143	}
15144	if s.Limit != nil && *s.Limit < 1 {
15145		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
15146	}
15147	if s.Marker != nil && len(*s.Marker) < 1 {
15148		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
15149	}
15150
15151	if invalidParams.Len() > 0 {
15152		return invalidParams
15153	}
15154	return nil
15155}
15156
15157// SetGatewayARN sets the GatewayARN field's value.
15158func (s *DescribeVTLDevicesInput) SetGatewayARN(v string) *DescribeVTLDevicesInput {
15159	s.GatewayARN = &v
15160	return s
15161}
15162
15163// SetLimit sets the Limit field's value.
15164func (s *DescribeVTLDevicesInput) SetLimit(v int64) *DescribeVTLDevicesInput {
15165	s.Limit = &v
15166	return s
15167}
15168
15169// SetMarker sets the Marker field's value.
15170func (s *DescribeVTLDevicesInput) SetMarker(v string) *DescribeVTLDevicesInput {
15171	s.Marker = &v
15172	return s
15173}
15174
15175// SetVTLDeviceARNs sets the VTLDeviceARNs field's value.
15176func (s *DescribeVTLDevicesInput) SetVTLDeviceARNs(v []*string) *DescribeVTLDevicesInput {
15177	s.VTLDeviceARNs = v
15178	return s
15179}
15180
15181// DescribeVTLDevicesOutput
15182type DescribeVTLDevicesOutput struct {
15183	_ struct{} `type:"structure"`
15184
15185	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15186	// to return a list of gateways for your account and AWS Region.
15187	GatewayARN *string `min:"50" type:"string"`
15188
15189	// An opaque string that indicates the position at which the VTL devices that
15190	// were fetched for description ended. Use the marker in your next request to
15191	// fetch the next set of VTL devices in the list. If there are no more VTL devices
15192	// to describe, this field does not appear in the response.
15193	Marker *string `min:"1" type:"string"`
15194
15195	// An array of VTL device objects composed of the Amazon Resource Name (ARN)
15196	// of the VTL devices.
15197	VTLDevices []*VTLDevice `type:"list"`
15198}
15199
15200// String returns the string representation
15201func (s DescribeVTLDevicesOutput) String() string {
15202	return awsutil.Prettify(s)
15203}
15204
15205// GoString returns the string representation
15206func (s DescribeVTLDevicesOutput) GoString() string {
15207	return s.String()
15208}
15209
15210// SetGatewayARN sets the GatewayARN field's value.
15211func (s *DescribeVTLDevicesOutput) SetGatewayARN(v string) *DescribeVTLDevicesOutput {
15212	s.GatewayARN = &v
15213	return s
15214}
15215
15216// SetMarker sets the Marker field's value.
15217func (s *DescribeVTLDevicesOutput) SetMarker(v string) *DescribeVTLDevicesOutput {
15218	s.Marker = &v
15219	return s
15220}
15221
15222// SetVTLDevices sets the VTLDevices field's value.
15223func (s *DescribeVTLDevicesOutput) SetVTLDevices(v []*VTLDevice) *DescribeVTLDevicesOutput {
15224	s.VTLDevices = v
15225	return s
15226}
15227
15228// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
15229type DescribeWorkingStorageInput struct {
15230	_ struct{} `type:"structure"`
15231
15232	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15233	// to return a list of gateways for your account and AWS Region.
15234	//
15235	// GatewayARN is a required field
15236	GatewayARN *string `min:"50" type:"string" required:"true"`
15237}
15238
15239// String returns the string representation
15240func (s DescribeWorkingStorageInput) String() string {
15241	return awsutil.Prettify(s)
15242}
15243
15244// GoString returns the string representation
15245func (s DescribeWorkingStorageInput) GoString() string {
15246	return s.String()
15247}
15248
15249// Validate inspects the fields of the type to determine if they are valid.
15250func (s *DescribeWorkingStorageInput) Validate() error {
15251	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkingStorageInput"}
15252	if s.GatewayARN == nil {
15253		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15254	}
15255	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15256		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15257	}
15258
15259	if invalidParams.Len() > 0 {
15260		return invalidParams
15261	}
15262	return nil
15263}
15264
15265// SetGatewayARN sets the GatewayARN field's value.
15266func (s *DescribeWorkingStorageInput) SetGatewayARN(v string) *DescribeWorkingStorageInput {
15267	s.GatewayARN = &v
15268	return s
15269}
15270
15271// A JSON object containing the following fields:
15272type DescribeWorkingStorageOutput struct {
15273	_ struct{} `type:"structure"`
15274
15275	// An array of the gateway's local disk IDs that are configured as working storage.
15276	// Each local disk ID is specified as a string (minimum length of 1 and maximum
15277	// length of 300). If no local disks are configured as working storage, then
15278	// the DiskIds array is empty.
15279	DiskIds []*string `type:"list"`
15280
15281	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15282	// to return a list of gateways for your account and AWS Region.
15283	GatewayARN *string `min:"50" type:"string"`
15284
15285	// The total working storage in bytes allocated for the gateway. If no working
15286	// storage is configured for the gateway, this field returns 0.
15287	WorkingStorageAllocatedInBytes *int64 `type:"long"`
15288
15289	// The total working storage in bytes in use by the gateway. If no working storage
15290	// is configured for the gateway, this field returns 0.
15291	WorkingStorageUsedInBytes *int64 `type:"long"`
15292}
15293
15294// String returns the string representation
15295func (s DescribeWorkingStorageOutput) String() string {
15296	return awsutil.Prettify(s)
15297}
15298
15299// GoString returns the string representation
15300func (s DescribeWorkingStorageOutput) GoString() string {
15301	return s.String()
15302}
15303
15304// SetDiskIds sets the DiskIds field's value.
15305func (s *DescribeWorkingStorageOutput) SetDiskIds(v []*string) *DescribeWorkingStorageOutput {
15306	s.DiskIds = v
15307	return s
15308}
15309
15310// SetGatewayARN sets the GatewayARN field's value.
15311func (s *DescribeWorkingStorageOutput) SetGatewayARN(v string) *DescribeWorkingStorageOutput {
15312	s.GatewayARN = &v
15313	return s
15314}
15315
15316// SetWorkingStorageAllocatedInBytes sets the WorkingStorageAllocatedInBytes field's value.
15317func (s *DescribeWorkingStorageOutput) SetWorkingStorageAllocatedInBytes(v int64) *DescribeWorkingStorageOutput {
15318	s.WorkingStorageAllocatedInBytes = &v
15319	return s
15320}
15321
15322// SetWorkingStorageUsedInBytes sets the WorkingStorageUsedInBytes field's value.
15323func (s *DescribeWorkingStorageOutput) SetWorkingStorageUsedInBytes(v int64) *DescribeWorkingStorageOutput {
15324	s.WorkingStorageUsedInBytes = &v
15325	return s
15326}
15327
15328// AttachVolumeInput
15329type DetachVolumeInput struct {
15330	_ struct{} `type:"structure"`
15331
15332	// Set to true to forcibly remove the iSCSI connection of the target volume
15333	// and detach the volume. The default is false. If this value is set to false,
15334	// you must manually disconnect the iSCSI connection from the target volume.
15335	//
15336	// Valid Values: true | false
15337	ForceDetach *bool `type:"boolean"`
15338
15339	// The Amazon Resource Name (ARN) of the volume to detach from the gateway.
15340	//
15341	// VolumeARN is a required field
15342	VolumeARN *string `min:"50" type:"string" required:"true"`
15343}
15344
15345// String returns the string representation
15346func (s DetachVolumeInput) String() string {
15347	return awsutil.Prettify(s)
15348}
15349
15350// GoString returns the string representation
15351func (s DetachVolumeInput) GoString() string {
15352	return s.String()
15353}
15354
15355// Validate inspects the fields of the type to determine if they are valid.
15356func (s *DetachVolumeInput) Validate() error {
15357	invalidParams := request.ErrInvalidParams{Context: "DetachVolumeInput"}
15358	if s.VolumeARN == nil {
15359		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
15360	}
15361	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
15362		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
15363	}
15364
15365	if invalidParams.Len() > 0 {
15366		return invalidParams
15367	}
15368	return nil
15369}
15370
15371// SetForceDetach sets the ForceDetach field's value.
15372func (s *DetachVolumeInput) SetForceDetach(v bool) *DetachVolumeInput {
15373	s.ForceDetach = &v
15374	return s
15375}
15376
15377// SetVolumeARN sets the VolumeARN field's value.
15378func (s *DetachVolumeInput) SetVolumeARN(v string) *DetachVolumeInput {
15379	s.VolumeARN = &v
15380	return s
15381}
15382
15383// AttachVolumeOutput
15384type DetachVolumeOutput struct {
15385	_ struct{} `type:"structure"`
15386
15387	// The Amazon Resource Name (ARN) of the volume that was detached.
15388	VolumeARN *string `min:"50" type:"string"`
15389}
15390
15391// String returns the string representation
15392func (s DetachVolumeOutput) String() string {
15393	return awsutil.Prettify(s)
15394}
15395
15396// GoString returns the string representation
15397func (s DetachVolumeOutput) GoString() string {
15398	return s.String()
15399}
15400
15401// SetVolumeARN sets the VolumeARN field's value.
15402func (s *DetachVolumeOutput) SetVolumeARN(v string) *DetachVolumeOutput {
15403	s.VolumeARN = &v
15404	return s
15405}
15406
15407// Lists iSCSI information about a VTL device.
15408type DeviceiSCSIAttributes struct {
15409	_ struct{} `type:"structure"`
15410
15411	// Indicates whether mutual CHAP is enabled for the iSCSI target.
15412	ChapEnabled *bool `type:"boolean"`
15413
15414	// The network interface identifier of the VTL device.
15415	NetworkInterfaceId *string `type:"string"`
15416
15417	// The port used to communicate with iSCSI VTL device targets.
15418	NetworkInterfacePort *int64 `type:"integer"`
15419
15420	// Specifies the unique Amazon Resource Name (ARN) that encodes the iSCSI qualified
15421	// name(iqn) of a tape drive or media changer target.
15422	TargetARN *string `min:"50" type:"string"`
15423}
15424
15425// String returns the string representation
15426func (s DeviceiSCSIAttributes) String() string {
15427	return awsutil.Prettify(s)
15428}
15429
15430// GoString returns the string representation
15431func (s DeviceiSCSIAttributes) GoString() string {
15432	return s.String()
15433}
15434
15435// SetChapEnabled sets the ChapEnabled field's value.
15436func (s *DeviceiSCSIAttributes) SetChapEnabled(v bool) *DeviceiSCSIAttributes {
15437	s.ChapEnabled = &v
15438	return s
15439}
15440
15441// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
15442func (s *DeviceiSCSIAttributes) SetNetworkInterfaceId(v string) *DeviceiSCSIAttributes {
15443	s.NetworkInterfaceId = &v
15444	return s
15445}
15446
15447// SetNetworkInterfacePort sets the NetworkInterfacePort field's value.
15448func (s *DeviceiSCSIAttributes) SetNetworkInterfacePort(v int64) *DeviceiSCSIAttributes {
15449	s.NetworkInterfacePort = &v
15450	return s
15451}
15452
15453// SetTargetARN sets the TargetARN field's value.
15454func (s *DeviceiSCSIAttributes) SetTargetARN(v string) *DeviceiSCSIAttributes {
15455	s.TargetARN = &v
15456	return s
15457}
15458
15459// DisableGatewayInput
15460type DisableGatewayInput struct {
15461	_ struct{} `type:"structure"`
15462
15463	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15464	// to return a list of gateways for your account and AWS Region.
15465	//
15466	// GatewayARN is a required field
15467	GatewayARN *string `min:"50" type:"string" required:"true"`
15468}
15469
15470// String returns the string representation
15471func (s DisableGatewayInput) String() string {
15472	return awsutil.Prettify(s)
15473}
15474
15475// GoString returns the string representation
15476func (s DisableGatewayInput) GoString() string {
15477	return s.String()
15478}
15479
15480// Validate inspects the fields of the type to determine if they are valid.
15481func (s *DisableGatewayInput) Validate() error {
15482	invalidParams := request.ErrInvalidParams{Context: "DisableGatewayInput"}
15483	if s.GatewayARN == nil {
15484		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15485	}
15486	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15487		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15488	}
15489
15490	if invalidParams.Len() > 0 {
15491		return invalidParams
15492	}
15493	return nil
15494}
15495
15496// SetGatewayARN sets the GatewayARN field's value.
15497func (s *DisableGatewayInput) SetGatewayARN(v string) *DisableGatewayInput {
15498	s.GatewayARN = &v
15499	return s
15500}
15501
15502// DisableGatewayOutput
15503type DisableGatewayOutput struct {
15504	_ struct{} `type:"structure"`
15505
15506	// The unique Amazon Resource Name (ARN) of the disabled gateway.
15507	GatewayARN *string `min:"50" type:"string"`
15508}
15509
15510// String returns the string representation
15511func (s DisableGatewayOutput) String() string {
15512	return awsutil.Prettify(s)
15513}
15514
15515// GoString returns the string representation
15516func (s DisableGatewayOutput) GoString() string {
15517	return s.String()
15518}
15519
15520// SetGatewayARN sets the GatewayARN field's value.
15521func (s *DisableGatewayOutput) SetGatewayARN(v string) *DisableGatewayOutput {
15522	s.GatewayARN = &v
15523	return s
15524}
15525
15526type DisassociateFileSystemInput struct {
15527	_ struct{} `type:"structure"`
15528
15529	// The Amazon Resource Name (ARN) of the file system association to be deleted.
15530	//
15531	// FileSystemAssociationARN is a required field
15532	FileSystemAssociationARN *string `min:"50" type:"string" required:"true"`
15533
15534	// If this value is set to true, the operation disassociates an Amazon FSx file
15535	// system immediately. It ends all data uploads to the file system, and the
15536	// file system association enters the FORCE_DELETING status. If this value is
15537	// set to false, the Amazon FSx file system does not disassociate until all
15538	// data is uploaded.
15539	ForceDelete *bool `type:"boolean"`
15540}
15541
15542// String returns the string representation
15543func (s DisassociateFileSystemInput) String() string {
15544	return awsutil.Prettify(s)
15545}
15546
15547// GoString returns the string representation
15548func (s DisassociateFileSystemInput) GoString() string {
15549	return s.String()
15550}
15551
15552// Validate inspects the fields of the type to determine if they are valid.
15553func (s *DisassociateFileSystemInput) Validate() error {
15554	invalidParams := request.ErrInvalidParams{Context: "DisassociateFileSystemInput"}
15555	if s.FileSystemAssociationARN == nil {
15556		invalidParams.Add(request.NewErrParamRequired("FileSystemAssociationARN"))
15557	}
15558	if s.FileSystemAssociationARN != nil && len(*s.FileSystemAssociationARN) < 50 {
15559		invalidParams.Add(request.NewErrParamMinLen("FileSystemAssociationARN", 50))
15560	}
15561
15562	if invalidParams.Len() > 0 {
15563		return invalidParams
15564	}
15565	return nil
15566}
15567
15568// SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
15569func (s *DisassociateFileSystemInput) SetFileSystemAssociationARN(v string) *DisassociateFileSystemInput {
15570	s.FileSystemAssociationARN = &v
15571	return s
15572}
15573
15574// SetForceDelete sets the ForceDelete field's value.
15575func (s *DisassociateFileSystemInput) SetForceDelete(v bool) *DisassociateFileSystemInput {
15576	s.ForceDelete = &v
15577	return s
15578}
15579
15580type DisassociateFileSystemOutput struct {
15581	_ struct{} `type:"structure"`
15582
15583	// The Amazon Resource Name (ARN) of the deleted file system association.
15584	FileSystemAssociationARN *string `min:"50" type:"string"`
15585}
15586
15587// String returns the string representation
15588func (s DisassociateFileSystemOutput) String() string {
15589	return awsutil.Prettify(s)
15590}
15591
15592// GoString returns the string representation
15593func (s DisassociateFileSystemOutput) GoString() string {
15594	return s.String()
15595}
15596
15597// SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
15598func (s *DisassociateFileSystemOutput) SetFileSystemAssociationARN(v string) *DisassociateFileSystemOutput {
15599	s.FileSystemAssociationARN = &v
15600	return s
15601}
15602
15603// Represents a gateway's local disk.
15604type Disk struct {
15605	_ struct{} `type:"structure"`
15606
15607	// The iSCSI qualified name (IQN) that is defined for a disk. This field is
15608	// not included in the response if the local disk is not defined as an iSCSI
15609	// target. The format of this field is targetIqn::LUNNumber::region-volumeId.
15610	DiskAllocationResource *string `type:"string"`
15611
15612	// One of the DiskAllocationType enumeration values that identifies how a local
15613	// disk is used.
15614	//
15615	// Valid Values: UPLOAD_BUFFER | CACHE_STORAGE
15616	DiskAllocationType *string `min:"3" type:"string"`
15617
15618	// A list of values that represents attributes of a local disk.
15619	DiskAttributeList []*string `type:"list"`
15620
15621	// The unique device ID or other distinguishing data that identifies a local
15622	// disk.
15623	DiskId *string `min:"1" type:"string"`
15624
15625	// The device node of a local disk as assigned by the virtualization environment.
15626	DiskNode *string `type:"string"`
15627
15628	// The path of a local disk in the gateway virtual machine (VM).
15629	DiskPath *string `type:"string"`
15630
15631	// The local disk size in bytes.
15632	DiskSizeInBytes *int64 `type:"long"`
15633
15634	// A value that represents the status of a local disk.
15635	DiskStatus *string `type:"string"`
15636}
15637
15638// String returns the string representation
15639func (s Disk) String() string {
15640	return awsutil.Prettify(s)
15641}
15642
15643// GoString returns the string representation
15644func (s Disk) GoString() string {
15645	return s.String()
15646}
15647
15648// SetDiskAllocationResource sets the DiskAllocationResource field's value.
15649func (s *Disk) SetDiskAllocationResource(v string) *Disk {
15650	s.DiskAllocationResource = &v
15651	return s
15652}
15653
15654// SetDiskAllocationType sets the DiskAllocationType field's value.
15655func (s *Disk) SetDiskAllocationType(v string) *Disk {
15656	s.DiskAllocationType = &v
15657	return s
15658}
15659
15660// SetDiskAttributeList sets the DiskAttributeList field's value.
15661func (s *Disk) SetDiskAttributeList(v []*string) *Disk {
15662	s.DiskAttributeList = v
15663	return s
15664}
15665
15666// SetDiskId sets the DiskId field's value.
15667func (s *Disk) SetDiskId(v string) *Disk {
15668	s.DiskId = &v
15669	return s
15670}
15671
15672// SetDiskNode sets the DiskNode field's value.
15673func (s *Disk) SetDiskNode(v string) *Disk {
15674	s.DiskNode = &v
15675	return s
15676}
15677
15678// SetDiskPath sets the DiskPath field's value.
15679func (s *Disk) SetDiskPath(v string) *Disk {
15680	s.DiskPath = &v
15681	return s
15682}
15683
15684// SetDiskSizeInBytes sets the DiskSizeInBytes field's value.
15685func (s *Disk) SetDiskSizeInBytes(v int64) *Disk {
15686	s.DiskSizeInBytes = &v
15687	return s
15688}
15689
15690// SetDiskStatus sets the DiskStatus field's value.
15691func (s *Disk) SetDiskStatus(v string) *Disk {
15692	s.DiskStatus = &v
15693	return s
15694}
15695
15696// Provides additional information about an error that was returned by the service.
15697// See the errorCode and errorDetails members for more information about the
15698// error.
15699type Error struct {
15700	_ struct{} `type:"structure"`
15701
15702	// Additional information about the error.
15703	ErrorCode *string `locationName:"errorCode" type:"string" enum:"ErrorCode"`
15704
15705	// Human-readable text that provides detail about the error that occurred.
15706	ErrorDetails map[string]*string `locationName:"errorDetails" type:"map"`
15707}
15708
15709// String returns the string representation
15710func (s Error) String() string {
15711	return awsutil.Prettify(s)
15712}
15713
15714// GoString returns the string representation
15715func (s Error) GoString() string {
15716	return s.String()
15717}
15718
15719// SetErrorCode sets the ErrorCode field's value.
15720func (s *Error) SetErrorCode(v string) *Error {
15721	s.ErrorCode = &v
15722	return s
15723}
15724
15725// SetErrorDetails sets the ErrorDetails field's value.
15726func (s *Error) SetErrorDetails(v map[string]*string) *Error {
15727	s.ErrorDetails = v
15728	return s
15729}
15730
15731// Describes a file share.
15732type FileShareInfo struct {
15733	_ struct{} `type:"structure"`
15734
15735	// The Amazon Resource Name (ARN) of the file share.
15736	FileShareARN *string `min:"50" type:"string"`
15737
15738	// The ID of the file share.
15739	FileShareId *string `min:"12" type:"string"`
15740
15741	// The status of the file share.
15742	//
15743	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
15744	FileShareStatus *string `min:"3" type:"string"`
15745
15746	// The type of the file share.
15747	FileShareType *string `type:"string" enum:"FileShareType"`
15748
15749	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15750	// to return a list of gateways for your account and AWS Region.
15751	GatewayARN *string `min:"50" type:"string"`
15752}
15753
15754// String returns the string representation
15755func (s FileShareInfo) String() string {
15756	return awsutil.Prettify(s)
15757}
15758
15759// GoString returns the string representation
15760func (s FileShareInfo) GoString() string {
15761	return s.String()
15762}
15763
15764// SetFileShareARN sets the FileShareARN field's value.
15765func (s *FileShareInfo) SetFileShareARN(v string) *FileShareInfo {
15766	s.FileShareARN = &v
15767	return s
15768}
15769
15770// SetFileShareId sets the FileShareId field's value.
15771func (s *FileShareInfo) SetFileShareId(v string) *FileShareInfo {
15772	s.FileShareId = &v
15773	return s
15774}
15775
15776// SetFileShareStatus sets the FileShareStatus field's value.
15777func (s *FileShareInfo) SetFileShareStatus(v string) *FileShareInfo {
15778	s.FileShareStatus = &v
15779	return s
15780}
15781
15782// SetFileShareType sets the FileShareType field's value.
15783func (s *FileShareInfo) SetFileShareType(v string) *FileShareInfo {
15784	s.FileShareType = &v
15785	return s
15786}
15787
15788// SetGatewayARN sets the GatewayARN field's value.
15789func (s *FileShareInfo) SetGatewayARN(v string) *FileShareInfo {
15790	s.GatewayARN = &v
15791	return s
15792}
15793
15794// Describes the object returned by DescribeFileSystemAssociations that describes
15795// a created file system association.
15796type FileSystemAssociationInfo struct {
15797	_ struct{} `type:"structure"`
15798
15799	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
15800	AuditDestinationARN *string `type:"string"`
15801
15802	// The refresh cache information for the file share.
15803	CacheAttributes *CacheAttributes `type:"structure"`
15804
15805	// The Amazon Resource Name (ARN) of the file system association.
15806	FileSystemAssociationARN *string `min:"50" type:"string"`
15807
15808	// The status of the file system association. Valid Values: AVAILABLE | CREATING
15809	// | DELETING | FORCE_DELETING | MISCONFIGURED | UPDATING | UNAVAILABLE
15810	FileSystemAssociationStatus *string `min:"3" type:"string"`
15811
15812	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15813	// to return a list of gateways for your account and AWS Region.
15814	GatewayARN *string `min:"50" type:"string"`
15815
15816	// The ARN of the backend Amazon FSx file system used for storing file data.
15817	// For information, see FileSystem (https://docs.aws.amazon.com/fsx/latest/APIReference/API_FileSystem.html)
15818	// in the Amazon FSx API Reference.
15819	LocationARN *string `min:"8" type:"string"`
15820
15821	// A list of up to 50 tags assigned to the SMB file share, sorted alphabetically
15822	// by key name. Each tag is a key-value pair.
15823	Tags []*Tag `type:"list"`
15824}
15825
15826// String returns the string representation
15827func (s FileSystemAssociationInfo) String() string {
15828	return awsutil.Prettify(s)
15829}
15830
15831// GoString returns the string representation
15832func (s FileSystemAssociationInfo) GoString() string {
15833	return s.String()
15834}
15835
15836// SetAuditDestinationARN sets the AuditDestinationARN field's value.
15837func (s *FileSystemAssociationInfo) SetAuditDestinationARN(v string) *FileSystemAssociationInfo {
15838	s.AuditDestinationARN = &v
15839	return s
15840}
15841
15842// SetCacheAttributes sets the CacheAttributes field's value.
15843func (s *FileSystemAssociationInfo) SetCacheAttributes(v *CacheAttributes) *FileSystemAssociationInfo {
15844	s.CacheAttributes = v
15845	return s
15846}
15847
15848// SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
15849func (s *FileSystemAssociationInfo) SetFileSystemAssociationARN(v string) *FileSystemAssociationInfo {
15850	s.FileSystemAssociationARN = &v
15851	return s
15852}
15853
15854// SetFileSystemAssociationStatus sets the FileSystemAssociationStatus field's value.
15855func (s *FileSystemAssociationInfo) SetFileSystemAssociationStatus(v string) *FileSystemAssociationInfo {
15856	s.FileSystemAssociationStatus = &v
15857	return s
15858}
15859
15860// SetGatewayARN sets the GatewayARN field's value.
15861func (s *FileSystemAssociationInfo) SetGatewayARN(v string) *FileSystemAssociationInfo {
15862	s.GatewayARN = &v
15863	return s
15864}
15865
15866// SetLocationARN sets the LocationARN field's value.
15867func (s *FileSystemAssociationInfo) SetLocationARN(v string) *FileSystemAssociationInfo {
15868	s.LocationARN = &v
15869	return s
15870}
15871
15872// SetTags sets the Tags field's value.
15873func (s *FileSystemAssociationInfo) SetTags(v []*Tag) *FileSystemAssociationInfo {
15874	s.Tags = v
15875	return s
15876}
15877
15878// Gets the summary returned by ListFileSystemAssociation, which is a summary
15879// of a created file system association.
15880type FileSystemAssociationSummary struct {
15881	_ struct{} `type:"structure"`
15882
15883	// The Amazon Resource Name (ARN) of the file system association.
15884	FileSystemAssociationARN *string `min:"50" type:"string"`
15885
15886	// The ID of the file system association.
15887	FileSystemAssociationId *string `min:"10" type:"string"`
15888
15889	// The status of the file share. Valid Values: AVAILABLE | CREATING | DELETING
15890	// | FORCE_DELETING | MISCONFIGURED | UPDATING | UNAVAILABLE
15891	FileSystemAssociationStatus *string `min:"3" type:"string"`
15892
15893	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15894	// to return a list of gateways for your account and AWS Region.
15895	GatewayARN *string `min:"50" type:"string"`
15896}
15897
15898// String returns the string representation
15899func (s FileSystemAssociationSummary) String() string {
15900	return awsutil.Prettify(s)
15901}
15902
15903// GoString returns the string representation
15904func (s FileSystemAssociationSummary) GoString() string {
15905	return s.String()
15906}
15907
15908// SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
15909func (s *FileSystemAssociationSummary) SetFileSystemAssociationARN(v string) *FileSystemAssociationSummary {
15910	s.FileSystemAssociationARN = &v
15911	return s
15912}
15913
15914// SetFileSystemAssociationId sets the FileSystemAssociationId field's value.
15915func (s *FileSystemAssociationSummary) SetFileSystemAssociationId(v string) *FileSystemAssociationSummary {
15916	s.FileSystemAssociationId = &v
15917	return s
15918}
15919
15920// SetFileSystemAssociationStatus sets the FileSystemAssociationStatus field's value.
15921func (s *FileSystemAssociationSummary) SetFileSystemAssociationStatus(v string) *FileSystemAssociationSummary {
15922	s.FileSystemAssociationStatus = &v
15923	return s
15924}
15925
15926// SetGatewayARN sets the GatewayARN field's value.
15927func (s *FileSystemAssociationSummary) SetGatewayARN(v string) *FileSystemAssociationSummary {
15928	s.GatewayARN = &v
15929	return s
15930}
15931
15932// Describes a gateway object.
15933type GatewayInfo struct {
15934	_ struct{} `type:"structure"`
15935
15936	// The ID of the Amazon EC2 instance that was used to launch the gateway.
15937	Ec2InstanceId *string `type:"string"`
15938
15939	// The AWS Region where the Amazon EC2 instance is located.
15940	Ec2InstanceRegion *string `type:"string"`
15941
15942	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15943	// to return a list of gateways for your account and AWS Region.
15944	GatewayARN *string `min:"50" type:"string"`
15945
15946	// The unique identifier assigned to your gateway during activation. This ID
15947	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
15948	// input for other operations.
15949	GatewayId *string `min:"12" type:"string"`
15950
15951	// The name of the gateway.
15952	GatewayName *string `type:"string"`
15953
15954	// The state of the gateway.
15955	//
15956	// Valid Values: DISABLED | ACTIVE
15957	GatewayOperationalState *string `min:"2" type:"string"`
15958
15959	// The type of the gateway.
15960	GatewayType *string `min:"2" type:"string"`
15961}
15962
15963// String returns the string representation
15964func (s GatewayInfo) String() string {
15965	return awsutil.Prettify(s)
15966}
15967
15968// GoString returns the string representation
15969func (s GatewayInfo) GoString() string {
15970	return s.String()
15971}
15972
15973// SetEc2InstanceId sets the Ec2InstanceId field's value.
15974func (s *GatewayInfo) SetEc2InstanceId(v string) *GatewayInfo {
15975	s.Ec2InstanceId = &v
15976	return s
15977}
15978
15979// SetEc2InstanceRegion sets the Ec2InstanceRegion field's value.
15980func (s *GatewayInfo) SetEc2InstanceRegion(v string) *GatewayInfo {
15981	s.Ec2InstanceRegion = &v
15982	return s
15983}
15984
15985// SetGatewayARN sets the GatewayARN field's value.
15986func (s *GatewayInfo) SetGatewayARN(v string) *GatewayInfo {
15987	s.GatewayARN = &v
15988	return s
15989}
15990
15991// SetGatewayId sets the GatewayId field's value.
15992func (s *GatewayInfo) SetGatewayId(v string) *GatewayInfo {
15993	s.GatewayId = &v
15994	return s
15995}
15996
15997// SetGatewayName sets the GatewayName field's value.
15998func (s *GatewayInfo) SetGatewayName(v string) *GatewayInfo {
15999	s.GatewayName = &v
16000	return s
16001}
16002
16003// SetGatewayOperationalState sets the GatewayOperationalState field's value.
16004func (s *GatewayInfo) SetGatewayOperationalState(v string) *GatewayInfo {
16005	s.GatewayOperationalState = &v
16006	return s
16007}
16008
16009// SetGatewayType sets the GatewayType field's value.
16010func (s *GatewayInfo) SetGatewayType(v string) *GatewayInfo {
16011	s.GatewayType = &v
16012	return s
16013}
16014
16015// An internal server error has occurred during the request. For more information,
16016// see the error and message fields.
16017type InternalServerError struct {
16018	_            struct{}                  `type:"structure"`
16019	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16020
16021	// A StorageGatewayError that provides more information about the cause of the
16022	// error.
16023	Error_ *Error `locationName:"error" type:"structure"`
16024
16025	// A human-readable message describing the error that occurred.
16026	Message_ *string `locationName:"message" type:"string"`
16027}
16028
16029// String returns the string representation
16030func (s InternalServerError) String() string {
16031	return awsutil.Prettify(s)
16032}
16033
16034// GoString returns the string representation
16035func (s InternalServerError) GoString() string {
16036	return s.String()
16037}
16038
16039func newErrorInternalServerError(v protocol.ResponseMetadata) error {
16040	return &InternalServerError{
16041		RespMetadata: v,
16042	}
16043}
16044
16045// Code returns the exception type name.
16046func (s *InternalServerError) Code() string {
16047	return "InternalServerError"
16048}
16049
16050// Message returns the exception's message.
16051func (s *InternalServerError) Message() string {
16052	if s.Message_ != nil {
16053		return *s.Message_
16054	}
16055	return ""
16056}
16057
16058// OrigErr always returns nil, satisfies awserr.Error interface.
16059func (s *InternalServerError) OrigErr() error {
16060	return nil
16061}
16062
16063func (s *InternalServerError) Error() string {
16064	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
16065}
16066
16067// Status code returns the HTTP status code for the request's response error.
16068func (s *InternalServerError) StatusCode() int {
16069	return s.RespMetadata.StatusCode
16070}
16071
16072// RequestID returns the service's response RequestID for request.
16073func (s *InternalServerError) RequestID() string {
16074	return s.RespMetadata.RequestID
16075}
16076
16077// An exception occurred because an invalid gateway request was issued to the
16078// service. For more information, see the error and message fields.
16079type InvalidGatewayRequestException struct {
16080	_            struct{}                  `type:"structure"`
16081	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16082
16083	// A StorageGatewayError that provides more detail about the cause of the error.
16084	Error_ *Error `locationName:"error" type:"structure"`
16085
16086	// A human-readable message describing the error that occurred.
16087	Message_ *string `locationName:"message" type:"string"`
16088}
16089
16090// String returns the string representation
16091func (s InvalidGatewayRequestException) String() string {
16092	return awsutil.Prettify(s)
16093}
16094
16095// GoString returns the string representation
16096func (s InvalidGatewayRequestException) GoString() string {
16097	return s.String()
16098}
16099
16100func newErrorInvalidGatewayRequestException(v protocol.ResponseMetadata) error {
16101	return &InvalidGatewayRequestException{
16102		RespMetadata: v,
16103	}
16104}
16105
16106// Code returns the exception type name.
16107func (s *InvalidGatewayRequestException) Code() string {
16108	return "InvalidGatewayRequestException"
16109}
16110
16111// Message returns the exception's message.
16112func (s *InvalidGatewayRequestException) Message() string {
16113	if s.Message_ != nil {
16114		return *s.Message_
16115	}
16116	return ""
16117}
16118
16119// OrigErr always returns nil, satisfies awserr.Error interface.
16120func (s *InvalidGatewayRequestException) OrigErr() error {
16121	return nil
16122}
16123
16124func (s *InvalidGatewayRequestException) Error() string {
16125	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
16126}
16127
16128// Status code returns the HTTP status code for the request's response error.
16129func (s *InvalidGatewayRequestException) StatusCode() int {
16130	return s.RespMetadata.StatusCode
16131}
16132
16133// RequestID returns the service's response RequestID for request.
16134func (s *InvalidGatewayRequestException) RequestID() string {
16135	return s.RespMetadata.RequestID
16136}
16137
16138// JoinDomainInput
16139type JoinDomainInput struct {
16140	_ struct{} `type:"structure"`
16141
16142	// List of IPv4 addresses, NetBIOS names, or host names of your domain server.
16143	// If you need to specify the port number include it after the colon (“:”).
16144	// For example, mydc.mydomain.com:389.
16145	DomainControllers []*string `type:"list"`
16146
16147	// The name of the domain that you want the gateway to join.
16148	//
16149	// DomainName is a required field
16150	DomainName *string `min:"1" type:"string" required:"true"`
16151
16152	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16153	// to return a list of gateways for your account and AWS Region.
16154	//
16155	// GatewayARN is a required field
16156	GatewayARN *string `min:"50" type:"string" required:"true"`
16157
16158	// The organizational unit (OU) is a container in an Active Directory that can
16159	// hold users, groups, computers, and other OUs and this parameter specifies
16160	// the OU that the gateway will join within the AD domain.
16161	OrganizationalUnit *string `min:"1" type:"string"`
16162
16163	// Sets the password of the user who has permission to add the gateway to the
16164	// Active Directory domain.
16165	//
16166	// Password is a required field
16167	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
16168
16169	// Specifies the time in seconds, in which the JoinDomain operation must complete.
16170	// The default is 20 seconds.
16171	TimeoutInSeconds *int64 `type:"integer"`
16172
16173	// Sets the user name of user who has permission to add the gateway to the Active
16174	// Directory domain. The domain user account should be enabled to join computers
16175	// to the domain. For example, you can use the domain administrator account
16176	// or an account with delegated permissions to join computers to the domain.
16177	//
16178	// UserName is a required field
16179	UserName *string `min:"1" type:"string" required:"true"`
16180}
16181
16182// String returns the string representation
16183func (s JoinDomainInput) String() string {
16184	return awsutil.Prettify(s)
16185}
16186
16187// GoString returns the string representation
16188func (s JoinDomainInput) GoString() string {
16189	return s.String()
16190}
16191
16192// Validate inspects the fields of the type to determine if they are valid.
16193func (s *JoinDomainInput) Validate() error {
16194	invalidParams := request.ErrInvalidParams{Context: "JoinDomainInput"}
16195	if s.DomainName == nil {
16196		invalidParams.Add(request.NewErrParamRequired("DomainName"))
16197	}
16198	if s.DomainName != nil && len(*s.DomainName) < 1 {
16199		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
16200	}
16201	if s.GatewayARN == nil {
16202		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16203	}
16204	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16205		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16206	}
16207	if s.OrganizationalUnit != nil && len(*s.OrganizationalUnit) < 1 {
16208		invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnit", 1))
16209	}
16210	if s.Password == nil {
16211		invalidParams.Add(request.NewErrParamRequired("Password"))
16212	}
16213	if s.Password != nil && len(*s.Password) < 1 {
16214		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
16215	}
16216	if s.UserName == nil {
16217		invalidParams.Add(request.NewErrParamRequired("UserName"))
16218	}
16219	if s.UserName != nil && len(*s.UserName) < 1 {
16220		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
16221	}
16222
16223	if invalidParams.Len() > 0 {
16224		return invalidParams
16225	}
16226	return nil
16227}
16228
16229// SetDomainControllers sets the DomainControllers field's value.
16230func (s *JoinDomainInput) SetDomainControllers(v []*string) *JoinDomainInput {
16231	s.DomainControllers = v
16232	return s
16233}
16234
16235// SetDomainName sets the DomainName field's value.
16236func (s *JoinDomainInput) SetDomainName(v string) *JoinDomainInput {
16237	s.DomainName = &v
16238	return s
16239}
16240
16241// SetGatewayARN sets the GatewayARN field's value.
16242func (s *JoinDomainInput) SetGatewayARN(v string) *JoinDomainInput {
16243	s.GatewayARN = &v
16244	return s
16245}
16246
16247// SetOrganizationalUnit sets the OrganizationalUnit field's value.
16248func (s *JoinDomainInput) SetOrganizationalUnit(v string) *JoinDomainInput {
16249	s.OrganizationalUnit = &v
16250	return s
16251}
16252
16253// SetPassword sets the Password field's value.
16254func (s *JoinDomainInput) SetPassword(v string) *JoinDomainInput {
16255	s.Password = &v
16256	return s
16257}
16258
16259// SetTimeoutInSeconds sets the TimeoutInSeconds field's value.
16260func (s *JoinDomainInput) SetTimeoutInSeconds(v int64) *JoinDomainInput {
16261	s.TimeoutInSeconds = &v
16262	return s
16263}
16264
16265// SetUserName sets the UserName field's value.
16266func (s *JoinDomainInput) SetUserName(v string) *JoinDomainInput {
16267	s.UserName = &v
16268	return s
16269}
16270
16271// JoinDomainOutput
16272type JoinDomainOutput struct {
16273	_ struct{} `type:"structure"`
16274
16275	// Indicates the status of the gateway as a member of the Active Directory domain.
16276	//
16277	//    * ACCESS_DENIED: Indicates that the JoinDomain operation failed due to
16278	//    an authentication error.
16279	//
16280	//    * DETACHED: Indicates that gateway is not joined to a domain.
16281	//
16282	//    * JOINED: Indicates that the gateway has successfully joined a domain.
16283	//
16284	//    * JOINING: Indicates that a JoinDomain operation is in progress.
16285	//
16286	//    * NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network
16287	//    or connectivity error.
16288	//
16289	//    * TIMEOUT: Indicates that the JoinDomain operation failed because the
16290	//    operation didn't complete within the allotted time.
16291	//
16292	//    * UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to
16293	//    another type of error.
16294	ActiveDirectoryStatus *string `type:"string" enum:"ActiveDirectoryStatus"`
16295
16296	// The unique Amazon Resource Name (ARN) of the gateway that joined the domain.
16297	GatewayARN *string `min:"50" type:"string"`
16298}
16299
16300// String returns the string representation
16301func (s JoinDomainOutput) String() string {
16302	return awsutil.Prettify(s)
16303}
16304
16305// GoString returns the string representation
16306func (s JoinDomainOutput) GoString() string {
16307	return s.String()
16308}
16309
16310// SetActiveDirectoryStatus sets the ActiveDirectoryStatus field's value.
16311func (s *JoinDomainOutput) SetActiveDirectoryStatus(v string) *JoinDomainOutput {
16312	s.ActiveDirectoryStatus = &v
16313	return s
16314}
16315
16316// SetGatewayARN sets the GatewayARN field's value.
16317func (s *JoinDomainOutput) SetGatewayARN(v string) *JoinDomainOutput {
16318	s.GatewayARN = &v
16319	return s
16320}
16321
16322type ListAutomaticTapeCreationPoliciesInput struct {
16323	_ struct{} `type:"structure"`
16324
16325	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16326	// to return a list of gateways for your account and AWS Region.
16327	GatewayARN *string `min:"50" type:"string"`
16328}
16329
16330// String returns the string representation
16331func (s ListAutomaticTapeCreationPoliciesInput) String() string {
16332	return awsutil.Prettify(s)
16333}
16334
16335// GoString returns the string representation
16336func (s ListAutomaticTapeCreationPoliciesInput) GoString() string {
16337	return s.String()
16338}
16339
16340// Validate inspects the fields of the type to determine if they are valid.
16341func (s *ListAutomaticTapeCreationPoliciesInput) Validate() error {
16342	invalidParams := request.ErrInvalidParams{Context: "ListAutomaticTapeCreationPoliciesInput"}
16343	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16344		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16345	}
16346
16347	if invalidParams.Len() > 0 {
16348		return invalidParams
16349	}
16350	return nil
16351}
16352
16353// SetGatewayARN sets the GatewayARN field's value.
16354func (s *ListAutomaticTapeCreationPoliciesInput) SetGatewayARN(v string) *ListAutomaticTapeCreationPoliciesInput {
16355	s.GatewayARN = &v
16356	return s
16357}
16358
16359type ListAutomaticTapeCreationPoliciesOutput struct {
16360	_ struct{} `type:"structure"`
16361
16362	// Gets a listing of information about the gateway's automatic tape creation
16363	// policies, including the automatic tape creation rules and the gateway that
16364	// is using the policies.
16365	AutomaticTapeCreationPolicyInfos []*AutomaticTapeCreationPolicyInfo `type:"list"`
16366}
16367
16368// String returns the string representation
16369func (s ListAutomaticTapeCreationPoliciesOutput) String() string {
16370	return awsutil.Prettify(s)
16371}
16372
16373// GoString returns the string representation
16374func (s ListAutomaticTapeCreationPoliciesOutput) GoString() string {
16375	return s.String()
16376}
16377
16378// SetAutomaticTapeCreationPolicyInfos sets the AutomaticTapeCreationPolicyInfos field's value.
16379func (s *ListAutomaticTapeCreationPoliciesOutput) SetAutomaticTapeCreationPolicyInfos(v []*AutomaticTapeCreationPolicyInfo) *ListAutomaticTapeCreationPoliciesOutput {
16380	s.AutomaticTapeCreationPolicyInfos = v
16381	return s
16382}
16383
16384// ListFileShareInput
16385type ListFileSharesInput struct {
16386	_ struct{} `type:"structure"`
16387
16388	// The Amazon Resource Name (ARN) of the gateway whose file shares you want
16389	// to list. If this field is not present, all file shares under your account
16390	// are listed.
16391	GatewayARN *string `min:"50" type:"string"`
16392
16393	// The maximum number of file shares to return in the response. The value must
16394	// be an integer with a value greater than zero. Optional.
16395	Limit *int64 `min:"1" type:"integer"`
16396
16397	// Opaque pagination token returned from a previous ListFileShares operation.
16398	// If present, Marker specifies where to continue the list from after a previous
16399	// call to ListFileShares. Optional.
16400	Marker *string `min:"1" type:"string"`
16401}
16402
16403// String returns the string representation
16404func (s ListFileSharesInput) String() string {
16405	return awsutil.Prettify(s)
16406}
16407
16408// GoString returns the string representation
16409func (s ListFileSharesInput) GoString() string {
16410	return s.String()
16411}
16412
16413// Validate inspects the fields of the type to determine if they are valid.
16414func (s *ListFileSharesInput) Validate() error {
16415	invalidParams := request.ErrInvalidParams{Context: "ListFileSharesInput"}
16416	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16417		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16418	}
16419	if s.Limit != nil && *s.Limit < 1 {
16420		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
16421	}
16422	if s.Marker != nil && len(*s.Marker) < 1 {
16423		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
16424	}
16425
16426	if invalidParams.Len() > 0 {
16427		return invalidParams
16428	}
16429	return nil
16430}
16431
16432// SetGatewayARN sets the GatewayARN field's value.
16433func (s *ListFileSharesInput) SetGatewayARN(v string) *ListFileSharesInput {
16434	s.GatewayARN = &v
16435	return s
16436}
16437
16438// SetLimit sets the Limit field's value.
16439func (s *ListFileSharesInput) SetLimit(v int64) *ListFileSharesInput {
16440	s.Limit = &v
16441	return s
16442}
16443
16444// SetMarker sets the Marker field's value.
16445func (s *ListFileSharesInput) SetMarker(v string) *ListFileSharesInput {
16446	s.Marker = &v
16447	return s
16448}
16449
16450// ListFileShareOutput
16451type ListFileSharesOutput struct {
16452	_ struct{} `type:"structure"`
16453
16454	// An array of information about the file gateway's file shares.
16455	FileShareInfoList []*FileShareInfo `type:"list"`
16456
16457	// If the request includes Marker, the response returns that value in this field.
16458	Marker *string `min:"1" type:"string"`
16459
16460	// If a value is present, there are more file shares to return. In a subsequent
16461	// request, use NextMarker as the value for Marker to retrieve the next set
16462	// of file shares.
16463	NextMarker *string `min:"1" type:"string"`
16464}
16465
16466// String returns the string representation
16467func (s ListFileSharesOutput) String() string {
16468	return awsutil.Prettify(s)
16469}
16470
16471// GoString returns the string representation
16472func (s ListFileSharesOutput) GoString() string {
16473	return s.String()
16474}
16475
16476// SetFileShareInfoList sets the FileShareInfoList field's value.
16477func (s *ListFileSharesOutput) SetFileShareInfoList(v []*FileShareInfo) *ListFileSharesOutput {
16478	s.FileShareInfoList = v
16479	return s
16480}
16481
16482// SetMarker sets the Marker field's value.
16483func (s *ListFileSharesOutput) SetMarker(v string) *ListFileSharesOutput {
16484	s.Marker = &v
16485	return s
16486}
16487
16488// SetNextMarker sets the NextMarker field's value.
16489func (s *ListFileSharesOutput) SetNextMarker(v string) *ListFileSharesOutput {
16490	s.NextMarker = &v
16491	return s
16492}
16493
16494type ListFileSystemAssociationsInput struct {
16495	_ struct{} `type:"structure"`
16496
16497	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16498	// to return a list of gateways for your account and AWS Region.
16499	GatewayARN *string `min:"50" type:"string"`
16500
16501	// The maximum number of file system associations to return in the response.
16502	// If present, Limit must be an integer with a value greater than zero. Optional.
16503	Limit *int64 `min:"1" type:"integer"`
16504
16505	// Opaque pagination token returned from a previous ListFileSystemAssociations
16506	// operation. If present, Marker specifies where to continue the list from after
16507	// a previous call to ListFileSystemAssociations. Optional.
16508	Marker *string `min:"1" type:"string"`
16509}
16510
16511// String returns the string representation
16512func (s ListFileSystemAssociationsInput) String() string {
16513	return awsutil.Prettify(s)
16514}
16515
16516// GoString returns the string representation
16517func (s ListFileSystemAssociationsInput) GoString() string {
16518	return s.String()
16519}
16520
16521// Validate inspects the fields of the type to determine if they are valid.
16522func (s *ListFileSystemAssociationsInput) Validate() error {
16523	invalidParams := request.ErrInvalidParams{Context: "ListFileSystemAssociationsInput"}
16524	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16525		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16526	}
16527	if s.Limit != nil && *s.Limit < 1 {
16528		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
16529	}
16530	if s.Marker != nil && len(*s.Marker) < 1 {
16531		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
16532	}
16533
16534	if invalidParams.Len() > 0 {
16535		return invalidParams
16536	}
16537	return nil
16538}
16539
16540// SetGatewayARN sets the GatewayARN field's value.
16541func (s *ListFileSystemAssociationsInput) SetGatewayARN(v string) *ListFileSystemAssociationsInput {
16542	s.GatewayARN = &v
16543	return s
16544}
16545
16546// SetLimit sets the Limit field's value.
16547func (s *ListFileSystemAssociationsInput) SetLimit(v int64) *ListFileSystemAssociationsInput {
16548	s.Limit = &v
16549	return s
16550}
16551
16552// SetMarker sets the Marker field's value.
16553func (s *ListFileSystemAssociationsInput) SetMarker(v string) *ListFileSystemAssociationsInput {
16554	s.Marker = &v
16555	return s
16556}
16557
16558type ListFileSystemAssociationsOutput struct {
16559	_ struct{} `type:"structure"`
16560
16561	// An array of information about the Amazon FSx gateway's file system associations.
16562	FileSystemAssociationSummaryList []*FileSystemAssociationSummary `type:"list"`
16563
16564	// If the request includes Marker, the response returns that value in this field.
16565	Marker *string `min:"1" type:"string"`
16566
16567	// If a value is present, there are more file system associations to return.
16568	// In a subsequent request, use NextMarker as the value for Marker to retrieve
16569	// the next set of file system associations.
16570	NextMarker *string `min:"1" type:"string"`
16571}
16572
16573// String returns the string representation
16574func (s ListFileSystemAssociationsOutput) String() string {
16575	return awsutil.Prettify(s)
16576}
16577
16578// GoString returns the string representation
16579func (s ListFileSystemAssociationsOutput) GoString() string {
16580	return s.String()
16581}
16582
16583// SetFileSystemAssociationSummaryList sets the FileSystemAssociationSummaryList field's value.
16584func (s *ListFileSystemAssociationsOutput) SetFileSystemAssociationSummaryList(v []*FileSystemAssociationSummary) *ListFileSystemAssociationsOutput {
16585	s.FileSystemAssociationSummaryList = v
16586	return s
16587}
16588
16589// SetMarker sets the Marker field's value.
16590func (s *ListFileSystemAssociationsOutput) SetMarker(v string) *ListFileSystemAssociationsOutput {
16591	s.Marker = &v
16592	return s
16593}
16594
16595// SetNextMarker sets the NextMarker field's value.
16596func (s *ListFileSystemAssociationsOutput) SetNextMarker(v string) *ListFileSystemAssociationsOutput {
16597	s.NextMarker = &v
16598	return s
16599}
16600
16601// A JSON object containing zero or more of the following fields:
16602//
16603//    * ListGatewaysInput$Limit
16604//
16605//    * ListGatewaysInput$Marker
16606type ListGatewaysInput struct {
16607	_ struct{} `type:"structure"`
16608
16609	// Specifies that the list of gateways returned be limited to the specified
16610	// number of items.
16611	Limit *int64 `min:"1" type:"integer"`
16612
16613	// An opaque string that indicates the position at which to begin the returned
16614	// list of gateways.
16615	Marker *string `min:"1" type:"string"`
16616}
16617
16618// String returns the string representation
16619func (s ListGatewaysInput) String() string {
16620	return awsutil.Prettify(s)
16621}
16622
16623// GoString returns the string representation
16624func (s ListGatewaysInput) GoString() string {
16625	return s.String()
16626}
16627
16628// Validate inspects the fields of the type to determine if they are valid.
16629func (s *ListGatewaysInput) Validate() error {
16630	invalidParams := request.ErrInvalidParams{Context: "ListGatewaysInput"}
16631	if s.Limit != nil && *s.Limit < 1 {
16632		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
16633	}
16634	if s.Marker != nil && len(*s.Marker) < 1 {
16635		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
16636	}
16637
16638	if invalidParams.Len() > 0 {
16639		return invalidParams
16640	}
16641	return nil
16642}
16643
16644// SetLimit sets the Limit field's value.
16645func (s *ListGatewaysInput) SetLimit(v int64) *ListGatewaysInput {
16646	s.Limit = &v
16647	return s
16648}
16649
16650// SetMarker sets the Marker field's value.
16651func (s *ListGatewaysInput) SetMarker(v string) *ListGatewaysInput {
16652	s.Marker = &v
16653	return s
16654}
16655
16656type ListGatewaysOutput struct {
16657	_ struct{} `type:"structure"`
16658
16659	// An array of GatewayInfo objects.
16660	Gateways []*GatewayInfo `type:"list"`
16661
16662	// Use the marker in your next request to fetch the next set of gateways in
16663	// the list. If there are no more gateways to list, this field does not appear
16664	// in the response.
16665	Marker *string `min:"1" type:"string"`
16666}
16667
16668// String returns the string representation
16669func (s ListGatewaysOutput) String() string {
16670	return awsutil.Prettify(s)
16671}
16672
16673// GoString returns the string representation
16674func (s ListGatewaysOutput) GoString() string {
16675	return s.String()
16676}
16677
16678// SetGateways sets the Gateways field's value.
16679func (s *ListGatewaysOutput) SetGateways(v []*GatewayInfo) *ListGatewaysOutput {
16680	s.Gateways = v
16681	return s
16682}
16683
16684// SetMarker sets the Marker field's value.
16685func (s *ListGatewaysOutput) SetMarker(v string) *ListGatewaysOutput {
16686	s.Marker = &v
16687	return s
16688}
16689
16690// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
16691type ListLocalDisksInput struct {
16692	_ struct{} `type:"structure"`
16693
16694	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16695	// to return a list of gateways for your account and AWS Region.
16696	//
16697	// GatewayARN is a required field
16698	GatewayARN *string `min:"50" type:"string" required:"true"`
16699}
16700
16701// String returns the string representation
16702func (s ListLocalDisksInput) String() string {
16703	return awsutil.Prettify(s)
16704}
16705
16706// GoString returns the string representation
16707func (s ListLocalDisksInput) GoString() string {
16708	return s.String()
16709}
16710
16711// Validate inspects the fields of the type to determine if they are valid.
16712func (s *ListLocalDisksInput) Validate() error {
16713	invalidParams := request.ErrInvalidParams{Context: "ListLocalDisksInput"}
16714	if s.GatewayARN == nil {
16715		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16716	}
16717	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16718		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16719	}
16720
16721	if invalidParams.Len() > 0 {
16722		return invalidParams
16723	}
16724	return nil
16725}
16726
16727// SetGatewayARN sets the GatewayARN field's value.
16728func (s *ListLocalDisksInput) SetGatewayARN(v string) *ListLocalDisksInput {
16729	s.GatewayARN = &v
16730	return s
16731}
16732
16733type ListLocalDisksOutput struct {
16734	_ struct{} `type:"structure"`
16735
16736	// A JSON object containing the following fields:
16737	//
16738	//    * ListLocalDisksOutput$Disks
16739	Disks []*Disk `type:"list"`
16740
16741	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16742	// to return a list of gateways for your account and AWS Region.
16743	GatewayARN *string `min:"50" type:"string"`
16744}
16745
16746// String returns the string representation
16747func (s ListLocalDisksOutput) String() string {
16748	return awsutil.Prettify(s)
16749}
16750
16751// GoString returns the string representation
16752func (s ListLocalDisksOutput) GoString() string {
16753	return s.String()
16754}
16755
16756// SetDisks sets the Disks field's value.
16757func (s *ListLocalDisksOutput) SetDisks(v []*Disk) *ListLocalDisksOutput {
16758	s.Disks = v
16759	return s
16760}
16761
16762// SetGatewayARN sets the GatewayARN field's value.
16763func (s *ListLocalDisksOutput) SetGatewayARN(v string) *ListLocalDisksOutput {
16764	s.GatewayARN = &v
16765	return s
16766}
16767
16768// ListTagsForResourceInput
16769type ListTagsForResourceInput struct {
16770	_ struct{} `type:"structure"`
16771
16772	// Specifies that the list of tags returned be limited to the specified number
16773	// of items.
16774	Limit *int64 `min:"1" type:"integer"`
16775
16776	// An opaque string that indicates the position at which to begin returning
16777	// the list of tags.
16778	Marker *string `min:"1" type:"string"`
16779
16780	// The Amazon Resource Name (ARN) of the resource for which you want to list
16781	// tags.
16782	//
16783	// ResourceARN is a required field
16784	ResourceARN *string `min:"50" type:"string" required:"true"`
16785}
16786
16787// String returns the string representation
16788func (s ListTagsForResourceInput) String() string {
16789	return awsutil.Prettify(s)
16790}
16791
16792// GoString returns the string representation
16793func (s ListTagsForResourceInput) GoString() string {
16794	return s.String()
16795}
16796
16797// Validate inspects the fields of the type to determine if they are valid.
16798func (s *ListTagsForResourceInput) Validate() error {
16799	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
16800	if s.Limit != nil && *s.Limit < 1 {
16801		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
16802	}
16803	if s.Marker != nil && len(*s.Marker) < 1 {
16804		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
16805	}
16806	if s.ResourceARN == nil {
16807		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
16808	}
16809	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
16810		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
16811	}
16812
16813	if invalidParams.Len() > 0 {
16814		return invalidParams
16815	}
16816	return nil
16817}
16818
16819// SetLimit sets the Limit field's value.
16820func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
16821	s.Limit = &v
16822	return s
16823}
16824
16825// SetMarker sets the Marker field's value.
16826func (s *ListTagsForResourceInput) SetMarker(v string) *ListTagsForResourceInput {
16827	s.Marker = &v
16828	return s
16829}
16830
16831// SetResourceARN sets the ResourceARN field's value.
16832func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
16833	s.ResourceARN = &v
16834	return s
16835}
16836
16837// ListTagsForResourceOutput
16838type ListTagsForResourceOutput struct {
16839	_ struct{} `type:"structure"`
16840
16841	// An opaque string that indicates the position at which to stop returning the
16842	// list of tags.
16843	Marker *string `min:"1" type:"string"`
16844
16845	// The Amazon Resource Name (ARN) of the resource for which you want to list
16846	// tags.
16847	ResourceARN *string `min:"50" type:"string"`
16848
16849	// An array that contains the tags for the specified resource.
16850	Tags []*Tag `type:"list"`
16851}
16852
16853// String returns the string representation
16854func (s ListTagsForResourceOutput) String() string {
16855	return awsutil.Prettify(s)
16856}
16857
16858// GoString returns the string representation
16859func (s ListTagsForResourceOutput) GoString() string {
16860	return s.String()
16861}
16862
16863// SetMarker sets the Marker field's value.
16864func (s *ListTagsForResourceOutput) SetMarker(v string) *ListTagsForResourceOutput {
16865	s.Marker = &v
16866	return s
16867}
16868
16869// SetResourceARN sets the ResourceARN field's value.
16870func (s *ListTagsForResourceOutput) SetResourceARN(v string) *ListTagsForResourceOutput {
16871	s.ResourceARN = &v
16872	return s
16873}
16874
16875// SetTags sets the Tags field's value.
16876func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
16877	s.Tags = v
16878	return s
16879}
16880
16881type ListTapePoolsInput struct {
16882	_ struct{} `type:"structure"`
16883
16884	// An optional number limit for the tape pools in the list returned by this
16885	// call.
16886	Limit *int64 `min:"1" type:"integer"`
16887
16888	// A string that indicates the position at which to begin the returned list
16889	// of tape pools.
16890	Marker *string `min:"1" type:"string"`
16891
16892	// The Amazon Resource Name (ARN) of each of the custom tape pools you want
16893	// to list. If you don't specify a custom tape pool ARN, the response lists
16894	// all custom tape pools.
16895	PoolARNs []*string `type:"list"`
16896}
16897
16898// String returns the string representation
16899func (s ListTapePoolsInput) String() string {
16900	return awsutil.Prettify(s)
16901}
16902
16903// GoString returns the string representation
16904func (s ListTapePoolsInput) GoString() string {
16905	return s.String()
16906}
16907
16908// Validate inspects the fields of the type to determine if they are valid.
16909func (s *ListTapePoolsInput) Validate() error {
16910	invalidParams := request.ErrInvalidParams{Context: "ListTapePoolsInput"}
16911	if s.Limit != nil && *s.Limit < 1 {
16912		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
16913	}
16914	if s.Marker != nil && len(*s.Marker) < 1 {
16915		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
16916	}
16917
16918	if invalidParams.Len() > 0 {
16919		return invalidParams
16920	}
16921	return nil
16922}
16923
16924// SetLimit sets the Limit field's value.
16925func (s *ListTapePoolsInput) SetLimit(v int64) *ListTapePoolsInput {
16926	s.Limit = &v
16927	return s
16928}
16929
16930// SetMarker sets the Marker field's value.
16931func (s *ListTapePoolsInput) SetMarker(v string) *ListTapePoolsInput {
16932	s.Marker = &v
16933	return s
16934}
16935
16936// SetPoolARNs sets the PoolARNs field's value.
16937func (s *ListTapePoolsInput) SetPoolARNs(v []*string) *ListTapePoolsInput {
16938	s.PoolARNs = v
16939	return s
16940}
16941
16942type ListTapePoolsOutput struct {
16943	_ struct{} `type:"structure"`
16944
16945	// A string that indicates the position at which to begin the returned list
16946	// of tape pools. Use the marker in your next request to continue pagination
16947	// of tape pools. If there are no more tape pools to list, this element does
16948	// not appear in the response body.
16949	Marker *string `min:"1" type:"string"`
16950
16951	// An array of PoolInfo objects, where each object describes a single custom
16952	// tape pool. If there are no custom tape pools, the PoolInfos is an empty array.
16953	PoolInfos []*PoolInfo `type:"list"`
16954}
16955
16956// String returns the string representation
16957func (s ListTapePoolsOutput) String() string {
16958	return awsutil.Prettify(s)
16959}
16960
16961// GoString returns the string representation
16962func (s ListTapePoolsOutput) GoString() string {
16963	return s.String()
16964}
16965
16966// SetMarker sets the Marker field's value.
16967func (s *ListTapePoolsOutput) SetMarker(v string) *ListTapePoolsOutput {
16968	s.Marker = &v
16969	return s
16970}
16971
16972// SetPoolInfos sets the PoolInfos field's value.
16973func (s *ListTapePoolsOutput) SetPoolInfos(v []*PoolInfo) *ListTapePoolsOutput {
16974	s.PoolInfos = v
16975	return s
16976}
16977
16978// A JSON object that contains one or more of the following fields:
16979//
16980//    * ListTapesInput$Limit
16981//
16982//    * ListTapesInput$Marker
16983//
16984//    * ListTapesInput$TapeARNs
16985type ListTapesInput struct {
16986	_ struct{} `type:"structure"`
16987
16988	// An optional number limit for the tapes in the list returned by this call.
16989	Limit *int64 `min:"1" type:"integer"`
16990
16991	// A string that indicates the position at which to begin the returned list
16992	// of tapes.
16993	Marker *string `min:"1" type:"string"`
16994
16995	// The Amazon Resource Name (ARN) of each of the tapes you want to list. If
16996	// you don't specify a tape ARN, the response lists all tapes in both your VTL
16997	// and VTS.
16998	TapeARNs []*string `type:"list"`
16999}
17000
17001// String returns the string representation
17002func (s ListTapesInput) String() string {
17003	return awsutil.Prettify(s)
17004}
17005
17006// GoString returns the string representation
17007func (s ListTapesInput) GoString() string {
17008	return s.String()
17009}
17010
17011// Validate inspects the fields of the type to determine if they are valid.
17012func (s *ListTapesInput) Validate() error {
17013	invalidParams := request.ErrInvalidParams{Context: "ListTapesInput"}
17014	if s.Limit != nil && *s.Limit < 1 {
17015		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
17016	}
17017	if s.Marker != nil && len(*s.Marker) < 1 {
17018		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
17019	}
17020
17021	if invalidParams.Len() > 0 {
17022		return invalidParams
17023	}
17024	return nil
17025}
17026
17027// SetLimit sets the Limit field's value.
17028func (s *ListTapesInput) SetLimit(v int64) *ListTapesInput {
17029	s.Limit = &v
17030	return s
17031}
17032
17033// SetMarker sets the Marker field's value.
17034func (s *ListTapesInput) SetMarker(v string) *ListTapesInput {
17035	s.Marker = &v
17036	return s
17037}
17038
17039// SetTapeARNs sets the TapeARNs field's value.
17040func (s *ListTapesInput) SetTapeARNs(v []*string) *ListTapesInput {
17041	s.TapeARNs = v
17042	return s
17043}
17044
17045// A JSON object containing the following fields:
17046//
17047//    * ListTapesOutput$Marker
17048//
17049//    * ListTapesOutput$VolumeInfos
17050type ListTapesOutput struct {
17051	_ struct{} `type:"structure"`
17052
17053	// A string that indicates the position at which to begin returning the next
17054	// list of tapes. Use the marker in your next request to continue pagination
17055	// of tapes. If there are no more tapes to list, this element does not appear
17056	// in the response body.
17057	Marker *string `min:"1" type:"string"`
17058
17059	// An array of TapeInfo objects, where each object describes a single tape.
17060	// If there are no tapes in the tape library or VTS, then the TapeInfos is an
17061	// empty array.
17062	TapeInfos []*TapeInfo `type:"list"`
17063}
17064
17065// String returns the string representation
17066func (s ListTapesOutput) String() string {
17067	return awsutil.Prettify(s)
17068}
17069
17070// GoString returns the string representation
17071func (s ListTapesOutput) GoString() string {
17072	return s.String()
17073}
17074
17075// SetMarker sets the Marker field's value.
17076func (s *ListTapesOutput) SetMarker(v string) *ListTapesOutput {
17077	s.Marker = &v
17078	return s
17079}
17080
17081// SetTapeInfos sets the TapeInfos field's value.
17082func (s *ListTapesOutput) SetTapeInfos(v []*TapeInfo) *ListTapesOutput {
17083	s.TapeInfos = v
17084	return s
17085}
17086
17087// ListVolumeInitiatorsInput
17088type ListVolumeInitiatorsInput struct {
17089	_ struct{} `type:"structure"`
17090
17091	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
17092	// to return a list of gateway volumes for the gateway.
17093	//
17094	// VolumeARN is a required field
17095	VolumeARN *string `min:"50" type:"string" required:"true"`
17096}
17097
17098// String returns the string representation
17099func (s ListVolumeInitiatorsInput) String() string {
17100	return awsutil.Prettify(s)
17101}
17102
17103// GoString returns the string representation
17104func (s ListVolumeInitiatorsInput) GoString() string {
17105	return s.String()
17106}
17107
17108// Validate inspects the fields of the type to determine if they are valid.
17109func (s *ListVolumeInitiatorsInput) Validate() error {
17110	invalidParams := request.ErrInvalidParams{Context: "ListVolumeInitiatorsInput"}
17111	if s.VolumeARN == nil {
17112		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
17113	}
17114	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
17115		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
17116	}
17117
17118	if invalidParams.Len() > 0 {
17119		return invalidParams
17120	}
17121	return nil
17122}
17123
17124// SetVolumeARN sets the VolumeARN field's value.
17125func (s *ListVolumeInitiatorsInput) SetVolumeARN(v string) *ListVolumeInitiatorsInput {
17126	s.VolumeARN = &v
17127	return s
17128}
17129
17130// ListVolumeInitiatorsOutput
17131type ListVolumeInitiatorsOutput struct {
17132	_ struct{} `type:"structure"`
17133
17134	// The host names and port numbers of all iSCSI initiators that are connected
17135	// to the gateway.
17136	Initiators []*string `type:"list"`
17137}
17138
17139// String returns the string representation
17140func (s ListVolumeInitiatorsOutput) String() string {
17141	return awsutil.Prettify(s)
17142}
17143
17144// GoString returns the string representation
17145func (s ListVolumeInitiatorsOutput) GoString() string {
17146	return s.String()
17147}
17148
17149// SetInitiators sets the Initiators field's value.
17150func (s *ListVolumeInitiatorsOutput) SetInitiators(v []*string) *ListVolumeInitiatorsOutput {
17151	s.Initiators = v
17152	return s
17153}
17154
17155type ListVolumeRecoveryPointsInput struct {
17156	_ struct{} `type:"structure"`
17157
17158	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17159	// to return a list of gateways for your account and AWS Region.
17160	//
17161	// GatewayARN is a required field
17162	GatewayARN *string `min:"50" type:"string" required:"true"`
17163}
17164
17165// String returns the string representation
17166func (s ListVolumeRecoveryPointsInput) String() string {
17167	return awsutil.Prettify(s)
17168}
17169
17170// GoString returns the string representation
17171func (s ListVolumeRecoveryPointsInput) GoString() string {
17172	return s.String()
17173}
17174
17175// Validate inspects the fields of the type to determine if they are valid.
17176func (s *ListVolumeRecoveryPointsInput) Validate() error {
17177	invalidParams := request.ErrInvalidParams{Context: "ListVolumeRecoveryPointsInput"}
17178	if s.GatewayARN == nil {
17179		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17180	}
17181	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17182		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17183	}
17184
17185	if invalidParams.Len() > 0 {
17186		return invalidParams
17187	}
17188	return nil
17189}
17190
17191// SetGatewayARN sets the GatewayARN field's value.
17192func (s *ListVolumeRecoveryPointsInput) SetGatewayARN(v string) *ListVolumeRecoveryPointsInput {
17193	s.GatewayARN = &v
17194	return s
17195}
17196
17197type ListVolumeRecoveryPointsOutput struct {
17198	_ struct{} `type:"structure"`
17199
17200	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17201	// to return a list of gateways for your account and AWS Region.
17202	GatewayARN *string `min:"50" type:"string"`
17203
17204	// An array of VolumeRecoveryPointInfo objects.
17205	VolumeRecoveryPointInfos []*VolumeRecoveryPointInfo `type:"list"`
17206}
17207
17208// String returns the string representation
17209func (s ListVolumeRecoveryPointsOutput) String() string {
17210	return awsutil.Prettify(s)
17211}
17212
17213// GoString returns the string representation
17214func (s ListVolumeRecoveryPointsOutput) GoString() string {
17215	return s.String()
17216}
17217
17218// SetGatewayARN sets the GatewayARN field's value.
17219func (s *ListVolumeRecoveryPointsOutput) SetGatewayARN(v string) *ListVolumeRecoveryPointsOutput {
17220	s.GatewayARN = &v
17221	return s
17222}
17223
17224// SetVolumeRecoveryPointInfos sets the VolumeRecoveryPointInfos field's value.
17225func (s *ListVolumeRecoveryPointsOutput) SetVolumeRecoveryPointInfos(v []*VolumeRecoveryPointInfo) *ListVolumeRecoveryPointsOutput {
17226	s.VolumeRecoveryPointInfos = v
17227	return s
17228}
17229
17230// A JSON object that contains one or more of the following fields:
17231//
17232//    * ListVolumesInput$Limit
17233//
17234//    * ListVolumesInput$Marker
17235type ListVolumesInput struct {
17236	_ struct{} `type:"structure"`
17237
17238	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17239	// to return a list of gateways for your account and AWS Region.
17240	GatewayARN *string `min:"50" type:"string"`
17241
17242	// Specifies that the list of volumes returned be limited to the specified number
17243	// of items.
17244	Limit *int64 `min:"1" type:"integer"`
17245
17246	// A string that indicates the position at which to begin the returned list
17247	// of volumes. Obtain the marker from the response of a previous List iSCSI
17248	// Volumes request.
17249	Marker *string `min:"1" type:"string"`
17250}
17251
17252// String returns the string representation
17253func (s ListVolumesInput) String() string {
17254	return awsutil.Prettify(s)
17255}
17256
17257// GoString returns the string representation
17258func (s ListVolumesInput) GoString() string {
17259	return s.String()
17260}
17261
17262// Validate inspects the fields of the type to determine if they are valid.
17263func (s *ListVolumesInput) Validate() error {
17264	invalidParams := request.ErrInvalidParams{Context: "ListVolumesInput"}
17265	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17266		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17267	}
17268	if s.Limit != nil && *s.Limit < 1 {
17269		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
17270	}
17271	if s.Marker != nil && len(*s.Marker) < 1 {
17272		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
17273	}
17274
17275	if invalidParams.Len() > 0 {
17276		return invalidParams
17277	}
17278	return nil
17279}
17280
17281// SetGatewayARN sets the GatewayARN field's value.
17282func (s *ListVolumesInput) SetGatewayARN(v string) *ListVolumesInput {
17283	s.GatewayARN = &v
17284	return s
17285}
17286
17287// SetLimit sets the Limit field's value.
17288func (s *ListVolumesInput) SetLimit(v int64) *ListVolumesInput {
17289	s.Limit = &v
17290	return s
17291}
17292
17293// SetMarker sets the Marker field's value.
17294func (s *ListVolumesInput) SetMarker(v string) *ListVolumesInput {
17295	s.Marker = &v
17296	return s
17297}
17298
17299// A JSON object containing the following fields:
17300//
17301//    * ListVolumesOutput$Marker
17302//
17303//    * ListVolumesOutput$VolumeInfos
17304type ListVolumesOutput struct {
17305	_ struct{} `type:"structure"`
17306
17307	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17308	// to return a list of gateways for your account and AWS Region.
17309	GatewayARN *string `min:"50" type:"string"`
17310
17311	// Use the marker in your next request to continue pagination of iSCSI volumes.
17312	// If there are no more volumes to list, this field does not appear in the response
17313	// body.
17314	Marker *string `min:"1" type:"string"`
17315
17316	// An array of VolumeInfo objects, where each object describes an iSCSI volume.
17317	// If no volumes are defined for the gateway, then VolumeInfos is an empty array
17318	// "[]".
17319	VolumeInfos []*VolumeInfo `type:"list"`
17320}
17321
17322// String returns the string representation
17323func (s ListVolumesOutput) String() string {
17324	return awsutil.Prettify(s)
17325}
17326
17327// GoString returns the string representation
17328func (s ListVolumesOutput) GoString() string {
17329	return s.String()
17330}
17331
17332// SetGatewayARN sets the GatewayARN field's value.
17333func (s *ListVolumesOutput) SetGatewayARN(v string) *ListVolumesOutput {
17334	s.GatewayARN = &v
17335	return s
17336}
17337
17338// SetMarker sets the Marker field's value.
17339func (s *ListVolumesOutput) SetMarker(v string) *ListVolumesOutput {
17340	s.Marker = &v
17341	return s
17342}
17343
17344// SetVolumeInfos sets the VolumeInfos field's value.
17345func (s *ListVolumesOutput) SetVolumeInfos(v []*VolumeInfo) *ListVolumesOutput {
17346	s.VolumeInfos = v
17347	return s
17348}
17349
17350// Describes Network File System (NFS) file share default values. Files and
17351// folders stored as Amazon S3 objects in S3 buckets don't, by default, have
17352// Unix file permissions assigned to them. Upon discovery in an S3 bucket by
17353// Storage Gateway, the S3 objects that represent files and folders are assigned
17354// these default Unix permissions. This operation is only supported for file
17355// gateways.
17356type NFSFileShareDefaults struct {
17357	_ struct{} `type:"structure"`
17358
17359	// The Unix directory mode in the form "nnnn". For example, 0666 represents
17360	// the default access mode for all directories inside the file share. The default
17361	// value is 0777.
17362	DirectoryMode *string `min:"1" type:"string"`
17363
17364	// The Unix file mode in the form "nnnn". For example, 0666 represents the default
17365	// file mode inside the file share. The default value is 0666.
17366	FileMode *string `min:"1" type:"string"`
17367
17368	// The default group ID for the file share (unless the files have another group
17369	// ID specified). The default value is nfsnobody.
17370	GroupId *int64 `type:"long"`
17371
17372	// The default owner ID for files in the file share (unless the files have another
17373	// owner ID specified). The default value is nfsnobody.
17374	OwnerId *int64 `type:"long"`
17375}
17376
17377// String returns the string representation
17378func (s NFSFileShareDefaults) String() string {
17379	return awsutil.Prettify(s)
17380}
17381
17382// GoString returns the string representation
17383func (s NFSFileShareDefaults) GoString() string {
17384	return s.String()
17385}
17386
17387// Validate inspects the fields of the type to determine if they are valid.
17388func (s *NFSFileShareDefaults) Validate() error {
17389	invalidParams := request.ErrInvalidParams{Context: "NFSFileShareDefaults"}
17390	if s.DirectoryMode != nil && len(*s.DirectoryMode) < 1 {
17391		invalidParams.Add(request.NewErrParamMinLen("DirectoryMode", 1))
17392	}
17393	if s.FileMode != nil && len(*s.FileMode) < 1 {
17394		invalidParams.Add(request.NewErrParamMinLen("FileMode", 1))
17395	}
17396
17397	if invalidParams.Len() > 0 {
17398		return invalidParams
17399	}
17400	return nil
17401}
17402
17403// SetDirectoryMode sets the DirectoryMode field's value.
17404func (s *NFSFileShareDefaults) SetDirectoryMode(v string) *NFSFileShareDefaults {
17405	s.DirectoryMode = &v
17406	return s
17407}
17408
17409// SetFileMode sets the FileMode field's value.
17410func (s *NFSFileShareDefaults) SetFileMode(v string) *NFSFileShareDefaults {
17411	s.FileMode = &v
17412	return s
17413}
17414
17415// SetGroupId sets the GroupId field's value.
17416func (s *NFSFileShareDefaults) SetGroupId(v int64) *NFSFileShareDefaults {
17417	s.GroupId = &v
17418	return s
17419}
17420
17421// SetOwnerId sets the OwnerId field's value.
17422func (s *NFSFileShareDefaults) SetOwnerId(v int64) *NFSFileShareDefaults {
17423	s.OwnerId = &v
17424	return s
17425}
17426
17427// The Unix file permissions and ownership information assigned, by default,
17428// to native S3 objects when file gateway discovers them in S3 buckets. This
17429// operation is only supported in file gateways.
17430type NFSFileShareInfo struct {
17431	_ struct{} `type:"structure"`
17432
17433	// Refresh cache information for the file share.
17434	CacheAttributes *CacheAttributes `type:"structure"`
17435
17436	// The list of clients that are allowed to access the file gateway. The list
17437	// must contain either valid IP addresses or valid CIDR blocks.
17438	ClientList []*string `min:"1" type:"list"`
17439
17440	// The default storage class for objects put into an Amazon S3 bucket by the
17441	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
17442	//
17443	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
17444	DefaultStorageClass *string `min:"5" type:"string"`
17445
17446	// The Amazon Resource Name (ARN) of the file share.
17447	FileShareARN *string `min:"50" type:"string"`
17448
17449	// The ID of the file share.
17450	FileShareId *string `min:"12" type:"string"`
17451
17452	// The name of the file share. Optional.
17453	//
17454	// FileShareName must be set if an S3 prefix name is set in LocationARN.
17455	FileShareName *string `min:"1" type:"string"`
17456
17457	// The status of the file share.
17458	//
17459	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
17460	FileShareStatus *string `min:"3" type:"string"`
17461
17462	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17463	// to return a list of gateways for your account and AWS Region.
17464	GatewayARN *string `min:"50" type:"string"`
17465
17466	// A value that enables guessing of the MIME type for uploaded objects based
17467	// on file extensions. Set this value to true to enable MIME type guessing,
17468	// otherwise set to false. The default value is true.
17469	//
17470	// Valid Values: true | false
17471	GuessMIMETypeEnabled *bool `type:"boolean"`
17472
17473	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
17474	// key, or false to use a key managed by Amazon S3. Optional.
17475	//
17476	// Valid Values: true | false
17477	KMSEncrypted *bool `type:"boolean"`
17478
17479	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
17480	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
17481	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
17482	KMSKey *string `min:"7" type:"string"`
17483
17484	// The ARN of the backend storage used for storing file data. A prefix name
17485	// can be added to the S3 bucket name. It must end with a "/".
17486	LocationARN *string `min:"16" type:"string"`
17487
17488	// Describes Network File System (NFS) file share default values. Files and
17489	// folders stored as Amazon S3 objects in S3 buckets don't, by default, have
17490	// Unix file permissions assigned to them. Upon discovery in an S3 bucket by
17491	// Storage Gateway, the S3 objects that represent files and folders are assigned
17492	// these default Unix permissions. This operation is only supported for file
17493	// gateways.
17494	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
17495
17496	// The notification policy of the file share. SettlingTimeInSeconds controls
17497	// the number of seconds to wait after the last point in time a client wrote
17498	// to a file before generating an ObjectUploaded notification. Because clients
17499	// can make many small writes to files, it's best to set this parameter for
17500	// as long as possible to avoid generating multiple notifications for the same
17501	// file in a small time period.
17502	//
17503	// SettlingTimeInSeconds has no effect on the timing of the object uploading
17504	// to Amazon S3, only the timing of the notification.
17505	//
17506	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
17507	// set to 60.
17508	//
17509	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
17510	//
17511	// The following example sets NotificationPolicy off.
17512	//
17513	// {}
17514	NotificationPolicy *string `min:"2" type:"string"`
17515
17516	// A value that sets the access control list (ACL) permission for objects in
17517	// the S3 bucket that a file gateway puts objects into. The default value is
17518	// private.
17519	ObjectACL *string `type:"string" enum:"ObjectACL"`
17520
17521	// The file share path used by the NFS client to identify the mount point.
17522	Path *string `type:"string"`
17523
17524	// A value that sets the write status of a file share. Set this value to true
17525	// to set the write status to read-only, otherwise set to false.
17526	//
17527	// Valid Values: true | false
17528	ReadOnly *bool `type:"boolean"`
17529
17530	// A value that sets who pays the cost of the request and the cost associated
17531	// with data download from the S3 bucket. If this value is set to true, the
17532	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
17533	// S3 bucket owner always pays the cost of storing data.
17534	//
17535	// RequesterPays is a configuration for the S3 bucket that backs the file share,
17536	// so make sure that the configuration on the file share is the same as the
17537	// S3 bucket configuration.
17538	//
17539	// Valid Values: true | false
17540	RequesterPays *bool `type:"boolean"`
17541
17542	// The ARN of the IAM role that file gateway assumes when it accesses the underlying
17543	// storage.
17544	Role *string `min:"20" type:"string"`
17545
17546	// The user mapped to anonymous user. Valid options are the following:
17547	//
17548	//    * RootSquash: Only root is mapped to anonymous user.
17549	//
17550	//    * NoSquash: No one is mapped to anonymous user.
17551	//
17552	//    * AllSquash: Everyone is mapped to anonymous user.
17553	Squash *string `min:"5" type:"string"`
17554
17555	// A list of up to 50 tags assigned to the NFS file share, sorted alphabetically
17556	// by key name. Each tag is a key-value pair. For a gateway with more than 10
17557	// tags assigned, you can view all tags using the ListTagsForResource API operation.
17558	Tags []*Tag `type:"list"`
17559}
17560
17561// String returns the string representation
17562func (s NFSFileShareInfo) String() string {
17563	return awsutil.Prettify(s)
17564}
17565
17566// GoString returns the string representation
17567func (s NFSFileShareInfo) GoString() string {
17568	return s.String()
17569}
17570
17571// SetCacheAttributes sets the CacheAttributes field's value.
17572func (s *NFSFileShareInfo) SetCacheAttributes(v *CacheAttributes) *NFSFileShareInfo {
17573	s.CacheAttributes = v
17574	return s
17575}
17576
17577// SetClientList sets the ClientList field's value.
17578func (s *NFSFileShareInfo) SetClientList(v []*string) *NFSFileShareInfo {
17579	s.ClientList = v
17580	return s
17581}
17582
17583// SetDefaultStorageClass sets the DefaultStorageClass field's value.
17584func (s *NFSFileShareInfo) SetDefaultStorageClass(v string) *NFSFileShareInfo {
17585	s.DefaultStorageClass = &v
17586	return s
17587}
17588
17589// SetFileShareARN sets the FileShareARN field's value.
17590func (s *NFSFileShareInfo) SetFileShareARN(v string) *NFSFileShareInfo {
17591	s.FileShareARN = &v
17592	return s
17593}
17594
17595// SetFileShareId sets the FileShareId field's value.
17596func (s *NFSFileShareInfo) SetFileShareId(v string) *NFSFileShareInfo {
17597	s.FileShareId = &v
17598	return s
17599}
17600
17601// SetFileShareName sets the FileShareName field's value.
17602func (s *NFSFileShareInfo) SetFileShareName(v string) *NFSFileShareInfo {
17603	s.FileShareName = &v
17604	return s
17605}
17606
17607// SetFileShareStatus sets the FileShareStatus field's value.
17608func (s *NFSFileShareInfo) SetFileShareStatus(v string) *NFSFileShareInfo {
17609	s.FileShareStatus = &v
17610	return s
17611}
17612
17613// SetGatewayARN sets the GatewayARN field's value.
17614func (s *NFSFileShareInfo) SetGatewayARN(v string) *NFSFileShareInfo {
17615	s.GatewayARN = &v
17616	return s
17617}
17618
17619// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
17620func (s *NFSFileShareInfo) SetGuessMIMETypeEnabled(v bool) *NFSFileShareInfo {
17621	s.GuessMIMETypeEnabled = &v
17622	return s
17623}
17624
17625// SetKMSEncrypted sets the KMSEncrypted field's value.
17626func (s *NFSFileShareInfo) SetKMSEncrypted(v bool) *NFSFileShareInfo {
17627	s.KMSEncrypted = &v
17628	return s
17629}
17630
17631// SetKMSKey sets the KMSKey field's value.
17632func (s *NFSFileShareInfo) SetKMSKey(v string) *NFSFileShareInfo {
17633	s.KMSKey = &v
17634	return s
17635}
17636
17637// SetLocationARN sets the LocationARN field's value.
17638func (s *NFSFileShareInfo) SetLocationARN(v string) *NFSFileShareInfo {
17639	s.LocationARN = &v
17640	return s
17641}
17642
17643// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
17644func (s *NFSFileShareInfo) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *NFSFileShareInfo {
17645	s.NFSFileShareDefaults = v
17646	return s
17647}
17648
17649// SetNotificationPolicy sets the NotificationPolicy field's value.
17650func (s *NFSFileShareInfo) SetNotificationPolicy(v string) *NFSFileShareInfo {
17651	s.NotificationPolicy = &v
17652	return s
17653}
17654
17655// SetObjectACL sets the ObjectACL field's value.
17656func (s *NFSFileShareInfo) SetObjectACL(v string) *NFSFileShareInfo {
17657	s.ObjectACL = &v
17658	return s
17659}
17660
17661// SetPath sets the Path field's value.
17662func (s *NFSFileShareInfo) SetPath(v string) *NFSFileShareInfo {
17663	s.Path = &v
17664	return s
17665}
17666
17667// SetReadOnly sets the ReadOnly field's value.
17668func (s *NFSFileShareInfo) SetReadOnly(v bool) *NFSFileShareInfo {
17669	s.ReadOnly = &v
17670	return s
17671}
17672
17673// SetRequesterPays sets the RequesterPays field's value.
17674func (s *NFSFileShareInfo) SetRequesterPays(v bool) *NFSFileShareInfo {
17675	s.RequesterPays = &v
17676	return s
17677}
17678
17679// SetRole sets the Role field's value.
17680func (s *NFSFileShareInfo) SetRole(v string) *NFSFileShareInfo {
17681	s.Role = &v
17682	return s
17683}
17684
17685// SetSquash sets the Squash field's value.
17686func (s *NFSFileShareInfo) SetSquash(v string) *NFSFileShareInfo {
17687	s.Squash = &v
17688	return s
17689}
17690
17691// SetTags sets the Tags field's value.
17692func (s *NFSFileShareInfo) SetTags(v []*Tag) *NFSFileShareInfo {
17693	s.Tags = v
17694	return s
17695}
17696
17697// Describes a gateway's network interface.
17698type NetworkInterface struct {
17699	_ struct{} `type:"structure"`
17700
17701	// The Internet Protocol version 4 (IPv4) address of the interface.
17702	Ipv4Address *string `type:"string"`
17703
17704	// The Internet Protocol version 6 (IPv6) address of the interface. Currently
17705	// not supported.
17706	Ipv6Address *string `type:"string"`
17707
17708	// The Media Access Control (MAC) address of the interface.
17709	//
17710	// This is currently unsupported and will not be returned in output.
17711	MacAddress *string `type:"string"`
17712}
17713
17714// String returns the string representation
17715func (s NetworkInterface) String() string {
17716	return awsutil.Prettify(s)
17717}
17718
17719// GoString returns the string representation
17720func (s NetworkInterface) GoString() string {
17721	return s.String()
17722}
17723
17724// SetIpv4Address sets the Ipv4Address field's value.
17725func (s *NetworkInterface) SetIpv4Address(v string) *NetworkInterface {
17726	s.Ipv4Address = &v
17727	return s
17728}
17729
17730// SetIpv6Address sets the Ipv6Address field's value.
17731func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
17732	s.Ipv6Address = &v
17733	return s
17734}
17735
17736// SetMacAddress sets the MacAddress field's value.
17737func (s *NetworkInterface) SetMacAddress(v string) *NetworkInterface {
17738	s.MacAddress = &v
17739	return s
17740}
17741
17742type NotifyWhenUploadedInput struct {
17743	_ struct{} `type:"structure"`
17744
17745	// The Amazon Resource Name (ARN) of the file share.
17746	//
17747	// FileShareARN is a required field
17748	FileShareARN *string `min:"50" type:"string" required:"true"`
17749}
17750
17751// String returns the string representation
17752func (s NotifyWhenUploadedInput) String() string {
17753	return awsutil.Prettify(s)
17754}
17755
17756// GoString returns the string representation
17757func (s NotifyWhenUploadedInput) GoString() string {
17758	return s.String()
17759}
17760
17761// Validate inspects the fields of the type to determine if they are valid.
17762func (s *NotifyWhenUploadedInput) Validate() error {
17763	invalidParams := request.ErrInvalidParams{Context: "NotifyWhenUploadedInput"}
17764	if s.FileShareARN == nil {
17765		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
17766	}
17767	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
17768		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
17769	}
17770
17771	if invalidParams.Len() > 0 {
17772		return invalidParams
17773	}
17774	return nil
17775}
17776
17777// SetFileShareARN sets the FileShareARN field's value.
17778func (s *NotifyWhenUploadedInput) SetFileShareARN(v string) *NotifyWhenUploadedInput {
17779	s.FileShareARN = &v
17780	return s
17781}
17782
17783type NotifyWhenUploadedOutput struct {
17784	_ struct{} `type:"structure"`
17785
17786	// The Amazon Resource Name (ARN) of the file share.
17787	FileShareARN *string `min:"50" type:"string"`
17788
17789	// The randomly generated ID of the notification that was sent. This ID is in
17790	// UUID format.
17791	NotificationId *string `min:"1" type:"string"`
17792}
17793
17794// String returns the string representation
17795func (s NotifyWhenUploadedOutput) String() string {
17796	return awsutil.Prettify(s)
17797}
17798
17799// GoString returns the string representation
17800func (s NotifyWhenUploadedOutput) GoString() string {
17801	return s.String()
17802}
17803
17804// SetFileShareARN sets the FileShareARN field's value.
17805func (s *NotifyWhenUploadedOutput) SetFileShareARN(v string) *NotifyWhenUploadedOutput {
17806	s.FileShareARN = &v
17807	return s
17808}
17809
17810// SetNotificationId sets the NotificationId field's value.
17811func (s *NotifyWhenUploadedOutput) SetNotificationId(v string) *NotifyWhenUploadedOutput {
17812	s.NotificationId = &v
17813	return s
17814}
17815
17816// Describes a custom tape pool.
17817type PoolInfo struct {
17818	_ struct{} `type:"structure"`
17819
17820	// The Amazon Resource Name (ARN) of the custom tape pool. Use the ListTapePools
17821	// operation to return a list of custom tape pools for your account and AWS
17822	// Region.
17823	PoolARN *string `min:"50" type:"string"`
17824
17825	// The name of the custom tape pool. PoolName can use all ASCII characters,
17826	// except '/' and '\'.
17827	PoolName *string `min:"1" type:"string"`
17828
17829	// Status of the custom tape pool. Pool can be ACTIVE or DELETED.
17830	PoolStatus *string `type:"string" enum:"PoolStatus"`
17831
17832	// Tape retention lock time is set in days. Tape retention lock can be enabled
17833	// for up to 100 years (36,500 days).
17834	RetentionLockTimeInDays *int64 `type:"integer"`
17835
17836	// Tape retention lock type, which can be configured in two modes. When configured
17837	// in governance mode, AWS accounts with specific IAM permissions are authorized
17838	// to remove the tape retention lock from archived virtual tapes. When configured
17839	// in compliance mode, the tape retention lock cannot be removed by any user,
17840	// including the root AWS account.
17841	RetentionLockType *string `type:"string" enum:"RetentionLockType"`
17842
17843	// The storage class that is associated with the custom pool. When you use your
17844	// backup application to eject the tape, the tape is archived directly into
17845	// the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds
17846	// to the pool.
17847	StorageClass *string `type:"string" enum:"TapeStorageClass"`
17848}
17849
17850// String returns the string representation
17851func (s PoolInfo) String() string {
17852	return awsutil.Prettify(s)
17853}
17854
17855// GoString returns the string representation
17856func (s PoolInfo) GoString() string {
17857	return s.String()
17858}
17859
17860// SetPoolARN sets the PoolARN field's value.
17861func (s *PoolInfo) SetPoolARN(v string) *PoolInfo {
17862	s.PoolARN = &v
17863	return s
17864}
17865
17866// SetPoolName sets the PoolName field's value.
17867func (s *PoolInfo) SetPoolName(v string) *PoolInfo {
17868	s.PoolName = &v
17869	return s
17870}
17871
17872// SetPoolStatus sets the PoolStatus field's value.
17873func (s *PoolInfo) SetPoolStatus(v string) *PoolInfo {
17874	s.PoolStatus = &v
17875	return s
17876}
17877
17878// SetRetentionLockTimeInDays sets the RetentionLockTimeInDays field's value.
17879func (s *PoolInfo) SetRetentionLockTimeInDays(v int64) *PoolInfo {
17880	s.RetentionLockTimeInDays = &v
17881	return s
17882}
17883
17884// SetRetentionLockType sets the RetentionLockType field's value.
17885func (s *PoolInfo) SetRetentionLockType(v string) *PoolInfo {
17886	s.RetentionLockType = &v
17887	return s
17888}
17889
17890// SetStorageClass sets the StorageClass field's value.
17891func (s *PoolInfo) SetStorageClass(v string) *PoolInfo {
17892	s.StorageClass = &v
17893	return s
17894}
17895
17896// RefreshCacheInput
17897type RefreshCacheInput struct {
17898	_ struct{} `type:"structure"`
17899
17900	// The Amazon Resource Name (ARN) of the file share you want to refresh.
17901	//
17902	// FileShareARN is a required field
17903	FileShareARN *string `min:"50" type:"string" required:"true"`
17904
17905	// A comma-separated list of the paths of folders to refresh in the cache. The
17906	// default is ["/"]. The default refreshes objects and folders at the root of
17907	// the Amazon S3 bucket. If Recursive is set to true, the entire S3 bucket that
17908	// the file share has access to is refreshed.
17909	FolderList []*string `min:"1" type:"list"`
17910
17911	// A value that specifies whether to recursively refresh folders in the cache.
17912	// The refresh includes folders that were in the cache the last time the gateway
17913	// listed the folder's contents. If this value set to true, each folder that
17914	// is listed in FolderList is recursively updated. Otherwise, subfolders listed
17915	// in FolderList are not refreshed. Only objects that are in folders listed
17916	// directly under FolderList are found and used for the update. The default
17917	// is true.
17918	//
17919	// Valid Values: true | false
17920	Recursive *bool `type:"boolean"`
17921}
17922
17923// String returns the string representation
17924func (s RefreshCacheInput) String() string {
17925	return awsutil.Prettify(s)
17926}
17927
17928// GoString returns the string representation
17929func (s RefreshCacheInput) GoString() string {
17930	return s.String()
17931}
17932
17933// Validate inspects the fields of the type to determine if they are valid.
17934func (s *RefreshCacheInput) Validate() error {
17935	invalidParams := request.ErrInvalidParams{Context: "RefreshCacheInput"}
17936	if s.FileShareARN == nil {
17937		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
17938	}
17939	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
17940		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
17941	}
17942	if s.FolderList != nil && len(s.FolderList) < 1 {
17943		invalidParams.Add(request.NewErrParamMinLen("FolderList", 1))
17944	}
17945
17946	if invalidParams.Len() > 0 {
17947		return invalidParams
17948	}
17949	return nil
17950}
17951
17952// SetFileShareARN sets the FileShareARN field's value.
17953func (s *RefreshCacheInput) SetFileShareARN(v string) *RefreshCacheInput {
17954	s.FileShareARN = &v
17955	return s
17956}
17957
17958// SetFolderList sets the FolderList field's value.
17959func (s *RefreshCacheInput) SetFolderList(v []*string) *RefreshCacheInput {
17960	s.FolderList = v
17961	return s
17962}
17963
17964// SetRecursive sets the Recursive field's value.
17965func (s *RefreshCacheInput) SetRecursive(v bool) *RefreshCacheInput {
17966	s.Recursive = &v
17967	return s
17968}
17969
17970// RefreshCacheOutput
17971type RefreshCacheOutput struct {
17972	_ struct{} `type:"structure"`
17973
17974	// The Amazon Resource Name (ARN) of the file share.
17975	FileShareARN *string `min:"50" type:"string"`
17976
17977	// The randomly generated ID of the notification that was sent. This ID is in
17978	// UUID format.
17979	NotificationId *string `min:"1" type:"string"`
17980}
17981
17982// String returns the string representation
17983func (s RefreshCacheOutput) String() string {
17984	return awsutil.Prettify(s)
17985}
17986
17987// GoString returns the string representation
17988func (s RefreshCacheOutput) GoString() string {
17989	return s.String()
17990}
17991
17992// SetFileShareARN sets the FileShareARN field's value.
17993func (s *RefreshCacheOutput) SetFileShareARN(v string) *RefreshCacheOutput {
17994	s.FileShareARN = &v
17995	return s
17996}
17997
17998// SetNotificationId sets the NotificationId field's value.
17999func (s *RefreshCacheOutput) SetNotificationId(v string) *RefreshCacheOutput {
18000	s.NotificationId = &v
18001	return s
18002}
18003
18004// RemoveTagsFromResourceInput
18005type RemoveTagsFromResourceInput struct {
18006	_ struct{} `type:"structure"`
18007
18008	// The Amazon Resource Name (ARN) of the resource you want to remove the tags
18009	// from.
18010	//
18011	// ResourceARN is a required field
18012	ResourceARN *string `min:"50" type:"string" required:"true"`
18013
18014	// The keys of the tags you want to remove from the specified resource. A tag
18015	// is composed of a key-value pair.
18016	//
18017	// TagKeys is a required field
18018	TagKeys []*string `type:"list" required:"true"`
18019}
18020
18021// String returns the string representation
18022func (s RemoveTagsFromResourceInput) String() string {
18023	return awsutil.Prettify(s)
18024}
18025
18026// GoString returns the string representation
18027func (s RemoveTagsFromResourceInput) GoString() string {
18028	return s.String()
18029}
18030
18031// Validate inspects the fields of the type to determine if they are valid.
18032func (s *RemoveTagsFromResourceInput) Validate() error {
18033	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"}
18034	if s.ResourceARN == nil {
18035		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
18036	}
18037	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
18038		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
18039	}
18040	if s.TagKeys == nil {
18041		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
18042	}
18043
18044	if invalidParams.Len() > 0 {
18045		return invalidParams
18046	}
18047	return nil
18048}
18049
18050// SetResourceARN sets the ResourceARN field's value.
18051func (s *RemoveTagsFromResourceInput) SetResourceARN(v string) *RemoveTagsFromResourceInput {
18052	s.ResourceARN = &v
18053	return s
18054}
18055
18056// SetTagKeys sets the TagKeys field's value.
18057func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput {
18058	s.TagKeys = v
18059	return s
18060}
18061
18062// RemoveTagsFromResourceOutput
18063type RemoveTagsFromResourceOutput struct {
18064	_ struct{} `type:"structure"`
18065
18066	// The Amazon Resource Name (ARN) of the resource that the tags were removed
18067	// from.
18068	ResourceARN *string `min:"50" type:"string"`
18069}
18070
18071// String returns the string representation
18072func (s RemoveTagsFromResourceOutput) String() string {
18073	return awsutil.Prettify(s)
18074}
18075
18076// GoString returns the string representation
18077func (s RemoveTagsFromResourceOutput) GoString() string {
18078	return s.String()
18079}
18080
18081// SetResourceARN sets the ResourceARN field's value.
18082func (s *RemoveTagsFromResourceOutput) SetResourceARN(v string) *RemoveTagsFromResourceOutput {
18083	s.ResourceARN = &v
18084	return s
18085}
18086
18087type ResetCacheInput struct {
18088	_ struct{} `type:"structure"`
18089
18090	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18091	// to return a list of gateways for your account and AWS Region.
18092	//
18093	// GatewayARN is a required field
18094	GatewayARN *string `min:"50" type:"string" required:"true"`
18095}
18096
18097// String returns the string representation
18098func (s ResetCacheInput) String() string {
18099	return awsutil.Prettify(s)
18100}
18101
18102// GoString returns the string representation
18103func (s ResetCacheInput) GoString() string {
18104	return s.String()
18105}
18106
18107// Validate inspects the fields of the type to determine if they are valid.
18108func (s *ResetCacheInput) Validate() error {
18109	invalidParams := request.ErrInvalidParams{Context: "ResetCacheInput"}
18110	if s.GatewayARN == nil {
18111		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18112	}
18113	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18114		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18115	}
18116
18117	if invalidParams.Len() > 0 {
18118		return invalidParams
18119	}
18120	return nil
18121}
18122
18123// SetGatewayARN sets the GatewayARN field's value.
18124func (s *ResetCacheInput) SetGatewayARN(v string) *ResetCacheInput {
18125	s.GatewayARN = &v
18126	return s
18127}
18128
18129type ResetCacheOutput struct {
18130	_ struct{} `type:"structure"`
18131
18132	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18133	// to return a list of gateways for your account and AWS Region.
18134	GatewayARN *string `min:"50" type:"string"`
18135}
18136
18137// String returns the string representation
18138func (s ResetCacheOutput) String() string {
18139	return awsutil.Prettify(s)
18140}
18141
18142// GoString returns the string representation
18143func (s ResetCacheOutput) GoString() string {
18144	return s.String()
18145}
18146
18147// SetGatewayARN sets the GatewayARN field's value.
18148func (s *ResetCacheOutput) SetGatewayARN(v string) *ResetCacheOutput {
18149	s.GatewayARN = &v
18150	return s
18151}
18152
18153// RetrieveTapeArchiveInput
18154type RetrieveTapeArchiveInput struct {
18155	_ struct{} `type:"structure"`
18156
18157	// The Amazon Resource Name (ARN) of the gateway you want to retrieve the virtual
18158	// tape to. Use the ListGateways operation to return a list of gateways for
18159	// your account and AWS Region.
18160	//
18161	// You retrieve archived virtual tapes to only one gateway and the gateway must
18162	// be a tape gateway.
18163	//
18164	// GatewayARN is a required field
18165	GatewayARN *string `min:"50" type:"string" required:"true"`
18166
18167	// The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from
18168	// the virtual tape shelf (VTS).
18169	//
18170	// TapeARN is a required field
18171	TapeARN *string `min:"50" type:"string" required:"true"`
18172}
18173
18174// String returns the string representation
18175func (s RetrieveTapeArchiveInput) String() string {
18176	return awsutil.Prettify(s)
18177}
18178
18179// GoString returns the string representation
18180func (s RetrieveTapeArchiveInput) GoString() string {
18181	return s.String()
18182}
18183
18184// Validate inspects the fields of the type to determine if they are valid.
18185func (s *RetrieveTapeArchiveInput) Validate() error {
18186	invalidParams := request.ErrInvalidParams{Context: "RetrieveTapeArchiveInput"}
18187	if s.GatewayARN == nil {
18188		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18189	}
18190	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18191		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18192	}
18193	if s.TapeARN == nil {
18194		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
18195	}
18196	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
18197		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
18198	}
18199
18200	if invalidParams.Len() > 0 {
18201		return invalidParams
18202	}
18203	return nil
18204}
18205
18206// SetGatewayARN sets the GatewayARN field's value.
18207func (s *RetrieveTapeArchiveInput) SetGatewayARN(v string) *RetrieveTapeArchiveInput {
18208	s.GatewayARN = &v
18209	return s
18210}
18211
18212// SetTapeARN sets the TapeARN field's value.
18213func (s *RetrieveTapeArchiveInput) SetTapeARN(v string) *RetrieveTapeArchiveInput {
18214	s.TapeARN = &v
18215	return s
18216}
18217
18218// RetrieveTapeArchiveOutput
18219type RetrieveTapeArchiveOutput struct {
18220	_ struct{} `type:"structure"`
18221
18222	// The Amazon Resource Name (ARN) of the retrieved virtual tape.
18223	TapeARN *string `min:"50" type:"string"`
18224}
18225
18226// String returns the string representation
18227func (s RetrieveTapeArchiveOutput) String() string {
18228	return awsutil.Prettify(s)
18229}
18230
18231// GoString returns the string representation
18232func (s RetrieveTapeArchiveOutput) GoString() string {
18233	return s.String()
18234}
18235
18236// SetTapeARN sets the TapeARN field's value.
18237func (s *RetrieveTapeArchiveOutput) SetTapeARN(v string) *RetrieveTapeArchiveOutput {
18238	s.TapeARN = &v
18239	return s
18240}
18241
18242// RetrieveTapeRecoveryPointInput
18243type RetrieveTapeRecoveryPointInput struct {
18244	_ struct{} `type:"structure"`
18245
18246	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18247	// to return a list of gateways for your account and AWS Region.
18248	//
18249	// GatewayARN is a required field
18250	GatewayARN *string `min:"50" type:"string" required:"true"`
18251
18252	// The Amazon Resource Name (ARN) of the virtual tape for which you want to
18253	// retrieve the recovery point.
18254	//
18255	// TapeARN is a required field
18256	TapeARN *string `min:"50" type:"string" required:"true"`
18257}
18258
18259// String returns the string representation
18260func (s RetrieveTapeRecoveryPointInput) String() string {
18261	return awsutil.Prettify(s)
18262}
18263
18264// GoString returns the string representation
18265func (s RetrieveTapeRecoveryPointInput) GoString() string {
18266	return s.String()
18267}
18268
18269// Validate inspects the fields of the type to determine if they are valid.
18270func (s *RetrieveTapeRecoveryPointInput) Validate() error {
18271	invalidParams := request.ErrInvalidParams{Context: "RetrieveTapeRecoveryPointInput"}
18272	if s.GatewayARN == nil {
18273		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18274	}
18275	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18276		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18277	}
18278	if s.TapeARN == nil {
18279		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
18280	}
18281	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
18282		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
18283	}
18284
18285	if invalidParams.Len() > 0 {
18286		return invalidParams
18287	}
18288	return nil
18289}
18290
18291// SetGatewayARN sets the GatewayARN field's value.
18292func (s *RetrieveTapeRecoveryPointInput) SetGatewayARN(v string) *RetrieveTapeRecoveryPointInput {
18293	s.GatewayARN = &v
18294	return s
18295}
18296
18297// SetTapeARN sets the TapeARN field's value.
18298func (s *RetrieveTapeRecoveryPointInput) SetTapeARN(v string) *RetrieveTapeRecoveryPointInput {
18299	s.TapeARN = &v
18300	return s
18301}
18302
18303// RetrieveTapeRecoveryPointOutput
18304type RetrieveTapeRecoveryPointOutput struct {
18305	_ struct{} `type:"structure"`
18306
18307	// The Amazon Resource Name (ARN) of the virtual tape for which the recovery
18308	// point was retrieved.
18309	TapeARN *string `min:"50" type:"string"`
18310}
18311
18312// String returns the string representation
18313func (s RetrieveTapeRecoveryPointOutput) String() string {
18314	return awsutil.Prettify(s)
18315}
18316
18317// GoString returns the string representation
18318func (s RetrieveTapeRecoveryPointOutput) GoString() string {
18319	return s.String()
18320}
18321
18322// SetTapeARN sets the TapeARN field's value.
18323func (s *RetrieveTapeRecoveryPointOutput) SetTapeARN(v string) *RetrieveTapeRecoveryPointOutput {
18324	s.TapeARN = &v
18325	return s
18326}
18327
18328// The Windows file permissions and ownership information assigned, by default,
18329// to native S3 objects when file gateway discovers them in S3 buckets. This
18330// operation is only supported for file gateways.
18331type SMBFileShareInfo struct {
18332	_ struct{} `type:"structure"`
18333
18334	// Indicates whether AccessBasedEnumeration is enabled.
18335	AccessBasedEnumeration *bool `type:"boolean"`
18336
18337	// A list of users or groups in the Active Directory that have administrator
18338	// rights to the file share. A group must be prefixed with the @ character.
18339	// Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1.
18340	// Can only be set if Authentication is set to ActiveDirectory.
18341	AdminUserList []*string `type:"list"`
18342
18343	// The Amazon Resource Name (ARN) of the storage used for audit logs.
18344	AuditDestinationARN *string `type:"string"`
18345
18346	// The authentication method of the file share. The default is ActiveDirectory.
18347	//
18348	// Valid Values: ActiveDirectory | GuestAccess
18349	Authentication *string `min:"5" type:"string"`
18350
18351	// Refresh cache information for the file share.
18352	CacheAttributes *CacheAttributes `type:"structure"`
18353
18354	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
18355	// client determines the case sensitivity. For CaseSensitive, the gateway determines
18356	// the case sensitivity. The default value is ClientSpecified.
18357	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
18358
18359	// The default storage class for objects put into an Amazon S3 bucket by the
18360	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
18361	//
18362	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
18363	DefaultStorageClass *string `min:"5" type:"string"`
18364
18365	// The Amazon Resource Name (ARN) of the file share.
18366	FileShareARN *string `min:"50" type:"string"`
18367
18368	// The ID of the file share.
18369	FileShareId *string `min:"12" type:"string"`
18370
18371	// The name of the file share. Optional.
18372	//
18373	// FileShareName must be set if an S3 prefix name is set in LocationARN.
18374	FileShareName *string `min:"1" type:"string"`
18375
18376	// The status of the file share.
18377	//
18378	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
18379	FileShareStatus *string `min:"3" type:"string"`
18380
18381	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18382	// to return a list of gateways for your account and AWS Region.
18383	GatewayARN *string `min:"50" type:"string"`
18384
18385	// A value that enables guessing of the MIME type for uploaded objects based
18386	// on file extensions. Set this value to true to enable MIME type guessing,
18387	// otherwise set to false. The default value is true.
18388	//
18389	// Valid Values: true | false
18390	GuessMIMETypeEnabled *bool `type:"boolean"`
18391
18392	// A list of users or groups in the Active Directory that are not allowed to
18393	// access the file share. A group must be prefixed with the @ character. Acceptable
18394	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
18395	// be set if Authentication is set to ActiveDirectory.
18396	InvalidUserList []*string `type:"list"`
18397
18398	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
18399	// key, or false to use a key managed by Amazon S3. Optional.
18400	//
18401	// Valid Values: true | false
18402	KMSEncrypted *bool `type:"boolean"`
18403
18404	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
18405	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
18406	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
18407	KMSKey *string `min:"7" type:"string"`
18408
18409	// The ARN of the backend storage used for storing file data. A prefix name
18410	// can be added to the S3 bucket name. It must end with a "/".
18411	LocationARN *string `min:"16" type:"string"`
18412
18413	// The notification policy of the file share. SettlingTimeInSeconds controls
18414	// the number of seconds to wait after the last point in time a client wrote
18415	// to a file before generating an ObjectUploaded notification. Because clients
18416	// can make many small writes to files, it's best to set this parameter for
18417	// as long as possible to avoid generating multiple notifications for the same
18418	// file in a small time period.
18419	//
18420	// SettlingTimeInSeconds has no effect on the timing of the object uploading
18421	// to Amazon S3, only the timing of the notification.
18422	//
18423	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
18424	// set to 60.
18425	//
18426	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
18427	//
18428	// The following example sets NotificationPolicy off.
18429	//
18430	// {}
18431	NotificationPolicy *string `min:"2" type:"string"`
18432
18433	// A value that sets the access control list (ACL) permission for objects in
18434	// the S3 bucket that a file gateway puts objects into. The default value is
18435	// private.
18436	ObjectACL *string `type:"string" enum:"ObjectACL"`
18437
18438	// The file share path used by the SMB client to identify the mount point.
18439	Path *string `type:"string"`
18440
18441	// A value that sets the write status of a file share. Set this value to true
18442	// to set the write status to read-only, otherwise set to false.
18443	//
18444	// Valid Values: true | false
18445	ReadOnly *bool `type:"boolean"`
18446
18447	// A value that sets who pays the cost of the request and the cost associated
18448	// with data download from the S3 bucket. If this value is set to true, the
18449	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
18450	// S3 bucket owner always pays the cost of storing data.
18451	//
18452	// RequesterPays is a configuration for the S3 bucket that backs the file share,
18453	// so make sure that the configuration on the file share is the same as the
18454	// S3 bucket configuration.
18455	//
18456	// Valid Values: true | false
18457	RequesterPays *bool `type:"boolean"`
18458
18459	// The ARN of the IAM role that file gateway assumes when it accesses the underlying
18460	// storage.
18461	Role *string `min:"20" type:"string"`
18462
18463	// If this value is set to true, it indicates that access control list (ACL)
18464	// is enabled on the SMB file share. If it is set to false, it indicates that
18465	// file and directory permissions are mapped to the POSIX permission.
18466	//
18467	// For more information, see Using Microsoft Windows ACLs to control access
18468	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
18469	// in the AWS Storage Gateway User Guide.
18470	SMBACLEnabled *bool `type:"boolean"`
18471
18472	// A list of up to 50 tags assigned to the SMB file share, sorted alphabetically
18473	// by key name. Each tag is a key-value pair. For a gateway with more than 10
18474	// tags assigned, you can view all tags using the ListTagsForResource API operation.
18475	Tags []*Tag `type:"list"`
18476
18477	// A list of users or groups in the Active Directory that are allowed to access
18478	// the file share. A group must be prefixed with the @ character. Acceptable
18479	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
18480	// be set if Authentication is set to ActiveDirectory.
18481	ValidUserList []*string `type:"list"`
18482}
18483
18484// String returns the string representation
18485func (s SMBFileShareInfo) String() string {
18486	return awsutil.Prettify(s)
18487}
18488
18489// GoString returns the string representation
18490func (s SMBFileShareInfo) GoString() string {
18491	return s.String()
18492}
18493
18494// SetAccessBasedEnumeration sets the AccessBasedEnumeration field's value.
18495func (s *SMBFileShareInfo) SetAccessBasedEnumeration(v bool) *SMBFileShareInfo {
18496	s.AccessBasedEnumeration = &v
18497	return s
18498}
18499
18500// SetAdminUserList sets the AdminUserList field's value.
18501func (s *SMBFileShareInfo) SetAdminUserList(v []*string) *SMBFileShareInfo {
18502	s.AdminUserList = v
18503	return s
18504}
18505
18506// SetAuditDestinationARN sets the AuditDestinationARN field's value.
18507func (s *SMBFileShareInfo) SetAuditDestinationARN(v string) *SMBFileShareInfo {
18508	s.AuditDestinationARN = &v
18509	return s
18510}
18511
18512// SetAuthentication sets the Authentication field's value.
18513func (s *SMBFileShareInfo) SetAuthentication(v string) *SMBFileShareInfo {
18514	s.Authentication = &v
18515	return s
18516}
18517
18518// SetCacheAttributes sets the CacheAttributes field's value.
18519func (s *SMBFileShareInfo) SetCacheAttributes(v *CacheAttributes) *SMBFileShareInfo {
18520	s.CacheAttributes = v
18521	return s
18522}
18523
18524// SetCaseSensitivity sets the CaseSensitivity field's value.
18525func (s *SMBFileShareInfo) SetCaseSensitivity(v string) *SMBFileShareInfo {
18526	s.CaseSensitivity = &v
18527	return s
18528}
18529
18530// SetDefaultStorageClass sets the DefaultStorageClass field's value.
18531func (s *SMBFileShareInfo) SetDefaultStorageClass(v string) *SMBFileShareInfo {
18532	s.DefaultStorageClass = &v
18533	return s
18534}
18535
18536// SetFileShareARN sets the FileShareARN field's value.
18537func (s *SMBFileShareInfo) SetFileShareARN(v string) *SMBFileShareInfo {
18538	s.FileShareARN = &v
18539	return s
18540}
18541
18542// SetFileShareId sets the FileShareId field's value.
18543func (s *SMBFileShareInfo) SetFileShareId(v string) *SMBFileShareInfo {
18544	s.FileShareId = &v
18545	return s
18546}
18547
18548// SetFileShareName sets the FileShareName field's value.
18549func (s *SMBFileShareInfo) SetFileShareName(v string) *SMBFileShareInfo {
18550	s.FileShareName = &v
18551	return s
18552}
18553
18554// SetFileShareStatus sets the FileShareStatus field's value.
18555func (s *SMBFileShareInfo) SetFileShareStatus(v string) *SMBFileShareInfo {
18556	s.FileShareStatus = &v
18557	return s
18558}
18559
18560// SetGatewayARN sets the GatewayARN field's value.
18561func (s *SMBFileShareInfo) SetGatewayARN(v string) *SMBFileShareInfo {
18562	s.GatewayARN = &v
18563	return s
18564}
18565
18566// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
18567func (s *SMBFileShareInfo) SetGuessMIMETypeEnabled(v bool) *SMBFileShareInfo {
18568	s.GuessMIMETypeEnabled = &v
18569	return s
18570}
18571
18572// SetInvalidUserList sets the InvalidUserList field's value.
18573func (s *SMBFileShareInfo) SetInvalidUserList(v []*string) *SMBFileShareInfo {
18574	s.InvalidUserList = v
18575	return s
18576}
18577
18578// SetKMSEncrypted sets the KMSEncrypted field's value.
18579func (s *SMBFileShareInfo) SetKMSEncrypted(v bool) *SMBFileShareInfo {
18580	s.KMSEncrypted = &v
18581	return s
18582}
18583
18584// SetKMSKey sets the KMSKey field's value.
18585func (s *SMBFileShareInfo) SetKMSKey(v string) *SMBFileShareInfo {
18586	s.KMSKey = &v
18587	return s
18588}
18589
18590// SetLocationARN sets the LocationARN field's value.
18591func (s *SMBFileShareInfo) SetLocationARN(v string) *SMBFileShareInfo {
18592	s.LocationARN = &v
18593	return s
18594}
18595
18596// SetNotificationPolicy sets the NotificationPolicy field's value.
18597func (s *SMBFileShareInfo) SetNotificationPolicy(v string) *SMBFileShareInfo {
18598	s.NotificationPolicy = &v
18599	return s
18600}
18601
18602// SetObjectACL sets the ObjectACL field's value.
18603func (s *SMBFileShareInfo) SetObjectACL(v string) *SMBFileShareInfo {
18604	s.ObjectACL = &v
18605	return s
18606}
18607
18608// SetPath sets the Path field's value.
18609func (s *SMBFileShareInfo) SetPath(v string) *SMBFileShareInfo {
18610	s.Path = &v
18611	return s
18612}
18613
18614// SetReadOnly sets the ReadOnly field's value.
18615func (s *SMBFileShareInfo) SetReadOnly(v bool) *SMBFileShareInfo {
18616	s.ReadOnly = &v
18617	return s
18618}
18619
18620// SetRequesterPays sets the RequesterPays field's value.
18621func (s *SMBFileShareInfo) SetRequesterPays(v bool) *SMBFileShareInfo {
18622	s.RequesterPays = &v
18623	return s
18624}
18625
18626// SetRole sets the Role field's value.
18627func (s *SMBFileShareInfo) SetRole(v string) *SMBFileShareInfo {
18628	s.Role = &v
18629	return s
18630}
18631
18632// SetSMBACLEnabled sets the SMBACLEnabled field's value.
18633func (s *SMBFileShareInfo) SetSMBACLEnabled(v bool) *SMBFileShareInfo {
18634	s.SMBACLEnabled = &v
18635	return s
18636}
18637
18638// SetTags sets the Tags field's value.
18639func (s *SMBFileShareInfo) SetTags(v []*Tag) *SMBFileShareInfo {
18640	s.Tags = v
18641	return s
18642}
18643
18644// SetValidUserList sets the ValidUserList field's value.
18645func (s *SMBFileShareInfo) SetValidUserList(v []*string) *SMBFileShareInfo {
18646	s.ValidUserList = v
18647	return s
18648}
18649
18650// An internal server error has occurred because the service is unavailable.
18651// For more information, see the error and message fields.
18652type ServiceUnavailableError struct {
18653	_            struct{}                  `type:"structure"`
18654	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
18655
18656	// A StorageGatewayError that provides more information about the cause of the
18657	// error.
18658	Error_ *Error `locationName:"error" type:"structure"`
18659
18660	// A human-readable message describing the error that occurred.
18661	Message_ *string `locationName:"message" type:"string"`
18662}
18663
18664// String returns the string representation
18665func (s ServiceUnavailableError) String() string {
18666	return awsutil.Prettify(s)
18667}
18668
18669// GoString returns the string representation
18670func (s ServiceUnavailableError) GoString() string {
18671	return s.String()
18672}
18673
18674func newErrorServiceUnavailableError(v protocol.ResponseMetadata) error {
18675	return &ServiceUnavailableError{
18676		RespMetadata: v,
18677	}
18678}
18679
18680// Code returns the exception type name.
18681func (s *ServiceUnavailableError) Code() string {
18682	return "ServiceUnavailableError"
18683}
18684
18685// Message returns the exception's message.
18686func (s *ServiceUnavailableError) Message() string {
18687	if s.Message_ != nil {
18688		return *s.Message_
18689	}
18690	return ""
18691}
18692
18693// OrigErr always returns nil, satisfies awserr.Error interface.
18694func (s *ServiceUnavailableError) OrigErr() error {
18695	return nil
18696}
18697
18698func (s *ServiceUnavailableError) Error() string {
18699	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
18700}
18701
18702// Status code returns the HTTP status code for the request's response error.
18703func (s *ServiceUnavailableError) StatusCode() int {
18704	return s.RespMetadata.StatusCode
18705}
18706
18707// RequestID returns the service's response RequestID for request.
18708func (s *ServiceUnavailableError) RequestID() string {
18709	return s.RespMetadata.RequestID
18710}
18711
18712// SetLocalConsolePasswordInput
18713type SetLocalConsolePasswordInput struct {
18714	_ struct{} `type:"structure"`
18715
18716	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18717	// to return a list of gateways for your account and AWS Region.
18718	//
18719	// GatewayARN is a required field
18720	GatewayARN *string `min:"50" type:"string" required:"true"`
18721
18722	// The password you want to set for your VM local console.
18723	//
18724	// LocalConsolePassword is a required field
18725	LocalConsolePassword *string `min:"6" type:"string" required:"true" sensitive:"true"`
18726}
18727
18728// String returns the string representation
18729func (s SetLocalConsolePasswordInput) String() string {
18730	return awsutil.Prettify(s)
18731}
18732
18733// GoString returns the string representation
18734func (s SetLocalConsolePasswordInput) GoString() string {
18735	return s.String()
18736}
18737
18738// Validate inspects the fields of the type to determine if they are valid.
18739func (s *SetLocalConsolePasswordInput) Validate() error {
18740	invalidParams := request.ErrInvalidParams{Context: "SetLocalConsolePasswordInput"}
18741	if s.GatewayARN == nil {
18742		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18743	}
18744	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18745		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18746	}
18747	if s.LocalConsolePassword == nil {
18748		invalidParams.Add(request.NewErrParamRequired("LocalConsolePassword"))
18749	}
18750	if s.LocalConsolePassword != nil && len(*s.LocalConsolePassword) < 6 {
18751		invalidParams.Add(request.NewErrParamMinLen("LocalConsolePassword", 6))
18752	}
18753
18754	if invalidParams.Len() > 0 {
18755		return invalidParams
18756	}
18757	return nil
18758}
18759
18760// SetGatewayARN sets the GatewayARN field's value.
18761func (s *SetLocalConsolePasswordInput) SetGatewayARN(v string) *SetLocalConsolePasswordInput {
18762	s.GatewayARN = &v
18763	return s
18764}
18765
18766// SetLocalConsolePassword sets the LocalConsolePassword field's value.
18767func (s *SetLocalConsolePasswordInput) SetLocalConsolePassword(v string) *SetLocalConsolePasswordInput {
18768	s.LocalConsolePassword = &v
18769	return s
18770}
18771
18772type SetLocalConsolePasswordOutput struct {
18773	_ struct{} `type:"structure"`
18774
18775	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18776	// to return a list of gateways for your account and AWS Region.
18777	GatewayARN *string `min:"50" type:"string"`
18778}
18779
18780// String returns the string representation
18781func (s SetLocalConsolePasswordOutput) String() string {
18782	return awsutil.Prettify(s)
18783}
18784
18785// GoString returns the string representation
18786func (s SetLocalConsolePasswordOutput) GoString() string {
18787	return s.String()
18788}
18789
18790// SetGatewayARN sets the GatewayARN field's value.
18791func (s *SetLocalConsolePasswordOutput) SetGatewayARN(v string) *SetLocalConsolePasswordOutput {
18792	s.GatewayARN = &v
18793	return s
18794}
18795
18796// SetSMBGuestPasswordInput
18797type SetSMBGuestPasswordInput struct {
18798	_ struct{} `type:"structure"`
18799
18800	// The Amazon Resource Name (ARN) of the file gateway the SMB file share is
18801	// associated with.
18802	//
18803	// GatewayARN is a required field
18804	GatewayARN *string `min:"50" type:"string" required:"true"`
18805
18806	// The password that you want to set for your SMB server.
18807	//
18808	// Password is a required field
18809	Password *string `min:"6" type:"string" required:"true" sensitive:"true"`
18810}
18811
18812// String returns the string representation
18813func (s SetSMBGuestPasswordInput) String() string {
18814	return awsutil.Prettify(s)
18815}
18816
18817// GoString returns the string representation
18818func (s SetSMBGuestPasswordInput) GoString() string {
18819	return s.String()
18820}
18821
18822// Validate inspects the fields of the type to determine if they are valid.
18823func (s *SetSMBGuestPasswordInput) Validate() error {
18824	invalidParams := request.ErrInvalidParams{Context: "SetSMBGuestPasswordInput"}
18825	if s.GatewayARN == nil {
18826		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18827	}
18828	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18829		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18830	}
18831	if s.Password == nil {
18832		invalidParams.Add(request.NewErrParamRequired("Password"))
18833	}
18834	if s.Password != nil && len(*s.Password) < 6 {
18835		invalidParams.Add(request.NewErrParamMinLen("Password", 6))
18836	}
18837
18838	if invalidParams.Len() > 0 {
18839		return invalidParams
18840	}
18841	return nil
18842}
18843
18844// SetGatewayARN sets the GatewayARN field's value.
18845func (s *SetSMBGuestPasswordInput) SetGatewayARN(v string) *SetSMBGuestPasswordInput {
18846	s.GatewayARN = &v
18847	return s
18848}
18849
18850// SetPassword sets the Password field's value.
18851func (s *SetSMBGuestPasswordInput) SetPassword(v string) *SetSMBGuestPasswordInput {
18852	s.Password = &v
18853	return s
18854}
18855
18856type SetSMBGuestPasswordOutput struct {
18857	_ struct{} `type:"structure"`
18858
18859	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18860	// to return a list of gateways for your account and AWS Region.
18861	GatewayARN *string `min:"50" type:"string"`
18862}
18863
18864// String returns the string representation
18865func (s SetSMBGuestPasswordOutput) String() string {
18866	return awsutil.Prettify(s)
18867}
18868
18869// GoString returns the string representation
18870func (s SetSMBGuestPasswordOutput) GoString() string {
18871	return s.String()
18872}
18873
18874// SetGatewayARN sets the GatewayARN field's value.
18875func (s *SetSMBGuestPasswordOutput) SetGatewayARN(v string) *SetSMBGuestPasswordOutput {
18876	s.GatewayARN = &v
18877	return s
18878}
18879
18880// A JSON object containing the Amazon Resource Name (ARN) of the gateway to
18881// shut down.
18882type ShutdownGatewayInput struct {
18883	_ struct{} `type:"structure"`
18884
18885	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18886	// to return a list of gateways for your account and AWS Region.
18887	//
18888	// GatewayARN is a required field
18889	GatewayARN *string `min:"50" type:"string" required:"true"`
18890}
18891
18892// String returns the string representation
18893func (s ShutdownGatewayInput) String() string {
18894	return awsutil.Prettify(s)
18895}
18896
18897// GoString returns the string representation
18898func (s ShutdownGatewayInput) GoString() string {
18899	return s.String()
18900}
18901
18902// Validate inspects the fields of the type to determine if they are valid.
18903func (s *ShutdownGatewayInput) Validate() error {
18904	invalidParams := request.ErrInvalidParams{Context: "ShutdownGatewayInput"}
18905	if s.GatewayARN == nil {
18906		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18907	}
18908	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18909		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18910	}
18911
18912	if invalidParams.Len() > 0 {
18913		return invalidParams
18914	}
18915	return nil
18916}
18917
18918// SetGatewayARN sets the GatewayARN field's value.
18919func (s *ShutdownGatewayInput) SetGatewayARN(v string) *ShutdownGatewayInput {
18920	s.GatewayARN = &v
18921	return s
18922}
18923
18924// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
18925// was shut down.
18926type ShutdownGatewayOutput struct {
18927	_ struct{} `type:"structure"`
18928
18929	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18930	// to return a list of gateways for your account and AWS Region.
18931	GatewayARN *string `min:"50" type:"string"`
18932}
18933
18934// String returns the string representation
18935func (s ShutdownGatewayOutput) String() string {
18936	return awsutil.Prettify(s)
18937}
18938
18939// GoString returns the string representation
18940func (s ShutdownGatewayOutput) GoString() string {
18941	return s.String()
18942}
18943
18944// SetGatewayARN sets the GatewayARN field's value.
18945func (s *ShutdownGatewayOutput) SetGatewayARN(v string) *ShutdownGatewayOutput {
18946	s.GatewayARN = &v
18947	return s
18948}
18949
18950type StartAvailabilityMonitorTestInput struct {
18951	_ struct{} `type:"structure"`
18952
18953	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18954	// to return a list of gateways for your account and AWS Region.
18955	//
18956	// GatewayARN is a required field
18957	GatewayARN *string `min:"50" type:"string" required:"true"`
18958}
18959
18960// String returns the string representation
18961func (s StartAvailabilityMonitorTestInput) String() string {
18962	return awsutil.Prettify(s)
18963}
18964
18965// GoString returns the string representation
18966func (s StartAvailabilityMonitorTestInput) GoString() string {
18967	return s.String()
18968}
18969
18970// Validate inspects the fields of the type to determine if they are valid.
18971func (s *StartAvailabilityMonitorTestInput) Validate() error {
18972	invalidParams := request.ErrInvalidParams{Context: "StartAvailabilityMonitorTestInput"}
18973	if s.GatewayARN == nil {
18974		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18975	}
18976	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18977		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18978	}
18979
18980	if invalidParams.Len() > 0 {
18981		return invalidParams
18982	}
18983	return nil
18984}
18985
18986// SetGatewayARN sets the GatewayARN field's value.
18987func (s *StartAvailabilityMonitorTestInput) SetGatewayARN(v string) *StartAvailabilityMonitorTestInput {
18988	s.GatewayARN = &v
18989	return s
18990}
18991
18992type StartAvailabilityMonitorTestOutput struct {
18993	_ struct{} `type:"structure"`
18994
18995	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18996	// to return a list of gateways for your account and AWS Region.
18997	GatewayARN *string `min:"50" type:"string"`
18998}
18999
19000// String returns the string representation
19001func (s StartAvailabilityMonitorTestOutput) String() string {
19002	return awsutil.Prettify(s)
19003}
19004
19005// GoString returns the string representation
19006func (s StartAvailabilityMonitorTestOutput) GoString() string {
19007	return s.String()
19008}
19009
19010// SetGatewayARN sets the GatewayARN field's value.
19011func (s *StartAvailabilityMonitorTestOutput) SetGatewayARN(v string) *StartAvailabilityMonitorTestOutput {
19012	s.GatewayARN = &v
19013	return s
19014}
19015
19016// A JSON object containing the Amazon Resource Name (ARN) of the gateway to
19017// start.
19018type StartGatewayInput struct {
19019	_ struct{} `type:"structure"`
19020
19021	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19022	// to return a list of gateways for your account and AWS Region.
19023	//
19024	// GatewayARN is a required field
19025	GatewayARN *string `min:"50" type:"string" required:"true"`
19026}
19027
19028// String returns the string representation
19029func (s StartGatewayInput) String() string {
19030	return awsutil.Prettify(s)
19031}
19032
19033// GoString returns the string representation
19034func (s StartGatewayInput) GoString() string {
19035	return s.String()
19036}
19037
19038// Validate inspects the fields of the type to determine if they are valid.
19039func (s *StartGatewayInput) Validate() error {
19040	invalidParams := request.ErrInvalidParams{Context: "StartGatewayInput"}
19041	if s.GatewayARN == nil {
19042		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
19043	}
19044	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
19045		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
19046	}
19047
19048	if invalidParams.Len() > 0 {
19049		return invalidParams
19050	}
19051	return nil
19052}
19053
19054// SetGatewayARN sets the GatewayARN field's value.
19055func (s *StartGatewayInput) SetGatewayARN(v string) *StartGatewayInput {
19056	s.GatewayARN = &v
19057	return s
19058}
19059
19060// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
19061// was restarted.
19062type StartGatewayOutput struct {
19063	_ struct{} `type:"structure"`
19064
19065	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19066	// to return a list of gateways for your account and AWS Region.
19067	GatewayARN *string `min:"50" type:"string"`
19068}
19069
19070// String returns the string representation
19071func (s StartGatewayOutput) String() string {
19072	return awsutil.Prettify(s)
19073}
19074
19075// GoString returns the string representation
19076func (s StartGatewayOutput) GoString() string {
19077	return s.String()
19078}
19079
19080// SetGatewayARN sets the GatewayARN field's value.
19081func (s *StartGatewayOutput) SetGatewayARN(v string) *StartGatewayOutput {
19082	s.GatewayARN = &v
19083	return s
19084}
19085
19086// Describes an iSCSI stored volume.
19087type StorediSCSIVolume struct {
19088	_ struct{} `type:"structure"`
19089
19090	// The date the volume was created. Volumes created prior to March 28, 2017
19091	// don’t have this timestamp.
19092	CreatedDate *time.Time `type:"timestamp"`
19093
19094	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
19095	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
19096	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
19097	KMSKey *string `min:"7" type:"string"`
19098
19099	// Indicates if when the stored volume was created, existing data on the underlying
19100	// local disk was preserved.
19101	//
19102	// Valid Values: true | false
19103	PreservedExistingData *bool `type:"boolean"`
19104
19105	// If the stored volume was created from a snapshot, this field contains the
19106	// snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
19107	SourceSnapshotId *string `type:"string"`
19108
19109	// The name of the iSCSI target used by an initiator to connect to a volume
19110	// and used as a suffix for the target ARN. For example, specifying TargetName
19111	// 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.
19112	// The target name must be unique across all volumes on a gateway.
19113	//
19114	// If you don't specify a value, Storage Gateway uses the value that was previously
19115	// used for this volume as the new target name.
19116	TargetName *string `min:"1" type:"string"`
19117
19118	// The Amazon Resource Name (ARN) of the storage volume.
19119	VolumeARN *string `min:"50" type:"string"`
19120
19121	// A value that indicates whether a storage volume is attached to, detached
19122	// from, or is in the process of detaching from a gateway. For more information,
19123	// see Moving your volumes to a different gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
19124	VolumeAttachmentStatus *string `min:"3" type:"string"`
19125
19126	// The ID of the local disk that was specified in the CreateStorediSCSIVolume
19127	// operation.
19128	VolumeDiskId *string `min:"1" type:"string"`
19129
19130	// The unique identifier of the volume, e.g., vol-AE4B946D.
19131	VolumeId *string `min:"12" type:"string"`
19132
19133	// Represents the percentage complete if the volume is restoring or bootstrapping
19134	// that represents the percent of data transferred. This field does not appear
19135	// in the response if the stored volume is not restoring or bootstrapping.
19136	VolumeProgress *float64 `type:"double"`
19137
19138	// The size of the volume in bytes.
19139	VolumeSizeInBytes *int64 `type:"long"`
19140
19141	// One of the VolumeStatus values that indicates the state of the storage volume.
19142	VolumeStatus *string `min:"3" type:"string"`
19143
19144	// One of the VolumeType enumeration values describing the type of the volume.
19145	VolumeType *string `min:"3" type:"string"`
19146
19147	// The size of the data stored on the volume in bytes. This value is calculated
19148	// based on the number of blocks that are touched, instead of the actual amount
19149	// of data written. This value can be useful for sequential write patterns but
19150	// less accurate for random write patterns. VolumeUsedInBytes is different from
19151	// the compressed size of the volume, which is the value that is used to calculate
19152	// your bill.
19153	//
19154	// This value is not available for volumes created prior to May 13, 2015, until
19155	// you store data on the volume.
19156	VolumeUsedInBytes *int64 `type:"long"`
19157
19158	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
19159	// for one stored volume.
19160	VolumeiSCSIAttributes *VolumeiSCSIAttributes `type:"structure"`
19161}
19162
19163// String returns the string representation
19164func (s StorediSCSIVolume) String() string {
19165	return awsutil.Prettify(s)
19166}
19167
19168// GoString returns the string representation
19169func (s StorediSCSIVolume) GoString() string {
19170	return s.String()
19171}
19172
19173// SetCreatedDate sets the CreatedDate field's value.
19174func (s *StorediSCSIVolume) SetCreatedDate(v time.Time) *StorediSCSIVolume {
19175	s.CreatedDate = &v
19176	return s
19177}
19178
19179// SetKMSKey sets the KMSKey field's value.
19180func (s *StorediSCSIVolume) SetKMSKey(v string) *StorediSCSIVolume {
19181	s.KMSKey = &v
19182	return s
19183}
19184
19185// SetPreservedExistingData sets the PreservedExistingData field's value.
19186func (s *StorediSCSIVolume) SetPreservedExistingData(v bool) *StorediSCSIVolume {
19187	s.PreservedExistingData = &v
19188	return s
19189}
19190
19191// SetSourceSnapshotId sets the SourceSnapshotId field's value.
19192func (s *StorediSCSIVolume) SetSourceSnapshotId(v string) *StorediSCSIVolume {
19193	s.SourceSnapshotId = &v
19194	return s
19195}
19196
19197// SetTargetName sets the TargetName field's value.
19198func (s *StorediSCSIVolume) SetTargetName(v string) *StorediSCSIVolume {
19199	s.TargetName = &v
19200	return s
19201}
19202
19203// SetVolumeARN sets the VolumeARN field's value.
19204func (s *StorediSCSIVolume) SetVolumeARN(v string) *StorediSCSIVolume {
19205	s.VolumeARN = &v
19206	return s
19207}
19208
19209// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
19210func (s *StorediSCSIVolume) SetVolumeAttachmentStatus(v string) *StorediSCSIVolume {
19211	s.VolumeAttachmentStatus = &v
19212	return s
19213}
19214
19215// SetVolumeDiskId sets the VolumeDiskId field's value.
19216func (s *StorediSCSIVolume) SetVolumeDiskId(v string) *StorediSCSIVolume {
19217	s.VolumeDiskId = &v
19218	return s
19219}
19220
19221// SetVolumeId sets the VolumeId field's value.
19222func (s *StorediSCSIVolume) SetVolumeId(v string) *StorediSCSIVolume {
19223	s.VolumeId = &v
19224	return s
19225}
19226
19227// SetVolumeProgress sets the VolumeProgress field's value.
19228func (s *StorediSCSIVolume) SetVolumeProgress(v float64) *StorediSCSIVolume {
19229	s.VolumeProgress = &v
19230	return s
19231}
19232
19233// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
19234func (s *StorediSCSIVolume) SetVolumeSizeInBytes(v int64) *StorediSCSIVolume {
19235	s.VolumeSizeInBytes = &v
19236	return s
19237}
19238
19239// SetVolumeStatus sets the VolumeStatus field's value.
19240func (s *StorediSCSIVolume) SetVolumeStatus(v string) *StorediSCSIVolume {
19241	s.VolumeStatus = &v
19242	return s
19243}
19244
19245// SetVolumeType sets the VolumeType field's value.
19246func (s *StorediSCSIVolume) SetVolumeType(v string) *StorediSCSIVolume {
19247	s.VolumeType = &v
19248	return s
19249}
19250
19251// SetVolumeUsedInBytes sets the VolumeUsedInBytes field's value.
19252func (s *StorediSCSIVolume) SetVolumeUsedInBytes(v int64) *StorediSCSIVolume {
19253	s.VolumeUsedInBytes = &v
19254	return s
19255}
19256
19257// SetVolumeiSCSIAttributes sets the VolumeiSCSIAttributes field's value.
19258func (s *StorediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *StorediSCSIVolume {
19259	s.VolumeiSCSIAttributes = v
19260	return s
19261}
19262
19263// A key-value pair that helps you manage, filter, and search for your resource.
19264// Allowed characters: letters, white space, and numbers, representable in UTF-8,
19265// and the following characters: + - = . _ : /.
19266type Tag struct {
19267	_ struct{} `type:"structure"`
19268
19269	// Tag key. The key can't start with aws:.
19270	//
19271	// Key is a required field
19272	Key *string `min:"1" type:"string" required:"true"`
19273
19274	// Value of the tag key.
19275	//
19276	// Value is a required field
19277	Value *string `type:"string" required:"true"`
19278}
19279
19280// String returns the string representation
19281func (s Tag) String() string {
19282	return awsutil.Prettify(s)
19283}
19284
19285// GoString returns the string representation
19286func (s Tag) GoString() string {
19287	return s.String()
19288}
19289
19290// Validate inspects the fields of the type to determine if they are valid.
19291func (s *Tag) Validate() error {
19292	invalidParams := request.ErrInvalidParams{Context: "Tag"}
19293	if s.Key == nil {
19294		invalidParams.Add(request.NewErrParamRequired("Key"))
19295	}
19296	if s.Key != nil && len(*s.Key) < 1 {
19297		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
19298	}
19299	if s.Value == nil {
19300		invalidParams.Add(request.NewErrParamRequired("Value"))
19301	}
19302
19303	if invalidParams.Len() > 0 {
19304		return invalidParams
19305	}
19306	return nil
19307}
19308
19309// SetKey sets the Key field's value.
19310func (s *Tag) SetKey(v string) *Tag {
19311	s.Key = &v
19312	return s
19313}
19314
19315// SetValue sets the Value field's value.
19316func (s *Tag) SetValue(v string) *Tag {
19317	s.Value = &v
19318	return s
19319}
19320
19321// Describes a virtual tape object.
19322type Tape struct {
19323	_ struct{} `type:"structure"`
19324
19325	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
19326	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
19327	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
19328	KMSKey *string `min:"7" type:"string"`
19329
19330	// The date that the tape enters a custom tape pool.
19331	PoolEntryDate *time.Time `type:"timestamp"`
19332
19333	// The ID of the pool that contains tapes that will be archived. The tapes in
19334	// this pool are archived in the S3 storage class that is associated with the
19335	// pool. When you use your backup application to eject the tape, the tape is
19336	// archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive)
19337	// that corresponds to the pool.
19338	//
19339	// Valid Values: GLACIER | DEEP_ARCHIVE
19340	PoolId *string `min:"1" type:"string"`
19341
19342	// For archiving virtual tapes, indicates how much data remains to be uploaded
19343	// before archiving is complete.
19344	//
19345	// Range: 0 (not started) to 100 (complete).
19346	Progress *float64 `type:"double"`
19347
19348	// The date that the tape is first archived with tape retention lock enabled.
19349	RetentionStartDate *time.Time `type:"timestamp"`
19350
19351	// The Amazon Resource Name (ARN) of the virtual tape.
19352	TapeARN *string `min:"50" type:"string"`
19353
19354	// The barcode that identifies a specific virtual tape.
19355	TapeBarcode *string `min:"7" type:"string"`
19356
19357	// The date the virtual tape was created.
19358	TapeCreatedDate *time.Time `type:"timestamp"`
19359
19360	// The size, in bytes, of the virtual tape capacity.
19361	TapeSizeInBytes *int64 `type:"long"`
19362
19363	// The current state of the virtual tape.
19364	TapeStatus *string `type:"string"`
19365
19366	// The size, in bytes, of data stored on the virtual tape.
19367	//
19368	// This value is not available for tapes created prior to May 13, 2015.
19369	TapeUsedInBytes *int64 `type:"long"`
19370
19371	// The virtual tape library (VTL) device that the virtual tape is associated
19372	// with.
19373	VTLDevice *string `min:"50" type:"string"`
19374
19375	// If the tape is archived as write-once-read-many (WORM), this value is true.
19376	Worm *bool `type:"boolean"`
19377}
19378
19379// String returns the string representation
19380func (s Tape) String() string {
19381	return awsutil.Prettify(s)
19382}
19383
19384// GoString returns the string representation
19385func (s Tape) GoString() string {
19386	return s.String()
19387}
19388
19389// SetKMSKey sets the KMSKey field's value.
19390func (s *Tape) SetKMSKey(v string) *Tape {
19391	s.KMSKey = &v
19392	return s
19393}
19394
19395// SetPoolEntryDate sets the PoolEntryDate field's value.
19396func (s *Tape) SetPoolEntryDate(v time.Time) *Tape {
19397	s.PoolEntryDate = &v
19398	return s
19399}
19400
19401// SetPoolId sets the PoolId field's value.
19402func (s *Tape) SetPoolId(v string) *Tape {
19403	s.PoolId = &v
19404	return s
19405}
19406
19407// SetProgress sets the Progress field's value.
19408func (s *Tape) SetProgress(v float64) *Tape {
19409	s.Progress = &v
19410	return s
19411}
19412
19413// SetRetentionStartDate sets the RetentionStartDate field's value.
19414func (s *Tape) SetRetentionStartDate(v time.Time) *Tape {
19415	s.RetentionStartDate = &v
19416	return s
19417}
19418
19419// SetTapeARN sets the TapeARN field's value.
19420func (s *Tape) SetTapeARN(v string) *Tape {
19421	s.TapeARN = &v
19422	return s
19423}
19424
19425// SetTapeBarcode sets the TapeBarcode field's value.
19426func (s *Tape) SetTapeBarcode(v string) *Tape {
19427	s.TapeBarcode = &v
19428	return s
19429}
19430
19431// SetTapeCreatedDate sets the TapeCreatedDate field's value.
19432func (s *Tape) SetTapeCreatedDate(v time.Time) *Tape {
19433	s.TapeCreatedDate = &v
19434	return s
19435}
19436
19437// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
19438func (s *Tape) SetTapeSizeInBytes(v int64) *Tape {
19439	s.TapeSizeInBytes = &v
19440	return s
19441}
19442
19443// SetTapeStatus sets the TapeStatus field's value.
19444func (s *Tape) SetTapeStatus(v string) *Tape {
19445	s.TapeStatus = &v
19446	return s
19447}
19448
19449// SetTapeUsedInBytes sets the TapeUsedInBytes field's value.
19450func (s *Tape) SetTapeUsedInBytes(v int64) *Tape {
19451	s.TapeUsedInBytes = &v
19452	return s
19453}
19454
19455// SetVTLDevice sets the VTLDevice field's value.
19456func (s *Tape) SetVTLDevice(v string) *Tape {
19457	s.VTLDevice = &v
19458	return s
19459}
19460
19461// SetWorm sets the Worm field's value.
19462func (s *Tape) SetWorm(v bool) *Tape {
19463	s.Worm = &v
19464	return s
19465}
19466
19467// Represents a virtual tape that is archived in the virtual tape shelf (VTS).
19468type TapeArchive struct {
19469	_ struct{} `type:"structure"`
19470
19471	// The time that the archiving of the virtual tape was completed.
19472	//
19473	// The default timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z'
19474	// format.
19475	CompletionTime *time.Time `type:"timestamp"`
19476
19477	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
19478	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
19479	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
19480	KMSKey *string `min:"7" type:"string"`
19481
19482	// The time that the tape entered the custom tape pool.
19483	//
19484	// The default timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z'
19485	// format.
19486	PoolEntryDate *time.Time `type:"timestamp"`
19487
19488	// The ID of the pool that was used to archive the tape. The tapes in this pool
19489	// are archived in the S3 storage class that is associated with the pool.
19490	//
19491	// Valid Values: GLACIER | DEEP_ARCHIVE
19492	PoolId *string `min:"1" type:"string"`
19493
19494	// If the archived tape is subject to tape retention lock, the date that the
19495	// archived tape started being retained.
19496	RetentionStartDate *time.Time `type:"timestamp"`
19497
19498	// The Amazon Resource Name (ARN) of the tape gateway that the virtual tape
19499	// is being retrieved to.
19500	//
19501	// The virtual tape is retrieved from the virtual tape shelf (VTS).
19502	RetrievedTo *string `min:"50" type:"string"`
19503
19504	// The Amazon Resource Name (ARN) of an archived virtual tape.
19505	TapeARN *string `min:"50" type:"string"`
19506
19507	// The barcode that identifies the archived virtual tape.
19508	TapeBarcode *string `min:"7" type:"string"`
19509
19510	// The date the virtual tape was created.
19511	TapeCreatedDate *time.Time `type:"timestamp"`
19512
19513	// The size, in bytes, of the archived virtual tape.
19514	TapeSizeInBytes *int64 `type:"long"`
19515
19516	// The current state of the archived virtual tape.
19517	TapeStatus *string `type:"string"`
19518
19519	// The size, in bytes, of data stored on the virtual tape.
19520	//
19521	// This value is not available for tapes created prior to May 13, 2015.
19522	TapeUsedInBytes *int64 `type:"long"`
19523
19524	// Set to true if the archived tape is stored as write-once-read-many (WORM).
19525	Worm *bool `type:"boolean"`
19526}
19527
19528// String returns the string representation
19529func (s TapeArchive) String() string {
19530	return awsutil.Prettify(s)
19531}
19532
19533// GoString returns the string representation
19534func (s TapeArchive) GoString() string {
19535	return s.String()
19536}
19537
19538// SetCompletionTime sets the CompletionTime field's value.
19539func (s *TapeArchive) SetCompletionTime(v time.Time) *TapeArchive {
19540	s.CompletionTime = &v
19541	return s
19542}
19543
19544// SetKMSKey sets the KMSKey field's value.
19545func (s *TapeArchive) SetKMSKey(v string) *TapeArchive {
19546	s.KMSKey = &v
19547	return s
19548}
19549
19550// SetPoolEntryDate sets the PoolEntryDate field's value.
19551func (s *TapeArchive) SetPoolEntryDate(v time.Time) *TapeArchive {
19552	s.PoolEntryDate = &v
19553	return s
19554}
19555
19556// SetPoolId sets the PoolId field's value.
19557func (s *TapeArchive) SetPoolId(v string) *TapeArchive {
19558	s.PoolId = &v
19559	return s
19560}
19561
19562// SetRetentionStartDate sets the RetentionStartDate field's value.
19563func (s *TapeArchive) SetRetentionStartDate(v time.Time) *TapeArchive {
19564	s.RetentionStartDate = &v
19565	return s
19566}
19567
19568// SetRetrievedTo sets the RetrievedTo field's value.
19569func (s *TapeArchive) SetRetrievedTo(v string) *TapeArchive {
19570	s.RetrievedTo = &v
19571	return s
19572}
19573
19574// SetTapeARN sets the TapeARN field's value.
19575func (s *TapeArchive) SetTapeARN(v string) *TapeArchive {
19576	s.TapeARN = &v
19577	return s
19578}
19579
19580// SetTapeBarcode sets the TapeBarcode field's value.
19581func (s *TapeArchive) SetTapeBarcode(v string) *TapeArchive {
19582	s.TapeBarcode = &v
19583	return s
19584}
19585
19586// SetTapeCreatedDate sets the TapeCreatedDate field's value.
19587func (s *TapeArchive) SetTapeCreatedDate(v time.Time) *TapeArchive {
19588	s.TapeCreatedDate = &v
19589	return s
19590}
19591
19592// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
19593func (s *TapeArchive) SetTapeSizeInBytes(v int64) *TapeArchive {
19594	s.TapeSizeInBytes = &v
19595	return s
19596}
19597
19598// SetTapeStatus sets the TapeStatus field's value.
19599func (s *TapeArchive) SetTapeStatus(v string) *TapeArchive {
19600	s.TapeStatus = &v
19601	return s
19602}
19603
19604// SetTapeUsedInBytes sets the TapeUsedInBytes field's value.
19605func (s *TapeArchive) SetTapeUsedInBytes(v int64) *TapeArchive {
19606	s.TapeUsedInBytes = &v
19607	return s
19608}
19609
19610// SetWorm sets the Worm field's value.
19611func (s *TapeArchive) SetWorm(v bool) *TapeArchive {
19612	s.Worm = &v
19613	return s
19614}
19615
19616// Describes a virtual tape.
19617type TapeInfo struct {
19618	_ struct{} `type:"structure"`
19619
19620	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19621	// to return a list of gateways for your account and AWS Region.
19622	GatewayARN *string `min:"50" type:"string"`
19623
19624	// The date that the tape entered the custom tape pool with tape retention lock
19625	// enabled.
19626	PoolEntryDate *time.Time `type:"timestamp"`
19627
19628	// The ID of the pool that you want to add your tape to for archiving. The tape
19629	// in this pool is archived in the S3 storage class that is associated with
19630	// the pool. When you use your backup application to eject the tape, the tape
19631	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
19632	// Archive) that corresponds to the pool.
19633	//
19634	// Valid Values: GLACIER | DEEP_ARCHIVE
19635	PoolId *string `min:"1" type:"string"`
19636
19637	// The date that the tape became subject to tape retention lock.
19638	RetentionStartDate *time.Time `type:"timestamp"`
19639
19640	// The Amazon Resource Name (ARN) of a virtual tape.
19641	TapeARN *string `min:"50" type:"string"`
19642
19643	// The barcode that identifies a specific virtual tape.
19644	TapeBarcode *string `min:"7" type:"string"`
19645
19646	// The size, in bytes, of a virtual tape.
19647	TapeSizeInBytes *int64 `type:"long"`
19648
19649	// The status of the tape.
19650	TapeStatus *string `type:"string"`
19651}
19652
19653// String returns the string representation
19654func (s TapeInfo) String() string {
19655	return awsutil.Prettify(s)
19656}
19657
19658// GoString returns the string representation
19659func (s TapeInfo) GoString() string {
19660	return s.String()
19661}
19662
19663// SetGatewayARN sets the GatewayARN field's value.
19664func (s *TapeInfo) SetGatewayARN(v string) *TapeInfo {
19665	s.GatewayARN = &v
19666	return s
19667}
19668
19669// SetPoolEntryDate sets the PoolEntryDate field's value.
19670func (s *TapeInfo) SetPoolEntryDate(v time.Time) *TapeInfo {
19671	s.PoolEntryDate = &v
19672	return s
19673}
19674
19675// SetPoolId sets the PoolId field's value.
19676func (s *TapeInfo) SetPoolId(v string) *TapeInfo {
19677	s.PoolId = &v
19678	return s
19679}
19680
19681// SetRetentionStartDate sets the RetentionStartDate field's value.
19682func (s *TapeInfo) SetRetentionStartDate(v time.Time) *TapeInfo {
19683	s.RetentionStartDate = &v
19684	return s
19685}
19686
19687// SetTapeARN sets the TapeARN field's value.
19688func (s *TapeInfo) SetTapeARN(v string) *TapeInfo {
19689	s.TapeARN = &v
19690	return s
19691}
19692
19693// SetTapeBarcode sets the TapeBarcode field's value.
19694func (s *TapeInfo) SetTapeBarcode(v string) *TapeInfo {
19695	s.TapeBarcode = &v
19696	return s
19697}
19698
19699// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
19700func (s *TapeInfo) SetTapeSizeInBytes(v int64) *TapeInfo {
19701	s.TapeSizeInBytes = &v
19702	return s
19703}
19704
19705// SetTapeStatus sets the TapeStatus field's value.
19706func (s *TapeInfo) SetTapeStatus(v string) *TapeInfo {
19707	s.TapeStatus = &v
19708	return s
19709}
19710
19711// Describes a recovery point.
19712type TapeRecoveryPointInfo struct {
19713	_ struct{} `type:"structure"`
19714
19715	// The Amazon Resource Name (ARN) of the virtual tape.
19716	TapeARN *string `min:"50" type:"string"`
19717
19718	// The time when the point-in-time view of the virtual tape was replicated for
19719	// later recovery.
19720	//
19721	// The default timestamp format of the tape recovery point time is in the ISO8601
19722	// extended YYYY-MM-DD'T'HH:MM:SS'Z' format.
19723	TapeRecoveryPointTime *time.Time `type:"timestamp"`
19724
19725	// The size, in bytes, of the virtual tapes to recover.
19726	TapeSizeInBytes *int64 `type:"long"`
19727
19728	// The status of the virtual tapes.
19729	TapeStatus *string `type:"string"`
19730}
19731
19732// String returns the string representation
19733func (s TapeRecoveryPointInfo) String() string {
19734	return awsutil.Prettify(s)
19735}
19736
19737// GoString returns the string representation
19738func (s TapeRecoveryPointInfo) GoString() string {
19739	return s.String()
19740}
19741
19742// SetTapeARN sets the TapeARN field's value.
19743func (s *TapeRecoveryPointInfo) SetTapeARN(v string) *TapeRecoveryPointInfo {
19744	s.TapeARN = &v
19745	return s
19746}
19747
19748// SetTapeRecoveryPointTime sets the TapeRecoveryPointTime field's value.
19749func (s *TapeRecoveryPointInfo) SetTapeRecoveryPointTime(v time.Time) *TapeRecoveryPointInfo {
19750	s.TapeRecoveryPointTime = &v
19751	return s
19752}
19753
19754// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
19755func (s *TapeRecoveryPointInfo) SetTapeSizeInBytes(v int64) *TapeRecoveryPointInfo {
19756	s.TapeSizeInBytes = &v
19757	return s
19758}
19759
19760// SetTapeStatus sets the TapeStatus field's value.
19761func (s *TapeRecoveryPointInfo) SetTapeStatus(v string) *TapeRecoveryPointInfo {
19762	s.TapeStatus = &v
19763	return s
19764}
19765
19766type UpdateAutomaticTapeCreationPolicyInput struct {
19767	_ struct{} `type:"structure"`
19768
19769	// An automatic tape creation policy consists of a list of automatic tape creation
19770	// rules. The rules determine when and how to automatically create new tapes.
19771	//
19772	// AutomaticTapeCreationRules is a required field
19773	AutomaticTapeCreationRules []*AutomaticTapeCreationRule `min:"1" type:"list" required:"true"`
19774
19775	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19776	// to return a list of gateways for your account and AWS Region.
19777	//
19778	// GatewayARN is a required field
19779	GatewayARN *string `min:"50" type:"string" required:"true"`
19780}
19781
19782// String returns the string representation
19783func (s UpdateAutomaticTapeCreationPolicyInput) String() string {
19784	return awsutil.Prettify(s)
19785}
19786
19787// GoString returns the string representation
19788func (s UpdateAutomaticTapeCreationPolicyInput) GoString() string {
19789	return s.String()
19790}
19791
19792// Validate inspects the fields of the type to determine if they are valid.
19793func (s *UpdateAutomaticTapeCreationPolicyInput) Validate() error {
19794	invalidParams := request.ErrInvalidParams{Context: "UpdateAutomaticTapeCreationPolicyInput"}
19795	if s.AutomaticTapeCreationRules == nil {
19796		invalidParams.Add(request.NewErrParamRequired("AutomaticTapeCreationRules"))
19797	}
19798	if s.AutomaticTapeCreationRules != nil && len(s.AutomaticTapeCreationRules) < 1 {
19799		invalidParams.Add(request.NewErrParamMinLen("AutomaticTapeCreationRules", 1))
19800	}
19801	if s.GatewayARN == nil {
19802		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
19803	}
19804	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
19805		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
19806	}
19807	if s.AutomaticTapeCreationRules != nil {
19808		for i, v := range s.AutomaticTapeCreationRules {
19809			if v == nil {
19810				continue
19811			}
19812			if err := v.Validate(); err != nil {
19813				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AutomaticTapeCreationRules", i), err.(request.ErrInvalidParams))
19814			}
19815		}
19816	}
19817
19818	if invalidParams.Len() > 0 {
19819		return invalidParams
19820	}
19821	return nil
19822}
19823
19824// SetAutomaticTapeCreationRules sets the AutomaticTapeCreationRules field's value.
19825func (s *UpdateAutomaticTapeCreationPolicyInput) SetAutomaticTapeCreationRules(v []*AutomaticTapeCreationRule) *UpdateAutomaticTapeCreationPolicyInput {
19826	s.AutomaticTapeCreationRules = v
19827	return s
19828}
19829
19830// SetGatewayARN sets the GatewayARN field's value.
19831func (s *UpdateAutomaticTapeCreationPolicyInput) SetGatewayARN(v string) *UpdateAutomaticTapeCreationPolicyInput {
19832	s.GatewayARN = &v
19833	return s
19834}
19835
19836type UpdateAutomaticTapeCreationPolicyOutput struct {
19837	_ struct{} `type:"structure"`
19838
19839	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19840	// to return a list of gateways for your account and AWS Region.
19841	GatewayARN *string `min:"50" type:"string"`
19842}
19843
19844// String returns the string representation
19845func (s UpdateAutomaticTapeCreationPolicyOutput) String() string {
19846	return awsutil.Prettify(s)
19847}
19848
19849// GoString returns the string representation
19850func (s UpdateAutomaticTapeCreationPolicyOutput) GoString() string {
19851	return s.String()
19852}
19853
19854// SetGatewayARN sets the GatewayARN field's value.
19855func (s *UpdateAutomaticTapeCreationPolicyOutput) SetGatewayARN(v string) *UpdateAutomaticTapeCreationPolicyOutput {
19856	s.GatewayARN = &v
19857	return s
19858}
19859
19860// A JSON object containing one or more of the following fields:
19861//
19862//    * UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec
19863//
19864//    * UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec
19865type UpdateBandwidthRateLimitInput struct {
19866	_ struct{} `type:"structure"`
19867
19868	// The average download bandwidth rate limit in bits per second.
19869	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
19870
19871	// The average upload bandwidth rate limit in bits per second.
19872	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
19873
19874	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19875	// to return a list of gateways for your account and AWS Region.
19876	//
19877	// GatewayARN is a required field
19878	GatewayARN *string `min:"50" type:"string" required:"true"`
19879}
19880
19881// String returns the string representation
19882func (s UpdateBandwidthRateLimitInput) String() string {
19883	return awsutil.Prettify(s)
19884}
19885
19886// GoString returns the string representation
19887func (s UpdateBandwidthRateLimitInput) GoString() string {
19888	return s.String()
19889}
19890
19891// Validate inspects the fields of the type to determine if they are valid.
19892func (s *UpdateBandwidthRateLimitInput) Validate() error {
19893	invalidParams := request.ErrInvalidParams{Context: "UpdateBandwidthRateLimitInput"}
19894	if s.AverageDownloadRateLimitInBitsPerSec != nil && *s.AverageDownloadRateLimitInBitsPerSec < 102400 {
19895		invalidParams.Add(request.NewErrParamMinValue("AverageDownloadRateLimitInBitsPerSec", 102400))
19896	}
19897	if s.AverageUploadRateLimitInBitsPerSec != nil && *s.AverageUploadRateLimitInBitsPerSec < 51200 {
19898		invalidParams.Add(request.NewErrParamMinValue("AverageUploadRateLimitInBitsPerSec", 51200))
19899	}
19900	if s.GatewayARN == nil {
19901		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
19902	}
19903	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
19904		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
19905	}
19906
19907	if invalidParams.Len() > 0 {
19908		return invalidParams
19909	}
19910	return nil
19911}
19912
19913// SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
19914func (s *UpdateBandwidthRateLimitInput) SetAverageDownloadRateLimitInBitsPerSec(v int64) *UpdateBandwidthRateLimitInput {
19915	s.AverageDownloadRateLimitInBitsPerSec = &v
19916	return s
19917}
19918
19919// SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
19920func (s *UpdateBandwidthRateLimitInput) SetAverageUploadRateLimitInBitsPerSec(v int64) *UpdateBandwidthRateLimitInput {
19921	s.AverageUploadRateLimitInBitsPerSec = &v
19922	return s
19923}
19924
19925// SetGatewayARN sets the GatewayARN field's value.
19926func (s *UpdateBandwidthRateLimitInput) SetGatewayARN(v string) *UpdateBandwidthRateLimitInput {
19927	s.GatewayARN = &v
19928	return s
19929}
19930
19931// A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
19932// throttle information was updated.
19933type UpdateBandwidthRateLimitOutput struct {
19934	_ struct{} `type:"structure"`
19935
19936	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19937	// to return a list of gateways for your account and AWS Region.
19938	GatewayARN *string `min:"50" type:"string"`
19939}
19940
19941// String returns the string representation
19942func (s UpdateBandwidthRateLimitOutput) String() string {
19943	return awsutil.Prettify(s)
19944}
19945
19946// GoString returns the string representation
19947func (s UpdateBandwidthRateLimitOutput) GoString() string {
19948	return s.String()
19949}
19950
19951// SetGatewayARN sets the GatewayARN field's value.
19952func (s *UpdateBandwidthRateLimitOutput) SetGatewayARN(v string) *UpdateBandwidthRateLimitOutput {
19953	s.GatewayARN = &v
19954	return s
19955}
19956
19957type UpdateBandwidthRateLimitScheduleInput struct {
19958	_ struct{} `type:"structure"`
19959
19960	// An array containing bandwidth rate limit schedule intervals for a gateway.
19961	// When no bandwidth rate limit intervals have been scheduled, the array is
19962	// empty.
19963	//
19964	// BandwidthRateLimitIntervals is a required field
19965	BandwidthRateLimitIntervals []*BandwidthRateLimitInterval `type:"list" required:"true"`
19966
19967	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19968	// to return a list of gateways for your account and AWS Region.
19969	//
19970	// GatewayARN is a required field
19971	GatewayARN *string `min:"50" type:"string" required:"true"`
19972}
19973
19974// String returns the string representation
19975func (s UpdateBandwidthRateLimitScheduleInput) String() string {
19976	return awsutil.Prettify(s)
19977}
19978
19979// GoString returns the string representation
19980func (s UpdateBandwidthRateLimitScheduleInput) GoString() string {
19981	return s.String()
19982}
19983
19984// Validate inspects the fields of the type to determine if they are valid.
19985func (s *UpdateBandwidthRateLimitScheduleInput) Validate() error {
19986	invalidParams := request.ErrInvalidParams{Context: "UpdateBandwidthRateLimitScheduleInput"}
19987	if s.BandwidthRateLimitIntervals == nil {
19988		invalidParams.Add(request.NewErrParamRequired("BandwidthRateLimitIntervals"))
19989	}
19990	if s.GatewayARN == nil {
19991		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
19992	}
19993	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
19994		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
19995	}
19996	if s.BandwidthRateLimitIntervals != nil {
19997		for i, v := range s.BandwidthRateLimitIntervals {
19998			if v == nil {
19999				continue
20000			}
20001			if err := v.Validate(); err != nil {
20002				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BandwidthRateLimitIntervals", i), err.(request.ErrInvalidParams))
20003			}
20004		}
20005	}
20006
20007	if invalidParams.Len() > 0 {
20008		return invalidParams
20009	}
20010	return nil
20011}
20012
20013// SetBandwidthRateLimitIntervals sets the BandwidthRateLimitIntervals field's value.
20014func (s *UpdateBandwidthRateLimitScheduleInput) SetBandwidthRateLimitIntervals(v []*BandwidthRateLimitInterval) *UpdateBandwidthRateLimitScheduleInput {
20015	s.BandwidthRateLimitIntervals = v
20016	return s
20017}
20018
20019// SetGatewayARN sets the GatewayARN field's value.
20020func (s *UpdateBandwidthRateLimitScheduleInput) SetGatewayARN(v string) *UpdateBandwidthRateLimitScheduleInput {
20021	s.GatewayARN = &v
20022	return s
20023}
20024
20025type UpdateBandwidthRateLimitScheduleOutput struct {
20026	_ struct{} `type:"structure"`
20027
20028	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
20029	// to return a list of gateways for your account and AWS Region.
20030	GatewayARN *string `min:"50" type:"string"`
20031}
20032
20033// String returns the string representation
20034func (s UpdateBandwidthRateLimitScheduleOutput) String() string {
20035	return awsutil.Prettify(s)
20036}
20037
20038// GoString returns the string representation
20039func (s UpdateBandwidthRateLimitScheduleOutput) GoString() string {
20040	return s.String()
20041}
20042
20043// SetGatewayARN sets the GatewayARN field's value.
20044func (s *UpdateBandwidthRateLimitScheduleOutput) SetGatewayARN(v string) *UpdateBandwidthRateLimitScheduleOutput {
20045	s.GatewayARN = &v
20046	return s
20047}
20048
20049// A JSON object containing one or more of the following fields:
20050//
20051//    * UpdateChapCredentialsInput$InitiatorName
20052//
20053//    * UpdateChapCredentialsInput$SecretToAuthenticateInitiator
20054//
20055//    * UpdateChapCredentialsInput$SecretToAuthenticateTarget
20056//
20057//    * UpdateChapCredentialsInput$TargetARN
20058type UpdateChapCredentialsInput struct {
20059	_ struct{} `type:"structure"`
20060
20061	// The iSCSI initiator that connects to the target.
20062	//
20063	// InitiatorName is a required field
20064	InitiatorName *string `min:"1" type:"string" required:"true"`
20065
20066	// The secret key that the initiator (for example, the Windows client) must
20067	// provide to participate in mutual CHAP with the target.
20068	//
20069	// The secret key must be between 12 and 16 bytes when encoded in UTF-8.
20070	//
20071	// SecretToAuthenticateInitiator is a required field
20072	SecretToAuthenticateInitiator *string `min:"1" type:"string" required:"true" sensitive:"true"`
20073
20074	// The secret key that the target must provide to participate in mutual CHAP
20075	// with the initiator (e.g. Windows client).
20076	//
20077	// Byte constraints: Minimum bytes of 12. Maximum bytes of 16.
20078	//
20079	// The secret key must be between 12 and 16 bytes when encoded in UTF-8.
20080	SecretToAuthenticateTarget *string `min:"1" type:"string" sensitive:"true"`
20081
20082	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
20083	// operation to return the TargetARN for specified VolumeARN.
20084	//
20085	// TargetARN is a required field
20086	TargetARN *string `min:"50" type:"string" required:"true"`
20087}
20088
20089// String returns the string representation
20090func (s UpdateChapCredentialsInput) String() string {
20091	return awsutil.Prettify(s)
20092}
20093
20094// GoString returns the string representation
20095func (s UpdateChapCredentialsInput) GoString() string {
20096	return s.String()
20097}
20098
20099// Validate inspects the fields of the type to determine if they are valid.
20100func (s *UpdateChapCredentialsInput) Validate() error {
20101	invalidParams := request.ErrInvalidParams{Context: "UpdateChapCredentialsInput"}
20102	if s.InitiatorName == nil {
20103		invalidParams.Add(request.NewErrParamRequired("InitiatorName"))
20104	}
20105	if s.InitiatorName != nil && len(*s.InitiatorName) < 1 {
20106		invalidParams.Add(request.NewErrParamMinLen("InitiatorName", 1))
20107	}
20108	if s.SecretToAuthenticateInitiator == nil {
20109		invalidParams.Add(request.NewErrParamRequired("SecretToAuthenticateInitiator"))
20110	}
20111	if s.SecretToAuthenticateInitiator != nil && len(*s.SecretToAuthenticateInitiator) < 1 {
20112		invalidParams.Add(request.NewErrParamMinLen("SecretToAuthenticateInitiator", 1))
20113	}
20114	if s.SecretToAuthenticateTarget != nil && len(*s.SecretToAuthenticateTarget) < 1 {
20115		invalidParams.Add(request.NewErrParamMinLen("SecretToAuthenticateTarget", 1))
20116	}
20117	if s.TargetARN == nil {
20118		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
20119	}
20120	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
20121		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
20122	}
20123
20124	if invalidParams.Len() > 0 {
20125		return invalidParams
20126	}
20127	return nil
20128}
20129
20130// SetInitiatorName sets the InitiatorName field's value.
20131func (s *UpdateChapCredentialsInput) SetInitiatorName(v string) *UpdateChapCredentialsInput {
20132	s.InitiatorName = &v
20133	return s
20134}
20135
20136// SetSecretToAuthenticateInitiator sets the SecretToAuthenticateInitiator field's value.
20137func (s *UpdateChapCredentialsInput) SetSecretToAuthenticateInitiator(v string) *UpdateChapCredentialsInput {
20138	s.SecretToAuthenticateInitiator = &v
20139	return s
20140}
20141
20142// SetSecretToAuthenticateTarget sets the SecretToAuthenticateTarget field's value.
20143func (s *UpdateChapCredentialsInput) SetSecretToAuthenticateTarget(v string) *UpdateChapCredentialsInput {
20144	s.SecretToAuthenticateTarget = &v
20145	return s
20146}
20147
20148// SetTargetARN sets the TargetARN field's value.
20149func (s *UpdateChapCredentialsInput) SetTargetARN(v string) *UpdateChapCredentialsInput {
20150	s.TargetARN = &v
20151	return s
20152}
20153
20154// A JSON object containing the following fields:
20155type UpdateChapCredentialsOutput struct {
20156	_ struct{} `type:"structure"`
20157
20158	// The iSCSI initiator that connects to the target. This is the same initiator
20159	// name specified in the request.
20160	InitiatorName *string `min:"1" type:"string"`
20161
20162	// The Amazon Resource Name (ARN) of the target. This is the same target specified
20163	// in the request.
20164	TargetARN *string `min:"50" type:"string"`
20165}
20166
20167// String returns the string representation
20168func (s UpdateChapCredentialsOutput) String() string {
20169	return awsutil.Prettify(s)
20170}
20171
20172// GoString returns the string representation
20173func (s UpdateChapCredentialsOutput) GoString() string {
20174	return s.String()
20175}
20176
20177// SetInitiatorName sets the InitiatorName field's value.
20178func (s *UpdateChapCredentialsOutput) SetInitiatorName(v string) *UpdateChapCredentialsOutput {
20179	s.InitiatorName = &v
20180	return s
20181}
20182
20183// SetTargetARN sets the TargetARN field's value.
20184func (s *UpdateChapCredentialsOutput) SetTargetARN(v string) *UpdateChapCredentialsOutput {
20185	s.TargetARN = &v
20186	return s
20187}
20188
20189type UpdateFileSystemAssociationInput struct {
20190	_ struct{} `type:"structure"`
20191
20192	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
20193	AuditDestinationARN *string `type:"string"`
20194
20195	// The refresh cache information for the file share.
20196	CacheAttributes *CacheAttributes `type:"structure"`
20197
20198	// The Amazon Resource Name (ARN) of the file system association that you want
20199	// to update.
20200	//
20201	// FileSystemAssociationARN is a required field
20202	FileSystemAssociationARN *string `min:"50" type:"string" required:"true"`
20203
20204	// The password of the user credential.
20205	Password *string `min:"1" type:"string" sensitive:"true"`
20206
20207	// The user name of the user credential that has permission to access the root
20208	// share D$ of the Amazon FSx file system. The user account must belong to the
20209	// Amazon FSx delegated admin user group.
20210	UserName *string `min:"1" type:"string"`
20211}
20212
20213// String returns the string representation
20214func (s UpdateFileSystemAssociationInput) String() string {
20215	return awsutil.Prettify(s)
20216}
20217
20218// GoString returns the string representation
20219func (s UpdateFileSystemAssociationInput) GoString() string {
20220	return s.String()
20221}
20222
20223// Validate inspects the fields of the type to determine if they are valid.
20224func (s *UpdateFileSystemAssociationInput) Validate() error {
20225	invalidParams := request.ErrInvalidParams{Context: "UpdateFileSystemAssociationInput"}
20226	if s.FileSystemAssociationARN == nil {
20227		invalidParams.Add(request.NewErrParamRequired("FileSystemAssociationARN"))
20228	}
20229	if s.FileSystemAssociationARN != nil && len(*s.FileSystemAssociationARN) < 50 {
20230		invalidParams.Add(request.NewErrParamMinLen("FileSystemAssociationARN", 50))
20231	}
20232	if s.Password != nil && len(*s.Password) < 1 {
20233		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
20234	}
20235	if s.UserName != nil && len(*s.UserName) < 1 {
20236		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
20237	}
20238
20239	if invalidParams.Len() > 0 {
20240		return invalidParams
20241	}
20242	return nil
20243}
20244
20245// SetAuditDestinationARN sets the AuditDestinationARN field's value.
20246func (s *UpdateFileSystemAssociationInput) SetAuditDestinationARN(v string) *UpdateFileSystemAssociationInput {
20247	s.AuditDestinationARN = &v
20248	return s
20249}
20250
20251// SetCacheAttributes sets the CacheAttributes field's value.
20252func (s *UpdateFileSystemAssociationInput) SetCacheAttributes(v *CacheAttributes) *UpdateFileSystemAssociationInput {
20253	s.CacheAttributes = v
20254	return s
20255}
20256
20257// SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
20258func (s *UpdateFileSystemAssociationInput) SetFileSystemAssociationARN(v string) *UpdateFileSystemAssociationInput {
20259	s.FileSystemAssociationARN = &v
20260	return s
20261}
20262
20263// SetPassword sets the Password field's value.
20264func (s *UpdateFileSystemAssociationInput) SetPassword(v string) *UpdateFileSystemAssociationInput {
20265	s.Password = &v
20266	return s
20267}
20268
20269// SetUserName sets the UserName field's value.
20270func (s *UpdateFileSystemAssociationInput) SetUserName(v string) *UpdateFileSystemAssociationInput {
20271	s.UserName = &v
20272	return s
20273}
20274
20275type UpdateFileSystemAssociationOutput struct {
20276	_ struct{} `type:"structure"`
20277
20278	// The ARN of the updated file system association.
20279	FileSystemAssociationARN *string `min:"50" type:"string"`
20280}
20281
20282// String returns the string representation
20283func (s UpdateFileSystemAssociationOutput) String() string {
20284	return awsutil.Prettify(s)
20285}
20286
20287// GoString returns the string representation
20288func (s UpdateFileSystemAssociationOutput) GoString() string {
20289	return s.String()
20290}
20291
20292// SetFileSystemAssociationARN sets the FileSystemAssociationARN field's value.
20293func (s *UpdateFileSystemAssociationOutput) SetFileSystemAssociationARN(v string) *UpdateFileSystemAssociationOutput {
20294	s.FileSystemAssociationARN = &v
20295	return s
20296}
20297
20298type UpdateGatewayInformationInput struct {
20299	_ struct{} `type:"structure"`
20300
20301	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that you
20302	// want to use to monitor and log events in the gateway.
20303	//
20304	// For more information, see What is Amazon CloudWatch Logs? (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)
20305	CloudWatchLogGroupARN *string `type:"string"`
20306
20307	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
20308	// to return a list of gateways for your account and AWS Region.
20309	//
20310	// GatewayARN is a required field
20311	GatewayARN *string `min:"50" type:"string" required:"true"`
20312
20313	// The name you configured for your gateway.
20314	GatewayName *string `min:"2" type:"string"`
20315
20316	// A value that indicates the time zone of the gateway.
20317	GatewayTimezone *string `min:"3" type:"string"`
20318}
20319
20320// String returns the string representation
20321func (s UpdateGatewayInformationInput) String() string {
20322	return awsutil.Prettify(s)
20323}
20324
20325// GoString returns the string representation
20326func (s UpdateGatewayInformationInput) GoString() string {
20327	return s.String()
20328}
20329
20330// Validate inspects the fields of the type to determine if they are valid.
20331func (s *UpdateGatewayInformationInput) Validate() error {
20332	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewayInformationInput"}
20333	if s.GatewayARN == nil {
20334		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
20335	}
20336	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
20337		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
20338	}
20339	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
20340		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
20341	}
20342	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
20343		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
20344	}
20345
20346	if invalidParams.Len() > 0 {
20347		return invalidParams
20348	}
20349	return nil
20350}
20351
20352// SetCloudWatchLogGroupARN sets the CloudWatchLogGroupARN field's value.
20353func (s *UpdateGatewayInformationInput) SetCloudWatchLogGroupARN(v string) *UpdateGatewayInformationInput {
20354	s.CloudWatchLogGroupARN = &v
20355	return s
20356}
20357
20358// SetGatewayARN sets the GatewayARN field's value.
20359func (s *UpdateGatewayInformationInput) SetGatewayARN(v string) *UpdateGatewayInformationInput {
20360	s.GatewayARN = &v
20361	return s
20362}
20363
20364// SetGatewayName sets the GatewayName field's value.
20365func (s *UpdateGatewayInformationInput) SetGatewayName(v string) *UpdateGatewayInformationInput {
20366	s.GatewayName = &v
20367	return s
20368}
20369
20370// SetGatewayTimezone sets the GatewayTimezone field's value.
20371func (s *UpdateGatewayInformationInput) SetGatewayTimezone(v string) *UpdateGatewayInformationInput {
20372	s.GatewayTimezone = &v
20373	return s
20374}
20375
20376// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
20377// was updated.
20378type UpdateGatewayInformationOutput struct {
20379	_ struct{} `type:"structure"`
20380
20381	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
20382	// to return a list of gateways for your account and AWS Region.
20383	GatewayARN *string `min:"50" type:"string"`
20384
20385	// The name you configured for your gateway.
20386	GatewayName *string `type:"string"`
20387}
20388
20389// String returns the string representation
20390func (s UpdateGatewayInformationOutput) String() string {
20391	return awsutil.Prettify(s)
20392}
20393
20394// GoString returns the string representation
20395func (s UpdateGatewayInformationOutput) GoString() string {
20396	return s.String()
20397}
20398
20399// SetGatewayARN sets the GatewayARN field's value.
20400func (s *UpdateGatewayInformationOutput) SetGatewayARN(v string) *UpdateGatewayInformationOutput {
20401	s.GatewayARN = &v
20402	return s
20403}
20404
20405// SetGatewayName sets the GatewayName field's value.
20406func (s *UpdateGatewayInformationOutput) SetGatewayName(v string) *UpdateGatewayInformationOutput {
20407	s.GatewayName = &v
20408	return s
20409}
20410
20411// A JSON object containing the Amazon Resource Name (ARN) of the gateway to
20412// update.
20413type UpdateGatewaySoftwareNowInput struct {
20414	_ struct{} `type:"structure"`
20415
20416	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
20417	// to return a list of gateways for your account and AWS Region.
20418	//
20419	// GatewayARN is a required field
20420	GatewayARN *string `min:"50" type:"string" required:"true"`
20421}
20422
20423// String returns the string representation
20424func (s UpdateGatewaySoftwareNowInput) String() string {
20425	return awsutil.Prettify(s)
20426}
20427
20428// GoString returns the string representation
20429func (s UpdateGatewaySoftwareNowInput) GoString() string {
20430	return s.String()
20431}
20432
20433// Validate inspects the fields of the type to determine if they are valid.
20434func (s *UpdateGatewaySoftwareNowInput) Validate() error {
20435	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewaySoftwareNowInput"}
20436	if s.GatewayARN == nil {
20437		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
20438	}
20439	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
20440		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
20441	}
20442
20443	if invalidParams.Len() > 0 {
20444		return invalidParams
20445	}
20446	return nil
20447}
20448
20449// SetGatewayARN sets the GatewayARN field's value.
20450func (s *UpdateGatewaySoftwareNowInput) SetGatewayARN(v string) *UpdateGatewaySoftwareNowInput {
20451	s.GatewayARN = &v
20452	return s
20453}
20454
20455// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
20456// was updated.
20457type UpdateGatewaySoftwareNowOutput struct {
20458	_ struct{} `type:"structure"`
20459
20460	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
20461	// to return a list of gateways for your account and AWS Region.
20462	GatewayARN *string `min:"50" type:"string"`
20463}
20464
20465// String returns the string representation
20466func (s UpdateGatewaySoftwareNowOutput) String() string {
20467	return awsutil.Prettify(s)
20468}
20469
20470// GoString returns the string representation
20471func (s UpdateGatewaySoftwareNowOutput) GoString() string {
20472	return s.String()
20473}
20474
20475// SetGatewayARN sets the GatewayARN field's value.
20476func (s *UpdateGatewaySoftwareNowOutput) SetGatewayARN(v string) *UpdateGatewaySoftwareNowOutput {
20477	s.GatewayARN = &v
20478	return s
20479}
20480
20481// A JSON object containing the following fields:
20482//
20483//    * UpdateMaintenanceStartTimeInput$DayOfMonth
20484//
20485//    * UpdateMaintenanceStartTimeInput$DayOfWeek
20486//
20487//    * UpdateMaintenanceStartTimeInput$HourOfDay
20488//
20489//    * UpdateMaintenanceStartTimeInput$MinuteOfHour
20490type UpdateMaintenanceStartTimeInput struct {
20491	_ struct{} `type:"structure"`
20492
20493	// The day of the month component of the maintenance start time represented
20494	// as an ordinal number from 1 to 28, where 1 represents the first day of the
20495	// month and 28 represents the last day of the month.
20496	DayOfMonth *int64 `min:"1" type:"integer"`
20497
20498	// The day of the week component of the maintenance start time week represented
20499	// as an ordinal number from 0 to 6, where 0 represents Sunday and 6 Saturday.
20500	DayOfWeek *int64 `type:"integer"`
20501
20502	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
20503	// to return a list of gateways for your account and AWS Region.
20504	//
20505	// GatewayARN is a required field
20506	GatewayARN *string `min:"50" type:"string" required:"true"`
20507
20508	// The hour component of the maintenance start time represented as hh, where
20509	// hh is the hour (00 to 23). The hour of the day is in the time zone of the
20510	// gateway.
20511	//
20512	// HourOfDay is a required field
20513	HourOfDay *int64 `type:"integer" required:"true"`
20514
20515	// The minute component of the maintenance start time represented as mm, where
20516	// mm is the minute (00 to 59). The minute of the hour is in the time zone of
20517	// the gateway.
20518	//
20519	// MinuteOfHour is a required field
20520	MinuteOfHour *int64 `type:"integer" required:"true"`
20521}
20522
20523// String returns the string representation
20524func (s UpdateMaintenanceStartTimeInput) String() string {
20525	return awsutil.Prettify(s)
20526}
20527
20528// GoString returns the string representation
20529func (s UpdateMaintenanceStartTimeInput) GoString() string {
20530	return s.String()
20531}
20532
20533// Validate inspects the fields of the type to determine if they are valid.
20534func (s *UpdateMaintenanceStartTimeInput) Validate() error {
20535	invalidParams := request.ErrInvalidParams{Context: "UpdateMaintenanceStartTimeInput"}
20536	if s.DayOfMonth != nil && *s.DayOfMonth < 1 {
20537		invalidParams.Add(request.NewErrParamMinValue("DayOfMonth", 1))
20538	}
20539	if s.GatewayARN == nil {
20540		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
20541	}
20542	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
20543		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
20544	}
20545	if s.HourOfDay == nil {
20546		invalidParams.Add(request.NewErrParamRequired("HourOfDay"))
20547	}
20548	if s.MinuteOfHour == nil {
20549		invalidParams.Add(request.NewErrParamRequired("MinuteOfHour"))
20550	}
20551
20552	if invalidParams.Len() > 0 {
20553		return invalidParams
20554	}
20555	return nil
20556}
20557
20558// SetDayOfMonth sets the DayOfMonth field's value.
20559func (s *UpdateMaintenanceStartTimeInput) SetDayOfMonth(v int64) *UpdateMaintenanceStartTimeInput {
20560	s.DayOfMonth = &v
20561	return s
20562}
20563
20564// SetDayOfWeek sets the DayOfWeek field's value.
20565func (s *UpdateMaintenanceStartTimeInput) SetDayOfWeek(v int64) *UpdateMaintenanceStartTimeInput {
20566	s.DayOfWeek = &v
20567	return s
20568}
20569
20570// SetGatewayARN sets the GatewayARN field's value.
20571func (s *UpdateMaintenanceStartTimeInput) SetGatewayARN(v string) *UpdateMaintenanceStartTimeInput {
20572	s.GatewayARN = &v
20573	return s
20574}
20575
20576// SetHourOfDay sets the HourOfDay field's value.
20577func (s *UpdateMaintenanceStartTimeInput) SetHourOfDay(v int64) *UpdateMaintenanceStartTimeInput {
20578	s.HourOfDay = &v
20579	return s
20580}
20581
20582// SetMinuteOfHour sets the MinuteOfHour field's value.
20583func (s *UpdateMaintenanceStartTimeInput) SetMinuteOfHour(v int64) *UpdateMaintenanceStartTimeInput {
20584	s.MinuteOfHour = &v
20585	return s
20586}
20587
20588// A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
20589// maintenance start time is updated.
20590type UpdateMaintenanceStartTimeOutput struct {
20591	_ struct{} `type:"structure"`
20592
20593	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
20594	// to return a list of gateways for your account and AWS Region.
20595	GatewayARN *string `min:"50" type:"string"`
20596}
20597
20598// String returns the string representation
20599func (s UpdateMaintenanceStartTimeOutput) String() string {
20600	return awsutil.Prettify(s)
20601}
20602
20603// GoString returns the string representation
20604func (s UpdateMaintenanceStartTimeOutput) GoString() string {
20605	return s.String()
20606}
20607
20608// SetGatewayARN sets the GatewayARN field's value.
20609func (s *UpdateMaintenanceStartTimeOutput) SetGatewayARN(v string) *UpdateMaintenanceStartTimeOutput {
20610	s.GatewayARN = &v
20611	return s
20612}
20613
20614// UpdateNFSFileShareInput
20615type UpdateNFSFileShareInput struct {
20616	_ struct{} `type:"structure"`
20617
20618	// specifies refresh cache information for the file share.
20619	CacheAttributes *CacheAttributes `type:"structure"`
20620
20621	// The list of clients that are allowed to access the file gateway. The list
20622	// must contain either valid IP addresses or valid CIDR blocks.
20623	ClientList []*string `min:"1" type:"list"`
20624
20625	// The default storage class for objects put into an Amazon S3 bucket by the
20626	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
20627	//
20628	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
20629	DefaultStorageClass *string `min:"5" type:"string"`
20630
20631	// The Amazon Resource Name (ARN) of the file share to be updated.
20632	//
20633	// FileShareARN is a required field
20634	FileShareARN *string `min:"50" type:"string" required:"true"`
20635
20636	// The name of the file share. Optional.
20637	//
20638	// FileShareName must be set if an S3 prefix name is set in LocationARN.
20639	FileShareName *string `min:"1" type:"string"`
20640
20641	// A value that enables guessing of the MIME type for uploaded objects based
20642	// on file extensions. Set this value to true to enable MIME type guessing,
20643	// otherwise set to false. The default value is true.
20644	//
20645	// Valid Values: true | false
20646	GuessMIMETypeEnabled *bool `type:"boolean"`
20647
20648	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
20649	// key, or false to use a key managed by Amazon S3. Optional.
20650	//
20651	// Valid Values: true | false
20652	KMSEncrypted *bool `type:"boolean"`
20653
20654	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
20655	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
20656	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
20657	KMSKey *string `min:"7" type:"string"`
20658
20659	// The default values for the file share. Optional.
20660	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
20661
20662	// The notification policy of the file share. SettlingTimeInSeconds controls
20663	// the number of seconds to wait after the last point in time a client wrote
20664	// to a file before generating an ObjectUploaded notification. Because clients
20665	// can make many small writes to files, it's best to set this parameter for
20666	// as long as possible to avoid generating multiple notifications for the same
20667	// file in a small time period.
20668	//
20669	// SettlingTimeInSeconds has no effect on the timing of the object uploading
20670	// to Amazon S3, only the timing of the notification.
20671	//
20672	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
20673	// set to 60.
20674	//
20675	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
20676	//
20677	// The following example sets NotificationPolicy off.
20678	//
20679	// {}
20680	NotificationPolicy *string `min:"2" type:"string"`
20681
20682	// A value that sets the access control list (ACL) permission for objects in
20683	// the S3 bucket that a file gateway puts objects into. The default value is
20684	// private.
20685	ObjectACL *string `type:"string" enum:"ObjectACL"`
20686
20687	// A value that sets the write status of a file share. Set this value to true
20688	// to set the write status to read-only, otherwise set to false.
20689	//
20690	// Valid Values: true | false
20691	ReadOnly *bool `type:"boolean"`
20692
20693	// A value that sets who pays the cost of the request and the cost associated
20694	// with data download from the S3 bucket. If this value is set to true, the
20695	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
20696	// S3 bucket owner always pays the cost of storing data.
20697	//
20698	// RequesterPays is a configuration for the S3 bucket that backs the file share,
20699	// so make sure that the configuration on the file share is the same as the
20700	// S3 bucket configuration.
20701	//
20702	// Valid Values: true | false
20703	RequesterPays *bool `type:"boolean"`
20704
20705	// The user mapped to anonymous user.
20706	//
20707	// Valid values are the following:
20708	//
20709	//    * RootSquash: Only root is mapped to anonymous user.
20710	//
20711	//    * NoSquash: No one is mapped to anonymous user.
20712	//
20713	//    * AllSquash: Everyone is mapped to anonymous user.
20714	Squash *string `min:"5" type:"string"`
20715}
20716
20717// String returns the string representation
20718func (s UpdateNFSFileShareInput) String() string {
20719	return awsutil.Prettify(s)
20720}
20721
20722// GoString returns the string representation
20723func (s UpdateNFSFileShareInput) GoString() string {
20724	return s.String()
20725}
20726
20727// Validate inspects the fields of the type to determine if they are valid.
20728func (s *UpdateNFSFileShareInput) Validate() error {
20729	invalidParams := request.ErrInvalidParams{Context: "UpdateNFSFileShareInput"}
20730	if s.ClientList != nil && len(s.ClientList) < 1 {
20731		invalidParams.Add(request.NewErrParamMinLen("ClientList", 1))
20732	}
20733	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
20734		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
20735	}
20736	if s.FileShareARN == nil {
20737		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
20738	}
20739	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
20740		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
20741	}
20742	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
20743		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
20744	}
20745	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
20746		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
20747	}
20748	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
20749		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
20750	}
20751	if s.Squash != nil && len(*s.Squash) < 5 {
20752		invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
20753	}
20754	if s.NFSFileShareDefaults != nil {
20755		if err := s.NFSFileShareDefaults.Validate(); err != nil {
20756			invalidParams.AddNested("NFSFileShareDefaults", err.(request.ErrInvalidParams))
20757		}
20758	}
20759
20760	if invalidParams.Len() > 0 {
20761		return invalidParams
20762	}
20763	return nil
20764}
20765
20766// SetCacheAttributes sets the CacheAttributes field's value.
20767func (s *UpdateNFSFileShareInput) SetCacheAttributes(v *CacheAttributes) *UpdateNFSFileShareInput {
20768	s.CacheAttributes = v
20769	return s
20770}
20771
20772// SetClientList sets the ClientList field's value.
20773func (s *UpdateNFSFileShareInput) SetClientList(v []*string) *UpdateNFSFileShareInput {
20774	s.ClientList = v
20775	return s
20776}
20777
20778// SetDefaultStorageClass sets the DefaultStorageClass field's value.
20779func (s *UpdateNFSFileShareInput) SetDefaultStorageClass(v string) *UpdateNFSFileShareInput {
20780	s.DefaultStorageClass = &v
20781	return s
20782}
20783
20784// SetFileShareARN sets the FileShareARN field's value.
20785func (s *UpdateNFSFileShareInput) SetFileShareARN(v string) *UpdateNFSFileShareInput {
20786	s.FileShareARN = &v
20787	return s
20788}
20789
20790// SetFileShareName sets the FileShareName field's value.
20791func (s *UpdateNFSFileShareInput) SetFileShareName(v string) *UpdateNFSFileShareInput {
20792	s.FileShareName = &v
20793	return s
20794}
20795
20796// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
20797func (s *UpdateNFSFileShareInput) SetGuessMIMETypeEnabled(v bool) *UpdateNFSFileShareInput {
20798	s.GuessMIMETypeEnabled = &v
20799	return s
20800}
20801
20802// SetKMSEncrypted sets the KMSEncrypted field's value.
20803func (s *UpdateNFSFileShareInput) SetKMSEncrypted(v bool) *UpdateNFSFileShareInput {
20804	s.KMSEncrypted = &v
20805	return s
20806}
20807
20808// SetKMSKey sets the KMSKey field's value.
20809func (s *UpdateNFSFileShareInput) SetKMSKey(v string) *UpdateNFSFileShareInput {
20810	s.KMSKey = &v
20811	return s
20812}
20813
20814// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
20815func (s *UpdateNFSFileShareInput) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *UpdateNFSFileShareInput {
20816	s.NFSFileShareDefaults = v
20817	return s
20818}
20819
20820// SetNotificationPolicy sets the NotificationPolicy field's value.
20821func (s *UpdateNFSFileShareInput) SetNotificationPolicy(v string) *UpdateNFSFileShareInput {
20822	s.NotificationPolicy = &v
20823	return s
20824}
20825
20826// SetObjectACL sets the ObjectACL field's value.
20827func (s *UpdateNFSFileShareInput) SetObjectACL(v string) *UpdateNFSFileShareInput {
20828	s.ObjectACL = &v
20829	return s
20830}
20831
20832// SetReadOnly sets the ReadOnly field's value.
20833func (s *UpdateNFSFileShareInput) SetReadOnly(v bool) *UpdateNFSFileShareInput {
20834	s.ReadOnly = &v
20835	return s
20836}
20837
20838// SetRequesterPays sets the RequesterPays field's value.
20839func (s *UpdateNFSFileShareInput) SetRequesterPays(v bool) *UpdateNFSFileShareInput {
20840	s.RequesterPays = &v
20841	return s
20842}
20843
20844// SetSquash sets the Squash field's value.
20845func (s *UpdateNFSFileShareInput) SetSquash(v string) *UpdateNFSFileShareInput {
20846	s.Squash = &v
20847	return s
20848}
20849
20850// UpdateNFSFileShareOutput
20851type UpdateNFSFileShareOutput struct {
20852	_ struct{} `type:"structure"`
20853
20854	// The Amazon Resource Name (ARN) of the updated file share.
20855	FileShareARN *string `min:"50" type:"string"`
20856}
20857
20858// String returns the string representation
20859func (s UpdateNFSFileShareOutput) String() string {
20860	return awsutil.Prettify(s)
20861}
20862
20863// GoString returns the string representation
20864func (s UpdateNFSFileShareOutput) GoString() string {
20865	return s.String()
20866}
20867
20868// SetFileShareARN sets the FileShareARN field's value.
20869func (s *UpdateNFSFileShareOutput) SetFileShareARN(v string) *UpdateNFSFileShareOutput {
20870	s.FileShareARN = &v
20871	return s
20872}
20873
20874// UpdateSMBFileShareInput
20875type UpdateSMBFileShareInput struct {
20876	_ struct{} `type:"structure"`
20877
20878	// The files and folders on this share will only be visible to users with read
20879	// access.
20880	AccessBasedEnumeration *bool `type:"boolean"`
20881
20882	// A list of users or groups in the Active Directory that have administrator
20883	// rights to the file share. A group must be prefixed with the @ character.
20884	// Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1.
20885	// Can only be set if Authentication is set to ActiveDirectory.
20886	AdminUserList []*string `type:"list"`
20887
20888	// The Amazon Resource Name (ARN) of the storage used for audit logs.
20889	AuditDestinationARN *string `type:"string"`
20890
20891	// Specifies refresh cache information for the file share.
20892	CacheAttributes *CacheAttributes `type:"structure"`
20893
20894	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
20895	// client determines the case sensitivity. For CaseSensitive, the gateway determines
20896	// the case sensitivity. The default value is ClientSpecified.
20897	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
20898
20899	// The default storage class for objects put into an Amazon S3 bucket by the
20900	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
20901	//
20902	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
20903	DefaultStorageClass *string `min:"5" type:"string"`
20904
20905	// The Amazon Resource Name (ARN) of the SMB file share that you want to update.
20906	//
20907	// FileShareARN is a required field
20908	FileShareARN *string `min:"50" type:"string" required:"true"`
20909
20910	// The name of the file share. Optional.
20911	//
20912	// FileShareName must be set if an S3 prefix name is set in LocationARN.
20913	FileShareName *string `min:"1" type:"string"`
20914
20915	// A value that enables guessing of the MIME type for uploaded objects based
20916	// on file extensions. Set this value to true to enable MIME type guessing,
20917	// otherwise set to false. The default value is true.
20918	//
20919	// Valid Values: true | false
20920	GuessMIMETypeEnabled *bool `type:"boolean"`
20921
20922	// A list of users or groups in the Active Directory that are not allowed to
20923	// access the file share. A group must be prefixed with the @ character. Acceptable
20924	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
20925	// be set if Authentication is set to ActiveDirectory.
20926	InvalidUserList []*string `type:"list"`
20927
20928	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
20929	// key, or false to use a key managed by Amazon S3. Optional.
20930	//
20931	// Valid Values: true | false
20932	KMSEncrypted *bool `type:"boolean"`
20933
20934	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
20935	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
20936	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
20937	KMSKey *string `min:"7" type:"string"`
20938
20939	// The notification policy of the file share. SettlingTimeInSeconds controls
20940	// the number of seconds to wait after the last point in time a client wrote
20941	// to a file before generating an ObjectUploaded notification. Because clients
20942	// can make many small writes to files, it's best to set this parameter for
20943	// as long as possible to avoid generating multiple notifications for the same
20944	// file in a small time period.
20945	//
20946	// SettlingTimeInSeconds has no effect on the timing of the object uploading
20947	// to Amazon S3, only the timing of the notification.
20948	//
20949	// The following example sets NotificationPolicy on with SettlingTimeInSeconds
20950	// set to 60.
20951	//
20952	// {\"Upload\": {\"SettlingTimeInSeconds\": 60}}
20953	//
20954	// The following example sets NotificationPolicy off.
20955	//
20956	// {}
20957	NotificationPolicy *string `min:"2" type:"string"`
20958
20959	// A value that sets the access control list (ACL) permission for objects in
20960	// the S3 bucket that a file gateway puts objects into. The default value is
20961	// private.
20962	ObjectACL *string `type:"string" enum:"ObjectACL"`
20963
20964	// A value that sets the write status of a file share. Set this value to true
20965	// to set write status to read-only, otherwise set to false.
20966	//
20967	// Valid Values: true | false
20968	ReadOnly *bool `type:"boolean"`
20969
20970	// A value that sets who pays the cost of the request and the cost associated
20971	// with data download from the S3 bucket. If this value is set to true, the
20972	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
20973	// S3 bucket owner always pays the cost of storing data.
20974	//
20975	// RequesterPays is a configuration for the S3 bucket that backs the file share,
20976	// so make sure that the configuration on the file share is the same as the
20977	// S3 bucket configuration.
20978	//
20979	// Valid Values: true | false
20980	RequesterPays *bool `type:"boolean"`
20981
20982	// Set this value to true to enable access control list (ACL) on the SMB file
20983	// share. Set it to false to map file and directory permissions to the POSIX
20984	// permissions.
20985	//
20986	// For more information, see Using Microsoft Windows ACLs to control access
20987	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
20988	// in the AWS Storage Gateway User Guide.
20989	//
20990	// Valid Values: true | false
20991	SMBACLEnabled *bool `type:"boolean"`
20992
20993	// A list of users or groups in the Active Directory that are allowed to access
20994	// the file share. A group must be prefixed with the @ character. Acceptable
20995	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
20996	// be set if Authentication is set to ActiveDirectory.
20997	ValidUserList []*string `type:"list"`
20998}
20999
21000// String returns the string representation
21001func (s UpdateSMBFileShareInput) String() string {
21002	return awsutil.Prettify(s)
21003}
21004
21005// GoString returns the string representation
21006func (s UpdateSMBFileShareInput) GoString() string {
21007	return s.String()
21008}
21009
21010// Validate inspects the fields of the type to determine if they are valid.
21011func (s *UpdateSMBFileShareInput) Validate() error {
21012	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBFileShareInput"}
21013	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
21014		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
21015	}
21016	if s.FileShareARN == nil {
21017		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
21018	}
21019	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
21020		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
21021	}
21022	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
21023		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
21024	}
21025	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
21026		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
21027	}
21028	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
21029		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
21030	}
21031
21032	if invalidParams.Len() > 0 {
21033		return invalidParams
21034	}
21035	return nil
21036}
21037
21038// SetAccessBasedEnumeration sets the AccessBasedEnumeration field's value.
21039func (s *UpdateSMBFileShareInput) SetAccessBasedEnumeration(v bool) *UpdateSMBFileShareInput {
21040	s.AccessBasedEnumeration = &v
21041	return s
21042}
21043
21044// SetAdminUserList sets the AdminUserList field's value.
21045func (s *UpdateSMBFileShareInput) SetAdminUserList(v []*string) *UpdateSMBFileShareInput {
21046	s.AdminUserList = v
21047	return s
21048}
21049
21050// SetAuditDestinationARN sets the AuditDestinationARN field's value.
21051func (s *UpdateSMBFileShareInput) SetAuditDestinationARN(v string) *UpdateSMBFileShareInput {
21052	s.AuditDestinationARN = &v
21053	return s
21054}
21055
21056// SetCacheAttributes sets the CacheAttributes field's value.
21057func (s *UpdateSMBFileShareInput) SetCacheAttributes(v *CacheAttributes) *UpdateSMBFileShareInput {
21058	s.CacheAttributes = v
21059	return s
21060}
21061
21062// SetCaseSensitivity sets the CaseSensitivity field's value.
21063func (s *UpdateSMBFileShareInput) SetCaseSensitivity(v string) *UpdateSMBFileShareInput {
21064	s.CaseSensitivity = &v
21065	return s
21066}
21067
21068// SetDefaultStorageClass sets the DefaultStorageClass field's value.
21069func (s *UpdateSMBFileShareInput) SetDefaultStorageClass(v string) *UpdateSMBFileShareInput {
21070	s.DefaultStorageClass = &v
21071	return s
21072}
21073
21074// SetFileShareARN sets the FileShareARN field's value.
21075func (s *UpdateSMBFileShareInput) SetFileShareARN(v string) *UpdateSMBFileShareInput {
21076	s.FileShareARN = &v
21077	return s
21078}
21079
21080// SetFileShareName sets the FileShareName field's value.
21081func (s *UpdateSMBFileShareInput) SetFileShareName(v string) *UpdateSMBFileShareInput {
21082	s.FileShareName = &v
21083	return s
21084}
21085
21086// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
21087func (s *UpdateSMBFileShareInput) SetGuessMIMETypeEnabled(v bool) *UpdateSMBFileShareInput {
21088	s.GuessMIMETypeEnabled = &v
21089	return s
21090}
21091
21092// SetInvalidUserList sets the InvalidUserList field's value.
21093func (s *UpdateSMBFileShareInput) SetInvalidUserList(v []*string) *UpdateSMBFileShareInput {
21094	s.InvalidUserList = v
21095	return s
21096}
21097
21098// SetKMSEncrypted sets the KMSEncrypted field's value.
21099func (s *UpdateSMBFileShareInput) SetKMSEncrypted(v bool) *UpdateSMBFileShareInput {
21100	s.KMSEncrypted = &v
21101	return s
21102}
21103
21104// SetKMSKey sets the KMSKey field's value.
21105func (s *UpdateSMBFileShareInput) SetKMSKey(v string) *UpdateSMBFileShareInput {
21106	s.KMSKey = &v
21107	return s
21108}
21109
21110// SetNotificationPolicy sets the NotificationPolicy field's value.
21111func (s *UpdateSMBFileShareInput) SetNotificationPolicy(v string) *UpdateSMBFileShareInput {
21112	s.NotificationPolicy = &v
21113	return s
21114}
21115
21116// SetObjectACL sets the ObjectACL field's value.
21117func (s *UpdateSMBFileShareInput) SetObjectACL(v string) *UpdateSMBFileShareInput {
21118	s.ObjectACL = &v
21119	return s
21120}
21121
21122// SetReadOnly sets the ReadOnly field's value.
21123func (s *UpdateSMBFileShareInput) SetReadOnly(v bool) *UpdateSMBFileShareInput {
21124	s.ReadOnly = &v
21125	return s
21126}
21127
21128// SetRequesterPays sets the RequesterPays field's value.
21129func (s *UpdateSMBFileShareInput) SetRequesterPays(v bool) *UpdateSMBFileShareInput {
21130	s.RequesterPays = &v
21131	return s
21132}
21133
21134// SetSMBACLEnabled sets the SMBACLEnabled field's value.
21135func (s *UpdateSMBFileShareInput) SetSMBACLEnabled(v bool) *UpdateSMBFileShareInput {
21136	s.SMBACLEnabled = &v
21137	return s
21138}
21139
21140// SetValidUserList sets the ValidUserList field's value.
21141func (s *UpdateSMBFileShareInput) SetValidUserList(v []*string) *UpdateSMBFileShareInput {
21142	s.ValidUserList = v
21143	return s
21144}
21145
21146// UpdateSMBFileShareOutput
21147type UpdateSMBFileShareOutput struct {
21148	_ struct{} `type:"structure"`
21149
21150	// The Amazon Resource Name (ARN) of the updated SMB file share.
21151	FileShareARN *string `min:"50" type:"string"`
21152}
21153
21154// String returns the string representation
21155func (s UpdateSMBFileShareOutput) String() string {
21156	return awsutil.Prettify(s)
21157}
21158
21159// GoString returns the string representation
21160func (s UpdateSMBFileShareOutput) GoString() string {
21161	return s.String()
21162}
21163
21164// SetFileShareARN sets the FileShareARN field's value.
21165func (s *UpdateSMBFileShareOutput) SetFileShareARN(v string) *UpdateSMBFileShareOutput {
21166	s.FileShareARN = &v
21167	return s
21168}
21169
21170type UpdateSMBFileShareVisibilityInput struct {
21171	_ struct{} `type:"structure"`
21172
21173	// The shares on this gateway appear when listing shares.
21174	//
21175	// FileSharesVisible is a required field
21176	FileSharesVisible *bool `type:"boolean" required:"true"`
21177
21178	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
21179	// to return a list of gateways for your account and AWS Region.
21180	//
21181	// GatewayARN is a required field
21182	GatewayARN *string `min:"50" type:"string" required:"true"`
21183}
21184
21185// String returns the string representation
21186func (s UpdateSMBFileShareVisibilityInput) String() string {
21187	return awsutil.Prettify(s)
21188}
21189
21190// GoString returns the string representation
21191func (s UpdateSMBFileShareVisibilityInput) GoString() string {
21192	return s.String()
21193}
21194
21195// Validate inspects the fields of the type to determine if they are valid.
21196func (s *UpdateSMBFileShareVisibilityInput) Validate() error {
21197	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBFileShareVisibilityInput"}
21198	if s.FileSharesVisible == nil {
21199		invalidParams.Add(request.NewErrParamRequired("FileSharesVisible"))
21200	}
21201	if s.GatewayARN == nil {
21202		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
21203	}
21204	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
21205		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
21206	}
21207
21208	if invalidParams.Len() > 0 {
21209		return invalidParams
21210	}
21211	return nil
21212}
21213
21214// SetFileSharesVisible sets the FileSharesVisible field's value.
21215func (s *UpdateSMBFileShareVisibilityInput) SetFileSharesVisible(v bool) *UpdateSMBFileShareVisibilityInput {
21216	s.FileSharesVisible = &v
21217	return s
21218}
21219
21220// SetGatewayARN sets the GatewayARN field's value.
21221func (s *UpdateSMBFileShareVisibilityInput) SetGatewayARN(v string) *UpdateSMBFileShareVisibilityInput {
21222	s.GatewayARN = &v
21223	return s
21224}
21225
21226type UpdateSMBFileShareVisibilityOutput struct {
21227	_ struct{} `type:"structure"`
21228
21229	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
21230	// to return a list of gateways for your account and AWS Region.
21231	GatewayARN *string `min:"50" type:"string"`
21232}
21233
21234// String returns the string representation
21235func (s UpdateSMBFileShareVisibilityOutput) String() string {
21236	return awsutil.Prettify(s)
21237}
21238
21239// GoString returns the string representation
21240func (s UpdateSMBFileShareVisibilityOutput) GoString() string {
21241	return s.String()
21242}
21243
21244// SetGatewayARN sets the GatewayARN field's value.
21245func (s *UpdateSMBFileShareVisibilityOutput) SetGatewayARN(v string) *UpdateSMBFileShareVisibilityOutput {
21246	s.GatewayARN = &v
21247	return s
21248}
21249
21250type UpdateSMBSecurityStrategyInput struct {
21251	_ struct{} `type:"structure"`
21252
21253	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
21254	// to return a list of gateways for your account and AWS Region.
21255	//
21256	// GatewayARN is a required field
21257	GatewayARN *string `min:"50" type:"string" required:"true"`
21258
21259	// Specifies the type of security strategy.
21260	//
21261	// ClientSpecified: if you use this option, requests are established based on
21262	// what is negotiated by the client. This option is recommended when you want
21263	// to maximize compatibility across different clients in your environment.
21264	//
21265	// MandatorySigning: if you use this option, file gateway only allows connections
21266	// from SMBv2 or SMBv3 clients that have signing enabled. This option works
21267	// with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer.
21268	//
21269	// MandatoryEncryption: if you use this option, file gateway only allows connections
21270	// from SMBv3 clients that have encryption enabled. This option is highly recommended
21271	// for environments that handle sensitive data. This option works with SMB clients
21272	// on Microsoft Windows 8, Windows Server 2012 or newer.
21273	//
21274	// SMBSecurityStrategy is a required field
21275	SMBSecurityStrategy *string `type:"string" required:"true" enum:"SMBSecurityStrategy"`
21276}
21277
21278// String returns the string representation
21279func (s UpdateSMBSecurityStrategyInput) String() string {
21280	return awsutil.Prettify(s)
21281}
21282
21283// GoString returns the string representation
21284func (s UpdateSMBSecurityStrategyInput) GoString() string {
21285	return s.String()
21286}
21287
21288// Validate inspects the fields of the type to determine if they are valid.
21289func (s *UpdateSMBSecurityStrategyInput) Validate() error {
21290	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBSecurityStrategyInput"}
21291	if s.GatewayARN == nil {
21292		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
21293	}
21294	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
21295		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
21296	}
21297	if s.SMBSecurityStrategy == nil {
21298		invalidParams.Add(request.NewErrParamRequired("SMBSecurityStrategy"))
21299	}
21300
21301	if invalidParams.Len() > 0 {
21302		return invalidParams
21303	}
21304	return nil
21305}
21306
21307// SetGatewayARN sets the GatewayARN field's value.
21308func (s *UpdateSMBSecurityStrategyInput) SetGatewayARN(v string) *UpdateSMBSecurityStrategyInput {
21309	s.GatewayARN = &v
21310	return s
21311}
21312
21313// SetSMBSecurityStrategy sets the SMBSecurityStrategy field's value.
21314func (s *UpdateSMBSecurityStrategyInput) SetSMBSecurityStrategy(v string) *UpdateSMBSecurityStrategyInput {
21315	s.SMBSecurityStrategy = &v
21316	return s
21317}
21318
21319type UpdateSMBSecurityStrategyOutput struct {
21320	_ struct{} `type:"structure"`
21321
21322	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
21323	// to return a list of gateways for your account and AWS Region.
21324	GatewayARN *string `min:"50" type:"string"`
21325}
21326
21327// String returns the string representation
21328func (s UpdateSMBSecurityStrategyOutput) String() string {
21329	return awsutil.Prettify(s)
21330}
21331
21332// GoString returns the string representation
21333func (s UpdateSMBSecurityStrategyOutput) GoString() string {
21334	return s.String()
21335}
21336
21337// SetGatewayARN sets the GatewayARN field's value.
21338func (s *UpdateSMBSecurityStrategyOutput) SetGatewayARN(v string) *UpdateSMBSecurityStrategyOutput {
21339	s.GatewayARN = &v
21340	return s
21341}
21342
21343// A JSON object containing one or more of the following fields:
21344//
21345//    * UpdateSnapshotScheduleInput$Description
21346//
21347//    * UpdateSnapshotScheduleInput$RecurrenceInHours
21348//
21349//    * UpdateSnapshotScheduleInput$StartAt
21350//
21351//    * UpdateSnapshotScheduleInput$VolumeARN
21352type UpdateSnapshotScheduleInput struct {
21353	_ struct{} `type:"structure"`
21354
21355	// Optional description of the snapshot that overwrites the existing description.
21356	Description *string `min:"1" type:"string"`
21357
21358	// Frequency of snapshots. Specify the number of hours between snapshots.
21359	//
21360	// RecurrenceInHours is a required field
21361	RecurrenceInHours *int64 `min:"1" type:"integer" required:"true"`
21362
21363	// The hour of the day at which the snapshot schedule begins represented as
21364	// hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
21365	// of the gateway.
21366	//
21367	// StartAt is a required field
21368	StartAt *int64 `type:"integer" required:"true"`
21369
21370	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
21371	// key-value pair.
21372	//
21373	// Valid characters for key and value are letters, spaces, and numbers representable
21374	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
21375	// maximum length of a tag's key is 128 characters, and the maximum length for
21376	// a tag's value is 256.
21377	Tags []*Tag `type:"list"`
21378
21379	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
21380	// to return a list of gateway volumes.
21381	//
21382	// VolumeARN is a required field
21383	VolumeARN *string `min:"50" type:"string" required:"true"`
21384}
21385
21386// String returns the string representation
21387func (s UpdateSnapshotScheduleInput) String() string {
21388	return awsutil.Prettify(s)
21389}
21390
21391// GoString returns the string representation
21392func (s UpdateSnapshotScheduleInput) GoString() string {
21393	return s.String()
21394}
21395
21396// Validate inspects the fields of the type to determine if they are valid.
21397func (s *UpdateSnapshotScheduleInput) Validate() error {
21398	invalidParams := request.ErrInvalidParams{Context: "UpdateSnapshotScheduleInput"}
21399	if s.Description != nil && len(*s.Description) < 1 {
21400		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
21401	}
21402	if s.RecurrenceInHours == nil {
21403		invalidParams.Add(request.NewErrParamRequired("RecurrenceInHours"))
21404	}
21405	if s.RecurrenceInHours != nil && *s.RecurrenceInHours < 1 {
21406		invalidParams.Add(request.NewErrParamMinValue("RecurrenceInHours", 1))
21407	}
21408	if s.StartAt == nil {
21409		invalidParams.Add(request.NewErrParamRequired("StartAt"))
21410	}
21411	if s.VolumeARN == nil {
21412		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
21413	}
21414	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
21415		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
21416	}
21417	if s.Tags != nil {
21418		for i, v := range s.Tags {
21419			if v == nil {
21420				continue
21421			}
21422			if err := v.Validate(); err != nil {
21423				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
21424			}
21425		}
21426	}
21427
21428	if invalidParams.Len() > 0 {
21429		return invalidParams
21430	}
21431	return nil
21432}
21433
21434// SetDescription sets the Description field's value.
21435func (s *UpdateSnapshotScheduleInput) SetDescription(v string) *UpdateSnapshotScheduleInput {
21436	s.Description = &v
21437	return s
21438}
21439
21440// SetRecurrenceInHours sets the RecurrenceInHours field's value.
21441func (s *UpdateSnapshotScheduleInput) SetRecurrenceInHours(v int64) *UpdateSnapshotScheduleInput {
21442	s.RecurrenceInHours = &v
21443	return s
21444}
21445
21446// SetStartAt sets the StartAt field's value.
21447func (s *UpdateSnapshotScheduleInput) SetStartAt(v int64) *UpdateSnapshotScheduleInput {
21448	s.StartAt = &v
21449	return s
21450}
21451
21452// SetTags sets the Tags field's value.
21453func (s *UpdateSnapshotScheduleInput) SetTags(v []*Tag) *UpdateSnapshotScheduleInput {
21454	s.Tags = v
21455	return s
21456}
21457
21458// SetVolumeARN sets the VolumeARN field's value.
21459func (s *UpdateSnapshotScheduleInput) SetVolumeARN(v string) *UpdateSnapshotScheduleInput {
21460	s.VolumeARN = &v
21461	return s
21462}
21463
21464// A JSON object containing the Amazon Resource Name (ARN) of the updated storage
21465// volume.
21466type UpdateSnapshotScheduleOutput struct {
21467	_ struct{} `type:"structure"`
21468
21469	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
21470	// to return a list of gateway volumes.
21471	VolumeARN *string `min:"50" type:"string"`
21472}
21473
21474// String returns the string representation
21475func (s UpdateSnapshotScheduleOutput) String() string {
21476	return awsutil.Prettify(s)
21477}
21478
21479// GoString returns the string representation
21480func (s UpdateSnapshotScheduleOutput) GoString() string {
21481	return s.String()
21482}
21483
21484// SetVolumeARN sets the VolumeARN field's value.
21485func (s *UpdateSnapshotScheduleOutput) SetVolumeARN(v string) *UpdateSnapshotScheduleOutput {
21486	s.VolumeARN = &v
21487	return s
21488}
21489
21490type UpdateVTLDeviceTypeInput struct {
21491	_ struct{} `type:"structure"`
21492
21493	// The type of medium changer you want to select.
21494	//
21495	// Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402
21496	//
21497	// DeviceType is a required field
21498	DeviceType *string `min:"2" type:"string" required:"true"`
21499
21500	// The Amazon Resource Name (ARN) of the medium changer you want to select.
21501	//
21502	// VTLDeviceARN is a required field
21503	VTLDeviceARN *string `min:"50" type:"string" required:"true"`
21504}
21505
21506// String returns the string representation
21507func (s UpdateVTLDeviceTypeInput) String() string {
21508	return awsutil.Prettify(s)
21509}
21510
21511// GoString returns the string representation
21512func (s UpdateVTLDeviceTypeInput) GoString() string {
21513	return s.String()
21514}
21515
21516// Validate inspects the fields of the type to determine if they are valid.
21517func (s *UpdateVTLDeviceTypeInput) Validate() error {
21518	invalidParams := request.ErrInvalidParams{Context: "UpdateVTLDeviceTypeInput"}
21519	if s.DeviceType == nil {
21520		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
21521	}
21522	if s.DeviceType != nil && len(*s.DeviceType) < 2 {
21523		invalidParams.Add(request.NewErrParamMinLen("DeviceType", 2))
21524	}
21525	if s.VTLDeviceARN == nil {
21526		invalidParams.Add(request.NewErrParamRequired("VTLDeviceARN"))
21527	}
21528	if s.VTLDeviceARN != nil && len(*s.VTLDeviceARN) < 50 {
21529		invalidParams.Add(request.NewErrParamMinLen("VTLDeviceARN", 50))
21530	}
21531
21532	if invalidParams.Len() > 0 {
21533		return invalidParams
21534	}
21535	return nil
21536}
21537
21538// SetDeviceType sets the DeviceType field's value.
21539func (s *UpdateVTLDeviceTypeInput) SetDeviceType(v string) *UpdateVTLDeviceTypeInput {
21540	s.DeviceType = &v
21541	return s
21542}
21543
21544// SetVTLDeviceARN sets the VTLDeviceARN field's value.
21545func (s *UpdateVTLDeviceTypeInput) SetVTLDeviceARN(v string) *UpdateVTLDeviceTypeInput {
21546	s.VTLDeviceARN = &v
21547	return s
21548}
21549
21550// UpdateVTLDeviceTypeOutput
21551type UpdateVTLDeviceTypeOutput struct {
21552	_ struct{} `type:"structure"`
21553
21554	// The Amazon Resource Name (ARN) of the medium changer you have selected.
21555	VTLDeviceARN *string `min:"50" type:"string"`
21556}
21557
21558// String returns the string representation
21559func (s UpdateVTLDeviceTypeOutput) String() string {
21560	return awsutil.Prettify(s)
21561}
21562
21563// GoString returns the string representation
21564func (s UpdateVTLDeviceTypeOutput) GoString() string {
21565	return s.String()
21566}
21567
21568// SetVTLDeviceARN sets the VTLDeviceARN field's value.
21569func (s *UpdateVTLDeviceTypeOutput) SetVTLDeviceARN(v string) *UpdateVTLDeviceTypeOutput {
21570	s.VTLDeviceARN = &v
21571	return s
21572}
21573
21574// Represents a device object associated with a tape gateway.
21575type VTLDevice struct {
21576	_ struct{} `type:"structure"`
21577
21578	// A list of iSCSI information about a VTL device.
21579	DeviceiSCSIAttributes *DeviceiSCSIAttributes `type:"structure"`
21580
21581	// Specifies the unique Amazon Resource Name (ARN) of the device (tape drive
21582	// or media changer).
21583	VTLDeviceARN *string `min:"50" type:"string"`
21584
21585	// Specifies the model number of device that the VTL device emulates.
21586	VTLDeviceProductIdentifier *string `type:"string"`
21587
21588	// Specifies the type of device that the VTL device emulates.
21589	VTLDeviceType *string `type:"string"`
21590
21591	// Specifies the vendor of the device that the VTL device object emulates.
21592	VTLDeviceVendor *string `type:"string"`
21593}
21594
21595// String returns the string representation
21596func (s VTLDevice) String() string {
21597	return awsutil.Prettify(s)
21598}
21599
21600// GoString returns the string representation
21601func (s VTLDevice) GoString() string {
21602	return s.String()
21603}
21604
21605// SetDeviceiSCSIAttributes sets the DeviceiSCSIAttributes field's value.
21606func (s *VTLDevice) SetDeviceiSCSIAttributes(v *DeviceiSCSIAttributes) *VTLDevice {
21607	s.DeviceiSCSIAttributes = v
21608	return s
21609}
21610
21611// SetVTLDeviceARN sets the VTLDeviceARN field's value.
21612func (s *VTLDevice) SetVTLDeviceARN(v string) *VTLDevice {
21613	s.VTLDeviceARN = &v
21614	return s
21615}
21616
21617// SetVTLDeviceProductIdentifier sets the VTLDeviceProductIdentifier field's value.
21618func (s *VTLDevice) SetVTLDeviceProductIdentifier(v string) *VTLDevice {
21619	s.VTLDeviceProductIdentifier = &v
21620	return s
21621}
21622
21623// SetVTLDeviceType sets the VTLDeviceType field's value.
21624func (s *VTLDevice) SetVTLDeviceType(v string) *VTLDevice {
21625	s.VTLDeviceType = &v
21626	return s
21627}
21628
21629// SetVTLDeviceVendor sets the VTLDeviceVendor field's value.
21630func (s *VTLDevice) SetVTLDeviceVendor(v string) *VTLDevice {
21631	s.VTLDeviceVendor = &v
21632	return s
21633}
21634
21635// Describes a storage volume object.
21636type VolumeInfo struct {
21637	_ struct{} `type:"structure"`
21638
21639	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
21640	// to return a list of gateways for your account and AWS Region.
21641	GatewayARN *string `min:"50" type:"string"`
21642
21643	// The unique identifier assigned to your gateway during activation. This ID
21644	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
21645	// input for other operations.
21646	//
21647	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
21648	// (-).
21649	GatewayId *string `min:"12" type:"string"`
21650
21651	// The Amazon Resource Name (ARN) for the storage volume. For example, the following
21652	// is a valid ARN:
21653	//
21654	// arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB
21655	//
21656	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
21657	// (-).
21658	VolumeARN *string `min:"50" type:"string"`
21659
21660	// One of the VolumeStatus values that indicates the state of the storage volume.
21661	VolumeAttachmentStatus *string `min:"3" type:"string"`
21662
21663	// The unique identifier assigned to the volume. This ID becomes part of the
21664	// volume Amazon Resource Name (ARN), which you use as input for other operations.
21665	//
21666	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
21667	// (-).
21668	VolumeId *string `min:"12" type:"string"`
21669
21670	// The size of the volume in bytes.
21671	//
21672	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
21673	// (-).
21674	VolumeSizeInBytes *int64 `type:"long"`
21675
21676	// One of the VolumeType enumeration values describing the type of the volume.
21677	VolumeType *string `min:"3" type:"string"`
21678}
21679
21680// String returns the string representation
21681func (s VolumeInfo) String() string {
21682	return awsutil.Prettify(s)
21683}
21684
21685// GoString returns the string representation
21686func (s VolumeInfo) GoString() string {
21687	return s.String()
21688}
21689
21690// SetGatewayARN sets the GatewayARN field's value.
21691func (s *VolumeInfo) SetGatewayARN(v string) *VolumeInfo {
21692	s.GatewayARN = &v
21693	return s
21694}
21695
21696// SetGatewayId sets the GatewayId field's value.
21697func (s *VolumeInfo) SetGatewayId(v string) *VolumeInfo {
21698	s.GatewayId = &v
21699	return s
21700}
21701
21702// SetVolumeARN sets the VolumeARN field's value.
21703func (s *VolumeInfo) SetVolumeARN(v string) *VolumeInfo {
21704	s.VolumeARN = &v
21705	return s
21706}
21707
21708// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
21709func (s *VolumeInfo) SetVolumeAttachmentStatus(v string) *VolumeInfo {
21710	s.VolumeAttachmentStatus = &v
21711	return s
21712}
21713
21714// SetVolumeId sets the VolumeId field's value.
21715func (s *VolumeInfo) SetVolumeId(v string) *VolumeInfo {
21716	s.VolumeId = &v
21717	return s
21718}
21719
21720// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
21721func (s *VolumeInfo) SetVolumeSizeInBytes(v int64) *VolumeInfo {
21722	s.VolumeSizeInBytes = &v
21723	return s
21724}
21725
21726// SetVolumeType sets the VolumeType field's value.
21727func (s *VolumeInfo) SetVolumeType(v string) *VolumeInfo {
21728	s.VolumeType = &v
21729	return s
21730}
21731
21732// Describes a storage volume recovery point object.
21733type VolumeRecoveryPointInfo struct {
21734	_ struct{} `type:"structure"`
21735
21736	// The Amazon Resource Name (ARN) of the volume target.
21737	VolumeARN *string `min:"50" type:"string"`
21738
21739	// The time the recovery point was taken.
21740	VolumeRecoveryPointTime *string `type:"string"`
21741
21742	// The size of the volume in bytes.
21743	VolumeSizeInBytes *int64 `type:"long"`
21744
21745	// The size of the data stored on the volume in bytes.
21746	//
21747	// This value is not available for volumes created prior to May 13, 2015, until
21748	// you store data on the volume.
21749	VolumeUsageInBytes *int64 `type:"long"`
21750}
21751
21752// String returns the string representation
21753func (s VolumeRecoveryPointInfo) String() string {
21754	return awsutil.Prettify(s)
21755}
21756
21757// GoString returns the string representation
21758func (s VolumeRecoveryPointInfo) GoString() string {
21759	return s.String()
21760}
21761
21762// SetVolumeARN sets the VolumeARN field's value.
21763func (s *VolumeRecoveryPointInfo) SetVolumeARN(v string) *VolumeRecoveryPointInfo {
21764	s.VolumeARN = &v
21765	return s
21766}
21767
21768// SetVolumeRecoveryPointTime sets the VolumeRecoveryPointTime field's value.
21769func (s *VolumeRecoveryPointInfo) SetVolumeRecoveryPointTime(v string) *VolumeRecoveryPointInfo {
21770	s.VolumeRecoveryPointTime = &v
21771	return s
21772}
21773
21774// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
21775func (s *VolumeRecoveryPointInfo) SetVolumeSizeInBytes(v int64) *VolumeRecoveryPointInfo {
21776	s.VolumeSizeInBytes = &v
21777	return s
21778}
21779
21780// SetVolumeUsageInBytes sets the VolumeUsageInBytes field's value.
21781func (s *VolumeRecoveryPointInfo) SetVolumeUsageInBytes(v int64) *VolumeRecoveryPointInfo {
21782	s.VolumeUsageInBytes = &v
21783	return s
21784}
21785
21786// Lists iSCSI information about a volume.
21787type VolumeiSCSIAttributes struct {
21788	_ struct{} `type:"structure"`
21789
21790	// Indicates whether mutual CHAP is enabled for the iSCSI target.
21791	ChapEnabled *bool `type:"boolean"`
21792
21793	// The logical disk number.
21794	LunNumber *int64 `min:"1" type:"integer"`
21795
21796	// The network interface identifier.
21797	NetworkInterfaceId *string `type:"string"`
21798
21799	// The port used to communicate with iSCSI targets.
21800	NetworkInterfacePort *int64 `type:"integer"`
21801
21802	// The Amazon Resource Name (ARN) of the volume target.
21803	TargetARN *string `min:"50" type:"string"`
21804}
21805
21806// String returns the string representation
21807func (s VolumeiSCSIAttributes) String() string {
21808	return awsutil.Prettify(s)
21809}
21810
21811// GoString returns the string representation
21812func (s VolumeiSCSIAttributes) GoString() string {
21813	return s.String()
21814}
21815
21816// SetChapEnabled sets the ChapEnabled field's value.
21817func (s *VolumeiSCSIAttributes) SetChapEnabled(v bool) *VolumeiSCSIAttributes {
21818	s.ChapEnabled = &v
21819	return s
21820}
21821
21822// SetLunNumber sets the LunNumber field's value.
21823func (s *VolumeiSCSIAttributes) SetLunNumber(v int64) *VolumeiSCSIAttributes {
21824	s.LunNumber = &v
21825	return s
21826}
21827
21828// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
21829func (s *VolumeiSCSIAttributes) SetNetworkInterfaceId(v string) *VolumeiSCSIAttributes {
21830	s.NetworkInterfaceId = &v
21831	return s
21832}
21833
21834// SetNetworkInterfacePort sets the NetworkInterfacePort field's value.
21835func (s *VolumeiSCSIAttributes) SetNetworkInterfacePort(v int64) *VolumeiSCSIAttributes {
21836	s.NetworkInterfacePort = &v
21837	return s
21838}
21839
21840// SetTargetARN sets the TargetARN field's value.
21841func (s *VolumeiSCSIAttributes) SetTargetARN(v string) *VolumeiSCSIAttributes {
21842	s.TargetARN = &v
21843	return s
21844}
21845
21846const (
21847	// ActiveDirectoryStatusAccessDenied is a ActiveDirectoryStatus enum value
21848	ActiveDirectoryStatusAccessDenied = "ACCESS_DENIED"
21849
21850	// ActiveDirectoryStatusDetached is a ActiveDirectoryStatus enum value
21851	ActiveDirectoryStatusDetached = "DETACHED"
21852
21853	// ActiveDirectoryStatusJoined is a ActiveDirectoryStatus enum value
21854	ActiveDirectoryStatusJoined = "JOINED"
21855
21856	// ActiveDirectoryStatusJoining is a ActiveDirectoryStatus enum value
21857	ActiveDirectoryStatusJoining = "JOINING"
21858
21859	// ActiveDirectoryStatusNetworkError is a ActiveDirectoryStatus enum value
21860	ActiveDirectoryStatusNetworkError = "NETWORK_ERROR"
21861
21862	// ActiveDirectoryStatusTimeout is a ActiveDirectoryStatus enum value
21863	ActiveDirectoryStatusTimeout = "TIMEOUT"
21864
21865	// ActiveDirectoryStatusUnknownError is a ActiveDirectoryStatus enum value
21866	ActiveDirectoryStatusUnknownError = "UNKNOWN_ERROR"
21867)
21868
21869// ActiveDirectoryStatus_Values returns all elements of the ActiveDirectoryStatus enum
21870func ActiveDirectoryStatus_Values() []string {
21871	return []string{
21872		ActiveDirectoryStatusAccessDenied,
21873		ActiveDirectoryStatusDetached,
21874		ActiveDirectoryStatusJoined,
21875		ActiveDirectoryStatusJoining,
21876		ActiveDirectoryStatusNetworkError,
21877		ActiveDirectoryStatusTimeout,
21878		ActiveDirectoryStatusUnknownError,
21879	}
21880}
21881
21882const (
21883	// AvailabilityMonitorTestStatusComplete is a AvailabilityMonitorTestStatus enum value
21884	AvailabilityMonitorTestStatusComplete = "COMPLETE"
21885
21886	// AvailabilityMonitorTestStatusFailed is a AvailabilityMonitorTestStatus enum value
21887	AvailabilityMonitorTestStatusFailed = "FAILED"
21888
21889	// AvailabilityMonitorTestStatusPending is a AvailabilityMonitorTestStatus enum value
21890	AvailabilityMonitorTestStatusPending = "PENDING"
21891)
21892
21893// AvailabilityMonitorTestStatus_Values returns all elements of the AvailabilityMonitorTestStatus enum
21894func AvailabilityMonitorTestStatus_Values() []string {
21895	return []string{
21896		AvailabilityMonitorTestStatusComplete,
21897		AvailabilityMonitorTestStatusFailed,
21898		AvailabilityMonitorTestStatusPending,
21899	}
21900}
21901
21902const (
21903	// CaseSensitivityClientSpecified is a CaseSensitivity enum value
21904	CaseSensitivityClientSpecified = "ClientSpecified"
21905
21906	// CaseSensitivityCaseSensitive is a CaseSensitivity enum value
21907	CaseSensitivityCaseSensitive = "CaseSensitive"
21908)
21909
21910// CaseSensitivity_Values returns all elements of the CaseSensitivity enum
21911func CaseSensitivity_Values() []string {
21912	return []string{
21913		CaseSensitivityClientSpecified,
21914		CaseSensitivityCaseSensitive,
21915	}
21916}
21917
21918const (
21919	// ErrorCodeActivationKeyExpired is a ErrorCode enum value
21920	ErrorCodeActivationKeyExpired = "ActivationKeyExpired"
21921
21922	// ErrorCodeActivationKeyInvalid is a ErrorCode enum value
21923	ErrorCodeActivationKeyInvalid = "ActivationKeyInvalid"
21924
21925	// ErrorCodeActivationKeyNotFound is a ErrorCode enum value
21926	ErrorCodeActivationKeyNotFound = "ActivationKeyNotFound"
21927
21928	// ErrorCodeGatewayInternalError is a ErrorCode enum value
21929	ErrorCodeGatewayInternalError = "GatewayInternalError"
21930
21931	// ErrorCodeGatewayNotConnected is a ErrorCode enum value
21932	ErrorCodeGatewayNotConnected = "GatewayNotConnected"
21933
21934	// ErrorCodeGatewayNotFound is a ErrorCode enum value
21935	ErrorCodeGatewayNotFound = "GatewayNotFound"
21936
21937	// ErrorCodeGatewayProxyNetworkConnectionBusy is a ErrorCode enum value
21938	ErrorCodeGatewayProxyNetworkConnectionBusy = "GatewayProxyNetworkConnectionBusy"
21939
21940	// ErrorCodeAuthenticationFailure is a ErrorCode enum value
21941	ErrorCodeAuthenticationFailure = "AuthenticationFailure"
21942
21943	// ErrorCodeBandwidthThrottleScheduleNotFound is a ErrorCode enum value
21944	ErrorCodeBandwidthThrottleScheduleNotFound = "BandwidthThrottleScheduleNotFound"
21945
21946	// ErrorCodeBlocked is a ErrorCode enum value
21947	ErrorCodeBlocked = "Blocked"
21948
21949	// ErrorCodeCannotExportSnapshot is a ErrorCode enum value
21950	ErrorCodeCannotExportSnapshot = "CannotExportSnapshot"
21951
21952	// ErrorCodeChapCredentialNotFound is a ErrorCode enum value
21953	ErrorCodeChapCredentialNotFound = "ChapCredentialNotFound"
21954
21955	// ErrorCodeDiskAlreadyAllocated is a ErrorCode enum value
21956	ErrorCodeDiskAlreadyAllocated = "DiskAlreadyAllocated"
21957
21958	// ErrorCodeDiskDoesNotExist is a ErrorCode enum value
21959	ErrorCodeDiskDoesNotExist = "DiskDoesNotExist"
21960
21961	// ErrorCodeDiskSizeGreaterThanVolumeMaxSize is a ErrorCode enum value
21962	ErrorCodeDiskSizeGreaterThanVolumeMaxSize = "DiskSizeGreaterThanVolumeMaxSize"
21963
21964	// ErrorCodeDiskSizeLessThanVolumeSize is a ErrorCode enum value
21965	ErrorCodeDiskSizeLessThanVolumeSize = "DiskSizeLessThanVolumeSize"
21966
21967	// ErrorCodeDiskSizeNotGigAligned is a ErrorCode enum value
21968	ErrorCodeDiskSizeNotGigAligned = "DiskSizeNotGigAligned"
21969
21970	// ErrorCodeDuplicateCertificateInfo is a ErrorCode enum value
21971	ErrorCodeDuplicateCertificateInfo = "DuplicateCertificateInfo"
21972
21973	// ErrorCodeDuplicateSchedule is a ErrorCode enum value
21974	ErrorCodeDuplicateSchedule = "DuplicateSchedule"
21975
21976	// ErrorCodeEndpointNotFound is a ErrorCode enum value
21977	ErrorCodeEndpointNotFound = "EndpointNotFound"
21978
21979	// ErrorCodeIamnotSupported is a ErrorCode enum value
21980	ErrorCodeIamnotSupported = "IAMNotSupported"
21981
21982	// ErrorCodeInitiatorInvalid is a ErrorCode enum value
21983	ErrorCodeInitiatorInvalid = "InitiatorInvalid"
21984
21985	// ErrorCodeInitiatorNotFound is a ErrorCode enum value
21986	ErrorCodeInitiatorNotFound = "InitiatorNotFound"
21987
21988	// ErrorCodeInternalError is a ErrorCode enum value
21989	ErrorCodeInternalError = "InternalError"
21990
21991	// ErrorCodeInvalidGateway is a ErrorCode enum value
21992	ErrorCodeInvalidGateway = "InvalidGateway"
21993
21994	// ErrorCodeInvalidEndpoint is a ErrorCode enum value
21995	ErrorCodeInvalidEndpoint = "InvalidEndpoint"
21996
21997	// ErrorCodeInvalidParameters is a ErrorCode enum value
21998	ErrorCodeInvalidParameters = "InvalidParameters"
21999
22000	// ErrorCodeInvalidSchedule is a ErrorCode enum value
22001	ErrorCodeInvalidSchedule = "InvalidSchedule"
22002
22003	// ErrorCodeLocalStorageLimitExceeded is a ErrorCode enum value
22004	ErrorCodeLocalStorageLimitExceeded = "LocalStorageLimitExceeded"
22005
22006	// ErrorCodeLunAlreadyAllocated is a ErrorCode enum value
22007	ErrorCodeLunAlreadyAllocated = "LunAlreadyAllocated "
22008
22009	// ErrorCodeLunInvalid is a ErrorCode enum value
22010	ErrorCodeLunInvalid = "LunInvalid"
22011
22012	// ErrorCodeJoinDomainInProgress is a ErrorCode enum value
22013	ErrorCodeJoinDomainInProgress = "JoinDomainInProgress"
22014
22015	// ErrorCodeMaximumContentLengthExceeded is a ErrorCode enum value
22016	ErrorCodeMaximumContentLengthExceeded = "MaximumContentLengthExceeded"
22017
22018	// ErrorCodeMaximumTapeCartridgeCountExceeded is a ErrorCode enum value
22019	ErrorCodeMaximumTapeCartridgeCountExceeded = "MaximumTapeCartridgeCountExceeded"
22020
22021	// ErrorCodeMaximumVolumeCountExceeded is a ErrorCode enum value
22022	ErrorCodeMaximumVolumeCountExceeded = "MaximumVolumeCountExceeded"
22023
22024	// ErrorCodeNetworkConfigurationChanged is a ErrorCode enum value
22025	ErrorCodeNetworkConfigurationChanged = "NetworkConfigurationChanged"
22026
22027	// ErrorCodeNoDisksAvailable is a ErrorCode enum value
22028	ErrorCodeNoDisksAvailable = "NoDisksAvailable"
22029
22030	// ErrorCodeNotImplemented is a ErrorCode enum value
22031	ErrorCodeNotImplemented = "NotImplemented"
22032
22033	// ErrorCodeNotSupported is a ErrorCode enum value
22034	ErrorCodeNotSupported = "NotSupported"
22035
22036	// ErrorCodeOperationAborted is a ErrorCode enum value
22037	ErrorCodeOperationAborted = "OperationAborted"
22038
22039	// ErrorCodeOutdatedGateway is a ErrorCode enum value
22040	ErrorCodeOutdatedGateway = "OutdatedGateway"
22041
22042	// ErrorCodeParametersNotImplemented is a ErrorCode enum value
22043	ErrorCodeParametersNotImplemented = "ParametersNotImplemented"
22044
22045	// ErrorCodeRegionInvalid is a ErrorCode enum value
22046	ErrorCodeRegionInvalid = "RegionInvalid"
22047
22048	// ErrorCodeRequestTimeout is a ErrorCode enum value
22049	ErrorCodeRequestTimeout = "RequestTimeout"
22050
22051	// ErrorCodeServiceUnavailable is a ErrorCode enum value
22052	ErrorCodeServiceUnavailable = "ServiceUnavailable"
22053
22054	// ErrorCodeSnapshotDeleted is a ErrorCode enum value
22055	ErrorCodeSnapshotDeleted = "SnapshotDeleted"
22056
22057	// ErrorCodeSnapshotIdInvalid is a ErrorCode enum value
22058	ErrorCodeSnapshotIdInvalid = "SnapshotIdInvalid"
22059
22060	// ErrorCodeSnapshotInProgress is a ErrorCode enum value
22061	ErrorCodeSnapshotInProgress = "SnapshotInProgress"
22062
22063	// ErrorCodeSnapshotNotFound is a ErrorCode enum value
22064	ErrorCodeSnapshotNotFound = "SnapshotNotFound"
22065
22066	// ErrorCodeSnapshotScheduleNotFound is a ErrorCode enum value
22067	ErrorCodeSnapshotScheduleNotFound = "SnapshotScheduleNotFound"
22068
22069	// ErrorCodeStagingAreaFull is a ErrorCode enum value
22070	ErrorCodeStagingAreaFull = "StagingAreaFull"
22071
22072	// ErrorCodeStorageFailure is a ErrorCode enum value
22073	ErrorCodeStorageFailure = "StorageFailure"
22074
22075	// ErrorCodeTapeCartridgeNotFound is a ErrorCode enum value
22076	ErrorCodeTapeCartridgeNotFound = "TapeCartridgeNotFound"
22077
22078	// ErrorCodeTargetAlreadyExists is a ErrorCode enum value
22079	ErrorCodeTargetAlreadyExists = "TargetAlreadyExists"
22080
22081	// ErrorCodeTargetInvalid is a ErrorCode enum value
22082	ErrorCodeTargetInvalid = "TargetInvalid"
22083
22084	// ErrorCodeTargetNotFound is a ErrorCode enum value
22085	ErrorCodeTargetNotFound = "TargetNotFound"
22086
22087	// ErrorCodeUnauthorizedOperation is a ErrorCode enum value
22088	ErrorCodeUnauthorizedOperation = "UnauthorizedOperation"
22089
22090	// ErrorCodeVolumeAlreadyExists is a ErrorCode enum value
22091	ErrorCodeVolumeAlreadyExists = "VolumeAlreadyExists"
22092
22093	// ErrorCodeVolumeIdInvalid is a ErrorCode enum value
22094	ErrorCodeVolumeIdInvalid = "VolumeIdInvalid"
22095
22096	// ErrorCodeVolumeInUse is a ErrorCode enum value
22097	ErrorCodeVolumeInUse = "VolumeInUse"
22098
22099	// ErrorCodeVolumeNotFound is a ErrorCode enum value
22100	ErrorCodeVolumeNotFound = "VolumeNotFound"
22101
22102	// ErrorCodeVolumeNotReady is a ErrorCode enum value
22103	ErrorCodeVolumeNotReady = "VolumeNotReady"
22104)
22105
22106// ErrorCode_Values returns all elements of the ErrorCode enum
22107func ErrorCode_Values() []string {
22108	return []string{
22109		ErrorCodeActivationKeyExpired,
22110		ErrorCodeActivationKeyInvalid,
22111		ErrorCodeActivationKeyNotFound,
22112		ErrorCodeGatewayInternalError,
22113		ErrorCodeGatewayNotConnected,
22114		ErrorCodeGatewayNotFound,
22115		ErrorCodeGatewayProxyNetworkConnectionBusy,
22116		ErrorCodeAuthenticationFailure,
22117		ErrorCodeBandwidthThrottleScheduleNotFound,
22118		ErrorCodeBlocked,
22119		ErrorCodeCannotExportSnapshot,
22120		ErrorCodeChapCredentialNotFound,
22121		ErrorCodeDiskAlreadyAllocated,
22122		ErrorCodeDiskDoesNotExist,
22123		ErrorCodeDiskSizeGreaterThanVolumeMaxSize,
22124		ErrorCodeDiskSizeLessThanVolumeSize,
22125		ErrorCodeDiskSizeNotGigAligned,
22126		ErrorCodeDuplicateCertificateInfo,
22127		ErrorCodeDuplicateSchedule,
22128		ErrorCodeEndpointNotFound,
22129		ErrorCodeIamnotSupported,
22130		ErrorCodeInitiatorInvalid,
22131		ErrorCodeInitiatorNotFound,
22132		ErrorCodeInternalError,
22133		ErrorCodeInvalidGateway,
22134		ErrorCodeInvalidEndpoint,
22135		ErrorCodeInvalidParameters,
22136		ErrorCodeInvalidSchedule,
22137		ErrorCodeLocalStorageLimitExceeded,
22138		ErrorCodeLunAlreadyAllocated,
22139		ErrorCodeLunInvalid,
22140		ErrorCodeJoinDomainInProgress,
22141		ErrorCodeMaximumContentLengthExceeded,
22142		ErrorCodeMaximumTapeCartridgeCountExceeded,
22143		ErrorCodeMaximumVolumeCountExceeded,
22144		ErrorCodeNetworkConfigurationChanged,
22145		ErrorCodeNoDisksAvailable,
22146		ErrorCodeNotImplemented,
22147		ErrorCodeNotSupported,
22148		ErrorCodeOperationAborted,
22149		ErrorCodeOutdatedGateway,
22150		ErrorCodeParametersNotImplemented,
22151		ErrorCodeRegionInvalid,
22152		ErrorCodeRequestTimeout,
22153		ErrorCodeServiceUnavailable,
22154		ErrorCodeSnapshotDeleted,
22155		ErrorCodeSnapshotIdInvalid,
22156		ErrorCodeSnapshotInProgress,
22157		ErrorCodeSnapshotNotFound,
22158		ErrorCodeSnapshotScheduleNotFound,
22159		ErrorCodeStagingAreaFull,
22160		ErrorCodeStorageFailure,
22161		ErrorCodeTapeCartridgeNotFound,
22162		ErrorCodeTargetAlreadyExists,
22163		ErrorCodeTargetInvalid,
22164		ErrorCodeTargetNotFound,
22165		ErrorCodeUnauthorizedOperation,
22166		ErrorCodeVolumeAlreadyExists,
22167		ErrorCodeVolumeIdInvalid,
22168		ErrorCodeVolumeInUse,
22169		ErrorCodeVolumeNotFound,
22170		ErrorCodeVolumeNotReady,
22171	}
22172}
22173
22174// The type of the file share.
22175const (
22176	// FileShareTypeNfs is a FileShareType enum value
22177	FileShareTypeNfs = "NFS"
22178
22179	// FileShareTypeSmb is a FileShareType enum value
22180	FileShareTypeSmb = "SMB"
22181)
22182
22183// FileShareType_Values returns all elements of the FileShareType enum
22184func FileShareType_Values() []string {
22185	return []string{
22186		FileShareTypeNfs,
22187		FileShareTypeSmb,
22188	}
22189}
22190
22191const (
22192	// HostEnvironmentVmware is a HostEnvironment enum value
22193	HostEnvironmentVmware = "VMWARE"
22194
22195	// HostEnvironmentHyperV is a HostEnvironment enum value
22196	HostEnvironmentHyperV = "HYPER-V"
22197
22198	// HostEnvironmentEc2 is a HostEnvironment enum value
22199	HostEnvironmentEc2 = "EC2"
22200
22201	// HostEnvironmentKvm is a HostEnvironment enum value
22202	HostEnvironmentKvm = "KVM"
22203
22204	// HostEnvironmentOther is a HostEnvironment enum value
22205	HostEnvironmentOther = "OTHER"
22206)
22207
22208// HostEnvironment_Values returns all elements of the HostEnvironment enum
22209func HostEnvironment_Values() []string {
22210	return []string{
22211		HostEnvironmentVmware,
22212		HostEnvironmentHyperV,
22213		HostEnvironmentEc2,
22214		HostEnvironmentKvm,
22215		HostEnvironmentOther,
22216	}
22217}
22218
22219// A value that sets the access control list (ACL) permission for objects in
22220// the S3 bucket that a file gateway puts objects into. The default value is
22221// private.
22222const (
22223	// ObjectACLPrivate is a ObjectACL enum value
22224	ObjectACLPrivate = "private"
22225
22226	// ObjectACLPublicRead is a ObjectACL enum value
22227	ObjectACLPublicRead = "public-read"
22228
22229	// ObjectACLPublicReadWrite is a ObjectACL enum value
22230	ObjectACLPublicReadWrite = "public-read-write"
22231
22232	// ObjectACLAuthenticatedRead is a ObjectACL enum value
22233	ObjectACLAuthenticatedRead = "authenticated-read"
22234
22235	// ObjectACLBucketOwnerRead is a ObjectACL enum value
22236	ObjectACLBucketOwnerRead = "bucket-owner-read"
22237
22238	// ObjectACLBucketOwnerFullControl is a ObjectACL enum value
22239	ObjectACLBucketOwnerFullControl = "bucket-owner-full-control"
22240
22241	// ObjectACLAwsExecRead is a ObjectACL enum value
22242	ObjectACLAwsExecRead = "aws-exec-read"
22243)
22244
22245// ObjectACL_Values returns all elements of the ObjectACL enum
22246func ObjectACL_Values() []string {
22247	return []string{
22248		ObjectACLPrivate,
22249		ObjectACLPublicRead,
22250		ObjectACLPublicReadWrite,
22251		ObjectACLAuthenticatedRead,
22252		ObjectACLBucketOwnerRead,
22253		ObjectACLBucketOwnerFullControl,
22254		ObjectACLAwsExecRead,
22255	}
22256}
22257
22258const (
22259	// PoolStatusActive is a PoolStatus enum value
22260	PoolStatusActive = "ACTIVE"
22261
22262	// PoolStatusDeleted is a PoolStatus enum value
22263	PoolStatusDeleted = "DELETED"
22264)
22265
22266// PoolStatus_Values returns all elements of the PoolStatus enum
22267func PoolStatus_Values() []string {
22268	return []string{
22269		PoolStatusActive,
22270		PoolStatusDeleted,
22271	}
22272}
22273
22274const (
22275	// RetentionLockTypeCompliance is a RetentionLockType enum value
22276	RetentionLockTypeCompliance = "COMPLIANCE"
22277
22278	// RetentionLockTypeGovernance is a RetentionLockType enum value
22279	RetentionLockTypeGovernance = "GOVERNANCE"
22280
22281	// RetentionLockTypeNone is a RetentionLockType enum value
22282	RetentionLockTypeNone = "NONE"
22283)
22284
22285// RetentionLockType_Values returns all elements of the RetentionLockType enum
22286func RetentionLockType_Values() []string {
22287	return []string{
22288		RetentionLockTypeCompliance,
22289		RetentionLockTypeGovernance,
22290		RetentionLockTypeNone,
22291	}
22292}
22293
22294const (
22295	// SMBSecurityStrategyClientSpecified is a SMBSecurityStrategy enum value
22296	SMBSecurityStrategyClientSpecified = "ClientSpecified"
22297
22298	// SMBSecurityStrategyMandatorySigning is a SMBSecurityStrategy enum value
22299	SMBSecurityStrategyMandatorySigning = "MandatorySigning"
22300
22301	// SMBSecurityStrategyMandatoryEncryption is a SMBSecurityStrategy enum value
22302	SMBSecurityStrategyMandatoryEncryption = "MandatoryEncryption"
22303)
22304
22305// SMBSecurityStrategy_Values returns all elements of the SMBSecurityStrategy enum
22306func SMBSecurityStrategy_Values() []string {
22307	return []string{
22308		SMBSecurityStrategyClientSpecified,
22309		SMBSecurityStrategyMandatorySigning,
22310		SMBSecurityStrategyMandatoryEncryption,
22311	}
22312}
22313
22314const (
22315	// TapeStorageClassDeepArchive is a TapeStorageClass enum value
22316	TapeStorageClassDeepArchive = "DEEP_ARCHIVE"
22317
22318	// TapeStorageClassGlacier is a TapeStorageClass enum value
22319	TapeStorageClassGlacier = "GLACIER"
22320)
22321
22322// TapeStorageClass_Values returns all elements of the TapeStorageClass enum
22323func TapeStorageClass_Values() []string {
22324	return []string{
22325		TapeStorageClassDeepArchive,
22326		TapeStorageClassGlacier,
22327	}
22328}
22329