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 opAttachVolume = "AttachVolume"
570
571// AttachVolumeRequest generates a "aws/request.Request" representing the
572// client's request for the AttachVolume 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 AttachVolume for more information on using the AttachVolume
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 AttachVolumeRequest method.
587//    req, resp := client.AttachVolumeRequest(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/AttachVolume
595func (c *StorageGateway) AttachVolumeRequest(input *AttachVolumeInput) (req *request.Request, output *AttachVolumeOutput) {
596	op := &request.Operation{
597		Name:       opAttachVolume,
598		HTTPMethod: "POST",
599		HTTPPath:   "/",
600	}
601
602	if input == nil {
603		input = &AttachVolumeInput{}
604	}
605
606	output = &AttachVolumeOutput{}
607	req = c.newRequest(op, input, output)
608	return
609}
610
611// AttachVolume API operation for AWS Storage Gateway.
612//
613// Connects a volume to an iSCSI connection and then attaches the volume to
614// the specified gateway. Detaching and attaching a volume enables you to recover
615// your data from one gateway to a different gateway without creating a snapshot.
616// It also makes it easier to move your volumes from an on-premises gateway
617// to a gateway hosted on an Amazon EC2 instance.
618//
619// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
620// with awserr.Error's Code and Message methods to get detailed information about
621// the error.
622//
623// See the AWS API reference guide for AWS Storage Gateway's
624// API operation AttachVolume for usage and error information.
625//
626// Returned Error Types:
627//   * InvalidGatewayRequestException
628//   An exception occurred because an invalid gateway request was issued to the
629//   service. For more information, see the error and message fields.
630//
631//   * InternalServerError
632//   An internal server error has occurred during the request. For more information,
633//   see the error and message fields.
634//
635// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AttachVolume
636func (c *StorageGateway) AttachVolume(input *AttachVolumeInput) (*AttachVolumeOutput, error) {
637	req, out := c.AttachVolumeRequest(input)
638	return out, req.Send()
639}
640
641// AttachVolumeWithContext is the same as AttachVolume with the addition of
642// the ability to pass a context and additional request options.
643//
644// See AttachVolume for details on how to use this API operation.
645//
646// The context must be non-nil and will be used for request cancellation. If
647// the context is nil a panic will occur. In the future the SDK may create
648// sub-contexts for http.Requests. See https://golang.org/pkg/context/
649// for more information on using Contexts.
650func (c *StorageGateway) AttachVolumeWithContext(ctx aws.Context, input *AttachVolumeInput, opts ...request.Option) (*AttachVolumeOutput, error) {
651	req, out := c.AttachVolumeRequest(input)
652	req.SetContext(ctx)
653	req.ApplyOptions(opts...)
654	return out, req.Send()
655}
656
657const opCancelArchival = "CancelArchival"
658
659// CancelArchivalRequest generates a "aws/request.Request" representing the
660// client's request for the CancelArchival operation. The "output" return
661// value will be populated with the request's response once the request completes
662// successfully.
663//
664// Use "Send" method on the returned Request to send the API call to the service.
665// the "output" return value is not valid until after Send returns without error.
666//
667// See CancelArchival for more information on using the CancelArchival
668// API call, and error handling.
669//
670// This method is useful when you want to inject custom logic or configuration
671// into the SDK's request lifecycle. Such as custom headers, or retry logic.
672//
673//
674//    // Example sending a request using the CancelArchivalRequest method.
675//    req, resp := client.CancelArchivalRequest(params)
676//
677//    err := req.Send()
678//    if err == nil { // resp is now filled
679//        fmt.Println(resp)
680//    }
681//
682// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelArchival
683func (c *StorageGateway) CancelArchivalRequest(input *CancelArchivalInput) (req *request.Request, output *CancelArchivalOutput) {
684	op := &request.Operation{
685		Name:       opCancelArchival,
686		HTTPMethod: "POST",
687		HTTPPath:   "/",
688	}
689
690	if input == nil {
691		input = &CancelArchivalInput{}
692	}
693
694	output = &CancelArchivalOutput{}
695	req = c.newRequest(op, input, output)
696	return
697}
698
699// CancelArchival API operation for AWS Storage Gateway.
700//
701// Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after
702// the archiving process is initiated. This operation is only supported in the
703// tape gateway type.
704//
705// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
706// with awserr.Error's Code and Message methods to get detailed information about
707// the error.
708//
709// See the AWS API reference guide for AWS Storage Gateway's
710// API operation CancelArchival for usage and error information.
711//
712// Returned Error Types:
713//   * InvalidGatewayRequestException
714//   An exception occurred because an invalid gateway request was issued to the
715//   service. For more information, see the error and message fields.
716//
717//   * InternalServerError
718//   An internal server error has occurred during the request. For more information,
719//   see the error and message fields.
720//
721// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelArchival
722func (c *StorageGateway) CancelArchival(input *CancelArchivalInput) (*CancelArchivalOutput, error) {
723	req, out := c.CancelArchivalRequest(input)
724	return out, req.Send()
725}
726
727// CancelArchivalWithContext is the same as CancelArchival with the addition of
728// the ability to pass a context and additional request options.
729//
730// See CancelArchival for details on how to use this API operation.
731//
732// The context must be non-nil and will be used for request cancellation. If
733// the context is nil a panic will occur. In the future the SDK may create
734// sub-contexts for http.Requests. See https://golang.org/pkg/context/
735// for more information on using Contexts.
736func (c *StorageGateway) CancelArchivalWithContext(ctx aws.Context, input *CancelArchivalInput, opts ...request.Option) (*CancelArchivalOutput, error) {
737	req, out := c.CancelArchivalRequest(input)
738	req.SetContext(ctx)
739	req.ApplyOptions(opts...)
740	return out, req.Send()
741}
742
743const opCancelRetrieval = "CancelRetrieval"
744
745// CancelRetrievalRequest generates a "aws/request.Request" representing the
746// client's request for the CancelRetrieval operation. The "output" return
747// value will be populated with the request's response once the request completes
748// successfully.
749//
750// Use "Send" method on the returned Request to send the API call to the service.
751// the "output" return value is not valid until after Send returns without error.
752//
753// See CancelRetrieval for more information on using the CancelRetrieval
754// API call, and error handling.
755//
756// This method is useful when you want to inject custom logic or configuration
757// into the SDK's request lifecycle. Such as custom headers, or retry logic.
758//
759//
760//    // Example sending a request using the CancelRetrievalRequest method.
761//    req, resp := client.CancelRetrievalRequest(params)
762//
763//    err := req.Send()
764//    if err == nil { // resp is now filled
765//        fmt.Println(resp)
766//    }
767//
768// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelRetrieval
769func (c *StorageGateway) CancelRetrievalRequest(input *CancelRetrievalInput) (req *request.Request, output *CancelRetrievalOutput) {
770	op := &request.Operation{
771		Name:       opCancelRetrieval,
772		HTTPMethod: "POST",
773		HTTPPath:   "/",
774	}
775
776	if input == nil {
777		input = &CancelRetrievalInput{}
778	}
779
780	output = &CancelRetrievalOutput{}
781	req = c.newRequest(op, input, output)
782	return
783}
784
785// CancelRetrieval API operation for AWS Storage Gateway.
786//
787// Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to
788// a gateway after the retrieval process is initiated. The virtual tape is returned
789// to the VTS. This operation is only supported in the tape gateway type.
790//
791// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
792// with awserr.Error's Code and Message methods to get detailed information about
793// the error.
794//
795// See the AWS API reference guide for AWS Storage Gateway's
796// API operation CancelRetrieval for usage and error information.
797//
798// Returned Error Types:
799//   * InvalidGatewayRequestException
800//   An exception occurred because an invalid gateway request was issued to the
801//   service. For more information, see the error and message fields.
802//
803//   * InternalServerError
804//   An internal server error has occurred during the request. For more information,
805//   see the error and message fields.
806//
807// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelRetrieval
808func (c *StorageGateway) CancelRetrieval(input *CancelRetrievalInput) (*CancelRetrievalOutput, error) {
809	req, out := c.CancelRetrievalRequest(input)
810	return out, req.Send()
811}
812
813// CancelRetrievalWithContext is the same as CancelRetrieval with the addition of
814// the ability to pass a context and additional request options.
815//
816// See CancelRetrieval for details on how to use this API operation.
817//
818// The context must be non-nil and will be used for request cancellation. If
819// the context is nil a panic will occur. In the future the SDK may create
820// sub-contexts for http.Requests. See https://golang.org/pkg/context/
821// for more information on using Contexts.
822func (c *StorageGateway) CancelRetrievalWithContext(ctx aws.Context, input *CancelRetrievalInput, opts ...request.Option) (*CancelRetrievalOutput, error) {
823	req, out := c.CancelRetrievalRequest(input)
824	req.SetContext(ctx)
825	req.ApplyOptions(opts...)
826	return out, req.Send()
827}
828
829const opCreateCachediSCSIVolume = "CreateCachediSCSIVolume"
830
831// CreateCachediSCSIVolumeRequest generates a "aws/request.Request" representing the
832// client's request for the CreateCachediSCSIVolume operation. The "output" return
833// value will be populated with the request's response once the request completes
834// successfully.
835//
836// Use "Send" method on the returned Request to send the API call to the service.
837// the "output" return value is not valid until after Send returns without error.
838//
839// See CreateCachediSCSIVolume for more information on using the CreateCachediSCSIVolume
840// API call, and error handling.
841//
842// This method is useful when you want to inject custom logic or configuration
843// into the SDK's request lifecycle. Such as custom headers, or retry logic.
844//
845//
846//    // Example sending a request using the CreateCachediSCSIVolumeRequest method.
847//    req, resp := client.CreateCachediSCSIVolumeRequest(params)
848//
849//    err := req.Send()
850//    if err == nil { // resp is now filled
851//        fmt.Println(resp)
852//    }
853//
854// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateCachediSCSIVolume
855func (c *StorageGateway) CreateCachediSCSIVolumeRequest(input *CreateCachediSCSIVolumeInput) (req *request.Request, output *CreateCachediSCSIVolumeOutput) {
856	op := &request.Operation{
857		Name:       opCreateCachediSCSIVolume,
858		HTTPMethod: "POST",
859		HTTPPath:   "/",
860	}
861
862	if input == nil {
863		input = &CreateCachediSCSIVolumeInput{}
864	}
865
866	output = &CreateCachediSCSIVolumeOutput{}
867	req = c.newRequest(op, input, output)
868	return
869}
870
871// CreateCachediSCSIVolume API operation for AWS Storage Gateway.
872//
873// Creates a cached volume on a specified cached volume gateway. This operation
874// is only supported in the cached volume gateway type.
875//
876// Cache storage must be allocated to the gateway before you can create a cached
877// volume. Use the AddCache operation to add cache storage to a gateway.
878//
879// In the request, you must specify the gateway, size of the volume in bytes,
880// the iSCSI target name, an IP address on which to expose the target, and a
881// unique client token. In response, the gateway creates the volume and returns
882// information about it. This information includes the volume Amazon Resource
883// Name (ARN), its size, and the iSCSI target ARN that initiators can use to
884// connect to the volume target.
885//
886// Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN
887// for this cached volume, which creates an exact copy of the existing volume’s
888// latest recovery point. The VolumeSizeInBytes value must be equal to or larger
889// than the size of the copied volume, in bytes.
890//
891// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
892// with awserr.Error's Code and Message methods to get detailed information about
893// the error.
894//
895// See the AWS API reference guide for AWS Storage Gateway's
896// API operation CreateCachediSCSIVolume for usage and error information.
897//
898// Returned Error Types:
899//   * InvalidGatewayRequestException
900//   An exception occurred because an invalid gateway request was issued to the
901//   service. For more information, see the error and message fields.
902//
903//   * InternalServerError
904//   An internal server error has occurred during the request. For more information,
905//   see the error and message fields.
906//
907// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateCachediSCSIVolume
908func (c *StorageGateway) CreateCachediSCSIVolume(input *CreateCachediSCSIVolumeInput) (*CreateCachediSCSIVolumeOutput, error) {
909	req, out := c.CreateCachediSCSIVolumeRequest(input)
910	return out, req.Send()
911}
912
913// CreateCachediSCSIVolumeWithContext is the same as CreateCachediSCSIVolume with the addition of
914// the ability to pass a context and additional request options.
915//
916// See CreateCachediSCSIVolume for details on how to use this API operation.
917//
918// The context must be non-nil and will be used for request cancellation. If
919// the context is nil a panic will occur. In the future the SDK may create
920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
921// for more information on using Contexts.
922func (c *StorageGateway) CreateCachediSCSIVolumeWithContext(ctx aws.Context, input *CreateCachediSCSIVolumeInput, opts ...request.Option) (*CreateCachediSCSIVolumeOutput, error) {
923	req, out := c.CreateCachediSCSIVolumeRequest(input)
924	req.SetContext(ctx)
925	req.ApplyOptions(opts...)
926	return out, req.Send()
927}
928
929const opCreateNFSFileShare = "CreateNFSFileShare"
930
931// CreateNFSFileShareRequest generates a "aws/request.Request" representing the
932// client's request for the CreateNFSFileShare operation. The "output" return
933// value will be populated with the request's response once the request completes
934// successfully.
935//
936// Use "Send" method on the returned Request to send the API call to the service.
937// the "output" return value is not valid until after Send returns without error.
938//
939// See CreateNFSFileShare for more information on using the CreateNFSFileShare
940// API call, and error handling.
941//
942// This method is useful when you want to inject custom logic or configuration
943// into the SDK's request lifecycle. Such as custom headers, or retry logic.
944//
945//
946//    // Example sending a request using the CreateNFSFileShareRequest method.
947//    req, resp := client.CreateNFSFileShareRequest(params)
948//
949//    err := req.Send()
950//    if err == nil { // resp is now filled
951//        fmt.Println(resp)
952//    }
953//
954// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateNFSFileShare
955func (c *StorageGateway) CreateNFSFileShareRequest(input *CreateNFSFileShareInput) (req *request.Request, output *CreateNFSFileShareOutput) {
956	op := &request.Operation{
957		Name:       opCreateNFSFileShare,
958		HTTPMethod: "POST",
959		HTTPPath:   "/",
960	}
961
962	if input == nil {
963		input = &CreateNFSFileShareInput{}
964	}
965
966	output = &CreateNFSFileShareOutput{}
967	req = c.newRequest(op, input, output)
968	return
969}
970
971// CreateNFSFileShare API operation for AWS Storage Gateway.
972//
973// Creates a Network File System (NFS) file share on an existing file gateway.
974// In Storage Gateway, a file share is a file system mount point backed by Amazon
975// S3 cloud storage. Storage Gateway exposes file shares using an NFS interface.
976// This operation is only supported for file gateways.
977//
978// File gateway requires AWS Security Token Service (AWS STS) to be activated
979// to enable you to create a file share. Make sure AWS STS is activated in the
980// AWS Region you are creating your file gateway in. If AWS STS is not activated
981// in the AWS Region, activate it. For information about how to activate AWS
982// 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)
983// in the AWS Identity and Access Management User Guide.
984//
985// File gateway does not support creating hard or symbolic links on a file share.
986//
987// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
988// with awserr.Error's Code and Message methods to get detailed information about
989// the error.
990//
991// See the AWS API reference guide for AWS Storage Gateway's
992// API operation CreateNFSFileShare for usage and error information.
993//
994// Returned Error Types:
995//   * InvalidGatewayRequestException
996//   An exception occurred because an invalid gateway request was issued to the
997//   service. For more information, see the error and message fields.
998//
999//   * InternalServerError
1000//   An internal server error has occurred during the request. For more information,
1001//   see the error and message fields.
1002//
1003// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateNFSFileShare
1004func (c *StorageGateway) CreateNFSFileShare(input *CreateNFSFileShareInput) (*CreateNFSFileShareOutput, error) {
1005	req, out := c.CreateNFSFileShareRequest(input)
1006	return out, req.Send()
1007}
1008
1009// CreateNFSFileShareWithContext is the same as CreateNFSFileShare with the addition of
1010// the ability to pass a context and additional request options.
1011//
1012// See CreateNFSFileShare for details on how to use this API operation.
1013//
1014// The context must be non-nil and will be used for request cancellation. If
1015// the context is nil a panic will occur. In the future the SDK may create
1016// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1017// for more information on using Contexts.
1018func (c *StorageGateway) CreateNFSFileShareWithContext(ctx aws.Context, input *CreateNFSFileShareInput, opts ...request.Option) (*CreateNFSFileShareOutput, error) {
1019	req, out := c.CreateNFSFileShareRequest(input)
1020	req.SetContext(ctx)
1021	req.ApplyOptions(opts...)
1022	return out, req.Send()
1023}
1024
1025const opCreateSMBFileShare = "CreateSMBFileShare"
1026
1027// CreateSMBFileShareRequest generates a "aws/request.Request" representing the
1028// client's request for the CreateSMBFileShare operation. The "output" return
1029// value will be populated with the request's response once the request completes
1030// successfully.
1031//
1032// Use "Send" method on the returned Request to send the API call to the service.
1033// the "output" return value is not valid until after Send returns without error.
1034//
1035// See CreateSMBFileShare for more information on using the CreateSMBFileShare
1036// API call, and error handling.
1037//
1038// This method is useful when you want to inject custom logic or configuration
1039// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1040//
1041//
1042//    // Example sending a request using the CreateSMBFileShareRequest method.
1043//    req, resp := client.CreateSMBFileShareRequest(params)
1044//
1045//    err := req.Send()
1046//    if err == nil { // resp is now filled
1047//        fmt.Println(resp)
1048//    }
1049//
1050// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSMBFileShare
1051func (c *StorageGateway) CreateSMBFileShareRequest(input *CreateSMBFileShareInput) (req *request.Request, output *CreateSMBFileShareOutput) {
1052	op := &request.Operation{
1053		Name:       opCreateSMBFileShare,
1054		HTTPMethod: "POST",
1055		HTTPPath:   "/",
1056	}
1057
1058	if input == nil {
1059		input = &CreateSMBFileShareInput{}
1060	}
1061
1062	output = &CreateSMBFileShareOutput{}
1063	req = c.newRequest(op, input, output)
1064	return
1065}
1066
1067// CreateSMBFileShare API operation for AWS Storage Gateway.
1068//
1069// Creates a Server Message Block (SMB) file share on an existing file gateway.
1070// In Storage Gateway, a file share is a file system mount point backed by Amazon
1071// S3 cloud storage. Storage Gateway exposes file shares using an SMB interface.
1072// This operation is only supported for file gateways.
1073//
1074// File gateways require AWS Security Token Service (AWS STS) to be activated
1075// to enable you to create a file share. Make sure that AWS STS is activated
1076// in the AWS Region you are creating your file gateway in. If AWS STS is not
1077// activated in this AWS Region, activate it. For information about how to activate
1078// 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)
1079// in the AWS Identity and Access Management User Guide.
1080//
1081// File gateways don't support creating hard or symbolic links on a file share.
1082//
1083// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1084// with awserr.Error's Code and Message methods to get detailed information about
1085// the error.
1086//
1087// See the AWS API reference guide for AWS Storage Gateway's
1088// API operation CreateSMBFileShare for usage and error information.
1089//
1090// Returned Error Types:
1091//   * InvalidGatewayRequestException
1092//   An exception occurred because an invalid gateway request was issued to the
1093//   service. For more information, see the error and message fields.
1094//
1095//   * InternalServerError
1096//   An internal server error has occurred during the request. For more information,
1097//   see the error and message fields.
1098//
1099// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSMBFileShare
1100func (c *StorageGateway) CreateSMBFileShare(input *CreateSMBFileShareInput) (*CreateSMBFileShareOutput, error) {
1101	req, out := c.CreateSMBFileShareRequest(input)
1102	return out, req.Send()
1103}
1104
1105// CreateSMBFileShareWithContext is the same as CreateSMBFileShare with the addition of
1106// the ability to pass a context and additional request options.
1107//
1108// See CreateSMBFileShare for details on how to use this API operation.
1109//
1110// The context must be non-nil and will be used for request cancellation. If
1111// the context is nil a panic will occur. In the future the SDK may create
1112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1113// for more information on using Contexts.
1114func (c *StorageGateway) CreateSMBFileShareWithContext(ctx aws.Context, input *CreateSMBFileShareInput, opts ...request.Option) (*CreateSMBFileShareOutput, error) {
1115	req, out := c.CreateSMBFileShareRequest(input)
1116	req.SetContext(ctx)
1117	req.ApplyOptions(opts...)
1118	return out, req.Send()
1119}
1120
1121const opCreateSnapshot = "CreateSnapshot"
1122
1123// CreateSnapshotRequest generates a "aws/request.Request" representing the
1124// client's request for the CreateSnapshot operation. The "output" return
1125// value will be populated with the request's response once the request completes
1126// successfully.
1127//
1128// Use "Send" method on the returned Request to send the API call to the service.
1129// the "output" return value is not valid until after Send returns without error.
1130//
1131// See CreateSnapshot for more information on using the CreateSnapshot
1132// API call, and error handling.
1133//
1134// This method is useful when you want to inject custom logic or configuration
1135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1136//
1137//
1138//    // Example sending a request using the CreateSnapshotRequest method.
1139//    req, resp := client.CreateSnapshotRequest(params)
1140//
1141//    err := req.Send()
1142//    if err == nil { // resp is now filled
1143//        fmt.Println(resp)
1144//    }
1145//
1146// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshot
1147func (c *StorageGateway) CreateSnapshotRequest(input *CreateSnapshotInput) (req *request.Request, output *CreateSnapshotOutput) {
1148	op := &request.Operation{
1149		Name:       opCreateSnapshot,
1150		HTTPMethod: "POST",
1151		HTTPPath:   "/",
1152	}
1153
1154	if input == nil {
1155		input = &CreateSnapshotInput{}
1156	}
1157
1158	output = &CreateSnapshotOutput{}
1159	req = c.newRequest(op, input, output)
1160	return
1161}
1162
1163// CreateSnapshot API operation for AWS Storage Gateway.
1164//
1165// Initiates a snapshot of a volume.
1166//
1167// AWS Storage Gateway provides the ability to back up point-in-time snapshots
1168// of your data to Amazon Simple Storage (Amazon S3) for durable off-site recovery,
1169// as well as import the data to an Amazon Elastic Block Store (EBS) volume
1170// in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway
1171// volume on a scheduled or ad hoc basis. This API enables you to take an ad
1172// hoc snapshot. For more information, see Editing a snapshot schedule (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#SchedulingSnapshot).
1173//
1174// In the CreateSnapshot request, you identify the volume by providing its Amazon
1175// Resource Name (ARN). You must also provide description for the snapshot.
1176// When AWS Storage Gateway takes the snapshot of specified volume, the snapshot
1177// and description appears in the AWS Storage Gateway console. In response,
1178// AWS Storage Gateway returns you a snapshot ID. You can use this snapshot
1179// ID to check the snapshot progress or later use it when you want to create
1180// a volume from a snapshot. This operation is only supported in stored and
1181// cached volume gateway type.
1182//
1183// To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
1184// see DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html)
1185// or DeleteSnapshot (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html)
1186// in the Amazon Elastic Compute Cloud API Reference.
1187//
1188// Volume and snapshot IDs are changing to a longer length ID format. For more
1189// information, see the important note on the Welcome (https://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html)
1190// page.
1191//
1192// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1193// with awserr.Error's Code and Message methods to get detailed information about
1194// the error.
1195//
1196// See the AWS API reference guide for AWS Storage Gateway's
1197// API operation CreateSnapshot for usage and error information.
1198//
1199// Returned Error Types:
1200//   * InvalidGatewayRequestException
1201//   An exception occurred because an invalid gateway request was issued to the
1202//   service. For more information, see the error and message fields.
1203//
1204//   * InternalServerError
1205//   An internal server error has occurred during the request. For more information,
1206//   see the error and message fields.
1207//
1208//   * ServiceUnavailableError
1209//   An internal server error has occurred because the service is unavailable.
1210//   For more information, see the error and message fields.
1211//
1212// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshot
1213func (c *StorageGateway) CreateSnapshot(input *CreateSnapshotInput) (*CreateSnapshotOutput, error) {
1214	req, out := c.CreateSnapshotRequest(input)
1215	return out, req.Send()
1216}
1217
1218// CreateSnapshotWithContext is the same as CreateSnapshot with the addition of
1219// the ability to pass a context and additional request options.
1220//
1221// See CreateSnapshot for details on how to use this API operation.
1222//
1223// The context must be non-nil and will be used for request cancellation. If
1224// the context is nil a panic will occur. In the future the SDK may create
1225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1226// for more information on using Contexts.
1227func (c *StorageGateway) CreateSnapshotWithContext(ctx aws.Context, input *CreateSnapshotInput, opts ...request.Option) (*CreateSnapshotOutput, error) {
1228	req, out := c.CreateSnapshotRequest(input)
1229	req.SetContext(ctx)
1230	req.ApplyOptions(opts...)
1231	return out, req.Send()
1232}
1233
1234const opCreateSnapshotFromVolumeRecoveryPoint = "CreateSnapshotFromVolumeRecoveryPoint"
1235
1236// CreateSnapshotFromVolumeRecoveryPointRequest generates a "aws/request.Request" representing the
1237// client's request for the CreateSnapshotFromVolumeRecoveryPoint operation. The "output" return
1238// value will be populated with the request's response once the request completes
1239// successfully.
1240//
1241// Use "Send" method on the returned Request to send the API call to the service.
1242// the "output" return value is not valid until after Send returns without error.
1243//
1244// See CreateSnapshotFromVolumeRecoveryPoint for more information on using the CreateSnapshotFromVolumeRecoveryPoint
1245// API call, and error handling.
1246//
1247// This method is useful when you want to inject custom logic or configuration
1248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1249//
1250//
1251//    // Example sending a request using the CreateSnapshotFromVolumeRecoveryPointRequest method.
1252//    req, resp := client.CreateSnapshotFromVolumeRecoveryPointRequest(params)
1253//
1254//    err := req.Send()
1255//    if err == nil { // resp is now filled
1256//        fmt.Println(resp)
1257//    }
1258//
1259// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshotFromVolumeRecoveryPoint
1260func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPointRequest(input *CreateSnapshotFromVolumeRecoveryPointInput) (req *request.Request, output *CreateSnapshotFromVolumeRecoveryPointOutput) {
1261	op := &request.Operation{
1262		Name:       opCreateSnapshotFromVolumeRecoveryPoint,
1263		HTTPMethod: "POST",
1264		HTTPPath:   "/",
1265	}
1266
1267	if input == nil {
1268		input = &CreateSnapshotFromVolumeRecoveryPointInput{}
1269	}
1270
1271	output = &CreateSnapshotFromVolumeRecoveryPointOutput{}
1272	req = c.newRequest(op, input, output)
1273	return
1274}
1275
1276// CreateSnapshotFromVolumeRecoveryPoint API operation for AWS Storage Gateway.
1277//
1278// Initiates a snapshot of a gateway from a volume recovery point. This operation
1279// is only supported in the cached volume gateway type.
1280//
1281// A volume recovery point is a point in time at which all data of the volume
1282// is consistent and from which you can create a snapshot. To get a list of
1283// volume recovery point for cached volume gateway, use ListVolumeRecoveryPoints.
1284//
1285// In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume
1286// by providing its Amazon Resource Name (ARN). You must also provide a description
1287// for the snapshot. When the gateway takes a snapshot of the specified volume,
1288// the snapshot and its description appear in the AWS Storage Gateway console.
1289// In response, the gateway returns you a snapshot ID. You can use this snapshot
1290// ID to check the snapshot progress or later use it when you want to create
1291// a volume from a snapshot.
1292//
1293// To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
1294// see DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html)
1295// or DeleteSnapshot (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html)
1296// in the Amazon Elastic Compute Cloud API Reference.
1297//
1298// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1299// with awserr.Error's Code and Message methods to get detailed information about
1300// the error.
1301//
1302// See the AWS API reference guide for AWS Storage Gateway's
1303// API operation CreateSnapshotFromVolumeRecoveryPoint for usage and error information.
1304//
1305// Returned Error Types:
1306//   * InvalidGatewayRequestException
1307//   An exception occurred because an invalid gateway request was issued to the
1308//   service. For more information, see the error and message fields.
1309//
1310//   * InternalServerError
1311//   An internal server error has occurred during the request. For more information,
1312//   see the error and message fields.
1313//
1314//   * ServiceUnavailableError
1315//   An internal server error has occurred because the service is unavailable.
1316//   For more information, see the error and message fields.
1317//
1318// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshotFromVolumeRecoveryPoint
1319func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPoint(input *CreateSnapshotFromVolumeRecoveryPointInput) (*CreateSnapshotFromVolumeRecoveryPointOutput, error) {
1320	req, out := c.CreateSnapshotFromVolumeRecoveryPointRequest(input)
1321	return out, req.Send()
1322}
1323
1324// CreateSnapshotFromVolumeRecoveryPointWithContext is the same as CreateSnapshotFromVolumeRecoveryPoint with the addition of
1325// the ability to pass a context and additional request options.
1326//
1327// See CreateSnapshotFromVolumeRecoveryPoint for details on how to use this API operation.
1328//
1329// The context must be non-nil and will be used for request cancellation. If
1330// the context is nil a panic will occur. In the future the SDK may create
1331// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1332// for more information on using Contexts.
1333func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPointWithContext(ctx aws.Context, input *CreateSnapshotFromVolumeRecoveryPointInput, opts ...request.Option) (*CreateSnapshotFromVolumeRecoveryPointOutput, error) {
1334	req, out := c.CreateSnapshotFromVolumeRecoveryPointRequest(input)
1335	req.SetContext(ctx)
1336	req.ApplyOptions(opts...)
1337	return out, req.Send()
1338}
1339
1340const opCreateStorediSCSIVolume = "CreateStorediSCSIVolume"
1341
1342// CreateStorediSCSIVolumeRequest generates a "aws/request.Request" representing the
1343// client's request for the CreateStorediSCSIVolume operation. The "output" return
1344// value will be populated with the request's response once the request completes
1345// successfully.
1346//
1347// Use "Send" method on the returned Request to send the API call to the service.
1348// the "output" return value is not valid until after Send returns without error.
1349//
1350// See CreateStorediSCSIVolume for more information on using the CreateStorediSCSIVolume
1351// API call, and error handling.
1352//
1353// This method is useful when you want to inject custom logic or configuration
1354// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1355//
1356//
1357//    // Example sending a request using the CreateStorediSCSIVolumeRequest method.
1358//    req, resp := client.CreateStorediSCSIVolumeRequest(params)
1359//
1360//    err := req.Send()
1361//    if err == nil { // resp is now filled
1362//        fmt.Println(resp)
1363//    }
1364//
1365// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateStorediSCSIVolume
1366func (c *StorageGateway) CreateStorediSCSIVolumeRequest(input *CreateStorediSCSIVolumeInput) (req *request.Request, output *CreateStorediSCSIVolumeOutput) {
1367	op := &request.Operation{
1368		Name:       opCreateStorediSCSIVolume,
1369		HTTPMethod: "POST",
1370		HTTPPath:   "/",
1371	}
1372
1373	if input == nil {
1374		input = &CreateStorediSCSIVolumeInput{}
1375	}
1376
1377	output = &CreateStorediSCSIVolumeOutput{}
1378	req = c.newRequest(op, input, output)
1379	return
1380}
1381
1382// CreateStorediSCSIVolume API operation for AWS Storage Gateway.
1383//
1384// Creates a volume on a specified gateway. This operation is only supported
1385// in the stored volume gateway type.
1386//
1387// The size of the volume to create is inferred from the disk size. You can
1388// choose to preserve existing data on the disk, create volume from an existing
1389// snapshot, or create an empty volume. If you choose to create an empty gateway
1390// volume, then any existing data on the disk is erased.
1391//
1392// In the request, you must specify the gateway and the disk information on
1393// which you are creating the volume. In response, the gateway creates the volume
1394// and returns volume information such as the volume Amazon Resource Name (ARN),
1395// its size, and the iSCSI target ARN that initiators can use to connect to
1396// the volume target.
1397//
1398// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1399// with awserr.Error's Code and Message methods to get detailed information about
1400// the error.
1401//
1402// See the AWS API reference guide for AWS Storage Gateway's
1403// API operation CreateStorediSCSIVolume for usage and error information.
1404//
1405// Returned Error Types:
1406//   * InvalidGatewayRequestException
1407//   An exception occurred because an invalid gateway request was issued to the
1408//   service. For more information, see the error and message fields.
1409//
1410//   * InternalServerError
1411//   An internal server error has occurred during the request. For more information,
1412//   see the error and message fields.
1413//
1414// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateStorediSCSIVolume
1415func (c *StorageGateway) CreateStorediSCSIVolume(input *CreateStorediSCSIVolumeInput) (*CreateStorediSCSIVolumeOutput, error) {
1416	req, out := c.CreateStorediSCSIVolumeRequest(input)
1417	return out, req.Send()
1418}
1419
1420// CreateStorediSCSIVolumeWithContext is the same as CreateStorediSCSIVolume with the addition of
1421// the ability to pass a context and additional request options.
1422//
1423// See CreateStorediSCSIVolume for details on how to use this API operation.
1424//
1425// The context must be non-nil and will be used for request cancellation. If
1426// the context is nil a panic will occur. In the future the SDK may create
1427// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1428// for more information on using Contexts.
1429func (c *StorageGateway) CreateStorediSCSIVolumeWithContext(ctx aws.Context, input *CreateStorediSCSIVolumeInput, opts ...request.Option) (*CreateStorediSCSIVolumeOutput, error) {
1430	req, out := c.CreateStorediSCSIVolumeRequest(input)
1431	req.SetContext(ctx)
1432	req.ApplyOptions(opts...)
1433	return out, req.Send()
1434}
1435
1436const opCreateTapePool = "CreateTapePool"
1437
1438// CreateTapePoolRequest generates a "aws/request.Request" representing the
1439// client's request for the CreateTapePool operation. The "output" return
1440// value will be populated with the request's response once the request completes
1441// successfully.
1442//
1443// Use "Send" method on the returned Request to send the API call to the service.
1444// the "output" return value is not valid until after Send returns without error.
1445//
1446// See CreateTapePool for more information on using the CreateTapePool
1447// API call, and error handling.
1448//
1449// This method is useful when you want to inject custom logic or configuration
1450// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1451//
1452//
1453//    // Example sending a request using the CreateTapePoolRequest method.
1454//    req, resp := client.CreateTapePoolRequest(params)
1455//
1456//    err := req.Send()
1457//    if err == nil { // resp is now filled
1458//        fmt.Println(resp)
1459//    }
1460//
1461// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapePool
1462func (c *StorageGateway) CreateTapePoolRequest(input *CreateTapePoolInput) (req *request.Request, output *CreateTapePoolOutput) {
1463	op := &request.Operation{
1464		Name:       opCreateTapePool,
1465		HTTPMethod: "POST",
1466		HTTPPath:   "/",
1467	}
1468
1469	if input == nil {
1470		input = &CreateTapePoolInput{}
1471	}
1472
1473	output = &CreateTapePoolOutput{}
1474	req = c.newRequest(op, input, output)
1475	return
1476}
1477
1478// CreateTapePool API operation for AWS Storage Gateway.
1479//
1480// Creates a new custom tape pool. You can use custom tape pool to enable tape
1481// retention lock on tapes that are archived in the custom pool.
1482//
1483// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1484// with awserr.Error's Code and Message methods to get detailed information about
1485// the error.
1486//
1487// See the AWS API reference guide for AWS Storage Gateway's
1488// API operation CreateTapePool for usage and error information.
1489//
1490// Returned Error Types:
1491//   * InvalidGatewayRequestException
1492//   An exception occurred because an invalid gateway request was issued to the
1493//   service. For more information, see the error and message fields.
1494//
1495//   * InternalServerError
1496//   An internal server error has occurred during the request. For more information,
1497//   see the error and message fields.
1498//
1499// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapePool
1500func (c *StorageGateway) CreateTapePool(input *CreateTapePoolInput) (*CreateTapePoolOutput, error) {
1501	req, out := c.CreateTapePoolRequest(input)
1502	return out, req.Send()
1503}
1504
1505// CreateTapePoolWithContext is the same as CreateTapePool with the addition of
1506// the ability to pass a context and additional request options.
1507//
1508// See CreateTapePool for details on how to use this API operation.
1509//
1510// The context must be non-nil and will be used for request cancellation. If
1511// the context is nil a panic will occur. In the future the SDK may create
1512// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1513// for more information on using Contexts.
1514func (c *StorageGateway) CreateTapePoolWithContext(ctx aws.Context, input *CreateTapePoolInput, opts ...request.Option) (*CreateTapePoolOutput, error) {
1515	req, out := c.CreateTapePoolRequest(input)
1516	req.SetContext(ctx)
1517	req.ApplyOptions(opts...)
1518	return out, req.Send()
1519}
1520
1521const opCreateTapeWithBarcode = "CreateTapeWithBarcode"
1522
1523// CreateTapeWithBarcodeRequest generates a "aws/request.Request" representing the
1524// client's request for the CreateTapeWithBarcode operation. The "output" return
1525// value will be populated with the request's response once the request completes
1526// successfully.
1527//
1528// Use "Send" method on the returned Request to send the API call to the service.
1529// the "output" return value is not valid until after Send returns without error.
1530//
1531// See CreateTapeWithBarcode for more information on using the CreateTapeWithBarcode
1532// API call, and error handling.
1533//
1534// This method is useful when you want to inject custom logic or configuration
1535// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1536//
1537//
1538//    // Example sending a request using the CreateTapeWithBarcodeRequest method.
1539//    req, resp := client.CreateTapeWithBarcodeRequest(params)
1540//
1541//    err := req.Send()
1542//    if err == nil { // resp is now filled
1543//        fmt.Println(resp)
1544//    }
1545//
1546// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapeWithBarcode
1547func (c *StorageGateway) CreateTapeWithBarcodeRequest(input *CreateTapeWithBarcodeInput) (req *request.Request, output *CreateTapeWithBarcodeOutput) {
1548	op := &request.Operation{
1549		Name:       opCreateTapeWithBarcode,
1550		HTTPMethod: "POST",
1551		HTTPPath:   "/",
1552	}
1553
1554	if input == nil {
1555		input = &CreateTapeWithBarcodeInput{}
1556	}
1557
1558	output = &CreateTapeWithBarcodeOutput{}
1559	req = c.newRequest(op, input, output)
1560	return
1561}
1562
1563// CreateTapeWithBarcode API operation for AWS Storage Gateway.
1564//
1565// Creates a virtual tape by using your own barcode. You write data to the virtual
1566// tape and then archive the tape. A barcode is unique and cannot be reused
1567// if it has already been used on a tape. This applies to barcodes used on deleted
1568// tapes. This operation is only supported in the tape gateway type.
1569//
1570// Cache storage must be allocated to the gateway before you can create a virtual
1571// tape. Use the AddCache operation to add cache storage to a gateway.
1572//
1573// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1574// with awserr.Error's Code and Message methods to get detailed information about
1575// the error.
1576//
1577// See the AWS API reference guide for AWS Storage Gateway's
1578// API operation CreateTapeWithBarcode for usage and error information.
1579//
1580// Returned Error Types:
1581//   * InvalidGatewayRequestException
1582//   An exception occurred because an invalid gateway request was issued to the
1583//   service. For more information, see the error and message fields.
1584//
1585//   * InternalServerError
1586//   An internal server error has occurred during the request. For more information,
1587//   see the error and message fields.
1588//
1589// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapeWithBarcode
1590func (c *StorageGateway) CreateTapeWithBarcode(input *CreateTapeWithBarcodeInput) (*CreateTapeWithBarcodeOutput, error) {
1591	req, out := c.CreateTapeWithBarcodeRequest(input)
1592	return out, req.Send()
1593}
1594
1595// CreateTapeWithBarcodeWithContext is the same as CreateTapeWithBarcode with the addition of
1596// the ability to pass a context and additional request options.
1597//
1598// See CreateTapeWithBarcode for details on how to use this API operation.
1599//
1600// The context must be non-nil and will be used for request cancellation. If
1601// the context is nil a panic will occur. In the future the SDK may create
1602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1603// for more information on using Contexts.
1604func (c *StorageGateway) CreateTapeWithBarcodeWithContext(ctx aws.Context, input *CreateTapeWithBarcodeInput, opts ...request.Option) (*CreateTapeWithBarcodeOutput, error) {
1605	req, out := c.CreateTapeWithBarcodeRequest(input)
1606	req.SetContext(ctx)
1607	req.ApplyOptions(opts...)
1608	return out, req.Send()
1609}
1610
1611const opCreateTapes = "CreateTapes"
1612
1613// CreateTapesRequest generates a "aws/request.Request" representing the
1614// client's request for the CreateTapes operation. The "output" return
1615// value will be populated with the request's response once the request completes
1616// successfully.
1617//
1618// Use "Send" method on the returned Request to send the API call to the service.
1619// the "output" return value is not valid until after Send returns without error.
1620//
1621// See CreateTapes for more information on using the CreateTapes
1622// API call, and error handling.
1623//
1624// This method is useful when you want to inject custom logic or configuration
1625// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1626//
1627//
1628//    // Example sending a request using the CreateTapesRequest method.
1629//    req, resp := client.CreateTapesRequest(params)
1630//
1631//    err := req.Send()
1632//    if err == nil { // resp is now filled
1633//        fmt.Println(resp)
1634//    }
1635//
1636// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapes
1637func (c *StorageGateway) CreateTapesRequest(input *CreateTapesInput) (req *request.Request, output *CreateTapesOutput) {
1638	op := &request.Operation{
1639		Name:       opCreateTapes,
1640		HTTPMethod: "POST",
1641		HTTPPath:   "/",
1642	}
1643
1644	if input == nil {
1645		input = &CreateTapesInput{}
1646	}
1647
1648	output = &CreateTapesOutput{}
1649	req = c.newRequest(op, input, output)
1650	return
1651}
1652
1653// CreateTapes API operation for AWS Storage Gateway.
1654//
1655// Creates one or more virtual tapes. You write data to the virtual tapes and
1656// then archive the tapes. This operation is only supported in the tape gateway
1657// type.
1658//
1659// Cache storage must be allocated to the gateway before you can create virtual
1660// tapes. Use the AddCache operation to add cache storage to a gateway.
1661//
1662// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1663// with awserr.Error's Code and Message methods to get detailed information about
1664// the error.
1665//
1666// See the AWS API reference guide for AWS Storage Gateway's
1667// API operation CreateTapes for usage and error information.
1668//
1669// Returned Error Types:
1670//   * InvalidGatewayRequestException
1671//   An exception occurred because an invalid gateway request was issued to the
1672//   service. For more information, see the error and message fields.
1673//
1674//   * InternalServerError
1675//   An internal server error has occurred during the request. For more information,
1676//   see the error and message fields.
1677//
1678// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapes
1679func (c *StorageGateway) CreateTapes(input *CreateTapesInput) (*CreateTapesOutput, error) {
1680	req, out := c.CreateTapesRequest(input)
1681	return out, req.Send()
1682}
1683
1684// CreateTapesWithContext is the same as CreateTapes with the addition of
1685// the ability to pass a context and additional request options.
1686//
1687// See CreateTapes for details on how to use this API operation.
1688//
1689// The context must be non-nil and will be used for request cancellation. If
1690// the context is nil a panic will occur. In the future the SDK may create
1691// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1692// for more information on using Contexts.
1693func (c *StorageGateway) CreateTapesWithContext(ctx aws.Context, input *CreateTapesInput, opts ...request.Option) (*CreateTapesOutput, error) {
1694	req, out := c.CreateTapesRequest(input)
1695	req.SetContext(ctx)
1696	req.ApplyOptions(opts...)
1697	return out, req.Send()
1698}
1699
1700const opDeleteAutomaticTapeCreationPolicy = "DeleteAutomaticTapeCreationPolicy"
1701
1702// DeleteAutomaticTapeCreationPolicyRequest generates a "aws/request.Request" representing the
1703// client's request for the DeleteAutomaticTapeCreationPolicy operation. The "output" return
1704// value will be populated with the request's response once the request completes
1705// successfully.
1706//
1707// Use "Send" method on the returned Request to send the API call to the service.
1708// the "output" return value is not valid until after Send returns without error.
1709//
1710// See DeleteAutomaticTapeCreationPolicy for more information on using the DeleteAutomaticTapeCreationPolicy
1711// API call, and error handling.
1712//
1713// This method is useful when you want to inject custom logic or configuration
1714// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1715//
1716//
1717//    // Example sending a request using the DeleteAutomaticTapeCreationPolicyRequest method.
1718//    req, resp := client.DeleteAutomaticTapeCreationPolicyRequest(params)
1719//
1720//    err := req.Send()
1721//    if err == nil { // resp is now filled
1722//        fmt.Println(resp)
1723//    }
1724//
1725// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteAutomaticTapeCreationPolicy
1726func (c *StorageGateway) DeleteAutomaticTapeCreationPolicyRequest(input *DeleteAutomaticTapeCreationPolicyInput) (req *request.Request, output *DeleteAutomaticTapeCreationPolicyOutput) {
1727	op := &request.Operation{
1728		Name:       opDeleteAutomaticTapeCreationPolicy,
1729		HTTPMethod: "POST",
1730		HTTPPath:   "/",
1731	}
1732
1733	if input == nil {
1734		input = &DeleteAutomaticTapeCreationPolicyInput{}
1735	}
1736
1737	output = &DeleteAutomaticTapeCreationPolicyOutput{}
1738	req = c.newRequest(op, input, output)
1739	return
1740}
1741
1742// DeleteAutomaticTapeCreationPolicy API operation for AWS Storage Gateway.
1743//
1744// Deletes the automatic tape creation policy of a gateway. If you delete this
1745// policy, new virtual tapes must be created manually. Use the Amazon Resource
1746// Name (ARN) of the gateway in your request to remove the policy.
1747//
1748// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1749// with awserr.Error's Code and Message methods to get detailed information about
1750// the error.
1751//
1752// See the AWS API reference guide for AWS Storage Gateway's
1753// API operation DeleteAutomaticTapeCreationPolicy for usage and error information.
1754//
1755// Returned Error Types:
1756//   * InvalidGatewayRequestException
1757//   An exception occurred because an invalid gateway request was issued to the
1758//   service. For more information, see the error and message fields.
1759//
1760//   * InternalServerError
1761//   An internal server error has occurred during the request. For more information,
1762//   see the error and message fields.
1763//
1764// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteAutomaticTapeCreationPolicy
1765func (c *StorageGateway) DeleteAutomaticTapeCreationPolicy(input *DeleteAutomaticTapeCreationPolicyInput) (*DeleteAutomaticTapeCreationPolicyOutput, error) {
1766	req, out := c.DeleteAutomaticTapeCreationPolicyRequest(input)
1767	return out, req.Send()
1768}
1769
1770// DeleteAutomaticTapeCreationPolicyWithContext is the same as DeleteAutomaticTapeCreationPolicy with the addition of
1771// the ability to pass a context and additional request options.
1772//
1773// See DeleteAutomaticTapeCreationPolicy for details on how to use this API operation.
1774//
1775// The context must be non-nil and will be used for request cancellation. If
1776// the context is nil a panic will occur. In the future the SDK may create
1777// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1778// for more information on using Contexts.
1779func (c *StorageGateway) DeleteAutomaticTapeCreationPolicyWithContext(ctx aws.Context, input *DeleteAutomaticTapeCreationPolicyInput, opts ...request.Option) (*DeleteAutomaticTapeCreationPolicyOutput, error) {
1780	req, out := c.DeleteAutomaticTapeCreationPolicyRequest(input)
1781	req.SetContext(ctx)
1782	req.ApplyOptions(opts...)
1783	return out, req.Send()
1784}
1785
1786const opDeleteBandwidthRateLimit = "DeleteBandwidthRateLimit"
1787
1788// DeleteBandwidthRateLimitRequest generates a "aws/request.Request" representing the
1789// client's request for the DeleteBandwidthRateLimit operation. The "output" return
1790// value will be populated with the request's response once the request completes
1791// successfully.
1792//
1793// Use "Send" method on the returned Request to send the API call to the service.
1794// the "output" return value is not valid until after Send returns without error.
1795//
1796// See DeleteBandwidthRateLimit for more information on using the DeleteBandwidthRateLimit
1797// API call, and error handling.
1798//
1799// This method is useful when you want to inject custom logic or configuration
1800// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1801//
1802//
1803//    // Example sending a request using the DeleteBandwidthRateLimitRequest method.
1804//    req, resp := client.DeleteBandwidthRateLimitRequest(params)
1805//
1806//    err := req.Send()
1807//    if err == nil { // resp is now filled
1808//        fmt.Println(resp)
1809//    }
1810//
1811// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteBandwidthRateLimit
1812func (c *StorageGateway) DeleteBandwidthRateLimitRequest(input *DeleteBandwidthRateLimitInput) (req *request.Request, output *DeleteBandwidthRateLimitOutput) {
1813	op := &request.Operation{
1814		Name:       opDeleteBandwidthRateLimit,
1815		HTTPMethod: "POST",
1816		HTTPPath:   "/",
1817	}
1818
1819	if input == nil {
1820		input = &DeleteBandwidthRateLimitInput{}
1821	}
1822
1823	output = &DeleteBandwidthRateLimitOutput{}
1824	req = c.newRequest(op, input, output)
1825	return
1826}
1827
1828// DeleteBandwidthRateLimit API operation for AWS Storage Gateway.
1829//
1830// Deletes the bandwidth rate limits of a gateway. You can delete either the
1831// upload and download bandwidth rate limit, or you can delete both. If you
1832// delete only one of the limits, the other limit remains unchanged. To specify
1833// which gateway to work with, use the Amazon Resource Name (ARN) of the gateway
1834// in your request. This operation is supported for the stored volume, cached
1835// volume and tape gateway types.
1836//
1837// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1838// with awserr.Error's Code and Message methods to get detailed information about
1839// the error.
1840//
1841// See the AWS API reference guide for AWS Storage Gateway's
1842// API operation DeleteBandwidthRateLimit for usage and error information.
1843//
1844// Returned Error Types:
1845//   * InvalidGatewayRequestException
1846//   An exception occurred because an invalid gateway request was issued to the
1847//   service. For more information, see the error and message fields.
1848//
1849//   * InternalServerError
1850//   An internal server error has occurred during the request. For more information,
1851//   see the error and message fields.
1852//
1853// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteBandwidthRateLimit
1854func (c *StorageGateway) DeleteBandwidthRateLimit(input *DeleteBandwidthRateLimitInput) (*DeleteBandwidthRateLimitOutput, error) {
1855	req, out := c.DeleteBandwidthRateLimitRequest(input)
1856	return out, req.Send()
1857}
1858
1859// DeleteBandwidthRateLimitWithContext is the same as DeleteBandwidthRateLimit with the addition of
1860// the ability to pass a context and additional request options.
1861//
1862// See DeleteBandwidthRateLimit for details on how to use this API operation.
1863//
1864// The context must be non-nil and will be used for request cancellation. If
1865// the context is nil a panic will occur. In the future the SDK may create
1866// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1867// for more information on using Contexts.
1868func (c *StorageGateway) DeleteBandwidthRateLimitWithContext(ctx aws.Context, input *DeleteBandwidthRateLimitInput, opts ...request.Option) (*DeleteBandwidthRateLimitOutput, error) {
1869	req, out := c.DeleteBandwidthRateLimitRequest(input)
1870	req.SetContext(ctx)
1871	req.ApplyOptions(opts...)
1872	return out, req.Send()
1873}
1874
1875const opDeleteChapCredentials = "DeleteChapCredentials"
1876
1877// DeleteChapCredentialsRequest generates a "aws/request.Request" representing the
1878// client's request for the DeleteChapCredentials operation. The "output" return
1879// value will be populated with the request's response once the request completes
1880// successfully.
1881//
1882// Use "Send" method on the returned Request to send the API call to the service.
1883// the "output" return value is not valid until after Send returns without error.
1884//
1885// See DeleteChapCredentials for more information on using the DeleteChapCredentials
1886// API call, and error handling.
1887//
1888// This method is useful when you want to inject custom logic or configuration
1889// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1890//
1891//
1892//    // Example sending a request using the DeleteChapCredentialsRequest method.
1893//    req, resp := client.DeleteChapCredentialsRequest(params)
1894//
1895//    err := req.Send()
1896//    if err == nil { // resp is now filled
1897//        fmt.Println(resp)
1898//    }
1899//
1900// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteChapCredentials
1901func (c *StorageGateway) DeleteChapCredentialsRequest(input *DeleteChapCredentialsInput) (req *request.Request, output *DeleteChapCredentialsOutput) {
1902	op := &request.Operation{
1903		Name:       opDeleteChapCredentials,
1904		HTTPMethod: "POST",
1905		HTTPPath:   "/",
1906	}
1907
1908	if input == nil {
1909		input = &DeleteChapCredentialsInput{}
1910	}
1911
1912	output = &DeleteChapCredentialsOutput{}
1913	req = c.newRequest(op, input, output)
1914	return
1915}
1916
1917// DeleteChapCredentials API operation for AWS Storage Gateway.
1918//
1919// Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for
1920// a specified iSCSI target and initiator pair. This operation is supported
1921// in volume and tape gateway types.
1922//
1923// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1924// with awserr.Error's Code and Message methods to get detailed information about
1925// the error.
1926//
1927// See the AWS API reference guide for AWS Storage Gateway's
1928// API operation DeleteChapCredentials for usage and error information.
1929//
1930// Returned Error Types:
1931//   * InvalidGatewayRequestException
1932//   An exception occurred because an invalid gateway request was issued to the
1933//   service. For more information, see the error and message fields.
1934//
1935//   * InternalServerError
1936//   An internal server error has occurred during the request. For more information,
1937//   see the error and message fields.
1938//
1939// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteChapCredentials
1940func (c *StorageGateway) DeleteChapCredentials(input *DeleteChapCredentialsInput) (*DeleteChapCredentialsOutput, error) {
1941	req, out := c.DeleteChapCredentialsRequest(input)
1942	return out, req.Send()
1943}
1944
1945// DeleteChapCredentialsWithContext is the same as DeleteChapCredentials with the addition of
1946// the ability to pass a context and additional request options.
1947//
1948// See DeleteChapCredentials for details on how to use this API operation.
1949//
1950// The context must be non-nil and will be used for request cancellation. If
1951// the context is nil a panic will occur. In the future the SDK may create
1952// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1953// for more information on using Contexts.
1954func (c *StorageGateway) DeleteChapCredentialsWithContext(ctx aws.Context, input *DeleteChapCredentialsInput, opts ...request.Option) (*DeleteChapCredentialsOutput, error) {
1955	req, out := c.DeleteChapCredentialsRequest(input)
1956	req.SetContext(ctx)
1957	req.ApplyOptions(opts...)
1958	return out, req.Send()
1959}
1960
1961const opDeleteFileShare = "DeleteFileShare"
1962
1963// DeleteFileShareRequest generates a "aws/request.Request" representing the
1964// client's request for the DeleteFileShare operation. The "output" return
1965// value will be populated with the request's response once the request completes
1966// successfully.
1967//
1968// Use "Send" method on the returned Request to send the API call to the service.
1969// the "output" return value is not valid until after Send returns without error.
1970//
1971// See DeleteFileShare for more information on using the DeleteFileShare
1972// API call, and error handling.
1973//
1974// This method is useful when you want to inject custom logic or configuration
1975// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1976//
1977//
1978//    // Example sending a request using the DeleteFileShareRequest method.
1979//    req, resp := client.DeleteFileShareRequest(params)
1980//
1981//    err := req.Send()
1982//    if err == nil { // resp is now filled
1983//        fmt.Println(resp)
1984//    }
1985//
1986// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteFileShare
1987func (c *StorageGateway) DeleteFileShareRequest(input *DeleteFileShareInput) (req *request.Request, output *DeleteFileShareOutput) {
1988	op := &request.Operation{
1989		Name:       opDeleteFileShare,
1990		HTTPMethod: "POST",
1991		HTTPPath:   "/",
1992	}
1993
1994	if input == nil {
1995		input = &DeleteFileShareInput{}
1996	}
1997
1998	output = &DeleteFileShareOutput{}
1999	req = c.newRequest(op, input, output)
2000	return
2001}
2002
2003// DeleteFileShare API operation for AWS Storage Gateway.
2004//
2005// Deletes a file share from a file gateway. This operation is only supported
2006// for file gateways.
2007//
2008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2009// with awserr.Error's Code and Message methods to get detailed information about
2010// the error.
2011//
2012// See the AWS API reference guide for AWS Storage Gateway's
2013// API operation DeleteFileShare for usage and error information.
2014//
2015// Returned Error Types:
2016//   * InvalidGatewayRequestException
2017//   An exception occurred because an invalid gateway request was issued to the
2018//   service. For more information, see the error and message fields.
2019//
2020//   * InternalServerError
2021//   An internal server error has occurred during the request. For more information,
2022//   see the error and message fields.
2023//
2024// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteFileShare
2025func (c *StorageGateway) DeleteFileShare(input *DeleteFileShareInput) (*DeleteFileShareOutput, error) {
2026	req, out := c.DeleteFileShareRequest(input)
2027	return out, req.Send()
2028}
2029
2030// DeleteFileShareWithContext is the same as DeleteFileShare with the addition of
2031// the ability to pass a context and additional request options.
2032//
2033// See DeleteFileShare for details on how to use this API operation.
2034//
2035// The context must be non-nil and will be used for request cancellation. If
2036// the context is nil a panic will occur. In the future the SDK may create
2037// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2038// for more information on using Contexts.
2039func (c *StorageGateway) DeleteFileShareWithContext(ctx aws.Context, input *DeleteFileShareInput, opts ...request.Option) (*DeleteFileShareOutput, error) {
2040	req, out := c.DeleteFileShareRequest(input)
2041	req.SetContext(ctx)
2042	req.ApplyOptions(opts...)
2043	return out, req.Send()
2044}
2045
2046const opDeleteGateway = "DeleteGateway"
2047
2048// DeleteGatewayRequest generates a "aws/request.Request" representing the
2049// client's request for the DeleteGateway operation. The "output" return
2050// value will be populated with the request's response once the request completes
2051// successfully.
2052//
2053// Use "Send" method on the returned Request to send the API call to the service.
2054// the "output" return value is not valid until after Send returns without error.
2055//
2056// See DeleteGateway for more information on using the DeleteGateway
2057// API call, and error handling.
2058//
2059// This method is useful when you want to inject custom logic or configuration
2060// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2061//
2062//
2063//    // Example sending a request using the DeleteGatewayRequest method.
2064//    req, resp := client.DeleteGatewayRequest(params)
2065//
2066//    err := req.Send()
2067//    if err == nil { // resp is now filled
2068//        fmt.Println(resp)
2069//    }
2070//
2071// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteGateway
2072func (c *StorageGateway) DeleteGatewayRequest(input *DeleteGatewayInput) (req *request.Request, output *DeleteGatewayOutput) {
2073	op := &request.Operation{
2074		Name:       opDeleteGateway,
2075		HTTPMethod: "POST",
2076		HTTPPath:   "/",
2077	}
2078
2079	if input == nil {
2080		input = &DeleteGatewayInput{}
2081	}
2082
2083	output = &DeleteGatewayOutput{}
2084	req = c.newRequest(op, input, output)
2085	return
2086}
2087
2088// DeleteGateway API operation for AWS Storage Gateway.
2089//
2090// Deletes a gateway. To specify which gateway to delete, use the Amazon Resource
2091// Name (ARN) of the gateway in your request. The operation deletes the gateway;
2092// however, it does not delete the gateway virtual machine (VM) from your host
2093// computer.
2094//
2095// After you delete a gateway, you cannot reactivate it. Completed snapshots
2096// of the gateway volumes are not deleted upon deleting the gateway, however,
2097// pending snapshots will not complete. After you delete a gateway, your next
2098// step is to remove it from your environment.
2099//
2100// You no longer pay software charges after the gateway is deleted; however,
2101// your existing Amazon EBS snapshots persist and you will continue to be billed
2102// for these snapshots. You can choose to remove all remaining Amazon EBS snapshots
2103// by canceling your Amazon EC2 subscription. If you prefer not to cancel your
2104// Amazon EC2 subscription, you can delete your snapshots using the Amazon EC2
2105// console. For more information, see the AWS Storage Gateway detail page (http://aws.amazon.com/storagegateway).
2106//
2107// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2108// with awserr.Error's Code and Message methods to get detailed information about
2109// the error.
2110//
2111// See the AWS API reference guide for AWS Storage Gateway's
2112// API operation DeleteGateway for usage and error information.
2113//
2114// Returned Error Types:
2115//   * InvalidGatewayRequestException
2116//   An exception occurred because an invalid gateway request was issued to the
2117//   service. For more information, see the error and message fields.
2118//
2119//   * InternalServerError
2120//   An internal server error has occurred during the request. For more information,
2121//   see the error and message fields.
2122//
2123// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteGateway
2124func (c *StorageGateway) DeleteGateway(input *DeleteGatewayInput) (*DeleteGatewayOutput, error) {
2125	req, out := c.DeleteGatewayRequest(input)
2126	return out, req.Send()
2127}
2128
2129// DeleteGatewayWithContext is the same as DeleteGateway with the addition of
2130// the ability to pass a context and additional request options.
2131//
2132// See DeleteGateway for details on how to use this API operation.
2133//
2134// The context must be non-nil and will be used for request cancellation. If
2135// the context is nil a panic will occur. In the future the SDK may create
2136// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2137// for more information on using Contexts.
2138func (c *StorageGateway) DeleteGatewayWithContext(ctx aws.Context, input *DeleteGatewayInput, opts ...request.Option) (*DeleteGatewayOutput, error) {
2139	req, out := c.DeleteGatewayRequest(input)
2140	req.SetContext(ctx)
2141	req.ApplyOptions(opts...)
2142	return out, req.Send()
2143}
2144
2145const opDeleteSnapshotSchedule = "DeleteSnapshotSchedule"
2146
2147// DeleteSnapshotScheduleRequest generates a "aws/request.Request" representing the
2148// client's request for the DeleteSnapshotSchedule operation. The "output" return
2149// value will be populated with the request's response once the request completes
2150// successfully.
2151//
2152// Use "Send" method on the returned Request to send the API call to the service.
2153// the "output" return value is not valid until after Send returns without error.
2154//
2155// See DeleteSnapshotSchedule for more information on using the DeleteSnapshotSchedule
2156// API call, and error handling.
2157//
2158// This method is useful when you want to inject custom logic or configuration
2159// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2160//
2161//
2162//    // Example sending a request using the DeleteSnapshotScheduleRequest method.
2163//    req, resp := client.DeleteSnapshotScheduleRequest(params)
2164//
2165//    err := req.Send()
2166//    if err == nil { // resp is now filled
2167//        fmt.Println(resp)
2168//    }
2169//
2170// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteSnapshotSchedule
2171func (c *StorageGateway) DeleteSnapshotScheduleRequest(input *DeleteSnapshotScheduleInput) (req *request.Request, output *DeleteSnapshotScheduleOutput) {
2172	op := &request.Operation{
2173		Name:       opDeleteSnapshotSchedule,
2174		HTTPMethod: "POST",
2175		HTTPPath:   "/",
2176	}
2177
2178	if input == nil {
2179		input = &DeleteSnapshotScheduleInput{}
2180	}
2181
2182	output = &DeleteSnapshotScheduleOutput{}
2183	req = c.newRequest(op, input, output)
2184	return
2185}
2186
2187// DeleteSnapshotSchedule API operation for AWS Storage Gateway.
2188//
2189// Deletes a snapshot of a volume.
2190//
2191// You can take snapshots of your gateway volumes on a scheduled or ad hoc basis.
2192// This API action enables you to delete a snapshot schedule for a volume. For
2193// more information, see Backing up your volumes (https://docs.aws.amazon.com/storagegateway/latest/userguide/backing-up-volumes.html).
2194// In the DeleteSnapshotSchedule request, you identify the volume by providing
2195// its Amazon Resource Name (ARN). This operation is only supported in stored
2196// and cached volume gateway types.
2197//
2198// To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
2199// go to DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html)
2200// in the Amazon Elastic Compute Cloud API Reference.
2201//
2202// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2203// with awserr.Error's Code and Message methods to get detailed information about
2204// the error.
2205//
2206// See the AWS API reference guide for AWS Storage Gateway's
2207// API operation DeleteSnapshotSchedule for usage and error information.
2208//
2209// Returned Error Types:
2210//   * InvalidGatewayRequestException
2211//   An exception occurred because an invalid gateway request was issued to the
2212//   service. For more information, see the error and message fields.
2213//
2214//   * InternalServerError
2215//   An internal server error has occurred during the request. For more information,
2216//   see the error and message fields.
2217//
2218// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteSnapshotSchedule
2219func (c *StorageGateway) DeleteSnapshotSchedule(input *DeleteSnapshotScheduleInput) (*DeleteSnapshotScheduleOutput, error) {
2220	req, out := c.DeleteSnapshotScheduleRequest(input)
2221	return out, req.Send()
2222}
2223
2224// DeleteSnapshotScheduleWithContext is the same as DeleteSnapshotSchedule with the addition of
2225// the ability to pass a context and additional request options.
2226//
2227// See DeleteSnapshotSchedule for details on how to use this API operation.
2228//
2229// The context must be non-nil and will be used for request cancellation. If
2230// the context is nil a panic will occur. In the future the SDK may create
2231// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2232// for more information on using Contexts.
2233func (c *StorageGateway) DeleteSnapshotScheduleWithContext(ctx aws.Context, input *DeleteSnapshotScheduleInput, opts ...request.Option) (*DeleteSnapshotScheduleOutput, error) {
2234	req, out := c.DeleteSnapshotScheduleRequest(input)
2235	req.SetContext(ctx)
2236	req.ApplyOptions(opts...)
2237	return out, req.Send()
2238}
2239
2240const opDeleteTape = "DeleteTape"
2241
2242// DeleteTapeRequest generates a "aws/request.Request" representing the
2243// client's request for the DeleteTape operation. The "output" return
2244// value will be populated with the request's response once the request completes
2245// successfully.
2246//
2247// Use "Send" method on the returned Request to send the API call to the service.
2248// the "output" return value is not valid until after Send returns without error.
2249//
2250// See DeleteTape for more information on using the DeleteTape
2251// API call, and error handling.
2252//
2253// This method is useful when you want to inject custom logic or configuration
2254// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2255//
2256//
2257//    // Example sending a request using the DeleteTapeRequest method.
2258//    req, resp := client.DeleteTapeRequest(params)
2259//
2260//    err := req.Send()
2261//    if err == nil { // resp is now filled
2262//        fmt.Println(resp)
2263//    }
2264//
2265// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTape
2266func (c *StorageGateway) DeleteTapeRequest(input *DeleteTapeInput) (req *request.Request, output *DeleteTapeOutput) {
2267	op := &request.Operation{
2268		Name:       opDeleteTape,
2269		HTTPMethod: "POST",
2270		HTTPPath:   "/",
2271	}
2272
2273	if input == nil {
2274		input = &DeleteTapeInput{}
2275	}
2276
2277	output = &DeleteTapeOutput{}
2278	req = c.newRequest(op, input, output)
2279	return
2280}
2281
2282// DeleteTape API operation for AWS Storage Gateway.
2283//
2284// Deletes the specified virtual tape. This operation is only supported in the
2285// tape gateway type.
2286//
2287// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2288// with awserr.Error's Code and Message methods to get detailed information about
2289// the error.
2290//
2291// See the AWS API reference guide for AWS Storage Gateway's
2292// API operation DeleteTape for usage and error information.
2293//
2294// Returned Error Types:
2295//   * InvalidGatewayRequestException
2296//   An exception occurred because an invalid gateway request was issued to the
2297//   service. For more information, see the error and message fields.
2298//
2299//   * InternalServerError
2300//   An internal server error has occurred during the request. For more information,
2301//   see the error and message fields.
2302//
2303// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTape
2304func (c *StorageGateway) DeleteTape(input *DeleteTapeInput) (*DeleteTapeOutput, error) {
2305	req, out := c.DeleteTapeRequest(input)
2306	return out, req.Send()
2307}
2308
2309// DeleteTapeWithContext is the same as DeleteTape with the addition of
2310// the ability to pass a context and additional request options.
2311//
2312// See DeleteTape for details on how to use this API operation.
2313//
2314// The context must be non-nil and will be used for request cancellation. If
2315// the context is nil a panic will occur. In the future the SDK may create
2316// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2317// for more information on using Contexts.
2318func (c *StorageGateway) DeleteTapeWithContext(ctx aws.Context, input *DeleteTapeInput, opts ...request.Option) (*DeleteTapeOutput, error) {
2319	req, out := c.DeleteTapeRequest(input)
2320	req.SetContext(ctx)
2321	req.ApplyOptions(opts...)
2322	return out, req.Send()
2323}
2324
2325const opDeleteTapeArchive = "DeleteTapeArchive"
2326
2327// DeleteTapeArchiveRequest generates a "aws/request.Request" representing the
2328// client's request for the DeleteTapeArchive operation. The "output" return
2329// value will be populated with the request's response once the request completes
2330// successfully.
2331//
2332// Use "Send" method on the returned Request to send the API call to the service.
2333// the "output" return value is not valid until after Send returns without error.
2334//
2335// See DeleteTapeArchive for more information on using the DeleteTapeArchive
2336// API call, and error handling.
2337//
2338// This method is useful when you want to inject custom logic or configuration
2339// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2340//
2341//
2342//    // Example sending a request using the DeleteTapeArchiveRequest method.
2343//    req, resp := client.DeleteTapeArchiveRequest(params)
2344//
2345//    err := req.Send()
2346//    if err == nil { // resp is now filled
2347//        fmt.Println(resp)
2348//    }
2349//
2350// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapeArchive
2351func (c *StorageGateway) DeleteTapeArchiveRequest(input *DeleteTapeArchiveInput) (req *request.Request, output *DeleteTapeArchiveOutput) {
2352	op := &request.Operation{
2353		Name:       opDeleteTapeArchive,
2354		HTTPMethod: "POST",
2355		HTTPPath:   "/",
2356	}
2357
2358	if input == nil {
2359		input = &DeleteTapeArchiveInput{}
2360	}
2361
2362	output = &DeleteTapeArchiveOutput{}
2363	req = c.newRequest(op, input, output)
2364	return
2365}
2366
2367// DeleteTapeArchive API operation for AWS Storage Gateway.
2368//
2369// Deletes the specified virtual tape from the virtual tape shelf (VTS). This
2370// operation is only supported in the tape gateway type.
2371//
2372// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2373// with awserr.Error's Code and Message methods to get detailed information about
2374// the error.
2375//
2376// See the AWS API reference guide for AWS Storage Gateway's
2377// API operation DeleteTapeArchive for usage and error information.
2378//
2379// Returned Error Types:
2380//   * InvalidGatewayRequestException
2381//   An exception occurred because an invalid gateway request was issued to the
2382//   service. For more information, see the error and message fields.
2383//
2384//   * InternalServerError
2385//   An internal server error has occurred during the request. For more information,
2386//   see the error and message fields.
2387//
2388// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapeArchive
2389func (c *StorageGateway) DeleteTapeArchive(input *DeleteTapeArchiveInput) (*DeleteTapeArchiveOutput, error) {
2390	req, out := c.DeleteTapeArchiveRequest(input)
2391	return out, req.Send()
2392}
2393
2394// DeleteTapeArchiveWithContext is the same as DeleteTapeArchive with the addition of
2395// the ability to pass a context and additional request options.
2396//
2397// See DeleteTapeArchive for details on how to use this API operation.
2398//
2399// The context must be non-nil and will be used for request cancellation. If
2400// the context is nil a panic will occur. In the future the SDK may create
2401// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2402// for more information on using Contexts.
2403func (c *StorageGateway) DeleteTapeArchiveWithContext(ctx aws.Context, input *DeleteTapeArchiveInput, opts ...request.Option) (*DeleteTapeArchiveOutput, error) {
2404	req, out := c.DeleteTapeArchiveRequest(input)
2405	req.SetContext(ctx)
2406	req.ApplyOptions(opts...)
2407	return out, req.Send()
2408}
2409
2410const opDeleteTapePool = "DeleteTapePool"
2411
2412// DeleteTapePoolRequest generates a "aws/request.Request" representing the
2413// client's request for the DeleteTapePool operation. The "output" return
2414// value will be populated with the request's response once the request completes
2415// successfully.
2416//
2417// Use "Send" method on the returned Request to send the API call to the service.
2418// the "output" return value is not valid until after Send returns without error.
2419//
2420// See DeleteTapePool for more information on using the DeleteTapePool
2421// API call, and error handling.
2422//
2423// This method is useful when you want to inject custom logic or configuration
2424// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2425//
2426//
2427//    // Example sending a request using the DeleteTapePoolRequest method.
2428//    req, resp := client.DeleteTapePoolRequest(params)
2429//
2430//    err := req.Send()
2431//    if err == nil { // resp is now filled
2432//        fmt.Println(resp)
2433//    }
2434//
2435// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapePool
2436func (c *StorageGateway) DeleteTapePoolRequest(input *DeleteTapePoolInput) (req *request.Request, output *DeleteTapePoolOutput) {
2437	op := &request.Operation{
2438		Name:       opDeleteTapePool,
2439		HTTPMethod: "POST",
2440		HTTPPath:   "/",
2441	}
2442
2443	if input == nil {
2444		input = &DeleteTapePoolInput{}
2445	}
2446
2447	output = &DeleteTapePoolOutput{}
2448	req = c.newRequest(op, input, output)
2449	return
2450}
2451
2452// DeleteTapePool API operation for AWS Storage Gateway.
2453//
2454// Delete a custom tape pool. A custom tape pool can only be deleted if there
2455// are no tapes in the pool and if there are no automatic tape creation policies
2456// that reference the custom tape pool.
2457//
2458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2459// with awserr.Error's Code and Message methods to get detailed information about
2460// the error.
2461//
2462// See the AWS API reference guide for AWS Storage Gateway's
2463// API operation DeleteTapePool for usage and error information.
2464//
2465// Returned Error Types:
2466//   * InvalidGatewayRequestException
2467//   An exception occurred because an invalid gateway request was issued to the
2468//   service. For more information, see the error and message fields.
2469//
2470//   * InternalServerError
2471//   An internal server error has occurred during the request. For more information,
2472//   see the error and message fields.
2473//
2474// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapePool
2475func (c *StorageGateway) DeleteTapePool(input *DeleteTapePoolInput) (*DeleteTapePoolOutput, error) {
2476	req, out := c.DeleteTapePoolRequest(input)
2477	return out, req.Send()
2478}
2479
2480// DeleteTapePoolWithContext is the same as DeleteTapePool with the addition of
2481// the ability to pass a context and additional request options.
2482//
2483// See DeleteTapePool for details on how to use this API operation.
2484//
2485// The context must be non-nil and will be used for request cancellation. If
2486// the context is nil a panic will occur. In the future the SDK may create
2487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2488// for more information on using Contexts.
2489func (c *StorageGateway) DeleteTapePoolWithContext(ctx aws.Context, input *DeleteTapePoolInput, opts ...request.Option) (*DeleteTapePoolOutput, error) {
2490	req, out := c.DeleteTapePoolRequest(input)
2491	req.SetContext(ctx)
2492	req.ApplyOptions(opts...)
2493	return out, req.Send()
2494}
2495
2496const opDeleteVolume = "DeleteVolume"
2497
2498// DeleteVolumeRequest generates a "aws/request.Request" representing the
2499// client's request for the DeleteVolume operation. The "output" return
2500// value will be populated with the request's response once the request completes
2501// successfully.
2502//
2503// Use "Send" method on the returned Request to send the API call to the service.
2504// the "output" return value is not valid until after Send returns without error.
2505//
2506// See DeleteVolume for more information on using the DeleteVolume
2507// API call, and error handling.
2508//
2509// This method is useful when you want to inject custom logic or configuration
2510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2511//
2512//
2513//    // Example sending a request using the DeleteVolumeRequest method.
2514//    req, resp := client.DeleteVolumeRequest(params)
2515//
2516//    err := req.Send()
2517//    if err == nil { // resp is now filled
2518//        fmt.Println(resp)
2519//    }
2520//
2521// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteVolume
2522func (c *StorageGateway) DeleteVolumeRequest(input *DeleteVolumeInput) (req *request.Request, output *DeleteVolumeOutput) {
2523	op := &request.Operation{
2524		Name:       opDeleteVolume,
2525		HTTPMethod: "POST",
2526		HTTPPath:   "/",
2527	}
2528
2529	if input == nil {
2530		input = &DeleteVolumeInput{}
2531	}
2532
2533	output = &DeleteVolumeOutput{}
2534	req = c.newRequest(op, input, output)
2535	return
2536}
2537
2538// DeleteVolume API operation for AWS Storage Gateway.
2539//
2540// Deletes the specified storage volume that you previously created using the
2541// CreateCachediSCSIVolume or CreateStorediSCSIVolume API. This operation is
2542// only supported in the cached volume and stored volume types. For stored volume
2543// gateways, the local disk that was configured as the storage volume is not
2544// deleted. You can reuse the local disk to create another storage volume.
2545//
2546// Before you delete a volume, make sure there are no iSCSI connections to the
2547// volume you are deleting. You should also make sure there is no snapshot in
2548// progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to
2549// query snapshots on the volume you are deleting and check the snapshot status.
2550// For more information, go to DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
2551// in the Amazon Elastic Compute Cloud API Reference.
2552//
2553// In the request, you must provide the Amazon Resource Name (ARN) of the storage
2554// volume you want to delete.
2555//
2556// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2557// with awserr.Error's Code and Message methods to get detailed information about
2558// the error.
2559//
2560// See the AWS API reference guide for AWS Storage Gateway's
2561// API operation DeleteVolume for usage and error information.
2562//
2563// Returned Error Types:
2564//   * InvalidGatewayRequestException
2565//   An exception occurred because an invalid gateway request was issued to the
2566//   service. For more information, see the error and message fields.
2567//
2568//   * InternalServerError
2569//   An internal server error has occurred during the request. For more information,
2570//   see the error and message fields.
2571//
2572// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteVolume
2573func (c *StorageGateway) DeleteVolume(input *DeleteVolumeInput) (*DeleteVolumeOutput, error) {
2574	req, out := c.DeleteVolumeRequest(input)
2575	return out, req.Send()
2576}
2577
2578// DeleteVolumeWithContext is the same as DeleteVolume with the addition of
2579// the ability to pass a context and additional request options.
2580//
2581// See DeleteVolume for details on how to use this API operation.
2582//
2583// The context must be non-nil and will be used for request cancellation. If
2584// the context is nil a panic will occur. In the future the SDK may create
2585// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2586// for more information on using Contexts.
2587func (c *StorageGateway) DeleteVolumeWithContext(ctx aws.Context, input *DeleteVolumeInput, opts ...request.Option) (*DeleteVolumeOutput, error) {
2588	req, out := c.DeleteVolumeRequest(input)
2589	req.SetContext(ctx)
2590	req.ApplyOptions(opts...)
2591	return out, req.Send()
2592}
2593
2594const opDescribeAvailabilityMonitorTest = "DescribeAvailabilityMonitorTest"
2595
2596// DescribeAvailabilityMonitorTestRequest generates a "aws/request.Request" representing the
2597// client's request for the DescribeAvailabilityMonitorTest operation. The "output" return
2598// value will be populated with the request's response once the request completes
2599// successfully.
2600//
2601// Use "Send" method on the returned Request to send the API call to the service.
2602// the "output" return value is not valid until after Send returns without error.
2603//
2604// See DescribeAvailabilityMonitorTest for more information on using the DescribeAvailabilityMonitorTest
2605// API call, and error handling.
2606//
2607// This method is useful when you want to inject custom logic or configuration
2608// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2609//
2610//
2611//    // Example sending a request using the DescribeAvailabilityMonitorTestRequest method.
2612//    req, resp := client.DescribeAvailabilityMonitorTestRequest(params)
2613//
2614//    err := req.Send()
2615//    if err == nil { // resp is now filled
2616//        fmt.Println(resp)
2617//    }
2618//
2619// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeAvailabilityMonitorTest
2620func (c *StorageGateway) DescribeAvailabilityMonitorTestRequest(input *DescribeAvailabilityMonitorTestInput) (req *request.Request, output *DescribeAvailabilityMonitorTestOutput) {
2621	op := &request.Operation{
2622		Name:       opDescribeAvailabilityMonitorTest,
2623		HTTPMethod: "POST",
2624		HTTPPath:   "/",
2625	}
2626
2627	if input == nil {
2628		input = &DescribeAvailabilityMonitorTestInput{}
2629	}
2630
2631	output = &DescribeAvailabilityMonitorTestOutput{}
2632	req = c.newRequest(op, input, output)
2633	return
2634}
2635
2636// DescribeAvailabilityMonitorTest API operation for AWS Storage Gateway.
2637//
2638// Returns information about the most recent High Availability monitoring test
2639// that was performed on the host in a cluster. If a test isn't performed, the
2640// status and start time in the response would be null.
2641//
2642// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2643// with awserr.Error's Code and Message methods to get detailed information about
2644// the error.
2645//
2646// See the AWS API reference guide for AWS Storage Gateway's
2647// API operation DescribeAvailabilityMonitorTest for usage and error information.
2648//
2649// Returned Error Types:
2650//   * InvalidGatewayRequestException
2651//   An exception occurred because an invalid gateway request was issued to the
2652//   service. For more information, see the error and message fields.
2653//
2654//   * InternalServerError
2655//   An internal server error has occurred during the request. For more information,
2656//   see the error and message fields.
2657//
2658// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeAvailabilityMonitorTest
2659func (c *StorageGateway) DescribeAvailabilityMonitorTest(input *DescribeAvailabilityMonitorTestInput) (*DescribeAvailabilityMonitorTestOutput, error) {
2660	req, out := c.DescribeAvailabilityMonitorTestRequest(input)
2661	return out, req.Send()
2662}
2663
2664// DescribeAvailabilityMonitorTestWithContext is the same as DescribeAvailabilityMonitorTest with the addition of
2665// the ability to pass a context and additional request options.
2666//
2667// See DescribeAvailabilityMonitorTest for details on how to use this API operation.
2668//
2669// The context must be non-nil and will be used for request cancellation. If
2670// the context is nil a panic will occur. In the future the SDK may create
2671// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2672// for more information on using Contexts.
2673func (c *StorageGateway) DescribeAvailabilityMonitorTestWithContext(ctx aws.Context, input *DescribeAvailabilityMonitorTestInput, opts ...request.Option) (*DescribeAvailabilityMonitorTestOutput, error) {
2674	req, out := c.DescribeAvailabilityMonitorTestRequest(input)
2675	req.SetContext(ctx)
2676	req.ApplyOptions(opts...)
2677	return out, req.Send()
2678}
2679
2680const opDescribeBandwidthRateLimit = "DescribeBandwidthRateLimit"
2681
2682// DescribeBandwidthRateLimitRequest generates a "aws/request.Request" representing the
2683// client's request for the DescribeBandwidthRateLimit operation. The "output" return
2684// value will be populated with the request's response once the request completes
2685// successfully.
2686//
2687// Use "Send" method on the returned Request to send the API call to the service.
2688// the "output" return value is not valid until after Send returns without error.
2689//
2690// See DescribeBandwidthRateLimit for more information on using the DescribeBandwidthRateLimit
2691// API call, and error handling.
2692//
2693// This method is useful when you want to inject custom logic or configuration
2694// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2695//
2696//
2697//    // Example sending a request using the DescribeBandwidthRateLimitRequest method.
2698//    req, resp := client.DescribeBandwidthRateLimitRequest(params)
2699//
2700//    err := req.Send()
2701//    if err == nil { // resp is now filled
2702//        fmt.Println(resp)
2703//    }
2704//
2705// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimit
2706func (c *StorageGateway) DescribeBandwidthRateLimitRequest(input *DescribeBandwidthRateLimitInput) (req *request.Request, output *DescribeBandwidthRateLimitOutput) {
2707	op := &request.Operation{
2708		Name:       opDescribeBandwidthRateLimit,
2709		HTTPMethod: "POST",
2710		HTTPPath:   "/",
2711	}
2712
2713	if input == nil {
2714		input = &DescribeBandwidthRateLimitInput{}
2715	}
2716
2717	output = &DescribeBandwidthRateLimitOutput{}
2718	req = c.newRequest(op, input, output)
2719	return
2720}
2721
2722// DescribeBandwidthRateLimit API operation for AWS Storage Gateway.
2723//
2724// Returns the bandwidth rate limits of a gateway. By default, these limits
2725// are not set, which means no bandwidth rate limiting is in effect. This operation
2726// is supported for the stored volume, cached volume, and tape gateway types.
2727//
2728// This operation only returns a value for a bandwidth rate limit only if the
2729// limit is set. If no limits are set for the gateway, then this operation returns
2730// only the gateway ARN in the response body. To specify which gateway to describe,
2731// use the Amazon Resource Name (ARN) of the gateway in your request.
2732//
2733// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2734// with awserr.Error's Code and Message methods to get detailed information about
2735// the error.
2736//
2737// See the AWS API reference guide for AWS Storage Gateway's
2738// API operation DescribeBandwidthRateLimit for usage and error information.
2739//
2740// Returned Error Types:
2741//   * InvalidGatewayRequestException
2742//   An exception occurred because an invalid gateway request was issued to the
2743//   service. For more information, see the error and message fields.
2744//
2745//   * InternalServerError
2746//   An internal server error has occurred during the request. For more information,
2747//   see the error and message fields.
2748//
2749// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimit
2750func (c *StorageGateway) DescribeBandwidthRateLimit(input *DescribeBandwidthRateLimitInput) (*DescribeBandwidthRateLimitOutput, error) {
2751	req, out := c.DescribeBandwidthRateLimitRequest(input)
2752	return out, req.Send()
2753}
2754
2755// DescribeBandwidthRateLimitWithContext is the same as DescribeBandwidthRateLimit with the addition of
2756// the ability to pass a context and additional request options.
2757//
2758// See DescribeBandwidthRateLimit for details on how to use this API operation.
2759//
2760// The context must be non-nil and will be used for request cancellation. If
2761// the context is nil a panic will occur. In the future the SDK may create
2762// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2763// for more information on using Contexts.
2764func (c *StorageGateway) DescribeBandwidthRateLimitWithContext(ctx aws.Context, input *DescribeBandwidthRateLimitInput, opts ...request.Option) (*DescribeBandwidthRateLimitOutput, error) {
2765	req, out := c.DescribeBandwidthRateLimitRequest(input)
2766	req.SetContext(ctx)
2767	req.ApplyOptions(opts...)
2768	return out, req.Send()
2769}
2770
2771const opDescribeBandwidthRateLimitSchedule = "DescribeBandwidthRateLimitSchedule"
2772
2773// DescribeBandwidthRateLimitScheduleRequest generates a "aws/request.Request" representing the
2774// client's request for the DescribeBandwidthRateLimitSchedule operation. The "output" return
2775// value will be populated with the request's response once the request completes
2776// successfully.
2777//
2778// Use "Send" method on the returned Request to send the API call to the service.
2779// the "output" return value is not valid until after Send returns without error.
2780//
2781// See DescribeBandwidthRateLimitSchedule for more information on using the DescribeBandwidthRateLimitSchedule
2782// API call, and error handling.
2783//
2784// This method is useful when you want to inject custom logic or configuration
2785// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2786//
2787//
2788//    // Example sending a request using the DescribeBandwidthRateLimitScheduleRequest method.
2789//    req, resp := client.DescribeBandwidthRateLimitScheduleRequest(params)
2790//
2791//    err := req.Send()
2792//    if err == nil { // resp is now filled
2793//        fmt.Println(resp)
2794//    }
2795//
2796// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimitSchedule
2797func (c *StorageGateway) DescribeBandwidthRateLimitScheduleRequest(input *DescribeBandwidthRateLimitScheduleInput) (req *request.Request, output *DescribeBandwidthRateLimitScheduleOutput) {
2798	op := &request.Operation{
2799		Name:       opDescribeBandwidthRateLimitSchedule,
2800		HTTPMethod: "POST",
2801		HTTPPath:   "/",
2802	}
2803
2804	if input == nil {
2805		input = &DescribeBandwidthRateLimitScheduleInput{}
2806	}
2807
2808	output = &DescribeBandwidthRateLimitScheduleOutput{}
2809	req = c.newRequest(op, input, output)
2810	return
2811}
2812
2813// DescribeBandwidthRateLimitSchedule API operation for AWS Storage Gateway.
2814//
2815// Returns information about the bandwidth rate limit schedule of a gateway.
2816// By default, gateways do not have bandwidth rate limit schedules, which means
2817// no bandwidth rate limiting is in effect. This operation is supported only
2818// in the volume and tape gateway types.
2819//
2820// This operation returns information about a gateway's bandwidth rate limit
2821// schedule. A bandwidth rate limit schedule consists of one or more bandwidth
2822// rate limit intervals. A bandwidth rate limit interval defines a period of
2823// time on one or more days of the week, during which bandwidth rate limits
2824// are specified for uploading, downloading, or both.
2825//
2826// A bandwidth rate limit interval consists of one or more days of the week,
2827// a start hour and minute, an ending hour and minute, and bandwidth rate limits
2828// for uploading and downloading
2829//
2830// If no bandwidth rate limit schedule intervals are set for the gateway, this
2831// operation returns an empty response. To specify which gateway to describe,
2832// use the Amazon Resource Name (ARN) of the gateway in your request.
2833//
2834// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2835// with awserr.Error's Code and Message methods to get detailed information about
2836// the error.
2837//
2838// See the AWS API reference guide for AWS Storage Gateway's
2839// API operation DescribeBandwidthRateLimitSchedule for usage and error information.
2840//
2841// Returned Error Types:
2842//   * InvalidGatewayRequestException
2843//   An exception occurred because an invalid gateway request was issued to the
2844//   service. For more information, see the error and message fields.
2845//
2846//   * InternalServerError
2847//   An internal server error has occurred during the request. For more information,
2848//   see the error and message fields.
2849//
2850// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimitSchedule
2851func (c *StorageGateway) DescribeBandwidthRateLimitSchedule(input *DescribeBandwidthRateLimitScheduleInput) (*DescribeBandwidthRateLimitScheduleOutput, error) {
2852	req, out := c.DescribeBandwidthRateLimitScheduleRequest(input)
2853	return out, req.Send()
2854}
2855
2856// DescribeBandwidthRateLimitScheduleWithContext is the same as DescribeBandwidthRateLimitSchedule with the addition of
2857// the ability to pass a context and additional request options.
2858//
2859// See DescribeBandwidthRateLimitSchedule for details on how to use this API operation.
2860//
2861// The context must be non-nil and will be used for request cancellation. If
2862// the context is nil a panic will occur. In the future the SDK may create
2863// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2864// for more information on using Contexts.
2865func (c *StorageGateway) DescribeBandwidthRateLimitScheduleWithContext(ctx aws.Context, input *DescribeBandwidthRateLimitScheduleInput, opts ...request.Option) (*DescribeBandwidthRateLimitScheduleOutput, error) {
2866	req, out := c.DescribeBandwidthRateLimitScheduleRequest(input)
2867	req.SetContext(ctx)
2868	req.ApplyOptions(opts...)
2869	return out, req.Send()
2870}
2871
2872const opDescribeCache = "DescribeCache"
2873
2874// DescribeCacheRequest generates a "aws/request.Request" representing the
2875// client's request for the DescribeCache operation. The "output" return
2876// value will be populated with the request's response once the request completes
2877// successfully.
2878//
2879// Use "Send" method on the returned Request to send the API call to the service.
2880// the "output" return value is not valid until after Send returns without error.
2881//
2882// See DescribeCache for more information on using the DescribeCache
2883// API call, and error handling.
2884//
2885// This method is useful when you want to inject custom logic or configuration
2886// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2887//
2888//
2889//    // Example sending a request using the DescribeCacheRequest method.
2890//    req, resp := client.DescribeCacheRequest(params)
2891//
2892//    err := req.Send()
2893//    if err == nil { // resp is now filled
2894//        fmt.Println(resp)
2895//    }
2896//
2897// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCache
2898func (c *StorageGateway) DescribeCacheRequest(input *DescribeCacheInput) (req *request.Request, output *DescribeCacheOutput) {
2899	op := &request.Operation{
2900		Name:       opDescribeCache,
2901		HTTPMethod: "POST",
2902		HTTPPath:   "/",
2903	}
2904
2905	if input == nil {
2906		input = &DescribeCacheInput{}
2907	}
2908
2909	output = &DescribeCacheOutput{}
2910	req = c.newRequest(op, input, output)
2911	return
2912}
2913
2914// DescribeCache API operation for AWS Storage Gateway.
2915//
2916// Returns information about the cache of a gateway. This operation is only
2917// supported in the cached volume, tape, and file gateway types.
2918//
2919// The response includes disk IDs that are configured as cache, and it includes
2920// the amount of cache allocated and used.
2921//
2922// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2923// with awserr.Error's Code and Message methods to get detailed information about
2924// the error.
2925//
2926// See the AWS API reference guide for AWS Storage Gateway's
2927// API operation DescribeCache for usage and error information.
2928//
2929// Returned Error Types:
2930//   * InvalidGatewayRequestException
2931//   An exception occurred because an invalid gateway request was issued to the
2932//   service. For more information, see the error and message fields.
2933//
2934//   * InternalServerError
2935//   An internal server error has occurred during the request. For more information,
2936//   see the error and message fields.
2937//
2938// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCache
2939func (c *StorageGateway) DescribeCache(input *DescribeCacheInput) (*DescribeCacheOutput, error) {
2940	req, out := c.DescribeCacheRequest(input)
2941	return out, req.Send()
2942}
2943
2944// DescribeCacheWithContext is the same as DescribeCache with the addition of
2945// the ability to pass a context and additional request options.
2946//
2947// See DescribeCache for details on how to use this API operation.
2948//
2949// The context must be non-nil and will be used for request cancellation. If
2950// the context is nil a panic will occur. In the future the SDK may create
2951// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2952// for more information on using Contexts.
2953func (c *StorageGateway) DescribeCacheWithContext(ctx aws.Context, input *DescribeCacheInput, opts ...request.Option) (*DescribeCacheOutput, error) {
2954	req, out := c.DescribeCacheRequest(input)
2955	req.SetContext(ctx)
2956	req.ApplyOptions(opts...)
2957	return out, req.Send()
2958}
2959
2960const opDescribeCachediSCSIVolumes = "DescribeCachediSCSIVolumes"
2961
2962// DescribeCachediSCSIVolumesRequest generates a "aws/request.Request" representing the
2963// client's request for the DescribeCachediSCSIVolumes operation. The "output" return
2964// value will be populated with the request's response once the request completes
2965// successfully.
2966//
2967// Use "Send" method on the returned Request to send the API call to the service.
2968// the "output" return value is not valid until after Send returns without error.
2969//
2970// See DescribeCachediSCSIVolumes for more information on using the DescribeCachediSCSIVolumes
2971// API call, and error handling.
2972//
2973// This method is useful when you want to inject custom logic or configuration
2974// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2975//
2976//
2977//    // Example sending a request using the DescribeCachediSCSIVolumesRequest method.
2978//    req, resp := client.DescribeCachediSCSIVolumesRequest(params)
2979//
2980//    err := req.Send()
2981//    if err == nil { // resp is now filled
2982//        fmt.Println(resp)
2983//    }
2984//
2985// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCachediSCSIVolumes
2986func (c *StorageGateway) DescribeCachediSCSIVolumesRequest(input *DescribeCachediSCSIVolumesInput) (req *request.Request, output *DescribeCachediSCSIVolumesOutput) {
2987	op := &request.Operation{
2988		Name:       opDescribeCachediSCSIVolumes,
2989		HTTPMethod: "POST",
2990		HTTPPath:   "/",
2991	}
2992
2993	if input == nil {
2994		input = &DescribeCachediSCSIVolumesInput{}
2995	}
2996
2997	output = &DescribeCachediSCSIVolumesOutput{}
2998	req = c.newRequest(op, input, output)
2999	return
3000}
3001
3002// DescribeCachediSCSIVolumes API operation for AWS Storage Gateway.
3003//
3004// Returns a description of the gateway volumes specified in the request. This
3005// operation is only supported in the cached volume gateway types.
3006//
3007// The list of gateway volumes in the request must be from one gateway. In the
3008// response, AWS Storage Gateway returns volume information sorted by volume
3009// Amazon Resource Name (ARN).
3010//
3011// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3012// with awserr.Error's Code and Message methods to get detailed information about
3013// the error.
3014//
3015// See the AWS API reference guide for AWS Storage Gateway's
3016// API operation DescribeCachediSCSIVolumes for usage and error information.
3017//
3018// Returned Error Types:
3019//   * InvalidGatewayRequestException
3020//   An exception occurred because an invalid gateway request was issued to the
3021//   service. For more information, see the error and message fields.
3022//
3023//   * InternalServerError
3024//   An internal server error has occurred during the request. For more information,
3025//   see the error and message fields.
3026//
3027// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCachediSCSIVolumes
3028func (c *StorageGateway) DescribeCachediSCSIVolumes(input *DescribeCachediSCSIVolumesInput) (*DescribeCachediSCSIVolumesOutput, error) {
3029	req, out := c.DescribeCachediSCSIVolumesRequest(input)
3030	return out, req.Send()
3031}
3032
3033// DescribeCachediSCSIVolumesWithContext is the same as DescribeCachediSCSIVolumes with the addition of
3034// the ability to pass a context and additional request options.
3035//
3036// See DescribeCachediSCSIVolumes for details on how to use this API operation.
3037//
3038// The context must be non-nil and will be used for request cancellation. If
3039// the context is nil a panic will occur. In the future the SDK may create
3040// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3041// for more information on using Contexts.
3042func (c *StorageGateway) DescribeCachediSCSIVolumesWithContext(ctx aws.Context, input *DescribeCachediSCSIVolumesInput, opts ...request.Option) (*DescribeCachediSCSIVolumesOutput, error) {
3043	req, out := c.DescribeCachediSCSIVolumesRequest(input)
3044	req.SetContext(ctx)
3045	req.ApplyOptions(opts...)
3046	return out, req.Send()
3047}
3048
3049const opDescribeChapCredentials = "DescribeChapCredentials"
3050
3051// DescribeChapCredentialsRequest generates a "aws/request.Request" representing the
3052// client's request for the DescribeChapCredentials operation. The "output" return
3053// value will be populated with the request's response once the request completes
3054// successfully.
3055//
3056// Use "Send" method on the returned Request to send the API call to the service.
3057// the "output" return value is not valid until after Send returns without error.
3058//
3059// See DescribeChapCredentials for more information on using the DescribeChapCredentials
3060// API call, and error handling.
3061//
3062// This method is useful when you want to inject custom logic or configuration
3063// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3064//
3065//
3066//    // Example sending a request using the DescribeChapCredentialsRequest method.
3067//    req, resp := client.DescribeChapCredentialsRequest(params)
3068//
3069//    err := req.Send()
3070//    if err == nil { // resp is now filled
3071//        fmt.Println(resp)
3072//    }
3073//
3074// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeChapCredentials
3075func (c *StorageGateway) DescribeChapCredentialsRequest(input *DescribeChapCredentialsInput) (req *request.Request, output *DescribeChapCredentialsOutput) {
3076	op := &request.Operation{
3077		Name:       opDescribeChapCredentials,
3078		HTTPMethod: "POST",
3079		HTTPPath:   "/",
3080	}
3081
3082	if input == nil {
3083		input = &DescribeChapCredentialsInput{}
3084	}
3085
3086	output = &DescribeChapCredentialsOutput{}
3087	req = c.newRequest(op, input, output)
3088	return
3089}
3090
3091// DescribeChapCredentials API operation for AWS Storage Gateway.
3092//
3093// Returns an array of Challenge-Handshake Authentication Protocol (CHAP) credentials
3094// information for a specified iSCSI target, one for each target-initiator pair.
3095// This operation is supported in the volume and tape gateway types.
3096//
3097// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3098// with awserr.Error's Code and Message methods to get detailed information about
3099// the error.
3100//
3101// See the AWS API reference guide for AWS Storage Gateway's
3102// API operation DescribeChapCredentials for usage and error information.
3103//
3104// Returned Error Types:
3105//   * InvalidGatewayRequestException
3106//   An exception occurred because an invalid gateway request was issued to the
3107//   service. For more information, see the error and message fields.
3108//
3109//   * InternalServerError
3110//   An internal server error has occurred during the request. For more information,
3111//   see the error and message fields.
3112//
3113// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeChapCredentials
3114func (c *StorageGateway) DescribeChapCredentials(input *DescribeChapCredentialsInput) (*DescribeChapCredentialsOutput, error) {
3115	req, out := c.DescribeChapCredentialsRequest(input)
3116	return out, req.Send()
3117}
3118
3119// DescribeChapCredentialsWithContext is the same as DescribeChapCredentials with the addition of
3120// the ability to pass a context and additional request options.
3121//
3122// See DescribeChapCredentials for details on how to use this API operation.
3123//
3124// The context must be non-nil and will be used for request cancellation. If
3125// the context is nil a panic will occur. In the future the SDK may create
3126// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3127// for more information on using Contexts.
3128func (c *StorageGateway) DescribeChapCredentialsWithContext(ctx aws.Context, input *DescribeChapCredentialsInput, opts ...request.Option) (*DescribeChapCredentialsOutput, error) {
3129	req, out := c.DescribeChapCredentialsRequest(input)
3130	req.SetContext(ctx)
3131	req.ApplyOptions(opts...)
3132	return out, req.Send()
3133}
3134
3135const opDescribeGatewayInformation = "DescribeGatewayInformation"
3136
3137// DescribeGatewayInformationRequest generates a "aws/request.Request" representing the
3138// client's request for the DescribeGatewayInformation operation. The "output" return
3139// value will be populated with the request's response once the request completes
3140// successfully.
3141//
3142// Use "Send" method on the returned Request to send the API call to the service.
3143// the "output" return value is not valid until after Send returns without error.
3144//
3145// See DescribeGatewayInformation for more information on using the DescribeGatewayInformation
3146// API call, and error handling.
3147//
3148// This method is useful when you want to inject custom logic or configuration
3149// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3150//
3151//
3152//    // Example sending a request using the DescribeGatewayInformationRequest method.
3153//    req, resp := client.DescribeGatewayInformationRequest(params)
3154//
3155//    err := req.Send()
3156//    if err == nil { // resp is now filled
3157//        fmt.Println(resp)
3158//    }
3159//
3160// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeGatewayInformation
3161func (c *StorageGateway) DescribeGatewayInformationRequest(input *DescribeGatewayInformationInput) (req *request.Request, output *DescribeGatewayInformationOutput) {
3162	op := &request.Operation{
3163		Name:       opDescribeGatewayInformation,
3164		HTTPMethod: "POST",
3165		HTTPPath:   "/",
3166	}
3167
3168	if input == nil {
3169		input = &DescribeGatewayInformationInput{}
3170	}
3171
3172	output = &DescribeGatewayInformationOutput{}
3173	req = c.newRequest(op, input, output)
3174	return
3175}
3176
3177// DescribeGatewayInformation API operation for AWS Storage Gateway.
3178//
3179// Returns metadata about a gateway such as its name, network interfaces, configured
3180// time zone, and the state (whether the gateway is running or not). To specify
3181// which gateway to describe, use the Amazon Resource Name (ARN) of the gateway
3182// in your request.
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 DescribeGatewayInformation 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/DescribeGatewayInformation
3201func (c *StorageGateway) DescribeGatewayInformation(input *DescribeGatewayInformationInput) (*DescribeGatewayInformationOutput, error) {
3202	req, out := c.DescribeGatewayInformationRequest(input)
3203	return out, req.Send()
3204}
3205
3206// DescribeGatewayInformationWithContext is the same as DescribeGatewayInformation with the addition of
3207// the ability to pass a context and additional request options.
3208//
3209// See DescribeGatewayInformation 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) DescribeGatewayInformationWithContext(ctx aws.Context, input *DescribeGatewayInformationInput, opts ...request.Option) (*DescribeGatewayInformationOutput, error) {
3216	req, out := c.DescribeGatewayInformationRequest(input)
3217	req.SetContext(ctx)
3218	req.ApplyOptions(opts...)
3219	return out, req.Send()
3220}
3221
3222const opDescribeMaintenanceStartTime = "DescribeMaintenanceStartTime"
3223
3224// DescribeMaintenanceStartTimeRequest generates a "aws/request.Request" representing the
3225// client's request for the DescribeMaintenanceStartTime 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 DescribeMaintenanceStartTime for more information on using the DescribeMaintenanceStartTime
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 DescribeMaintenanceStartTimeRequest method.
3240//    req, resp := client.DescribeMaintenanceStartTimeRequest(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/DescribeMaintenanceStartTime
3248func (c *StorageGateway) DescribeMaintenanceStartTimeRequest(input *DescribeMaintenanceStartTimeInput) (req *request.Request, output *DescribeMaintenanceStartTimeOutput) {
3249	op := &request.Operation{
3250		Name:       opDescribeMaintenanceStartTime,
3251		HTTPMethod: "POST",
3252		HTTPPath:   "/",
3253	}
3254
3255	if input == nil {
3256		input = &DescribeMaintenanceStartTimeInput{}
3257	}
3258
3259	output = &DescribeMaintenanceStartTimeOutput{}
3260	req = c.newRequest(op, input, output)
3261	return
3262}
3263
3264// DescribeMaintenanceStartTime API operation for AWS Storage Gateway.
3265//
3266// Returns your gateway's weekly maintenance start time including the day and
3267// time of the week. Note that values are in terms of the gateway's time zone.
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 DescribeMaintenanceStartTime 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/DescribeMaintenanceStartTime
3286func (c *StorageGateway) DescribeMaintenanceStartTime(input *DescribeMaintenanceStartTimeInput) (*DescribeMaintenanceStartTimeOutput, error) {
3287	req, out := c.DescribeMaintenanceStartTimeRequest(input)
3288	return out, req.Send()
3289}
3290
3291// DescribeMaintenanceStartTimeWithContext is the same as DescribeMaintenanceStartTime with the addition of
3292// the ability to pass a context and additional request options.
3293//
3294// See DescribeMaintenanceStartTime 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) DescribeMaintenanceStartTimeWithContext(ctx aws.Context, input *DescribeMaintenanceStartTimeInput, opts ...request.Option) (*DescribeMaintenanceStartTimeOutput, error) {
3301	req, out := c.DescribeMaintenanceStartTimeRequest(input)
3302	req.SetContext(ctx)
3303	req.ApplyOptions(opts...)
3304	return out, req.Send()
3305}
3306
3307const opDescribeNFSFileShares = "DescribeNFSFileShares"
3308
3309// DescribeNFSFileSharesRequest generates a "aws/request.Request" representing the
3310// client's request for the DescribeNFSFileShares 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 DescribeNFSFileShares for more information on using the DescribeNFSFileShares
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 DescribeNFSFileSharesRequest method.
3325//    req, resp := client.DescribeNFSFileSharesRequest(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/DescribeNFSFileShares
3333func (c *StorageGateway) DescribeNFSFileSharesRequest(input *DescribeNFSFileSharesInput) (req *request.Request, output *DescribeNFSFileSharesOutput) {
3334	op := &request.Operation{
3335		Name:       opDescribeNFSFileShares,
3336		HTTPMethod: "POST",
3337		HTTPPath:   "/",
3338	}
3339
3340	if input == nil {
3341		input = &DescribeNFSFileSharesInput{}
3342	}
3343
3344	output = &DescribeNFSFileSharesOutput{}
3345	req = c.newRequest(op, input, output)
3346	return
3347}
3348
3349// DescribeNFSFileShares API operation for AWS Storage Gateway.
3350//
3351// Gets a description for one or more Network File System (NFS) file shares
3352// from a file gateway. This operation is only supported for file gateways.
3353//
3354// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3355// with awserr.Error's Code and Message methods to get detailed information about
3356// the error.
3357//
3358// See the AWS API reference guide for AWS Storage Gateway's
3359// API operation DescribeNFSFileShares for usage and error information.
3360//
3361// Returned Error Types:
3362//   * InvalidGatewayRequestException
3363//   An exception occurred because an invalid gateway request was issued to the
3364//   service. For more information, see the error and message fields.
3365//
3366//   * InternalServerError
3367//   An internal server error has occurred during the request. For more information,
3368//   see the error and message fields.
3369//
3370// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeNFSFileShares
3371func (c *StorageGateway) DescribeNFSFileShares(input *DescribeNFSFileSharesInput) (*DescribeNFSFileSharesOutput, error) {
3372	req, out := c.DescribeNFSFileSharesRequest(input)
3373	return out, req.Send()
3374}
3375
3376// DescribeNFSFileSharesWithContext is the same as DescribeNFSFileShares with the addition of
3377// the ability to pass a context and additional request options.
3378//
3379// See DescribeNFSFileShares for details on how to use this API operation.
3380//
3381// The context must be non-nil and will be used for request cancellation. If
3382// the context is nil a panic will occur. In the future the SDK may create
3383// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3384// for more information on using Contexts.
3385func (c *StorageGateway) DescribeNFSFileSharesWithContext(ctx aws.Context, input *DescribeNFSFileSharesInput, opts ...request.Option) (*DescribeNFSFileSharesOutput, error) {
3386	req, out := c.DescribeNFSFileSharesRequest(input)
3387	req.SetContext(ctx)
3388	req.ApplyOptions(opts...)
3389	return out, req.Send()
3390}
3391
3392const opDescribeSMBFileShares = "DescribeSMBFileShares"
3393
3394// DescribeSMBFileSharesRequest generates a "aws/request.Request" representing the
3395// client's request for the DescribeSMBFileShares operation. The "output" return
3396// value will be populated with the request's response once the request completes
3397// successfully.
3398//
3399// Use "Send" method on the returned Request to send the API call to the service.
3400// the "output" return value is not valid until after Send returns without error.
3401//
3402// See DescribeSMBFileShares for more information on using the DescribeSMBFileShares
3403// API call, and error handling.
3404//
3405// This method is useful when you want to inject custom logic or configuration
3406// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3407//
3408//
3409//    // Example sending a request using the DescribeSMBFileSharesRequest method.
3410//    req, resp := client.DescribeSMBFileSharesRequest(params)
3411//
3412//    err := req.Send()
3413//    if err == nil { // resp is now filled
3414//        fmt.Println(resp)
3415//    }
3416//
3417// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBFileShares
3418func (c *StorageGateway) DescribeSMBFileSharesRequest(input *DescribeSMBFileSharesInput) (req *request.Request, output *DescribeSMBFileSharesOutput) {
3419	op := &request.Operation{
3420		Name:       opDescribeSMBFileShares,
3421		HTTPMethod: "POST",
3422		HTTPPath:   "/",
3423	}
3424
3425	if input == nil {
3426		input = &DescribeSMBFileSharesInput{}
3427	}
3428
3429	output = &DescribeSMBFileSharesOutput{}
3430	req = c.newRequest(op, input, output)
3431	return
3432}
3433
3434// DescribeSMBFileShares API operation for AWS Storage Gateway.
3435//
3436// Gets a description for one or more Server Message Block (SMB) file shares
3437// from a file gateway. This operation is only supported for file gateways.
3438//
3439// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3440// with awserr.Error's Code and Message methods to get detailed information about
3441// the error.
3442//
3443// See the AWS API reference guide for AWS Storage Gateway's
3444// API operation DescribeSMBFileShares for usage and error information.
3445//
3446// Returned Error Types:
3447//   * InvalidGatewayRequestException
3448//   An exception occurred because an invalid gateway request was issued to the
3449//   service. For more information, see the error and message fields.
3450//
3451//   * InternalServerError
3452//   An internal server error has occurred during the request. For more information,
3453//   see the error and message fields.
3454//
3455// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBFileShares
3456func (c *StorageGateway) DescribeSMBFileShares(input *DescribeSMBFileSharesInput) (*DescribeSMBFileSharesOutput, error) {
3457	req, out := c.DescribeSMBFileSharesRequest(input)
3458	return out, req.Send()
3459}
3460
3461// DescribeSMBFileSharesWithContext is the same as DescribeSMBFileShares with the addition of
3462// the ability to pass a context and additional request options.
3463//
3464// See DescribeSMBFileShares for details on how to use this API operation.
3465//
3466// The context must be non-nil and will be used for request cancellation. If
3467// the context is nil a panic will occur. In the future the SDK may create
3468// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3469// for more information on using Contexts.
3470func (c *StorageGateway) DescribeSMBFileSharesWithContext(ctx aws.Context, input *DescribeSMBFileSharesInput, opts ...request.Option) (*DescribeSMBFileSharesOutput, error) {
3471	req, out := c.DescribeSMBFileSharesRequest(input)
3472	req.SetContext(ctx)
3473	req.ApplyOptions(opts...)
3474	return out, req.Send()
3475}
3476
3477const opDescribeSMBSettings = "DescribeSMBSettings"
3478
3479// DescribeSMBSettingsRequest generates a "aws/request.Request" representing the
3480// client's request for the DescribeSMBSettings operation. The "output" return
3481// value will be populated with the request's response once the request completes
3482// successfully.
3483//
3484// Use "Send" method on the returned Request to send the API call to the service.
3485// the "output" return value is not valid until after Send returns without error.
3486//
3487// See DescribeSMBSettings for more information on using the DescribeSMBSettings
3488// API call, and error handling.
3489//
3490// This method is useful when you want to inject custom logic or configuration
3491// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3492//
3493//
3494//    // Example sending a request using the DescribeSMBSettingsRequest method.
3495//    req, resp := client.DescribeSMBSettingsRequest(params)
3496//
3497//    err := req.Send()
3498//    if err == nil { // resp is now filled
3499//        fmt.Println(resp)
3500//    }
3501//
3502// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBSettings
3503func (c *StorageGateway) DescribeSMBSettingsRequest(input *DescribeSMBSettingsInput) (req *request.Request, output *DescribeSMBSettingsOutput) {
3504	op := &request.Operation{
3505		Name:       opDescribeSMBSettings,
3506		HTTPMethod: "POST",
3507		HTTPPath:   "/",
3508	}
3509
3510	if input == nil {
3511		input = &DescribeSMBSettingsInput{}
3512	}
3513
3514	output = &DescribeSMBSettingsOutput{}
3515	req = c.newRequest(op, input, output)
3516	return
3517}
3518
3519// DescribeSMBSettings API operation for AWS Storage Gateway.
3520//
3521// Gets a description of a Server Message Block (SMB) file share settings from
3522// a file gateway. This operation is only supported for file gateways.
3523//
3524// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3525// with awserr.Error's Code and Message methods to get detailed information about
3526// the error.
3527//
3528// See the AWS API reference guide for AWS Storage Gateway's
3529// API operation DescribeSMBSettings for usage and error information.
3530//
3531// Returned Error Types:
3532//   * InvalidGatewayRequestException
3533//   An exception occurred because an invalid gateway request was issued to the
3534//   service. For more information, see the error and message fields.
3535//
3536//   * InternalServerError
3537//   An internal server error has occurred during the request. For more information,
3538//   see the error and message fields.
3539//
3540// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBSettings
3541func (c *StorageGateway) DescribeSMBSettings(input *DescribeSMBSettingsInput) (*DescribeSMBSettingsOutput, error) {
3542	req, out := c.DescribeSMBSettingsRequest(input)
3543	return out, req.Send()
3544}
3545
3546// DescribeSMBSettingsWithContext is the same as DescribeSMBSettings with the addition of
3547// the ability to pass a context and additional request options.
3548//
3549// See DescribeSMBSettings for details on how to use this API operation.
3550//
3551// The context must be non-nil and will be used for request cancellation. If
3552// the context is nil a panic will occur. In the future the SDK may create
3553// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3554// for more information on using Contexts.
3555func (c *StorageGateway) DescribeSMBSettingsWithContext(ctx aws.Context, input *DescribeSMBSettingsInput, opts ...request.Option) (*DescribeSMBSettingsOutput, error) {
3556	req, out := c.DescribeSMBSettingsRequest(input)
3557	req.SetContext(ctx)
3558	req.ApplyOptions(opts...)
3559	return out, req.Send()
3560}
3561
3562const opDescribeSnapshotSchedule = "DescribeSnapshotSchedule"
3563
3564// DescribeSnapshotScheduleRequest generates a "aws/request.Request" representing the
3565// client's request for the DescribeSnapshotSchedule operation. The "output" return
3566// value will be populated with the request's response once the request completes
3567// successfully.
3568//
3569// Use "Send" method on the returned Request to send the API call to the service.
3570// the "output" return value is not valid until after Send returns without error.
3571//
3572// See DescribeSnapshotSchedule for more information on using the DescribeSnapshotSchedule
3573// API call, and error handling.
3574//
3575// This method is useful when you want to inject custom logic or configuration
3576// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3577//
3578//
3579//    // Example sending a request using the DescribeSnapshotScheduleRequest method.
3580//    req, resp := client.DescribeSnapshotScheduleRequest(params)
3581//
3582//    err := req.Send()
3583//    if err == nil { // resp is now filled
3584//        fmt.Println(resp)
3585//    }
3586//
3587// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSnapshotSchedule
3588func (c *StorageGateway) DescribeSnapshotScheduleRequest(input *DescribeSnapshotScheduleInput) (req *request.Request, output *DescribeSnapshotScheduleOutput) {
3589	op := &request.Operation{
3590		Name:       opDescribeSnapshotSchedule,
3591		HTTPMethod: "POST",
3592		HTTPPath:   "/",
3593	}
3594
3595	if input == nil {
3596		input = &DescribeSnapshotScheduleInput{}
3597	}
3598
3599	output = &DescribeSnapshotScheduleOutput{}
3600	req = c.newRequest(op, input, output)
3601	return
3602}
3603
3604// DescribeSnapshotSchedule API operation for AWS Storage Gateway.
3605//
3606// Describes the snapshot schedule for the specified gateway volume. The snapshot
3607// schedule information includes intervals at which snapshots are automatically
3608// initiated on the volume. This operation is only supported in the cached volume
3609// and stored volume types.
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 DescribeSnapshotSchedule 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/DescribeSnapshotSchedule
3628func (c *StorageGateway) DescribeSnapshotSchedule(input *DescribeSnapshotScheduleInput) (*DescribeSnapshotScheduleOutput, error) {
3629	req, out := c.DescribeSnapshotScheduleRequest(input)
3630	return out, req.Send()
3631}
3632
3633// DescribeSnapshotScheduleWithContext is the same as DescribeSnapshotSchedule with the addition of
3634// the ability to pass a context and additional request options.
3635//
3636// See DescribeSnapshotSchedule 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) DescribeSnapshotScheduleWithContext(ctx aws.Context, input *DescribeSnapshotScheduleInput, opts ...request.Option) (*DescribeSnapshotScheduleOutput, error) {
3643	req, out := c.DescribeSnapshotScheduleRequest(input)
3644	req.SetContext(ctx)
3645	req.ApplyOptions(opts...)
3646	return out, req.Send()
3647}
3648
3649const opDescribeStorediSCSIVolumes = "DescribeStorediSCSIVolumes"
3650
3651// DescribeStorediSCSIVolumesRequest generates a "aws/request.Request" representing the
3652// client's request for the DescribeStorediSCSIVolumes 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 DescribeStorediSCSIVolumes for more information on using the DescribeStorediSCSIVolumes
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 DescribeStorediSCSIVolumesRequest method.
3667//    req, resp := client.DescribeStorediSCSIVolumesRequest(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/DescribeStorediSCSIVolumes
3675func (c *StorageGateway) DescribeStorediSCSIVolumesRequest(input *DescribeStorediSCSIVolumesInput) (req *request.Request, output *DescribeStorediSCSIVolumesOutput) {
3676	op := &request.Operation{
3677		Name:       opDescribeStorediSCSIVolumes,
3678		HTTPMethod: "POST",
3679		HTTPPath:   "/",
3680	}
3681
3682	if input == nil {
3683		input = &DescribeStorediSCSIVolumesInput{}
3684	}
3685
3686	output = &DescribeStorediSCSIVolumesOutput{}
3687	req = c.newRequest(op, input, output)
3688	return
3689}
3690
3691// DescribeStorediSCSIVolumes API operation for AWS Storage Gateway.
3692//
3693// Returns the description of the gateway volumes specified in the request.
3694// The list of gateway volumes in the request must be from one gateway. In the
3695// response, AWS Storage Gateway returns volume information sorted by volume
3696// ARNs. This operation is only supported in stored volume gateway type.
3697//
3698// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3699// with awserr.Error's Code and Message methods to get detailed information about
3700// the error.
3701//
3702// See the AWS API reference guide for AWS Storage Gateway's
3703// API operation DescribeStorediSCSIVolumes for usage and error information.
3704//
3705// Returned Error Types:
3706//   * InvalidGatewayRequestException
3707//   An exception occurred because an invalid gateway request was issued to the
3708//   service. For more information, see the error and message fields.
3709//
3710//   * InternalServerError
3711//   An internal server error has occurred during the request. For more information,
3712//   see the error and message fields.
3713//
3714// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeStorediSCSIVolumes
3715func (c *StorageGateway) DescribeStorediSCSIVolumes(input *DescribeStorediSCSIVolumesInput) (*DescribeStorediSCSIVolumesOutput, error) {
3716	req, out := c.DescribeStorediSCSIVolumesRequest(input)
3717	return out, req.Send()
3718}
3719
3720// DescribeStorediSCSIVolumesWithContext is the same as DescribeStorediSCSIVolumes with the addition of
3721// the ability to pass a context and additional request options.
3722//
3723// See DescribeStorediSCSIVolumes for details on how to use this API operation.
3724//
3725// The context must be non-nil and will be used for request cancellation. If
3726// the context is nil a panic will occur. In the future the SDK may create
3727// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3728// for more information on using Contexts.
3729func (c *StorageGateway) DescribeStorediSCSIVolumesWithContext(ctx aws.Context, input *DescribeStorediSCSIVolumesInput, opts ...request.Option) (*DescribeStorediSCSIVolumesOutput, error) {
3730	req, out := c.DescribeStorediSCSIVolumesRequest(input)
3731	req.SetContext(ctx)
3732	req.ApplyOptions(opts...)
3733	return out, req.Send()
3734}
3735
3736const opDescribeTapeArchives = "DescribeTapeArchives"
3737
3738// DescribeTapeArchivesRequest generates a "aws/request.Request" representing the
3739// client's request for the DescribeTapeArchives operation. The "output" return
3740// value will be populated with the request's response once the request completes
3741// successfully.
3742//
3743// Use "Send" method on the returned Request to send the API call to the service.
3744// the "output" return value is not valid until after Send returns without error.
3745//
3746// See DescribeTapeArchives for more information on using the DescribeTapeArchives
3747// API call, and error handling.
3748//
3749// This method is useful when you want to inject custom logic or configuration
3750// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3751//
3752//
3753//    // Example sending a request using the DescribeTapeArchivesRequest method.
3754//    req, resp := client.DescribeTapeArchivesRequest(params)
3755//
3756//    err := req.Send()
3757//    if err == nil { // resp is now filled
3758//        fmt.Println(resp)
3759//    }
3760//
3761// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeArchives
3762func (c *StorageGateway) DescribeTapeArchivesRequest(input *DescribeTapeArchivesInput) (req *request.Request, output *DescribeTapeArchivesOutput) {
3763	op := &request.Operation{
3764		Name:       opDescribeTapeArchives,
3765		HTTPMethod: "POST",
3766		HTTPPath:   "/",
3767		Paginator: &request.Paginator{
3768			InputTokens:     []string{"Marker"},
3769			OutputTokens:    []string{"Marker"},
3770			LimitToken:      "Limit",
3771			TruncationToken: "",
3772		},
3773	}
3774
3775	if input == nil {
3776		input = &DescribeTapeArchivesInput{}
3777	}
3778
3779	output = &DescribeTapeArchivesOutput{}
3780	req = c.newRequest(op, input, output)
3781	return
3782}
3783
3784// DescribeTapeArchives API operation for AWS Storage Gateway.
3785//
3786// Returns a description of specified virtual tapes in the virtual tape shelf
3787// (VTS). This operation is only supported in the tape gateway type.
3788//
3789// If a specific TapeARN is not specified, AWS Storage Gateway returns a description
3790// of all virtual tapes found in the VTS associated with your account.
3791//
3792// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3793// with awserr.Error's Code and Message methods to get detailed information about
3794// the error.
3795//
3796// See the AWS API reference guide for AWS Storage Gateway's
3797// API operation DescribeTapeArchives for usage and error information.
3798//
3799// Returned Error Types:
3800//   * InvalidGatewayRequestException
3801//   An exception occurred because an invalid gateway request was issued to the
3802//   service. For more information, see the error and message fields.
3803//
3804//   * InternalServerError
3805//   An internal server error has occurred during the request. For more information,
3806//   see the error and message fields.
3807//
3808// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeArchives
3809func (c *StorageGateway) DescribeTapeArchives(input *DescribeTapeArchivesInput) (*DescribeTapeArchivesOutput, error) {
3810	req, out := c.DescribeTapeArchivesRequest(input)
3811	return out, req.Send()
3812}
3813
3814// DescribeTapeArchivesWithContext is the same as DescribeTapeArchives with the addition of
3815// the ability to pass a context and additional request options.
3816//
3817// See DescribeTapeArchives for details on how to use this API operation.
3818//
3819// The context must be non-nil and will be used for request cancellation. If
3820// the context is nil a panic will occur. In the future the SDK may create
3821// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3822// for more information on using Contexts.
3823func (c *StorageGateway) DescribeTapeArchivesWithContext(ctx aws.Context, input *DescribeTapeArchivesInput, opts ...request.Option) (*DescribeTapeArchivesOutput, error) {
3824	req, out := c.DescribeTapeArchivesRequest(input)
3825	req.SetContext(ctx)
3826	req.ApplyOptions(opts...)
3827	return out, req.Send()
3828}
3829
3830// DescribeTapeArchivesPages iterates over the pages of a DescribeTapeArchives operation,
3831// calling the "fn" function with the response data for each page. To stop
3832// iterating, return false from the fn function.
3833//
3834// See DescribeTapeArchives method for more information on how to use this operation.
3835//
3836// Note: This operation can generate multiple requests to a service.
3837//
3838//    // Example iterating over at most 3 pages of a DescribeTapeArchives operation.
3839//    pageNum := 0
3840//    err := client.DescribeTapeArchivesPages(params,
3841//        func(page *storagegateway.DescribeTapeArchivesOutput, lastPage bool) bool {
3842//            pageNum++
3843//            fmt.Println(page)
3844//            return pageNum <= 3
3845//        })
3846//
3847func (c *StorageGateway) DescribeTapeArchivesPages(input *DescribeTapeArchivesInput, fn func(*DescribeTapeArchivesOutput, bool) bool) error {
3848	return c.DescribeTapeArchivesPagesWithContext(aws.BackgroundContext(), input, fn)
3849}
3850
3851// DescribeTapeArchivesPagesWithContext same as DescribeTapeArchivesPages except
3852// it takes a Context and allows setting request options on the pages.
3853//
3854// The context must be non-nil and will be used for request cancellation. If
3855// the context is nil a panic will occur. In the future the SDK may create
3856// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3857// for more information on using Contexts.
3858func (c *StorageGateway) DescribeTapeArchivesPagesWithContext(ctx aws.Context, input *DescribeTapeArchivesInput, fn func(*DescribeTapeArchivesOutput, bool) bool, opts ...request.Option) error {
3859	p := request.Pagination{
3860		NewRequest: func() (*request.Request, error) {
3861			var inCpy *DescribeTapeArchivesInput
3862			if input != nil {
3863				tmp := *input
3864				inCpy = &tmp
3865			}
3866			req, _ := c.DescribeTapeArchivesRequest(inCpy)
3867			req.SetContext(ctx)
3868			req.ApplyOptions(opts...)
3869			return req, nil
3870		},
3871	}
3872
3873	for p.Next() {
3874		if !fn(p.Page().(*DescribeTapeArchivesOutput), !p.HasNextPage()) {
3875			break
3876		}
3877	}
3878
3879	return p.Err()
3880}
3881
3882const opDescribeTapeRecoveryPoints = "DescribeTapeRecoveryPoints"
3883
3884// DescribeTapeRecoveryPointsRequest generates a "aws/request.Request" representing the
3885// client's request for the DescribeTapeRecoveryPoints operation. The "output" return
3886// value will be populated with the request's response once the request completes
3887// successfully.
3888//
3889// Use "Send" method on the returned Request to send the API call to the service.
3890// the "output" return value is not valid until after Send returns without error.
3891//
3892// See DescribeTapeRecoveryPoints for more information on using the DescribeTapeRecoveryPoints
3893// API call, and error handling.
3894//
3895// This method is useful when you want to inject custom logic or configuration
3896// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3897//
3898//
3899//    // Example sending a request using the DescribeTapeRecoveryPointsRequest method.
3900//    req, resp := client.DescribeTapeRecoveryPointsRequest(params)
3901//
3902//    err := req.Send()
3903//    if err == nil { // resp is now filled
3904//        fmt.Println(resp)
3905//    }
3906//
3907// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeRecoveryPoints
3908func (c *StorageGateway) DescribeTapeRecoveryPointsRequest(input *DescribeTapeRecoveryPointsInput) (req *request.Request, output *DescribeTapeRecoveryPointsOutput) {
3909	op := &request.Operation{
3910		Name:       opDescribeTapeRecoveryPoints,
3911		HTTPMethod: "POST",
3912		HTTPPath:   "/",
3913		Paginator: &request.Paginator{
3914			InputTokens:     []string{"Marker"},
3915			OutputTokens:    []string{"Marker"},
3916			LimitToken:      "Limit",
3917			TruncationToken: "",
3918		},
3919	}
3920
3921	if input == nil {
3922		input = &DescribeTapeRecoveryPointsInput{}
3923	}
3924
3925	output = &DescribeTapeRecoveryPointsOutput{}
3926	req = c.newRequest(op, input, output)
3927	return
3928}
3929
3930// DescribeTapeRecoveryPoints API operation for AWS Storage Gateway.
3931//
3932// Returns a list of virtual tape recovery points that are available for the
3933// specified tape gateway.
3934//
3935// A recovery point is a point-in-time view of a virtual tape at which all the
3936// data on the virtual tape is consistent. If your gateway crashes, virtual
3937// tapes that have recovery points can be recovered to a new gateway. This operation
3938// is only supported in the tape gateway type.
3939//
3940// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3941// with awserr.Error's Code and Message methods to get detailed information about
3942// the error.
3943//
3944// See the AWS API reference guide for AWS Storage Gateway's
3945// API operation DescribeTapeRecoveryPoints for usage and error information.
3946//
3947// Returned Error Types:
3948//   * InvalidGatewayRequestException
3949//   An exception occurred because an invalid gateway request was issued to the
3950//   service. For more information, see the error and message fields.
3951//
3952//   * InternalServerError
3953//   An internal server error has occurred during the request. For more information,
3954//   see the error and message fields.
3955//
3956// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeRecoveryPoints
3957func (c *StorageGateway) DescribeTapeRecoveryPoints(input *DescribeTapeRecoveryPointsInput) (*DescribeTapeRecoveryPointsOutput, error) {
3958	req, out := c.DescribeTapeRecoveryPointsRequest(input)
3959	return out, req.Send()
3960}
3961
3962// DescribeTapeRecoveryPointsWithContext is the same as DescribeTapeRecoveryPoints with the addition of
3963// the ability to pass a context and additional request options.
3964//
3965// See DescribeTapeRecoveryPoints for details on how to use this API operation.
3966//
3967// The context must be non-nil and will be used for request cancellation. If
3968// the context is nil a panic will occur. In the future the SDK may create
3969// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3970// for more information on using Contexts.
3971func (c *StorageGateway) DescribeTapeRecoveryPointsWithContext(ctx aws.Context, input *DescribeTapeRecoveryPointsInput, opts ...request.Option) (*DescribeTapeRecoveryPointsOutput, error) {
3972	req, out := c.DescribeTapeRecoveryPointsRequest(input)
3973	req.SetContext(ctx)
3974	req.ApplyOptions(opts...)
3975	return out, req.Send()
3976}
3977
3978// DescribeTapeRecoveryPointsPages iterates over the pages of a DescribeTapeRecoveryPoints operation,
3979// calling the "fn" function with the response data for each page. To stop
3980// iterating, return false from the fn function.
3981//
3982// See DescribeTapeRecoveryPoints method for more information on how to use this operation.
3983//
3984// Note: This operation can generate multiple requests to a service.
3985//
3986//    // Example iterating over at most 3 pages of a DescribeTapeRecoveryPoints operation.
3987//    pageNum := 0
3988//    err := client.DescribeTapeRecoveryPointsPages(params,
3989//        func(page *storagegateway.DescribeTapeRecoveryPointsOutput, lastPage bool) bool {
3990//            pageNum++
3991//            fmt.Println(page)
3992//            return pageNum <= 3
3993//        })
3994//
3995func (c *StorageGateway) DescribeTapeRecoveryPointsPages(input *DescribeTapeRecoveryPointsInput, fn func(*DescribeTapeRecoveryPointsOutput, bool) bool) error {
3996	return c.DescribeTapeRecoveryPointsPagesWithContext(aws.BackgroundContext(), input, fn)
3997}
3998
3999// DescribeTapeRecoveryPointsPagesWithContext same as DescribeTapeRecoveryPointsPages except
4000// it takes a Context and allows setting request options on the pages.
4001//
4002// The context must be non-nil and will be used for request cancellation. If
4003// the context is nil a panic will occur. In the future the SDK may create
4004// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4005// for more information on using Contexts.
4006func (c *StorageGateway) DescribeTapeRecoveryPointsPagesWithContext(ctx aws.Context, input *DescribeTapeRecoveryPointsInput, fn func(*DescribeTapeRecoveryPointsOutput, bool) bool, opts ...request.Option) error {
4007	p := request.Pagination{
4008		NewRequest: func() (*request.Request, error) {
4009			var inCpy *DescribeTapeRecoveryPointsInput
4010			if input != nil {
4011				tmp := *input
4012				inCpy = &tmp
4013			}
4014			req, _ := c.DescribeTapeRecoveryPointsRequest(inCpy)
4015			req.SetContext(ctx)
4016			req.ApplyOptions(opts...)
4017			return req, nil
4018		},
4019	}
4020
4021	for p.Next() {
4022		if !fn(p.Page().(*DescribeTapeRecoveryPointsOutput), !p.HasNextPage()) {
4023			break
4024		}
4025	}
4026
4027	return p.Err()
4028}
4029
4030const opDescribeTapes = "DescribeTapes"
4031
4032// DescribeTapesRequest generates a "aws/request.Request" representing the
4033// client's request for the DescribeTapes operation. The "output" return
4034// value will be populated with the request's response once the request completes
4035// successfully.
4036//
4037// Use "Send" method on the returned Request to send the API call to the service.
4038// the "output" return value is not valid until after Send returns without error.
4039//
4040// See DescribeTapes for more information on using the DescribeTapes
4041// API call, and error handling.
4042//
4043// This method is useful when you want to inject custom logic or configuration
4044// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4045//
4046//
4047//    // Example sending a request using the DescribeTapesRequest method.
4048//    req, resp := client.DescribeTapesRequest(params)
4049//
4050//    err := req.Send()
4051//    if err == nil { // resp is now filled
4052//        fmt.Println(resp)
4053//    }
4054//
4055// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapes
4056func (c *StorageGateway) DescribeTapesRequest(input *DescribeTapesInput) (req *request.Request, output *DescribeTapesOutput) {
4057	op := &request.Operation{
4058		Name:       opDescribeTapes,
4059		HTTPMethod: "POST",
4060		HTTPPath:   "/",
4061		Paginator: &request.Paginator{
4062			InputTokens:     []string{"Marker"},
4063			OutputTokens:    []string{"Marker"},
4064			LimitToken:      "Limit",
4065			TruncationToken: "",
4066		},
4067	}
4068
4069	if input == nil {
4070		input = &DescribeTapesInput{}
4071	}
4072
4073	output = &DescribeTapesOutput{}
4074	req = c.newRequest(op, input, output)
4075	return
4076}
4077
4078// DescribeTapes API operation for AWS Storage Gateway.
4079//
4080// Returns a description of the specified Amazon Resource Name (ARN) of virtual
4081// tapes. If a TapeARN is not specified, returns a description of all virtual
4082// tapes associated with the specified gateway. This operation is only supported
4083// in the tape gateway type.
4084//
4085// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4086// with awserr.Error's Code and Message methods to get detailed information about
4087// the error.
4088//
4089// See the AWS API reference guide for AWS Storage Gateway's
4090// API operation DescribeTapes for usage and error information.
4091//
4092// Returned Error Types:
4093//   * InvalidGatewayRequestException
4094//   An exception occurred because an invalid gateway request was issued to the
4095//   service. For more information, see the error and message fields.
4096//
4097//   * InternalServerError
4098//   An internal server error has occurred during the request. For more information,
4099//   see the error and message fields.
4100//
4101// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapes
4102func (c *StorageGateway) DescribeTapes(input *DescribeTapesInput) (*DescribeTapesOutput, error) {
4103	req, out := c.DescribeTapesRequest(input)
4104	return out, req.Send()
4105}
4106
4107// DescribeTapesWithContext is the same as DescribeTapes with the addition of
4108// the ability to pass a context and additional request options.
4109//
4110// See DescribeTapes for details on how to use this API operation.
4111//
4112// The context must be non-nil and will be used for request cancellation. If
4113// the context is nil a panic will occur. In the future the SDK may create
4114// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4115// for more information on using Contexts.
4116func (c *StorageGateway) DescribeTapesWithContext(ctx aws.Context, input *DescribeTapesInput, opts ...request.Option) (*DescribeTapesOutput, error) {
4117	req, out := c.DescribeTapesRequest(input)
4118	req.SetContext(ctx)
4119	req.ApplyOptions(opts...)
4120	return out, req.Send()
4121}
4122
4123// DescribeTapesPages iterates over the pages of a DescribeTapes operation,
4124// calling the "fn" function with the response data for each page. To stop
4125// iterating, return false from the fn function.
4126//
4127// See DescribeTapes method for more information on how to use this operation.
4128//
4129// Note: This operation can generate multiple requests to a service.
4130//
4131//    // Example iterating over at most 3 pages of a DescribeTapes operation.
4132//    pageNum := 0
4133//    err := client.DescribeTapesPages(params,
4134//        func(page *storagegateway.DescribeTapesOutput, lastPage bool) bool {
4135//            pageNum++
4136//            fmt.Println(page)
4137//            return pageNum <= 3
4138//        })
4139//
4140func (c *StorageGateway) DescribeTapesPages(input *DescribeTapesInput, fn func(*DescribeTapesOutput, bool) bool) error {
4141	return c.DescribeTapesPagesWithContext(aws.BackgroundContext(), input, fn)
4142}
4143
4144// DescribeTapesPagesWithContext same as DescribeTapesPages except
4145// it takes a Context and allows setting request options on the pages.
4146//
4147// The context must be non-nil and will be used for request cancellation. If
4148// the context is nil a panic will occur. In the future the SDK may create
4149// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4150// for more information on using Contexts.
4151func (c *StorageGateway) DescribeTapesPagesWithContext(ctx aws.Context, input *DescribeTapesInput, fn func(*DescribeTapesOutput, bool) bool, opts ...request.Option) error {
4152	p := request.Pagination{
4153		NewRequest: func() (*request.Request, error) {
4154			var inCpy *DescribeTapesInput
4155			if input != nil {
4156				tmp := *input
4157				inCpy = &tmp
4158			}
4159			req, _ := c.DescribeTapesRequest(inCpy)
4160			req.SetContext(ctx)
4161			req.ApplyOptions(opts...)
4162			return req, nil
4163		},
4164	}
4165
4166	for p.Next() {
4167		if !fn(p.Page().(*DescribeTapesOutput), !p.HasNextPage()) {
4168			break
4169		}
4170	}
4171
4172	return p.Err()
4173}
4174
4175const opDescribeUploadBuffer = "DescribeUploadBuffer"
4176
4177// DescribeUploadBufferRequest generates a "aws/request.Request" representing the
4178// client's request for the DescribeUploadBuffer operation. The "output" return
4179// value will be populated with the request's response once the request completes
4180// successfully.
4181//
4182// Use "Send" method on the returned Request to send the API call to the service.
4183// the "output" return value is not valid until after Send returns without error.
4184//
4185// See DescribeUploadBuffer for more information on using the DescribeUploadBuffer
4186// API call, and error handling.
4187//
4188// This method is useful when you want to inject custom logic or configuration
4189// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4190//
4191//
4192//    // Example sending a request using the DescribeUploadBufferRequest method.
4193//    req, resp := client.DescribeUploadBufferRequest(params)
4194//
4195//    err := req.Send()
4196//    if err == nil { // resp is now filled
4197//        fmt.Println(resp)
4198//    }
4199//
4200// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeUploadBuffer
4201func (c *StorageGateway) DescribeUploadBufferRequest(input *DescribeUploadBufferInput) (req *request.Request, output *DescribeUploadBufferOutput) {
4202	op := &request.Operation{
4203		Name:       opDescribeUploadBuffer,
4204		HTTPMethod: "POST",
4205		HTTPPath:   "/",
4206	}
4207
4208	if input == nil {
4209		input = &DescribeUploadBufferInput{}
4210	}
4211
4212	output = &DescribeUploadBufferOutput{}
4213	req = c.newRequest(op, input, output)
4214	return
4215}
4216
4217// DescribeUploadBuffer API operation for AWS Storage Gateway.
4218//
4219// Returns information about the upload buffer of a gateway. This operation
4220// is supported for the stored volume, cached volume, and tape gateway types.
4221//
4222// The response includes disk IDs that are configured as upload buffer space,
4223// and it includes the amount of upload buffer space allocated and used.
4224//
4225// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4226// with awserr.Error's Code and Message methods to get detailed information about
4227// the error.
4228//
4229// See the AWS API reference guide for AWS Storage Gateway's
4230// API operation DescribeUploadBuffer for usage and error information.
4231//
4232// Returned Error Types:
4233//   * InvalidGatewayRequestException
4234//   An exception occurred because an invalid gateway request was issued to the
4235//   service. For more information, see the error and message fields.
4236//
4237//   * InternalServerError
4238//   An internal server error has occurred during the request. For more information,
4239//   see the error and message fields.
4240//
4241// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeUploadBuffer
4242func (c *StorageGateway) DescribeUploadBuffer(input *DescribeUploadBufferInput) (*DescribeUploadBufferOutput, error) {
4243	req, out := c.DescribeUploadBufferRequest(input)
4244	return out, req.Send()
4245}
4246
4247// DescribeUploadBufferWithContext is the same as DescribeUploadBuffer with the addition of
4248// the ability to pass a context and additional request options.
4249//
4250// See DescribeUploadBuffer for details on how to use this API operation.
4251//
4252// The context must be non-nil and will be used for request cancellation. If
4253// the context is nil a panic will occur. In the future the SDK may create
4254// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4255// for more information on using Contexts.
4256func (c *StorageGateway) DescribeUploadBufferWithContext(ctx aws.Context, input *DescribeUploadBufferInput, opts ...request.Option) (*DescribeUploadBufferOutput, error) {
4257	req, out := c.DescribeUploadBufferRequest(input)
4258	req.SetContext(ctx)
4259	req.ApplyOptions(opts...)
4260	return out, req.Send()
4261}
4262
4263const opDescribeVTLDevices = "DescribeVTLDevices"
4264
4265// DescribeVTLDevicesRequest generates a "aws/request.Request" representing the
4266// client's request for the DescribeVTLDevices operation. The "output" return
4267// value will be populated with the request's response once the request completes
4268// successfully.
4269//
4270// Use "Send" method on the returned Request to send the API call to the service.
4271// the "output" return value is not valid until after Send returns without error.
4272//
4273// See DescribeVTLDevices for more information on using the DescribeVTLDevices
4274// API call, and error handling.
4275//
4276// This method is useful when you want to inject custom logic or configuration
4277// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4278//
4279//
4280//    // Example sending a request using the DescribeVTLDevicesRequest method.
4281//    req, resp := client.DescribeVTLDevicesRequest(params)
4282//
4283//    err := req.Send()
4284//    if err == nil { // resp is now filled
4285//        fmt.Println(resp)
4286//    }
4287//
4288// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeVTLDevices
4289func (c *StorageGateway) DescribeVTLDevicesRequest(input *DescribeVTLDevicesInput) (req *request.Request, output *DescribeVTLDevicesOutput) {
4290	op := &request.Operation{
4291		Name:       opDescribeVTLDevices,
4292		HTTPMethod: "POST",
4293		HTTPPath:   "/",
4294		Paginator: &request.Paginator{
4295			InputTokens:     []string{"Marker"},
4296			OutputTokens:    []string{"Marker"},
4297			LimitToken:      "Limit",
4298			TruncationToken: "",
4299		},
4300	}
4301
4302	if input == nil {
4303		input = &DescribeVTLDevicesInput{}
4304	}
4305
4306	output = &DescribeVTLDevicesOutput{}
4307	req = c.newRequest(op, input, output)
4308	return
4309}
4310
4311// DescribeVTLDevices API operation for AWS Storage Gateway.
4312//
4313// Returns a description of virtual tape library (VTL) devices for the specified
4314// tape gateway. In the response, AWS Storage Gateway returns VTL device information.
4315//
4316// This operation is only supported in the tape gateway type.
4317//
4318// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4319// with awserr.Error's Code and Message methods to get detailed information about
4320// the error.
4321//
4322// See the AWS API reference guide for AWS Storage Gateway's
4323// API operation DescribeVTLDevices for usage and error information.
4324//
4325// Returned Error Types:
4326//   * InvalidGatewayRequestException
4327//   An exception occurred because an invalid gateway request was issued to the
4328//   service. For more information, see the error and message fields.
4329//
4330//   * InternalServerError
4331//   An internal server error has occurred during the request. For more information,
4332//   see the error and message fields.
4333//
4334// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeVTLDevices
4335func (c *StorageGateway) DescribeVTLDevices(input *DescribeVTLDevicesInput) (*DescribeVTLDevicesOutput, error) {
4336	req, out := c.DescribeVTLDevicesRequest(input)
4337	return out, req.Send()
4338}
4339
4340// DescribeVTLDevicesWithContext is the same as DescribeVTLDevices with the addition of
4341// the ability to pass a context and additional request options.
4342//
4343// See DescribeVTLDevices for details on how to use this API operation.
4344//
4345// The context must be non-nil and will be used for request cancellation. If
4346// the context is nil a panic will occur. In the future the SDK may create
4347// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4348// for more information on using Contexts.
4349func (c *StorageGateway) DescribeVTLDevicesWithContext(ctx aws.Context, input *DescribeVTLDevicesInput, opts ...request.Option) (*DescribeVTLDevicesOutput, error) {
4350	req, out := c.DescribeVTLDevicesRequest(input)
4351	req.SetContext(ctx)
4352	req.ApplyOptions(opts...)
4353	return out, req.Send()
4354}
4355
4356// DescribeVTLDevicesPages iterates over the pages of a DescribeVTLDevices operation,
4357// calling the "fn" function with the response data for each page. To stop
4358// iterating, return false from the fn function.
4359//
4360// See DescribeVTLDevices method for more information on how to use this operation.
4361//
4362// Note: This operation can generate multiple requests to a service.
4363//
4364//    // Example iterating over at most 3 pages of a DescribeVTLDevices operation.
4365//    pageNum := 0
4366//    err := client.DescribeVTLDevicesPages(params,
4367//        func(page *storagegateway.DescribeVTLDevicesOutput, lastPage bool) bool {
4368//            pageNum++
4369//            fmt.Println(page)
4370//            return pageNum <= 3
4371//        })
4372//
4373func (c *StorageGateway) DescribeVTLDevicesPages(input *DescribeVTLDevicesInput, fn func(*DescribeVTLDevicesOutput, bool) bool) error {
4374	return c.DescribeVTLDevicesPagesWithContext(aws.BackgroundContext(), input, fn)
4375}
4376
4377// DescribeVTLDevicesPagesWithContext same as DescribeVTLDevicesPages except
4378// it takes a Context and allows setting request options on the pages.
4379//
4380// The context must be non-nil and will be used for request cancellation. If
4381// the context is nil a panic will occur. In the future the SDK may create
4382// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4383// for more information on using Contexts.
4384func (c *StorageGateway) DescribeVTLDevicesPagesWithContext(ctx aws.Context, input *DescribeVTLDevicesInput, fn func(*DescribeVTLDevicesOutput, bool) bool, opts ...request.Option) error {
4385	p := request.Pagination{
4386		NewRequest: func() (*request.Request, error) {
4387			var inCpy *DescribeVTLDevicesInput
4388			if input != nil {
4389				tmp := *input
4390				inCpy = &tmp
4391			}
4392			req, _ := c.DescribeVTLDevicesRequest(inCpy)
4393			req.SetContext(ctx)
4394			req.ApplyOptions(opts...)
4395			return req, nil
4396		},
4397	}
4398
4399	for p.Next() {
4400		if !fn(p.Page().(*DescribeVTLDevicesOutput), !p.HasNextPage()) {
4401			break
4402		}
4403	}
4404
4405	return p.Err()
4406}
4407
4408const opDescribeWorkingStorage = "DescribeWorkingStorage"
4409
4410// DescribeWorkingStorageRequest generates a "aws/request.Request" representing the
4411// client's request for the DescribeWorkingStorage operation. The "output" return
4412// value will be populated with the request's response once the request completes
4413// successfully.
4414//
4415// Use "Send" method on the returned Request to send the API call to the service.
4416// the "output" return value is not valid until after Send returns without error.
4417//
4418// See DescribeWorkingStorage for more information on using the DescribeWorkingStorage
4419// API call, and error handling.
4420//
4421// This method is useful when you want to inject custom logic or configuration
4422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4423//
4424//
4425//    // Example sending a request using the DescribeWorkingStorageRequest method.
4426//    req, resp := client.DescribeWorkingStorageRequest(params)
4427//
4428//    err := req.Send()
4429//    if err == nil { // resp is now filled
4430//        fmt.Println(resp)
4431//    }
4432//
4433// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeWorkingStorage
4434func (c *StorageGateway) DescribeWorkingStorageRequest(input *DescribeWorkingStorageInput) (req *request.Request, output *DescribeWorkingStorageOutput) {
4435	op := &request.Operation{
4436		Name:       opDescribeWorkingStorage,
4437		HTTPMethod: "POST",
4438		HTTPPath:   "/",
4439	}
4440
4441	if input == nil {
4442		input = &DescribeWorkingStorageInput{}
4443	}
4444
4445	output = &DescribeWorkingStorageOutput{}
4446	req = c.newRequest(op, input, output)
4447	return
4448}
4449
4450// DescribeWorkingStorage API operation for AWS Storage Gateway.
4451//
4452// Returns information about the working storage of a gateway. This operation
4453// is only supported in the stored volumes gateway type. This operation is deprecated
4454// in cached volumes API version (20120630). Use DescribeUploadBuffer instead.
4455//
4456// Working storage is also referred to as upload buffer. You can also use the
4457// DescribeUploadBuffer operation to add upload buffer to a stored volume gateway.
4458//
4459// The response includes disk IDs that are configured as working storage, and
4460// it includes the amount of working storage allocated and used.
4461//
4462// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4463// with awserr.Error's Code and Message methods to get detailed information about
4464// the error.
4465//
4466// See the AWS API reference guide for AWS Storage Gateway's
4467// API operation DescribeWorkingStorage for usage and error information.
4468//
4469// Returned Error Types:
4470//   * InvalidGatewayRequestException
4471//   An exception occurred because an invalid gateway request was issued to the
4472//   service. For more information, see the error and message fields.
4473//
4474//   * InternalServerError
4475//   An internal server error has occurred during the request. For more information,
4476//   see the error and message fields.
4477//
4478// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeWorkingStorage
4479func (c *StorageGateway) DescribeWorkingStorage(input *DescribeWorkingStorageInput) (*DescribeWorkingStorageOutput, error) {
4480	req, out := c.DescribeWorkingStorageRequest(input)
4481	return out, req.Send()
4482}
4483
4484// DescribeWorkingStorageWithContext is the same as DescribeWorkingStorage with the addition of
4485// the ability to pass a context and additional request options.
4486//
4487// See DescribeWorkingStorage for details on how to use this API operation.
4488//
4489// The context must be non-nil and will be used for request cancellation. If
4490// the context is nil a panic will occur. In the future the SDK may create
4491// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4492// for more information on using Contexts.
4493func (c *StorageGateway) DescribeWorkingStorageWithContext(ctx aws.Context, input *DescribeWorkingStorageInput, opts ...request.Option) (*DescribeWorkingStorageOutput, error) {
4494	req, out := c.DescribeWorkingStorageRequest(input)
4495	req.SetContext(ctx)
4496	req.ApplyOptions(opts...)
4497	return out, req.Send()
4498}
4499
4500const opDetachVolume = "DetachVolume"
4501
4502// DetachVolumeRequest generates a "aws/request.Request" representing the
4503// client's request for the DetachVolume operation. The "output" return
4504// value will be populated with the request's response once the request completes
4505// successfully.
4506//
4507// Use "Send" method on the returned Request to send the API call to the service.
4508// the "output" return value is not valid until after Send returns without error.
4509//
4510// See DetachVolume for more information on using the DetachVolume
4511// API call, and error handling.
4512//
4513// This method is useful when you want to inject custom logic or configuration
4514// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4515//
4516//
4517//    // Example sending a request using the DetachVolumeRequest method.
4518//    req, resp := client.DetachVolumeRequest(params)
4519//
4520//    err := req.Send()
4521//    if err == nil { // resp is now filled
4522//        fmt.Println(resp)
4523//    }
4524//
4525// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DetachVolume
4526func (c *StorageGateway) DetachVolumeRequest(input *DetachVolumeInput) (req *request.Request, output *DetachVolumeOutput) {
4527	op := &request.Operation{
4528		Name:       opDetachVolume,
4529		HTTPMethod: "POST",
4530		HTTPPath:   "/",
4531	}
4532
4533	if input == nil {
4534		input = &DetachVolumeInput{}
4535	}
4536
4537	output = &DetachVolumeOutput{}
4538	req = c.newRequest(op, input, output)
4539	return
4540}
4541
4542// DetachVolume API operation for AWS Storage Gateway.
4543//
4544// Disconnects a volume from an iSCSI connection and then detaches the volume
4545// from the specified gateway. Detaching and attaching a volume enables you
4546// to recover your data from one gateway to a different gateway without creating
4547// a snapshot. It also makes it easier to move your volumes from an on-premises
4548// gateway to a gateway hosted on an Amazon EC2 instance. This operation is
4549// only supported in the volume gateway type.
4550//
4551// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4552// with awserr.Error's Code and Message methods to get detailed information about
4553// the error.
4554//
4555// See the AWS API reference guide for AWS Storage Gateway's
4556// API operation DetachVolume for usage and error information.
4557//
4558// Returned Error Types:
4559//   * InvalidGatewayRequestException
4560//   An exception occurred because an invalid gateway request was issued to the
4561//   service. For more information, see the error and message fields.
4562//
4563//   * InternalServerError
4564//   An internal server error has occurred during the request. For more information,
4565//   see the error and message fields.
4566//
4567// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DetachVolume
4568func (c *StorageGateway) DetachVolume(input *DetachVolumeInput) (*DetachVolumeOutput, error) {
4569	req, out := c.DetachVolumeRequest(input)
4570	return out, req.Send()
4571}
4572
4573// DetachVolumeWithContext is the same as DetachVolume with the addition of
4574// the ability to pass a context and additional request options.
4575//
4576// See DetachVolume for details on how to use this API operation.
4577//
4578// The context must be non-nil and will be used for request cancellation. If
4579// the context is nil a panic will occur. In the future the SDK may create
4580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4581// for more information on using Contexts.
4582func (c *StorageGateway) DetachVolumeWithContext(ctx aws.Context, input *DetachVolumeInput, opts ...request.Option) (*DetachVolumeOutput, error) {
4583	req, out := c.DetachVolumeRequest(input)
4584	req.SetContext(ctx)
4585	req.ApplyOptions(opts...)
4586	return out, req.Send()
4587}
4588
4589const opDisableGateway = "DisableGateway"
4590
4591// DisableGatewayRequest generates a "aws/request.Request" representing the
4592// client's request for the DisableGateway operation. The "output" return
4593// value will be populated with the request's response once the request completes
4594// successfully.
4595//
4596// Use "Send" method on the returned Request to send the API call to the service.
4597// the "output" return value is not valid until after Send returns without error.
4598//
4599// See DisableGateway for more information on using the DisableGateway
4600// API call, and error handling.
4601//
4602// This method is useful when you want to inject custom logic or configuration
4603// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4604//
4605//
4606//    // Example sending a request using the DisableGatewayRequest method.
4607//    req, resp := client.DisableGatewayRequest(params)
4608//
4609//    err := req.Send()
4610//    if err == nil { // resp is now filled
4611//        fmt.Println(resp)
4612//    }
4613//
4614// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisableGateway
4615func (c *StorageGateway) DisableGatewayRequest(input *DisableGatewayInput) (req *request.Request, output *DisableGatewayOutput) {
4616	op := &request.Operation{
4617		Name:       opDisableGateway,
4618		HTTPMethod: "POST",
4619		HTTPPath:   "/",
4620	}
4621
4622	if input == nil {
4623		input = &DisableGatewayInput{}
4624	}
4625
4626	output = &DisableGatewayOutput{}
4627	req = c.newRequest(op, input, output)
4628	return
4629}
4630
4631// DisableGateway API operation for AWS Storage Gateway.
4632//
4633// Disables a tape gateway when the gateway is no longer functioning. For example,
4634// if your gateway VM is damaged, you can disable the gateway so you can recover
4635// virtual tapes.
4636//
4637// Use this operation for a tape gateway that is not reachable or not functioning.
4638// This operation is only supported in the tape gateway type.
4639//
4640// After a gateway is disabled, it cannot be enabled.
4641//
4642// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4643// with awserr.Error's Code and Message methods to get detailed information about
4644// the error.
4645//
4646// See the AWS API reference guide for AWS Storage Gateway's
4647// API operation DisableGateway for usage and error information.
4648//
4649// Returned Error Types:
4650//   * InvalidGatewayRequestException
4651//   An exception occurred because an invalid gateway request was issued to the
4652//   service. For more information, see the error and message fields.
4653//
4654//   * InternalServerError
4655//   An internal server error has occurred during the request. For more information,
4656//   see the error and message fields.
4657//
4658// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisableGateway
4659func (c *StorageGateway) DisableGateway(input *DisableGatewayInput) (*DisableGatewayOutput, error) {
4660	req, out := c.DisableGatewayRequest(input)
4661	return out, req.Send()
4662}
4663
4664// DisableGatewayWithContext is the same as DisableGateway with the addition of
4665// the ability to pass a context and additional request options.
4666//
4667// See DisableGateway for details on how to use this API operation.
4668//
4669// The context must be non-nil and will be used for request cancellation. If
4670// the context is nil a panic will occur. In the future the SDK may create
4671// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4672// for more information on using Contexts.
4673func (c *StorageGateway) DisableGatewayWithContext(ctx aws.Context, input *DisableGatewayInput, opts ...request.Option) (*DisableGatewayOutput, error) {
4674	req, out := c.DisableGatewayRequest(input)
4675	req.SetContext(ctx)
4676	req.ApplyOptions(opts...)
4677	return out, req.Send()
4678}
4679
4680const opJoinDomain = "JoinDomain"
4681
4682// JoinDomainRequest generates a "aws/request.Request" representing the
4683// client's request for the JoinDomain operation. The "output" return
4684// value will be populated with the request's response once the request completes
4685// successfully.
4686//
4687// Use "Send" method on the returned Request to send the API call to the service.
4688// the "output" return value is not valid until after Send returns without error.
4689//
4690// See JoinDomain for more information on using the JoinDomain
4691// API call, and error handling.
4692//
4693// This method is useful when you want to inject custom logic or configuration
4694// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4695//
4696//
4697//    // Example sending a request using the JoinDomainRequest method.
4698//    req, resp := client.JoinDomainRequest(params)
4699//
4700//    err := req.Send()
4701//    if err == nil { // resp is now filled
4702//        fmt.Println(resp)
4703//    }
4704//
4705// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/JoinDomain
4706func (c *StorageGateway) JoinDomainRequest(input *JoinDomainInput) (req *request.Request, output *JoinDomainOutput) {
4707	op := &request.Operation{
4708		Name:       opJoinDomain,
4709		HTTPMethod: "POST",
4710		HTTPPath:   "/",
4711	}
4712
4713	if input == nil {
4714		input = &JoinDomainInput{}
4715	}
4716
4717	output = &JoinDomainOutput{}
4718	req = c.newRequest(op, input, output)
4719	return
4720}
4721
4722// JoinDomain API operation for AWS Storage Gateway.
4723//
4724// Adds a file gateway to an Active Directory domain. This operation is only
4725// supported for file gateways that support the SMB file protocol.
4726//
4727// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4728// with awserr.Error's Code and Message methods to get detailed information about
4729// the error.
4730//
4731// See the AWS API reference guide for AWS Storage Gateway's
4732// API operation JoinDomain for usage and error information.
4733//
4734// Returned Error Types:
4735//   * InvalidGatewayRequestException
4736//   An exception occurred because an invalid gateway request was issued to the
4737//   service. For more information, see the error and message fields.
4738//
4739//   * InternalServerError
4740//   An internal server error has occurred during the request. For more information,
4741//   see the error and message fields.
4742//
4743// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/JoinDomain
4744func (c *StorageGateway) JoinDomain(input *JoinDomainInput) (*JoinDomainOutput, error) {
4745	req, out := c.JoinDomainRequest(input)
4746	return out, req.Send()
4747}
4748
4749// JoinDomainWithContext is the same as JoinDomain with the addition of
4750// the ability to pass a context and additional request options.
4751//
4752// See JoinDomain for details on how to use this API operation.
4753//
4754// The context must be non-nil and will be used for request cancellation. If
4755// the context is nil a panic will occur. In the future the SDK may create
4756// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4757// for more information on using Contexts.
4758func (c *StorageGateway) JoinDomainWithContext(ctx aws.Context, input *JoinDomainInput, opts ...request.Option) (*JoinDomainOutput, error) {
4759	req, out := c.JoinDomainRequest(input)
4760	req.SetContext(ctx)
4761	req.ApplyOptions(opts...)
4762	return out, req.Send()
4763}
4764
4765const opListAutomaticTapeCreationPolicies = "ListAutomaticTapeCreationPolicies"
4766
4767// ListAutomaticTapeCreationPoliciesRequest generates a "aws/request.Request" representing the
4768// client's request for the ListAutomaticTapeCreationPolicies operation. The "output" return
4769// value will be populated with the request's response once the request completes
4770// successfully.
4771//
4772// Use "Send" method on the returned Request to send the API call to the service.
4773// the "output" return value is not valid until after Send returns without error.
4774//
4775// See ListAutomaticTapeCreationPolicies for more information on using the ListAutomaticTapeCreationPolicies
4776// API call, and error handling.
4777//
4778// This method is useful when you want to inject custom logic or configuration
4779// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4780//
4781//
4782//    // Example sending a request using the ListAutomaticTapeCreationPoliciesRequest method.
4783//    req, resp := client.ListAutomaticTapeCreationPoliciesRequest(params)
4784//
4785//    err := req.Send()
4786//    if err == nil { // resp is now filled
4787//        fmt.Println(resp)
4788//    }
4789//
4790// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListAutomaticTapeCreationPolicies
4791func (c *StorageGateway) ListAutomaticTapeCreationPoliciesRequest(input *ListAutomaticTapeCreationPoliciesInput) (req *request.Request, output *ListAutomaticTapeCreationPoliciesOutput) {
4792	op := &request.Operation{
4793		Name:       opListAutomaticTapeCreationPolicies,
4794		HTTPMethod: "POST",
4795		HTTPPath:   "/",
4796	}
4797
4798	if input == nil {
4799		input = &ListAutomaticTapeCreationPoliciesInput{}
4800	}
4801
4802	output = &ListAutomaticTapeCreationPoliciesOutput{}
4803	req = c.newRequest(op, input, output)
4804	return
4805}
4806
4807// ListAutomaticTapeCreationPolicies API operation for AWS Storage Gateway.
4808//
4809// Lists the automatic tape creation policies for a gateway. If there are no
4810// automatic tape creation policies for the gateway, it returns an empty list.
4811//
4812// This operation is only supported for tape gateways.
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 ListAutomaticTapeCreationPolicies 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/ListAutomaticTapeCreationPolicies
4831func (c *StorageGateway) ListAutomaticTapeCreationPolicies(input *ListAutomaticTapeCreationPoliciesInput) (*ListAutomaticTapeCreationPoliciesOutput, error) {
4832	req, out := c.ListAutomaticTapeCreationPoliciesRequest(input)
4833	return out, req.Send()
4834}
4835
4836// ListAutomaticTapeCreationPoliciesWithContext is the same as ListAutomaticTapeCreationPolicies with the addition of
4837// the ability to pass a context and additional request options.
4838//
4839// See ListAutomaticTapeCreationPolicies 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) ListAutomaticTapeCreationPoliciesWithContext(ctx aws.Context, input *ListAutomaticTapeCreationPoliciesInput, opts ...request.Option) (*ListAutomaticTapeCreationPoliciesOutput, error) {
4846	req, out := c.ListAutomaticTapeCreationPoliciesRequest(input)
4847	req.SetContext(ctx)
4848	req.ApplyOptions(opts...)
4849	return out, req.Send()
4850}
4851
4852const opListFileShares = "ListFileShares"
4853
4854// ListFileSharesRequest generates a "aws/request.Request" representing the
4855// client's request for the ListFileShares 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 ListFileShares for more information on using the ListFileShares
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 ListFileSharesRequest method.
4870//    req, resp := client.ListFileSharesRequest(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/ListFileShares
4878func (c *StorageGateway) ListFileSharesRequest(input *ListFileSharesInput) (req *request.Request, output *ListFileSharesOutput) {
4879	op := &request.Operation{
4880		Name:       opListFileShares,
4881		HTTPMethod: "POST",
4882		HTTPPath:   "/",
4883		Paginator: &request.Paginator{
4884			InputTokens:     []string{"Marker"},
4885			OutputTokens:    []string{"NextMarker"},
4886			LimitToken:      "Limit",
4887			TruncationToken: "",
4888		},
4889	}
4890
4891	if input == nil {
4892		input = &ListFileSharesInput{}
4893	}
4894
4895	output = &ListFileSharesOutput{}
4896	req = c.newRequest(op, input, output)
4897	return
4898}
4899
4900// ListFileShares API operation for AWS Storage Gateway.
4901//
4902// Gets a list of the file shares for a specific file gateway, or the list of
4903// file shares that belong to the calling user account. This operation is only
4904// supported for file gateways.
4905//
4906// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4907// with awserr.Error's Code and Message methods to get detailed information about
4908// the error.
4909//
4910// See the AWS API reference guide for AWS Storage Gateway's
4911// API operation ListFileShares for usage and error information.
4912//
4913// Returned Error Types:
4914//   * InvalidGatewayRequestException
4915//   An exception occurred because an invalid gateway request was issued to the
4916//   service. For more information, see the error and message fields.
4917//
4918//   * InternalServerError
4919//   An internal server error has occurred during the request. For more information,
4920//   see the error and message fields.
4921//
4922// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileShares
4923func (c *StorageGateway) ListFileShares(input *ListFileSharesInput) (*ListFileSharesOutput, error) {
4924	req, out := c.ListFileSharesRequest(input)
4925	return out, req.Send()
4926}
4927
4928// ListFileSharesWithContext is the same as ListFileShares with the addition of
4929// the ability to pass a context and additional request options.
4930//
4931// See ListFileShares for details on how to use this API operation.
4932//
4933// The context must be non-nil and will be used for request cancellation. If
4934// the context is nil a panic will occur. In the future the SDK may create
4935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4936// for more information on using Contexts.
4937func (c *StorageGateway) ListFileSharesWithContext(ctx aws.Context, input *ListFileSharesInput, opts ...request.Option) (*ListFileSharesOutput, error) {
4938	req, out := c.ListFileSharesRequest(input)
4939	req.SetContext(ctx)
4940	req.ApplyOptions(opts...)
4941	return out, req.Send()
4942}
4943
4944// ListFileSharesPages iterates over the pages of a ListFileShares operation,
4945// calling the "fn" function with the response data for each page. To stop
4946// iterating, return false from the fn function.
4947//
4948// See ListFileShares method for more information on how to use this operation.
4949//
4950// Note: This operation can generate multiple requests to a service.
4951//
4952//    // Example iterating over at most 3 pages of a ListFileShares operation.
4953//    pageNum := 0
4954//    err := client.ListFileSharesPages(params,
4955//        func(page *storagegateway.ListFileSharesOutput, lastPage bool) bool {
4956//            pageNum++
4957//            fmt.Println(page)
4958//            return pageNum <= 3
4959//        })
4960//
4961func (c *StorageGateway) ListFileSharesPages(input *ListFileSharesInput, fn func(*ListFileSharesOutput, bool) bool) error {
4962	return c.ListFileSharesPagesWithContext(aws.BackgroundContext(), input, fn)
4963}
4964
4965// ListFileSharesPagesWithContext same as ListFileSharesPages except
4966// it takes a Context and allows setting request options on the pages.
4967//
4968// The context must be non-nil and will be used for request cancellation. If
4969// the context is nil a panic will occur. In the future the SDK may create
4970// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4971// for more information on using Contexts.
4972func (c *StorageGateway) ListFileSharesPagesWithContext(ctx aws.Context, input *ListFileSharesInput, fn func(*ListFileSharesOutput, bool) bool, opts ...request.Option) error {
4973	p := request.Pagination{
4974		NewRequest: func() (*request.Request, error) {
4975			var inCpy *ListFileSharesInput
4976			if input != nil {
4977				tmp := *input
4978				inCpy = &tmp
4979			}
4980			req, _ := c.ListFileSharesRequest(inCpy)
4981			req.SetContext(ctx)
4982			req.ApplyOptions(opts...)
4983			return req, nil
4984		},
4985	}
4986
4987	for p.Next() {
4988		if !fn(p.Page().(*ListFileSharesOutput), !p.HasNextPage()) {
4989			break
4990		}
4991	}
4992
4993	return p.Err()
4994}
4995
4996const opListGateways = "ListGateways"
4997
4998// ListGatewaysRequest generates a "aws/request.Request" representing the
4999// client's request for the ListGateways operation. The "output" return
5000// value will be populated with the request's response once the request completes
5001// successfully.
5002//
5003// Use "Send" method on the returned Request to send the API call to the service.
5004// the "output" return value is not valid until after Send returns without error.
5005//
5006// See ListGateways for more information on using the ListGateways
5007// API call, and error handling.
5008//
5009// This method is useful when you want to inject custom logic or configuration
5010// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5011//
5012//
5013//    // Example sending a request using the ListGatewaysRequest method.
5014//    req, resp := client.ListGatewaysRequest(params)
5015//
5016//    err := req.Send()
5017//    if err == nil { // resp is now filled
5018//        fmt.Println(resp)
5019//    }
5020//
5021// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListGateways
5022func (c *StorageGateway) ListGatewaysRequest(input *ListGatewaysInput) (req *request.Request, output *ListGatewaysOutput) {
5023	op := &request.Operation{
5024		Name:       opListGateways,
5025		HTTPMethod: "POST",
5026		HTTPPath:   "/",
5027		Paginator: &request.Paginator{
5028			InputTokens:     []string{"Marker"},
5029			OutputTokens:    []string{"Marker"},
5030			LimitToken:      "Limit",
5031			TruncationToken: "",
5032		},
5033	}
5034
5035	if input == nil {
5036		input = &ListGatewaysInput{}
5037	}
5038
5039	output = &ListGatewaysOutput{}
5040	req = c.newRequest(op, input, output)
5041	return
5042}
5043
5044// ListGateways API operation for AWS Storage Gateway.
5045//
5046// Lists gateways owned by an AWS account in an AWS Region specified in the
5047// request. The returned list is ordered by gateway Amazon Resource Name (ARN).
5048//
5049// By default, the operation returns a maximum of 100 gateways. This operation
5050// supports pagination that allows you to optionally reduce the number of gateways
5051// returned in a response.
5052//
5053// If you have more gateways than are returned in a response (that is, the response
5054// returns only a truncated list of your gateways), the response contains a
5055// marker that you can specify in your next request to fetch the next page of
5056// gateways.
5057//
5058// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5059// with awserr.Error's Code and Message methods to get detailed information about
5060// the error.
5061//
5062// See the AWS API reference guide for AWS Storage Gateway's
5063// API operation ListGateways for usage and error information.
5064//
5065// Returned Error Types:
5066//   * InvalidGatewayRequestException
5067//   An exception occurred because an invalid gateway request was issued to the
5068//   service. For more information, see the error and message fields.
5069//
5070//   * InternalServerError
5071//   An internal server error has occurred during the request. For more information,
5072//   see the error and message fields.
5073//
5074// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListGateways
5075func (c *StorageGateway) ListGateways(input *ListGatewaysInput) (*ListGatewaysOutput, error) {
5076	req, out := c.ListGatewaysRequest(input)
5077	return out, req.Send()
5078}
5079
5080// ListGatewaysWithContext is the same as ListGateways with the addition of
5081// the ability to pass a context and additional request options.
5082//
5083// See ListGateways for details on how to use this API operation.
5084//
5085// The context must be non-nil and will be used for request cancellation. If
5086// the context is nil a panic will occur. In the future the SDK may create
5087// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5088// for more information on using Contexts.
5089func (c *StorageGateway) ListGatewaysWithContext(ctx aws.Context, input *ListGatewaysInput, opts ...request.Option) (*ListGatewaysOutput, error) {
5090	req, out := c.ListGatewaysRequest(input)
5091	req.SetContext(ctx)
5092	req.ApplyOptions(opts...)
5093	return out, req.Send()
5094}
5095
5096// ListGatewaysPages iterates over the pages of a ListGateways operation,
5097// calling the "fn" function with the response data for each page. To stop
5098// iterating, return false from the fn function.
5099//
5100// See ListGateways method for more information on how to use this operation.
5101//
5102// Note: This operation can generate multiple requests to a service.
5103//
5104//    // Example iterating over at most 3 pages of a ListGateways operation.
5105//    pageNum := 0
5106//    err := client.ListGatewaysPages(params,
5107//        func(page *storagegateway.ListGatewaysOutput, lastPage bool) bool {
5108//            pageNum++
5109//            fmt.Println(page)
5110//            return pageNum <= 3
5111//        })
5112//
5113func (c *StorageGateway) ListGatewaysPages(input *ListGatewaysInput, fn func(*ListGatewaysOutput, bool) bool) error {
5114	return c.ListGatewaysPagesWithContext(aws.BackgroundContext(), input, fn)
5115}
5116
5117// ListGatewaysPagesWithContext same as ListGatewaysPages except
5118// it takes a Context and allows setting request options on the pages.
5119//
5120// The context must be non-nil and will be used for request cancellation. If
5121// the context is nil a panic will occur. In the future the SDK may create
5122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5123// for more information on using Contexts.
5124func (c *StorageGateway) ListGatewaysPagesWithContext(ctx aws.Context, input *ListGatewaysInput, fn func(*ListGatewaysOutput, bool) bool, opts ...request.Option) error {
5125	p := request.Pagination{
5126		NewRequest: func() (*request.Request, error) {
5127			var inCpy *ListGatewaysInput
5128			if input != nil {
5129				tmp := *input
5130				inCpy = &tmp
5131			}
5132			req, _ := c.ListGatewaysRequest(inCpy)
5133			req.SetContext(ctx)
5134			req.ApplyOptions(opts...)
5135			return req, nil
5136		},
5137	}
5138
5139	for p.Next() {
5140		if !fn(p.Page().(*ListGatewaysOutput), !p.HasNextPage()) {
5141			break
5142		}
5143	}
5144
5145	return p.Err()
5146}
5147
5148const opListLocalDisks = "ListLocalDisks"
5149
5150// ListLocalDisksRequest generates a "aws/request.Request" representing the
5151// client's request for the ListLocalDisks operation. The "output" return
5152// value will be populated with the request's response once the request completes
5153// successfully.
5154//
5155// Use "Send" method on the returned Request to send the API call to the service.
5156// the "output" return value is not valid until after Send returns without error.
5157//
5158// See ListLocalDisks for more information on using the ListLocalDisks
5159// API call, and error handling.
5160//
5161// This method is useful when you want to inject custom logic or configuration
5162// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5163//
5164//
5165//    // Example sending a request using the ListLocalDisksRequest method.
5166//    req, resp := client.ListLocalDisksRequest(params)
5167//
5168//    err := req.Send()
5169//    if err == nil { // resp is now filled
5170//        fmt.Println(resp)
5171//    }
5172//
5173// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListLocalDisks
5174func (c *StorageGateway) ListLocalDisksRequest(input *ListLocalDisksInput) (req *request.Request, output *ListLocalDisksOutput) {
5175	op := &request.Operation{
5176		Name:       opListLocalDisks,
5177		HTTPMethod: "POST",
5178		HTTPPath:   "/",
5179	}
5180
5181	if input == nil {
5182		input = &ListLocalDisksInput{}
5183	}
5184
5185	output = &ListLocalDisksOutput{}
5186	req = c.newRequest(op, input, output)
5187	return
5188}
5189
5190// ListLocalDisks API operation for AWS Storage Gateway.
5191//
5192// Returns a list of the gateway's local disks. To specify which gateway to
5193// describe, you use the Amazon Resource Name (ARN) of the gateway in the body
5194// of the request.
5195//
5196// The request returns a list of all disks, specifying which are configured
5197// as working storage, cache storage, or stored volume or not configured at
5198// all. The response includes a DiskStatus field. This field can have a value
5199// of present (the disk is available to use), missing (the disk is no longer
5200// connected to the gateway), or mismatch (the disk node is occupied by a disk
5201// that has incorrect metadata or the disk content is corrupted).
5202//
5203// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5204// with awserr.Error's Code and Message methods to get detailed information about
5205// the error.
5206//
5207// See the AWS API reference guide for AWS Storage Gateway's
5208// API operation ListLocalDisks for usage and error information.
5209//
5210// Returned Error Types:
5211//   * InvalidGatewayRequestException
5212//   An exception occurred because an invalid gateway request was issued to the
5213//   service. For more information, see the error and message fields.
5214//
5215//   * InternalServerError
5216//   An internal server error has occurred during the request. For more information,
5217//   see the error and message fields.
5218//
5219// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListLocalDisks
5220func (c *StorageGateway) ListLocalDisks(input *ListLocalDisksInput) (*ListLocalDisksOutput, error) {
5221	req, out := c.ListLocalDisksRequest(input)
5222	return out, req.Send()
5223}
5224
5225// ListLocalDisksWithContext is the same as ListLocalDisks with the addition of
5226// the ability to pass a context and additional request options.
5227//
5228// See ListLocalDisks for details on how to use this API operation.
5229//
5230// The context must be non-nil and will be used for request cancellation. If
5231// the context is nil a panic will occur. In the future the SDK may create
5232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5233// for more information on using Contexts.
5234func (c *StorageGateway) ListLocalDisksWithContext(ctx aws.Context, input *ListLocalDisksInput, opts ...request.Option) (*ListLocalDisksOutput, error) {
5235	req, out := c.ListLocalDisksRequest(input)
5236	req.SetContext(ctx)
5237	req.ApplyOptions(opts...)
5238	return out, req.Send()
5239}
5240
5241const opListTagsForResource = "ListTagsForResource"
5242
5243// ListTagsForResourceRequest generates a "aws/request.Request" representing the
5244// client's request for the ListTagsForResource operation. The "output" return
5245// value will be populated with the request's response once the request completes
5246// successfully.
5247//
5248// Use "Send" method on the returned Request to send the API call to the service.
5249// the "output" return value is not valid until after Send returns without error.
5250//
5251// See ListTagsForResource for more information on using the ListTagsForResource
5252// API call, and error handling.
5253//
5254// This method is useful when you want to inject custom logic or configuration
5255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5256//
5257//
5258//    // Example sending a request using the ListTagsForResourceRequest method.
5259//    req, resp := client.ListTagsForResourceRequest(params)
5260//
5261//    err := req.Send()
5262//    if err == nil { // resp is now filled
5263//        fmt.Println(resp)
5264//    }
5265//
5266// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTagsForResource
5267func (c *StorageGateway) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
5268	op := &request.Operation{
5269		Name:       opListTagsForResource,
5270		HTTPMethod: "POST",
5271		HTTPPath:   "/",
5272		Paginator: &request.Paginator{
5273			InputTokens:     []string{"Marker"},
5274			OutputTokens:    []string{"Marker"},
5275			LimitToken:      "Limit",
5276			TruncationToken: "",
5277		},
5278	}
5279
5280	if input == nil {
5281		input = &ListTagsForResourceInput{}
5282	}
5283
5284	output = &ListTagsForResourceOutput{}
5285	req = c.newRequest(op, input, output)
5286	return
5287}
5288
5289// ListTagsForResource API operation for AWS Storage Gateway.
5290//
5291// Lists the tags that have been added to the specified resource. This operation
5292// is supported in storage gateways of all types.
5293//
5294// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5295// with awserr.Error's Code and Message methods to get detailed information about
5296// the error.
5297//
5298// See the AWS API reference guide for AWS Storage Gateway's
5299// API operation ListTagsForResource for usage and error information.
5300//
5301// Returned Error Types:
5302//   * InvalidGatewayRequestException
5303//   An exception occurred because an invalid gateway request was issued to the
5304//   service. For more information, see the error and message fields.
5305//
5306//   * InternalServerError
5307//   An internal server error has occurred during the request. For more information,
5308//   see the error and message fields.
5309//
5310// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTagsForResource
5311func (c *StorageGateway) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
5312	req, out := c.ListTagsForResourceRequest(input)
5313	return out, req.Send()
5314}
5315
5316// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
5317// the ability to pass a context and additional request options.
5318//
5319// See ListTagsForResource for details on how to use this API operation.
5320//
5321// The context must be non-nil and will be used for request cancellation. If
5322// the context is nil a panic will occur. In the future the SDK may create
5323// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5324// for more information on using Contexts.
5325func (c *StorageGateway) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
5326	req, out := c.ListTagsForResourceRequest(input)
5327	req.SetContext(ctx)
5328	req.ApplyOptions(opts...)
5329	return out, req.Send()
5330}
5331
5332// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
5333// calling the "fn" function with the response data for each page. To stop
5334// iterating, return false from the fn function.
5335//
5336// See ListTagsForResource method for more information on how to use this operation.
5337//
5338// Note: This operation can generate multiple requests to a service.
5339//
5340//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
5341//    pageNum := 0
5342//    err := client.ListTagsForResourcePages(params,
5343//        func(page *storagegateway.ListTagsForResourceOutput, lastPage bool) bool {
5344//            pageNum++
5345//            fmt.Println(page)
5346//            return pageNum <= 3
5347//        })
5348//
5349func (c *StorageGateway) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
5350	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
5351}
5352
5353// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
5354// it takes a Context and allows setting request options on the pages.
5355//
5356// The context must be non-nil and will be used for request cancellation. If
5357// the context is nil a panic will occur. In the future the SDK may create
5358// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5359// for more information on using Contexts.
5360func (c *StorageGateway) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
5361	p := request.Pagination{
5362		NewRequest: func() (*request.Request, error) {
5363			var inCpy *ListTagsForResourceInput
5364			if input != nil {
5365				tmp := *input
5366				inCpy = &tmp
5367			}
5368			req, _ := c.ListTagsForResourceRequest(inCpy)
5369			req.SetContext(ctx)
5370			req.ApplyOptions(opts...)
5371			return req, nil
5372		},
5373	}
5374
5375	for p.Next() {
5376		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
5377			break
5378		}
5379	}
5380
5381	return p.Err()
5382}
5383
5384const opListTapePools = "ListTapePools"
5385
5386// ListTapePoolsRequest generates a "aws/request.Request" representing the
5387// client's request for the ListTapePools operation. The "output" return
5388// value will be populated with the request's response once the request completes
5389// successfully.
5390//
5391// Use "Send" method on the returned Request to send the API call to the service.
5392// the "output" return value is not valid until after Send returns without error.
5393//
5394// See ListTapePools for more information on using the ListTapePools
5395// API call, and error handling.
5396//
5397// This method is useful when you want to inject custom logic or configuration
5398// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5399//
5400//
5401//    // Example sending a request using the ListTapePoolsRequest method.
5402//    req, resp := client.ListTapePoolsRequest(params)
5403//
5404//    err := req.Send()
5405//    if err == nil { // resp is now filled
5406//        fmt.Println(resp)
5407//    }
5408//
5409// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapePools
5410func (c *StorageGateway) ListTapePoolsRequest(input *ListTapePoolsInput) (req *request.Request, output *ListTapePoolsOutput) {
5411	op := &request.Operation{
5412		Name:       opListTapePools,
5413		HTTPMethod: "POST",
5414		HTTPPath:   "/",
5415		Paginator: &request.Paginator{
5416			InputTokens:     []string{"Marker"},
5417			OutputTokens:    []string{"Marker"},
5418			LimitToken:      "Limit",
5419			TruncationToken: "",
5420		},
5421	}
5422
5423	if input == nil {
5424		input = &ListTapePoolsInput{}
5425	}
5426
5427	output = &ListTapePoolsOutput{}
5428	req = c.newRequest(op, input, output)
5429	return
5430}
5431
5432// ListTapePools API operation for AWS Storage Gateway.
5433//
5434// Lists custom tape pools. You specify custom tape pools to list by specifying
5435// one or more custom tape pool Amazon Resource Names (ARNs). If you don't specify
5436// a custom tape pool ARN, the operation lists all custom tape pools.
5437//
5438// This operation supports pagination. You can optionally specify the Limit
5439// parameter in the body to limit the number of tape pools in the response.
5440// If the number of tape pools returned in the response is truncated, the response
5441// includes a Marker element that you can use in your subsequent request to
5442// retrieve the next set of tape pools.
5443//
5444// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5445// with awserr.Error's Code and Message methods to get detailed information about
5446// the error.
5447//
5448// See the AWS API reference guide for AWS Storage Gateway's
5449// API operation ListTapePools for usage and error information.
5450//
5451// Returned Error Types:
5452//   * InvalidGatewayRequestException
5453//   An exception occurred because an invalid gateway request was issued to the
5454//   service. For more information, see the error and message fields.
5455//
5456//   * InternalServerError
5457//   An internal server error has occurred during the request. For more information,
5458//   see the error and message fields.
5459//
5460// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapePools
5461func (c *StorageGateway) ListTapePools(input *ListTapePoolsInput) (*ListTapePoolsOutput, error) {
5462	req, out := c.ListTapePoolsRequest(input)
5463	return out, req.Send()
5464}
5465
5466// ListTapePoolsWithContext is the same as ListTapePools with the addition of
5467// the ability to pass a context and additional request options.
5468//
5469// See ListTapePools for details on how to use this API operation.
5470//
5471// The context must be non-nil and will be used for request cancellation. If
5472// the context is nil a panic will occur. In the future the SDK may create
5473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5474// for more information on using Contexts.
5475func (c *StorageGateway) ListTapePoolsWithContext(ctx aws.Context, input *ListTapePoolsInput, opts ...request.Option) (*ListTapePoolsOutput, error) {
5476	req, out := c.ListTapePoolsRequest(input)
5477	req.SetContext(ctx)
5478	req.ApplyOptions(opts...)
5479	return out, req.Send()
5480}
5481
5482// ListTapePoolsPages iterates over the pages of a ListTapePools operation,
5483// calling the "fn" function with the response data for each page. To stop
5484// iterating, return false from the fn function.
5485//
5486// See ListTapePools method for more information on how to use this operation.
5487//
5488// Note: This operation can generate multiple requests to a service.
5489//
5490//    // Example iterating over at most 3 pages of a ListTapePools operation.
5491//    pageNum := 0
5492//    err := client.ListTapePoolsPages(params,
5493//        func(page *storagegateway.ListTapePoolsOutput, lastPage bool) bool {
5494//            pageNum++
5495//            fmt.Println(page)
5496//            return pageNum <= 3
5497//        })
5498//
5499func (c *StorageGateway) ListTapePoolsPages(input *ListTapePoolsInput, fn func(*ListTapePoolsOutput, bool) bool) error {
5500	return c.ListTapePoolsPagesWithContext(aws.BackgroundContext(), input, fn)
5501}
5502
5503// ListTapePoolsPagesWithContext same as ListTapePoolsPages except
5504// it takes a Context and allows setting request options on the pages.
5505//
5506// The context must be non-nil and will be used for request cancellation. If
5507// the context is nil a panic will occur. In the future the SDK may create
5508// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5509// for more information on using Contexts.
5510func (c *StorageGateway) ListTapePoolsPagesWithContext(ctx aws.Context, input *ListTapePoolsInput, fn func(*ListTapePoolsOutput, bool) bool, opts ...request.Option) error {
5511	p := request.Pagination{
5512		NewRequest: func() (*request.Request, error) {
5513			var inCpy *ListTapePoolsInput
5514			if input != nil {
5515				tmp := *input
5516				inCpy = &tmp
5517			}
5518			req, _ := c.ListTapePoolsRequest(inCpy)
5519			req.SetContext(ctx)
5520			req.ApplyOptions(opts...)
5521			return req, nil
5522		},
5523	}
5524
5525	for p.Next() {
5526		if !fn(p.Page().(*ListTapePoolsOutput), !p.HasNextPage()) {
5527			break
5528		}
5529	}
5530
5531	return p.Err()
5532}
5533
5534const opListTapes = "ListTapes"
5535
5536// ListTapesRequest generates a "aws/request.Request" representing the
5537// client's request for the ListTapes operation. The "output" return
5538// value will be populated with the request's response once the request completes
5539// successfully.
5540//
5541// Use "Send" method on the returned Request to send the API call to the service.
5542// the "output" return value is not valid until after Send returns without error.
5543//
5544// See ListTapes for more information on using the ListTapes
5545// API call, and error handling.
5546//
5547// This method is useful when you want to inject custom logic or configuration
5548// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5549//
5550//
5551//    // Example sending a request using the ListTapesRequest method.
5552//    req, resp := client.ListTapesRequest(params)
5553//
5554//    err := req.Send()
5555//    if err == nil { // resp is now filled
5556//        fmt.Println(resp)
5557//    }
5558//
5559// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapes
5560func (c *StorageGateway) ListTapesRequest(input *ListTapesInput) (req *request.Request, output *ListTapesOutput) {
5561	op := &request.Operation{
5562		Name:       opListTapes,
5563		HTTPMethod: "POST",
5564		HTTPPath:   "/",
5565		Paginator: &request.Paginator{
5566			InputTokens:     []string{"Marker"},
5567			OutputTokens:    []string{"Marker"},
5568			LimitToken:      "Limit",
5569			TruncationToken: "",
5570		},
5571	}
5572
5573	if input == nil {
5574		input = &ListTapesInput{}
5575	}
5576
5577	output = &ListTapesOutput{}
5578	req = c.newRequest(op, input, output)
5579	return
5580}
5581
5582// ListTapes API operation for AWS Storage Gateway.
5583//
5584// Lists virtual tapes in your virtual tape library (VTL) and your virtual tape
5585// shelf (VTS). You specify the tapes to list by specifying one or more tape
5586// Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation
5587// lists all virtual tapes in both your VTL and VTS.
5588//
5589// This operation supports pagination. By default, the operation returns a maximum
5590// of up to 100 tapes. You can optionally specify the Limit parameter in the
5591// body to limit the number of tapes in the response. If the number of tapes
5592// returned in the response is truncated, the response includes a Marker element
5593// that you can use in your subsequent request to retrieve the next set of tapes.
5594// This operation is only supported in the tape gateway type.
5595//
5596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5597// with awserr.Error's Code and Message methods to get detailed information about
5598// the error.
5599//
5600// See the AWS API reference guide for AWS Storage Gateway's
5601// API operation ListTapes for usage and error information.
5602//
5603// Returned Error Types:
5604//   * InvalidGatewayRequestException
5605//   An exception occurred because an invalid gateway request was issued to the
5606//   service. For more information, see the error and message fields.
5607//
5608//   * InternalServerError
5609//   An internal server error has occurred during the request. For more information,
5610//   see the error and message fields.
5611//
5612// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapes
5613func (c *StorageGateway) ListTapes(input *ListTapesInput) (*ListTapesOutput, error) {
5614	req, out := c.ListTapesRequest(input)
5615	return out, req.Send()
5616}
5617
5618// ListTapesWithContext is the same as ListTapes with the addition of
5619// the ability to pass a context and additional request options.
5620//
5621// See ListTapes for details on how to use this API operation.
5622//
5623// The context must be non-nil and will be used for request cancellation. If
5624// the context is nil a panic will occur. In the future the SDK may create
5625// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5626// for more information on using Contexts.
5627func (c *StorageGateway) ListTapesWithContext(ctx aws.Context, input *ListTapesInput, opts ...request.Option) (*ListTapesOutput, error) {
5628	req, out := c.ListTapesRequest(input)
5629	req.SetContext(ctx)
5630	req.ApplyOptions(opts...)
5631	return out, req.Send()
5632}
5633
5634// ListTapesPages iterates over the pages of a ListTapes operation,
5635// calling the "fn" function with the response data for each page. To stop
5636// iterating, return false from the fn function.
5637//
5638// See ListTapes method for more information on how to use this operation.
5639//
5640// Note: This operation can generate multiple requests to a service.
5641//
5642//    // Example iterating over at most 3 pages of a ListTapes operation.
5643//    pageNum := 0
5644//    err := client.ListTapesPages(params,
5645//        func(page *storagegateway.ListTapesOutput, lastPage bool) bool {
5646//            pageNum++
5647//            fmt.Println(page)
5648//            return pageNum <= 3
5649//        })
5650//
5651func (c *StorageGateway) ListTapesPages(input *ListTapesInput, fn func(*ListTapesOutput, bool) bool) error {
5652	return c.ListTapesPagesWithContext(aws.BackgroundContext(), input, fn)
5653}
5654
5655// ListTapesPagesWithContext same as ListTapesPages except
5656// it takes a Context and allows setting request options on the pages.
5657//
5658// The context must be non-nil and will be used for request cancellation. If
5659// the context is nil a panic will occur. In the future the SDK may create
5660// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5661// for more information on using Contexts.
5662func (c *StorageGateway) ListTapesPagesWithContext(ctx aws.Context, input *ListTapesInput, fn func(*ListTapesOutput, bool) bool, opts ...request.Option) error {
5663	p := request.Pagination{
5664		NewRequest: func() (*request.Request, error) {
5665			var inCpy *ListTapesInput
5666			if input != nil {
5667				tmp := *input
5668				inCpy = &tmp
5669			}
5670			req, _ := c.ListTapesRequest(inCpy)
5671			req.SetContext(ctx)
5672			req.ApplyOptions(opts...)
5673			return req, nil
5674		},
5675	}
5676
5677	for p.Next() {
5678		if !fn(p.Page().(*ListTapesOutput), !p.HasNextPage()) {
5679			break
5680		}
5681	}
5682
5683	return p.Err()
5684}
5685
5686const opListVolumeInitiators = "ListVolumeInitiators"
5687
5688// ListVolumeInitiatorsRequest generates a "aws/request.Request" representing the
5689// client's request for the ListVolumeInitiators operation. The "output" return
5690// value will be populated with the request's response once the request completes
5691// successfully.
5692//
5693// Use "Send" method on the returned Request to send the API call to the service.
5694// the "output" return value is not valid until after Send returns without error.
5695//
5696// See ListVolumeInitiators for more information on using the ListVolumeInitiators
5697// API call, and error handling.
5698//
5699// This method is useful when you want to inject custom logic or configuration
5700// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5701//
5702//
5703//    // Example sending a request using the ListVolumeInitiatorsRequest method.
5704//    req, resp := client.ListVolumeInitiatorsRequest(params)
5705//
5706//    err := req.Send()
5707//    if err == nil { // resp is now filled
5708//        fmt.Println(resp)
5709//    }
5710//
5711// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeInitiators
5712func (c *StorageGateway) ListVolumeInitiatorsRequest(input *ListVolumeInitiatorsInput) (req *request.Request, output *ListVolumeInitiatorsOutput) {
5713	op := &request.Operation{
5714		Name:       opListVolumeInitiators,
5715		HTTPMethod: "POST",
5716		HTTPPath:   "/",
5717	}
5718
5719	if input == nil {
5720		input = &ListVolumeInitiatorsInput{}
5721	}
5722
5723	output = &ListVolumeInitiatorsOutput{}
5724	req = c.newRequest(op, input, output)
5725	return
5726}
5727
5728// ListVolumeInitiators API operation for AWS Storage Gateway.
5729//
5730// Lists iSCSI initiators that are connected to a volume. You can use this operation
5731// to determine whether a volume is being used or not. This operation is only
5732// supported in the cached volume and stored volume gateway types.
5733//
5734// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5735// with awserr.Error's Code and Message methods to get detailed information about
5736// the error.
5737//
5738// See the AWS API reference guide for AWS Storage Gateway's
5739// API operation ListVolumeInitiators for usage and error information.
5740//
5741// Returned Error Types:
5742//   * InvalidGatewayRequestException
5743//   An exception occurred because an invalid gateway request was issued to the
5744//   service. For more information, see the error and message fields.
5745//
5746//   * InternalServerError
5747//   An internal server error has occurred during the request. For more information,
5748//   see the error and message fields.
5749//
5750// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeInitiators
5751func (c *StorageGateway) ListVolumeInitiators(input *ListVolumeInitiatorsInput) (*ListVolumeInitiatorsOutput, error) {
5752	req, out := c.ListVolumeInitiatorsRequest(input)
5753	return out, req.Send()
5754}
5755
5756// ListVolumeInitiatorsWithContext is the same as ListVolumeInitiators with the addition of
5757// the ability to pass a context and additional request options.
5758//
5759// See ListVolumeInitiators for details on how to use this API operation.
5760//
5761// The context must be non-nil and will be used for request cancellation. If
5762// the context is nil a panic will occur. In the future the SDK may create
5763// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5764// for more information on using Contexts.
5765func (c *StorageGateway) ListVolumeInitiatorsWithContext(ctx aws.Context, input *ListVolumeInitiatorsInput, opts ...request.Option) (*ListVolumeInitiatorsOutput, error) {
5766	req, out := c.ListVolumeInitiatorsRequest(input)
5767	req.SetContext(ctx)
5768	req.ApplyOptions(opts...)
5769	return out, req.Send()
5770}
5771
5772const opListVolumeRecoveryPoints = "ListVolumeRecoveryPoints"
5773
5774// ListVolumeRecoveryPointsRequest generates a "aws/request.Request" representing the
5775// client's request for the ListVolumeRecoveryPoints operation. The "output" return
5776// value will be populated with the request's response once the request completes
5777// successfully.
5778//
5779// Use "Send" method on the returned Request to send the API call to the service.
5780// the "output" return value is not valid until after Send returns without error.
5781//
5782// See ListVolumeRecoveryPoints for more information on using the ListVolumeRecoveryPoints
5783// API call, and error handling.
5784//
5785// This method is useful when you want to inject custom logic or configuration
5786// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5787//
5788//
5789//    // Example sending a request using the ListVolumeRecoveryPointsRequest method.
5790//    req, resp := client.ListVolumeRecoveryPointsRequest(params)
5791//
5792//    err := req.Send()
5793//    if err == nil { // resp is now filled
5794//        fmt.Println(resp)
5795//    }
5796//
5797// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeRecoveryPoints
5798func (c *StorageGateway) ListVolumeRecoveryPointsRequest(input *ListVolumeRecoveryPointsInput) (req *request.Request, output *ListVolumeRecoveryPointsOutput) {
5799	op := &request.Operation{
5800		Name:       opListVolumeRecoveryPoints,
5801		HTTPMethod: "POST",
5802		HTTPPath:   "/",
5803	}
5804
5805	if input == nil {
5806		input = &ListVolumeRecoveryPointsInput{}
5807	}
5808
5809	output = &ListVolumeRecoveryPointsOutput{}
5810	req = c.newRequest(op, input, output)
5811	return
5812}
5813
5814// ListVolumeRecoveryPoints API operation for AWS Storage Gateway.
5815//
5816// Lists the recovery points for a specified gateway. This operation is only
5817// supported in the cached volume gateway type.
5818//
5819// Each cache volume has one recovery point. A volume recovery point is a point
5820// in time at which all data of the volume is consistent and from which you
5821// can create a snapshot or clone a new cached volume from a source volume.
5822// To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint
5823// operation.
5824//
5825// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5826// with awserr.Error's Code and Message methods to get detailed information about
5827// the error.
5828//
5829// See the AWS API reference guide for AWS Storage Gateway's
5830// API operation ListVolumeRecoveryPoints for usage and error information.
5831//
5832// Returned Error Types:
5833//   * InvalidGatewayRequestException
5834//   An exception occurred because an invalid gateway request was issued to the
5835//   service. For more information, see the error and message fields.
5836//
5837//   * InternalServerError
5838//   An internal server error has occurred during the request. For more information,
5839//   see the error and message fields.
5840//
5841// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeRecoveryPoints
5842func (c *StorageGateway) ListVolumeRecoveryPoints(input *ListVolumeRecoveryPointsInput) (*ListVolumeRecoveryPointsOutput, error) {
5843	req, out := c.ListVolumeRecoveryPointsRequest(input)
5844	return out, req.Send()
5845}
5846
5847// ListVolumeRecoveryPointsWithContext is the same as ListVolumeRecoveryPoints with the addition of
5848// the ability to pass a context and additional request options.
5849//
5850// See ListVolumeRecoveryPoints for details on how to use this API operation.
5851//
5852// The context must be non-nil and will be used for request cancellation. If
5853// the context is nil a panic will occur. In the future the SDK may create
5854// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5855// for more information on using Contexts.
5856func (c *StorageGateway) ListVolumeRecoveryPointsWithContext(ctx aws.Context, input *ListVolumeRecoveryPointsInput, opts ...request.Option) (*ListVolumeRecoveryPointsOutput, error) {
5857	req, out := c.ListVolumeRecoveryPointsRequest(input)
5858	req.SetContext(ctx)
5859	req.ApplyOptions(opts...)
5860	return out, req.Send()
5861}
5862
5863const opListVolumes = "ListVolumes"
5864
5865// ListVolumesRequest generates a "aws/request.Request" representing the
5866// client's request for the ListVolumes operation. The "output" return
5867// value will be populated with the request's response once the request completes
5868// successfully.
5869//
5870// Use "Send" method on the returned Request to send the API call to the service.
5871// the "output" return value is not valid until after Send returns without error.
5872//
5873// See ListVolumes for more information on using the ListVolumes
5874// API call, and error handling.
5875//
5876// This method is useful when you want to inject custom logic or configuration
5877// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5878//
5879//
5880//    // Example sending a request using the ListVolumesRequest method.
5881//    req, resp := client.ListVolumesRequest(params)
5882//
5883//    err := req.Send()
5884//    if err == nil { // resp is now filled
5885//        fmt.Println(resp)
5886//    }
5887//
5888// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumes
5889func (c *StorageGateway) ListVolumesRequest(input *ListVolumesInput) (req *request.Request, output *ListVolumesOutput) {
5890	op := &request.Operation{
5891		Name:       opListVolumes,
5892		HTTPMethod: "POST",
5893		HTTPPath:   "/",
5894		Paginator: &request.Paginator{
5895			InputTokens:     []string{"Marker"},
5896			OutputTokens:    []string{"Marker"},
5897			LimitToken:      "Limit",
5898			TruncationToken: "",
5899		},
5900	}
5901
5902	if input == nil {
5903		input = &ListVolumesInput{}
5904	}
5905
5906	output = &ListVolumesOutput{}
5907	req = c.newRequest(op, input, output)
5908	return
5909}
5910
5911// ListVolumes API operation for AWS Storage Gateway.
5912//
5913// Lists the iSCSI stored volumes of a gateway. Results are sorted by volume
5914// ARN. The response includes only the volume ARNs. If you want additional volume
5915// information, use the DescribeStorediSCSIVolumes or the DescribeCachediSCSIVolumes
5916// API.
5917//
5918// The operation supports pagination. By default, the operation returns a maximum
5919// of up to 100 volumes. You can optionally specify the Limit field in the body
5920// to limit the number of volumes in the response. If the number of volumes
5921// returned in the response is truncated, the response includes a Marker field.
5922// You can use this Marker value in your subsequent request to retrieve the
5923// next set of volumes. This operation is only supported in the cached volume
5924// and stored volume gateway types.
5925//
5926// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5927// with awserr.Error's Code and Message methods to get detailed information about
5928// the error.
5929//
5930// See the AWS API reference guide for AWS Storage Gateway's
5931// API operation ListVolumes for usage and error information.
5932//
5933// Returned Error Types:
5934//   * InvalidGatewayRequestException
5935//   An exception occurred because an invalid gateway request was issued to the
5936//   service. For more information, see the error and message fields.
5937//
5938//   * InternalServerError
5939//   An internal server error has occurred during the request. For more information,
5940//   see the error and message fields.
5941//
5942// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumes
5943func (c *StorageGateway) ListVolumes(input *ListVolumesInput) (*ListVolumesOutput, error) {
5944	req, out := c.ListVolumesRequest(input)
5945	return out, req.Send()
5946}
5947
5948// ListVolumesWithContext is the same as ListVolumes with the addition of
5949// the ability to pass a context and additional request options.
5950//
5951// See ListVolumes for details on how to use this API operation.
5952//
5953// The context must be non-nil and will be used for request cancellation. If
5954// the context is nil a panic will occur. In the future the SDK may create
5955// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5956// for more information on using Contexts.
5957func (c *StorageGateway) ListVolumesWithContext(ctx aws.Context, input *ListVolumesInput, opts ...request.Option) (*ListVolumesOutput, error) {
5958	req, out := c.ListVolumesRequest(input)
5959	req.SetContext(ctx)
5960	req.ApplyOptions(opts...)
5961	return out, req.Send()
5962}
5963
5964// ListVolumesPages iterates over the pages of a ListVolumes operation,
5965// calling the "fn" function with the response data for each page. To stop
5966// iterating, return false from the fn function.
5967//
5968// See ListVolumes method for more information on how to use this operation.
5969//
5970// Note: This operation can generate multiple requests to a service.
5971//
5972//    // Example iterating over at most 3 pages of a ListVolumes operation.
5973//    pageNum := 0
5974//    err := client.ListVolumesPages(params,
5975//        func(page *storagegateway.ListVolumesOutput, lastPage bool) bool {
5976//            pageNum++
5977//            fmt.Println(page)
5978//            return pageNum <= 3
5979//        })
5980//
5981func (c *StorageGateway) ListVolumesPages(input *ListVolumesInput, fn func(*ListVolumesOutput, bool) bool) error {
5982	return c.ListVolumesPagesWithContext(aws.BackgroundContext(), input, fn)
5983}
5984
5985// ListVolumesPagesWithContext same as ListVolumesPages except
5986// it takes a Context and allows setting request options on the pages.
5987//
5988// The context must be non-nil and will be used for request cancellation. If
5989// the context is nil a panic will occur. In the future the SDK may create
5990// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5991// for more information on using Contexts.
5992func (c *StorageGateway) ListVolumesPagesWithContext(ctx aws.Context, input *ListVolumesInput, fn func(*ListVolumesOutput, bool) bool, opts ...request.Option) error {
5993	p := request.Pagination{
5994		NewRequest: func() (*request.Request, error) {
5995			var inCpy *ListVolumesInput
5996			if input != nil {
5997				tmp := *input
5998				inCpy = &tmp
5999			}
6000			req, _ := c.ListVolumesRequest(inCpy)
6001			req.SetContext(ctx)
6002			req.ApplyOptions(opts...)
6003			return req, nil
6004		},
6005	}
6006
6007	for p.Next() {
6008		if !fn(p.Page().(*ListVolumesOutput), !p.HasNextPage()) {
6009			break
6010		}
6011	}
6012
6013	return p.Err()
6014}
6015
6016const opNotifyWhenUploaded = "NotifyWhenUploaded"
6017
6018// NotifyWhenUploadedRequest generates a "aws/request.Request" representing the
6019// client's request for the NotifyWhenUploaded operation. The "output" return
6020// value will be populated with the request's response once the request completes
6021// successfully.
6022//
6023// Use "Send" method on the returned Request to send the API call to the service.
6024// the "output" return value is not valid until after Send returns without error.
6025//
6026// See NotifyWhenUploaded for more information on using the NotifyWhenUploaded
6027// API call, and error handling.
6028//
6029// This method is useful when you want to inject custom logic or configuration
6030// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6031//
6032//
6033//    // Example sending a request using the NotifyWhenUploadedRequest method.
6034//    req, resp := client.NotifyWhenUploadedRequest(params)
6035//
6036//    err := req.Send()
6037//    if err == nil { // resp is now filled
6038//        fmt.Println(resp)
6039//    }
6040//
6041// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/NotifyWhenUploaded
6042func (c *StorageGateway) NotifyWhenUploadedRequest(input *NotifyWhenUploadedInput) (req *request.Request, output *NotifyWhenUploadedOutput) {
6043	op := &request.Operation{
6044		Name:       opNotifyWhenUploaded,
6045		HTTPMethod: "POST",
6046		HTTPPath:   "/",
6047	}
6048
6049	if input == nil {
6050		input = &NotifyWhenUploadedInput{}
6051	}
6052
6053	output = &NotifyWhenUploadedOutput{}
6054	req = c.newRequest(op, input, output)
6055	return
6056}
6057
6058// NotifyWhenUploaded API operation for AWS Storage Gateway.
6059//
6060// Sends you notification through CloudWatch Events when all files written to
6061// your file share have been uploaded to Amazon S3.
6062//
6063// AWS Storage Gateway can send a notification through Amazon CloudWatch Events
6064// when all files written to your file share up to that point in time have been
6065// uploaded to Amazon S3. These files include files written to the file share
6066// up to the time that you make a request for notification. When the upload
6067// is done, Storage Gateway sends you notification through an Amazon CloudWatch
6068// Event. You can configure CloudWatch Events to send the notification through
6069// event targets such as Amazon SNS or AWS Lambda function. This operation is
6070// only supported for file gateways.
6071//
6072// For more information, see Getting file upload notification (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-upload-notification)
6073// in the AWS Storage Gateway User Guide.
6074//
6075// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6076// with awserr.Error's Code and Message methods to get detailed information about
6077// the error.
6078//
6079// See the AWS API reference guide for AWS Storage Gateway's
6080// API operation NotifyWhenUploaded for usage and error information.
6081//
6082// Returned Error Types:
6083//   * InvalidGatewayRequestException
6084//   An exception occurred because an invalid gateway request was issued to the
6085//   service. For more information, see the error and message fields.
6086//
6087//   * InternalServerError
6088//   An internal server error has occurred during the request. For more information,
6089//   see the error and message fields.
6090//
6091// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/NotifyWhenUploaded
6092func (c *StorageGateway) NotifyWhenUploaded(input *NotifyWhenUploadedInput) (*NotifyWhenUploadedOutput, error) {
6093	req, out := c.NotifyWhenUploadedRequest(input)
6094	return out, req.Send()
6095}
6096
6097// NotifyWhenUploadedWithContext is the same as NotifyWhenUploaded with the addition of
6098// the ability to pass a context and additional request options.
6099//
6100// See NotifyWhenUploaded for details on how to use this API operation.
6101//
6102// The context must be non-nil and will be used for request cancellation. If
6103// the context is nil a panic will occur. In the future the SDK may create
6104// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6105// for more information on using Contexts.
6106func (c *StorageGateway) NotifyWhenUploadedWithContext(ctx aws.Context, input *NotifyWhenUploadedInput, opts ...request.Option) (*NotifyWhenUploadedOutput, error) {
6107	req, out := c.NotifyWhenUploadedRequest(input)
6108	req.SetContext(ctx)
6109	req.ApplyOptions(opts...)
6110	return out, req.Send()
6111}
6112
6113const opRefreshCache = "RefreshCache"
6114
6115// RefreshCacheRequest generates a "aws/request.Request" representing the
6116// client's request for the RefreshCache operation. The "output" return
6117// value will be populated with the request's response once the request completes
6118// successfully.
6119//
6120// Use "Send" method on the returned Request to send the API call to the service.
6121// the "output" return value is not valid until after Send returns without error.
6122//
6123// See RefreshCache for more information on using the RefreshCache
6124// API call, and error handling.
6125//
6126// This method is useful when you want to inject custom logic or configuration
6127// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6128//
6129//
6130//    // Example sending a request using the RefreshCacheRequest method.
6131//    req, resp := client.RefreshCacheRequest(params)
6132//
6133//    err := req.Send()
6134//    if err == nil { // resp is now filled
6135//        fmt.Println(resp)
6136//    }
6137//
6138// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RefreshCache
6139func (c *StorageGateway) RefreshCacheRequest(input *RefreshCacheInput) (req *request.Request, output *RefreshCacheOutput) {
6140	op := &request.Operation{
6141		Name:       opRefreshCache,
6142		HTTPMethod: "POST",
6143		HTTPPath:   "/",
6144	}
6145
6146	if input == nil {
6147		input = &RefreshCacheInput{}
6148	}
6149
6150	output = &RefreshCacheOutput{}
6151	req = c.newRequest(op, input, output)
6152	return
6153}
6154
6155// RefreshCache API operation for AWS Storage Gateway.
6156//
6157// Refreshes the cache for the specified file share. This operation finds objects
6158// in the Amazon S3 bucket that were added, removed, or replaced since the gateway
6159// last listed the bucket's contents and cached the results. This operation
6160// is only supported in the file gateway type. You can subscribe to be notified
6161// through an Amazon CloudWatch event when your RefreshCache operation completes.
6162// For more information, see Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
6163// in the AWS Storage Gateway User Guide.
6164//
6165// When this API is called, it only initiates the refresh operation. When the
6166// API call completes and returns a success code, it doesn't necessarily mean
6167// that the file refresh has completed. You should use the refresh-complete
6168// notification to determine that the operation has completed before you check
6169// for new files on the gateway file share. You can subscribe to be notified
6170// through an CloudWatch event when your RefreshCache operation completes.
6171//
6172// Throttle limit: This API is asynchronous so the gateway will accept no more
6173// than two refreshes at any time. We recommend using the refresh-complete CloudWatch
6174// event notification before issuing additional requests. For more information,
6175// see Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
6176// in the AWS Storage Gateway User Guide.
6177//
6178// If you invoke the RefreshCache API when two requests are already being processed,
6179// any new request will cause an InvalidGatewayRequestException error because
6180// too many requests were sent to the server.
6181//
6182// For more information, see Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
6183// in the AWS Storage Gateway User Guide.
6184//
6185// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6186// with awserr.Error's Code and Message methods to get detailed information about
6187// the error.
6188//
6189// See the AWS API reference guide for AWS Storage Gateway's
6190// API operation RefreshCache for usage and error information.
6191//
6192// Returned Error Types:
6193//   * InvalidGatewayRequestException
6194//   An exception occurred because an invalid gateway request was issued to the
6195//   service. For more information, see the error and message fields.
6196//
6197//   * InternalServerError
6198//   An internal server error has occurred during the request. For more information,
6199//   see the error and message fields.
6200//
6201// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RefreshCache
6202func (c *StorageGateway) RefreshCache(input *RefreshCacheInput) (*RefreshCacheOutput, error) {
6203	req, out := c.RefreshCacheRequest(input)
6204	return out, req.Send()
6205}
6206
6207// RefreshCacheWithContext is the same as RefreshCache with the addition of
6208// the ability to pass a context and additional request options.
6209//
6210// See RefreshCache for details on how to use this API operation.
6211//
6212// The context must be non-nil and will be used for request cancellation. If
6213// the context is nil a panic will occur. In the future the SDK may create
6214// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6215// for more information on using Contexts.
6216func (c *StorageGateway) RefreshCacheWithContext(ctx aws.Context, input *RefreshCacheInput, opts ...request.Option) (*RefreshCacheOutput, error) {
6217	req, out := c.RefreshCacheRequest(input)
6218	req.SetContext(ctx)
6219	req.ApplyOptions(opts...)
6220	return out, req.Send()
6221}
6222
6223const opRemoveTagsFromResource = "RemoveTagsFromResource"
6224
6225// RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the
6226// client's request for the RemoveTagsFromResource operation. The "output" return
6227// value will be populated with the request's response once the request completes
6228// successfully.
6229//
6230// Use "Send" method on the returned Request to send the API call to the service.
6231// the "output" return value is not valid until after Send returns without error.
6232//
6233// See RemoveTagsFromResource for more information on using the RemoveTagsFromResource
6234// API call, and error handling.
6235//
6236// This method is useful when you want to inject custom logic or configuration
6237// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6238//
6239//
6240//    // Example sending a request using the RemoveTagsFromResourceRequest method.
6241//    req, resp := client.RemoveTagsFromResourceRequest(params)
6242//
6243//    err := req.Send()
6244//    if err == nil { // resp is now filled
6245//        fmt.Println(resp)
6246//    }
6247//
6248// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RemoveTagsFromResource
6249func (c *StorageGateway) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) {
6250	op := &request.Operation{
6251		Name:       opRemoveTagsFromResource,
6252		HTTPMethod: "POST",
6253		HTTPPath:   "/",
6254	}
6255
6256	if input == nil {
6257		input = &RemoveTagsFromResourceInput{}
6258	}
6259
6260	output = &RemoveTagsFromResourceOutput{}
6261	req = c.newRequest(op, input, output)
6262	return
6263}
6264
6265// RemoveTagsFromResource API operation for AWS Storage Gateway.
6266//
6267// Removes one or more tags from the specified resource. This operation is supported
6268// in storage gateways of all types.
6269//
6270// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6271// with awserr.Error's Code and Message methods to get detailed information about
6272// the error.
6273//
6274// See the AWS API reference guide for AWS Storage Gateway's
6275// API operation RemoveTagsFromResource for usage and error information.
6276//
6277// Returned Error Types:
6278//   * InvalidGatewayRequestException
6279//   An exception occurred because an invalid gateway request was issued to the
6280//   service. For more information, see the error and message fields.
6281//
6282//   * InternalServerError
6283//   An internal server error has occurred during the request. For more information,
6284//   see the error and message fields.
6285//
6286// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RemoveTagsFromResource
6287func (c *StorageGateway) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) {
6288	req, out := c.RemoveTagsFromResourceRequest(input)
6289	return out, req.Send()
6290}
6291
6292// RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of
6293// the ability to pass a context and additional request options.
6294//
6295// See RemoveTagsFromResource for details on how to use this API operation.
6296//
6297// The context must be non-nil and will be used for request cancellation. If
6298// the context is nil a panic will occur. In the future the SDK may create
6299// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6300// for more information on using Contexts.
6301func (c *StorageGateway) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) {
6302	req, out := c.RemoveTagsFromResourceRequest(input)
6303	req.SetContext(ctx)
6304	req.ApplyOptions(opts...)
6305	return out, req.Send()
6306}
6307
6308const opResetCache = "ResetCache"
6309
6310// ResetCacheRequest generates a "aws/request.Request" representing the
6311// client's request for the ResetCache operation. The "output" return
6312// value will be populated with the request's response once the request completes
6313// successfully.
6314//
6315// Use "Send" method on the returned Request to send the API call to the service.
6316// the "output" return value is not valid until after Send returns without error.
6317//
6318// See ResetCache for more information on using the ResetCache
6319// API call, and error handling.
6320//
6321// This method is useful when you want to inject custom logic or configuration
6322// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6323//
6324//
6325//    // Example sending a request using the ResetCacheRequest method.
6326//    req, resp := client.ResetCacheRequest(params)
6327//
6328//    err := req.Send()
6329//    if err == nil { // resp is now filled
6330//        fmt.Println(resp)
6331//    }
6332//
6333// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ResetCache
6334func (c *StorageGateway) ResetCacheRequest(input *ResetCacheInput) (req *request.Request, output *ResetCacheOutput) {
6335	op := &request.Operation{
6336		Name:       opResetCache,
6337		HTTPMethod: "POST",
6338		HTTPPath:   "/",
6339	}
6340
6341	if input == nil {
6342		input = &ResetCacheInput{}
6343	}
6344
6345	output = &ResetCacheOutput{}
6346	req = c.newRequest(op, input, output)
6347	return
6348}
6349
6350// ResetCache API operation for AWS Storage Gateway.
6351//
6352// Resets all cache disks that have encountered an error and makes the disks
6353// available for reconfiguration as cache storage. If your cache disk encounters
6354// an error, the gateway prevents read and write operations on virtual tapes
6355// in the gateway. For example, an error can occur when a disk is corrupted
6356// or removed from the gateway. When a cache is reset, the gateway loses its
6357// cache storage. At this point, you can reconfigure the disks as cache disks.
6358// This operation is only supported in the cached volume and tape types.
6359//
6360// If the cache disk you are resetting contains data that has not been uploaded
6361// to Amazon S3 yet, that data can be lost. After you reset cache disks, there
6362// will be no configured cache disks left in the gateway, so you must configure
6363// at least one new cache disk for your gateway to function properly.
6364//
6365// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6366// with awserr.Error's Code and Message methods to get detailed information about
6367// the error.
6368//
6369// See the AWS API reference guide for AWS Storage Gateway's
6370// API operation ResetCache for usage and error information.
6371//
6372// Returned Error Types:
6373//   * InvalidGatewayRequestException
6374//   An exception occurred because an invalid gateway request was issued to the
6375//   service. For more information, see the error and message fields.
6376//
6377//   * InternalServerError
6378//   An internal server error has occurred during the request. For more information,
6379//   see the error and message fields.
6380//
6381// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ResetCache
6382func (c *StorageGateway) ResetCache(input *ResetCacheInput) (*ResetCacheOutput, error) {
6383	req, out := c.ResetCacheRequest(input)
6384	return out, req.Send()
6385}
6386
6387// ResetCacheWithContext is the same as ResetCache with the addition of
6388// the ability to pass a context and additional request options.
6389//
6390// See ResetCache for details on how to use this API operation.
6391//
6392// The context must be non-nil and will be used for request cancellation. If
6393// the context is nil a panic will occur. In the future the SDK may create
6394// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6395// for more information on using Contexts.
6396func (c *StorageGateway) ResetCacheWithContext(ctx aws.Context, input *ResetCacheInput, opts ...request.Option) (*ResetCacheOutput, error) {
6397	req, out := c.ResetCacheRequest(input)
6398	req.SetContext(ctx)
6399	req.ApplyOptions(opts...)
6400	return out, req.Send()
6401}
6402
6403const opRetrieveTapeArchive = "RetrieveTapeArchive"
6404
6405// RetrieveTapeArchiveRequest generates a "aws/request.Request" representing the
6406// client's request for the RetrieveTapeArchive operation. The "output" return
6407// value will be populated with the request's response once the request completes
6408// successfully.
6409//
6410// Use "Send" method on the returned Request to send the API call to the service.
6411// the "output" return value is not valid until after Send returns without error.
6412//
6413// See RetrieveTapeArchive for more information on using the RetrieveTapeArchive
6414// API call, and error handling.
6415//
6416// This method is useful when you want to inject custom logic or configuration
6417// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6418//
6419//
6420//    // Example sending a request using the RetrieveTapeArchiveRequest method.
6421//    req, resp := client.RetrieveTapeArchiveRequest(params)
6422//
6423//    err := req.Send()
6424//    if err == nil { // resp is now filled
6425//        fmt.Println(resp)
6426//    }
6427//
6428// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeArchive
6429func (c *StorageGateway) RetrieveTapeArchiveRequest(input *RetrieveTapeArchiveInput) (req *request.Request, output *RetrieveTapeArchiveOutput) {
6430	op := &request.Operation{
6431		Name:       opRetrieveTapeArchive,
6432		HTTPMethod: "POST",
6433		HTTPPath:   "/",
6434	}
6435
6436	if input == nil {
6437		input = &RetrieveTapeArchiveInput{}
6438	}
6439
6440	output = &RetrieveTapeArchiveOutput{}
6441	req = c.newRequest(op, input, output)
6442	return
6443}
6444
6445// RetrieveTapeArchive API operation for AWS Storage Gateway.
6446//
6447// Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a
6448// tape gateway. Virtual tapes archived in the VTS are not associated with any
6449// gateway. However after a tape is retrieved, it is associated with a gateway,
6450// even though it is also listed in the VTS, that is, archive. This operation
6451// is only supported in the tape gateway type.
6452//
6453// Once a tape is successfully retrieved to a gateway, it cannot be retrieved
6454// again to another gateway. You must archive the tape again before you can
6455// retrieve it to another gateway. This operation is only supported in the tape
6456// gateway type.
6457//
6458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6459// with awserr.Error's Code and Message methods to get detailed information about
6460// the error.
6461//
6462// See the AWS API reference guide for AWS Storage Gateway's
6463// API operation RetrieveTapeArchive for usage and error information.
6464//
6465// Returned Error Types:
6466//   * InvalidGatewayRequestException
6467//   An exception occurred because an invalid gateway request was issued to the
6468//   service. For more information, see the error and message fields.
6469//
6470//   * InternalServerError
6471//   An internal server error has occurred during the request. For more information,
6472//   see the error and message fields.
6473//
6474// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeArchive
6475func (c *StorageGateway) RetrieveTapeArchive(input *RetrieveTapeArchiveInput) (*RetrieveTapeArchiveOutput, error) {
6476	req, out := c.RetrieveTapeArchiveRequest(input)
6477	return out, req.Send()
6478}
6479
6480// RetrieveTapeArchiveWithContext is the same as RetrieveTapeArchive with the addition of
6481// the ability to pass a context and additional request options.
6482//
6483// See RetrieveTapeArchive for details on how to use this API operation.
6484//
6485// The context must be non-nil and will be used for request cancellation. If
6486// the context is nil a panic will occur. In the future the SDK may create
6487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6488// for more information on using Contexts.
6489func (c *StorageGateway) RetrieveTapeArchiveWithContext(ctx aws.Context, input *RetrieveTapeArchiveInput, opts ...request.Option) (*RetrieveTapeArchiveOutput, error) {
6490	req, out := c.RetrieveTapeArchiveRequest(input)
6491	req.SetContext(ctx)
6492	req.ApplyOptions(opts...)
6493	return out, req.Send()
6494}
6495
6496const opRetrieveTapeRecoveryPoint = "RetrieveTapeRecoveryPoint"
6497
6498// RetrieveTapeRecoveryPointRequest generates a "aws/request.Request" representing the
6499// client's request for the RetrieveTapeRecoveryPoint operation. The "output" return
6500// value will be populated with the request's response once the request completes
6501// successfully.
6502//
6503// Use "Send" method on the returned Request to send the API call to the service.
6504// the "output" return value is not valid until after Send returns without error.
6505//
6506// See RetrieveTapeRecoveryPoint for more information on using the RetrieveTapeRecoveryPoint
6507// API call, and error handling.
6508//
6509// This method is useful when you want to inject custom logic or configuration
6510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6511//
6512//
6513//    // Example sending a request using the RetrieveTapeRecoveryPointRequest method.
6514//    req, resp := client.RetrieveTapeRecoveryPointRequest(params)
6515//
6516//    err := req.Send()
6517//    if err == nil { // resp is now filled
6518//        fmt.Println(resp)
6519//    }
6520//
6521// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeRecoveryPoint
6522func (c *StorageGateway) RetrieveTapeRecoveryPointRequest(input *RetrieveTapeRecoveryPointInput) (req *request.Request, output *RetrieveTapeRecoveryPointOutput) {
6523	op := &request.Operation{
6524		Name:       opRetrieveTapeRecoveryPoint,
6525		HTTPMethod: "POST",
6526		HTTPPath:   "/",
6527	}
6528
6529	if input == nil {
6530		input = &RetrieveTapeRecoveryPointInput{}
6531	}
6532
6533	output = &RetrieveTapeRecoveryPointOutput{}
6534	req = c.newRequest(op, input, output)
6535	return
6536}
6537
6538// RetrieveTapeRecoveryPoint API operation for AWS Storage Gateway.
6539//
6540// Retrieves the recovery point for the specified virtual tape. This operation
6541// is only supported in the tape gateway type.
6542//
6543// A recovery point is a point in time view of a virtual tape at which all the
6544// data on the tape is consistent. If your gateway crashes, virtual tapes that
6545// have recovery points can be recovered to a new gateway.
6546//
6547// The virtual tape can be retrieved to only one gateway. The retrieved tape
6548// is read-only. The virtual tape can be retrieved to only a tape gateway. There
6549// is no charge for retrieving recovery points.
6550//
6551// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6552// with awserr.Error's Code and Message methods to get detailed information about
6553// the error.
6554//
6555// See the AWS API reference guide for AWS Storage Gateway's
6556// API operation RetrieveTapeRecoveryPoint for usage and error information.
6557//
6558// Returned Error Types:
6559//   * InvalidGatewayRequestException
6560//   An exception occurred because an invalid gateway request was issued to the
6561//   service. For more information, see the error and message fields.
6562//
6563//   * InternalServerError
6564//   An internal server error has occurred during the request. For more information,
6565//   see the error and message fields.
6566//
6567// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeRecoveryPoint
6568func (c *StorageGateway) RetrieveTapeRecoveryPoint(input *RetrieveTapeRecoveryPointInput) (*RetrieveTapeRecoveryPointOutput, error) {
6569	req, out := c.RetrieveTapeRecoveryPointRequest(input)
6570	return out, req.Send()
6571}
6572
6573// RetrieveTapeRecoveryPointWithContext is the same as RetrieveTapeRecoveryPoint with the addition of
6574// the ability to pass a context and additional request options.
6575//
6576// See RetrieveTapeRecoveryPoint for details on how to use this API operation.
6577//
6578// The context must be non-nil and will be used for request cancellation. If
6579// the context is nil a panic will occur. In the future the SDK may create
6580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6581// for more information on using Contexts.
6582func (c *StorageGateway) RetrieveTapeRecoveryPointWithContext(ctx aws.Context, input *RetrieveTapeRecoveryPointInput, opts ...request.Option) (*RetrieveTapeRecoveryPointOutput, error) {
6583	req, out := c.RetrieveTapeRecoveryPointRequest(input)
6584	req.SetContext(ctx)
6585	req.ApplyOptions(opts...)
6586	return out, req.Send()
6587}
6588
6589const opSetLocalConsolePassword = "SetLocalConsolePassword"
6590
6591// SetLocalConsolePasswordRequest generates a "aws/request.Request" representing the
6592// client's request for the SetLocalConsolePassword operation. The "output" return
6593// value will be populated with the request's response once the request completes
6594// successfully.
6595//
6596// Use "Send" method on the returned Request to send the API call to the service.
6597// the "output" return value is not valid until after Send returns without error.
6598//
6599// See SetLocalConsolePassword for more information on using the SetLocalConsolePassword
6600// API call, and error handling.
6601//
6602// This method is useful when you want to inject custom logic or configuration
6603// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6604//
6605//
6606//    // Example sending a request using the SetLocalConsolePasswordRequest method.
6607//    req, resp := client.SetLocalConsolePasswordRequest(params)
6608//
6609//    err := req.Send()
6610//    if err == nil { // resp is now filled
6611//        fmt.Println(resp)
6612//    }
6613//
6614// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetLocalConsolePassword
6615func (c *StorageGateway) SetLocalConsolePasswordRequest(input *SetLocalConsolePasswordInput) (req *request.Request, output *SetLocalConsolePasswordOutput) {
6616	op := &request.Operation{
6617		Name:       opSetLocalConsolePassword,
6618		HTTPMethod: "POST",
6619		HTTPPath:   "/",
6620	}
6621
6622	if input == nil {
6623		input = &SetLocalConsolePasswordInput{}
6624	}
6625
6626	output = &SetLocalConsolePasswordOutput{}
6627	req = c.newRequest(op, input, output)
6628	return
6629}
6630
6631// SetLocalConsolePassword API operation for AWS Storage Gateway.
6632//
6633// Sets the password for your VM local console. When you log in to the local
6634// console for the first time, you log in to the VM with the default credentials.
6635// We recommend that you set a new password. You don't need to know the default
6636// password to set a new password.
6637//
6638// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6639// with awserr.Error's Code and Message methods to get detailed information about
6640// the error.
6641//
6642// See the AWS API reference guide for AWS Storage Gateway's
6643// API operation SetLocalConsolePassword for usage and error information.
6644//
6645// Returned Error Types:
6646//   * InvalidGatewayRequestException
6647//   An exception occurred because an invalid gateway request was issued to the
6648//   service. For more information, see the error and message fields.
6649//
6650//   * InternalServerError
6651//   An internal server error has occurred during the request. For more information,
6652//   see the error and message fields.
6653//
6654// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetLocalConsolePassword
6655func (c *StorageGateway) SetLocalConsolePassword(input *SetLocalConsolePasswordInput) (*SetLocalConsolePasswordOutput, error) {
6656	req, out := c.SetLocalConsolePasswordRequest(input)
6657	return out, req.Send()
6658}
6659
6660// SetLocalConsolePasswordWithContext is the same as SetLocalConsolePassword with the addition of
6661// the ability to pass a context and additional request options.
6662//
6663// See SetLocalConsolePassword for details on how to use this API operation.
6664//
6665// The context must be non-nil and will be used for request cancellation. If
6666// the context is nil a panic will occur. In the future the SDK may create
6667// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6668// for more information on using Contexts.
6669func (c *StorageGateway) SetLocalConsolePasswordWithContext(ctx aws.Context, input *SetLocalConsolePasswordInput, opts ...request.Option) (*SetLocalConsolePasswordOutput, error) {
6670	req, out := c.SetLocalConsolePasswordRequest(input)
6671	req.SetContext(ctx)
6672	req.ApplyOptions(opts...)
6673	return out, req.Send()
6674}
6675
6676const opSetSMBGuestPassword = "SetSMBGuestPassword"
6677
6678// SetSMBGuestPasswordRequest generates a "aws/request.Request" representing the
6679// client's request for the SetSMBGuestPassword operation. The "output" return
6680// value will be populated with the request's response once the request completes
6681// successfully.
6682//
6683// Use "Send" method on the returned Request to send the API call to the service.
6684// the "output" return value is not valid until after Send returns without error.
6685//
6686// See SetSMBGuestPassword for more information on using the SetSMBGuestPassword
6687// API call, and error handling.
6688//
6689// This method is useful when you want to inject custom logic or configuration
6690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6691//
6692//
6693//    // Example sending a request using the SetSMBGuestPasswordRequest method.
6694//    req, resp := client.SetSMBGuestPasswordRequest(params)
6695//
6696//    err := req.Send()
6697//    if err == nil { // resp is now filled
6698//        fmt.Println(resp)
6699//    }
6700//
6701// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetSMBGuestPassword
6702func (c *StorageGateway) SetSMBGuestPasswordRequest(input *SetSMBGuestPasswordInput) (req *request.Request, output *SetSMBGuestPasswordOutput) {
6703	op := &request.Operation{
6704		Name:       opSetSMBGuestPassword,
6705		HTTPMethod: "POST",
6706		HTTPPath:   "/",
6707	}
6708
6709	if input == nil {
6710		input = &SetSMBGuestPasswordInput{}
6711	}
6712
6713	output = &SetSMBGuestPasswordOutput{}
6714	req = c.newRequest(op, input, output)
6715	return
6716}
6717
6718// SetSMBGuestPassword API operation for AWS Storage Gateway.
6719//
6720// Sets the password for the guest user smbguest. The smbguest user is the user
6721// when the authentication method for the file share is set to GuestAccess.
6722//
6723// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6724// with awserr.Error's Code and Message methods to get detailed information about
6725// the error.
6726//
6727// See the AWS API reference guide for AWS Storage Gateway's
6728// API operation SetSMBGuestPassword for usage and error information.
6729//
6730// Returned Error Types:
6731//   * InvalidGatewayRequestException
6732//   An exception occurred because an invalid gateway request was issued to the
6733//   service. For more information, see the error and message fields.
6734//
6735//   * InternalServerError
6736//   An internal server error has occurred during the request. For more information,
6737//   see the error and message fields.
6738//
6739// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetSMBGuestPassword
6740func (c *StorageGateway) SetSMBGuestPassword(input *SetSMBGuestPasswordInput) (*SetSMBGuestPasswordOutput, error) {
6741	req, out := c.SetSMBGuestPasswordRequest(input)
6742	return out, req.Send()
6743}
6744
6745// SetSMBGuestPasswordWithContext is the same as SetSMBGuestPassword with the addition of
6746// the ability to pass a context and additional request options.
6747//
6748// See SetSMBGuestPassword for details on how to use this API operation.
6749//
6750// The context must be non-nil and will be used for request cancellation. If
6751// the context is nil a panic will occur. In the future the SDK may create
6752// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6753// for more information on using Contexts.
6754func (c *StorageGateway) SetSMBGuestPasswordWithContext(ctx aws.Context, input *SetSMBGuestPasswordInput, opts ...request.Option) (*SetSMBGuestPasswordOutput, error) {
6755	req, out := c.SetSMBGuestPasswordRequest(input)
6756	req.SetContext(ctx)
6757	req.ApplyOptions(opts...)
6758	return out, req.Send()
6759}
6760
6761const opShutdownGateway = "ShutdownGateway"
6762
6763// ShutdownGatewayRequest generates a "aws/request.Request" representing the
6764// client's request for the ShutdownGateway operation. The "output" return
6765// value will be populated with the request's response once the request completes
6766// successfully.
6767//
6768// Use "Send" method on the returned Request to send the API call to the service.
6769// the "output" return value is not valid until after Send returns without error.
6770//
6771// See ShutdownGateway for more information on using the ShutdownGateway
6772// API call, and error handling.
6773//
6774// This method is useful when you want to inject custom logic or configuration
6775// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6776//
6777//
6778//    // Example sending a request using the ShutdownGatewayRequest method.
6779//    req, resp := client.ShutdownGatewayRequest(params)
6780//
6781//    err := req.Send()
6782//    if err == nil { // resp is now filled
6783//        fmt.Println(resp)
6784//    }
6785//
6786// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ShutdownGateway
6787func (c *StorageGateway) ShutdownGatewayRequest(input *ShutdownGatewayInput) (req *request.Request, output *ShutdownGatewayOutput) {
6788	op := &request.Operation{
6789		Name:       opShutdownGateway,
6790		HTTPMethod: "POST",
6791		HTTPPath:   "/",
6792	}
6793
6794	if input == nil {
6795		input = &ShutdownGatewayInput{}
6796	}
6797
6798	output = &ShutdownGatewayOutput{}
6799	req = c.newRequest(op, input, output)
6800	return
6801}
6802
6803// ShutdownGateway API operation for AWS Storage Gateway.
6804//
6805// Shuts down a gateway. To specify which gateway to shut down, use the Amazon
6806// Resource Name (ARN) of the gateway in the body of your request.
6807//
6808// The operation shuts down the gateway service component running in the gateway's
6809// virtual machine (VM) and not the host VM.
6810//
6811// If you want to shut down the VM, it is recommended that you first shut down
6812// the gateway component in the VM to avoid unpredictable conditions.
6813//
6814// After the gateway is shutdown, you cannot call any other API except StartGateway,
6815// DescribeGatewayInformation, and ListGateways. For more information, see ActivateGateway.
6816// Your applications cannot read from or write to the gateway's storage volumes,
6817// and there are no snapshots taken.
6818//
6819// When you make a shutdown request, you will get a 200 OK success response
6820// immediately. However, it might take some time for the gateway to shut down.
6821// You can call the DescribeGatewayInformation API to check the status. For
6822// more information, see ActivateGateway.
6823//
6824// If do not intend to use the gateway again, you must delete the gateway (using
6825// DeleteGateway) to no longer pay software charges associated with the gateway.
6826//
6827// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6828// with awserr.Error's Code and Message methods to get detailed information about
6829// the error.
6830//
6831// See the AWS API reference guide for AWS Storage Gateway's
6832// API operation ShutdownGateway for usage and error information.
6833//
6834// Returned Error Types:
6835//   * InvalidGatewayRequestException
6836//   An exception occurred because an invalid gateway request was issued to the
6837//   service. For more information, see the error and message fields.
6838//
6839//   * InternalServerError
6840//   An internal server error has occurred during the request. For more information,
6841//   see the error and message fields.
6842//
6843// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ShutdownGateway
6844func (c *StorageGateway) ShutdownGateway(input *ShutdownGatewayInput) (*ShutdownGatewayOutput, error) {
6845	req, out := c.ShutdownGatewayRequest(input)
6846	return out, req.Send()
6847}
6848
6849// ShutdownGatewayWithContext is the same as ShutdownGateway with the addition of
6850// the ability to pass a context and additional request options.
6851//
6852// See ShutdownGateway for details on how to use this API operation.
6853//
6854// The context must be non-nil and will be used for request cancellation. If
6855// the context is nil a panic will occur. In the future the SDK may create
6856// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6857// for more information on using Contexts.
6858func (c *StorageGateway) ShutdownGatewayWithContext(ctx aws.Context, input *ShutdownGatewayInput, opts ...request.Option) (*ShutdownGatewayOutput, error) {
6859	req, out := c.ShutdownGatewayRequest(input)
6860	req.SetContext(ctx)
6861	req.ApplyOptions(opts...)
6862	return out, req.Send()
6863}
6864
6865const opStartAvailabilityMonitorTest = "StartAvailabilityMonitorTest"
6866
6867// StartAvailabilityMonitorTestRequest generates a "aws/request.Request" representing the
6868// client's request for the StartAvailabilityMonitorTest operation. The "output" return
6869// value will be populated with the request's response once the request completes
6870// successfully.
6871//
6872// Use "Send" method on the returned Request to send the API call to the service.
6873// the "output" return value is not valid until after Send returns without error.
6874//
6875// See StartAvailabilityMonitorTest for more information on using the StartAvailabilityMonitorTest
6876// API call, and error handling.
6877//
6878// This method is useful when you want to inject custom logic or configuration
6879// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6880//
6881//
6882//    // Example sending a request using the StartAvailabilityMonitorTestRequest method.
6883//    req, resp := client.StartAvailabilityMonitorTestRequest(params)
6884//
6885//    err := req.Send()
6886//    if err == nil { // resp is now filled
6887//        fmt.Println(resp)
6888//    }
6889//
6890// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartAvailabilityMonitorTest
6891func (c *StorageGateway) StartAvailabilityMonitorTestRequest(input *StartAvailabilityMonitorTestInput) (req *request.Request, output *StartAvailabilityMonitorTestOutput) {
6892	op := &request.Operation{
6893		Name:       opStartAvailabilityMonitorTest,
6894		HTTPMethod: "POST",
6895		HTTPPath:   "/",
6896	}
6897
6898	if input == nil {
6899		input = &StartAvailabilityMonitorTestInput{}
6900	}
6901
6902	output = &StartAvailabilityMonitorTestOutput{}
6903	req = c.newRequest(op, input, output)
6904	return
6905}
6906
6907// StartAvailabilityMonitorTest API operation for AWS Storage Gateway.
6908//
6909// Start a test that verifies that the specified gateway is configured for High
6910// Availability monitoring in your host environment. This request only initiates
6911// the test and that a successful response only indicates that the test was
6912// started. It doesn't indicate that the test passed. For the status of the
6913// test, invoke the DescribeAvailabilityMonitorTest API.
6914//
6915// Starting this test will cause your gateway to go offline for a brief period.
6916//
6917// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6918// with awserr.Error's Code and Message methods to get detailed information about
6919// the error.
6920//
6921// See the AWS API reference guide for AWS Storage Gateway's
6922// API operation StartAvailabilityMonitorTest for usage and error information.
6923//
6924// Returned Error Types:
6925//   * InvalidGatewayRequestException
6926//   An exception occurred because an invalid gateway request was issued to the
6927//   service. For more information, see the error and message fields.
6928//
6929//   * InternalServerError
6930//   An internal server error has occurred during the request. For more information,
6931//   see the error and message fields.
6932//
6933// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartAvailabilityMonitorTest
6934func (c *StorageGateway) StartAvailabilityMonitorTest(input *StartAvailabilityMonitorTestInput) (*StartAvailabilityMonitorTestOutput, error) {
6935	req, out := c.StartAvailabilityMonitorTestRequest(input)
6936	return out, req.Send()
6937}
6938
6939// StartAvailabilityMonitorTestWithContext is the same as StartAvailabilityMonitorTest with the addition of
6940// the ability to pass a context and additional request options.
6941//
6942// See StartAvailabilityMonitorTest for details on how to use this API operation.
6943//
6944// The context must be non-nil and will be used for request cancellation. If
6945// the context is nil a panic will occur. In the future the SDK may create
6946// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6947// for more information on using Contexts.
6948func (c *StorageGateway) StartAvailabilityMonitorTestWithContext(ctx aws.Context, input *StartAvailabilityMonitorTestInput, opts ...request.Option) (*StartAvailabilityMonitorTestOutput, error) {
6949	req, out := c.StartAvailabilityMonitorTestRequest(input)
6950	req.SetContext(ctx)
6951	req.ApplyOptions(opts...)
6952	return out, req.Send()
6953}
6954
6955const opStartGateway = "StartGateway"
6956
6957// StartGatewayRequest generates a "aws/request.Request" representing the
6958// client's request for the StartGateway operation. The "output" return
6959// value will be populated with the request's response once the request completes
6960// successfully.
6961//
6962// Use "Send" method on the returned Request to send the API call to the service.
6963// the "output" return value is not valid until after Send returns without error.
6964//
6965// See StartGateway for more information on using the StartGateway
6966// API call, and error handling.
6967//
6968// This method is useful when you want to inject custom logic or configuration
6969// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6970//
6971//
6972//    // Example sending a request using the StartGatewayRequest method.
6973//    req, resp := client.StartGatewayRequest(params)
6974//
6975//    err := req.Send()
6976//    if err == nil { // resp is now filled
6977//        fmt.Println(resp)
6978//    }
6979//
6980// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartGateway
6981func (c *StorageGateway) StartGatewayRequest(input *StartGatewayInput) (req *request.Request, output *StartGatewayOutput) {
6982	op := &request.Operation{
6983		Name:       opStartGateway,
6984		HTTPMethod: "POST",
6985		HTTPPath:   "/",
6986	}
6987
6988	if input == nil {
6989		input = &StartGatewayInput{}
6990	}
6991
6992	output = &StartGatewayOutput{}
6993	req = c.newRequest(op, input, output)
6994	return
6995}
6996
6997// StartGateway API operation for AWS Storage Gateway.
6998//
6999// Starts a gateway that you previously shut down (see ShutdownGateway). After
7000// the gateway starts, you can then make other API calls, your applications
7001// can read from or write to the gateway's storage volumes and you will be able
7002// to take snapshot backups.
7003//
7004// When you make a request, you will get a 200 OK success response immediately.
7005// However, it might take some time for the gateway to be ready. You should
7006// call DescribeGatewayInformation and check the status before making any additional
7007// API calls. For more information, see ActivateGateway.
7008//
7009// To specify which gateway to start, use the Amazon Resource Name (ARN) of
7010// the gateway in your request.
7011//
7012// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7013// with awserr.Error's Code and Message methods to get detailed information about
7014// the error.
7015//
7016// See the AWS API reference guide for AWS Storage Gateway's
7017// API operation StartGateway for usage and error information.
7018//
7019// Returned Error Types:
7020//   * InvalidGatewayRequestException
7021//   An exception occurred because an invalid gateway request was issued to the
7022//   service. For more information, see the error and message fields.
7023//
7024//   * InternalServerError
7025//   An internal server error has occurred during the request. For more information,
7026//   see the error and message fields.
7027//
7028// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartGateway
7029func (c *StorageGateway) StartGateway(input *StartGatewayInput) (*StartGatewayOutput, error) {
7030	req, out := c.StartGatewayRequest(input)
7031	return out, req.Send()
7032}
7033
7034// StartGatewayWithContext is the same as StartGateway with the addition of
7035// the ability to pass a context and additional request options.
7036//
7037// See StartGateway for details on how to use this API operation.
7038//
7039// The context must be non-nil and will be used for request cancellation. If
7040// the context is nil a panic will occur. In the future the SDK may create
7041// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7042// for more information on using Contexts.
7043func (c *StorageGateway) StartGatewayWithContext(ctx aws.Context, input *StartGatewayInput, opts ...request.Option) (*StartGatewayOutput, error) {
7044	req, out := c.StartGatewayRequest(input)
7045	req.SetContext(ctx)
7046	req.ApplyOptions(opts...)
7047	return out, req.Send()
7048}
7049
7050const opUpdateAutomaticTapeCreationPolicy = "UpdateAutomaticTapeCreationPolicy"
7051
7052// UpdateAutomaticTapeCreationPolicyRequest generates a "aws/request.Request" representing the
7053// client's request for the UpdateAutomaticTapeCreationPolicy operation. The "output" return
7054// value will be populated with the request's response once the request completes
7055// successfully.
7056//
7057// Use "Send" method on the returned Request to send the API call to the service.
7058// the "output" return value is not valid until after Send returns without error.
7059//
7060// See UpdateAutomaticTapeCreationPolicy for more information on using the UpdateAutomaticTapeCreationPolicy
7061// API call, and error handling.
7062//
7063// This method is useful when you want to inject custom logic or configuration
7064// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7065//
7066//
7067//    // Example sending a request using the UpdateAutomaticTapeCreationPolicyRequest method.
7068//    req, resp := client.UpdateAutomaticTapeCreationPolicyRequest(params)
7069//
7070//    err := req.Send()
7071//    if err == nil { // resp is now filled
7072//        fmt.Println(resp)
7073//    }
7074//
7075// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateAutomaticTapeCreationPolicy
7076func (c *StorageGateway) UpdateAutomaticTapeCreationPolicyRequest(input *UpdateAutomaticTapeCreationPolicyInput) (req *request.Request, output *UpdateAutomaticTapeCreationPolicyOutput) {
7077	op := &request.Operation{
7078		Name:       opUpdateAutomaticTapeCreationPolicy,
7079		HTTPMethod: "POST",
7080		HTTPPath:   "/",
7081	}
7082
7083	if input == nil {
7084		input = &UpdateAutomaticTapeCreationPolicyInput{}
7085	}
7086
7087	output = &UpdateAutomaticTapeCreationPolicyOutput{}
7088	req = c.newRequest(op, input, output)
7089	return
7090}
7091
7092// UpdateAutomaticTapeCreationPolicy API operation for AWS Storage Gateway.
7093//
7094// Updates the automatic tape creation policy of a gateway. Use this to update
7095// the policy with a new set of automatic tape creation rules. This is only
7096// supported for tape gateways.
7097//
7098// By default, there is no automatic tape creation policy.
7099//
7100// A gateway can have only one automatic tape creation policy.
7101//
7102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7103// with awserr.Error's Code and Message methods to get detailed information about
7104// the error.
7105//
7106// See the AWS API reference guide for AWS Storage Gateway's
7107// API operation UpdateAutomaticTapeCreationPolicy for usage and error information.
7108//
7109// Returned Error Types:
7110//   * InvalidGatewayRequestException
7111//   An exception occurred because an invalid gateway request was issued to the
7112//   service. For more information, see the error and message fields.
7113//
7114//   * InternalServerError
7115//   An internal server error has occurred during the request. For more information,
7116//   see the error and message fields.
7117//
7118// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateAutomaticTapeCreationPolicy
7119func (c *StorageGateway) UpdateAutomaticTapeCreationPolicy(input *UpdateAutomaticTapeCreationPolicyInput) (*UpdateAutomaticTapeCreationPolicyOutput, error) {
7120	req, out := c.UpdateAutomaticTapeCreationPolicyRequest(input)
7121	return out, req.Send()
7122}
7123
7124// UpdateAutomaticTapeCreationPolicyWithContext is the same as UpdateAutomaticTapeCreationPolicy with the addition of
7125// the ability to pass a context and additional request options.
7126//
7127// See UpdateAutomaticTapeCreationPolicy for details on how to use this API operation.
7128//
7129// The context must be non-nil and will be used for request cancellation. If
7130// the context is nil a panic will occur. In the future the SDK may create
7131// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7132// for more information on using Contexts.
7133func (c *StorageGateway) UpdateAutomaticTapeCreationPolicyWithContext(ctx aws.Context, input *UpdateAutomaticTapeCreationPolicyInput, opts ...request.Option) (*UpdateAutomaticTapeCreationPolicyOutput, error) {
7134	req, out := c.UpdateAutomaticTapeCreationPolicyRequest(input)
7135	req.SetContext(ctx)
7136	req.ApplyOptions(opts...)
7137	return out, req.Send()
7138}
7139
7140const opUpdateBandwidthRateLimit = "UpdateBandwidthRateLimit"
7141
7142// UpdateBandwidthRateLimitRequest generates a "aws/request.Request" representing the
7143// client's request for the UpdateBandwidthRateLimit operation. The "output" return
7144// value will be populated with the request's response once the request completes
7145// successfully.
7146//
7147// Use "Send" method on the returned Request to send the API call to the service.
7148// the "output" return value is not valid until after Send returns without error.
7149//
7150// See UpdateBandwidthRateLimit for more information on using the UpdateBandwidthRateLimit
7151// API call, and error handling.
7152//
7153// This method is useful when you want to inject custom logic or configuration
7154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7155//
7156//
7157//    // Example sending a request using the UpdateBandwidthRateLimitRequest method.
7158//    req, resp := client.UpdateBandwidthRateLimitRequest(params)
7159//
7160//    err := req.Send()
7161//    if err == nil { // resp is now filled
7162//        fmt.Println(resp)
7163//    }
7164//
7165// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimit
7166func (c *StorageGateway) UpdateBandwidthRateLimitRequest(input *UpdateBandwidthRateLimitInput) (req *request.Request, output *UpdateBandwidthRateLimitOutput) {
7167	op := &request.Operation{
7168		Name:       opUpdateBandwidthRateLimit,
7169		HTTPMethod: "POST",
7170		HTTPPath:   "/",
7171	}
7172
7173	if input == nil {
7174		input = &UpdateBandwidthRateLimitInput{}
7175	}
7176
7177	output = &UpdateBandwidthRateLimitOutput{}
7178	req = c.newRequest(op, input, output)
7179	return
7180}
7181
7182// UpdateBandwidthRateLimit API operation for AWS Storage Gateway.
7183//
7184// Updates the bandwidth rate limits of a gateway. You can update both the upload
7185// and download bandwidth rate limit or specify only one of the two. If you
7186// don't set a bandwidth rate limit, the existing rate limit remains. This operation
7187// is supported for the stored volume, cached volume, and tape gateway types.
7188//
7189// By default, a gateway's bandwidth rate limits are not set. If you don't set
7190// any limit, the gateway does not have any limitations on its bandwidth usage
7191// and could potentially use the maximum available bandwidth.
7192//
7193// To specify which gateway to update, use the Amazon Resource Name (ARN) of
7194// the gateway in your request.
7195//
7196// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7197// with awserr.Error's Code and Message methods to get detailed information about
7198// the error.
7199//
7200// See the AWS API reference guide for AWS Storage Gateway's
7201// API operation UpdateBandwidthRateLimit for usage and error information.
7202//
7203// Returned Error Types:
7204//   * InvalidGatewayRequestException
7205//   An exception occurred because an invalid gateway request was issued to the
7206//   service. For more information, see the error and message fields.
7207//
7208//   * InternalServerError
7209//   An internal server error has occurred during the request. For more information,
7210//   see the error and message fields.
7211//
7212// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimit
7213func (c *StorageGateway) UpdateBandwidthRateLimit(input *UpdateBandwidthRateLimitInput) (*UpdateBandwidthRateLimitOutput, error) {
7214	req, out := c.UpdateBandwidthRateLimitRequest(input)
7215	return out, req.Send()
7216}
7217
7218// UpdateBandwidthRateLimitWithContext is the same as UpdateBandwidthRateLimit with the addition of
7219// the ability to pass a context and additional request options.
7220//
7221// See UpdateBandwidthRateLimit for details on how to use this API operation.
7222//
7223// The context must be non-nil and will be used for request cancellation. If
7224// the context is nil a panic will occur. In the future the SDK may create
7225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7226// for more information on using Contexts.
7227func (c *StorageGateway) UpdateBandwidthRateLimitWithContext(ctx aws.Context, input *UpdateBandwidthRateLimitInput, opts ...request.Option) (*UpdateBandwidthRateLimitOutput, error) {
7228	req, out := c.UpdateBandwidthRateLimitRequest(input)
7229	req.SetContext(ctx)
7230	req.ApplyOptions(opts...)
7231	return out, req.Send()
7232}
7233
7234const opUpdateBandwidthRateLimitSchedule = "UpdateBandwidthRateLimitSchedule"
7235
7236// UpdateBandwidthRateLimitScheduleRequest generates a "aws/request.Request" representing the
7237// client's request for the UpdateBandwidthRateLimitSchedule operation. The "output" return
7238// value will be populated with the request's response once the request completes
7239// successfully.
7240//
7241// Use "Send" method on the returned Request to send the API call to the service.
7242// the "output" return value is not valid until after Send returns without error.
7243//
7244// See UpdateBandwidthRateLimitSchedule for more information on using the UpdateBandwidthRateLimitSchedule
7245// API call, and error handling.
7246//
7247// This method is useful when you want to inject custom logic or configuration
7248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7249//
7250//
7251//    // Example sending a request using the UpdateBandwidthRateLimitScheduleRequest method.
7252//    req, resp := client.UpdateBandwidthRateLimitScheduleRequest(params)
7253//
7254//    err := req.Send()
7255//    if err == nil { // resp is now filled
7256//        fmt.Println(resp)
7257//    }
7258//
7259// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimitSchedule
7260func (c *StorageGateway) UpdateBandwidthRateLimitScheduleRequest(input *UpdateBandwidthRateLimitScheduleInput) (req *request.Request, output *UpdateBandwidthRateLimitScheduleOutput) {
7261	op := &request.Operation{
7262		Name:       opUpdateBandwidthRateLimitSchedule,
7263		HTTPMethod: "POST",
7264		HTTPPath:   "/",
7265	}
7266
7267	if input == nil {
7268		input = &UpdateBandwidthRateLimitScheduleInput{}
7269	}
7270
7271	output = &UpdateBandwidthRateLimitScheduleOutput{}
7272	req = c.newRequest(op, input, output)
7273	return
7274}
7275
7276// UpdateBandwidthRateLimitSchedule API operation for AWS Storage Gateway.
7277//
7278// Updates the bandwidth rate limit schedule for a specified gateway. By default,
7279// gateways do not have bandwidth rate limit schedules, which means no bandwidth
7280// rate limiting is in effect. Use this to initiate or update a gateway's bandwidth
7281// rate limit schedule. This operation is supported in the volume and tape gateway
7282// types.
7283//
7284// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7285// with awserr.Error's Code and Message methods to get detailed information about
7286// the error.
7287//
7288// See the AWS API reference guide for AWS Storage Gateway's
7289// API operation UpdateBandwidthRateLimitSchedule for usage and error information.
7290//
7291// Returned Error Types:
7292//   * InvalidGatewayRequestException
7293//   An exception occurred because an invalid gateway request was issued to the
7294//   service. For more information, see the error and message fields.
7295//
7296//   * InternalServerError
7297//   An internal server error has occurred during the request. For more information,
7298//   see the error and message fields.
7299//
7300// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimitSchedule
7301func (c *StorageGateway) UpdateBandwidthRateLimitSchedule(input *UpdateBandwidthRateLimitScheduleInput) (*UpdateBandwidthRateLimitScheduleOutput, error) {
7302	req, out := c.UpdateBandwidthRateLimitScheduleRequest(input)
7303	return out, req.Send()
7304}
7305
7306// UpdateBandwidthRateLimitScheduleWithContext is the same as UpdateBandwidthRateLimitSchedule with the addition of
7307// the ability to pass a context and additional request options.
7308//
7309// See UpdateBandwidthRateLimitSchedule for details on how to use this API operation.
7310//
7311// The context must be non-nil and will be used for request cancellation. If
7312// the context is nil a panic will occur. In the future the SDK may create
7313// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7314// for more information on using Contexts.
7315func (c *StorageGateway) UpdateBandwidthRateLimitScheduleWithContext(ctx aws.Context, input *UpdateBandwidthRateLimitScheduleInput, opts ...request.Option) (*UpdateBandwidthRateLimitScheduleOutput, error) {
7316	req, out := c.UpdateBandwidthRateLimitScheduleRequest(input)
7317	req.SetContext(ctx)
7318	req.ApplyOptions(opts...)
7319	return out, req.Send()
7320}
7321
7322const opUpdateChapCredentials = "UpdateChapCredentials"
7323
7324// UpdateChapCredentialsRequest generates a "aws/request.Request" representing the
7325// client's request for the UpdateChapCredentials operation. The "output" return
7326// value will be populated with the request's response once the request completes
7327// successfully.
7328//
7329// Use "Send" method on the returned Request to send the API call to the service.
7330// the "output" return value is not valid until after Send returns without error.
7331//
7332// See UpdateChapCredentials for more information on using the UpdateChapCredentials
7333// API call, and error handling.
7334//
7335// This method is useful when you want to inject custom logic or configuration
7336// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7337//
7338//
7339//    // Example sending a request using the UpdateChapCredentialsRequest method.
7340//    req, resp := client.UpdateChapCredentialsRequest(params)
7341//
7342//    err := req.Send()
7343//    if err == nil { // resp is now filled
7344//        fmt.Println(resp)
7345//    }
7346//
7347// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateChapCredentials
7348func (c *StorageGateway) UpdateChapCredentialsRequest(input *UpdateChapCredentialsInput) (req *request.Request, output *UpdateChapCredentialsOutput) {
7349	op := &request.Operation{
7350		Name:       opUpdateChapCredentials,
7351		HTTPMethod: "POST",
7352		HTTPPath:   "/",
7353	}
7354
7355	if input == nil {
7356		input = &UpdateChapCredentialsInput{}
7357	}
7358
7359	output = &UpdateChapCredentialsOutput{}
7360	req = c.newRequest(op, input, output)
7361	return
7362}
7363
7364// UpdateChapCredentials API operation for AWS Storage Gateway.
7365//
7366// Updates the Challenge-Handshake Authentication Protocol (CHAP) credentials
7367// for a specified iSCSI target. By default, a gateway does not have CHAP enabled;
7368// however, for added security, you might use it. This operation is supported
7369// in the volume and tape gateway types.
7370//
7371// When you update CHAP credentials, all existing connections on the target
7372// are closed and initiators must reconnect with the new credentials.
7373//
7374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7375// with awserr.Error's Code and Message methods to get detailed information about
7376// the error.
7377//
7378// See the AWS API reference guide for AWS Storage Gateway's
7379// API operation UpdateChapCredentials for usage and error information.
7380//
7381// Returned Error Types:
7382//   * InvalidGatewayRequestException
7383//   An exception occurred because an invalid gateway request was issued to the
7384//   service. For more information, see the error and message fields.
7385//
7386//   * InternalServerError
7387//   An internal server error has occurred during the request. For more information,
7388//   see the error and message fields.
7389//
7390// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateChapCredentials
7391func (c *StorageGateway) UpdateChapCredentials(input *UpdateChapCredentialsInput) (*UpdateChapCredentialsOutput, error) {
7392	req, out := c.UpdateChapCredentialsRequest(input)
7393	return out, req.Send()
7394}
7395
7396// UpdateChapCredentialsWithContext is the same as UpdateChapCredentials with the addition of
7397// the ability to pass a context and additional request options.
7398//
7399// See UpdateChapCredentials for details on how to use this API operation.
7400//
7401// The context must be non-nil and will be used for request cancellation. If
7402// the context is nil a panic will occur. In the future the SDK may create
7403// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7404// for more information on using Contexts.
7405func (c *StorageGateway) UpdateChapCredentialsWithContext(ctx aws.Context, input *UpdateChapCredentialsInput, opts ...request.Option) (*UpdateChapCredentialsOutput, error) {
7406	req, out := c.UpdateChapCredentialsRequest(input)
7407	req.SetContext(ctx)
7408	req.ApplyOptions(opts...)
7409	return out, req.Send()
7410}
7411
7412const opUpdateGatewayInformation = "UpdateGatewayInformation"
7413
7414// UpdateGatewayInformationRequest generates a "aws/request.Request" representing the
7415// client's request for the UpdateGatewayInformation operation. The "output" return
7416// value will be populated with the request's response once the request completes
7417// successfully.
7418//
7419// Use "Send" method on the returned Request to send the API call to the service.
7420// the "output" return value is not valid until after Send returns without error.
7421//
7422// See UpdateGatewayInformation for more information on using the UpdateGatewayInformation
7423// API call, and error handling.
7424//
7425// This method is useful when you want to inject custom logic or configuration
7426// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7427//
7428//
7429//    // Example sending a request using the UpdateGatewayInformationRequest method.
7430//    req, resp := client.UpdateGatewayInformationRequest(params)
7431//
7432//    err := req.Send()
7433//    if err == nil { // resp is now filled
7434//        fmt.Println(resp)
7435//    }
7436//
7437// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewayInformation
7438func (c *StorageGateway) UpdateGatewayInformationRequest(input *UpdateGatewayInformationInput) (req *request.Request, output *UpdateGatewayInformationOutput) {
7439	op := &request.Operation{
7440		Name:       opUpdateGatewayInformation,
7441		HTTPMethod: "POST",
7442		HTTPPath:   "/",
7443	}
7444
7445	if input == nil {
7446		input = &UpdateGatewayInformationInput{}
7447	}
7448
7449	output = &UpdateGatewayInformationOutput{}
7450	req = c.newRequest(op, input, output)
7451	return
7452}
7453
7454// UpdateGatewayInformation API operation for AWS Storage Gateway.
7455//
7456// Updates a gateway's metadata, which includes the gateway's name and time
7457// zone. To specify which gateway to update, use the Amazon Resource Name (ARN)
7458// of the gateway in your request.
7459//
7460// For gateways activated after September 2, 2015, the gateway's ARN contains
7461// the gateway ID rather than the gateway name. However, changing the name of
7462// the gateway has no effect on the gateway's ARN.
7463//
7464// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7465// with awserr.Error's Code and Message methods to get detailed information about
7466// the error.
7467//
7468// See the AWS API reference guide for AWS Storage Gateway's
7469// API operation UpdateGatewayInformation for usage and error information.
7470//
7471// Returned Error Types:
7472//   * InvalidGatewayRequestException
7473//   An exception occurred because an invalid gateway request was issued to the
7474//   service. For more information, see the error and message fields.
7475//
7476//   * InternalServerError
7477//   An internal server error has occurred during the request. For more information,
7478//   see the error and message fields.
7479//
7480// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewayInformation
7481func (c *StorageGateway) UpdateGatewayInformation(input *UpdateGatewayInformationInput) (*UpdateGatewayInformationOutput, error) {
7482	req, out := c.UpdateGatewayInformationRequest(input)
7483	return out, req.Send()
7484}
7485
7486// UpdateGatewayInformationWithContext is the same as UpdateGatewayInformation with the addition of
7487// the ability to pass a context and additional request options.
7488//
7489// See UpdateGatewayInformation for details on how to use this API operation.
7490//
7491// The context must be non-nil and will be used for request cancellation. If
7492// the context is nil a panic will occur. In the future the SDK may create
7493// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7494// for more information on using Contexts.
7495func (c *StorageGateway) UpdateGatewayInformationWithContext(ctx aws.Context, input *UpdateGatewayInformationInput, opts ...request.Option) (*UpdateGatewayInformationOutput, error) {
7496	req, out := c.UpdateGatewayInformationRequest(input)
7497	req.SetContext(ctx)
7498	req.ApplyOptions(opts...)
7499	return out, req.Send()
7500}
7501
7502const opUpdateGatewaySoftwareNow = "UpdateGatewaySoftwareNow"
7503
7504// UpdateGatewaySoftwareNowRequest generates a "aws/request.Request" representing the
7505// client's request for the UpdateGatewaySoftwareNow operation. The "output" return
7506// value will be populated with the request's response once the request completes
7507// successfully.
7508//
7509// Use "Send" method on the returned Request to send the API call to the service.
7510// the "output" return value is not valid until after Send returns without error.
7511//
7512// See UpdateGatewaySoftwareNow for more information on using the UpdateGatewaySoftwareNow
7513// API call, and error handling.
7514//
7515// This method is useful when you want to inject custom logic or configuration
7516// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7517//
7518//
7519//    // Example sending a request using the UpdateGatewaySoftwareNowRequest method.
7520//    req, resp := client.UpdateGatewaySoftwareNowRequest(params)
7521//
7522//    err := req.Send()
7523//    if err == nil { // resp is now filled
7524//        fmt.Println(resp)
7525//    }
7526//
7527// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewaySoftwareNow
7528func (c *StorageGateway) UpdateGatewaySoftwareNowRequest(input *UpdateGatewaySoftwareNowInput) (req *request.Request, output *UpdateGatewaySoftwareNowOutput) {
7529	op := &request.Operation{
7530		Name:       opUpdateGatewaySoftwareNow,
7531		HTTPMethod: "POST",
7532		HTTPPath:   "/",
7533	}
7534
7535	if input == nil {
7536		input = &UpdateGatewaySoftwareNowInput{}
7537	}
7538
7539	output = &UpdateGatewaySoftwareNowOutput{}
7540	req = c.newRequest(op, input, output)
7541	return
7542}
7543
7544// UpdateGatewaySoftwareNow API operation for AWS Storage Gateway.
7545//
7546// Updates the gateway virtual machine (VM) software. The request immediately
7547// triggers the software update.
7548//
7549// When you make this request, you get a 200 OK success response immediately.
7550// However, it might take some time for the update to complete. You can call
7551// DescribeGatewayInformation to verify the gateway is in the STATE_RUNNING
7552// state.
7553//
7554// A software update forces a system restart of your gateway. You can minimize
7555// the chance of any disruption to your applications by increasing your iSCSI
7556// Initiators' timeouts. For more information about increasing iSCSI Initiator
7557// timeouts for Windows and Linux, see Customizing your Windows iSCSI settings
7558// (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorWindowsClient.html#CustomizeWindowsiSCSISettings)
7559// and Customizing your Linux iSCSI settings (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings),
7560// respectively.
7561//
7562// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7563// with awserr.Error's Code and Message methods to get detailed information about
7564// the error.
7565//
7566// See the AWS API reference guide for AWS Storage Gateway's
7567// API operation UpdateGatewaySoftwareNow for usage and error information.
7568//
7569// Returned Error Types:
7570//   * InvalidGatewayRequestException
7571//   An exception occurred because an invalid gateway request was issued to the
7572//   service. For more information, see the error and message fields.
7573//
7574//   * InternalServerError
7575//   An internal server error has occurred during the request. For more information,
7576//   see the error and message fields.
7577//
7578// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewaySoftwareNow
7579func (c *StorageGateway) UpdateGatewaySoftwareNow(input *UpdateGatewaySoftwareNowInput) (*UpdateGatewaySoftwareNowOutput, error) {
7580	req, out := c.UpdateGatewaySoftwareNowRequest(input)
7581	return out, req.Send()
7582}
7583
7584// UpdateGatewaySoftwareNowWithContext is the same as UpdateGatewaySoftwareNow with the addition of
7585// the ability to pass a context and additional request options.
7586//
7587// See UpdateGatewaySoftwareNow for details on how to use this API operation.
7588//
7589// The context must be non-nil and will be used for request cancellation. If
7590// the context is nil a panic will occur. In the future the SDK may create
7591// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7592// for more information on using Contexts.
7593func (c *StorageGateway) UpdateGatewaySoftwareNowWithContext(ctx aws.Context, input *UpdateGatewaySoftwareNowInput, opts ...request.Option) (*UpdateGatewaySoftwareNowOutput, error) {
7594	req, out := c.UpdateGatewaySoftwareNowRequest(input)
7595	req.SetContext(ctx)
7596	req.ApplyOptions(opts...)
7597	return out, req.Send()
7598}
7599
7600const opUpdateMaintenanceStartTime = "UpdateMaintenanceStartTime"
7601
7602// UpdateMaintenanceStartTimeRequest generates a "aws/request.Request" representing the
7603// client's request for the UpdateMaintenanceStartTime operation. The "output" return
7604// value will be populated with the request's response once the request completes
7605// successfully.
7606//
7607// Use "Send" method on the returned Request to send the API call to the service.
7608// the "output" return value is not valid until after Send returns without error.
7609//
7610// See UpdateMaintenanceStartTime for more information on using the UpdateMaintenanceStartTime
7611// API call, and error handling.
7612//
7613// This method is useful when you want to inject custom logic or configuration
7614// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7615//
7616//
7617//    // Example sending a request using the UpdateMaintenanceStartTimeRequest method.
7618//    req, resp := client.UpdateMaintenanceStartTimeRequest(params)
7619//
7620//    err := req.Send()
7621//    if err == nil { // resp is now filled
7622//        fmt.Println(resp)
7623//    }
7624//
7625// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateMaintenanceStartTime
7626func (c *StorageGateway) UpdateMaintenanceStartTimeRequest(input *UpdateMaintenanceStartTimeInput) (req *request.Request, output *UpdateMaintenanceStartTimeOutput) {
7627	op := &request.Operation{
7628		Name:       opUpdateMaintenanceStartTime,
7629		HTTPMethod: "POST",
7630		HTTPPath:   "/",
7631	}
7632
7633	if input == nil {
7634		input = &UpdateMaintenanceStartTimeInput{}
7635	}
7636
7637	output = &UpdateMaintenanceStartTimeOutput{}
7638	req = c.newRequest(op, input, output)
7639	return
7640}
7641
7642// UpdateMaintenanceStartTime API operation for AWS Storage Gateway.
7643//
7644// Updates a gateway's weekly maintenance start time information, including
7645// day and time of the week. The maintenance time is the time in your gateway's
7646// time zone.
7647//
7648// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7649// with awserr.Error's Code and Message methods to get detailed information about
7650// the error.
7651//
7652// See the AWS API reference guide for AWS Storage Gateway's
7653// API operation UpdateMaintenanceStartTime for usage and error information.
7654//
7655// Returned Error Types:
7656//   * InvalidGatewayRequestException
7657//   An exception occurred because an invalid gateway request was issued to the
7658//   service. For more information, see the error and message fields.
7659//
7660//   * InternalServerError
7661//   An internal server error has occurred during the request. For more information,
7662//   see the error and message fields.
7663//
7664// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateMaintenanceStartTime
7665func (c *StorageGateway) UpdateMaintenanceStartTime(input *UpdateMaintenanceStartTimeInput) (*UpdateMaintenanceStartTimeOutput, error) {
7666	req, out := c.UpdateMaintenanceStartTimeRequest(input)
7667	return out, req.Send()
7668}
7669
7670// UpdateMaintenanceStartTimeWithContext is the same as UpdateMaintenanceStartTime with the addition of
7671// the ability to pass a context and additional request options.
7672//
7673// See UpdateMaintenanceStartTime for details on how to use this API operation.
7674//
7675// The context must be non-nil and will be used for request cancellation. If
7676// the context is nil a panic will occur. In the future the SDK may create
7677// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7678// for more information on using Contexts.
7679func (c *StorageGateway) UpdateMaintenanceStartTimeWithContext(ctx aws.Context, input *UpdateMaintenanceStartTimeInput, opts ...request.Option) (*UpdateMaintenanceStartTimeOutput, error) {
7680	req, out := c.UpdateMaintenanceStartTimeRequest(input)
7681	req.SetContext(ctx)
7682	req.ApplyOptions(opts...)
7683	return out, req.Send()
7684}
7685
7686const opUpdateNFSFileShare = "UpdateNFSFileShare"
7687
7688// UpdateNFSFileShareRequest generates a "aws/request.Request" representing the
7689// client's request for the UpdateNFSFileShare operation. The "output" return
7690// value will be populated with the request's response once the request completes
7691// successfully.
7692//
7693// Use "Send" method on the returned Request to send the API call to the service.
7694// the "output" return value is not valid until after Send returns without error.
7695//
7696// See UpdateNFSFileShare for more information on using the UpdateNFSFileShare
7697// API call, and error handling.
7698//
7699// This method is useful when you want to inject custom logic or configuration
7700// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7701//
7702//
7703//    // Example sending a request using the UpdateNFSFileShareRequest method.
7704//    req, resp := client.UpdateNFSFileShareRequest(params)
7705//
7706//    err := req.Send()
7707//    if err == nil { // resp is now filled
7708//        fmt.Println(resp)
7709//    }
7710//
7711// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateNFSFileShare
7712func (c *StorageGateway) UpdateNFSFileShareRequest(input *UpdateNFSFileShareInput) (req *request.Request, output *UpdateNFSFileShareOutput) {
7713	op := &request.Operation{
7714		Name:       opUpdateNFSFileShare,
7715		HTTPMethod: "POST",
7716		HTTPPath:   "/",
7717	}
7718
7719	if input == nil {
7720		input = &UpdateNFSFileShareInput{}
7721	}
7722
7723	output = &UpdateNFSFileShareOutput{}
7724	req = c.newRequest(op, input, output)
7725	return
7726}
7727
7728// UpdateNFSFileShare API operation for AWS Storage Gateway.
7729//
7730// Updates a Network File System (NFS) file share. This operation is only supported
7731// in the file gateway type.
7732//
7733// To leave a file share field unchanged, set the corresponding input field
7734// to null.
7735//
7736// Updates the following file share settings:
7737//
7738//    * Default storage class for your S3 bucket
7739//
7740//    * Metadata defaults for your S3 bucket
7741//
7742//    * Allowed NFS clients for your file share
7743//
7744//    * Squash settings
7745//
7746//    * Write status of your file share
7747//
7748// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7749// with awserr.Error's Code and Message methods to get detailed information about
7750// the error.
7751//
7752// See the AWS API reference guide for AWS Storage Gateway's
7753// API operation UpdateNFSFileShare for usage and error information.
7754//
7755// Returned Error Types:
7756//   * InvalidGatewayRequestException
7757//   An exception occurred because an invalid gateway request was issued to the
7758//   service. For more information, see the error and message fields.
7759//
7760//   * InternalServerError
7761//   An internal server error has occurred during the request. For more information,
7762//   see the error and message fields.
7763//
7764// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateNFSFileShare
7765func (c *StorageGateway) UpdateNFSFileShare(input *UpdateNFSFileShareInput) (*UpdateNFSFileShareOutput, error) {
7766	req, out := c.UpdateNFSFileShareRequest(input)
7767	return out, req.Send()
7768}
7769
7770// UpdateNFSFileShareWithContext is the same as UpdateNFSFileShare with the addition of
7771// the ability to pass a context and additional request options.
7772//
7773// See UpdateNFSFileShare for details on how to use this API operation.
7774//
7775// The context must be non-nil and will be used for request cancellation. If
7776// the context is nil a panic will occur. In the future the SDK may create
7777// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7778// for more information on using Contexts.
7779func (c *StorageGateway) UpdateNFSFileShareWithContext(ctx aws.Context, input *UpdateNFSFileShareInput, opts ...request.Option) (*UpdateNFSFileShareOutput, error) {
7780	req, out := c.UpdateNFSFileShareRequest(input)
7781	req.SetContext(ctx)
7782	req.ApplyOptions(opts...)
7783	return out, req.Send()
7784}
7785
7786const opUpdateSMBFileShare = "UpdateSMBFileShare"
7787
7788// UpdateSMBFileShareRequest generates a "aws/request.Request" representing the
7789// client's request for the UpdateSMBFileShare operation. The "output" return
7790// value will be populated with the request's response once the request completes
7791// successfully.
7792//
7793// Use "Send" method on the returned Request to send the API call to the service.
7794// the "output" return value is not valid until after Send returns without error.
7795//
7796// See UpdateSMBFileShare for more information on using the UpdateSMBFileShare
7797// API call, and error handling.
7798//
7799// This method is useful when you want to inject custom logic or configuration
7800// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7801//
7802//
7803//    // Example sending a request using the UpdateSMBFileShareRequest method.
7804//    req, resp := client.UpdateSMBFileShareRequest(params)
7805//
7806//    err := req.Send()
7807//    if err == nil { // resp is now filled
7808//        fmt.Println(resp)
7809//    }
7810//
7811// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShare
7812func (c *StorageGateway) UpdateSMBFileShareRequest(input *UpdateSMBFileShareInput) (req *request.Request, output *UpdateSMBFileShareOutput) {
7813	op := &request.Operation{
7814		Name:       opUpdateSMBFileShare,
7815		HTTPMethod: "POST",
7816		HTTPPath:   "/",
7817	}
7818
7819	if input == nil {
7820		input = &UpdateSMBFileShareInput{}
7821	}
7822
7823	output = &UpdateSMBFileShareOutput{}
7824	req = c.newRequest(op, input, output)
7825	return
7826}
7827
7828// UpdateSMBFileShare API operation for AWS Storage Gateway.
7829//
7830// Updates a Server Message Block (SMB) file share. This operation is only supported
7831// for file gateways.
7832//
7833// To leave a file share field unchanged, set the corresponding input field
7834// to null.
7835//
7836// File gateways require AWS Security Token Service (AWS STS) to be activated
7837// to enable you to create a file share. Make sure that AWS STS is activated
7838// in the AWS Region you are creating your file gateway in. If AWS STS is not
7839// activated in this AWS Region, activate it. For information about how to activate
7840// 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)
7841// in the AWS Identity and Access Management User Guide.
7842//
7843// File gateways don't support creating hard or symbolic links on a file share.
7844//
7845// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7846// with awserr.Error's Code and Message methods to get detailed information about
7847// the error.
7848//
7849// See the AWS API reference guide for AWS Storage Gateway's
7850// API operation UpdateSMBFileShare for usage and error information.
7851//
7852// Returned Error Types:
7853//   * InvalidGatewayRequestException
7854//   An exception occurred because an invalid gateway request was issued to the
7855//   service. For more information, see the error and message fields.
7856//
7857//   * InternalServerError
7858//   An internal server error has occurred during the request. For more information,
7859//   see the error and message fields.
7860//
7861// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShare
7862func (c *StorageGateway) UpdateSMBFileShare(input *UpdateSMBFileShareInput) (*UpdateSMBFileShareOutput, error) {
7863	req, out := c.UpdateSMBFileShareRequest(input)
7864	return out, req.Send()
7865}
7866
7867// UpdateSMBFileShareWithContext is the same as UpdateSMBFileShare with the addition of
7868// the ability to pass a context and additional request options.
7869//
7870// See UpdateSMBFileShare for details on how to use this API operation.
7871//
7872// The context must be non-nil and will be used for request cancellation. If
7873// the context is nil a panic will occur. In the future the SDK may create
7874// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7875// for more information on using Contexts.
7876func (c *StorageGateway) UpdateSMBFileShareWithContext(ctx aws.Context, input *UpdateSMBFileShareInput, opts ...request.Option) (*UpdateSMBFileShareOutput, error) {
7877	req, out := c.UpdateSMBFileShareRequest(input)
7878	req.SetContext(ctx)
7879	req.ApplyOptions(opts...)
7880	return out, req.Send()
7881}
7882
7883const opUpdateSMBFileShareVisibility = "UpdateSMBFileShareVisibility"
7884
7885// UpdateSMBFileShareVisibilityRequest generates a "aws/request.Request" representing the
7886// client's request for the UpdateSMBFileShareVisibility operation. The "output" return
7887// value will be populated with the request's response once the request completes
7888// successfully.
7889//
7890// Use "Send" method on the returned Request to send the API call to the service.
7891// the "output" return value is not valid until after Send returns without error.
7892//
7893// See UpdateSMBFileShareVisibility for more information on using the UpdateSMBFileShareVisibility
7894// API call, and error handling.
7895//
7896// This method is useful when you want to inject custom logic or configuration
7897// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7898//
7899//
7900//    // Example sending a request using the UpdateSMBFileShareVisibilityRequest method.
7901//    req, resp := client.UpdateSMBFileShareVisibilityRequest(params)
7902//
7903//    err := req.Send()
7904//    if err == nil { // resp is now filled
7905//        fmt.Println(resp)
7906//    }
7907//
7908// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShareVisibility
7909func (c *StorageGateway) UpdateSMBFileShareVisibilityRequest(input *UpdateSMBFileShareVisibilityInput) (req *request.Request, output *UpdateSMBFileShareVisibilityOutput) {
7910	op := &request.Operation{
7911		Name:       opUpdateSMBFileShareVisibility,
7912		HTTPMethod: "POST",
7913		HTTPPath:   "/",
7914	}
7915
7916	if input == nil {
7917		input = &UpdateSMBFileShareVisibilityInput{}
7918	}
7919
7920	output = &UpdateSMBFileShareVisibilityOutput{}
7921	req = c.newRequest(op, input, output)
7922	return
7923}
7924
7925// UpdateSMBFileShareVisibility API operation for AWS Storage Gateway.
7926//
7927// Controls whether the shares on a gateway are visible in a net view or browse
7928// list.
7929//
7930// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7931// with awserr.Error's Code and Message methods to get detailed information about
7932// the error.
7933//
7934// See the AWS API reference guide for AWS Storage Gateway's
7935// API operation UpdateSMBFileShareVisibility for usage and error information.
7936//
7937// Returned Error Types:
7938//   * InvalidGatewayRequestException
7939//   An exception occurred because an invalid gateway request was issued to the
7940//   service. For more information, see the error and message fields.
7941//
7942//   * InternalServerError
7943//   An internal server error has occurred during the request. For more information,
7944//   see the error and message fields.
7945//
7946// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShareVisibility
7947func (c *StorageGateway) UpdateSMBFileShareVisibility(input *UpdateSMBFileShareVisibilityInput) (*UpdateSMBFileShareVisibilityOutput, error) {
7948	req, out := c.UpdateSMBFileShareVisibilityRequest(input)
7949	return out, req.Send()
7950}
7951
7952// UpdateSMBFileShareVisibilityWithContext is the same as UpdateSMBFileShareVisibility with the addition of
7953// the ability to pass a context and additional request options.
7954//
7955// See UpdateSMBFileShareVisibility for details on how to use this API operation.
7956//
7957// The context must be non-nil and will be used for request cancellation. If
7958// the context is nil a panic will occur. In the future the SDK may create
7959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7960// for more information on using Contexts.
7961func (c *StorageGateway) UpdateSMBFileShareVisibilityWithContext(ctx aws.Context, input *UpdateSMBFileShareVisibilityInput, opts ...request.Option) (*UpdateSMBFileShareVisibilityOutput, error) {
7962	req, out := c.UpdateSMBFileShareVisibilityRequest(input)
7963	req.SetContext(ctx)
7964	req.ApplyOptions(opts...)
7965	return out, req.Send()
7966}
7967
7968const opUpdateSMBSecurityStrategy = "UpdateSMBSecurityStrategy"
7969
7970// UpdateSMBSecurityStrategyRequest generates a "aws/request.Request" representing the
7971// client's request for the UpdateSMBSecurityStrategy operation. The "output" return
7972// value will be populated with the request's response once the request completes
7973// successfully.
7974//
7975// Use "Send" method on the returned Request to send the API call to the service.
7976// the "output" return value is not valid until after Send returns without error.
7977//
7978// See UpdateSMBSecurityStrategy for more information on using the UpdateSMBSecurityStrategy
7979// API call, and error handling.
7980//
7981// This method is useful when you want to inject custom logic or configuration
7982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7983//
7984//
7985//    // Example sending a request using the UpdateSMBSecurityStrategyRequest method.
7986//    req, resp := client.UpdateSMBSecurityStrategyRequest(params)
7987//
7988//    err := req.Send()
7989//    if err == nil { // resp is now filled
7990//        fmt.Println(resp)
7991//    }
7992//
7993// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBSecurityStrategy
7994func (c *StorageGateway) UpdateSMBSecurityStrategyRequest(input *UpdateSMBSecurityStrategyInput) (req *request.Request, output *UpdateSMBSecurityStrategyOutput) {
7995	op := &request.Operation{
7996		Name:       opUpdateSMBSecurityStrategy,
7997		HTTPMethod: "POST",
7998		HTTPPath:   "/",
7999	}
8000
8001	if input == nil {
8002		input = &UpdateSMBSecurityStrategyInput{}
8003	}
8004
8005	output = &UpdateSMBSecurityStrategyOutput{}
8006	req = c.newRequest(op, input, output)
8007	return
8008}
8009
8010// UpdateSMBSecurityStrategy API operation for AWS Storage Gateway.
8011//
8012// Updates the SMB security strategy on a file gateway. This action is only
8013// supported in file gateways.
8014//
8015// This API is called Security level in the User Guide.
8016//
8017// A higher security level can affect performance of the gateway.
8018//
8019// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8020// with awserr.Error's Code and Message methods to get detailed information about
8021// the error.
8022//
8023// See the AWS API reference guide for AWS Storage Gateway's
8024// API operation UpdateSMBSecurityStrategy for usage and error information.
8025//
8026// Returned Error Types:
8027//   * InvalidGatewayRequestException
8028//   An exception occurred because an invalid gateway request was issued to the
8029//   service. For more information, see the error and message fields.
8030//
8031//   * InternalServerError
8032//   An internal server error has occurred during the request. For more information,
8033//   see the error and message fields.
8034//
8035// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBSecurityStrategy
8036func (c *StorageGateway) UpdateSMBSecurityStrategy(input *UpdateSMBSecurityStrategyInput) (*UpdateSMBSecurityStrategyOutput, error) {
8037	req, out := c.UpdateSMBSecurityStrategyRequest(input)
8038	return out, req.Send()
8039}
8040
8041// UpdateSMBSecurityStrategyWithContext is the same as UpdateSMBSecurityStrategy with the addition of
8042// the ability to pass a context and additional request options.
8043//
8044// See UpdateSMBSecurityStrategy for details on how to use this API operation.
8045//
8046// The context must be non-nil and will be used for request cancellation. If
8047// the context is nil a panic will occur. In the future the SDK may create
8048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8049// for more information on using Contexts.
8050func (c *StorageGateway) UpdateSMBSecurityStrategyWithContext(ctx aws.Context, input *UpdateSMBSecurityStrategyInput, opts ...request.Option) (*UpdateSMBSecurityStrategyOutput, error) {
8051	req, out := c.UpdateSMBSecurityStrategyRequest(input)
8052	req.SetContext(ctx)
8053	req.ApplyOptions(opts...)
8054	return out, req.Send()
8055}
8056
8057const opUpdateSnapshotSchedule = "UpdateSnapshotSchedule"
8058
8059// UpdateSnapshotScheduleRequest generates a "aws/request.Request" representing the
8060// client's request for the UpdateSnapshotSchedule operation. The "output" return
8061// value will be populated with the request's response once the request completes
8062// successfully.
8063//
8064// Use "Send" method on the returned Request to send the API call to the service.
8065// the "output" return value is not valid until after Send returns without error.
8066//
8067// See UpdateSnapshotSchedule for more information on using the UpdateSnapshotSchedule
8068// API call, and error handling.
8069//
8070// This method is useful when you want to inject custom logic or configuration
8071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8072//
8073//
8074//    // Example sending a request using the UpdateSnapshotScheduleRequest method.
8075//    req, resp := client.UpdateSnapshotScheduleRequest(params)
8076//
8077//    err := req.Send()
8078//    if err == nil { // resp is now filled
8079//        fmt.Println(resp)
8080//    }
8081//
8082// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSnapshotSchedule
8083func (c *StorageGateway) UpdateSnapshotScheduleRequest(input *UpdateSnapshotScheduleInput) (req *request.Request, output *UpdateSnapshotScheduleOutput) {
8084	op := &request.Operation{
8085		Name:       opUpdateSnapshotSchedule,
8086		HTTPMethod: "POST",
8087		HTTPPath:   "/",
8088	}
8089
8090	if input == nil {
8091		input = &UpdateSnapshotScheduleInput{}
8092	}
8093
8094	output = &UpdateSnapshotScheduleOutput{}
8095	req = c.newRequest(op, input, output)
8096	return
8097}
8098
8099// UpdateSnapshotSchedule API operation for AWS Storage Gateway.
8100//
8101// Updates a snapshot schedule configured for a gateway volume. This operation
8102// is only supported in the cached volume and stored volume gateway types.
8103//
8104// The default snapshot schedule for volume is once every 24 hours, starting
8105// at the creation time of the volume. You can use this API to change the snapshot
8106// schedule configured for the volume.
8107//
8108// In the request you must identify the gateway volume whose snapshot schedule
8109// you want to update, and the schedule information, including when you want
8110// the snapshot to begin on a day and the frequency (in hours) of snapshots.
8111//
8112// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8113// with awserr.Error's Code and Message methods to get detailed information about
8114// the error.
8115//
8116// See the AWS API reference guide for AWS Storage Gateway's
8117// API operation UpdateSnapshotSchedule for usage and error information.
8118//
8119// Returned Error Types:
8120//   * InvalidGatewayRequestException
8121//   An exception occurred because an invalid gateway request was issued to the
8122//   service. For more information, see the error and message fields.
8123//
8124//   * InternalServerError
8125//   An internal server error has occurred during the request. For more information,
8126//   see the error and message fields.
8127//
8128// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSnapshotSchedule
8129func (c *StorageGateway) UpdateSnapshotSchedule(input *UpdateSnapshotScheduleInput) (*UpdateSnapshotScheduleOutput, error) {
8130	req, out := c.UpdateSnapshotScheduleRequest(input)
8131	return out, req.Send()
8132}
8133
8134// UpdateSnapshotScheduleWithContext is the same as UpdateSnapshotSchedule with the addition of
8135// the ability to pass a context and additional request options.
8136//
8137// See UpdateSnapshotSchedule for details on how to use this API operation.
8138//
8139// The context must be non-nil and will be used for request cancellation. If
8140// the context is nil a panic will occur. In the future the SDK may create
8141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8142// for more information on using Contexts.
8143func (c *StorageGateway) UpdateSnapshotScheduleWithContext(ctx aws.Context, input *UpdateSnapshotScheduleInput, opts ...request.Option) (*UpdateSnapshotScheduleOutput, error) {
8144	req, out := c.UpdateSnapshotScheduleRequest(input)
8145	req.SetContext(ctx)
8146	req.ApplyOptions(opts...)
8147	return out, req.Send()
8148}
8149
8150const opUpdateVTLDeviceType = "UpdateVTLDeviceType"
8151
8152// UpdateVTLDeviceTypeRequest generates a "aws/request.Request" representing the
8153// client's request for the UpdateVTLDeviceType operation. The "output" return
8154// value will be populated with the request's response once the request completes
8155// successfully.
8156//
8157// Use "Send" method on the returned Request to send the API call to the service.
8158// the "output" return value is not valid until after Send returns without error.
8159//
8160// See UpdateVTLDeviceType for more information on using the UpdateVTLDeviceType
8161// API call, and error handling.
8162//
8163// This method is useful when you want to inject custom logic or configuration
8164// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8165//
8166//
8167//    // Example sending a request using the UpdateVTLDeviceTypeRequest method.
8168//    req, resp := client.UpdateVTLDeviceTypeRequest(params)
8169//
8170//    err := req.Send()
8171//    if err == nil { // resp is now filled
8172//        fmt.Println(resp)
8173//    }
8174//
8175// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateVTLDeviceType
8176func (c *StorageGateway) UpdateVTLDeviceTypeRequest(input *UpdateVTLDeviceTypeInput) (req *request.Request, output *UpdateVTLDeviceTypeOutput) {
8177	op := &request.Operation{
8178		Name:       opUpdateVTLDeviceType,
8179		HTTPMethod: "POST",
8180		HTTPPath:   "/",
8181	}
8182
8183	if input == nil {
8184		input = &UpdateVTLDeviceTypeInput{}
8185	}
8186
8187	output = &UpdateVTLDeviceTypeOutput{}
8188	req = c.newRequest(op, input, output)
8189	return
8190}
8191
8192// UpdateVTLDeviceType API operation for AWS Storage Gateway.
8193//
8194// Updates the type of medium changer in a tape gateway. When you activate a
8195// tape gateway, you select a medium changer type for the tape gateway. This
8196// operation enables you to select a different type of medium changer after
8197// a tape gateway is activated. This operation is only supported in the tape
8198// gateway type.
8199//
8200// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8201// with awserr.Error's Code and Message methods to get detailed information about
8202// the error.
8203//
8204// See the AWS API reference guide for AWS Storage Gateway's
8205// API operation UpdateVTLDeviceType for usage and error information.
8206//
8207// Returned Error Types:
8208//   * InvalidGatewayRequestException
8209//   An exception occurred because an invalid gateway request was issued to the
8210//   service. For more information, see the error and message fields.
8211//
8212//   * InternalServerError
8213//   An internal server error has occurred during the request. For more information,
8214//   see the error and message fields.
8215//
8216// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateVTLDeviceType
8217func (c *StorageGateway) UpdateVTLDeviceType(input *UpdateVTLDeviceTypeInput) (*UpdateVTLDeviceTypeOutput, error) {
8218	req, out := c.UpdateVTLDeviceTypeRequest(input)
8219	return out, req.Send()
8220}
8221
8222// UpdateVTLDeviceTypeWithContext is the same as UpdateVTLDeviceType with the addition of
8223// the ability to pass a context and additional request options.
8224//
8225// See UpdateVTLDeviceType for details on how to use this API operation.
8226//
8227// The context must be non-nil and will be used for request cancellation. If
8228// the context is nil a panic will occur. In the future the SDK may create
8229// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8230// for more information on using Contexts.
8231func (c *StorageGateway) UpdateVTLDeviceTypeWithContext(ctx aws.Context, input *UpdateVTLDeviceTypeInput, opts ...request.Option) (*UpdateVTLDeviceTypeOutput, error) {
8232	req, out := c.UpdateVTLDeviceTypeRequest(input)
8233	req.SetContext(ctx)
8234	req.ApplyOptions(opts...)
8235	return out, req.Send()
8236}
8237
8238// A JSON object containing one or more of the following fields:
8239//
8240//    * ActivateGatewayInput$ActivationKey
8241//
8242//    * ActivateGatewayInput$GatewayName
8243//
8244//    * ActivateGatewayInput$GatewayRegion
8245//
8246//    * ActivateGatewayInput$GatewayTimezone
8247//
8248//    * ActivateGatewayInput$GatewayType
8249//
8250//    * ActivateGatewayInput$MediumChangerType
8251//
8252//    * ActivateGatewayInput$TapeDriveType
8253type ActivateGatewayInput struct {
8254	_ struct{} `type:"structure"`
8255
8256	// Your gateway activation key. You can obtain the activation key by sending
8257	// an HTTP GET request with redirects enabled to the gateway IP address (port
8258	// 80). The redirect URL returned in the response provides you the activation
8259	// key for your gateway in the query string parameter activationKey. It may
8260	// also include other activation-related parameters, however, these are merely
8261	// defaults -- the arguments you pass to the ActivateGateway API call determine
8262	// the actual configuration of your gateway.
8263	//
8264	// For more information, see Getting activation key (https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html)
8265	// in the AWS Storage Gateway User Guide.
8266	//
8267	// ActivationKey is a required field
8268	ActivationKey *string `min:"1" type:"string" required:"true"`
8269
8270	// The name you configured for your gateway.
8271	//
8272	// GatewayName is a required field
8273	GatewayName *string `min:"2" type:"string" required:"true"`
8274
8275	// A value that indicates the AWS Region where you want to store your data.
8276	// The gateway AWS Region specified must be the same AWS Region as the AWS Region
8277	// in your Host header in the request. For more information about available
8278	// AWS Regions and endpoints for AWS Storage Gateway, see AWS Storage Gateway
8279	// endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/sg.html)
8280	// in the AWS General Reference.
8281	//
8282	// Valid Values: See AWS Storage Gateway endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/sg.html)
8283	// in the AWS General Reference.
8284	//
8285	// GatewayRegion is a required field
8286	GatewayRegion *string `min:"1" type:"string" required:"true"`
8287
8288	// A value that indicates the time zone you want to set for the gateway. The
8289	// time zone is of the format "GMT-hr:mm" or "GMT+hr:mm". For example, GMT-4:00
8290	// indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is
8291	// 2 hours ahead of GMT. The time zone is used, for example, for scheduling
8292	// snapshots and your gateway's maintenance schedule.
8293	//
8294	// GatewayTimezone is a required field
8295	GatewayTimezone *string `min:"3" type:"string" required:"true"`
8296
8297	// A value that defines the type of gateway to activate. The type specified
8298	// is critical to all later functions of the gateway and cannot be changed after
8299	// activation. The default value is CACHED.
8300	//
8301	// Valid Values: STORED | CACHED | VTL | FILE_S3
8302	GatewayType *string `min:"2" type:"string"`
8303
8304	// The value that indicates the type of medium changer to use for tape gateway.
8305	// This field is optional.
8306	//
8307	// Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402
8308	MediumChangerType *string `min:"2" type:"string"`
8309
8310	// A list of up to 50 tags that you can assign to the gateway. Each tag is a
8311	// key-value pair.
8312	//
8313	// Valid characters for key and value are letters, spaces, and numbers that
8314	// can be represented in UTF-8 format, and the following special characters:
8315	// + - = . _ : / @. The maximum length of a tag's key is 128 characters, and
8316	// the maximum length for a tag's value is 256 characters.
8317	Tags []*Tag `type:"list"`
8318
8319	// The value that indicates the type of tape drive to use for tape gateway.
8320	// This field is optional.
8321	//
8322	// Valid Values: IBM-ULT3580-TD5
8323	TapeDriveType *string `min:"2" type:"string"`
8324}
8325
8326// String returns the string representation
8327func (s ActivateGatewayInput) String() string {
8328	return awsutil.Prettify(s)
8329}
8330
8331// GoString returns the string representation
8332func (s ActivateGatewayInput) GoString() string {
8333	return s.String()
8334}
8335
8336// Validate inspects the fields of the type to determine if they are valid.
8337func (s *ActivateGatewayInput) Validate() error {
8338	invalidParams := request.ErrInvalidParams{Context: "ActivateGatewayInput"}
8339	if s.ActivationKey == nil {
8340		invalidParams.Add(request.NewErrParamRequired("ActivationKey"))
8341	}
8342	if s.ActivationKey != nil && len(*s.ActivationKey) < 1 {
8343		invalidParams.Add(request.NewErrParamMinLen("ActivationKey", 1))
8344	}
8345	if s.GatewayName == nil {
8346		invalidParams.Add(request.NewErrParamRequired("GatewayName"))
8347	}
8348	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
8349		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
8350	}
8351	if s.GatewayRegion == nil {
8352		invalidParams.Add(request.NewErrParamRequired("GatewayRegion"))
8353	}
8354	if s.GatewayRegion != nil && len(*s.GatewayRegion) < 1 {
8355		invalidParams.Add(request.NewErrParamMinLen("GatewayRegion", 1))
8356	}
8357	if s.GatewayTimezone == nil {
8358		invalidParams.Add(request.NewErrParamRequired("GatewayTimezone"))
8359	}
8360	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
8361		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
8362	}
8363	if s.GatewayType != nil && len(*s.GatewayType) < 2 {
8364		invalidParams.Add(request.NewErrParamMinLen("GatewayType", 2))
8365	}
8366	if s.MediumChangerType != nil && len(*s.MediumChangerType) < 2 {
8367		invalidParams.Add(request.NewErrParamMinLen("MediumChangerType", 2))
8368	}
8369	if s.TapeDriveType != nil && len(*s.TapeDriveType) < 2 {
8370		invalidParams.Add(request.NewErrParamMinLen("TapeDriveType", 2))
8371	}
8372	if s.Tags != nil {
8373		for i, v := range s.Tags {
8374			if v == nil {
8375				continue
8376			}
8377			if err := v.Validate(); err != nil {
8378				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8379			}
8380		}
8381	}
8382
8383	if invalidParams.Len() > 0 {
8384		return invalidParams
8385	}
8386	return nil
8387}
8388
8389// SetActivationKey sets the ActivationKey field's value.
8390func (s *ActivateGatewayInput) SetActivationKey(v string) *ActivateGatewayInput {
8391	s.ActivationKey = &v
8392	return s
8393}
8394
8395// SetGatewayName sets the GatewayName field's value.
8396func (s *ActivateGatewayInput) SetGatewayName(v string) *ActivateGatewayInput {
8397	s.GatewayName = &v
8398	return s
8399}
8400
8401// SetGatewayRegion sets the GatewayRegion field's value.
8402func (s *ActivateGatewayInput) SetGatewayRegion(v string) *ActivateGatewayInput {
8403	s.GatewayRegion = &v
8404	return s
8405}
8406
8407// SetGatewayTimezone sets the GatewayTimezone field's value.
8408func (s *ActivateGatewayInput) SetGatewayTimezone(v string) *ActivateGatewayInput {
8409	s.GatewayTimezone = &v
8410	return s
8411}
8412
8413// SetGatewayType sets the GatewayType field's value.
8414func (s *ActivateGatewayInput) SetGatewayType(v string) *ActivateGatewayInput {
8415	s.GatewayType = &v
8416	return s
8417}
8418
8419// SetMediumChangerType sets the MediumChangerType field's value.
8420func (s *ActivateGatewayInput) SetMediumChangerType(v string) *ActivateGatewayInput {
8421	s.MediumChangerType = &v
8422	return s
8423}
8424
8425// SetTags sets the Tags field's value.
8426func (s *ActivateGatewayInput) SetTags(v []*Tag) *ActivateGatewayInput {
8427	s.Tags = v
8428	return s
8429}
8430
8431// SetTapeDriveType sets the TapeDriveType field's value.
8432func (s *ActivateGatewayInput) SetTapeDriveType(v string) *ActivateGatewayInput {
8433	s.TapeDriveType = &v
8434	return s
8435}
8436
8437// AWS Storage Gateway returns the Amazon Resource Name (ARN) of the activated
8438// gateway. It is a string made of information such as your account, gateway
8439// name, and AWS Region. This ARN is used to reference the gateway in other
8440// API operations as well as resource-based authorization.
8441//
8442// For gateways activated prior to September 02, 2015, the gateway ARN contains
8443// the gateway name rather than the gateway ID. Changing the name of the gateway
8444// has no effect on the gateway ARN.
8445type ActivateGatewayOutput struct {
8446	_ struct{} `type:"structure"`
8447
8448	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8449	// to return a list of gateways for your account and AWS Region.
8450	GatewayARN *string `min:"50" type:"string"`
8451}
8452
8453// String returns the string representation
8454func (s ActivateGatewayOutput) String() string {
8455	return awsutil.Prettify(s)
8456}
8457
8458// GoString returns the string representation
8459func (s ActivateGatewayOutput) GoString() string {
8460	return s.String()
8461}
8462
8463// SetGatewayARN sets the GatewayARN field's value.
8464func (s *ActivateGatewayOutput) SetGatewayARN(v string) *ActivateGatewayOutput {
8465	s.GatewayARN = &v
8466	return s
8467}
8468
8469type AddCacheInput struct {
8470	_ struct{} `type:"structure"`
8471
8472	// An array of strings that identify disks that are to be configured as working
8473	// storage. Each string has a minimum length of 1 and maximum length of 300.
8474	// You can get the disk IDs from the ListLocalDisks API.
8475	//
8476	// DiskIds is a required field
8477	DiskIds []*string `type:"list" required:"true"`
8478
8479	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8480	// to return a list of gateways for your account and AWS Region.
8481	//
8482	// GatewayARN is a required field
8483	GatewayARN *string `min:"50" type:"string" required:"true"`
8484}
8485
8486// String returns the string representation
8487func (s AddCacheInput) String() string {
8488	return awsutil.Prettify(s)
8489}
8490
8491// GoString returns the string representation
8492func (s AddCacheInput) GoString() string {
8493	return s.String()
8494}
8495
8496// Validate inspects the fields of the type to determine if they are valid.
8497func (s *AddCacheInput) Validate() error {
8498	invalidParams := request.ErrInvalidParams{Context: "AddCacheInput"}
8499	if s.DiskIds == nil {
8500		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
8501	}
8502	if s.GatewayARN == nil {
8503		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8504	}
8505	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8506		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8507	}
8508
8509	if invalidParams.Len() > 0 {
8510		return invalidParams
8511	}
8512	return nil
8513}
8514
8515// SetDiskIds sets the DiskIds field's value.
8516func (s *AddCacheInput) SetDiskIds(v []*string) *AddCacheInput {
8517	s.DiskIds = v
8518	return s
8519}
8520
8521// SetGatewayARN sets the GatewayARN field's value.
8522func (s *AddCacheInput) SetGatewayARN(v string) *AddCacheInput {
8523	s.GatewayARN = &v
8524	return s
8525}
8526
8527type AddCacheOutput struct {
8528	_ struct{} `type:"structure"`
8529
8530	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8531	// to return a list of gateways for your account and AWS Region.
8532	GatewayARN *string `min:"50" type:"string"`
8533}
8534
8535// String returns the string representation
8536func (s AddCacheOutput) String() string {
8537	return awsutil.Prettify(s)
8538}
8539
8540// GoString returns the string representation
8541func (s AddCacheOutput) GoString() string {
8542	return s.String()
8543}
8544
8545// SetGatewayARN sets the GatewayARN field's value.
8546func (s *AddCacheOutput) SetGatewayARN(v string) *AddCacheOutput {
8547	s.GatewayARN = &v
8548	return s
8549}
8550
8551// AddTagsToResourceInput
8552type AddTagsToResourceInput struct {
8553	_ struct{} `type:"structure"`
8554
8555	// The Amazon Resource Name (ARN) of the resource you want to add tags to.
8556	//
8557	// ResourceARN is a required field
8558	ResourceARN *string `min:"50" type:"string" required:"true"`
8559
8560	// The key-value pair that represents the tag you want to add to the resource.
8561	// The value can be an empty string.
8562	//
8563	// Valid characters for key and value are letters, spaces, and numbers representable
8564	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
8565	// maximum length of a tag's key is 128 characters, and the maximum length for
8566	// a tag's value is 256.
8567	//
8568	// Tags is a required field
8569	Tags []*Tag `type:"list" required:"true"`
8570}
8571
8572// String returns the string representation
8573func (s AddTagsToResourceInput) String() string {
8574	return awsutil.Prettify(s)
8575}
8576
8577// GoString returns the string representation
8578func (s AddTagsToResourceInput) GoString() string {
8579	return s.String()
8580}
8581
8582// Validate inspects the fields of the type to determine if they are valid.
8583func (s *AddTagsToResourceInput) Validate() error {
8584	invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"}
8585	if s.ResourceARN == nil {
8586		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
8587	}
8588	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
8589		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
8590	}
8591	if s.Tags == nil {
8592		invalidParams.Add(request.NewErrParamRequired("Tags"))
8593	}
8594	if s.Tags != nil {
8595		for i, v := range s.Tags {
8596			if v == nil {
8597				continue
8598			}
8599			if err := v.Validate(); err != nil {
8600				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8601			}
8602		}
8603	}
8604
8605	if invalidParams.Len() > 0 {
8606		return invalidParams
8607	}
8608	return nil
8609}
8610
8611// SetResourceARN sets the ResourceARN field's value.
8612func (s *AddTagsToResourceInput) SetResourceARN(v string) *AddTagsToResourceInput {
8613	s.ResourceARN = &v
8614	return s
8615}
8616
8617// SetTags sets the Tags field's value.
8618func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput {
8619	s.Tags = v
8620	return s
8621}
8622
8623// AddTagsToResourceOutput
8624type AddTagsToResourceOutput struct {
8625	_ struct{} `type:"structure"`
8626
8627	// The Amazon Resource Name (ARN) of the resource you want to add tags to.
8628	ResourceARN *string `min:"50" type:"string"`
8629}
8630
8631// String returns the string representation
8632func (s AddTagsToResourceOutput) String() string {
8633	return awsutil.Prettify(s)
8634}
8635
8636// GoString returns the string representation
8637func (s AddTagsToResourceOutput) GoString() string {
8638	return s.String()
8639}
8640
8641// SetResourceARN sets the ResourceARN field's value.
8642func (s *AddTagsToResourceOutput) SetResourceARN(v string) *AddTagsToResourceOutput {
8643	s.ResourceARN = &v
8644	return s
8645}
8646
8647type AddUploadBufferInput struct {
8648	_ struct{} `type:"structure"`
8649
8650	// An array of strings that identify disks that are to be configured as working
8651	// storage. Each string has a minimum length of 1 and maximum length of 300.
8652	// You can get the disk IDs from the ListLocalDisks API.
8653	//
8654	// DiskIds is a required field
8655	DiskIds []*string `type:"list" required:"true"`
8656
8657	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8658	// to return a list of gateways for your account and AWS Region.
8659	//
8660	// GatewayARN is a required field
8661	GatewayARN *string `min:"50" type:"string" required:"true"`
8662}
8663
8664// String returns the string representation
8665func (s AddUploadBufferInput) String() string {
8666	return awsutil.Prettify(s)
8667}
8668
8669// GoString returns the string representation
8670func (s AddUploadBufferInput) GoString() string {
8671	return s.String()
8672}
8673
8674// Validate inspects the fields of the type to determine if they are valid.
8675func (s *AddUploadBufferInput) Validate() error {
8676	invalidParams := request.ErrInvalidParams{Context: "AddUploadBufferInput"}
8677	if s.DiskIds == nil {
8678		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
8679	}
8680	if s.GatewayARN == nil {
8681		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8682	}
8683	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8684		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8685	}
8686
8687	if invalidParams.Len() > 0 {
8688		return invalidParams
8689	}
8690	return nil
8691}
8692
8693// SetDiskIds sets the DiskIds field's value.
8694func (s *AddUploadBufferInput) SetDiskIds(v []*string) *AddUploadBufferInput {
8695	s.DiskIds = v
8696	return s
8697}
8698
8699// SetGatewayARN sets the GatewayARN field's value.
8700func (s *AddUploadBufferInput) SetGatewayARN(v string) *AddUploadBufferInput {
8701	s.GatewayARN = &v
8702	return s
8703}
8704
8705type AddUploadBufferOutput struct {
8706	_ struct{} `type:"structure"`
8707
8708	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8709	// to return a list of gateways for your account and AWS Region.
8710	GatewayARN *string `min:"50" type:"string"`
8711}
8712
8713// String returns the string representation
8714func (s AddUploadBufferOutput) String() string {
8715	return awsutil.Prettify(s)
8716}
8717
8718// GoString returns the string representation
8719func (s AddUploadBufferOutput) GoString() string {
8720	return s.String()
8721}
8722
8723// SetGatewayARN sets the GatewayARN field's value.
8724func (s *AddUploadBufferOutput) SetGatewayARN(v string) *AddUploadBufferOutput {
8725	s.GatewayARN = &v
8726	return s
8727}
8728
8729// A JSON object containing one or more of the following fields:
8730//
8731//    * AddWorkingStorageInput$DiskIds
8732type AddWorkingStorageInput struct {
8733	_ struct{} `type:"structure"`
8734
8735	// An array of strings that identify disks that are to be configured as working
8736	// storage. Each string has a minimum length of 1 and maximum length of 300.
8737	// You can get the disk IDs from the ListLocalDisks API.
8738	//
8739	// DiskIds is a required field
8740	DiskIds []*string `type:"list" required:"true"`
8741
8742	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8743	// to return a list of gateways for your account and AWS Region.
8744	//
8745	// GatewayARN is a required field
8746	GatewayARN *string `min:"50" type:"string" required:"true"`
8747}
8748
8749// String returns the string representation
8750func (s AddWorkingStorageInput) String() string {
8751	return awsutil.Prettify(s)
8752}
8753
8754// GoString returns the string representation
8755func (s AddWorkingStorageInput) GoString() string {
8756	return s.String()
8757}
8758
8759// Validate inspects the fields of the type to determine if they are valid.
8760func (s *AddWorkingStorageInput) Validate() error {
8761	invalidParams := request.ErrInvalidParams{Context: "AddWorkingStorageInput"}
8762	if s.DiskIds == nil {
8763		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
8764	}
8765	if s.GatewayARN == nil {
8766		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8767	}
8768	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8769		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8770	}
8771
8772	if invalidParams.Len() > 0 {
8773		return invalidParams
8774	}
8775	return nil
8776}
8777
8778// SetDiskIds sets the DiskIds field's value.
8779func (s *AddWorkingStorageInput) SetDiskIds(v []*string) *AddWorkingStorageInput {
8780	s.DiskIds = v
8781	return s
8782}
8783
8784// SetGatewayARN sets the GatewayARN field's value.
8785func (s *AddWorkingStorageInput) SetGatewayARN(v string) *AddWorkingStorageInput {
8786	s.GatewayARN = &v
8787	return s
8788}
8789
8790// A JSON object containing the Amazon Resource Name (ARN) of the gateway for
8791// which working storage was configured.
8792type AddWorkingStorageOutput struct {
8793	_ struct{} `type:"structure"`
8794
8795	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8796	// to return a list of gateways for your account and AWS Region.
8797	GatewayARN *string `min:"50" type:"string"`
8798}
8799
8800// String returns the string representation
8801func (s AddWorkingStorageOutput) String() string {
8802	return awsutil.Prettify(s)
8803}
8804
8805// GoString returns the string representation
8806func (s AddWorkingStorageOutput) GoString() string {
8807	return s.String()
8808}
8809
8810// SetGatewayARN sets the GatewayARN field's value.
8811func (s *AddWorkingStorageOutput) SetGatewayARN(v string) *AddWorkingStorageOutput {
8812	s.GatewayARN = &v
8813	return s
8814}
8815
8816type AssignTapePoolInput struct {
8817	_ struct{} `type:"structure"`
8818
8819	// Set permissions to bypass governance retention. If the lock type of the archived
8820	// tape is Governance, the tape's archived age is not older than RetentionLockInDays,
8821	// and the user does not already have BypassGovernanceRetention, setting this
8822	// to TRUE enables the user to bypass the retention lock. This parameter is
8823	// set to true by default for calls from the console.
8824	//
8825	// Valid values: TRUE | FALSE
8826	BypassGovernanceRetention *bool `type:"boolean"`
8827
8828	// The ID of the pool that you want to add your tape to for archiving. The tape
8829	// in this pool is archived in the S3 storage class that is associated with
8830	// the pool. When you use your backup application to eject the tape, the tape
8831	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
8832	// Archive) that corresponds to the pool.
8833	//
8834	// Valid Values: GLACIER | DEEP_ARCHIVE
8835	//
8836	// PoolId is a required field
8837	PoolId *string `min:"1" type:"string" required:"true"`
8838
8839	// The unique Amazon Resource Name (ARN) of the virtual tape that you want to
8840	// add to the tape pool.
8841	//
8842	// TapeARN is a required field
8843	TapeARN *string `min:"50" type:"string" required:"true"`
8844}
8845
8846// String returns the string representation
8847func (s AssignTapePoolInput) String() string {
8848	return awsutil.Prettify(s)
8849}
8850
8851// GoString returns the string representation
8852func (s AssignTapePoolInput) GoString() string {
8853	return s.String()
8854}
8855
8856// Validate inspects the fields of the type to determine if they are valid.
8857func (s *AssignTapePoolInput) Validate() error {
8858	invalidParams := request.ErrInvalidParams{Context: "AssignTapePoolInput"}
8859	if s.PoolId == nil {
8860		invalidParams.Add(request.NewErrParamRequired("PoolId"))
8861	}
8862	if s.PoolId != nil && len(*s.PoolId) < 1 {
8863		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
8864	}
8865	if s.TapeARN == nil {
8866		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
8867	}
8868	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
8869		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
8870	}
8871
8872	if invalidParams.Len() > 0 {
8873		return invalidParams
8874	}
8875	return nil
8876}
8877
8878// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
8879func (s *AssignTapePoolInput) SetBypassGovernanceRetention(v bool) *AssignTapePoolInput {
8880	s.BypassGovernanceRetention = &v
8881	return s
8882}
8883
8884// SetPoolId sets the PoolId field's value.
8885func (s *AssignTapePoolInput) SetPoolId(v string) *AssignTapePoolInput {
8886	s.PoolId = &v
8887	return s
8888}
8889
8890// SetTapeARN sets the TapeARN field's value.
8891func (s *AssignTapePoolInput) SetTapeARN(v string) *AssignTapePoolInput {
8892	s.TapeARN = &v
8893	return s
8894}
8895
8896type AssignTapePoolOutput struct {
8897	_ struct{} `type:"structure"`
8898
8899	// The unique Amazon Resource Names (ARN) of the virtual tape that was added
8900	// to the tape pool.
8901	TapeARN *string `min:"50" type:"string"`
8902}
8903
8904// String returns the string representation
8905func (s AssignTapePoolOutput) String() string {
8906	return awsutil.Prettify(s)
8907}
8908
8909// GoString returns the string representation
8910func (s AssignTapePoolOutput) GoString() string {
8911	return s.String()
8912}
8913
8914// SetTapeARN sets the TapeARN field's value.
8915func (s *AssignTapePoolOutput) SetTapeARN(v string) *AssignTapePoolOutput {
8916	s.TapeARN = &v
8917	return s
8918}
8919
8920// AttachVolumeInput
8921type AttachVolumeInput struct {
8922	_ struct{} `type:"structure"`
8923
8924	// The unique device ID or other distinguishing data that identifies the local
8925	// disk used to create the volume. This value is only required when you are
8926	// attaching a stored volume.
8927	DiskId *string `min:"1" type:"string"`
8928
8929	// The Amazon Resource Name (ARN) of the gateway that you want to attach the
8930	// volume to.
8931	//
8932	// GatewayARN is a required field
8933	GatewayARN *string `min:"50" type:"string" required:"true"`
8934
8935	// The network interface of the gateway on which to expose the iSCSI target.
8936	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
8937	// list of the network interfaces available on a gateway.
8938	//
8939	// Valid Values: A valid IP address.
8940	//
8941	// NetworkInterfaceId is a required field
8942	NetworkInterfaceId *string `type:"string" required:"true"`
8943
8944	// The name of the iSCSI target used by an initiator to connect to a volume
8945	// and used as a suffix for the target ARN. For example, specifying TargetName
8946	// 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.
8947	// The target name must be unique across all volumes on a gateway.
8948	//
8949	// If you don't specify a value, Storage Gateway uses the value that was previously
8950	// used for this volume as the new target name.
8951	TargetName *string `min:"1" type:"string"`
8952
8953	// The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.
8954	//
8955	// VolumeARN is a required field
8956	VolumeARN *string `min:"50" type:"string" required:"true"`
8957}
8958
8959// String returns the string representation
8960func (s AttachVolumeInput) String() string {
8961	return awsutil.Prettify(s)
8962}
8963
8964// GoString returns the string representation
8965func (s AttachVolumeInput) GoString() string {
8966	return s.String()
8967}
8968
8969// Validate inspects the fields of the type to determine if they are valid.
8970func (s *AttachVolumeInput) Validate() error {
8971	invalidParams := request.ErrInvalidParams{Context: "AttachVolumeInput"}
8972	if s.DiskId != nil && len(*s.DiskId) < 1 {
8973		invalidParams.Add(request.NewErrParamMinLen("DiskId", 1))
8974	}
8975	if s.GatewayARN == nil {
8976		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8977	}
8978	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8979		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8980	}
8981	if s.NetworkInterfaceId == nil {
8982		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
8983	}
8984	if s.TargetName != nil && len(*s.TargetName) < 1 {
8985		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
8986	}
8987	if s.VolumeARN == nil {
8988		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
8989	}
8990	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
8991		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
8992	}
8993
8994	if invalidParams.Len() > 0 {
8995		return invalidParams
8996	}
8997	return nil
8998}
8999
9000// SetDiskId sets the DiskId field's value.
9001func (s *AttachVolumeInput) SetDiskId(v string) *AttachVolumeInput {
9002	s.DiskId = &v
9003	return s
9004}
9005
9006// SetGatewayARN sets the GatewayARN field's value.
9007func (s *AttachVolumeInput) SetGatewayARN(v string) *AttachVolumeInput {
9008	s.GatewayARN = &v
9009	return s
9010}
9011
9012// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
9013func (s *AttachVolumeInput) SetNetworkInterfaceId(v string) *AttachVolumeInput {
9014	s.NetworkInterfaceId = &v
9015	return s
9016}
9017
9018// SetTargetName sets the TargetName field's value.
9019func (s *AttachVolumeInput) SetTargetName(v string) *AttachVolumeInput {
9020	s.TargetName = &v
9021	return s
9022}
9023
9024// SetVolumeARN sets the VolumeARN field's value.
9025func (s *AttachVolumeInput) SetVolumeARN(v string) *AttachVolumeInput {
9026	s.VolumeARN = &v
9027	return s
9028}
9029
9030// AttachVolumeOutput
9031type AttachVolumeOutput struct {
9032	_ struct{} `type:"structure"`
9033
9034	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
9035	// name for the initiator that was used to connect to the target.
9036	TargetARN *string `min:"50" type:"string"`
9037
9038	// The Amazon Resource Name (ARN) of the volume that was attached to the gateway.
9039	VolumeARN *string `min:"50" type:"string"`
9040}
9041
9042// String returns the string representation
9043func (s AttachVolumeOutput) String() string {
9044	return awsutil.Prettify(s)
9045}
9046
9047// GoString returns the string representation
9048func (s AttachVolumeOutput) GoString() string {
9049	return s.String()
9050}
9051
9052// SetTargetARN sets the TargetARN field's value.
9053func (s *AttachVolumeOutput) SetTargetARN(v string) *AttachVolumeOutput {
9054	s.TargetARN = &v
9055	return s
9056}
9057
9058// SetVolumeARN sets the VolumeARN field's value.
9059func (s *AttachVolumeOutput) SetVolumeARN(v string) *AttachVolumeOutput {
9060	s.VolumeARN = &v
9061	return s
9062}
9063
9064// Information about the gateway's automatic tape creation policies, including
9065// the automatic tape creation rules and the gateway that is using the policies.
9066type AutomaticTapeCreationPolicyInfo struct {
9067	_ struct{} `type:"structure"`
9068
9069	// An automatic tape creation policy consists of a list of automatic tape creation
9070	// rules. This returns the rules that determine when and how to automatically
9071	// create new tapes.
9072	AutomaticTapeCreationRules []*AutomaticTapeCreationRule `min:"1" type:"list"`
9073
9074	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9075	// to return a list of gateways for your account and AWS Region.
9076	GatewayARN *string `min:"50" type:"string"`
9077}
9078
9079// String returns the string representation
9080func (s AutomaticTapeCreationPolicyInfo) String() string {
9081	return awsutil.Prettify(s)
9082}
9083
9084// GoString returns the string representation
9085func (s AutomaticTapeCreationPolicyInfo) GoString() string {
9086	return s.String()
9087}
9088
9089// SetAutomaticTapeCreationRules sets the AutomaticTapeCreationRules field's value.
9090func (s *AutomaticTapeCreationPolicyInfo) SetAutomaticTapeCreationRules(v []*AutomaticTapeCreationRule) *AutomaticTapeCreationPolicyInfo {
9091	s.AutomaticTapeCreationRules = v
9092	return s
9093}
9094
9095// SetGatewayARN sets the GatewayARN field's value.
9096func (s *AutomaticTapeCreationPolicyInfo) SetGatewayARN(v string) *AutomaticTapeCreationPolicyInfo {
9097	s.GatewayARN = &v
9098	return s
9099}
9100
9101// An automatic tape creation policy consists of automatic tape creation rules
9102// where each rule defines when and how to create new tapes. For more information
9103// about automatic tape creation, see Creating Tapes Automatically (https://docs.aws.amazon.com/storagegateway/latest/userguide/GettingStartedCreateTapes.html#CreateTapesAutomatically).
9104type AutomaticTapeCreationRule struct {
9105	_ struct{} `type:"structure"`
9106
9107	// The minimum number of available virtual tapes that the gateway maintains
9108	// at all times. If the number of tapes on the gateway goes below this value,
9109	// the gateway creates as many new tapes as are needed to have MinimumNumTapes
9110	// on the gateway. For more information about automatic tape creation, see Creating
9111	// Tapes Automatically (https://docs.aws.amazon.com/storagegateway/latest/userguide/GettingStartedCreateTapes.html#CreateTapesAutomatically).
9112	//
9113	// MinimumNumTapes is a required field
9114	MinimumNumTapes *int64 `min:"1" type:"integer" required:"true"`
9115
9116	// The ID of the pool that you want to add your tape to for archiving. The tape
9117	// in this pool is archived in the Amazon S3 storage class that is associated
9118	// with the pool. When you use your backup application to eject the tape, the
9119	// tape is archived directly into the storage class (S3 Glacier or S3 Glacier
9120	// Deep Archive) that corresponds to the pool.
9121	//
9122	// Valid Values: GLACIER | DEEP_ARCHIVE
9123	//
9124	// PoolId is a required field
9125	PoolId *string `min:"1" type:"string" required:"true"`
9126
9127	// A prefix that you append to the barcode of the virtual tape that you are
9128	// creating. This prefix makes the barcode unique.
9129	//
9130	// The prefix must be 1-4 characters in length and must be one of the uppercase
9131	// letters from A to Z.
9132	//
9133	// TapeBarcodePrefix is a required field
9134	TapeBarcodePrefix *string `min:"1" type:"string" required:"true"`
9135
9136	// The size, in bytes, of the virtual tape capacity.
9137	//
9138	// TapeSizeInBytes is a required field
9139	TapeSizeInBytes *int64 `type:"long" required:"true"`
9140
9141	// Set to true to indicate that tapes are to be archived as write-once-read-many
9142	// (WORM). Set to false when WORM is not enabled for tapes.
9143	Worm *bool `type:"boolean"`
9144}
9145
9146// String returns the string representation
9147func (s AutomaticTapeCreationRule) String() string {
9148	return awsutil.Prettify(s)
9149}
9150
9151// GoString returns the string representation
9152func (s AutomaticTapeCreationRule) GoString() string {
9153	return s.String()
9154}
9155
9156// Validate inspects the fields of the type to determine if they are valid.
9157func (s *AutomaticTapeCreationRule) Validate() error {
9158	invalidParams := request.ErrInvalidParams{Context: "AutomaticTapeCreationRule"}
9159	if s.MinimumNumTapes == nil {
9160		invalidParams.Add(request.NewErrParamRequired("MinimumNumTapes"))
9161	}
9162	if s.MinimumNumTapes != nil && *s.MinimumNumTapes < 1 {
9163		invalidParams.Add(request.NewErrParamMinValue("MinimumNumTapes", 1))
9164	}
9165	if s.PoolId == nil {
9166		invalidParams.Add(request.NewErrParamRequired("PoolId"))
9167	}
9168	if s.PoolId != nil && len(*s.PoolId) < 1 {
9169		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
9170	}
9171	if s.TapeBarcodePrefix == nil {
9172		invalidParams.Add(request.NewErrParamRequired("TapeBarcodePrefix"))
9173	}
9174	if s.TapeBarcodePrefix != nil && len(*s.TapeBarcodePrefix) < 1 {
9175		invalidParams.Add(request.NewErrParamMinLen("TapeBarcodePrefix", 1))
9176	}
9177	if s.TapeSizeInBytes == nil {
9178		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
9179	}
9180
9181	if invalidParams.Len() > 0 {
9182		return invalidParams
9183	}
9184	return nil
9185}
9186
9187// SetMinimumNumTapes sets the MinimumNumTapes field's value.
9188func (s *AutomaticTapeCreationRule) SetMinimumNumTapes(v int64) *AutomaticTapeCreationRule {
9189	s.MinimumNumTapes = &v
9190	return s
9191}
9192
9193// SetPoolId sets the PoolId field's value.
9194func (s *AutomaticTapeCreationRule) SetPoolId(v string) *AutomaticTapeCreationRule {
9195	s.PoolId = &v
9196	return s
9197}
9198
9199// SetTapeBarcodePrefix sets the TapeBarcodePrefix field's value.
9200func (s *AutomaticTapeCreationRule) SetTapeBarcodePrefix(v string) *AutomaticTapeCreationRule {
9201	s.TapeBarcodePrefix = &v
9202	return s
9203}
9204
9205// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
9206func (s *AutomaticTapeCreationRule) SetTapeSizeInBytes(v int64) *AutomaticTapeCreationRule {
9207	s.TapeSizeInBytes = &v
9208	return s
9209}
9210
9211// SetWorm sets the Worm field's value.
9212func (s *AutomaticTapeCreationRule) SetWorm(v bool) *AutomaticTapeCreationRule {
9213	s.Worm = &v
9214	return s
9215}
9216
9217// Describes a bandwidth rate limit interval for a gateway. A bandwidth rate
9218// limit schedule consists of one or more bandwidth rate limit intervals. A
9219// bandwidth rate limit interval defines a period of time on one or more days
9220// of the week, during which bandwidth rate limits are specified for uploading,
9221// downloading, or both.
9222type BandwidthRateLimitInterval struct {
9223	_ struct{} `type:"structure"`
9224
9225	// The average download rate limit component of the bandwidth rate limit interval,
9226	// in bits per second. This field does not appear in the response if the download
9227	// rate limit is not set.
9228	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
9229
9230	// The average upload rate limit component of the bandwidth rate limit interval,
9231	// in bits per second. This field does not appear in the response if the upload
9232	// rate limit is not set.
9233	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
9234
9235	// The days of the week component of the bandwidth rate limit interval, represented
9236	// as ordinal numbers from 0 to 6, where 0 represents Sunday and 6 Saturday.
9237	//
9238	// DaysOfWeek is a required field
9239	DaysOfWeek []*int64 `min:"1" type:"list" required:"true"`
9240
9241	// The hour of the day to end the bandwidth rate limit interval.
9242	//
9243	// EndHourOfDay is a required field
9244	EndHourOfDay *int64 `type:"integer" required:"true"`
9245
9246	// The minute of the hour to end the bandwidth rate limit interval.
9247	//
9248	// The bandwidth rate limit interval ends at the end of the minute. To end an
9249	// interval at the end of an hour, use the value 59.
9250	//
9251	// EndMinuteOfHour is a required field
9252	EndMinuteOfHour *int64 `type:"integer" required:"true"`
9253
9254	// The hour of the day to start the bandwidth rate limit interval.
9255	//
9256	// StartHourOfDay is a required field
9257	StartHourOfDay *int64 `type:"integer" required:"true"`
9258
9259	// The minute of the hour to start the bandwidth rate limit interval. The interval
9260	// begins at the start of that minute. To begin an interval exactly at the start
9261	// of the hour, use the value 0.
9262	//
9263	// StartMinuteOfHour is a required field
9264	StartMinuteOfHour *int64 `type:"integer" required:"true"`
9265}
9266
9267// String returns the string representation
9268func (s BandwidthRateLimitInterval) String() string {
9269	return awsutil.Prettify(s)
9270}
9271
9272// GoString returns the string representation
9273func (s BandwidthRateLimitInterval) GoString() string {
9274	return s.String()
9275}
9276
9277// Validate inspects the fields of the type to determine if they are valid.
9278func (s *BandwidthRateLimitInterval) Validate() error {
9279	invalidParams := request.ErrInvalidParams{Context: "BandwidthRateLimitInterval"}
9280	if s.AverageDownloadRateLimitInBitsPerSec != nil && *s.AverageDownloadRateLimitInBitsPerSec < 102400 {
9281		invalidParams.Add(request.NewErrParamMinValue("AverageDownloadRateLimitInBitsPerSec", 102400))
9282	}
9283	if s.AverageUploadRateLimitInBitsPerSec != nil && *s.AverageUploadRateLimitInBitsPerSec < 51200 {
9284		invalidParams.Add(request.NewErrParamMinValue("AverageUploadRateLimitInBitsPerSec", 51200))
9285	}
9286	if s.DaysOfWeek == nil {
9287		invalidParams.Add(request.NewErrParamRequired("DaysOfWeek"))
9288	}
9289	if s.DaysOfWeek != nil && len(s.DaysOfWeek) < 1 {
9290		invalidParams.Add(request.NewErrParamMinLen("DaysOfWeek", 1))
9291	}
9292	if s.EndHourOfDay == nil {
9293		invalidParams.Add(request.NewErrParamRequired("EndHourOfDay"))
9294	}
9295	if s.EndMinuteOfHour == nil {
9296		invalidParams.Add(request.NewErrParamRequired("EndMinuteOfHour"))
9297	}
9298	if s.StartHourOfDay == nil {
9299		invalidParams.Add(request.NewErrParamRequired("StartHourOfDay"))
9300	}
9301	if s.StartMinuteOfHour == nil {
9302		invalidParams.Add(request.NewErrParamRequired("StartMinuteOfHour"))
9303	}
9304
9305	if invalidParams.Len() > 0 {
9306		return invalidParams
9307	}
9308	return nil
9309}
9310
9311// SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
9312func (s *BandwidthRateLimitInterval) SetAverageDownloadRateLimitInBitsPerSec(v int64) *BandwidthRateLimitInterval {
9313	s.AverageDownloadRateLimitInBitsPerSec = &v
9314	return s
9315}
9316
9317// SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
9318func (s *BandwidthRateLimitInterval) SetAverageUploadRateLimitInBitsPerSec(v int64) *BandwidthRateLimitInterval {
9319	s.AverageUploadRateLimitInBitsPerSec = &v
9320	return s
9321}
9322
9323// SetDaysOfWeek sets the DaysOfWeek field's value.
9324func (s *BandwidthRateLimitInterval) SetDaysOfWeek(v []*int64) *BandwidthRateLimitInterval {
9325	s.DaysOfWeek = v
9326	return s
9327}
9328
9329// SetEndHourOfDay sets the EndHourOfDay field's value.
9330func (s *BandwidthRateLimitInterval) SetEndHourOfDay(v int64) *BandwidthRateLimitInterval {
9331	s.EndHourOfDay = &v
9332	return s
9333}
9334
9335// SetEndMinuteOfHour sets the EndMinuteOfHour field's value.
9336func (s *BandwidthRateLimitInterval) SetEndMinuteOfHour(v int64) *BandwidthRateLimitInterval {
9337	s.EndMinuteOfHour = &v
9338	return s
9339}
9340
9341// SetStartHourOfDay sets the StartHourOfDay field's value.
9342func (s *BandwidthRateLimitInterval) SetStartHourOfDay(v int64) *BandwidthRateLimitInterval {
9343	s.StartHourOfDay = &v
9344	return s
9345}
9346
9347// SetStartMinuteOfHour sets the StartMinuteOfHour field's value.
9348func (s *BandwidthRateLimitInterval) SetStartMinuteOfHour(v int64) *BandwidthRateLimitInterval {
9349	s.StartMinuteOfHour = &v
9350	return s
9351}
9352
9353// Lists refresh cache information.
9354type CacheAttributes struct {
9355	_ struct{} `type:"structure"`
9356
9357	// Refreshes a file share's cache by using Time To Live (TTL). TTL is the length
9358	// of time since the last refresh after which access to the directory would
9359	// cause the file gateway to first refresh that directory's contents from the
9360	// Amazon S3 bucket. The TTL duration is in seconds.
9361	//
9362	// Valid Values: 300 to 2,592,000 seconds (5 minutes to 30 days)
9363	CacheStaleTimeoutInSeconds *int64 `type:"integer"`
9364}
9365
9366// String returns the string representation
9367func (s CacheAttributes) String() string {
9368	return awsutil.Prettify(s)
9369}
9370
9371// GoString returns the string representation
9372func (s CacheAttributes) GoString() string {
9373	return s.String()
9374}
9375
9376// SetCacheStaleTimeoutInSeconds sets the CacheStaleTimeoutInSeconds field's value.
9377func (s *CacheAttributes) SetCacheStaleTimeoutInSeconds(v int64) *CacheAttributes {
9378	s.CacheStaleTimeoutInSeconds = &v
9379	return s
9380}
9381
9382// Describes an iSCSI cached volume.
9383type CachediSCSIVolume struct {
9384	_ struct{} `type:"structure"`
9385
9386	// The date the volume was created. Volumes created prior to March 28, 2017
9387	// don’t have this timestamp.
9388	CreatedDate *time.Time `type:"timestamp"`
9389
9390	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
9391	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
9392	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
9393	KMSKey *string `min:"7" type:"string"`
9394
9395	// If the cached volume was created from a snapshot, this field contains the
9396	// snapshot ID used, e.g., snap-78e22663. Otherwise, this field is not included.
9397	SourceSnapshotId *string `type:"string"`
9398
9399	// The name of the iSCSI target used by an initiator to connect to a volume
9400	// and used as a suffix for the target ARN. For example, specifying TargetName
9401	// 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.
9402	// The target name must be unique across all volumes on a gateway.
9403	//
9404	// If you don't specify a value, Storage Gateway uses the value that was previously
9405	// used for this volume as the new target name.
9406	TargetName *string `min:"1" type:"string"`
9407
9408	// The Amazon Resource Name (ARN) of the storage volume.
9409	VolumeARN *string `min:"50" type:"string"`
9410
9411	// A value that indicates whether a storage volume is attached to or detached
9412	// from a gateway. For more information, see Moving your volumes to a different
9413	// gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
9414	VolumeAttachmentStatus *string `min:"3" type:"string"`
9415
9416	// The unique identifier of the volume, e.g., vol-AE4B946D.
9417	VolumeId *string `min:"12" type:"string"`
9418
9419	// Represents the percentage complete if the volume is restoring or bootstrapping
9420	// that represents the percent of data transferred. This field does not appear
9421	// in the response if the cached volume is not restoring or bootstrapping.
9422	VolumeProgress *float64 `type:"double"`
9423
9424	// The size, in bytes, of the volume capacity.
9425	VolumeSizeInBytes *int64 `type:"long"`
9426
9427	// One of the VolumeStatus values that indicates the state of the storage volume.
9428	VolumeStatus *string `min:"3" type:"string"`
9429
9430	// One of the VolumeType enumeration values that describes the type of the volume.
9431	VolumeType *string `min:"3" type:"string"`
9432
9433	// The size of the data stored on the volume in bytes. This value is calculated
9434	// based on the number of blocks that are touched, instead of the actual amount
9435	// of data written. This value can be useful for sequential write patterns but
9436	// less accurate for random write patterns. VolumeUsedInBytes is different from
9437	// the compressed size of the volume, which is the value that is used to calculate
9438	// your bill.
9439	//
9440	// This value is not available for volumes created prior to May 13, 2015, until
9441	// you store data on the volume.
9442	VolumeUsedInBytes *int64 `type:"long"`
9443
9444	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
9445	// for one stored volume.
9446	VolumeiSCSIAttributes *VolumeiSCSIAttributes `type:"structure"`
9447}
9448
9449// String returns the string representation
9450func (s CachediSCSIVolume) String() string {
9451	return awsutil.Prettify(s)
9452}
9453
9454// GoString returns the string representation
9455func (s CachediSCSIVolume) GoString() string {
9456	return s.String()
9457}
9458
9459// SetCreatedDate sets the CreatedDate field's value.
9460func (s *CachediSCSIVolume) SetCreatedDate(v time.Time) *CachediSCSIVolume {
9461	s.CreatedDate = &v
9462	return s
9463}
9464
9465// SetKMSKey sets the KMSKey field's value.
9466func (s *CachediSCSIVolume) SetKMSKey(v string) *CachediSCSIVolume {
9467	s.KMSKey = &v
9468	return s
9469}
9470
9471// SetSourceSnapshotId sets the SourceSnapshotId field's value.
9472func (s *CachediSCSIVolume) SetSourceSnapshotId(v string) *CachediSCSIVolume {
9473	s.SourceSnapshotId = &v
9474	return s
9475}
9476
9477// SetTargetName sets the TargetName field's value.
9478func (s *CachediSCSIVolume) SetTargetName(v string) *CachediSCSIVolume {
9479	s.TargetName = &v
9480	return s
9481}
9482
9483// SetVolumeARN sets the VolumeARN field's value.
9484func (s *CachediSCSIVolume) SetVolumeARN(v string) *CachediSCSIVolume {
9485	s.VolumeARN = &v
9486	return s
9487}
9488
9489// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
9490func (s *CachediSCSIVolume) SetVolumeAttachmentStatus(v string) *CachediSCSIVolume {
9491	s.VolumeAttachmentStatus = &v
9492	return s
9493}
9494
9495// SetVolumeId sets the VolumeId field's value.
9496func (s *CachediSCSIVolume) SetVolumeId(v string) *CachediSCSIVolume {
9497	s.VolumeId = &v
9498	return s
9499}
9500
9501// SetVolumeProgress sets the VolumeProgress field's value.
9502func (s *CachediSCSIVolume) SetVolumeProgress(v float64) *CachediSCSIVolume {
9503	s.VolumeProgress = &v
9504	return s
9505}
9506
9507// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
9508func (s *CachediSCSIVolume) SetVolumeSizeInBytes(v int64) *CachediSCSIVolume {
9509	s.VolumeSizeInBytes = &v
9510	return s
9511}
9512
9513// SetVolumeStatus sets the VolumeStatus field's value.
9514func (s *CachediSCSIVolume) SetVolumeStatus(v string) *CachediSCSIVolume {
9515	s.VolumeStatus = &v
9516	return s
9517}
9518
9519// SetVolumeType sets the VolumeType field's value.
9520func (s *CachediSCSIVolume) SetVolumeType(v string) *CachediSCSIVolume {
9521	s.VolumeType = &v
9522	return s
9523}
9524
9525// SetVolumeUsedInBytes sets the VolumeUsedInBytes field's value.
9526func (s *CachediSCSIVolume) SetVolumeUsedInBytes(v int64) *CachediSCSIVolume {
9527	s.VolumeUsedInBytes = &v
9528	return s
9529}
9530
9531// SetVolumeiSCSIAttributes sets the VolumeiSCSIAttributes field's value.
9532func (s *CachediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *CachediSCSIVolume {
9533	s.VolumeiSCSIAttributes = v
9534	return s
9535}
9536
9537// CancelArchivalInput
9538type CancelArchivalInput struct {
9539	_ struct{} `type:"structure"`
9540
9541	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9542	// to return a list of gateways for your account and AWS Region.
9543	//
9544	// GatewayARN is a required field
9545	GatewayARN *string `min:"50" type:"string" required:"true"`
9546
9547	// The Amazon Resource Name (ARN) of the virtual tape you want to cancel archiving
9548	// for.
9549	//
9550	// TapeARN is a required field
9551	TapeARN *string `min:"50" type:"string" required:"true"`
9552}
9553
9554// String returns the string representation
9555func (s CancelArchivalInput) String() string {
9556	return awsutil.Prettify(s)
9557}
9558
9559// GoString returns the string representation
9560func (s CancelArchivalInput) GoString() string {
9561	return s.String()
9562}
9563
9564// Validate inspects the fields of the type to determine if they are valid.
9565func (s *CancelArchivalInput) Validate() error {
9566	invalidParams := request.ErrInvalidParams{Context: "CancelArchivalInput"}
9567	if s.GatewayARN == nil {
9568		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9569	}
9570	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9571		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9572	}
9573	if s.TapeARN == nil {
9574		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
9575	}
9576	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
9577		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
9578	}
9579
9580	if invalidParams.Len() > 0 {
9581		return invalidParams
9582	}
9583	return nil
9584}
9585
9586// SetGatewayARN sets the GatewayARN field's value.
9587func (s *CancelArchivalInput) SetGatewayARN(v string) *CancelArchivalInput {
9588	s.GatewayARN = &v
9589	return s
9590}
9591
9592// SetTapeARN sets the TapeARN field's value.
9593func (s *CancelArchivalInput) SetTapeARN(v string) *CancelArchivalInput {
9594	s.TapeARN = &v
9595	return s
9596}
9597
9598// CancelArchivalOutput
9599type CancelArchivalOutput struct {
9600	_ struct{} `type:"structure"`
9601
9602	// The Amazon Resource Name (ARN) of the virtual tape for which archiving was
9603	// canceled.
9604	TapeARN *string `min:"50" type:"string"`
9605}
9606
9607// String returns the string representation
9608func (s CancelArchivalOutput) String() string {
9609	return awsutil.Prettify(s)
9610}
9611
9612// GoString returns the string representation
9613func (s CancelArchivalOutput) GoString() string {
9614	return s.String()
9615}
9616
9617// SetTapeARN sets the TapeARN field's value.
9618func (s *CancelArchivalOutput) SetTapeARN(v string) *CancelArchivalOutput {
9619	s.TapeARN = &v
9620	return s
9621}
9622
9623// CancelRetrievalInput
9624type CancelRetrievalInput struct {
9625	_ struct{} `type:"structure"`
9626
9627	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9628	// to return a list of gateways for your account and AWS Region.
9629	//
9630	// GatewayARN is a required field
9631	GatewayARN *string `min:"50" type:"string" required:"true"`
9632
9633	// The Amazon Resource Name (ARN) of the virtual tape you want to cancel retrieval
9634	// for.
9635	//
9636	// TapeARN is a required field
9637	TapeARN *string `min:"50" type:"string" required:"true"`
9638}
9639
9640// String returns the string representation
9641func (s CancelRetrievalInput) String() string {
9642	return awsutil.Prettify(s)
9643}
9644
9645// GoString returns the string representation
9646func (s CancelRetrievalInput) GoString() string {
9647	return s.String()
9648}
9649
9650// Validate inspects the fields of the type to determine if they are valid.
9651func (s *CancelRetrievalInput) Validate() error {
9652	invalidParams := request.ErrInvalidParams{Context: "CancelRetrievalInput"}
9653	if s.GatewayARN == nil {
9654		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9655	}
9656	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9657		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9658	}
9659	if s.TapeARN == nil {
9660		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
9661	}
9662	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
9663		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
9664	}
9665
9666	if invalidParams.Len() > 0 {
9667		return invalidParams
9668	}
9669	return nil
9670}
9671
9672// SetGatewayARN sets the GatewayARN field's value.
9673func (s *CancelRetrievalInput) SetGatewayARN(v string) *CancelRetrievalInput {
9674	s.GatewayARN = &v
9675	return s
9676}
9677
9678// SetTapeARN sets the TapeARN field's value.
9679func (s *CancelRetrievalInput) SetTapeARN(v string) *CancelRetrievalInput {
9680	s.TapeARN = &v
9681	return s
9682}
9683
9684// CancelRetrievalOutput
9685type CancelRetrievalOutput struct {
9686	_ struct{} `type:"structure"`
9687
9688	// The Amazon Resource Name (ARN) of the virtual tape for which retrieval was
9689	// canceled.
9690	TapeARN *string `min:"50" type:"string"`
9691}
9692
9693// String returns the string representation
9694func (s CancelRetrievalOutput) String() string {
9695	return awsutil.Prettify(s)
9696}
9697
9698// GoString returns the string representation
9699func (s CancelRetrievalOutput) GoString() string {
9700	return s.String()
9701}
9702
9703// SetTapeARN sets the TapeARN field's value.
9704func (s *CancelRetrievalOutput) SetTapeARN(v string) *CancelRetrievalOutput {
9705	s.TapeARN = &v
9706	return s
9707}
9708
9709// Describes Challenge-Handshake Authentication Protocol (CHAP) information
9710// that supports authentication between your gateway and iSCSI initiators.
9711type ChapInfo struct {
9712	_ struct{} `type:"structure"`
9713
9714	// The iSCSI initiator that connects to the target.
9715	InitiatorName *string `min:"1" type:"string"`
9716
9717	// The secret key that the initiator (for example, the Windows client) must
9718	// provide to participate in mutual CHAP with the target.
9719	SecretToAuthenticateInitiator *string `min:"1" type:"string" sensitive:"true"`
9720
9721	// The secret key that the target must provide to participate in mutual CHAP
9722	// with the initiator (e.g., Windows client).
9723	SecretToAuthenticateTarget *string `min:"1" type:"string" sensitive:"true"`
9724
9725	// The Amazon Resource Name (ARN) of the volume.
9726	//
9727	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
9728	// (-).
9729	TargetARN *string `min:"50" type:"string"`
9730}
9731
9732// String returns the string representation
9733func (s ChapInfo) String() string {
9734	return awsutil.Prettify(s)
9735}
9736
9737// GoString returns the string representation
9738func (s ChapInfo) GoString() string {
9739	return s.String()
9740}
9741
9742// SetInitiatorName sets the InitiatorName field's value.
9743func (s *ChapInfo) SetInitiatorName(v string) *ChapInfo {
9744	s.InitiatorName = &v
9745	return s
9746}
9747
9748// SetSecretToAuthenticateInitiator sets the SecretToAuthenticateInitiator field's value.
9749func (s *ChapInfo) SetSecretToAuthenticateInitiator(v string) *ChapInfo {
9750	s.SecretToAuthenticateInitiator = &v
9751	return s
9752}
9753
9754// SetSecretToAuthenticateTarget sets the SecretToAuthenticateTarget field's value.
9755func (s *ChapInfo) SetSecretToAuthenticateTarget(v string) *ChapInfo {
9756	s.SecretToAuthenticateTarget = &v
9757	return s
9758}
9759
9760// SetTargetARN sets the TargetARN field's value.
9761func (s *ChapInfo) SetTargetARN(v string) *ChapInfo {
9762	s.TargetARN = &v
9763	return s
9764}
9765
9766type CreateCachediSCSIVolumeInput struct {
9767	_ struct{} `type:"structure"`
9768
9769	// A unique identifier that you use to retry a request. If you retry a request,
9770	// use the same ClientToken you specified in the initial request.
9771	//
9772	// ClientToken is a required field
9773	ClientToken *string `min:"5" type:"string" required:"true"`
9774
9775	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9776	// to return a list of gateways for your account and AWS Region.
9777	//
9778	// GatewayARN is a required field
9779	GatewayARN *string `min:"50" type:"string" required:"true"`
9780
9781	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
9782	// key, or false to use a key managed by Amazon S3. Optional.
9783	//
9784	// Valid Values: true | false
9785	KMSEncrypted *bool `type:"boolean"`
9786
9787	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
9788	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
9789	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
9790	KMSKey *string `min:"7" type:"string"`
9791
9792	// The network interface of the gateway on which to expose the iSCSI target.
9793	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
9794	// list of the network interfaces available on a gateway.
9795	//
9796	// Valid Values: A valid IP address.
9797	//
9798	// NetworkInterfaceId is a required field
9799	NetworkInterfaceId *string `type:"string" required:"true"`
9800
9801	// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the
9802	// new cached volume. Specify this field if you want to create the iSCSI storage
9803	// volume from a snapshot; otherwise, do not include this field. To list snapshots
9804	// for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
9805	// in the Amazon Elastic Compute Cloud API Reference.
9806	SnapshotId *string `type:"string"`
9807
9808	// The ARN for an existing volume. Specifying this ARN makes the new volume
9809	// into an exact copy of the specified existing volume's latest recovery point.
9810	// The VolumeSizeInBytes value for this new volume must be equal to or larger
9811	// than the size of the existing volume, in bytes.
9812	SourceVolumeARN *string `min:"50" type:"string"`
9813
9814	// A list of up to 50 tags that you can assign to a cached volume. Each tag
9815	// is a key-value pair.
9816	//
9817	// Valid characters for key and value are letters, spaces, and numbers that
9818	// you can represent in UTF-8 format, and the following special characters:
9819	// + - = . _ : / @. The maximum length of a tag's key is 128 characters, and
9820	// the maximum length for a tag's value is 256 characters.
9821	Tags []*Tag `type:"list"`
9822
9823	// The name of the iSCSI target used by an initiator to connect to a volume
9824	// and used as a suffix for the target ARN. For example, specifying TargetName
9825	// 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.
9826	// The target name must be unique across all volumes on a gateway.
9827	//
9828	// If you don't specify a value, Storage Gateway uses the value that was previously
9829	// used for this volume as the new target name.
9830	//
9831	// TargetName is a required field
9832	TargetName *string `min:"1" type:"string" required:"true"`
9833
9834	// The size of the volume in bytes.
9835	//
9836	// VolumeSizeInBytes is a required field
9837	VolumeSizeInBytes *int64 `type:"long" required:"true"`
9838}
9839
9840// String returns the string representation
9841func (s CreateCachediSCSIVolumeInput) String() string {
9842	return awsutil.Prettify(s)
9843}
9844
9845// GoString returns the string representation
9846func (s CreateCachediSCSIVolumeInput) GoString() string {
9847	return s.String()
9848}
9849
9850// Validate inspects the fields of the type to determine if they are valid.
9851func (s *CreateCachediSCSIVolumeInput) Validate() error {
9852	invalidParams := request.ErrInvalidParams{Context: "CreateCachediSCSIVolumeInput"}
9853	if s.ClientToken == nil {
9854		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
9855	}
9856	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
9857		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
9858	}
9859	if s.GatewayARN == nil {
9860		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9861	}
9862	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9863		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9864	}
9865	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
9866		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
9867	}
9868	if s.NetworkInterfaceId == nil {
9869		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
9870	}
9871	if s.SourceVolumeARN != nil && len(*s.SourceVolumeARN) < 50 {
9872		invalidParams.Add(request.NewErrParamMinLen("SourceVolumeARN", 50))
9873	}
9874	if s.TargetName == nil {
9875		invalidParams.Add(request.NewErrParamRequired("TargetName"))
9876	}
9877	if s.TargetName != nil && len(*s.TargetName) < 1 {
9878		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
9879	}
9880	if s.VolumeSizeInBytes == nil {
9881		invalidParams.Add(request.NewErrParamRequired("VolumeSizeInBytes"))
9882	}
9883	if s.Tags != nil {
9884		for i, v := range s.Tags {
9885			if v == nil {
9886				continue
9887			}
9888			if err := v.Validate(); err != nil {
9889				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9890			}
9891		}
9892	}
9893
9894	if invalidParams.Len() > 0 {
9895		return invalidParams
9896	}
9897	return nil
9898}
9899
9900// SetClientToken sets the ClientToken field's value.
9901func (s *CreateCachediSCSIVolumeInput) SetClientToken(v string) *CreateCachediSCSIVolumeInput {
9902	s.ClientToken = &v
9903	return s
9904}
9905
9906// SetGatewayARN sets the GatewayARN field's value.
9907func (s *CreateCachediSCSIVolumeInput) SetGatewayARN(v string) *CreateCachediSCSIVolumeInput {
9908	s.GatewayARN = &v
9909	return s
9910}
9911
9912// SetKMSEncrypted sets the KMSEncrypted field's value.
9913func (s *CreateCachediSCSIVolumeInput) SetKMSEncrypted(v bool) *CreateCachediSCSIVolumeInput {
9914	s.KMSEncrypted = &v
9915	return s
9916}
9917
9918// SetKMSKey sets the KMSKey field's value.
9919func (s *CreateCachediSCSIVolumeInput) SetKMSKey(v string) *CreateCachediSCSIVolumeInput {
9920	s.KMSKey = &v
9921	return s
9922}
9923
9924// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
9925func (s *CreateCachediSCSIVolumeInput) SetNetworkInterfaceId(v string) *CreateCachediSCSIVolumeInput {
9926	s.NetworkInterfaceId = &v
9927	return s
9928}
9929
9930// SetSnapshotId sets the SnapshotId field's value.
9931func (s *CreateCachediSCSIVolumeInput) SetSnapshotId(v string) *CreateCachediSCSIVolumeInput {
9932	s.SnapshotId = &v
9933	return s
9934}
9935
9936// SetSourceVolumeARN sets the SourceVolumeARN field's value.
9937func (s *CreateCachediSCSIVolumeInput) SetSourceVolumeARN(v string) *CreateCachediSCSIVolumeInput {
9938	s.SourceVolumeARN = &v
9939	return s
9940}
9941
9942// SetTags sets the Tags field's value.
9943func (s *CreateCachediSCSIVolumeInput) SetTags(v []*Tag) *CreateCachediSCSIVolumeInput {
9944	s.Tags = v
9945	return s
9946}
9947
9948// SetTargetName sets the TargetName field's value.
9949func (s *CreateCachediSCSIVolumeInput) SetTargetName(v string) *CreateCachediSCSIVolumeInput {
9950	s.TargetName = &v
9951	return s
9952}
9953
9954// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
9955func (s *CreateCachediSCSIVolumeInput) SetVolumeSizeInBytes(v int64) *CreateCachediSCSIVolumeInput {
9956	s.VolumeSizeInBytes = &v
9957	return s
9958}
9959
9960type CreateCachediSCSIVolumeOutput struct {
9961	_ struct{} `type:"structure"`
9962
9963	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
9964	// name that initiators can use to connect to the target.
9965	TargetARN *string `min:"50" type:"string"`
9966
9967	// The Amazon Resource Name (ARN) of the configured volume.
9968	VolumeARN *string `min:"50" type:"string"`
9969}
9970
9971// String returns the string representation
9972func (s CreateCachediSCSIVolumeOutput) String() string {
9973	return awsutil.Prettify(s)
9974}
9975
9976// GoString returns the string representation
9977func (s CreateCachediSCSIVolumeOutput) GoString() string {
9978	return s.String()
9979}
9980
9981// SetTargetARN sets the TargetARN field's value.
9982func (s *CreateCachediSCSIVolumeOutput) SetTargetARN(v string) *CreateCachediSCSIVolumeOutput {
9983	s.TargetARN = &v
9984	return s
9985}
9986
9987// SetVolumeARN sets the VolumeARN field's value.
9988func (s *CreateCachediSCSIVolumeOutput) SetVolumeARN(v string) *CreateCachediSCSIVolumeOutput {
9989	s.VolumeARN = &v
9990	return s
9991}
9992
9993// CreateNFSFileShareInput
9994type CreateNFSFileShareInput struct {
9995	_ struct{} `type:"structure"`
9996
9997	// Refresh cache information.
9998	CacheAttributes *CacheAttributes `type:"structure"`
9999
10000	// The list of clients that are allowed to access the file gateway. The list
10001	// must contain either valid IP addresses or valid CIDR blocks.
10002	ClientList []*string `min:"1" type:"list"`
10003
10004	// A unique string value that you supply that is used by file gateway to ensure
10005	// idempotent file share creation.
10006	//
10007	// ClientToken is a required field
10008	ClientToken *string `min:"5" type:"string" required:"true"`
10009
10010	// The default storage class for objects put into an Amazon S3 bucket by the
10011	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
10012	//
10013	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
10014	DefaultStorageClass *string `min:"5" type:"string"`
10015
10016	// The name of the file share. Optional.
10017	//
10018	// FileShareName must be set if an S3 prefix name is set in LocationARN.
10019	FileShareName *string `min:"1" type:"string"`
10020
10021	// The Amazon Resource Name (ARN) of the file gateway on which you want to create
10022	// a file share.
10023	//
10024	// GatewayARN is a required field
10025	GatewayARN *string `min:"50" type:"string" required:"true"`
10026
10027	// A value that enables guessing of the MIME type for uploaded objects based
10028	// on file extensions. Set this value to true to enable MIME type guessing,
10029	// otherwise set to false. The default value is true.
10030	//
10031	// Valid Values: true | false
10032	GuessMIMETypeEnabled *bool `type:"boolean"`
10033
10034	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
10035	// key, or false to use a key managed by Amazon S3. Optional.
10036	//
10037	// Valid Values: true | false
10038	KMSEncrypted *bool `type:"boolean"`
10039
10040	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
10041	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
10042	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
10043	KMSKey *string `min:"7" type:"string"`
10044
10045	// The ARN of the backend storage used for storing file data. A prefix name
10046	// can be added to the S3 bucket name. It must end with a "/".
10047	//
10048	// LocationARN is a required field
10049	LocationARN *string `min:"16" type:"string" required:"true"`
10050
10051	// File share default values. Optional.
10052	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
10053
10054	// The notification policy of the file share.
10055	NotificationPolicy *string `min:"2" type:"string"`
10056
10057	// A value that sets the access control list (ACL) permission for objects in
10058	// the S3 bucket that a file gateway puts objects into. The default value is
10059	// private.
10060	ObjectACL *string `type:"string" enum:"ObjectACL"`
10061
10062	// A value that sets the write status of a file share. Set this value to true
10063	// to set the write status to read-only, otherwise set to false.
10064	//
10065	// Valid Values: true | false
10066	ReadOnly *bool `type:"boolean"`
10067
10068	// A value that sets who pays the cost of the request and the cost associated
10069	// with data download from the S3 bucket. If this value is set to true, the
10070	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
10071	// S3 bucket owner always pays the cost of storing data.
10072	//
10073	// RequesterPays is a configuration for the S3 bucket that backs the file share,
10074	// so make sure that the configuration on the file share is the same as the
10075	// S3 bucket configuration.
10076	//
10077	// Valid Values: true | false
10078	RequesterPays *bool `type:"boolean"`
10079
10080	// The ARN of the AWS Identity and Access Management (IAM) role that a file
10081	// gateway assumes when it accesses the underlying storage.
10082	//
10083	// Role is a required field
10084	Role *string `min:"20" type:"string" required:"true"`
10085
10086	// A value that maps a user to anonymous user.
10087	//
10088	// Valid values are the following:
10089	//
10090	//    * RootSquash: Only root is mapped to anonymous user.
10091	//
10092	//    * NoSquash: No one is mapped to anonymous user.
10093	//
10094	//    * AllSquash: Everyone is mapped to anonymous user.
10095	Squash *string `min:"5" type:"string"`
10096
10097	// A list of up to 50 tags that can be assigned to the NFS file share. Each
10098	// tag is a key-value pair.
10099	//
10100	// Valid characters for key and value are letters, spaces, and numbers representable
10101	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
10102	// maximum length of a tag's key is 128 characters, and the maximum length for
10103	// a tag's value is 256.
10104	Tags []*Tag `type:"list"`
10105}
10106
10107// String returns the string representation
10108func (s CreateNFSFileShareInput) String() string {
10109	return awsutil.Prettify(s)
10110}
10111
10112// GoString returns the string representation
10113func (s CreateNFSFileShareInput) GoString() string {
10114	return s.String()
10115}
10116
10117// Validate inspects the fields of the type to determine if they are valid.
10118func (s *CreateNFSFileShareInput) Validate() error {
10119	invalidParams := request.ErrInvalidParams{Context: "CreateNFSFileShareInput"}
10120	if s.ClientList != nil && len(s.ClientList) < 1 {
10121		invalidParams.Add(request.NewErrParamMinLen("ClientList", 1))
10122	}
10123	if s.ClientToken == nil {
10124		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
10125	}
10126	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
10127		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
10128	}
10129	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
10130		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
10131	}
10132	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
10133		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
10134	}
10135	if s.GatewayARN == nil {
10136		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10137	}
10138	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10139		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10140	}
10141	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
10142		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
10143	}
10144	if s.LocationARN == nil {
10145		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
10146	}
10147	if s.LocationARN != nil && len(*s.LocationARN) < 16 {
10148		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 16))
10149	}
10150	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
10151		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
10152	}
10153	if s.Role == nil {
10154		invalidParams.Add(request.NewErrParamRequired("Role"))
10155	}
10156	if s.Role != nil && len(*s.Role) < 20 {
10157		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
10158	}
10159	if s.Squash != nil && len(*s.Squash) < 5 {
10160		invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
10161	}
10162	if s.NFSFileShareDefaults != nil {
10163		if err := s.NFSFileShareDefaults.Validate(); err != nil {
10164			invalidParams.AddNested("NFSFileShareDefaults", err.(request.ErrInvalidParams))
10165		}
10166	}
10167	if s.Tags != nil {
10168		for i, v := range s.Tags {
10169			if v == nil {
10170				continue
10171			}
10172			if err := v.Validate(); err != nil {
10173				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10174			}
10175		}
10176	}
10177
10178	if invalidParams.Len() > 0 {
10179		return invalidParams
10180	}
10181	return nil
10182}
10183
10184// SetCacheAttributes sets the CacheAttributes field's value.
10185func (s *CreateNFSFileShareInput) SetCacheAttributes(v *CacheAttributes) *CreateNFSFileShareInput {
10186	s.CacheAttributes = v
10187	return s
10188}
10189
10190// SetClientList sets the ClientList field's value.
10191func (s *CreateNFSFileShareInput) SetClientList(v []*string) *CreateNFSFileShareInput {
10192	s.ClientList = v
10193	return s
10194}
10195
10196// SetClientToken sets the ClientToken field's value.
10197func (s *CreateNFSFileShareInput) SetClientToken(v string) *CreateNFSFileShareInput {
10198	s.ClientToken = &v
10199	return s
10200}
10201
10202// SetDefaultStorageClass sets the DefaultStorageClass field's value.
10203func (s *CreateNFSFileShareInput) SetDefaultStorageClass(v string) *CreateNFSFileShareInput {
10204	s.DefaultStorageClass = &v
10205	return s
10206}
10207
10208// SetFileShareName sets the FileShareName field's value.
10209func (s *CreateNFSFileShareInput) SetFileShareName(v string) *CreateNFSFileShareInput {
10210	s.FileShareName = &v
10211	return s
10212}
10213
10214// SetGatewayARN sets the GatewayARN field's value.
10215func (s *CreateNFSFileShareInput) SetGatewayARN(v string) *CreateNFSFileShareInput {
10216	s.GatewayARN = &v
10217	return s
10218}
10219
10220// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
10221func (s *CreateNFSFileShareInput) SetGuessMIMETypeEnabled(v bool) *CreateNFSFileShareInput {
10222	s.GuessMIMETypeEnabled = &v
10223	return s
10224}
10225
10226// SetKMSEncrypted sets the KMSEncrypted field's value.
10227func (s *CreateNFSFileShareInput) SetKMSEncrypted(v bool) *CreateNFSFileShareInput {
10228	s.KMSEncrypted = &v
10229	return s
10230}
10231
10232// SetKMSKey sets the KMSKey field's value.
10233func (s *CreateNFSFileShareInput) SetKMSKey(v string) *CreateNFSFileShareInput {
10234	s.KMSKey = &v
10235	return s
10236}
10237
10238// SetLocationARN sets the LocationARN field's value.
10239func (s *CreateNFSFileShareInput) SetLocationARN(v string) *CreateNFSFileShareInput {
10240	s.LocationARN = &v
10241	return s
10242}
10243
10244// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
10245func (s *CreateNFSFileShareInput) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *CreateNFSFileShareInput {
10246	s.NFSFileShareDefaults = v
10247	return s
10248}
10249
10250// SetNotificationPolicy sets the NotificationPolicy field's value.
10251func (s *CreateNFSFileShareInput) SetNotificationPolicy(v string) *CreateNFSFileShareInput {
10252	s.NotificationPolicy = &v
10253	return s
10254}
10255
10256// SetObjectACL sets the ObjectACL field's value.
10257func (s *CreateNFSFileShareInput) SetObjectACL(v string) *CreateNFSFileShareInput {
10258	s.ObjectACL = &v
10259	return s
10260}
10261
10262// SetReadOnly sets the ReadOnly field's value.
10263func (s *CreateNFSFileShareInput) SetReadOnly(v bool) *CreateNFSFileShareInput {
10264	s.ReadOnly = &v
10265	return s
10266}
10267
10268// SetRequesterPays sets the RequesterPays field's value.
10269func (s *CreateNFSFileShareInput) SetRequesterPays(v bool) *CreateNFSFileShareInput {
10270	s.RequesterPays = &v
10271	return s
10272}
10273
10274// SetRole sets the Role field's value.
10275func (s *CreateNFSFileShareInput) SetRole(v string) *CreateNFSFileShareInput {
10276	s.Role = &v
10277	return s
10278}
10279
10280// SetSquash sets the Squash field's value.
10281func (s *CreateNFSFileShareInput) SetSquash(v string) *CreateNFSFileShareInput {
10282	s.Squash = &v
10283	return s
10284}
10285
10286// SetTags sets the Tags field's value.
10287func (s *CreateNFSFileShareInput) SetTags(v []*Tag) *CreateNFSFileShareInput {
10288	s.Tags = v
10289	return s
10290}
10291
10292// CreateNFSFileShareOutput
10293type CreateNFSFileShareOutput struct {
10294	_ struct{} `type:"structure"`
10295
10296	// The Amazon Resource Name (ARN) of the newly created file share.
10297	FileShareARN *string `min:"50" type:"string"`
10298}
10299
10300// String returns the string representation
10301func (s CreateNFSFileShareOutput) String() string {
10302	return awsutil.Prettify(s)
10303}
10304
10305// GoString returns the string representation
10306func (s CreateNFSFileShareOutput) GoString() string {
10307	return s.String()
10308}
10309
10310// SetFileShareARN sets the FileShareARN field's value.
10311func (s *CreateNFSFileShareOutput) SetFileShareARN(v string) *CreateNFSFileShareOutput {
10312	s.FileShareARN = &v
10313	return s
10314}
10315
10316// CreateSMBFileShareInput
10317type CreateSMBFileShareInput struct {
10318	_ struct{} `type:"structure"`
10319
10320	// The files and folders on this share will only be visible to users with read
10321	// access.
10322	AccessBasedEnumeration *bool `type:"boolean"`
10323
10324	// A list of users or groups in the Active Directory that will be granted administrator
10325	// privileges on the file share. These users can do all file operations as the
10326	// super-user. Acceptable formats include: DOMAIN\User1, user1, @group1, and
10327	// @DOMAIN\group1.
10328	//
10329	// Use this option very carefully, because any user in this list can do anything
10330	// they like on the file share, regardless of file permissions.
10331	AdminUserList []*string `type:"list"`
10332
10333	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
10334	AuditDestinationARN *string `type:"string"`
10335
10336	// The authentication method that users use to access the file share. The default
10337	// is ActiveDirectory.
10338	//
10339	// Valid Values: ActiveDirectory | GuestAccess
10340	Authentication *string `min:"5" type:"string"`
10341
10342	// Refresh cache information.
10343	CacheAttributes *CacheAttributes `type:"structure"`
10344
10345	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
10346	// client determines the case sensitivity. For CaseSensitive, the gateway determines
10347	// the case sensitivity. The default value is ClientSpecified.
10348	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
10349
10350	// A unique string value that you supply that is used by file gateway to ensure
10351	// idempotent file share creation.
10352	//
10353	// ClientToken is a required field
10354	ClientToken *string `min:"5" type:"string" required:"true"`
10355
10356	// The default storage class for objects put into an Amazon S3 bucket by the
10357	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
10358	//
10359	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
10360	DefaultStorageClass *string `min:"5" type:"string"`
10361
10362	// The name of the file share. Optional.
10363	//
10364	// FileShareName must be set if an S3 prefix name is set in LocationARN.
10365	FileShareName *string `min:"1" type:"string"`
10366
10367	// The ARN of the file gateway on which you want to create a file share.
10368	//
10369	// GatewayARN is a required field
10370	GatewayARN *string `min:"50" type:"string" required:"true"`
10371
10372	// A value that enables guessing of the MIME type for uploaded objects based
10373	// on file extensions. Set this value to true to enable MIME type guessing,
10374	// otherwise set to false. The default value is true.
10375	//
10376	// Valid Values: true | false
10377	GuessMIMETypeEnabled *bool `type:"boolean"`
10378
10379	// A list of users or groups in the Active Directory that are not allowed to
10380	// access the file share. A group must be prefixed with the @ character. Acceptable
10381	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
10382	// be set if Authentication is set to ActiveDirectory.
10383	InvalidUserList []*string `type:"list"`
10384
10385	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
10386	// key, or false to use a key managed by Amazon S3. Optional.
10387	//
10388	// Valid Values: true | false
10389	KMSEncrypted *bool `type:"boolean"`
10390
10391	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
10392	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
10393	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
10394	KMSKey *string `min:"7" type:"string"`
10395
10396	// The ARN of the backend storage used for storing file data. A prefix name
10397	// can be added to the S3 bucket name. It must end with a "/".
10398	//
10399	// LocationARN is a required field
10400	LocationARN *string `min:"16" type:"string" required:"true"`
10401
10402	// The notification policy of the file share.
10403	NotificationPolicy *string `min:"2" type:"string"`
10404
10405	// A value that sets the access control list (ACL) permission for objects in
10406	// the S3 bucket that a file gateway puts objects into. The default value is
10407	// private.
10408	ObjectACL *string `type:"string" enum:"ObjectACL"`
10409
10410	// A value that sets the write status of a file share. Set this value to true
10411	// to set the write status to read-only, otherwise set to false.
10412	//
10413	// Valid Values: true | false
10414	ReadOnly *bool `type:"boolean"`
10415
10416	// A value that sets who pays the cost of the request and the cost associated
10417	// with data download from the S3 bucket. If this value is set to true, the
10418	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
10419	// S3 bucket owner always pays the cost of storing data.
10420	//
10421	// RequesterPays is a configuration for the S3 bucket that backs the file share,
10422	// so make sure that the configuration on the file share is the same as the
10423	// S3 bucket configuration.
10424	//
10425	// Valid Values: true | false
10426	RequesterPays *bool `type:"boolean"`
10427
10428	// The ARN of the AWS Identity and Access Management (IAM) role that a file
10429	// gateway assumes when it accesses the underlying storage.
10430	//
10431	// Role is a required field
10432	Role *string `min:"20" type:"string" required:"true"`
10433
10434	// Set this value to true to enable access control list (ACL) on the SMB file
10435	// share. Set it to false to map file and directory permissions to the POSIX
10436	// permissions.
10437	//
10438	// For more information, see Using Microsoft Windows ACLs to control access
10439	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
10440	// in the AWS Storage Gateway User Guide.
10441	//
10442	// Valid Values: true | false
10443	SMBACLEnabled *bool `type:"boolean"`
10444
10445	// A list of up to 50 tags that can be assigned to the NFS file share. Each
10446	// tag is a key-value pair.
10447	//
10448	// Valid characters for key and value are letters, spaces, and numbers representable
10449	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
10450	// maximum length of a tag's key is 128 characters, and the maximum length for
10451	// a tag's value is 256.
10452	Tags []*Tag `type:"list"`
10453
10454	// A list of users or groups in the Active Directory that are allowed to access
10455	// the file share. A group must be prefixed with the @ character. Acceptable
10456	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
10457	// be set if Authentication is set to ActiveDirectory.
10458	ValidUserList []*string `type:"list"`
10459}
10460
10461// String returns the string representation
10462func (s CreateSMBFileShareInput) String() string {
10463	return awsutil.Prettify(s)
10464}
10465
10466// GoString returns the string representation
10467func (s CreateSMBFileShareInput) GoString() string {
10468	return s.String()
10469}
10470
10471// Validate inspects the fields of the type to determine if they are valid.
10472func (s *CreateSMBFileShareInput) Validate() error {
10473	invalidParams := request.ErrInvalidParams{Context: "CreateSMBFileShareInput"}
10474	if s.Authentication != nil && len(*s.Authentication) < 5 {
10475		invalidParams.Add(request.NewErrParamMinLen("Authentication", 5))
10476	}
10477	if s.ClientToken == nil {
10478		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
10479	}
10480	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
10481		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
10482	}
10483	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
10484		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
10485	}
10486	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
10487		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
10488	}
10489	if s.GatewayARN == nil {
10490		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10491	}
10492	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10493		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10494	}
10495	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
10496		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
10497	}
10498	if s.LocationARN == nil {
10499		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
10500	}
10501	if s.LocationARN != nil && len(*s.LocationARN) < 16 {
10502		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 16))
10503	}
10504	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
10505		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
10506	}
10507	if s.Role == nil {
10508		invalidParams.Add(request.NewErrParamRequired("Role"))
10509	}
10510	if s.Role != nil && len(*s.Role) < 20 {
10511		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
10512	}
10513	if s.Tags != nil {
10514		for i, v := range s.Tags {
10515			if v == nil {
10516				continue
10517			}
10518			if err := v.Validate(); err != nil {
10519				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10520			}
10521		}
10522	}
10523
10524	if invalidParams.Len() > 0 {
10525		return invalidParams
10526	}
10527	return nil
10528}
10529
10530// SetAccessBasedEnumeration sets the AccessBasedEnumeration field's value.
10531func (s *CreateSMBFileShareInput) SetAccessBasedEnumeration(v bool) *CreateSMBFileShareInput {
10532	s.AccessBasedEnumeration = &v
10533	return s
10534}
10535
10536// SetAdminUserList sets the AdminUserList field's value.
10537func (s *CreateSMBFileShareInput) SetAdminUserList(v []*string) *CreateSMBFileShareInput {
10538	s.AdminUserList = v
10539	return s
10540}
10541
10542// SetAuditDestinationARN sets the AuditDestinationARN field's value.
10543func (s *CreateSMBFileShareInput) SetAuditDestinationARN(v string) *CreateSMBFileShareInput {
10544	s.AuditDestinationARN = &v
10545	return s
10546}
10547
10548// SetAuthentication sets the Authentication field's value.
10549func (s *CreateSMBFileShareInput) SetAuthentication(v string) *CreateSMBFileShareInput {
10550	s.Authentication = &v
10551	return s
10552}
10553
10554// SetCacheAttributes sets the CacheAttributes field's value.
10555func (s *CreateSMBFileShareInput) SetCacheAttributes(v *CacheAttributes) *CreateSMBFileShareInput {
10556	s.CacheAttributes = v
10557	return s
10558}
10559
10560// SetCaseSensitivity sets the CaseSensitivity field's value.
10561func (s *CreateSMBFileShareInput) SetCaseSensitivity(v string) *CreateSMBFileShareInput {
10562	s.CaseSensitivity = &v
10563	return s
10564}
10565
10566// SetClientToken sets the ClientToken field's value.
10567func (s *CreateSMBFileShareInput) SetClientToken(v string) *CreateSMBFileShareInput {
10568	s.ClientToken = &v
10569	return s
10570}
10571
10572// SetDefaultStorageClass sets the DefaultStorageClass field's value.
10573func (s *CreateSMBFileShareInput) SetDefaultStorageClass(v string) *CreateSMBFileShareInput {
10574	s.DefaultStorageClass = &v
10575	return s
10576}
10577
10578// SetFileShareName sets the FileShareName field's value.
10579func (s *CreateSMBFileShareInput) SetFileShareName(v string) *CreateSMBFileShareInput {
10580	s.FileShareName = &v
10581	return s
10582}
10583
10584// SetGatewayARN sets the GatewayARN field's value.
10585func (s *CreateSMBFileShareInput) SetGatewayARN(v string) *CreateSMBFileShareInput {
10586	s.GatewayARN = &v
10587	return s
10588}
10589
10590// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
10591func (s *CreateSMBFileShareInput) SetGuessMIMETypeEnabled(v bool) *CreateSMBFileShareInput {
10592	s.GuessMIMETypeEnabled = &v
10593	return s
10594}
10595
10596// SetInvalidUserList sets the InvalidUserList field's value.
10597func (s *CreateSMBFileShareInput) SetInvalidUserList(v []*string) *CreateSMBFileShareInput {
10598	s.InvalidUserList = v
10599	return s
10600}
10601
10602// SetKMSEncrypted sets the KMSEncrypted field's value.
10603func (s *CreateSMBFileShareInput) SetKMSEncrypted(v bool) *CreateSMBFileShareInput {
10604	s.KMSEncrypted = &v
10605	return s
10606}
10607
10608// SetKMSKey sets the KMSKey field's value.
10609func (s *CreateSMBFileShareInput) SetKMSKey(v string) *CreateSMBFileShareInput {
10610	s.KMSKey = &v
10611	return s
10612}
10613
10614// SetLocationARN sets the LocationARN field's value.
10615func (s *CreateSMBFileShareInput) SetLocationARN(v string) *CreateSMBFileShareInput {
10616	s.LocationARN = &v
10617	return s
10618}
10619
10620// SetNotificationPolicy sets the NotificationPolicy field's value.
10621func (s *CreateSMBFileShareInput) SetNotificationPolicy(v string) *CreateSMBFileShareInput {
10622	s.NotificationPolicy = &v
10623	return s
10624}
10625
10626// SetObjectACL sets the ObjectACL field's value.
10627func (s *CreateSMBFileShareInput) SetObjectACL(v string) *CreateSMBFileShareInput {
10628	s.ObjectACL = &v
10629	return s
10630}
10631
10632// SetReadOnly sets the ReadOnly field's value.
10633func (s *CreateSMBFileShareInput) SetReadOnly(v bool) *CreateSMBFileShareInput {
10634	s.ReadOnly = &v
10635	return s
10636}
10637
10638// SetRequesterPays sets the RequesterPays field's value.
10639func (s *CreateSMBFileShareInput) SetRequesterPays(v bool) *CreateSMBFileShareInput {
10640	s.RequesterPays = &v
10641	return s
10642}
10643
10644// SetRole sets the Role field's value.
10645func (s *CreateSMBFileShareInput) SetRole(v string) *CreateSMBFileShareInput {
10646	s.Role = &v
10647	return s
10648}
10649
10650// SetSMBACLEnabled sets the SMBACLEnabled field's value.
10651func (s *CreateSMBFileShareInput) SetSMBACLEnabled(v bool) *CreateSMBFileShareInput {
10652	s.SMBACLEnabled = &v
10653	return s
10654}
10655
10656// SetTags sets the Tags field's value.
10657func (s *CreateSMBFileShareInput) SetTags(v []*Tag) *CreateSMBFileShareInput {
10658	s.Tags = v
10659	return s
10660}
10661
10662// SetValidUserList sets the ValidUserList field's value.
10663func (s *CreateSMBFileShareInput) SetValidUserList(v []*string) *CreateSMBFileShareInput {
10664	s.ValidUserList = v
10665	return s
10666}
10667
10668// CreateSMBFileShareOutput
10669type CreateSMBFileShareOutput struct {
10670	_ struct{} `type:"structure"`
10671
10672	// The Amazon Resource Name (ARN) of the newly created file share.
10673	FileShareARN *string `min:"50" type:"string"`
10674}
10675
10676// String returns the string representation
10677func (s CreateSMBFileShareOutput) String() string {
10678	return awsutil.Prettify(s)
10679}
10680
10681// GoString returns the string representation
10682func (s CreateSMBFileShareOutput) GoString() string {
10683	return s.String()
10684}
10685
10686// SetFileShareARN sets the FileShareARN field's value.
10687func (s *CreateSMBFileShareOutput) SetFileShareARN(v string) *CreateSMBFileShareOutput {
10688	s.FileShareARN = &v
10689	return s
10690}
10691
10692type CreateSnapshotFromVolumeRecoveryPointInput struct {
10693	_ struct{} `type:"structure"`
10694
10695	// Textual description of the snapshot that appears in the Amazon EC2 console,
10696	// Elastic Block Store snapshots panel in the Description field, and in the
10697	// AWS Storage Gateway snapshot Details pane, Description field.
10698	//
10699	// SnapshotDescription is a required field
10700	SnapshotDescription *string `min:"1" type:"string" required:"true"`
10701
10702	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
10703	// key-value pair.
10704	//
10705	// Valid characters for key and value are letters, spaces, and numbers representable
10706	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
10707	// maximum length of a tag's key is 128 characters, and the maximum length for
10708	// a tag's value is 256.
10709	Tags []*Tag `type:"list"`
10710
10711	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
10712	// operation to return to retrieve the TargetARN for specified VolumeARN.
10713	//
10714	// VolumeARN is a required field
10715	VolumeARN *string `min:"50" type:"string" required:"true"`
10716}
10717
10718// String returns the string representation
10719func (s CreateSnapshotFromVolumeRecoveryPointInput) String() string {
10720	return awsutil.Prettify(s)
10721}
10722
10723// GoString returns the string representation
10724func (s CreateSnapshotFromVolumeRecoveryPointInput) GoString() string {
10725	return s.String()
10726}
10727
10728// Validate inspects the fields of the type to determine if they are valid.
10729func (s *CreateSnapshotFromVolumeRecoveryPointInput) Validate() error {
10730	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotFromVolumeRecoveryPointInput"}
10731	if s.SnapshotDescription == nil {
10732		invalidParams.Add(request.NewErrParamRequired("SnapshotDescription"))
10733	}
10734	if s.SnapshotDescription != nil && len(*s.SnapshotDescription) < 1 {
10735		invalidParams.Add(request.NewErrParamMinLen("SnapshotDescription", 1))
10736	}
10737	if s.VolumeARN == nil {
10738		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
10739	}
10740	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
10741		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
10742	}
10743	if s.Tags != nil {
10744		for i, v := range s.Tags {
10745			if v == nil {
10746				continue
10747			}
10748			if err := v.Validate(); err != nil {
10749				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10750			}
10751		}
10752	}
10753
10754	if invalidParams.Len() > 0 {
10755		return invalidParams
10756	}
10757	return nil
10758}
10759
10760// SetSnapshotDescription sets the SnapshotDescription field's value.
10761func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetSnapshotDescription(v string) *CreateSnapshotFromVolumeRecoveryPointInput {
10762	s.SnapshotDescription = &v
10763	return s
10764}
10765
10766// SetTags sets the Tags field's value.
10767func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetTags(v []*Tag) *CreateSnapshotFromVolumeRecoveryPointInput {
10768	s.Tags = v
10769	return s
10770}
10771
10772// SetVolumeARN sets the VolumeARN field's value.
10773func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetVolumeARN(v string) *CreateSnapshotFromVolumeRecoveryPointInput {
10774	s.VolumeARN = &v
10775	return s
10776}
10777
10778type CreateSnapshotFromVolumeRecoveryPointOutput struct {
10779	_ struct{} `type:"structure"`
10780
10781	// The ID of the snapshot.
10782	SnapshotId *string `type:"string"`
10783
10784	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
10785	// operation to return to retrieve the TargetARN for specified VolumeARN.
10786	VolumeARN *string `min:"50" type:"string"`
10787
10788	// The time the volume was created from the recovery point.
10789	VolumeRecoveryPointTime *string `type:"string"`
10790}
10791
10792// String returns the string representation
10793func (s CreateSnapshotFromVolumeRecoveryPointOutput) String() string {
10794	return awsutil.Prettify(s)
10795}
10796
10797// GoString returns the string representation
10798func (s CreateSnapshotFromVolumeRecoveryPointOutput) GoString() string {
10799	return s.String()
10800}
10801
10802// SetSnapshotId sets the SnapshotId field's value.
10803func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetSnapshotId(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
10804	s.SnapshotId = &v
10805	return s
10806}
10807
10808// SetVolumeARN sets the VolumeARN field's value.
10809func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetVolumeARN(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
10810	s.VolumeARN = &v
10811	return s
10812}
10813
10814// SetVolumeRecoveryPointTime sets the VolumeRecoveryPointTime field's value.
10815func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetVolumeRecoveryPointTime(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
10816	s.VolumeRecoveryPointTime = &v
10817	return s
10818}
10819
10820// A JSON object containing one or more of the following fields:
10821//
10822//    * CreateSnapshotInput$SnapshotDescription
10823//
10824//    * CreateSnapshotInput$VolumeARN
10825type CreateSnapshotInput struct {
10826	_ struct{} `type:"structure"`
10827
10828	// Textual description of the snapshot that appears in the Amazon EC2 console,
10829	// Elastic Block Store snapshots panel in the Description field, and in the
10830	// AWS Storage Gateway snapshot Details pane, Description field.
10831	//
10832	// SnapshotDescription is a required field
10833	SnapshotDescription *string `min:"1" type:"string" required:"true"`
10834
10835	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
10836	// key-value pair.
10837	//
10838	// Valid characters for key and value are letters, spaces, and numbers representable
10839	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
10840	// maximum length of a tag's key is 128 characters, and the maximum length for
10841	// a tag's value is 256.
10842	Tags []*Tag `type:"list"`
10843
10844	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
10845	// to return a list of gateway volumes.
10846	//
10847	// VolumeARN is a required field
10848	VolumeARN *string `min:"50" type:"string" required:"true"`
10849}
10850
10851// String returns the string representation
10852func (s CreateSnapshotInput) String() string {
10853	return awsutil.Prettify(s)
10854}
10855
10856// GoString returns the string representation
10857func (s CreateSnapshotInput) GoString() string {
10858	return s.String()
10859}
10860
10861// Validate inspects the fields of the type to determine if they are valid.
10862func (s *CreateSnapshotInput) Validate() error {
10863	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotInput"}
10864	if s.SnapshotDescription == nil {
10865		invalidParams.Add(request.NewErrParamRequired("SnapshotDescription"))
10866	}
10867	if s.SnapshotDescription != nil && len(*s.SnapshotDescription) < 1 {
10868		invalidParams.Add(request.NewErrParamMinLen("SnapshotDescription", 1))
10869	}
10870	if s.VolumeARN == nil {
10871		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
10872	}
10873	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
10874		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
10875	}
10876	if s.Tags != nil {
10877		for i, v := range s.Tags {
10878			if v == nil {
10879				continue
10880			}
10881			if err := v.Validate(); err != nil {
10882				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10883			}
10884		}
10885	}
10886
10887	if invalidParams.Len() > 0 {
10888		return invalidParams
10889	}
10890	return nil
10891}
10892
10893// SetSnapshotDescription sets the SnapshotDescription field's value.
10894func (s *CreateSnapshotInput) SetSnapshotDescription(v string) *CreateSnapshotInput {
10895	s.SnapshotDescription = &v
10896	return s
10897}
10898
10899// SetTags sets the Tags field's value.
10900func (s *CreateSnapshotInput) SetTags(v []*Tag) *CreateSnapshotInput {
10901	s.Tags = v
10902	return s
10903}
10904
10905// SetVolumeARN sets the VolumeARN field's value.
10906func (s *CreateSnapshotInput) SetVolumeARN(v string) *CreateSnapshotInput {
10907	s.VolumeARN = &v
10908	return s
10909}
10910
10911// A JSON object containing the following fields:
10912type CreateSnapshotOutput struct {
10913	_ struct{} `type:"structure"`
10914
10915	// The snapshot ID that is used to refer to the snapshot in future operations
10916	// such as describing snapshots (Amazon Elastic Compute Cloud API DescribeSnapshots)
10917	// or creating a volume from a snapshot (CreateStorediSCSIVolume).
10918	SnapshotId *string `type:"string"`
10919
10920	// The Amazon Resource Name (ARN) of the volume of which the snapshot was taken.
10921	VolumeARN *string `min:"50" type:"string"`
10922}
10923
10924// String returns the string representation
10925func (s CreateSnapshotOutput) String() string {
10926	return awsutil.Prettify(s)
10927}
10928
10929// GoString returns the string representation
10930func (s CreateSnapshotOutput) GoString() string {
10931	return s.String()
10932}
10933
10934// SetSnapshotId sets the SnapshotId field's value.
10935func (s *CreateSnapshotOutput) SetSnapshotId(v string) *CreateSnapshotOutput {
10936	s.SnapshotId = &v
10937	return s
10938}
10939
10940// SetVolumeARN sets the VolumeARN field's value.
10941func (s *CreateSnapshotOutput) SetVolumeARN(v string) *CreateSnapshotOutput {
10942	s.VolumeARN = &v
10943	return s
10944}
10945
10946// A JSON object containing one or more of the following fields:
10947//
10948//    * CreateStorediSCSIVolumeInput$DiskId
10949//
10950//    * CreateStorediSCSIVolumeInput$NetworkInterfaceId
10951//
10952//    * CreateStorediSCSIVolumeInput$PreserveExistingData
10953//
10954//    * CreateStorediSCSIVolumeInput$SnapshotId
10955//
10956//    * CreateStorediSCSIVolumeInput$TargetName
10957type CreateStorediSCSIVolumeInput struct {
10958	_ struct{} `type:"structure"`
10959
10960	// The unique identifier for the gateway local disk that is configured as a
10961	// stored volume. Use ListLocalDisks (https://docs.aws.amazon.com/storagegateway/latest/userguide/API_ListLocalDisks.html)
10962	// to list disk IDs for a gateway.
10963	//
10964	// DiskId is a required field
10965	DiskId *string `min:"1" type:"string" required:"true"`
10966
10967	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10968	// to return a list of gateways for your account and AWS Region.
10969	//
10970	// GatewayARN is a required field
10971	GatewayARN *string `min:"50" type:"string" required:"true"`
10972
10973	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
10974	// key, or false to use a key managed by Amazon S3. Optional.
10975	//
10976	// Valid Values: true | false
10977	KMSEncrypted *bool `type:"boolean"`
10978
10979	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
10980	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
10981	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
10982	KMSKey *string `min:"7" type:"string"`
10983
10984	// The network interface of the gateway on which to expose the iSCSI target.
10985	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
10986	// list of the network interfaces available on a gateway.
10987	//
10988	// Valid Values: A valid IP address.
10989	//
10990	// NetworkInterfaceId is a required field
10991	NetworkInterfaceId *string `type:"string" required:"true"`
10992
10993	// Set to true true if you want to preserve the data on the local disk. Otherwise,
10994	// set to false to create an empty volume.
10995	//
10996	// Valid Values: true | false
10997	//
10998	// PreserveExistingData is a required field
10999	PreserveExistingData *bool `type:"boolean" required:"true"`
11000
11001	// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the
11002	// new stored volume. Specify this field if you want to create the iSCSI storage
11003	// volume from a snapshot; otherwise, do not include this field. To list snapshots
11004	// for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
11005	// in the Amazon Elastic Compute Cloud API Reference.
11006	SnapshotId *string `type:"string"`
11007
11008	// A list of up to 50 tags that can be assigned to a stored volume. Each tag
11009	// is a key-value pair.
11010	//
11011	// Valid characters for key and value are letters, spaces, and numbers representable
11012	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
11013	// maximum length of a tag's key is 128 characters, and the maximum length for
11014	// a tag's value is 256.
11015	Tags []*Tag `type:"list"`
11016
11017	// The name of the iSCSI target used by an initiator to connect to a volume
11018	// and used as a suffix for the target ARN. For example, specifying TargetName
11019	// 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.
11020	// The target name must be unique across all volumes on a gateway.
11021	//
11022	// If you don't specify a value, Storage Gateway uses the value that was previously
11023	// used for this volume as the new target name.
11024	//
11025	// TargetName is a required field
11026	TargetName *string `min:"1" type:"string" required:"true"`
11027}
11028
11029// String returns the string representation
11030func (s CreateStorediSCSIVolumeInput) String() string {
11031	return awsutil.Prettify(s)
11032}
11033
11034// GoString returns the string representation
11035func (s CreateStorediSCSIVolumeInput) GoString() string {
11036	return s.String()
11037}
11038
11039// Validate inspects the fields of the type to determine if they are valid.
11040func (s *CreateStorediSCSIVolumeInput) Validate() error {
11041	invalidParams := request.ErrInvalidParams{Context: "CreateStorediSCSIVolumeInput"}
11042	if s.DiskId == nil {
11043		invalidParams.Add(request.NewErrParamRequired("DiskId"))
11044	}
11045	if s.DiskId != nil && len(*s.DiskId) < 1 {
11046		invalidParams.Add(request.NewErrParamMinLen("DiskId", 1))
11047	}
11048	if s.GatewayARN == nil {
11049		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11050	}
11051	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11052		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11053	}
11054	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
11055		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
11056	}
11057	if s.NetworkInterfaceId == nil {
11058		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
11059	}
11060	if s.PreserveExistingData == nil {
11061		invalidParams.Add(request.NewErrParamRequired("PreserveExistingData"))
11062	}
11063	if s.TargetName == nil {
11064		invalidParams.Add(request.NewErrParamRequired("TargetName"))
11065	}
11066	if s.TargetName != nil && len(*s.TargetName) < 1 {
11067		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
11068	}
11069	if s.Tags != nil {
11070		for i, v := range s.Tags {
11071			if v == nil {
11072				continue
11073			}
11074			if err := v.Validate(); err != nil {
11075				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11076			}
11077		}
11078	}
11079
11080	if invalidParams.Len() > 0 {
11081		return invalidParams
11082	}
11083	return nil
11084}
11085
11086// SetDiskId sets the DiskId field's value.
11087func (s *CreateStorediSCSIVolumeInput) SetDiskId(v string) *CreateStorediSCSIVolumeInput {
11088	s.DiskId = &v
11089	return s
11090}
11091
11092// SetGatewayARN sets the GatewayARN field's value.
11093func (s *CreateStorediSCSIVolumeInput) SetGatewayARN(v string) *CreateStorediSCSIVolumeInput {
11094	s.GatewayARN = &v
11095	return s
11096}
11097
11098// SetKMSEncrypted sets the KMSEncrypted field's value.
11099func (s *CreateStorediSCSIVolumeInput) SetKMSEncrypted(v bool) *CreateStorediSCSIVolumeInput {
11100	s.KMSEncrypted = &v
11101	return s
11102}
11103
11104// SetKMSKey sets the KMSKey field's value.
11105func (s *CreateStorediSCSIVolumeInput) SetKMSKey(v string) *CreateStorediSCSIVolumeInput {
11106	s.KMSKey = &v
11107	return s
11108}
11109
11110// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
11111func (s *CreateStorediSCSIVolumeInput) SetNetworkInterfaceId(v string) *CreateStorediSCSIVolumeInput {
11112	s.NetworkInterfaceId = &v
11113	return s
11114}
11115
11116// SetPreserveExistingData sets the PreserveExistingData field's value.
11117func (s *CreateStorediSCSIVolumeInput) SetPreserveExistingData(v bool) *CreateStorediSCSIVolumeInput {
11118	s.PreserveExistingData = &v
11119	return s
11120}
11121
11122// SetSnapshotId sets the SnapshotId field's value.
11123func (s *CreateStorediSCSIVolumeInput) SetSnapshotId(v string) *CreateStorediSCSIVolumeInput {
11124	s.SnapshotId = &v
11125	return s
11126}
11127
11128// SetTags sets the Tags field's value.
11129func (s *CreateStorediSCSIVolumeInput) SetTags(v []*Tag) *CreateStorediSCSIVolumeInput {
11130	s.Tags = v
11131	return s
11132}
11133
11134// SetTargetName sets the TargetName field's value.
11135func (s *CreateStorediSCSIVolumeInput) SetTargetName(v string) *CreateStorediSCSIVolumeInput {
11136	s.TargetName = &v
11137	return s
11138}
11139
11140// A JSON object containing the following fields:
11141type CreateStorediSCSIVolumeOutput struct {
11142	_ struct{} `type:"structure"`
11143
11144	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
11145	// name that initiators can use to connect to the target.
11146	TargetARN *string `min:"50" type:"string"`
11147
11148	// The Amazon Resource Name (ARN) of the configured volume.
11149	VolumeARN *string `min:"50" type:"string"`
11150
11151	// The size of the volume in bytes.
11152	VolumeSizeInBytes *int64 `type:"long"`
11153}
11154
11155// String returns the string representation
11156func (s CreateStorediSCSIVolumeOutput) String() string {
11157	return awsutil.Prettify(s)
11158}
11159
11160// GoString returns the string representation
11161func (s CreateStorediSCSIVolumeOutput) GoString() string {
11162	return s.String()
11163}
11164
11165// SetTargetARN sets the TargetARN field's value.
11166func (s *CreateStorediSCSIVolumeOutput) SetTargetARN(v string) *CreateStorediSCSIVolumeOutput {
11167	s.TargetARN = &v
11168	return s
11169}
11170
11171// SetVolumeARN sets the VolumeARN field's value.
11172func (s *CreateStorediSCSIVolumeOutput) SetVolumeARN(v string) *CreateStorediSCSIVolumeOutput {
11173	s.VolumeARN = &v
11174	return s
11175}
11176
11177// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
11178func (s *CreateStorediSCSIVolumeOutput) SetVolumeSizeInBytes(v int64) *CreateStorediSCSIVolumeOutput {
11179	s.VolumeSizeInBytes = &v
11180	return s
11181}
11182
11183type CreateTapePoolInput struct {
11184	_ struct{} `type:"structure"`
11185
11186	// The name of the new custom tape pool.
11187	//
11188	// PoolName is a required field
11189	PoolName *string `min:"1" type:"string" required:"true"`
11190
11191	// Tape retention lock time is set in days. Tape retention lock can be enabled
11192	// for up to 100 years (36,500 days).
11193	RetentionLockTimeInDays *int64 `type:"integer"`
11194
11195	// Tape retention lock can be configured in two modes. When configured in governance
11196	// mode, AWS accounts with specific IAM permissions are authorized to remove
11197	// the tape retention lock from archived virtual tapes. When configured in compliance
11198	// mode, the tape retention lock cannot be removed by any user, including the
11199	// root AWS account.
11200	RetentionLockType *string `type:"string" enum:"RetentionLockType"`
11201
11202	// The storage class that is associated with the new custom pool. When you use
11203	// your backup application to eject the tape, the tape is archived directly
11204	// into the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds
11205	// to the pool.
11206	//
11207	// StorageClass is a required field
11208	StorageClass *string `type:"string" required:"true" enum:"TapeStorageClass"`
11209
11210	// A list of up to 50 tags that can be assigned to tape pool. Each tag is a
11211	// key-value pair.
11212	//
11213	// Valid characters for key and value are letters, spaces, and numbers representable
11214	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
11215	// maximum length of a tag's key is 128 characters, and the maximum length for
11216	// a tag's value is 256.
11217	Tags []*Tag `type:"list"`
11218}
11219
11220// String returns the string representation
11221func (s CreateTapePoolInput) String() string {
11222	return awsutil.Prettify(s)
11223}
11224
11225// GoString returns the string representation
11226func (s CreateTapePoolInput) GoString() string {
11227	return s.String()
11228}
11229
11230// Validate inspects the fields of the type to determine if they are valid.
11231func (s *CreateTapePoolInput) Validate() error {
11232	invalidParams := request.ErrInvalidParams{Context: "CreateTapePoolInput"}
11233	if s.PoolName == nil {
11234		invalidParams.Add(request.NewErrParamRequired("PoolName"))
11235	}
11236	if s.PoolName != nil && len(*s.PoolName) < 1 {
11237		invalidParams.Add(request.NewErrParamMinLen("PoolName", 1))
11238	}
11239	if s.StorageClass == nil {
11240		invalidParams.Add(request.NewErrParamRequired("StorageClass"))
11241	}
11242	if s.Tags != nil {
11243		for i, v := range s.Tags {
11244			if v == nil {
11245				continue
11246			}
11247			if err := v.Validate(); err != nil {
11248				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11249			}
11250		}
11251	}
11252
11253	if invalidParams.Len() > 0 {
11254		return invalidParams
11255	}
11256	return nil
11257}
11258
11259// SetPoolName sets the PoolName field's value.
11260func (s *CreateTapePoolInput) SetPoolName(v string) *CreateTapePoolInput {
11261	s.PoolName = &v
11262	return s
11263}
11264
11265// SetRetentionLockTimeInDays sets the RetentionLockTimeInDays field's value.
11266func (s *CreateTapePoolInput) SetRetentionLockTimeInDays(v int64) *CreateTapePoolInput {
11267	s.RetentionLockTimeInDays = &v
11268	return s
11269}
11270
11271// SetRetentionLockType sets the RetentionLockType field's value.
11272func (s *CreateTapePoolInput) SetRetentionLockType(v string) *CreateTapePoolInput {
11273	s.RetentionLockType = &v
11274	return s
11275}
11276
11277// SetStorageClass sets the StorageClass field's value.
11278func (s *CreateTapePoolInput) SetStorageClass(v string) *CreateTapePoolInput {
11279	s.StorageClass = &v
11280	return s
11281}
11282
11283// SetTags sets the Tags field's value.
11284func (s *CreateTapePoolInput) SetTags(v []*Tag) *CreateTapePoolInput {
11285	s.Tags = v
11286	return s
11287}
11288
11289type CreateTapePoolOutput struct {
11290	_ struct{} `type:"structure"`
11291
11292	// The unique Amazon Resource Name (ARN) that represents the custom tape pool.
11293	// Use the ListTapePools operation to return a list of tape pools for your account
11294	// and AWS Region.
11295	PoolARN *string `min:"50" type:"string"`
11296}
11297
11298// String returns the string representation
11299func (s CreateTapePoolOutput) String() string {
11300	return awsutil.Prettify(s)
11301}
11302
11303// GoString returns the string representation
11304func (s CreateTapePoolOutput) GoString() string {
11305	return s.String()
11306}
11307
11308// SetPoolARN sets the PoolARN field's value.
11309func (s *CreateTapePoolOutput) SetPoolARN(v string) *CreateTapePoolOutput {
11310	s.PoolARN = &v
11311	return s
11312}
11313
11314// CreateTapeWithBarcodeInput
11315type CreateTapeWithBarcodeInput struct {
11316	_ struct{} `type:"structure"`
11317
11318	// The unique Amazon Resource Name (ARN) that represents the gateway to associate
11319	// the virtual tape with. Use the ListGateways operation to return a list of
11320	// gateways for your account and AWS Region.
11321	//
11322	// GatewayARN is a required field
11323	GatewayARN *string `min:"50" type:"string" required:"true"`
11324
11325	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
11326	// key, or false to use a key managed by Amazon S3. Optional.
11327	//
11328	// Valid Values: true | false
11329	KMSEncrypted *bool `type:"boolean"`
11330
11331	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
11332	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
11333	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
11334	KMSKey *string `min:"7" type:"string"`
11335
11336	// The ID of the pool that you want to add your tape to for archiving. The tape
11337	// in this pool is archived in the S3 storage class that is associated with
11338	// the pool. When you use your backup application to eject the tape, the tape
11339	// is archived directly into the storage class (S3 Glacier or S3 Deep Archive)
11340	// that corresponds to the pool.
11341	//
11342	// Valid Values: GLACIER | DEEP_ARCHIVE
11343	PoolId *string `min:"1" type:"string"`
11344
11345	// A list of up to 50 tags that can be assigned to a virtual tape that has a
11346	// barcode. Each tag is a key-value pair.
11347	//
11348	// Valid characters for key and value are letters, spaces, and numbers representable
11349	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
11350	// maximum length of a tag's key is 128 characters, and the maximum length for
11351	// a tag's value is 256.
11352	Tags []*Tag `type:"list"`
11353
11354	// The barcode that you want to assign to the tape.
11355	//
11356	// Barcodes cannot be reused. This includes barcodes used for tapes that have
11357	// been deleted.
11358	//
11359	// TapeBarcode is a required field
11360	TapeBarcode *string `min:"7" type:"string" required:"true"`
11361
11362	// The size, in bytes, of the virtual tape that you want to create.
11363	//
11364	// The size must be aligned by gigabyte (1024*1024*1024 bytes).
11365	//
11366	// TapeSizeInBytes is a required field
11367	TapeSizeInBytes *int64 `type:"long" required:"true"`
11368
11369	// Set to TRUE if the tape you are creating is to be configured as a write-once-read-many
11370	// (WORM) tape.
11371	Worm *bool `type:"boolean"`
11372}
11373
11374// String returns the string representation
11375func (s CreateTapeWithBarcodeInput) String() string {
11376	return awsutil.Prettify(s)
11377}
11378
11379// GoString returns the string representation
11380func (s CreateTapeWithBarcodeInput) GoString() string {
11381	return s.String()
11382}
11383
11384// Validate inspects the fields of the type to determine if they are valid.
11385func (s *CreateTapeWithBarcodeInput) Validate() error {
11386	invalidParams := request.ErrInvalidParams{Context: "CreateTapeWithBarcodeInput"}
11387	if s.GatewayARN == nil {
11388		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11389	}
11390	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11391		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11392	}
11393	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
11394		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
11395	}
11396	if s.PoolId != nil && len(*s.PoolId) < 1 {
11397		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
11398	}
11399	if s.TapeBarcode == nil {
11400		invalidParams.Add(request.NewErrParamRequired("TapeBarcode"))
11401	}
11402	if s.TapeBarcode != nil && len(*s.TapeBarcode) < 7 {
11403		invalidParams.Add(request.NewErrParamMinLen("TapeBarcode", 7))
11404	}
11405	if s.TapeSizeInBytes == nil {
11406		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
11407	}
11408	if s.Tags != nil {
11409		for i, v := range s.Tags {
11410			if v == nil {
11411				continue
11412			}
11413			if err := v.Validate(); err != nil {
11414				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11415			}
11416		}
11417	}
11418
11419	if invalidParams.Len() > 0 {
11420		return invalidParams
11421	}
11422	return nil
11423}
11424
11425// SetGatewayARN sets the GatewayARN field's value.
11426func (s *CreateTapeWithBarcodeInput) SetGatewayARN(v string) *CreateTapeWithBarcodeInput {
11427	s.GatewayARN = &v
11428	return s
11429}
11430
11431// SetKMSEncrypted sets the KMSEncrypted field's value.
11432func (s *CreateTapeWithBarcodeInput) SetKMSEncrypted(v bool) *CreateTapeWithBarcodeInput {
11433	s.KMSEncrypted = &v
11434	return s
11435}
11436
11437// SetKMSKey sets the KMSKey field's value.
11438func (s *CreateTapeWithBarcodeInput) SetKMSKey(v string) *CreateTapeWithBarcodeInput {
11439	s.KMSKey = &v
11440	return s
11441}
11442
11443// SetPoolId sets the PoolId field's value.
11444func (s *CreateTapeWithBarcodeInput) SetPoolId(v string) *CreateTapeWithBarcodeInput {
11445	s.PoolId = &v
11446	return s
11447}
11448
11449// SetTags sets the Tags field's value.
11450func (s *CreateTapeWithBarcodeInput) SetTags(v []*Tag) *CreateTapeWithBarcodeInput {
11451	s.Tags = v
11452	return s
11453}
11454
11455// SetTapeBarcode sets the TapeBarcode field's value.
11456func (s *CreateTapeWithBarcodeInput) SetTapeBarcode(v string) *CreateTapeWithBarcodeInput {
11457	s.TapeBarcode = &v
11458	return s
11459}
11460
11461// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
11462func (s *CreateTapeWithBarcodeInput) SetTapeSizeInBytes(v int64) *CreateTapeWithBarcodeInput {
11463	s.TapeSizeInBytes = &v
11464	return s
11465}
11466
11467// SetWorm sets the Worm field's value.
11468func (s *CreateTapeWithBarcodeInput) SetWorm(v bool) *CreateTapeWithBarcodeInput {
11469	s.Worm = &v
11470	return s
11471}
11472
11473// CreateTapeOutput
11474type CreateTapeWithBarcodeOutput struct {
11475	_ struct{} `type:"structure"`
11476
11477	// A unique Amazon Resource Name (ARN) that represents the virtual tape that
11478	// was created.
11479	TapeARN *string `min:"50" type:"string"`
11480}
11481
11482// String returns the string representation
11483func (s CreateTapeWithBarcodeOutput) String() string {
11484	return awsutil.Prettify(s)
11485}
11486
11487// GoString returns the string representation
11488func (s CreateTapeWithBarcodeOutput) GoString() string {
11489	return s.String()
11490}
11491
11492// SetTapeARN sets the TapeARN field's value.
11493func (s *CreateTapeWithBarcodeOutput) SetTapeARN(v string) *CreateTapeWithBarcodeOutput {
11494	s.TapeARN = &v
11495	return s
11496}
11497
11498// CreateTapesInput
11499type CreateTapesInput struct {
11500	_ struct{} `type:"structure"`
11501
11502	// A unique identifier that you use to retry a request. If you retry a request,
11503	// use the same ClientToken you specified in the initial request.
11504	//
11505	// Using the same ClientToken prevents creating the tape multiple times.
11506	//
11507	// ClientToken is a required field
11508	ClientToken *string `min:"5" type:"string" required:"true"`
11509
11510	// The unique Amazon Resource Name (ARN) that represents the gateway to associate
11511	// the virtual tapes with. Use the ListGateways operation to return a list of
11512	// gateways for your account and AWS Region.
11513	//
11514	// GatewayARN is a required field
11515	GatewayARN *string `min:"50" type:"string" required:"true"`
11516
11517	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
11518	// key, or false to use a key managed by Amazon S3. Optional.
11519	//
11520	// Valid Values: true | false
11521	KMSEncrypted *bool `type:"boolean"`
11522
11523	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
11524	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
11525	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
11526	KMSKey *string `min:"7" type:"string"`
11527
11528	// The number of virtual tapes that you want to create.
11529	//
11530	// NumTapesToCreate is a required field
11531	NumTapesToCreate *int64 `min:"1" type:"integer" required:"true"`
11532
11533	// The ID of the pool that you want to add your tape to for archiving. The tape
11534	// in this pool is archived in the S3 storage class that is associated with
11535	// the pool. When you use your backup application to eject the tape, the tape
11536	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
11537	// Archive) that corresponds to the pool.
11538	//
11539	// Valid Values: GLACIER | DEEP_ARCHIVE
11540	PoolId *string `min:"1" type:"string"`
11541
11542	// A list of up to 50 tags that can be assigned to a virtual tape. Each tag
11543	// is a key-value pair.
11544	//
11545	// Valid characters for key and value are letters, spaces, and numbers representable
11546	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
11547	// maximum length of a tag's key is 128 characters, and the maximum length for
11548	// a tag's value is 256.
11549	Tags []*Tag `type:"list"`
11550
11551	// A prefix that you append to the barcode of the virtual tape you are creating.
11552	// This prefix makes the barcode unique.
11553	//
11554	// The prefix must be 1 to 4 characters in length and must be one of the uppercase
11555	// letters from A to Z.
11556	//
11557	// TapeBarcodePrefix is a required field
11558	TapeBarcodePrefix *string `min:"1" type:"string" required:"true"`
11559
11560	// The size, in bytes, of the virtual tapes that you want to create.
11561	//
11562	// The size must be aligned by gigabyte (1024*1024*1024 bytes).
11563	//
11564	// TapeSizeInBytes is a required field
11565	TapeSizeInBytes *int64 `type:"long" required:"true"`
11566
11567	// Set to TRUE if the tape you are creating is to be configured as a write-once-read-many
11568	// (WORM) tape.
11569	Worm *bool `type:"boolean"`
11570}
11571
11572// String returns the string representation
11573func (s CreateTapesInput) String() string {
11574	return awsutil.Prettify(s)
11575}
11576
11577// GoString returns the string representation
11578func (s CreateTapesInput) GoString() string {
11579	return s.String()
11580}
11581
11582// Validate inspects the fields of the type to determine if they are valid.
11583func (s *CreateTapesInput) Validate() error {
11584	invalidParams := request.ErrInvalidParams{Context: "CreateTapesInput"}
11585	if s.ClientToken == nil {
11586		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
11587	}
11588	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
11589		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
11590	}
11591	if s.GatewayARN == nil {
11592		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11593	}
11594	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11595		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11596	}
11597	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
11598		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
11599	}
11600	if s.NumTapesToCreate == nil {
11601		invalidParams.Add(request.NewErrParamRequired("NumTapesToCreate"))
11602	}
11603	if s.NumTapesToCreate != nil && *s.NumTapesToCreate < 1 {
11604		invalidParams.Add(request.NewErrParamMinValue("NumTapesToCreate", 1))
11605	}
11606	if s.PoolId != nil && len(*s.PoolId) < 1 {
11607		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
11608	}
11609	if s.TapeBarcodePrefix == nil {
11610		invalidParams.Add(request.NewErrParamRequired("TapeBarcodePrefix"))
11611	}
11612	if s.TapeBarcodePrefix != nil && len(*s.TapeBarcodePrefix) < 1 {
11613		invalidParams.Add(request.NewErrParamMinLen("TapeBarcodePrefix", 1))
11614	}
11615	if s.TapeSizeInBytes == nil {
11616		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
11617	}
11618	if s.Tags != nil {
11619		for i, v := range s.Tags {
11620			if v == nil {
11621				continue
11622			}
11623			if err := v.Validate(); err != nil {
11624				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11625			}
11626		}
11627	}
11628
11629	if invalidParams.Len() > 0 {
11630		return invalidParams
11631	}
11632	return nil
11633}
11634
11635// SetClientToken sets the ClientToken field's value.
11636func (s *CreateTapesInput) SetClientToken(v string) *CreateTapesInput {
11637	s.ClientToken = &v
11638	return s
11639}
11640
11641// SetGatewayARN sets the GatewayARN field's value.
11642func (s *CreateTapesInput) SetGatewayARN(v string) *CreateTapesInput {
11643	s.GatewayARN = &v
11644	return s
11645}
11646
11647// SetKMSEncrypted sets the KMSEncrypted field's value.
11648func (s *CreateTapesInput) SetKMSEncrypted(v bool) *CreateTapesInput {
11649	s.KMSEncrypted = &v
11650	return s
11651}
11652
11653// SetKMSKey sets the KMSKey field's value.
11654func (s *CreateTapesInput) SetKMSKey(v string) *CreateTapesInput {
11655	s.KMSKey = &v
11656	return s
11657}
11658
11659// SetNumTapesToCreate sets the NumTapesToCreate field's value.
11660func (s *CreateTapesInput) SetNumTapesToCreate(v int64) *CreateTapesInput {
11661	s.NumTapesToCreate = &v
11662	return s
11663}
11664
11665// SetPoolId sets the PoolId field's value.
11666func (s *CreateTapesInput) SetPoolId(v string) *CreateTapesInput {
11667	s.PoolId = &v
11668	return s
11669}
11670
11671// SetTags sets the Tags field's value.
11672func (s *CreateTapesInput) SetTags(v []*Tag) *CreateTapesInput {
11673	s.Tags = v
11674	return s
11675}
11676
11677// SetTapeBarcodePrefix sets the TapeBarcodePrefix field's value.
11678func (s *CreateTapesInput) SetTapeBarcodePrefix(v string) *CreateTapesInput {
11679	s.TapeBarcodePrefix = &v
11680	return s
11681}
11682
11683// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
11684func (s *CreateTapesInput) SetTapeSizeInBytes(v int64) *CreateTapesInput {
11685	s.TapeSizeInBytes = &v
11686	return s
11687}
11688
11689// SetWorm sets the Worm field's value.
11690func (s *CreateTapesInput) SetWorm(v bool) *CreateTapesInput {
11691	s.Worm = &v
11692	return s
11693}
11694
11695// CreateTapeOutput
11696type CreateTapesOutput struct {
11697	_ struct{} `type:"structure"`
11698
11699	// A list of unique Amazon Resource Names (ARNs) that represents the virtual
11700	// tapes that were created.
11701	TapeARNs []*string `type:"list"`
11702}
11703
11704// String returns the string representation
11705func (s CreateTapesOutput) String() string {
11706	return awsutil.Prettify(s)
11707}
11708
11709// GoString returns the string representation
11710func (s CreateTapesOutput) GoString() string {
11711	return s.String()
11712}
11713
11714// SetTapeARNs sets the TapeARNs field's value.
11715func (s *CreateTapesOutput) SetTapeARNs(v []*string) *CreateTapesOutput {
11716	s.TapeARNs = v
11717	return s
11718}
11719
11720type DeleteAutomaticTapeCreationPolicyInput struct {
11721	_ struct{} `type:"structure"`
11722
11723	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11724	// to return a list of gateways for your account and AWS Region.
11725	//
11726	// GatewayARN is a required field
11727	GatewayARN *string `min:"50" type:"string" required:"true"`
11728}
11729
11730// String returns the string representation
11731func (s DeleteAutomaticTapeCreationPolicyInput) String() string {
11732	return awsutil.Prettify(s)
11733}
11734
11735// GoString returns the string representation
11736func (s DeleteAutomaticTapeCreationPolicyInput) GoString() string {
11737	return s.String()
11738}
11739
11740// Validate inspects the fields of the type to determine if they are valid.
11741func (s *DeleteAutomaticTapeCreationPolicyInput) Validate() error {
11742	invalidParams := request.ErrInvalidParams{Context: "DeleteAutomaticTapeCreationPolicyInput"}
11743	if s.GatewayARN == nil {
11744		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11745	}
11746	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11747		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11748	}
11749
11750	if invalidParams.Len() > 0 {
11751		return invalidParams
11752	}
11753	return nil
11754}
11755
11756// SetGatewayARN sets the GatewayARN field's value.
11757func (s *DeleteAutomaticTapeCreationPolicyInput) SetGatewayARN(v string) *DeleteAutomaticTapeCreationPolicyInput {
11758	s.GatewayARN = &v
11759	return s
11760}
11761
11762type DeleteAutomaticTapeCreationPolicyOutput struct {
11763	_ struct{} `type:"structure"`
11764
11765	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11766	// to return a list of gateways for your account and AWS Region.
11767	GatewayARN *string `min:"50" type:"string"`
11768}
11769
11770// String returns the string representation
11771func (s DeleteAutomaticTapeCreationPolicyOutput) String() string {
11772	return awsutil.Prettify(s)
11773}
11774
11775// GoString returns the string representation
11776func (s DeleteAutomaticTapeCreationPolicyOutput) GoString() string {
11777	return s.String()
11778}
11779
11780// SetGatewayARN sets the GatewayARN field's value.
11781func (s *DeleteAutomaticTapeCreationPolicyOutput) SetGatewayARN(v string) *DeleteAutomaticTapeCreationPolicyOutput {
11782	s.GatewayARN = &v
11783	return s
11784}
11785
11786// A JSON object containing the following fields:
11787//
11788//    * DeleteBandwidthRateLimitInput$BandwidthType
11789type DeleteBandwidthRateLimitInput struct {
11790	_ struct{} `type:"structure"`
11791
11792	// One of the BandwidthType values that indicates the gateway bandwidth rate
11793	// limit to delete.
11794	//
11795	// Valid Values: UPLOAD | DOWNLOAD | ALL
11796	//
11797	// BandwidthType is a required field
11798	BandwidthType *string `min:"3" type:"string" required:"true"`
11799
11800	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11801	// to return a list of gateways for your account and AWS Region.
11802	//
11803	// GatewayARN is a required field
11804	GatewayARN *string `min:"50" type:"string" required:"true"`
11805}
11806
11807// String returns the string representation
11808func (s DeleteBandwidthRateLimitInput) String() string {
11809	return awsutil.Prettify(s)
11810}
11811
11812// GoString returns the string representation
11813func (s DeleteBandwidthRateLimitInput) GoString() string {
11814	return s.String()
11815}
11816
11817// Validate inspects the fields of the type to determine if they are valid.
11818func (s *DeleteBandwidthRateLimitInput) Validate() error {
11819	invalidParams := request.ErrInvalidParams{Context: "DeleteBandwidthRateLimitInput"}
11820	if s.BandwidthType == nil {
11821		invalidParams.Add(request.NewErrParamRequired("BandwidthType"))
11822	}
11823	if s.BandwidthType != nil && len(*s.BandwidthType) < 3 {
11824		invalidParams.Add(request.NewErrParamMinLen("BandwidthType", 3))
11825	}
11826	if s.GatewayARN == nil {
11827		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11828	}
11829	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11830		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11831	}
11832
11833	if invalidParams.Len() > 0 {
11834		return invalidParams
11835	}
11836	return nil
11837}
11838
11839// SetBandwidthType sets the BandwidthType field's value.
11840func (s *DeleteBandwidthRateLimitInput) SetBandwidthType(v string) *DeleteBandwidthRateLimitInput {
11841	s.BandwidthType = &v
11842	return s
11843}
11844
11845// SetGatewayARN sets the GatewayARN field's value.
11846func (s *DeleteBandwidthRateLimitInput) SetGatewayARN(v string) *DeleteBandwidthRateLimitInput {
11847	s.GatewayARN = &v
11848	return s
11849}
11850
11851// A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
11852// bandwidth rate information was deleted.
11853type DeleteBandwidthRateLimitOutput struct {
11854	_ struct{} `type:"structure"`
11855
11856	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11857	// to return a list of gateways for your account and AWS Region.
11858	GatewayARN *string `min:"50" type:"string"`
11859}
11860
11861// String returns the string representation
11862func (s DeleteBandwidthRateLimitOutput) String() string {
11863	return awsutil.Prettify(s)
11864}
11865
11866// GoString returns the string representation
11867func (s DeleteBandwidthRateLimitOutput) GoString() string {
11868	return s.String()
11869}
11870
11871// SetGatewayARN sets the GatewayARN field's value.
11872func (s *DeleteBandwidthRateLimitOutput) SetGatewayARN(v string) *DeleteBandwidthRateLimitOutput {
11873	s.GatewayARN = &v
11874	return s
11875}
11876
11877// A JSON object containing one or more of the following fields:
11878//
11879//    * DeleteChapCredentialsInput$InitiatorName
11880//
11881//    * DeleteChapCredentialsInput$TargetARN
11882type DeleteChapCredentialsInput struct {
11883	_ struct{} `type:"structure"`
11884
11885	// The iSCSI initiator that connects to the target.
11886	//
11887	// InitiatorName is a required field
11888	InitiatorName *string `min:"1" type:"string" required:"true"`
11889
11890	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
11891	// operation to return to retrieve the TargetARN for specified VolumeARN.
11892	//
11893	// TargetARN is a required field
11894	TargetARN *string `min:"50" type:"string" required:"true"`
11895}
11896
11897// String returns the string representation
11898func (s DeleteChapCredentialsInput) String() string {
11899	return awsutil.Prettify(s)
11900}
11901
11902// GoString returns the string representation
11903func (s DeleteChapCredentialsInput) GoString() string {
11904	return s.String()
11905}
11906
11907// Validate inspects the fields of the type to determine if they are valid.
11908func (s *DeleteChapCredentialsInput) Validate() error {
11909	invalidParams := request.ErrInvalidParams{Context: "DeleteChapCredentialsInput"}
11910	if s.InitiatorName == nil {
11911		invalidParams.Add(request.NewErrParamRequired("InitiatorName"))
11912	}
11913	if s.InitiatorName != nil && len(*s.InitiatorName) < 1 {
11914		invalidParams.Add(request.NewErrParamMinLen("InitiatorName", 1))
11915	}
11916	if s.TargetARN == nil {
11917		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
11918	}
11919	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
11920		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
11921	}
11922
11923	if invalidParams.Len() > 0 {
11924		return invalidParams
11925	}
11926	return nil
11927}
11928
11929// SetInitiatorName sets the InitiatorName field's value.
11930func (s *DeleteChapCredentialsInput) SetInitiatorName(v string) *DeleteChapCredentialsInput {
11931	s.InitiatorName = &v
11932	return s
11933}
11934
11935// SetTargetARN sets the TargetARN field's value.
11936func (s *DeleteChapCredentialsInput) SetTargetARN(v string) *DeleteChapCredentialsInput {
11937	s.TargetARN = &v
11938	return s
11939}
11940
11941// A JSON object containing the following fields:
11942type DeleteChapCredentialsOutput struct {
11943	_ struct{} `type:"structure"`
11944
11945	// The iSCSI initiator that connects to the target.
11946	InitiatorName *string `min:"1" type:"string"`
11947
11948	// The Amazon Resource Name (ARN) of the target.
11949	TargetARN *string `min:"50" type:"string"`
11950}
11951
11952// String returns the string representation
11953func (s DeleteChapCredentialsOutput) String() string {
11954	return awsutil.Prettify(s)
11955}
11956
11957// GoString returns the string representation
11958func (s DeleteChapCredentialsOutput) GoString() string {
11959	return s.String()
11960}
11961
11962// SetInitiatorName sets the InitiatorName field's value.
11963func (s *DeleteChapCredentialsOutput) SetInitiatorName(v string) *DeleteChapCredentialsOutput {
11964	s.InitiatorName = &v
11965	return s
11966}
11967
11968// SetTargetARN sets the TargetARN field's value.
11969func (s *DeleteChapCredentialsOutput) SetTargetARN(v string) *DeleteChapCredentialsOutput {
11970	s.TargetARN = &v
11971	return s
11972}
11973
11974// DeleteFileShareInput
11975type DeleteFileShareInput struct {
11976	_ struct{} `type:"structure"`
11977
11978	// The Amazon Resource Name (ARN) of the file share to be deleted.
11979	//
11980	// FileShareARN is a required field
11981	FileShareARN *string `min:"50" type:"string" required:"true"`
11982
11983	// If this value is set to true, the operation deletes a file share immediately
11984	// and aborts all data uploads to AWS. Otherwise, the file share is not deleted
11985	// until all data is uploaded to AWS. This process aborts the data upload process,
11986	// and the file share enters the FORCE_DELETING status.
11987	//
11988	// Valid Values: true | false
11989	ForceDelete *bool `type:"boolean"`
11990}
11991
11992// String returns the string representation
11993func (s DeleteFileShareInput) String() string {
11994	return awsutil.Prettify(s)
11995}
11996
11997// GoString returns the string representation
11998func (s DeleteFileShareInput) GoString() string {
11999	return s.String()
12000}
12001
12002// Validate inspects the fields of the type to determine if they are valid.
12003func (s *DeleteFileShareInput) Validate() error {
12004	invalidParams := request.ErrInvalidParams{Context: "DeleteFileShareInput"}
12005	if s.FileShareARN == nil {
12006		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
12007	}
12008	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
12009		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
12010	}
12011
12012	if invalidParams.Len() > 0 {
12013		return invalidParams
12014	}
12015	return nil
12016}
12017
12018// SetFileShareARN sets the FileShareARN field's value.
12019func (s *DeleteFileShareInput) SetFileShareARN(v string) *DeleteFileShareInput {
12020	s.FileShareARN = &v
12021	return s
12022}
12023
12024// SetForceDelete sets the ForceDelete field's value.
12025func (s *DeleteFileShareInput) SetForceDelete(v bool) *DeleteFileShareInput {
12026	s.ForceDelete = &v
12027	return s
12028}
12029
12030// DeleteFileShareOutput
12031type DeleteFileShareOutput struct {
12032	_ struct{} `type:"structure"`
12033
12034	// The Amazon Resource Name (ARN) of the deleted file share.
12035	FileShareARN *string `min:"50" type:"string"`
12036}
12037
12038// String returns the string representation
12039func (s DeleteFileShareOutput) String() string {
12040	return awsutil.Prettify(s)
12041}
12042
12043// GoString returns the string representation
12044func (s DeleteFileShareOutput) GoString() string {
12045	return s.String()
12046}
12047
12048// SetFileShareARN sets the FileShareARN field's value.
12049func (s *DeleteFileShareOutput) SetFileShareARN(v string) *DeleteFileShareOutput {
12050	s.FileShareARN = &v
12051	return s
12052}
12053
12054// A JSON object containing the ID of the gateway to delete.
12055type DeleteGatewayInput struct {
12056	_ struct{} `type:"structure"`
12057
12058	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12059	// to return a list of gateways for your account and AWS Region.
12060	//
12061	// GatewayARN is a required field
12062	GatewayARN *string `min:"50" type:"string" required:"true"`
12063}
12064
12065// String returns the string representation
12066func (s DeleteGatewayInput) String() string {
12067	return awsutil.Prettify(s)
12068}
12069
12070// GoString returns the string representation
12071func (s DeleteGatewayInput) GoString() string {
12072	return s.String()
12073}
12074
12075// Validate inspects the fields of the type to determine if they are valid.
12076func (s *DeleteGatewayInput) Validate() error {
12077	invalidParams := request.ErrInvalidParams{Context: "DeleteGatewayInput"}
12078	if s.GatewayARN == nil {
12079		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12080	}
12081	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12082		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12083	}
12084
12085	if invalidParams.Len() > 0 {
12086		return invalidParams
12087	}
12088	return nil
12089}
12090
12091// SetGatewayARN sets the GatewayARN field's value.
12092func (s *DeleteGatewayInput) SetGatewayARN(v string) *DeleteGatewayInput {
12093	s.GatewayARN = &v
12094	return s
12095}
12096
12097// A JSON object containing the ID of the deleted gateway.
12098type DeleteGatewayOutput struct {
12099	_ struct{} `type:"structure"`
12100
12101	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12102	// to return a list of gateways for your account and AWS Region.
12103	GatewayARN *string `min:"50" type:"string"`
12104}
12105
12106// String returns the string representation
12107func (s DeleteGatewayOutput) String() string {
12108	return awsutil.Prettify(s)
12109}
12110
12111// GoString returns the string representation
12112func (s DeleteGatewayOutput) GoString() string {
12113	return s.String()
12114}
12115
12116// SetGatewayARN sets the GatewayARN field's value.
12117func (s *DeleteGatewayOutput) SetGatewayARN(v string) *DeleteGatewayOutput {
12118	s.GatewayARN = &v
12119	return s
12120}
12121
12122type DeleteSnapshotScheduleInput struct {
12123	_ struct{} `type:"structure"`
12124
12125	// The volume which snapshot schedule to delete.
12126	//
12127	// VolumeARN is a required field
12128	VolumeARN *string `min:"50" type:"string" required:"true"`
12129}
12130
12131// String returns the string representation
12132func (s DeleteSnapshotScheduleInput) String() string {
12133	return awsutil.Prettify(s)
12134}
12135
12136// GoString returns the string representation
12137func (s DeleteSnapshotScheduleInput) GoString() string {
12138	return s.String()
12139}
12140
12141// Validate inspects the fields of the type to determine if they are valid.
12142func (s *DeleteSnapshotScheduleInput) Validate() error {
12143	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotScheduleInput"}
12144	if s.VolumeARN == nil {
12145		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
12146	}
12147	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
12148		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
12149	}
12150
12151	if invalidParams.Len() > 0 {
12152		return invalidParams
12153	}
12154	return nil
12155}
12156
12157// SetVolumeARN sets the VolumeARN field's value.
12158func (s *DeleteSnapshotScheduleInput) SetVolumeARN(v string) *DeleteSnapshotScheduleInput {
12159	s.VolumeARN = &v
12160	return s
12161}
12162
12163type DeleteSnapshotScheduleOutput struct {
12164	_ struct{} `type:"structure"`
12165
12166	// The volume which snapshot schedule was deleted.
12167	VolumeARN *string `min:"50" type:"string"`
12168}
12169
12170// String returns the string representation
12171func (s DeleteSnapshotScheduleOutput) String() string {
12172	return awsutil.Prettify(s)
12173}
12174
12175// GoString returns the string representation
12176func (s DeleteSnapshotScheduleOutput) GoString() string {
12177	return s.String()
12178}
12179
12180// SetVolumeARN sets the VolumeARN field's value.
12181func (s *DeleteSnapshotScheduleOutput) SetVolumeARN(v string) *DeleteSnapshotScheduleOutput {
12182	s.VolumeARN = &v
12183	return s
12184}
12185
12186// DeleteTapeArchiveInput
12187type DeleteTapeArchiveInput struct {
12188	_ struct{} `type:"structure"`
12189
12190	// Set to TRUE to delete an archived tape that belongs to a custom pool with
12191	// tape retention lock. Only archived tapes with tape retention lock set to
12192	// governance can be deleted. Archived tapes with tape retention lock set to
12193	// compliance can't be deleted.
12194	BypassGovernanceRetention *bool `type:"boolean"`
12195
12196	// The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual
12197	// tape shelf (VTS).
12198	//
12199	// TapeARN is a required field
12200	TapeARN *string `min:"50" type:"string" required:"true"`
12201}
12202
12203// String returns the string representation
12204func (s DeleteTapeArchiveInput) String() string {
12205	return awsutil.Prettify(s)
12206}
12207
12208// GoString returns the string representation
12209func (s DeleteTapeArchiveInput) GoString() string {
12210	return s.String()
12211}
12212
12213// Validate inspects the fields of the type to determine if they are valid.
12214func (s *DeleteTapeArchiveInput) Validate() error {
12215	invalidParams := request.ErrInvalidParams{Context: "DeleteTapeArchiveInput"}
12216	if s.TapeARN == nil {
12217		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
12218	}
12219	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
12220		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
12221	}
12222
12223	if invalidParams.Len() > 0 {
12224		return invalidParams
12225	}
12226	return nil
12227}
12228
12229// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
12230func (s *DeleteTapeArchiveInput) SetBypassGovernanceRetention(v bool) *DeleteTapeArchiveInput {
12231	s.BypassGovernanceRetention = &v
12232	return s
12233}
12234
12235// SetTapeARN sets the TapeARN field's value.
12236func (s *DeleteTapeArchiveInput) SetTapeARN(v string) *DeleteTapeArchiveInput {
12237	s.TapeARN = &v
12238	return s
12239}
12240
12241// DeleteTapeArchiveOutput
12242type DeleteTapeArchiveOutput struct {
12243	_ struct{} `type:"structure"`
12244
12245	// The Amazon Resource Name (ARN) of the virtual tape that was deleted from
12246	// the virtual tape shelf (VTS).
12247	TapeARN *string `min:"50" type:"string"`
12248}
12249
12250// String returns the string representation
12251func (s DeleteTapeArchiveOutput) String() string {
12252	return awsutil.Prettify(s)
12253}
12254
12255// GoString returns the string representation
12256func (s DeleteTapeArchiveOutput) GoString() string {
12257	return s.String()
12258}
12259
12260// SetTapeARN sets the TapeARN field's value.
12261func (s *DeleteTapeArchiveOutput) SetTapeARN(v string) *DeleteTapeArchiveOutput {
12262	s.TapeARN = &v
12263	return s
12264}
12265
12266// DeleteTapeInput
12267type DeleteTapeInput struct {
12268	_ struct{} `type:"structure"`
12269
12270	// Set to TRUE to delete an archived tape that belongs to a custom pool with
12271	// tape retention lock. Only archived tapes with tape retention lock set to
12272	// governance can be deleted. Archived tapes with tape retention lock set to
12273	// compliance can't be deleted.
12274	BypassGovernanceRetention *bool `type:"boolean"`
12275
12276	// The unique Amazon Resource Name (ARN) of the gateway that the virtual tape
12277	// to delete is associated with. Use the ListGateways operation to return a
12278	// list of gateways for your account and AWS Region.
12279	//
12280	// GatewayARN is a required field
12281	GatewayARN *string `min:"50" type:"string" required:"true"`
12282
12283	// The Amazon Resource Name (ARN) of the virtual tape to delete.
12284	//
12285	// TapeARN is a required field
12286	TapeARN *string `min:"50" type:"string" required:"true"`
12287}
12288
12289// String returns the string representation
12290func (s DeleteTapeInput) String() string {
12291	return awsutil.Prettify(s)
12292}
12293
12294// GoString returns the string representation
12295func (s DeleteTapeInput) GoString() string {
12296	return s.String()
12297}
12298
12299// Validate inspects the fields of the type to determine if they are valid.
12300func (s *DeleteTapeInput) Validate() error {
12301	invalidParams := request.ErrInvalidParams{Context: "DeleteTapeInput"}
12302	if s.GatewayARN == nil {
12303		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12304	}
12305	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12306		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12307	}
12308	if s.TapeARN == nil {
12309		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
12310	}
12311	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
12312		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
12313	}
12314
12315	if invalidParams.Len() > 0 {
12316		return invalidParams
12317	}
12318	return nil
12319}
12320
12321// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
12322func (s *DeleteTapeInput) SetBypassGovernanceRetention(v bool) *DeleteTapeInput {
12323	s.BypassGovernanceRetention = &v
12324	return s
12325}
12326
12327// SetGatewayARN sets the GatewayARN field's value.
12328func (s *DeleteTapeInput) SetGatewayARN(v string) *DeleteTapeInput {
12329	s.GatewayARN = &v
12330	return s
12331}
12332
12333// SetTapeARN sets the TapeARN field's value.
12334func (s *DeleteTapeInput) SetTapeARN(v string) *DeleteTapeInput {
12335	s.TapeARN = &v
12336	return s
12337}
12338
12339// DeleteTapeOutput
12340type DeleteTapeOutput struct {
12341	_ struct{} `type:"structure"`
12342
12343	// The Amazon Resource Name (ARN) of the deleted virtual tape.
12344	TapeARN *string `min:"50" type:"string"`
12345}
12346
12347// String returns the string representation
12348func (s DeleteTapeOutput) String() string {
12349	return awsutil.Prettify(s)
12350}
12351
12352// GoString returns the string representation
12353func (s DeleteTapeOutput) GoString() string {
12354	return s.String()
12355}
12356
12357// SetTapeARN sets the TapeARN field's value.
12358func (s *DeleteTapeOutput) SetTapeARN(v string) *DeleteTapeOutput {
12359	s.TapeARN = &v
12360	return s
12361}
12362
12363type DeleteTapePoolInput struct {
12364	_ struct{} `type:"structure"`
12365
12366	// The Amazon Resource Name (ARN) of the custom tape pool to delete.
12367	//
12368	// PoolARN is a required field
12369	PoolARN *string `min:"50" type:"string" required:"true"`
12370}
12371
12372// String returns the string representation
12373func (s DeleteTapePoolInput) String() string {
12374	return awsutil.Prettify(s)
12375}
12376
12377// GoString returns the string representation
12378func (s DeleteTapePoolInput) GoString() string {
12379	return s.String()
12380}
12381
12382// Validate inspects the fields of the type to determine if they are valid.
12383func (s *DeleteTapePoolInput) Validate() error {
12384	invalidParams := request.ErrInvalidParams{Context: "DeleteTapePoolInput"}
12385	if s.PoolARN == nil {
12386		invalidParams.Add(request.NewErrParamRequired("PoolARN"))
12387	}
12388	if s.PoolARN != nil && len(*s.PoolARN) < 50 {
12389		invalidParams.Add(request.NewErrParamMinLen("PoolARN", 50))
12390	}
12391
12392	if invalidParams.Len() > 0 {
12393		return invalidParams
12394	}
12395	return nil
12396}
12397
12398// SetPoolARN sets the PoolARN field's value.
12399func (s *DeleteTapePoolInput) SetPoolARN(v string) *DeleteTapePoolInput {
12400	s.PoolARN = &v
12401	return s
12402}
12403
12404type DeleteTapePoolOutput struct {
12405	_ struct{} `type:"structure"`
12406
12407	// The Amazon Resource Name (ARN) of the custom tape pool being deleted.
12408	PoolARN *string `min:"50" type:"string"`
12409}
12410
12411// String returns the string representation
12412func (s DeleteTapePoolOutput) String() string {
12413	return awsutil.Prettify(s)
12414}
12415
12416// GoString returns the string representation
12417func (s DeleteTapePoolOutput) GoString() string {
12418	return s.String()
12419}
12420
12421// SetPoolARN sets the PoolARN field's value.
12422func (s *DeleteTapePoolOutput) SetPoolARN(v string) *DeleteTapePoolOutput {
12423	s.PoolARN = &v
12424	return s
12425}
12426
12427// A JSON object containing the DeleteVolumeInput$VolumeARN to delete.
12428type DeleteVolumeInput struct {
12429	_ struct{} `type:"structure"`
12430
12431	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
12432	// to return a list of gateway volumes.
12433	//
12434	// VolumeARN is a required field
12435	VolumeARN *string `min:"50" type:"string" required:"true"`
12436}
12437
12438// String returns the string representation
12439func (s DeleteVolumeInput) String() string {
12440	return awsutil.Prettify(s)
12441}
12442
12443// GoString returns the string representation
12444func (s DeleteVolumeInput) GoString() string {
12445	return s.String()
12446}
12447
12448// Validate inspects the fields of the type to determine if they are valid.
12449func (s *DeleteVolumeInput) Validate() error {
12450	invalidParams := request.ErrInvalidParams{Context: "DeleteVolumeInput"}
12451	if s.VolumeARN == nil {
12452		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
12453	}
12454	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
12455		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
12456	}
12457
12458	if invalidParams.Len() > 0 {
12459		return invalidParams
12460	}
12461	return nil
12462}
12463
12464// SetVolumeARN sets the VolumeARN field's value.
12465func (s *DeleteVolumeInput) SetVolumeARN(v string) *DeleteVolumeInput {
12466	s.VolumeARN = &v
12467	return s
12468}
12469
12470// A JSON object containing the Amazon Resource Name (ARN) of the storage volume
12471// that was deleted.
12472type DeleteVolumeOutput struct {
12473	_ struct{} `type:"structure"`
12474
12475	// The Amazon Resource Name (ARN) of the storage volume that was deleted. It
12476	// is the same ARN you provided in the request.
12477	VolumeARN *string `min:"50" type:"string"`
12478}
12479
12480// String returns the string representation
12481func (s DeleteVolumeOutput) String() string {
12482	return awsutil.Prettify(s)
12483}
12484
12485// GoString returns the string representation
12486func (s DeleteVolumeOutput) GoString() string {
12487	return s.String()
12488}
12489
12490// SetVolumeARN sets the VolumeARN field's value.
12491func (s *DeleteVolumeOutput) SetVolumeARN(v string) *DeleteVolumeOutput {
12492	s.VolumeARN = &v
12493	return s
12494}
12495
12496type DescribeAvailabilityMonitorTestInput struct {
12497	_ struct{} `type:"structure"`
12498
12499	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12500	// to return a list of gateways for your account and AWS Region.
12501	//
12502	// GatewayARN is a required field
12503	GatewayARN *string `min:"50" type:"string" required:"true"`
12504}
12505
12506// String returns the string representation
12507func (s DescribeAvailabilityMonitorTestInput) String() string {
12508	return awsutil.Prettify(s)
12509}
12510
12511// GoString returns the string representation
12512func (s DescribeAvailabilityMonitorTestInput) GoString() string {
12513	return s.String()
12514}
12515
12516// Validate inspects the fields of the type to determine if they are valid.
12517func (s *DescribeAvailabilityMonitorTestInput) Validate() error {
12518	invalidParams := request.ErrInvalidParams{Context: "DescribeAvailabilityMonitorTestInput"}
12519	if s.GatewayARN == nil {
12520		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12521	}
12522	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12523		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12524	}
12525
12526	if invalidParams.Len() > 0 {
12527		return invalidParams
12528	}
12529	return nil
12530}
12531
12532// SetGatewayARN sets the GatewayARN field's value.
12533func (s *DescribeAvailabilityMonitorTestInput) SetGatewayARN(v string) *DescribeAvailabilityMonitorTestInput {
12534	s.GatewayARN = &v
12535	return s
12536}
12537
12538type DescribeAvailabilityMonitorTestOutput struct {
12539	_ struct{} `type:"structure"`
12540
12541	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12542	// to return a list of gateways for your account and AWS Region.
12543	GatewayARN *string `min:"50" type:"string"`
12544
12545	// The time the High Availability monitoring test was started. If a test hasn't
12546	// been performed, the value of this field is null.
12547	StartTime *time.Time `type:"timestamp"`
12548
12549	// The status of the High Availability monitoring test. If a test hasn't been
12550	// performed, the value of this field is null.
12551	Status *string `type:"string" enum:"AvailabilityMonitorTestStatus"`
12552}
12553
12554// String returns the string representation
12555func (s DescribeAvailabilityMonitorTestOutput) String() string {
12556	return awsutil.Prettify(s)
12557}
12558
12559// GoString returns the string representation
12560func (s DescribeAvailabilityMonitorTestOutput) GoString() string {
12561	return s.String()
12562}
12563
12564// SetGatewayARN sets the GatewayARN field's value.
12565func (s *DescribeAvailabilityMonitorTestOutput) SetGatewayARN(v string) *DescribeAvailabilityMonitorTestOutput {
12566	s.GatewayARN = &v
12567	return s
12568}
12569
12570// SetStartTime sets the StartTime field's value.
12571func (s *DescribeAvailabilityMonitorTestOutput) SetStartTime(v time.Time) *DescribeAvailabilityMonitorTestOutput {
12572	s.StartTime = &v
12573	return s
12574}
12575
12576// SetStatus sets the Status field's value.
12577func (s *DescribeAvailabilityMonitorTestOutput) SetStatus(v string) *DescribeAvailabilityMonitorTestOutput {
12578	s.Status = &v
12579	return s
12580}
12581
12582// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
12583type DescribeBandwidthRateLimitInput struct {
12584	_ struct{} `type:"structure"`
12585
12586	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12587	// to return a list of gateways for your account and AWS Region.
12588	//
12589	// GatewayARN is a required field
12590	GatewayARN *string `min:"50" type:"string" required:"true"`
12591}
12592
12593// String returns the string representation
12594func (s DescribeBandwidthRateLimitInput) String() string {
12595	return awsutil.Prettify(s)
12596}
12597
12598// GoString returns the string representation
12599func (s DescribeBandwidthRateLimitInput) GoString() string {
12600	return s.String()
12601}
12602
12603// Validate inspects the fields of the type to determine if they are valid.
12604func (s *DescribeBandwidthRateLimitInput) Validate() error {
12605	invalidParams := request.ErrInvalidParams{Context: "DescribeBandwidthRateLimitInput"}
12606	if s.GatewayARN == nil {
12607		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12608	}
12609	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12610		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12611	}
12612
12613	if invalidParams.Len() > 0 {
12614		return invalidParams
12615	}
12616	return nil
12617}
12618
12619// SetGatewayARN sets the GatewayARN field's value.
12620func (s *DescribeBandwidthRateLimitInput) SetGatewayARN(v string) *DescribeBandwidthRateLimitInput {
12621	s.GatewayARN = &v
12622	return s
12623}
12624
12625// A JSON object containing the following fields:
12626type DescribeBandwidthRateLimitOutput struct {
12627	_ struct{} `type:"structure"`
12628
12629	// The average download bandwidth rate limit in bits per second. This field
12630	// does not appear in the response if the download rate limit is not set.
12631	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
12632
12633	// The average upload bandwidth rate limit in bits per second. This field does
12634	// not appear in the response if the upload rate limit is not set.
12635	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
12636
12637	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12638	// to return a list of gateways for your account and AWS Region.
12639	GatewayARN *string `min:"50" type:"string"`
12640}
12641
12642// String returns the string representation
12643func (s DescribeBandwidthRateLimitOutput) String() string {
12644	return awsutil.Prettify(s)
12645}
12646
12647// GoString returns the string representation
12648func (s DescribeBandwidthRateLimitOutput) GoString() string {
12649	return s.String()
12650}
12651
12652// SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
12653func (s *DescribeBandwidthRateLimitOutput) SetAverageDownloadRateLimitInBitsPerSec(v int64) *DescribeBandwidthRateLimitOutput {
12654	s.AverageDownloadRateLimitInBitsPerSec = &v
12655	return s
12656}
12657
12658// SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
12659func (s *DescribeBandwidthRateLimitOutput) SetAverageUploadRateLimitInBitsPerSec(v int64) *DescribeBandwidthRateLimitOutput {
12660	s.AverageUploadRateLimitInBitsPerSec = &v
12661	return s
12662}
12663
12664// SetGatewayARN sets the GatewayARN field's value.
12665func (s *DescribeBandwidthRateLimitOutput) SetGatewayARN(v string) *DescribeBandwidthRateLimitOutput {
12666	s.GatewayARN = &v
12667	return s
12668}
12669
12670type DescribeBandwidthRateLimitScheduleInput struct {
12671	_ struct{} `type:"structure"`
12672
12673	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12674	// to return a list of gateways for your account and AWS Region.
12675	//
12676	// GatewayARN is a required field
12677	GatewayARN *string `min:"50" type:"string" required:"true"`
12678}
12679
12680// String returns the string representation
12681func (s DescribeBandwidthRateLimitScheduleInput) String() string {
12682	return awsutil.Prettify(s)
12683}
12684
12685// GoString returns the string representation
12686func (s DescribeBandwidthRateLimitScheduleInput) GoString() string {
12687	return s.String()
12688}
12689
12690// Validate inspects the fields of the type to determine if they are valid.
12691func (s *DescribeBandwidthRateLimitScheduleInput) Validate() error {
12692	invalidParams := request.ErrInvalidParams{Context: "DescribeBandwidthRateLimitScheduleInput"}
12693	if s.GatewayARN == nil {
12694		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12695	}
12696	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12697		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12698	}
12699
12700	if invalidParams.Len() > 0 {
12701		return invalidParams
12702	}
12703	return nil
12704}
12705
12706// SetGatewayARN sets the GatewayARN field's value.
12707func (s *DescribeBandwidthRateLimitScheduleInput) SetGatewayARN(v string) *DescribeBandwidthRateLimitScheduleInput {
12708	s.GatewayARN = &v
12709	return s
12710}
12711
12712type DescribeBandwidthRateLimitScheduleOutput struct {
12713	_ struct{} `type:"structure"`
12714
12715	// An array that contains the bandwidth rate limit intervals for a tape or volume
12716	// gateway.
12717	BandwidthRateLimitIntervals []*BandwidthRateLimitInterval `type:"list"`
12718
12719	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12720	// to return a list of gateways for your account and AWS Region.
12721	GatewayARN *string `min:"50" type:"string"`
12722}
12723
12724// String returns the string representation
12725func (s DescribeBandwidthRateLimitScheduleOutput) String() string {
12726	return awsutil.Prettify(s)
12727}
12728
12729// GoString returns the string representation
12730func (s DescribeBandwidthRateLimitScheduleOutput) GoString() string {
12731	return s.String()
12732}
12733
12734// SetBandwidthRateLimitIntervals sets the BandwidthRateLimitIntervals field's value.
12735func (s *DescribeBandwidthRateLimitScheduleOutput) SetBandwidthRateLimitIntervals(v []*BandwidthRateLimitInterval) *DescribeBandwidthRateLimitScheduleOutput {
12736	s.BandwidthRateLimitIntervals = v
12737	return s
12738}
12739
12740// SetGatewayARN sets the GatewayARN field's value.
12741func (s *DescribeBandwidthRateLimitScheduleOutput) SetGatewayARN(v string) *DescribeBandwidthRateLimitScheduleOutput {
12742	s.GatewayARN = &v
12743	return s
12744}
12745
12746type DescribeCacheInput struct {
12747	_ struct{} `type:"structure"`
12748
12749	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12750	// to return a list of gateways for your account and AWS Region.
12751	//
12752	// GatewayARN is a required field
12753	GatewayARN *string `min:"50" type:"string" required:"true"`
12754}
12755
12756// String returns the string representation
12757func (s DescribeCacheInput) String() string {
12758	return awsutil.Prettify(s)
12759}
12760
12761// GoString returns the string representation
12762func (s DescribeCacheInput) GoString() string {
12763	return s.String()
12764}
12765
12766// Validate inspects the fields of the type to determine if they are valid.
12767func (s *DescribeCacheInput) Validate() error {
12768	invalidParams := request.ErrInvalidParams{Context: "DescribeCacheInput"}
12769	if s.GatewayARN == nil {
12770		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12771	}
12772	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12773		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12774	}
12775
12776	if invalidParams.Len() > 0 {
12777		return invalidParams
12778	}
12779	return nil
12780}
12781
12782// SetGatewayARN sets the GatewayARN field's value.
12783func (s *DescribeCacheInput) SetGatewayARN(v string) *DescribeCacheInput {
12784	s.GatewayARN = &v
12785	return s
12786}
12787
12788type DescribeCacheOutput struct {
12789	_ struct{} `type:"structure"`
12790
12791	// The amount of cache in bytes allocated to a gateway.
12792	CacheAllocatedInBytes *int64 `type:"long"`
12793
12794	// The file share's contribution to the overall percentage of the gateway's
12795	// cache that has not been persisted to AWS. The sample is taken at the end
12796	// of the reporting period.
12797	CacheDirtyPercentage *float64 `type:"double"`
12798
12799	// Percent of application read operations from the file shares that are served
12800	// from cache. The sample is taken at the end of the reporting period.
12801	CacheHitPercentage *float64 `type:"double"`
12802
12803	// Percent of application read operations from the file shares that are not
12804	// served from cache. The sample is taken at the end of the reporting period.
12805	CacheMissPercentage *float64 `type:"double"`
12806
12807	// Percent use of the gateway's cache storage. This metric applies only to the
12808	// gateway-cached volume setup. The sample is taken at the end of the reporting
12809	// period.
12810	CacheUsedPercentage *float64 `type:"double"`
12811
12812	// An array of strings that identify disks that are to be configured as working
12813	// storage. Each string has a minimum length of 1 and maximum length of 300.
12814	// You can get the disk IDs from the ListLocalDisks API.
12815	DiskIds []*string `type:"list"`
12816
12817	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12818	// to return a list of gateways for your account and AWS Region.
12819	GatewayARN *string `min:"50" type:"string"`
12820}
12821
12822// String returns the string representation
12823func (s DescribeCacheOutput) String() string {
12824	return awsutil.Prettify(s)
12825}
12826
12827// GoString returns the string representation
12828func (s DescribeCacheOutput) GoString() string {
12829	return s.String()
12830}
12831
12832// SetCacheAllocatedInBytes sets the CacheAllocatedInBytes field's value.
12833func (s *DescribeCacheOutput) SetCacheAllocatedInBytes(v int64) *DescribeCacheOutput {
12834	s.CacheAllocatedInBytes = &v
12835	return s
12836}
12837
12838// SetCacheDirtyPercentage sets the CacheDirtyPercentage field's value.
12839func (s *DescribeCacheOutput) SetCacheDirtyPercentage(v float64) *DescribeCacheOutput {
12840	s.CacheDirtyPercentage = &v
12841	return s
12842}
12843
12844// SetCacheHitPercentage sets the CacheHitPercentage field's value.
12845func (s *DescribeCacheOutput) SetCacheHitPercentage(v float64) *DescribeCacheOutput {
12846	s.CacheHitPercentage = &v
12847	return s
12848}
12849
12850// SetCacheMissPercentage sets the CacheMissPercentage field's value.
12851func (s *DescribeCacheOutput) SetCacheMissPercentage(v float64) *DescribeCacheOutput {
12852	s.CacheMissPercentage = &v
12853	return s
12854}
12855
12856// SetCacheUsedPercentage sets the CacheUsedPercentage field's value.
12857func (s *DescribeCacheOutput) SetCacheUsedPercentage(v float64) *DescribeCacheOutput {
12858	s.CacheUsedPercentage = &v
12859	return s
12860}
12861
12862// SetDiskIds sets the DiskIds field's value.
12863func (s *DescribeCacheOutput) SetDiskIds(v []*string) *DescribeCacheOutput {
12864	s.DiskIds = v
12865	return s
12866}
12867
12868// SetGatewayARN sets the GatewayARN field's value.
12869func (s *DescribeCacheOutput) SetGatewayARN(v string) *DescribeCacheOutput {
12870	s.GatewayARN = &v
12871	return s
12872}
12873
12874type DescribeCachediSCSIVolumesInput struct {
12875	_ struct{} `type:"structure"`
12876
12877	// An array of strings where each string represents the Amazon Resource Name
12878	// (ARN) of a cached volume. All of the specified cached volumes must be from
12879	// the same gateway. Use ListVolumes to get volume ARNs for a gateway.
12880	//
12881	// VolumeARNs is a required field
12882	VolumeARNs []*string `type:"list" required:"true"`
12883}
12884
12885// String returns the string representation
12886func (s DescribeCachediSCSIVolumesInput) String() string {
12887	return awsutil.Prettify(s)
12888}
12889
12890// GoString returns the string representation
12891func (s DescribeCachediSCSIVolumesInput) GoString() string {
12892	return s.String()
12893}
12894
12895// Validate inspects the fields of the type to determine if they are valid.
12896func (s *DescribeCachediSCSIVolumesInput) Validate() error {
12897	invalidParams := request.ErrInvalidParams{Context: "DescribeCachediSCSIVolumesInput"}
12898	if s.VolumeARNs == nil {
12899		invalidParams.Add(request.NewErrParamRequired("VolumeARNs"))
12900	}
12901
12902	if invalidParams.Len() > 0 {
12903		return invalidParams
12904	}
12905	return nil
12906}
12907
12908// SetVolumeARNs sets the VolumeARNs field's value.
12909func (s *DescribeCachediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeCachediSCSIVolumesInput {
12910	s.VolumeARNs = v
12911	return s
12912}
12913
12914// A JSON object containing the following fields:
12915type DescribeCachediSCSIVolumesOutput struct {
12916	_ struct{} `type:"structure"`
12917
12918	// An array of objects where each object contains metadata about one cached
12919	// volume.
12920	CachediSCSIVolumes []*CachediSCSIVolume `type:"list"`
12921}
12922
12923// String returns the string representation
12924func (s DescribeCachediSCSIVolumesOutput) String() string {
12925	return awsutil.Prettify(s)
12926}
12927
12928// GoString returns the string representation
12929func (s DescribeCachediSCSIVolumesOutput) GoString() string {
12930	return s.String()
12931}
12932
12933// SetCachediSCSIVolumes sets the CachediSCSIVolumes field's value.
12934func (s *DescribeCachediSCSIVolumesOutput) SetCachediSCSIVolumes(v []*CachediSCSIVolume) *DescribeCachediSCSIVolumesOutput {
12935	s.CachediSCSIVolumes = v
12936	return s
12937}
12938
12939// A JSON object containing the Amazon Resource Name (ARN) of the iSCSI volume
12940// target.
12941type DescribeChapCredentialsInput struct {
12942	_ struct{} `type:"structure"`
12943
12944	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
12945	// operation to return to retrieve the TargetARN for specified VolumeARN.
12946	//
12947	// TargetARN is a required field
12948	TargetARN *string `min:"50" type:"string" required:"true"`
12949}
12950
12951// String returns the string representation
12952func (s DescribeChapCredentialsInput) String() string {
12953	return awsutil.Prettify(s)
12954}
12955
12956// GoString returns the string representation
12957func (s DescribeChapCredentialsInput) GoString() string {
12958	return s.String()
12959}
12960
12961// Validate inspects the fields of the type to determine if they are valid.
12962func (s *DescribeChapCredentialsInput) Validate() error {
12963	invalidParams := request.ErrInvalidParams{Context: "DescribeChapCredentialsInput"}
12964	if s.TargetARN == nil {
12965		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
12966	}
12967	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
12968		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
12969	}
12970
12971	if invalidParams.Len() > 0 {
12972		return invalidParams
12973	}
12974	return nil
12975}
12976
12977// SetTargetARN sets the TargetARN field's value.
12978func (s *DescribeChapCredentialsInput) SetTargetARN(v string) *DescribeChapCredentialsInput {
12979	s.TargetARN = &v
12980	return s
12981}
12982
12983// A JSON object containing the following fields:
12984type DescribeChapCredentialsOutput struct {
12985	_ struct{} `type:"structure"`
12986
12987	// An array of ChapInfo objects that represent CHAP credentials. Each object
12988	// in the array contains CHAP credential information for one target-initiator
12989	// pair. If no CHAP credentials are set, an empty array is returned. CHAP credential
12990	// information is provided in a JSON object with the following fields:
12991	//
12992	//    * InitiatorName: The iSCSI initiator that connects to the target.
12993	//
12994	//    * SecretToAuthenticateInitiator: The secret key that the initiator (for
12995	//    example, the Windows client) must provide to participate in mutual CHAP
12996	//    with the target.
12997	//
12998	//    * SecretToAuthenticateTarget: The secret key that the target must provide
12999	//    to participate in mutual CHAP with the initiator (e.g. Windows client).
13000	//
13001	//    * TargetARN: The Amazon Resource Name (ARN) of the storage volume.
13002	ChapCredentials []*ChapInfo `type:"list"`
13003}
13004
13005// String returns the string representation
13006func (s DescribeChapCredentialsOutput) String() string {
13007	return awsutil.Prettify(s)
13008}
13009
13010// GoString returns the string representation
13011func (s DescribeChapCredentialsOutput) GoString() string {
13012	return s.String()
13013}
13014
13015// SetChapCredentials sets the ChapCredentials field's value.
13016func (s *DescribeChapCredentialsOutput) SetChapCredentials(v []*ChapInfo) *DescribeChapCredentialsOutput {
13017	s.ChapCredentials = v
13018	return s
13019}
13020
13021// A JSON object containing the ID of the gateway.
13022type DescribeGatewayInformationInput struct {
13023	_ struct{} `type:"structure"`
13024
13025	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13026	// to return a list of gateways for your account and AWS Region.
13027	//
13028	// GatewayARN is a required field
13029	GatewayARN *string `min:"50" type:"string" required:"true"`
13030}
13031
13032// String returns the string representation
13033func (s DescribeGatewayInformationInput) String() string {
13034	return awsutil.Prettify(s)
13035}
13036
13037// GoString returns the string representation
13038func (s DescribeGatewayInformationInput) GoString() string {
13039	return s.String()
13040}
13041
13042// Validate inspects the fields of the type to determine if they are valid.
13043func (s *DescribeGatewayInformationInput) Validate() error {
13044	invalidParams := request.ErrInvalidParams{Context: "DescribeGatewayInformationInput"}
13045	if s.GatewayARN == nil {
13046		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13047	}
13048	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13049		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13050	}
13051
13052	if invalidParams.Len() > 0 {
13053		return invalidParams
13054	}
13055	return nil
13056}
13057
13058// SetGatewayARN sets the GatewayARN field's value.
13059func (s *DescribeGatewayInformationInput) SetGatewayARN(v string) *DescribeGatewayInformationInput {
13060	s.GatewayARN = &v
13061	return s
13062}
13063
13064// A JSON object containing the following fields:
13065type DescribeGatewayInformationOutput struct {
13066	_ struct{} `type:"structure"`
13067
13068	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is
13069	// used to monitor events in the gateway.
13070	CloudWatchLogGroupARN *string `type:"string"`
13071
13072	// Date after which this gateway will not receive software updates for new features
13073	// and bug fixes.
13074	DeprecationDate *string `min:"1" type:"string"`
13075
13076	// The ID of the Amazon EC2 instance that was used to launch the gateway.
13077	Ec2InstanceId *string `type:"string"`
13078
13079	// The AWS Region where the Amazon EC2 instance is located.
13080	Ec2InstanceRegion *string `type:"string"`
13081
13082	// The type of endpoint for your gateway.
13083	//
13084	// Valid Values: STANDARD | FIPS
13085	EndpointType *string `min:"4" type:"string"`
13086
13087	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13088	// to return a list of gateways for your account and AWS Region.
13089	GatewayARN *string `min:"50" type:"string"`
13090
13091	// The unique identifier assigned to your gateway during activation. This ID
13092	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
13093	// input for other operations.
13094	GatewayId *string `min:"12" type:"string"`
13095
13096	// The name you configured for your gateway.
13097	GatewayName *string `type:"string"`
13098
13099	// A NetworkInterface array that contains descriptions of the gateway network
13100	// interfaces.
13101	GatewayNetworkInterfaces []*NetworkInterface `type:"list"`
13102
13103	// A value that indicates the operating state of the gateway.
13104	GatewayState *string `min:"2" type:"string"`
13105
13106	// A value that indicates the time zone configured for the gateway.
13107	GatewayTimezone *string `min:"3" type:"string"`
13108
13109	// The type of the gateway.
13110	GatewayType *string `min:"2" type:"string"`
13111
13112	// The type of hypervisor environment used by the host.
13113	HostEnvironment *string `type:"string" enum:"HostEnvironment"`
13114
13115	// The date on which the last software update was applied to the gateway. If
13116	// the gateway has never been updated, this field does not return a value in
13117	// the response.
13118	LastSoftwareUpdate *string `min:"1" type:"string"`
13119
13120	// The date on which an update to the gateway is available. This date is in
13121	// the time zone of the gateway. If the gateway is not available for an update
13122	// this field is not returned in the response.
13123	NextUpdateAvailabilityDate *string `min:"1" type:"string"`
13124
13125	// Date after which this gateway will not receive software updates for new features.
13126	SoftwareUpdatesEndDate *string `min:"1" type:"string"`
13127
13128	// A list of up to 50 tags assigned to the gateway, sorted alphabetically by
13129	// key name. Each tag is a key-value pair. For a gateway with more than 10 tags
13130	// assigned, you can view all tags using the ListTagsForResource API operation.
13131	Tags []*Tag `type:"list"`
13132
13133	// The configuration settings for the virtual private cloud (VPC) endpoint for
13134	// your gateway.
13135	VPCEndpoint *string `type:"string"`
13136}
13137
13138// String returns the string representation
13139func (s DescribeGatewayInformationOutput) String() string {
13140	return awsutil.Prettify(s)
13141}
13142
13143// GoString returns the string representation
13144func (s DescribeGatewayInformationOutput) GoString() string {
13145	return s.String()
13146}
13147
13148// SetCloudWatchLogGroupARN sets the CloudWatchLogGroupARN field's value.
13149func (s *DescribeGatewayInformationOutput) SetCloudWatchLogGroupARN(v string) *DescribeGatewayInformationOutput {
13150	s.CloudWatchLogGroupARN = &v
13151	return s
13152}
13153
13154// SetDeprecationDate sets the DeprecationDate field's value.
13155func (s *DescribeGatewayInformationOutput) SetDeprecationDate(v string) *DescribeGatewayInformationOutput {
13156	s.DeprecationDate = &v
13157	return s
13158}
13159
13160// SetEc2InstanceId sets the Ec2InstanceId field's value.
13161func (s *DescribeGatewayInformationOutput) SetEc2InstanceId(v string) *DescribeGatewayInformationOutput {
13162	s.Ec2InstanceId = &v
13163	return s
13164}
13165
13166// SetEc2InstanceRegion sets the Ec2InstanceRegion field's value.
13167func (s *DescribeGatewayInformationOutput) SetEc2InstanceRegion(v string) *DescribeGatewayInformationOutput {
13168	s.Ec2InstanceRegion = &v
13169	return s
13170}
13171
13172// SetEndpointType sets the EndpointType field's value.
13173func (s *DescribeGatewayInformationOutput) SetEndpointType(v string) *DescribeGatewayInformationOutput {
13174	s.EndpointType = &v
13175	return s
13176}
13177
13178// SetGatewayARN sets the GatewayARN field's value.
13179func (s *DescribeGatewayInformationOutput) SetGatewayARN(v string) *DescribeGatewayInformationOutput {
13180	s.GatewayARN = &v
13181	return s
13182}
13183
13184// SetGatewayId sets the GatewayId field's value.
13185func (s *DescribeGatewayInformationOutput) SetGatewayId(v string) *DescribeGatewayInformationOutput {
13186	s.GatewayId = &v
13187	return s
13188}
13189
13190// SetGatewayName sets the GatewayName field's value.
13191func (s *DescribeGatewayInformationOutput) SetGatewayName(v string) *DescribeGatewayInformationOutput {
13192	s.GatewayName = &v
13193	return s
13194}
13195
13196// SetGatewayNetworkInterfaces sets the GatewayNetworkInterfaces field's value.
13197func (s *DescribeGatewayInformationOutput) SetGatewayNetworkInterfaces(v []*NetworkInterface) *DescribeGatewayInformationOutput {
13198	s.GatewayNetworkInterfaces = v
13199	return s
13200}
13201
13202// SetGatewayState sets the GatewayState field's value.
13203func (s *DescribeGatewayInformationOutput) SetGatewayState(v string) *DescribeGatewayInformationOutput {
13204	s.GatewayState = &v
13205	return s
13206}
13207
13208// SetGatewayTimezone sets the GatewayTimezone field's value.
13209func (s *DescribeGatewayInformationOutput) SetGatewayTimezone(v string) *DescribeGatewayInformationOutput {
13210	s.GatewayTimezone = &v
13211	return s
13212}
13213
13214// SetGatewayType sets the GatewayType field's value.
13215func (s *DescribeGatewayInformationOutput) SetGatewayType(v string) *DescribeGatewayInformationOutput {
13216	s.GatewayType = &v
13217	return s
13218}
13219
13220// SetHostEnvironment sets the HostEnvironment field's value.
13221func (s *DescribeGatewayInformationOutput) SetHostEnvironment(v string) *DescribeGatewayInformationOutput {
13222	s.HostEnvironment = &v
13223	return s
13224}
13225
13226// SetLastSoftwareUpdate sets the LastSoftwareUpdate field's value.
13227func (s *DescribeGatewayInformationOutput) SetLastSoftwareUpdate(v string) *DescribeGatewayInformationOutput {
13228	s.LastSoftwareUpdate = &v
13229	return s
13230}
13231
13232// SetNextUpdateAvailabilityDate sets the NextUpdateAvailabilityDate field's value.
13233func (s *DescribeGatewayInformationOutput) SetNextUpdateAvailabilityDate(v string) *DescribeGatewayInformationOutput {
13234	s.NextUpdateAvailabilityDate = &v
13235	return s
13236}
13237
13238// SetSoftwareUpdatesEndDate sets the SoftwareUpdatesEndDate field's value.
13239func (s *DescribeGatewayInformationOutput) SetSoftwareUpdatesEndDate(v string) *DescribeGatewayInformationOutput {
13240	s.SoftwareUpdatesEndDate = &v
13241	return s
13242}
13243
13244// SetTags sets the Tags field's value.
13245func (s *DescribeGatewayInformationOutput) SetTags(v []*Tag) *DescribeGatewayInformationOutput {
13246	s.Tags = v
13247	return s
13248}
13249
13250// SetVPCEndpoint sets the VPCEndpoint field's value.
13251func (s *DescribeGatewayInformationOutput) SetVPCEndpoint(v string) *DescribeGatewayInformationOutput {
13252	s.VPCEndpoint = &v
13253	return s
13254}
13255
13256// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
13257type DescribeMaintenanceStartTimeInput struct {
13258	_ struct{} `type:"structure"`
13259
13260	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13261	// to return a list of gateways for your account and AWS Region.
13262	//
13263	// GatewayARN is a required field
13264	GatewayARN *string `min:"50" type:"string" required:"true"`
13265}
13266
13267// String returns the string representation
13268func (s DescribeMaintenanceStartTimeInput) String() string {
13269	return awsutil.Prettify(s)
13270}
13271
13272// GoString returns the string representation
13273func (s DescribeMaintenanceStartTimeInput) GoString() string {
13274	return s.String()
13275}
13276
13277// Validate inspects the fields of the type to determine if they are valid.
13278func (s *DescribeMaintenanceStartTimeInput) Validate() error {
13279	invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceStartTimeInput"}
13280	if s.GatewayARN == nil {
13281		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13282	}
13283	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13284		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13285	}
13286
13287	if invalidParams.Len() > 0 {
13288		return invalidParams
13289	}
13290	return nil
13291}
13292
13293// SetGatewayARN sets the GatewayARN field's value.
13294func (s *DescribeMaintenanceStartTimeInput) SetGatewayARN(v string) *DescribeMaintenanceStartTimeInput {
13295	s.GatewayARN = &v
13296	return s
13297}
13298
13299// A JSON object containing the following fields:
13300//
13301//    * DescribeMaintenanceStartTimeOutput$DayOfMonth
13302//
13303//    * DescribeMaintenanceStartTimeOutput$DayOfWeek
13304//
13305//    * DescribeMaintenanceStartTimeOutput$HourOfDay
13306//
13307//    * DescribeMaintenanceStartTimeOutput$MinuteOfHour
13308//
13309//    * DescribeMaintenanceStartTimeOutput$Timezone
13310type DescribeMaintenanceStartTimeOutput struct {
13311	_ struct{} `type:"structure"`
13312
13313	// The day of the month component of the maintenance start time represented
13314	// as an ordinal number from 1 to 28, where 1 represents the first day of the
13315	// month and 28 represents the last day of the month.
13316	DayOfMonth *int64 `min:"1" type:"integer"`
13317
13318	// An ordinal number between 0 and 6 that represents the day of the week, where
13319	// 0 represents Sunday and 6 represents Saturday. The day of week is in the
13320	// time zone of the gateway.
13321	DayOfWeek *int64 `type:"integer"`
13322
13323	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13324	// to return a list of gateways for your account and AWS Region.
13325	GatewayARN *string `min:"50" type:"string"`
13326
13327	// The hour component of the maintenance start time represented as hh, where
13328	// hh is the hour (0 to 23). The hour of the day is in the time zone of the
13329	// gateway.
13330	HourOfDay *int64 `type:"integer"`
13331
13332	// The minute component of the maintenance start time represented as mm, where
13333	// mm is the minute (0 to 59). The minute of the hour is in the time zone of
13334	// the gateway.
13335	MinuteOfHour *int64 `type:"integer"`
13336
13337	// A value that indicates the time zone that is set for the gateway. The start
13338	// time and day of week specified should be in the time zone of the gateway.
13339	Timezone *string `min:"3" type:"string"`
13340}
13341
13342// String returns the string representation
13343func (s DescribeMaintenanceStartTimeOutput) String() string {
13344	return awsutil.Prettify(s)
13345}
13346
13347// GoString returns the string representation
13348func (s DescribeMaintenanceStartTimeOutput) GoString() string {
13349	return s.String()
13350}
13351
13352// SetDayOfMonth sets the DayOfMonth field's value.
13353func (s *DescribeMaintenanceStartTimeOutput) SetDayOfMonth(v int64) *DescribeMaintenanceStartTimeOutput {
13354	s.DayOfMonth = &v
13355	return s
13356}
13357
13358// SetDayOfWeek sets the DayOfWeek field's value.
13359func (s *DescribeMaintenanceStartTimeOutput) SetDayOfWeek(v int64) *DescribeMaintenanceStartTimeOutput {
13360	s.DayOfWeek = &v
13361	return s
13362}
13363
13364// SetGatewayARN sets the GatewayARN field's value.
13365func (s *DescribeMaintenanceStartTimeOutput) SetGatewayARN(v string) *DescribeMaintenanceStartTimeOutput {
13366	s.GatewayARN = &v
13367	return s
13368}
13369
13370// SetHourOfDay sets the HourOfDay field's value.
13371func (s *DescribeMaintenanceStartTimeOutput) SetHourOfDay(v int64) *DescribeMaintenanceStartTimeOutput {
13372	s.HourOfDay = &v
13373	return s
13374}
13375
13376// SetMinuteOfHour sets the MinuteOfHour field's value.
13377func (s *DescribeMaintenanceStartTimeOutput) SetMinuteOfHour(v int64) *DescribeMaintenanceStartTimeOutput {
13378	s.MinuteOfHour = &v
13379	return s
13380}
13381
13382// SetTimezone sets the Timezone field's value.
13383func (s *DescribeMaintenanceStartTimeOutput) SetTimezone(v string) *DescribeMaintenanceStartTimeOutput {
13384	s.Timezone = &v
13385	return s
13386}
13387
13388// DescribeNFSFileSharesInput
13389type DescribeNFSFileSharesInput struct {
13390	_ struct{} `type:"structure"`
13391
13392	// An array containing the Amazon Resource Name (ARN) of each file share to
13393	// be described.
13394	//
13395	// FileShareARNList is a required field
13396	FileShareARNList []*string `min:"1" type:"list" required:"true"`
13397}
13398
13399// String returns the string representation
13400func (s DescribeNFSFileSharesInput) String() string {
13401	return awsutil.Prettify(s)
13402}
13403
13404// GoString returns the string representation
13405func (s DescribeNFSFileSharesInput) GoString() string {
13406	return s.String()
13407}
13408
13409// Validate inspects the fields of the type to determine if they are valid.
13410func (s *DescribeNFSFileSharesInput) Validate() error {
13411	invalidParams := request.ErrInvalidParams{Context: "DescribeNFSFileSharesInput"}
13412	if s.FileShareARNList == nil {
13413		invalidParams.Add(request.NewErrParamRequired("FileShareARNList"))
13414	}
13415	if s.FileShareARNList != nil && len(s.FileShareARNList) < 1 {
13416		invalidParams.Add(request.NewErrParamMinLen("FileShareARNList", 1))
13417	}
13418
13419	if invalidParams.Len() > 0 {
13420		return invalidParams
13421	}
13422	return nil
13423}
13424
13425// SetFileShareARNList sets the FileShareARNList field's value.
13426func (s *DescribeNFSFileSharesInput) SetFileShareARNList(v []*string) *DescribeNFSFileSharesInput {
13427	s.FileShareARNList = v
13428	return s
13429}
13430
13431// DescribeNFSFileSharesOutput
13432type DescribeNFSFileSharesOutput struct {
13433	_ struct{} `type:"structure"`
13434
13435	// An array containing a description for each requested file share.
13436	NFSFileShareInfoList []*NFSFileShareInfo `type:"list"`
13437}
13438
13439// String returns the string representation
13440func (s DescribeNFSFileSharesOutput) String() string {
13441	return awsutil.Prettify(s)
13442}
13443
13444// GoString returns the string representation
13445func (s DescribeNFSFileSharesOutput) GoString() string {
13446	return s.String()
13447}
13448
13449// SetNFSFileShareInfoList sets the NFSFileShareInfoList field's value.
13450func (s *DescribeNFSFileSharesOutput) SetNFSFileShareInfoList(v []*NFSFileShareInfo) *DescribeNFSFileSharesOutput {
13451	s.NFSFileShareInfoList = v
13452	return s
13453}
13454
13455// DescribeSMBFileSharesInput
13456type DescribeSMBFileSharesInput struct {
13457	_ struct{} `type:"structure"`
13458
13459	// An array containing the Amazon Resource Name (ARN) of each file share to
13460	// be described.
13461	//
13462	// FileShareARNList is a required field
13463	FileShareARNList []*string `min:"1" type:"list" required:"true"`
13464}
13465
13466// String returns the string representation
13467func (s DescribeSMBFileSharesInput) String() string {
13468	return awsutil.Prettify(s)
13469}
13470
13471// GoString returns the string representation
13472func (s DescribeSMBFileSharesInput) GoString() string {
13473	return s.String()
13474}
13475
13476// Validate inspects the fields of the type to determine if they are valid.
13477func (s *DescribeSMBFileSharesInput) Validate() error {
13478	invalidParams := request.ErrInvalidParams{Context: "DescribeSMBFileSharesInput"}
13479	if s.FileShareARNList == nil {
13480		invalidParams.Add(request.NewErrParamRequired("FileShareARNList"))
13481	}
13482	if s.FileShareARNList != nil && len(s.FileShareARNList) < 1 {
13483		invalidParams.Add(request.NewErrParamMinLen("FileShareARNList", 1))
13484	}
13485
13486	if invalidParams.Len() > 0 {
13487		return invalidParams
13488	}
13489	return nil
13490}
13491
13492// SetFileShareARNList sets the FileShareARNList field's value.
13493func (s *DescribeSMBFileSharesInput) SetFileShareARNList(v []*string) *DescribeSMBFileSharesInput {
13494	s.FileShareARNList = v
13495	return s
13496}
13497
13498// DescribeSMBFileSharesOutput
13499type DescribeSMBFileSharesOutput struct {
13500	_ struct{} `type:"structure"`
13501
13502	// An array containing a description for each requested file share.
13503	SMBFileShareInfoList []*SMBFileShareInfo `type:"list"`
13504}
13505
13506// String returns the string representation
13507func (s DescribeSMBFileSharesOutput) String() string {
13508	return awsutil.Prettify(s)
13509}
13510
13511// GoString returns the string representation
13512func (s DescribeSMBFileSharesOutput) GoString() string {
13513	return s.String()
13514}
13515
13516// SetSMBFileShareInfoList sets the SMBFileShareInfoList field's value.
13517func (s *DescribeSMBFileSharesOutput) SetSMBFileShareInfoList(v []*SMBFileShareInfo) *DescribeSMBFileSharesOutput {
13518	s.SMBFileShareInfoList = v
13519	return s
13520}
13521
13522type DescribeSMBSettingsInput struct {
13523	_ struct{} `type:"structure"`
13524
13525	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13526	// to return a list of gateways for your account and AWS Region.
13527	//
13528	// GatewayARN is a required field
13529	GatewayARN *string `min:"50" type:"string" required:"true"`
13530}
13531
13532// String returns the string representation
13533func (s DescribeSMBSettingsInput) String() string {
13534	return awsutil.Prettify(s)
13535}
13536
13537// GoString returns the string representation
13538func (s DescribeSMBSettingsInput) GoString() string {
13539	return s.String()
13540}
13541
13542// Validate inspects the fields of the type to determine if they are valid.
13543func (s *DescribeSMBSettingsInput) Validate() error {
13544	invalidParams := request.ErrInvalidParams{Context: "DescribeSMBSettingsInput"}
13545	if s.GatewayARN == nil {
13546		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13547	}
13548	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13549		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13550	}
13551
13552	if invalidParams.Len() > 0 {
13553		return invalidParams
13554	}
13555	return nil
13556}
13557
13558// SetGatewayARN sets the GatewayARN field's value.
13559func (s *DescribeSMBSettingsInput) SetGatewayARN(v string) *DescribeSMBSettingsInput {
13560	s.GatewayARN = &v
13561	return s
13562}
13563
13564type DescribeSMBSettingsOutput struct {
13565	_ struct{} `type:"structure"`
13566
13567	// Indicates the status of a gateway that is a member of the Active Directory
13568	// domain.
13569	//
13570	//    * ACCESS_DENIED: Indicates that the JoinDomain operation failed due to
13571	//    an authentication error.
13572	//
13573	//    * DETACHED: Indicates that gateway is not joined to a domain.
13574	//
13575	//    * JOINED: Indicates that the gateway has successfully joined a domain.
13576	//
13577	//    * JOINING: Indicates that a JoinDomain operation is in progress.
13578	//
13579	//    * NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network
13580	//    or connectivity error.
13581	//
13582	//    * TIMEOUT: Indicates that the JoinDomain operation failed because the
13583	//    operation didn't complete within the allotted time.
13584	//
13585	//    * UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to
13586	//    another type of error.
13587	ActiveDirectoryStatus *string `type:"string" enum:"ActiveDirectoryStatus"`
13588
13589	// The name of the domain that the gateway is joined to.
13590	DomainName *string `min:"1" type:"string"`
13591
13592	// The shares on this gateway appear when listing shares.
13593	FileSharesVisible *bool `type:"boolean"`
13594
13595	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13596	// to return a list of gateways for your account and AWS Region.
13597	GatewayARN *string `min:"50" type:"string"`
13598
13599	// This value is true if a password for the guest user smbguest is set, otherwise
13600	// false.
13601	//
13602	// Valid Values: true | false
13603	SMBGuestPasswordSet *bool `type:"boolean"`
13604
13605	// The type of security strategy that was specified for file gateway.
13606	//
13607	//    * ClientSpecified: If you use this option, requests are established based
13608	//    on what is negotiated by the client. This option is recommended when you
13609	//    want to maximize compatibility across different clients in your environment.
13610	//
13611	//    * MandatorySigning: If you use this option, file gateway only allows connections
13612	//    from SMBv2 or SMBv3 clients that have signing enabled. This option works
13613	//    with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer.
13614	//
13615	//    * MandatoryEncryption: If you use this option, file gateway only allows
13616	//    connections from SMBv3 clients that have encryption enabled. This option
13617	//    is highly recommended for environments that handle sensitive data. This
13618	//    option works with SMB clients on Microsoft Windows 8, Windows Server 2012
13619	//    or newer.
13620	SMBSecurityStrategy *string `type:"string" enum:"SMBSecurityStrategy"`
13621}
13622
13623// String returns the string representation
13624func (s DescribeSMBSettingsOutput) String() string {
13625	return awsutil.Prettify(s)
13626}
13627
13628// GoString returns the string representation
13629func (s DescribeSMBSettingsOutput) GoString() string {
13630	return s.String()
13631}
13632
13633// SetActiveDirectoryStatus sets the ActiveDirectoryStatus field's value.
13634func (s *DescribeSMBSettingsOutput) SetActiveDirectoryStatus(v string) *DescribeSMBSettingsOutput {
13635	s.ActiveDirectoryStatus = &v
13636	return s
13637}
13638
13639// SetDomainName sets the DomainName field's value.
13640func (s *DescribeSMBSettingsOutput) SetDomainName(v string) *DescribeSMBSettingsOutput {
13641	s.DomainName = &v
13642	return s
13643}
13644
13645// SetFileSharesVisible sets the FileSharesVisible field's value.
13646func (s *DescribeSMBSettingsOutput) SetFileSharesVisible(v bool) *DescribeSMBSettingsOutput {
13647	s.FileSharesVisible = &v
13648	return s
13649}
13650
13651// SetGatewayARN sets the GatewayARN field's value.
13652func (s *DescribeSMBSettingsOutput) SetGatewayARN(v string) *DescribeSMBSettingsOutput {
13653	s.GatewayARN = &v
13654	return s
13655}
13656
13657// SetSMBGuestPasswordSet sets the SMBGuestPasswordSet field's value.
13658func (s *DescribeSMBSettingsOutput) SetSMBGuestPasswordSet(v bool) *DescribeSMBSettingsOutput {
13659	s.SMBGuestPasswordSet = &v
13660	return s
13661}
13662
13663// SetSMBSecurityStrategy sets the SMBSecurityStrategy field's value.
13664func (s *DescribeSMBSettingsOutput) SetSMBSecurityStrategy(v string) *DescribeSMBSettingsOutput {
13665	s.SMBSecurityStrategy = &v
13666	return s
13667}
13668
13669// A JSON object containing the DescribeSnapshotScheduleInput$VolumeARN of the
13670// volume.
13671type DescribeSnapshotScheduleInput struct {
13672	_ struct{} `type:"structure"`
13673
13674	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
13675	// to return a list of gateway volumes.
13676	//
13677	// VolumeARN is a required field
13678	VolumeARN *string `min:"50" type:"string" required:"true"`
13679}
13680
13681// String returns the string representation
13682func (s DescribeSnapshotScheduleInput) String() string {
13683	return awsutil.Prettify(s)
13684}
13685
13686// GoString returns the string representation
13687func (s DescribeSnapshotScheduleInput) GoString() string {
13688	return s.String()
13689}
13690
13691// Validate inspects the fields of the type to determine if they are valid.
13692func (s *DescribeSnapshotScheduleInput) Validate() error {
13693	invalidParams := request.ErrInvalidParams{Context: "DescribeSnapshotScheduleInput"}
13694	if s.VolumeARN == nil {
13695		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
13696	}
13697	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
13698		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
13699	}
13700
13701	if invalidParams.Len() > 0 {
13702		return invalidParams
13703	}
13704	return nil
13705}
13706
13707// SetVolumeARN sets the VolumeARN field's value.
13708func (s *DescribeSnapshotScheduleInput) SetVolumeARN(v string) *DescribeSnapshotScheduleInput {
13709	s.VolumeARN = &v
13710	return s
13711}
13712
13713type DescribeSnapshotScheduleOutput struct {
13714	_ struct{} `type:"structure"`
13715
13716	// The snapshot description.
13717	Description *string `min:"1" type:"string"`
13718
13719	// The number of hours between snapshots.
13720	RecurrenceInHours *int64 `min:"1" type:"integer"`
13721
13722	// The hour of the day at which the snapshot schedule begins represented as
13723	// hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
13724	// of the gateway.
13725	StartAt *int64 `type:"integer"`
13726
13727	// A list of up to 50 tags assigned to the snapshot schedule, sorted alphabetically
13728	// by key name. Each tag is a key-value pair. For a gateway with more than 10
13729	// tags assigned, you can view all tags using the ListTagsForResource API operation.
13730	Tags []*Tag `type:"list"`
13731
13732	// A value that indicates the time zone of the gateway.
13733	Timezone *string `min:"3" type:"string"`
13734
13735	// The Amazon Resource Name (ARN) of the volume that was specified in the request.
13736	VolumeARN *string `min:"50" type:"string"`
13737}
13738
13739// String returns the string representation
13740func (s DescribeSnapshotScheduleOutput) String() string {
13741	return awsutil.Prettify(s)
13742}
13743
13744// GoString returns the string representation
13745func (s DescribeSnapshotScheduleOutput) GoString() string {
13746	return s.String()
13747}
13748
13749// SetDescription sets the Description field's value.
13750func (s *DescribeSnapshotScheduleOutput) SetDescription(v string) *DescribeSnapshotScheduleOutput {
13751	s.Description = &v
13752	return s
13753}
13754
13755// SetRecurrenceInHours sets the RecurrenceInHours field's value.
13756func (s *DescribeSnapshotScheduleOutput) SetRecurrenceInHours(v int64) *DescribeSnapshotScheduleOutput {
13757	s.RecurrenceInHours = &v
13758	return s
13759}
13760
13761// SetStartAt sets the StartAt field's value.
13762func (s *DescribeSnapshotScheduleOutput) SetStartAt(v int64) *DescribeSnapshotScheduleOutput {
13763	s.StartAt = &v
13764	return s
13765}
13766
13767// SetTags sets the Tags field's value.
13768func (s *DescribeSnapshotScheduleOutput) SetTags(v []*Tag) *DescribeSnapshotScheduleOutput {
13769	s.Tags = v
13770	return s
13771}
13772
13773// SetTimezone sets the Timezone field's value.
13774func (s *DescribeSnapshotScheduleOutput) SetTimezone(v string) *DescribeSnapshotScheduleOutput {
13775	s.Timezone = &v
13776	return s
13777}
13778
13779// SetVolumeARN sets the VolumeARN field's value.
13780func (s *DescribeSnapshotScheduleOutput) SetVolumeARN(v string) *DescribeSnapshotScheduleOutput {
13781	s.VolumeARN = &v
13782	return s
13783}
13784
13785// A JSON object containing a list of DescribeStorediSCSIVolumesInput$VolumeARNs.
13786type DescribeStorediSCSIVolumesInput struct {
13787	_ struct{} `type:"structure"`
13788
13789	// An array of strings where each string represents the Amazon Resource Name
13790	// (ARN) of a stored volume. All of the specified stored volumes must be from
13791	// the same gateway. Use ListVolumes to get volume ARNs for a gateway.
13792	//
13793	// VolumeARNs is a required field
13794	VolumeARNs []*string `type:"list" required:"true"`
13795}
13796
13797// String returns the string representation
13798func (s DescribeStorediSCSIVolumesInput) String() string {
13799	return awsutil.Prettify(s)
13800}
13801
13802// GoString returns the string representation
13803func (s DescribeStorediSCSIVolumesInput) GoString() string {
13804	return s.String()
13805}
13806
13807// Validate inspects the fields of the type to determine if they are valid.
13808func (s *DescribeStorediSCSIVolumesInput) Validate() error {
13809	invalidParams := request.ErrInvalidParams{Context: "DescribeStorediSCSIVolumesInput"}
13810	if s.VolumeARNs == nil {
13811		invalidParams.Add(request.NewErrParamRequired("VolumeARNs"))
13812	}
13813
13814	if invalidParams.Len() > 0 {
13815		return invalidParams
13816	}
13817	return nil
13818}
13819
13820// SetVolumeARNs sets the VolumeARNs field's value.
13821func (s *DescribeStorediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeStorediSCSIVolumesInput {
13822	s.VolumeARNs = v
13823	return s
13824}
13825
13826type DescribeStorediSCSIVolumesOutput struct {
13827	_ struct{} `type:"structure"`
13828
13829	// Describes a single unit of output from DescribeStorediSCSIVolumes. The following
13830	// fields are returned:
13831	//
13832	//    * ChapEnabled: Indicates whether mutual CHAP is enabled for the iSCSI
13833	//    target.
13834	//
13835	//    * LunNumber: The logical disk number.
13836	//
13837	//    * NetworkInterfaceId: The network interface ID of the stored volume that
13838	//    initiator use to map the stored volume as an iSCSI target.
13839	//
13840	//    * NetworkInterfacePort: The port used to communicate with iSCSI targets.
13841	//
13842	//    * PreservedExistingData: Indicates when the stored volume was created,
13843	//    existing data on the underlying local disk was preserved.
13844	//
13845	//    * SourceSnapshotId: If the stored volume was created from a snapshot,
13846	//    this field contains the snapshot ID used, e.g. snap-1122aabb. Otherwise,
13847	//    this field is not included.
13848	//
13849	//    * StorediSCSIVolumes: An array of StorediSCSIVolume objects where each
13850	//    object contains metadata about one stored volume.
13851	//
13852	//    * TargetARN: The Amazon Resource Name (ARN) of the volume target.
13853	//
13854	//    * VolumeARN: The Amazon Resource Name (ARN) of the stored volume.
13855	//
13856	//    * VolumeDiskId: The disk ID of the local disk that was specified in the
13857	//    CreateStorediSCSIVolume operation.
13858	//
13859	//    * VolumeId: The unique identifier of the storage volume, e.g. vol-1122AABB.
13860	//
13861	//    * VolumeiSCSIAttributes: An VolumeiSCSIAttributes object that represents
13862	//    a collection of iSCSI attributes for one stored volume.
13863	//
13864	//    * VolumeProgress: Represents the percentage complete if the volume is
13865	//    restoring or bootstrapping that represents the percent of data transferred.
13866	//    This field does not appear in the response if the stored volume is not
13867	//    restoring or bootstrapping.
13868	//
13869	//    * VolumeSizeInBytes: The size of the volume in bytes.
13870	//
13871	//    * VolumeStatus: One of the VolumeStatus values that indicates the state
13872	//    of the volume.
13873	//
13874	//    * VolumeType: One of the enumeration values describing the type of the
13875	//    volume. Currently, only STORED volumes are supported.
13876	StorediSCSIVolumes []*StorediSCSIVolume `type:"list"`
13877}
13878
13879// String returns the string representation
13880func (s DescribeStorediSCSIVolumesOutput) String() string {
13881	return awsutil.Prettify(s)
13882}
13883
13884// GoString returns the string representation
13885func (s DescribeStorediSCSIVolumesOutput) GoString() string {
13886	return s.String()
13887}
13888
13889// SetStorediSCSIVolumes sets the StorediSCSIVolumes field's value.
13890func (s *DescribeStorediSCSIVolumesOutput) SetStorediSCSIVolumes(v []*StorediSCSIVolume) *DescribeStorediSCSIVolumesOutput {
13891	s.StorediSCSIVolumes = v
13892	return s
13893}
13894
13895// DescribeTapeArchivesInput
13896type DescribeTapeArchivesInput struct {
13897	_ struct{} `type:"structure"`
13898
13899	// Specifies that the number of virtual tapes described be limited to the specified
13900	// number.
13901	Limit *int64 `min:"1" type:"integer"`
13902
13903	// An opaque string that indicates the position at which to begin describing
13904	// virtual tapes.
13905	Marker *string `min:"1" type:"string"`
13906
13907	// Specifies one or more unique Amazon Resource Names (ARNs) that represent
13908	// the virtual tapes you want to describe.
13909	TapeARNs []*string `type:"list"`
13910}
13911
13912// String returns the string representation
13913func (s DescribeTapeArchivesInput) String() string {
13914	return awsutil.Prettify(s)
13915}
13916
13917// GoString returns the string representation
13918func (s DescribeTapeArchivesInput) GoString() string {
13919	return s.String()
13920}
13921
13922// Validate inspects the fields of the type to determine if they are valid.
13923func (s *DescribeTapeArchivesInput) Validate() error {
13924	invalidParams := request.ErrInvalidParams{Context: "DescribeTapeArchivesInput"}
13925	if s.Limit != nil && *s.Limit < 1 {
13926		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
13927	}
13928	if s.Marker != nil && len(*s.Marker) < 1 {
13929		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
13930	}
13931
13932	if invalidParams.Len() > 0 {
13933		return invalidParams
13934	}
13935	return nil
13936}
13937
13938// SetLimit sets the Limit field's value.
13939func (s *DescribeTapeArchivesInput) SetLimit(v int64) *DescribeTapeArchivesInput {
13940	s.Limit = &v
13941	return s
13942}
13943
13944// SetMarker sets the Marker field's value.
13945func (s *DescribeTapeArchivesInput) SetMarker(v string) *DescribeTapeArchivesInput {
13946	s.Marker = &v
13947	return s
13948}
13949
13950// SetTapeARNs sets the TapeARNs field's value.
13951func (s *DescribeTapeArchivesInput) SetTapeARNs(v []*string) *DescribeTapeArchivesInput {
13952	s.TapeARNs = v
13953	return s
13954}
13955
13956// DescribeTapeArchivesOutput
13957type DescribeTapeArchivesOutput struct {
13958	_ struct{} `type:"structure"`
13959
13960	// An opaque string that indicates the position at which the virtual tapes that
13961	// were fetched for description ended. Use this marker in your next request
13962	// to fetch the next set of virtual tapes in the virtual tape shelf (VTS). If
13963	// there are no more virtual tapes to describe, this field does not appear in
13964	// the response.
13965	Marker *string `min:"1" type:"string"`
13966
13967	// An array of virtual tape objects in the virtual tape shelf (VTS). The description
13968	// includes of the Amazon Resource Name (ARN) of the virtual tapes. The information
13969	// returned includes the Amazon Resource Names (ARNs) of the tapes, size of
13970	// the tapes, status of the tapes, progress of the description, and tape barcode.
13971	TapeArchives []*TapeArchive `type:"list"`
13972}
13973
13974// String returns the string representation
13975func (s DescribeTapeArchivesOutput) String() string {
13976	return awsutil.Prettify(s)
13977}
13978
13979// GoString returns the string representation
13980func (s DescribeTapeArchivesOutput) GoString() string {
13981	return s.String()
13982}
13983
13984// SetMarker sets the Marker field's value.
13985func (s *DescribeTapeArchivesOutput) SetMarker(v string) *DescribeTapeArchivesOutput {
13986	s.Marker = &v
13987	return s
13988}
13989
13990// SetTapeArchives sets the TapeArchives field's value.
13991func (s *DescribeTapeArchivesOutput) SetTapeArchives(v []*TapeArchive) *DescribeTapeArchivesOutput {
13992	s.TapeArchives = v
13993	return s
13994}
13995
13996// DescribeTapeRecoveryPointsInput
13997type DescribeTapeRecoveryPointsInput struct {
13998	_ struct{} `type:"structure"`
13999
14000	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14001	// to return a list of gateways for your account and AWS Region.
14002	//
14003	// GatewayARN is a required field
14004	GatewayARN *string `min:"50" type:"string" required:"true"`
14005
14006	// Specifies that the number of virtual tape recovery points that are described
14007	// be limited to the specified number.
14008	Limit *int64 `min:"1" type:"integer"`
14009
14010	// An opaque string that indicates the position at which to begin describing
14011	// the virtual tape recovery points.
14012	Marker *string `min:"1" type:"string"`
14013}
14014
14015// String returns the string representation
14016func (s DescribeTapeRecoveryPointsInput) String() string {
14017	return awsutil.Prettify(s)
14018}
14019
14020// GoString returns the string representation
14021func (s DescribeTapeRecoveryPointsInput) GoString() string {
14022	return s.String()
14023}
14024
14025// Validate inspects the fields of the type to determine if they are valid.
14026func (s *DescribeTapeRecoveryPointsInput) Validate() error {
14027	invalidParams := request.ErrInvalidParams{Context: "DescribeTapeRecoveryPointsInput"}
14028	if s.GatewayARN == nil {
14029		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14030	}
14031	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14032		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14033	}
14034	if s.Limit != nil && *s.Limit < 1 {
14035		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14036	}
14037	if s.Marker != nil && len(*s.Marker) < 1 {
14038		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14039	}
14040
14041	if invalidParams.Len() > 0 {
14042		return invalidParams
14043	}
14044	return nil
14045}
14046
14047// SetGatewayARN sets the GatewayARN field's value.
14048func (s *DescribeTapeRecoveryPointsInput) SetGatewayARN(v string) *DescribeTapeRecoveryPointsInput {
14049	s.GatewayARN = &v
14050	return s
14051}
14052
14053// SetLimit sets the Limit field's value.
14054func (s *DescribeTapeRecoveryPointsInput) SetLimit(v int64) *DescribeTapeRecoveryPointsInput {
14055	s.Limit = &v
14056	return s
14057}
14058
14059// SetMarker sets the Marker field's value.
14060func (s *DescribeTapeRecoveryPointsInput) SetMarker(v string) *DescribeTapeRecoveryPointsInput {
14061	s.Marker = &v
14062	return s
14063}
14064
14065// DescribeTapeRecoveryPointsOutput
14066type DescribeTapeRecoveryPointsOutput struct {
14067	_ struct{} `type:"structure"`
14068
14069	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14070	// to return a list of gateways for your account and AWS Region.
14071	GatewayARN *string `min:"50" type:"string"`
14072
14073	// An opaque string that indicates the position at which the virtual tape recovery
14074	// points that were listed for description ended.
14075	//
14076	// Use this marker in your next request to list the next set of virtual tape
14077	// recovery points in the list. If there are no more recovery points to describe,
14078	// this field does not appear in the response.
14079	Marker *string `min:"1" type:"string"`
14080
14081	// An array of TapeRecoveryPointInfos that are available for the specified gateway.
14082	TapeRecoveryPointInfos []*TapeRecoveryPointInfo `type:"list"`
14083}
14084
14085// String returns the string representation
14086func (s DescribeTapeRecoveryPointsOutput) String() string {
14087	return awsutil.Prettify(s)
14088}
14089
14090// GoString returns the string representation
14091func (s DescribeTapeRecoveryPointsOutput) GoString() string {
14092	return s.String()
14093}
14094
14095// SetGatewayARN sets the GatewayARN field's value.
14096func (s *DescribeTapeRecoveryPointsOutput) SetGatewayARN(v string) *DescribeTapeRecoveryPointsOutput {
14097	s.GatewayARN = &v
14098	return s
14099}
14100
14101// SetMarker sets the Marker field's value.
14102func (s *DescribeTapeRecoveryPointsOutput) SetMarker(v string) *DescribeTapeRecoveryPointsOutput {
14103	s.Marker = &v
14104	return s
14105}
14106
14107// SetTapeRecoveryPointInfos sets the TapeRecoveryPointInfos field's value.
14108func (s *DescribeTapeRecoveryPointsOutput) SetTapeRecoveryPointInfos(v []*TapeRecoveryPointInfo) *DescribeTapeRecoveryPointsOutput {
14109	s.TapeRecoveryPointInfos = v
14110	return s
14111}
14112
14113// DescribeTapesInput
14114type DescribeTapesInput struct {
14115	_ struct{} `type:"structure"`
14116
14117	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14118	// to return a list of gateways for your account and AWS Region.
14119	//
14120	// GatewayARN is a required field
14121	GatewayARN *string `min:"50" type:"string" required:"true"`
14122
14123	// Specifies that the number of virtual tapes described be limited to the specified
14124	// number.
14125	//
14126	// Amazon Web Services may impose its own limit, if this field is not set.
14127	Limit *int64 `min:"1" type:"integer"`
14128
14129	// A marker value, obtained in a previous call to DescribeTapes. This marker
14130	// indicates which page of results to retrieve.
14131	//
14132	// If not specified, the first page of results is retrieved.
14133	Marker *string `min:"1" type:"string"`
14134
14135	// Specifies one or more unique Amazon Resource Names (ARNs) that represent
14136	// the virtual tapes you want to describe. If this parameter is not specified,
14137	// Tape gateway returns a description of all virtual tapes associated with the
14138	// specified gateway.
14139	TapeARNs []*string `type:"list"`
14140}
14141
14142// String returns the string representation
14143func (s DescribeTapesInput) String() string {
14144	return awsutil.Prettify(s)
14145}
14146
14147// GoString returns the string representation
14148func (s DescribeTapesInput) GoString() string {
14149	return s.String()
14150}
14151
14152// Validate inspects the fields of the type to determine if they are valid.
14153func (s *DescribeTapesInput) Validate() error {
14154	invalidParams := request.ErrInvalidParams{Context: "DescribeTapesInput"}
14155	if s.GatewayARN == nil {
14156		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14157	}
14158	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14159		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14160	}
14161	if s.Limit != nil && *s.Limit < 1 {
14162		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14163	}
14164	if s.Marker != nil && len(*s.Marker) < 1 {
14165		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14166	}
14167
14168	if invalidParams.Len() > 0 {
14169		return invalidParams
14170	}
14171	return nil
14172}
14173
14174// SetGatewayARN sets the GatewayARN field's value.
14175func (s *DescribeTapesInput) SetGatewayARN(v string) *DescribeTapesInput {
14176	s.GatewayARN = &v
14177	return s
14178}
14179
14180// SetLimit sets the Limit field's value.
14181func (s *DescribeTapesInput) SetLimit(v int64) *DescribeTapesInput {
14182	s.Limit = &v
14183	return s
14184}
14185
14186// SetMarker sets the Marker field's value.
14187func (s *DescribeTapesInput) SetMarker(v string) *DescribeTapesInput {
14188	s.Marker = &v
14189	return s
14190}
14191
14192// SetTapeARNs sets the TapeARNs field's value.
14193func (s *DescribeTapesInput) SetTapeARNs(v []*string) *DescribeTapesInput {
14194	s.TapeARNs = v
14195	return s
14196}
14197
14198// DescribeTapesOutput
14199type DescribeTapesOutput struct {
14200	_ struct{} `type:"structure"`
14201
14202	// An opaque string which can be used as part of a subsequent DescribeTapes
14203	// call to retrieve the next page of results.
14204	//
14205	// If a response does not contain a marker, then there are no more results to
14206	// be retrieved.
14207	Marker *string `min:"1" type:"string"`
14208
14209	// An array of virtual tape descriptions.
14210	Tapes []*Tape `type:"list"`
14211}
14212
14213// String returns the string representation
14214func (s DescribeTapesOutput) String() string {
14215	return awsutil.Prettify(s)
14216}
14217
14218// GoString returns the string representation
14219func (s DescribeTapesOutput) GoString() string {
14220	return s.String()
14221}
14222
14223// SetMarker sets the Marker field's value.
14224func (s *DescribeTapesOutput) SetMarker(v string) *DescribeTapesOutput {
14225	s.Marker = &v
14226	return s
14227}
14228
14229// SetTapes sets the Tapes field's value.
14230func (s *DescribeTapesOutput) SetTapes(v []*Tape) *DescribeTapesOutput {
14231	s.Tapes = v
14232	return s
14233}
14234
14235type DescribeUploadBufferInput struct {
14236	_ struct{} `type:"structure"`
14237
14238	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14239	// to return a list of gateways for your account and AWS Region.
14240	//
14241	// GatewayARN is a required field
14242	GatewayARN *string `min:"50" type:"string" required:"true"`
14243}
14244
14245// String returns the string representation
14246func (s DescribeUploadBufferInput) String() string {
14247	return awsutil.Prettify(s)
14248}
14249
14250// GoString returns the string representation
14251func (s DescribeUploadBufferInput) GoString() string {
14252	return s.String()
14253}
14254
14255// Validate inspects the fields of the type to determine if they are valid.
14256func (s *DescribeUploadBufferInput) Validate() error {
14257	invalidParams := request.ErrInvalidParams{Context: "DescribeUploadBufferInput"}
14258	if s.GatewayARN == nil {
14259		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14260	}
14261	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14262		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14263	}
14264
14265	if invalidParams.Len() > 0 {
14266		return invalidParams
14267	}
14268	return nil
14269}
14270
14271// SetGatewayARN sets the GatewayARN field's value.
14272func (s *DescribeUploadBufferInput) SetGatewayARN(v string) *DescribeUploadBufferInput {
14273	s.GatewayARN = &v
14274	return s
14275}
14276
14277type DescribeUploadBufferOutput struct {
14278	_ struct{} `type:"structure"`
14279
14280	// An array of the gateway's local disk IDs that are configured as working storage.
14281	// Each local disk ID is specified as a string (minimum length of 1 and maximum
14282	// length of 300). If no local disks are configured as working storage, then
14283	// the DiskIds array is empty.
14284	DiskIds []*string `type:"list"`
14285
14286	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14287	// to return a list of gateways for your account and AWS Region.
14288	GatewayARN *string `min:"50" type:"string"`
14289
14290	// The total number of bytes allocated in the gateway's as upload buffer.
14291	UploadBufferAllocatedInBytes *int64 `type:"long"`
14292
14293	// The total number of bytes being used in the gateway's upload buffer.
14294	UploadBufferUsedInBytes *int64 `type:"long"`
14295}
14296
14297// String returns the string representation
14298func (s DescribeUploadBufferOutput) String() string {
14299	return awsutil.Prettify(s)
14300}
14301
14302// GoString returns the string representation
14303func (s DescribeUploadBufferOutput) GoString() string {
14304	return s.String()
14305}
14306
14307// SetDiskIds sets the DiskIds field's value.
14308func (s *DescribeUploadBufferOutput) SetDiskIds(v []*string) *DescribeUploadBufferOutput {
14309	s.DiskIds = v
14310	return s
14311}
14312
14313// SetGatewayARN sets the GatewayARN field's value.
14314func (s *DescribeUploadBufferOutput) SetGatewayARN(v string) *DescribeUploadBufferOutput {
14315	s.GatewayARN = &v
14316	return s
14317}
14318
14319// SetUploadBufferAllocatedInBytes sets the UploadBufferAllocatedInBytes field's value.
14320func (s *DescribeUploadBufferOutput) SetUploadBufferAllocatedInBytes(v int64) *DescribeUploadBufferOutput {
14321	s.UploadBufferAllocatedInBytes = &v
14322	return s
14323}
14324
14325// SetUploadBufferUsedInBytes sets the UploadBufferUsedInBytes field's value.
14326func (s *DescribeUploadBufferOutput) SetUploadBufferUsedInBytes(v int64) *DescribeUploadBufferOutput {
14327	s.UploadBufferUsedInBytes = &v
14328	return s
14329}
14330
14331// DescribeVTLDevicesInput
14332type DescribeVTLDevicesInput struct {
14333	_ struct{} `type:"structure"`
14334
14335	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14336	// to return a list of gateways for your account and AWS Region.
14337	//
14338	// GatewayARN is a required field
14339	GatewayARN *string `min:"50" type:"string" required:"true"`
14340
14341	// Specifies that the number of VTL devices described be limited to the specified
14342	// number.
14343	Limit *int64 `min:"1" type:"integer"`
14344
14345	// An opaque string that indicates the position at which to begin describing
14346	// the VTL devices.
14347	Marker *string `min:"1" type:"string"`
14348
14349	// An array of strings, where each string represents the Amazon Resource Name
14350	// (ARN) of a VTL device.
14351	//
14352	// All of the specified VTL devices must be from the same gateway. If no VTL
14353	// devices are specified, the result will contain all devices on the specified
14354	// gateway.
14355	VTLDeviceARNs []*string `type:"list"`
14356}
14357
14358// String returns the string representation
14359func (s DescribeVTLDevicesInput) String() string {
14360	return awsutil.Prettify(s)
14361}
14362
14363// GoString returns the string representation
14364func (s DescribeVTLDevicesInput) GoString() string {
14365	return s.String()
14366}
14367
14368// Validate inspects the fields of the type to determine if they are valid.
14369func (s *DescribeVTLDevicesInput) Validate() error {
14370	invalidParams := request.ErrInvalidParams{Context: "DescribeVTLDevicesInput"}
14371	if s.GatewayARN == nil {
14372		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14373	}
14374	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14375		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14376	}
14377	if s.Limit != nil && *s.Limit < 1 {
14378		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14379	}
14380	if s.Marker != nil && len(*s.Marker) < 1 {
14381		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14382	}
14383
14384	if invalidParams.Len() > 0 {
14385		return invalidParams
14386	}
14387	return nil
14388}
14389
14390// SetGatewayARN sets the GatewayARN field's value.
14391func (s *DescribeVTLDevicesInput) SetGatewayARN(v string) *DescribeVTLDevicesInput {
14392	s.GatewayARN = &v
14393	return s
14394}
14395
14396// SetLimit sets the Limit field's value.
14397func (s *DescribeVTLDevicesInput) SetLimit(v int64) *DescribeVTLDevicesInput {
14398	s.Limit = &v
14399	return s
14400}
14401
14402// SetMarker sets the Marker field's value.
14403func (s *DescribeVTLDevicesInput) SetMarker(v string) *DescribeVTLDevicesInput {
14404	s.Marker = &v
14405	return s
14406}
14407
14408// SetVTLDeviceARNs sets the VTLDeviceARNs field's value.
14409func (s *DescribeVTLDevicesInput) SetVTLDeviceARNs(v []*string) *DescribeVTLDevicesInput {
14410	s.VTLDeviceARNs = v
14411	return s
14412}
14413
14414// DescribeVTLDevicesOutput
14415type DescribeVTLDevicesOutput struct {
14416	_ struct{} `type:"structure"`
14417
14418	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14419	// to return a list of gateways for your account and AWS Region.
14420	GatewayARN *string `min:"50" type:"string"`
14421
14422	// An opaque string that indicates the position at which the VTL devices that
14423	// were fetched for description ended. Use the marker in your next request to
14424	// fetch the next set of VTL devices in the list. If there are no more VTL devices
14425	// to describe, this field does not appear in the response.
14426	Marker *string `min:"1" type:"string"`
14427
14428	// An array of VTL device objects composed of the Amazon Resource Name (ARN)
14429	// of the VTL devices.
14430	VTLDevices []*VTLDevice `type:"list"`
14431}
14432
14433// String returns the string representation
14434func (s DescribeVTLDevicesOutput) String() string {
14435	return awsutil.Prettify(s)
14436}
14437
14438// GoString returns the string representation
14439func (s DescribeVTLDevicesOutput) GoString() string {
14440	return s.String()
14441}
14442
14443// SetGatewayARN sets the GatewayARN field's value.
14444func (s *DescribeVTLDevicesOutput) SetGatewayARN(v string) *DescribeVTLDevicesOutput {
14445	s.GatewayARN = &v
14446	return s
14447}
14448
14449// SetMarker sets the Marker field's value.
14450func (s *DescribeVTLDevicesOutput) SetMarker(v string) *DescribeVTLDevicesOutput {
14451	s.Marker = &v
14452	return s
14453}
14454
14455// SetVTLDevices sets the VTLDevices field's value.
14456func (s *DescribeVTLDevicesOutput) SetVTLDevices(v []*VTLDevice) *DescribeVTLDevicesOutput {
14457	s.VTLDevices = v
14458	return s
14459}
14460
14461// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
14462type DescribeWorkingStorageInput struct {
14463	_ struct{} `type:"structure"`
14464
14465	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14466	// to return a list of gateways for your account and AWS Region.
14467	//
14468	// GatewayARN is a required field
14469	GatewayARN *string `min:"50" type:"string" required:"true"`
14470}
14471
14472// String returns the string representation
14473func (s DescribeWorkingStorageInput) String() string {
14474	return awsutil.Prettify(s)
14475}
14476
14477// GoString returns the string representation
14478func (s DescribeWorkingStorageInput) GoString() string {
14479	return s.String()
14480}
14481
14482// Validate inspects the fields of the type to determine if they are valid.
14483func (s *DescribeWorkingStorageInput) Validate() error {
14484	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkingStorageInput"}
14485	if s.GatewayARN == nil {
14486		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14487	}
14488	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14489		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14490	}
14491
14492	if invalidParams.Len() > 0 {
14493		return invalidParams
14494	}
14495	return nil
14496}
14497
14498// SetGatewayARN sets the GatewayARN field's value.
14499func (s *DescribeWorkingStorageInput) SetGatewayARN(v string) *DescribeWorkingStorageInput {
14500	s.GatewayARN = &v
14501	return s
14502}
14503
14504// A JSON object containing the following fields:
14505type DescribeWorkingStorageOutput struct {
14506	_ struct{} `type:"structure"`
14507
14508	// An array of the gateway's local disk IDs that are configured as working storage.
14509	// Each local disk ID is specified as a string (minimum length of 1 and maximum
14510	// length of 300). If no local disks are configured as working storage, then
14511	// the DiskIds array is empty.
14512	DiskIds []*string `type:"list"`
14513
14514	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14515	// to return a list of gateways for your account and AWS Region.
14516	GatewayARN *string `min:"50" type:"string"`
14517
14518	// The total working storage in bytes allocated for the gateway. If no working
14519	// storage is configured for the gateway, this field returns 0.
14520	WorkingStorageAllocatedInBytes *int64 `type:"long"`
14521
14522	// The total working storage in bytes in use by the gateway. If no working storage
14523	// is configured for the gateway, this field returns 0.
14524	WorkingStorageUsedInBytes *int64 `type:"long"`
14525}
14526
14527// String returns the string representation
14528func (s DescribeWorkingStorageOutput) String() string {
14529	return awsutil.Prettify(s)
14530}
14531
14532// GoString returns the string representation
14533func (s DescribeWorkingStorageOutput) GoString() string {
14534	return s.String()
14535}
14536
14537// SetDiskIds sets the DiskIds field's value.
14538func (s *DescribeWorkingStorageOutput) SetDiskIds(v []*string) *DescribeWorkingStorageOutput {
14539	s.DiskIds = v
14540	return s
14541}
14542
14543// SetGatewayARN sets the GatewayARN field's value.
14544func (s *DescribeWorkingStorageOutput) SetGatewayARN(v string) *DescribeWorkingStorageOutput {
14545	s.GatewayARN = &v
14546	return s
14547}
14548
14549// SetWorkingStorageAllocatedInBytes sets the WorkingStorageAllocatedInBytes field's value.
14550func (s *DescribeWorkingStorageOutput) SetWorkingStorageAllocatedInBytes(v int64) *DescribeWorkingStorageOutput {
14551	s.WorkingStorageAllocatedInBytes = &v
14552	return s
14553}
14554
14555// SetWorkingStorageUsedInBytes sets the WorkingStorageUsedInBytes field's value.
14556func (s *DescribeWorkingStorageOutput) SetWorkingStorageUsedInBytes(v int64) *DescribeWorkingStorageOutput {
14557	s.WorkingStorageUsedInBytes = &v
14558	return s
14559}
14560
14561// AttachVolumeInput
14562type DetachVolumeInput struct {
14563	_ struct{} `type:"structure"`
14564
14565	// Set to true to forcibly remove the iSCSI connection of the target volume
14566	// and detach the volume. The default is false. If this value is set to false,
14567	// you must manually disconnect the iSCSI connection from the target volume.
14568	//
14569	// Valid Values: true | false
14570	ForceDetach *bool `type:"boolean"`
14571
14572	// The Amazon Resource Name (ARN) of the volume to detach from the gateway.
14573	//
14574	// VolumeARN is a required field
14575	VolumeARN *string `min:"50" type:"string" required:"true"`
14576}
14577
14578// String returns the string representation
14579func (s DetachVolumeInput) String() string {
14580	return awsutil.Prettify(s)
14581}
14582
14583// GoString returns the string representation
14584func (s DetachVolumeInput) GoString() string {
14585	return s.String()
14586}
14587
14588// Validate inspects the fields of the type to determine if they are valid.
14589func (s *DetachVolumeInput) Validate() error {
14590	invalidParams := request.ErrInvalidParams{Context: "DetachVolumeInput"}
14591	if s.VolumeARN == nil {
14592		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
14593	}
14594	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
14595		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
14596	}
14597
14598	if invalidParams.Len() > 0 {
14599		return invalidParams
14600	}
14601	return nil
14602}
14603
14604// SetForceDetach sets the ForceDetach field's value.
14605func (s *DetachVolumeInput) SetForceDetach(v bool) *DetachVolumeInput {
14606	s.ForceDetach = &v
14607	return s
14608}
14609
14610// SetVolumeARN sets the VolumeARN field's value.
14611func (s *DetachVolumeInput) SetVolumeARN(v string) *DetachVolumeInput {
14612	s.VolumeARN = &v
14613	return s
14614}
14615
14616// AttachVolumeOutput
14617type DetachVolumeOutput struct {
14618	_ struct{} `type:"structure"`
14619
14620	// The Amazon Resource Name (ARN) of the volume that was detached.
14621	VolumeARN *string `min:"50" type:"string"`
14622}
14623
14624// String returns the string representation
14625func (s DetachVolumeOutput) String() string {
14626	return awsutil.Prettify(s)
14627}
14628
14629// GoString returns the string representation
14630func (s DetachVolumeOutput) GoString() string {
14631	return s.String()
14632}
14633
14634// SetVolumeARN sets the VolumeARN field's value.
14635func (s *DetachVolumeOutput) SetVolumeARN(v string) *DetachVolumeOutput {
14636	s.VolumeARN = &v
14637	return s
14638}
14639
14640// Lists iSCSI information about a VTL device.
14641type DeviceiSCSIAttributes struct {
14642	_ struct{} `type:"structure"`
14643
14644	// Indicates whether mutual CHAP is enabled for the iSCSI target.
14645	ChapEnabled *bool `type:"boolean"`
14646
14647	// The network interface identifier of the VTL device.
14648	NetworkInterfaceId *string `type:"string"`
14649
14650	// The port used to communicate with iSCSI VTL device targets.
14651	NetworkInterfacePort *int64 `type:"integer"`
14652
14653	// Specifies the unique Amazon Resource Name (ARN) that encodes the iSCSI qualified
14654	// name(iqn) of a tape drive or media changer target.
14655	TargetARN *string `min:"50" type:"string"`
14656}
14657
14658// String returns the string representation
14659func (s DeviceiSCSIAttributes) String() string {
14660	return awsutil.Prettify(s)
14661}
14662
14663// GoString returns the string representation
14664func (s DeviceiSCSIAttributes) GoString() string {
14665	return s.String()
14666}
14667
14668// SetChapEnabled sets the ChapEnabled field's value.
14669func (s *DeviceiSCSIAttributes) SetChapEnabled(v bool) *DeviceiSCSIAttributes {
14670	s.ChapEnabled = &v
14671	return s
14672}
14673
14674// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
14675func (s *DeviceiSCSIAttributes) SetNetworkInterfaceId(v string) *DeviceiSCSIAttributes {
14676	s.NetworkInterfaceId = &v
14677	return s
14678}
14679
14680// SetNetworkInterfacePort sets the NetworkInterfacePort field's value.
14681func (s *DeviceiSCSIAttributes) SetNetworkInterfacePort(v int64) *DeviceiSCSIAttributes {
14682	s.NetworkInterfacePort = &v
14683	return s
14684}
14685
14686// SetTargetARN sets the TargetARN field's value.
14687func (s *DeviceiSCSIAttributes) SetTargetARN(v string) *DeviceiSCSIAttributes {
14688	s.TargetARN = &v
14689	return s
14690}
14691
14692// DisableGatewayInput
14693type DisableGatewayInput struct {
14694	_ struct{} `type:"structure"`
14695
14696	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14697	// to return a list of gateways for your account and AWS Region.
14698	//
14699	// GatewayARN is a required field
14700	GatewayARN *string `min:"50" type:"string" required:"true"`
14701}
14702
14703// String returns the string representation
14704func (s DisableGatewayInput) String() string {
14705	return awsutil.Prettify(s)
14706}
14707
14708// GoString returns the string representation
14709func (s DisableGatewayInput) GoString() string {
14710	return s.String()
14711}
14712
14713// Validate inspects the fields of the type to determine if they are valid.
14714func (s *DisableGatewayInput) Validate() error {
14715	invalidParams := request.ErrInvalidParams{Context: "DisableGatewayInput"}
14716	if s.GatewayARN == nil {
14717		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14718	}
14719	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14720		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14721	}
14722
14723	if invalidParams.Len() > 0 {
14724		return invalidParams
14725	}
14726	return nil
14727}
14728
14729// SetGatewayARN sets the GatewayARN field's value.
14730func (s *DisableGatewayInput) SetGatewayARN(v string) *DisableGatewayInput {
14731	s.GatewayARN = &v
14732	return s
14733}
14734
14735// DisableGatewayOutput
14736type DisableGatewayOutput struct {
14737	_ struct{} `type:"structure"`
14738
14739	// The unique Amazon Resource Name (ARN) of the disabled gateway.
14740	GatewayARN *string `min:"50" type:"string"`
14741}
14742
14743// String returns the string representation
14744func (s DisableGatewayOutput) String() string {
14745	return awsutil.Prettify(s)
14746}
14747
14748// GoString returns the string representation
14749func (s DisableGatewayOutput) GoString() string {
14750	return s.String()
14751}
14752
14753// SetGatewayARN sets the GatewayARN field's value.
14754func (s *DisableGatewayOutput) SetGatewayARN(v string) *DisableGatewayOutput {
14755	s.GatewayARN = &v
14756	return s
14757}
14758
14759// Represents a gateway's local disk.
14760type Disk struct {
14761	_ struct{} `type:"structure"`
14762
14763	// The iSCSI qualified name (IQN) that is defined for a disk. This field is
14764	// not included in the response if the local disk is not defined as an iSCSI
14765	// target. The format of this field is targetIqn::LUNNumber::region-volumeId.
14766	DiskAllocationResource *string `type:"string"`
14767
14768	// One of the DiskAllocationType enumeration values that identifies how a local
14769	// disk is used.
14770	//
14771	// Valid Values: UPLOAD_BUFFER | CACHE_STORAGE
14772	DiskAllocationType *string `min:"3" type:"string"`
14773
14774	// A list of values that represents attributes of a local disk.
14775	DiskAttributeList []*string `type:"list"`
14776
14777	// The unique device ID or other distinguishing data that identifies a local
14778	// disk.
14779	DiskId *string `min:"1" type:"string"`
14780
14781	// The device node of a local disk as assigned by the virtualization environment.
14782	DiskNode *string `type:"string"`
14783
14784	// The path of a local disk in the gateway virtual machine (VM).
14785	DiskPath *string `type:"string"`
14786
14787	// The local disk size in bytes.
14788	DiskSizeInBytes *int64 `type:"long"`
14789
14790	// A value that represents the status of a local disk.
14791	DiskStatus *string `type:"string"`
14792}
14793
14794// String returns the string representation
14795func (s Disk) String() string {
14796	return awsutil.Prettify(s)
14797}
14798
14799// GoString returns the string representation
14800func (s Disk) GoString() string {
14801	return s.String()
14802}
14803
14804// SetDiskAllocationResource sets the DiskAllocationResource field's value.
14805func (s *Disk) SetDiskAllocationResource(v string) *Disk {
14806	s.DiskAllocationResource = &v
14807	return s
14808}
14809
14810// SetDiskAllocationType sets the DiskAllocationType field's value.
14811func (s *Disk) SetDiskAllocationType(v string) *Disk {
14812	s.DiskAllocationType = &v
14813	return s
14814}
14815
14816// SetDiskAttributeList sets the DiskAttributeList field's value.
14817func (s *Disk) SetDiskAttributeList(v []*string) *Disk {
14818	s.DiskAttributeList = v
14819	return s
14820}
14821
14822// SetDiskId sets the DiskId field's value.
14823func (s *Disk) SetDiskId(v string) *Disk {
14824	s.DiskId = &v
14825	return s
14826}
14827
14828// SetDiskNode sets the DiskNode field's value.
14829func (s *Disk) SetDiskNode(v string) *Disk {
14830	s.DiskNode = &v
14831	return s
14832}
14833
14834// SetDiskPath sets the DiskPath field's value.
14835func (s *Disk) SetDiskPath(v string) *Disk {
14836	s.DiskPath = &v
14837	return s
14838}
14839
14840// SetDiskSizeInBytes sets the DiskSizeInBytes field's value.
14841func (s *Disk) SetDiskSizeInBytes(v int64) *Disk {
14842	s.DiskSizeInBytes = &v
14843	return s
14844}
14845
14846// SetDiskStatus sets the DiskStatus field's value.
14847func (s *Disk) SetDiskStatus(v string) *Disk {
14848	s.DiskStatus = &v
14849	return s
14850}
14851
14852// Provides additional information about an error that was returned by the service.
14853// See the errorCode and errorDetails members for more information about the
14854// error.
14855type Error struct {
14856	_ struct{} `type:"structure"`
14857
14858	// Additional information about the error.
14859	ErrorCode *string `locationName:"errorCode" type:"string" enum:"ErrorCode"`
14860
14861	// Human-readable text that provides detail about the error that occurred.
14862	ErrorDetails map[string]*string `locationName:"errorDetails" type:"map"`
14863}
14864
14865// String returns the string representation
14866func (s Error) String() string {
14867	return awsutil.Prettify(s)
14868}
14869
14870// GoString returns the string representation
14871func (s Error) GoString() string {
14872	return s.String()
14873}
14874
14875// SetErrorCode sets the ErrorCode field's value.
14876func (s *Error) SetErrorCode(v string) *Error {
14877	s.ErrorCode = &v
14878	return s
14879}
14880
14881// SetErrorDetails sets the ErrorDetails field's value.
14882func (s *Error) SetErrorDetails(v map[string]*string) *Error {
14883	s.ErrorDetails = v
14884	return s
14885}
14886
14887// Describes a file share.
14888type FileShareInfo struct {
14889	_ struct{} `type:"structure"`
14890
14891	// The Amazon Resource Name (ARN) of the file share.
14892	FileShareARN *string `min:"50" type:"string"`
14893
14894	// The ID of the file share.
14895	FileShareId *string `min:"12" type:"string"`
14896
14897	// The status of the file share.
14898	//
14899	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
14900	FileShareStatus *string `min:"3" type:"string"`
14901
14902	// The type of the file share.
14903	FileShareType *string `type:"string" enum:"FileShareType"`
14904
14905	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14906	// to return a list of gateways for your account and AWS Region.
14907	GatewayARN *string `min:"50" type:"string"`
14908}
14909
14910// String returns the string representation
14911func (s FileShareInfo) String() string {
14912	return awsutil.Prettify(s)
14913}
14914
14915// GoString returns the string representation
14916func (s FileShareInfo) GoString() string {
14917	return s.String()
14918}
14919
14920// SetFileShareARN sets the FileShareARN field's value.
14921func (s *FileShareInfo) SetFileShareARN(v string) *FileShareInfo {
14922	s.FileShareARN = &v
14923	return s
14924}
14925
14926// SetFileShareId sets the FileShareId field's value.
14927func (s *FileShareInfo) SetFileShareId(v string) *FileShareInfo {
14928	s.FileShareId = &v
14929	return s
14930}
14931
14932// SetFileShareStatus sets the FileShareStatus field's value.
14933func (s *FileShareInfo) SetFileShareStatus(v string) *FileShareInfo {
14934	s.FileShareStatus = &v
14935	return s
14936}
14937
14938// SetFileShareType sets the FileShareType field's value.
14939func (s *FileShareInfo) SetFileShareType(v string) *FileShareInfo {
14940	s.FileShareType = &v
14941	return s
14942}
14943
14944// SetGatewayARN sets the GatewayARN field's value.
14945func (s *FileShareInfo) SetGatewayARN(v string) *FileShareInfo {
14946	s.GatewayARN = &v
14947	return s
14948}
14949
14950// Describes a gateway object.
14951type GatewayInfo struct {
14952	_ struct{} `type:"structure"`
14953
14954	// The ID of the Amazon EC2 instance that was used to launch the gateway.
14955	Ec2InstanceId *string `type:"string"`
14956
14957	// The AWS Region where the Amazon EC2 instance is located.
14958	Ec2InstanceRegion *string `type:"string"`
14959
14960	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14961	// to return a list of gateways for your account and AWS Region.
14962	GatewayARN *string `min:"50" type:"string"`
14963
14964	// The unique identifier assigned to your gateway during activation. This ID
14965	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
14966	// input for other operations.
14967	GatewayId *string `min:"12" type:"string"`
14968
14969	// The name of the gateway.
14970	GatewayName *string `type:"string"`
14971
14972	// The state of the gateway.
14973	//
14974	// Valid Values: DISABLED | ACTIVE
14975	GatewayOperationalState *string `min:"2" type:"string"`
14976
14977	// The type of the gateway.
14978	GatewayType *string `min:"2" type:"string"`
14979}
14980
14981// String returns the string representation
14982func (s GatewayInfo) String() string {
14983	return awsutil.Prettify(s)
14984}
14985
14986// GoString returns the string representation
14987func (s GatewayInfo) GoString() string {
14988	return s.String()
14989}
14990
14991// SetEc2InstanceId sets the Ec2InstanceId field's value.
14992func (s *GatewayInfo) SetEc2InstanceId(v string) *GatewayInfo {
14993	s.Ec2InstanceId = &v
14994	return s
14995}
14996
14997// SetEc2InstanceRegion sets the Ec2InstanceRegion field's value.
14998func (s *GatewayInfo) SetEc2InstanceRegion(v string) *GatewayInfo {
14999	s.Ec2InstanceRegion = &v
15000	return s
15001}
15002
15003// SetGatewayARN sets the GatewayARN field's value.
15004func (s *GatewayInfo) SetGatewayARN(v string) *GatewayInfo {
15005	s.GatewayARN = &v
15006	return s
15007}
15008
15009// SetGatewayId sets the GatewayId field's value.
15010func (s *GatewayInfo) SetGatewayId(v string) *GatewayInfo {
15011	s.GatewayId = &v
15012	return s
15013}
15014
15015// SetGatewayName sets the GatewayName field's value.
15016func (s *GatewayInfo) SetGatewayName(v string) *GatewayInfo {
15017	s.GatewayName = &v
15018	return s
15019}
15020
15021// SetGatewayOperationalState sets the GatewayOperationalState field's value.
15022func (s *GatewayInfo) SetGatewayOperationalState(v string) *GatewayInfo {
15023	s.GatewayOperationalState = &v
15024	return s
15025}
15026
15027// SetGatewayType sets the GatewayType field's value.
15028func (s *GatewayInfo) SetGatewayType(v string) *GatewayInfo {
15029	s.GatewayType = &v
15030	return s
15031}
15032
15033// An internal server error has occurred during the request. For more information,
15034// see the error and message fields.
15035type InternalServerError struct {
15036	_            struct{}                  `type:"structure"`
15037	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15038
15039	// A StorageGatewayError that provides more information about the cause of the
15040	// error.
15041	Error_ *Error `locationName:"error" type:"structure"`
15042
15043	// A human-readable message describing the error that occurred.
15044	Message_ *string `locationName:"message" type:"string"`
15045}
15046
15047// String returns the string representation
15048func (s InternalServerError) String() string {
15049	return awsutil.Prettify(s)
15050}
15051
15052// GoString returns the string representation
15053func (s InternalServerError) GoString() string {
15054	return s.String()
15055}
15056
15057func newErrorInternalServerError(v protocol.ResponseMetadata) error {
15058	return &InternalServerError{
15059		RespMetadata: v,
15060	}
15061}
15062
15063// Code returns the exception type name.
15064func (s *InternalServerError) Code() string {
15065	return "InternalServerError"
15066}
15067
15068// Message returns the exception's message.
15069func (s *InternalServerError) Message() string {
15070	if s.Message_ != nil {
15071		return *s.Message_
15072	}
15073	return ""
15074}
15075
15076// OrigErr always returns nil, satisfies awserr.Error interface.
15077func (s *InternalServerError) OrigErr() error {
15078	return nil
15079}
15080
15081func (s *InternalServerError) Error() string {
15082	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
15083}
15084
15085// Status code returns the HTTP status code for the request's response error.
15086func (s *InternalServerError) StatusCode() int {
15087	return s.RespMetadata.StatusCode
15088}
15089
15090// RequestID returns the service's response RequestID for request.
15091func (s *InternalServerError) RequestID() string {
15092	return s.RespMetadata.RequestID
15093}
15094
15095// An exception occurred because an invalid gateway request was issued to the
15096// service. For more information, see the error and message fields.
15097type InvalidGatewayRequestException struct {
15098	_            struct{}                  `type:"structure"`
15099	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15100
15101	// A StorageGatewayError that provides more detail about the cause of the error.
15102	Error_ *Error `locationName:"error" type:"structure"`
15103
15104	// A human-readable message describing the error that occurred.
15105	Message_ *string `locationName:"message" type:"string"`
15106}
15107
15108// String returns the string representation
15109func (s InvalidGatewayRequestException) String() string {
15110	return awsutil.Prettify(s)
15111}
15112
15113// GoString returns the string representation
15114func (s InvalidGatewayRequestException) GoString() string {
15115	return s.String()
15116}
15117
15118func newErrorInvalidGatewayRequestException(v protocol.ResponseMetadata) error {
15119	return &InvalidGatewayRequestException{
15120		RespMetadata: v,
15121	}
15122}
15123
15124// Code returns the exception type name.
15125func (s *InvalidGatewayRequestException) Code() string {
15126	return "InvalidGatewayRequestException"
15127}
15128
15129// Message returns the exception's message.
15130func (s *InvalidGatewayRequestException) Message() string {
15131	if s.Message_ != nil {
15132		return *s.Message_
15133	}
15134	return ""
15135}
15136
15137// OrigErr always returns nil, satisfies awserr.Error interface.
15138func (s *InvalidGatewayRequestException) OrigErr() error {
15139	return nil
15140}
15141
15142func (s *InvalidGatewayRequestException) Error() string {
15143	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
15144}
15145
15146// Status code returns the HTTP status code for the request's response error.
15147func (s *InvalidGatewayRequestException) StatusCode() int {
15148	return s.RespMetadata.StatusCode
15149}
15150
15151// RequestID returns the service's response RequestID for request.
15152func (s *InvalidGatewayRequestException) RequestID() string {
15153	return s.RespMetadata.RequestID
15154}
15155
15156// JoinDomainInput
15157type JoinDomainInput struct {
15158	_ struct{} `type:"structure"`
15159
15160	// List of IPv4 addresses, NetBIOS names, or host names of your domain server.
15161	// If you need to specify the port number include it after the colon (“:”).
15162	// For example, mydc.mydomain.com:389.
15163	DomainControllers []*string `type:"list"`
15164
15165	// The name of the domain that you want the gateway to join.
15166	//
15167	// DomainName is a required field
15168	DomainName *string `min:"1" type:"string" required:"true"`
15169
15170	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15171	// to return a list of gateways for your account and AWS Region.
15172	//
15173	// GatewayARN is a required field
15174	GatewayARN *string `min:"50" type:"string" required:"true"`
15175
15176	// The organizational unit (OU) is a container in an Active Directory that can
15177	// hold users, groups, computers, and other OUs and this parameter specifies
15178	// the OU that the gateway will join within the AD domain.
15179	OrganizationalUnit *string `min:"1" type:"string"`
15180
15181	// Sets the password of the user who has permission to add the gateway to the
15182	// Active Directory domain.
15183	//
15184	// Password is a required field
15185	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
15186
15187	// Specifies the time in seconds, in which the JoinDomain operation must complete.
15188	// The default is 20 seconds.
15189	TimeoutInSeconds *int64 `type:"integer"`
15190
15191	// Sets the user name of user who has permission to add the gateway to the Active
15192	// Directory domain. The domain user account should be enabled to join computers
15193	// to the domain. For example, you can use the domain administrator account
15194	// or an account with delegated permissions to join computers to the domain.
15195	//
15196	// UserName is a required field
15197	UserName *string `min:"1" type:"string" required:"true"`
15198}
15199
15200// String returns the string representation
15201func (s JoinDomainInput) String() string {
15202	return awsutil.Prettify(s)
15203}
15204
15205// GoString returns the string representation
15206func (s JoinDomainInput) GoString() string {
15207	return s.String()
15208}
15209
15210// Validate inspects the fields of the type to determine if they are valid.
15211func (s *JoinDomainInput) Validate() error {
15212	invalidParams := request.ErrInvalidParams{Context: "JoinDomainInput"}
15213	if s.DomainName == nil {
15214		invalidParams.Add(request.NewErrParamRequired("DomainName"))
15215	}
15216	if s.DomainName != nil && len(*s.DomainName) < 1 {
15217		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
15218	}
15219	if s.GatewayARN == nil {
15220		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15221	}
15222	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15223		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15224	}
15225	if s.OrganizationalUnit != nil && len(*s.OrganizationalUnit) < 1 {
15226		invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnit", 1))
15227	}
15228	if s.Password == nil {
15229		invalidParams.Add(request.NewErrParamRequired("Password"))
15230	}
15231	if s.Password != nil && len(*s.Password) < 1 {
15232		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
15233	}
15234	if s.UserName == nil {
15235		invalidParams.Add(request.NewErrParamRequired("UserName"))
15236	}
15237	if s.UserName != nil && len(*s.UserName) < 1 {
15238		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
15239	}
15240
15241	if invalidParams.Len() > 0 {
15242		return invalidParams
15243	}
15244	return nil
15245}
15246
15247// SetDomainControllers sets the DomainControllers field's value.
15248func (s *JoinDomainInput) SetDomainControllers(v []*string) *JoinDomainInput {
15249	s.DomainControllers = v
15250	return s
15251}
15252
15253// SetDomainName sets the DomainName field's value.
15254func (s *JoinDomainInput) SetDomainName(v string) *JoinDomainInput {
15255	s.DomainName = &v
15256	return s
15257}
15258
15259// SetGatewayARN sets the GatewayARN field's value.
15260func (s *JoinDomainInput) SetGatewayARN(v string) *JoinDomainInput {
15261	s.GatewayARN = &v
15262	return s
15263}
15264
15265// SetOrganizationalUnit sets the OrganizationalUnit field's value.
15266func (s *JoinDomainInput) SetOrganizationalUnit(v string) *JoinDomainInput {
15267	s.OrganizationalUnit = &v
15268	return s
15269}
15270
15271// SetPassword sets the Password field's value.
15272func (s *JoinDomainInput) SetPassword(v string) *JoinDomainInput {
15273	s.Password = &v
15274	return s
15275}
15276
15277// SetTimeoutInSeconds sets the TimeoutInSeconds field's value.
15278func (s *JoinDomainInput) SetTimeoutInSeconds(v int64) *JoinDomainInput {
15279	s.TimeoutInSeconds = &v
15280	return s
15281}
15282
15283// SetUserName sets the UserName field's value.
15284func (s *JoinDomainInput) SetUserName(v string) *JoinDomainInput {
15285	s.UserName = &v
15286	return s
15287}
15288
15289// JoinDomainOutput
15290type JoinDomainOutput struct {
15291	_ struct{} `type:"structure"`
15292
15293	// Indicates the status of the gateway as a member of the Active Directory domain.
15294	//
15295	//    * ACCESS_DENIED: Indicates that the JoinDomain operation failed due to
15296	//    an authentication error.
15297	//
15298	//    * DETACHED: Indicates that gateway is not joined to a domain.
15299	//
15300	//    * JOINED: Indicates that the gateway has successfully joined a domain.
15301	//
15302	//    * JOINING: Indicates that a JoinDomain operation is in progress.
15303	//
15304	//    * NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network
15305	//    or connectivity error.
15306	//
15307	//    * TIMEOUT: Indicates that the JoinDomain operation failed because the
15308	//    operation didn't complete within the allotted time.
15309	//
15310	//    * UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to
15311	//    another type of error.
15312	ActiveDirectoryStatus *string `type:"string" enum:"ActiveDirectoryStatus"`
15313
15314	// The unique Amazon Resource Name (ARN) of the gateway that joined the domain.
15315	GatewayARN *string `min:"50" type:"string"`
15316}
15317
15318// String returns the string representation
15319func (s JoinDomainOutput) String() string {
15320	return awsutil.Prettify(s)
15321}
15322
15323// GoString returns the string representation
15324func (s JoinDomainOutput) GoString() string {
15325	return s.String()
15326}
15327
15328// SetActiveDirectoryStatus sets the ActiveDirectoryStatus field's value.
15329func (s *JoinDomainOutput) SetActiveDirectoryStatus(v string) *JoinDomainOutput {
15330	s.ActiveDirectoryStatus = &v
15331	return s
15332}
15333
15334// SetGatewayARN sets the GatewayARN field's value.
15335func (s *JoinDomainOutput) SetGatewayARN(v string) *JoinDomainOutput {
15336	s.GatewayARN = &v
15337	return s
15338}
15339
15340type ListAutomaticTapeCreationPoliciesInput struct {
15341	_ struct{} `type:"structure"`
15342
15343	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15344	// to return a list of gateways for your account and AWS Region.
15345	GatewayARN *string `min:"50" type:"string"`
15346}
15347
15348// String returns the string representation
15349func (s ListAutomaticTapeCreationPoliciesInput) String() string {
15350	return awsutil.Prettify(s)
15351}
15352
15353// GoString returns the string representation
15354func (s ListAutomaticTapeCreationPoliciesInput) GoString() string {
15355	return s.String()
15356}
15357
15358// Validate inspects the fields of the type to determine if they are valid.
15359func (s *ListAutomaticTapeCreationPoliciesInput) Validate() error {
15360	invalidParams := request.ErrInvalidParams{Context: "ListAutomaticTapeCreationPoliciesInput"}
15361	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15362		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15363	}
15364
15365	if invalidParams.Len() > 0 {
15366		return invalidParams
15367	}
15368	return nil
15369}
15370
15371// SetGatewayARN sets the GatewayARN field's value.
15372func (s *ListAutomaticTapeCreationPoliciesInput) SetGatewayARN(v string) *ListAutomaticTapeCreationPoliciesInput {
15373	s.GatewayARN = &v
15374	return s
15375}
15376
15377type ListAutomaticTapeCreationPoliciesOutput struct {
15378	_ struct{} `type:"structure"`
15379
15380	// Gets a listing of information about the gateway's automatic tape creation
15381	// policies, including the automatic tape creation rules and the gateway that
15382	// is using the policies.
15383	AutomaticTapeCreationPolicyInfos []*AutomaticTapeCreationPolicyInfo `type:"list"`
15384}
15385
15386// String returns the string representation
15387func (s ListAutomaticTapeCreationPoliciesOutput) String() string {
15388	return awsutil.Prettify(s)
15389}
15390
15391// GoString returns the string representation
15392func (s ListAutomaticTapeCreationPoliciesOutput) GoString() string {
15393	return s.String()
15394}
15395
15396// SetAutomaticTapeCreationPolicyInfos sets the AutomaticTapeCreationPolicyInfos field's value.
15397func (s *ListAutomaticTapeCreationPoliciesOutput) SetAutomaticTapeCreationPolicyInfos(v []*AutomaticTapeCreationPolicyInfo) *ListAutomaticTapeCreationPoliciesOutput {
15398	s.AutomaticTapeCreationPolicyInfos = v
15399	return s
15400}
15401
15402// ListFileShareInput
15403type ListFileSharesInput struct {
15404	_ struct{} `type:"structure"`
15405
15406	// The Amazon Resource Name (ARN) of the gateway whose file shares you want
15407	// to list. If this field is not present, all file shares under your account
15408	// are listed.
15409	GatewayARN *string `min:"50" type:"string"`
15410
15411	// The maximum number of file shares to return in the response. The value must
15412	// be an integer with a value greater than zero. Optional.
15413	Limit *int64 `min:"1" type:"integer"`
15414
15415	// Opaque pagination token returned from a previous ListFileShares operation.
15416	// If present, Marker specifies where to continue the list from after a previous
15417	// call to ListFileShares. Optional.
15418	Marker *string `min:"1" type:"string"`
15419}
15420
15421// String returns the string representation
15422func (s ListFileSharesInput) String() string {
15423	return awsutil.Prettify(s)
15424}
15425
15426// GoString returns the string representation
15427func (s ListFileSharesInput) GoString() string {
15428	return s.String()
15429}
15430
15431// Validate inspects the fields of the type to determine if they are valid.
15432func (s *ListFileSharesInput) Validate() error {
15433	invalidParams := request.ErrInvalidParams{Context: "ListFileSharesInput"}
15434	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15435		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15436	}
15437	if s.Limit != nil && *s.Limit < 1 {
15438		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
15439	}
15440	if s.Marker != nil && len(*s.Marker) < 1 {
15441		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
15442	}
15443
15444	if invalidParams.Len() > 0 {
15445		return invalidParams
15446	}
15447	return nil
15448}
15449
15450// SetGatewayARN sets the GatewayARN field's value.
15451func (s *ListFileSharesInput) SetGatewayARN(v string) *ListFileSharesInput {
15452	s.GatewayARN = &v
15453	return s
15454}
15455
15456// SetLimit sets the Limit field's value.
15457func (s *ListFileSharesInput) SetLimit(v int64) *ListFileSharesInput {
15458	s.Limit = &v
15459	return s
15460}
15461
15462// SetMarker sets the Marker field's value.
15463func (s *ListFileSharesInput) SetMarker(v string) *ListFileSharesInput {
15464	s.Marker = &v
15465	return s
15466}
15467
15468// ListFileShareOutput
15469type ListFileSharesOutput struct {
15470	_ struct{} `type:"structure"`
15471
15472	// An array of information about the file gateway's file shares.
15473	FileShareInfoList []*FileShareInfo `type:"list"`
15474
15475	// If the request includes Marker, the response returns that value in this field.
15476	Marker *string `min:"1" type:"string"`
15477
15478	// If a value is present, there are more file shares to return. In a subsequent
15479	// request, use NextMarker as the value for Marker to retrieve the next set
15480	// of file shares.
15481	NextMarker *string `min:"1" type:"string"`
15482}
15483
15484// String returns the string representation
15485func (s ListFileSharesOutput) String() string {
15486	return awsutil.Prettify(s)
15487}
15488
15489// GoString returns the string representation
15490func (s ListFileSharesOutput) GoString() string {
15491	return s.String()
15492}
15493
15494// SetFileShareInfoList sets the FileShareInfoList field's value.
15495func (s *ListFileSharesOutput) SetFileShareInfoList(v []*FileShareInfo) *ListFileSharesOutput {
15496	s.FileShareInfoList = v
15497	return s
15498}
15499
15500// SetMarker sets the Marker field's value.
15501func (s *ListFileSharesOutput) SetMarker(v string) *ListFileSharesOutput {
15502	s.Marker = &v
15503	return s
15504}
15505
15506// SetNextMarker sets the NextMarker field's value.
15507func (s *ListFileSharesOutput) SetNextMarker(v string) *ListFileSharesOutput {
15508	s.NextMarker = &v
15509	return s
15510}
15511
15512// A JSON object containing zero or more of the following fields:
15513//
15514//    * ListGatewaysInput$Limit
15515//
15516//    * ListGatewaysInput$Marker
15517type ListGatewaysInput struct {
15518	_ struct{} `type:"structure"`
15519
15520	// Specifies that the list of gateways returned be limited to the specified
15521	// number of items.
15522	Limit *int64 `min:"1" type:"integer"`
15523
15524	// An opaque string that indicates the position at which to begin the returned
15525	// list of gateways.
15526	Marker *string `min:"1" type:"string"`
15527}
15528
15529// String returns the string representation
15530func (s ListGatewaysInput) String() string {
15531	return awsutil.Prettify(s)
15532}
15533
15534// GoString returns the string representation
15535func (s ListGatewaysInput) GoString() string {
15536	return s.String()
15537}
15538
15539// Validate inspects the fields of the type to determine if they are valid.
15540func (s *ListGatewaysInput) Validate() error {
15541	invalidParams := request.ErrInvalidParams{Context: "ListGatewaysInput"}
15542	if s.Limit != nil && *s.Limit < 1 {
15543		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
15544	}
15545	if s.Marker != nil && len(*s.Marker) < 1 {
15546		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
15547	}
15548
15549	if invalidParams.Len() > 0 {
15550		return invalidParams
15551	}
15552	return nil
15553}
15554
15555// SetLimit sets the Limit field's value.
15556func (s *ListGatewaysInput) SetLimit(v int64) *ListGatewaysInput {
15557	s.Limit = &v
15558	return s
15559}
15560
15561// SetMarker sets the Marker field's value.
15562func (s *ListGatewaysInput) SetMarker(v string) *ListGatewaysInput {
15563	s.Marker = &v
15564	return s
15565}
15566
15567type ListGatewaysOutput struct {
15568	_ struct{} `type:"structure"`
15569
15570	// An array of GatewayInfo objects.
15571	Gateways []*GatewayInfo `type:"list"`
15572
15573	// Use the marker in your next request to fetch the next set of gateways in
15574	// the list. If there are no more gateways to list, this field does not appear
15575	// in the response.
15576	Marker *string `min:"1" type:"string"`
15577}
15578
15579// String returns the string representation
15580func (s ListGatewaysOutput) String() string {
15581	return awsutil.Prettify(s)
15582}
15583
15584// GoString returns the string representation
15585func (s ListGatewaysOutput) GoString() string {
15586	return s.String()
15587}
15588
15589// SetGateways sets the Gateways field's value.
15590func (s *ListGatewaysOutput) SetGateways(v []*GatewayInfo) *ListGatewaysOutput {
15591	s.Gateways = v
15592	return s
15593}
15594
15595// SetMarker sets the Marker field's value.
15596func (s *ListGatewaysOutput) SetMarker(v string) *ListGatewaysOutput {
15597	s.Marker = &v
15598	return s
15599}
15600
15601// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
15602type ListLocalDisksInput struct {
15603	_ struct{} `type:"structure"`
15604
15605	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15606	// to return a list of gateways for your account and AWS Region.
15607	//
15608	// GatewayARN is a required field
15609	GatewayARN *string `min:"50" type:"string" required:"true"`
15610}
15611
15612// String returns the string representation
15613func (s ListLocalDisksInput) String() string {
15614	return awsutil.Prettify(s)
15615}
15616
15617// GoString returns the string representation
15618func (s ListLocalDisksInput) GoString() string {
15619	return s.String()
15620}
15621
15622// Validate inspects the fields of the type to determine if they are valid.
15623func (s *ListLocalDisksInput) Validate() error {
15624	invalidParams := request.ErrInvalidParams{Context: "ListLocalDisksInput"}
15625	if s.GatewayARN == nil {
15626		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15627	}
15628	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15629		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15630	}
15631
15632	if invalidParams.Len() > 0 {
15633		return invalidParams
15634	}
15635	return nil
15636}
15637
15638// SetGatewayARN sets the GatewayARN field's value.
15639func (s *ListLocalDisksInput) SetGatewayARN(v string) *ListLocalDisksInput {
15640	s.GatewayARN = &v
15641	return s
15642}
15643
15644type ListLocalDisksOutput struct {
15645	_ struct{} `type:"structure"`
15646
15647	// A JSON object containing the following fields:
15648	//
15649	//    * ListLocalDisksOutput$Disks
15650	Disks []*Disk `type:"list"`
15651
15652	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15653	// to return a list of gateways for your account and AWS Region.
15654	GatewayARN *string `min:"50" type:"string"`
15655}
15656
15657// String returns the string representation
15658func (s ListLocalDisksOutput) String() string {
15659	return awsutil.Prettify(s)
15660}
15661
15662// GoString returns the string representation
15663func (s ListLocalDisksOutput) GoString() string {
15664	return s.String()
15665}
15666
15667// SetDisks sets the Disks field's value.
15668func (s *ListLocalDisksOutput) SetDisks(v []*Disk) *ListLocalDisksOutput {
15669	s.Disks = v
15670	return s
15671}
15672
15673// SetGatewayARN sets the GatewayARN field's value.
15674func (s *ListLocalDisksOutput) SetGatewayARN(v string) *ListLocalDisksOutput {
15675	s.GatewayARN = &v
15676	return s
15677}
15678
15679// ListTagsForResourceInput
15680type ListTagsForResourceInput struct {
15681	_ struct{} `type:"structure"`
15682
15683	// Specifies that the list of tags returned be limited to the specified number
15684	// of items.
15685	Limit *int64 `min:"1" type:"integer"`
15686
15687	// An opaque string that indicates the position at which to begin returning
15688	// the list of tags.
15689	Marker *string `min:"1" type:"string"`
15690
15691	// The Amazon Resource Name (ARN) of the resource for which you want to list
15692	// tags.
15693	//
15694	// ResourceARN is a required field
15695	ResourceARN *string `min:"50" type:"string" required:"true"`
15696}
15697
15698// String returns the string representation
15699func (s ListTagsForResourceInput) String() string {
15700	return awsutil.Prettify(s)
15701}
15702
15703// GoString returns the string representation
15704func (s ListTagsForResourceInput) GoString() string {
15705	return s.String()
15706}
15707
15708// Validate inspects the fields of the type to determine if they are valid.
15709func (s *ListTagsForResourceInput) Validate() error {
15710	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
15711	if s.Limit != nil && *s.Limit < 1 {
15712		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
15713	}
15714	if s.Marker != nil && len(*s.Marker) < 1 {
15715		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
15716	}
15717	if s.ResourceARN == nil {
15718		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
15719	}
15720	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
15721		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
15722	}
15723
15724	if invalidParams.Len() > 0 {
15725		return invalidParams
15726	}
15727	return nil
15728}
15729
15730// SetLimit sets the Limit field's value.
15731func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
15732	s.Limit = &v
15733	return s
15734}
15735
15736// SetMarker sets the Marker field's value.
15737func (s *ListTagsForResourceInput) SetMarker(v string) *ListTagsForResourceInput {
15738	s.Marker = &v
15739	return s
15740}
15741
15742// SetResourceARN sets the ResourceARN field's value.
15743func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
15744	s.ResourceARN = &v
15745	return s
15746}
15747
15748// ListTagsForResourceOutput
15749type ListTagsForResourceOutput struct {
15750	_ struct{} `type:"structure"`
15751
15752	// An opaque string that indicates the position at which to stop returning the
15753	// list of tags.
15754	Marker *string `min:"1" type:"string"`
15755
15756	// The Amazon Resource Name (ARN) of the resource for which you want to list
15757	// tags.
15758	ResourceARN *string `min:"50" type:"string"`
15759
15760	// An array that contains the tags for the specified resource.
15761	Tags []*Tag `type:"list"`
15762}
15763
15764// String returns the string representation
15765func (s ListTagsForResourceOutput) String() string {
15766	return awsutil.Prettify(s)
15767}
15768
15769// GoString returns the string representation
15770func (s ListTagsForResourceOutput) GoString() string {
15771	return s.String()
15772}
15773
15774// SetMarker sets the Marker field's value.
15775func (s *ListTagsForResourceOutput) SetMarker(v string) *ListTagsForResourceOutput {
15776	s.Marker = &v
15777	return s
15778}
15779
15780// SetResourceARN sets the ResourceARN field's value.
15781func (s *ListTagsForResourceOutput) SetResourceARN(v string) *ListTagsForResourceOutput {
15782	s.ResourceARN = &v
15783	return s
15784}
15785
15786// SetTags sets the Tags field's value.
15787func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
15788	s.Tags = v
15789	return s
15790}
15791
15792type ListTapePoolsInput struct {
15793	_ struct{} `type:"structure"`
15794
15795	// An optional number limit for the tape pools in the list returned by this
15796	// call.
15797	Limit *int64 `min:"1" type:"integer"`
15798
15799	// A string that indicates the position at which to begin the returned list
15800	// of tape pools.
15801	Marker *string `min:"1" type:"string"`
15802
15803	// The Amazon Resource Name (ARN) of each of the custom tape pools you want
15804	// to list. If you don't specify a custom tape pool ARN, the response lists
15805	// all custom tape pools.
15806	PoolARNs []*string `type:"list"`
15807}
15808
15809// String returns the string representation
15810func (s ListTapePoolsInput) String() string {
15811	return awsutil.Prettify(s)
15812}
15813
15814// GoString returns the string representation
15815func (s ListTapePoolsInput) GoString() string {
15816	return s.String()
15817}
15818
15819// Validate inspects the fields of the type to determine if they are valid.
15820func (s *ListTapePoolsInput) Validate() error {
15821	invalidParams := request.ErrInvalidParams{Context: "ListTapePoolsInput"}
15822	if s.Limit != nil && *s.Limit < 1 {
15823		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
15824	}
15825	if s.Marker != nil && len(*s.Marker) < 1 {
15826		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
15827	}
15828
15829	if invalidParams.Len() > 0 {
15830		return invalidParams
15831	}
15832	return nil
15833}
15834
15835// SetLimit sets the Limit field's value.
15836func (s *ListTapePoolsInput) SetLimit(v int64) *ListTapePoolsInput {
15837	s.Limit = &v
15838	return s
15839}
15840
15841// SetMarker sets the Marker field's value.
15842func (s *ListTapePoolsInput) SetMarker(v string) *ListTapePoolsInput {
15843	s.Marker = &v
15844	return s
15845}
15846
15847// SetPoolARNs sets the PoolARNs field's value.
15848func (s *ListTapePoolsInput) SetPoolARNs(v []*string) *ListTapePoolsInput {
15849	s.PoolARNs = v
15850	return s
15851}
15852
15853type ListTapePoolsOutput struct {
15854	_ struct{} `type:"structure"`
15855
15856	// A string that indicates the position at which to begin the returned list
15857	// of tape pools. Use the marker in your next request to continue pagination
15858	// of tape pools. If there are no more tape pools to list, this element does
15859	// not appear in the response body.
15860	Marker *string `min:"1" type:"string"`
15861
15862	// An array of PoolInfo objects, where each object describes a single custom
15863	// tape pool. If there are no custom tape pools, the PoolInfos is an empty array.
15864	PoolInfos []*PoolInfo `type:"list"`
15865}
15866
15867// String returns the string representation
15868func (s ListTapePoolsOutput) String() string {
15869	return awsutil.Prettify(s)
15870}
15871
15872// GoString returns the string representation
15873func (s ListTapePoolsOutput) GoString() string {
15874	return s.String()
15875}
15876
15877// SetMarker sets the Marker field's value.
15878func (s *ListTapePoolsOutput) SetMarker(v string) *ListTapePoolsOutput {
15879	s.Marker = &v
15880	return s
15881}
15882
15883// SetPoolInfos sets the PoolInfos field's value.
15884func (s *ListTapePoolsOutput) SetPoolInfos(v []*PoolInfo) *ListTapePoolsOutput {
15885	s.PoolInfos = v
15886	return s
15887}
15888
15889// A JSON object that contains one or more of the following fields:
15890//
15891//    * ListTapesInput$Limit
15892//
15893//    * ListTapesInput$Marker
15894//
15895//    * ListTapesInput$TapeARNs
15896type ListTapesInput struct {
15897	_ struct{} `type:"structure"`
15898
15899	// An optional number limit for the tapes in the list returned by this call.
15900	Limit *int64 `min:"1" type:"integer"`
15901
15902	// A string that indicates the position at which to begin the returned list
15903	// of tapes.
15904	Marker *string `min:"1" type:"string"`
15905
15906	// The Amazon Resource Name (ARN) of each of the tapes you want to list. If
15907	// you don't specify a tape ARN, the response lists all tapes in both your VTL
15908	// and VTS.
15909	TapeARNs []*string `type:"list"`
15910}
15911
15912// String returns the string representation
15913func (s ListTapesInput) String() string {
15914	return awsutil.Prettify(s)
15915}
15916
15917// GoString returns the string representation
15918func (s ListTapesInput) GoString() string {
15919	return s.String()
15920}
15921
15922// Validate inspects the fields of the type to determine if they are valid.
15923func (s *ListTapesInput) Validate() error {
15924	invalidParams := request.ErrInvalidParams{Context: "ListTapesInput"}
15925	if s.Limit != nil && *s.Limit < 1 {
15926		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
15927	}
15928	if s.Marker != nil && len(*s.Marker) < 1 {
15929		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
15930	}
15931
15932	if invalidParams.Len() > 0 {
15933		return invalidParams
15934	}
15935	return nil
15936}
15937
15938// SetLimit sets the Limit field's value.
15939func (s *ListTapesInput) SetLimit(v int64) *ListTapesInput {
15940	s.Limit = &v
15941	return s
15942}
15943
15944// SetMarker sets the Marker field's value.
15945func (s *ListTapesInput) SetMarker(v string) *ListTapesInput {
15946	s.Marker = &v
15947	return s
15948}
15949
15950// SetTapeARNs sets the TapeARNs field's value.
15951func (s *ListTapesInput) SetTapeARNs(v []*string) *ListTapesInput {
15952	s.TapeARNs = v
15953	return s
15954}
15955
15956// A JSON object containing the following fields:
15957//
15958//    * ListTapesOutput$Marker
15959//
15960//    * ListTapesOutput$VolumeInfos
15961type ListTapesOutput struct {
15962	_ struct{} `type:"structure"`
15963
15964	// A string that indicates the position at which to begin returning the next
15965	// list of tapes. Use the marker in your next request to continue pagination
15966	// of tapes. If there are no more tapes to list, this element does not appear
15967	// in the response body.
15968	Marker *string `min:"1" type:"string"`
15969
15970	// An array of TapeInfo objects, where each object describes a single tape.
15971	// If there are no tapes in the tape library or VTS, then the TapeInfos is an
15972	// empty array.
15973	TapeInfos []*TapeInfo `type:"list"`
15974}
15975
15976// String returns the string representation
15977func (s ListTapesOutput) String() string {
15978	return awsutil.Prettify(s)
15979}
15980
15981// GoString returns the string representation
15982func (s ListTapesOutput) GoString() string {
15983	return s.String()
15984}
15985
15986// SetMarker sets the Marker field's value.
15987func (s *ListTapesOutput) SetMarker(v string) *ListTapesOutput {
15988	s.Marker = &v
15989	return s
15990}
15991
15992// SetTapeInfos sets the TapeInfos field's value.
15993func (s *ListTapesOutput) SetTapeInfos(v []*TapeInfo) *ListTapesOutput {
15994	s.TapeInfos = v
15995	return s
15996}
15997
15998// ListVolumeInitiatorsInput
15999type ListVolumeInitiatorsInput struct {
16000	_ struct{} `type:"structure"`
16001
16002	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
16003	// to return a list of gateway volumes for the gateway.
16004	//
16005	// VolumeARN is a required field
16006	VolumeARN *string `min:"50" type:"string" required:"true"`
16007}
16008
16009// String returns the string representation
16010func (s ListVolumeInitiatorsInput) String() string {
16011	return awsutil.Prettify(s)
16012}
16013
16014// GoString returns the string representation
16015func (s ListVolumeInitiatorsInput) GoString() string {
16016	return s.String()
16017}
16018
16019// Validate inspects the fields of the type to determine if they are valid.
16020func (s *ListVolumeInitiatorsInput) Validate() error {
16021	invalidParams := request.ErrInvalidParams{Context: "ListVolumeInitiatorsInput"}
16022	if s.VolumeARN == nil {
16023		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
16024	}
16025	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
16026		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
16027	}
16028
16029	if invalidParams.Len() > 0 {
16030		return invalidParams
16031	}
16032	return nil
16033}
16034
16035// SetVolumeARN sets the VolumeARN field's value.
16036func (s *ListVolumeInitiatorsInput) SetVolumeARN(v string) *ListVolumeInitiatorsInput {
16037	s.VolumeARN = &v
16038	return s
16039}
16040
16041// ListVolumeInitiatorsOutput
16042type ListVolumeInitiatorsOutput struct {
16043	_ struct{} `type:"structure"`
16044
16045	// The host names and port numbers of all iSCSI initiators that are connected
16046	// to the gateway.
16047	Initiators []*string `type:"list"`
16048}
16049
16050// String returns the string representation
16051func (s ListVolumeInitiatorsOutput) String() string {
16052	return awsutil.Prettify(s)
16053}
16054
16055// GoString returns the string representation
16056func (s ListVolumeInitiatorsOutput) GoString() string {
16057	return s.String()
16058}
16059
16060// SetInitiators sets the Initiators field's value.
16061func (s *ListVolumeInitiatorsOutput) SetInitiators(v []*string) *ListVolumeInitiatorsOutput {
16062	s.Initiators = v
16063	return s
16064}
16065
16066type ListVolumeRecoveryPointsInput struct {
16067	_ struct{} `type:"structure"`
16068
16069	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16070	// to return a list of gateways for your account and AWS Region.
16071	//
16072	// GatewayARN is a required field
16073	GatewayARN *string `min:"50" type:"string" required:"true"`
16074}
16075
16076// String returns the string representation
16077func (s ListVolumeRecoveryPointsInput) String() string {
16078	return awsutil.Prettify(s)
16079}
16080
16081// GoString returns the string representation
16082func (s ListVolumeRecoveryPointsInput) GoString() string {
16083	return s.String()
16084}
16085
16086// Validate inspects the fields of the type to determine if they are valid.
16087func (s *ListVolumeRecoveryPointsInput) Validate() error {
16088	invalidParams := request.ErrInvalidParams{Context: "ListVolumeRecoveryPointsInput"}
16089	if s.GatewayARN == nil {
16090		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16091	}
16092	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16093		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16094	}
16095
16096	if invalidParams.Len() > 0 {
16097		return invalidParams
16098	}
16099	return nil
16100}
16101
16102// SetGatewayARN sets the GatewayARN field's value.
16103func (s *ListVolumeRecoveryPointsInput) SetGatewayARN(v string) *ListVolumeRecoveryPointsInput {
16104	s.GatewayARN = &v
16105	return s
16106}
16107
16108type ListVolumeRecoveryPointsOutput struct {
16109	_ struct{} `type:"structure"`
16110
16111	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16112	// to return a list of gateways for your account and AWS Region.
16113	GatewayARN *string `min:"50" type:"string"`
16114
16115	// An array of VolumeRecoveryPointInfo objects.
16116	VolumeRecoveryPointInfos []*VolumeRecoveryPointInfo `type:"list"`
16117}
16118
16119// String returns the string representation
16120func (s ListVolumeRecoveryPointsOutput) String() string {
16121	return awsutil.Prettify(s)
16122}
16123
16124// GoString returns the string representation
16125func (s ListVolumeRecoveryPointsOutput) GoString() string {
16126	return s.String()
16127}
16128
16129// SetGatewayARN sets the GatewayARN field's value.
16130func (s *ListVolumeRecoveryPointsOutput) SetGatewayARN(v string) *ListVolumeRecoveryPointsOutput {
16131	s.GatewayARN = &v
16132	return s
16133}
16134
16135// SetVolumeRecoveryPointInfos sets the VolumeRecoveryPointInfos field's value.
16136func (s *ListVolumeRecoveryPointsOutput) SetVolumeRecoveryPointInfos(v []*VolumeRecoveryPointInfo) *ListVolumeRecoveryPointsOutput {
16137	s.VolumeRecoveryPointInfos = v
16138	return s
16139}
16140
16141// A JSON object that contains one or more of the following fields:
16142//
16143//    * ListVolumesInput$Limit
16144//
16145//    * ListVolumesInput$Marker
16146type ListVolumesInput struct {
16147	_ struct{} `type:"structure"`
16148
16149	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16150	// to return a list of gateways for your account and AWS Region.
16151	GatewayARN *string `min:"50" type:"string"`
16152
16153	// Specifies that the list of volumes returned be limited to the specified number
16154	// of items.
16155	Limit *int64 `min:"1" type:"integer"`
16156
16157	// A string that indicates the position at which to begin the returned list
16158	// of volumes. Obtain the marker from the response of a previous List iSCSI
16159	// Volumes request.
16160	Marker *string `min:"1" type:"string"`
16161}
16162
16163// String returns the string representation
16164func (s ListVolumesInput) String() string {
16165	return awsutil.Prettify(s)
16166}
16167
16168// GoString returns the string representation
16169func (s ListVolumesInput) GoString() string {
16170	return s.String()
16171}
16172
16173// Validate inspects the fields of the type to determine if they are valid.
16174func (s *ListVolumesInput) Validate() error {
16175	invalidParams := request.ErrInvalidParams{Context: "ListVolumesInput"}
16176	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16177		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16178	}
16179	if s.Limit != nil && *s.Limit < 1 {
16180		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
16181	}
16182	if s.Marker != nil && len(*s.Marker) < 1 {
16183		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
16184	}
16185
16186	if invalidParams.Len() > 0 {
16187		return invalidParams
16188	}
16189	return nil
16190}
16191
16192// SetGatewayARN sets the GatewayARN field's value.
16193func (s *ListVolumesInput) SetGatewayARN(v string) *ListVolumesInput {
16194	s.GatewayARN = &v
16195	return s
16196}
16197
16198// SetLimit sets the Limit field's value.
16199func (s *ListVolumesInput) SetLimit(v int64) *ListVolumesInput {
16200	s.Limit = &v
16201	return s
16202}
16203
16204// SetMarker sets the Marker field's value.
16205func (s *ListVolumesInput) SetMarker(v string) *ListVolumesInput {
16206	s.Marker = &v
16207	return s
16208}
16209
16210// A JSON object containing the following fields:
16211//
16212//    * ListVolumesOutput$Marker
16213//
16214//    * ListVolumesOutput$VolumeInfos
16215type ListVolumesOutput struct {
16216	_ struct{} `type:"structure"`
16217
16218	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16219	// to return a list of gateways for your account and AWS Region.
16220	GatewayARN *string `min:"50" type:"string"`
16221
16222	// Use the marker in your next request to continue pagination of iSCSI volumes.
16223	// If there are no more volumes to list, this field does not appear in the response
16224	// body.
16225	Marker *string `min:"1" type:"string"`
16226
16227	// An array of VolumeInfo objects, where each object describes an iSCSI volume.
16228	// If no volumes are defined for the gateway, then VolumeInfos is an empty array
16229	// "[]".
16230	VolumeInfos []*VolumeInfo `type:"list"`
16231}
16232
16233// String returns the string representation
16234func (s ListVolumesOutput) String() string {
16235	return awsutil.Prettify(s)
16236}
16237
16238// GoString returns the string representation
16239func (s ListVolumesOutput) GoString() string {
16240	return s.String()
16241}
16242
16243// SetGatewayARN sets the GatewayARN field's value.
16244func (s *ListVolumesOutput) SetGatewayARN(v string) *ListVolumesOutput {
16245	s.GatewayARN = &v
16246	return s
16247}
16248
16249// SetMarker sets the Marker field's value.
16250func (s *ListVolumesOutput) SetMarker(v string) *ListVolumesOutput {
16251	s.Marker = &v
16252	return s
16253}
16254
16255// SetVolumeInfos sets the VolumeInfos field's value.
16256func (s *ListVolumesOutput) SetVolumeInfos(v []*VolumeInfo) *ListVolumesOutput {
16257	s.VolumeInfos = v
16258	return s
16259}
16260
16261// Describes Network File System (NFS) file share default values. Files and
16262// folders stored as Amazon S3 objects in S3 buckets don't, by default, have
16263// Unix file permissions assigned to them. Upon discovery in an S3 bucket by
16264// Storage Gateway, the S3 objects that represent files and folders are assigned
16265// these default Unix permissions. This operation is only supported for file
16266// gateways.
16267type NFSFileShareDefaults struct {
16268	_ struct{} `type:"structure"`
16269
16270	// The Unix directory mode in the form "nnnn". For example, 0666 represents
16271	// the default access mode for all directories inside the file share. The default
16272	// value is 0777.
16273	DirectoryMode *string `min:"1" type:"string"`
16274
16275	// The Unix file mode in the form "nnnn". For example, 0666 represents the default
16276	// file mode inside the file share. The default value is 0666.
16277	FileMode *string `min:"1" type:"string"`
16278
16279	// The default group ID for the file share (unless the files have another group
16280	// ID specified). The default value is nfsnobody.
16281	GroupId *int64 `type:"long"`
16282
16283	// The default owner ID for files in the file share (unless the files have another
16284	// owner ID specified). The default value is nfsnobody.
16285	OwnerId *int64 `type:"long"`
16286}
16287
16288// String returns the string representation
16289func (s NFSFileShareDefaults) String() string {
16290	return awsutil.Prettify(s)
16291}
16292
16293// GoString returns the string representation
16294func (s NFSFileShareDefaults) GoString() string {
16295	return s.String()
16296}
16297
16298// Validate inspects the fields of the type to determine if they are valid.
16299func (s *NFSFileShareDefaults) Validate() error {
16300	invalidParams := request.ErrInvalidParams{Context: "NFSFileShareDefaults"}
16301	if s.DirectoryMode != nil && len(*s.DirectoryMode) < 1 {
16302		invalidParams.Add(request.NewErrParamMinLen("DirectoryMode", 1))
16303	}
16304	if s.FileMode != nil && len(*s.FileMode) < 1 {
16305		invalidParams.Add(request.NewErrParamMinLen("FileMode", 1))
16306	}
16307
16308	if invalidParams.Len() > 0 {
16309		return invalidParams
16310	}
16311	return nil
16312}
16313
16314// SetDirectoryMode sets the DirectoryMode field's value.
16315func (s *NFSFileShareDefaults) SetDirectoryMode(v string) *NFSFileShareDefaults {
16316	s.DirectoryMode = &v
16317	return s
16318}
16319
16320// SetFileMode sets the FileMode field's value.
16321func (s *NFSFileShareDefaults) SetFileMode(v string) *NFSFileShareDefaults {
16322	s.FileMode = &v
16323	return s
16324}
16325
16326// SetGroupId sets the GroupId field's value.
16327func (s *NFSFileShareDefaults) SetGroupId(v int64) *NFSFileShareDefaults {
16328	s.GroupId = &v
16329	return s
16330}
16331
16332// SetOwnerId sets the OwnerId field's value.
16333func (s *NFSFileShareDefaults) SetOwnerId(v int64) *NFSFileShareDefaults {
16334	s.OwnerId = &v
16335	return s
16336}
16337
16338// The Unix file permissions and ownership information assigned, by default,
16339// to native S3 objects when file gateway discovers them in S3 buckets. This
16340// operation is only supported in file gateways.
16341type NFSFileShareInfo struct {
16342	_ struct{} `type:"structure"`
16343
16344	// Refresh cache information.
16345	CacheAttributes *CacheAttributes `type:"structure"`
16346
16347	// The list of clients that are allowed to access the file gateway. The list
16348	// must contain either valid IP addresses or valid CIDR blocks.
16349	ClientList []*string `min:"1" type:"list"`
16350
16351	// The default storage class for objects put into an Amazon S3 bucket by the
16352	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
16353	//
16354	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
16355	DefaultStorageClass *string `min:"5" type:"string"`
16356
16357	// The Amazon Resource Name (ARN) of the file share.
16358	FileShareARN *string `min:"50" type:"string"`
16359
16360	// The ID of the file share.
16361	FileShareId *string `min:"12" type:"string"`
16362
16363	// The name of the file share. Optional.
16364	//
16365	// FileShareName must be set if an S3 prefix name is set in LocationARN.
16366	FileShareName *string `min:"1" type:"string"`
16367
16368	// The status of the file share.
16369	//
16370	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
16371	FileShareStatus *string `min:"3" type:"string"`
16372
16373	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16374	// to return a list of gateways for your account and AWS Region.
16375	GatewayARN *string `min:"50" type:"string"`
16376
16377	// A value that enables guessing of the MIME type for uploaded objects based
16378	// on file extensions. Set this value to true to enable MIME type guessing,
16379	// otherwise set to false. The default value is true.
16380	//
16381	// Valid Values: true | false
16382	GuessMIMETypeEnabled *bool `type:"boolean"`
16383
16384	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
16385	// key, or false to use a key managed by Amazon S3. Optional.
16386	//
16387	// Valid Values: true | false
16388	KMSEncrypted *bool `type:"boolean"`
16389
16390	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
16391	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
16392	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
16393	KMSKey *string `min:"7" type:"string"`
16394
16395	// The ARN of the backend storage used for storing file data. A prefix name
16396	// can be added to the S3 bucket name. It must end with a "/".
16397	LocationARN *string `min:"16" type:"string"`
16398
16399	// Describes Network File System (NFS) file share default values. Files and
16400	// folders stored as Amazon S3 objects in S3 buckets don't, by default, have
16401	// Unix file permissions assigned to them. Upon discovery in an S3 bucket by
16402	// Storage Gateway, the S3 objects that represent files and folders are assigned
16403	// these default Unix permissions. This operation is only supported for file
16404	// gateways.
16405	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
16406
16407	// The notification policy of the file share.
16408	NotificationPolicy *string `min:"2" type:"string"`
16409
16410	// A value that sets the access control list (ACL) permission for objects in
16411	// the S3 bucket that a file gateway puts objects into. The default value is
16412	// private.
16413	ObjectACL *string `type:"string" enum:"ObjectACL"`
16414
16415	// The file share path used by the NFS client to identify the mount point.
16416	Path *string `type:"string"`
16417
16418	// A value that sets the write status of a file share. Set this value to true
16419	// to set the write status to read-only, otherwise set to false.
16420	//
16421	// Valid Values: true | false
16422	ReadOnly *bool `type:"boolean"`
16423
16424	// A value that sets who pays the cost of the request and the cost associated
16425	// with data download from the S3 bucket. If this value is set to true, the
16426	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
16427	// S3 bucket owner always pays the cost of storing data.
16428	//
16429	// RequesterPays is a configuration for the S3 bucket that backs the file share,
16430	// so make sure that the configuration on the file share is the same as the
16431	// S3 bucket configuration.
16432	//
16433	// Valid Values: true | false
16434	RequesterPays *bool `type:"boolean"`
16435
16436	// The ARN of the IAM role that file gateway assumes when it accesses the underlying
16437	// storage.
16438	Role *string `min:"20" type:"string"`
16439
16440	// The user mapped to anonymous user. Valid options are the following:
16441	//
16442	//    * RootSquash: Only root is mapped to anonymous user.
16443	//
16444	//    * NoSquash: No one is mapped to anonymous user.
16445	//
16446	//    * AllSquash: Everyone is mapped to anonymous user.
16447	Squash *string `min:"5" type:"string"`
16448
16449	// A list of up to 50 tags assigned to the NFS file share, sorted alphabetically
16450	// by key name. Each tag is a key-value pair. For a gateway with more than 10
16451	// tags assigned, you can view all tags using the ListTagsForResource API operation.
16452	Tags []*Tag `type:"list"`
16453}
16454
16455// String returns the string representation
16456func (s NFSFileShareInfo) String() string {
16457	return awsutil.Prettify(s)
16458}
16459
16460// GoString returns the string representation
16461func (s NFSFileShareInfo) GoString() string {
16462	return s.String()
16463}
16464
16465// SetCacheAttributes sets the CacheAttributes field's value.
16466func (s *NFSFileShareInfo) SetCacheAttributes(v *CacheAttributes) *NFSFileShareInfo {
16467	s.CacheAttributes = v
16468	return s
16469}
16470
16471// SetClientList sets the ClientList field's value.
16472func (s *NFSFileShareInfo) SetClientList(v []*string) *NFSFileShareInfo {
16473	s.ClientList = v
16474	return s
16475}
16476
16477// SetDefaultStorageClass sets the DefaultStorageClass field's value.
16478func (s *NFSFileShareInfo) SetDefaultStorageClass(v string) *NFSFileShareInfo {
16479	s.DefaultStorageClass = &v
16480	return s
16481}
16482
16483// SetFileShareARN sets the FileShareARN field's value.
16484func (s *NFSFileShareInfo) SetFileShareARN(v string) *NFSFileShareInfo {
16485	s.FileShareARN = &v
16486	return s
16487}
16488
16489// SetFileShareId sets the FileShareId field's value.
16490func (s *NFSFileShareInfo) SetFileShareId(v string) *NFSFileShareInfo {
16491	s.FileShareId = &v
16492	return s
16493}
16494
16495// SetFileShareName sets the FileShareName field's value.
16496func (s *NFSFileShareInfo) SetFileShareName(v string) *NFSFileShareInfo {
16497	s.FileShareName = &v
16498	return s
16499}
16500
16501// SetFileShareStatus sets the FileShareStatus field's value.
16502func (s *NFSFileShareInfo) SetFileShareStatus(v string) *NFSFileShareInfo {
16503	s.FileShareStatus = &v
16504	return s
16505}
16506
16507// SetGatewayARN sets the GatewayARN field's value.
16508func (s *NFSFileShareInfo) SetGatewayARN(v string) *NFSFileShareInfo {
16509	s.GatewayARN = &v
16510	return s
16511}
16512
16513// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
16514func (s *NFSFileShareInfo) SetGuessMIMETypeEnabled(v bool) *NFSFileShareInfo {
16515	s.GuessMIMETypeEnabled = &v
16516	return s
16517}
16518
16519// SetKMSEncrypted sets the KMSEncrypted field's value.
16520func (s *NFSFileShareInfo) SetKMSEncrypted(v bool) *NFSFileShareInfo {
16521	s.KMSEncrypted = &v
16522	return s
16523}
16524
16525// SetKMSKey sets the KMSKey field's value.
16526func (s *NFSFileShareInfo) SetKMSKey(v string) *NFSFileShareInfo {
16527	s.KMSKey = &v
16528	return s
16529}
16530
16531// SetLocationARN sets the LocationARN field's value.
16532func (s *NFSFileShareInfo) SetLocationARN(v string) *NFSFileShareInfo {
16533	s.LocationARN = &v
16534	return s
16535}
16536
16537// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
16538func (s *NFSFileShareInfo) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *NFSFileShareInfo {
16539	s.NFSFileShareDefaults = v
16540	return s
16541}
16542
16543// SetNotificationPolicy sets the NotificationPolicy field's value.
16544func (s *NFSFileShareInfo) SetNotificationPolicy(v string) *NFSFileShareInfo {
16545	s.NotificationPolicy = &v
16546	return s
16547}
16548
16549// SetObjectACL sets the ObjectACL field's value.
16550func (s *NFSFileShareInfo) SetObjectACL(v string) *NFSFileShareInfo {
16551	s.ObjectACL = &v
16552	return s
16553}
16554
16555// SetPath sets the Path field's value.
16556func (s *NFSFileShareInfo) SetPath(v string) *NFSFileShareInfo {
16557	s.Path = &v
16558	return s
16559}
16560
16561// SetReadOnly sets the ReadOnly field's value.
16562func (s *NFSFileShareInfo) SetReadOnly(v bool) *NFSFileShareInfo {
16563	s.ReadOnly = &v
16564	return s
16565}
16566
16567// SetRequesterPays sets the RequesterPays field's value.
16568func (s *NFSFileShareInfo) SetRequesterPays(v bool) *NFSFileShareInfo {
16569	s.RequesterPays = &v
16570	return s
16571}
16572
16573// SetRole sets the Role field's value.
16574func (s *NFSFileShareInfo) SetRole(v string) *NFSFileShareInfo {
16575	s.Role = &v
16576	return s
16577}
16578
16579// SetSquash sets the Squash field's value.
16580func (s *NFSFileShareInfo) SetSquash(v string) *NFSFileShareInfo {
16581	s.Squash = &v
16582	return s
16583}
16584
16585// SetTags sets the Tags field's value.
16586func (s *NFSFileShareInfo) SetTags(v []*Tag) *NFSFileShareInfo {
16587	s.Tags = v
16588	return s
16589}
16590
16591// Describes a gateway's network interface.
16592type NetworkInterface struct {
16593	_ struct{} `type:"structure"`
16594
16595	// The Internet Protocol version 4 (IPv4) address of the interface.
16596	Ipv4Address *string `type:"string"`
16597
16598	// The Internet Protocol version 6 (IPv6) address of the interface. Currently
16599	// not supported.
16600	Ipv6Address *string `type:"string"`
16601
16602	// The Media Access Control (MAC) address of the interface.
16603	//
16604	// This is currently unsupported and will not be returned in output.
16605	MacAddress *string `type:"string"`
16606}
16607
16608// String returns the string representation
16609func (s NetworkInterface) String() string {
16610	return awsutil.Prettify(s)
16611}
16612
16613// GoString returns the string representation
16614func (s NetworkInterface) GoString() string {
16615	return s.String()
16616}
16617
16618// SetIpv4Address sets the Ipv4Address field's value.
16619func (s *NetworkInterface) SetIpv4Address(v string) *NetworkInterface {
16620	s.Ipv4Address = &v
16621	return s
16622}
16623
16624// SetIpv6Address sets the Ipv6Address field's value.
16625func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
16626	s.Ipv6Address = &v
16627	return s
16628}
16629
16630// SetMacAddress sets the MacAddress field's value.
16631func (s *NetworkInterface) SetMacAddress(v string) *NetworkInterface {
16632	s.MacAddress = &v
16633	return s
16634}
16635
16636type NotifyWhenUploadedInput struct {
16637	_ struct{} `type:"structure"`
16638
16639	// The Amazon Resource Name (ARN) of the file share.
16640	//
16641	// FileShareARN is a required field
16642	FileShareARN *string `min:"50" type:"string" required:"true"`
16643}
16644
16645// String returns the string representation
16646func (s NotifyWhenUploadedInput) String() string {
16647	return awsutil.Prettify(s)
16648}
16649
16650// GoString returns the string representation
16651func (s NotifyWhenUploadedInput) GoString() string {
16652	return s.String()
16653}
16654
16655// Validate inspects the fields of the type to determine if they are valid.
16656func (s *NotifyWhenUploadedInput) Validate() error {
16657	invalidParams := request.ErrInvalidParams{Context: "NotifyWhenUploadedInput"}
16658	if s.FileShareARN == nil {
16659		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
16660	}
16661	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
16662		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
16663	}
16664
16665	if invalidParams.Len() > 0 {
16666		return invalidParams
16667	}
16668	return nil
16669}
16670
16671// SetFileShareARN sets the FileShareARN field's value.
16672func (s *NotifyWhenUploadedInput) SetFileShareARN(v string) *NotifyWhenUploadedInput {
16673	s.FileShareARN = &v
16674	return s
16675}
16676
16677type NotifyWhenUploadedOutput struct {
16678	_ struct{} `type:"structure"`
16679
16680	// The Amazon Resource Name (ARN) of the file share.
16681	FileShareARN *string `min:"50" type:"string"`
16682
16683	// The randomly generated ID of the notification that was sent. This ID is in
16684	// UUID format.
16685	NotificationId *string `min:"1" type:"string"`
16686}
16687
16688// String returns the string representation
16689func (s NotifyWhenUploadedOutput) String() string {
16690	return awsutil.Prettify(s)
16691}
16692
16693// GoString returns the string representation
16694func (s NotifyWhenUploadedOutput) GoString() string {
16695	return s.String()
16696}
16697
16698// SetFileShareARN sets the FileShareARN field's value.
16699func (s *NotifyWhenUploadedOutput) SetFileShareARN(v string) *NotifyWhenUploadedOutput {
16700	s.FileShareARN = &v
16701	return s
16702}
16703
16704// SetNotificationId sets the NotificationId field's value.
16705func (s *NotifyWhenUploadedOutput) SetNotificationId(v string) *NotifyWhenUploadedOutput {
16706	s.NotificationId = &v
16707	return s
16708}
16709
16710// Describes a custom tape pool.
16711type PoolInfo struct {
16712	_ struct{} `type:"structure"`
16713
16714	// The Amazon Resource Name (ARN) of the custom tape pool. Use the ListTapePools
16715	// operation to return a list of custom tape pools for your account and AWS
16716	// Region.
16717	PoolARN *string `min:"50" type:"string"`
16718
16719	// The name of the custom tape pool. PoolName can use all ASCII characters,
16720	// except '/' and '\'.
16721	PoolName *string `min:"1" type:"string"`
16722
16723	// Status of the custom tape pool. Pool can be ACTIVE or DELETED.
16724	PoolStatus *string `type:"string" enum:"PoolStatus"`
16725
16726	// Tape retention lock time is set in days. Tape retention lock can be enabled
16727	// for up to 100 years (36,500 days).
16728	RetentionLockTimeInDays *int64 `type:"integer"`
16729
16730	// Tape retention lock type, which can be configured in two modes. When configured
16731	// in governance mode, AWS accounts with specific IAM permissions are authorized
16732	// to remove the tape retention lock from archived virtual tapes. When configured
16733	// in compliance mode, the tape retention lock cannot be removed by any user,
16734	// including the root AWS account.
16735	RetentionLockType *string `type:"string" enum:"RetentionLockType"`
16736
16737	// The storage class that is associated with the custom pool. When you use your
16738	// backup application to eject the tape, the tape is archived directly into
16739	// the storage class (S3 Glacier or S3 Glacier Deep Archive) that corresponds
16740	// to the pool.
16741	StorageClass *string `type:"string" enum:"TapeStorageClass"`
16742}
16743
16744// String returns the string representation
16745func (s PoolInfo) String() string {
16746	return awsutil.Prettify(s)
16747}
16748
16749// GoString returns the string representation
16750func (s PoolInfo) GoString() string {
16751	return s.String()
16752}
16753
16754// SetPoolARN sets the PoolARN field's value.
16755func (s *PoolInfo) SetPoolARN(v string) *PoolInfo {
16756	s.PoolARN = &v
16757	return s
16758}
16759
16760// SetPoolName sets the PoolName field's value.
16761func (s *PoolInfo) SetPoolName(v string) *PoolInfo {
16762	s.PoolName = &v
16763	return s
16764}
16765
16766// SetPoolStatus sets the PoolStatus field's value.
16767func (s *PoolInfo) SetPoolStatus(v string) *PoolInfo {
16768	s.PoolStatus = &v
16769	return s
16770}
16771
16772// SetRetentionLockTimeInDays sets the RetentionLockTimeInDays field's value.
16773func (s *PoolInfo) SetRetentionLockTimeInDays(v int64) *PoolInfo {
16774	s.RetentionLockTimeInDays = &v
16775	return s
16776}
16777
16778// SetRetentionLockType sets the RetentionLockType field's value.
16779func (s *PoolInfo) SetRetentionLockType(v string) *PoolInfo {
16780	s.RetentionLockType = &v
16781	return s
16782}
16783
16784// SetStorageClass sets the StorageClass field's value.
16785func (s *PoolInfo) SetStorageClass(v string) *PoolInfo {
16786	s.StorageClass = &v
16787	return s
16788}
16789
16790// RefreshCacheInput
16791type RefreshCacheInput struct {
16792	_ struct{} `type:"structure"`
16793
16794	// The Amazon Resource Name (ARN) of the file share you want to refresh.
16795	//
16796	// FileShareARN is a required field
16797	FileShareARN *string `min:"50" type:"string" required:"true"`
16798
16799	// A comma-separated list of the paths of folders to refresh in the cache. The
16800	// default is ["/"]. The default refreshes objects and folders at the root of
16801	// the Amazon S3 bucket. If Recursive is set to true, the entire S3 bucket that
16802	// the file share has access to is refreshed.
16803	FolderList []*string `min:"1" type:"list"`
16804
16805	// A value that specifies whether to recursively refresh folders in the cache.
16806	// The refresh includes folders that were in the cache the last time the gateway
16807	// listed the folder's contents. If this value set to true, each folder that
16808	// is listed in FolderList is recursively updated. Otherwise, subfolders listed
16809	// in FolderList are not refreshed. Only objects that are in folders listed
16810	// directly under FolderList are found and used for the update. The default
16811	// is true.
16812	//
16813	// Valid Values: true | false
16814	Recursive *bool `type:"boolean"`
16815}
16816
16817// String returns the string representation
16818func (s RefreshCacheInput) String() string {
16819	return awsutil.Prettify(s)
16820}
16821
16822// GoString returns the string representation
16823func (s RefreshCacheInput) GoString() string {
16824	return s.String()
16825}
16826
16827// Validate inspects the fields of the type to determine if they are valid.
16828func (s *RefreshCacheInput) Validate() error {
16829	invalidParams := request.ErrInvalidParams{Context: "RefreshCacheInput"}
16830	if s.FileShareARN == nil {
16831		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
16832	}
16833	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
16834		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
16835	}
16836	if s.FolderList != nil && len(s.FolderList) < 1 {
16837		invalidParams.Add(request.NewErrParamMinLen("FolderList", 1))
16838	}
16839
16840	if invalidParams.Len() > 0 {
16841		return invalidParams
16842	}
16843	return nil
16844}
16845
16846// SetFileShareARN sets the FileShareARN field's value.
16847func (s *RefreshCacheInput) SetFileShareARN(v string) *RefreshCacheInput {
16848	s.FileShareARN = &v
16849	return s
16850}
16851
16852// SetFolderList sets the FolderList field's value.
16853func (s *RefreshCacheInput) SetFolderList(v []*string) *RefreshCacheInput {
16854	s.FolderList = v
16855	return s
16856}
16857
16858// SetRecursive sets the Recursive field's value.
16859func (s *RefreshCacheInput) SetRecursive(v bool) *RefreshCacheInput {
16860	s.Recursive = &v
16861	return s
16862}
16863
16864// RefreshCacheOutput
16865type RefreshCacheOutput struct {
16866	_ struct{} `type:"structure"`
16867
16868	// The Amazon Resource Name (ARN) of the file share.
16869	FileShareARN *string `min:"50" type:"string"`
16870
16871	// The randomly generated ID of the notification that was sent. This ID is in
16872	// UUID format.
16873	NotificationId *string `min:"1" type:"string"`
16874}
16875
16876// String returns the string representation
16877func (s RefreshCacheOutput) String() string {
16878	return awsutil.Prettify(s)
16879}
16880
16881// GoString returns the string representation
16882func (s RefreshCacheOutput) GoString() string {
16883	return s.String()
16884}
16885
16886// SetFileShareARN sets the FileShareARN field's value.
16887func (s *RefreshCacheOutput) SetFileShareARN(v string) *RefreshCacheOutput {
16888	s.FileShareARN = &v
16889	return s
16890}
16891
16892// SetNotificationId sets the NotificationId field's value.
16893func (s *RefreshCacheOutput) SetNotificationId(v string) *RefreshCacheOutput {
16894	s.NotificationId = &v
16895	return s
16896}
16897
16898// RemoveTagsFromResourceInput
16899type RemoveTagsFromResourceInput struct {
16900	_ struct{} `type:"structure"`
16901
16902	// The Amazon Resource Name (ARN) of the resource you want to remove the tags
16903	// from.
16904	//
16905	// ResourceARN is a required field
16906	ResourceARN *string `min:"50" type:"string" required:"true"`
16907
16908	// The keys of the tags you want to remove from the specified resource. A tag
16909	// is composed of a key-value pair.
16910	//
16911	// TagKeys is a required field
16912	TagKeys []*string `type:"list" required:"true"`
16913}
16914
16915// String returns the string representation
16916func (s RemoveTagsFromResourceInput) String() string {
16917	return awsutil.Prettify(s)
16918}
16919
16920// GoString returns the string representation
16921func (s RemoveTagsFromResourceInput) GoString() string {
16922	return s.String()
16923}
16924
16925// Validate inspects the fields of the type to determine if they are valid.
16926func (s *RemoveTagsFromResourceInput) Validate() error {
16927	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"}
16928	if s.ResourceARN == nil {
16929		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
16930	}
16931	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
16932		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
16933	}
16934	if s.TagKeys == nil {
16935		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
16936	}
16937
16938	if invalidParams.Len() > 0 {
16939		return invalidParams
16940	}
16941	return nil
16942}
16943
16944// SetResourceARN sets the ResourceARN field's value.
16945func (s *RemoveTagsFromResourceInput) SetResourceARN(v string) *RemoveTagsFromResourceInput {
16946	s.ResourceARN = &v
16947	return s
16948}
16949
16950// SetTagKeys sets the TagKeys field's value.
16951func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput {
16952	s.TagKeys = v
16953	return s
16954}
16955
16956// RemoveTagsFromResourceOutput
16957type RemoveTagsFromResourceOutput struct {
16958	_ struct{} `type:"structure"`
16959
16960	// The Amazon Resource Name (ARN) of the resource that the tags were removed
16961	// from.
16962	ResourceARN *string `min:"50" type:"string"`
16963}
16964
16965// String returns the string representation
16966func (s RemoveTagsFromResourceOutput) String() string {
16967	return awsutil.Prettify(s)
16968}
16969
16970// GoString returns the string representation
16971func (s RemoveTagsFromResourceOutput) GoString() string {
16972	return s.String()
16973}
16974
16975// SetResourceARN sets the ResourceARN field's value.
16976func (s *RemoveTagsFromResourceOutput) SetResourceARN(v string) *RemoveTagsFromResourceOutput {
16977	s.ResourceARN = &v
16978	return s
16979}
16980
16981type ResetCacheInput struct {
16982	_ struct{} `type:"structure"`
16983
16984	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16985	// to return a list of gateways for your account and AWS Region.
16986	//
16987	// GatewayARN is a required field
16988	GatewayARN *string `min:"50" type:"string" required:"true"`
16989}
16990
16991// String returns the string representation
16992func (s ResetCacheInput) String() string {
16993	return awsutil.Prettify(s)
16994}
16995
16996// GoString returns the string representation
16997func (s ResetCacheInput) GoString() string {
16998	return s.String()
16999}
17000
17001// Validate inspects the fields of the type to determine if they are valid.
17002func (s *ResetCacheInput) Validate() error {
17003	invalidParams := request.ErrInvalidParams{Context: "ResetCacheInput"}
17004	if s.GatewayARN == nil {
17005		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17006	}
17007	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17008		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17009	}
17010
17011	if invalidParams.Len() > 0 {
17012		return invalidParams
17013	}
17014	return nil
17015}
17016
17017// SetGatewayARN sets the GatewayARN field's value.
17018func (s *ResetCacheInput) SetGatewayARN(v string) *ResetCacheInput {
17019	s.GatewayARN = &v
17020	return s
17021}
17022
17023type ResetCacheOutput struct {
17024	_ struct{} `type:"structure"`
17025
17026	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17027	// to return a list of gateways for your account and AWS Region.
17028	GatewayARN *string `min:"50" type:"string"`
17029}
17030
17031// String returns the string representation
17032func (s ResetCacheOutput) String() string {
17033	return awsutil.Prettify(s)
17034}
17035
17036// GoString returns the string representation
17037func (s ResetCacheOutput) GoString() string {
17038	return s.String()
17039}
17040
17041// SetGatewayARN sets the GatewayARN field's value.
17042func (s *ResetCacheOutput) SetGatewayARN(v string) *ResetCacheOutput {
17043	s.GatewayARN = &v
17044	return s
17045}
17046
17047// RetrieveTapeArchiveInput
17048type RetrieveTapeArchiveInput struct {
17049	_ struct{} `type:"structure"`
17050
17051	// The Amazon Resource Name (ARN) of the gateway you want to retrieve the virtual
17052	// tape to. Use the ListGateways operation to return a list of gateways for
17053	// your account and AWS Region.
17054	//
17055	// You retrieve archived virtual tapes to only one gateway and the gateway must
17056	// be a tape gateway.
17057	//
17058	// GatewayARN is a required field
17059	GatewayARN *string `min:"50" type:"string" required:"true"`
17060
17061	// The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from
17062	// the virtual tape shelf (VTS).
17063	//
17064	// TapeARN is a required field
17065	TapeARN *string `min:"50" type:"string" required:"true"`
17066}
17067
17068// String returns the string representation
17069func (s RetrieveTapeArchiveInput) String() string {
17070	return awsutil.Prettify(s)
17071}
17072
17073// GoString returns the string representation
17074func (s RetrieveTapeArchiveInput) GoString() string {
17075	return s.String()
17076}
17077
17078// Validate inspects the fields of the type to determine if they are valid.
17079func (s *RetrieveTapeArchiveInput) Validate() error {
17080	invalidParams := request.ErrInvalidParams{Context: "RetrieveTapeArchiveInput"}
17081	if s.GatewayARN == nil {
17082		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17083	}
17084	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17085		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17086	}
17087	if s.TapeARN == nil {
17088		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
17089	}
17090	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
17091		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
17092	}
17093
17094	if invalidParams.Len() > 0 {
17095		return invalidParams
17096	}
17097	return nil
17098}
17099
17100// SetGatewayARN sets the GatewayARN field's value.
17101func (s *RetrieveTapeArchiveInput) SetGatewayARN(v string) *RetrieveTapeArchiveInput {
17102	s.GatewayARN = &v
17103	return s
17104}
17105
17106// SetTapeARN sets the TapeARN field's value.
17107func (s *RetrieveTapeArchiveInput) SetTapeARN(v string) *RetrieveTapeArchiveInput {
17108	s.TapeARN = &v
17109	return s
17110}
17111
17112// RetrieveTapeArchiveOutput
17113type RetrieveTapeArchiveOutput struct {
17114	_ struct{} `type:"structure"`
17115
17116	// The Amazon Resource Name (ARN) of the retrieved virtual tape.
17117	TapeARN *string `min:"50" type:"string"`
17118}
17119
17120// String returns the string representation
17121func (s RetrieveTapeArchiveOutput) String() string {
17122	return awsutil.Prettify(s)
17123}
17124
17125// GoString returns the string representation
17126func (s RetrieveTapeArchiveOutput) GoString() string {
17127	return s.String()
17128}
17129
17130// SetTapeARN sets the TapeARN field's value.
17131func (s *RetrieveTapeArchiveOutput) SetTapeARN(v string) *RetrieveTapeArchiveOutput {
17132	s.TapeARN = &v
17133	return s
17134}
17135
17136// RetrieveTapeRecoveryPointInput
17137type RetrieveTapeRecoveryPointInput struct {
17138	_ struct{} `type:"structure"`
17139
17140	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17141	// to return a list of gateways for your account and AWS Region.
17142	//
17143	// GatewayARN is a required field
17144	GatewayARN *string `min:"50" type:"string" required:"true"`
17145
17146	// The Amazon Resource Name (ARN) of the virtual tape for which you want to
17147	// retrieve the recovery point.
17148	//
17149	// TapeARN is a required field
17150	TapeARN *string `min:"50" type:"string" required:"true"`
17151}
17152
17153// String returns the string representation
17154func (s RetrieveTapeRecoveryPointInput) String() string {
17155	return awsutil.Prettify(s)
17156}
17157
17158// GoString returns the string representation
17159func (s RetrieveTapeRecoveryPointInput) GoString() string {
17160	return s.String()
17161}
17162
17163// Validate inspects the fields of the type to determine if they are valid.
17164func (s *RetrieveTapeRecoveryPointInput) Validate() error {
17165	invalidParams := request.ErrInvalidParams{Context: "RetrieveTapeRecoveryPointInput"}
17166	if s.GatewayARN == nil {
17167		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17168	}
17169	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17170		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17171	}
17172	if s.TapeARN == nil {
17173		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
17174	}
17175	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
17176		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
17177	}
17178
17179	if invalidParams.Len() > 0 {
17180		return invalidParams
17181	}
17182	return nil
17183}
17184
17185// SetGatewayARN sets the GatewayARN field's value.
17186func (s *RetrieveTapeRecoveryPointInput) SetGatewayARN(v string) *RetrieveTapeRecoveryPointInput {
17187	s.GatewayARN = &v
17188	return s
17189}
17190
17191// SetTapeARN sets the TapeARN field's value.
17192func (s *RetrieveTapeRecoveryPointInput) SetTapeARN(v string) *RetrieveTapeRecoveryPointInput {
17193	s.TapeARN = &v
17194	return s
17195}
17196
17197// RetrieveTapeRecoveryPointOutput
17198type RetrieveTapeRecoveryPointOutput struct {
17199	_ struct{} `type:"structure"`
17200
17201	// The Amazon Resource Name (ARN) of the virtual tape for which the recovery
17202	// point was retrieved.
17203	TapeARN *string `min:"50" type:"string"`
17204}
17205
17206// String returns the string representation
17207func (s RetrieveTapeRecoveryPointOutput) String() string {
17208	return awsutil.Prettify(s)
17209}
17210
17211// GoString returns the string representation
17212func (s RetrieveTapeRecoveryPointOutput) GoString() string {
17213	return s.String()
17214}
17215
17216// SetTapeARN sets the TapeARN field's value.
17217func (s *RetrieveTapeRecoveryPointOutput) SetTapeARN(v string) *RetrieveTapeRecoveryPointOutput {
17218	s.TapeARN = &v
17219	return s
17220}
17221
17222// The Windows file permissions and ownership information assigned, by default,
17223// to native S3 objects when file gateway discovers them in S3 buckets. This
17224// operation is only supported for file gateways.
17225type SMBFileShareInfo struct {
17226	_ struct{} `type:"structure"`
17227
17228	// Indicates whether AccessBasedEnumeration is enabled.
17229	AccessBasedEnumeration *bool `type:"boolean"`
17230
17231	// A list of users or groups in the Active Directory that have administrator
17232	// rights to the file share. A group must be prefixed with the @ character.
17233	// Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1.
17234	// Can only be set if Authentication is set to ActiveDirectory.
17235	AdminUserList []*string `type:"list"`
17236
17237	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
17238	AuditDestinationARN *string `type:"string"`
17239
17240	// The authentication method of the file share. The default is ActiveDirectory.
17241	//
17242	// Valid Values: ActiveDirectory | GuestAccess
17243	Authentication *string `min:"5" type:"string"`
17244
17245	// Refresh cache information.
17246	CacheAttributes *CacheAttributes `type:"structure"`
17247
17248	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
17249	// client determines the case sensitivity. For CaseSensitive, the gateway determines
17250	// the case sensitivity. The default value is ClientSpecified.
17251	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
17252
17253	// The default storage class for objects put into an Amazon S3 bucket by the
17254	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
17255	//
17256	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
17257	DefaultStorageClass *string `min:"5" type:"string"`
17258
17259	// The Amazon Resource Name (ARN) of the file share.
17260	FileShareARN *string `min:"50" type:"string"`
17261
17262	// The ID of the file share.
17263	FileShareId *string `min:"12" type:"string"`
17264
17265	// The name of the file share. Optional.
17266	//
17267	// FileShareName must be set if an S3 prefix name is set in LocationARN.
17268	FileShareName *string `min:"1" type:"string"`
17269
17270	// The status of the file share.
17271	//
17272	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
17273	FileShareStatus *string `min:"3" type:"string"`
17274
17275	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17276	// to return a list of gateways for your account and AWS Region.
17277	GatewayARN *string `min:"50" type:"string"`
17278
17279	// A value that enables guessing of the MIME type for uploaded objects based
17280	// on file extensions. Set this value to true to enable MIME type guessing,
17281	// otherwise set to false. The default value is true.
17282	//
17283	// Valid Values: true | false
17284	GuessMIMETypeEnabled *bool `type:"boolean"`
17285
17286	// A list of users or groups in the Active Directory that are not allowed to
17287	// access the file share. A group must be prefixed with the @ character. Acceptable
17288	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
17289	// be set if Authentication is set to ActiveDirectory.
17290	InvalidUserList []*string `type:"list"`
17291
17292	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
17293	// key, or false to use a key managed by Amazon S3. Optional.
17294	//
17295	// Valid Values: true | false
17296	KMSEncrypted *bool `type:"boolean"`
17297
17298	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
17299	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
17300	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
17301	KMSKey *string `min:"7" type:"string"`
17302
17303	// The ARN of the backend storage used for storing file data. A prefix name
17304	// can be added to the S3 bucket name. It must end with a "/".
17305	LocationARN *string `min:"16" type:"string"`
17306
17307	// The notification policy of the file share.
17308	NotificationPolicy *string `min:"2" type:"string"`
17309
17310	// A value that sets the access control list (ACL) permission for objects in
17311	// the S3 bucket that a file gateway puts objects into. The default value is
17312	// private.
17313	ObjectACL *string `type:"string" enum:"ObjectACL"`
17314
17315	// The file share path used by the SMB client to identify the mount point.
17316	Path *string `type:"string"`
17317
17318	// A value that sets the write status of a file share. Set this value to true
17319	// to set the write status to read-only, otherwise set to false.
17320	//
17321	// Valid Values: true | false
17322	ReadOnly *bool `type:"boolean"`
17323
17324	// A value that sets who pays the cost of the request and the cost associated
17325	// with data download from the S3 bucket. If this value is set to true, the
17326	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
17327	// S3 bucket owner always pays the cost of storing data.
17328	//
17329	// RequesterPays is a configuration for the S3 bucket that backs the file share,
17330	// so make sure that the configuration on the file share is the same as the
17331	// S3 bucket configuration.
17332	//
17333	// Valid Values: true | false
17334	RequesterPays *bool `type:"boolean"`
17335
17336	// The ARN of the IAM role that file gateway assumes when it accesses the underlying
17337	// storage.
17338	Role *string `min:"20" type:"string"`
17339
17340	// If this value is set to true, it indicates that access control list (ACL)
17341	// is enabled on the SMB file share. If it is set to false, it indicates that
17342	// file and directory permissions are mapped to the POSIX permission.
17343	//
17344	// For more information, see Using Microsoft Windows ACLs to control access
17345	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
17346	// in the AWS Storage Gateway User Guide.
17347	SMBACLEnabled *bool `type:"boolean"`
17348
17349	// A list of up to 50 tags assigned to the SMB file share, sorted alphabetically
17350	// by key name. Each tag is a key-value pair. For a gateway with more than 10
17351	// tags assigned, you can view all tags using the ListTagsForResource API operation.
17352	Tags []*Tag `type:"list"`
17353
17354	// A list of users or groups in the Active Directory that are allowed to access
17355	// the file share. A group must be prefixed with the @ character. Acceptable
17356	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
17357	// be set if Authentication is set to ActiveDirectory.
17358	ValidUserList []*string `type:"list"`
17359}
17360
17361// String returns the string representation
17362func (s SMBFileShareInfo) String() string {
17363	return awsutil.Prettify(s)
17364}
17365
17366// GoString returns the string representation
17367func (s SMBFileShareInfo) GoString() string {
17368	return s.String()
17369}
17370
17371// SetAccessBasedEnumeration sets the AccessBasedEnumeration field's value.
17372func (s *SMBFileShareInfo) SetAccessBasedEnumeration(v bool) *SMBFileShareInfo {
17373	s.AccessBasedEnumeration = &v
17374	return s
17375}
17376
17377// SetAdminUserList sets the AdminUserList field's value.
17378func (s *SMBFileShareInfo) SetAdminUserList(v []*string) *SMBFileShareInfo {
17379	s.AdminUserList = v
17380	return s
17381}
17382
17383// SetAuditDestinationARN sets the AuditDestinationARN field's value.
17384func (s *SMBFileShareInfo) SetAuditDestinationARN(v string) *SMBFileShareInfo {
17385	s.AuditDestinationARN = &v
17386	return s
17387}
17388
17389// SetAuthentication sets the Authentication field's value.
17390func (s *SMBFileShareInfo) SetAuthentication(v string) *SMBFileShareInfo {
17391	s.Authentication = &v
17392	return s
17393}
17394
17395// SetCacheAttributes sets the CacheAttributes field's value.
17396func (s *SMBFileShareInfo) SetCacheAttributes(v *CacheAttributes) *SMBFileShareInfo {
17397	s.CacheAttributes = v
17398	return s
17399}
17400
17401// SetCaseSensitivity sets the CaseSensitivity field's value.
17402func (s *SMBFileShareInfo) SetCaseSensitivity(v string) *SMBFileShareInfo {
17403	s.CaseSensitivity = &v
17404	return s
17405}
17406
17407// SetDefaultStorageClass sets the DefaultStorageClass field's value.
17408func (s *SMBFileShareInfo) SetDefaultStorageClass(v string) *SMBFileShareInfo {
17409	s.DefaultStorageClass = &v
17410	return s
17411}
17412
17413// SetFileShareARN sets the FileShareARN field's value.
17414func (s *SMBFileShareInfo) SetFileShareARN(v string) *SMBFileShareInfo {
17415	s.FileShareARN = &v
17416	return s
17417}
17418
17419// SetFileShareId sets the FileShareId field's value.
17420func (s *SMBFileShareInfo) SetFileShareId(v string) *SMBFileShareInfo {
17421	s.FileShareId = &v
17422	return s
17423}
17424
17425// SetFileShareName sets the FileShareName field's value.
17426func (s *SMBFileShareInfo) SetFileShareName(v string) *SMBFileShareInfo {
17427	s.FileShareName = &v
17428	return s
17429}
17430
17431// SetFileShareStatus sets the FileShareStatus field's value.
17432func (s *SMBFileShareInfo) SetFileShareStatus(v string) *SMBFileShareInfo {
17433	s.FileShareStatus = &v
17434	return s
17435}
17436
17437// SetGatewayARN sets the GatewayARN field's value.
17438func (s *SMBFileShareInfo) SetGatewayARN(v string) *SMBFileShareInfo {
17439	s.GatewayARN = &v
17440	return s
17441}
17442
17443// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
17444func (s *SMBFileShareInfo) SetGuessMIMETypeEnabled(v bool) *SMBFileShareInfo {
17445	s.GuessMIMETypeEnabled = &v
17446	return s
17447}
17448
17449// SetInvalidUserList sets the InvalidUserList field's value.
17450func (s *SMBFileShareInfo) SetInvalidUserList(v []*string) *SMBFileShareInfo {
17451	s.InvalidUserList = v
17452	return s
17453}
17454
17455// SetKMSEncrypted sets the KMSEncrypted field's value.
17456func (s *SMBFileShareInfo) SetKMSEncrypted(v bool) *SMBFileShareInfo {
17457	s.KMSEncrypted = &v
17458	return s
17459}
17460
17461// SetKMSKey sets the KMSKey field's value.
17462func (s *SMBFileShareInfo) SetKMSKey(v string) *SMBFileShareInfo {
17463	s.KMSKey = &v
17464	return s
17465}
17466
17467// SetLocationARN sets the LocationARN field's value.
17468func (s *SMBFileShareInfo) SetLocationARN(v string) *SMBFileShareInfo {
17469	s.LocationARN = &v
17470	return s
17471}
17472
17473// SetNotificationPolicy sets the NotificationPolicy field's value.
17474func (s *SMBFileShareInfo) SetNotificationPolicy(v string) *SMBFileShareInfo {
17475	s.NotificationPolicy = &v
17476	return s
17477}
17478
17479// SetObjectACL sets the ObjectACL field's value.
17480func (s *SMBFileShareInfo) SetObjectACL(v string) *SMBFileShareInfo {
17481	s.ObjectACL = &v
17482	return s
17483}
17484
17485// SetPath sets the Path field's value.
17486func (s *SMBFileShareInfo) SetPath(v string) *SMBFileShareInfo {
17487	s.Path = &v
17488	return s
17489}
17490
17491// SetReadOnly sets the ReadOnly field's value.
17492func (s *SMBFileShareInfo) SetReadOnly(v bool) *SMBFileShareInfo {
17493	s.ReadOnly = &v
17494	return s
17495}
17496
17497// SetRequesterPays sets the RequesterPays field's value.
17498func (s *SMBFileShareInfo) SetRequesterPays(v bool) *SMBFileShareInfo {
17499	s.RequesterPays = &v
17500	return s
17501}
17502
17503// SetRole sets the Role field's value.
17504func (s *SMBFileShareInfo) SetRole(v string) *SMBFileShareInfo {
17505	s.Role = &v
17506	return s
17507}
17508
17509// SetSMBACLEnabled sets the SMBACLEnabled field's value.
17510func (s *SMBFileShareInfo) SetSMBACLEnabled(v bool) *SMBFileShareInfo {
17511	s.SMBACLEnabled = &v
17512	return s
17513}
17514
17515// SetTags sets the Tags field's value.
17516func (s *SMBFileShareInfo) SetTags(v []*Tag) *SMBFileShareInfo {
17517	s.Tags = v
17518	return s
17519}
17520
17521// SetValidUserList sets the ValidUserList field's value.
17522func (s *SMBFileShareInfo) SetValidUserList(v []*string) *SMBFileShareInfo {
17523	s.ValidUserList = v
17524	return s
17525}
17526
17527// An internal server error has occurred because the service is unavailable.
17528// For more information, see the error and message fields.
17529type ServiceUnavailableError struct {
17530	_            struct{}                  `type:"structure"`
17531	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17532
17533	// A StorageGatewayError that provides more information about the cause of the
17534	// error.
17535	Error_ *Error `locationName:"error" type:"structure"`
17536
17537	// A human-readable message describing the error that occurred.
17538	Message_ *string `locationName:"message" type:"string"`
17539}
17540
17541// String returns the string representation
17542func (s ServiceUnavailableError) String() string {
17543	return awsutil.Prettify(s)
17544}
17545
17546// GoString returns the string representation
17547func (s ServiceUnavailableError) GoString() string {
17548	return s.String()
17549}
17550
17551func newErrorServiceUnavailableError(v protocol.ResponseMetadata) error {
17552	return &ServiceUnavailableError{
17553		RespMetadata: v,
17554	}
17555}
17556
17557// Code returns the exception type name.
17558func (s *ServiceUnavailableError) Code() string {
17559	return "ServiceUnavailableError"
17560}
17561
17562// Message returns the exception's message.
17563func (s *ServiceUnavailableError) Message() string {
17564	if s.Message_ != nil {
17565		return *s.Message_
17566	}
17567	return ""
17568}
17569
17570// OrigErr always returns nil, satisfies awserr.Error interface.
17571func (s *ServiceUnavailableError) OrigErr() error {
17572	return nil
17573}
17574
17575func (s *ServiceUnavailableError) Error() string {
17576	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
17577}
17578
17579// Status code returns the HTTP status code for the request's response error.
17580func (s *ServiceUnavailableError) StatusCode() int {
17581	return s.RespMetadata.StatusCode
17582}
17583
17584// RequestID returns the service's response RequestID for request.
17585func (s *ServiceUnavailableError) RequestID() string {
17586	return s.RespMetadata.RequestID
17587}
17588
17589// SetLocalConsolePasswordInput
17590type SetLocalConsolePasswordInput struct {
17591	_ struct{} `type:"structure"`
17592
17593	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17594	// to return a list of gateways for your account and AWS Region.
17595	//
17596	// GatewayARN is a required field
17597	GatewayARN *string `min:"50" type:"string" required:"true"`
17598
17599	// The password you want to set for your VM local console.
17600	//
17601	// LocalConsolePassword is a required field
17602	LocalConsolePassword *string `min:"6" type:"string" required:"true" sensitive:"true"`
17603}
17604
17605// String returns the string representation
17606func (s SetLocalConsolePasswordInput) String() string {
17607	return awsutil.Prettify(s)
17608}
17609
17610// GoString returns the string representation
17611func (s SetLocalConsolePasswordInput) GoString() string {
17612	return s.String()
17613}
17614
17615// Validate inspects the fields of the type to determine if they are valid.
17616func (s *SetLocalConsolePasswordInput) Validate() error {
17617	invalidParams := request.ErrInvalidParams{Context: "SetLocalConsolePasswordInput"}
17618	if s.GatewayARN == nil {
17619		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17620	}
17621	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17622		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17623	}
17624	if s.LocalConsolePassword == nil {
17625		invalidParams.Add(request.NewErrParamRequired("LocalConsolePassword"))
17626	}
17627	if s.LocalConsolePassword != nil && len(*s.LocalConsolePassword) < 6 {
17628		invalidParams.Add(request.NewErrParamMinLen("LocalConsolePassword", 6))
17629	}
17630
17631	if invalidParams.Len() > 0 {
17632		return invalidParams
17633	}
17634	return nil
17635}
17636
17637// SetGatewayARN sets the GatewayARN field's value.
17638func (s *SetLocalConsolePasswordInput) SetGatewayARN(v string) *SetLocalConsolePasswordInput {
17639	s.GatewayARN = &v
17640	return s
17641}
17642
17643// SetLocalConsolePassword sets the LocalConsolePassword field's value.
17644func (s *SetLocalConsolePasswordInput) SetLocalConsolePassword(v string) *SetLocalConsolePasswordInput {
17645	s.LocalConsolePassword = &v
17646	return s
17647}
17648
17649type SetLocalConsolePasswordOutput struct {
17650	_ struct{} `type:"structure"`
17651
17652	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17653	// to return a list of gateways for your account and AWS Region.
17654	GatewayARN *string `min:"50" type:"string"`
17655}
17656
17657// String returns the string representation
17658func (s SetLocalConsolePasswordOutput) String() string {
17659	return awsutil.Prettify(s)
17660}
17661
17662// GoString returns the string representation
17663func (s SetLocalConsolePasswordOutput) GoString() string {
17664	return s.String()
17665}
17666
17667// SetGatewayARN sets the GatewayARN field's value.
17668func (s *SetLocalConsolePasswordOutput) SetGatewayARN(v string) *SetLocalConsolePasswordOutput {
17669	s.GatewayARN = &v
17670	return s
17671}
17672
17673// SetSMBGuestPasswordInput
17674type SetSMBGuestPasswordInput struct {
17675	_ struct{} `type:"structure"`
17676
17677	// The Amazon Resource Name (ARN) of the file gateway the SMB file share is
17678	// associated with.
17679	//
17680	// GatewayARN is a required field
17681	GatewayARN *string `min:"50" type:"string" required:"true"`
17682
17683	// The password that you want to set for your SMB server.
17684	//
17685	// Password is a required field
17686	Password *string `min:"6" type:"string" required:"true" sensitive:"true"`
17687}
17688
17689// String returns the string representation
17690func (s SetSMBGuestPasswordInput) String() string {
17691	return awsutil.Prettify(s)
17692}
17693
17694// GoString returns the string representation
17695func (s SetSMBGuestPasswordInput) GoString() string {
17696	return s.String()
17697}
17698
17699// Validate inspects the fields of the type to determine if they are valid.
17700func (s *SetSMBGuestPasswordInput) Validate() error {
17701	invalidParams := request.ErrInvalidParams{Context: "SetSMBGuestPasswordInput"}
17702	if s.GatewayARN == nil {
17703		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17704	}
17705	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17706		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17707	}
17708	if s.Password == nil {
17709		invalidParams.Add(request.NewErrParamRequired("Password"))
17710	}
17711	if s.Password != nil && len(*s.Password) < 6 {
17712		invalidParams.Add(request.NewErrParamMinLen("Password", 6))
17713	}
17714
17715	if invalidParams.Len() > 0 {
17716		return invalidParams
17717	}
17718	return nil
17719}
17720
17721// SetGatewayARN sets the GatewayARN field's value.
17722func (s *SetSMBGuestPasswordInput) SetGatewayARN(v string) *SetSMBGuestPasswordInput {
17723	s.GatewayARN = &v
17724	return s
17725}
17726
17727// SetPassword sets the Password field's value.
17728func (s *SetSMBGuestPasswordInput) SetPassword(v string) *SetSMBGuestPasswordInput {
17729	s.Password = &v
17730	return s
17731}
17732
17733type SetSMBGuestPasswordOutput struct {
17734	_ struct{} `type:"structure"`
17735
17736	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17737	// to return a list of gateways for your account and AWS Region.
17738	GatewayARN *string `min:"50" type:"string"`
17739}
17740
17741// String returns the string representation
17742func (s SetSMBGuestPasswordOutput) String() string {
17743	return awsutil.Prettify(s)
17744}
17745
17746// GoString returns the string representation
17747func (s SetSMBGuestPasswordOutput) GoString() string {
17748	return s.String()
17749}
17750
17751// SetGatewayARN sets the GatewayARN field's value.
17752func (s *SetSMBGuestPasswordOutput) SetGatewayARN(v string) *SetSMBGuestPasswordOutput {
17753	s.GatewayARN = &v
17754	return s
17755}
17756
17757// A JSON object containing the Amazon Resource Name (ARN) of the gateway to
17758// shut down.
17759type ShutdownGatewayInput struct {
17760	_ struct{} `type:"structure"`
17761
17762	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17763	// to return a list of gateways for your account and AWS Region.
17764	//
17765	// GatewayARN is a required field
17766	GatewayARN *string `min:"50" type:"string" required:"true"`
17767}
17768
17769// String returns the string representation
17770func (s ShutdownGatewayInput) String() string {
17771	return awsutil.Prettify(s)
17772}
17773
17774// GoString returns the string representation
17775func (s ShutdownGatewayInput) GoString() string {
17776	return s.String()
17777}
17778
17779// Validate inspects the fields of the type to determine if they are valid.
17780func (s *ShutdownGatewayInput) Validate() error {
17781	invalidParams := request.ErrInvalidParams{Context: "ShutdownGatewayInput"}
17782	if s.GatewayARN == nil {
17783		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17784	}
17785	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17786		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17787	}
17788
17789	if invalidParams.Len() > 0 {
17790		return invalidParams
17791	}
17792	return nil
17793}
17794
17795// SetGatewayARN sets the GatewayARN field's value.
17796func (s *ShutdownGatewayInput) SetGatewayARN(v string) *ShutdownGatewayInput {
17797	s.GatewayARN = &v
17798	return s
17799}
17800
17801// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
17802// was shut down.
17803type ShutdownGatewayOutput struct {
17804	_ struct{} `type:"structure"`
17805
17806	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17807	// to return a list of gateways for your account and AWS Region.
17808	GatewayARN *string `min:"50" type:"string"`
17809}
17810
17811// String returns the string representation
17812func (s ShutdownGatewayOutput) String() string {
17813	return awsutil.Prettify(s)
17814}
17815
17816// GoString returns the string representation
17817func (s ShutdownGatewayOutput) GoString() string {
17818	return s.String()
17819}
17820
17821// SetGatewayARN sets the GatewayARN field's value.
17822func (s *ShutdownGatewayOutput) SetGatewayARN(v string) *ShutdownGatewayOutput {
17823	s.GatewayARN = &v
17824	return s
17825}
17826
17827type StartAvailabilityMonitorTestInput struct {
17828	_ struct{} `type:"structure"`
17829
17830	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17831	// to return a list of gateways for your account and AWS Region.
17832	//
17833	// GatewayARN is a required field
17834	GatewayARN *string `min:"50" type:"string" required:"true"`
17835}
17836
17837// String returns the string representation
17838func (s StartAvailabilityMonitorTestInput) String() string {
17839	return awsutil.Prettify(s)
17840}
17841
17842// GoString returns the string representation
17843func (s StartAvailabilityMonitorTestInput) GoString() string {
17844	return s.String()
17845}
17846
17847// Validate inspects the fields of the type to determine if they are valid.
17848func (s *StartAvailabilityMonitorTestInput) Validate() error {
17849	invalidParams := request.ErrInvalidParams{Context: "StartAvailabilityMonitorTestInput"}
17850	if s.GatewayARN == nil {
17851		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17852	}
17853	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17854		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17855	}
17856
17857	if invalidParams.Len() > 0 {
17858		return invalidParams
17859	}
17860	return nil
17861}
17862
17863// SetGatewayARN sets the GatewayARN field's value.
17864func (s *StartAvailabilityMonitorTestInput) SetGatewayARN(v string) *StartAvailabilityMonitorTestInput {
17865	s.GatewayARN = &v
17866	return s
17867}
17868
17869type StartAvailabilityMonitorTestOutput struct {
17870	_ struct{} `type:"structure"`
17871
17872	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17873	// to return a list of gateways for your account and AWS Region.
17874	GatewayARN *string `min:"50" type:"string"`
17875}
17876
17877// String returns the string representation
17878func (s StartAvailabilityMonitorTestOutput) String() string {
17879	return awsutil.Prettify(s)
17880}
17881
17882// GoString returns the string representation
17883func (s StartAvailabilityMonitorTestOutput) GoString() string {
17884	return s.String()
17885}
17886
17887// SetGatewayARN sets the GatewayARN field's value.
17888func (s *StartAvailabilityMonitorTestOutput) SetGatewayARN(v string) *StartAvailabilityMonitorTestOutput {
17889	s.GatewayARN = &v
17890	return s
17891}
17892
17893// A JSON object containing the Amazon Resource Name (ARN) of the gateway to
17894// start.
17895type StartGatewayInput struct {
17896	_ struct{} `type:"structure"`
17897
17898	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17899	// to return a list of gateways for your account and AWS Region.
17900	//
17901	// GatewayARN is a required field
17902	GatewayARN *string `min:"50" type:"string" required:"true"`
17903}
17904
17905// String returns the string representation
17906func (s StartGatewayInput) String() string {
17907	return awsutil.Prettify(s)
17908}
17909
17910// GoString returns the string representation
17911func (s StartGatewayInput) GoString() string {
17912	return s.String()
17913}
17914
17915// Validate inspects the fields of the type to determine if they are valid.
17916func (s *StartGatewayInput) Validate() error {
17917	invalidParams := request.ErrInvalidParams{Context: "StartGatewayInput"}
17918	if s.GatewayARN == nil {
17919		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17920	}
17921	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17922		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17923	}
17924
17925	if invalidParams.Len() > 0 {
17926		return invalidParams
17927	}
17928	return nil
17929}
17930
17931// SetGatewayARN sets the GatewayARN field's value.
17932func (s *StartGatewayInput) SetGatewayARN(v string) *StartGatewayInput {
17933	s.GatewayARN = &v
17934	return s
17935}
17936
17937// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
17938// was restarted.
17939type StartGatewayOutput struct {
17940	_ struct{} `type:"structure"`
17941
17942	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17943	// to return a list of gateways for your account and AWS Region.
17944	GatewayARN *string `min:"50" type:"string"`
17945}
17946
17947// String returns the string representation
17948func (s StartGatewayOutput) String() string {
17949	return awsutil.Prettify(s)
17950}
17951
17952// GoString returns the string representation
17953func (s StartGatewayOutput) GoString() string {
17954	return s.String()
17955}
17956
17957// SetGatewayARN sets the GatewayARN field's value.
17958func (s *StartGatewayOutput) SetGatewayARN(v string) *StartGatewayOutput {
17959	s.GatewayARN = &v
17960	return s
17961}
17962
17963// Describes an iSCSI stored volume.
17964type StorediSCSIVolume struct {
17965	_ struct{} `type:"structure"`
17966
17967	// The date the volume was created. Volumes created prior to March 28, 2017
17968	// don’t have this timestamp.
17969	CreatedDate *time.Time `type:"timestamp"`
17970
17971	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
17972	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
17973	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
17974	KMSKey *string `min:"7" type:"string"`
17975
17976	// Indicates if when the stored volume was created, existing data on the underlying
17977	// local disk was preserved.
17978	//
17979	// Valid Values: true | false
17980	PreservedExistingData *bool `type:"boolean"`
17981
17982	// If the stored volume was created from a snapshot, this field contains the
17983	// snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
17984	SourceSnapshotId *string `type:"string"`
17985
17986	// The name of the iSCSI target used by an initiator to connect to a volume
17987	// and used as a suffix for the target ARN. For example, specifying TargetName
17988	// 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.
17989	// The target name must be unique across all volumes on a gateway.
17990	//
17991	// If you don't specify a value, Storage Gateway uses the value that was previously
17992	// used for this volume as the new target name.
17993	TargetName *string `min:"1" type:"string"`
17994
17995	// The Amazon Resource Name (ARN) of the storage volume.
17996	VolumeARN *string `min:"50" type:"string"`
17997
17998	// A value that indicates whether a storage volume is attached to, detached
17999	// from, or is in the process of detaching from a gateway. For more information,
18000	// see Moving your volumes to a different gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
18001	VolumeAttachmentStatus *string `min:"3" type:"string"`
18002
18003	// The ID of the local disk that was specified in the CreateStorediSCSIVolume
18004	// operation.
18005	VolumeDiskId *string `min:"1" type:"string"`
18006
18007	// The unique identifier of the volume, e.g., vol-AE4B946D.
18008	VolumeId *string `min:"12" type:"string"`
18009
18010	// Represents the percentage complete if the volume is restoring or bootstrapping
18011	// that represents the percent of data transferred. This field does not appear
18012	// in the response if the stored volume is not restoring or bootstrapping.
18013	VolumeProgress *float64 `type:"double"`
18014
18015	// The size of the volume in bytes.
18016	VolumeSizeInBytes *int64 `type:"long"`
18017
18018	// One of the VolumeStatus values that indicates the state of the storage volume.
18019	VolumeStatus *string `min:"3" type:"string"`
18020
18021	// One of the VolumeType enumeration values describing the type of the volume.
18022	VolumeType *string `min:"3" type:"string"`
18023
18024	// The size of the data stored on the volume in bytes. This value is calculated
18025	// based on the number of blocks that are touched, instead of the actual amount
18026	// of data written. This value can be useful for sequential write patterns but
18027	// less accurate for random write patterns. VolumeUsedInBytes is different from
18028	// the compressed size of the volume, which is the value that is used to calculate
18029	// your bill.
18030	//
18031	// This value is not available for volumes created prior to May 13, 2015, until
18032	// you store data on the volume.
18033	VolumeUsedInBytes *int64 `type:"long"`
18034
18035	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
18036	// for one stored volume.
18037	VolumeiSCSIAttributes *VolumeiSCSIAttributes `type:"structure"`
18038}
18039
18040// String returns the string representation
18041func (s StorediSCSIVolume) String() string {
18042	return awsutil.Prettify(s)
18043}
18044
18045// GoString returns the string representation
18046func (s StorediSCSIVolume) GoString() string {
18047	return s.String()
18048}
18049
18050// SetCreatedDate sets the CreatedDate field's value.
18051func (s *StorediSCSIVolume) SetCreatedDate(v time.Time) *StorediSCSIVolume {
18052	s.CreatedDate = &v
18053	return s
18054}
18055
18056// SetKMSKey sets the KMSKey field's value.
18057func (s *StorediSCSIVolume) SetKMSKey(v string) *StorediSCSIVolume {
18058	s.KMSKey = &v
18059	return s
18060}
18061
18062// SetPreservedExistingData sets the PreservedExistingData field's value.
18063func (s *StorediSCSIVolume) SetPreservedExistingData(v bool) *StorediSCSIVolume {
18064	s.PreservedExistingData = &v
18065	return s
18066}
18067
18068// SetSourceSnapshotId sets the SourceSnapshotId field's value.
18069func (s *StorediSCSIVolume) SetSourceSnapshotId(v string) *StorediSCSIVolume {
18070	s.SourceSnapshotId = &v
18071	return s
18072}
18073
18074// SetTargetName sets the TargetName field's value.
18075func (s *StorediSCSIVolume) SetTargetName(v string) *StorediSCSIVolume {
18076	s.TargetName = &v
18077	return s
18078}
18079
18080// SetVolumeARN sets the VolumeARN field's value.
18081func (s *StorediSCSIVolume) SetVolumeARN(v string) *StorediSCSIVolume {
18082	s.VolumeARN = &v
18083	return s
18084}
18085
18086// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
18087func (s *StorediSCSIVolume) SetVolumeAttachmentStatus(v string) *StorediSCSIVolume {
18088	s.VolumeAttachmentStatus = &v
18089	return s
18090}
18091
18092// SetVolumeDiskId sets the VolumeDiskId field's value.
18093func (s *StorediSCSIVolume) SetVolumeDiskId(v string) *StorediSCSIVolume {
18094	s.VolumeDiskId = &v
18095	return s
18096}
18097
18098// SetVolumeId sets the VolumeId field's value.
18099func (s *StorediSCSIVolume) SetVolumeId(v string) *StorediSCSIVolume {
18100	s.VolumeId = &v
18101	return s
18102}
18103
18104// SetVolumeProgress sets the VolumeProgress field's value.
18105func (s *StorediSCSIVolume) SetVolumeProgress(v float64) *StorediSCSIVolume {
18106	s.VolumeProgress = &v
18107	return s
18108}
18109
18110// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
18111func (s *StorediSCSIVolume) SetVolumeSizeInBytes(v int64) *StorediSCSIVolume {
18112	s.VolumeSizeInBytes = &v
18113	return s
18114}
18115
18116// SetVolumeStatus sets the VolumeStatus field's value.
18117func (s *StorediSCSIVolume) SetVolumeStatus(v string) *StorediSCSIVolume {
18118	s.VolumeStatus = &v
18119	return s
18120}
18121
18122// SetVolumeType sets the VolumeType field's value.
18123func (s *StorediSCSIVolume) SetVolumeType(v string) *StorediSCSIVolume {
18124	s.VolumeType = &v
18125	return s
18126}
18127
18128// SetVolumeUsedInBytes sets the VolumeUsedInBytes field's value.
18129func (s *StorediSCSIVolume) SetVolumeUsedInBytes(v int64) *StorediSCSIVolume {
18130	s.VolumeUsedInBytes = &v
18131	return s
18132}
18133
18134// SetVolumeiSCSIAttributes sets the VolumeiSCSIAttributes field's value.
18135func (s *StorediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *StorediSCSIVolume {
18136	s.VolumeiSCSIAttributes = v
18137	return s
18138}
18139
18140// A key-value pair that helps you manage, filter, and search for your resource.
18141// Allowed characters: letters, white space, and numbers, representable in UTF-8,
18142// and the following characters: + - = . _ : /.
18143type Tag struct {
18144	_ struct{} `type:"structure"`
18145
18146	// Tag key. The key can't start with aws:.
18147	//
18148	// Key is a required field
18149	Key *string `min:"1" type:"string" required:"true"`
18150
18151	// Value of the tag key.
18152	//
18153	// Value is a required field
18154	Value *string `type:"string" required:"true"`
18155}
18156
18157// String returns the string representation
18158func (s Tag) String() string {
18159	return awsutil.Prettify(s)
18160}
18161
18162// GoString returns the string representation
18163func (s Tag) GoString() string {
18164	return s.String()
18165}
18166
18167// Validate inspects the fields of the type to determine if they are valid.
18168func (s *Tag) Validate() error {
18169	invalidParams := request.ErrInvalidParams{Context: "Tag"}
18170	if s.Key == nil {
18171		invalidParams.Add(request.NewErrParamRequired("Key"))
18172	}
18173	if s.Key != nil && len(*s.Key) < 1 {
18174		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
18175	}
18176	if s.Value == nil {
18177		invalidParams.Add(request.NewErrParamRequired("Value"))
18178	}
18179
18180	if invalidParams.Len() > 0 {
18181		return invalidParams
18182	}
18183	return nil
18184}
18185
18186// SetKey sets the Key field's value.
18187func (s *Tag) SetKey(v string) *Tag {
18188	s.Key = &v
18189	return s
18190}
18191
18192// SetValue sets the Value field's value.
18193func (s *Tag) SetValue(v string) *Tag {
18194	s.Value = &v
18195	return s
18196}
18197
18198// Describes a virtual tape object.
18199type Tape struct {
18200	_ struct{} `type:"structure"`
18201
18202	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
18203	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
18204	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
18205	KMSKey *string `min:"7" type:"string"`
18206
18207	// The date that the tape enters a custom tape pool.
18208	PoolEntryDate *time.Time `type:"timestamp"`
18209
18210	// The ID of the pool that contains tapes that will be archived. The tapes in
18211	// this pool are archived in the S3 storage class that is associated with the
18212	// pool. When you use your backup application to eject the tape, the tape is
18213	// archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive)
18214	// that corresponds to the pool.
18215	//
18216	// Valid Values: GLACIER | DEEP_ARCHIVE
18217	PoolId *string `min:"1" type:"string"`
18218
18219	// For archiving virtual tapes, indicates how much data remains to be uploaded
18220	// before archiving is complete.
18221	//
18222	// Range: 0 (not started) to 100 (complete).
18223	Progress *float64 `type:"double"`
18224
18225	// The date that the tape is first archived with tape retention lock enabled.
18226	RetentionStartDate *time.Time `type:"timestamp"`
18227
18228	// The Amazon Resource Name (ARN) of the virtual tape.
18229	TapeARN *string `min:"50" type:"string"`
18230
18231	// The barcode that identifies a specific virtual tape.
18232	TapeBarcode *string `min:"7" type:"string"`
18233
18234	// The date the virtual tape was created.
18235	TapeCreatedDate *time.Time `type:"timestamp"`
18236
18237	// The size, in bytes, of the virtual tape capacity.
18238	TapeSizeInBytes *int64 `type:"long"`
18239
18240	// The current state of the virtual tape.
18241	TapeStatus *string `type:"string"`
18242
18243	// The size, in bytes, of data stored on the virtual tape.
18244	//
18245	// This value is not available for tapes created prior to May 13, 2015.
18246	TapeUsedInBytes *int64 `type:"long"`
18247
18248	// The virtual tape library (VTL) device that the virtual tape is associated
18249	// with.
18250	VTLDevice *string `min:"50" type:"string"`
18251
18252	// If the tape is archived as write-once-read-many (WORM), this value is true.
18253	Worm *bool `type:"boolean"`
18254}
18255
18256// String returns the string representation
18257func (s Tape) String() string {
18258	return awsutil.Prettify(s)
18259}
18260
18261// GoString returns the string representation
18262func (s Tape) GoString() string {
18263	return s.String()
18264}
18265
18266// SetKMSKey sets the KMSKey field's value.
18267func (s *Tape) SetKMSKey(v string) *Tape {
18268	s.KMSKey = &v
18269	return s
18270}
18271
18272// SetPoolEntryDate sets the PoolEntryDate field's value.
18273func (s *Tape) SetPoolEntryDate(v time.Time) *Tape {
18274	s.PoolEntryDate = &v
18275	return s
18276}
18277
18278// SetPoolId sets the PoolId field's value.
18279func (s *Tape) SetPoolId(v string) *Tape {
18280	s.PoolId = &v
18281	return s
18282}
18283
18284// SetProgress sets the Progress field's value.
18285func (s *Tape) SetProgress(v float64) *Tape {
18286	s.Progress = &v
18287	return s
18288}
18289
18290// SetRetentionStartDate sets the RetentionStartDate field's value.
18291func (s *Tape) SetRetentionStartDate(v time.Time) *Tape {
18292	s.RetentionStartDate = &v
18293	return s
18294}
18295
18296// SetTapeARN sets the TapeARN field's value.
18297func (s *Tape) SetTapeARN(v string) *Tape {
18298	s.TapeARN = &v
18299	return s
18300}
18301
18302// SetTapeBarcode sets the TapeBarcode field's value.
18303func (s *Tape) SetTapeBarcode(v string) *Tape {
18304	s.TapeBarcode = &v
18305	return s
18306}
18307
18308// SetTapeCreatedDate sets the TapeCreatedDate field's value.
18309func (s *Tape) SetTapeCreatedDate(v time.Time) *Tape {
18310	s.TapeCreatedDate = &v
18311	return s
18312}
18313
18314// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
18315func (s *Tape) SetTapeSizeInBytes(v int64) *Tape {
18316	s.TapeSizeInBytes = &v
18317	return s
18318}
18319
18320// SetTapeStatus sets the TapeStatus field's value.
18321func (s *Tape) SetTapeStatus(v string) *Tape {
18322	s.TapeStatus = &v
18323	return s
18324}
18325
18326// SetTapeUsedInBytes sets the TapeUsedInBytes field's value.
18327func (s *Tape) SetTapeUsedInBytes(v int64) *Tape {
18328	s.TapeUsedInBytes = &v
18329	return s
18330}
18331
18332// SetVTLDevice sets the VTLDevice field's value.
18333func (s *Tape) SetVTLDevice(v string) *Tape {
18334	s.VTLDevice = &v
18335	return s
18336}
18337
18338// SetWorm sets the Worm field's value.
18339func (s *Tape) SetWorm(v bool) *Tape {
18340	s.Worm = &v
18341	return s
18342}
18343
18344// Represents a virtual tape that is archived in the virtual tape shelf (VTS).
18345type TapeArchive struct {
18346	_ struct{} `type:"structure"`
18347
18348	// The time that the archiving of the virtual tape was completed.
18349	//
18350	// The default timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z'
18351	// format.
18352	CompletionTime *time.Time `type:"timestamp"`
18353
18354	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
18355	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
18356	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
18357	KMSKey *string `min:"7" type:"string"`
18358
18359	// The time that the tape entered the custom tape pool.
18360	//
18361	// The default timestamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z'
18362	// format.
18363	PoolEntryDate *time.Time `type:"timestamp"`
18364
18365	// The ID of the pool that was used to archive the tape. The tapes in this pool
18366	// are archived in the S3 storage class that is associated with the pool.
18367	//
18368	// Valid Values: GLACIER | DEEP_ARCHIVE
18369	PoolId *string `min:"1" type:"string"`
18370
18371	// If the archived tape is subject to tape retention lock, the date that the
18372	// archived tape started being retained.
18373	RetentionStartDate *time.Time `type:"timestamp"`
18374
18375	// The Amazon Resource Name (ARN) of the tape gateway that the virtual tape
18376	// is being retrieved to.
18377	//
18378	// The virtual tape is retrieved from the virtual tape shelf (VTS).
18379	RetrievedTo *string `min:"50" type:"string"`
18380
18381	// The Amazon Resource Name (ARN) of an archived virtual tape.
18382	TapeARN *string `min:"50" type:"string"`
18383
18384	// The barcode that identifies the archived virtual tape.
18385	TapeBarcode *string `min:"7" type:"string"`
18386
18387	// The date the virtual tape was created.
18388	TapeCreatedDate *time.Time `type:"timestamp"`
18389
18390	// The size, in bytes, of the archived virtual tape.
18391	TapeSizeInBytes *int64 `type:"long"`
18392
18393	// The current state of the archived virtual tape.
18394	TapeStatus *string `type:"string"`
18395
18396	// The size, in bytes, of data stored on the virtual tape.
18397	//
18398	// This value is not available for tapes created prior to May 13, 2015.
18399	TapeUsedInBytes *int64 `type:"long"`
18400
18401	// Set to true if the archived tape is stored as write-once-read-many (WORM).
18402	Worm *bool `type:"boolean"`
18403}
18404
18405// String returns the string representation
18406func (s TapeArchive) String() string {
18407	return awsutil.Prettify(s)
18408}
18409
18410// GoString returns the string representation
18411func (s TapeArchive) GoString() string {
18412	return s.String()
18413}
18414
18415// SetCompletionTime sets the CompletionTime field's value.
18416func (s *TapeArchive) SetCompletionTime(v time.Time) *TapeArchive {
18417	s.CompletionTime = &v
18418	return s
18419}
18420
18421// SetKMSKey sets the KMSKey field's value.
18422func (s *TapeArchive) SetKMSKey(v string) *TapeArchive {
18423	s.KMSKey = &v
18424	return s
18425}
18426
18427// SetPoolEntryDate sets the PoolEntryDate field's value.
18428func (s *TapeArchive) SetPoolEntryDate(v time.Time) *TapeArchive {
18429	s.PoolEntryDate = &v
18430	return s
18431}
18432
18433// SetPoolId sets the PoolId field's value.
18434func (s *TapeArchive) SetPoolId(v string) *TapeArchive {
18435	s.PoolId = &v
18436	return s
18437}
18438
18439// SetRetentionStartDate sets the RetentionStartDate field's value.
18440func (s *TapeArchive) SetRetentionStartDate(v time.Time) *TapeArchive {
18441	s.RetentionStartDate = &v
18442	return s
18443}
18444
18445// SetRetrievedTo sets the RetrievedTo field's value.
18446func (s *TapeArchive) SetRetrievedTo(v string) *TapeArchive {
18447	s.RetrievedTo = &v
18448	return s
18449}
18450
18451// SetTapeARN sets the TapeARN field's value.
18452func (s *TapeArchive) SetTapeARN(v string) *TapeArchive {
18453	s.TapeARN = &v
18454	return s
18455}
18456
18457// SetTapeBarcode sets the TapeBarcode field's value.
18458func (s *TapeArchive) SetTapeBarcode(v string) *TapeArchive {
18459	s.TapeBarcode = &v
18460	return s
18461}
18462
18463// SetTapeCreatedDate sets the TapeCreatedDate field's value.
18464func (s *TapeArchive) SetTapeCreatedDate(v time.Time) *TapeArchive {
18465	s.TapeCreatedDate = &v
18466	return s
18467}
18468
18469// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
18470func (s *TapeArchive) SetTapeSizeInBytes(v int64) *TapeArchive {
18471	s.TapeSizeInBytes = &v
18472	return s
18473}
18474
18475// SetTapeStatus sets the TapeStatus field's value.
18476func (s *TapeArchive) SetTapeStatus(v string) *TapeArchive {
18477	s.TapeStatus = &v
18478	return s
18479}
18480
18481// SetTapeUsedInBytes sets the TapeUsedInBytes field's value.
18482func (s *TapeArchive) SetTapeUsedInBytes(v int64) *TapeArchive {
18483	s.TapeUsedInBytes = &v
18484	return s
18485}
18486
18487// SetWorm sets the Worm field's value.
18488func (s *TapeArchive) SetWorm(v bool) *TapeArchive {
18489	s.Worm = &v
18490	return s
18491}
18492
18493// Describes a virtual tape.
18494type TapeInfo struct {
18495	_ struct{} `type:"structure"`
18496
18497	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18498	// to return a list of gateways for your account and AWS Region.
18499	GatewayARN *string `min:"50" type:"string"`
18500
18501	// The date that the tape entered the custom tape pool with tape retention lock
18502	// enabled.
18503	PoolEntryDate *time.Time `type:"timestamp"`
18504
18505	// The ID of the pool that you want to add your tape to for archiving. The tape
18506	// in this pool is archived in the S3 storage class that is associated with
18507	// the pool. When you use your backup application to eject the tape, the tape
18508	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
18509	// Archive) that corresponds to the pool.
18510	//
18511	// Valid Values: GLACIER | DEEP_ARCHIVE
18512	PoolId *string `min:"1" type:"string"`
18513
18514	// The date that the tape became subject to tape retention lock.
18515	RetentionStartDate *time.Time `type:"timestamp"`
18516
18517	// The Amazon Resource Name (ARN) of a virtual tape.
18518	TapeARN *string `min:"50" type:"string"`
18519
18520	// The barcode that identifies a specific virtual tape.
18521	TapeBarcode *string `min:"7" type:"string"`
18522
18523	// The size, in bytes, of a virtual tape.
18524	TapeSizeInBytes *int64 `type:"long"`
18525
18526	// The status of the tape.
18527	TapeStatus *string `type:"string"`
18528}
18529
18530// String returns the string representation
18531func (s TapeInfo) String() string {
18532	return awsutil.Prettify(s)
18533}
18534
18535// GoString returns the string representation
18536func (s TapeInfo) GoString() string {
18537	return s.String()
18538}
18539
18540// SetGatewayARN sets the GatewayARN field's value.
18541func (s *TapeInfo) SetGatewayARN(v string) *TapeInfo {
18542	s.GatewayARN = &v
18543	return s
18544}
18545
18546// SetPoolEntryDate sets the PoolEntryDate field's value.
18547func (s *TapeInfo) SetPoolEntryDate(v time.Time) *TapeInfo {
18548	s.PoolEntryDate = &v
18549	return s
18550}
18551
18552// SetPoolId sets the PoolId field's value.
18553func (s *TapeInfo) SetPoolId(v string) *TapeInfo {
18554	s.PoolId = &v
18555	return s
18556}
18557
18558// SetRetentionStartDate sets the RetentionStartDate field's value.
18559func (s *TapeInfo) SetRetentionStartDate(v time.Time) *TapeInfo {
18560	s.RetentionStartDate = &v
18561	return s
18562}
18563
18564// SetTapeARN sets the TapeARN field's value.
18565func (s *TapeInfo) SetTapeARN(v string) *TapeInfo {
18566	s.TapeARN = &v
18567	return s
18568}
18569
18570// SetTapeBarcode sets the TapeBarcode field's value.
18571func (s *TapeInfo) SetTapeBarcode(v string) *TapeInfo {
18572	s.TapeBarcode = &v
18573	return s
18574}
18575
18576// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
18577func (s *TapeInfo) SetTapeSizeInBytes(v int64) *TapeInfo {
18578	s.TapeSizeInBytes = &v
18579	return s
18580}
18581
18582// SetTapeStatus sets the TapeStatus field's value.
18583func (s *TapeInfo) SetTapeStatus(v string) *TapeInfo {
18584	s.TapeStatus = &v
18585	return s
18586}
18587
18588// Describes a recovery point.
18589type TapeRecoveryPointInfo struct {
18590	_ struct{} `type:"structure"`
18591
18592	// The Amazon Resource Name (ARN) of the virtual tape.
18593	TapeARN *string `min:"50" type:"string"`
18594
18595	// The time when the point-in-time view of the virtual tape was replicated for
18596	// later recovery.
18597	//
18598	// The default timestamp format of the tape recovery point time is in the ISO8601
18599	// extended YYYY-MM-DD'T'HH:MM:SS'Z' format.
18600	TapeRecoveryPointTime *time.Time `type:"timestamp"`
18601
18602	// The size, in bytes, of the virtual tapes to recover.
18603	TapeSizeInBytes *int64 `type:"long"`
18604
18605	// The status of the virtual tapes.
18606	TapeStatus *string `type:"string"`
18607}
18608
18609// String returns the string representation
18610func (s TapeRecoveryPointInfo) String() string {
18611	return awsutil.Prettify(s)
18612}
18613
18614// GoString returns the string representation
18615func (s TapeRecoveryPointInfo) GoString() string {
18616	return s.String()
18617}
18618
18619// SetTapeARN sets the TapeARN field's value.
18620func (s *TapeRecoveryPointInfo) SetTapeARN(v string) *TapeRecoveryPointInfo {
18621	s.TapeARN = &v
18622	return s
18623}
18624
18625// SetTapeRecoveryPointTime sets the TapeRecoveryPointTime field's value.
18626func (s *TapeRecoveryPointInfo) SetTapeRecoveryPointTime(v time.Time) *TapeRecoveryPointInfo {
18627	s.TapeRecoveryPointTime = &v
18628	return s
18629}
18630
18631// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
18632func (s *TapeRecoveryPointInfo) SetTapeSizeInBytes(v int64) *TapeRecoveryPointInfo {
18633	s.TapeSizeInBytes = &v
18634	return s
18635}
18636
18637// SetTapeStatus sets the TapeStatus field's value.
18638func (s *TapeRecoveryPointInfo) SetTapeStatus(v string) *TapeRecoveryPointInfo {
18639	s.TapeStatus = &v
18640	return s
18641}
18642
18643type UpdateAutomaticTapeCreationPolicyInput struct {
18644	_ struct{} `type:"structure"`
18645
18646	// An automatic tape creation policy consists of a list of automatic tape creation
18647	// rules. The rules determine when and how to automatically create new tapes.
18648	//
18649	// AutomaticTapeCreationRules is a required field
18650	AutomaticTapeCreationRules []*AutomaticTapeCreationRule `min:"1" type:"list" required:"true"`
18651
18652	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18653	// to return a list of gateways for your account and AWS Region.
18654	//
18655	// GatewayARN is a required field
18656	GatewayARN *string `min:"50" type:"string" required:"true"`
18657}
18658
18659// String returns the string representation
18660func (s UpdateAutomaticTapeCreationPolicyInput) String() string {
18661	return awsutil.Prettify(s)
18662}
18663
18664// GoString returns the string representation
18665func (s UpdateAutomaticTapeCreationPolicyInput) GoString() string {
18666	return s.String()
18667}
18668
18669// Validate inspects the fields of the type to determine if they are valid.
18670func (s *UpdateAutomaticTapeCreationPolicyInput) Validate() error {
18671	invalidParams := request.ErrInvalidParams{Context: "UpdateAutomaticTapeCreationPolicyInput"}
18672	if s.AutomaticTapeCreationRules == nil {
18673		invalidParams.Add(request.NewErrParamRequired("AutomaticTapeCreationRules"))
18674	}
18675	if s.AutomaticTapeCreationRules != nil && len(s.AutomaticTapeCreationRules) < 1 {
18676		invalidParams.Add(request.NewErrParamMinLen("AutomaticTapeCreationRules", 1))
18677	}
18678	if s.GatewayARN == nil {
18679		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18680	}
18681	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18682		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18683	}
18684	if s.AutomaticTapeCreationRules != nil {
18685		for i, v := range s.AutomaticTapeCreationRules {
18686			if v == nil {
18687				continue
18688			}
18689			if err := v.Validate(); err != nil {
18690				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AutomaticTapeCreationRules", i), err.(request.ErrInvalidParams))
18691			}
18692		}
18693	}
18694
18695	if invalidParams.Len() > 0 {
18696		return invalidParams
18697	}
18698	return nil
18699}
18700
18701// SetAutomaticTapeCreationRules sets the AutomaticTapeCreationRules field's value.
18702func (s *UpdateAutomaticTapeCreationPolicyInput) SetAutomaticTapeCreationRules(v []*AutomaticTapeCreationRule) *UpdateAutomaticTapeCreationPolicyInput {
18703	s.AutomaticTapeCreationRules = v
18704	return s
18705}
18706
18707// SetGatewayARN sets the GatewayARN field's value.
18708func (s *UpdateAutomaticTapeCreationPolicyInput) SetGatewayARN(v string) *UpdateAutomaticTapeCreationPolicyInput {
18709	s.GatewayARN = &v
18710	return s
18711}
18712
18713type UpdateAutomaticTapeCreationPolicyOutput 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	GatewayARN *string `min:"50" type:"string"`
18719}
18720
18721// String returns the string representation
18722func (s UpdateAutomaticTapeCreationPolicyOutput) String() string {
18723	return awsutil.Prettify(s)
18724}
18725
18726// GoString returns the string representation
18727func (s UpdateAutomaticTapeCreationPolicyOutput) GoString() string {
18728	return s.String()
18729}
18730
18731// SetGatewayARN sets the GatewayARN field's value.
18732func (s *UpdateAutomaticTapeCreationPolicyOutput) SetGatewayARN(v string) *UpdateAutomaticTapeCreationPolicyOutput {
18733	s.GatewayARN = &v
18734	return s
18735}
18736
18737// A JSON object containing one or more of the following fields:
18738//
18739//    * UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec
18740//
18741//    * UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec
18742type UpdateBandwidthRateLimitInput struct {
18743	_ struct{} `type:"structure"`
18744
18745	// The average download bandwidth rate limit in bits per second.
18746	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
18747
18748	// The average upload bandwidth rate limit in bits per second.
18749	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
18750
18751	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18752	// to return a list of gateways for your account and AWS Region.
18753	//
18754	// GatewayARN is a required field
18755	GatewayARN *string `min:"50" type:"string" required:"true"`
18756}
18757
18758// String returns the string representation
18759func (s UpdateBandwidthRateLimitInput) String() string {
18760	return awsutil.Prettify(s)
18761}
18762
18763// GoString returns the string representation
18764func (s UpdateBandwidthRateLimitInput) GoString() string {
18765	return s.String()
18766}
18767
18768// Validate inspects the fields of the type to determine if they are valid.
18769func (s *UpdateBandwidthRateLimitInput) Validate() error {
18770	invalidParams := request.ErrInvalidParams{Context: "UpdateBandwidthRateLimitInput"}
18771	if s.AverageDownloadRateLimitInBitsPerSec != nil && *s.AverageDownloadRateLimitInBitsPerSec < 102400 {
18772		invalidParams.Add(request.NewErrParamMinValue("AverageDownloadRateLimitInBitsPerSec", 102400))
18773	}
18774	if s.AverageUploadRateLimitInBitsPerSec != nil && *s.AverageUploadRateLimitInBitsPerSec < 51200 {
18775		invalidParams.Add(request.NewErrParamMinValue("AverageUploadRateLimitInBitsPerSec", 51200))
18776	}
18777	if s.GatewayARN == nil {
18778		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18779	}
18780	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18781		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18782	}
18783
18784	if invalidParams.Len() > 0 {
18785		return invalidParams
18786	}
18787	return nil
18788}
18789
18790// SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
18791func (s *UpdateBandwidthRateLimitInput) SetAverageDownloadRateLimitInBitsPerSec(v int64) *UpdateBandwidthRateLimitInput {
18792	s.AverageDownloadRateLimitInBitsPerSec = &v
18793	return s
18794}
18795
18796// SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
18797func (s *UpdateBandwidthRateLimitInput) SetAverageUploadRateLimitInBitsPerSec(v int64) *UpdateBandwidthRateLimitInput {
18798	s.AverageUploadRateLimitInBitsPerSec = &v
18799	return s
18800}
18801
18802// SetGatewayARN sets the GatewayARN field's value.
18803func (s *UpdateBandwidthRateLimitInput) SetGatewayARN(v string) *UpdateBandwidthRateLimitInput {
18804	s.GatewayARN = &v
18805	return s
18806}
18807
18808// A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
18809// throttle information was updated.
18810type UpdateBandwidthRateLimitOutput struct {
18811	_ struct{} `type:"structure"`
18812
18813	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18814	// to return a list of gateways for your account and AWS Region.
18815	GatewayARN *string `min:"50" type:"string"`
18816}
18817
18818// String returns the string representation
18819func (s UpdateBandwidthRateLimitOutput) String() string {
18820	return awsutil.Prettify(s)
18821}
18822
18823// GoString returns the string representation
18824func (s UpdateBandwidthRateLimitOutput) GoString() string {
18825	return s.String()
18826}
18827
18828// SetGatewayARN sets the GatewayARN field's value.
18829func (s *UpdateBandwidthRateLimitOutput) SetGatewayARN(v string) *UpdateBandwidthRateLimitOutput {
18830	s.GatewayARN = &v
18831	return s
18832}
18833
18834type UpdateBandwidthRateLimitScheduleInput struct {
18835	_ struct{} `type:"structure"`
18836
18837	// An array containing bandwidth rate limit schedule intervals for a gateway.
18838	// When no bandwidth rate limit intervals have been scheduled, the array is
18839	// empty.
18840	//
18841	// BandwidthRateLimitIntervals is a required field
18842	BandwidthRateLimitIntervals []*BandwidthRateLimitInterval `type:"list" required:"true"`
18843
18844	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18845	// to return a list of gateways for your account and AWS Region.
18846	//
18847	// GatewayARN is a required field
18848	GatewayARN *string `min:"50" type:"string" required:"true"`
18849}
18850
18851// String returns the string representation
18852func (s UpdateBandwidthRateLimitScheduleInput) String() string {
18853	return awsutil.Prettify(s)
18854}
18855
18856// GoString returns the string representation
18857func (s UpdateBandwidthRateLimitScheduleInput) GoString() string {
18858	return s.String()
18859}
18860
18861// Validate inspects the fields of the type to determine if they are valid.
18862func (s *UpdateBandwidthRateLimitScheduleInput) Validate() error {
18863	invalidParams := request.ErrInvalidParams{Context: "UpdateBandwidthRateLimitScheduleInput"}
18864	if s.BandwidthRateLimitIntervals == nil {
18865		invalidParams.Add(request.NewErrParamRequired("BandwidthRateLimitIntervals"))
18866	}
18867	if s.GatewayARN == nil {
18868		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18869	}
18870	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18871		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18872	}
18873	if s.BandwidthRateLimitIntervals != nil {
18874		for i, v := range s.BandwidthRateLimitIntervals {
18875			if v == nil {
18876				continue
18877			}
18878			if err := v.Validate(); err != nil {
18879				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BandwidthRateLimitIntervals", i), err.(request.ErrInvalidParams))
18880			}
18881		}
18882	}
18883
18884	if invalidParams.Len() > 0 {
18885		return invalidParams
18886	}
18887	return nil
18888}
18889
18890// SetBandwidthRateLimitIntervals sets the BandwidthRateLimitIntervals field's value.
18891func (s *UpdateBandwidthRateLimitScheduleInput) SetBandwidthRateLimitIntervals(v []*BandwidthRateLimitInterval) *UpdateBandwidthRateLimitScheduleInput {
18892	s.BandwidthRateLimitIntervals = v
18893	return s
18894}
18895
18896// SetGatewayARN sets the GatewayARN field's value.
18897func (s *UpdateBandwidthRateLimitScheduleInput) SetGatewayARN(v string) *UpdateBandwidthRateLimitScheduleInput {
18898	s.GatewayARN = &v
18899	return s
18900}
18901
18902type UpdateBandwidthRateLimitScheduleOutput struct {
18903	_ struct{} `type:"structure"`
18904
18905	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18906	// to return a list of gateways for your account and AWS Region.
18907	GatewayARN *string `min:"50" type:"string"`
18908}
18909
18910// String returns the string representation
18911func (s UpdateBandwidthRateLimitScheduleOutput) String() string {
18912	return awsutil.Prettify(s)
18913}
18914
18915// GoString returns the string representation
18916func (s UpdateBandwidthRateLimitScheduleOutput) GoString() string {
18917	return s.String()
18918}
18919
18920// SetGatewayARN sets the GatewayARN field's value.
18921func (s *UpdateBandwidthRateLimitScheduleOutput) SetGatewayARN(v string) *UpdateBandwidthRateLimitScheduleOutput {
18922	s.GatewayARN = &v
18923	return s
18924}
18925
18926// A JSON object containing one or more of the following fields:
18927//
18928//    * UpdateChapCredentialsInput$InitiatorName
18929//
18930//    * UpdateChapCredentialsInput$SecretToAuthenticateInitiator
18931//
18932//    * UpdateChapCredentialsInput$SecretToAuthenticateTarget
18933//
18934//    * UpdateChapCredentialsInput$TargetARN
18935type UpdateChapCredentialsInput struct {
18936	_ struct{} `type:"structure"`
18937
18938	// The iSCSI initiator that connects to the target.
18939	//
18940	// InitiatorName is a required field
18941	InitiatorName *string `min:"1" type:"string" required:"true"`
18942
18943	// The secret key that the initiator (for example, the Windows client) must
18944	// provide to participate in mutual CHAP with the target.
18945	//
18946	// The secret key must be between 12 and 16 bytes when encoded in UTF-8.
18947	//
18948	// SecretToAuthenticateInitiator is a required field
18949	SecretToAuthenticateInitiator *string `min:"1" type:"string" required:"true" sensitive:"true"`
18950
18951	// The secret key that the target must provide to participate in mutual CHAP
18952	// with the initiator (e.g. Windows client).
18953	//
18954	// Byte constraints: Minimum bytes of 12. Maximum bytes of 16.
18955	//
18956	// The secret key must be between 12 and 16 bytes when encoded in UTF-8.
18957	SecretToAuthenticateTarget *string `min:"1" type:"string" sensitive:"true"`
18958
18959	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
18960	// operation to return the TargetARN for specified VolumeARN.
18961	//
18962	// TargetARN is a required field
18963	TargetARN *string `min:"50" type:"string" required:"true"`
18964}
18965
18966// String returns the string representation
18967func (s UpdateChapCredentialsInput) String() string {
18968	return awsutil.Prettify(s)
18969}
18970
18971// GoString returns the string representation
18972func (s UpdateChapCredentialsInput) GoString() string {
18973	return s.String()
18974}
18975
18976// Validate inspects the fields of the type to determine if they are valid.
18977func (s *UpdateChapCredentialsInput) Validate() error {
18978	invalidParams := request.ErrInvalidParams{Context: "UpdateChapCredentialsInput"}
18979	if s.InitiatorName == nil {
18980		invalidParams.Add(request.NewErrParamRequired("InitiatorName"))
18981	}
18982	if s.InitiatorName != nil && len(*s.InitiatorName) < 1 {
18983		invalidParams.Add(request.NewErrParamMinLen("InitiatorName", 1))
18984	}
18985	if s.SecretToAuthenticateInitiator == nil {
18986		invalidParams.Add(request.NewErrParamRequired("SecretToAuthenticateInitiator"))
18987	}
18988	if s.SecretToAuthenticateInitiator != nil && len(*s.SecretToAuthenticateInitiator) < 1 {
18989		invalidParams.Add(request.NewErrParamMinLen("SecretToAuthenticateInitiator", 1))
18990	}
18991	if s.SecretToAuthenticateTarget != nil && len(*s.SecretToAuthenticateTarget) < 1 {
18992		invalidParams.Add(request.NewErrParamMinLen("SecretToAuthenticateTarget", 1))
18993	}
18994	if s.TargetARN == nil {
18995		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
18996	}
18997	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
18998		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
18999	}
19000
19001	if invalidParams.Len() > 0 {
19002		return invalidParams
19003	}
19004	return nil
19005}
19006
19007// SetInitiatorName sets the InitiatorName field's value.
19008func (s *UpdateChapCredentialsInput) SetInitiatorName(v string) *UpdateChapCredentialsInput {
19009	s.InitiatorName = &v
19010	return s
19011}
19012
19013// SetSecretToAuthenticateInitiator sets the SecretToAuthenticateInitiator field's value.
19014func (s *UpdateChapCredentialsInput) SetSecretToAuthenticateInitiator(v string) *UpdateChapCredentialsInput {
19015	s.SecretToAuthenticateInitiator = &v
19016	return s
19017}
19018
19019// SetSecretToAuthenticateTarget sets the SecretToAuthenticateTarget field's value.
19020func (s *UpdateChapCredentialsInput) SetSecretToAuthenticateTarget(v string) *UpdateChapCredentialsInput {
19021	s.SecretToAuthenticateTarget = &v
19022	return s
19023}
19024
19025// SetTargetARN sets the TargetARN field's value.
19026func (s *UpdateChapCredentialsInput) SetTargetARN(v string) *UpdateChapCredentialsInput {
19027	s.TargetARN = &v
19028	return s
19029}
19030
19031// A JSON object containing the following fields:
19032type UpdateChapCredentialsOutput struct {
19033	_ struct{} `type:"structure"`
19034
19035	// The iSCSI initiator that connects to the target. This is the same initiator
19036	// name specified in the request.
19037	InitiatorName *string `min:"1" type:"string"`
19038
19039	// The Amazon Resource Name (ARN) of the target. This is the same target specified
19040	// in the request.
19041	TargetARN *string `min:"50" type:"string"`
19042}
19043
19044// String returns the string representation
19045func (s UpdateChapCredentialsOutput) String() string {
19046	return awsutil.Prettify(s)
19047}
19048
19049// GoString returns the string representation
19050func (s UpdateChapCredentialsOutput) GoString() string {
19051	return s.String()
19052}
19053
19054// SetInitiatorName sets the InitiatorName field's value.
19055func (s *UpdateChapCredentialsOutput) SetInitiatorName(v string) *UpdateChapCredentialsOutput {
19056	s.InitiatorName = &v
19057	return s
19058}
19059
19060// SetTargetARN sets the TargetARN field's value.
19061func (s *UpdateChapCredentialsOutput) SetTargetARN(v string) *UpdateChapCredentialsOutput {
19062	s.TargetARN = &v
19063	return s
19064}
19065
19066type UpdateGatewayInformationInput struct {
19067	_ struct{} `type:"structure"`
19068
19069	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that you
19070	// want to use to monitor and log events in the gateway.
19071	//
19072	// For more information, see What is Amazon CloudWatch Logs? (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)
19073	CloudWatchLogGroupARN *string `type:"string"`
19074
19075	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19076	// to return a list of gateways for your account and AWS Region.
19077	//
19078	// GatewayARN is a required field
19079	GatewayARN *string `min:"50" type:"string" required:"true"`
19080
19081	// The name you configured for your gateway.
19082	GatewayName *string `min:"2" type:"string"`
19083
19084	// A value that indicates the time zone of the gateway.
19085	GatewayTimezone *string `min:"3" type:"string"`
19086}
19087
19088// String returns the string representation
19089func (s UpdateGatewayInformationInput) String() string {
19090	return awsutil.Prettify(s)
19091}
19092
19093// GoString returns the string representation
19094func (s UpdateGatewayInformationInput) GoString() string {
19095	return s.String()
19096}
19097
19098// Validate inspects the fields of the type to determine if they are valid.
19099func (s *UpdateGatewayInformationInput) Validate() error {
19100	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewayInformationInput"}
19101	if s.GatewayARN == nil {
19102		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
19103	}
19104	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
19105		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
19106	}
19107	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
19108		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
19109	}
19110	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
19111		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
19112	}
19113
19114	if invalidParams.Len() > 0 {
19115		return invalidParams
19116	}
19117	return nil
19118}
19119
19120// SetCloudWatchLogGroupARN sets the CloudWatchLogGroupARN field's value.
19121func (s *UpdateGatewayInformationInput) SetCloudWatchLogGroupARN(v string) *UpdateGatewayInformationInput {
19122	s.CloudWatchLogGroupARN = &v
19123	return s
19124}
19125
19126// SetGatewayARN sets the GatewayARN field's value.
19127func (s *UpdateGatewayInformationInput) SetGatewayARN(v string) *UpdateGatewayInformationInput {
19128	s.GatewayARN = &v
19129	return s
19130}
19131
19132// SetGatewayName sets the GatewayName field's value.
19133func (s *UpdateGatewayInformationInput) SetGatewayName(v string) *UpdateGatewayInformationInput {
19134	s.GatewayName = &v
19135	return s
19136}
19137
19138// SetGatewayTimezone sets the GatewayTimezone field's value.
19139func (s *UpdateGatewayInformationInput) SetGatewayTimezone(v string) *UpdateGatewayInformationInput {
19140	s.GatewayTimezone = &v
19141	return s
19142}
19143
19144// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
19145// was updated.
19146type UpdateGatewayInformationOutput struct {
19147	_ struct{} `type:"structure"`
19148
19149	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19150	// to return a list of gateways for your account and AWS Region.
19151	GatewayARN *string `min:"50" type:"string"`
19152
19153	// The name you configured for your gateway.
19154	GatewayName *string `type:"string"`
19155}
19156
19157// String returns the string representation
19158func (s UpdateGatewayInformationOutput) String() string {
19159	return awsutil.Prettify(s)
19160}
19161
19162// GoString returns the string representation
19163func (s UpdateGatewayInformationOutput) GoString() string {
19164	return s.String()
19165}
19166
19167// SetGatewayARN sets the GatewayARN field's value.
19168func (s *UpdateGatewayInformationOutput) SetGatewayARN(v string) *UpdateGatewayInformationOutput {
19169	s.GatewayARN = &v
19170	return s
19171}
19172
19173// SetGatewayName sets the GatewayName field's value.
19174func (s *UpdateGatewayInformationOutput) SetGatewayName(v string) *UpdateGatewayInformationOutput {
19175	s.GatewayName = &v
19176	return s
19177}
19178
19179// A JSON object containing the Amazon Resource Name (ARN) of the gateway to
19180// update.
19181type UpdateGatewaySoftwareNowInput struct {
19182	_ struct{} `type:"structure"`
19183
19184	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19185	// to return a list of gateways for your account and AWS Region.
19186	//
19187	// GatewayARN is a required field
19188	GatewayARN *string `min:"50" type:"string" required:"true"`
19189}
19190
19191// String returns the string representation
19192func (s UpdateGatewaySoftwareNowInput) String() string {
19193	return awsutil.Prettify(s)
19194}
19195
19196// GoString returns the string representation
19197func (s UpdateGatewaySoftwareNowInput) GoString() string {
19198	return s.String()
19199}
19200
19201// Validate inspects the fields of the type to determine if they are valid.
19202func (s *UpdateGatewaySoftwareNowInput) Validate() error {
19203	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewaySoftwareNowInput"}
19204	if s.GatewayARN == nil {
19205		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
19206	}
19207	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
19208		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
19209	}
19210
19211	if invalidParams.Len() > 0 {
19212		return invalidParams
19213	}
19214	return nil
19215}
19216
19217// SetGatewayARN sets the GatewayARN field's value.
19218func (s *UpdateGatewaySoftwareNowInput) SetGatewayARN(v string) *UpdateGatewaySoftwareNowInput {
19219	s.GatewayARN = &v
19220	return s
19221}
19222
19223// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
19224// was updated.
19225type UpdateGatewaySoftwareNowOutput struct {
19226	_ struct{} `type:"structure"`
19227
19228	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19229	// to return a list of gateways for your account and AWS Region.
19230	GatewayARN *string `min:"50" type:"string"`
19231}
19232
19233// String returns the string representation
19234func (s UpdateGatewaySoftwareNowOutput) String() string {
19235	return awsutil.Prettify(s)
19236}
19237
19238// GoString returns the string representation
19239func (s UpdateGatewaySoftwareNowOutput) GoString() string {
19240	return s.String()
19241}
19242
19243// SetGatewayARN sets the GatewayARN field's value.
19244func (s *UpdateGatewaySoftwareNowOutput) SetGatewayARN(v string) *UpdateGatewaySoftwareNowOutput {
19245	s.GatewayARN = &v
19246	return s
19247}
19248
19249// A JSON object containing the following fields:
19250//
19251//    * UpdateMaintenanceStartTimeInput$DayOfMonth
19252//
19253//    * UpdateMaintenanceStartTimeInput$DayOfWeek
19254//
19255//    * UpdateMaintenanceStartTimeInput$HourOfDay
19256//
19257//    * UpdateMaintenanceStartTimeInput$MinuteOfHour
19258type UpdateMaintenanceStartTimeInput struct {
19259	_ struct{} `type:"structure"`
19260
19261	// The day of the month component of the maintenance start time represented
19262	// as an ordinal number from 1 to 28, where 1 represents the first day of the
19263	// month and 28 represents the last day of the month.
19264	DayOfMonth *int64 `min:"1" type:"integer"`
19265
19266	// The day of the week component of the maintenance start time week represented
19267	// as an ordinal number from 0 to 6, where 0 represents Sunday and 6 Saturday.
19268	DayOfWeek *int64 `type:"integer"`
19269
19270	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19271	// to return a list of gateways for your account and AWS Region.
19272	//
19273	// GatewayARN is a required field
19274	GatewayARN *string `min:"50" type:"string" required:"true"`
19275
19276	// The hour component of the maintenance start time represented as hh, where
19277	// hh is the hour (00 to 23). The hour of the day is in the time zone of the
19278	// gateway.
19279	//
19280	// HourOfDay is a required field
19281	HourOfDay *int64 `type:"integer" required:"true"`
19282
19283	// The minute component of the maintenance start time represented as mm, where
19284	// mm is the minute (00 to 59). The minute of the hour is in the time zone of
19285	// the gateway.
19286	//
19287	// MinuteOfHour is a required field
19288	MinuteOfHour *int64 `type:"integer" required:"true"`
19289}
19290
19291// String returns the string representation
19292func (s UpdateMaintenanceStartTimeInput) String() string {
19293	return awsutil.Prettify(s)
19294}
19295
19296// GoString returns the string representation
19297func (s UpdateMaintenanceStartTimeInput) GoString() string {
19298	return s.String()
19299}
19300
19301// Validate inspects the fields of the type to determine if they are valid.
19302func (s *UpdateMaintenanceStartTimeInput) Validate() error {
19303	invalidParams := request.ErrInvalidParams{Context: "UpdateMaintenanceStartTimeInput"}
19304	if s.DayOfMonth != nil && *s.DayOfMonth < 1 {
19305		invalidParams.Add(request.NewErrParamMinValue("DayOfMonth", 1))
19306	}
19307	if s.GatewayARN == nil {
19308		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
19309	}
19310	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
19311		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
19312	}
19313	if s.HourOfDay == nil {
19314		invalidParams.Add(request.NewErrParamRequired("HourOfDay"))
19315	}
19316	if s.MinuteOfHour == nil {
19317		invalidParams.Add(request.NewErrParamRequired("MinuteOfHour"))
19318	}
19319
19320	if invalidParams.Len() > 0 {
19321		return invalidParams
19322	}
19323	return nil
19324}
19325
19326// SetDayOfMonth sets the DayOfMonth field's value.
19327func (s *UpdateMaintenanceStartTimeInput) SetDayOfMonth(v int64) *UpdateMaintenanceStartTimeInput {
19328	s.DayOfMonth = &v
19329	return s
19330}
19331
19332// SetDayOfWeek sets the DayOfWeek field's value.
19333func (s *UpdateMaintenanceStartTimeInput) SetDayOfWeek(v int64) *UpdateMaintenanceStartTimeInput {
19334	s.DayOfWeek = &v
19335	return s
19336}
19337
19338// SetGatewayARN sets the GatewayARN field's value.
19339func (s *UpdateMaintenanceStartTimeInput) SetGatewayARN(v string) *UpdateMaintenanceStartTimeInput {
19340	s.GatewayARN = &v
19341	return s
19342}
19343
19344// SetHourOfDay sets the HourOfDay field's value.
19345func (s *UpdateMaintenanceStartTimeInput) SetHourOfDay(v int64) *UpdateMaintenanceStartTimeInput {
19346	s.HourOfDay = &v
19347	return s
19348}
19349
19350// SetMinuteOfHour sets the MinuteOfHour field's value.
19351func (s *UpdateMaintenanceStartTimeInput) SetMinuteOfHour(v int64) *UpdateMaintenanceStartTimeInput {
19352	s.MinuteOfHour = &v
19353	return s
19354}
19355
19356// A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
19357// maintenance start time is updated.
19358type UpdateMaintenanceStartTimeOutput struct {
19359	_ struct{} `type:"structure"`
19360
19361	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19362	// to return a list of gateways for your account and AWS Region.
19363	GatewayARN *string `min:"50" type:"string"`
19364}
19365
19366// String returns the string representation
19367func (s UpdateMaintenanceStartTimeOutput) String() string {
19368	return awsutil.Prettify(s)
19369}
19370
19371// GoString returns the string representation
19372func (s UpdateMaintenanceStartTimeOutput) GoString() string {
19373	return s.String()
19374}
19375
19376// SetGatewayARN sets the GatewayARN field's value.
19377func (s *UpdateMaintenanceStartTimeOutput) SetGatewayARN(v string) *UpdateMaintenanceStartTimeOutput {
19378	s.GatewayARN = &v
19379	return s
19380}
19381
19382// UpdateNFSFileShareInput
19383type UpdateNFSFileShareInput struct {
19384	_ struct{} `type:"structure"`
19385
19386	// Refresh cache information.
19387	CacheAttributes *CacheAttributes `type:"structure"`
19388
19389	// The list of clients that are allowed to access the file gateway. The list
19390	// must contain either valid IP addresses or valid CIDR blocks.
19391	ClientList []*string `min:"1" type:"list"`
19392
19393	// The default storage class for objects put into an Amazon S3 bucket by the
19394	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
19395	//
19396	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
19397	DefaultStorageClass *string `min:"5" type:"string"`
19398
19399	// The Amazon Resource Name (ARN) of the file share to be updated.
19400	//
19401	// FileShareARN is a required field
19402	FileShareARN *string `min:"50" type:"string" required:"true"`
19403
19404	// The name of the file share. Optional.
19405	//
19406	// FileShareName must be set if an S3 prefix name is set in LocationARN.
19407	FileShareName *string `min:"1" type:"string"`
19408
19409	// A value that enables guessing of the MIME type for uploaded objects based
19410	// on file extensions. Set this value to true to enable MIME type guessing,
19411	// otherwise set to false. The default value is true.
19412	//
19413	// Valid Values: true | false
19414	GuessMIMETypeEnabled *bool `type:"boolean"`
19415
19416	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
19417	// key, or false to use a key managed by Amazon S3. Optional.
19418	//
19419	// Valid Values: true | false
19420	KMSEncrypted *bool `type:"boolean"`
19421
19422	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
19423	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
19424	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
19425	KMSKey *string `min:"7" type:"string"`
19426
19427	// The default values for the file share. Optional.
19428	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
19429
19430	// The notification policy of the file share.
19431	NotificationPolicy *string `min:"2" type:"string"`
19432
19433	// A value that sets the access control list (ACL) permission for objects in
19434	// the S3 bucket that a file gateway puts objects into. The default value is
19435	// private.
19436	ObjectACL *string `type:"string" enum:"ObjectACL"`
19437
19438	// A value that sets the write status of a file share. Set this value to true
19439	// to set the write status to read-only, otherwise set to false.
19440	//
19441	// Valid Values: true | false
19442	ReadOnly *bool `type:"boolean"`
19443
19444	// A value that sets who pays the cost of the request and the cost associated
19445	// with data download from the S3 bucket. If this value is set to true, the
19446	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
19447	// S3 bucket owner always pays the cost of storing data.
19448	//
19449	// RequesterPays is a configuration for the S3 bucket that backs the file share,
19450	// so make sure that the configuration on the file share is the same as the
19451	// S3 bucket configuration.
19452	//
19453	// Valid Values: true | false
19454	RequesterPays *bool `type:"boolean"`
19455
19456	// The user mapped to anonymous user.
19457	//
19458	// Valid values are the following:
19459	//
19460	//    * RootSquash: Only root is mapped to anonymous user.
19461	//
19462	//    * NoSquash: No one is mapped to anonymous user.
19463	//
19464	//    * AllSquash: Everyone is mapped to anonymous user.
19465	Squash *string `min:"5" type:"string"`
19466}
19467
19468// String returns the string representation
19469func (s UpdateNFSFileShareInput) String() string {
19470	return awsutil.Prettify(s)
19471}
19472
19473// GoString returns the string representation
19474func (s UpdateNFSFileShareInput) GoString() string {
19475	return s.String()
19476}
19477
19478// Validate inspects the fields of the type to determine if they are valid.
19479func (s *UpdateNFSFileShareInput) Validate() error {
19480	invalidParams := request.ErrInvalidParams{Context: "UpdateNFSFileShareInput"}
19481	if s.ClientList != nil && len(s.ClientList) < 1 {
19482		invalidParams.Add(request.NewErrParamMinLen("ClientList", 1))
19483	}
19484	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
19485		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
19486	}
19487	if s.FileShareARN == nil {
19488		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
19489	}
19490	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
19491		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
19492	}
19493	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
19494		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
19495	}
19496	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
19497		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
19498	}
19499	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
19500		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
19501	}
19502	if s.Squash != nil && len(*s.Squash) < 5 {
19503		invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
19504	}
19505	if s.NFSFileShareDefaults != nil {
19506		if err := s.NFSFileShareDefaults.Validate(); err != nil {
19507			invalidParams.AddNested("NFSFileShareDefaults", err.(request.ErrInvalidParams))
19508		}
19509	}
19510
19511	if invalidParams.Len() > 0 {
19512		return invalidParams
19513	}
19514	return nil
19515}
19516
19517// SetCacheAttributes sets the CacheAttributes field's value.
19518func (s *UpdateNFSFileShareInput) SetCacheAttributes(v *CacheAttributes) *UpdateNFSFileShareInput {
19519	s.CacheAttributes = v
19520	return s
19521}
19522
19523// SetClientList sets the ClientList field's value.
19524func (s *UpdateNFSFileShareInput) SetClientList(v []*string) *UpdateNFSFileShareInput {
19525	s.ClientList = v
19526	return s
19527}
19528
19529// SetDefaultStorageClass sets the DefaultStorageClass field's value.
19530func (s *UpdateNFSFileShareInput) SetDefaultStorageClass(v string) *UpdateNFSFileShareInput {
19531	s.DefaultStorageClass = &v
19532	return s
19533}
19534
19535// SetFileShareARN sets the FileShareARN field's value.
19536func (s *UpdateNFSFileShareInput) SetFileShareARN(v string) *UpdateNFSFileShareInput {
19537	s.FileShareARN = &v
19538	return s
19539}
19540
19541// SetFileShareName sets the FileShareName field's value.
19542func (s *UpdateNFSFileShareInput) SetFileShareName(v string) *UpdateNFSFileShareInput {
19543	s.FileShareName = &v
19544	return s
19545}
19546
19547// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
19548func (s *UpdateNFSFileShareInput) SetGuessMIMETypeEnabled(v bool) *UpdateNFSFileShareInput {
19549	s.GuessMIMETypeEnabled = &v
19550	return s
19551}
19552
19553// SetKMSEncrypted sets the KMSEncrypted field's value.
19554func (s *UpdateNFSFileShareInput) SetKMSEncrypted(v bool) *UpdateNFSFileShareInput {
19555	s.KMSEncrypted = &v
19556	return s
19557}
19558
19559// SetKMSKey sets the KMSKey field's value.
19560func (s *UpdateNFSFileShareInput) SetKMSKey(v string) *UpdateNFSFileShareInput {
19561	s.KMSKey = &v
19562	return s
19563}
19564
19565// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
19566func (s *UpdateNFSFileShareInput) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *UpdateNFSFileShareInput {
19567	s.NFSFileShareDefaults = v
19568	return s
19569}
19570
19571// SetNotificationPolicy sets the NotificationPolicy field's value.
19572func (s *UpdateNFSFileShareInput) SetNotificationPolicy(v string) *UpdateNFSFileShareInput {
19573	s.NotificationPolicy = &v
19574	return s
19575}
19576
19577// SetObjectACL sets the ObjectACL field's value.
19578func (s *UpdateNFSFileShareInput) SetObjectACL(v string) *UpdateNFSFileShareInput {
19579	s.ObjectACL = &v
19580	return s
19581}
19582
19583// SetReadOnly sets the ReadOnly field's value.
19584func (s *UpdateNFSFileShareInput) SetReadOnly(v bool) *UpdateNFSFileShareInput {
19585	s.ReadOnly = &v
19586	return s
19587}
19588
19589// SetRequesterPays sets the RequesterPays field's value.
19590func (s *UpdateNFSFileShareInput) SetRequesterPays(v bool) *UpdateNFSFileShareInput {
19591	s.RequesterPays = &v
19592	return s
19593}
19594
19595// SetSquash sets the Squash field's value.
19596func (s *UpdateNFSFileShareInput) SetSquash(v string) *UpdateNFSFileShareInput {
19597	s.Squash = &v
19598	return s
19599}
19600
19601// UpdateNFSFileShareOutput
19602type UpdateNFSFileShareOutput struct {
19603	_ struct{} `type:"structure"`
19604
19605	// The Amazon Resource Name (ARN) of the updated file share.
19606	FileShareARN *string `min:"50" type:"string"`
19607}
19608
19609// String returns the string representation
19610func (s UpdateNFSFileShareOutput) String() string {
19611	return awsutil.Prettify(s)
19612}
19613
19614// GoString returns the string representation
19615func (s UpdateNFSFileShareOutput) GoString() string {
19616	return s.String()
19617}
19618
19619// SetFileShareARN sets the FileShareARN field's value.
19620func (s *UpdateNFSFileShareOutput) SetFileShareARN(v string) *UpdateNFSFileShareOutput {
19621	s.FileShareARN = &v
19622	return s
19623}
19624
19625// UpdateSMBFileShareInput
19626type UpdateSMBFileShareInput struct {
19627	_ struct{} `type:"structure"`
19628
19629	// The files and folders on this share will only be visible to users with read
19630	// access.
19631	AccessBasedEnumeration *bool `type:"boolean"`
19632
19633	// A list of users or groups in the Active Directory that have administrator
19634	// rights to the file share. A group must be prefixed with the @ character.
19635	// Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1.
19636	// Can only be set if Authentication is set to ActiveDirectory.
19637	AdminUserList []*string `type:"list"`
19638
19639	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
19640	AuditDestinationARN *string `type:"string"`
19641
19642	// Refresh cache information.
19643	CacheAttributes *CacheAttributes `type:"structure"`
19644
19645	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
19646	// client determines the case sensitivity. For CaseSensitive, the gateway determines
19647	// the case sensitivity. The default value is ClientSpecified.
19648	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
19649
19650	// The default storage class for objects put into an Amazon S3 bucket by the
19651	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
19652	//
19653	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
19654	DefaultStorageClass *string `min:"5" type:"string"`
19655
19656	// The Amazon Resource Name (ARN) of the SMB file share that you want to update.
19657	//
19658	// FileShareARN is a required field
19659	FileShareARN *string `min:"50" type:"string" required:"true"`
19660
19661	// The name of the file share. Optional.
19662	//
19663	// FileShareName must be set if an S3 prefix name is set in LocationARN.
19664	FileShareName *string `min:"1" type:"string"`
19665
19666	// A value that enables guessing of the MIME type for uploaded objects based
19667	// on file extensions. Set this value to true to enable MIME type guessing,
19668	// otherwise set to false. The default value is true.
19669	//
19670	// Valid Values: true | false
19671	GuessMIMETypeEnabled *bool `type:"boolean"`
19672
19673	// A list of users or groups in the Active Directory that are not allowed to
19674	// access the file share. A group must be prefixed with the @ character. Acceptable
19675	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
19676	// be set if Authentication is set to ActiveDirectory.
19677	InvalidUserList []*string `type:"list"`
19678
19679	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
19680	// key, or false to use a key managed by Amazon S3. Optional.
19681	//
19682	// Valid Values: true | false
19683	KMSEncrypted *bool `type:"boolean"`
19684
19685	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
19686	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
19687	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
19688	KMSKey *string `min:"7" type:"string"`
19689
19690	// The notification policy of the file share.
19691	NotificationPolicy *string `min:"2" type:"string"`
19692
19693	// A value that sets the access control list (ACL) permission for objects in
19694	// the S3 bucket that a file gateway puts objects into. The default value is
19695	// private.
19696	ObjectACL *string `type:"string" enum:"ObjectACL"`
19697
19698	// A value that sets the write status of a file share. Set this value to true
19699	// to set write status to read-only, otherwise set to false.
19700	//
19701	// Valid Values: true | false
19702	ReadOnly *bool `type:"boolean"`
19703
19704	// A value that sets who pays the cost of the request and the cost associated
19705	// with data download from the S3 bucket. If this value is set to true, the
19706	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
19707	// S3 bucket owner always pays the cost of storing data.
19708	//
19709	// RequesterPays is a configuration for the S3 bucket that backs the file share,
19710	// so make sure that the configuration on the file share is the same as the
19711	// S3 bucket configuration.
19712	//
19713	// Valid Values: true | false
19714	RequesterPays *bool `type:"boolean"`
19715
19716	// Set this value to true to enable access control list (ACL) on the SMB file
19717	// share. Set it to false to map file and directory permissions to the POSIX
19718	// permissions.
19719	//
19720	// For more information, see Using Microsoft Windows ACLs to control access
19721	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
19722	// in the AWS Storage Gateway User Guide.
19723	//
19724	// Valid Values: true | false
19725	SMBACLEnabled *bool `type:"boolean"`
19726
19727	// A list of users or groups in the Active Directory that are allowed to access
19728	// the file share. A group must be prefixed with the @ character. Acceptable
19729	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
19730	// be set if Authentication is set to ActiveDirectory.
19731	ValidUserList []*string `type:"list"`
19732}
19733
19734// String returns the string representation
19735func (s UpdateSMBFileShareInput) String() string {
19736	return awsutil.Prettify(s)
19737}
19738
19739// GoString returns the string representation
19740func (s UpdateSMBFileShareInput) GoString() string {
19741	return s.String()
19742}
19743
19744// Validate inspects the fields of the type to determine if they are valid.
19745func (s *UpdateSMBFileShareInput) Validate() error {
19746	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBFileShareInput"}
19747	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
19748		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
19749	}
19750	if s.FileShareARN == nil {
19751		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
19752	}
19753	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
19754		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
19755	}
19756	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
19757		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
19758	}
19759	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
19760		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
19761	}
19762	if s.NotificationPolicy != nil && len(*s.NotificationPolicy) < 2 {
19763		invalidParams.Add(request.NewErrParamMinLen("NotificationPolicy", 2))
19764	}
19765
19766	if invalidParams.Len() > 0 {
19767		return invalidParams
19768	}
19769	return nil
19770}
19771
19772// SetAccessBasedEnumeration sets the AccessBasedEnumeration field's value.
19773func (s *UpdateSMBFileShareInput) SetAccessBasedEnumeration(v bool) *UpdateSMBFileShareInput {
19774	s.AccessBasedEnumeration = &v
19775	return s
19776}
19777
19778// SetAdminUserList sets the AdminUserList field's value.
19779func (s *UpdateSMBFileShareInput) SetAdminUserList(v []*string) *UpdateSMBFileShareInput {
19780	s.AdminUserList = v
19781	return s
19782}
19783
19784// SetAuditDestinationARN sets the AuditDestinationARN field's value.
19785func (s *UpdateSMBFileShareInput) SetAuditDestinationARN(v string) *UpdateSMBFileShareInput {
19786	s.AuditDestinationARN = &v
19787	return s
19788}
19789
19790// SetCacheAttributes sets the CacheAttributes field's value.
19791func (s *UpdateSMBFileShareInput) SetCacheAttributes(v *CacheAttributes) *UpdateSMBFileShareInput {
19792	s.CacheAttributes = v
19793	return s
19794}
19795
19796// SetCaseSensitivity sets the CaseSensitivity field's value.
19797func (s *UpdateSMBFileShareInput) SetCaseSensitivity(v string) *UpdateSMBFileShareInput {
19798	s.CaseSensitivity = &v
19799	return s
19800}
19801
19802// SetDefaultStorageClass sets the DefaultStorageClass field's value.
19803func (s *UpdateSMBFileShareInput) SetDefaultStorageClass(v string) *UpdateSMBFileShareInput {
19804	s.DefaultStorageClass = &v
19805	return s
19806}
19807
19808// SetFileShareARN sets the FileShareARN field's value.
19809func (s *UpdateSMBFileShareInput) SetFileShareARN(v string) *UpdateSMBFileShareInput {
19810	s.FileShareARN = &v
19811	return s
19812}
19813
19814// SetFileShareName sets the FileShareName field's value.
19815func (s *UpdateSMBFileShareInput) SetFileShareName(v string) *UpdateSMBFileShareInput {
19816	s.FileShareName = &v
19817	return s
19818}
19819
19820// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
19821func (s *UpdateSMBFileShareInput) SetGuessMIMETypeEnabled(v bool) *UpdateSMBFileShareInput {
19822	s.GuessMIMETypeEnabled = &v
19823	return s
19824}
19825
19826// SetInvalidUserList sets the InvalidUserList field's value.
19827func (s *UpdateSMBFileShareInput) SetInvalidUserList(v []*string) *UpdateSMBFileShareInput {
19828	s.InvalidUserList = v
19829	return s
19830}
19831
19832// SetKMSEncrypted sets the KMSEncrypted field's value.
19833func (s *UpdateSMBFileShareInput) SetKMSEncrypted(v bool) *UpdateSMBFileShareInput {
19834	s.KMSEncrypted = &v
19835	return s
19836}
19837
19838// SetKMSKey sets the KMSKey field's value.
19839func (s *UpdateSMBFileShareInput) SetKMSKey(v string) *UpdateSMBFileShareInput {
19840	s.KMSKey = &v
19841	return s
19842}
19843
19844// SetNotificationPolicy sets the NotificationPolicy field's value.
19845func (s *UpdateSMBFileShareInput) SetNotificationPolicy(v string) *UpdateSMBFileShareInput {
19846	s.NotificationPolicy = &v
19847	return s
19848}
19849
19850// SetObjectACL sets the ObjectACL field's value.
19851func (s *UpdateSMBFileShareInput) SetObjectACL(v string) *UpdateSMBFileShareInput {
19852	s.ObjectACL = &v
19853	return s
19854}
19855
19856// SetReadOnly sets the ReadOnly field's value.
19857func (s *UpdateSMBFileShareInput) SetReadOnly(v bool) *UpdateSMBFileShareInput {
19858	s.ReadOnly = &v
19859	return s
19860}
19861
19862// SetRequesterPays sets the RequesterPays field's value.
19863func (s *UpdateSMBFileShareInput) SetRequesterPays(v bool) *UpdateSMBFileShareInput {
19864	s.RequesterPays = &v
19865	return s
19866}
19867
19868// SetSMBACLEnabled sets the SMBACLEnabled field's value.
19869func (s *UpdateSMBFileShareInput) SetSMBACLEnabled(v bool) *UpdateSMBFileShareInput {
19870	s.SMBACLEnabled = &v
19871	return s
19872}
19873
19874// SetValidUserList sets the ValidUserList field's value.
19875func (s *UpdateSMBFileShareInput) SetValidUserList(v []*string) *UpdateSMBFileShareInput {
19876	s.ValidUserList = v
19877	return s
19878}
19879
19880// UpdateSMBFileShareOutput
19881type UpdateSMBFileShareOutput struct {
19882	_ struct{} `type:"structure"`
19883
19884	// The Amazon Resource Name (ARN) of the updated SMB file share.
19885	FileShareARN *string `min:"50" type:"string"`
19886}
19887
19888// String returns the string representation
19889func (s UpdateSMBFileShareOutput) String() string {
19890	return awsutil.Prettify(s)
19891}
19892
19893// GoString returns the string representation
19894func (s UpdateSMBFileShareOutput) GoString() string {
19895	return s.String()
19896}
19897
19898// SetFileShareARN sets the FileShareARN field's value.
19899func (s *UpdateSMBFileShareOutput) SetFileShareARN(v string) *UpdateSMBFileShareOutput {
19900	s.FileShareARN = &v
19901	return s
19902}
19903
19904type UpdateSMBFileShareVisibilityInput struct {
19905	_ struct{} `type:"structure"`
19906
19907	// The shares on this gateway appear when listing shares.
19908	//
19909	// FileSharesVisible is a required field
19910	FileSharesVisible *bool `type:"boolean" required:"true"`
19911
19912	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19913	// to return a list of gateways for your account and AWS Region.
19914	//
19915	// GatewayARN is a required field
19916	GatewayARN *string `min:"50" type:"string" required:"true"`
19917}
19918
19919// String returns the string representation
19920func (s UpdateSMBFileShareVisibilityInput) String() string {
19921	return awsutil.Prettify(s)
19922}
19923
19924// GoString returns the string representation
19925func (s UpdateSMBFileShareVisibilityInput) GoString() string {
19926	return s.String()
19927}
19928
19929// Validate inspects the fields of the type to determine if they are valid.
19930func (s *UpdateSMBFileShareVisibilityInput) Validate() error {
19931	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBFileShareVisibilityInput"}
19932	if s.FileSharesVisible == nil {
19933		invalidParams.Add(request.NewErrParamRequired("FileSharesVisible"))
19934	}
19935	if s.GatewayARN == nil {
19936		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
19937	}
19938	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
19939		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
19940	}
19941
19942	if invalidParams.Len() > 0 {
19943		return invalidParams
19944	}
19945	return nil
19946}
19947
19948// SetFileSharesVisible sets the FileSharesVisible field's value.
19949func (s *UpdateSMBFileShareVisibilityInput) SetFileSharesVisible(v bool) *UpdateSMBFileShareVisibilityInput {
19950	s.FileSharesVisible = &v
19951	return s
19952}
19953
19954// SetGatewayARN sets the GatewayARN field's value.
19955func (s *UpdateSMBFileShareVisibilityInput) SetGatewayARN(v string) *UpdateSMBFileShareVisibilityInput {
19956	s.GatewayARN = &v
19957	return s
19958}
19959
19960type UpdateSMBFileShareVisibilityOutput struct {
19961	_ struct{} `type:"structure"`
19962
19963	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19964	// to return a list of gateways for your account and AWS Region.
19965	GatewayARN *string `min:"50" type:"string"`
19966}
19967
19968// String returns the string representation
19969func (s UpdateSMBFileShareVisibilityOutput) String() string {
19970	return awsutil.Prettify(s)
19971}
19972
19973// GoString returns the string representation
19974func (s UpdateSMBFileShareVisibilityOutput) GoString() string {
19975	return s.String()
19976}
19977
19978// SetGatewayARN sets the GatewayARN field's value.
19979func (s *UpdateSMBFileShareVisibilityOutput) SetGatewayARN(v string) *UpdateSMBFileShareVisibilityOutput {
19980	s.GatewayARN = &v
19981	return s
19982}
19983
19984type UpdateSMBSecurityStrategyInput struct {
19985	_ struct{} `type:"structure"`
19986
19987	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
19988	// to return a list of gateways for your account and AWS Region.
19989	//
19990	// GatewayARN is a required field
19991	GatewayARN *string `min:"50" type:"string" required:"true"`
19992
19993	// Specifies the type of security strategy.
19994	//
19995	// ClientSpecified: if you use this option, requests are established based on
19996	// what is negotiated by the client. This option is recommended when you want
19997	// to maximize compatibility across different clients in your environment.
19998	//
19999	// MandatorySigning: if you use this option, file gateway only allows connections
20000	// from SMBv2 or SMBv3 clients that have signing enabled. This option works
20001	// with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer.
20002	//
20003	// MandatoryEncryption: if you use this option, file gateway only allows connections
20004	// from SMBv3 clients that have encryption enabled. This option is highly recommended
20005	// for environments that handle sensitive data. This option works with SMB clients
20006	// on Microsoft Windows 8, Windows Server 2012 or newer.
20007	//
20008	// SMBSecurityStrategy is a required field
20009	SMBSecurityStrategy *string `type:"string" required:"true" enum:"SMBSecurityStrategy"`
20010}
20011
20012// String returns the string representation
20013func (s UpdateSMBSecurityStrategyInput) String() string {
20014	return awsutil.Prettify(s)
20015}
20016
20017// GoString returns the string representation
20018func (s UpdateSMBSecurityStrategyInput) GoString() string {
20019	return s.String()
20020}
20021
20022// Validate inspects the fields of the type to determine if they are valid.
20023func (s *UpdateSMBSecurityStrategyInput) Validate() error {
20024	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBSecurityStrategyInput"}
20025	if s.GatewayARN == nil {
20026		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
20027	}
20028	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
20029		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
20030	}
20031	if s.SMBSecurityStrategy == nil {
20032		invalidParams.Add(request.NewErrParamRequired("SMBSecurityStrategy"))
20033	}
20034
20035	if invalidParams.Len() > 0 {
20036		return invalidParams
20037	}
20038	return nil
20039}
20040
20041// SetGatewayARN sets the GatewayARN field's value.
20042func (s *UpdateSMBSecurityStrategyInput) SetGatewayARN(v string) *UpdateSMBSecurityStrategyInput {
20043	s.GatewayARN = &v
20044	return s
20045}
20046
20047// SetSMBSecurityStrategy sets the SMBSecurityStrategy field's value.
20048func (s *UpdateSMBSecurityStrategyInput) SetSMBSecurityStrategy(v string) *UpdateSMBSecurityStrategyInput {
20049	s.SMBSecurityStrategy = &v
20050	return s
20051}
20052
20053type UpdateSMBSecurityStrategyOutput struct {
20054	_ struct{} `type:"structure"`
20055
20056	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
20057	// to return a list of gateways for your account and AWS Region.
20058	GatewayARN *string `min:"50" type:"string"`
20059}
20060
20061// String returns the string representation
20062func (s UpdateSMBSecurityStrategyOutput) String() string {
20063	return awsutil.Prettify(s)
20064}
20065
20066// GoString returns the string representation
20067func (s UpdateSMBSecurityStrategyOutput) GoString() string {
20068	return s.String()
20069}
20070
20071// SetGatewayARN sets the GatewayARN field's value.
20072func (s *UpdateSMBSecurityStrategyOutput) SetGatewayARN(v string) *UpdateSMBSecurityStrategyOutput {
20073	s.GatewayARN = &v
20074	return s
20075}
20076
20077// A JSON object containing one or more of the following fields:
20078//
20079//    * UpdateSnapshotScheduleInput$Description
20080//
20081//    * UpdateSnapshotScheduleInput$RecurrenceInHours
20082//
20083//    * UpdateSnapshotScheduleInput$StartAt
20084//
20085//    * UpdateSnapshotScheduleInput$VolumeARN
20086type UpdateSnapshotScheduleInput struct {
20087	_ struct{} `type:"structure"`
20088
20089	// Optional description of the snapshot that overwrites the existing description.
20090	Description *string `min:"1" type:"string"`
20091
20092	// Frequency of snapshots. Specify the number of hours between snapshots.
20093	//
20094	// RecurrenceInHours is a required field
20095	RecurrenceInHours *int64 `min:"1" type:"integer" required:"true"`
20096
20097	// The hour of the day at which the snapshot schedule begins represented as
20098	// hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
20099	// of the gateway.
20100	//
20101	// StartAt is a required field
20102	StartAt *int64 `type:"integer" required:"true"`
20103
20104	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
20105	// key-value pair.
20106	//
20107	// Valid characters for key and value are letters, spaces, and numbers representable
20108	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
20109	// maximum length of a tag's key is 128 characters, and the maximum length for
20110	// a tag's value is 256.
20111	Tags []*Tag `type:"list"`
20112
20113	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
20114	// to return a list of gateway volumes.
20115	//
20116	// VolumeARN is a required field
20117	VolumeARN *string `min:"50" type:"string" required:"true"`
20118}
20119
20120// String returns the string representation
20121func (s UpdateSnapshotScheduleInput) String() string {
20122	return awsutil.Prettify(s)
20123}
20124
20125// GoString returns the string representation
20126func (s UpdateSnapshotScheduleInput) GoString() string {
20127	return s.String()
20128}
20129
20130// Validate inspects the fields of the type to determine if they are valid.
20131func (s *UpdateSnapshotScheduleInput) Validate() error {
20132	invalidParams := request.ErrInvalidParams{Context: "UpdateSnapshotScheduleInput"}
20133	if s.Description != nil && len(*s.Description) < 1 {
20134		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
20135	}
20136	if s.RecurrenceInHours == nil {
20137		invalidParams.Add(request.NewErrParamRequired("RecurrenceInHours"))
20138	}
20139	if s.RecurrenceInHours != nil && *s.RecurrenceInHours < 1 {
20140		invalidParams.Add(request.NewErrParamMinValue("RecurrenceInHours", 1))
20141	}
20142	if s.StartAt == nil {
20143		invalidParams.Add(request.NewErrParamRequired("StartAt"))
20144	}
20145	if s.VolumeARN == nil {
20146		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
20147	}
20148	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
20149		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
20150	}
20151	if s.Tags != nil {
20152		for i, v := range s.Tags {
20153			if v == nil {
20154				continue
20155			}
20156			if err := v.Validate(); err != nil {
20157				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
20158			}
20159		}
20160	}
20161
20162	if invalidParams.Len() > 0 {
20163		return invalidParams
20164	}
20165	return nil
20166}
20167
20168// SetDescription sets the Description field's value.
20169func (s *UpdateSnapshotScheduleInput) SetDescription(v string) *UpdateSnapshotScheduleInput {
20170	s.Description = &v
20171	return s
20172}
20173
20174// SetRecurrenceInHours sets the RecurrenceInHours field's value.
20175func (s *UpdateSnapshotScheduleInput) SetRecurrenceInHours(v int64) *UpdateSnapshotScheduleInput {
20176	s.RecurrenceInHours = &v
20177	return s
20178}
20179
20180// SetStartAt sets the StartAt field's value.
20181func (s *UpdateSnapshotScheduleInput) SetStartAt(v int64) *UpdateSnapshotScheduleInput {
20182	s.StartAt = &v
20183	return s
20184}
20185
20186// SetTags sets the Tags field's value.
20187func (s *UpdateSnapshotScheduleInput) SetTags(v []*Tag) *UpdateSnapshotScheduleInput {
20188	s.Tags = v
20189	return s
20190}
20191
20192// SetVolumeARN sets the VolumeARN field's value.
20193func (s *UpdateSnapshotScheduleInput) SetVolumeARN(v string) *UpdateSnapshotScheduleInput {
20194	s.VolumeARN = &v
20195	return s
20196}
20197
20198// A JSON object containing the Amazon Resource Name (ARN) of the updated storage
20199// volume.
20200type UpdateSnapshotScheduleOutput struct {
20201	_ struct{} `type:"structure"`
20202
20203	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
20204	// to return a list of gateway volumes.
20205	VolumeARN *string `min:"50" type:"string"`
20206}
20207
20208// String returns the string representation
20209func (s UpdateSnapshotScheduleOutput) String() string {
20210	return awsutil.Prettify(s)
20211}
20212
20213// GoString returns the string representation
20214func (s UpdateSnapshotScheduleOutput) GoString() string {
20215	return s.String()
20216}
20217
20218// SetVolumeARN sets the VolumeARN field's value.
20219func (s *UpdateSnapshotScheduleOutput) SetVolumeARN(v string) *UpdateSnapshotScheduleOutput {
20220	s.VolumeARN = &v
20221	return s
20222}
20223
20224type UpdateVTLDeviceTypeInput struct {
20225	_ struct{} `type:"structure"`
20226
20227	// The type of medium changer you want to select.
20228	//
20229	// Valid Values: STK-L700 | AWS-Gateway-VTL | IBM-03584L32-0402
20230	//
20231	// DeviceType is a required field
20232	DeviceType *string `min:"2" type:"string" required:"true"`
20233
20234	// The Amazon Resource Name (ARN) of the medium changer you want to select.
20235	//
20236	// VTLDeviceARN is a required field
20237	VTLDeviceARN *string `min:"50" type:"string" required:"true"`
20238}
20239
20240// String returns the string representation
20241func (s UpdateVTLDeviceTypeInput) String() string {
20242	return awsutil.Prettify(s)
20243}
20244
20245// GoString returns the string representation
20246func (s UpdateVTLDeviceTypeInput) GoString() string {
20247	return s.String()
20248}
20249
20250// Validate inspects the fields of the type to determine if they are valid.
20251func (s *UpdateVTLDeviceTypeInput) Validate() error {
20252	invalidParams := request.ErrInvalidParams{Context: "UpdateVTLDeviceTypeInput"}
20253	if s.DeviceType == nil {
20254		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
20255	}
20256	if s.DeviceType != nil && len(*s.DeviceType) < 2 {
20257		invalidParams.Add(request.NewErrParamMinLen("DeviceType", 2))
20258	}
20259	if s.VTLDeviceARN == nil {
20260		invalidParams.Add(request.NewErrParamRequired("VTLDeviceARN"))
20261	}
20262	if s.VTLDeviceARN != nil && len(*s.VTLDeviceARN) < 50 {
20263		invalidParams.Add(request.NewErrParamMinLen("VTLDeviceARN", 50))
20264	}
20265
20266	if invalidParams.Len() > 0 {
20267		return invalidParams
20268	}
20269	return nil
20270}
20271
20272// SetDeviceType sets the DeviceType field's value.
20273func (s *UpdateVTLDeviceTypeInput) SetDeviceType(v string) *UpdateVTLDeviceTypeInput {
20274	s.DeviceType = &v
20275	return s
20276}
20277
20278// SetVTLDeviceARN sets the VTLDeviceARN field's value.
20279func (s *UpdateVTLDeviceTypeInput) SetVTLDeviceARN(v string) *UpdateVTLDeviceTypeInput {
20280	s.VTLDeviceARN = &v
20281	return s
20282}
20283
20284// UpdateVTLDeviceTypeOutput
20285type UpdateVTLDeviceTypeOutput struct {
20286	_ struct{} `type:"structure"`
20287
20288	// The Amazon Resource Name (ARN) of the medium changer you have selected.
20289	VTLDeviceARN *string `min:"50" type:"string"`
20290}
20291
20292// String returns the string representation
20293func (s UpdateVTLDeviceTypeOutput) String() string {
20294	return awsutil.Prettify(s)
20295}
20296
20297// GoString returns the string representation
20298func (s UpdateVTLDeviceTypeOutput) GoString() string {
20299	return s.String()
20300}
20301
20302// SetVTLDeviceARN sets the VTLDeviceARN field's value.
20303func (s *UpdateVTLDeviceTypeOutput) SetVTLDeviceARN(v string) *UpdateVTLDeviceTypeOutput {
20304	s.VTLDeviceARN = &v
20305	return s
20306}
20307
20308// Represents a device object associated with a tape gateway.
20309type VTLDevice struct {
20310	_ struct{} `type:"structure"`
20311
20312	// A list of iSCSI information about a VTL device.
20313	DeviceiSCSIAttributes *DeviceiSCSIAttributes `type:"structure"`
20314
20315	// Specifies the unique Amazon Resource Name (ARN) of the device (tape drive
20316	// or media changer).
20317	VTLDeviceARN *string `min:"50" type:"string"`
20318
20319	// Specifies the model number of device that the VTL device emulates.
20320	VTLDeviceProductIdentifier *string `type:"string"`
20321
20322	// Specifies the type of device that the VTL device emulates.
20323	VTLDeviceType *string `type:"string"`
20324
20325	// Specifies the vendor of the device that the VTL device object emulates.
20326	VTLDeviceVendor *string `type:"string"`
20327}
20328
20329// String returns the string representation
20330func (s VTLDevice) String() string {
20331	return awsutil.Prettify(s)
20332}
20333
20334// GoString returns the string representation
20335func (s VTLDevice) GoString() string {
20336	return s.String()
20337}
20338
20339// SetDeviceiSCSIAttributes sets the DeviceiSCSIAttributes field's value.
20340func (s *VTLDevice) SetDeviceiSCSIAttributes(v *DeviceiSCSIAttributes) *VTLDevice {
20341	s.DeviceiSCSIAttributes = v
20342	return s
20343}
20344
20345// SetVTLDeviceARN sets the VTLDeviceARN field's value.
20346func (s *VTLDevice) SetVTLDeviceARN(v string) *VTLDevice {
20347	s.VTLDeviceARN = &v
20348	return s
20349}
20350
20351// SetVTLDeviceProductIdentifier sets the VTLDeviceProductIdentifier field's value.
20352func (s *VTLDevice) SetVTLDeviceProductIdentifier(v string) *VTLDevice {
20353	s.VTLDeviceProductIdentifier = &v
20354	return s
20355}
20356
20357// SetVTLDeviceType sets the VTLDeviceType field's value.
20358func (s *VTLDevice) SetVTLDeviceType(v string) *VTLDevice {
20359	s.VTLDeviceType = &v
20360	return s
20361}
20362
20363// SetVTLDeviceVendor sets the VTLDeviceVendor field's value.
20364func (s *VTLDevice) SetVTLDeviceVendor(v string) *VTLDevice {
20365	s.VTLDeviceVendor = &v
20366	return s
20367}
20368
20369// Describes a storage volume object.
20370type VolumeInfo struct {
20371	_ struct{} `type:"structure"`
20372
20373	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
20374	// to return a list of gateways for your account and AWS Region.
20375	GatewayARN *string `min:"50" type:"string"`
20376
20377	// The unique identifier assigned to your gateway during activation. This ID
20378	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
20379	// input for other operations.
20380	//
20381	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
20382	// (-).
20383	GatewayId *string `min:"12" type:"string"`
20384
20385	// The Amazon Resource Name (ARN) for the storage volume. For example, the following
20386	// is a valid ARN:
20387	//
20388	// arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB
20389	//
20390	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
20391	// (-).
20392	VolumeARN *string `min:"50" type:"string"`
20393
20394	// One of the VolumeStatus values that indicates the state of the storage volume.
20395	VolumeAttachmentStatus *string `min:"3" type:"string"`
20396
20397	// The unique identifier assigned to the volume. This ID becomes part of the
20398	// volume Amazon Resource Name (ARN), which you use as input for other operations.
20399	//
20400	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
20401	// (-).
20402	VolumeId *string `min:"12" type:"string"`
20403
20404	// The size of the volume in bytes.
20405	//
20406	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
20407	// (-).
20408	VolumeSizeInBytes *int64 `type:"long"`
20409
20410	// One of the VolumeType enumeration values describing the type of the volume.
20411	VolumeType *string `min:"3" type:"string"`
20412}
20413
20414// String returns the string representation
20415func (s VolumeInfo) String() string {
20416	return awsutil.Prettify(s)
20417}
20418
20419// GoString returns the string representation
20420func (s VolumeInfo) GoString() string {
20421	return s.String()
20422}
20423
20424// SetGatewayARN sets the GatewayARN field's value.
20425func (s *VolumeInfo) SetGatewayARN(v string) *VolumeInfo {
20426	s.GatewayARN = &v
20427	return s
20428}
20429
20430// SetGatewayId sets the GatewayId field's value.
20431func (s *VolumeInfo) SetGatewayId(v string) *VolumeInfo {
20432	s.GatewayId = &v
20433	return s
20434}
20435
20436// SetVolumeARN sets the VolumeARN field's value.
20437func (s *VolumeInfo) SetVolumeARN(v string) *VolumeInfo {
20438	s.VolumeARN = &v
20439	return s
20440}
20441
20442// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
20443func (s *VolumeInfo) SetVolumeAttachmentStatus(v string) *VolumeInfo {
20444	s.VolumeAttachmentStatus = &v
20445	return s
20446}
20447
20448// SetVolumeId sets the VolumeId field's value.
20449func (s *VolumeInfo) SetVolumeId(v string) *VolumeInfo {
20450	s.VolumeId = &v
20451	return s
20452}
20453
20454// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
20455func (s *VolumeInfo) SetVolumeSizeInBytes(v int64) *VolumeInfo {
20456	s.VolumeSizeInBytes = &v
20457	return s
20458}
20459
20460// SetVolumeType sets the VolumeType field's value.
20461func (s *VolumeInfo) SetVolumeType(v string) *VolumeInfo {
20462	s.VolumeType = &v
20463	return s
20464}
20465
20466// Describes a storage volume recovery point object.
20467type VolumeRecoveryPointInfo struct {
20468	_ struct{} `type:"structure"`
20469
20470	// The Amazon Resource Name (ARN) of the volume target.
20471	VolumeARN *string `min:"50" type:"string"`
20472
20473	// The time the recovery point was taken.
20474	VolumeRecoveryPointTime *string `type:"string"`
20475
20476	// The size of the volume in bytes.
20477	VolumeSizeInBytes *int64 `type:"long"`
20478
20479	// The size of the data stored on the volume in bytes.
20480	//
20481	// This value is not available for volumes created prior to May 13, 2015, until
20482	// you store data on the volume.
20483	VolumeUsageInBytes *int64 `type:"long"`
20484}
20485
20486// String returns the string representation
20487func (s VolumeRecoveryPointInfo) String() string {
20488	return awsutil.Prettify(s)
20489}
20490
20491// GoString returns the string representation
20492func (s VolumeRecoveryPointInfo) GoString() string {
20493	return s.String()
20494}
20495
20496// SetVolumeARN sets the VolumeARN field's value.
20497func (s *VolumeRecoveryPointInfo) SetVolumeARN(v string) *VolumeRecoveryPointInfo {
20498	s.VolumeARN = &v
20499	return s
20500}
20501
20502// SetVolumeRecoveryPointTime sets the VolumeRecoveryPointTime field's value.
20503func (s *VolumeRecoveryPointInfo) SetVolumeRecoveryPointTime(v string) *VolumeRecoveryPointInfo {
20504	s.VolumeRecoveryPointTime = &v
20505	return s
20506}
20507
20508// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
20509func (s *VolumeRecoveryPointInfo) SetVolumeSizeInBytes(v int64) *VolumeRecoveryPointInfo {
20510	s.VolumeSizeInBytes = &v
20511	return s
20512}
20513
20514// SetVolumeUsageInBytes sets the VolumeUsageInBytes field's value.
20515func (s *VolumeRecoveryPointInfo) SetVolumeUsageInBytes(v int64) *VolumeRecoveryPointInfo {
20516	s.VolumeUsageInBytes = &v
20517	return s
20518}
20519
20520// Lists iSCSI information about a volume.
20521type VolumeiSCSIAttributes struct {
20522	_ struct{} `type:"structure"`
20523
20524	// Indicates whether mutual CHAP is enabled for the iSCSI target.
20525	ChapEnabled *bool `type:"boolean"`
20526
20527	// The logical disk number.
20528	LunNumber *int64 `min:"1" type:"integer"`
20529
20530	// The network interface identifier.
20531	NetworkInterfaceId *string `type:"string"`
20532
20533	// The port used to communicate with iSCSI targets.
20534	NetworkInterfacePort *int64 `type:"integer"`
20535
20536	// The Amazon Resource Name (ARN) of the volume target.
20537	TargetARN *string `min:"50" type:"string"`
20538}
20539
20540// String returns the string representation
20541func (s VolumeiSCSIAttributes) String() string {
20542	return awsutil.Prettify(s)
20543}
20544
20545// GoString returns the string representation
20546func (s VolumeiSCSIAttributes) GoString() string {
20547	return s.String()
20548}
20549
20550// SetChapEnabled sets the ChapEnabled field's value.
20551func (s *VolumeiSCSIAttributes) SetChapEnabled(v bool) *VolumeiSCSIAttributes {
20552	s.ChapEnabled = &v
20553	return s
20554}
20555
20556// SetLunNumber sets the LunNumber field's value.
20557func (s *VolumeiSCSIAttributes) SetLunNumber(v int64) *VolumeiSCSIAttributes {
20558	s.LunNumber = &v
20559	return s
20560}
20561
20562// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
20563func (s *VolumeiSCSIAttributes) SetNetworkInterfaceId(v string) *VolumeiSCSIAttributes {
20564	s.NetworkInterfaceId = &v
20565	return s
20566}
20567
20568// SetNetworkInterfacePort sets the NetworkInterfacePort field's value.
20569func (s *VolumeiSCSIAttributes) SetNetworkInterfacePort(v int64) *VolumeiSCSIAttributes {
20570	s.NetworkInterfacePort = &v
20571	return s
20572}
20573
20574// SetTargetARN sets the TargetARN field's value.
20575func (s *VolumeiSCSIAttributes) SetTargetARN(v string) *VolumeiSCSIAttributes {
20576	s.TargetARN = &v
20577	return s
20578}
20579
20580const (
20581	// ActiveDirectoryStatusAccessDenied is a ActiveDirectoryStatus enum value
20582	ActiveDirectoryStatusAccessDenied = "ACCESS_DENIED"
20583
20584	// ActiveDirectoryStatusDetached is a ActiveDirectoryStatus enum value
20585	ActiveDirectoryStatusDetached = "DETACHED"
20586
20587	// ActiveDirectoryStatusJoined is a ActiveDirectoryStatus enum value
20588	ActiveDirectoryStatusJoined = "JOINED"
20589
20590	// ActiveDirectoryStatusJoining is a ActiveDirectoryStatus enum value
20591	ActiveDirectoryStatusJoining = "JOINING"
20592
20593	// ActiveDirectoryStatusNetworkError is a ActiveDirectoryStatus enum value
20594	ActiveDirectoryStatusNetworkError = "NETWORK_ERROR"
20595
20596	// ActiveDirectoryStatusTimeout is a ActiveDirectoryStatus enum value
20597	ActiveDirectoryStatusTimeout = "TIMEOUT"
20598
20599	// ActiveDirectoryStatusUnknownError is a ActiveDirectoryStatus enum value
20600	ActiveDirectoryStatusUnknownError = "UNKNOWN_ERROR"
20601)
20602
20603// ActiveDirectoryStatus_Values returns all elements of the ActiveDirectoryStatus enum
20604func ActiveDirectoryStatus_Values() []string {
20605	return []string{
20606		ActiveDirectoryStatusAccessDenied,
20607		ActiveDirectoryStatusDetached,
20608		ActiveDirectoryStatusJoined,
20609		ActiveDirectoryStatusJoining,
20610		ActiveDirectoryStatusNetworkError,
20611		ActiveDirectoryStatusTimeout,
20612		ActiveDirectoryStatusUnknownError,
20613	}
20614}
20615
20616const (
20617	// AvailabilityMonitorTestStatusComplete is a AvailabilityMonitorTestStatus enum value
20618	AvailabilityMonitorTestStatusComplete = "COMPLETE"
20619
20620	// AvailabilityMonitorTestStatusFailed is a AvailabilityMonitorTestStatus enum value
20621	AvailabilityMonitorTestStatusFailed = "FAILED"
20622
20623	// AvailabilityMonitorTestStatusPending is a AvailabilityMonitorTestStatus enum value
20624	AvailabilityMonitorTestStatusPending = "PENDING"
20625)
20626
20627// AvailabilityMonitorTestStatus_Values returns all elements of the AvailabilityMonitorTestStatus enum
20628func AvailabilityMonitorTestStatus_Values() []string {
20629	return []string{
20630		AvailabilityMonitorTestStatusComplete,
20631		AvailabilityMonitorTestStatusFailed,
20632		AvailabilityMonitorTestStatusPending,
20633	}
20634}
20635
20636const (
20637	// CaseSensitivityClientSpecified is a CaseSensitivity enum value
20638	CaseSensitivityClientSpecified = "ClientSpecified"
20639
20640	// CaseSensitivityCaseSensitive is a CaseSensitivity enum value
20641	CaseSensitivityCaseSensitive = "CaseSensitive"
20642)
20643
20644// CaseSensitivity_Values returns all elements of the CaseSensitivity enum
20645func CaseSensitivity_Values() []string {
20646	return []string{
20647		CaseSensitivityClientSpecified,
20648		CaseSensitivityCaseSensitive,
20649	}
20650}
20651
20652const (
20653	// ErrorCodeActivationKeyExpired is a ErrorCode enum value
20654	ErrorCodeActivationKeyExpired = "ActivationKeyExpired"
20655
20656	// ErrorCodeActivationKeyInvalid is a ErrorCode enum value
20657	ErrorCodeActivationKeyInvalid = "ActivationKeyInvalid"
20658
20659	// ErrorCodeActivationKeyNotFound is a ErrorCode enum value
20660	ErrorCodeActivationKeyNotFound = "ActivationKeyNotFound"
20661
20662	// ErrorCodeGatewayInternalError is a ErrorCode enum value
20663	ErrorCodeGatewayInternalError = "GatewayInternalError"
20664
20665	// ErrorCodeGatewayNotConnected is a ErrorCode enum value
20666	ErrorCodeGatewayNotConnected = "GatewayNotConnected"
20667
20668	// ErrorCodeGatewayNotFound is a ErrorCode enum value
20669	ErrorCodeGatewayNotFound = "GatewayNotFound"
20670
20671	// ErrorCodeGatewayProxyNetworkConnectionBusy is a ErrorCode enum value
20672	ErrorCodeGatewayProxyNetworkConnectionBusy = "GatewayProxyNetworkConnectionBusy"
20673
20674	// ErrorCodeAuthenticationFailure is a ErrorCode enum value
20675	ErrorCodeAuthenticationFailure = "AuthenticationFailure"
20676
20677	// ErrorCodeBandwidthThrottleScheduleNotFound is a ErrorCode enum value
20678	ErrorCodeBandwidthThrottleScheduleNotFound = "BandwidthThrottleScheduleNotFound"
20679
20680	// ErrorCodeBlocked is a ErrorCode enum value
20681	ErrorCodeBlocked = "Blocked"
20682
20683	// ErrorCodeCannotExportSnapshot is a ErrorCode enum value
20684	ErrorCodeCannotExportSnapshot = "CannotExportSnapshot"
20685
20686	// ErrorCodeChapCredentialNotFound is a ErrorCode enum value
20687	ErrorCodeChapCredentialNotFound = "ChapCredentialNotFound"
20688
20689	// ErrorCodeDiskAlreadyAllocated is a ErrorCode enum value
20690	ErrorCodeDiskAlreadyAllocated = "DiskAlreadyAllocated"
20691
20692	// ErrorCodeDiskDoesNotExist is a ErrorCode enum value
20693	ErrorCodeDiskDoesNotExist = "DiskDoesNotExist"
20694
20695	// ErrorCodeDiskSizeGreaterThanVolumeMaxSize is a ErrorCode enum value
20696	ErrorCodeDiskSizeGreaterThanVolumeMaxSize = "DiskSizeGreaterThanVolumeMaxSize"
20697
20698	// ErrorCodeDiskSizeLessThanVolumeSize is a ErrorCode enum value
20699	ErrorCodeDiskSizeLessThanVolumeSize = "DiskSizeLessThanVolumeSize"
20700
20701	// ErrorCodeDiskSizeNotGigAligned is a ErrorCode enum value
20702	ErrorCodeDiskSizeNotGigAligned = "DiskSizeNotGigAligned"
20703
20704	// ErrorCodeDuplicateCertificateInfo is a ErrorCode enum value
20705	ErrorCodeDuplicateCertificateInfo = "DuplicateCertificateInfo"
20706
20707	// ErrorCodeDuplicateSchedule is a ErrorCode enum value
20708	ErrorCodeDuplicateSchedule = "DuplicateSchedule"
20709
20710	// ErrorCodeEndpointNotFound is a ErrorCode enum value
20711	ErrorCodeEndpointNotFound = "EndpointNotFound"
20712
20713	// ErrorCodeIamnotSupported is a ErrorCode enum value
20714	ErrorCodeIamnotSupported = "IAMNotSupported"
20715
20716	// ErrorCodeInitiatorInvalid is a ErrorCode enum value
20717	ErrorCodeInitiatorInvalid = "InitiatorInvalid"
20718
20719	// ErrorCodeInitiatorNotFound is a ErrorCode enum value
20720	ErrorCodeInitiatorNotFound = "InitiatorNotFound"
20721
20722	// ErrorCodeInternalError is a ErrorCode enum value
20723	ErrorCodeInternalError = "InternalError"
20724
20725	// ErrorCodeInvalidGateway is a ErrorCode enum value
20726	ErrorCodeInvalidGateway = "InvalidGateway"
20727
20728	// ErrorCodeInvalidEndpoint is a ErrorCode enum value
20729	ErrorCodeInvalidEndpoint = "InvalidEndpoint"
20730
20731	// ErrorCodeInvalidParameters is a ErrorCode enum value
20732	ErrorCodeInvalidParameters = "InvalidParameters"
20733
20734	// ErrorCodeInvalidSchedule is a ErrorCode enum value
20735	ErrorCodeInvalidSchedule = "InvalidSchedule"
20736
20737	// ErrorCodeLocalStorageLimitExceeded is a ErrorCode enum value
20738	ErrorCodeLocalStorageLimitExceeded = "LocalStorageLimitExceeded"
20739
20740	// ErrorCodeLunAlreadyAllocated is a ErrorCode enum value
20741	ErrorCodeLunAlreadyAllocated = "LunAlreadyAllocated "
20742
20743	// ErrorCodeLunInvalid is a ErrorCode enum value
20744	ErrorCodeLunInvalid = "LunInvalid"
20745
20746	// ErrorCodeJoinDomainInProgress is a ErrorCode enum value
20747	ErrorCodeJoinDomainInProgress = "JoinDomainInProgress"
20748
20749	// ErrorCodeMaximumContentLengthExceeded is a ErrorCode enum value
20750	ErrorCodeMaximumContentLengthExceeded = "MaximumContentLengthExceeded"
20751
20752	// ErrorCodeMaximumTapeCartridgeCountExceeded is a ErrorCode enum value
20753	ErrorCodeMaximumTapeCartridgeCountExceeded = "MaximumTapeCartridgeCountExceeded"
20754
20755	// ErrorCodeMaximumVolumeCountExceeded is a ErrorCode enum value
20756	ErrorCodeMaximumVolumeCountExceeded = "MaximumVolumeCountExceeded"
20757
20758	// ErrorCodeNetworkConfigurationChanged is a ErrorCode enum value
20759	ErrorCodeNetworkConfigurationChanged = "NetworkConfigurationChanged"
20760
20761	// ErrorCodeNoDisksAvailable is a ErrorCode enum value
20762	ErrorCodeNoDisksAvailable = "NoDisksAvailable"
20763
20764	// ErrorCodeNotImplemented is a ErrorCode enum value
20765	ErrorCodeNotImplemented = "NotImplemented"
20766
20767	// ErrorCodeNotSupported is a ErrorCode enum value
20768	ErrorCodeNotSupported = "NotSupported"
20769
20770	// ErrorCodeOperationAborted is a ErrorCode enum value
20771	ErrorCodeOperationAborted = "OperationAborted"
20772
20773	// ErrorCodeOutdatedGateway is a ErrorCode enum value
20774	ErrorCodeOutdatedGateway = "OutdatedGateway"
20775
20776	// ErrorCodeParametersNotImplemented is a ErrorCode enum value
20777	ErrorCodeParametersNotImplemented = "ParametersNotImplemented"
20778
20779	// ErrorCodeRegionInvalid is a ErrorCode enum value
20780	ErrorCodeRegionInvalid = "RegionInvalid"
20781
20782	// ErrorCodeRequestTimeout is a ErrorCode enum value
20783	ErrorCodeRequestTimeout = "RequestTimeout"
20784
20785	// ErrorCodeServiceUnavailable is a ErrorCode enum value
20786	ErrorCodeServiceUnavailable = "ServiceUnavailable"
20787
20788	// ErrorCodeSnapshotDeleted is a ErrorCode enum value
20789	ErrorCodeSnapshotDeleted = "SnapshotDeleted"
20790
20791	// ErrorCodeSnapshotIdInvalid is a ErrorCode enum value
20792	ErrorCodeSnapshotIdInvalid = "SnapshotIdInvalid"
20793
20794	// ErrorCodeSnapshotInProgress is a ErrorCode enum value
20795	ErrorCodeSnapshotInProgress = "SnapshotInProgress"
20796
20797	// ErrorCodeSnapshotNotFound is a ErrorCode enum value
20798	ErrorCodeSnapshotNotFound = "SnapshotNotFound"
20799
20800	// ErrorCodeSnapshotScheduleNotFound is a ErrorCode enum value
20801	ErrorCodeSnapshotScheduleNotFound = "SnapshotScheduleNotFound"
20802
20803	// ErrorCodeStagingAreaFull is a ErrorCode enum value
20804	ErrorCodeStagingAreaFull = "StagingAreaFull"
20805
20806	// ErrorCodeStorageFailure is a ErrorCode enum value
20807	ErrorCodeStorageFailure = "StorageFailure"
20808
20809	// ErrorCodeTapeCartridgeNotFound is a ErrorCode enum value
20810	ErrorCodeTapeCartridgeNotFound = "TapeCartridgeNotFound"
20811
20812	// ErrorCodeTargetAlreadyExists is a ErrorCode enum value
20813	ErrorCodeTargetAlreadyExists = "TargetAlreadyExists"
20814
20815	// ErrorCodeTargetInvalid is a ErrorCode enum value
20816	ErrorCodeTargetInvalid = "TargetInvalid"
20817
20818	// ErrorCodeTargetNotFound is a ErrorCode enum value
20819	ErrorCodeTargetNotFound = "TargetNotFound"
20820
20821	// ErrorCodeUnauthorizedOperation is a ErrorCode enum value
20822	ErrorCodeUnauthorizedOperation = "UnauthorizedOperation"
20823
20824	// ErrorCodeVolumeAlreadyExists is a ErrorCode enum value
20825	ErrorCodeVolumeAlreadyExists = "VolumeAlreadyExists"
20826
20827	// ErrorCodeVolumeIdInvalid is a ErrorCode enum value
20828	ErrorCodeVolumeIdInvalid = "VolumeIdInvalid"
20829
20830	// ErrorCodeVolumeInUse is a ErrorCode enum value
20831	ErrorCodeVolumeInUse = "VolumeInUse"
20832
20833	// ErrorCodeVolumeNotFound is a ErrorCode enum value
20834	ErrorCodeVolumeNotFound = "VolumeNotFound"
20835
20836	// ErrorCodeVolumeNotReady is a ErrorCode enum value
20837	ErrorCodeVolumeNotReady = "VolumeNotReady"
20838)
20839
20840// ErrorCode_Values returns all elements of the ErrorCode enum
20841func ErrorCode_Values() []string {
20842	return []string{
20843		ErrorCodeActivationKeyExpired,
20844		ErrorCodeActivationKeyInvalid,
20845		ErrorCodeActivationKeyNotFound,
20846		ErrorCodeGatewayInternalError,
20847		ErrorCodeGatewayNotConnected,
20848		ErrorCodeGatewayNotFound,
20849		ErrorCodeGatewayProxyNetworkConnectionBusy,
20850		ErrorCodeAuthenticationFailure,
20851		ErrorCodeBandwidthThrottleScheduleNotFound,
20852		ErrorCodeBlocked,
20853		ErrorCodeCannotExportSnapshot,
20854		ErrorCodeChapCredentialNotFound,
20855		ErrorCodeDiskAlreadyAllocated,
20856		ErrorCodeDiskDoesNotExist,
20857		ErrorCodeDiskSizeGreaterThanVolumeMaxSize,
20858		ErrorCodeDiskSizeLessThanVolumeSize,
20859		ErrorCodeDiskSizeNotGigAligned,
20860		ErrorCodeDuplicateCertificateInfo,
20861		ErrorCodeDuplicateSchedule,
20862		ErrorCodeEndpointNotFound,
20863		ErrorCodeIamnotSupported,
20864		ErrorCodeInitiatorInvalid,
20865		ErrorCodeInitiatorNotFound,
20866		ErrorCodeInternalError,
20867		ErrorCodeInvalidGateway,
20868		ErrorCodeInvalidEndpoint,
20869		ErrorCodeInvalidParameters,
20870		ErrorCodeInvalidSchedule,
20871		ErrorCodeLocalStorageLimitExceeded,
20872		ErrorCodeLunAlreadyAllocated,
20873		ErrorCodeLunInvalid,
20874		ErrorCodeJoinDomainInProgress,
20875		ErrorCodeMaximumContentLengthExceeded,
20876		ErrorCodeMaximumTapeCartridgeCountExceeded,
20877		ErrorCodeMaximumVolumeCountExceeded,
20878		ErrorCodeNetworkConfigurationChanged,
20879		ErrorCodeNoDisksAvailable,
20880		ErrorCodeNotImplemented,
20881		ErrorCodeNotSupported,
20882		ErrorCodeOperationAborted,
20883		ErrorCodeOutdatedGateway,
20884		ErrorCodeParametersNotImplemented,
20885		ErrorCodeRegionInvalid,
20886		ErrorCodeRequestTimeout,
20887		ErrorCodeServiceUnavailable,
20888		ErrorCodeSnapshotDeleted,
20889		ErrorCodeSnapshotIdInvalid,
20890		ErrorCodeSnapshotInProgress,
20891		ErrorCodeSnapshotNotFound,
20892		ErrorCodeSnapshotScheduleNotFound,
20893		ErrorCodeStagingAreaFull,
20894		ErrorCodeStorageFailure,
20895		ErrorCodeTapeCartridgeNotFound,
20896		ErrorCodeTargetAlreadyExists,
20897		ErrorCodeTargetInvalid,
20898		ErrorCodeTargetNotFound,
20899		ErrorCodeUnauthorizedOperation,
20900		ErrorCodeVolumeAlreadyExists,
20901		ErrorCodeVolumeIdInvalid,
20902		ErrorCodeVolumeInUse,
20903		ErrorCodeVolumeNotFound,
20904		ErrorCodeVolumeNotReady,
20905	}
20906}
20907
20908// The type of the file share.
20909const (
20910	// FileShareTypeNfs is a FileShareType enum value
20911	FileShareTypeNfs = "NFS"
20912
20913	// FileShareTypeSmb is a FileShareType enum value
20914	FileShareTypeSmb = "SMB"
20915)
20916
20917// FileShareType_Values returns all elements of the FileShareType enum
20918func FileShareType_Values() []string {
20919	return []string{
20920		FileShareTypeNfs,
20921		FileShareTypeSmb,
20922	}
20923}
20924
20925const (
20926	// HostEnvironmentVmware is a HostEnvironment enum value
20927	HostEnvironmentVmware = "VMWARE"
20928
20929	// HostEnvironmentHyperV is a HostEnvironment enum value
20930	HostEnvironmentHyperV = "HYPER-V"
20931
20932	// HostEnvironmentEc2 is a HostEnvironment enum value
20933	HostEnvironmentEc2 = "EC2"
20934
20935	// HostEnvironmentKvm is a HostEnvironment enum value
20936	HostEnvironmentKvm = "KVM"
20937
20938	// HostEnvironmentOther is a HostEnvironment enum value
20939	HostEnvironmentOther = "OTHER"
20940)
20941
20942// HostEnvironment_Values returns all elements of the HostEnvironment enum
20943func HostEnvironment_Values() []string {
20944	return []string{
20945		HostEnvironmentVmware,
20946		HostEnvironmentHyperV,
20947		HostEnvironmentEc2,
20948		HostEnvironmentKvm,
20949		HostEnvironmentOther,
20950	}
20951}
20952
20953// A value that sets the access control list (ACL) permission for objects in
20954// the S3 bucket that a file gateway puts objects into. The default value is
20955// private.
20956const (
20957	// ObjectACLPrivate is a ObjectACL enum value
20958	ObjectACLPrivate = "private"
20959
20960	// ObjectACLPublicRead is a ObjectACL enum value
20961	ObjectACLPublicRead = "public-read"
20962
20963	// ObjectACLPublicReadWrite is a ObjectACL enum value
20964	ObjectACLPublicReadWrite = "public-read-write"
20965
20966	// ObjectACLAuthenticatedRead is a ObjectACL enum value
20967	ObjectACLAuthenticatedRead = "authenticated-read"
20968
20969	// ObjectACLBucketOwnerRead is a ObjectACL enum value
20970	ObjectACLBucketOwnerRead = "bucket-owner-read"
20971
20972	// ObjectACLBucketOwnerFullControl is a ObjectACL enum value
20973	ObjectACLBucketOwnerFullControl = "bucket-owner-full-control"
20974
20975	// ObjectACLAwsExecRead is a ObjectACL enum value
20976	ObjectACLAwsExecRead = "aws-exec-read"
20977)
20978
20979// ObjectACL_Values returns all elements of the ObjectACL enum
20980func ObjectACL_Values() []string {
20981	return []string{
20982		ObjectACLPrivate,
20983		ObjectACLPublicRead,
20984		ObjectACLPublicReadWrite,
20985		ObjectACLAuthenticatedRead,
20986		ObjectACLBucketOwnerRead,
20987		ObjectACLBucketOwnerFullControl,
20988		ObjectACLAwsExecRead,
20989	}
20990}
20991
20992const (
20993	// PoolStatusActive is a PoolStatus enum value
20994	PoolStatusActive = "ACTIVE"
20995
20996	// PoolStatusDeleted is a PoolStatus enum value
20997	PoolStatusDeleted = "DELETED"
20998)
20999
21000// PoolStatus_Values returns all elements of the PoolStatus enum
21001func PoolStatus_Values() []string {
21002	return []string{
21003		PoolStatusActive,
21004		PoolStatusDeleted,
21005	}
21006}
21007
21008const (
21009	// RetentionLockTypeCompliance is a RetentionLockType enum value
21010	RetentionLockTypeCompliance = "COMPLIANCE"
21011
21012	// RetentionLockTypeGovernance is a RetentionLockType enum value
21013	RetentionLockTypeGovernance = "GOVERNANCE"
21014
21015	// RetentionLockTypeNone is a RetentionLockType enum value
21016	RetentionLockTypeNone = "NONE"
21017)
21018
21019// RetentionLockType_Values returns all elements of the RetentionLockType enum
21020func RetentionLockType_Values() []string {
21021	return []string{
21022		RetentionLockTypeCompliance,
21023		RetentionLockTypeGovernance,
21024		RetentionLockTypeNone,
21025	}
21026}
21027
21028const (
21029	// SMBSecurityStrategyClientSpecified is a SMBSecurityStrategy enum value
21030	SMBSecurityStrategyClientSpecified = "ClientSpecified"
21031
21032	// SMBSecurityStrategyMandatorySigning is a SMBSecurityStrategy enum value
21033	SMBSecurityStrategyMandatorySigning = "MandatorySigning"
21034
21035	// SMBSecurityStrategyMandatoryEncryption is a SMBSecurityStrategy enum value
21036	SMBSecurityStrategyMandatoryEncryption = "MandatoryEncryption"
21037)
21038
21039// SMBSecurityStrategy_Values returns all elements of the SMBSecurityStrategy enum
21040func SMBSecurityStrategy_Values() []string {
21041	return []string{
21042		SMBSecurityStrategyClientSpecified,
21043		SMBSecurityStrategyMandatorySigning,
21044		SMBSecurityStrategyMandatoryEncryption,
21045	}
21046}
21047
21048const (
21049	// TapeStorageClassDeepArchive is a TapeStorageClass enum value
21050	TapeStorageClassDeepArchive = "DEEP_ARCHIVE"
21051
21052	// TapeStorageClassGlacier is a TapeStorageClass enum value
21053	TapeStorageClassGlacier = "GLACIER"
21054)
21055
21056// TapeStorageClass_Values returns all elements of the TapeStorageClass enum
21057func TapeStorageClass_Values() []string {
21058	return []string{
21059		TapeStorageClassDeepArchive,
21060		TapeStorageClassGlacier,
21061	}
21062}
21063