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 expose 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 ad-hoc
1172// 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 which
1393// 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 opCreateTapeWithBarcode = "CreateTapeWithBarcode"
1437
1438// CreateTapeWithBarcodeRequest generates a "aws/request.Request" representing the
1439// client's request for the CreateTapeWithBarcode 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 CreateTapeWithBarcode for more information on using the CreateTapeWithBarcode
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 CreateTapeWithBarcodeRequest method.
1454//    req, resp := client.CreateTapeWithBarcodeRequest(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/CreateTapeWithBarcode
1462func (c *StorageGateway) CreateTapeWithBarcodeRequest(input *CreateTapeWithBarcodeInput) (req *request.Request, output *CreateTapeWithBarcodeOutput) {
1463	op := &request.Operation{
1464		Name:       opCreateTapeWithBarcode,
1465		HTTPMethod: "POST",
1466		HTTPPath:   "/",
1467	}
1468
1469	if input == nil {
1470		input = &CreateTapeWithBarcodeInput{}
1471	}
1472
1473	output = &CreateTapeWithBarcodeOutput{}
1474	req = c.newRequest(op, input, output)
1475	return
1476}
1477
1478// CreateTapeWithBarcode API operation for AWS Storage Gateway.
1479//
1480// Creates a virtual tape by using your own barcode. You write data to the virtual
1481// tape and then archive the tape. A barcode is unique and can not be reused
1482// if it has already been used on a tape. This applies to barcodes used on deleted
1483// tapes. This operation is only supported in the tape gateway type.
1484//
1485// Cache storage must be allocated to the gateway before you can create a virtual
1486// tape. Use the AddCache operation to add cache storage to a gateway.
1487//
1488// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1489// with awserr.Error's Code and Message methods to get detailed information about
1490// the error.
1491//
1492// See the AWS API reference guide for AWS Storage Gateway's
1493// API operation CreateTapeWithBarcode for usage and error information.
1494//
1495// Returned Error Types:
1496//   * InvalidGatewayRequestException
1497//   An exception occurred because an invalid gateway request was issued to the
1498//   service. For more information, see the error and message fields.
1499//
1500//   * InternalServerError
1501//   An internal server error has occurred during the request. For more information,
1502//   see the error and message fields.
1503//
1504// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapeWithBarcode
1505func (c *StorageGateway) CreateTapeWithBarcode(input *CreateTapeWithBarcodeInput) (*CreateTapeWithBarcodeOutput, error) {
1506	req, out := c.CreateTapeWithBarcodeRequest(input)
1507	return out, req.Send()
1508}
1509
1510// CreateTapeWithBarcodeWithContext is the same as CreateTapeWithBarcode with the addition of
1511// the ability to pass a context and additional request options.
1512//
1513// See CreateTapeWithBarcode for details on how to use this API operation.
1514//
1515// The context must be non-nil and will be used for request cancellation. If
1516// the context is nil a panic will occur. In the future the SDK may create
1517// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1518// for more information on using Contexts.
1519func (c *StorageGateway) CreateTapeWithBarcodeWithContext(ctx aws.Context, input *CreateTapeWithBarcodeInput, opts ...request.Option) (*CreateTapeWithBarcodeOutput, error) {
1520	req, out := c.CreateTapeWithBarcodeRequest(input)
1521	req.SetContext(ctx)
1522	req.ApplyOptions(opts...)
1523	return out, req.Send()
1524}
1525
1526const opCreateTapes = "CreateTapes"
1527
1528// CreateTapesRequest generates a "aws/request.Request" representing the
1529// client's request for the CreateTapes operation. The "output" return
1530// value will be populated with the request's response once the request completes
1531// successfully.
1532//
1533// Use "Send" method on the returned Request to send the API call to the service.
1534// the "output" return value is not valid until after Send returns without error.
1535//
1536// See CreateTapes for more information on using the CreateTapes
1537// API call, and error handling.
1538//
1539// This method is useful when you want to inject custom logic or configuration
1540// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1541//
1542//
1543//    // Example sending a request using the CreateTapesRequest method.
1544//    req, resp := client.CreateTapesRequest(params)
1545//
1546//    err := req.Send()
1547//    if err == nil { // resp is now filled
1548//        fmt.Println(resp)
1549//    }
1550//
1551// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapes
1552func (c *StorageGateway) CreateTapesRequest(input *CreateTapesInput) (req *request.Request, output *CreateTapesOutput) {
1553	op := &request.Operation{
1554		Name:       opCreateTapes,
1555		HTTPMethod: "POST",
1556		HTTPPath:   "/",
1557	}
1558
1559	if input == nil {
1560		input = &CreateTapesInput{}
1561	}
1562
1563	output = &CreateTapesOutput{}
1564	req = c.newRequest(op, input, output)
1565	return
1566}
1567
1568// CreateTapes API operation for AWS Storage Gateway.
1569//
1570// Creates one or more virtual tapes. You write data to the virtual tapes and
1571// then archive the tapes. This operation is only supported in the tape gateway
1572// type.
1573//
1574// Cache storage must be allocated to the gateway before you can create virtual
1575// tapes. Use the AddCache operation to add cache storage to a gateway.
1576//
1577// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1578// with awserr.Error's Code and Message methods to get detailed information about
1579// the error.
1580//
1581// See the AWS API reference guide for AWS Storage Gateway's
1582// API operation CreateTapes for usage and error information.
1583//
1584// Returned Error Types:
1585//   * InvalidGatewayRequestException
1586//   An exception occurred because an invalid gateway request was issued to the
1587//   service. For more information, see the error and message fields.
1588//
1589//   * InternalServerError
1590//   An internal server error has occurred during the request. For more information,
1591//   see the error and message fields.
1592//
1593// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapes
1594func (c *StorageGateway) CreateTapes(input *CreateTapesInput) (*CreateTapesOutput, error) {
1595	req, out := c.CreateTapesRequest(input)
1596	return out, req.Send()
1597}
1598
1599// CreateTapesWithContext is the same as CreateTapes with the addition of
1600// the ability to pass a context and additional request options.
1601//
1602// See CreateTapes for details on how to use this API operation.
1603//
1604// The context must be non-nil and will be used for request cancellation. If
1605// the context is nil a panic will occur. In the future the SDK may create
1606// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1607// for more information on using Contexts.
1608func (c *StorageGateway) CreateTapesWithContext(ctx aws.Context, input *CreateTapesInput, opts ...request.Option) (*CreateTapesOutput, error) {
1609	req, out := c.CreateTapesRequest(input)
1610	req.SetContext(ctx)
1611	req.ApplyOptions(opts...)
1612	return out, req.Send()
1613}
1614
1615const opDeleteAutomaticTapeCreationPolicy = "DeleteAutomaticTapeCreationPolicy"
1616
1617// DeleteAutomaticTapeCreationPolicyRequest generates a "aws/request.Request" representing the
1618// client's request for the DeleteAutomaticTapeCreationPolicy operation. The "output" return
1619// value will be populated with the request's response once the request completes
1620// successfully.
1621//
1622// Use "Send" method on the returned Request to send the API call to the service.
1623// the "output" return value is not valid until after Send returns without error.
1624//
1625// See DeleteAutomaticTapeCreationPolicy for more information on using the DeleteAutomaticTapeCreationPolicy
1626// API call, and error handling.
1627//
1628// This method is useful when you want to inject custom logic or configuration
1629// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1630//
1631//
1632//    // Example sending a request using the DeleteAutomaticTapeCreationPolicyRequest method.
1633//    req, resp := client.DeleteAutomaticTapeCreationPolicyRequest(params)
1634//
1635//    err := req.Send()
1636//    if err == nil { // resp is now filled
1637//        fmt.Println(resp)
1638//    }
1639//
1640// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteAutomaticTapeCreationPolicy
1641func (c *StorageGateway) DeleteAutomaticTapeCreationPolicyRequest(input *DeleteAutomaticTapeCreationPolicyInput) (req *request.Request, output *DeleteAutomaticTapeCreationPolicyOutput) {
1642	op := &request.Operation{
1643		Name:       opDeleteAutomaticTapeCreationPolicy,
1644		HTTPMethod: "POST",
1645		HTTPPath:   "/",
1646	}
1647
1648	if input == nil {
1649		input = &DeleteAutomaticTapeCreationPolicyInput{}
1650	}
1651
1652	output = &DeleteAutomaticTapeCreationPolicyOutput{}
1653	req = c.newRequest(op, input, output)
1654	return
1655}
1656
1657// DeleteAutomaticTapeCreationPolicy API operation for AWS Storage Gateway.
1658//
1659// Deletes the automatic tape creation policy of a gateway. If you delete this
1660// policy, new virtual tapes must be created manually. Use the Amazon Resource
1661// Name (ARN) of the gateway in your request to remove the policy.
1662//
1663// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1664// with awserr.Error's Code and Message methods to get detailed information about
1665// the error.
1666//
1667// See the AWS API reference guide for AWS Storage Gateway's
1668// API operation DeleteAutomaticTapeCreationPolicy for usage and error information.
1669//
1670// Returned Error Types:
1671//   * InvalidGatewayRequestException
1672//   An exception occurred because an invalid gateway request was issued to the
1673//   service. For more information, see the error and message fields.
1674//
1675//   * InternalServerError
1676//   An internal server error has occurred during the request. For more information,
1677//   see the error and message fields.
1678//
1679// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteAutomaticTapeCreationPolicy
1680func (c *StorageGateway) DeleteAutomaticTapeCreationPolicy(input *DeleteAutomaticTapeCreationPolicyInput) (*DeleteAutomaticTapeCreationPolicyOutput, error) {
1681	req, out := c.DeleteAutomaticTapeCreationPolicyRequest(input)
1682	return out, req.Send()
1683}
1684
1685// DeleteAutomaticTapeCreationPolicyWithContext is the same as DeleteAutomaticTapeCreationPolicy with the addition of
1686// the ability to pass a context and additional request options.
1687//
1688// See DeleteAutomaticTapeCreationPolicy for details on how to use this API operation.
1689//
1690// The context must be non-nil and will be used for request cancellation. If
1691// the context is nil a panic will occur. In the future the SDK may create
1692// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1693// for more information on using Contexts.
1694func (c *StorageGateway) DeleteAutomaticTapeCreationPolicyWithContext(ctx aws.Context, input *DeleteAutomaticTapeCreationPolicyInput, opts ...request.Option) (*DeleteAutomaticTapeCreationPolicyOutput, error) {
1695	req, out := c.DeleteAutomaticTapeCreationPolicyRequest(input)
1696	req.SetContext(ctx)
1697	req.ApplyOptions(opts...)
1698	return out, req.Send()
1699}
1700
1701const opDeleteBandwidthRateLimit = "DeleteBandwidthRateLimit"
1702
1703// DeleteBandwidthRateLimitRequest generates a "aws/request.Request" representing the
1704// client's request for the DeleteBandwidthRateLimit operation. The "output" return
1705// value will be populated with the request's response once the request completes
1706// successfully.
1707//
1708// Use "Send" method on the returned Request to send the API call to the service.
1709// the "output" return value is not valid until after Send returns without error.
1710//
1711// See DeleteBandwidthRateLimit for more information on using the DeleteBandwidthRateLimit
1712// API call, and error handling.
1713//
1714// This method is useful when you want to inject custom logic or configuration
1715// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1716//
1717//
1718//    // Example sending a request using the DeleteBandwidthRateLimitRequest method.
1719//    req, resp := client.DeleteBandwidthRateLimitRequest(params)
1720//
1721//    err := req.Send()
1722//    if err == nil { // resp is now filled
1723//        fmt.Println(resp)
1724//    }
1725//
1726// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteBandwidthRateLimit
1727func (c *StorageGateway) DeleteBandwidthRateLimitRequest(input *DeleteBandwidthRateLimitInput) (req *request.Request, output *DeleteBandwidthRateLimitOutput) {
1728	op := &request.Operation{
1729		Name:       opDeleteBandwidthRateLimit,
1730		HTTPMethod: "POST",
1731		HTTPPath:   "/",
1732	}
1733
1734	if input == nil {
1735		input = &DeleteBandwidthRateLimitInput{}
1736	}
1737
1738	output = &DeleteBandwidthRateLimitOutput{}
1739	req = c.newRequest(op, input, output)
1740	return
1741}
1742
1743// DeleteBandwidthRateLimit API operation for AWS Storage Gateway.
1744//
1745// Deletes the bandwidth rate limits of a gateway. You can delete either the
1746// upload and download bandwidth rate limit, or you can delete both. If you
1747// delete only one of the limits, the other limit remains unchanged. To specify
1748// which gateway to work with, use the Amazon Resource Name (ARN) of the gateway
1749// in your request. This operation is supported for the stored volume, cached
1750// volume and tape gateway types.
1751//
1752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1753// with awserr.Error's Code and Message methods to get detailed information about
1754// the error.
1755//
1756// See the AWS API reference guide for AWS Storage Gateway's
1757// API operation DeleteBandwidthRateLimit for usage and error information.
1758//
1759// Returned Error Types:
1760//   * InvalidGatewayRequestException
1761//   An exception occurred because an invalid gateway request was issued to the
1762//   service. For more information, see the error and message fields.
1763//
1764//   * InternalServerError
1765//   An internal server error has occurred during the request. For more information,
1766//   see the error and message fields.
1767//
1768// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteBandwidthRateLimit
1769func (c *StorageGateway) DeleteBandwidthRateLimit(input *DeleteBandwidthRateLimitInput) (*DeleteBandwidthRateLimitOutput, error) {
1770	req, out := c.DeleteBandwidthRateLimitRequest(input)
1771	return out, req.Send()
1772}
1773
1774// DeleteBandwidthRateLimitWithContext is the same as DeleteBandwidthRateLimit with the addition of
1775// the ability to pass a context and additional request options.
1776//
1777// See DeleteBandwidthRateLimit for details on how to use this API operation.
1778//
1779// The context must be non-nil and will be used for request cancellation. If
1780// the context is nil a panic will occur. In the future the SDK may create
1781// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1782// for more information on using Contexts.
1783func (c *StorageGateway) DeleteBandwidthRateLimitWithContext(ctx aws.Context, input *DeleteBandwidthRateLimitInput, opts ...request.Option) (*DeleteBandwidthRateLimitOutput, error) {
1784	req, out := c.DeleteBandwidthRateLimitRequest(input)
1785	req.SetContext(ctx)
1786	req.ApplyOptions(opts...)
1787	return out, req.Send()
1788}
1789
1790const opDeleteChapCredentials = "DeleteChapCredentials"
1791
1792// DeleteChapCredentialsRequest generates a "aws/request.Request" representing the
1793// client's request for the DeleteChapCredentials operation. The "output" return
1794// value will be populated with the request's response once the request completes
1795// successfully.
1796//
1797// Use "Send" method on the returned Request to send the API call to the service.
1798// the "output" return value is not valid until after Send returns without error.
1799//
1800// See DeleteChapCredentials for more information on using the DeleteChapCredentials
1801// API call, and error handling.
1802//
1803// This method is useful when you want to inject custom logic or configuration
1804// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1805//
1806//
1807//    // Example sending a request using the DeleteChapCredentialsRequest method.
1808//    req, resp := client.DeleteChapCredentialsRequest(params)
1809//
1810//    err := req.Send()
1811//    if err == nil { // resp is now filled
1812//        fmt.Println(resp)
1813//    }
1814//
1815// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteChapCredentials
1816func (c *StorageGateway) DeleteChapCredentialsRequest(input *DeleteChapCredentialsInput) (req *request.Request, output *DeleteChapCredentialsOutput) {
1817	op := &request.Operation{
1818		Name:       opDeleteChapCredentials,
1819		HTTPMethod: "POST",
1820		HTTPPath:   "/",
1821	}
1822
1823	if input == nil {
1824		input = &DeleteChapCredentialsInput{}
1825	}
1826
1827	output = &DeleteChapCredentialsOutput{}
1828	req = c.newRequest(op, input, output)
1829	return
1830}
1831
1832// DeleteChapCredentials API operation for AWS Storage Gateway.
1833//
1834// Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for
1835// a specified iSCSI target and initiator pair. This operation is supported
1836// in volume and tape gateway types.
1837//
1838// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1839// with awserr.Error's Code and Message methods to get detailed information about
1840// the error.
1841//
1842// See the AWS API reference guide for AWS Storage Gateway's
1843// API operation DeleteChapCredentials for usage and error information.
1844//
1845// Returned Error Types:
1846//   * InvalidGatewayRequestException
1847//   An exception occurred because an invalid gateway request was issued to the
1848//   service. For more information, see the error and message fields.
1849//
1850//   * InternalServerError
1851//   An internal server error has occurred during the request. For more information,
1852//   see the error and message fields.
1853//
1854// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteChapCredentials
1855func (c *StorageGateway) DeleteChapCredentials(input *DeleteChapCredentialsInput) (*DeleteChapCredentialsOutput, error) {
1856	req, out := c.DeleteChapCredentialsRequest(input)
1857	return out, req.Send()
1858}
1859
1860// DeleteChapCredentialsWithContext is the same as DeleteChapCredentials with the addition of
1861// the ability to pass a context and additional request options.
1862//
1863// See DeleteChapCredentials for details on how to use this API operation.
1864//
1865// The context must be non-nil and will be used for request cancellation. If
1866// the context is nil a panic will occur. In the future the SDK may create
1867// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1868// for more information on using Contexts.
1869func (c *StorageGateway) DeleteChapCredentialsWithContext(ctx aws.Context, input *DeleteChapCredentialsInput, opts ...request.Option) (*DeleteChapCredentialsOutput, error) {
1870	req, out := c.DeleteChapCredentialsRequest(input)
1871	req.SetContext(ctx)
1872	req.ApplyOptions(opts...)
1873	return out, req.Send()
1874}
1875
1876const opDeleteFileShare = "DeleteFileShare"
1877
1878// DeleteFileShareRequest generates a "aws/request.Request" representing the
1879// client's request for the DeleteFileShare operation. The "output" return
1880// value will be populated with the request's response once the request completes
1881// successfully.
1882//
1883// Use "Send" method on the returned Request to send the API call to the service.
1884// the "output" return value is not valid until after Send returns without error.
1885//
1886// See DeleteFileShare for more information on using the DeleteFileShare
1887// API call, and error handling.
1888//
1889// This method is useful when you want to inject custom logic or configuration
1890// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1891//
1892//
1893//    // Example sending a request using the DeleteFileShareRequest method.
1894//    req, resp := client.DeleteFileShareRequest(params)
1895//
1896//    err := req.Send()
1897//    if err == nil { // resp is now filled
1898//        fmt.Println(resp)
1899//    }
1900//
1901// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteFileShare
1902func (c *StorageGateway) DeleteFileShareRequest(input *DeleteFileShareInput) (req *request.Request, output *DeleteFileShareOutput) {
1903	op := &request.Operation{
1904		Name:       opDeleteFileShare,
1905		HTTPMethod: "POST",
1906		HTTPPath:   "/",
1907	}
1908
1909	if input == nil {
1910		input = &DeleteFileShareInput{}
1911	}
1912
1913	output = &DeleteFileShareOutput{}
1914	req = c.newRequest(op, input, output)
1915	return
1916}
1917
1918// DeleteFileShare API operation for AWS Storage Gateway.
1919//
1920// Deletes a file share from a file gateway. This operation is only supported
1921// for file gateways.
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 DeleteFileShare 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/DeleteFileShare
1940func (c *StorageGateway) DeleteFileShare(input *DeleteFileShareInput) (*DeleteFileShareOutput, error) {
1941	req, out := c.DeleteFileShareRequest(input)
1942	return out, req.Send()
1943}
1944
1945// DeleteFileShareWithContext is the same as DeleteFileShare with the addition of
1946// the ability to pass a context and additional request options.
1947//
1948// See DeleteFileShare 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) DeleteFileShareWithContext(ctx aws.Context, input *DeleteFileShareInput, opts ...request.Option) (*DeleteFileShareOutput, error) {
1955	req, out := c.DeleteFileShareRequest(input)
1956	req.SetContext(ctx)
1957	req.ApplyOptions(opts...)
1958	return out, req.Send()
1959}
1960
1961const opDeleteGateway = "DeleteGateway"
1962
1963// DeleteGatewayRequest generates a "aws/request.Request" representing the
1964// client's request for the DeleteGateway 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 DeleteGateway for more information on using the DeleteGateway
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 DeleteGatewayRequest method.
1979//    req, resp := client.DeleteGatewayRequest(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/DeleteGateway
1987func (c *StorageGateway) DeleteGatewayRequest(input *DeleteGatewayInput) (req *request.Request, output *DeleteGatewayOutput) {
1988	op := &request.Operation{
1989		Name:       opDeleteGateway,
1990		HTTPMethod: "POST",
1991		HTTPPath:   "/",
1992	}
1993
1994	if input == nil {
1995		input = &DeleteGatewayInput{}
1996	}
1997
1998	output = &DeleteGatewayOutput{}
1999	req = c.newRequest(op, input, output)
2000	return
2001}
2002
2003// DeleteGateway API operation for AWS Storage Gateway.
2004//
2005// Deletes a gateway. To specify which gateway to delete, use the Amazon Resource
2006// Name (ARN) of the gateway in your request. The operation deletes the gateway;
2007// however, it does not delete the gateway virtual machine (VM) from your host
2008// computer.
2009//
2010// After you delete a gateway, you cannot reactivate it. Completed snapshots
2011// of the gateway volumes are not deleted upon deleting the gateway, however,
2012// pending snapshots will not complete. After you delete a gateway, your next
2013// step is to remove it from your environment.
2014//
2015// You no longer pay software charges after the gateway is deleted; however,
2016// your existing Amazon EBS snapshots persist and you will continue to be billed
2017// for these snapshots. You can choose to remove all remaining Amazon EBS snapshots
2018// by canceling your Amazon EC2 subscription. If you prefer not to cancel your
2019// Amazon EC2 subscription, you can delete your snapshots using the Amazon EC2
2020// console. For more information, see the AWS Storage Gateway detail page (http://aws.amazon.com/storagegateway).
2021//
2022// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2023// with awserr.Error's Code and Message methods to get detailed information about
2024// the error.
2025//
2026// See the AWS API reference guide for AWS Storage Gateway's
2027// API operation DeleteGateway for usage and error information.
2028//
2029// Returned Error Types:
2030//   * InvalidGatewayRequestException
2031//   An exception occurred because an invalid gateway request was issued to the
2032//   service. For more information, see the error and message fields.
2033//
2034//   * InternalServerError
2035//   An internal server error has occurred during the request. For more information,
2036//   see the error and message fields.
2037//
2038// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteGateway
2039func (c *StorageGateway) DeleteGateway(input *DeleteGatewayInput) (*DeleteGatewayOutput, error) {
2040	req, out := c.DeleteGatewayRequest(input)
2041	return out, req.Send()
2042}
2043
2044// DeleteGatewayWithContext is the same as DeleteGateway with the addition of
2045// the ability to pass a context and additional request options.
2046//
2047// See DeleteGateway for details on how to use this API operation.
2048//
2049// The context must be non-nil and will be used for request cancellation. If
2050// the context is nil a panic will occur. In the future the SDK may create
2051// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2052// for more information on using Contexts.
2053func (c *StorageGateway) DeleteGatewayWithContext(ctx aws.Context, input *DeleteGatewayInput, opts ...request.Option) (*DeleteGatewayOutput, error) {
2054	req, out := c.DeleteGatewayRequest(input)
2055	req.SetContext(ctx)
2056	req.ApplyOptions(opts...)
2057	return out, req.Send()
2058}
2059
2060const opDeleteSnapshotSchedule = "DeleteSnapshotSchedule"
2061
2062// DeleteSnapshotScheduleRequest generates a "aws/request.Request" representing the
2063// client's request for the DeleteSnapshotSchedule operation. The "output" return
2064// value will be populated with the request's response once the request completes
2065// successfully.
2066//
2067// Use "Send" method on the returned Request to send the API call to the service.
2068// the "output" return value is not valid until after Send returns without error.
2069//
2070// See DeleteSnapshotSchedule for more information on using the DeleteSnapshotSchedule
2071// API call, and error handling.
2072//
2073// This method is useful when you want to inject custom logic or configuration
2074// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2075//
2076//
2077//    // Example sending a request using the DeleteSnapshotScheduleRequest method.
2078//    req, resp := client.DeleteSnapshotScheduleRequest(params)
2079//
2080//    err := req.Send()
2081//    if err == nil { // resp is now filled
2082//        fmt.Println(resp)
2083//    }
2084//
2085// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteSnapshotSchedule
2086func (c *StorageGateway) DeleteSnapshotScheduleRequest(input *DeleteSnapshotScheduleInput) (req *request.Request, output *DeleteSnapshotScheduleOutput) {
2087	op := &request.Operation{
2088		Name:       opDeleteSnapshotSchedule,
2089		HTTPMethod: "POST",
2090		HTTPPath:   "/",
2091	}
2092
2093	if input == nil {
2094		input = &DeleteSnapshotScheduleInput{}
2095	}
2096
2097	output = &DeleteSnapshotScheduleOutput{}
2098	req = c.newRequest(op, input, output)
2099	return
2100}
2101
2102// DeleteSnapshotSchedule API operation for AWS Storage Gateway.
2103//
2104// Deletes a snapshot of a volume.
2105//
2106// You can take snapshots of your gateway volumes on a scheduled or ad hoc basis.
2107// This API action enables you to delete a snapshot schedule for a volume. For
2108// more information, see Backing up your volumes (https://docs.aws.amazon.com/storagegatewaylatest/userguide/backing-up-volumes.html).
2109// In the DeleteSnapshotSchedule request, you identify the volume by providing
2110// its Amazon Resource Name (ARN). This operation is only supported in stored
2111// and cached volume gateway types.
2112//
2113// To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
2114// go to DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html)
2115// in the Amazon Elastic Compute Cloud API Reference.
2116//
2117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2118// with awserr.Error's Code and Message methods to get detailed information about
2119// the error.
2120//
2121// See the AWS API reference guide for AWS Storage Gateway's
2122// API operation DeleteSnapshotSchedule for usage and error information.
2123//
2124// Returned Error Types:
2125//   * InvalidGatewayRequestException
2126//   An exception occurred because an invalid gateway request was issued to the
2127//   service. For more information, see the error and message fields.
2128//
2129//   * InternalServerError
2130//   An internal server error has occurred during the request. For more information,
2131//   see the error and message fields.
2132//
2133// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteSnapshotSchedule
2134func (c *StorageGateway) DeleteSnapshotSchedule(input *DeleteSnapshotScheduleInput) (*DeleteSnapshotScheduleOutput, error) {
2135	req, out := c.DeleteSnapshotScheduleRequest(input)
2136	return out, req.Send()
2137}
2138
2139// DeleteSnapshotScheduleWithContext is the same as DeleteSnapshotSchedule with the addition of
2140// the ability to pass a context and additional request options.
2141//
2142// See DeleteSnapshotSchedule for details on how to use this API operation.
2143//
2144// The context must be non-nil and will be used for request cancellation. If
2145// the context is nil a panic will occur. In the future the SDK may create
2146// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2147// for more information on using Contexts.
2148func (c *StorageGateway) DeleteSnapshotScheduleWithContext(ctx aws.Context, input *DeleteSnapshotScheduleInput, opts ...request.Option) (*DeleteSnapshotScheduleOutput, error) {
2149	req, out := c.DeleteSnapshotScheduleRequest(input)
2150	req.SetContext(ctx)
2151	req.ApplyOptions(opts...)
2152	return out, req.Send()
2153}
2154
2155const opDeleteTape = "DeleteTape"
2156
2157// DeleteTapeRequest generates a "aws/request.Request" representing the
2158// client's request for the DeleteTape operation. The "output" return
2159// value will be populated with the request's response once the request completes
2160// successfully.
2161//
2162// Use "Send" method on the returned Request to send the API call to the service.
2163// the "output" return value is not valid until after Send returns without error.
2164//
2165// See DeleteTape for more information on using the DeleteTape
2166// API call, and error handling.
2167//
2168// This method is useful when you want to inject custom logic or configuration
2169// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2170//
2171//
2172//    // Example sending a request using the DeleteTapeRequest method.
2173//    req, resp := client.DeleteTapeRequest(params)
2174//
2175//    err := req.Send()
2176//    if err == nil { // resp is now filled
2177//        fmt.Println(resp)
2178//    }
2179//
2180// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTape
2181func (c *StorageGateway) DeleteTapeRequest(input *DeleteTapeInput) (req *request.Request, output *DeleteTapeOutput) {
2182	op := &request.Operation{
2183		Name:       opDeleteTape,
2184		HTTPMethod: "POST",
2185		HTTPPath:   "/",
2186	}
2187
2188	if input == nil {
2189		input = &DeleteTapeInput{}
2190	}
2191
2192	output = &DeleteTapeOutput{}
2193	req = c.newRequest(op, input, output)
2194	return
2195}
2196
2197// DeleteTape API operation for AWS Storage Gateway.
2198//
2199// Deletes the specified virtual tape. This operation is only supported in the
2200// tape gateway type.
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 DeleteTape 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/DeleteTape
2219func (c *StorageGateway) DeleteTape(input *DeleteTapeInput) (*DeleteTapeOutput, error) {
2220	req, out := c.DeleteTapeRequest(input)
2221	return out, req.Send()
2222}
2223
2224// DeleteTapeWithContext is the same as DeleteTape with the addition of
2225// the ability to pass a context and additional request options.
2226//
2227// See DeleteTape 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) DeleteTapeWithContext(ctx aws.Context, input *DeleteTapeInput, opts ...request.Option) (*DeleteTapeOutput, error) {
2234	req, out := c.DeleteTapeRequest(input)
2235	req.SetContext(ctx)
2236	req.ApplyOptions(opts...)
2237	return out, req.Send()
2238}
2239
2240const opDeleteTapeArchive = "DeleteTapeArchive"
2241
2242// DeleteTapeArchiveRequest generates a "aws/request.Request" representing the
2243// client's request for the DeleteTapeArchive 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 DeleteTapeArchive for more information on using the DeleteTapeArchive
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 DeleteTapeArchiveRequest method.
2258//    req, resp := client.DeleteTapeArchiveRequest(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/DeleteTapeArchive
2266func (c *StorageGateway) DeleteTapeArchiveRequest(input *DeleteTapeArchiveInput) (req *request.Request, output *DeleteTapeArchiveOutput) {
2267	op := &request.Operation{
2268		Name:       opDeleteTapeArchive,
2269		HTTPMethod: "POST",
2270		HTTPPath:   "/",
2271	}
2272
2273	if input == nil {
2274		input = &DeleteTapeArchiveInput{}
2275	}
2276
2277	output = &DeleteTapeArchiveOutput{}
2278	req = c.newRequest(op, input, output)
2279	return
2280}
2281
2282// DeleteTapeArchive API operation for AWS Storage Gateway.
2283//
2284// Deletes the specified virtual tape from the virtual tape shelf (VTS). This
2285// operation is only supported in the 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 DeleteTapeArchive 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/DeleteTapeArchive
2304func (c *StorageGateway) DeleteTapeArchive(input *DeleteTapeArchiveInput) (*DeleteTapeArchiveOutput, error) {
2305	req, out := c.DeleteTapeArchiveRequest(input)
2306	return out, req.Send()
2307}
2308
2309// DeleteTapeArchiveWithContext is the same as DeleteTapeArchive with the addition of
2310// the ability to pass a context and additional request options.
2311//
2312// See DeleteTapeArchive 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) DeleteTapeArchiveWithContext(ctx aws.Context, input *DeleteTapeArchiveInput, opts ...request.Option) (*DeleteTapeArchiveOutput, error) {
2319	req, out := c.DeleteTapeArchiveRequest(input)
2320	req.SetContext(ctx)
2321	req.ApplyOptions(opts...)
2322	return out, req.Send()
2323}
2324
2325const opDeleteVolume = "DeleteVolume"
2326
2327// DeleteVolumeRequest generates a "aws/request.Request" representing the
2328// client's request for the DeleteVolume 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 DeleteVolume for more information on using the DeleteVolume
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 DeleteVolumeRequest method.
2343//    req, resp := client.DeleteVolumeRequest(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/DeleteVolume
2351func (c *StorageGateway) DeleteVolumeRequest(input *DeleteVolumeInput) (req *request.Request, output *DeleteVolumeOutput) {
2352	op := &request.Operation{
2353		Name:       opDeleteVolume,
2354		HTTPMethod: "POST",
2355		HTTPPath:   "/",
2356	}
2357
2358	if input == nil {
2359		input = &DeleteVolumeInput{}
2360	}
2361
2362	output = &DeleteVolumeOutput{}
2363	req = c.newRequest(op, input, output)
2364	return
2365}
2366
2367// DeleteVolume API operation for AWS Storage Gateway.
2368//
2369// Deletes the specified storage volume that you previously created using the
2370// CreateCachediSCSIVolume or CreateStorediSCSIVolume API. This operation is
2371// only supported in the cached volume and stored volume types. For stored volume
2372// gateways, the local disk that was configured as the storage volume is not
2373// deleted. You can reuse the local disk to create another storage volume.
2374//
2375// Before you delete a volume, make sure there are no iSCSI connections to the
2376// volume you are deleting. You should also make sure there is no snapshot in
2377// progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to
2378// query snapshots on the volume you are deleting and check the snapshot status.
2379// For more information, go to DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
2380// in the Amazon Elastic Compute Cloud API Reference.
2381//
2382// In the request, you must provide the Amazon Resource Name (ARN) of the storage
2383// volume you want to delete.
2384//
2385// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2386// with awserr.Error's Code and Message methods to get detailed information about
2387// the error.
2388//
2389// See the AWS API reference guide for AWS Storage Gateway's
2390// API operation DeleteVolume for usage and error information.
2391//
2392// Returned Error Types:
2393//   * InvalidGatewayRequestException
2394//   An exception occurred because an invalid gateway request was issued to the
2395//   service. For more information, see the error and message fields.
2396//
2397//   * InternalServerError
2398//   An internal server error has occurred during the request. For more information,
2399//   see the error and message fields.
2400//
2401// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteVolume
2402func (c *StorageGateway) DeleteVolume(input *DeleteVolumeInput) (*DeleteVolumeOutput, error) {
2403	req, out := c.DeleteVolumeRequest(input)
2404	return out, req.Send()
2405}
2406
2407// DeleteVolumeWithContext is the same as DeleteVolume with the addition of
2408// the ability to pass a context and additional request options.
2409//
2410// See DeleteVolume for details on how to use this API operation.
2411//
2412// The context must be non-nil and will be used for request cancellation. If
2413// the context is nil a panic will occur. In the future the SDK may create
2414// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2415// for more information on using Contexts.
2416func (c *StorageGateway) DeleteVolumeWithContext(ctx aws.Context, input *DeleteVolumeInput, opts ...request.Option) (*DeleteVolumeOutput, error) {
2417	req, out := c.DeleteVolumeRequest(input)
2418	req.SetContext(ctx)
2419	req.ApplyOptions(opts...)
2420	return out, req.Send()
2421}
2422
2423const opDescribeAvailabilityMonitorTest = "DescribeAvailabilityMonitorTest"
2424
2425// DescribeAvailabilityMonitorTestRequest generates a "aws/request.Request" representing the
2426// client's request for the DescribeAvailabilityMonitorTest operation. The "output" return
2427// value will be populated with the request's response once the request completes
2428// successfully.
2429//
2430// Use "Send" method on the returned Request to send the API call to the service.
2431// the "output" return value is not valid until after Send returns without error.
2432//
2433// See DescribeAvailabilityMonitorTest for more information on using the DescribeAvailabilityMonitorTest
2434// API call, and error handling.
2435//
2436// This method is useful when you want to inject custom logic or configuration
2437// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2438//
2439//
2440//    // Example sending a request using the DescribeAvailabilityMonitorTestRequest method.
2441//    req, resp := client.DescribeAvailabilityMonitorTestRequest(params)
2442//
2443//    err := req.Send()
2444//    if err == nil { // resp is now filled
2445//        fmt.Println(resp)
2446//    }
2447//
2448// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeAvailabilityMonitorTest
2449func (c *StorageGateway) DescribeAvailabilityMonitorTestRequest(input *DescribeAvailabilityMonitorTestInput) (req *request.Request, output *DescribeAvailabilityMonitorTestOutput) {
2450	op := &request.Operation{
2451		Name:       opDescribeAvailabilityMonitorTest,
2452		HTTPMethod: "POST",
2453		HTTPPath:   "/",
2454	}
2455
2456	if input == nil {
2457		input = &DescribeAvailabilityMonitorTestInput{}
2458	}
2459
2460	output = &DescribeAvailabilityMonitorTestOutput{}
2461	req = c.newRequest(op, input, output)
2462	return
2463}
2464
2465// DescribeAvailabilityMonitorTest API operation for AWS Storage Gateway.
2466//
2467// Returns information about the most recent High Availability monitoring test
2468// that was performed on the host in a cluster. If a test isn't performed, the
2469// status and start time in the response would be null.
2470//
2471// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2472// with awserr.Error's Code and Message methods to get detailed information about
2473// the error.
2474//
2475// See the AWS API reference guide for AWS Storage Gateway's
2476// API operation DescribeAvailabilityMonitorTest for usage and error information.
2477//
2478// Returned Error Types:
2479//   * InvalidGatewayRequestException
2480//   An exception occurred because an invalid gateway request was issued to the
2481//   service. For more information, see the error and message fields.
2482//
2483//   * InternalServerError
2484//   An internal server error has occurred during the request. For more information,
2485//   see the error and message fields.
2486//
2487// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeAvailabilityMonitorTest
2488func (c *StorageGateway) DescribeAvailabilityMonitorTest(input *DescribeAvailabilityMonitorTestInput) (*DescribeAvailabilityMonitorTestOutput, error) {
2489	req, out := c.DescribeAvailabilityMonitorTestRequest(input)
2490	return out, req.Send()
2491}
2492
2493// DescribeAvailabilityMonitorTestWithContext is the same as DescribeAvailabilityMonitorTest with the addition of
2494// the ability to pass a context and additional request options.
2495//
2496// See DescribeAvailabilityMonitorTest for details on how to use this API operation.
2497//
2498// The context must be non-nil and will be used for request cancellation. If
2499// the context is nil a panic will occur. In the future the SDK may create
2500// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2501// for more information on using Contexts.
2502func (c *StorageGateway) DescribeAvailabilityMonitorTestWithContext(ctx aws.Context, input *DescribeAvailabilityMonitorTestInput, opts ...request.Option) (*DescribeAvailabilityMonitorTestOutput, error) {
2503	req, out := c.DescribeAvailabilityMonitorTestRequest(input)
2504	req.SetContext(ctx)
2505	req.ApplyOptions(opts...)
2506	return out, req.Send()
2507}
2508
2509const opDescribeBandwidthRateLimit = "DescribeBandwidthRateLimit"
2510
2511// DescribeBandwidthRateLimitRequest generates a "aws/request.Request" representing the
2512// client's request for the DescribeBandwidthRateLimit operation. The "output" return
2513// value will be populated with the request's response once the request completes
2514// successfully.
2515//
2516// Use "Send" method on the returned Request to send the API call to the service.
2517// the "output" return value is not valid until after Send returns without error.
2518//
2519// See DescribeBandwidthRateLimit for more information on using the DescribeBandwidthRateLimit
2520// API call, and error handling.
2521//
2522// This method is useful when you want to inject custom logic or configuration
2523// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2524//
2525//
2526//    // Example sending a request using the DescribeBandwidthRateLimitRequest method.
2527//    req, resp := client.DescribeBandwidthRateLimitRequest(params)
2528//
2529//    err := req.Send()
2530//    if err == nil { // resp is now filled
2531//        fmt.Println(resp)
2532//    }
2533//
2534// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimit
2535func (c *StorageGateway) DescribeBandwidthRateLimitRequest(input *DescribeBandwidthRateLimitInput) (req *request.Request, output *DescribeBandwidthRateLimitOutput) {
2536	op := &request.Operation{
2537		Name:       opDescribeBandwidthRateLimit,
2538		HTTPMethod: "POST",
2539		HTTPPath:   "/",
2540	}
2541
2542	if input == nil {
2543		input = &DescribeBandwidthRateLimitInput{}
2544	}
2545
2546	output = &DescribeBandwidthRateLimitOutput{}
2547	req = c.newRequest(op, input, output)
2548	return
2549}
2550
2551// DescribeBandwidthRateLimit API operation for AWS Storage Gateway.
2552//
2553// Returns the bandwidth rate limits of a gateway. By default, these limits
2554// are not set, which means no bandwidth rate limiting is in effect. This operation
2555// is supported for the stored volume, cached volume and tape gateway types.
2556//
2557// This operation only returns a value for a bandwidth rate limit only if the
2558// limit is set. If no limits are set for the gateway, then this operation returns
2559// only the gateway ARN in the response body. To specify which gateway to describe,
2560// use the Amazon Resource Name (ARN) of the gateway in your request.
2561//
2562// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2563// with awserr.Error's Code and Message methods to get detailed information about
2564// the error.
2565//
2566// See the AWS API reference guide for AWS Storage Gateway's
2567// API operation DescribeBandwidthRateLimit for usage and error information.
2568//
2569// Returned Error Types:
2570//   * InvalidGatewayRequestException
2571//   An exception occurred because an invalid gateway request was issued to the
2572//   service. For more information, see the error and message fields.
2573//
2574//   * InternalServerError
2575//   An internal server error has occurred during the request. For more information,
2576//   see the error and message fields.
2577//
2578// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimit
2579func (c *StorageGateway) DescribeBandwidthRateLimit(input *DescribeBandwidthRateLimitInput) (*DescribeBandwidthRateLimitOutput, error) {
2580	req, out := c.DescribeBandwidthRateLimitRequest(input)
2581	return out, req.Send()
2582}
2583
2584// DescribeBandwidthRateLimitWithContext is the same as DescribeBandwidthRateLimit with the addition of
2585// the ability to pass a context and additional request options.
2586//
2587// See DescribeBandwidthRateLimit for details on how to use this API operation.
2588//
2589// The context must be non-nil and will be used for request cancellation. If
2590// the context is nil a panic will occur. In the future the SDK may create
2591// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2592// for more information on using Contexts.
2593func (c *StorageGateway) DescribeBandwidthRateLimitWithContext(ctx aws.Context, input *DescribeBandwidthRateLimitInput, opts ...request.Option) (*DescribeBandwidthRateLimitOutput, error) {
2594	req, out := c.DescribeBandwidthRateLimitRequest(input)
2595	req.SetContext(ctx)
2596	req.ApplyOptions(opts...)
2597	return out, req.Send()
2598}
2599
2600const opDescribeCache = "DescribeCache"
2601
2602// DescribeCacheRequest generates a "aws/request.Request" representing the
2603// client's request for the DescribeCache operation. The "output" return
2604// value will be populated with the request's response once the request completes
2605// successfully.
2606//
2607// Use "Send" method on the returned Request to send the API call to the service.
2608// the "output" return value is not valid until after Send returns without error.
2609//
2610// See DescribeCache for more information on using the DescribeCache
2611// API call, and error handling.
2612//
2613// This method is useful when you want to inject custom logic or configuration
2614// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2615//
2616//
2617//    // Example sending a request using the DescribeCacheRequest method.
2618//    req, resp := client.DescribeCacheRequest(params)
2619//
2620//    err := req.Send()
2621//    if err == nil { // resp is now filled
2622//        fmt.Println(resp)
2623//    }
2624//
2625// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCache
2626func (c *StorageGateway) DescribeCacheRequest(input *DescribeCacheInput) (req *request.Request, output *DescribeCacheOutput) {
2627	op := &request.Operation{
2628		Name:       opDescribeCache,
2629		HTTPMethod: "POST",
2630		HTTPPath:   "/",
2631	}
2632
2633	if input == nil {
2634		input = &DescribeCacheInput{}
2635	}
2636
2637	output = &DescribeCacheOutput{}
2638	req = c.newRequest(op, input, output)
2639	return
2640}
2641
2642// DescribeCache API operation for AWS Storage Gateway.
2643//
2644// Returns information about the cache of a gateway. This operation is only
2645// supported in the cached volume, tape, and file gateway types.
2646//
2647// The response includes disk IDs that are configured as cache, and it includes
2648// the amount of cache allocated and used.
2649//
2650// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2651// with awserr.Error's Code and Message methods to get detailed information about
2652// the error.
2653//
2654// See the AWS API reference guide for AWS Storage Gateway's
2655// API operation DescribeCache for usage and error information.
2656//
2657// Returned Error Types:
2658//   * InvalidGatewayRequestException
2659//   An exception occurred because an invalid gateway request was issued to the
2660//   service. For more information, see the error and message fields.
2661//
2662//   * InternalServerError
2663//   An internal server error has occurred during the request. For more information,
2664//   see the error and message fields.
2665//
2666// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCache
2667func (c *StorageGateway) DescribeCache(input *DescribeCacheInput) (*DescribeCacheOutput, error) {
2668	req, out := c.DescribeCacheRequest(input)
2669	return out, req.Send()
2670}
2671
2672// DescribeCacheWithContext is the same as DescribeCache with the addition of
2673// the ability to pass a context and additional request options.
2674//
2675// See DescribeCache for details on how to use this API operation.
2676//
2677// The context must be non-nil and will be used for request cancellation. If
2678// the context is nil a panic will occur. In the future the SDK may create
2679// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2680// for more information on using Contexts.
2681func (c *StorageGateway) DescribeCacheWithContext(ctx aws.Context, input *DescribeCacheInput, opts ...request.Option) (*DescribeCacheOutput, error) {
2682	req, out := c.DescribeCacheRequest(input)
2683	req.SetContext(ctx)
2684	req.ApplyOptions(opts...)
2685	return out, req.Send()
2686}
2687
2688const opDescribeCachediSCSIVolumes = "DescribeCachediSCSIVolumes"
2689
2690// DescribeCachediSCSIVolumesRequest generates a "aws/request.Request" representing the
2691// client's request for the DescribeCachediSCSIVolumes operation. The "output" return
2692// value will be populated with the request's response once the request completes
2693// successfully.
2694//
2695// Use "Send" method on the returned Request to send the API call to the service.
2696// the "output" return value is not valid until after Send returns without error.
2697//
2698// See DescribeCachediSCSIVolumes for more information on using the DescribeCachediSCSIVolumes
2699// API call, and error handling.
2700//
2701// This method is useful when you want to inject custom logic or configuration
2702// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2703//
2704//
2705//    // Example sending a request using the DescribeCachediSCSIVolumesRequest method.
2706//    req, resp := client.DescribeCachediSCSIVolumesRequest(params)
2707//
2708//    err := req.Send()
2709//    if err == nil { // resp is now filled
2710//        fmt.Println(resp)
2711//    }
2712//
2713// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCachediSCSIVolumes
2714func (c *StorageGateway) DescribeCachediSCSIVolumesRequest(input *DescribeCachediSCSIVolumesInput) (req *request.Request, output *DescribeCachediSCSIVolumesOutput) {
2715	op := &request.Operation{
2716		Name:       opDescribeCachediSCSIVolumes,
2717		HTTPMethod: "POST",
2718		HTTPPath:   "/",
2719	}
2720
2721	if input == nil {
2722		input = &DescribeCachediSCSIVolumesInput{}
2723	}
2724
2725	output = &DescribeCachediSCSIVolumesOutput{}
2726	req = c.newRequest(op, input, output)
2727	return
2728}
2729
2730// DescribeCachediSCSIVolumes API operation for AWS Storage Gateway.
2731//
2732// Returns a description of the gateway volumes specified in the request. This
2733// operation is only supported in the cached volume gateway types.
2734//
2735// The list of gateway volumes in the request must be from one gateway. In the
2736// response, AWS Storage Gateway returns volume information sorted by volume
2737// Amazon Resource Name (ARN).
2738//
2739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2740// with awserr.Error's Code and Message methods to get detailed information about
2741// the error.
2742//
2743// See the AWS API reference guide for AWS Storage Gateway's
2744// API operation DescribeCachediSCSIVolumes for usage and error information.
2745//
2746// Returned Error Types:
2747//   * InvalidGatewayRequestException
2748//   An exception occurred because an invalid gateway request was issued to the
2749//   service. For more information, see the error and message fields.
2750//
2751//   * InternalServerError
2752//   An internal server error has occurred during the request. For more information,
2753//   see the error and message fields.
2754//
2755// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCachediSCSIVolumes
2756func (c *StorageGateway) DescribeCachediSCSIVolumes(input *DescribeCachediSCSIVolumesInput) (*DescribeCachediSCSIVolumesOutput, error) {
2757	req, out := c.DescribeCachediSCSIVolumesRequest(input)
2758	return out, req.Send()
2759}
2760
2761// DescribeCachediSCSIVolumesWithContext is the same as DescribeCachediSCSIVolumes with the addition of
2762// the ability to pass a context and additional request options.
2763//
2764// See DescribeCachediSCSIVolumes for details on how to use this API operation.
2765//
2766// The context must be non-nil and will be used for request cancellation. If
2767// the context is nil a panic will occur. In the future the SDK may create
2768// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2769// for more information on using Contexts.
2770func (c *StorageGateway) DescribeCachediSCSIVolumesWithContext(ctx aws.Context, input *DescribeCachediSCSIVolumesInput, opts ...request.Option) (*DescribeCachediSCSIVolumesOutput, error) {
2771	req, out := c.DescribeCachediSCSIVolumesRequest(input)
2772	req.SetContext(ctx)
2773	req.ApplyOptions(opts...)
2774	return out, req.Send()
2775}
2776
2777const opDescribeChapCredentials = "DescribeChapCredentials"
2778
2779// DescribeChapCredentialsRequest generates a "aws/request.Request" representing the
2780// client's request for the DescribeChapCredentials operation. The "output" return
2781// value will be populated with the request's response once the request completes
2782// successfully.
2783//
2784// Use "Send" method on the returned Request to send the API call to the service.
2785// the "output" return value is not valid until after Send returns without error.
2786//
2787// See DescribeChapCredentials for more information on using the DescribeChapCredentials
2788// API call, and error handling.
2789//
2790// This method is useful when you want to inject custom logic or configuration
2791// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2792//
2793//
2794//    // Example sending a request using the DescribeChapCredentialsRequest method.
2795//    req, resp := client.DescribeChapCredentialsRequest(params)
2796//
2797//    err := req.Send()
2798//    if err == nil { // resp is now filled
2799//        fmt.Println(resp)
2800//    }
2801//
2802// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeChapCredentials
2803func (c *StorageGateway) DescribeChapCredentialsRequest(input *DescribeChapCredentialsInput) (req *request.Request, output *DescribeChapCredentialsOutput) {
2804	op := &request.Operation{
2805		Name:       opDescribeChapCredentials,
2806		HTTPMethod: "POST",
2807		HTTPPath:   "/",
2808	}
2809
2810	if input == nil {
2811		input = &DescribeChapCredentialsInput{}
2812	}
2813
2814	output = &DescribeChapCredentialsOutput{}
2815	req = c.newRequest(op, input, output)
2816	return
2817}
2818
2819// DescribeChapCredentials API operation for AWS Storage Gateway.
2820//
2821// Returns an array of Challenge-Handshake Authentication Protocol (CHAP) credentials
2822// information for a specified iSCSI target, one for each target-initiator pair.
2823// This operation is supported in the volume and tape gateway types.
2824//
2825// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2826// with awserr.Error's Code and Message methods to get detailed information about
2827// the error.
2828//
2829// See the AWS API reference guide for AWS Storage Gateway's
2830// API operation DescribeChapCredentials for usage and error information.
2831//
2832// Returned Error Types:
2833//   * InvalidGatewayRequestException
2834//   An exception occurred because an invalid gateway request was issued to the
2835//   service. For more information, see the error and message fields.
2836//
2837//   * InternalServerError
2838//   An internal server error has occurred during the request. For more information,
2839//   see the error and message fields.
2840//
2841// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeChapCredentials
2842func (c *StorageGateway) DescribeChapCredentials(input *DescribeChapCredentialsInput) (*DescribeChapCredentialsOutput, error) {
2843	req, out := c.DescribeChapCredentialsRequest(input)
2844	return out, req.Send()
2845}
2846
2847// DescribeChapCredentialsWithContext is the same as DescribeChapCredentials with the addition of
2848// the ability to pass a context and additional request options.
2849//
2850// See DescribeChapCredentials for details on how to use this API operation.
2851//
2852// The context must be non-nil and will be used for request cancellation. If
2853// the context is nil a panic will occur. In the future the SDK may create
2854// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2855// for more information on using Contexts.
2856func (c *StorageGateway) DescribeChapCredentialsWithContext(ctx aws.Context, input *DescribeChapCredentialsInput, opts ...request.Option) (*DescribeChapCredentialsOutput, error) {
2857	req, out := c.DescribeChapCredentialsRequest(input)
2858	req.SetContext(ctx)
2859	req.ApplyOptions(opts...)
2860	return out, req.Send()
2861}
2862
2863const opDescribeGatewayInformation = "DescribeGatewayInformation"
2864
2865// DescribeGatewayInformationRequest generates a "aws/request.Request" representing the
2866// client's request for the DescribeGatewayInformation operation. The "output" return
2867// value will be populated with the request's response once the request completes
2868// successfully.
2869//
2870// Use "Send" method on the returned Request to send the API call to the service.
2871// the "output" return value is not valid until after Send returns without error.
2872//
2873// See DescribeGatewayInformation for more information on using the DescribeGatewayInformation
2874// API call, and error handling.
2875//
2876// This method is useful when you want to inject custom logic or configuration
2877// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2878//
2879//
2880//    // Example sending a request using the DescribeGatewayInformationRequest method.
2881//    req, resp := client.DescribeGatewayInformationRequest(params)
2882//
2883//    err := req.Send()
2884//    if err == nil { // resp is now filled
2885//        fmt.Println(resp)
2886//    }
2887//
2888// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeGatewayInformation
2889func (c *StorageGateway) DescribeGatewayInformationRequest(input *DescribeGatewayInformationInput) (req *request.Request, output *DescribeGatewayInformationOutput) {
2890	op := &request.Operation{
2891		Name:       opDescribeGatewayInformation,
2892		HTTPMethod: "POST",
2893		HTTPPath:   "/",
2894	}
2895
2896	if input == nil {
2897		input = &DescribeGatewayInformationInput{}
2898	}
2899
2900	output = &DescribeGatewayInformationOutput{}
2901	req = c.newRequest(op, input, output)
2902	return
2903}
2904
2905// DescribeGatewayInformation API operation for AWS Storage Gateway.
2906//
2907// Returns metadata about a gateway such as its name, network interfaces, configured
2908// time zone, and the state (whether the gateway is running or not). To specify
2909// which gateway to describe, use the Amazon Resource Name (ARN) of the gateway
2910// in your request.
2911//
2912// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2913// with awserr.Error's Code and Message methods to get detailed information about
2914// the error.
2915//
2916// See the AWS API reference guide for AWS Storage Gateway's
2917// API operation DescribeGatewayInformation for usage and error information.
2918//
2919// Returned Error Types:
2920//   * InvalidGatewayRequestException
2921//   An exception occurred because an invalid gateway request was issued to the
2922//   service. For more information, see the error and message fields.
2923//
2924//   * InternalServerError
2925//   An internal server error has occurred during the request. For more information,
2926//   see the error and message fields.
2927//
2928// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeGatewayInformation
2929func (c *StorageGateway) DescribeGatewayInformation(input *DescribeGatewayInformationInput) (*DescribeGatewayInformationOutput, error) {
2930	req, out := c.DescribeGatewayInformationRequest(input)
2931	return out, req.Send()
2932}
2933
2934// DescribeGatewayInformationWithContext is the same as DescribeGatewayInformation with the addition of
2935// the ability to pass a context and additional request options.
2936//
2937// See DescribeGatewayInformation for details on how to use this API operation.
2938//
2939// The context must be non-nil and will be used for request cancellation. If
2940// the context is nil a panic will occur. In the future the SDK may create
2941// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2942// for more information on using Contexts.
2943func (c *StorageGateway) DescribeGatewayInformationWithContext(ctx aws.Context, input *DescribeGatewayInformationInput, opts ...request.Option) (*DescribeGatewayInformationOutput, error) {
2944	req, out := c.DescribeGatewayInformationRequest(input)
2945	req.SetContext(ctx)
2946	req.ApplyOptions(opts...)
2947	return out, req.Send()
2948}
2949
2950const opDescribeMaintenanceStartTime = "DescribeMaintenanceStartTime"
2951
2952// DescribeMaintenanceStartTimeRequest generates a "aws/request.Request" representing the
2953// client's request for the DescribeMaintenanceStartTime operation. The "output" return
2954// value will be populated with the request's response once the request completes
2955// successfully.
2956//
2957// Use "Send" method on the returned Request to send the API call to the service.
2958// the "output" return value is not valid until after Send returns without error.
2959//
2960// See DescribeMaintenanceStartTime for more information on using the DescribeMaintenanceStartTime
2961// API call, and error handling.
2962//
2963// This method is useful when you want to inject custom logic or configuration
2964// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2965//
2966//
2967//    // Example sending a request using the DescribeMaintenanceStartTimeRequest method.
2968//    req, resp := client.DescribeMaintenanceStartTimeRequest(params)
2969//
2970//    err := req.Send()
2971//    if err == nil { // resp is now filled
2972//        fmt.Println(resp)
2973//    }
2974//
2975// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeMaintenanceStartTime
2976func (c *StorageGateway) DescribeMaintenanceStartTimeRequest(input *DescribeMaintenanceStartTimeInput) (req *request.Request, output *DescribeMaintenanceStartTimeOutput) {
2977	op := &request.Operation{
2978		Name:       opDescribeMaintenanceStartTime,
2979		HTTPMethod: "POST",
2980		HTTPPath:   "/",
2981	}
2982
2983	if input == nil {
2984		input = &DescribeMaintenanceStartTimeInput{}
2985	}
2986
2987	output = &DescribeMaintenanceStartTimeOutput{}
2988	req = c.newRequest(op, input, output)
2989	return
2990}
2991
2992// DescribeMaintenanceStartTime API operation for AWS Storage Gateway.
2993//
2994// Returns your gateway's weekly maintenance start time including the day and
2995// time of the week. Note that values are in terms of the gateway's time zone.
2996//
2997// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2998// with awserr.Error's Code and Message methods to get detailed information about
2999// the error.
3000//
3001// See the AWS API reference guide for AWS Storage Gateway's
3002// API operation DescribeMaintenanceStartTime for usage and error information.
3003//
3004// Returned Error Types:
3005//   * InvalidGatewayRequestException
3006//   An exception occurred because an invalid gateway request was issued to the
3007//   service. For more information, see the error and message fields.
3008//
3009//   * InternalServerError
3010//   An internal server error has occurred during the request. For more information,
3011//   see the error and message fields.
3012//
3013// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeMaintenanceStartTime
3014func (c *StorageGateway) DescribeMaintenanceStartTime(input *DescribeMaintenanceStartTimeInput) (*DescribeMaintenanceStartTimeOutput, error) {
3015	req, out := c.DescribeMaintenanceStartTimeRequest(input)
3016	return out, req.Send()
3017}
3018
3019// DescribeMaintenanceStartTimeWithContext is the same as DescribeMaintenanceStartTime with the addition of
3020// the ability to pass a context and additional request options.
3021//
3022// See DescribeMaintenanceStartTime for details on how to use this API operation.
3023//
3024// The context must be non-nil and will be used for request cancellation. If
3025// the context is nil a panic will occur. In the future the SDK may create
3026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3027// for more information on using Contexts.
3028func (c *StorageGateway) DescribeMaintenanceStartTimeWithContext(ctx aws.Context, input *DescribeMaintenanceStartTimeInput, opts ...request.Option) (*DescribeMaintenanceStartTimeOutput, error) {
3029	req, out := c.DescribeMaintenanceStartTimeRequest(input)
3030	req.SetContext(ctx)
3031	req.ApplyOptions(opts...)
3032	return out, req.Send()
3033}
3034
3035const opDescribeNFSFileShares = "DescribeNFSFileShares"
3036
3037// DescribeNFSFileSharesRequest generates a "aws/request.Request" representing the
3038// client's request for the DescribeNFSFileShares operation. The "output" return
3039// value will be populated with the request's response once the request completes
3040// successfully.
3041//
3042// Use "Send" method on the returned Request to send the API call to the service.
3043// the "output" return value is not valid until after Send returns without error.
3044//
3045// See DescribeNFSFileShares for more information on using the DescribeNFSFileShares
3046// API call, and error handling.
3047//
3048// This method is useful when you want to inject custom logic or configuration
3049// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3050//
3051//
3052//    // Example sending a request using the DescribeNFSFileSharesRequest method.
3053//    req, resp := client.DescribeNFSFileSharesRequest(params)
3054//
3055//    err := req.Send()
3056//    if err == nil { // resp is now filled
3057//        fmt.Println(resp)
3058//    }
3059//
3060// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeNFSFileShares
3061func (c *StorageGateway) DescribeNFSFileSharesRequest(input *DescribeNFSFileSharesInput) (req *request.Request, output *DescribeNFSFileSharesOutput) {
3062	op := &request.Operation{
3063		Name:       opDescribeNFSFileShares,
3064		HTTPMethod: "POST",
3065		HTTPPath:   "/",
3066	}
3067
3068	if input == nil {
3069		input = &DescribeNFSFileSharesInput{}
3070	}
3071
3072	output = &DescribeNFSFileSharesOutput{}
3073	req = c.newRequest(op, input, output)
3074	return
3075}
3076
3077// DescribeNFSFileShares API operation for AWS Storage Gateway.
3078//
3079// Gets a description for one or more Network File System (NFS) file shares
3080// from a file gateway. This operation is only supported for file gateways.
3081//
3082// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3083// with awserr.Error's Code and Message methods to get detailed information about
3084// the error.
3085//
3086// See the AWS API reference guide for AWS Storage Gateway's
3087// API operation DescribeNFSFileShares for usage and error information.
3088//
3089// Returned Error Types:
3090//   * InvalidGatewayRequestException
3091//   An exception occurred because an invalid gateway request was issued to the
3092//   service. For more information, see the error and message fields.
3093//
3094//   * InternalServerError
3095//   An internal server error has occurred during the request. For more information,
3096//   see the error and message fields.
3097//
3098// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeNFSFileShares
3099func (c *StorageGateway) DescribeNFSFileShares(input *DescribeNFSFileSharesInput) (*DescribeNFSFileSharesOutput, error) {
3100	req, out := c.DescribeNFSFileSharesRequest(input)
3101	return out, req.Send()
3102}
3103
3104// DescribeNFSFileSharesWithContext is the same as DescribeNFSFileShares with the addition of
3105// the ability to pass a context and additional request options.
3106//
3107// See DescribeNFSFileShares for details on how to use this API operation.
3108//
3109// The context must be non-nil and will be used for request cancellation. If
3110// the context is nil a panic will occur. In the future the SDK may create
3111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3112// for more information on using Contexts.
3113func (c *StorageGateway) DescribeNFSFileSharesWithContext(ctx aws.Context, input *DescribeNFSFileSharesInput, opts ...request.Option) (*DescribeNFSFileSharesOutput, error) {
3114	req, out := c.DescribeNFSFileSharesRequest(input)
3115	req.SetContext(ctx)
3116	req.ApplyOptions(opts...)
3117	return out, req.Send()
3118}
3119
3120const opDescribeSMBFileShares = "DescribeSMBFileShares"
3121
3122// DescribeSMBFileSharesRequest generates a "aws/request.Request" representing the
3123// client's request for the DescribeSMBFileShares operation. The "output" return
3124// value will be populated with the request's response once the request completes
3125// successfully.
3126//
3127// Use "Send" method on the returned Request to send the API call to the service.
3128// the "output" return value is not valid until after Send returns without error.
3129//
3130// See DescribeSMBFileShares for more information on using the DescribeSMBFileShares
3131// API call, and error handling.
3132//
3133// This method is useful when you want to inject custom logic or configuration
3134// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3135//
3136//
3137//    // Example sending a request using the DescribeSMBFileSharesRequest method.
3138//    req, resp := client.DescribeSMBFileSharesRequest(params)
3139//
3140//    err := req.Send()
3141//    if err == nil { // resp is now filled
3142//        fmt.Println(resp)
3143//    }
3144//
3145// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBFileShares
3146func (c *StorageGateway) DescribeSMBFileSharesRequest(input *DescribeSMBFileSharesInput) (req *request.Request, output *DescribeSMBFileSharesOutput) {
3147	op := &request.Operation{
3148		Name:       opDescribeSMBFileShares,
3149		HTTPMethod: "POST",
3150		HTTPPath:   "/",
3151	}
3152
3153	if input == nil {
3154		input = &DescribeSMBFileSharesInput{}
3155	}
3156
3157	output = &DescribeSMBFileSharesOutput{}
3158	req = c.newRequest(op, input, output)
3159	return
3160}
3161
3162// DescribeSMBFileShares API operation for AWS Storage Gateway.
3163//
3164// Gets a description for one or more Server Message Block (SMB) file shares
3165// from a file gateway. This operation is only supported for file gateways.
3166//
3167// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3168// with awserr.Error's Code and Message methods to get detailed information about
3169// the error.
3170//
3171// See the AWS API reference guide for AWS Storage Gateway's
3172// API operation DescribeSMBFileShares for usage and error information.
3173//
3174// Returned Error Types:
3175//   * InvalidGatewayRequestException
3176//   An exception occurred because an invalid gateway request was issued to the
3177//   service. For more information, see the error and message fields.
3178//
3179//   * InternalServerError
3180//   An internal server error has occurred during the request. For more information,
3181//   see the error and message fields.
3182//
3183// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBFileShares
3184func (c *StorageGateway) DescribeSMBFileShares(input *DescribeSMBFileSharesInput) (*DescribeSMBFileSharesOutput, error) {
3185	req, out := c.DescribeSMBFileSharesRequest(input)
3186	return out, req.Send()
3187}
3188
3189// DescribeSMBFileSharesWithContext is the same as DescribeSMBFileShares with the addition of
3190// the ability to pass a context and additional request options.
3191//
3192// See DescribeSMBFileShares for details on how to use this API operation.
3193//
3194// The context must be non-nil and will be used for request cancellation. If
3195// the context is nil a panic will occur. In the future the SDK may create
3196// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3197// for more information on using Contexts.
3198func (c *StorageGateway) DescribeSMBFileSharesWithContext(ctx aws.Context, input *DescribeSMBFileSharesInput, opts ...request.Option) (*DescribeSMBFileSharesOutput, error) {
3199	req, out := c.DescribeSMBFileSharesRequest(input)
3200	req.SetContext(ctx)
3201	req.ApplyOptions(opts...)
3202	return out, req.Send()
3203}
3204
3205const opDescribeSMBSettings = "DescribeSMBSettings"
3206
3207// DescribeSMBSettingsRequest generates a "aws/request.Request" representing the
3208// client's request for the DescribeSMBSettings operation. The "output" return
3209// value will be populated with the request's response once the request completes
3210// successfully.
3211//
3212// Use "Send" method on the returned Request to send the API call to the service.
3213// the "output" return value is not valid until after Send returns without error.
3214//
3215// See DescribeSMBSettings for more information on using the DescribeSMBSettings
3216// API call, and error handling.
3217//
3218// This method is useful when you want to inject custom logic or configuration
3219// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3220//
3221//
3222//    // Example sending a request using the DescribeSMBSettingsRequest method.
3223//    req, resp := client.DescribeSMBSettingsRequest(params)
3224//
3225//    err := req.Send()
3226//    if err == nil { // resp is now filled
3227//        fmt.Println(resp)
3228//    }
3229//
3230// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBSettings
3231func (c *StorageGateway) DescribeSMBSettingsRequest(input *DescribeSMBSettingsInput) (req *request.Request, output *DescribeSMBSettingsOutput) {
3232	op := &request.Operation{
3233		Name:       opDescribeSMBSettings,
3234		HTTPMethod: "POST",
3235		HTTPPath:   "/",
3236	}
3237
3238	if input == nil {
3239		input = &DescribeSMBSettingsInput{}
3240	}
3241
3242	output = &DescribeSMBSettingsOutput{}
3243	req = c.newRequest(op, input, output)
3244	return
3245}
3246
3247// DescribeSMBSettings API operation for AWS Storage Gateway.
3248//
3249// Gets a description of a Server Message Block (SMB) file share settings from
3250// a file gateway. This operation is only supported for file gateways.
3251//
3252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3253// with awserr.Error's Code and Message methods to get detailed information about
3254// the error.
3255//
3256// See the AWS API reference guide for AWS Storage Gateway's
3257// API operation DescribeSMBSettings for usage and error information.
3258//
3259// Returned Error Types:
3260//   * InvalidGatewayRequestException
3261//   An exception occurred because an invalid gateway request was issued to the
3262//   service. For more information, see the error and message fields.
3263//
3264//   * InternalServerError
3265//   An internal server error has occurred during the request. For more information,
3266//   see the error and message fields.
3267//
3268// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBSettings
3269func (c *StorageGateway) DescribeSMBSettings(input *DescribeSMBSettingsInput) (*DescribeSMBSettingsOutput, error) {
3270	req, out := c.DescribeSMBSettingsRequest(input)
3271	return out, req.Send()
3272}
3273
3274// DescribeSMBSettingsWithContext is the same as DescribeSMBSettings with the addition of
3275// the ability to pass a context and additional request options.
3276//
3277// See DescribeSMBSettings for details on how to use this API operation.
3278//
3279// The context must be non-nil and will be used for request cancellation. If
3280// the context is nil a panic will occur. In the future the SDK may create
3281// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3282// for more information on using Contexts.
3283func (c *StorageGateway) DescribeSMBSettingsWithContext(ctx aws.Context, input *DescribeSMBSettingsInput, opts ...request.Option) (*DescribeSMBSettingsOutput, error) {
3284	req, out := c.DescribeSMBSettingsRequest(input)
3285	req.SetContext(ctx)
3286	req.ApplyOptions(opts...)
3287	return out, req.Send()
3288}
3289
3290const opDescribeSnapshotSchedule = "DescribeSnapshotSchedule"
3291
3292// DescribeSnapshotScheduleRequest generates a "aws/request.Request" representing the
3293// client's request for the DescribeSnapshotSchedule operation. The "output" return
3294// value will be populated with the request's response once the request completes
3295// successfully.
3296//
3297// Use "Send" method on the returned Request to send the API call to the service.
3298// the "output" return value is not valid until after Send returns without error.
3299//
3300// See DescribeSnapshotSchedule for more information on using the DescribeSnapshotSchedule
3301// API call, and error handling.
3302//
3303// This method is useful when you want to inject custom logic or configuration
3304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3305//
3306//
3307//    // Example sending a request using the DescribeSnapshotScheduleRequest method.
3308//    req, resp := client.DescribeSnapshotScheduleRequest(params)
3309//
3310//    err := req.Send()
3311//    if err == nil { // resp is now filled
3312//        fmt.Println(resp)
3313//    }
3314//
3315// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSnapshotSchedule
3316func (c *StorageGateway) DescribeSnapshotScheduleRequest(input *DescribeSnapshotScheduleInput) (req *request.Request, output *DescribeSnapshotScheduleOutput) {
3317	op := &request.Operation{
3318		Name:       opDescribeSnapshotSchedule,
3319		HTTPMethod: "POST",
3320		HTTPPath:   "/",
3321	}
3322
3323	if input == nil {
3324		input = &DescribeSnapshotScheduleInput{}
3325	}
3326
3327	output = &DescribeSnapshotScheduleOutput{}
3328	req = c.newRequest(op, input, output)
3329	return
3330}
3331
3332// DescribeSnapshotSchedule API operation for AWS Storage Gateway.
3333//
3334// Describes the snapshot schedule for the specified gateway volume. The snapshot
3335// schedule information includes intervals at which snapshots are automatically
3336// initiated on the volume. This operation is only supported in the cached volume
3337// and stored volume types.
3338//
3339// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3340// with awserr.Error's Code and Message methods to get detailed information about
3341// the error.
3342//
3343// See the AWS API reference guide for AWS Storage Gateway's
3344// API operation DescribeSnapshotSchedule for usage and error information.
3345//
3346// Returned Error Types:
3347//   * InvalidGatewayRequestException
3348//   An exception occurred because an invalid gateway request was issued to the
3349//   service. For more information, see the error and message fields.
3350//
3351//   * InternalServerError
3352//   An internal server error has occurred during the request. For more information,
3353//   see the error and message fields.
3354//
3355// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSnapshotSchedule
3356func (c *StorageGateway) DescribeSnapshotSchedule(input *DescribeSnapshotScheduleInput) (*DescribeSnapshotScheduleOutput, error) {
3357	req, out := c.DescribeSnapshotScheduleRequest(input)
3358	return out, req.Send()
3359}
3360
3361// DescribeSnapshotScheduleWithContext is the same as DescribeSnapshotSchedule with the addition of
3362// the ability to pass a context and additional request options.
3363//
3364// See DescribeSnapshotSchedule for details on how to use this API operation.
3365//
3366// The context must be non-nil and will be used for request cancellation. If
3367// the context is nil a panic will occur. In the future the SDK may create
3368// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3369// for more information on using Contexts.
3370func (c *StorageGateway) DescribeSnapshotScheduleWithContext(ctx aws.Context, input *DescribeSnapshotScheduleInput, opts ...request.Option) (*DescribeSnapshotScheduleOutput, error) {
3371	req, out := c.DescribeSnapshotScheduleRequest(input)
3372	req.SetContext(ctx)
3373	req.ApplyOptions(opts...)
3374	return out, req.Send()
3375}
3376
3377const opDescribeStorediSCSIVolumes = "DescribeStorediSCSIVolumes"
3378
3379// DescribeStorediSCSIVolumesRequest generates a "aws/request.Request" representing the
3380// client's request for the DescribeStorediSCSIVolumes operation. The "output" return
3381// value will be populated with the request's response once the request completes
3382// successfully.
3383//
3384// Use "Send" method on the returned Request to send the API call to the service.
3385// the "output" return value is not valid until after Send returns without error.
3386//
3387// See DescribeStorediSCSIVolumes for more information on using the DescribeStorediSCSIVolumes
3388// API call, and error handling.
3389//
3390// This method is useful when you want to inject custom logic or configuration
3391// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3392//
3393//
3394//    // Example sending a request using the DescribeStorediSCSIVolumesRequest method.
3395//    req, resp := client.DescribeStorediSCSIVolumesRequest(params)
3396//
3397//    err := req.Send()
3398//    if err == nil { // resp is now filled
3399//        fmt.Println(resp)
3400//    }
3401//
3402// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeStorediSCSIVolumes
3403func (c *StorageGateway) DescribeStorediSCSIVolumesRequest(input *DescribeStorediSCSIVolumesInput) (req *request.Request, output *DescribeStorediSCSIVolumesOutput) {
3404	op := &request.Operation{
3405		Name:       opDescribeStorediSCSIVolumes,
3406		HTTPMethod: "POST",
3407		HTTPPath:   "/",
3408	}
3409
3410	if input == nil {
3411		input = &DescribeStorediSCSIVolumesInput{}
3412	}
3413
3414	output = &DescribeStorediSCSIVolumesOutput{}
3415	req = c.newRequest(op, input, output)
3416	return
3417}
3418
3419// DescribeStorediSCSIVolumes API operation for AWS Storage Gateway.
3420//
3421// Returns the description of the gateway volumes specified in the request.
3422// The list of gateway volumes in the request must be from one gateway. In the
3423// response, AWS Storage Gateway returns volume information sorted by volume
3424// ARNs. This operation is only supported in stored volume gateway type.
3425//
3426// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3427// with awserr.Error's Code and Message methods to get detailed information about
3428// the error.
3429//
3430// See the AWS API reference guide for AWS Storage Gateway's
3431// API operation DescribeStorediSCSIVolumes for usage and error information.
3432//
3433// Returned Error Types:
3434//   * InvalidGatewayRequestException
3435//   An exception occurred because an invalid gateway request was issued to the
3436//   service. For more information, see the error and message fields.
3437//
3438//   * InternalServerError
3439//   An internal server error has occurred during the request. For more information,
3440//   see the error and message fields.
3441//
3442// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeStorediSCSIVolumes
3443func (c *StorageGateway) DescribeStorediSCSIVolumes(input *DescribeStorediSCSIVolumesInput) (*DescribeStorediSCSIVolumesOutput, error) {
3444	req, out := c.DescribeStorediSCSIVolumesRequest(input)
3445	return out, req.Send()
3446}
3447
3448// DescribeStorediSCSIVolumesWithContext is the same as DescribeStorediSCSIVolumes with the addition of
3449// the ability to pass a context and additional request options.
3450//
3451// See DescribeStorediSCSIVolumes for details on how to use this API operation.
3452//
3453// The context must be non-nil and will be used for request cancellation. If
3454// the context is nil a panic will occur. In the future the SDK may create
3455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3456// for more information on using Contexts.
3457func (c *StorageGateway) DescribeStorediSCSIVolumesWithContext(ctx aws.Context, input *DescribeStorediSCSIVolumesInput, opts ...request.Option) (*DescribeStorediSCSIVolumesOutput, error) {
3458	req, out := c.DescribeStorediSCSIVolumesRequest(input)
3459	req.SetContext(ctx)
3460	req.ApplyOptions(opts...)
3461	return out, req.Send()
3462}
3463
3464const opDescribeTapeArchives = "DescribeTapeArchives"
3465
3466// DescribeTapeArchivesRequest generates a "aws/request.Request" representing the
3467// client's request for the DescribeTapeArchives operation. The "output" return
3468// value will be populated with the request's response once the request completes
3469// successfully.
3470//
3471// Use "Send" method on the returned Request to send the API call to the service.
3472// the "output" return value is not valid until after Send returns without error.
3473//
3474// See DescribeTapeArchives for more information on using the DescribeTapeArchives
3475// API call, and error handling.
3476//
3477// This method is useful when you want to inject custom logic or configuration
3478// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3479//
3480//
3481//    // Example sending a request using the DescribeTapeArchivesRequest method.
3482//    req, resp := client.DescribeTapeArchivesRequest(params)
3483//
3484//    err := req.Send()
3485//    if err == nil { // resp is now filled
3486//        fmt.Println(resp)
3487//    }
3488//
3489// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeArchives
3490func (c *StorageGateway) DescribeTapeArchivesRequest(input *DescribeTapeArchivesInput) (req *request.Request, output *DescribeTapeArchivesOutput) {
3491	op := &request.Operation{
3492		Name:       opDescribeTapeArchives,
3493		HTTPMethod: "POST",
3494		HTTPPath:   "/",
3495		Paginator: &request.Paginator{
3496			InputTokens:     []string{"Marker"},
3497			OutputTokens:    []string{"Marker"},
3498			LimitToken:      "Limit",
3499			TruncationToken: "",
3500		},
3501	}
3502
3503	if input == nil {
3504		input = &DescribeTapeArchivesInput{}
3505	}
3506
3507	output = &DescribeTapeArchivesOutput{}
3508	req = c.newRequest(op, input, output)
3509	return
3510}
3511
3512// DescribeTapeArchives API operation for AWS Storage Gateway.
3513//
3514// Returns a description of specified virtual tapes in the virtual tape shelf
3515// (VTS). This operation is only supported in the tape gateway type.
3516//
3517// If a specific TapeARN is not specified, AWS Storage Gateway returns a description
3518// of all virtual tapes found in the VTS associated with your account.
3519//
3520// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3521// with awserr.Error's Code and Message methods to get detailed information about
3522// the error.
3523//
3524// See the AWS API reference guide for AWS Storage Gateway's
3525// API operation DescribeTapeArchives for usage and error information.
3526//
3527// Returned Error Types:
3528//   * InvalidGatewayRequestException
3529//   An exception occurred because an invalid gateway request was issued to the
3530//   service. For more information, see the error and message fields.
3531//
3532//   * InternalServerError
3533//   An internal server error has occurred during the request. For more information,
3534//   see the error and message fields.
3535//
3536// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeArchives
3537func (c *StorageGateway) DescribeTapeArchives(input *DescribeTapeArchivesInput) (*DescribeTapeArchivesOutput, error) {
3538	req, out := c.DescribeTapeArchivesRequest(input)
3539	return out, req.Send()
3540}
3541
3542// DescribeTapeArchivesWithContext is the same as DescribeTapeArchives with the addition of
3543// the ability to pass a context and additional request options.
3544//
3545// See DescribeTapeArchives for details on how to use this API operation.
3546//
3547// The context must be non-nil and will be used for request cancellation. If
3548// the context is nil a panic will occur. In the future the SDK may create
3549// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3550// for more information on using Contexts.
3551func (c *StorageGateway) DescribeTapeArchivesWithContext(ctx aws.Context, input *DescribeTapeArchivesInput, opts ...request.Option) (*DescribeTapeArchivesOutput, error) {
3552	req, out := c.DescribeTapeArchivesRequest(input)
3553	req.SetContext(ctx)
3554	req.ApplyOptions(opts...)
3555	return out, req.Send()
3556}
3557
3558// DescribeTapeArchivesPages iterates over the pages of a DescribeTapeArchives operation,
3559// calling the "fn" function with the response data for each page. To stop
3560// iterating, return false from the fn function.
3561//
3562// See DescribeTapeArchives method for more information on how to use this operation.
3563//
3564// Note: This operation can generate multiple requests to a service.
3565//
3566//    // Example iterating over at most 3 pages of a DescribeTapeArchives operation.
3567//    pageNum := 0
3568//    err := client.DescribeTapeArchivesPages(params,
3569//        func(page *storagegateway.DescribeTapeArchivesOutput, lastPage bool) bool {
3570//            pageNum++
3571//            fmt.Println(page)
3572//            return pageNum <= 3
3573//        })
3574//
3575func (c *StorageGateway) DescribeTapeArchivesPages(input *DescribeTapeArchivesInput, fn func(*DescribeTapeArchivesOutput, bool) bool) error {
3576	return c.DescribeTapeArchivesPagesWithContext(aws.BackgroundContext(), input, fn)
3577}
3578
3579// DescribeTapeArchivesPagesWithContext same as DescribeTapeArchivesPages except
3580// it takes a Context and allows setting request options on the pages.
3581//
3582// The context must be non-nil and will be used for request cancellation. If
3583// the context is nil a panic will occur. In the future the SDK may create
3584// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3585// for more information on using Contexts.
3586func (c *StorageGateway) DescribeTapeArchivesPagesWithContext(ctx aws.Context, input *DescribeTapeArchivesInput, fn func(*DescribeTapeArchivesOutput, bool) bool, opts ...request.Option) error {
3587	p := request.Pagination{
3588		NewRequest: func() (*request.Request, error) {
3589			var inCpy *DescribeTapeArchivesInput
3590			if input != nil {
3591				tmp := *input
3592				inCpy = &tmp
3593			}
3594			req, _ := c.DescribeTapeArchivesRequest(inCpy)
3595			req.SetContext(ctx)
3596			req.ApplyOptions(opts...)
3597			return req, nil
3598		},
3599	}
3600
3601	for p.Next() {
3602		if !fn(p.Page().(*DescribeTapeArchivesOutput), !p.HasNextPage()) {
3603			break
3604		}
3605	}
3606
3607	return p.Err()
3608}
3609
3610const opDescribeTapeRecoveryPoints = "DescribeTapeRecoveryPoints"
3611
3612// DescribeTapeRecoveryPointsRequest generates a "aws/request.Request" representing the
3613// client's request for the DescribeTapeRecoveryPoints operation. The "output" return
3614// value will be populated with the request's response once the request completes
3615// successfully.
3616//
3617// Use "Send" method on the returned Request to send the API call to the service.
3618// the "output" return value is not valid until after Send returns without error.
3619//
3620// See DescribeTapeRecoveryPoints for more information on using the DescribeTapeRecoveryPoints
3621// API call, and error handling.
3622//
3623// This method is useful when you want to inject custom logic or configuration
3624// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3625//
3626//
3627//    // Example sending a request using the DescribeTapeRecoveryPointsRequest method.
3628//    req, resp := client.DescribeTapeRecoveryPointsRequest(params)
3629//
3630//    err := req.Send()
3631//    if err == nil { // resp is now filled
3632//        fmt.Println(resp)
3633//    }
3634//
3635// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeRecoveryPoints
3636func (c *StorageGateway) DescribeTapeRecoveryPointsRequest(input *DescribeTapeRecoveryPointsInput) (req *request.Request, output *DescribeTapeRecoveryPointsOutput) {
3637	op := &request.Operation{
3638		Name:       opDescribeTapeRecoveryPoints,
3639		HTTPMethod: "POST",
3640		HTTPPath:   "/",
3641		Paginator: &request.Paginator{
3642			InputTokens:     []string{"Marker"},
3643			OutputTokens:    []string{"Marker"},
3644			LimitToken:      "Limit",
3645			TruncationToken: "",
3646		},
3647	}
3648
3649	if input == nil {
3650		input = &DescribeTapeRecoveryPointsInput{}
3651	}
3652
3653	output = &DescribeTapeRecoveryPointsOutput{}
3654	req = c.newRequest(op, input, output)
3655	return
3656}
3657
3658// DescribeTapeRecoveryPoints API operation for AWS Storage Gateway.
3659//
3660// Returns a list of virtual tape recovery points that are available for the
3661// specified tape gateway.
3662//
3663// A recovery point is a point-in-time view of a virtual tape at which all the
3664// data on the virtual tape is consistent. If your gateway crashes, virtual
3665// tapes that have recovery points can be recovered to a new gateway. This operation
3666// is only supported in the tape gateway type.
3667//
3668// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3669// with awserr.Error's Code and Message methods to get detailed information about
3670// the error.
3671//
3672// See the AWS API reference guide for AWS Storage Gateway's
3673// API operation DescribeTapeRecoveryPoints for usage and error information.
3674//
3675// Returned Error Types:
3676//   * InvalidGatewayRequestException
3677//   An exception occurred because an invalid gateway request was issued to the
3678//   service. For more information, see the error and message fields.
3679//
3680//   * InternalServerError
3681//   An internal server error has occurred during the request. For more information,
3682//   see the error and message fields.
3683//
3684// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeRecoveryPoints
3685func (c *StorageGateway) DescribeTapeRecoveryPoints(input *DescribeTapeRecoveryPointsInput) (*DescribeTapeRecoveryPointsOutput, error) {
3686	req, out := c.DescribeTapeRecoveryPointsRequest(input)
3687	return out, req.Send()
3688}
3689
3690// DescribeTapeRecoveryPointsWithContext is the same as DescribeTapeRecoveryPoints with the addition of
3691// the ability to pass a context and additional request options.
3692//
3693// See DescribeTapeRecoveryPoints for details on how to use this API operation.
3694//
3695// The context must be non-nil and will be used for request cancellation. If
3696// the context is nil a panic will occur. In the future the SDK may create
3697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3698// for more information on using Contexts.
3699func (c *StorageGateway) DescribeTapeRecoveryPointsWithContext(ctx aws.Context, input *DescribeTapeRecoveryPointsInput, opts ...request.Option) (*DescribeTapeRecoveryPointsOutput, error) {
3700	req, out := c.DescribeTapeRecoveryPointsRequest(input)
3701	req.SetContext(ctx)
3702	req.ApplyOptions(opts...)
3703	return out, req.Send()
3704}
3705
3706// DescribeTapeRecoveryPointsPages iterates over the pages of a DescribeTapeRecoveryPoints operation,
3707// calling the "fn" function with the response data for each page. To stop
3708// iterating, return false from the fn function.
3709//
3710// See DescribeTapeRecoveryPoints method for more information on how to use this operation.
3711//
3712// Note: This operation can generate multiple requests to a service.
3713//
3714//    // Example iterating over at most 3 pages of a DescribeTapeRecoveryPoints operation.
3715//    pageNum := 0
3716//    err := client.DescribeTapeRecoveryPointsPages(params,
3717//        func(page *storagegateway.DescribeTapeRecoveryPointsOutput, lastPage bool) bool {
3718//            pageNum++
3719//            fmt.Println(page)
3720//            return pageNum <= 3
3721//        })
3722//
3723func (c *StorageGateway) DescribeTapeRecoveryPointsPages(input *DescribeTapeRecoveryPointsInput, fn func(*DescribeTapeRecoveryPointsOutput, bool) bool) error {
3724	return c.DescribeTapeRecoveryPointsPagesWithContext(aws.BackgroundContext(), input, fn)
3725}
3726
3727// DescribeTapeRecoveryPointsPagesWithContext same as DescribeTapeRecoveryPointsPages except
3728// it takes a Context and allows setting request options on the pages.
3729//
3730// The context must be non-nil and will be used for request cancellation. If
3731// the context is nil a panic will occur. In the future the SDK may create
3732// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3733// for more information on using Contexts.
3734func (c *StorageGateway) DescribeTapeRecoveryPointsPagesWithContext(ctx aws.Context, input *DescribeTapeRecoveryPointsInput, fn func(*DescribeTapeRecoveryPointsOutput, bool) bool, opts ...request.Option) error {
3735	p := request.Pagination{
3736		NewRequest: func() (*request.Request, error) {
3737			var inCpy *DescribeTapeRecoveryPointsInput
3738			if input != nil {
3739				tmp := *input
3740				inCpy = &tmp
3741			}
3742			req, _ := c.DescribeTapeRecoveryPointsRequest(inCpy)
3743			req.SetContext(ctx)
3744			req.ApplyOptions(opts...)
3745			return req, nil
3746		},
3747	}
3748
3749	for p.Next() {
3750		if !fn(p.Page().(*DescribeTapeRecoveryPointsOutput), !p.HasNextPage()) {
3751			break
3752		}
3753	}
3754
3755	return p.Err()
3756}
3757
3758const opDescribeTapes = "DescribeTapes"
3759
3760// DescribeTapesRequest generates a "aws/request.Request" representing the
3761// client's request for the DescribeTapes operation. The "output" return
3762// value will be populated with the request's response once the request completes
3763// successfully.
3764//
3765// Use "Send" method on the returned Request to send the API call to the service.
3766// the "output" return value is not valid until after Send returns without error.
3767//
3768// See DescribeTapes for more information on using the DescribeTapes
3769// API call, and error handling.
3770//
3771// This method is useful when you want to inject custom logic or configuration
3772// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3773//
3774//
3775//    // Example sending a request using the DescribeTapesRequest method.
3776//    req, resp := client.DescribeTapesRequest(params)
3777//
3778//    err := req.Send()
3779//    if err == nil { // resp is now filled
3780//        fmt.Println(resp)
3781//    }
3782//
3783// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapes
3784func (c *StorageGateway) DescribeTapesRequest(input *DescribeTapesInput) (req *request.Request, output *DescribeTapesOutput) {
3785	op := &request.Operation{
3786		Name:       opDescribeTapes,
3787		HTTPMethod: "POST",
3788		HTTPPath:   "/",
3789		Paginator: &request.Paginator{
3790			InputTokens:     []string{"Marker"},
3791			OutputTokens:    []string{"Marker"},
3792			LimitToken:      "Limit",
3793			TruncationToken: "",
3794		},
3795	}
3796
3797	if input == nil {
3798		input = &DescribeTapesInput{}
3799	}
3800
3801	output = &DescribeTapesOutput{}
3802	req = c.newRequest(op, input, output)
3803	return
3804}
3805
3806// DescribeTapes API operation for AWS Storage Gateway.
3807//
3808// Returns a description of the specified Amazon Resource Name (ARN) of virtual
3809// tapes. If a TapeARN is not specified, returns a description of all virtual
3810// tapes associated with the specified gateway. This operation is only supported
3811// in the tape gateway type.
3812//
3813// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3814// with awserr.Error's Code and Message methods to get detailed information about
3815// the error.
3816//
3817// See the AWS API reference guide for AWS Storage Gateway's
3818// API operation DescribeTapes for usage and error information.
3819//
3820// Returned Error Types:
3821//   * InvalidGatewayRequestException
3822//   An exception occurred because an invalid gateway request was issued to the
3823//   service. For more information, see the error and message fields.
3824//
3825//   * InternalServerError
3826//   An internal server error has occurred during the request. For more information,
3827//   see the error and message fields.
3828//
3829// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapes
3830func (c *StorageGateway) DescribeTapes(input *DescribeTapesInput) (*DescribeTapesOutput, error) {
3831	req, out := c.DescribeTapesRequest(input)
3832	return out, req.Send()
3833}
3834
3835// DescribeTapesWithContext is the same as DescribeTapes with the addition of
3836// the ability to pass a context and additional request options.
3837//
3838// See DescribeTapes for details on how to use this API operation.
3839//
3840// The context must be non-nil and will be used for request cancellation. If
3841// the context is nil a panic will occur. In the future the SDK may create
3842// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3843// for more information on using Contexts.
3844func (c *StorageGateway) DescribeTapesWithContext(ctx aws.Context, input *DescribeTapesInput, opts ...request.Option) (*DescribeTapesOutput, error) {
3845	req, out := c.DescribeTapesRequest(input)
3846	req.SetContext(ctx)
3847	req.ApplyOptions(opts...)
3848	return out, req.Send()
3849}
3850
3851// DescribeTapesPages iterates over the pages of a DescribeTapes operation,
3852// calling the "fn" function with the response data for each page. To stop
3853// iterating, return false from the fn function.
3854//
3855// See DescribeTapes method for more information on how to use this operation.
3856//
3857// Note: This operation can generate multiple requests to a service.
3858//
3859//    // Example iterating over at most 3 pages of a DescribeTapes operation.
3860//    pageNum := 0
3861//    err := client.DescribeTapesPages(params,
3862//        func(page *storagegateway.DescribeTapesOutput, lastPage bool) bool {
3863//            pageNum++
3864//            fmt.Println(page)
3865//            return pageNum <= 3
3866//        })
3867//
3868func (c *StorageGateway) DescribeTapesPages(input *DescribeTapesInput, fn func(*DescribeTapesOutput, bool) bool) error {
3869	return c.DescribeTapesPagesWithContext(aws.BackgroundContext(), input, fn)
3870}
3871
3872// DescribeTapesPagesWithContext same as DescribeTapesPages except
3873// it takes a Context and allows setting request options on the pages.
3874//
3875// The context must be non-nil and will be used for request cancellation. If
3876// the context is nil a panic will occur. In the future the SDK may create
3877// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3878// for more information on using Contexts.
3879func (c *StorageGateway) DescribeTapesPagesWithContext(ctx aws.Context, input *DescribeTapesInput, fn func(*DescribeTapesOutput, bool) bool, opts ...request.Option) error {
3880	p := request.Pagination{
3881		NewRequest: func() (*request.Request, error) {
3882			var inCpy *DescribeTapesInput
3883			if input != nil {
3884				tmp := *input
3885				inCpy = &tmp
3886			}
3887			req, _ := c.DescribeTapesRequest(inCpy)
3888			req.SetContext(ctx)
3889			req.ApplyOptions(opts...)
3890			return req, nil
3891		},
3892	}
3893
3894	for p.Next() {
3895		if !fn(p.Page().(*DescribeTapesOutput), !p.HasNextPage()) {
3896			break
3897		}
3898	}
3899
3900	return p.Err()
3901}
3902
3903const opDescribeUploadBuffer = "DescribeUploadBuffer"
3904
3905// DescribeUploadBufferRequest generates a "aws/request.Request" representing the
3906// client's request for the DescribeUploadBuffer operation. The "output" return
3907// value will be populated with the request's response once the request completes
3908// successfully.
3909//
3910// Use "Send" method on the returned Request to send the API call to the service.
3911// the "output" return value is not valid until after Send returns without error.
3912//
3913// See DescribeUploadBuffer for more information on using the DescribeUploadBuffer
3914// API call, and error handling.
3915//
3916// This method is useful when you want to inject custom logic or configuration
3917// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3918//
3919//
3920//    // Example sending a request using the DescribeUploadBufferRequest method.
3921//    req, resp := client.DescribeUploadBufferRequest(params)
3922//
3923//    err := req.Send()
3924//    if err == nil { // resp is now filled
3925//        fmt.Println(resp)
3926//    }
3927//
3928// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeUploadBuffer
3929func (c *StorageGateway) DescribeUploadBufferRequest(input *DescribeUploadBufferInput) (req *request.Request, output *DescribeUploadBufferOutput) {
3930	op := &request.Operation{
3931		Name:       opDescribeUploadBuffer,
3932		HTTPMethod: "POST",
3933		HTTPPath:   "/",
3934	}
3935
3936	if input == nil {
3937		input = &DescribeUploadBufferInput{}
3938	}
3939
3940	output = &DescribeUploadBufferOutput{}
3941	req = c.newRequest(op, input, output)
3942	return
3943}
3944
3945// DescribeUploadBuffer API operation for AWS Storage Gateway.
3946//
3947// Returns information about the upload buffer of a gateway. This operation
3948// is supported for the stored volume, cached volume, and tape gateway types.
3949//
3950// The response includes disk IDs that are configured as upload buffer space,
3951// and it includes the amount of upload buffer space allocated and used.
3952//
3953// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3954// with awserr.Error's Code and Message methods to get detailed information about
3955// the error.
3956//
3957// See the AWS API reference guide for AWS Storage Gateway's
3958// API operation DescribeUploadBuffer for usage and error information.
3959//
3960// Returned Error Types:
3961//   * InvalidGatewayRequestException
3962//   An exception occurred because an invalid gateway request was issued to the
3963//   service. For more information, see the error and message fields.
3964//
3965//   * InternalServerError
3966//   An internal server error has occurred during the request. For more information,
3967//   see the error and message fields.
3968//
3969// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeUploadBuffer
3970func (c *StorageGateway) DescribeUploadBuffer(input *DescribeUploadBufferInput) (*DescribeUploadBufferOutput, error) {
3971	req, out := c.DescribeUploadBufferRequest(input)
3972	return out, req.Send()
3973}
3974
3975// DescribeUploadBufferWithContext is the same as DescribeUploadBuffer with the addition of
3976// the ability to pass a context and additional request options.
3977//
3978// See DescribeUploadBuffer for details on how to use this API operation.
3979//
3980// The context must be non-nil and will be used for request cancellation. If
3981// the context is nil a panic will occur. In the future the SDK may create
3982// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3983// for more information on using Contexts.
3984func (c *StorageGateway) DescribeUploadBufferWithContext(ctx aws.Context, input *DescribeUploadBufferInput, opts ...request.Option) (*DescribeUploadBufferOutput, error) {
3985	req, out := c.DescribeUploadBufferRequest(input)
3986	req.SetContext(ctx)
3987	req.ApplyOptions(opts...)
3988	return out, req.Send()
3989}
3990
3991const opDescribeVTLDevices = "DescribeVTLDevices"
3992
3993// DescribeVTLDevicesRequest generates a "aws/request.Request" representing the
3994// client's request for the DescribeVTLDevices operation. The "output" return
3995// value will be populated with the request's response once the request completes
3996// successfully.
3997//
3998// Use "Send" method on the returned Request to send the API call to the service.
3999// the "output" return value is not valid until after Send returns without error.
4000//
4001// See DescribeVTLDevices for more information on using the DescribeVTLDevices
4002// API call, and error handling.
4003//
4004// This method is useful when you want to inject custom logic or configuration
4005// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4006//
4007//
4008//    // Example sending a request using the DescribeVTLDevicesRequest method.
4009//    req, resp := client.DescribeVTLDevicesRequest(params)
4010//
4011//    err := req.Send()
4012//    if err == nil { // resp is now filled
4013//        fmt.Println(resp)
4014//    }
4015//
4016// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeVTLDevices
4017func (c *StorageGateway) DescribeVTLDevicesRequest(input *DescribeVTLDevicesInput) (req *request.Request, output *DescribeVTLDevicesOutput) {
4018	op := &request.Operation{
4019		Name:       opDescribeVTLDevices,
4020		HTTPMethod: "POST",
4021		HTTPPath:   "/",
4022		Paginator: &request.Paginator{
4023			InputTokens:     []string{"Marker"},
4024			OutputTokens:    []string{"Marker"},
4025			LimitToken:      "Limit",
4026			TruncationToken: "",
4027		},
4028	}
4029
4030	if input == nil {
4031		input = &DescribeVTLDevicesInput{}
4032	}
4033
4034	output = &DescribeVTLDevicesOutput{}
4035	req = c.newRequest(op, input, output)
4036	return
4037}
4038
4039// DescribeVTLDevices API operation for AWS Storage Gateway.
4040//
4041// Returns a description of virtual tape library (VTL) devices for the specified
4042// tape gateway. In the response, AWS Storage Gateway returns VTL device information.
4043//
4044// This operation is only supported in the tape gateway type.
4045//
4046// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4047// with awserr.Error's Code and Message methods to get detailed information about
4048// the error.
4049//
4050// See the AWS API reference guide for AWS Storage Gateway's
4051// API operation DescribeVTLDevices for usage and error information.
4052//
4053// Returned Error Types:
4054//   * InvalidGatewayRequestException
4055//   An exception occurred because an invalid gateway request was issued to the
4056//   service. For more information, see the error and message fields.
4057//
4058//   * InternalServerError
4059//   An internal server error has occurred during the request. For more information,
4060//   see the error and message fields.
4061//
4062// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeVTLDevices
4063func (c *StorageGateway) DescribeVTLDevices(input *DescribeVTLDevicesInput) (*DescribeVTLDevicesOutput, error) {
4064	req, out := c.DescribeVTLDevicesRequest(input)
4065	return out, req.Send()
4066}
4067
4068// DescribeVTLDevicesWithContext is the same as DescribeVTLDevices with the addition of
4069// the ability to pass a context and additional request options.
4070//
4071// See DescribeVTLDevices for details on how to use this API operation.
4072//
4073// The context must be non-nil and will be used for request cancellation. If
4074// the context is nil a panic will occur. In the future the SDK may create
4075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4076// for more information on using Contexts.
4077func (c *StorageGateway) DescribeVTLDevicesWithContext(ctx aws.Context, input *DescribeVTLDevicesInput, opts ...request.Option) (*DescribeVTLDevicesOutput, error) {
4078	req, out := c.DescribeVTLDevicesRequest(input)
4079	req.SetContext(ctx)
4080	req.ApplyOptions(opts...)
4081	return out, req.Send()
4082}
4083
4084// DescribeVTLDevicesPages iterates over the pages of a DescribeVTLDevices operation,
4085// calling the "fn" function with the response data for each page. To stop
4086// iterating, return false from the fn function.
4087//
4088// See DescribeVTLDevices method for more information on how to use this operation.
4089//
4090// Note: This operation can generate multiple requests to a service.
4091//
4092//    // Example iterating over at most 3 pages of a DescribeVTLDevices operation.
4093//    pageNum := 0
4094//    err := client.DescribeVTLDevicesPages(params,
4095//        func(page *storagegateway.DescribeVTLDevicesOutput, lastPage bool) bool {
4096//            pageNum++
4097//            fmt.Println(page)
4098//            return pageNum <= 3
4099//        })
4100//
4101func (c *StorageGateway) DescribeVTLDevicesPages(input *DescribeVTLDevicesInput, fn func(*DescribeVTLDevicesOutput, bool) bool) error {
4102	return c.DescribeVTLDevicesPagesWithContext(aws.BackgroundContext(), input, fn)
4103}
4104
4105// DescribeVTLDevicesPagesWithContext same as DescribeVTLDevicesPages except
4106// it takes a Context and allows setting request options on the pages.
4107//
4108// The context must be non-nil and will be used for request cancellation. If
4109// the context is nil a panic will occur. In the future the SDK may create
4110// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4111// for more information on using Contexts.
4112func (c *StorageGateway) DescribeVTLDevicesPagesWithContext(ctx aws.Context, input *DescribeVTLDevicesInput, fn func(*DescribeVTLDevicesOutput, bool) bool, opts ...request.Option) error {
4113	p := request.Pagination{
4114		NewRequest: func() (*request.Request, error) {
4115			var inCpy *DescribeVTLDevicesInput
4116			if input != nil {
4117				tmp := *input
4118				inCpy = &tmp
4119			}
4120			req, _ := c.DescribeVTLDevicesRequest(inCpy)
4121			req.SetContext(ctx)
4122			req.ApplyOptions(opts...)
4123			return req, nil
4124		},
4125	}
4126
4127	for p.Next() {
4128		if !fn(p.Page().(*DescribeVTLDevicesOutput), !p.HasNextPage()) {
4129			break
4130		}
4131	}
4132
4133	return p.Err()
4134}
4135
4136const opDescribeWorkingStorage = "DescribeWorkingStorage"
4137
4138// DescribeWorkingStorageRequest generates a "aws/request.Request" representing the
4139// client's request for the DescribeWorkingStorage operation. The "output" return
4140// value will be populated with the request's response once the request completes
4141// successfully.
4142//
4143// Use "Send" method on the returned Request to send the API call to the service.
4144// the "output" return value is not valid until after Send returns without error.
4145//
4146// See DescribeWorkingStorage for more information on using the DescribeWorkingStorage
4147// API call, and error handling.
4148//
4149// This method is useful when you want to inject custom logic or configuration
4150// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4151//
4152//
4153//    // Example sending a request using the DescribeWorkingStorageRequest method.
4154//    req, resp := client.DescribeWorkingStorageRequest(params)
4155//
4156//    err := req.Send()
4157//    if err == nil { // resp is now filled
4158//        fmt.Println(resp)
4159//    }
4160//
4161// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeWorkingStorage
4162func (c *StorageGateway) DescribeWorkingStorageRequest(input *DescribeWorkingStorageInput) (req *request.Request, output *DescribeWorkingStorageOutput) {
4163	op := &request.Operation{
4164		Name:       opDescribeWorkingStorage,
4165		HTTPMethod: "POST",
4166		HTTPPath:   "/",
4167	}
4168
4169	if input == nil {
4170		input = &DescribeWorkingStorageInput{}
4171	}
4172
4173	output = &DescribeWorkingStorageOutput{}
4174	req = c.newRequest(op, input, output)
4175	return
4176}
4177
4178// DescribeWorkingStorage API operation for AWS Storage Gateway.
4179//
4180// Returns information about the working storage of a gateway. This operation
4181// is only supported in the stored volumes gateway type. This operation is deprecated
4182// in cached volumes API version (20120630). Use DescribeUploadBuffer instead.
4183//
4184// Working storage is also referred to as upload buffer. You can also use the
4185// DescribeUploadBuffer operation to add upload buffer to a stored volume gateway.
4186//
4187// The response includes disk IDs that are configured as working storage, and
4188// it includes the amount of working storage allocated and used.
4189//
4190// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4191// with awserr.Error's Code and Message methods to get detailed information about
4192// the error.
4193//
4194// See the AWS API reference guide for AWS Storage Gateway's
4195// API operation DescribeWorkingStorage for usage and error information.
4196//
4197// Returned Error Types:
4198//   * InvalidGatewayRequestException
4199//   An exception occurred because an invalid gateway request was issued to the
4200//   service. For more information, see the error and message fields.
4201//
4202//   * InternalServerError
4203//   An internal server error has occurred during the request. For more information,
4204//   see the error and message fields.
4205//
4206// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeWorkingStorage
4207func (c *StorageGateway) DescribeWorkingStorage(input *DescribeWorkingStorageInput) (*DescribeWorkingStorageOutput, error) {
4208	req, out := c.DescribeWorkingStorageRequest(input)
4209	return out, req.Send()
4210}
4211
4212// DescribeWorkingStorageWithContext is the same as DescribeWorkingStorage with the addition of
4213// the ability to pass a context and additional request options.
4214//
4215// See DescribeWorkingStorage for details on how to use this API operation.
4216//
4217// The context must be non-nil and will be used for request cancellation. If
4218// the context is nil a panic will occur. In the future the SDK may create
4219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4220// for more information on using Contexts.
4221func (c *StorageGateway) DescribeWorkingStorageWithContext(ctx aws.Context, input *DescribeWorkingStorageInput, opts ...request.Option) (*DescribeWorkingStorageOutput, error) {
4222	req, out := c.DescribeWorkingStorageRequest(input)
4223	req.SetContext(ctx)
4224	req.ApplyOptions(opts...)
4225	return out, req.Send()
4226}
4227
4228const opDetachVolume = "DetachVolume"
4229
4230// DetachVolumeRequest generates a "aws/request.Request" representing the
4231// client's request for the DetachVolume operation. The "output" return
4232// value will be populated with the request's response once the request completes
4233// successfully.
4234//
4235// Use "Send" method on the returned Request to send the API call to the service.
4236// the "output" return value is not valid until after Send returns without error.
4237//
4238// See DetachVolume for more information on using the DetachVolume
4239// API call, and error handling.
4240//
4241// This method is useful when you want to inject custom logic or configuration
4242// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4243//
4244//
4245//    // Example sending a request using the DetachVolumeRequest method.
4246//    req, resp := client.DetachVolumeRequest(params)
4247//
4248//    err := req.Send()
4249//    if err == nil { // resp is now filled
4250//        fmt.Println(resp)
4251//    }
4252//
4253// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DetachVolume
4254func (c *StorageGateway) DetachVolumeRequest(input *DetachVolumeInput) (req *request.Request, output *DetachVolumeOutput) {
4255	op := &request.Operation{
4256		Name:       opDetachVolume,
4257		HTTPMethod: "POST",
4258		HTTPPath:   "/",
4259	}
4260
4261	if input == nil {
4262		input = &DetachVolumeInput{}
4263	}
4264
4265	output = &DetachVolumeOutput{}
4266	req = c.newRequest(op, input, output)
4267	return
4268}
4269
4270// DetachVolume API operation for AWS Storage Gateway.
4271//
4272// Disconnects a volume from an iSCSI connection and then detaches the volume
4273// from the specified gateway. Detaching and attaching a volume enables you
4274// to recover your data from one gateway to a different gateway without creating
4275// a snapshot. It also makes it easier to move your volumes from an on-premises
4276// gateway to a gateway hosted on an Amazon EC2 instance. This operation is
4277// only supported in the volume gateway type.
4278//
4279// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4280// with awserr.Error's Code and Message methods to get detailed information about
4281// the error.
4282//
4283// See the AWS API reference guide for AWS Storage Gateway's
4284// API operation DetachVolume for usage and error information.
4285//
4286// Returned Error Types:
4287//   * InvalidGatewayRequestException
4288//   An exception occurred because an invalid gateway request was issued to the
4289//   service. For more information, see the error and message fields.
4290//
4291//   * InternalServerError
4292//   An internal server error has occurred during the request. For more information,
4293//   see the error and message fields.
4294//
4295// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DetachVolume
4296func (c *StorageGateway) DetachVolume(input *DetachVolumeInput) (*DetachVolumeOutput, error) {
4297	req, out := c.DetachVolumeRequest(input)
4298	return out, req.Send()
4299}
4300
4301// DetachVolumeWithContext is the same as DetachVolume with the addition of
4302// the ability to pass a context and additional request options.
4303//
4304// See DetachVolume for details on how to use this API operation.
4305//
4306// The context must be non-nil and will be used for request cancellation. If
4307// the context is nil a panic will occur. In the future the SDK may create
4308// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4309// for more information on using Contexts.
4310func (c *StorageGateway) DetachVolumeWithContext(ctx aws.Context, input *DetachVolumeInput, opts ...request.Option) (*DetachVolumeOutput, error) {
4311	req, out := c.DetachVolumeRequest(input)
4312	req.SetContext(ctx)
4313	req.ApplyOptions(opts...)
4314	return out, req.Send()
4315}
4316
4317const opDisableGateway = "DisableGateway"
4318
4319// DisableGatewayRequest generates a "aws/request.Request" representing the
4320// client's request for the DisableGateway operation. The "output" return
4321// value will be populated with the request's response once the request completes
4322// successfully.
4323//
4324// Use "Send" method on the returned Request to send the API call to the service.
4325// the "output" return value is not valid until after Send returns without error.
4326//
4327// See DisableGateway for more information on using the DisableGateway
4328// API call, and error handling.
4329//
4330// This method is useful when you want to inject custom logic or configuration
4331// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4332//
4333//
4334//    // Example sending a request using the DisableGatewayRequest method.
4335//    req, resp := client.DisableGatewayRequest(params)
4336//
4337//    err := req.Send()
4338//    if err == nil { // resp is now filled
4339//        fmt.Println(resp)
4340//    }
4341//
4342// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisableGateway
4343func (c *StorageGateway) DisableGatewayRequest(input *DisableGatewayInput) (req *request.Request, output *DisableGatewayOutput) {
4344	op := &request.Operation{
4345		Name:       opDisableGateway,
4346		HTTPMethod: "POST",
4347		HTTPPath:   "/",
4348	}
4349
4350	if input == nil {
4351		input = &DisableGatewayInput{}
4352	}
4353
4354	output = &DisableGatewayOutput{}
4355	req = c.newRequest(op, input, output)
4356	return
4357}
4358
4359// DisableGateway API operation for AWS Storage Gateway.
4360//
4361// Disables a tape gateway when the gateway is no longer functioning. For example,
4362// if your gateway VM is damaged, you can disable the gateway so you can recover
4363// virtual tapes.
4364//
4365// Use this operation for a tape gateway that is not reachable or not functioning.
4366// This operation is only supported in the tape gateway type.
4367//
4368// After a gateway is disabled, it cannot be enabled.
4369//
4370// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4371// with awserr.Error's Code and Message methods to get detailed information about
4372// the error.
4373//
4374// See the AWS API reference guide for AWS Storage Gateway's
4375// API operation DisableGateway for usage and error information.
4376//
4377// Returned Error Types:
4378//   * InvalidGatewayRequestException
4379//   An exception occurred because an invalid gateway request was issued to the
4380//   service. For more information, see the error and message fields.
4381//
4382//   * InternalServerError
4383//   An internal server error has occurred during the request. For more information,
4384//   see the error and message fields.
4385//
4386// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisableGateway
4387func (c *StorageGateway) DisableGateway(input *DisableGatewayInput) (*DisableGatewayOutput, error) {
4388	req, out := c.DisableGatewayRequest(input)
4389	return out, req.Send()
4390}
4391
4392// DisableGatewayWithContext is the same as DisableGateway with the addition of
4393// the ability to pass a context and additional request options.
4394//
4395// See DisableGateway for details on how to use this API operation.
4396//
4397// The context must be non-nil and will be used for request cancellation. If
4398// the context is nil a panic will occur. In the future the SDK may create
4399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4400// for more information on using Contexts.
4401func (c *StorageGateway) DisableGatewayWithContext(ctx aws.Context, input *DisableGatewayInput, opts ...request.Option) (*DisableGatewayOutput, error) {
4402	req, out := c.DisableGatewayRequest(input)
4403	req.SetContext(ctx)
4404	req.ApplyOptions(opts...)
4405	return out, req.Send()
4406}
4407
4408const opJoinDomain = "JoinDomain"
4409
4410// JoinDomainRequest generates a "aws/request.Request" representing the
4411// client's request for the JoinDomain 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 JoinDomain for more information on using the JoinDomain
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 JoinDomainRequest method.
4426//    req, resp := client.JoinDomainRequest(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/JoinDomain
4434func (c *StorageGateway) JoinDomainRequest(input *JoinDomainInput) (req *request.Request, output *JoinDomainOutput) {
4435	op := &request.Operation{
4436		Name:       opJoinDomain,
4437		HTTPMethod: "POST",
4438		HTTPPath:   "/",
4439	}
4440
4441	if input == nil {
4442		input = &JoinDomainInput{}
4443	}
4444
4445	output = &JoinDomainOutput{}
4446	req = c.newRequest(op, input, output)
4447	return
4448}
4449
4450// JoinDomain API operation for AWS Storage Gateway.
4451//
4452// Adds a file gateway to an Active Directory domain. This operation is only
4453// supported for file gateways that support the SMB file protocol.
4454//
4455// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4456// with awserr.Error's Code and Message methods to get detailed information about
4457// the error.
4458//
4459// See the AWS API reference guide for AWS Storage Gateway's
4460// API operation JoinDomain for usage and error information.
4461//
4462// Returned Error Types:
4463//   * InvalidGatewayRequestException
4464//   An exception occurred because an invalid gateway request was issued to the
4465//   service. For more information, see the error and message fields.
4466//
4467//   * InternalServerError
4468//   An internal server error has occurred during the request. For more information,
4469//   see the error and message fields.
4470//
4471// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/JoinDomain
4472func (c *StorageGateway) JoinDomain(input *JoinDomainInput) (*JoinDomainOutput, error) {
4473	req, out := c.JoinDomainRequest(input)
4474	return out, req.Send()
4475}
4476
4477// JoinDomainWithContext is the same as JoinDomain with the addition of
4478// the ability to pass a context and additional request options.
4479//
4480// See JoinDomain for details on how to use this API operation.
4481//
4482// The context must be non-nil and will be used for request cancellation. If
4483// the context is nil a panic will occur. In the future the SDK may create
4484// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4485// for more information on using Contexts.
4486func (c *StorageGateway) JoinDomainWithContext(ctx aws.Context, input *JoinDomainInput, opts ...request.Option) (*JoinDomainOutput, error) {
4487	req, out := c.JoinDomainRequest(input)
4488	req.SetContext(ctx)
4489	req.ApplyOptions(opts...)
4490	return out, req.Send()
4491}
4492
4493const opListAutomaticTapeCreationPolicies = "ListAutomaticTapeCreationPolicies"
4494
4495// ListAutomaticTapeCreationPoliciesRequest generates a "aws/request.Request" representing the
4496// client's request for the ListAutomaticTapeCreationPolicies operation. The "output" return
4497// value will be populated with the request's response once the request completes
4498// successfully.
4499//
4500// Use "Send" method on the returned Request to send the API call to the service.
4501// the "output" return value is not valid until after Send returns without error.
4502//
4503// See ListAutomaticTapeCreationPolicies for more information on using the ListAutomaticTapeCreationPolicies
4504// API call, and error handling.
4505//
4506// This method is useful when you want to inject custom logic or configuration
4507// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4508//
4509//
4510//    // Example sending a request using the ListAutomaticTapeCreationPoliciesRequest method.
4511//    req, resp := client.ListAutomaticTapeCreationPoliciesRequest(params)
4512//
4513//    err := req.Send()
4514//    if err == nil { // resp is now filled
4515//        fmt.Println(resp)
4516//    }
4517//
4518// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListAutomaticTapeCreationPolicies
4519func (c *StorageGateway) ListAutomaticTapeCreationPoliciesRequest(input *ListAutomaticTapeCreationPoliciesInput) (req *request.Request, output *ListAutomaticTapeCreationPoliciesOutput) {
4520	op := &request.Operation{
4521		Name:       opListAutomaticTapeCreationPolicies,
4522		HTTPMethod: "POST",
4523		HTTPPath:   "/",
4524	}
4525
4526	if input == nil {
4527		input = &ListAutomaticTapeCreationPoliciesInput{}
4528	}
4529
4530	output = &ListAutomaticTapeCreationPoliciesOutput{}
4531	req = c.newRequest(op, input, output)
4532	return
4533}
4534
4535// ListAutomaticTapeCreationPolicies API operation for AWS Storage Gateway.
4536//
4537// Lists the automatic tape creation policies for a gateway. If there are no
4538// automatic tape creation policies for the gateway, it returns an empty list.
4539//
4540// This operation is only supported for tape gateways.
4541//
4542// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4543// with awserr.Error's Code and Message methods to get detailed information about
4544// the error.
4545//
4546// See the AWS API reference guide for AWS Storage Gateway's
4547// API operation ListAutomaticTapeCreationPolicies for usage and error information.
4548//
4549// Returned Error Types:
4550//   * InvalidGatewayRequestException
4551//   An exception occurred because an invalid gateway request was issued to the
4552//   service. For more information, see the error and message fields.
4553//
4554//   * InternalServerError
4555//   An internal server error has occurred during the request. For more information,
4556//   see the error and message fields.
4557//
4558// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListAutomaticTapeCreationPolicies
4559func (c *StorageGateway) ListAutomaticTapeCreationPolicies(input *ListAutomaticTapeCreationPoliciesInput) (*ListAutomaticTapeCreationPoliciesOutput, error) {
4560	req, out := c.ListAutomaticTapeCreationPoliciesRequest(input)
4561	return out, req.Send()
4562}
4563
4564// ListAutomaticTapeCreationPoliciesWithContext is the same as ListAutomaticTapeCreationPolicies with the addition of
4565// the ability to pass a context and additional request options.
4566//
4567// See ListAutomaticTapeCreationPolicies for details on how to use this API operation.
4568//
4569// The context must be non-nil and will be used for request cancellation. If
4570// the context is nil a panic will occur. In the future the SDK may create
4571// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4572// for more information on using Contexts.
4573func (c *StorageGateway) ListAutomaticTapeCreationPoliciesWithContext(ctx aws.Context, input *ListAutomaticTapeCreationPoliciesInput, opts ...request.Option) (*ListAutomaticTapeCreationPoliciesOutput, error) {
4574	req, out := c.ListAutomaticTapeCreationPoliciesRequest(input)
4575	req.SetContext(ctx)
4576	req.ApplyOptions(opts...)
4577	return out, req.Send()
4578}
4579
4580const opListFileShares = "ListFileShares"
4581
4582// ListFileSharesRequest generates a "aws/request.Request" representing the
4583// client's request for the ListFileShares operation. The "output" return
4584// value will be populated with the request's response once the request completes
4585// successfully.
4586//
4587// Use "Send" method on the returned Request to send the API call to the service.
4588// the "output" return value is not valid until after Send returns without error.
4589//
4590// See ListFileShares for more information on using the ListFileShares
4591// API call, and error handling.
4592//
4593// This method is useful when you want to inject custom logic or configuration
4594// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4595//
4596//
4597//    // Example sending a request using the ListFileSharesRequest method.
4598//    req, resp := client.ListFileSharesRequest(params)
4599//
4600//    err := req.Send()
4601//    if err == nil { // resp is now filled
4602//        fmt.Println(resp)
4603//    }
4604//
4605// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileShares
4606func (c *StorageGateway) ListFileSharesRequest(input *ListFileSharesInput) (req *request.Request, output *ListFileSharesOutput) {
4607	op := &request.Operation{
4608		Name:       opListFileShares,
4609		HTTPMethod: "POST",
4610		HTTPPath:   "/",
4611		Paginator: &request.Paginator{
4612			InputTokens:     []string{"Marker"},
4613			OutputTokens:    []string{"NextMarker"},
4614			LimitToken:      "Limit",
4615			TruncationToken: "",
4616		},
4617	}
4618
4619	if input == nil {
4620		input = &ListFileSharesInput{}
4621	}
4622
4623	output = &ListFileSharesOutput{}
4624	req = c.newRequest(op, input, output)
4625	return
4626}
4627
4628// ListFileShares API operation for AWS Storage Gateway.
4629//
4630// Gets a list of the file shares for a specific file gateway, or the list of
4631// file shares that belong to the calling user account. This operation is only
4632// supported for file gateways.
4633//
4634// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4635// with awserr.Error's Code and Message methods to get detailed information about
4636// the error.
4637//
4638// See the AWS API reference guide for AWS Storage Gateway's
4639// API operation ListFileShares for usage and error information.
4640//
4641// Returned Error Types:
4642//   * InvalidGatewayRequestException
4643//   An exception occurred because an invalid gateway request was issued to the
4644//   service. For more information, see the error and message fields.
4645//
4646//   * InternalServerError
4647//   An internal server error has occurred during the request. For more information,
4648//   see the error and message fields.
4649//
4650// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileShares
4651func (c *StorageGateway) ListFileShares(input *ListFileSharesInput) (*ListFileSharesOutput, error) {
4652	req, out := c.ListFileSharesRequest(input)
4653	return out, req.Send()
4654}
4655
4656// ListFileSharesWithContext is the same as ListFileShares with the addition of
4657// the ability to pass a context and additional request options.
4658//
4659// See ListFileShares for details on how to use this API operation.
4660//
4661// The context must be non-nil and will be used for request cancellation. If
4662// the context is nil a panic will occur. In the future the SDK may create
4663// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4664// for more information on using Contexts.
4665func (c *StorageGateway) ListFileSharesWithContext(ctx aws.Context, input *ListFileSharesInput, opts ...request.Option) (*ListFileSharesOutput, error) {
4666	req, out := c.ListFileSharesRequest(input)
4667	req.SetContext(ctx)
4668	req.ApplyOptions(opts...)
4669	return out, req.Send()
4670}
4671
4672// ListFileSharesPages iterates over the pages of a ListFileShares operation,
4673// calling the "fn" function with the response data for each page. To stop
4674// iterating, return false from the fn function.
4675//
4676// See ListFileShares method for more information on how to use this operation.
4677//
4678// Note: This operation can generate multiple requests to a service.
4679//
4680//    // Example iterating over at most 3 pages of a ListFileShares operation.
4681//    pageNum := 0
4682//    err := client.ListFileSharesPages(params,
4683//        func(page *storagegateway.ListFileSharesOutput, lastPage bool) bool {
4684//            pageNum++
4685//            fmt.Println(page)
4686//            return pageNum <= 3
4687//        })
4688//
4689func (c *StorageGateway) ListFileSharesPages(input *ListFileSharesInput, fn func(*ListFileSharesOutput, bool) bool) error {
4690	return c.ListFileSharesPagesWithContext(aws.BackgroundContext(), input, fn)
4691}
4692
4693// ListFileSharesPagesWithContext same as ListFileSharesPages except
4694// it takes a Context and allows setting request options on the pages.
4695//
4696// The context must be non-nil and will be used for request cancellation. If
4697// the context is nil a panic will occur. In the future the SDK may create
4698// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4699// for more information on using Contexts.
4700func (c *StorageGateway) ListFileSharesPagesWithContext(ctx aws.Context, input *ListFileSharesInput, fn func(*ListFileSharesOutput, bool) bool, opts ...request.Option) error {
4701	p := request.Pagination{
4702		NewRequest: func() (*request.Request, error) {
4703			var inCpy *ListFileSharesInput
4704			if input != nil {
4705				tmp := *input
4706				inCpy = &tmp
4707			}
4708			req, _ := c.ListFileSharesRequest(inCpy)
4709			req.SetContext(ctx)
4710			req.ApplyOptions(opts...)
4711			return req, nil
4712		},
4713	}
4714
4715	for p.Next() {
4716		if !fn(p.Page().(*ListFileSharesOutput), !p.HasNextPage()) {
4717			break
4718		}
4719	}
4720
4721	return p.Err()
4722}
4723
4724const opListGateways = "ListGateways"
4725
4726// ListGatewaysRequest generates a "aws/request.Request" representing the
4727// client's request for the ListGateways operation. The "output" return
4728// value will be populated with the request's response once the request completes
4729// successfully.
4730//
4731// Use "Send" method on the returned Request to send the API call to the service.
4732// the "output" return value is not valid until after Send returns without error.
4733//
4734// See ListGateways for more information on using the ListGateways
4735// API call, and error handling.
4736//
4737// This method is useful when you want to inject custom logic or configuration
4738// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4739//
4740//
4741//    // Example sending a request using the ListGatewaysRequest method.
4742//    req, resp := client.ListGatewaysRequest(params)
4743//
4744//    err := req.Send()
4745//    if err == nil { // resp is now filled
4746//        fmt.Println(resp)
4747//    }
4748//
4749// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListGateways
4750func (c *StorageGateway) ListGatewaysRequest(input *ListGatewaysInput) (req *request.Request, output *ListGatewaysOutput) {
4751	op := &request.Operation{
4752		Name:       opListGateways,
4753		HTTPMethod: "POST",
4754		HTTPPath:   "/",
4755		Paginator: &request.Paginator{
4756			InputTokens:     []string{"Marker"},
4757			OutputTokens:    []string{"Marker"},
4758			LimitToken:      "Limit",
4759			TruncationToken: "",
4760		},
4761	}
4762
4763	if input == nil {
4764		input = &ListGatewaysInput{}
4765	}
4766
4767	output = &ListGatewaysOutput{}
4768	req = c.newRequest(op, input, output)
4769	return
4770}
4771
4772// ListGateways API operation for AWS Storage Gateway.
4773//
4774// Lists gateways owned by an AWS account in an AWS Region specified in the
4775// request. The returned list is ordered by gateway Amazon Resource Name (ARN).
4776//
4777// By default, the operation returns a maximum of 100 gateways. This operation
4778// supports pagination that allows you to optionally reduce the number of gateways
4779// returned in a response.
4780//
4781// If you have more gateways than are returned in a response (that is, the response
4782// returns only a truncated list of your gateways), the response contains a
4783// marker that you can specify in your next request to fetch the next page of
4784// gateways.
4785//
4786// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4787// with awserr.Error's Code and Message methods to get detailed information about
4788// the error.
4789//
4790// See the AWS API reference guide for AWS Storage Gateway's
4791// API operation ListGateways for usage and error information.
4792//
4793// Returned Error Types:
4794//   * InvalidGatewayRequestException
4795//   An exception occurred because an invalid gateway request was issued to the
4796//   service. For more information, see the error and message fields.
4797//
4798//   * InternalServerError
4799//   An internal server error has occurred during the request. For more information,
4800//   see the error and message fields.
4801//
4802// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListGateways
4803func (c *StorageGateway) ListGateways(input *ListGatewaysInput) (*ListGatewaysOutput, error) {
4804	req, out := c.ListGatewaysRequest(input)
4805	return out, req.Send()
4806}
4807
4808// ListGatewaysWithContext is the same as ListGateways with the addition of
4809// the ability to pass a context and additional request options.
4810//
4811// See ListGateways for details on how to use this API operation.
4812//
4813// The context must be non-nil and will be used for request cancellation. If
4814// the context is nil a panic will occur. In the future the SDK may create
4815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4816// for more information on using Contexts.
4817func (c *StorageGateway) ListGatewaysWithContext(ctx aws.Context, input *ListGatewaysInput, opts ...request.Option) (*ListGatewaysOutput, error) {
4818	req, out := c.ListGatewaysRequest(input)
4819	req.SetContext(ctx)
4820	req.ApplyOptions(opts...)
4821	return out, req.Send()
4822}
4823
4824// ListGatewaysPages iterates over the pages of a ListGateways operation,
4825// calling the "fn" function with the response data for each page. To stop
4826// iterating, return false from the fn function.
4827//
4828// See ListGateways method for more information on how to use this operation.
4829//
4830// Note: This operation can generate multiple requests to a service.
4831//
4832//    // Example iterating over at most 3 pages of a ListGateways operation.
4833//    pageNum := 0
4834//    err := client.ListGatewaysPages(params,
4835//        func(page *storagegateway.ListGatewaysOutput, lastPage bool) bool {
4836//            pageNum++
4837//            fmt.Println(page)
4838//            return pageNum <= 3
4839//        })
4840//
4841func (c *StorageGateway) ListGatewaysPages(input *ListGatewaysInput, fn func(*ListGatewaysOutput, bool) bool) error {
4842	return c.ListGatewaysPagesWithContext(aws.BackgroundContext(), input, fn)
4843}
4844
4845// ListGatewaysPagesWithContext same as ListGatewaysPages except
4846// it takes a Context and allows setting request options on the pages.
4847//
4848// The context must be non-nil and will be used for request cancellation. If
4849// the context is nil a panic will occur. In the future the SDK may create
4850// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4851// for more information on using Contexts.
4852func (c *StorageGateway) ListGatewaysPagesWithContext(ctx aws.Context, input *ListGatewaysInput, fn func(*ListGatewaysOutput, bool) bool, opts ...request.Option) error {
4853	p := request.Pagination{
4854		NewRequest: func() (*request.Request, error) {
4855			var inCpy *ListGatewaysInput
4856			if input != nil {
4857				tmp := *input
4858				inCpy = &tmp
4859			}
4860			req, _ := c.ListGatewaysRequest(inCpy)
4861			req.SetContext(ctx)
4862			req.ApplyOptions(opts...)
4863			return req, nil
4864		},
4865	}
4866
4867	for p.Next() {
4868		if !fn(p.Page().(*ListGatewaysOutput), !p.HasNextPage()) {
4869			break
4870		}
4871	}
4872
4873	return p.Err()
4874}
4875
4876const opListLocalDisks = "ListLocalDisks"
4877
4878// ListLocalDisksRequest generates a "aws/request.Request" representing the
4879// client's request for the ListLocalDisks operation. The "output" return
4880// value will be populated with the request's response once the request completes
4881// successfully.
4882//
4883// Use "Send" method on the returned Request to send the API call to the service.
4884// the "output" return value is not valid until after Send returns without error.
4885//
4886// See ListLocalDisks for more information on using the ListLocalDisks
4887// API call, and error handling.
4888//
4889// This method is useful when you want to inject custom logic or configuration
4890// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4891//
4892//
4893//    // Example sending a request using the ListLocalDisksRequest method.
4894//    req, resp := client.ListLocalDisksRequest(params)
4895//
4896//    err := req.Send()
4897//    if err == nil { // resp is now filled
4898//        fmt.Println(resp)
4899//    }
4900//
4901// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListLocalDisks
4902func (c *StorageGateway) ListLocalDisksRequest(input *ListLocalDisksInput) (req *request.Request, output *ListLocalDisksOutput) {
4903	op := &request.Operation{
4904		Name:       opListLocalDisks,
4905		HTTPMethod: "POST",
4906		HTTPPath:   "/",
4907	}
4908
4909	if input == nil {
4910		input = &ListLocalDisksInput{}
4911	}
4912
4913	output = &ListLocalDisksOutput{}
4914	req = c.newRequest(op, input, output)
4915	return
4916}
4917
4918// ListLocalDisks API operation for AWS Storage Gateway.
4919//
4920// Returns a list of the gateway's local disks. To specify which gateway to
4921// describe, you use the Amazon Resource Name (ARN) of the gateway in the body
4922// of the request.
4923//
4924// The request returns a list of all disks, specifying which are configured
4925// as working storage, cache storage, or stored volume or not configured at
4926// all. The response includes a DiskStatus field. This field can have a value
4927// of present (the disk is available to use), missing (the disk is no longer
4928// connected to the gateway), or mismatch (the disk node is occupied by a disk
4929// that has incorrect metadata or the disk content is corrupted).
4930//
4931// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4932// with awserr.Error's Code and Message methods to get detailed information about
4933// the error.
4934//
4935// See the AWS API reference guide for AWS Storage Gateway's
4936// API operation ListLocalDisks for usage and error information.
4937//
4938// Returned Error Types:
4939//   * InvalidGatewayRequestException
4940//   An exception occurred because an invalid gateway request was issued to the
4941//   service. For more information, see the error and message fields.
4942//
4943//   * InternalServerError
4944//   An internal server error has occurred during the request. For more information,
4945//   see the error and message fields.
4946//
4947// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListLocalDisks
4948func (c *StorageGateway) ListLocalDisks(input *ListLocalDisksInput) (*ListLocalDisksOutput, error) {
4949	req, out := c.ListLocalDisksRequest(input)
4950	return out, req.Send()
4951}
4952
4953// ListLocalDisksWithContext is the same as ListLocalDisks with the addition of
4954// the ability to pass a context and additional request options.
4955//
4956// See ListLocalDisks for details on how to use this API operation.
4957//
4958// The context must be non-nil and will be used for request cancellation. If
4959// the context is nil a panic will occur. In the future the SDK may create
4960// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4961// for more information on using Contexts.
4962func (c *StorageGateway) ListLocalDisksWithContext(ctx aws.Context, input *ListLocalDisksInput, opts ...request.Option) (*ListLocalDisksOutput, error) {
4963	req, out := c.ListLocalDisksRequest(input)
4964	req.SetContext(ctx)
4965	req.ApplyOptions(opts...)
4966	return out, req.Send()
4967}
4968
4969const opListTagsForResource = "ListTagsForResource"
4970
4971// ListTagsForResourceRequest generates a "aws/request.Request" representing the
4972// client's request for the ListTagsForResource operation. The "output" return
4973// value will be populated with the request's response once the request completes
4974// successfully.
4975//
4976// Use "Send" method on the returned Request to send the API call to the service.
4977// the "output" return value is not valid until after Send returns without error.
4978//
4979// See ListTagsForResource for more information on using the ListTagsForResource
4980// API call, and error handling.
4981//
4982// This method is useful when you want to inject custom logic or configuration
4983// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4984//
4985//
4986//    // Example sending a request using the ListTagsForResourceRequest method.
4987//    req, resp := client.ListTagsForResourceRequest(params)
4988//
4989//    err := req.Send()
4990//    if err == nil { // resp is now filled
4991//        fmt.Println(resp)
4992//    }
4993//
4994// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTagsForResource
4995func (c *StorageGateway) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
4996	op := &request.Operation{
4997		Name:       opListTagsForResource,
4998		HTTPMethod: "POST",
4999		HTTPPath:   "/",
5000		Paginator: &request.Paginator{
5001			InputTokens:     []string{"Marker"},
5002			OutputTokens:    []string{"Marker"},
5003			LimitToken:      "Limit",
5004			TruncationToken: "",
5005		},
5006	}
5007
5008	if input == nil {
5009		input = &ListTagsForResourceInput{}
5010	}
5011
5012	output = &ListTagsForResourceOutput{}
5013	req = c.newRequest(op, input, output)
5014	return
5015}
5016
5017// ListTagsForResource API operation for AWS Storage Gateway.
5018//
5019// Lists the tags that have been added to the specified resource. This operation
5020// is supported in storage gateways of all types.
5021//
5022// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5023// with awserr.Error's Code and Message methods to get detailed information about
5024// the error.
5025//
5026// See the AWS API reference guide for AWS Storage Gateway's
5027// API operation ListTagsForResource for usage and error information.
5028//
5029// Returned Error Types:
5030//   * InvalidGatewayRequestException
5031//   An exception occurred because an invalid gateway request was issued to the
5032//   service. For more information, see the error and message fields.
5033//
5034//   * InternalServerError
5035//   An internal server error has occurred during the request. For more information,
5036//   see the error and message fields.
5037//
5038// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTagsForResource
5039func (c *StorageGateway) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
5040	req, out := c.ListTagsForResourceRequest(input)
5041	return out, req.Send()
5042}
5043
5044// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
5045// the ability to pass a context and additional request options.
5046//
5047// See ListTagsForResource for details on how to use this API operation.
5048//
5049// The context must be non-nil and will be used for request cancellation. If
5050// the context is nil a panic will occur. In the future the SDK may create
5051// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5052// for more information on using Contexts.
5053func (c *StorageGateway) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
5054	req, out := c.ListTagsForResourceRequest(input)
5055	req.SetContext(ctx)
5056	req.ApplyOptions(opts...)
5057	return out, req.Send()
5058}
5059
5060// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
5061// calling the "fn" function with the response data for each page. To stop
5062// iterating, return false from the fn function.
5063//
5064// See ListTagsForResource method for more information on how to use this operation.
5065//
5066// Note: This operation can generate multiple requests to a service.
5067//
5068//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
5069//    pageNum := 0
5070//    err := client.ListTagsForResourcePages(params,
5071//        func(page *storagegateway.ListTagsForResourceOutput, lastPage bool) bool {
5072//            pageNum++
5073//            fmt.Println(page)
5074//            return pageNum <= 3
5075//        })
5076//
5077func (c *StorageGateway) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
5078	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
5079}
5080
5081// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
5082// it takes a Context and allows setting request options on the pages.
5083//
5084// The context must be non-nil and will be used for request cancellation. If
5085// the context is nil a panic will occur. In the future the SDK may create
5086// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5087// for more information on using Contexts.
5088func (c *StorageGateway) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
5089	p := request.Pagination{
5090		NewRequest: func() (*request.Request, error) {
5091			var inCpy *ListTagsForResourceInput
5092			if input != nil {
5093				tmp := *input
5094				inCpy = &tmp
5095			}
5096			req, _ := c.ListTagsForResourceRequest(inCpy)
5097			req.SetContext(ctx)
5098			req.ApplyOptions(opts...)
5099			return req, nil
5100		},
5101	}
5102
5103	for p.Next() {
5104		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
5105			break
5106		}
5107	}
5108
5109	return p.Err()
5110}
5111
5112const opListTapes = "ListTapes"
5113
5114// ListTapesRequest generates a "aws/request.Request" representing the
5115// client's request for the ListTapes operation. The "output" return
5116// value will be populated with the request's response once the request completes
5117// successfully.
5118//
5119// Use "Send" method on the returned Request to send the API call to the service.
5120// the "output" return value is not valid until after Send returns without error.
5121//
5122// See ListTapes for more information on using the ListTapes
5123// API call, and error handling.
5124//
5125// This method is useful when you want to inject custom logic or configuration
5126// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5127//
5128//
5129//    // Example sending a request using the ListTapesRequest method.
5130//    req, resp := client.ListTapesRequest(params)
5131//
5132//    err := req.Send()
5133//    if err == nil { // resp is now filled
5134//        fmt.Println(resp)
5135//    }
5136//
5137// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapes
5138func (c *StorageGateway) ListTapesRequest(input *ListTapesInput) (req *request.Request, output *ListTapesOutput) {
5139	op := &request.Operation{
5140		Name:       opListTapes,
5141		HTTPMethod: "POST",
5142		HTTPPath:   "/",
5143		Paginator: &request.Paginator{
5144			InputTokens:     []string{"Marker"},
5145			OutputTokens:    []string{"Marker"},
5146			LimitToken:      "Limit",
5147			TruncationToken: "",
5148		},
5149	}
5150
5151	if input == nil {
5152		input = &ListTapesInput{}
5153	}
5154
5155	output = &ListTapesOutput{}
5156	req = c.newRequest(op, input, output)
5157	return
5158}
5159
5160// ListTapes API operation for AWS Storage Gateway.
5161//
5162// Lists virtual tapes in your virtual tape library (VTL) and your virtual tape
5163// shelf (VTS). You specify the tapes to list by specifying one or more tape
5164// Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation
5165// lists all virtual tapes in both your VTL and VTS.
5166//
5167// This operation supports pagination. By default, the operation returns a maximum
5168// of up to 100 tapes. You can optionally specify the Limit parameter in the
5169// body to limit the number of tapes in the response. If the number of tapes
5170// returned in the response is truncated, the response includes a Marker element
5171// that you can use in your subsequent request to retrieve the next set of tapes.
5172// This operation is only supported in the tape gateway type.
5173//
5174// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5175// with awserr.Error's Code and Message methods to get detailed information about
5176// the error.
5177//
5178// See the AWS API reference guide for AWS Storage Gateway's
5179// API operation ListTapes for usage and error information.
5180//
5181// Returned Error Types:
5182//   * InvalidGatewayRequestException
5183//   An exception occurred because an invalid gateway request was issued to the
5184//   service. For more information, see the error and message fields.
5185//
5186//   * InternalServerError
5187//   An internal server error has occurred during the request. For more information,
5188//   see the error and message fields.
5189//
5190// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapes
5191func (c *StorageGateway) ListTapes(input *ListTapesInput) (*ListTapesOutput, error) {
5192	req, out := c.ListTapesRequest(input)
5193	return out, req.Send()
5194}
5195
5196// ListTapesWithContext is the same as ListTapes with the addition of
5197// the ability to pass a context and additional request options.
5198//
5199// See ListTapes for details on how to use this API operation.
5200//
5201// The context must be non-nil and will be used for request cancellation. If
5202// the context is nil a panic will occur. In the future the SDK may create
5203// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5204// for more information on using Contexts.
5205func (c *StorageGateway) ListTapesWithContext(ctx aws.Context, input *ListTapesInput, opts ...request.Option) (*ListTapesOutput, error) {
5206	req, out := c.ListTapesRequest(input)
5207	req.SetContext(ctx)
5208	req.ApplyOptions(opts...)
5209	return out, req.Send()
5210}
5211
5212// ListTapesPages iterates over the pages of a ListTapes operation,
5213// calling the "fn" function with the response data for each page. To stop
5214// iterating, return false from the fn function.
5215//
5216// See ListTapes method for more information on how to use this operation.
5217//
5218// Note: This operation can generate multiple requests to a service.
5219//
5220//    // Example iterating over at most 3 pages of a ListTapes operation.
5221//    pageNum := 0
5222//    err := client.ListTapesPages(params,
5223//        func(page *storagegateway.ListTapesOutput, lastPage bool) bool {
5224//            pageNum++
5225//            fmt.Println(page)
5226//            return pageNum <= 3
5227//        })
5228//
5229func (c *StorageGateway) ListTapesPages(input *ListTapesInput, fn func(*ListTapesOutput, bool) bool) error {
5230	return c.ListTapesPagesWithContext(aws.BackgroundContext(), input, fn)
5231}
5232
5233// ListTapesPagesWithContext same as ListTapesPages except
5234// it takes a Context and allows setting request options on the pages.
5235//
5236// The context must be non-nil and will be used for request cancellation. If
5237// the context is nil a panic will occur. In the future the SDK may create
5238// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5239// for more information on using Contexts.
5240func (c *StorageGateway) ListTapesPagesWithContext(ctx aws.Context, input *ListTapesInput, fn func(*ListTapesOutput, bool) bool, opts ...request.Option) error {
5241	p := request.Pagination{
5242		NewRequest: func() (*request.Request, error) {
5243			var inCpy *ListTapesInput
5244			if input != nil {
5245				tmp := *input
5246				inCpy = &tmp
5247			}
5248			req, _ := c.ListTapesRequest(inCpy)
5249			req.SetContext(ctx)
5250			req.ApplyOptions(opts...)
5251			return req, nil
5252		},
5253	}
5254
5255	for p.Next() {
5256		if !fn(p.Page().(*ListTapesOutput), !p.HasNextPage()) {
5257			break
5258		}
5259	}
5260
5261	return p.Err()
5262}
5263
5264const opListVolumeInitiators = "ListVolumeInitiators"
5265
5266// ListVolumeInitiatorsRequest generates a "aws/request.Request" representing the
5267// client's request for the ListVolumeInitiators operation. The "output" return
5268// value will be populated with the request's response once the request completes
5269// successfully.
5270//
5271// Use "Send" method on the returned Request to send the API call to the service.
5272// the "output" return value is not valid until after Send returns without error.
5273//
5274// See ListVolumeInitiators for more information on using the ListVolumeInitiators
5275// API call, and error handling.
5276//
5277// This method is useful when you want to inject custom logic or configuration
5278// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5279//
5280//
5281//    // Example sending a request using the ListVolumeInitiatorsRequest method.
5282//    req, resp := client.ListVolumeInitiatorsRequest(params)
5283//
5284//    err := req.Send()
5285//    if err == nil { // resp is now filled
5286//        fmt.Println(resp)
5287//    }
5288//
5289// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeInitiators
5290func (c *StorageGateway) ListVolumeInitiatorsRequest(input *ListVolumeInitiatorsInput) (req *request.Request, output *ListVolumeInitiatorsOutput) {
5291	op := &request.Operation{
5292		Name:       opListVolumeInitiators,
5293		HTTPMethod: "POST",
5294		HTTPPath:   "/",
5295	}
5296
5297	if input == nil {
5298		input = &ListVolumeInitiatorsInput{}
5299	}
5300
5301	output = &ListVolumeInitiatorsOutput{}
5302	req = c.newRequest(op, input, output)
5303	return
5304}
5305
5306// ListVolumeInitiators API operation for AWS Storage Gateway.
5307//
5308// Lists iSCSI initiators that are connected to a volume. You can use this operation
5309// to determine whether a volume is being used or not. This operation is only
5310// supported in the cached volume and stored volume gateway types.
5311//
5312// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5313// with awserr.Error's Code and Message methods to get detailed information about
5314// the error.
5315//
5316// See the AWS API reference guide for AWS Storage Gateway's
5317// API operation ListVolumeInitiators for usage and error information.
5318//
5319// Returned Error Types:
5320//   * InvalidGatewayRequestException
5321//   An exception occurred because an invalid gateway request was issued to the
5322//   service. For more information, see the error and message fields.
5323//
5324//   * InternalServerError
5325//   An internal server error has occurred during the request. For more information,
5326//   see the error and message fields.
5327//
5328// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeInitiators
5329func (c *StorageGateway) ListVolumeInitiators(input *ListVolumeInitiatorsInput) (*ListVolumeInitiatorsOutput, error) {
5330	req, out := c.ListVolumeInitiatorsRequest(input)
5331	return out, req.Send()
5332}
5333
5334// ListVolumeInitiatorsWithContext is the same as ListVolumeInitiators with the addition of
5335// the ability to pass a context and additional request options.
5336//
5337// See ListVolumeInitiators for details on how to use this API operation.
5338//
5339// The context must be non-nil and will be used for request cancellation. If
5340// the context is nil a panic will occur. In the future the SDK may create
5341// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5342// for more information on using Contexts.
5343func (c *StorageGateway) ListVolumeInitiatorsWithContext(ctx aws.Context, input *ListVolumeInitiatorsInput, opts ...request.Option) (*ListVolumeInitiatorsOutput, error) {
5344	req, out := c.ListVolumeInitiatorsRequest(input)
5345	req.SetContext(ctx)
5346	req.ApplyOptions(opts...)
5347	return out, req.Send()
5348}
5349
5350const opListVolumeRecoveryPoints = "ListVolumeRecoveryPoints"
5351
5352// ListVolumeRecoveryPointsRequest generates a "aws/request.Request" representing the
5353// client's request for the ListVolumeRecoveryPoints operation. The "output" return
5354// value will be populated with the request's response once the request completes
5355// successfully.
5356//
5357// Use "Send" method on the returned Request to send the API call to the service.
5358// the "output" return value is not valid until after Send returns without error.
5359//
5360// See ListVolumeRecoveryPoints for more information on using the ListVolumeRecoveryPoints
5361// API call, and error handling.
5362//
5363// This method is useful when you want to inject custom logic or configuration
5364// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5365//
5366//
5367//    // Example sending a request using the ListVolumeRecoveryPointsRequest method.
5368//    req, resp := client.ListVolumeRecoveryPointsRequest(params)
5369//
5370//    err := req.Send()
5371//    if err == nil { // resp is now filled
5372//        fmt.Println(resp)
5373//    }
5374//
5375// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeRecoveryPoints
5376func (c *StorageGateway) ListVolumeRecoveryPointsRequest(input *ListVolumeRecoveryPointsInput) (req *request.Request, output *ListVolumeRecoveryPointsOutput) {
5377	op := &request.Operation{
5378		Name:       opListVolumeRecoveryPoints,
5379		HTTPMethod: "POST",
5380		HTTPPath:   "/",
5381	}
5382
5383	if input == nil {
5384		input = &ListVolumeRecoveryPointsInput{}
5385	}
5386
5387	output = &ListVolumeRecoveryPointsOutput{}
5388	req = c.newRequest(op, input, output)
5389	return
5390}
5391
5392// ListVolumeRecoveryPoints API operation for AWS Storage Gateway.
5393//
5394// Lists the recovery points for a specified gateway. This operation is only
5395// supported in the cached volume gateway type.
5396//
5397// Each cache volume has one recovery point. A volume recovery point is a point
5398// in time at which all data of the volume is consistent and from which you
5399// can create a snapshot or clone a new cached volume from a source volume.
5400// To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint
5401// operation.
5402//
5403// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5404// with awserr.Error's Code and Message methods to get detailed information about
5405// the error.
5406//
5407// See the AWS API reference guide for AWS Storage Gateway's
5408// API operation ListVolumeRecoveryPoints for usage and error information.
5409//
5410// Returned Error Types:
5411//   * InvalidGatewayRequestException
5412//   An exception occurred because an invalid gateway request was issued to the
5413//   service. For more information, see the error and message fields.
5414//
5415//   * InternalServerError
5416//   An internal server error has occurred during the request. For more information,
5417//   see the error and message fields.
5418//
5419// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeRecoveryPoints
5420func (c *StorageGateway) ListVolumeRecoveryPoints(input *ListVolumeRecoveryPointsInput) (*ListVolumeRecoveryPointsOutput, error) {
5421	req, out := c.ListVolumeRecoveryPointsRequest(input)
5422	return out, req.Send()
5423}
5424
5425// ListVolumeRecoveryPointsWithContext is the same as ListVolumeRecoveryPoints with the addition of
5426// the ability to pass a context and additional request options.
5427//
5428// See ListVolumeRecoveryPoints for details on how to use this API operation.
5429//
5430// The context must be non-nil and will be used for request cancellation. If
5431// the context is nil a panic will occur. In the future the SDK may create
5432// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5433// for more information on using Contexts.
5434func (c *StorageGateway) ListVolumeRecoveryPointsWithContext(ctx aws.Context, input *ListVolumeRecoveryPointsInput, opts ...request.Option) (*ListVolumeRecoveryPointsOutput, error) {
5435	req, out := c.ListVolumeRecoveryPointsRequest(input)
5436	req.SetContext(ctx)
5437	req.ApplyOptions(opts...)
5438	return out, req.Send()
5439}
5440
5441const opListVolumes = "ListVolumes"
5442
5443// ListVolumesRequest generates a "aws/request.Request" representing the
5444// client's request for the ListVolumes operation. The "output" return
5445// value will be populated with the request's response once the request completes
5446// successfully.
5447//
5448// Use "Send" method on the returned Request to send the API call to the service.
5449// the "output" return value is not valid until after Send returns without error.
5450//
5451// See ListVolumes for more information on using the ListVolumes
5452// API call, and error handling.
5453//
5454// This method is useful when you want to inject custom logic or configuration
5455// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5456//
5457//
5458//    // Example sending a request using the ListVolumesRequest method.
5459//    req, resp := client.ListVolumesRequest(params)
5460//
5461//    err := req.Send()
5462//    if err == nil { // resp is now filled
5463//        fmt.Println(resp)
5464//    }
5465//
5466// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumes
5467func (c *StorageGateway) ListVolumesRequest(input *ListVolumesInput) (req *request.Request, output *ListVolumesOutput) {
5468	op := &request.Operation{
5469		Name:       opListVolumes,
5470		HTTPMethod: "POST",
5471		HTTPPath:   "/",
5472		Paginator: &request.Paginator{
5473			InputTokens:     []string{"Marker"},
5474			OutputTokens:    []string{"Marker"},
5475			LimitToken:      "Limit",
5476			TruncationToken: "",
5477		},
5478	}
5479
5480	if input == nil {
5481		input = &ListVolumesInput{}
5482	}
5483
5484	output = &ListVolumesOutput{}
5485	req = c.newRequest(op, input, output)
5486	return
5487}
5488
5489// ListVolumes API operation for AWS Storage Gateway.
5490//
5491// Lists the iSCSI stored volumes of a gateway. Results are sorted by volume
5492// ARN. The response includes only the volume ARNs. If you want additional volume
5493// information, use the DescribeStorediSCSIVolumes or the DescribeCachediSCSIVolumes
5494// API.
5495//
5496// The operation supports pagination. By default, the operation returns a maximum
5497// of up to 100 volumes. You can optionally specify the Limit field in the body
5498// to limit the number of volumes in the response. If the number of volumes
5499// returned in the response is truncated, the response includes a Marker field.
5500// You can use this Marker value in your subsequent request to retrieve the
5501// next set of volumes. This operation is only supported in the cached volume
5502// and stored volume gateway types.
5503//
5504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5505// with awserr.Error's Code and Message methods to get detailed information about
5506// the error.
5507//
5508// See the AWS API reference guide for AWS Storage Gateway's
5509// API operation ListVolumes for usage and error information.
5510//
5511// Returned Error Types:
5512//   * InvalidGatewayRequestException
5513//   An exception occurred because an invalid gateway request was issued to the
5514//   service. For more information, see the error and message fields.
5515//
5516//   * InternalServerError
5517//   An internal server error has occurred during the request. For more information,
5518//   see the error and message fields.
5519//
5520// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumes
5521func (c *StorageGateway) ListVolumes(input *ListVolumesInput) (*ListVolumesOutput, error) {
5522	req, out := c.ListVolumesRequest(input)
5523	return out, req.Send()
5524}
5525
5526// ListVolumesWithContext is the same as ListVolumes with the addition of
5527// the ability to pass a context and additional request options.
5528//
5529// See ListVolumes for details on how to use this API operation.
5530//
5531// The context must be non-nil and will be used for request cancellation. If
5532// the context is nil a panic will occur. In the future the SDK may create
5533// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5534// for more information on using Contexts.
5535func (c *StorageGateway) ListVolumesWithContext(ctx aws.Context, input *ListVolumesInput, opts ...request.Option) (*ListVolumesOutput, error) {
5536	req, out := c.ListVolumesRequest(input)
5537	req.SetContext(ctx)
5538	req.ApplyOptions(opts...)
5539	return out, req.Send()
5540}
5541
5542// ListVolumesPages iterates over the pages of a ListVolumes operation,
5543// calling the "fn" function with the response data for each page. To stop
5544// iterating, return false from the fn function.
5545//
5546// See ListVolumes method for more information on how to use this operation.
5547//
5548// Note: This operation can generate multiple requests to a service.
5549//
5550//    // Example iterating over at most 3 pages of a ListVolumes operation.
5551//    pageNum := 0
5552//    err := client.ListVolumesPages(params,
5553//        func(page *storagegateway.ListVolumesOutput, lastPage bool) bool {
5554//            pageNum++
5555//            fmt.Println(page)
5556//            return pageNum <= 3
5557//        })
5558//
5559func (c *StorageGateway) ListVolumesPages(input *ListVolumesInput, fn func(*ListVolumesOutput, bool) bool) error {
5560	return c.ListVolumesPagesWithContext(aws.BackgroundContext(), input, fn)
5561}
5562
5563// ListVolumesPagesWithContext same as ListVolumesPages except
5564// it takes a Context and allows setting request options on the pages.
5565//
5566// The context must be non-nil and will be used for request cancellation. If
5567// the context is nil a panic will occur. In the future the SDK may create
5568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5569// for more information on using Contexts.
5570func (c *StorageGateway) ListVolumesPagesWithContext(ctx aws.Context, input *ListVolumesInput, fn func(*ListVolumesOutput, bool) bool, opts ...request.Option) error {
5571	p := request.Pagination{
5572		NewRequest: func() (*request.Request, error) {
5573			var inCpy *ListVolumesInput
5574			if input != nil {
5575				tmp := *input
5576				inCpy = &tmp
5577			}
5578			req, _ := c.ListVolumesRequest(inCpy)
5579			req.SetContext(ctx)
5580			req.ApplyOptions(opts...)
5581			return req, nil
5582		},
5583	}
5584
5585	for p.Next() {
5586		if !fn(p.Page().(*ListVolumesOutput), !p.HasNextPage()) {
5587			break
5588		}
5589	}
5590
5591	return p.Err()
5592}
5593
5594const opNotifyWhenUploaded = "NotifyWhenUploaded"
5595
5596// NotifyWhenUploadedRequest generates a "aws/request.Request" representing the
5597// client's request for the NotifyWhenUploaded operation. The "output" return
5598// value will be populated with the request's response once the request completes
5599// successfully.
5600//
5601// Use "Send" method on the returned Request to send the API call to the service.
5602// the "output" return value is not valid until after Send returns without error.
5603//
5604// See NotifyWhenUploaded for more information on using the NotifyWhenUploaded
5605// API call, and error handling.
5606//
5607// This method is useful when you want to inject custom logic or configuration
5608// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5609//
5610//
5611//    // Example sending a request using the NotifyWhenUploadedRequest method.
5612//    req, resp := client.NotifyWhenUploadedRequest(params)
5613//
5614//    err := req.Send()
5615//    if err == nil { // resp is now filled
5616//        fmt.Println(resp)
5617//    }
5618//
5619// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/NotifyWhenUploaded
5620func (c *StorageGateway) NotifyWhenUploadedRequest(input *NotifyWhenUploadedInput) (req *request.Request, output *NotifyWhenUploadedOutput) {
5621	op := &request.Operation{
5622		Name:       opNotifyWhenUploaded,
5623		HTTPMethod: "POST",
5624		HTTPPath:   "/",
5625	}
5626
5627	if input == nil {
5628		input = &NotifyWhenUploadedInput{}
5629	}
5630
5631	output = &NotifyWhenUploadedOutput{}
5632	req = c.newRequest(op, input, output)
5633	return
5634}
5635
5636// NotifyWhenUploaded API operation for AWS Storage Gateway.
5637//
5638// Sends you notification through CloudWatch Events when all files written to
5639// your file share have been uploaded to Amazon S3.
5640//
5641// AWS Storage Gateway can send a notification through Amazon CloudWatch Events
5642// when all files written to your file share up to that point in time have been
5643// uploaded to Amazon S3. These files include files written to the file share
5644// up to the time that you make a request for notification. When the upload
5645// is done, Storage Gateway sends you notification through an Amazon CloudWatch
5646// Event. You can configure CloudWatch Events to send the notification through
5647// event targets such as Amazon SNS or AWS Lambda function. This operation is
5648// only supported for file gateways.
5649//
5650// For more information, see Getting file upload notification (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-upload-notification)
5651// in the AWS Storage Gateway User Guide.
5652//
5653// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5654// with awserr.Error's Code and Message methods to get detailed information about
5655// the error.
5656//
5657// See the AWS API reference guide for AWS Storage Gateway's
5658// API operation NotifyWhenUploaded for usage and error information.
5659//
5660// Returned Error Types:
5661//   * InvalidGatewayRequestException
5662//   An exception occurred because an invalid gateway request was issued to the
5663//   service. For more information, see the error and message fields.
5664//
5665//   * InternalServerError
5666//   An internal server error has occurred during the request. For more information,
5667//   see the error and message fields.
5668//
5669// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/NotifyWhenUploaded
5670func (c *StorageGateway) NotifyWhenUploaded(input *NotifyWhenUploadedInput) (*NotifyWhenUploadedOutput, error) {
5671	req, out := c.NotifyWhenUploadedRequest(input)
5672	return out, req.Send()
5673}
5674
5675// NotifyWhenUploadedWithContext is the same as NotifyWhenUploaded with the addition of
5676// the ability to pass a context and additional request options.
5677//
5678// See NotifyWhenUploaded for details on how to use this API operation.
5679//
5680// The context must be non-nil and will be used for request cancellation. If
5681// the context is nil a panic will occur. In the future the SDK may create
5682// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5683// for more information on using Contexts.
5684func (c *StorageGateway) NotifyWhenUploadedWithContext(ctx aws.Context, input *NotifyWhenUploadedInput, opts ...request.Option) (*NotifyWhenUploadedOutput, error) {
5685	req, out := c.NotifyWhenUploadedRequest(input)
5686	req.SetContext(ctx)
5687	req.ApplyOptions(opts...)
5688	return out, req.Send()
5689}
5690
5691const opRefreshCache = "RefreshCache"
5692
5693// RefreshCacheRequest generates a "aws/request.Request" representing the
5694// client's request for the RefreshCache operation. The "output" return
5695// value will be populated with the request's response once the request completes
5696// successfully.
5697//
5698// Use "Send" method on the returned Request to send the API call to the service.
5699// the "output" return value is not valid until after Send returns without error.
5700//
5701// See RefreshCache for more information on using the RefreshCache
5702// API call, and error handling.
5703//
5704// This method is useful when you want to inject custom logic or configuration
5705// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5706//
5707//
5708//    // Example sending a request using the RefreshCacheRequest method.
5709//    req, resp := client.RefreshCacheRequest(params)
5710//
5711//    err := req.Send()
5712//    if err == nil { // resp is now filled
5713//        fmt.Println(resp)
5714//    }
5715//
5716// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RefreshCache
5717func (c *StorageGateway) RefreshCacheRequest(input *RefreshCacheInput) (req *request.Request, output *RefreshCacheOutput) {
5718	op := &request.Operation{
5719		Name:       opRefreshCache,
5720		HTTPMethod: "POST",
5721		HTTPPath:   "/",
5722	}
5723
5724	if input == nil {
5725		input = &RefreshCacheInput{}
5726	}
5727
5728	output = &RefreshCacheOutput{}
5729	req = c.newRequest(op, input, output)
5730	return
5731}
5732
5733// RefreshCache API operation for AWS Storage Gateway.
5734//
5735// Refreshes the cache for the specified file share. This operation finds objects
5736// in the Amazon S3 bucket that were added, removed, or replaced since the gateway
5737// last listed the bucket's contents and cached the results. This operation
5738// is only supported in the file gateway type. You can subscribe to be notified
5739// through an Amazon CloudWatch event when your RefreshCache operation completes.
5740// For more information, see Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
5741// in the AWS Storage Gateway User Guide.
5742//
5743// When this API is called, it only initiates the refresh operation. When the
5744// API call completes and returns a success code, it doesn't necessarily mean
5745// that the file refresh has completed. You should use the refresh-complete
5746// notification to determine that the operation has completed before you check
5747// for new files on the gateway file share. You can subscribe to be notified
5748// through an CloudWatch event when your RefreshCache operation completes.
5749//
5750// Throttle limit: This API is asynchronous so the gateway will accept no more
5751// than two refreshes at any time. We recommend using the refresh-complete CloudWatch
5752// event notification before issuing additional requests. For more information,
5753// see Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
5754// in the AWS Storage Gateway User Guide.
5755//
5756// If you invoke the RefreshCache API when two requests are already being processed,
5757// any new request will cause an InvalidGatewayRequestException error because
5758// too many requests were sent to the server.
5759//
5760// For more information, see Getting notified about file operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification)
5761// in the AWS Storage Gateway User Guide.
5762//
5763// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5764// with awserr.Error's Code and Message methods to get detailed information about
5765// the error.
5766//
5767// See the AWS API reference guide for AWS Storage Gateway's
5768// API operation RefreshCache for usage and error information.
5769//
5770// Returned Error Types:
5771//   * InvalidGatewayRequestException
5772//   An exception occurred because an invalid gateway request was issued to the
5773//   service. For more information, see the error and message fields.
5774//
5775//   * InternalServerError
5776//   An internal server error has occurred during the request. For more information,
5777//   see the error and message fields.
5778//
5779// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RefreshCache
5780func (c *StorageGateway) RefreshCache(input *RefreshCacheInput) (*RefreshCacheOutput, error) {
5781	req, out := c.RefreshCacheRequest(input)
5782	return out, req.Send()
5783}
5784
5785// RefreshCacheWithContext is the same as RefreshCache with the addition of
5786// the ability to pass a context and additional request options.
5787//
5788// See RefreshCache for details on how to use this API operation.
5789//
5790// The context must be non-nil and will be used for request cancellation. If
5791// the context is nil a panic will occur. In the future the SDK may create
5792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5793// for more information on using Contexts.
5794func (c *StorageGateway) RefreshCacheWithContext(ctx aws.Context, input *RefreshCacheInput, opts ...request.Option) (*RefreshCacheOutput, error) {
5795	req, out := c.RefreshCacheRequest(input)
5796	req.SetContext(ctx)
5797	req.ApplyOptions(opts...)
5798	return out, req.Send()
5799}
5800
5801const opRemoveTagsFromResource = "RemoveTagsFromResource"
5802
5803// RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the
5804// client's request for the RemoveTagsFromResource operation. The "output" return
5805// value will be populated with the request's response once the request completes
5806// successfully.
5807//
5808// Use "Send" method on the returned Request to send the API call to the service.
5809// the "output" return value is not valid until after Send returns without error.
5810//
5811// See RemoveTagsFromResource for more information on using the RemoveTagsFromResource
5812// API call, and error handling.
5813//
5814// This method is useful when you want to inject custom logic or configuration
5815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5816//
5817//
5818//    // Example sending a request using the RemoveTagsFromResourceRequest method.
5819//    req, resp := client.RemoveTagsFromResourceRequest(params)
5820//
5821//    err := req.Send()
5822//    if err == nil { // resp is now filled
5823//        fmt.Println(resp)
5824//    }
5825//
5826// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RemoveTagsFromResource
5827func (c *StorageGateway) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) {
5828	op := &request.Operation{
5829		Name:       opRemoveTagsFromResource,
5830		HTTPMethod: "POST",
5831		HTTPPath:   "/",
5832	}
5833
5834	if input == nil {
5835		input = &RemoveTagsFromResourceInput{}
5836	}
5837
5838	output = &RemoveTagsFromResourceOutput{}
5839	req = c.newRequest(op, input, output)
5840	return
5841}
5842
5843// RemoveTagsFromResource API operation for AWS Storage Gateway.
5844//
5845// Removes one or more tags from the specified resource. This operation is supported
5846// in storage gateways of all types.
5847//
5848// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5849// with awserr.Error's Code and Message methods to get detailed information about
5850// the error.
5851//
5852// See the AWS API reference guide for AWS Storage Gateway's
5853// API operation RemoveTagsFromResource for usage and error information.
5854//
5855// Returned Error Types:
5856//   * InvalidGatewayRequestException
5857//   An exception occurred because an invalid gateway request was issued to the
5858//   service. For more information, see the error and message fields.
5859//
5860//   * InternalServerError
5861//   An internal server error has occurred during the request. For more information,
5862//   see the error and message fields.
5863//
5864// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RemoveTagsFromResource
5865func (c *StorageGateway) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) {
5866	req, out := c.RemoveTagsFromResourceRequest(input)
5867	return out, req.Send()
5868}
5869
5870// RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of
5871// the ability to pass a context and additional request options.
5872//
5873// See RemoveTagsFromResource for details on how to use this API operation.
5874//
5875// The context must be non-nil and will be used for request cancellation. If
5876// the context is nil a panic will occur. In the future the SDK may create
5877// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5878// for more information on using Contexts.
5879func (c *StorageGateway) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) {
5880	req, out := c.RemoveTagsFromResourceRequest(input)
5881	req.SetContext(ctx)
5882	req.ApplyOptions(opts...)
5883	return out, req.Send()
5884}
5885
5886const opResetCache = "ResetCache"
5887
5888// ResetCacheRequest generates a "aws/request.Request" representing the
5889// client's request for the ResetCache operation. The "output" return
5890// value will be populated with the request's response once the request completes
5891// successfully.
5892//
5893// Use "Send" method on the returned Request to send the API call to the service.
5894// the "output" return value is not valid until after Send returns without error.
5895//
5896// See ResetCache for more information on using the ResetCache
5897// API call, and error handling.
5898//
5899// This method is useful when you want to inject custom logic or configuration
5900// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5901//
5902//
5903//    // Example sending a request using the ResetCacheRequest method.
5904//    req, resp := client.ResetCacheRequest(params)
5905//
5906//    err := req.Send()
5907//    if err == nil { // resp is now filled
5908//        fmt.Println(resp)
5909//    }
5910//
5911// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ResetCache
5912func (c *StorageGateway) ResetCacheRequest(input *ResetCacheInput) (req *request.Request, output *ResetCacheOutput) {
5913	op := &request.Operation{
5914		Name:       opResetCache,
5915		HTTPMethod: "POST",
5916		HTTPPath:   "/",
5917	}
5918
5919	if input == nil {
5920		input = &ResetCacheInput{}
5921	}
5922
5923	output = &ResetCacheOutput{}
5924	req = c.newRequest(op, input, output)
5925	return
5926}
5927
5928// ResetCache API operation for AWS Storage Gateway.
5929//
5930// Resets all cache disks that have encountered an error and makes the disks
5931// available for reconfiguration as cache storage. If your cache disk encounters
5932// an error, the gateway prevents read and write operations on virtual tapes
5933// in the gateway. For example, an error can occur when a disk is corrupted
5934// or removed from the gateway. When a cache is reset, the gateway loses its
5935// cache storage. At this point, you can reconfigure the disks as cache disks.
5936// This operation is only supported in the cached volume and tape types.
5937//
5938// If the cache disk you are resetting contains data that has not been uploaded
5939// to Amazon S3 yet, that data can be lost. After you reset cache disks, there
5940// will be no configured cache disks left in the gateway, so you must configure
5941// at least one new cache disk for your gateway to function properly.
5942//
5943// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5944// with awserr.Error's Code and Message methods to get detailed information about
5945// the error.
5946//
5947// See the AWS API reference guide for AWS Storage Gateway's
5948// API operation ResetCache for usage and error information.
5949//
5950// Returned Error Types:
5951//   * InvalidGatewayRequestException
5952//   An exception occurred because an invalid gateway request was issued to the
5953//   service. For more information, see the error and message fields.
5954//
5955//   * InternalServerError
5956//   An internal server error has occurred during the request. For more information,
5957//   see the error and message fields.
5958//
5959// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ResetCache
5960func (c *StorageGateway) ResetCache(input *ResetCacheInput) (*ResetCacheOutput, error) {
5961	req, out := c.ResetCacheRequest(input)
5962	return out, req.Send()
5963}
5964
5965// ResetCacheWithContext is the same as ResetCache with the addition of
5966// the ability to pass a context and additional request options.
5967//
5968// See ResetCache for details on how to use this API operation.
5969//
5970// The context must be non-nil and will be used for request cancellation. If
5971// the context is nil a panic will occur. In the future the SDK may create
5972// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5973// for more information on using Contexts.
5974func (c *StorageGateway) ResetCacheWithContext(ctx aws.Context, input *ResetCacheInput, opts ...request.Option) (*ResetCacheOutput, error) {
5975	req, out := c.ResetCacheRequest(input)
5976	req.SetContext(ctx)
5977	req.ApplyOptions(opts...)
5978	return out, req.Send()
5979}
5980
5981const opRetrieveTapeArchive = "RetrieveTapeArchive"
5982
5983// RetrieveTapeArchiveRequest generates a "aws/request.Request" representing the
5984// client's request for the RetrieveTapeArchive operation. The "output" return
5985// value will be populated with the request's response once the request completes
5986// successfully.
5987//
5988// Use "Send" method on the returned Request to send the API call to the service.
5989// the "output" return value is not valid until after Send returns without error.
5990//
5991// See RetrieveTapeArchive for more information on using the RetrieveTapeArchive
5992// API call, and error handling.
5993//
5994// This method is useful when you want to inject custom logic or configuration
5995// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5996//
5997//
5998//    // Example sending a request using the RetrieveTapeArchiveRequest method.
5999//    req, resp := client.RetrieveTapeArchiveRequest(params)
6000//
6001//    err := req.Send()
6002//    if err == nil { // resp is now filled
6003//        fmt.Println(resp)
6004//    }
6005//
6006// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeArchive
6007func (c *StorageGateway) RetrieveTapeArchiveRequest(input *RetrieveTapeArchiveInput) (req *request.Request, output *RetrieveTapeArchiveOutput) {
6008	op := &request.Operation{
6009		Name:       opRetrieveTapeArchive,
6010		HTTPMethod: "POST",
6011		HTTPPath:   "/",
6012	}
6013
6014	if input == nil {
6015		input = &RetrieveTapeArchiveInput{}
6016	}
6017
6018	output = &RetrieveTapeArchiveOutput{}
6019	req = c.newRequest(op, input, output)
6020	return
6021}
6022
6023// RetrieveTapeArchive API operation for AWS Storage Gateway.
6024//
6025// Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a
6026// tape gateway. Virtual tapes archived in the VTS are not associated with any
6027// gateway. However after a tape is retrieved, it is associated with a gateway,
6028// even though it is also listed in the VTS, that is, archive. This operation
6029// is only supported in the tape gateway type.
6030//
6031// Once a tape is successfully retrieved to a gateway, it cannot be retrieved
6032// again to another gateway. You must archive the tape again before you can
6033// retrieve it to another gateway. This operation is only supported in the tape
6034// gateway type.
6035//
6036// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6037// with awserr.Error's Code and Message methods to get detailed information about
6038// the error.
6039//
6040// See the AWS API reference guide for AWS Storage Gateway's
6041// API operation RetrieveTapeArchive for usage and error information.
6042//
6043// Returned Error Types:
6044//   * InvalidGatewayRequestException
6045//   An exception occurred because an invalid gateway request was issued to the
6046//   service. For more information, see the error and message fields.
6047//
6048//   * InternalServerError
6049//   An internal server error has occurred during the request. For more information,
6050//   see the error and message fields.
6051//
6052// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeArchive
6053func (c *StorageGateway) RetrieveTapeArchive(input *RetrieveTapeArchiveInput) (*RetrieveTapeArchiveOutput, error) {
6054	req, out := c.RetrieveTapeArchiveRequest(input)
6055	return out, req.Send()
6056}
6057
6058// RetrieveTapeArchiveWithContext is the same as RetrieveTapeArchive with the addition of
6059// the ability to pass a context and additional request options.
6060//
6061// See RetrieveTapeArchive for details on how to use this API operation.
6062//
6063// The context must be non-nil and will be used for request cancellation. If
6064// the context is nil a panic will occur. In the future the SDK may create
6065// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6066// for more information on using Contexts.
6067func (c *StorageGateway) RetrieveTapeArchiveWithContext(ctx aws.Context, input *RetrieveTapeArchiveInput, opts ...request.Option) (*RetrieveTapeArchiveOutput, error) {
6068	req, out := c.RetrieveTapeArchiveRequest(input)
6069	req.SetContext(ctx)
6070	req.ApplyOptions(opts...)
6071	return out, req.Send()
6072}
6073
6074const opRetrieveTapeRecoveryPoint = "RetrieveTapeRecoveryPoint"
6075
6076// RetrieveTapeRecoveryPointRequest generates a "aws/request.Request" representing the
6077// client's request for the RetrieveTapeRecoveryPoint operation. The "output" return
6078// value will be populated with the request's response once the request completes
6079// successfully.
6080//
6081// Use "Send" method on the returned Request to send the API call to the service.
6082// the "output" return value is not valid until after Send returns without error.
6083//
6084// See RetrieveTapeRecoveryPoint for more information on using the RetrieveTapeRecoveryPoint
6085// API call, and error handling.
6086//
6087// This method is useful when you want to inject custom logic or configuration
6088// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6089//
6090//
6091//    // Example sending a request using the RetrieveTapeRecoveryPointRequest method.
6092//    req, resp := client.RetrieveTapeRecoveryPointRequest(params)
6093//
6094//    err := req.Send()
6095//    if err == nil { // resp is now filled
6096//        fmt.Println(resp)
6097//    }
6098//
6099// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeRecoveryPoint
6100func (c *StorageGateway) RetrieveTapeRecoveryPointRequest(input *RetrieveTapeRecoveryPointInput) (req *request.Request, output *RetrieveTapeRecoveryPointOutput) {
6101	op := &request.Operation{
6102		Name:       opRetrieveTapeRecoveryPoint,
6103		HTTPMethod: "POST",
6104		HTTPPath:   "/",
6105	}
6106
6107	if input == nil {
6108		input = &RetrieveTapeRecoveryPointInput{}
6109	}
6110
6111	output = &RetrieveTapeRecoveryPointOutput{}
6112	req = c.newRequest(op, input, output)
6113	return
6114}
6115
6116// RetrieveTapeRecoveryPoint API operation for AWS Storage Gateway.
6117//
6118// Retrieves the recovery point for the specified virtual tape. This operation
6119// is only supported in the tape gateway type.
6120//
6121// A recovery point is a point in time view of a virtual tape at which all the
6122// data on the tape is consistent. If your gateway crashes, virtual tapes that
6123// have recovery points can be recovered to a new gateway.
6124//
6125// The virtual tape can be retrieved to only one gateway. The retrieved tape
6126// is read-only. The virtual tape can be retrieved to only a tape gateway. There
6127// is no charge for retrieving recovery points.
6128//
6129// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6130// with awserr.Error's Code and Message methods to get detailed information about
6131// the error.
6132//
6133// See the AWS API reference guide for AWS Storage Gateway's
6134// API operation RetrieveTapeRecoveryPoint for usage and error information.
6135//
6136// Returned Error Types:
6137//   * InvalidGatewayRequestException
6138//   An exception occurred because an invalid gateway request was issued to the
6139//   service. For more information, see the error and message fields.
6140//
6141//   * InternalServerError
6142//   An internal server error has occurred during the request. For more information,
6143//   see the error and message fields.
6144//
6145// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeRecoveryPoint
6146func (c *StorageGateway) RetrieveTapeRecoveryPoint(input *RetrieveTapeRecoveryPointInput) (*RetrieveTapeRecoveryPointOutput, error) {
6147	req, out := c.RetrieveTapeRecoveryPointRequest(input)
6148	return out, req.Send()
6149}
6150
6151// RetrieveTapeRecoveryPointWithContext is the same as RetrieveTapeRecoveryPoint with the addition of
6152// the ability to pass a context and additional request options.
6153//
6154// See RetrieveTapeRecoveryPoint for details on how to use this API operation.
6155//
6156// The context must be non-nil and will be used for request cancellation. If
6157// the context is nil a panic will occur. In the future the SDK may create
6158// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6159// for more information on using Contexts.
6160func (c *StorageGateway) RetrieveTapeRecoveryPointWithContext(ctx aws.Context, input *RetrieveTapeRecoveryPointInput, opts ...request.Option) (*RetrieveTapeRecoveryPointOutput, error) {
6161	req, out := c.RetrieveTapeRecoveryPointRequest(input)
6162	req.SetContext(ctx)
6163	req.ApplyOptions(opts...)
6164	return out, req.Send()
6165}
6166
6167const opSetLocalConsolePassword = "SetLocalConsolePassword"
6168
6169// SetLocalConsolePasswordRequest generates a "aws/request.Request" representing the
6170// client's request for the SetLocalConsolePassword operation. The "output" return
6171// value will be populated with the request's response once the request completes
6172// successfully.
6173//
6174// Use "Send" method on the returned Request to send the API call to the service.
6175// the "output" return value is not valid until after Send returns without error.
6176//
6177// See SetLocalConsolePassword for more information on using the SetLocalConsolePassword
6178// API call, and error handling.
6179//
6180// This method is useful when you want to inject custom logic or configuration
6181// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6182//
6183//
6184//    // Example sending a request using the SetLocalConsolePasswordRequest method.
6185//    req, resp := client.SetLocalConsolePasswordRequest(params)
6186//
6187//    err := req.Send()
6188//    if err == nil { // resp is now filled
6189//        fmt.Println(resp)
6190//    }
6191//
6192// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetLocalConsolePassword
6193func (c *StorageGateway) SetLocalConsolePasswordRequest(input *SetLocalConsolePasswordInput) (req *request.Request, output *SetLocalConsolePasswordOutput) {
6194	op := &request.Operation{
6195		Name:       opSetLocalConsolePassword,
6196		HTTPMethod: "POST",
6197		HTTPPath:   "/",
6198	}
6199
6200	if input == nil {
6201		input = &SetLocalConsolePasswordInput{}
6202	}
6203
6204	output = &SetLocalConsolePasswordOutput{}
6205	req = c.newRequest(op, input, output)
6206	return
6207}
6208
6209// SetLocalConsolePassword API operation for AWS Storage Gateway.
6210//
6211// Sets the password for your VM local console. When you log in to the local
6212// console for the first time, you log in to the VM with the default credentials.
6213// We recommend that you set a new password. You don't need to know the default
6214// password to set a new password.
6215//
6216// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6217// with awserr.Error's Code and Message methods to get detailed information about
6218// the error.
6219//
6220// See the AWS API reference guide for AWS Storage Gateway's
6221// API operation SetLocalConsolePassword for usage and error information.
6222//
6223// Returned Error Types:
6224//   * InvalidGatewayRequestException
6225//   An exception occurred because an invalid gateway request was issued to the
6226//   service. For more information, see the error and message fields.
6227//
6228//   * InternalServerError
6229//   An internal server error has occurred during the request. For more information,
6230//   see the error and message fields.
6231//
6232// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetLocalConsolePassword
6233func (c *StorageGateway) SetLocalConsolePassword(input *SetLocalConsolePasswordInput) (*SetLocalConsolePasswordOutput, error) {
6234	req, out := c.SetLocalConsolePasswordRequest(input)
6235	return out, req.Send()
6236}
6237
6238// SetLocalConsolePasswordWithContext is the same as SetLocalConsolePassword with the addition of
6239// the ability to pass a context and additional request options.
6240//
6241// See SetLocalConsolePassword for details on how to use this API operation.
6242//
6243// The context must be non-nil and will be used for request cancellation. If
6244// the context is nil a panic will occur. In the future the SDK may create
6245// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6246// for more information on using Contexts.
6247func (c *StorageGateway) SetLocalConsolePasswordWithContext(ctx aws.Context, input *SetLocalConsolePasswordInput, opts ...request.Option) (*SetLocalConsolePasswordOutput, error) {
6248	req, out := c.SetLocalConsolePasswordRequest(input)
6249	req.SetContext(ctx)
6250	req.ApplyOptions(opts...)
6251	return out, req.Send()
6252}
6253
6254const opSetSMBGuestPassword = "SetSMBGuestPassword"
6255
6256// SetSMBGuestPasswordRequest generates a "aws/request.Request" representing the
6257// client's request for the SetSMBGuestPassword operation. The "output" return
6258// value will be populated with the request's response once the request completes
6259// successfully.
6260//
6261// Use "Send" method on the returned Request to send the API call to the service.
6262// the "output" return value is not valid until after Send returns without error.
6263//
6264// See SetSMBGuestPassword for more information on using the SetSMBGuestPassword
6265// API call, and error handling.
6266//
6267// This method is useful when you want to inject custom logic or configuration
6268// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6269//
6270//
6271//    // Example sending a request using the SetSMBGuestPasswordRequest method.
6272//    req, resp := client.SetSMBGuestPasswordRequest(params)
6273//
6274//    err := req.Send()
6275//    if err == nil { // resp is now filled
6276//        fmt.Println(resp)
6277//    }
6278//
6279// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetSMBGuestPassword
6280func (c *StorageGateway) SetSMBGuestPasswordRequest(input *SetSMBGuestPasswordInput) (req *request.Request, output *SetSMBGuestPasswordOutput) {
6281	op := &request.Operation{
6282		Name:       opSetSMBGuestPassword,
6283		HTTPMethod: "POST",
6284		HTTPPath:   "/",
6285	}
6286
6287	if input == nil {
6288		input = &SetSMBGuestPasswordInput{}
6289	}
6290
6291	output = &SetSMBGuestPasswordOutput{}
6292	req = c.newRequest(op, input, output)
6293	return
6294}
6295
6296// SetSMBGuestPassword API operation for AWS Storage Gateway.
6297//
6298// Sets the password for the guest user smbguest. The smbguest user is the user
6299// when the authentication method for the file share is set to GuestAccess.
6300//
6301// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6302// with awserr.Error's Code and Message methods to get detailed information about
6303// the error.
6304//
6305// See the AWS API reference guide for AWS Storage Gateway's
6306// API operation SetSMBGuestPassword for usage and error information.
6307//
6308// Returned Error Types:
6309//   * InvalidGatewayRequestException
6310//   An exception occurred because an invalid gateway request was issued to the
6311//   service. For more information, see the error and message fields.
6312//
6313//   * InternalServerError
6314//   An internal server error has occurred during the request. For more information,
6315//   see the error and message fields.
6316//
6317// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetSMBGuestPassword
6318func (c *StorageGateway) SetSMBGuestPassword(input *SetSMBGuestPasswordInput) (*SetSMBGuestPasswordOutput, error) {
6319	req, out := c.SetSMBGuestPasswordRequest(input)
6320	return out, req.Send()
6321}
6322
6323// SetSMBGuestPasswordWithContext is the same as SetSMBGuestPassword with the addition of
6324// the ability to pass a context and additional request options.
6325//
6326// See SetSMBGuestPassword for details on how to use this API operation.
6327//
6328// The context must be non-nil and will be used for request cancellation. If
6329// the context is nil a panic will occur. In the future the SDK may create
6330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6331// for more information on using Contexts.
6332func (c *StorageGateway) SetSMBGuestPasswordWithContext(ctx aws.Context, input *SetSMBGuestPasswordInput, opts ...request.Option) (*SetSMBGuestPasswordOutput, error) {
6333	req, out := c.SetSMBGuestPasswordRequest(input)
6334	req.SetContext(ctx)
6335	req.ApplyOptions(opts...)
6336	return out, req.Send()
6337}
6338
6339const opShutdownGateway = "ShutdownGateway"
6340
6341// ShutdownGatewayRequest generates a "aws/request.Request" representing the
6342// client's request for the ShutdownGateway operation. The "output" return
6343// value will be populated with the request's response once the request completes
6344// successfully.
6345//
6346// Use "Send" method on the returned Request to send the API call to the service.
6347// the "output" return value is not valid until after Send returns without error.
6348//
6349// See ShutdownGateway for more information on using the ShutdownGateway
6350// API call, and error handling.
6351//
6352// This method is useful when you want to inject custom logic or configuration
6353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6354//
6355//
6356//    // Example sending a request using the ShutdownGatewayRequest method.
6357//    req, resp := client.ShutdownGatewayRequest(params)
6358//
6359//    err := req.Send()
6360//    if err == nil { // resp is now filled
6361//        fmt.Println(resp)
6362//    }
6363//
6364// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ShutdownGateway
6365func (c *StorageGateway) ShutdownGatewayRequest(input *ShutdownGatewayInput) (req *request.Request, output *ShutdownGatewayOutput) {
6366	op := &request.Operation{
6367		Name:       opShutdownGateway,
6368		HTTPMethod: "POST",
6369		HTTPPath:   "/",
6370	}
6371
6372	if input == nil {
6373		input = &ShutdownGatewayInput{}
6374	}
6375
6376	output = &ShutdownGatewayOutput{}
6377	req = c.newRequest(op, input, output)
6378	return
6379}
6380
6381// ShutdownGateway API operation for AWS Storage Gateway.
6382//
6383// Shuts down a gateway. To specify which gateway to shut down, use the Amazon
6384// Resource Name (ARN) of the gateway in the body of your request.
6385//
6386// The operation shuts down the gateway service component running in the gateway's
6387// virtual machine (VM) and not the host VM.
6388//
6389// If you want to shut down the VM, it is recommended that you first shut down
6390// the gateway component in the VM to avoid unpredictable conditions.
6391//
6392// After the gateway is shutdown, you cannot call any other API except StartGateway,
6393// DescribeGatewayInformation, and ListGateways. For more information, see ActivateGateway.
6394// Your applications cannot read from or write to the gateway's storage volumes,
6395// and there are no snapshots taken.
6396//
6397// When you make a shutdown request, you will get a 200 OK success response
6398// immediately. However, it might take some time for the gateway to shut down.
6399// You can call the DescribeGatewayInformation API to check the status. For
6400// more information, see ActivateGateway.
6401//
6402// If do not intend to use the gateway again, you must delete the gateway (using
6403// DeleteGateway) to no longer pay software charges associated with the gateway.
6404//
6405// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6406// with awserr.Error's Code and Message methods to get detailed information about
6407// the error.
6408//
6409// See the AWS API reference guide for AWS Storage Gateway's
6410// API operation ShutdownGateway for usage and error information.
6411//
6412// Returned Error Types:
6413//   * InvalidGatewayRequestException
6414//   An exception occurred because an invalid gateway request was issued to the
6415//   service. For more information, see the error and message fields.
6416//
6417//   * InternalServerError
6418//   An internal server error has occurred during the request. For more information,
6419//   see the error and message fields.
6420//
6421// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ShutdownGateway
6422func (c *StorageGateway) ShutdownGateway(input *ShutdownGatewayInput) (*ShutdownGatewayOutput, error) {
6423	req, out := c.ShutdownGatewayRequest(input)
6424	return out, req.Send()
6425}
6426
6427// ShutdownGatewayWithContext is the same as ShutdownGateway with the addition of
6428// the ability to pass a context and additional request options.
6429//
6430// See ShutdownGateway for details on how to use this API operation.
6431//
6432// The context must be non-nil and will be used for request cancellation. If
6433// the context is nil a panic will occur. In the future the SDK may create
6434// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6435// for more information on using Contexts.
6436func (c *StorageGateway) ShutdownGatewayWithContext(ctx aws.Context, input *ShutdownGatewayInput, opts ...request.Option) (*ShutdownGatewayOutput, error) {
6437	req, out := c.ShutdownGatewayRequest(input)
6438	req.SetContext(ctx)
6439	req.ApplyOptions(opts...)
6440	return out, req.Send()
6441}
6442
6443const opStartAvailabilityMonitorTest = "StartAvailabilityMonitorTest"
6444
6445// StartAvailabilityMonitorTestRequest generates a "aws/request.Request" representing the
6446// client's request for the StartAvailabilityMonitorTest operation. The "output" return
6447// value will be populated with the request's response once the request completes
6448// successfully.
6449//
6450// Use "Send" method on the returned Request to send the API call to the service.
6451// the "output" return value is not valid until after Send returns without error.
6452//
6453// See StartAvailabilityMonitorTest for more information on using the StartAvailabilityMonitorTest
6454// API call, and error handling.
6455//
6456// This method is useful when you want to inject custom logic or configuration
6457// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6458//
6459//
6460//    // Example sending a request using the StartAvailabilityMonitorTestRequest method.
6461//    req, resp := client.StartAvailabilityMonitorTestRequest(params)
6462//
6463//    err := req.Send()
6464//    if err == nil { // resp is now filled
6465//        fmt.Println(resp)
6466//    }
6467//
6468// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartAvailabilityMonitorTest
6469func (c *StorageGateway) StartAvailabilityMonitorTestRequest(input *StartAvailabilityMonitorTestInput) (req *request.Request, output *StartAvailabilityMonitorTestOutput) {
6470	op := &request.Operation{
6471		Name:       opStartAvailabilityMonitorTest,
6472		HTTPMethod: "POST",
6473		HTTPPath:   "/",
6474	}
6475
6476	if input == nil {
6477		input = &StartAvailabilityMonitorTestInput{}
6478	}
6479
6480	output = &StartAvailabilityMonitorTestOutput{}
6481	req = c.newRequest(op, input, output)
6482	return
6483}
6484
6485// StartAvailabilityMonitorTest API operation for AWS Storage Gateway.
6486//
6487// Start a test that verifies that the specified gateway is configured for High
6488// Availability monitoring in your host environment. This request only initiates
6489// the test and that a successful response only indicates that the test was
6490// started. It doesn't indicate that the test passed. For the status of the
6491// test, invoke the DescribeAvailabilityMonitorTest API.
6492//
6493// Starting this test will cause your gateway to go offline for a brief period.
6494//
6495// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6496// with awserr.Error's Code and Message methods to get detailed information about
6497// the error.
6498//
6499// See the AWS API reference guide for AWS Storage Gateway's
6500// API operation StartAvailabilityMonitorTest for usage and error information.
6501//
6502// Returned Error Types:
6503//   * InvalidGatewayRequestException
6504//   An exception occurred because an invalid gateway request was issued to the
6505//   service. For more information, see the error and message fields.
6506//
6507//   * InternalServerError
6508//   An internal server error has occurred during the request. For more information,
6509//   see the error and message fields.
6510//
6511// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartAvailabilityMonitorTest
6512func (c *StorageGateway) StartAvailabilityMonitorTest(input *StartAvailabilityMonitorTestInput) (*StartAvailabilityMonitorTestOutput, error) {
6513	req, out := c.StartAvailabilityMonitorTestRequest(input)
6514	return out, req.Send()
6515}
6516
6517// StartAvailabilityMonitorTestWithContext is the same as StartAvailabilityMonitorTest with the addition of
6518// the ability to pass a context and additional request options.
6519//
6520// See StartAvailabilityMonitorTest for details on how to use this API operation.
6521//
6522// The context must be non-nil and will be used for request cancellation. If
6523// the context is nil a panic will occur. In the future the SDK may create
6524// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6525// for more information on using Contexts.
6526func (c *StorageGateway) StartAvailabilityMonitorTestWithContext(ctx aws.Context, input *StartAvailabilityMonitorTestInput, opts ...request.Option) (*StartAvailabilityMonitorTestOutput, error) {
6527	req, out := c.StartAvailabilityMonitorTestRequest(input)
6528	req.SetContext(ctx)
6529	req.ApplyOptions(opts...)
6530	return out, req.Send()
6531}
6532
6533const opStartGateway = "StartGateway"
6534
6535// StartGatewayRequest generates a "aws/request.Request" representing the
6536// client's request for the StartGateway operation. The "output" return
6537// value will be populated with the request's response once the request completes
6538// successfully.
6539//
6540// Use "Send" method on the returned Request to send the API call to the service.
6541// the "output" return value is not valid until after Send returns without error.
6542//
6543// See StartGateway for more information on using the StartGateway
6544// API call, and error handling.
6545//
6546// This method is useful when you want to inject custom logic or configuration
6547// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6548//
6549//
6550//    // Example sending a request using the StartGatewayRequest method.
6551//    req, resp := client.StartGatewayRequest(params)
6552//
6553//    err := req.Send()
6554//    if err == nil { // resp is now filled
6555//        fmt.Println(resp)
6556//    }
6557//
6558// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartGateway
6559func (c *StorageGateway) StartGatewayRequest(input *StartGatewayInput) (req *request.Request, output *StartGatewayOutput) {
6560	op := &request.Operation{
6561		Name:       opStartGateway,
6562		HTTPMethod: "POST",
6563		HTTPPath:   "/",
6564	}
6565
6566	if input == nil {
6567		input = &StartGatewayInput{}
6568	}
6569
6570	output = &StartGatewayOutput{}
6571	req = c.newRequest(op, input, output)
6572	return
6573}
6574
6575// StartGateway API operation for AWS Storage Gateway.
6576//
6577// Starts a gateway that you previously shut down (see ShutdownGateway). After
6578// the gateway starts, you can then make other API calls, your applications
6579// can read from or write to the gateway's storage volumes and you will be able
6580// to take snapshot backups.
6581//
6582// When you make a request, you will get a 200 OK success response immediately.
6583// However, it might take some time for the gateway to be ready. You should
6584// call DescribeGatewayInformation and check the status before making any additional
6585// API calls. For more information, see ActivateGateway.
6586//
6587// To specify which gateway to start, use the Amazon Resource Name (ARN) of
6588// the gateway in your request.
6589//
6590// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6591// with awserr.Error's Code and Message methods to get detailed information about
6592// the error.
6593//
6594// See the AWS API reference guide for AWS Storage Gateway's
6595// API operation StartGateway for usage and error information.
6596//
6597// Returned Error Types:
6598//   * InvalidGatewayRequestException
6599//   An exception occurred because an invalid gateway request was issued to the
6600//   service. For more information, see the error and message fields.
6601//
6602//   * InternalServerError
6603//   An internal server error has occurred during the request. For more information,
6604//   see the error and message fields.
6605//
6606// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartGateway
6607func (c *StorageGateway) StartGateway(input *StartGatewayInput) (*StartGatewayOutput, error) {
6608	req, out := c.StartGatewayRequest(input)
6609	return out, req.Send()
6610}
6611
6612// StartGatewayWithContext is the same as StartGateway with the addition of
6613// the ability to pass a context and additional request options.
6614//
6615// See StartGateway for details on how to use this API operation.
6616//
6617// The context must be non-nil and will be used for request cancellation. If
6618// the context is nil a panic will occur. In the future the SDK may create
6619// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6620// for more information on using Contexts.
6621func (c *StorageGateway) StartGatewayWithContext(ctx aws.Context, input *StartGatewayInput, opts ...request.Option) (*StartGatewayOutput, error) {
6622	req, out := c.StartGatewayRequest(input)
6623	req.SetContext(ctx)
6624	req.ApplyOptions(opts...)
6625	return out, req.Send()
6626}
6627
6628const opUpdateAutomaticTapeCreationPolicy = "UpdateAutomaticTapeCreationPolicy"
6629
6630// UpdateAutomaticTapeCreationPolicyRequest generates a "aws/request.Request" representing the
6631// client's request for the UpdateAutomaticTapeCreationPolicy operation. The "output" return
6632// value will be populated with the request's response once the request completes
6633// successfully.
6634//
6635// Use "Send" method on the returned Request to send the API call to the service.
6636// the "output" return value is not valid until after Send returns without error.
6637//
6638// See UpdateAutomaticTapeCreationPolicy for more information on using the UpdateAutomaticTapeCreationPolicy
6639// API call, and error handling.
6640//
6641// This method is useful when you want to inject custom logic or configuration
6642// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6643//
6644//
6645//    // Example sending a request using the UpdateAutomaticTapeCreationPolicyRequest method.
6646//    req, resp := client.UpdateAutomaticTapeCreationPolicyRequest(params)
6647//
6648//    err := req.Send()
6649//    if err == nil { // resp is now filled
6650//        fmt.Println(resp)
6651//    }
6652//
6653// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateAutomaticTapeCreationPolicy
6654func (c *StorageGateway) UpdateAutomaticTapeCreationPolicyRequest(input *UpdateAutomaticTapeCreationPolicyInput) (req *request.Request, output *UpdateAutomaticTapeCreationPolicyOutput) {
6655	op := &request.Operation{
6656		Name:       opUpdateAutomaticTapeCreationPolicy,
6657		HTTPMethod: "POST",
6658		HTTPPath:   "/",
6659	}
6660
6661	if input == nil {
6662		input = &UpdateAutomaticTapeCreationPolicyInput{}
6663	}
6664
6665	output = &UpdateAutomaticTapeCreationPolicyOutput{}
6666	req = c.newRequest(op, input, output)
6667	return
6668}
6669
6670// UpdateAutomaticTapeCreationPolicy API operation for AWS Storage Gateway.
6671//
6672// Updates the automatic tape creation policy of a gateway. Use this to update
6673// the policy with a new set of automatic tape creation rules. This is only
6674// supported for tape gateways.
6675//
6676// By default, there is no automatic tape creation policy.
6677//
6678// A gateway can have only one automatic tape creation policy.
6679//
6680// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6681// with awserr.Error's Code and Message methods to get detailed information about
6682// the error.
6683//
6684// See the AWS API reference guide for AWS Storage Gateway's
6685// API operation UpdateAutomaticTapeCreationPolicy for usage and error information.
6686//
6687// Returned Error Types:
6688//   * InvalidGatewayRequestException
6689//   An exception occurred because an invalid gateway request was issued to the
6690//   service. For more information, see the error and message fields.
6691//
6692//   * InternalServerError
6693//   An internal server error has occurred during the request. For more information,
6694//   see the error and message fields.
6695//
6696// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateAutomaticTapeCreationPolicy
6697func (c *StorageGateway) UpdateAutomaticTapeCreationPolicy(input *UpdateAutomaticTapeCreationPolicyInput) (*UpdateAutomaticTapeCreationPolicyOutput, error) {
6698	req, out := c.UpdateAutomaticTapeCreationPolicyRequest(input)
6699	return out, req.Send()
6700}
6701
6702// UpdateAutomaticTapeCreationPolicyWithContext is the same as UpdateAutomaticTapeCreationPolicy with the addition of
6703// the ability to pass a context and additional request options.
6704//
6705// See UpdateAutomaticTapeCreationPolicy for details on how to use this API operation.
6706//
6707// The context must be non-nil and will be used for request cancellation. If
6708// the context is nil a panic will occur. In the future the SDK may create
6709// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6710// for more information on using Contexts.
6711func (c *StorageGateway) UpdateAutomaticTapeCreationPolicyWithContext(ctx aws.Context, input *UpdateAutomaticTapeCreationPolicyInput, opts ...request.Option) (*UpdateAutomaticTapeCreationPolicyOutput, error) {
6712	req, out := c.UpdateAutomaticTapeCreationPolicyRequest(input)
6713	req.SetContext(ctx)
6714	req.ApplyOptions(opts...)
6715	return out, req.Send()
6716}
6717
6718const opUpdateBandwidthRateLimit = "UpdateBandwidthRateLimit"
6719
6720// UpdateBandwidthRateLimitRequest generates a "aws/request.Request" representing the
6721// client's request for the UpdateBandwidthRateLimit operation. The "output" return
6722// value will be populated with the request's response once the request completes
6723// successfully.
6724//
6725// Use "Send" method on the returned Request to send the API call to the service.
6726// the "output" return value is not valid until after Send returns without error.
6727//
6728// See UpdateBandwidthRateLimit for more information on using the UpdateBandwidthRateLimit
6729// API call, and error handling.
6730//
6731// This method is useful when you want to inject custom logic or configuration
6732// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6733//
6734//
6735//    // Example sending a request using the UpdateBandwidthRateLimitRequest method.
6736//    req, resp := client.UpdateBandwidthRateLimitRequest(params)
6737//
6738//    err := req.Send()
6739//    if err == nil { // resp is now filled
6740//        fmt.Println(resp)
6741//    }
6742//
6743// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimit
6744func (c *StorageGateway) UpdateBandwidthRateLimitRequest(input *UpdateBandwidthRateLimitInput) (req *request.Request, output *UpdateBandwidthRateLimitOutput) {
6745	op := &request.Operation{
6746		Name:       opUpdateBandwidthRateLimit,
6747		HTTPMethod: "POST",
6748		HTTPPath:   "/",
6749	}
6750
6751	if input == nil {
6752		input = &UpdateBandwidthRateLimitInput{}
6753	}
6754
6755	output = &UpdateBandwidthRateLimitOutput{}
6756	req = c.newRequest(op, input, output)
6757	return
6758}
6759
6760// UpdateBandwidthRateLimit API operation for AWS Storage Gateway.
6761//
6762// Updates the bandwidth rate limits of a gateway. You can update both the upload
6763// and download bandwidth rate limit or specify only one of the two. If you
6764// don't set a bandwidth rate limit, the existing rate limit remains. This operation
6765// is supported for the stored volume, cached volume, and tape gateway types.
6766//
6767// By default, a gateway's bandwidth rate limits are not set. If you don't set
6768// any limit, the gateway does not have any limitations on its bandwidth usage
6769// and could potentially use the maximum available bandwidth.
6770//
6771// To specify which gateway to update, use the Amazon Resource Name (ARN) of
6772// the gateway in your request.
6773//
6774// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6775// with awserr.Error's Code and Message methods to get detailed information about
6776// the error.
6777//
6778// See the AWS API reference guide for AWS Storage Gateway's
6779// API operation UpdateBandwidthRateLimit for usage and error information.
6780//
6781// Returned Error Types:
6782//   * InvalidGatewayRequestException
6783//   An exception occurred because an invalid gateway request was issued to the
6784//   service. For more information, see the error and message fields.
6785//
6786//   * InternalServerError
6787//   An internal server error has occurred during the request. For more information,
6788//   see the error and message fields.
6789//
6790// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimit
6791func (c *StorageGateway) UpdateBandwidthRateLimit(input *UpdateBandwidthRateLimitInput) (*UpdateBandwidthRateLimitOutput, error) {
6792	req, out := c.UpdateBandwidthRateLimitRequest(input)
6793	return out, req.Send()
6794}
6795
6796// UpdateBandwidthRateLimitWithContext is the same as UpdateBandwidthRateLimit with the addition of
6797// the ability to pass a context and additional request options.
6798//
6799// See UpdateBandwidthRateLimit for details on how to use this API operation.
6800//
6801// The context must be non-nil and will be used for request cancellation. If
6802// the context is nil a panic will occur. In the future the SDK may create
6803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6804// for more information on using Contexts.
6805func (c *StorageGateway) UpdateBandwidthRateLimitWithContext(ctx aws.Context, input *UpdateBandwidthRateLimitInput, opts ...request.Option) (*UpdateBandwidthRateLimitOutput, error) {
6806	req, out := c.UpdateBandwidthRateLimitRequest(input)
6807	req.SetContext(ctx)
6808	req.ApplyOptions(opts...)
6809	return out, req.Send()
6810}
6811
6812const opUpdateChapCredentials = "UpdateChapCredentials"
6813
6814// UpdateChapCredentialsRequest generates a "aws/request.Request" representing the
6815// client's request for the UpdateChapCredentials operation. The "output" return
6816// value will be populated with the request's response once the request completes
6817// successfully.
6818//
6819// Use "Send" method on the returned Request to send the API call to the service.
6820// the "output" return value is not valid until after Send returns without error.
6821//
6822// See UpdateChapCredentials for more information on using the UpdateChapCredentials
6823// API call, and error handling.
6824//
6825// This method is useful when you want to inject custom logic or configuration
6826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6827//
6828//
6829//    // Example sending a request using the UpdateChapCredentialsRequest method.
6830//    req, resp := client.UpdateChapCredentialsRequest(params)
6831//
6832//    err := req.Send()
6833//    if err == nil { // resp is now filled
6834//        fmt.Println(resp)
6835//    }
6836//
6837// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateChapCredentials
6838func (c *StorageGateway) UpdateChapCredentialsRequest(input *UpdateChapCredentialsInput) (req *request.Request, output *UpdateChapCredentialsOutput) {
6839	op := &request.Operation{
6840		Name:       opUpdateChapCredentials,
6841		HTTPMethod: "POST",
6842		HTTPPath:   "/",
6843	}
6844
6845	if input == nil {
6846		input = &UpdateChapCredentialsInput{}
6847	}
6848
6849	output = &UpdateChapCredentialsOutput{}
6850	req = c.newRequest(op, input, output)
6851	return
6852}
6853
6854// UpdateChapCredentials API operation for AWS Storage Gateway.
6855//
6856// Updates the Challenge-Handshake Authentication Protocol (CHAP) credentials
6857// for a specified iSCSI target. By default, a gateway does not have CHAP enabled;
6858// however, for added security, you might use it. This operation is supported
6859// in the volume and tape gateway types.
6860//
6861// When you update CHAP credentials, all existing connections on the target
6862// are closed and initiators must reconnect with the new credentials.
6863//
6864// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6865// with awserr.Error's Code and Message methods to get detailed information about
6866// the error.
6867//
6868// See the AWS API reference guide for AWS Storage Gateway's
6869// API operation UpdateChapCredentials for usage and error information.
6870//
6871// Returned Error Types:
6872//   * InvalidGatewayRequestException
6873//   An exception occurred because an invalid gateway request was issued to the
6874//   service. For more information, see the error and message fields.
6875//
6876//   * InternalServerError
6877//   An internal server error has occurred during the request. For more information,
6878//   see the error and message fields.
6879//
6880// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateChapCredentials
6881func (c *StorageGateway) UpdateChapCredentials(input *UpdateChapCredentialsInput) (*UpdateChapCredentialsOutput, error) {
6882	req, out := c.UpdateChapCredentialsRequest(input)
6883	return out, req.Send()
6884}
6885
6886// UpdateChapCredentialsWithContext is the same as UpdateChapCredentials with the addition of
6887// the ability to pass a context and additional request options.
6888//
6889// See UpdateChapCredentials for details on how to use this API operation.
6890//
6891// The context must be non-nil and will be used for request cancellation. If
6892// the context is nil a panic will occur. In the future the SDK may create
6893// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6894// for more information on using Contexts.
6895func (c *StorageGateway) UpdateChapCredentialsWithContext(ctx aws.Context, input *UpdateChapCredentialsInput, opts ...request.Option) (*UpdateChapCredentialsOutput, error) {
6896	req, out := c.UpdateChapCredentialsRequest(input)
6897	req.SetContext(ctx)
6898	req.ApplyOptions(opts...)
6899	return out, req.Send()
6900}
6901
6902const opUpdateGatewayInformation = "UpdateGatewayInformation"
6903
6904// UpdateGatewayInformationRequest generates a "aws/request.Request" representing the
6905// client's request for the UpdateGatewayInformation operation. The "output" return
6906// value will be populated with the request's response once the request completes
6907// successfully.
6908//
6909// Use "Send" method on the returned Request to send the API call to the service.
6910// the "output" return value is not valid until after Send returns without error.
6911//
6912// See UpdateGatewayInformation for more information on using the UpdateGatewayInformation
6913// API call, and error handling.
6914//
6915// This method is useful when you want to inject custom logic or configuration
6916// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6917//
6918//
6919//    // Example sending a request using the UpdateGatewayInformationRequest method.
6920//    req, resp := client.UpdateGatewayInformationRequest(params)
6921//
6922//    err := req.Send()
6923//    if err == nil { // resp is now filled
6924//        fmt.Println(resp)
6925//    }
6926//
6927// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewayInformation
6928func (c *StorageGateway) UpdateGatewayInformationRequest(input *UpdateGatewayInformationInput) (req *request.Request, output *UpdateGatewayInformationOutput) {
6929	op := &request.Operation{
6930		Name:       opUpdateGatewayInformation,
6931		HTTPMethod: "POST",
6932		HTTPPath:   "/",
6933	}
6934
6935	if input == nil {
6936		input = &UpdateGatewayInformationInput{}
6937	}
6938
6939	output = &UpdateGatewayInformationOutput{}
6940	req = c.newRequest(op, input, output)
6941	return
6942}
6943
6944// UpdateGatewayInformation API operation for AWS Storage Gateway.
6945//
6946// Updates a gateway's metadata, which includes the gateway's name and time
6947// zone. To specify which gateway to update, use the Amazon Resource Name (ARN)
6948// of the gateway in your request.
6949//
6950// For Gateways activated after September 2, 2015, the gateway's ARN contains
6951// the gateway ID rather than the gateway name. However, changing the name of
6952// the gateway has no effect on the gateway's ARN.
6953//
6954// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6955// with awserr.Error's Code and Message methods to get detailed information about
6956// the error.
6957//
6958// See the AWS API reference guide for AWS Storage Gateway's
6959// API operation UpdateGatewayInformation for usage and error information.
6960//
6961// Returned Error Types:
6962//   * InvalidGatewayRequestException
6963//   An exception occurred because an invalid gateway request was issued to the
6964//   service. For more information, see the error and message fields.
6965//
6966//   * InternalServerError
6967//   An internal server error has occurred during the request. For more information,
6968//   see the error and message fields.
6969//
6970// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewayInformation
6971func (c *StorageGateway) UpdateGatewayInformation(input *UpdateGatewayInformationInput) (*UpdateGatewayInformationOutput, error) {
6972	req, out := c.UpdateGatewayInformationRequest(input)
6973	return out, req.Send()
6974}
6975
6976// UpdateGatewayInformationWithContext is the same as UpdateGatewayInformation with the addition of
6977// the ability to pass a context and additional request options.
6978//
6979// See UpdateGatewayInformation for details on how to use this API operation.
6980//
6981// The context must be non-nil and will be used for request cancellation. If
6982// the context is nil a panic will occur. In the future the SDK may create
6983// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6984// for more information on using Contexts.
6985func (c *StorageGateway) UpdateGatewayInformationWithContext(ctx aws.Context, input *UpdateGatewayInformationInput, opts ...request.Option) (*UpdateGatewayInformationOutput, error) {
6986	req, out := c.UpdateGatewayInformationRequest(input)
6987	req.SetContext(ctx)
6988	req.ApplyOptions(opts...)
6989	return out, req.Send()
6990}
6991
6992const opUpdateGatewaySoftwareNow = "UpdateGatewaySoftwareNow"
6993
6994// UpdateGatewaySoftwareNowRequest generates a "aws/request.Request" representing the
6995// client's request for the UpdateGatewaySoftwareNow operation. The "output" return
6996// value will be populated with the request's response once the request completes
6997// successfully.
6998//
6999// Use "Send" method on the returned Request to send the API call to the service.
7000// the "output" return value is not valid until after Send returns without error.
7001//
7002// See UpdateGatewaySoftwareNow for more information on using the UpdateGatewaySoftwareNow
7003// API call, and error handling.
7004//
7005// This method is useful when you want to inject custom logic or configuration
7006// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7007//
7008//
7009//    // Example sending a request using the UpdateGatewaySoftwareNowRequest method.
7010//    req, resp := client.UpdateGatewaySoftwareNowRequest(params)
7011//
7012//    err := req.Send()
7013//    if err == nil { // resp is now filled
7014//        fmt.Println(resp)
7015//    }
7016//
7017// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewaySoftwareNow
7018func (c *StorageGateway) UpdateGatewaySoftwareNowRequest(input *UpdateGatewaySoftwareNowInput) (req *request.Request, output *UpdateGatewaySoftwareNowOutput) {
7019	op := &request.Operation{
7020		Name:       opUpdateGatewaySoftwareNow,
7021		HTTPMethod: "POST",
7022		HTTPPath:   "/",
7023	}
7024
7025	if input == nil {
7026		input = &UpdateGatewaySoftwareNowInput{}
7027	}
7028
7029	output = &UpdateGatewaySoftwareNowOutput{}
7030	req = c.newRequest(op, input, output)
7031	return
7032}
7033
7034// UpdateGatewaySoftwareNow API operation for AWS Storage Gateway.
7035//
7036// Updates the gateway virtual machine (VM) software. The request immediately
7037// triggers the software update.
7038//
7039// When you make this request, you get a 200 OK success response immediately.
7040// However, it might take some time for the update to complete. You can call
7041// DescribeGatewayInformation to verify the gateway is in the STATE_RUNNING
7042// state.
7043//
7044// A software update forces a system restart of your gateway. You can minimize
7045// the chance of any disruption to your applications by increasing your iSCSI
7046// Initiators' timeouts. For more information about increasing iSCSI Initiator
7047// timeouts for Windows and Linux, see Customizing your Windows iSCSI settings
7048// (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorWindowsClient.html#CustomizeWindowsiSCSISettings)
7049// and Customizing your Linux iSCSI settings (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings),
7050// respectively.
7051//
7052// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7053// with awserr.Error's Code and Message methods to get detailed information about
7054// the error.
7055//
7056// See the AWS API reference guide for AWS Storage Gateway's
7057// API operation UpdateGatewaySoftwareNow for usage and error information.
7058//
7059// Returned Error Types:
7060//   * InvalidGatewayRequestException
7061//   An exception occurred because an invalid gateway request was issued to the
7062//   service. For more information, see the error and message fields.
7063//
7064//   * InternalServerError
7065//   An internal server error has occurred during the request. For more information,
7066//   see the error and message fields.
7067//
7068// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewaySoftwareNow
7069func (c *StorageGateway) UpdateGatewaySoftwareNow(input *UpdateGatewaySoftwareNowInput) (*UpdateGatewaySoftwareNowOutput, error) {
7070	req, out := c.UpdateGatewaySoftwareNowRequest(input)
7071	return out, req.Send()
7072}
7073
7074// UpdateGatewaySoftwareNowWithContext is the same as UpdateGatewaySoftwareNow with the addition of
7075// the ability to pass a context and additional request options.
7076//
7077// See UpdateGatewaySoftwareNow for details on how to use this API operation.
7078//
7079// The context must be non-nil and will be used for request cancellation. If
7080// the context is nil a panic will occur. In the future the SDK may create
7081// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7082// for more information on using Contexts.
7083func (c *StorageGateway) UpdateGatewaySoftwareNowWithContext(ctx aws.Context, input *UpdateGatewaySoftwareNowInput, opts ...request.Option) (*UpdateGatewaySoftwareNowOutput, error) {
7084	req, out := c.UpdateGatewaySoftwareNowRequest(input)
7085	req.SetContext(ctx)
7086	req.ApplyOptions(opts...)
7087	return out, req.Send()
7088}
7089
7090const opUpdateMaintenanceStartTime = "UpdateMaintenanceStartTime"
7091
7092// UpdateMaintenanceStartTimeRequest generates a "aws/request.Request" representing the
7093// client's request for the UpdateMaintenanceStartTime operation. The "output" return
7094// value will be populated with the request's response once the request completes
7095// successfully.
7096//
7097// Use "Send" method on the returned Request to send the API call to the service.
7098// the "output" return value is not valid until after Send returns without error.
7099//
7100// See UpdateMaintenanceStartTime for more information on using the UpdateMaintenanceStartTime
7101// API call, and error handling.
7102//
7103// This method is useful when you want to inject custom logic or configuration
7104// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7105//
7106//
7107//    // Example sending a request using the UpdateMaintenanceStartTimeRequest method.
7108//    req, resp := client.UpdateMaintenanceStartTimeRequest(params)
7109//
7110//    err := req.Send()
7111//    if err == nil { // resp is now filled
7112//        fmt.Println(resp)
7113//    }
7114//
7115// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateMaintenanceStartTime
7116func (c *StorageGateway) UpdateMaintenanceStartTimeRequest(input *UpdateMaintenanceStartTimeInput) (req *request.Request, output *UpdateMaintenanceStartTimeOutput) {
7117	op := &request.Operation{
7118		Name:       opUpdateMaintenanceStartTime,
7119		HTTPMethod: "POST",
7120		HTTPPath:   "/",
7121	}
7122
7123	if input == nil {
7124		input = &UpdateMaintenanceStartTimeInput{}
7125	}
7126
7127	output = &UpdateMaintenanceStartTimeOutput{}
7128	req = c.newRequest(op, input, output)
7129	return
7130}
7131
7132// UpdateMaintenanceStartTime API operation for AWS Storage Gateway.
7133//
7134// Updates a gateway's weekly maintenance start time information, including
7135// day and time of the week. The maintenance time is the time in your gateway's
7136// time zone.
7137//
7138// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7139// with awserr.Error's Code and Message methods to get detailed information about
7140// the error.
7141//
7142// See the AWS API reference guide for AWS Storage Gateway's
7143// API operation UpdateMaintenanceStartTime for usage and error information.
7144//
7145// Returned Error Types:
7146//   * InvalidGatewayRequestException
7147//   An exception occurred because an invalid gateway request was issued to the
7148//   service. For more information, see the error and message fields.
7149//
7150//   * InternalServerError
7151//   An internal server error has occurred during the request. For more information,
7152//   see the error and message fields.
7153//
7154// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateMaintenanceStartTime
7155func (c *StorageGateway) UpdateMaintenanceStartTime(input *UpdateMaintenanceStartTimeInput) (*UpdateMaintenanceStartTimeOutput, error) {
7156	req, out := c.UpdateMaintenanceStartTimeRequest(input)
7157	return out, req.Send()
7158}
7159
7160// UpdateMaintenanceStartTimeWithContext is the same as UpdateMaintenanceStartTime with the addition of
7161// the ability to pass a context and additional request options.
7162//
7163// See UpdateMaintenanceStartTime for details on how to use this API operation.
7164//
7165// The context must be non-nil and will be used for request cancellation. If
7166// the context is nil a panic will occur. In the future the SDK may create
7167// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7168// for more information on using Contexts.
7169func (c *StorageGateway) UpdateMaintenanceStartTimeWithContext(ctx aws.Context, input *UpdateMaintenanceStartTimeInput, opts ...request.Option) (*UpdateMaintenanceStartTimeOutput, error) {
7170	req, out := c.UpdateMaintenanceStartTimeRequest(input)
7171	req.SetContext(ctx)
7172	req.ApplyOptions(opts...)
7173	return out, req.Send()
7174}
7175
7176const opUpdateNFSFileShare = "UpdateNFSFileShare"
7177
7178// UpdateNFSFileShareRequest generates a "aws/request.Request" representing the
7179// client's request for the UpdateNFSFileShare operation. The "output" return
7180// value will be populated with the request's response once the request completes
7181// successfully.
7182//
7183// Use "Send" method on the returned Request to send the API call to the service.
7184// the "output" return value is not valid until after Send returns without error.
7185//
7186// See UpdateNFSFileShare for more information on using the UpdateNFSFileShare
7187// API call, and error handling.
7188//
7189// This method is useful when you want to inject custom logic or configuration
7190// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7191//
7192//
7193//    // Example sending a request using the UpdateNFSFileShareRequest method.
7194//    req, resp := client.UpdateNFSFileShareRequest(params)
7195//
7196//    err := req.Send()
7197//    if err == nil { // resp is now filled
7198//        fmt.Println(resp)
7199//    }
7200//
7201// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateNFSFileShare
7202func (c *StorageGateway) UpdateNFSFileShareRequest(input *UpdateNFSFileShareInput) (req *request.Request, output *UpdateNFSFileShareOutput) {
7203	op := &request.Operation{
7204		Name:       opUpdateNFSFileShare,
7205		HTTPMethod: "POST",
7206		HTTPPath:   "/",
7207	}
7208
7209	if input == nil {
7210		input = &UpdateNFSFileShareInput{}
7211	}
7212
7213	output = &UpdateNFSFileShareOutput{}
7214	req = c.newRequest(op, input, output)
7215	return
7216}
7217
7218// UpdateNFSFileShare API operation for AWS Storage Gateway.
7219//
7220// Updates a Network File System (NFS) file share. This operation is only supported
7221// in the file gateway type.
7222//
7223// To leave a file share field unchanged, set the corresponding input field
7224// to null.
7225//
7226// Updates the following file share setting:
7227//
7228//    * Default storage class for your S3 bucket
7229//
7230//    * Metadata defaults for your S3 bucket
7231//
7232//    * Allowed NFS clients for your file share
7233//
7234//    * Squash settings
7235//
7236//    * Write status of your file share
7237//
7238// To leave a file share field unchanged, set the corresponding input field
7239// to null. This operation is only supported in file gateways.
7240//
7241// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7242// with awserr.Error's Code and Message methods to get detailed information about
7243// the error.
7244//
7245// See the AWS API reference guide for AWS Storage Gateway's
7246// API operation UpdateNFSFileShare for usage and error information.
7247//
7248// Returned Error Types:
7249//   * InvalidGatewayRequestException
7250//   An exception occurred because an invalid gateway request was issued to the
7251//   service. For more information, see the error and message fields.
7252//
7253//   * InternalServerError
7254//   An internal server error has occurred during the request. For more information,
7255//   see the error and message fields.
7256//
7257// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateNFSFileShare
7258func (c *StorageGateway) UpdateNFSFileShare(input *UpdateNFSFileShareInput) (*UpdateNFSFileShareOutput, error) {
7259	req, out := c.UpdateNFSFileShareRequest(input)
7260	return out, req.Send()
7261}
7262
7263// UpdateNFSFileShareWithContext is the same as UpdateNFSFileShare with the addition of
7264// the ability to pass a context and additional request options.
7265//
7266// See UpdateNFSFileShare for details on how to use this API operation.
7267//
7268// The context must be non-nil and will be used for request cancellation. If
7269// the context is nil a panic will occur. In the future the SDK may create
7270// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7271// for more information on using Contexts.
7272func (c *StorageGateway) UpdateNFSFileShareWithContext(ctx aws.Context, input *UpdateNFSFileShareInput, opts ...request.Option) (*UpdateNFSFileShareOutput, error) {
7273	req, out := c.UpdateNFSFileShareRequest(input)
7274	req.SetContext(ctx)
7275	req.ApplyOptions(opts...)
7276	return out, req.Send()
7277}
7278
7279const opUpdateSMBFileShare = "UpdateSMBFileShare"
7280
7281// UpdateSMBFileShareRequest generates a "aws/request.Request" representing the
7282// client's request for the UpdateSMBFileShare operation. The "output" return
7283// value will be populated with the request's response once the request completes
7284// successfully.
7285//
7286// Use "Send" method on the returned Request to send the API call to the service.
7287// the "output" return value is not valid until after Send returns without error.
7288//
7289// See UpdateSMBFileShare for more information on using the UpdateSMBFileShare
7290// API call, and error handling.
7291//
7292// This method is useful when you want to inject custom logic or configuration
7293// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7294//
7295//
7296//    // Example sending a request using the UpdateSMBFileShareRequest method.
7297//    req, resp := client.UpdateSMBFileShareRequest(params)
7298//
7299//    err := req.Send()
7300//    if err == nil { // resp is now filled
7301//        fmt.Println(resp)
7302//    }
7303//
7304// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShare
7305func (c *StorageGateway) UpdateSMBFileShareRequest(input *UpdateSMBFileShareInput) (req *request.Request, output *UpdateSMBFileShareOutput) {
7306	op := &request.Operation{
7307		Name:       opUpdateSMBFileShare,
7308		HTTPMethod: "POST",
7309		HTTPPath:   "/",
7310	}
7311
7312	if input == nil {
7313		input = &UpdateSMBFileShareInput{}
7314	}
7315
7316	output = &UpdateSMBFileShareOutput{}
7317	req = c.newRequest(op, input, output)
7318	return
7319}
7320
7321// UpdateSMBFileShare API operation for AWS Storage Gateway.
7322//
7323// Updates a Server Message Block (SMB) file share.
7324//
7325// To leave a file share field unchanged, set the corresponding input field
7326// to null. This operation is only supported for file gateways.
7327//
7328// File gateways require AWS Security Token Service (AWS STS) to be activated
7329// to enable you to create a file share. Make sure that AWS STS is activated
7330// in the AWS Region you are creating your file gateway in. If AWS STS is not
7331// activated in this AWS Region, activate it. For information about how to activate
7332// 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)
7333// in the AWS Identity and Access Management User Guide.
7334//
7335// File gateways don't support creating hard or symbolic links on a file share.
7336//
7337// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7338// with awserr.Error's Code and Message methods to get detailed information about
7339// the error.
7340//
7341// See the AWS API reference guide for AWS Storage Gateway's
7342// API operation UpdateSMBFileShare for usage and error information.
7343//
7344// Returned Error Types:
7345//   * InvalidGatewayRequestException
7346//   An exception occurred because an invalid gateway request was issued to the
7347//   service. For more information, see the error and message fields.
7348//
7349//   * InternalServerError
7350//   An internal server error has occurred during the request. For more information,
7351//   see the error and message fields.
7352//
7353// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShare
7354func (c *StorageGateway) UpdateSMBFileShare(input *UpdateSMBFileShareInput) (*UpdateSMBFileShareOutput, error) {
7355	req, out := c.UpdateSMBFileShareRequest(input)
7356	return out, req.Send()
7357}
7358
7359// UpdateSMBFileShareWithContext is the same as UpdateSMBFileShare with the addition of
7360// the ability to pass a context and additional request options.
7361//
7362// See UpdateSMBFileShare for details on how to use this API operation.
7363//
7364// The context must be non-nil and will be used for request cancellation. If
7365// the context is nil a panic will occur. In the future the SDK may create
7366// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7367// for more information on using Contexts.
7368func (c *StorageGateway) UpdateSMBFileShareWithContext(ctx aws.Context, input *UpdateSMBFileShareInput, opts ...request.Option) (*UpdateSMBFileShareOutput, error) {
7369	req, out := c.UpdateSMBFileShareRequest(input)
7370	req.SetContext(ctx)
7371	req.ApplyOptions(opts...)
7372	return out, req.Send()
7373}
7374
7375const opUpdateSMBSecurityStrategy = "UpdateSMBSecurityStrategy"
7376
7377// UpdateSMBSecurityStrategyRequest generates a "aws/request.Request" representing the
7378// client's request for the UpdateSMBSecurityStrategy operation. The "output" return
7379// value will be populated with the request's response once the request completes
7380// successfully.
7381//
7382// Use "Send" method on the returned Request to send the API call to the service.
7383// the "output" return value is not valid until after Send returns without error.
7384//
7385// See UpdateSMBSecurityStrategy for more information on using the UpdateSMBSecurityStrategy
7386// API call, and error handling.
7387//
7388// This method is useful when you want to inject custom logic or configuration
7389// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7390//
7391//
7392//    // Example sending a request using the UpdateSMBSecurityStrategyRequest method.
7393//    req, resp := client.UpdateSMBSecurityStrategyRequest(params)
7394//
7395//    err := req.Send()
7396//    if err == nil { // resp is now filled
7397//        fmt.Println(resp)
7398//    }
7399//
7400// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBSecurityStrategy
7401func (c *StorageGateway) UpdateSMBSecurityStrategyRequest(input *UpdateSMBSecurityStrategyInput) (req *request.Request, output *UpdateSMBSecurityStrategyOutput) {
7402	op := &request.Operation{
7403		Name:       opUpdateSMBSecurityStrategy,
7404		HTTPMethod: "POST",
7405		HTTPPath:   "/",
7406	}
7407
7408	if input == nil {
7409		input = &UpdateSMBSecurityStrategyInput{}
7410	}
7411
7412	output = &UpdateSMBSecurityStrategyOutput{}
7413	req = c.newRequest(op, input, output)
7414	return
7415}
7416
7417// UpdateSMBSecurityStrategy API operation for AWS Storage Gateway.
7418//
7419// Updates the SMB security strategy on a file gateway. This action is only
7420// supported in file gateways.
7421//
7422// This API is called Security level in the User Guide.
7423//
7424// A higher security level can affect performance of the gateway.
7425//
7426// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7427// with awserr.Error's Code and Message methods to get detailed information about
7428// the error.
7429//
7430// See the AWS API reference guide for AWS Storage Gateway's
7431// API operation UpdateSMBSecurityStrategy for usage and error information.
7432//
7433// Returned Error Types:
7434//   * InvalidGatewayRequestException
7435//   An exception occurred because an invalid gateway request was issued to the
7436//   service. For more information, see the error and message fields.
7437//
7438//   * InternalServerError
7439//   An internal server error has occurred during the request. For more information,
7440//   see the error and message fields.
7441//
7442// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBSecurityStrategy
7443func (c *StorageGateway) UpdateSMBSecurityStrategy(input *UpdateSMBSecurityStrategyInput) (*UpdateSMBSecurityStrategyOutput, error) {
7444	req, out := c.UpdateSMBSecurityStrategyRequest(input)
7445	return out, req.Send()
7446}
7447
7448// UpdateSMBSecurityStrategyWithContext is the same as UpdateSMBSecurityStrategy with the addition of
7449// the ability to pass a context and additional request options.
7450//
7451// See UpdateSMBSecurityStrategy for details on how to use this API operation.
7452//
7453// The context must be non-nil and will be used for request cancellation. If
7454// the context is nil a panic will occur. In the future the SDK may create
7455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7456// for more information on using Contexts.
7457func (c *StorageGateway) UpdateSMBSecurityStrategyWithContext(ctx aws.Context, input *UpdateSMBSecurityStrategyInput, opts ...request.Option) (*UpdateSMBSecurityStrategyOutput, error) {
7458	req, out := c.UpdateSMBSecurityStrategyRequest(input)
7459	req.SetContext(ctx)
7460	req.ApplyOptions(opts...)
7461	return out, req.Send()
7462}
7463
7464const opUpdateSnapshotSchedule = "UpdateSnapshotSchedule"
7465
7466// UpdateSnapshotScheduleRequest generates a "aws/request.Request" representing the
7467// client's request for the UpdateSnapshotSchedule operation. The "output" return
7468// value will be populated with the request's response once the request completes
7469// successfully.
7470//
7471// Use "Send" method on the returned Request to send the API call to the service.
7472// the "output" return value is not valid until after Send returns without error.
7473//
7474// See UpdateSnapshotSchedule for more information on using the UpdateSnapshotSchedule
7475// API call, and error handling.
7476//
7477// This method is useful when you want to inject custom logic or configuration
7478// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7479//
7480//
7481//    // Example sending a request using the UpdateSnapshotScheduleRequest method.
7482//    req, resp := client.UpdateSnapshotScheduleRequest(params)
7483//
7484//    err := req.Send()
7485//    if err == nil { // resp is now filled
7486//        fmt.Println(resp)
7487//    }
7488//
7489// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSnapshotSchedule
7490func (c *StorageGateway) UpdateSnapshotScheduleRequest(input *UpdateSnapshotScheduleInput) (req *request.Request, output *UpdateSnapshotScheduleOutput) {
7491	op := &request.Operation{
7492		Name:       opUpdateSnapshotSchedule,
7493		HTTPMethod: "POST",
7494		HTTPPath:   "/",
7495	}
7496
7497	if input == nil {
7498		input = &UpdateSnapshotScheduleInput{}
7499	}
7500
7501	output = &UpdateSnapshotScheduleOutput{}
7502	req = c.newRequest(op, input, output)
7503	return
7504}
7505
7506// UpdateSnapshotSchedule API operation for AWS Storage Gateway.
7507//
7508// Updates a snapshot schedule configured for a gateway volume. This operation
7509// is only supported in the cached volume and stored volume gateway types.
7510//
7511// The default snapshot schedule for volume is once every 24 hours, starting
7512// at the creation time of the volume. You can use this API to change the snapshot
7513// schedule configured for the volume.
7514//
7515// In the request you must identify the gateway volume whose snapshot schedule
7516// you want to update, and the schedule information, including when you want
7517// the snapshot to begin on a day and the frequency (in hours) of snapshots.
7518//
7519// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7520// with awserr.Error's Code and Message methods to get detailed information about
7521// the error.
7522//
7523// See the AWS API reference guide for AWS Storage Gateway's
7524// API operation UpdateSnapshotSchedule for usage and error information.
7525//
7526// Returned Error Types:
7527//   * InvalidGatewayRequestException
7528//   An exception occurred because an invalid gateway request was issued to the
7529//   service. For more information, see the error and message fields.
7530//
7531//   * InternalServerError
7532//   An internal server error has occurred during the request. For more information,
7533//   see the error and message fields.
7534//
7535// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSnapshotSchedule
7536func (c *StorageGateway) UpdateSnapshotSchedule(input *UpdateSnapshotScheduleInput) (*UpdateSnapshotScheduleOutput, error) {
7537	req, out := c.UpdateSnapshotScheduleRequest(input)
7538	return out, req.Send()
7539}
7540
7541// UpdateSnapshotScheduleWithContext is the same as UpdateSnapshotSchedule with the addition of
7542// the ability to pass a context and additional request options.
7543//
7544// See UpdateSnapshotSchedule for details on how to use this API operation.
7545//
7546// The context must be non-nil and will be used for request cancellation. If
7547// the context is nil a panic will occur. In the future the SDK may create
7548// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7549// for more information on using Contexts.
7550func (c *StorageGateway) UpdateSnapshotScheduleWithContext(ctx aws.Context, input *UpdateSnapshotScheduleInput, opts ...request.Option) (*UpdateSnapshotScheduleOutput, error) {
7551	req, out := c.UpdateSnapshotScheduleRequest(input)
7552	req.SetContext(ctx)
7553	req.ApplyOptions(opts...)
7554	return out, req.Send()
7555}
7556
7557const opUpdateVTLDeviceType = "UpdateVTLDeviceType"
7558
7559// UpdateVTLDeviceTypeRequest generates a "aws/request.Request" representing the
7560// client's request for the UpdateVTLDeviceType operation. The "output" return
7561// value will be populated with the request's response once the request completes
7562// successfully.
7563//
7564// Use "Send" method on the returned Request to send the API call to the service.
7565// the "output" return value is not valid until after Send returns without error.
7566//
7567// See UpdateVTLDeviceType for more information on using the UpdateVTLDeviceType
7568// API call, and error handling.
7569//
7570// This method is useful when you want to inject custom logic or configuration
7571// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7572//
7573//
7574//    // Example sending a request using the UpdateVTLDeviceTypeRequest method.
7575//    req, resp := client.UpdateVTLDeviceTypeRequest(params)
7576//
7577//    err := req.Send()
7578//    if err == nil { // resp is now filled
7579//        fmt.Println(resp)
7580//    }
7581//
7582// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateVTLDeviceType
7583func (c *StorageGateway) UpdateVTLDeviceTypeRequest(input *UpdateVTLDeviceTypeInput) (req *request.Request, output *UpdateVTLDeviceTypeOutput) {
7584	op := &request.Operation{
7585		Name:       opUpdateVTLDeviceType,
7586		HTTPMethod: "POST",
7587		HTTPPath:   "/",
7588	}
7589
7590	if input == nil {
7591		input = &UpdateVTLDeviceTypeInput{}
7592	}
7593
7594	output = &UpdateVTLDeviceTypeOutput{}
7595	req = c.newRequest(op, input, output)
7596	return
7597}
7598
7599// UpdateVTLDeviceType API operation for AWS Storage Gateway.
7600//
7601// Updates the type of medium changer in a tape gateway. When you activate a
7602// tape gateway, you select a medium changer type for the tape gateway. This
7603// operation enables you to select a different type of medium changer after
7604// a tape gateway is activated. This operation is only supported in the tape
7605// gateway type.
7606//
7607// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7608// with awserr.Error's Code and Message methods to get detailed information about
7609// the error.
7610//
7611// See the AWS API reference guide for AWS Storage Gateway's
7612// API operation UpdateVTLDeviceType for usage and error information.
7613//
7614// Returned Error Types:
7615//   * InvalidGatewayRequestException
7616//   An exception occurred because an invalid gateway request was issued to the
7617//   service. For more information, see the error and message fields.
7618//
7619//   * InternalServerError
7620//   An internal server error has occurred during the request. For more information,
7621//   see the error and message fields.
7622//
7623// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateVTLDeviceType
7624func (c *StorageGateway) UpdateVTLDeviceType(input *UpdateVTLDeviceTypeInput) (*UpdateVTLDeviceTypeOutput, error) {
7625	req, out := c.UpdateVTLDeviceTypeRequest(input)
7626	return out, req.Send()
7627}
7628
7629// UpdateVTLDeviceTypeWithContext is the same as UpdateVTLDeviceType with the addition of
7630// the ability to pass a context and additional request options.
7631//
7632// See UpdateVTLDeviceType for details on how to use this API operation.
7633//
7634// The context must be non-nil and will be used for request cancellation. If
7635// the context is nil a panic will occur. In the future the SDK may create
7636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7637// for more information on using Contexts.
7638func (c *StorageGateway) UpdateVTLDeviceTypeWithContext(ctx aws.Context, input *UpdateVTLDeviceTypeInput, opts ...request.Option) (*UpdateVTLDeviceTypeOutput, error) {
7639	req, out := c.UpdateVTLDeviceTypeRequest(input)
7640	req.SetContext(ctx)
7641	req.ApplyOptions(opts...)
7642	return out, req.Send()
7643}
7644
7645// A JSON object containing one or more of the following fields:
7646//
7647//    * ActivateGatewayInput$ActivationKey
7648//
7649//    * ActivateGatewayInput$GatewayName
7650//
7651//    * ActivateGatewayInput$GatewayRegion
7652//
7653//    * ActivateGatewayInput$GatewayTimezone
7654//
7655//    * ActivateGatewayInput$GatewayType
7656//
7657//    * ActivateGatewayInput$MediumChangerType
7658//
7659//    * ActivateGatewayInput$TapeDriveType
7660type ActivateGatewayInput struct {
7661	_ struct{} `type:"structure"`
7662
7663	// Your gateway activation key. You can obtain the activation key by sending
7664	// an HTTP GET request with redirects enabled to the gateway IP address (port
7665	// 80). The redirect URL returned in the response provides you the activation
7666	// key for your gateway in the query string parameter activationKey. It may
7667	// also include other activation-related parameters, however, these are merely
7668	// defaults -- the arguments you pass to the ActivateGateway API call determine
7669	// the actual configuration of your gateway.
7670	//
7671	// For more information, see Getting activation key (https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html)
7672	// in the AWS Storage Gateway User Guide.
7673	//
7674	// ActivationKey is a required field
7675	ActivationKey *string `min:"1" type:"string" required:"true"`
7676
7677	// The name you configured for your gateway.
7678	//
7679	// GatewayName is a required field
7680	GatewayName *string `min:"2" type:"string" required:"true"`
7681
7682	// A value that indicates the AWS Region where you want to store your data.
7683	// The gateway AWS Region specified must be the same AWS Region as the AWS Region
7684	// in your Host header in the request. For more information about available
7685	// AWS Regions and endpoints for AWS Storage Gateway, see AWS Storage Gateway
7686	// endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/sg.html)
7687	// in the AWS General Reference.
7688	//
7689	// Valid Values: See AWS Storage Gateway endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/sg.html)
7690	// in the AWS General Reference.
7691	//
7692	// GatewayRegion is a required field
7693	GatewayRegion *string `min:"1" type:"string" required:"true"`
7694
7695	// A value that indicates the time zone you want to set for the gateway. The
7696	// time zone is of the format "GMT-hr:mm" or "GMT+hr:mm". For example, GMT-4:00
7697	// indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is
7698	// 2 hours ahead of GMT. The time zone is used, for example, for scheduling
7699	// snapshots and your gateway's maintenance schedule.
7700	//
7701	// GatewayTimezone is a required field
7702	GatewayTimezone *string `min:"3" type:"string" required:"true"`
7703
7704	// A value that defines the type of gateway to activate. The type specified
7705	// is critical to all later functions of the gateway and cannot be changed after
7706	// activation. The default value is CACHED.
7707	//
7708	// Valid Values: STORED | CACHED | VTL | FILE_S3
7709	GatewayType *string `min:"2" type:"string"`
7710
7711	// The value that indicates the type of medium changer to use for tape gateway.
7712	// This field is optional.
7713	//
7714	// Valid Values: STK-L700 | AWS-Gateway-VTL
7715	MediumChangerType *string `min:"2" type:"string"`
7716
7717	// A list of up to 50 tags that you can assign to the gateway. Each tag is a
7718	// key-value pair.
7719	//
7720	// Valid characters for key and value are letters, spaces, and numbers that
7721	// can be represented in UTF-8 format, and the following special characters:
7722	// + - = . _ : / @. The maximum length of a tag's key is 128 characters, and
7723	// the maximum length for a tag's value is 256 characters.
7724	Tags []*Tag `type:"list"`
7725
7726	// The value that indicates the type of tape drive to use for tape gateway.
7727	// This field is optional.
7728	//
7729	// Valid Values: IBM-ULT3580-TD5
7730	TapeDriveType *string `min:"2" type:"string"`
7731}
7732
7733// String returns the string representation
7734func (s ActivateGatewayInput) String() string {
7735	return awsutil.Prettify(s)
7736}
7737
7738// GoString returns the string representation
7739func (s ActivateGatewayInput) GoString() string {
7740	return s.String()
7741}
7742
7743// Validate inspects the fields of the type to determine if they are valid.
7744func (s *ActivateGatewayInput) Validate() error {
7745	invalidParams := request.ErrInvalidParams{Context: "ActivateGatewayInput"}
7746	if s.ActivationKey == nil {
7747		invalidParams.Add(request.NewErrParamRequired("ActivationKey"))
7748	}
7749	if s.ActivationKey != nil && len(*s.ActivationKey) < 1 {
7750		invalidParams.Add(request.NewErrParamMinLen("ActivationKey", 1))
7751	}
7752	if s.GatewayName == nil {
7753		invalidParams.Add(request.NewErrParamRequired("GatewayName"))
7754	}
7755	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
7756		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
7757	}
7758	if s.GatewayRegion == nil {
7759		invalidParams.Add(request.NewErrParamRequired("GatewayRegion"))
7760	}
7761	if s.GatewayRegion != nil && len(*s.GatewayRegion) < 1 {
7762		invalidParams.Add(request.NewErrParamMinLen("GatewayRegion", 1))
7763	}
7764	if s.GatewayTimezone == nil {
7765		invalidParams.Add(request.NewErrParamRequired("GatewayTimezone"))
7766	}
7767	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
7768		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
7769	}
7770	if s.GatewayType != nil && len(*s.GatewayType) < 2 {
7771		invalidParams.Add(request.NewErrParamMinLen("GatewayType", 2))
7772	}
7773	if s.MediumChangerType != nil && len(*s.MediumChangerType) < 2 {
7774		invalidParams.Add(request.NewErrParamMinLen("MediumChangerType", 2))
7775	}
7776	if s.TapeDriveType != nil && len(*s.TapeDriveType) < 2 {
7777		invalidParams.Add(request.NewErrParamMinLen("TapeDriveType", 2))
7778	}
7779	if s.Tags != nil {
7780		for i, v := range s.Tags {
7781			if v == nil {
7782				continue
7783			}
7784			if err := v.Validate(); err != nil {
7785				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7786			}
7787		}
7788	}
7789
7790	if invalidParams.Len() > 0 {
7791		return invalidParams
7792	}
7793	return nil
7794}
7795
7796// SetActivationKey sets the ActivationKey field's value.
7797func (s *ActivateGatewayInput) SetActivationKey(v string) *ActivateGatewayInput {
7798	s.ActivationKey = &v
7799	return s
7800}
7801
7802// SetGatewayName sets the GatewayName field's value.
7803func (s *ActivateGatewayInput) SetGatewayName(v string) *ActivateGatewayInput {
7804	s.GatewayName = &v
7805	return s
7806}
7807
7808// SetGatewayRegion sets the GatewayRegion field's value.
7809func (s *ActivateGatewayInput) SetGatewayRegion(v string) *ActivateGatewayInput {
7810	s.GatewayRegion = &v
7811	return s
7812}
7813
7814// SetGatewayTimezone sets the GatewayTimezone field's value.
7815func (s *ActivateGatewayInput) SetGatewayTimezone(v string) *ActivateGatewayInput {
7816	s.GatewayTimezone = &v
7817	return s
7818}
7819
7820// SetGatewayType sets the GatewayType field's value.
7821func (s *ActivateGatewayInput) SetGatewayType(v string) *ActivateGatewayInput {
7822	s.GatewayType = &v
7823	return s
7824}
7825
7826// SetMediumChangerType sets the MediumChangerType field's value.
7827func (s *ActivateGatewayInput) SetMediumChangerType(v string) *ActivateGatewayInput {
7828	s.MediumChangerType = &v
7829	return s
7830}
7831
7832// SetTags sets the Tags field's value.
7833func (s *ActivateGatewayInput) SetTags(v []*Tag) *ActivateGatewayInput {
7834	s.Tags = v
7835	return s
7836}
7837
7838// SetTapeDriveType sets the TapeDriveType field's value.
7839func (s *ActivateGatewayInput) SetTapeDriveType(v string) *ActivateGatewayInput {
7840	s.TapeDriveType = &v
7841	return s
7842}
7843
7844// AWS Storage Gateway returns the Amazon Resource Name (ARN) of the activated
7845// gateway. It is a string made of information such as your account, gateway
7846// name, and AWS Region. This ARN is used to reference the gateway in other
7847// API operations as well as resource-based authorization.
7848//
7849// For gateways activated prior to September 02, 2015, the gateway ARN contains
7850// the gateway name rather than the gateway ID. Changing the name of the gateway
7851// has no effect on the gateway ARN.
7852type ActivateGatewayOutput struct {
7853	_ struct{} `type:"structure"`
7854
7855	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
7856	// to return a list of gateways for your account and AWS Region.
7857	GatewayARN *string `min:"50" type:"string"`
7858}
7859
7860// String returns the string representation
7861func (s ActivateGatewayOutput) String() string {
7862	return awsutil.Prettify(s)
7863}
7864
7865// GoString returns the string representation
7866func (s ActivateGatewayOutput) GoString() string {
7867	return s.String()
7868}
7869
7870// SetGatewayARN sets the GatewayARN field's value.
7871func (s *ActivateGatewayOutput) SetGatewayARN(v string) *ActivateGatewayOutput {
7872	s.GatewayARN = &v
7873	return s
7874}
7875
7876type AddCacheInput struct {
7877	_ struct{} `type:"structure"`
7878
7879	// An array of strings that identify disks that are to be configured as working
7880	// storage. Each string has a minimum length of 1 and maximum length of 300.
7881	// You can get the disk IDs from the ListLocalDisks API.
7882	//
7883	// DiskIds is a required field
7884	DiskIds []*string `type:"list" required:"true"`
7885
7886	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
7887	// to return a list of gateways for your account and AWS Region.
7888	//
7889	// GatewayARN is a required field
7890	GatewayARN *string `min:"50" type:"string" required:"true"`
7891}
7892
7893// String returns the string representation
7894func (s AddCacheInput) String() string {
7895	return awsutil.Prettify(s)
7896}
7897
7898// GoString returns the string representation
7899func (s AddCacheInput) GoString() string {
7900	return s.String()
7901}
7902
7903// Validate inspects the fields of the type to determine if they are valid.
7904func (s *AddCacheInput) Validate() error {
7905	invalidParams := request.ErrInvalidParams{Context: "AddCacheInput"}
7906	if s.DiskIds == nil {
7907		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
7908	}
7909	if s.GatewayARN == nil {
7910		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
7911	}
7912	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
7913		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
7914	}
7915
7916	if invalidParams.Len() > 0 {
7917		return invalidParams
7918	}
7919	return nil
7920}
7921
7922// SetDiskIds sets the DiskIds field's value.
7923func (s *AddCacheInput) SetDiskIds(v []*string) *AddCacheInput {
7924	s.DiskIds = v
7925	return s
7926}
7927
7928// SetGatewayARN sets the GatewayARN field's value.
7929func (s *AddCacheInput) SetGatewayARN(v string) *AddCacheInput {
7930	s.GatewayARN = &v
7931	return s
7932}
7933
7934type AddCacheOutput struct {
7935	_ struct{} `type:"structure"`
7936
7937	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
7938	// to return a list of gateways for your account and AWS Region.
7939	GatewayARN *string `min:"50" type:"string"`
7940}
7941
7942// String returns the string representation
7943func (s AddCacheOutput) String() string {
7944	return awsutil.Prettify(s)
7945}
7946
7947// GoString returns the string representation
7948func (s AddCacheOutput) GoString() string {
7949	return s.String()
7950}
7951
7952// SetGatewayARN sets the GatewayARN field's value.
7953func (s *AddCacheOutput) SetGatewayARN(v string) *AddCacheOutput {
7954	s.GatewayARN = &v
7955	return s
7956}
7957
7958// AddTagsToResourceInput
7959type AddTagsToResourceInput struct {
7960	_ struct{} `type:"structure"`
7961
7962	// The Amazon Resource Name (ARN) of the resource you want to add tags to.
7963	//
7964	// ResourceARN is a required field
7965	ResourceARN *string `min:"50" type:"string" required:"true"`
7966
7967	// The key-value pair that represents the tag you want to add to the resource.
7968	// The value can be an empty string.
7969	//
7970	// Valid characters for key and value are letters, spaces, and numbers representable
7971	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
7972	// maximum length of a tag's key is 128 characters, and the maximum length for
7973	// a tag's value is 256.
7974	//
7975	// Tags is a required field
7976	Tags []*Tag `type:"list" required:"true"`
7977}
7978
7979// String returns the string representation
7980func (s AddTagsToResourceInput) String() string {
7981	return awsutil.Prettify(s)
7982}
7983
7984// GoString returns the string representation
7985func (s AddTagsToResourceInput) GoString() string {
7986	return s.String()
7987}
7988
7989// Validate inspects the fields of the type to determine if they are valid.
7990func (s *AddTagsToResourceInput) Validate() error {
7991	invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"}
7992	if s.ResourceARN == nil {
7993		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
7994	}
7995	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
7996		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
7997	}
7998	if s.Tags == nil {
7999		invalidParams.Add(request.NewErrParamRequired("Tags"))
8000	}
8001	if s.Tags != nil {
8002		for i, v := range s.Tags {
8003			if v == nil {
8004				continue
8005			}
8006			if err := v.Validate(); err != nil {
8007				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8008			}
8009		}
8010	}
8011
8012	if invalidParams.Len() > 0 {
8013		return invalidParams
8014	}
8015	return nil
8016}
8017
8018// SetResourceARN sets the ResourceARN field's value.
8019func (s *AddTagsToResourceInput) SetResourceARN(v string) *AddTagsToResourceInput {
8020	s.ResourceARN = &v
8021	return s
8022}
8023
8024// SetTags sets the Tags field's value.
8025func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput {
8026	s.Tags = v
8027	return s
8028}
8029
8030// AddTagsToResourceOutput
8031type AddTagsToResourceOutput struct {
8032	_ struct{} `type:"structure"`
8033
8034	// The Amazon Resource Name (ARN) of the resource you want to add tags to.
8035	ResourceARN *string `min:"50" type:"string"`
8036}
8037
8038// String returns the string representation
8039func (s AddTagsToResourceOutput) String() string {
8040	return awsutil.Prettify(s)
8041}
8042
8043// GoString returns the string representation
8044func (s AddTagsToResourceOutput) GoString() string {
8045	return s.String()
8046}
8047
8048// SetResourceARN sets the ResourceARN field's value.
8049func (s *AddTagsToResourceOutput) SetResourceARN(v string) *AddTagsToResourceOutput {
8050	s.ResourceARN = &v
8051	return s
8052}
8053
8054type AddUploadBufferInput struct {
8055	_ struct{} `type:"structure"`
8056
8057	// An array of strings that identify disks that are to be configured as working
8058	// storage. Each string has a minimum length of 1 and maximum length of 300.
8059	// You can get the disk IDs from the ListLocalDisks API.
8060	//
8061	// DiskIds is a required field
8062	DiskIds []*string `type:"list" required:"true"`
8063
8064	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8065	// to return a list of gateways for your account and AWS Region.
8066	//
8067	// GatewayARN is a required field
8068	GatewayARN *string `min:"50" type:"string" required:"true"`
8069}
8070
8071// String returns the string representation
8072func (s AddUploadBufferInput) String() string {
8073	return awsutil.Prettify(s)
8074}
8075
8076// GoString returns the string representation
8077func (s AddUploadBufferInput) GoString() string {
8078	return s.String()
8079}
8080
8081// Validate inspects the fields of the type to determine if they are valid.
8082func (s *AddUploadBufferInput) Validate() error {
8083	invalidParams := request.ErrInvalidParams{Context: "AddUploadBufferInput"}
8084	if s.DiskIds == nil {
8085		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
8086	}
8087	if s.GatewayARN == nil {
8088		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8089	}
8090	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8091		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8092	}
8093
8094	if invalidParams.Len() > 0 {
8095		return invalidParams
8096	}
8097	return nil
8098}
8099
8100// SetDiskIds sets the DiskIds field's value.
8101func (s *AddUploadBufferInput) SetDiskIds(v []*string) *AddUploadBufferInput {
8102	s.DiskIds = v
8103	return s
8104}
8105
8106// SetGatewayARN sets the GatewayARN field's value.
8107func (s *AddUploadBufferInput) SetGatewayARN(v string) *AddUploadBufferInput {
8108	s.GatewayARN = &v
8109	return s
8110}
8111
8112type AddUploadBufferOutput struct {
8113	_ struct{} `type:"structure"`
8114
8115	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8116	// to return a list of gateways for your account and AWS Region.
8117	GatewayARN *string `min:"50" type:"string"`
8118}
8119
8120// String returns the string representation
8121func (s AddUploadBufferOutput) String() string {
8122	return awsutil.Prettify(s)
8123}
8124
8125// GoString returns the string representation
8126func (s AddUploadBufferOutput) GoString() string {
8127	return s.String()
8128}
8129
8130// SetGatewayARN sets the GatewayARN field's value.
8131func (s *AddUploadBufferOutput) SetGatewayARN(v string) *AddUploadBufferOutput {
8132	s.GatewayARN = &v
8133	return s
8134}
8135
8136// A JSON object containing one or more of the following fields:
8137//
8138//    * AddWorkingStorageInput$DiskIds
8139type AddWorkingStorageInput struct {
8140	_ struct{} `type:"structure"`
8141
8142	// An array of strings that identify disks that are to be configured as working
8143	// storage. Each string has a minimum length of 1 and maximum length of 300.
8144	// You can get the disk IDs from the ListLocalDisks API.
8145	//
8146	// DiskIds is a required field
8147	DiskIds []*string `type:"list" required:"true"`
8148
8149	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8150	// to return a list of gateways for your account and AWS Region.
8151	//
8152	// GatewayARN is a required field
8153	GatewayARN *string `min:"50" type:"string" required:"true"`
8154}
8155
8156// String returns the string representation
8157func (s AddWorkingStorageInput) String() string {
8158	return awsutil.Prettify(s)
8159}
8160
8161// GoString returns the string representation
8162func (s AddWorkingStorageInput) GoString() string {
8163	return s.String()
8164}
8165
8166// Validate inspects the fields of the type to determine if they are valid.
8167func (s *AddWorkingStorageInput) Validate() error {
8168	invalidParams := request.ErrInvalidParams{Context: "AddWorkingStorageInput"}
8169	if s.DiskIds == nil {
8170		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
8171	}
8172	if s.GatewayARN == nil {
8173		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8174	}
8175	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8176		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8177	}
8178
8179	if invalidParams.Len() > 0 {
8180		return invalidParams
8181	}
8182	return nil
8183}
8184
8185// SetDiskIds sets the DiskIds field's value.
8186func (s *AddWorkingStorageInput) SetDiskIds(v []*string) *AddWorkingStorageInput {
8187	s.DiskIds = v
8188	return s
8189}
8190
8191// SetGatewayARN sets the GatewayARN field's value.
8192func (s *AddWorkingStorageInput) SetGatewayARN(v string) *AddWorkingStorageInput {
8193	s.GatewayARN = &v
8194	return s
8195}
8196
8197// A JSON object containing the Amazon Resource Name (ARN) of the gateway for
8198// which working storage was configured.
8199type AddWorkingStorageOutput struct {
8200	_ struct{} `type:"structure"`
8201
8202	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8203	// to return a list of gateways for your account and AWS Region.
8204	GatewayARN *string `min:"50" type:"string"`
8205}
8206
8207// String returns the string representation
8208func (s AddWorkingStorageOutput) String() string {
8209	return awsutil.Prettify(s)
8210}
8211
8212// GoString returns the string representation
8213func (s AddWorkingStorageOutput) GoString() string {
8214	return s.String()
8215}
8216
8217// SetGatewayARN sets the GatewayARN field's value.
8218func (s *AddWorkingStorageOutput) SetGatewayARN(v string) *AddWorkingStorageOutput {
8219	s.GatewayARN = &v
8220	return s
8221}
8222
8223type AssignTapePoolInput struct {
8224	_ struct{} `type:"structure"`
8225
8226	// The ID of the pool that you want to add your tape to for archiving. The tape
8227	// in this pool is archived in the S3 storage class that is associated with
8228	// the pool. When you use your backup application to eject the tape, the tape
8229	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
8230	// Archive) that corresponds to the pool.
8231	//
8232	// Valid Values: GLACIER | DEEP_ARCHIVE
8233	//
8234	// PoolId is a required field
8235	PoolId *string `min:"1" type:"string" required:"true"`
8236
8237	// The unique Amazon Resource Name (ARN) of the virtual tape that you want to
8238	// add to the tape pool.
8239	//
8240	// TapeARN is a required field
8241	TapeARN *string `min:"50" type:"string" required:"true"`
8242}
8243
8244// String returns the string representation
8245func (s AssignTapePoolInput) String() string {
8246	return awsutil.Prettify(s)
8247}
8248
8249// GoString returns the string representation
8250func (s AssignTapePoolInput) GoString() string {
8251	return s.String()
8252}
8253
8254// Validate inspects the fields of the type to determine if they are valid.
8255func (s *AssignTapePoolInput) Validate() error {
8256	invalidParams := request.ErrInvalidParams{Context: "AssignTapePoolInput"}
8257	if s.PoolId == nil {
8258		invalidParams.Add(request.NewErrParamRequired("PoolId"))
8259	}
8260	if s.PoolId != nil && len(*s.PoolId) < 1 {
8261		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
8262	}
8263	if s.TapeARN == nil {
8264		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
8265	}
8266	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
8267		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
8268	}
8269
8270	if invalidParams.Len() > 0 {
8271		return invalidParams
8272	}
8273	return nil
8274}
8275
8276// SetPoolId sets the PoolId field's value.
8277func (s *AssignTapePoolInput) SetPoolId(v string) *AssignTapePoolInput {
8278	s.PoolId = &v
8279	return s
8280}
8281
8282// SetTapeARN sets the TapeARN field's value.
8283func (s *AssignTapePoolInput) SetTapeARN(v string) *AssignTapePoolInput {
8284	s.TapeARN = &v
8285	return s
8286}
8287
8288type AssignTapePoolOutput struct {
8289	_ struct{} `type:"structure"`
8290
8291	// The unique Amazon Resource Names (ARN) of the virtual tape that was added
8292	// to the tape pool.
8293	TapeARN *string `min:"50" type:"string"`
8294}
8295
8296// String returns the string representation
8297func (s AssignTapePoolOutput) String() string {
8298	return awsutil.Prettify(s)
8299}
8300
8301// GoString returns the string representation
8302func (s AssignTapePoolOutput) GoString() string {
8303	return s.String()
8304}
8305
8306// SetTapeARN sets the TapeARN field's value.
8307func (s *AssignTapePoolOutput) SetTapeARN(v string) *AssignTapePoolOutput {
8308	s.TapeARN = &v
8309	return s
8310}
8311
8312// AttachVolumeInput
8313type AttachVolumeInput struct {
8314	_ struct{} `type:"structure"`
8315
8316	// The unique device ID or other distinguishing data that identifies the local
8317	// disk used to create the volume. This value is only required when you are
8318	// attaching a stored volume.
8319	DiskId *string `min:"1" type:"string"`
8320
8321	// The Amazon Resource Name (ARN) of the gateway that you want to attach the
8322	// volume to.
8323	//
8324	// GatewayARN is a required field
8325	GatewayARN *string `min:"50" type:"string" required:"true"`
8326
8327	// The network interface of the gateway on which to expose the iSCSI target.
8328	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
8329	// list of the network interfaces available on a gateway.
8330	//
8331	// Valid Values: A valid IP address.
8332	//
8333	// NetworkInterfaceId is a required field
8334	NetworkInterfaceId *string `type:"string" required:"true"`
8335
8336	// The name of the iSCSI target used by an initiator to connect to a volume
8337	// and used as a suffix for the target ARN. For example, specifying TargetName
8338	// 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.
8339	// The target name must be unique across all volumes on a gateway.
8340	//
8341	// If you don't specify a value, Storage Gateway uses the value that was previously
8342	// used for this volume as the new target name.
8343	TargetName *string `min:"1" type:"string"`
8344
8345	// The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.
8346	//
8347	// VolumeARN is a required field
8348	VolumeARN *string `min:"50" type:"string" required:"true"`
8349}
8350
8351// String returns the string representation
8352func (s AttachVolumeInput) String() string {
8353	return awsutil.Prettify(s)
8354}
8355
8356// GoString returns the string representation
8357func (s AttachVolumeInput) GoString() string {
8358	return s.String()
8359}
8360
8361// Validate inspects the fields of the type to determine if they are valid.
8362func (s *AttachVolumeInput) Validate() error {
8363	invalidParams := request.ErrInvalidParams{Context: "AttachVolumeInput"}
8364	if s.DiskId != nil && len(*s.DiskId) < 1 {
8365		invalidParams.Add(request.NewErrParamMinLen("DiskId", 1))
8366	}
8367	if s.GatewayARN == nil {
8368		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8369	}
8370	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8371		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8372	}
8373	if s.NetworkInterfaceId == nil {
8374		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
8375	}
8376	if s.TargetName != nil && len(*s.TargetName) < 1 {
8377		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
8378	}
8379	if s.VolumeARN == nil {
8380		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
8381	}
8382	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
8383		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
8384	}
8385
8386	if invalidParams.Len() > 0 {
8387		return invalidParams
8388	}
8389	return nil
8390}
8391
8392// SetDiskId sets the DiskId field's value.
8393func (s *AttachVolumeInput) SetDiskId(v string) *AttachVolumeInput {
8394	s.DiskId = &v
8395	return s
8396}
8397
8398// SetGatewayARN sets the GatewayARN field's value.
8399func (s *AttachVolumeInput) SetGatewayARN(v string) *AttachVolumeInput {
8400	s.GatewayARN = &v
8401	return s
8402}
8403
8404// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
8405func (s *AttachVolumeInput) SetNetworkInterfaceId(v string) *AttachVolumeInput {
8406	s.NetworkInterfaceId = &v
8407	return s
8408}
8409
8410// SetTargetName sets the TargetName field's value.
8411func (s *AttachVolumeInput) SetTargetName(v string) *AttachVolumeInput {
8412	s.TargetName = &v
8413	return s
8414}
8415
8416// SetVolumeARN sets the VolumeARN field's value.
8417func (s *AttachVolumeInput) SetVolumeARN(v string) *AttachVolumeInput {
8418	s.VolumeARN = &v
8419	return s
8420}
8421
8422// AttachVolumeOutput
8423type AttachVolumeOutput struct {
8424	_ struct{} `type:"structure"`
8425
8426	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
8427	// name for the initiator that was used to connect to the target.
8428	TargetARN *string `min:"50" type:"string"`
8429
8430	// The Amazon Resource Name (ARN) of the volume that was attached to the gateway.
8431	VolumeARN *string `min:"50" type:"string"`
8432}
8433
8434// String returns the string representation
8435func (s AttachVolumeOutput) String() string {
8436	return awsutil.Prettify(s)
8437}
8438
8439// GoString returns the string representation
8440func (s AttachVolumeOutput) GoString() string {
8441	return s.String()
8442}
8443
8444// SetTargetARN sets the TargetARN field's value.
8445func (s *AttachVolumeOutput) SetTargetARN(v string) *AttachVolumeOutput {
8446	s.TargetARN = &v
8447	return s
8448}
8449
8450// SetVolumeARN sets the VolumeARN field's value.
8451func (s *AttachVolumeOutput) SetVolumeARN(v string) *AttachVolumeOutput {
8452	s.VolumeARN = &v
8453	return s
8454}
8455
8456// Information about the gateway's automatic tape creation policies, including
8457// the automatic tape creation rules and the gateway that is using the policies.
8458type AutomaticTapeCreationPolicyInfo struct {
8459	_ struct{} `type:"structure"`
8460
8461	// An automatic tape creation policy consists of a list of automatic tape creation
8462	// rules. This returns the rules that determine when and how to automatically
8463	// create new tapes.
8464	AutomaticTapeCreationRules []*AutomaticTapeCreationRule `min:"1" type:"list"`
8465
8466	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8467	// to return a list of gateways for your account and AWS Region.
8468	GatewayARN *string `min:"50" type:"string"`
8469}
8470
8471// String returns the string representation
8472func (s AutomaticTapeCreationPolicyInfo) String() string {
8473	return awsutil.Prettify(s)
8474}
8475
8476// GoString returns the string representation
8477func (s AutomaticTapeCreationPolicyInfo) GoString() string {
8478	return s.String()
8479}
8480
8481// SetAutomaticTapeCreationRules sets the AutomaticTapeCreationRules field's value.
8482func (s *AutomaticTapeCreationPolicyInfo) SetAutomaticTapeCreationRules(v []*AutomaticTapeCreationRule) *AutomaticTapeCreationPolicyInfo {
8483	s.AutomaticTapeCreationRules = v
8484	return s
8485}
8486
8487// SetGatewayARN sets the GatewayARN field's value.
8488func (s *AutomaticTapeCreationPolicyInfo) SetGatewayARN(v string) *AutomaticTapeCreationPolicyInfo {
8489	s.GatewayARN = &v
8490	return s
8491}
8492
8493// An automatic tape creation policy consists of automatic tape creation rules
8494// where each rule defines when and how to create new tapes.
8495type AutomaticTapeCreationRule struct {
8496	_ struct{} `type:"structure"`
8497
8498	// The minimum number of available virtual tapes that the gateway maintains
8499	// at all times. If the number of tapes on the gateway goes below this value,
8500	// the gateway creates as many new tapes as are needed to have MinimumNumTapes
8501	// on the gateway.
8502	//
8503	// MinimumNumTapes is a required field
8504	MinimumNumTapes *int64 `min:"1" type:"integer" required:"true"`
8505
8506	// The ID of the pool that you want to add your tape to for archiving. The tape
8507	// in this pool is archived in the Amazon S3 storage class that is associated
8508	// with the pool. When you use your backup application to eject the tape, the
8509	// tape is archived directly into the storage class (S3 Glacier or S3 Glacier
8510	// Deep Archive) that corresponds to the pool.
8511	//
8512	// Valid Values: GLACIER | DEEP_ARCHIVE
8513	//
8514	// PoolId is a required field
8515	PoolId *string `min:"1" type:"string" required:"true"`
8516
8517	// A prefix that you append to the barcode of the virtual tape that you are
8518	// creating. This prefix makes the barcode unique.
8519	//
8520	// The prefix must be 1-4 characters in length and must be one of the uppercase
8521	// letters from A to Z.
8522	//
8523	// TapeBarcodePrefix is a required field
8524	TapeBarcodePrefix *string `min:"1" type:"string" required:"true"`
8525
8526	// The size, in bytes, of the virtual tape capacity.
8527	//
8528	// TapeSizeInBytes is a required field
8529	TapeSizeInBytes *int64 `type:"long" required:"true"`
8530}
8531
8532// String returns the string representation
8533func (s AutomaticTapeCreationRule) String() string {
8534	return awsutil.Prettify(s)
8535}
8536
8537// GoString returns the string representation
8538func (s AutomaticTapeCreationRule) GoString() string {
8539	return s.String()
8540}
8541
8542// Validate inspects the fields of the type to determine if they are valid.
8543func (s *AutomaticTapeCreationRule) Validate() error {
8544	invalidParams := request.ErrInvalidParams{Context: "AutomaticTapeCreationRule"}
8545	if s.MinimumNumTapes == nil {
8546		invalidParams.Add(request.NewErrParamRequired("MinimumNumTapes"))
8547	}
8548	if s.MinimumNumTapes != nil && *s.MinimumNumTapes < 1 {
8549		invalidParams.Add(request.NewErrParamMinValue("MinimumNumTapes", 1))
8550	}
8551	if s.PoolId == nil {
8552		invalidParams.Add(request.NewErrParamRequired("PoolId"))
8553	}
8554	if s.PoolId != nil && len(*s.PoolId) < 1 {
8555		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
8556	}
8557	if s.TapeBarcodePrefix == nil {
8558		invalidParams.Add(request.NewErrParamRequired("TapeBarcodePrefix"))
8559	}
8560	if s.TapeBarcodePrefix != nil && len(*s.TapeBarcodePrefix) < 1 {
8561		invalidParams.Add(request.NewErrParamMinLen("TapeBarcodePrefix", 1))
8562	}
8563	if s.TapeSizeInBytes == nil {
8564		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
8565	}
8566
8567	if invalidParams.Len() > 0 {
8568		return invalidParams
8569	}
8570	return nil
8571}
8572
8573// SetMinimumNumTapes sets the MinimumNumTapes field's value.
8574func (s *AutomaticTapeCreationRule) SetMinimumNumTapes(v int64) *AutomaticTapeCreationRule {
8575	s.MinimumNumTapes = &v
8576	return s
8577}
8578
8579// SetPoolId sets the PoolId field's value.
8580func (s *AutomaticTapeCreationRule) SetPoolId(v string) *AutomaticTapeCreationRule {
8581	s.PoolId = &v
8582	return s
8583}
8584
8585// SetTapeBarcodePrefix sets the TapeBarcodePrefix field's value.
8586func (s *AutomaticTapeCreationRule) SetTapeBarcodePrefix(v string) *AutomaticTapeCreationRule {
8587	s.TapeBarcodePrefix = &v
8588	return s
8589}
8590
8591// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
8592func (s *AutomaticTapeCreationRule) SetTapeSizeInBytes(v int64) *AutomaticTapeCreationRule {
8593	s.TapeSizeInBytes = &v
8594	return s
8595}
8596
8597// Lists refresh cache information.
8598type CacheAttributes struct {
8599	_ struct{} `type:"structure"`
8600
8601	// Refreshes a file share's cache by using Time To Live (TTL). TTL is the length
8602	// of time since the last refresh after which access to the directory would
8603	// cause the file gateway to first refresh that directory's contents from the
8604	// Amazon S3 bucket. The TTL duration is in seconds.
8605	//
8606	// Valid Values: 300 to 2,592,000 seconds (5 minutes to 30 days)
8607	CacheStaleTimeoutInSeconds *int64 `type:"integer"`
8608}
8609
8610// String returns the string representation
8611func (s CacheAttributes) String() string {
8612	return awsutil.Prettify(s)
8613}
8614
8615// GoString returns the string representation
8616func (s CacheAttributes) GoString() string {
8617	return s.String()
8618}
8619
8620// SetCacheStaleTimeoutInSeconds sets the CacheStaleTimeoutInSeconds field's value.
8621func (s *CacheAttributes) SetCacheStaleTimeoutInSeconds(v int64) *CacheAttributes {
8622	s.CacheStaleTimeoutInSeconds = &v
8623	return s
8624}
8625
8626// Describes an iSCSI cached volume.
8627type CachediSCSIVolume struct {
8628	_ struct{} `type:"structure"`
8629
8630	// The date the volume was created. Volumes created prior to March 28, 2017
8631	// don’t have this time stamp.
8632	CreatedDate *time.Time `type:"timestamp"`
8633
8634	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
8635	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
8636	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
8637	KMSKey *string `min:"7" type:"string"`
8638
8639	// If the cached volume was created from a snapshot, this field contains the
8640	// snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
8641	SourceSnapshotId *string `type:"string"`
8642
8643	// The name of the iSCSI target used by an initiator to connect to a volume
8644	// and used as a suffix for the target ARN. For example, specifying TargetName
8645	// 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.
8646	// The target name must be unique across all volumes on a gateway.
8647	//
8648	// If you don't specify a value, Storage Gateway uses the value that was previously
8649	// used for this volume as the new target name.
8650	TargetName *string `min:"1" type:"string"`
8651
8652	// The Amazon Resource Name (ARN) of the storage volume.
8653	VolumeARN *string `min:"50" type:"string"`
8654
8655	// A value that indicates whether a storage volume is attached to or detached
8656	// from a gateway. For more information, see Moving your volumes to a different
8657	// gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
8658	VolumeAttachmentStatus *string `min:"3" type:"string"`
8659
8660	// The unique identifier of the volume, e.g. vol-AE4B946D.
8661	VolumeId *string `min:"12" type:"string"`
8662
8663	// Represents the percentage complete if the volume is restoring or bootstrapping
8664	// that represents the percent of data transferred. This field does not appear
8665	// in the response if the cached volume is not restoring or bootstrapping.
8666	VolumeProgress *float64 `type:"double"`
8667
8668	// The size, in bytes, of the volume capacity.
8669	VolumeSizeInBytes *int64 `type:"long"`
8670
8671	// One of the VolumeStatus values that indicates the state of the storage volume.
8672	VolumeStatus *string `min:"3" type:"string"`
8673
8674	// One of the VolumeType enumeration values that describes the type of the volume.
8675	VolumeType *string `min:"3" type:"string"`
8676
8677	// The size of the data stored on the volume in bytes. This value is calculated
8678	// based on the number of blocks that are touched, instead of the actual amount
8679	// of data written. This value can be useful for sequential write patterns but
8680	// less accurate for random write patterns. VolumeUsedInBytes is different from
8681	// the compressed size of the volume, which is the value that is used to calculate
8682	// your bill.
8683	//
8684	// This value is not available for volumes created prior to May 13, 2015, until
8685	// you store data on the volume.
8686	VolumeUsedInBytes *int64 `type:"long"`
8687
8688	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
8689	// for one stored volume.
8690	VolumeiSCSIAttributes *VolumeiSCSIAttributes `type:"structure"`
8691}
8692
8693// String returns the string representation
8694func (s CachediSCSIVolume) String() string {
8695	return awsutil.Prettify(s)
8696}
8697
8698// GoString returns the string representation
8699func (s CachediSCSIVolume) GoString() string {
8700	return s.String()
8701}
8702
8703// SetCreatedDate sets the CreatedDate field's value.
8704func (s *CachediSCSIVolume) SetCreatedDate(v time.Time) *CachediSCSIVolume {
8705	s.CreatedDate = &v
8706	return s
8707}
8708
8709// SetKMSKey sets the KMSKey field's value.
8710func (s *CachediSCSIVolume) SetKMSKey(v string) *CachediSCSIVolume {
8711	s.KMSKey = &v
8712	return s
8713}
8714
8715// SetSourceSnapshotId sets the SourceSnapshotId field's value.
8716func (s *CachediSCSIVolume) SetSourceSnapshotId(v string) *CachediSCSIVolume {
8717	s.SourceSnapshotId = &v
8718	return s
8719}
8720
8721// SetTargetName sets the TargetName field's value.
8722func (s *CachediSCSIVolume) SetTargetName(v string) *CachediSCSIVolume {
8723	s.TargetName = &v
8724	return s
8725}
8726
8727// SetVolumeARN sets the VolumeARN field's value.
8728func (s *CachediSCSIVolume) SetVolumeARN(v string) *CachediSCSIVolume {
8729	s.VolumeARN = &v
8730	return s
8731}
8732
8733// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
8734func (s *CachediSCSIVolume) SetVolumeAttachmentStatus(v string) *CachediSCSIVolume {
8735	s.VolumeAttachmentStatus = &v
8736	return s
8737}
8738
8739// SetVolumeId sets the VolumeId field's value.
8740func (s *CachediSCSIVolume) SetVolumeId(v string) *CachediSCSIVolume {
8741	s.VolumeId = &v
8742	return s
8743}
8744
8745// SetVolumeProgress sets the VolumeProgress field's value.
8746func (s *CachediSCSIVolume) SetVolumeProgress(v float64) *CachediSCSIVolume {
8747	s.VolumeProgress = &v
8748	return s
8749}
8750
8751// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
8752func (s *CachediSCSIVolume) SetVolumeSizeInBytes(v int64) *CachediSCSIVolume {
8753	s.VolumeSizeInBytes = &v
8754	return s
8755}
8756
8757// SetVolumeStatus sets the VolumeStatus field's value.
8758func (s *CachediSCSIVolume) SetVolumeStatus(v string) *CachediSCSIVolume {
8759	s.VolumeStatus = &v
8760	return s
8761}
8762
8763// SetVolumeType sets the VolumeType field's value.
8764func (s *CachediSCSIVolume) SetVolumeType(v string) *CachediSCSIVolume {
8765	s.VolumeType = &v
8766	return s
8767}
8768
8769// SetVolumeUsedInBytes sets the VolumeUsedInBytes field's value.
8770func (s *CachediSCSIVolume) SetVolumeUsedInBytes(v int64) *CachediSCSIVolume {
8771	s.VolumeUsedInBytes = &v
8772	return s
8773}
8774
8775// SetVolumeiSCSIAttributes sets the VolumeiSCSIAttributes field's value.
8776func (s *CachediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *CachediSCSIVolume {
8777	s.VolumeiSCSIAttributes = v
8778	return s
8779}
8780
8781// CancelArchivalInput
8782type CancelArchivalInput struct {
8783	_ struct{} `type:"structure"`
8784
8785	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8786	// to return a list of gateways for your account and AWS Region.
8787	//
8788	// GatewayARN is a required field
8789	GatewayARN *string `min:"50" type:"string" required:"true"`
8790
8791	// The Amazon Resource Name (ARN) of the virtual tape you want to cancel archiving
8792	// for.
8793	//
8794	// TapeARN is a required field
8795	TapeARN *string `min:"50" type:"string" required:"true"`
8796}
8797
8798// String returns the string representation
8799func (s CancelArchivalInput) String() string {
8800	return awsutil.Prettify(s)
8801}
8802
8803// GoString returns the string representation
8804func (s CancelArchivalInput) GoString() string {
8805	return s.String()
8806}
8807
8808// Validate inspects the fields of the type to determine if they are valid.
8809func (s *CancelArchivalInput) Validate() error {
8810	invalidParams := request.ErrInvalidParams{Context: "CancelArchivalInput"}
8811	if s.GatewayARN == nil {
8812		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8813	}
8814	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8815		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8816	}
8817	if s.TapeARN == nil {
8818		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
8819	}
8820	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
8821		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
8822	}
8823
8824	if invalidParams.Len() > 0 {
8825		return invalidParams
8826	}
8827	return nil
8828}
8829
8830// SetGatewayARN sets the GatewayARN field's value.
8831func (s *CancelArchivalInput) SetGatewayARN(v string) *CancelArchivalInput {
8832	s.GatewayARN = &v
8833	return s
8834}
8835
8836// SetTapeARN sets the TapeARN field's value.
8837func (s *CancelArchivalInput) SetTapeARN(v string) *CancelArchivalInput {
8838	s.TapeARN = &v
8839	return s
8840}
8841
8842// CancelArchivalOutput
8843type CancelArchivalOutput struct {
8844	_ struct{} `type:"structure"`
8845
8846	// The Amazon Resource Name (ARN) of the virtual tape for which archiving was
8847	// canceled.
8848	TapeARN *string `min:"50" type:"string"`
8849}
8850
8851// String returns the string representation
8852func (s CancelArchivalOutput) String() string {
8853	return awsutil.Prettify(s)
8854}
8855
8856// GoString returns the string representation
8857func (s CancelArchivalOutput) GoString() string {
8858	return s.String()
8859}
8860
8861// SetTapeARN sets the TapeARN field's value.
8862func (s *CancelArchivalOutput) SetTapeARN(v string) *CancelArchivalOutput {
8863	s.TapeARN = &v
8864	return s
8865}
8866
8867// CancelRetrievalInput
8868type CancelRetrievalInput struct {
8869	_ struct{} `type:"structure"`
8870
8871	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8872	// to return a list of gateways for your account and AWS Region.
8873	//
8874	// GatewayARN is a required field
8875	GatewayARN *string `min:"50" type:"string" required:"true"`
8876
8877	// The Amazon Resource Name (ARN) of the virtual tape you want to cancel retrieval
8878	// for.
8879	//
8880	// TapeARN is a required field
8881	TapeARN *string `min:"50" type:"string" required:"true"`
8882}
8883
8884// String returns the string representation
8885func (s CancelRetrievalInput) String() string {
8886	return awsutil.Prettify(s)
8887}
8888
8889// GoString returns the string representation
8890func (s CancelRetrievalInput) GoString() string {
8891	return s.String()
8892}
8893
8894// Validate inspects the fields of the type to determine if they are valid.
8895func (s *CancelRetrievalInput) Validate() error {
8896	invalidParams := request.ErrInvalidParams{Context: "CancelRetrievalInput"}
8897	if s.GatewayARN == nil {
8898		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8899	}
8900	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8901		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8902	}
8903	if s.TapeARN == nil {
8904		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
8905	}
8906	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
8907		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
8908	}
8909
8910	if invalidParams.Len() > 0 {
8911		return invalidParams
8912	}
8913	return nil
8914}
8915
8916// SetGatewayARN sets the GatewayARN field's value.
8917func (s *CancelRetrievalInput) SetGatewayARN(v string) *CancelRetrievalInput {
8918	s.GatewayARN = &v
8919	return s
8920}
8921
8922// SetTapeARN sets the TapeARN field's value.
8923func (s *CancelRetrievalInput) SetTapeARN(v string) *CancelRetrievalInput {
8924	s.TapeARN = &v
8925	return s
8926}
8927
8928// CancelRetrievalOutput
8929type CancelRetrievalOutput struct {
8930	_ struct{} `type:"structure"`
8931
8932	// The Amazon Resource Name (ARN) of the virtual tape for which retrieval was
8933	// canceled.
8934	TapeARN *string `min:"50" type:"string"`
8935}
8936
8937// String returns the string representation
8938func (s CancelRetrievalOutput) String() string {
8939	return awsutil.Prettify(s)
8940}
8941
8942// GoString returns the string representation
8943func (s CancelRetrievalOutput) GoString() string {
8944	return s.String()
8945}
8946
8947// SetTapeARN sets the TapeARN field's value.
8948func (s *CancelRetrievalOutput) SetTapeARN(v string) *CancelRetrievalOutput {
8949	s.TapeARN = &v
8950	return s
8951}
8952
8953// Describes Challenge-Handshake Authentication Protocol (CHAP) information
8954// that supports authentication between your gateway and iSCSI initiators.
8955type ChapInfo struct {
8956	_ struct{} `type:"structure"`
8957
8958	// The iSCSI initiator that connects to the target.
8959	InitiatorName *string `min:"1" type:"string"`
8960
8961	// The secret key that the initiator (for example, the Windows client) must
8962	// provide to participate in mutual CHAP with the target.
8963	SecretToAuthenticateInitiator *string `min:"1" type:"string" sensitive:"true"`
8964
8965	// The secret key that the target must provide to participate in mutual CHAP
8966	// with the initiator (e.g. Windows client).
8967	SecretToAuthenticateTarget *string `min:"1" type:"string" sensitive:"true"`
8968
8969	// The Amazon Resource Name (ARN) of the volume.
8970	//
8971	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
8972	// (-).
8973	TargetARN *string `min:"50" type:"string"`
8974}
8975
8976// String returns the string representation
8977func (s ChapInfo) String() string {
8978	return awsutil.Prettify(s)
8979}
8980
8981// GoString returns the string representation
8982func (s ChapInfo) GoString() string {
8983	return s.String()
8984}
8985
8986// SetInitiatorName sets the InitiatorName field's value.
8987func (s *ChapInfo) SetInitiatorName(v string) *ChapInfo {
8988	s.InitiatorName = &v
8989	return s
8990}
8991
8992// SetSecretToAuthenticateInitiator sets the SecretToAuthenticateInitiator field's value.
8993func (s *ChapInfo) SetSecretToAuthenticateInitiator(v string) *ChapInfo {
8994	s.SecretToAuthenticateInitiator = &v
8995	return s
8996}
8997
8998// SetSecretToAuthenticateTarget sets the SecretToAuthenticateTarget field's value.
8999func (s *ChapInfo) SetSecretToAuthenticateTarget(v string) *ChapInfo {
9000	s.SecretToAuthenticateTarget = &v
9001	return s
9002}
9003
9004// SetTargetARN sets the TargetARN field's value.
9005func (s *ChapInfo) SetTargetARN(v string) *ChapInfo {
9006	s.TargetARN = &v
9007	return s
9008}
9009
9010type CreateCachediSCSIVolumeInput struct {
9011	_ struct{} `type:"structure"`
9012
9013	// A unique identifier that you use to retry a request. If you retry a request,
9014	// use the same ClientToken you specified in the initial request.
9015	//
9016	// ClientToken is a required field
9017	ClientToken *string `min:"5" type:"string" required:"true"`
9018
9019	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9020	// to return a list of gateways for your account and AWS Region.
9021	//
9022	// GatewayARN is a required field
9023	GatewayARN *string `min:"50" type:"string" required:"true"`
9024
9025	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
9026	// key, or false to use a key managed by Amazon S3. Optional.
9027	//
9028	// Valid Values: true | false
9029	KMSEncrypted *bool `type:"boolean"`
9030
9031	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
9032	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
9033	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
9034	KMSKey *string `min:"7" type:"string"`
9035
9036	// The network interface of the gateway on which to expose the iSCSI target.
9037	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
9038	// list of the network interfaces available on a gateway.
9039	//
9040	// Valid Values: A valid IP address.
9041	//
9042	// NetworkInterfaceId is a required field
9043	NetworkInterfaceId *string `type:"string" required:"true"`
9044
9045	// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the
9046	// new cached volume. Specify this field if you want to create the iSCSI storage
9047	// volume from a snapshot; otherwise, do not include this field. To list snapshots
9048	// for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
9049	// in the Amazon Elastic Compute Cloud API Reference.
9050	SnapshotId *string `type:"string"`
9051
9052	// The ARN for an existing volume. Specifying this ARN makes the new volume
9053	// into an exact copy of the specified existing volume's latest recovery point.
9054	// The VolumeSizeInBytes value for this new volume must be equal to or larger
9055	// than the size of the existing volume, in bytes.
9056	SourceVolumeARN *string `min:"50" type:"string"`
9057
9058	// A list of up to 50 tags that you can assign to a cached volume. Each tag
9059	// is a key-value pair.
9060	//
9061	// Valid characters for key and value are letters, spaces, and numbers that
9062	// you can represent in UTF-8 format, and the following special characters:
9063	// + - = . _ : / @. The maximum length of a tag's key is 128 characters, and
9064	// the maximum length for a tag's value is 256 characters.
9065	Tags []*Tag `type:"list"`
9066
9067	// The name of the iSCSI target used by an initiator to connect to a volume
9068	// and used as a suffix for the target ARN. For example, specifying TargetName
9069	// 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.
9070	// The target name must be unique across all volumes on a gateway.
9071	//
9072	// If you don't specify a value, Storage Gateway uses the value that was previously
9073	// used for this volume as the new target name.
9074	//
9075	// TargetName is a required field
9076	TargetName *string `min:"1" type:"string" required:"true"`
9077
9078	// The size of the volume in bytes.
9079	//
9080	// VolumeSizeInBytes is a required field
9081	VolumeSizeInBytes *int64 `type:"long" required:"true"`
9082}
9083
9084// String returns the string representation
9085func (s CreateCachediSCSIVolumeInput) String() string {
9086	return awsutil.Prettify(s)
9087}
9088
9089// GoString returns the string representation
9090func (s CreateCachediSCSIVolumeInput) GoString() string {
9091	return s.String()
9092}
9093
9094// Validate inspects the fields of the type to determine if they are valid.
9095func (s *CreateCachediSCSIVolumeInput) Validate() error {
9096	invalidParams := request.ErrInvalidParams{Context: "CreateCachediSCSIVolumeInput"}
9097	if s.ClientToken == nil {
9098		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
9099	}
9100	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
9101		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
9102	}
9103	if s.GatewayARN == nil {
9104		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9105	}
9106	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9107		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9108	}
9109	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
9110		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
9111	}
9112	if s.NetworkInterfaceId == nil {
9113		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
9114	}
9115	if s.SourceVolumeARN != nil && len(*s.SourceVolumeARN) < 50 {
9116		invalidParams.Add(request.NewErrParamMinLen("SourceVolumeARN", 50))
9117	}
9118	if s.TargetName == nil {
9119		invalidParams.Add(request.NewErrParamRequired("TargetName"))
9120	}
9121	if s.TargetName != nil && len(*s.TargetName) < 1 {
9122		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
9123	}
9124	if s.VolumeSizeInBytes == nil {
9125		invalidParams.Add(request.NewErrParamRequired("VolumeSizeInBytes"))
9126	}
9127	if s.Tags != nil {
9128		for i, v := range s.Tags {
9129			if v == nil {
9130				continue
9131			}
9132			if err := v.Validate(); err != nil {
9133				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9134			}
9135		}
9136	}
9137
9138	if invalidParams.Len() > 0 {
9139		return invalidParams
9140	}
9141	return nil
9142}
9143
9144// SetClientToken sets the ClientToken field's value.
9145func (s *CreateCachediSCSIVolumeInput) SetClientToken(v string) *CreateCachediSCSIVolumeInput {
9146	s.ClientToken = &v
9147	return s
9148}
9149
9150// SetGatewayARN sets the GatewayARN field's value.
9151func (s *CreateCachediSCSIVolumeInput) SetGatewayARN(v string) *CreateCachediSCSIVolumeInput {
9152	s.GatewayARN = &v
9153	return s
9154}
9155
9156// SetKMSEncrypted sets the KMSEncrypted field's value.
9157func (s *CreateCachediSCSIVolumeInput) SetKMSEncrypted(v bool) *CreateCachediSCSIVolumeInput {
9158	s.KMSEncrypted = &v
9159	return s
9160}
9161
9162// SetKMSKey sets the KMSKey field's value.
9163func (s *CreateCachediSCSIVolumeInput) SetKMSKey(v string) *CreateCachediSCSIVolumeInput {
9164	s.KMSKey = &v
9165	return s
9166}
9167
9168// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
9169func (s *CreateCachediSCSIVolumeInput) SetNetworkInterfaceId(v string) *CreateCachediSCSIVolumeInput {
9170	s.NetworkInterfaceId = &v
9171	return s
9172}
9173
9174// SetSnapshotId sets the SnapshotId field's value.
9175func (s *CreateCachediSCSIVolumeInput) SetSnapshotId(v string) *CreateCachediSCSIVolumeInput {
9176	s.SnapshotId = &v
9177	return s
9178}
9179
9180// SetSourceVolumeARN sets the SourceVolumeARN field's value.
9181func (s *CreateCachediSCSIVolumeInput) SetSourceVolumeARN(v string) *CreateCachediSCSIVolumeInput {
9182	s.SourceVolumeARN = &v
9183	return s
9184}
9185
9186// SetTags sets the Tags field's value.
9187func (s *CreateCachediSCSIVolumeInput) SetTags(v []*Tag) *CreateCachediSCSIVolumeInput {
9188	s.Tags = v
9189	return s
9190}
9191
9192// SetTargetName sets the TargetName field's value.
9193func (s *CreateCachediSCSIVolumeInput) SetTargetName(v string) *CreateCachediSCSIVolumeInput {
9194	s.TargetName = &v
9195	return s
9196}
9197
9198// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
9199func (s *CreateCachediSCSIVolumeInput) SetVolumeSizeInBytes(v int64) *CreateCachediSCSIVolumeInput {
9200	s.VolumeSizeInBytes = &v
9201	return s
9202}
9203
9204type CreateCachediSCSIVolumeOutput struct {
9205	_ struct{} `type:"structure"`
9206
9207	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
9208	// name that initiators can use to connect to the target.
9209	TargetARN *string `min:"50" type:"string"`
9210
9211	// The Amazon Resource Name (ARN) of the configured volume.
9212	VolumeARN *string `min:"50" type:"string"`
9213}
9214
9215// String returns the string representation
9216func (s CreateCachediSCSIVolumeOutput) String() string {
9217	return awsutil.Prettify(s)
9218}
9219
9220// GoString returns the string representation
9221func (s CreateCachediSCSIVolumeOutput) GoString() string {
9222	return s.String()
9223}
9224
9225// SetTargetARN sets the TargetARN field's value.
9226func (s *CreateCachediSCSIVolumeOutput) SetTargetARN(v string) *CreateCachediSCSIVolumeOutput {
9227	s.TargetARN = &v
9228	return s
9229}
9230
9231// SetVolumeARN sets the VolumeARN field's value.
9232func (s *CreateCachediSCSIVolumeOutput) SetVolumeARN(v string) *CreateCachediSCSIVolumeOutput {
9233	s.VolumeARN = &v
9234	return s
9235}
9236
9237// CreateNFSFileShareInput
9238type CreateNFSFileShareInput struct {
9239	_ struct{} `type:"structure"`
9240
9241	// Refresh cache information.
9242	CacheAttributes *CacheAttributes `type:"structure"`
9243
9244	// The list of clients that are allowed to access the file gateway. The list
9245	// must contain either valid IP addresses or valid CIDR blocks.
9246	ClientList []*string `min:"1" type:"list"`
9247
9248	// A unique string value that you supply that is used by file gateway to ensure
9249	// idempotent file share creation.
9250	//
9251	// ClientToken is a required field
9252	ClientToken *string `min:"5" type:"string" required:"true"`
9253
9254	// The default storage class for objects put into an Amazon S3 bucket by the
9255	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
9256	//
9257	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
9258	DefaultStorageClass *string `min:"5" type:"string"`
9259
9260	// The name of the file share. Optional.
9261	//
9262	// FileShareName must be set if an S3 prefix name is set in LocationARN.
9263	FileShareName *string `min:"1" type:"string"`
9264
9265	// The Amazon Resource Name (ARN) of the file gateway on which you want to create
9266	// a file share.
9267	//
9268	// GatewayARN is a required field
9269	GatewayARN *string `min:"50" type:"string" required:"true"`
9270
9271	// A value that enables guessing of the MIME type for uploaded objects based
9272	// on file extensions. Set this value to true to enable MIME type guessing,
9273	// otherwise set to false. The default value is true.
9274	//
9275	// Valid Values: true | false
9276	GuessMIMETypeEnabled *bool `type:"boolean"`
9277
9278	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
9279	// key, or false to use a key managed by Amazon S3. Optional.
9280	//
9281	// Valid Values: true | false
9282	KMSEncrypted *bool `type:"boolean"`
9283
9284	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
9285	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
9286	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
9287	KMSKey *string `min:"7" type:"string"`
9288
9289	// The ARN of the backend storage used for storing file data. A prefix name
9290	// can be added to the S3 bucket name. It must end with a "/".
9291	//
9292	// LocationARN is a required field
9293	LocationARN *string `min:"16" type:"string" required:"true"`
9294
9295	// File share default values. Optional.
9296	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
9297
9298	// A value that sets the access control list (ACL) permission for objects in
9299	// the S3 bucket that a file gateway puts objects into. The default value is
9300	// private.
9301	ObjectACL *string `type:"string" enum:"ObjectACL"`
9302
9303	// A value that sets the write status of a file share. Set this value to true
9304	// to set the write status to read-only, otherwise set to false.
9305	//
9306	// Valid Values: true | false
9307	ReadOnly *bool `type:"boolean"`
9308
9309	// A value that sets who pays the cost of the request and the cost associated
9310	// with data download from the S3 bucket. If this value is set to true, the
9311	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
9312	// S3 bucket owner always pays the cost of storing data.
9313	//
9314	// RequesterPays is a configuration for the S3 bucket that backs the file share,
9315	// so make sure that the configuration on the file share is the same as the
9316	// S3 bucket configuration.
9317	//
9318	// Valid Values: true | false
9319	RequesterPays *bool `type:"boolean"`
9320
9321	// The ARN of the AWS Identity and Access Management (IAM) role that a file
9322	// gateway assumes when it accesses the underlying storage.
9323	//
9324	// Role is a required field
9325	Role *string `min:"20" type:"string" required:"true"`
9326
9327	// A value that maps a user to anonymous user.
9328	//
9329	// Valid values are the following:
9330	//
9331	//    * RootSquash: Only root is mapped to anonymous user.
9332	//
9333	//    * NoSquash: No one is mapped to anonymous user.
9334	//
9335	//    * AllSquash: Everyone is mapped to anonymous user.
9336	Squash *string `min:"5" type:"string"`
9337
9338	// A list of up to 50 tags that can be assigned to the NFS file share. Each
9339	// tag is a key-value pair.
9340	//
9341	// Valid characters for key and value are letters, spaces, and numbers representable
9342	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
9343	// maximum length of a tag's key is 128 characters, and the maximum length for
9344	// a tag's value is 256.
9345	Tags []*Tag `type:"list"`
9346}
9347
9348// String returns the string representation
9349func (s CreateNFSFileShareInput) String() string {
9350	return awsutil.Prettify(s)
9351}
9352
9353// GoString returns the string representation
9354func (s CreateNFSFileShareInput) GoString() string {
9355	return s.String()
9356}
9357
9358// Validate inspects the fields of the type to determine if they are valid.
9359func (s *CreateNFSFileShareInput) Validate() error {
9360	invalidParams := request.ErrInvalidParams{Context: "CreateNFSFileShareInput"}
9361	if s.ClientList != nil && len(s.ClientList) < 1 {
9362		invalidParams.Add(request.NewErrParamMinLen("ClientList", 1))
9363	}
9364	if s.ClientToken == nil {
9365		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
9366	}
9367	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
9368		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
9369	}
9370	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
9371		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
9372	}
9373	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
9374		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
9375	}
9376	if s.GatewayARN == nil {
9377		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9378	}
9379	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9380		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9381	}
9382	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
9383		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
9384	}
9385	if s.LocationARN == nil {
9386		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
9387	}
9388	if s.LocationARN != nil && len(*s.LocationARN) < 16 {
9389		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 16))
9390	}
9391	if s.Role == nil {
9392		invalidParams.Add(request.NewErrParamRequired("Role"))
9393	}
9394	if s.Role != nil && len(*s.Role) < 20 {
9395		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
9396	}
9397	if s.Squash != nil && len(*s.Squash) < 5 {
9398		invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
9399	}
9400	if s.NFSFileShareDefaults != nil {
9401		if err := s.NFSFileShareDefaults.Validate(); err != nil {
9402			invalidParams.AddNested("NFSFileShareDefaults", err.(request.ErrInvalidParams))
9403		}
9404	}
9405	if s.Tags != nil {
9406		for i, v := range s.Tags {
9407			if v == nil {
9408				continue
9409			}
9410			if err := v.Validate(); err != nil {
9411				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9412			}
9413		}
9414	}
9415
9416	if invalidParams.Len() > 0 {
9417		return invalidParams
9418	}
9419	return nil
9420}
9421
9422// SetCacheAttributes sets the CacheAttributes field's value.
9423func (s *CreateNFSFileShareInput) SetCacheAttributes(v *CacheAttributes) *CreateNFSFileShareInput {
9424	s.CacheAttributes = v
9425	return s
9426}
9427
9428// SetClientList sets the ClientList field's value.
9429func (s *CreateNFSFileShareInput) SetClientList(v []*string) *CreateNFSFileShareInput {
9430	s.ClientList = v
9431	return s
9432}
9433
9434// SetClientToken sets the ClientToken field's value.
9435func (s *CreateNFSFileShareInput) SetClientToken(v string) *CreateNFSFileShareInput {
9436	s.ClientToken = &v
9437	return s
9438}
9439
9440// SetDefaultStorageClass sets the DefaultStorageClass field's value.
9441func (s *CreateNFSFileShareInput) SetDefaultStorageClass(v string) *CreateNFSFileShareInput {
9442	s.DefaultStorageClass = &v
9443	return s
9444}
9445
9446// SetFileShareName sets the FileShareName field's value.
9447func (s *CreateNFSFileShareInput) SetFileShareName(v string) *CreateNFSFileShareInput {
9448	s.FileShareName = &v
9449	return s
9450}
9451
9452// SetGatewayARN sets the GatewayARN field's value.
9453func (s *CreateNFSFileShareInput) SetGatewayARN(v string) *CreateNFSFileShareInput {
9454	s.GatewayARN = &v
9455	return s
9456}
9457
9458// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
9459func (s *CreateNFSFileShareInput) SetGuessMIMETypeEnabled(v bool) *CreateNFSFileShareInput {
9460	s.GuessMIMETypeEnabled = &v
9461	return s
9462}
9463
9464// SetKMSEncrypted sets the KMSEncrypted field's value.
9465func (s *CreateNFSFileShareInput) SetKMSEncrypted(v bool) *CreateNFSFileShareInput {
9466	s.KMSEncrypted = &v
9467	return s
9468}
9469
9470// SetKMSKey sets the KMSKey field's value.
9471func (s *CreateNFSFileShareInput) SetKMSKey(v string) *CreateNFSFileShareInput {
9472	s.KMSKey = &v
9473	return s
9474}
9475
9476// SetLocationARN sets the LocationARN field's value.
9477func (s *CreateNFSFileShareInput) SetLocationARN(v string) *CreateNFSFileShareInput {
9478	s.LocationARN = &v
9479	return s
9480}
9481
9482// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
9483func (s *CreateNFSFileShareInput) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *CreateNFSFileShareInput {
9484	s.NFSFileShareDefaults = v
9485	return s
9486}
9487
9488// SetObjectACL sets the ObjectACL field's value.
9489func (s *CreateNFSFileShareInput) SetObjectACL(v string) *CreateNFSFileShareInput {
9490	s.ObjectACL = &v
9491	return s
9492}
9493
9494// SetReadOnly sets the ReadOnly field's value.
9495func (s *CreateNFSFileShareInput) SetReadOnly(v bool) *CreateNFSFileShareInput {
9496	s.ReadOnly = &v
9497	return s
9498}
9499
9500// SetRequesterPays sets the RequesterPays field's value.
9501func (s *CreateNFSFileShareInput) SetRequesterPays(v bool) *CreateNFSFileShareInput {
9502	s.RequesterPays = &v
9503	return s
9504}
9505
9506// SetRole sets the Role field's value.
9507func (s *CreateNFSFileShareInput) SetRole(v string) *CreateNFSFileShareInput {
9508	s.Role = &v
9509	return s
9510}
9511
9512// SetSquash sets the Squash field's value.
9513func (s *CreateNFSFileShareInput) SetSquash(v string) *CreateNFSFileShareInput {
9514	s.Squash = &v
9515	return s
9516}
9517
9518// SetTags sets the Tags field's value.
9519func (s *CreateNFSFileShareInput) SetTags(v []*Tag) *CreateNFSFileShareInput {
9520	s.Tags = v
9521	return s
9522}
9523
9524// CreateNFSFileShareOutput
9525type CreateNFSFileShareOutput struct {
9526	_ struct{} `type:"structure"`
9527
9528	// The Amazon Resource Name (ARN) of the newly created file share.
9529	FileShareARN *string `min:"50" type:"string"`
9530}
9531
9532// String returns the string representation
9533func (s CreateNFSFileShareOutput) String() string {
9534	return awsutil.Prettify(s)
9535}
9536
9537// GoString returns the string representation
9538func (s CreateNFSFileShareOutput) GoString() string {
9539	return s.String()
9540}
9541
9542// SetFileShareARN sets the FileShareARN field's value.
9543func (s *CreateNFSFileShareOutput) SetFileShareARN(v string) *CreateNFSFileShareOutput {
9544	s.FileShareARN = &v
9545	return s
9546}
9547
9548// CreateSMBFileShareInput
9549type CreateSMBFileShareInput struct {
9550	_ struct{} `type:"structure"`
9551
9552	// A list of users or groups in the Active Directory that will be granted administrator
9553	// privileges on the file share. These users can do all file operations as the
9554	// super-user. Acceptable formats include: DOMAIN\User1, user1, @group1, and
9555	// @DOMAIN\group1.
9556	//
9557	// Use this option very carefully, because any user in this list can do anything
9558	// they like on the file share, regardless of file permissions.
9559	AdminUserList []*string `type:"list"`
9560
9561	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
9562	AuditDestinationARN *string `type:"string"`
9563
9564	// The authentication method that users use to access the file share. The default
9565	// is ActiveDirectory.
9566	//
9567	// Valid Values: ActiveDirectory | GuestAccess
9568	Authentication *string `min:"5" type:"string"`
9569
9570	// Refresh cache information.
9571	CacheAttributes *CacheAttributes `type:"structure"`
9572
9573	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
9574	// client determines the case sensitivity. For CaseSensitive, the gateway determines
9575	// the case sensitivity. The default value is ClientSpecified.
9576	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
9577
9578	// A unique string value that you supply that is used by file gateway to ensure
9579	// idempotent file share creation.
9580	//
9581	// ClientToken is a required field
9582	ClientToken *string `min:"5" type:"string" required:"true"`
9583
9584	// The default storage class for objects put into an Amazon S3 bucket by the
9585	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
9586	//
9587	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
9588	DefaultStorageClass *string `min:"5" type:"string"`
9589
9590	// The name of the file share. Optional.
9591	//
9592	// FileShareName must be set if an S3 prefix name is set in LocationARN.
9593	FileShareName *string `min:"1" type:"string"`
9594
9595	// The ARN of the file gateway on which you want to create a file share.
9596	//
9597	// GatewayARN is a required field
9598	GatewayARN *string `min:"50" type:"string" required:"true"`
9599
9600	// A value that enables guessing of the MIME type for uploaded objects based
9601	// on file extensions. Set this value to true to enable MIME type guessing,
9602	// otherwise set to false. The default value is true.
9603	//
9604	// Valid Values: true | false
9605	GuessMIMETypeEnabled *bool `type:"boolean"`
9606
9607	// A list of users or groups in the Active Directory that are not allowed to
9608	// access the file share. A group must be prefixed with the @ character. Acceptable
9609	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
9610	// be set if Authentication is set to ActiveDirectory.
9611	InvalidUserList []*string `type:"list"`
9612
9613	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
9614	// key, or false to use a key managed by Amazon S3. Optional.
9615	//
9616	// Valid Values: true | false
9617	KMSEncrypted *bool `type:"boolean"`
9618
9619	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
9620	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
9621	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
9622	KMSKey *string `min:"7" type:"string"`
9623
9624	// The ARN of the backend storage used for storing file data. A prefix name
9625	// can be added to the S3 bucket name. It must end with a "/".
9626	//
9627	// LocationARN is a required field
9628	LocationARN *string `min:"16" type:"string" required:"true"`
9629
9630	// A value that sets the access control list (ACL) permission for objects in
9631	// the S3 bucket that a file gateway puts objects into. The default value is
9632	// private.
9633	ObjectACL *string `type:"string" enum:"ObjectACL"`
9634
9635	// A value that sets the write status of a file share. Set this value to true
9636	// to set the write status to read-only, otherwise set to false.
9637	//
9638	// Valid Values: true | false
9639	ReadOnly *bool `type:"boolean"`
9640
9641	// A value that sets who pays the cost of the request and the cost associated
9642	// with data download from the S3 bucket. If this value is set to true, the
9643	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
9644	// S3 bucket owner always pays the cost of storing data.
9645	//
9646	// RequesterPays is a configuration for the S3 bucket that backs the file share,
9647	// so make sure that the configuration on the file share is the same as the
9648	// S3 bucket configuration.
9649	//
9650	// Valid Values: true | false
9651	RequesterPays *bool `type:"boolean"`
9652
9653	// The ARN of the AWS Identity and Access Management (IAM) role that a file
9654	// gateway assumes when it accesses the underlying storage.
9655	//
9656	// Role is a required field
9657	Role *string `min:"20" type:"string" required:"true"`
9658
9659	// Set this value to true to enable access control list (ACL) on the SMB file
9660	// share. Set it to false to map file and directory permissions to the POSIX
9661	// permissions.
9662	//
9663	// For more information, see Using Microsoft Windows ACLs to control access
9664	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
9665	// in the AWS Storage Gateway User Guide.
9666	//
9667	// Valid Values: true | false
9668	SMBACLEnabled *bool `type:"boolean"`
9669
9670	// A list of up to 50 tags that can be assigned to the NFS file share. Each
9671	// tag is a key-value pair.
9672	//
9673	// Valid characters for key and value are letters, spaces, and numbers representable
9674	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
9675	// maximum length of a tag's key is 128 characters, and the maximum length for
9676	// a tag's value is 256.
9677	Tags []*Tag `type:"list"`
9678
9679	// A list of users or groups in the Active Directory that are allowed to access
9680	// the file share. A group must be prefixed with the @ character. Acceptable
9681	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
9682	// be set if Authentication is set to ActiveDirectory.
9683	ValidUserList []*string `type:"list"`
9684}
9685
9686// String returns the string representation
9687func (s CreateSMBFileShareInput) String() string {
9688	return awsutil.Prettify(s)
9689}
9690
9691// GoString returns the string representation
9692func (s CreateSMBFileShareInput) GoString() string {
9693	return s.String()
9694}
9695
9696// Validate inspects the fields of the type to determine if they are valid.
9697func (s *CreateSMBFileShareInput) Validate() error {
9698	invalidParams := request.ErrInvalidParams{Context: "CreateSMBFileShareInput"}
9699	if s.Authentication != nil && len(*s.Authentication) < 5 {
9700		invalidParams.Add(request.NewErrParamMinLen("Authentication", 5))
9701	}
9702	if s.ClientToken == nil {
9703		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
9704	}
9705	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
9706		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
9707	}
9708	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
9709		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
9710	}
9711	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
9712		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
9713	}
9714	if s.GatewayARN == nil {
9715		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9716	}
9717	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9718		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9719	}
9720	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
9721		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
9722	}
9723	if s.LocationARN == nil {
9724		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
9725	}
9726	if s.LocationARN != nil && len(*s.LocationARN) < 16 {
9727		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 16))
9728	}
9729	if s.Role == nil {
9730		invalidParams.Add(request.NewErrParamRequired("Role"))
9731	}
9732	if s.Role != nil && len(*s.Role) < 20 {
9733		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
9734	}
9735	if s.Tags != nil {
9736		for i, v := range s.Tags {
9737			if v == nil {
9738				continue
9739			}
9740			if err := v.Validate(); err != nil {
9741				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9742			}
9743		}
9744	}
9745
9746	if invalidParams.Len() > 0 {
9747		return invalidParams
9748	}
9749	return nil
9750}
9751
9752// SetAdminUserList sets the AdminUserList field's value.
9753func (s *CreateSMBFileShareInput) SetAdminUserList(v []*string) *CreateSMBFileShareInput {
9754	s.AdminUserList = v
9755	return s
9756}
9757
9758// SetAuditDestinationARN sets the AuditDestinationARN field's value.
9759func (s *CreateSMBFileShareInput) SetAuditDestinationARN(v string) *CreateSMBFileShareInput {
9760	s.AuditDestinationARN = &v
9761	return s
9762}
9763
9764// SetAuthentication sets the Authentication field's value.
9765func (s *CreateSMBFileShareInput) SetAuthentication(v string) *CreateSMBFileShareInput {
9766	s.Authentication = &v
9767	return s
9768}
9769
9770// SetCacheAttributes sets the CacheAttributes field's value.
9771func (s *CreateSMBFileShareInput) SetCacheAttributes(v *CacheAttributes) *CreateSMBFileShareInput {
9772	s.CacheAttributes = v
9773	return s
9774}
9775
9776// SetCaseSensitivity sets the CaseSensitivity field's value.
9777func (s *CreateSMBFileShareInput) SetCaseSensitivity(v string) *CreateSMBFileShareInput {
9778	s.CaseSensitivity = &v
9779	return s
9780}
9781
9782// SetClientToken sets the ClientToken field's value.
9783func (s *CreateSMBFileShareInput) SetClientToken(v string) *CreateSMBFileShareInput {
9784	s.ClientToken = &v
9785	return s
9786}
9787
9788// SetDefaultStorageClass sets the DefaultStorageClass field's value.
9789func (s *CreateSMBFileShareInput) SetDefaultStorageClass(v string) *CreateSMBFileShareInput {
9790	s.DefaultStorageClass = &v
9791	return s
9792}
9793
9794// SetFileShareName sets the FileShareName field's value.
9795func (s *CreateSMBFileShareInput) SetFileShareName(v string) *CreateSMBFileShareInput {
9796	s.FileShareName = &v
9797	return s
9798}
9799
9800// SetGatewayARN sets the GatewayARN field's value.
9801func (s *CreateSMBFileShareInput) SetGatewayARN(v string) *CreateSMBFileShareInput {
9802	s.GatewayARN = &v
9803	return s
9804}
9805
9806// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
9807func (s *CreateSMBFileShareInput) SetGuessMIMETypeEnabled(v bool) *CreateSMBFileShareInput {
9808	s.GuessMIMETypeEnabled = &v
9809	return s
9810}
9811
9812// SetInvalidUserList sets the InvalidUserList field's value.
9813func (s *CreateSMBFileShareInput) SetInvalidUserList(v []*string) *CreateSMBFileShareInput {
9814	s.InvalidUserList = v
9815	return s
9816}
9817
9818// SetKMSEncrypted sets the KMSEncrypted field's value.
9819func (s *CreateSMBFileShareInput) SetKMSEncrypted(v bool) *CreateSMBFileShareInput {
9820	s.KMSEncrypted = &v
9821	return s
9822}
9823
9824// SetKMSKey sets the KMSKey field's value.
9825func (s *CreateSMBFileShareInput) SetKMSKey(v string) *CreateSMBFileShareInput {
9826	s.KMSKey = &v
9827	return s
9828}
9829
9830// SetLocationARN sets the LocationARN field's value.
9831func (s *CreateSMBFileShareInput) SetLocationARN(v string) *CreateSMBFileShareInput {
9832	s.LocationARN = &v
9833	return s
9834}
9835
9836// SetObjectACL sets the ObjectACL field's value.
9837func (s *CreateSMBFileShareInput) SetObjectACL(v string) *CreateSMBFileShareInput {
9838	s.ObjectACL = &v
9839	return s
9840}
9841
9842// SetReadOnly sets the ReadOnly field's value.
9843func (s *CreateSMBFileShareInput) SetReadOnly(v bool) *CreateSMBFileShareInput {
9844	s.ReadOnly = &v
9845	return s
9846}
9847
9848// SetRequesterPays sets the RequesterPays field's value.
9849func (s *CreateSMBFileShareInput) SetRequesterPays(v bool) *CreateSMBFileShareInput {
9850	s.RequesterPays = &v
9851	return s
9852}
9853
9854// SetRole sets the Role field's value.
9855func (s *CreateSMBFileShareInput) SetRole(v string) *CreateSMBFileShareInput {
9856	s.Role = &v
9857	return s
9858}
9859
9860// SetSMBACLEnabled sets the SMBACLEnabled field's value.
9861func (s *CreateSMBFileShareInput) SetSMBACLEnabled(v bool) *CreateSMBFileShareInput {
9862	s.SMBACLEnabled = &v
9863	return s
9864}
9865
9866// SetTags sets the Tags field's value.
9867func (s *CreateSMBFileShareInput) SetTags(v []*Tag) *CreateSMBFileShareInput {
9868	s.Tags = v
9869	return s
9870}
9871
9872// SetValidUserList sets the ValidUserList field's value.
9873func (s *CreateSMBFileShareInput) SetValidUserList(v []*string) *CreateSMBFileShareInput {
9874	s.ValidUserList = v
9875	return s
9876}
9877
9878// CreateSMBFileShareOutput
9879type CreateSMBFileShareOutput struct {
9880	_ struct{} `type:"structure"`
9881
9882	// The Amazon Resource Name (ARN) of the newly created file share.
9883	FileShareARN *string `min:"50" type:"string"`
9884}
9885
9886// String returns the string representation
9887func (s CreateSMBFileShareOutput) String() string {
9888	return awsutil.Prettify(s)
9889}
9890
9891// GoString returns the string representation
9892func (s CreateSMBFileShareOutput) GoString() string {
9893	return s.String()
9894}
9895
9896// SetFileShareARN sets the FileShareARN field's value.
9897func (s *CreateSMBFileShareOutput) SetFileShareARN(v string) *CreateSMBFileShareOutput {
9898	s.FileShareARN = &v
9899	return s
9900}
9901
9902type CreateSnapshotFromVolumeRecoveryPointInput struct {
9903	_ struct{} `type:"structure"`
9904
9905	// Textual description of the snapshot that appears in the Amazon EC2 console,
9906	// Elastic Block Store snapshots panel in the Description field, and in the
9907	// AWS Storage Gateway snapshot Details pane, Description field.
9908	//
9909	// SnapshotDescription is a required field
9910	SnapshotDescription *string `min:"1" type:"string" required:"true"`
9911
9912	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
9913	// key-value pair.
9914	//
9915	// Valid characters for key and value are letters, spaces, and numbers representable
9916	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
9917	// maximum length of a tag's key is 128 characters, and the maximum length for
9918	// a tag's value is 256.
9919	Tags []*Tag `type:"list"`
9920
9921	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
9922	// operation to return to retrieve the TargetARN for specified VolumeARN.
9923	//
9924	// VolumeARN is a required field
9925	VolumeARN *string `min:"50" type:"string" required:"true"`
9926}
9927
9928// String returns the string representation
9929func (s CreateSnapshotFromVolumeRecoveryPointInput) String() string {
9930	return awsutil.Prettify(s)
9931}
9932
9933// GoString returns the string representation
9934func (s CreateSnapshotFromVolumeRecoveryPointInput) GoString() string {
9935	return s.String()
9936}
9937
9938// Validate inspects the fields of the type to determine if they are valid.
9939func (s *CreateSnapshotFromVolumeRecoveryPointInput) Validate() error {
9940	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotFromVolumeRecoveryPointInput"}
9941	if s.SnapshotDescription == nil {
9942		invalidParams.Add(request.NewErrParamRequired("SnapshotDescription"))
9943	}
9944	if s.SnapshotDescription != nil && len(*s.SnapshotDescription) < 1 {
9945		invalidParams.Add(request.NewErrParamMinLen("SnapshotDescription", 1))
9946	}
9947	if s.VolumeARN == nil {
9948		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
9949	}
9950	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
9951		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
9952	}
9953	if s.Tags != nil {
9954		for i, v := range s.Tags {
9955			if v == nil {
9956				continue
9957			}
9958			if err := v.Validate(); err != nil {
9959				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9960			}
9961		}
9962	}
9963
9964	if invalidParams.Len() > 0 {
9965		return invalidParams
9966	}
9967	return nil
9968}
9969
9970// SetSnapshotDescription sets the SnapshotDescription field's value.
9971func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetSnapshotDescription(v string) *CreateSnapshotFromVolumeRecoveryPointInput {
9972	s.SnapshotDescription = &v
9973	return s
9974}
9975
9976// SetTags sets the Tags field's value.
9977func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetTags(v []*Tag) *CreateSnapshotFromVolumeRecoveryPointInput {
9978	s.Tags = v
9979	return s
9980}
9981
9982// SetVolumeARN sets the VolumeARN field's value.
9983func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetVolumeARN(v string) *CreateSnapshotFromVolumeRecoveryPointInput {
9984	s.VolumeARN = &v
9985	return s
9986}
9987
9988type CreateSnapshotFromVolumeRecoveryPointOutput struct {
9989	_ struct{} `type:"structure"`
9990
9991	// The ID of the snapshot.
9992	SnapshotId *string `type:"string"`
9993
9994	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
9995	// operation to return to retrieve the TargetARN for specified VolumeARN.
9996	VolumeARN *string `min:"50" type:"string"`
9997
9998	// The time the volume was created from the recovery point.
9999	VolumeRecoveryPointTime *string `type:"string"`
10000}
10001
10002// String returns the string representation
10003func (s CreateSnapshotFromVolumeRecoveryPointOutput) String() string {
10004	return awsutil.Prettify(s)
10005}
10006
10007// GoString returns the string representation
10008func (s CreateSnapshotFromVolumeRecoveryPointOutput) GoString() string {
10009	return s.String()
10010}
10011
10012// SetSnapshotId sets the SnapshotId field's value.
10013func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetSnapshotId(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
10014	s.SnapshotId = &v
10015	return s
10016}
10017
10018// SetVolumeARN sets the VolumeARN field's value.
10019func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetVolumeARN(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
10020	s.VolumeARN = &v
10021	return s
10022}
10023
10024// SetVolumeRecoveryPointTime sets the VolumeRecoveryPointTime field's value.
10025func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetVolumeRecoveryPointTime(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
10026	s.VolumeRecoveryPointTime = &v
10027	return s
10028}
10029
10030// A JSON object containing one or more of the following fields:
10031//
10032//    * CreateSnapshotInput$SnapshotDescription
10033//
10034//    * CreateSnapshotInput$VolumeARN
10035type CreateSnapshotInput struct {
10036	_ struct{} `type:"structure"`
10037
10038	// Textual description of the snapshot that appears in the Amazon EC2 console,
10039	// Elastic Block Store snapshots panel in the Description field, and in the
10040	// AWS Storage Gateway snapshot Details pane, Description field.
10041	//
10042	// SnapshotDescription is a required field
10043	SnapshotDescription *string `min:"1" type:"string" required:"true"`
10044
10045	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
10046	// key-value pair.
10047	//
10048	// Valid characters for key and value are letters, spaces, and numbers representable
10049	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
10050	// maximum length of a tag's key is 128 characters, and the maximum length for
10051	// a tag's value is 256.
10052	Tags []*Tag `type:"list"`
10053
10054	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
10055	// to return a list of gateway volumes.
10056	//
10057	// VolumeARN is a required field
10058	VolumeARN *string `min:"50" type:"string" required:"true"`
10059}
10060
10061// String returns the string representation
10062func (s CreateSnapshotInput) String() string {
10063	return awsutil.Prettify(s)
10064}
10065
10066// GoString returns the string representation
10067func (s CreateSnapshotInput) GoString() string {
10068	return s.String()
10069}
10070
10071// Validate inspects the fields of the type to determine if they are valid.
10072func (s *CreateSnapshotInput) Validate() error {
10073	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotInput"}
10074	if s.SnapshotDescription == nil {
10075		invalidParams.Add(request.NewErrParamRequired("SnapshotDescription"))
10076	}
10077	if s.SnapshotDescription != nil && len(*s.SnapshotDescription) < 1 {
10078		invalidParams.Add(request.NewErrParamMinLen("SnapshotDescription", 1))
10079	}
10080	if s.VolumeARN == nil {
10081		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
10082	}
10083	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
10084		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
10085	}
10086	if s.Tags != nil {
10087		for i, v := range s.Tags {
10088			if v == nil {
10089				continue
10090			}
10091			if err := v.Validate(); err != nil {
10092				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10093			}
10094		}
10095	}
10096
10097	if invalidParams.Len() > 0 {
10098		return invalidParams
10099	}
10100	return nil
10101}
10102
10103// SetSnapshotDescription sets the SnapshotDescription field's value.
10104func (s *CreateSnapshotInput) SetSnapshotDescription(v string) *CreateSnapshotInput {
10105	s.SnapshotDescription = &v
10106	return s
10107}
10108
10109// SetTags sets the Tags field's value.
10110func (s *CreateSnapshotInput) SetTags(v []*Tag) *CreateSnapshotInput {
10111	s.Tags = v
10112	return s
10113}
10114
10115// SetVolumeARN sets the VolumeARN field's value.
10116func (s *CreateSnapshotInput) SetVolumeARN(v string) *CreateSnapshotInput {
10117	s.VolumeARN = &v
10118	return s
10119}
10120
10121// A JSON object containing the following fields:
10122type CreateSnapshotOutput struct {
10123	_ struct{} `type:"structure"`
10124
10125	// The snapshot ID that is used to refer to the snapshot in future operations
10126	// such as describing snapshots (Amazon Elastic Compute Cloud API DescribeSnapshots)
10127	// or creating a volume from a snapshot (CreateStorediSCSIVolume).
10128	SnapshotId *string `type:"string"`
10129
10130	// The Amazon Resource Name (ARN) of the volume of which the snapshot was taken.
10131	VolumeARN *string `min:"50" type:"string"`
10132}
10133
10134// String returns the string representation
10135func (s CreateSnapshotOutput) String() string {
10136	return awsutil.Prettify(s)
10137}
10138
10139// GoString returns the string representation
10140func (s CreateSnapshotOutput) GoString() string {
10141	return s.String()
10142}
10143
10144// SetSnapshotId sets the SnapshotId field's value.
10145func (s *CreateSnapshotOutput) SetSnapshotId(v string) *CreateSnapshotOutput {
10146	s.SnapshotId = &v
10147	return s
10148}
10149
10150// SetVolumeARN sets the VolumeARN field's value.
10151func (s *CreateSnapshotOutput) SetVolumeARN(v string) *CreateSnapshotOutput {
10152	s.VolumeARN = &v
10153	return s
10154}
10155
10156// A JSON object containing one or more of the following fields:
10157//
10158//    * CreateStorediSCSIVolumeInput$DiskId
10159//
10160//    * CreateStorediSCSIVolumeInput$NetworkInterfaceId
10161//
10162//    * CreateStorediSCSIVolumeInput$PreserveExistingData
10163//
10164//    * CreateStorediSCSIVolumeInput$SnapshotId
10165//
10166//    * CreateStorediSCSIVolumeInput$TargetName
10167type CreateStorediSCSIVolumeInput struct {
10168	_ struct{} `type:"structure"`
10169
10170	// The unique identifier for the gateway local disk that is configured as a
10171	// stored volume. Use ListLocalDisks (https://docs.aws.amazon.com/storagegateway/latest/userguide/API_ListLocalDisks.html)
10172	// to list disk IDs for a gateway.
10173	//
10174	// DiskId is a required field
10175	DiskId *string `min:"1" type:"string" required:"true"`
10176
10177	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10178	// to return a list of gateways for your account and AWS Region.
10179	//
10180	// GatewayARN is a required field
10181	GatewayARN *string `min:"50" type:"string" required:"true"`
10182
10183	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
10184	// key, or false to use a key managed by Amazon S3. Optional.
10185	//
10186	// Valid Values: true | false
10187	KMSEncrypted *bool `type:"boolean"`
10188
10189	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
10190	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
10191	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
10192	KMSKey *string `min:"7" type:"string"`
10193
10194	// The network interface of the gateway on which to expose the iSCSI target.
10195	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
10196	// list of the network interfaces available on a gateway.
10197	//
10198	// Valid Values: A valid IP address.
10199	//
10200	// NetworkInterfaceId is a required field
10201	NetworkInterfaceId *string `type:"string" required:"true"`
10202
10203	// Set to true true if you want to preserve the data on the local disk. Otherwise,
10204	// set to false to create an empty volume.
10205	//
10206	// Valid Values: true | false
10207	//
10208	// PreserveExistingData is a required field
10209	PreserveExistingData *bool `type:"boolean" required:"true"`
10210
10211	// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the
10212	// new stored volume. Specify this field if you want to create the iSCSI storage
10213	// volume from a snapshot; otherwise, do not include this field. To list snapshots
10214	// for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
10215	// in the Amazon Elastic Compute Cloud API Reference.
10216	SnapshotId *string `type:"string"`
10217
10218	// A list of up to 50 tags that can be assigned to a stored volume. Each tag
10219	// is a key-value pair.
10220	//
10221	// Valid characters for key and value are letters, spaces, and numbers representable
10222	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
10223	// maximum length of a tag's key is 128 characters, and the maximum length for
10224	// a tag's value is 256.
10225	Tags []*Tag `type:"list"`
10226
10227	// The name of the iSCSI target used by an initiator to connect to a volume
10228	// and used as a suffix for the target ARN. For example, specifying TargetName
10229	// 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.
10230	// The target name must be unique across all volumes on a gateway.
10231	//
10232	// If you don't specify a value, Storage Gateway uses the value that was previously
10233	// used for this volume as the new target name.
10234	//
10235	// TargetName is a required field
10236	TargetName *string `min:"1" type:"string" required:"true"`
10237}
10238
10239// String returns the string representation
10240func (s CreateStorediSCSIVolumeInput) String() string {
10241	return awsutil.Prettify(s)
10242}
10243
10244// GoString returns the string representation
10245func (s CreateStorediSCSIVolumeInput) GoString() string {
10246	return s.String()
10247}
10248
10249// Validate inspects the fields of the type to determine if they are valid.
10250func (s *CreateStorediSCSIVolumeInput) Validate() error {
10251	invalidParams := request.ErrInvalidParams{Context: "CreateStorediSCSIVolumeInput"}
10252	if s.DiskId == nil {
10253		invalidParams.Add(request.NewErrParamRequired("DiskId"))
10254	}
10255	if s.DiskId != nil && len(*s.DiskId) < 1 {
10256		invalidParams.Add(request.NewErrParamMinLen("DiskId", 1))
10257	}
10258	if s.GatewayARN == nil {
10259		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10260	}
10261	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10262		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10263	}
10264	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
10265		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
10266	}
10267	if s.NetworkInterfaceId == nil {
10268		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
10269	}
10270	if s.PreserveExistingData == nil {
10271		invalidParams.Add(request.NewErrParamRequired("PreserveExistingData"))
10272	}
10273	if s.TargetName == nil {
10274		invalidParams.Add(request.NewErrParamRequired("TargetName"))
10275	}
10276	if s.TargetName != nil && len(*s.TargetName) < 1 {
10277		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
10278	}
10279	if s.Tags != nil {
10280		for i, v := range s.Tags {
10281			if v == nil {
10282				continue
10283			}
10284			if err := v.Validate(); err != nil {
10285				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10286			}
10287		}
10288	}
10289
10290	if invalidParams.Len() > 0 {
10291		return invalidParams
10292	}
10293	return nil
10294}
10295
10296// SetDiskId sets the DiskId field's value.
10297func (s *CreateStorediSCSIVolumeInput) SetDiskId(v string) *CreateStorediSCSIVolumeInput {
10298	s.DiskId = &v
10299	return s
10300}
10301
10302// SetGatewayARN sets the GatewayARN field's value.
10303func (s *CreateStorediSCSIVolumeInput) SetGatewayARN(v string) *CreateStorediSCSIVolumeInput {
10304	s.GatewayARN = &v
10305	return s
10306}
10307
10308// SetKMSEncrypted sets the KMSEncrypted field's value.
10309func (s *CreateStorediSCSIVolumeInput) SetKMSEncrypted(v bool) *CreateStorediSCSIVolumeInput {
10310	s.KMSEncrypted = &v
10311	return s
10312}
10313
10314// SetKMSKey sets the KMSKey field's value.
10315func (s *CreateStorediSCSIVolumeInput) SetKMSKey(v string) *CreateStorediSCSIVolumeInput {
10316	s.KMSKey = &v
10317	return s
10318}
10319
10320// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
10321func (s *CreateStorediSCSIVolumeInput) SetNetworkInterfaceId(v string) *CreateStorediSCSIVolumeInput {
10322	s.NetworkInterfaceId = &v
10323	return s
10324}
10325
10326// SetPreserveExistingData sets the PreserveExistingData field's value.
10327func (s *CreateStorediSCSIVolumeInput) SetPreserveExistingData(v bool) *CreateStorediSCSIVolumeInput {
10328	s.PreserveExistingData = &v
10329	return s
10330}
10331
10332// SetSnapshotId sets the SnapshotId field's value.
10333func (s *CreateStorediSCSIVolumeInput) SetSnapshotId(v string) *CreateStorediSCSIVolumeInput {
10334	s.SnapshotId = &v
10335	return s
10336}
10337
10338// SetTags sets the Tags field's value.
10339func (s *CreateStorediSCSIVolumeInput) SetTags(v []*Tag) *CreateStorediSCSIVolumeInput {
10340	s.Tags = v
10341	return s
10342}
10343
10344// SetTargetName sets the TargetName field's value.
10345func (s *CreateStorediSCSIVolumeInput) SetTargetName(v string) *CreateStorediSCSIVolumeInput {
10346	s.TargetName = &v
10347	return s
10348}
10349
10350// A JSON object containing the following fields:
10351type CreateStorediSCSIVolumeOutput struct {
10352	_ struct{} `type:"structure"`
10353
10354	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
10355	// name that initiators can use to connect to the target.
10356	TargetARN *string `min:"50" type:"string"`
10357
10358	// The Amazon Resource Name (ARN) of the configured volume.
10359	VolumeARN *string `min:"50" type:"string"`
10360
10361	// The size of the volume in bytes.
10362	VolumeSizeInBytes *int64 `type:"long"`
10363}
10364
10365// String returns the string representation
10366func (s CreateStorediSCSIVolumeOutput) String() string {
10367	return awsutil.Prettify(s)
10368}
10369
10370// GoString returns the string representation
10371func (s CreateStorediSCSIVolumeOutput) GoString() string {
10372	return s.String()
10373}
10374
10375// SetTargetARN sets the TargetARN field's value.
10376func (s *CreateStorediSCSIVolumeOutput) SetTargetARN(v string) *CreateStorediSCSIVolumeOutput {
10377	s.TargetARN = &v
10378	return s
10379}
10380
10381// SetVolumeARN sets the VolumeARN field's value.
10382func (s *CreateStorediSCSIVolumeOutput) SetVolumeARN(v string) *CreateStorediSCSIVolumeOutput {
10383	s.VolumeARN = &v
10384	return s
10385}
10386
10387// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
10388func (s *CreateStorediSCSIVolumeOutput) SetVolumeSizeInBytes(v int64) *CreateStorediSCSIVolumeOutput {
10389	s.VolumeSizeInBytes = &v
10390	return s
10391}
10392
10393// CreateTapeWithBarcodeInput
10394type CreateTapeWithBarcodeInput struct {
10395	_ struct{} `type:"structure"`
10396
10397	// The unique Amazon Resource Name (ARN) that represents the gateway to associate
10398	// the virtual tape with. Use the ListGateways operation to return a list of
10399	// gateways for your account and AWS Region.
10400	//
10401	// GatewayARN is a required field
10402	GatewayARN *string `min:"50" type:"string" required:"true"`
10403
10404	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
10405	// key, or false to use a key managed by Amazon S3. Optional.
10406	//
10407	// Valid Values: true | false
10408	KMSEncrypted *bool `type:"boolean"`
10409
10410	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
10411	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
10412	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
10413	KMSKey *string `min:"7" type:"string"`
10414
10415	// The ID of the pool that you want to add your tape to for archiving. The tape
10416	// in this pool is archived in the S3 storage class that is associated with
10417	// the pool. When you use your backup application to eject the tape, the tape
10418	// is archived directly into the storage class (S3 Glacier or S3 Deep Archive)
10419	// that corresponds to the pool.
10420	//
10421	// Valid Values: GLACIER | DEEP_ARCHIVE
10422	PoolId *string `min:"1" type:"string"`
10423
10424	// A list of up to 50 tags that can be assigned to a virtual tape that has a
10425	// barcode. Each tag is a key-value pair.
10426	//
10427	// Valid characters for key and value are letters, spaces, and numbers representable
10428	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
10429	// maximum length of a tag's key is 128 characters, and the maximum length for
10430	// a tag's value is 256.
10431	Tags []*Tag `type:"list"`
10432
10433	// The barcode that you want to assign to the tape.
10434	//
10435	// Barcodes cannot be reused. This includes barcodes used for tapes that have
10436	// been deleted.
10437	//
10438	// TapeBarcode is a required field
10439	TapeBarcode *string `min:"7" type:"string" required:"true"`
10440
10441	// The size, in bytes, of the virtual tape that you want to create.
10442	//
10443	// The size must be aligned by gigabyte (1024*1024*1024 bytes).
10444	//
10445	// TapeSizeInBytes is a required field
10446	TapeSizeInBytes *int64 `type:"long" required:"true"`
10447}
10448
10449// String returns the string representation
10450func (s CreateTapeWithBarcodeInput) String() string {
10451	return awsutil.Prettify(s)
10452}
10453
10454// GoString returns the string representation
10455func (s CreateTapeWithBarcodeInput) GoString() string {
10456	return s.String()
10457}
10458
10459// Validate inspects the fields of the type to determine if they are valid.
10460func (s *CreateTapeWithBarcodeInput) Validate() error {
10461	invalidParams := request.ErrInvalidParams{Context: "CreateTapeWithBarcodeInput"}
10462	if s.GatewayARN == nil {
10463		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10464	}
10465	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10466		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10467	}
10468	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
10469		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
10470	}
10471	if s.PoolId != nil && len(*s.PoolId) < 1 {
10472		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
10473	}
10474	if s.TapeBarcode == nil {
10475		invalidParams.Add(request.NewErrParamRequired("TapeBarcode"))
10476	}
10477	if s.TapeBarcode != nil && len(*s.TapeBarcode) < 7 {
10478		invalidParams.Add(request.NewErrParamMinLen("TapeBarcode", 7))
10479	}
10480	if s.TapeSizeInBytes == nil {
10481		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
10482	}
10483	if s.Tags != nil {
10484		for i, v := range s.Tags {
10485			if v == nil {
10486				continue
10487			}
10488			if err := v.Validate(); err != nil {
10489				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10490			}
10491		}
10492	}
10493
10494	if invalidParams.Len() > 0 {
10495		return invalidParams
10496	}
10497	return nil
10498}
10499
10500// SetGatewayARN sets the GatewayARN field's value.
10501func (s *CreateTapeWithBarcodeInput) SetGatewayARN(v string) *CreateTapeWithBarcodeInput {
10502	s.GatewayARN = &v
10503	return s
10504}
10505
10506// SetKMSEncrypted sets the KMSEncrypted field's value.
10507func (s *CreateTapeWithBarcodeInput) SetKMSEncrypted(v bool) *CreateTapeWithBarcodeInput {
10508	s.KMSEncrypted = &v
10509	return s
10510}
10511
10512// SetKMSKey sets the KMSKey field's value.
10513func (s *CreateTapeWithBarcodeInput) SetKMSKey(v string) *CreateTapeWithBarcodeInput {
10514	s.KMSKey = &v
10515	return s
10516}
10517
10518// SetPoolId sets the PoolId field's value.
10519func (s *CreateTapeWithBarcodeInput) SetPoolId(v string) *CreateTapeWithBarcodeInput {
10520	s.PoolId = &v
10521	return s
10522}
10523
10524// SetTags sets the Tags field's value.
10525func (s *CreateTapeWithBarcodeInput) SetTags(v []*Tag) *CreateTapeWithBarcodeInput {
10526	s.Tags = v
10527	return s
10528}
10529
10530// SetTapeBarcode sets the TapeBarcode field's value.
10531func (s *CreateTapeWithBarcodeInput) SetTapeBarcode(v string) *CreateTapeWithBarcodeInput {
10532	s.TapeBarcode = &v
10533	return s
10534}
10535
10536// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
10537func (s *CreateTapeWithBarcodeInput) SetTapeSizeInBytes(v int64) *CreateTapeWithBarcodeInput {
10538	s.TapeSizeInBytes = &v
10539	return s
10540}
10541
10542// CreateTapeOutput
10543type CreateTapeWithBarcodeOutput struct {
10544	_ struct{} `type:"structure"`
10545
10546	// A unique Amazon Resource Name (ARN) that represents the virtual tape that
10547	// was created.
10548	TapeARN *string `min:"50" type:"string"`
10549}
10550
10551// String returns the string representation
10552func (s CreateTapeWithBarcodeOutput) String() string {
10553	return awsutil.Prettify(s)
10554}
10555
10556// GoString returns the string representation
10557func (s CreateTapeWithBarcodeOutput) GoString() string {
10558	return s.String()
10559}
10560
10561// SetTapeARN sets the TapeARN field's value.
10562func (s *CreateTapeWithBarcodeOutput) SetTapeARN(v string) *CreateTapeWithBarcodeOutput {
10563	s.TapeARN = &v
10564	return s
10565}
10566
10567// CreateTapesInput
10568type CreateTapesInput struct {
10569	_ struct{} `type:"structure"`
10570
10571	// A unique identifier that you use to retry a request. If you retry a request,
10572	// use the same ClientToken you specified in the initial request.
10573	//
10574	// Using the same ClientToken prevents creating the tape multiple times.
10575	//
10576	// ClientToken is a required field
10577	ClientToken *string `min:"5" type:"string" required:"true"`
10578
10579	// The unique Amazon Resource Name (ARN) that represents the gateway to associate
10580	// the virtual tapes with. Use the ListGateways operation to return a list of
10581	// gateways for your account and AWS Region.
10582	//
10583	// GatewayARN is a required field
10584	GatewayARN *string `min:"50" type:"string" required:"true"`
10585
10586	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
10587	// key, or false to use a key managed by Amazon S3. Optional.
10588	//
10589	// Valid Values: true | false
10590	KMSEncrypted *bool `type:"boolean"`
10591
10592	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
10593	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
10594	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
10595	KMSKey *string `min:"7" type:"string"`
10596
10597	// The number of virtual tapes that you want to create.
10598	//
10599	// NumTapesToCreate is a required field
10600	NumTapesToCreate *int64 `min:"1" type:"integer" required:"true"`
10601
10602	// The ID of the pool that you want to add your tape to for archiving. The tape
10603	// in this pool is archived in the S3 storage class that is associated with
10604	// the pool. When you use your backup application to eject the tape, the tape
10605	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
10606	// Archive) that corresponds to the pool.
10607	//
10608	// Valid Values: GLACIER | DEEP_ARCHIVE
10609	PoolId *string `min:"1" type:"string"`
10610
10611	// A list of up to 50 tags that can be assigned to a virtual tape. Each tag
10612	// is a key-value pair.
10613	//
10614	// Valid characters for key and value are letters, spaces, and numbers representable
10615	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
10616	// maximum length of a tag's key is 128 characters, and the maximum length for
10617	// a tag's value is 256.
10618	Tags []*Tag `type:"list"`
10619
10620	// A prefix that you append to the barcode of the virtual tape you are creating.
10621	// This prefix makes the barcode unique.
10622	//
10623	// The prefix must be 1 to 4 characters in length and must be one of the uppercase
10624	// letters from A to Z.
10625	//
10626	// TapeBarcodePrefix is a required field
10627	TapeBarcodePrefix *string `min:"1" type:"string" required:"true"`
10628
10629	// The size, in bytes, of the virtual tapes that you want to create.
10630	//
10631	// The size must be aligned by gigabyte (1024*1024*1024 bytes).
10632	//
10633	// TapeSizeInBytes is a required field
10634	TapeSizeInBytes *int64 `type:"long" required:"true"`
10635}
10636
10637// String returns the string representation
10638func (s CreateTapesInput) String() string {
10639	return awsutil.Prettify(s)
10640}
10641
10642// GoString returns the string representation
10643func (s CreateTapesInput) GoString() string {
10644	return s.String()
10645}
10646
10647// Validate inspects the fields of the type to determine if they are valid.
10648func (s *CreateTapesInput) Validate() error {
10649	invalidParams := request.ErrInvalidParams{Context: "CreateTapesInput"}
10650	if s.ClientToken == nil {
10651		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
10652	}
10653	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
10654		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
10655	}
10656	if s.GatewayARN == nil {
10657		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10658	}
10659	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10660		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10661	}
10662	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
10663		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
10664	}
10665	if s.NumTapesToCreate == nil {
10666		invalidParams.Add(request.NewErrParamRequired("NumTapesToCreate"))
10667	}
10668	if s.NumTapesToCreate != nil && *s.NumTapesToCreate < 1 {
10669		invalidParams.Add(request.NewErrParamMinValue("NumTapesToCreate", 1))
10670	}
10671	if s.PoolId != nil && len(*s.PoolId) < 1 {
10672		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
10673	}
10674	if s.TapeBarcodePrefix == nil {
10675		invalidParams.Add(request.NewErrParamRequired("TapeBarcodePrefix"))
10676	}
10677	if s.TapeBarcodePrefix != nil && len(*s.TapeBarcodePrefix) < 1 {
10678		invalidParams.Add(request.NewErrParamMinLen("TapeBarcodePrefix", 1))
10679	}
10680	if s.TapeSizeInBytes == nil {
10681		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
10682	}
10683	if s.Tags != nil {
10684		for i, v := range s.Tags {
10685			if v == nil {
10686				continue
10687			}
10688			if err := v.Validate(); err != nil {
10689				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10690			}
10691		}
10692	}
10693
10694	if invalidParams.Len() > 0 {
10695		return invalidParams
10696	}
10697	return nil
10698}
10699
10700// SetClientToken sets the ClientToken field's value.
10701func (s *CreateTapesInput) SetClientToken(v string) *CreateTapesInput {
10702	s.ClientToken = &v
10703	return s
10704}
10705
10706// SetGatewayARN sets the GatewayARN field's value.
10707func (s *CreateTapesInput) SetGatewayARN(v string) *CreateTapesInput {
10708	s.GatewayARN = &v
10709	return s
10710}
10711
10712// SetKMSEncrypted sets the KMSEncrypted field's value.
10713func (s *CreateTapesInput) SetKMSEncrypted(v bool) *CreateTapesInput {
10714	s.KMSEncrypted = &v
10715	return s
10716}
10717
10718// SetKMSKey sets the KMSKey field's value.
10719func (s *CreateTapesInput) SetKMSKey(v string) *CreateTapesInput {
10720	s.KMSKey = &v
10721	return s
10722}
10723
10724// SetNumTapesToCreate sets the NumTapesToCreate field's value.
10725func (s *CreateTapesInput) SetNumTapesToCreate(v int64) *CreateTapesInput {
10726	s.NumTapesToCreate = &v
10727	return s
10728}
10729
10730// SetPoolId sets the PoolId field's value.
10731func (s *CreateTapesInput) SetPoolId(v string) *CreateTapesInput {
10732	s.PoolId = &v
10733	return s
10734}
10735
10736// SetTags sets the Tags field's value.
10737func (s *CreateTapesInput) SetTags(v []*Tag) *CreateTapesInput {
10738	s.Tags = v
10739	return s
10740}
10741
10742// SetTapeBarcodePrefix sets the TapeBarcodePrefix field's value.
10743func (s *CreateTapesInput) SetTapeBarcodePrefix(v string) *CreateTapesInput {
10744	s.TapeBarcodePrefix = &v
10745	return s
10746}
10747
10748// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
10749func (s *CreateTapesInput) SetTapeSizeInBytes(v int64) *CreateTapesInput {
10750	s.TapeSizeInBytes = &v
10751	return s
10752}
10753
10754// CreateTapeOutput
10755type CreateTapesOutput struct {
10756	_ struct{} `type:"structure"`
10757
10758	// A list of unique Amazon Resource Names (ARNs) that represents the virtual
10759	// tapes that were created.
10760	TapeARNs []*string `type:"list"`
10761}
10762
10763// String returns the string representation
10764func (s CreateTapesOutput) String() string {
10765	return awsutil.Prettify(s)
10766}
10767
10768// GoString returns the string representation
10769func (s CreateTapesOutput) GoString() string {
10770	return s.String()
10771}
10772
10773// SetTapeARNs sets the TapeARNs field's value.
10774func (s *CreateTapesOutput) SetTapeARNs(v []*string) *CreateTapesOutput {
10775	s.TapeARNs = v
10776	return s
10777}
10778
10779type DeleteAutomaticTapeCreationPolicyInput struct {
10780	_ struct{} `type:"structure"`
10781
10782	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10783	// to return a list of gateways for your account and AWS Region.
10784	//
10785	// GatewayARN is a required field
10786	GatewayARN *string `min:"50" type:"string" required:"true"`
10787}
10788
10789// String returns the string representation
10790func (s DeleteAutomaticTapeCreationPolicyInput) String() string {
10791	return awsutil.Prettify(s)
10792}
10793
10794// GoString returns the string representation
10795func (s DeleteAutomaticTapeCreationPolicyInput) GoString() string {
10796	return s.String()
10797}
10798
10799// Validate inspects the fields of the type to determine if they are valid.
10800func (s *DeleteAutomaticTapeCreationPolicyInput) Validate() error {
10801	invalidParams := request.ErrInvalidParams{Context: "DeleteAutomaticTapeCreationPolicyInput"}
10802	if s.GatewayARN == nil {
10803		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10804	}
10805	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10806		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10807	}
10808
10809	if invalidParams.Len() > 0 {
10810		return invalidParams
10811	}
10812	return nil
10813}
10814
10815// SetGatewayARN sets the GatewayARN field's value.
10816func (s *DeleteAutomaticTapeCreationPolicyInput) SetGatewayARN(v string) *DeleteAutomaticTapeCreationPolicyInput {
10817	s.GatewayARN = &v
10818	return s
10819}
10820
10821type DeleteAutomaticTapeCreationPolicyOutput struct {
10822	_ struct{} `type:"structure"`
10823
10824	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10825	// to return a list of gateways for your account and AWS Region.
10826	GatewayARN *string `min:"50" type:"string"`
10827}
10828
10829// String returns the string representation
10830func (s DeleteAutomaticTapeCreationPolicyOutput) String() string {
10831	return awsutil.Prettify(s)
10832}
10833
10834// GoString returns the string representation
10835func (s DeleteAutomaticTapeCreationPolicyOutput) GoString() string {
10836	return s.String()
10837}
10838
10839// SetGatewayARN sets the GatewayARN field's value.
10840func (s *DeleteAutomaticTapeCreationPolicyOutput) SetGatewayARN(v string) *DeleteAutomaticTapeCreationPolicyOutput {
10841	s.GatewayARN = &v
10842	return s
10843}
10844
10845// A JSON object containing the following fields:
10846//
10847//    * DeleteBandwidthRateLimitInput$BandwidthType
10848type DeleteBandwidthRateLimitInput struct {
10849	_ struct{} `type:"structure"`
10850
10851	// One of the BandwidthType values that indicates the gateway bandwidth rate
10852	// limit to delete.
10853	//
10854	// Valid Values: Upload | Download | All
10855	//
10856	// BandwidthType is a required field
10857	BandwidthType *string `min:"3" type:"string" required:"true"`
10858
10859	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10860	// to return a list of gateways for your account and AWS Region.
10861	//
10862	// GatewayARN is a required field
10863	GatewayARN *string `min:"50" type:"string" required:"true"`
10864}
10865
10866// String returns the string representation
10867func (s DeleteBandwidthRateLimitInput) String() string {
10868	return awsutil.Prettify(s)
10869}
10870
10871// GoString returns the string representation
10872func (s DeleteBandwidthRateLimitInput) GoString() string {
10873	return s.String()
10874}
10875
10876// Validate inspects the fields of the type to determine if they are valid.
10877func (s *DeleteBandwidthRateLimitInput) Validate() error {
10878	invalidParams := request.ErrInvalidParams{Context: "DeleteBandwidthRateLimitInput"}
10879	if s.BandwidthType == nil {
10880		invalidParams.Add(request.NewErrParamRequired("BandwidthType"))
10881	}
10882	if s.BandwidthType != nil && len(*s.BandwidthType) < 3 {
10883		invalidParams.Add(request.NewErrParamMinLen("BandwidthType", 3))
10884	}
10885	if s.GatewayARN == nil {
10886		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10887	}
10888	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10889		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10890	}
10891
10892	if invalidParams.Len() > 0 {
10893		return invalidParams
10894	}
10895	return nil
10896}
10897
10898// SetBandwidthType sets the BandwidthType field's value.
10899func (s *DeleteBandwidthRateLimitInput) SetBandwidthType(v string) *DeleteBandwidthRateLimitInput {
10900	s.BandwidthType = &v
10901	return s
10902}
10903
10904// SetGatewayARN sets the GatewayARN field's value.
10905func (s *DeleteBandwidthRateLimitInput) SetGatewayARN(v string) *DeleteBandwidthRateLimitInput {
10906	s.GatewayARN = &v
10907	return s
10908}
10909
10910// A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
10911// bandwidth rate information was deleted.
10912type DeleteBandwidthRateLimitOutput struct {
10913	_ struct{} `type:"structure"`
10914
10915	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10916	// to return a list of gateways for your account and AWS Region.
10917	GatewayARN *string `min:"50" type:"string"`
10918}
10919
10920// String returns the string representation
10921func (s DeleteBandwidthRateLimitOutput) String() string {
10922	return awsutil.Prettify(s)
10923}
10924
10925// GoString returns the string representation
10926func (s DeleteBandwidthRateLimitOutput) GoString() string {
10927	return s.String()
10928}
10929
10930// SetGatewayARN sets the GatewayARN field's value.
10931func (s *DeleteBandwidthRateLimitOutput) SetGatewayARN(v string) *DeleteBandwidthRateLimitOutput {
10932	s.GatewayARN = &v
10933	return s
10934}
10935
10936// A JSON object containing one or more of the following fields:
10937//
10938//    * DeleteChapCredentialsInput$InitiatorName
10939//
10940//    * DeleteChapCredentialsInput$TargetARN
10941type DeleteChapCredentialsInput struct {
10942	_ struct{} `type:"structure"`
10943
10944	// The iSCSI initiator that connects to the target.
10945	//
10946	// InitiatorName is a required field
10947	InitiatorName *string `min:"1" type:"string" required:"true"`
10948
10949	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
10950	// operation to return to retrieve the TargetARN for specified VolumeARN.
10951	//
10952	// TargetARN is a required field
10953	TargetARN *string `min:"50" type:"string" required:"true"`
10954}
10955
10956// String returns the string representation
10957func (s DeleteChapCredentialsInput) String() string {
10958	return awsutil.Prettify(s)
10959}
10960
10961// GoString returns the string representation
10962func (s DeleteChapCredentialsInput) GoString() string {
10963	return s.String()
10964}
10965
10966// Validate inspects the fields of the type to determine if they are valid.
10967func (s *DeleteChapCredentialsInput) Validate() error {
10968	invalidParams := request.ErrInvalidParams{Context: "DeleteChapCredentialsInput"}
10969	if s.InitiatorName == nil {
10970		invalidParams.Add(request.NewErrParamRequired("InitiatorName"))
10971	}
10972	if s.InitiatorName != nil && len(*s.InitiatorName) < 1 {
10973		invalidParams.Add(request.NewErrParamMinLen("InitiatorName", 1))
10974	}
10975	if s.TargetARN == nil {
10976		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
10977	}
10978	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
10979		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
10980	}
10981
10982	if invalidParams.Len() > 0 {
10983		return invalidParams
10984	}
10985	return nil
10986}
10987
10988// SetInitiatorName sets the InitiatorName field's value.
10989func (s *DeleteChapCredentialsInput) SetInitiatorName(v string) *DeleteChapCredentialsInput {
10990	s.InitiatorName = &v
10991	return s
10992}
10993
10994// SetTargetARN sets the TargetARN field's value.
10995func (s *DeleteChapCredentialsInput) SetTargetARN(v string) *DeleteChapCredentialsInput {
10996	s.TargetARN = &v
10997	return s
10998}
10999
11000// A JSON object containing the following fields:
11001type DeleteChapCredentialsOutput struct {
11002	_ struct{} `type:"structure"`
11003
11004	// The iSCSI initiator that connects to the target.
11005	InitiatorName *string `min:"1" type:"string"`
11006
11007	// The Amazon Resource Name (ARN) of the target.
11008	TargetARN *string `min:"50" type:"string"`
11009}
11010
11011// String returns the string representation
11012func (s DeleteChapCredentialsOutput) String() string {
11013	return awsutil.Prettify(s)
11014}
11015
11016// GoString returns the string representation
11017func (s DeleteChapCredentialsOutput) GoString() string {
11018	return s.String()
11019}
11020
11021// SetInitiatorName sets the InitiatorName field's value.
11022func (s *DeleteChapCredentialsOutput) SetInitiatorName(v string) *DeleteChapCredentialsOutput {
11023	s.InitiatorName = &v
11024	return s
11025}
11026
11027// SetTargetARN sets the TargetARN field's value.
11028func (s *DeleteChapCredentialsOutput) SetTargetARN(v string) *DeleteChapCredentialsOutput {
11029	s.TargetARN = &v
11030	return s
11031}
11032
11033// DeleteFileShareInput
11034type DeleteFileShareInput struct {
11035	_ struct{} `type:"structure"`
11036
11037	// The Amazon Resource Name (ARN) of the file share to be deleted.
11038	//
11039	// FileShareARN is a required field
11040	FileShareARN *string `min:"50" type:"string" required:"true"`
11041
11042	// If this value is set to true, the operation deletes a file share immediately
11043	// and aborts all data uploads to AWS. Otherwise, the file share is not deleted
11044	// until all data is uploaded to AWS. This process aborts the data upload process,
11045	// and the file share enters the FORCE_DELETING status.
11046	//
11047	// Valid Values: true | false
11048	ForceDelete *bool `type:"boolean"`
11049}
11050
11051// String returns the string representation
11052func (s DeleteFileShareInput) String() string {
11053	return awsutil.Prettify(s)
11054}
11055
11056// GoString returns the string representation
11057func (s DeleteFileShareInput) GoString() string {
11058	return s.String()
11059}
11060
11061// Validate inspects the fields of the type to determine if they are valid.
11062func (s *DeleteFileShareInput) Validate() error {
11063	invalidParams := request.ErrInvalidParams{Context: "DeleteFileShareInput"}
11064	if s.FileShareARN == nil {
11065		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
11066	}
11067	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
11068		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
11069	}
11070
11071	if invalidParams.Len() > 0 {
11072		return invalidParams
11073	}
11074	return nil
11075}
11076
11077// SetFileShareARN sets the FileShareARN field's value.
11078func (s *DeleteFileShareInput) SetFileShareARN(v string) *DeleteFileShareInput {
11079	s.FileShareARN = &v
11080	return s
11081}
11082
11083// SetForceDelete sets the ForceDelete field's value.
11084func (s *DeleteFileShareInput) SetForceDelete(v bool) *DeleteFileShareInput {
11085	s.ForceDelete = &v
11086	return s
11087}
11088
11089// DeleteFileShareOutput
11090type DeleteFileShareOutput struct {
11091	_ struct{} `type:"structure"`
11092
11093	// The Amazon Resource Name (ARN) of the deleted file share.
11094	FileShareARN *string `min:"50" type:"string"`
11095}
11096
11097// String returns the string representation
11098func (s DeleteFileShareOutput) String() string {
11099	return awsutil.Prettify(s)
11100}
11101
11102// GoString returns the string representation
11103func (s DeleteFileShareOutput) GoString() string {
11104	return s.String()
11105}
11106
11107// SetFileShareARN sets the FileShareARN field's value.
11108func (s *DeleteFileShareOutput) SetFileShareARN(v string) *DeleteFileShareOutput {
11109	s.FileShareARN = &v
11110	return s
11111}
11112
11113// A JSON object containing the ID of the gateway to delete.
11114type DeleteGatewayInput struct {
11115	_ struct{} `type:"structure"`
11116
11117	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11118	// to return a list of gateways for your account and AWS Region.
11119	//
11120	// GatewayARN is a required field
11121	GatewayARN *string `min:"50" type:"string" required:"true"`
11122}
11123
11124// String returns the string representation
11125func (s DeleteGatewayInput) String() string {
11126	return awsutil.Prettify(s)
11127}
11128
11129// GoString returns the string representation
11130func (s DeleteGatewayInput) GoString() string {
11131	return s.String()
11132}
11133
11134// Validate inspects the fields of the type to determine if they are valid.
11135func (s *DeleteGatewayInput) Validate() error {
11136	invalidParams := request.ErrInvalidParams{Context: "DeleteGatewayInput"}
11137	if s.GatewayARN == nil {
11138		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11139	}
11140	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11141		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11142	}
11143
11144	if invalidParams.Len() > 0 {
11145		return invalidParams
11146	}
11147	return nil
11148}
11149
11150// SetGatewayARN sets the GatewayARN field's value.
11151func (s *DeleteGatewayInput) SetGatewayARN(v string) *DeleteGatewayInput {
11152	s.GatewayARN = &v
11153	return s
11154}
11155
11156// A JSON object containing the ID of the deleted gateway.
11157type DeleteGatewayOutput struct {
11158	_ struct{} `type:"structure"`
11159
11160	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11161	// to return a list of gateways for your account and AWS Region.
11162	GatewayARN *string `min:"50" type:"string"`
11163}
11164
11165// String returns the string representation
11166func (s DeleteGatewayOutput) String() string {
11167	return awsutil.Prettify(s)
11168}
11169
11170// GoString returns the string representation
11171func (s DeleteGatewayOutput) GoString() string {
11172	return s.String()
11173}
11174
11175// SetGatewayARN sets the GatewayARN field's value.
11176func (s *DeleteGatewayOutput) SetGatewayARN(v string) *DeleteGatewayOutput {
11177	s.GatewayARN = &v
11178	return s
11179}
11180
11181type DeleteSnapshotScheduleInput struct {
11182	_ struct{} `type:"structure"`
11183
11184	// The volume which snapshot schedule to delete.
11185	//
11186	// VolumeARN is a required field
11187	VolumeARN *string `min:"50" type:"string" required:"true"`
11188}
11189
11190// String returns the string representation
11191func (s DeleteSnapshotScheduleInput) String() string {
11192	return awsutil.Prettify(s)
11193}
11194
11195// GoString returns the string representation
11196func (s DeleteSnapshotScheduleInput) GoString() string {
11197	return s.String()
11198}
11199
11200// Validate inspects the fields of the type to determine if they are valid.
11201func (s *DeleteSnapshotScheduleInput) Validate() error {
11202	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotScheduleInput"}
11203	if s.VolumeARN == nil {
11204		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
11205	}
11206	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
11207		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
11208	}
11209
11210	if invalidParams.Len() > 0 {
11211		return invalidParams
11212	}
11213	return nil
11214}
11215
11216// SetVolumeARN sets the VolumeARN field's value.
11217func (s *DeleteSnapshotScheduleInput) SetVolumeARN(v string) *DeleteSnapshotScheduleInput {
11218	s.VolumeARN = &v
11219	return s
11220}
11221
11222type DeleteSnapshotScheduleOutput struct {
11223	_ struct{} `type:"structure"`
11224
11225	// The volume which snapshot schedule was deleted.
11226	VolumeARN *string `min:"50" type:"string"`
11227}
11228
11229// String returns the string representation
11230func (s DeleteSnapshotScheduleOutput) String() string {
11231	return awsutil.Prettify(s)
11232}
11233
11234// GoString returns the string representation
11235func (s DeleteSnapshotScheduleOutput) GoString() string {
11236	return s.String()
11237}
11238
11239// SetVolumeARN sets the VolumeARN field's value.
11240func (s *DeleteSnapshotScheduleOutput) SetVolumeARN(v string) *DeleteSnapshotScheduleOutput {
11241	s.VolumeARN = &v
11242	return s
11243}
11244
11245// DeleteTapeArchiveInput
11246type DeleteTapeArchiveInput struct {
11247	_ struct{} `type:"structure"`
11248
11249	// The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual
11250	// tape shelf (VTS).
11251	//
11252	// TapeARN is a required field
11253	TapeARN *string `min:"50" type:"string" required:"true"`
11254}
11255
11256// String returns the string representation
11257func (s DeleteTapeArchiveInput) String() string {
11258	return awsutil.Prettify(s)
11259}
11260
11261// GoString returns the string representation
11262func (s DeleteTapeArchiveInput) GoString() string {
11263	return s.String()
11264}
11265
11266// Validate inspects the fields of the type to determine if they are valid.
11267func (s *DeleteTapeArchiveInput) Validate() error {
11268	invalidParams := request.ErrInvalidParams{Context: "DeleteTapeArchiveInput"}
11269	if s.TapeARN == nil {
11270		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
11271	}
11272	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
11273		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
11274	}
11275
11276	if invalidParams.Len() > 0 {
11277		return invalidParams
11278	}
11279	return nil
11280}
11281
11282// SetTapeARN sets the TapeARN field's value.
11283func (s *DeleteTapeArchiveInput) SetTapeARN(v string) *DeleteTapeArchiveInput {
11284	s.TapeARN = &v
11285	return s
11286}
11287
11288// DeleteTapeArchiveOutput
11289type DeleteTapeArchiveOutput struct {
11290	_ struct{} `type:"structure"`
11291
11292	// The Amazon Resource Name (ARN) of the virtual tape that was deleted from
11293	// the virtual tape shelf (VTS).
11294	TapeARN *string `min:"50" type:"string"`
11295}
11296
11297// String returns the string representation
11298func (s DeleteTapeArchiveOutput) String() string {
11299	return awsutil.Prettify(s)
11300}
11301
11302// GoString returns the string representation
11303func (s DeleteTapeArchiveOutput) GoString() string {
11304	return s.String()
11305}
11306
11307// SetTapeARN sets the TapeARN field's value.
11308func (s *DeleteTapeArchiveOutput) SetTapeARN(v string) *DeleteTapeArchiveOutput {
11309	s.TapeARN = &v
11310	return s
11311}
11312
11313// DeleteTapeInput
11314type DeleteTapeInput struct {
11315	_ struct{} `type:"structure"`
11316
11317	// The unique Amazon Resource Name (ARN) of the gateway that the virtual tape
11318	// to delete is associated with. Use the ListGateways operation to return a
11319	// list of gateways for your account and AWS Region.
11320	//
11321	// GatewayARN is a required field
11322	GatewayARN *string `min:"50" type:"string" required:"true"`
11323
11324	// The Amazon Resource Name (ARN) of the virtual tape to delete.
11325	//
11326	// TapeARN is a required field
11327	TapeARN *string `min:"50" type:"string" required:"true"`
11328}
11329
11330// String returns the string representation
11331func (s DeleteTapeInput) String() string {
11332	return awsutil.Prettify(s)
11333}
11334
11335// GoString returns the string representation
11336func (s DeleteTapeInput) GoString() string {
11337	return s.String()
11338}
11339
11340// Validate inspects the fields of the type to determine if they are valid.
11341func (s *DeleteTapeInput) Validate() error {
11342	invalidParams := request.ErrInvalidParams{Context: "DeleteTapeInput"}
11343	if s.GatewayARN == nil {
11344		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11345	}
11346	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11347		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11348	}
11349	if s.TapeARN == nil {
11350		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
11351	}
11352	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
11353		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
11354	}
11355
11356	if invalidParams.Len() > 0 {
11357		return invalidParams
11358	}
11359	return nil
11360}
11361
11362// SetGatewayARN sets the GatewayARN field's value.
11363func (s *DeleteTapeInput) SetGatewayARN(v string) *DeleteTapeInput {
11364	s.GatewayARN = &v
11365	return s
11366}
11367
11368// SetTapeARN sets the TapeARN field's value.
11369func (s *DeleteTapeInput) SetTapeARN(v string) *DeleteTapeInput {
11370	s.TapeARN = &v
11371	return s
11372}
11373
11374// DeleteTapeOutput
11375type DeleteTapeOutput struct {
11376	_ struct{} `type:"structure"`
11377
11378	// The Amazon Resource Name (ARN) of the deleted virtual tape.
11379	TapeARN *string `min:"50" type:"string"`
11380}
11381
11382// String returns the string representation
11383func (s DeleteTapeOutput) String() string {
11384	return awsutil.Prettify(s)
11385}
11386
11387// GoString returns the string representation
11388func (s DeleteTapeOutput) GoString() string {
11389	return s.String()
11390}
11391
11392// SetTapeARN sets the TapeARN field's value.
11393func (s *DeleteTapeOutput) SetTapeARN(v string) *DeleteTapeOutput {
11394	s.TapeARN = &v
11395	return s
11396}
11397
11398// A JSON object containing the DeleteVolumeInput$VolumeARN to delete.
11399type DeleteVolumeInput struct {
11400	_ struct{} `type:"structure"`
11401
11402	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
11403	// to return a list of gateway volumes.
11404	//
11405	// VolumeARN is a required field
11406	VolumeARN *string `min:"50" type:"string" required:"true"`
11407}
11408
11409// String returns the string representation
11410func (s DeleteVolumeInput) String() string {
11411	return awsutil.Prettify(s)
11412}
11413
11414// GoString returns the string representation
11415func (s DeleteVolumeInput) GoString() string {
11416	return s.String()
11417}
11418
11419// Validate inspects the fields of the type to determine if they are valid.
11420func (s *DeleteVolumeInput) Validate() error {
11421	invalidParams := request.ErrInvalidParams{Context: "DeleteVolumeInput"}
11422	if s.VolumeARN == nil {
11423		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
11424	}
11425	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
11426		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
11427	}
11428
11429	if invalidParams.Len() > 0 {
11430		return invalidParams
11431	}
11432	return nil
11433}
11434
11435// SetVolumeARN sets the VolumeARN field's value.
11436func (s *DeleteVolumeInput) SetVolumeARN(v string) *DeleteVolumeInput {
11437	s.VolumeARN = &v
11438	return s
11439}
11440
11441// A JSON object containing the Amazon Resource Name (ARN) of the storage volume
11442// that was deleted.
11443type DeleteVolumeOutput struct {
11444	_ struct{} `type:"structure"`
11445
11446	// The Amazon Resource Name (ARN) of the storage volume that was deleted. It
11447	// is the same ARN you provided in the request.
11448	VolumeARN *string `min:"50" type:"string"`
11449}
11450
11451// String returns the string representation
11452func (s DeleteVolumeOutput) String() string {
11453	return awsutil.Prettify(s)
11454}
11455
11456// GoString returns the string representation
11457func (s DeleteVolumeOutput) GoString() string {
11458	return s.String()
11459}
11460
11461// SetVolumeARN sets the VolumeARN field's value.
11462func (s *DeleteVolumeOutput) SetVolumeARN(v string) *DeleteVolumeOutput {
11463	s.VolumeARN = &v
11464	return s
11465}
11466
11467type DescribeAvailabilityMonitorTestInput struct {
11468	_ struct{} `type:"structure"`
11469
11470	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11471	// to return a list of gateways for your account and AWS Region.
11472	//
11473	// GatewayARN is a required field
11474	GatewayARN *string `min:"50" type:"string" required:"true"`
11475}
11476
11477// String returns the string representation
11478func (s DescribeAvailabilityMonitorTestInput) String() string {
11479	return awsutil.Prettify(s)
11480}
11481
11482// GoString returns the string representation
11483func (s DescribeAvailabilityMonitorTestInput) GoString() string {
11484	return s.String()
11485}
11486
11487// Validate inspects the fields of the type to determine if they are valid.
11488func (s *DescribeAvailabilityMonitorTestInput) Validate() error {
11489	invalidParams := request.ErrInvalidParams{Context: "DescribeAvailabilityMonitorTestInput"}
11490	if s.GatewayARN == nil {
11491		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11492	}
11493	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11494		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11495	}
11496
11497	if invalidParams.Len() > 0 {
11498		return invalidParams
11499	}
11500	return nil
11501}
11502
11503// SetGatewayARN sets the GatewayARN field's value.
11504func (s *DescribeAvailabilityMonitorTestInput) SetGatewayARN(v string) *DescribeAvailabilityMonitorTestInput {
11505	s.GatewayARN = &v
11506	return s
11507}
11508
11509type DescribeAvailabilityMonitorTestOutput struct {
11510	_ struct{} `type:"structure"`
11511
11512	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11513	// to return a list of gateways for your account and AWS Region.
11514	GatewayARN *string `min:"50" type:"string"`
11515
11516	// The time the High Availability monitoring test was started. If a test hasn't
11517	// been performed, the value of this field is null.
11518	StartTime *time.Time `type:"timestamp"`
11519
11520	// The status of the High Availability monitoring test. If a test hasn't been
11521	// performed, the value of this field is null.
11522	Status *string `type:"string" enum:"AvailabilityMonitorTestStatus"`
11523}
11524
11525// String returns the string representation
11526func (s DescribeAvailabilityMonitorTestOutput) String() string {
11527	return awsutil.Prettify(s)
11528}
11529
11530// GoString returns the string representation
11531func (s DescribeAvailabilityMonitorTestOutput) GoString() string {
11532	return s.String()
11533}
11534
11535// SetGatewayARN sets the GatewayARN field's value.
11536func (s *DescribeAvailabilityMonitorTestOutput) SetGatewayARN(v string) *DescribeAvailabilityMonitorTestOutput {
11537	s.GatewayARN = &v
11538	return s
11539}
11540
11541// SetStartTime sets the StartTime field's value.
11542func (s *DescribeAvailabilityMonitorTestOutput) SetStartTime(v time.Time) *DescribeAvailabilityMonitorTestOutput {
11543	s.StartTime = &v
11544	return s
11545}
11546
11547// SetStatus sets the Status field's value.
11548func (s *DescribeAvailabilityMonitorTestOutput) SetStatus(v string) *DescribeAvailabilityMonitorTestOutput {
11549	s.Status = &v
11550	return s
11551}
11552
11553// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
11554type DescribeBandwidthRateLimitInput struct {
11555	_ struct{} `type:"structure"`
11556
11557	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11558	// to return a list of gateways for your account and AWS Region.
11559	//
11560	// GatewayARN is a required field
11561	GatewayARN *string `min:"50" type:"string" required:"true"`
11562}
11563
11564// String returns the string representation
11565func (s DescribeBandwidthRateLimitInput) String() string {
11566	return awsutil.Prettify(s)
11567}
11568
11569// GoString returns the string representation
11570func (s DescribeBandwidthRateLimitInput) GoString() string {
11571	return s.String()
11572}
11573
11574// Validate inspects the fields of the type to determine if they are valid.
11575func (s *DescribeBandwidthRateLimitInput) Validate() error {
11576	invalidParams := request.ErrInvalidParams{Context: "DescribeBandwidthRateLimitInput"}
11577	if s.GatewayARN == nil {
11578		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11579	}
11580	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11581		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11582	}
11583
11584	if invalidParams.Len() > 0 {
11585		return invalidParams
11586	}
11587	return nil
11588}
11589
11590// SetGatewayARN sets the GatewayARN field's value.
11591func (s *DescribeBandwidthRateLimitInput) SetGatewayARN(v string) *DescribeBandwidthRateLimitInput {
11592	s.GatewayARN = &v
11593	return s
11594}
11595
11596// A JSON object containing the following fields:
11597type DescribeBandwidthRateLimitOutput struct {
11598	_ struct{} `type:"structure"`
11599
11600	// The average download bandwidth rate limit in bits per second. This field
11601	// does not appear in the response if the download rate limit is not set.
11602	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
11603
11604	// The average upload bandwidth rate limit in bits per second. This field does
11605	// not appear in the response if the upload rate limit is not set.
11606	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
11607
11608	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11609	// to return a list of gateways for your account and AWS Region.
11610	GatewayARN *string `min:"50" type:"string"`
11611}
11612
11613// String returns the string representation
11614func (s DescribeBandwidthRateLimitOutput) String() string {
11615	return awsutil.Prettify(s)
11616}
11617
11618// GoString returns the string representation
11619func (s DescribeBandwidthRateLimitOutput) GoString() string {
11620	return s.String()
11621}
11622
11623// SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
11624func (s *DescribeBandwidthRateLimitOutput) SetAverageDownloadRateLimitInBitsPerSec(v int64) *DescribeBandwidthRateLimitOutput {
11625	s.AverageDownloadRateLimitInBitsPerSec = &v
11626	return s
11627}
11628
11629// SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
11630func (s *DescribeBandwidthRateLimitOutput) SetAverageUploadRateLimitInBitsPerSec(v int64) *DescribeBandwidthRateLimitOutput {
11631	s.AverageUploadRateLimitInBitsPerSec = &v
11632	return s
11633}
11634
11635// SetGatewayARN sets the GatewayARN field's value.
11636func (s *DescribeBandwidthRateLimitOutput) SetGatewayARN(v string) *DescribeBandwidthRateLimitOutput {
11637	s.GatewayARN = &v
11638	return s
11639}
11640
11641type DescribeCacheInput struct {
11642	_ struct{} `type:"structure"`
11643
11644	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11645	// to return a list of gateways for your account and AWS Region.
11646	//
11647	// GatewayARN is a required field
11648	GatewayARN *string `min:"50" type:"string" required:"true"`
11649}
11650
11651// String returns the string representation
11652func (s DescribeCacheInput) String() string {
11653	return awsutil.Prettify(s)
11654}
11655
11656// GoString returns the string representation
11657func (s DescribeCacheInput) GoString() string {
11658	return s.String()
11659}
11660
11661// Validate inspects the fields of the type to determine if they are valid.
11662func (s *DescribeCacheInput) Validate() error {
11663	invalidParams := request.ErrInvalidParams{Context: "DescribeCacheInput"}
11664	if s.GatewayARN == nil {
11665		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11666	}
11667	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11668		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11669	}
11670
11671	if invalidParams.Len() > 0 {
11672		return invalidParams
11673	}
11674	return nil
11675}
11676
11677// SetGatewayARN sets the GatewayARN field's value.
11678func (s *DescribeCacheInput) SetGatewayARN(v string) *DescribeCacheInput {
11679	s.GatewayARN = &v
11680	return s
11681}
11682
11683type DescribeCacheOutput struct {
11684	_ struct{} `type:"structure"`
11685
11686	// The amount of cache in bytes allocated to a gateway.
11687	CacheAllocatedInBytes *int64 `type:"long"`
11688
11689	// The file share's contribution to the overall percentage of the gateway's
11690	// cache that has not been persisted to AWS. The sample is taken at the end
11691	// of the reporting period.
11692	CacheDirtyPercentage *float64 `type:"double"`
11693
11694	// Percent of application read operations from the file shares that are served
11695	// from cache. The sample is taken at the end of the reporting period.
11696	CacheHitPercentage *float64 `type:"double"`
11697
11698	// Percent of application read operations from the file shares that are not
11699	// served from cache. The sample is taken at the end of the reporting period.
11700	CacheMissPercentage *float64 `type:"double"`
11701
11702	// Percent use of the gateway's cache storage. This metric applies only to the
11703	// gateway-cached volume setup. The sample is taken at the end of the reporting
11704	// period.
11705	CacheUsedPercentage *float64 `type:"double"`
11706
11707	// An array of strings that identify disks that are to be configured as working
11708	// storage. Each string has a minimum length of 1 and maximum length of 300.
11709	// You can get the disk IDs from the ListLocalDisks API.
11710	DiskIds []*string `type:"list"`
11711
11712	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11713	// to return a list of gateways for your account and AWS Region.
11714	GatewayARN *string `min:"50" type:"string"`
11715}
11716
11717// String returns the string representation
11718func (s DescribeCacheOutput) String() string {
11719	return awsutil.Prettify(s)
11720}
11721
11722// GoString returns the string representation
11723func (s DescribeCacheOutput) GoString() string {
11724	return s.String()
11725}
11726
11727// SetCacheAllocatedInBytes sets the CacheAllocatedInBytes field's value.
11728func (s *DescribeCacheOutput) SetCacheAllocatedInBytes(v int64) *DescribeCacheOutput {
11729	s.CacheAllocatedInBytes = &v
11730	return s
11731}
11732
11733// SetCacheDirtyPercentage sets the CacheDirtyPercentage field's value.
11734func (s *DescribeCacheOutput) SetCacheDirtyPercentage(v float64) *DescribeCacheOutput {
11735	s.CacheDirtyPercentage = &v
11736	return s
11737}
11738
11739// SetCacheHitPercentage sets the CacheHitPercentage field's value.
11740func (s *DescribeCacheOutput) SetCacheHitPercentage(v float64) *DescribeCacheOutput {
11741	s.CacheHitPercentage = &v
11742	return s
11743}
11744
11745// SetCacheMissPercentage sets the CacheMissPercentage field's value.
11746func (s *DescribeCacheOutput) SetCacheMissPercentage(v float64) *DescribeCacheOutput {
11747	s.CacheMissPercentage = &v
11748	return s
11749}
11750
11751// SetCacheUsedPercentage sets the CacheUsedPercentage field's value.
11752func (s *DescribeCacheOutput) SetCacheUsedPercentage(v float64) *DescribeCacheOutput {
11753	s.CacheUsedPercentage = &v
11754	return s
11755}
11756
11757// SetDiskIds sets the DiskIds field's value.
11758func (s *DescribeCacheOutput) SetDiskIds(v []*string) *DescribeCacheOutput {
11759	s.DiskIds = v
11760	return s
11761}
11762
11763// SetGatewayARN sets the GatewayARN field's value.
11764func (s *DescribeCacheOutput) SetGatewayARN(v string) *DescribeCacheOutput {
11765	s.GatewayARN = &v
11766	return s
11767}
11768
11769type DescribeCachediSCSIVolumesInput struct {
11770	_ struct{} `type:"structure"`
11771
11772	// An array of strings where each string represents the Amazon Resource Name
11773	// (ARN) of a cached volume. All of the specified cached volumes must be from
11774	// the same gateway. Use ListVolumes to get volume ARNs for a gateway.
11775	//
11776	// VolumeARNs is a required field
11777	VolumeARNs []*string `type:"list" required:"true"`
11778}
11779
11780// String returns the string representation
11781func (s DescribeCachediSCSIVolumesInput) String() string {
11782	return awsutil.Prettify(s)
11783}
11784
11785// GoString returns the string representation
11786func (s DescribeCachediSCSIVolumesInput) GoString() string {
11787	return s.String()
11788}
11789
11790// Validate inspects the fields of the type to determine if they are valid.
11791func (s *DescribeCachediSCSIVolumesInput) Validate() error {
11792	invalidParams := request.ErrInvalidParams{Context: "DescribeCachediSCSIVolumesInput"}
11793	if s.VolumeARNs == nil {
11794		invalidParams.Add(request.NewErrParamRequired("VolumeARNs"))
11795	}
11796
11797	if invalidParams.Len() > 0 {
11798		return invalidParams
11799	}
11800	return nil
11801}
11802
11803// SetVolumeARNs sets the VolumeARNs field's value.
11804func (s *DescribeCachediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeCachediSCSIVolumesInput {
11805	s.VolumeARNs = v
11806	return s
11807}
11808
11809// A JSON object containing the following fields:
11810type DescribeCachediSCSIVolumesOutput struct {
11811	_ struct{} `type:"structure"`
11812
11813	// An array of objects where each object contains metadata about one cached
11814	// volume.
11815	CachediSCSIVolumes []*CachediSCSIVolume `type:"list"`
11816}
11817
11818// String returns the string representation
11819func (s DescribeCachediSCSIVolumesOutput) String() string {
11820	return awsutil.Prettify(s)
11821}
11822
11823// GoString returns the string representation
11824func (s DescribeCachediSCSIVolumesOutput) GoString() string {
11825	return s.String()
11826}
11827
11828// SetCachediSCSIVolumes sets the CachediSCSIVolumes field's value.
11829func (s *DescribeCachediSCSIVolumesOutput) SetCachediSCSIVolumes(v []*CachediSCSIVolume) *DescribeCachediSCSIVolumesOutput {
11830	s.CachediSCSIVolumes = v
11831	return s
11832}
11833
11834// A JSON object containing the Amazon Resource Name (ARN) of the iSCSI volume
11835// target.
11836type DescribeChapCredentialsInput struct {
11837	_ struct{} `type:"structure"`
11838
11839	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
11840	// operation to return to retrieve the TargetARN for specified VolumeARN.
11841	//
11842	// TargetARN is a required field
11843	TargetARN *string `min:"50" type:"string" required:"true"`
11844}
11845
11846// String returns the string representation
11847func (s DescribeChapCredentialsInput) String() string {
11848	return awsutil.Prettify(s)
11849}
11850
11851// GoString returns the string representation
11852func (s DescribeChapCredentialsInput) GoString() string {
11853	return s.String()
11854}
11855
11856// Validate inspects the fields of the type to determine if they are valid.
11857func (s *DescribeChapCredentialsInput) Validate() error {
11858	invalidParams := request.ErrInvalidParams{Context: "DescribeChapCredentialsInput"}
11859	if s.TargetARN == nil {
11860		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
11861	}
11862	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
11863		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
11864	}
11865
11866	if invalidParams.Len() > 0 {
11867		return invalidParams
11868	}
11869	return nil
11870}
11871
11872// SetTargetARN sets the TargetARN field's value.
11873func (s *DescribeChapCredentialsInput) SetTargetARN(v string) *DescribeChapCredentialsInput {
11874	s.TargetARN = &v
11875	return s
11876}
11877
11878// A JSON object containing the following fields:
11879type DescribeChapCredentialsOutput struct {
11880	_ struct{} `type:"structure"`
11881
11882	// An array of ChapInfo objects that represent CHAP credentials. Each object
11883	// in the array contains CHAP credential information for one target-initiator
11884	// pair. If no CHAP credentials are set, an empty array is returned. CHAP credential
11885	// information is provided in a JSON object with the following fields:
11886	//
11887	//    * InitiatorName: The iSCSI initiator that connects to the target.
11888	//
11889	//    * SecretToAuthenticateInitiator: The secret key that the initiator (for
11890	//    example, the Windows client) must provide to participate in mutual CHAP
11891	//    with the target.
11892	//
11893	//    * SecretToAuthenticateTarget: The secret key that the target must provide
11894	//    to participate in mutual CHAP with the initiator (e.g. Windows client).
11895	//
11896	//    * TargetARN: The Amazon Resource Name (ARN) of the storage volume.
11897	ChapCredentials []*ChapInfo `type:"list"`
11898}
11899
11900// String returns the string representation
11901func (s DescribeChapCredentialsOutput) String() string {
11902	return awsutil.Prettify(s)
11903}
11904
11905// GoString returns the string representation
11906func (s DescribeChapCredentialsOutput) GoString() string {
11907	return s.String()
11908}
11909
11910// SetChapCredentials sets the ChapCredentials field's value.
11911func (s *DescribeChapCredentialsOutput) SetChapCredentials(v []*ChapInfo) *DescribeChapCredentialsOutput {
11912	s.ChapCredentials = v
11913	return s
11914}
11915
11916// A JSON object containing the ID of the gateway.
11917type DescribeGatewayInformationInput struct {
11918	_ struct{} `type:"structure"`
11919
11920	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11921	// to return a list of gateways for your account and AWS Region.
11922	//
11923	// GatewayARN is a required field
11924	GatewayARN *string `min:"50" type:"string" required:"true"`
11925}
11926
11927// String returns the string representation
11928func (s DescribeGatewayInformationInput) String() string {
11929	return awsutil.Prettify(s)
11930}
11931
11932// GoString returns the string representation
11933func (s DescribeGatewayInformationInput) GoString() string {
11934	return s.String()
11935}
11936
11937// Validate inspects the fields of the type to determine if they are valid.
11938func (s *DescribeGatewayInformationInput) Validate() error {
11939	invalidParams := request.ErrInvalidParams{Context: "DescribeGatewayInformationInput"}
11940	if s.GatewayARN == nil {
11941		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11942	}
11943	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11944		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11945	}
11946
11947	if invalidParams.Len() > 0 {
11948		return invalidParams
11949	}
11950	return nil
11951}
11952
11953// SetGatewayARN sets the GatewayARN field's value.
11954func (s *DescribeGatewayInformationInput) SetGatewayARN(v string) *DescribeGatewayInformationInput {
11955	s.GatewayARN = &v
11956	return s
11957}
11958
11959// A JSON object containing the following fields:
11960type DescribeGatewayInformationOutput struct {
11961	_ struct{} `type:"structure"`
11962
11963	// The Amazon Resource Name (ARN) of the Amazon CloudWatch Log Group that is
11964	// used to monitor events in the gateway.
11965	CloudWatchLogGroupARN *string `type:"string"`
11966
11967	// Date after which this gateway will not receive software updates for new features
11968	// and bug fixes.
11969	DeprecationDate *string `min:"1" type:"string"`
11970
11971	// The ID of the Amazon EC2 instance that was used to launch the gateway.
11972	Ec2InstanceId *string `type:"string"`
11973
11974	// The AWS Region where the Amazon EC2 instance is located.
11975	Ec2InstanceRegion *string `type:"string"`
11976
11977	// The type of endpoint for your gateway.
11978	//
11979	// Valid Values: STANDARD | FIPS
11980	EndpointType *string `min:"4" type:"string"`
11981
11982	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11983	// to return a list of gateways for your account and AWS Region.
11984	GatewayARN *string `min:"50" type:"string"`
11985
11986	// The unique identifier assigned to your gateway during activation. This ID
11987	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
11988	// input for other operations.
11989	GatewayId *string `min:"12" type:"string"`
11990
11991	// The name you configured for your gateway.
11992	GatewayName *string `type:"string"`
11993
11994	// A NetworkInterface array that contains descriptions of the gateway network
11995	// interfaces.
11996	GatewayNetworkInterfaces []*NetworkInterface `type:"list"`
11997
11998	// A value that indicates the operating state of the gateway.
11999	GatewayState *string `min:"2" type:"string"`
12000
12001	// A value that indicates the time zone configured for the gateway.
12002	GatewayTimezone *string `min:"3" type:"string"`
12003
12004	// The type of the gateway.
12005	GatewayType *string `min:"2" type:"string"`
12006
12007	// The type of hypervisor environment used by the host.
12008	HostEnvironment *string `type:"string" enum:"HostEnvironment"`
12009
12010	// The date on which the last software update was applied to the gateway. If
12011	// the gateway has never been updated, this field does not return a value in
12012	// the response.
12013	LastSoftwareUpdate *string `min:"1" type:"string"`
12014
12015	// The date on which an update to the gateway is available. This date is in
12016	// the time zone of the gateway. If the gateway is not available for an update
12017	// this field is not returned in the response.
12018	NextUpdateAvailabilityDate *string `min:"1" type:"string"`
12019
12020	// Date after which this gateway will not receive software updates for new features.
12021	SoftwareUpdatesEndDate *string `min:"1" type:"string"`
12022
12023	// A list of up to 50 tags assigned to the gateway, sorted alphabetically by
12024	// key name. Each tag is a key-value pair. For a gateway with more than 10 tags
12025	// assigned, you can view all tags using the ListTagsForResource API operation.
12026	Tags []*Tag `type:"list"`
12027
12028	// The configuration settings for the virtual private cloud (VPC) endpoint for
12029	// your gateway.
12030	VPCEndpoint *string `type:"string"`
12031}
12032
12033// String returns the string representation
12034func (s DescribeGatewayInformationOutput) String() string {
12035	return awsutil.Prettify(s)
12036}
12037
12038// GoString returns the string representation
12039func (s DescribeGatewayInformationOutput) GoString() string {
12040	return s.String()
12041}
12042
12043// SetCloudWatchLogGroupARN sets the CloudWatchLogGroupARN field's value.
12044func (s *DescribeGatewayInformationOutput) SetCloudWatchLogGroupARN(v string) *DescribeGatewayInformationOutput {
12045	s.CloudWatchLogGroupARN = &v
12046	return s
12047}
12048
12049// SetDeprecationDate sets the DeprecationDate field's value.
12050func (s *DescribeGatewayInformationOutput) SetDeprecationDate(v string) *DescribeGatewayInformationOutput {
12051	s.DeprecationDate = &v
12052	return s
12053}
12054
12055// SetEc2InstanceId sets the Ec2InstanceId field's value.
12056func (s *DescribeGatewayInformationOutput) SetEc2InstanceId(v string) *DescribeGatewayInformationOutput {
12057	s.Ec2InstanceId = &v
12058	return s
12059}
12060
12061// SetEc2InstanceRegion sets the Ec2InstanceRegion field's value.
12062func (s *DescribeGatewayInformationOutput) SetEc2InstanceRegion(v string) *DescribeGatewayInformationOutput {
12063	s.Ec2InstanceRegion = &v
12064	return s
12065}
12066
12067// SetEndpointType sets the EndpointType field's value.
12068func (s *DescribeGatewayInformationOutput) SetEndpointType(v string) *DescribeGatewayInformationOutput {
12069	s.EndpointType = &v
12070	return s
12071}
12072
12073// SetGatewayARN sets the GatewayARN field's value.
12074func (s *DescribeGatewayInformationOutput) SetGatewayARN(v string) *DescribeGatewayInformationOutput {
12075	s.GatewayARN = &v
12076	return s
12077}
12078
12079// SetGatewayId sets the GatewayId field's value.
12080func (s *DescribeGatewayInformationOutput) SetGatewayId(v string) *DescribeGatewayInformationOutput {
12081	s.GatewayId = &v
12082	return s
12083}
12084
12085// SetGatewayName sets the GatewayName field's value.
12086func (s *DescribeGatewayInformationOutput) SetGatewayName(v string) *DescribeGatewayInformationOutput {
12087	s.GatewayName = &v
12088	return s
12089}
12090
12091// SetGatewayNetworkInterfaces sets the GatewayNetworkInterfaces field's value.
12092func (s *DescribeGatewayInformationOutput) SetGatewayNetworkInterfaces(v []*NetworkInterface) *DescribeGatewayInformationOutput {
12093	s.GatewayNetworkInterfaces = v
12094	return s
12095}
12096
12097// SetGatewayState sets the GatewayState field's value.
12098func (s *DescribeGatewayInformationOutput) SetGatewayState(v string) *DescribeGatewayInformationOutput {
12099	s.GatewayState = &v
12100	return s
12101}
12102
12103// SetGatewayTimezone sets the GatewayTimezone field's value.
12104func (s *DescribeGatewayInformationOutput) SetGatewayTimezone(v string) *DescribeGatewayInformationOutput {
12105	s.GatewayTimezone = &v
12106	return s
12107}
12108
12109// SetGatewayType sets the GatewayType field's value.
12110func (s *DescribeGatewayInformationOutput) SetGatewayType(v string) *DescribeGatewayInformationOutput {
12111	s.GatewayType = &v
12112	return s
12113}
12114
12115// SetHostEnvironment sets the HostEnvironment field's value.
12116func (s *DescribeGatewayInformationOutput) SetHostEnvironment(v string) *DescribeGatewayInformationOutput {
12117	s.HostEnvironment = &v
12118	return s
12119}
12120
12121// SetLastSoftwareUpdate sets the LastSoftwareUpdate field's value.
12122func (s *DescribeGatewayInformationOutput) SetLastSoftwareUpdate(v string) *DescribeGatewayInformationOutput {
12123	s.LastSoftwareUpdate = &v
12124	return s
12125}
12126
12127// SetNextUpdateAvailabilityDate sets the NextUpdateAvailabilityDate field's value.
12128func (s *DescribeGatewayInformationOutput) SetNextUpdateAvailabilityDate(v string) *DescribeGatewayInformationOutput {
12129	s.NextUpdateAvailabilityDate = &v
12130	return s
12131}
12132
12133// SetSoftwareUpdatesEndDate sets the SoftwareUpdatesEndDate field's value.
12134func (s *DescribeGatewayInformationOutput) SetSoftwareUpdatesEndDate(v string) *DescribeGatewayInformationOutput {
12135	s.SoftwareUpdatesEndDate = &v
12136	return s
12137}
12138
12139// SetTags sets the Tags field's value.
12140func (s *DescribeGatewayInformationOutput) SetTags(v []*Tag) *DescribeGatewayInformationOutput {
12141	s.Tags = v
12142	return s
12143}
12144
12145// SetVPCEndpoint sets the VPCEndpoint field's value.
12146func (s *DescribeGatewayInformationOutput) SetVPCEndpoint(v string) *DescribeGatewayInformationOutput {
12147	s.VPCEndpoint = &v
12148	return s
12149}
12150
12151// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
12152type DescribeMaintenanceStartTimeInput struct {
12153	_ struct{} `type:"structure"`
12154
12155	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12156	// to return a list of gateways for your account and AWS Region.
12157	//
12158	// GatewayARN is a required field
12159	GatewayARN *string `min:"50" type:"string" required:"true"`
12160}
12161
12162// String returns the string representation
12163func (s DescribeMaintenanceStartTimeInput) String() string {
12164	return awsutil.Prettify(s)
12165}
12166
12167// GoString returns the string representation
12168func (s DescribeMaintenanceStartTimeInput) GoString() string {
12169	return s.String()
12170}
12171
12172// Validate inspects the fields of the type to determine if they are valid.
12173func (s *DescribeMaintenanceStartTimeInput) Validate() error {
12174	invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceStartTimeInput"}
12175	if s.GatewayARN == nil {
12176		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12177	}
12178	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12179		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12180	}
12181
12182	if invalidParams.Len() > 0 {
12183		return invalidParams
12184	}
12185	return nil
12186}
12187
12188// SetGatewayARN sets the GatewayARN field's value.
12189func (s *DescribeMaintenanceStartTimeInput) SetGatewayARN(v string) *DescribeMaintenanceStartTimeInput {
12190	s.GatewayARN = &v
12191	return s
12192}
12193
12194// A JSON object containing the following fields:
12195//
12196//    * DescribeMaintenanceStartTimeOutput$DayOfMonth
12197//
12198//    * DescribeMaintenanceStartTimeOutput$DayOfWeek
12199//
12200//    * DescribeMaintenanceStartTimeOutput$HourOfDay
12201//
12202//    * DescribeMaintenanceStartTimeOutput$MinuteOfHour
12203//
12204//    * DescribeMaintenanceStartTimeOutput$Timezone
12205type DescribeMaintenanceStartTimeOutput struct {
12206	_ struct{} `type:"structure"`
12207
12208	// The day of the month component of the maintenance start time represented
12209	// as an ordinal number from 1 to 28, where 1 represents the first day of the
12210	// month and 28 represents the last day of the month.
12211	DayOfMonth *int64 `min:"1" type:"integer"`
12212
12213	// An ordinal number between 0 and 6 that represents the day of the week, where
12214	// 0 represents Sunday and 6 represents Saturday. The day of week is in the
12215	// time zone of the gateway.
12216	DayOfWeek *int64 `type:"integer"`
12217
12218	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12219	// to return a list of gateways for your account and AWS Region.
12220	GatewayARN *string `min:"50" type:"string"`
12221
12222	// The hour component of the maintenance start time represented as hh, where
12223	// hh is the hour (0 to 23). The hour of the day is in the time zone of the
12224	// gateway.
12225	HourOfDay *int64 `type:"integer"`
12226
12227	// The minute component of the maintenance start time represented as mm, where
12228	// mm is the minute (0 to 59). The minute of the hour is in the time zone of
12229	// the gateway.
12230	MinuteOfHour *int64 `type:"integer"`
12231
12232	// A value that indicates the time zone that is set for the gateway. The start
12233	// time and day of week specified should be in the time zone of the gateway.
12234	Timezone *string `min:"3" type:"string"`
12235}
12236
12237// String returns the string representation
12238func (s DescribeMaintenanceStartTimeOutput) String() string {
12239	return awsutil.Prettify(s)
12240}
12241
12242// GoString returns the string representation
12243func (s DescribeMaintenanceStartTimeOutput) GoString() string {
12244	return s.String()
12245}
12246
12247// SetDayOfMonth sets the DayOfMonth field's value.
12248func (s *DescribeMaintenanceStartTimeOutput) SetDayOfMonth(v int64) *DescribeMaintenanceStartTimeOutput {
12249	s.DayOfMonth = &v
12250	return s
12251}
12252
12253// SetDayOfWeek sets the DayOfWeek field's value.
12254func (s *DescribeMaintenanceStartTimeOutput) SetDayOfWeek(v int64) *DescribeMaintenanceStartTimeOutput {
12255	s.DayOfWeek = &v
12256	return s
12257}
12258
12259// SetGatewayARN sets the GatewayARN field's value.
12260func (s *DescribeMaintenanceStartTimeOutput) SetGatewayARN(v string) *DescribeMaintenanceStartTimeOutput {
12261	s.GatewayARN = &v
12262	return s
12263}
12264
12265// SetHourOfDay sets the HourOfDay field's value.
12266func (s *DescribeMaintenanceStartTimeOutput) SetHourOfDay(v int64) *DescribeMaintenanceStartTimeOutput {
12267	s.HourOfDay = &v
12268	return s
12269}
12270
12271// SetMinuteOfHour sets the MinuteOfHour field's value.
12272func (s *DescribeMaintenanceStartTimeOutput) SetMinuteOfHour(v int64) *DescribeMaintenanceStartTimeOutput {
12273	s.MinuteOfHour = &v
12274	return s
12275}
12276
12277// SetTimezone sets the Timezone field's value.
12278func (s *DescribeMaintenanceStartTimeOutput) SetTimezone(v string) *DescribeMaintenanceStartTimeOutput {
12279	s.Timezone = &v
12280	return s
12281}
12282
12283// DescribeNFSFileSharesInput
12284type DescribeNFSFileSharesInput struct {
12285	_ struct{} `type:"structure"`
12286
12287	// An array containing the Amazon Resource Name (ARN) of each file share to
12288	// be described.
12289	//
12290	// FileShareARNList is a required field
12291	FileShareARNList []*string `min:"1" type:"list" required:"true"`
12292}
12293
12294// String returns the string representation
12295func (s DescribeNFSFileSharesInput) String() string {
12296	return awsutil.Prettify(s)
12297}
12298
12299// GoString returns the string representation
12300func (s DescribeNFSFileSharesInput) GoString() string {
12301	return s.String()
12302}
12303
12304// Validate inspects the fields of the type to determine if they are valid.
12305func (s *DescribeNFSFileSharesInput) Validate() error {
12306	invalidParams := request.ErrInvalidParams{Context: "DescribeNFSFileSharesInput"}
12307	if s.FileShareARNList == nil {
12308		invalidParams.Add(request.NewErrParamRequired("FileShareARNList"))
12309	}
12310	if s.FileShareARNList != nil && len(s.FileShareARNList) < 1 {
12311		invalidParams.Add(request.NewErrParamMinLen("FileShareARNList", 1))
12312	}
12313
12314	if invalidParams.Len() > 0 {
12315		return invalidParams
12316	}
12317	return nil
12318}
12319
12320// SetFileShareARNList sets the FileShareARNList field's value.
12321func (s *DescribeNFSFileSharesInput) SetFileShareARNList(v []*string) *DescribeNFSFileSharesInput {
12322	s.FileShareARNList = v
12323	return s
12324}
12325
12326// DescribeNFSFileSharesOutput
12327type DescribeNFSFileSharesOutput struct {
12328	_ struct{} `type:"structure"`
12329
12330	// An array containing a description for each requested file share.
12331	NFSFileShareInfoList []*NFSFileShareInfo `type:"list"`
12332}
12333
12334// String returns the string representation
12335func (s DescribeNFSFileSharesOutput) String() string {
12336	return awsutil.Prettify(s)
12337}
12338
12339// GoString returns the string representation
12340func (s DescribeNFSFileSharesOutput) GoString() string {
12341	return s.String()
12342}
12343
12344// SetNFSFileShareInfoList sets the NFSFileShareInfoList field's value.
12345func (s *DescribeNFSFileSharesOutput) SetNFSFileShareInfoList(v []*NFSFileShareInfo) *DescribeNFSFileSharesOutput {
12346	s.NFSFileShareInfoList = v
12347	return s
12348}
12349
12350// DescribeSMBFileSharesInput
12351type DescribeSMBFileSharesInput struct {
12352	_ struct{} `type:"structure"`
12353
12354	// An array containing the Amazon Resource Name (ARN) of each file share to
12355	// be described.
12356	//
12357	// FileShareARNList is a required field
12358	FileShareARNList []*string `min:"1" type:"list" required:"true"`
12359}
12360
12361// String returns the string representation
12362func (s DescribeSMBFileSharesInput) String() string {
12363	return awsutil.Prettify(s)
12364}
12365
12366// GoString returns the string representation
12367func (s DescribeSMBFileSharesInput) GoString() string {
12368	return s.String()
12369}
12370
12371// Validate inspects the fields of the type to determine if they are valid.
12372func (s *DescribeSMBFileSharesInput) Validate() error {
12373	invalidParams := request.ErrInvalidParams{Context: "DescribeSMBFileSharesInput"}
12374	if s.FileShareARNList == nil {
12375		invalidParams.Add(request.NewErrParamRequired("FileShareARNList"))
12376	}
12377	if s.FileShareARNList != nil && len(s.FileShareARNList) < 1 {
12378		invalidParams.Add(request.NewErrParamMinLen("FileShareARNList", 1))
12379	}
12380
12381	if invalidParams.Len() > 0 {
12382		return invalidParams
12383	}
12384	return nil
12385}
12386
12387// SetFileShareARNList sets the FileShareARNList field's value.
12388func (s *DescribeSMBFileSharesInput) SetFileShareARNList(v []*string) *DescribeSMBFileSharesInput {
12389	s.FileShareARNList = v
12390	return s
12391}
12392
12393// DescribeSMBFileSharesOutput
12394type DescribeSMBFileSharesOutput struct {
12395	_ struct{} `type:"structure"`
12396
12397	// An array containing a description for each requested file share.
12398	SMBFileShareInfoList []*SMBFileShareInfo `type:"list"`
12399}
12400
12401// String returns the string representation
12402func (s DescribeSMBFileSharesOutput) String() string {
12403	return awsutil.Prettify(s)
12404}
12405
12406// GoString returns the string representation
12407func (s DescribeSMBFileSharesOutput) GoString() string {
12408	return s.String()
12409}
12410
12411// SetSMBFileShareInfoList sets the SMBFileShareInfoList field's value.
12412func (s *DescribeSMBFileSharesOutput) SetSMBFileShareInfoList(v []*SMBFileShareInfo) *DescribeSMBFileSharesOutput {
12413	s.SMBFileShareInfoList = v
12414	return s
12415}
12416
12417type DescribeSMBSettingsInput struct {
12418	_ struct{} `type:"structure"`
12419
12420	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12421	// to return a list of gateways for your account and AWS Region.
12422	//
12423	// GatewayARN is a required field
12424	GatewayARN *string `min:"50" type:"string" required:"true"`
12425}
12426
12427// String returns the string representation
12428func (s DescribeSMBSettingsInput) String() string {
12429	return awsutil.Prettify(s)
12430}
12431
12432// GoString returns the string representation
12433func (s DescribeSMBSettingsInput) GoString() string {
12434	return s.String()
12435}
12436
12437// Validate inspects the fields of the type to determine if they are valid.
12438func (s *DescribeSMBSettingsInput) Validate() error {
12439	invalidParams := request.ErrInvalidParams{Context: "DescribeSMBSettingsInput"}
12440	if s.GatewayARN == nil {
12441		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12442	}
12443	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12444		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12445	}
12446
12447	if invalidParams.Len() > 0 {
12448		return invalidParams
12449	}
12450	return nil
12451}
12452
12453// SetGatewayARN sets the GatewayARN field's value.
12454func (s *DescribeSMBSettingsInput) SetGatewayARN(v string) *DescribeSMBSettingsInput {
12455	s.GatewayARN = &v
12456	return s
12457}
12458
12459type DescribeSMBSettingsOutput struct {
12460	_ struct{} `type:"structure"`
12461
12462	// Indicates the status of a gateway that is a member of the Active Directory
12463	// domain.
12464	//
12465	//    * ACCESS_DENIED: Indicates that the JoinDomain operation failed due to
12466	//    an authentication error.
12467	//
12468	//    * DETACHED: Indicates that gateway is not joined to a domain.
12469	//
12470	//    * JOINED: Indicates that the gateway has successfully joined a domain.
12471	//
12472	//    * JOINING: Indicates that a JoinDomain operation is in progress.
12473	//
12474	//    * NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network
12475	//    or connectivity error.
12476	//
12477	//    * TIMEOUT: Indicates that the JoinDomain operation failed because the
12478	//    operation didn't complete within the allotted time.
12479	//
12480	//    * UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to
12481	//    another type of error.
12482	ActiveDirectoryStatus *string `type:"string" enum:"ActiveDirectoryStatus"`
12483
12484	// The name of the domain that the gateway is joined to.
12485	DomainName *string `min:"1" type:"string"`
12486
12487	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12488	// to return a list of gateways for your account and AWS Region.
12489	GatewayARN *string `min:"50" type:"string"`
12490
12491	// This value is true if a password for the guest user smbguest is set, otherwise
12492	// false.
12493	//
12494	// Valid Values: true | false
12495	SMBGuestPasswordSet *bool `type:"boolean"`
12496
12497	// The type of security strategy that was specified for file gateway.
12498	//
12499	//    * ClientSpecified: If you use this option, requests are established based
12500	//    on what is negotiated by the client. This option is recommended when you
12501	//    want to maximize compatibility across different clients in your environment.
12502	//
12503	//    * MandatorySigning: If you use this option, file gateway only allows connections
12504	//    from SMBv2 or SMBv3 clients that have signing enabled. This option works
12505	//    with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer.
12506	//
12507	//    * MandatoryEncryption: If you use this option, file gateway only allows
12508	//    connections from SMBv3 clients that have encryption enabled. This option
12509	//    is highly recommended for environments that handle sensitive data. This
12510	//    option works with SMB clients on Microsoft Windows 8, Windows Server 2012
12511	//    or newer.
12512	SMBSecurityStrategy *string `type:"string" enum:"SMBSecurityStrategy"`
12513}
12514
12515// String returns the string representation
12516func (s DescribeSMBSettingsOutput) String() string {
12517	return awsutil.Prettify(s)
12518}
12519
12520// GoString returns the string representation
12521func (s DescribeSMBSettingsOutput) GoString() string {
12522	return s.String()
12523}
12524
12525// SetActiveDirectoryStatus sets the ActiveDirectoryStatus field's value.
12526func (s *DescribeSMBSettingsOutput) SetActiveDirectoryStatus(v string) *DescribeSMBSettingsOutput {
12527	s.ActiveDirectoryStatus = &v
12528	return s
12529}
12530
12531// SetDomainName sets the DomainName field's value.
12532func (s *DescribeSMBSettingsOutput) SetDomainName(v string) *DescribeSMBSettingsOutput {
12533	s.DomainName = &v
12534	return s
12535}
12536
12537// SetGatewayARN sets the GatewayARN field's value.
12538func (s *DescribeSMBSettingsOutput) SetGatewayARN(v string) *DescribeSMBSettingsOutput {
12539	s.GatewayARN = &v
12540	return s
12541}
12542
12543// SetSMBGuestPasswordSet sets the SMBGuestPasswordSet field's value.
12544func (s *DescribeSMBSettingsOutput) SetSMBGuestPasswordSet(v bool) *DescribeSMBSettingsOutput {
12545	s.SMBGuestPasswordSet = &v
12546	return s
12547}
12548
12549// SetSMBSecurityStrategy sets the SMBSecurityStrategy field's value.
12550func (s *DescribeSMBSettingsOutput) SetSMBSecurityStrategy(v string) *DescribeSMBSettingsOutput {
12551	s.SMBSecurityStrategy = &v
12552	return s
12553}
12554
12555// A JSON object containing the DescribeSnapshotScheduleInput$VolumeARN of the
12556// volume.
12557type DescribeSnapshotScheduleInput struct {
12558	_ struct{} `type:"structure"`
12559
12560	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
12561	// to return a list of gateway volumes.
12562	//
12563	// VolumeARN is a required field
12564	VolumeARN *string `min:"50" type:"string" required:"true"`
12565}
12566
12567// String returns the string representation
12568func (s DescribeSnapshotScheduleInput) String() string {
12569	return awsutil.Prettify(s)
12570}
12571
12572// GoString returns the string representation
12573func (s DescribeSnapshotScheduleInput) GoString() string {
12574	return s.String()
12575}
12576
12577// Validate inspects the fields of the type to determine if they are valid.
12578func (s *DescribeSnapshotScheduleInput) Validate() error {
12579	invalidParams := request.ErrInvalidParams{Context: "DescribeSnapshotScheduleInput"}
12580	if s.VolumeARN == nil {
12581		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
12582	}
12583	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
12584		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
12585	}
12586
12587	if invalidParams.Len() > 0 {
12588		return invalidParams
12589	}
12590	return nil
12591}
12592
12593// SetVolumeARN sets the VolumeARN field's value.
12594func (s *DescribeSnapshotScheduleInput) SetVolumeARN(v string) *DescribeSnapshotScheduleInput {
12595	s.VolumeARN = &v
12596	return s
12597}
12598
12599type DescribeSnapshotScheduleOutput struct {
12600	_ struct{} `type:"structure"`
12601
12602	// The snapshot description.
12603	Description *string `min:"1" type:"string"`
12604
12605	// The number of hours between snapshots.
12606	RecurrenceInHours *int64 `min:"1" type:"integer"`
12607
12608	// The hour of the day at which the snapshot schedule begins represented as
12609	// hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
12610	// of the gateway.
12611	StartAt *int64 `type:"integer"`
12612
12613	// A list of up to 50 tags assigned to the snapshot schedule, sorted alphabetically
12614	// by key name. Each tag is a key-value pair. For a gateway with more than 10
12615	// tags assigned, you can view all tags using the ListTagsForResource API operation.
12616	Tags []*Tag `type:"list"`
12617
12618	// A value that indicates the time zone of the gateway.
12619	Timezone *string `min:"3" type:"string"`
12620
12621	// The Amazon Resource Name (ARN) of the volume that was specified in the request.
12622	VolumeARN *string `min:"50" type:"string"`
12623}
12624
12625// String returns the string representation
12626func (s DescribeSnapshotScheduleOutput) String() string {
12627	return awsutil.Prettify(s)
12628}
12629
12630// GoString returns the string representation
12631func (s DescribeSnapshotScheduleOutput) GoString() string {
12632	return s.String()
12633}
12634
12635// SetDescription sets the Description field's value.
12636func (s *DescribeSnapshotScheduleOutput) SetDescription(v string) *DescribeSnapshotScheduleOutput {
12637	s.Description = &v
12638	return s
12639}
12640
12641// SetRecurrenceInHours sets the RecurrenceInHours field's value.
12642func (s *DescribeSnapshotScheduleOutput) SetRecurrenceInHours(v int64) *DescribeSnapshotScheduleOutput {
12643	s.RecurrenceInHours = &v
12644	return s
12645}
12646
12647// SetStartAt sets the StartAt field's value.
12648func (s *DescribeSnapshotScheduleOutput) SetStartAt(v int64) *DescribeSnapshotScheduleOutput {
12649	s.StartAt = &v
12650	return s
12651}
12652
12653// SetTags sets the Tags field's value.
12654func (s *DescribeSnapshotScheduleOutput) SetTags(v []*Tag) *DescribeSnapshotScheduleOutput {
12655	s.Tags = v
12656	return s
12657}
12658
12659// SetTimezone sets the Timezone field's value.
12660func (s *DescribeSnapshotScheduleOutput) SetTimezone(v string) *DescribeSnapshotScheduleOutput {
12661	s.Timezone = &v
12662	return s
12663}
12664
12665// SetVolumeARN sets the VolumeARN field's value.
12666func (s *DescribeSnapshotScheduleOutput) SetVolumeARN(v string) *DescribeSnapshotScheduleOutput {
12667	s.VolumeARN = &v
12668	return s
12669}
12670
12671// A JSON object containing a list of DescribeStorediSCSIVolumesInput$VolumeARNs.
12672type DescribeStorediSCSIVolumesInput struct {
12673	_ struct{} `type:"structure"`
12674
12675	// An array of strings where each string represents the Amazon Resource Name
12676	// (ARN) of a stored volume. All of the specified stored volumes must be from
12677	// the same gateway. Use ListVolumes to get volume ARNs for a gateway.
12678	//
12679	// VolumeARNs is a required field
12680	VolumeARNs []*string `type:"list" required:"true"`
12681}
12682
12683// String returns the string representation
12684func (s DescribeStorediSCSIVolumesInput) String() string {
12685	return awsutil.Prettify(s)
12686}
12687
12688// GoString returns the string representation
12689func (s DescribeStorediSCSIVolumesInput) GoString() string {
12690	return s.String()
12691}
12692
12693// Validate inspects the fields of the type to determine if they are valid.
12694func (s *DescribeStorediSCSIVolumesInput) Validate() error {
12695	invalidParams := request.ErrInvalidParams{Context: "DescribeStorediSCSIVolumesInput"}
12696	if s.VolumeARNs == nil {
12697		invalidParams.Add(request.NewErrParamRequired("VolumeARNs"))
12698	}
12699
12700	if invalidParams.Len() > 0 {
12701		return invalidParams
12702	}
12703	return nil
12704}
12705
12706// SetVolumeARNs sets the VolumeARNs field's value.
12707func (s *DescribeStorediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeStorediSCSIVolumesInput {
12708	s.VolumeARNs = v
12709	return s
12710}
12711
12712type DescribeStorediSCSIVolumesOutput struct {
12713	_ struct{} `type:"structure"`
12714
12715	// Describes a single unit of output from DescribeStorediSCSIVolumes. The following
12716	// fields are returned:
12717	//
12718	//    * ChapEnabled: Indicates whether mutual CHAP is enabled for the iSCSI
12719	//    target.
12720	//
12721	//    * LunNumber: The logical disk number.
12722	//
12723	//    * NetworkInterfaceId: The network interface ID of the stored volume that
12724	//    initiator use to map the stored volume as an iSCSI target.
12725	//
12726	//    * NetworkInterfacePort: The port used to communicate with iSCSI targets.
12727	//
12728	//    * PreservedExistingData: Indicates when the stored volume was created,
12729	//    existing data on the underlying local disk was preserved.
12730	//
12731	//    * SourceSnapshotId: If the stored volume was created from a snapshot,
12732	//    this field contains the snapshot ID used, e.g. snap-1122aabb. Otherwise,
12733	//    this field is not included.
12734	//
12735	//    * StorediSCSIVolumes: An array of StorediSCSIVolume objects where each
12736	//    object contains metadata about one stored volume.
12737	//
12738	//    * TargetARN: The Amazon Resource Name (ARN) of the volume target.
12739	//
12740	//    * VolumeARN: The Amazon Resource Name (ARN) of the stored volume.
12741	//
12742	//    * VolumeDiskId: The disk ID of the local disk that was specified in the
12743	//    CreateStorediSCSIVolume operation.
12744	//
12745	//    * VolumeId: The unique identifier of the storage volume, e.g. vol-1122AABB.
12746	//
12747	//    * VolumeiSCSIAttributes: An VolumeiSCSIAttributes object that represents
12748	//    a collection of iSCSI attributes for one stored volume.
12749	//
12750	//    * VolumeProgress: Represents the percentage complete if the volume is
12751	//    restoring or bootstrapping that represents the percent of data transferred.
12752	//    This field does not appear in the response if the stored volume is not
12753	//    restoring or bootstrapping.
12754	//
12755	//    * VolumeSizeInBytes: The size of the volume in bytes.
12756	//
12757	//    * VolumeStatus: One of the VolumeStatus values that indicates the state
12758	//    of the volume.
12759	//
12760	//    * VolumeType: One of the enumeration values describing the type of the
12761	//    volume. Currently, only STORED volumes are supported.
12762	StorediSCSIVolumes []*StorediSCSIVolume `type:"list"`
12763}
12764
12765// String returns the string representation
12766func (s DescribeStorediSCSIVolumesOutput) String() string {
12767	return awsutil.Prettify(s)
12768}
12769
12770// GoString returns the string representation
12771func (s DescribeStorediSCSIVolumesOutput) GoString() string {
12772	return s.String()
12773}
12774
12775// SetStorediSCSIVolumes sets the StorediSCSIVolumes field's value.
12776func (s *DescribeStorediSCSIVolumesOutput) SetStorediSCSIVolumes(v []*StorediSCSIVolume) *DescribeStorediSCSIVolumesOutput {
12777	s.StorediSCSIVolumes = v
12778	return s
12779}
12780
12781// DescribeTapeArchivesInput
12782type DescribeTapeArchivesInput struct {
12783	_ struct{} `type:"structure"`
12784
12785	// Specifies that the number of virtual tapes described be limited to the specified
12786	// number.
12787	Limit *int64 `min:"1" type:"integer"`
12788
12789	// An opaque string that indicates the position at which to begin describing
12790	// virtual tapes.
12791	Marker *string `min:"1" type:"string"`
12792
12793	// Specifies one or more unique Amazon Resource Names (ARNs) that represent
12794	// the virtual tapes you want to describe.
12795	TapeARNs []*string `type:"list"`
12796}
12797
12798// String returns the string representation
12799func (s DescribeTapeArchivesInput) String() string {
12800	return awsutil.Prettify(s)
12801}
12802
12803// GoString returns the string representation
12804func (s DescribeTapeArchivesInput) GoString() string {
12805	return s.String()
12806}
12807
12808// Validate inspects the fields of the type to determine if they are valid.
12809func (s *DescribeTapeArchivesInput) Validate() error {
12810	invalidParams := request.ErrInvalidParams{Context: "DescribeTapeArchivesInput"}
12811	if s.Limit != nil && *s.Limit < 1 {
12812		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
12813	}
12814	if s.Marker != nil && len(*s.Marker) < 1 {
12815		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
12816	}
12817
12818	if invalidParams.Len() > 0 {
12819		return invalidParams
12820	}
12821	return nil
12822}
12823
12824// SetLimit sets the Limit field's value.
12825func (s *DescribeTapeArchivesInput) SetLimit(v int64) *DescribeTapeArchivesInput {
12826	s.Limit = &v
12827	return s
12828}
12829
12830// SetMarker sets the Marker field's value.
12831func (s *DescribeTapeArchivesInput) SetMarker(v string) *DescribeTapeArchivesInput {
12832	s.Marker = &v
12833	return s
12834}
12835
12836// SetTapeARNs sets the TapeARNs field's value.
12837func (s *DescribeTapeArchivesInput) SetTapeARNs(v []*string) *DescribeTapeArchivesInput {
12838	s.TapeARNs = v
12839	return s
12840}
12841
12842// DescribeTapeArchivesOutput
12843type DescribeTapeArchivesOutput struct {
12844	_ struct{} `type:"structure"`
12845
12846	// An opaque string that indicates the position at which the virtual tapes that
12847	// were fetched for description ended. Use this marker in your next request
12848	// to fetch the next set of virtual tapes in the virtual tape shelf (VTS). If
12849	// there are no more virtual tapes to describe, this field does not appear in
12850	// the response.
12851	Marker *string `min:"1" type:"string"`
12852
12853	// An array of virtual tape objects in the virtual tape shelf (VTS). The description
12854	// includes of the Amazon Resource Name (ARN) of the virtual tapes. The information
12855	// returned includes the Amazon Resource Names (ARNs) of the tapes, size of
12856	// the tapes, status of the tapes, progress of the description, and tape barcode.
12857	TapeArchives []*TapeArchive `type:"list"`
12858}
12859
12860// String returns the string representation
12861func (s DescribeTapeArchivesOutput) String() string {
12862	return awsutil.Prettify(s)
12863}
12864
12865// GoString returns the string representation
12866func (s DescribeTapeArchivesOutput) GoString() string {
12867	return s.String()
12868}
12869
12870// SetMarker sets the Marker field's value.
12871func (s *DescribeTapeArchivesOutput) SetMarker(v string) *DescribeTapeArchivesOutput {
12872	s.Marker = &v
12873	return s
12874}
12875
12876// SetTapeArchives sets the TapeArchives field's value.
12877func (s *DescribeTapeArchivesOutput) SetTapeArchives(v []*TapeArchive) *DescribeTapeArchivesOutput {
12878	s.TapeArchives = v
12879	return s
12880}
12881
12882// DescribeTapeRecoveryPointsInput
12883type DescribeTapeRecoveryPointsInput struct {
12884	_ struct{} `type:"structure"`
12885
12886	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12887	// to return a list of gateways for your account and AWS Region.
12888	//
12889	// GatewayARN is a required field
12890	GatewayARN *string `min:"50" type:"string" required:"true"`
12891
12892	// Specifies that the number of virtual tape recovery points that are described
12893	// be limited to the specified number.
12894	Limit *int64 `min:"1" type:"integer"`
12895
12896	// An opaque string that indicates the position at which to begin describing
12897	// the virtual tape recovery points.
12898	Marker *string `min:"1" type:"string"`
12899}
12900
12901// String returns the string representation
12902func (s DescribeTapeRecoveryPointsInput) String() string {
12903	return awsutil.Prettify(s)
12904}
12905
12906// GoString returns the string representation
12907func (s DescribeTapeRecoveryPointsInput) GoString() string {
12908	return s.String()
12909}
12910
12911// Validate inspects the fields of the type to determine if they are valid.
12912func (s *DescribeTapeRecoveryPointsInput) Validate() error {
12913	invalidParams := request.ErrInvalidParams{Context: "DescribeTapeRecoveryPointsInput"}
12914	if s.GatewayARN == nil {
12915		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12916	}
12917	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12918		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12919	}
12920	if s.Limit != nil && *s.Limit < 1 {
12921		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
12922	}
12923	if s.Marker != nil && len(*s.Marker) < 1 {
12924		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
12925	}
12926
12927	if invalidParams.Len() > 0 {
12928		return invalidParams
12929	}
12930	return nil
12931}
12932
12933// SetGatewayARN sets the GatewayARN field's value.
12934func (s *DescribeTapeRecoveryPointsInput) SetGatewayARN(v string) *DescribeTapeRecoveryPointsInput {
12935	s.GatewayARN = &v
12936	return s
12937}
12938
12939// SetLimit sets the Limit field's value.
12940func (s *DescribeTapeRecoveryPointsInput) SetLimit(v int64) *DescribeTapeRecoveryPointsInput {
12941	s.Limit = &v
12942	return s
12943}
12944
12945// SetMarker sets the Marker field's value.
12946func (s *DescribeTapeRecoveryPointsInput) SetMarker(v string) *DescribeTapeRecoveryPointsInput {
12947	s.Marker = &v
12948	return s
12949}
12950
12951// DescribeTapeRecoveryPointsOutput
12952type DescribeTapeRecoveryPointsOutput struct {
12953	_ struct{} `type:"structure"`
12954
12955	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12956	// to return a list of gateways for your account and AWS Region.
12957	GatewayARN *string `min:"50" type:"string"`
12958
12959	// An opaque string that indicates the position at which the virtual tape recovery
12960	// points that were listed for description ended.
12961	//
12962	// Use this marker in your next request to list the next set of virtual tape
12963	// recovery points in the list. If there are no more recovery points to describe,
12964	// this field does not appear in the response.
12965	Marker *string `min:"1" type:"string"`
12966
12967	// An array of TapeRecoveryPointInfos that are available for the specified gateway.
12968	TapeRecoveryPointInfos []*TapeRecoveryPointInfo `type:"list"`
12969}
12970
12971// String returns the string representation
12972func (s DescribeTapeRecoveryPointsOutput) String() string {
12973	return awsutil.Prettify(s)
12974}
12975
12976// GoString returns the string representation
12977func (s DescribeTapeRecoveryPointsOutput) GoString() string {
12978	return s.String()
12979}
12980
12981// SetGatewayARN sets the GatewayARN field's value.
12982func (s *DescribeTapeRecoveryPointsOutput) SetGatewayARN(v string) *DescribeTapeRecoveryPointsOutput {
12983	s.GatewayARN = &v
12984	return s
12985}
12986
12987// SetMarker sets the Marker field's value.
12988func (s *DescribeTapeRecoveryPointsOutput) SetMarker(v string) *DescribeTapeRecoveryPointsOutput {
12989	s.Marker = &v
12990	return s
12991}
12992
12993// SetTapeRecoveryPointInfos sets the TapeRecoveryPointInfos field's value.
12994func (s *DescribeTapeRecoveryPointsOutput) SetTapeRecoveryPointInfos(v []*TapeRecoveryPointInfo) *DescribeTapeRecoveryPointsOutput {
12995	s.TapeRecoveryPointInfos = v
12996	return s
12997}
12998
12999// DescribeTapesInput
13000type DescribeTapesInput struct {
13001	_ struct{} `type:"structure"`
13002
13003	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13004	// to return a list of gateways for your account and AWS Region.
13005	//
13006	// GatewayARN is a required field
13007	GatewayARN *string `min:"50" type:"string" required:"true"`
13008
13009	// Specifies that the number of virtual tapes described be limited to the specified
13010	// number.
13011	//
13012	// Amazon Web Services may impose its own limit, if this field is not set.
13013	Limit *int64 `min:"1" type:"integer"`
13014
13015	// A marker value, obtained in a previous call to DescribeTapes. This marker
13016	// indicates which page of results to retrieve.
13017	//
13018	// If not specified, the first page of results is retrieved.
13019	Marker *string `min:"1" type:"string"`
13020
13021	// Specifies one or more unique Amazon Resource Names (ARNs) that represent
13022	// the virtual tapes you want to describe. If this parameter is not specified,
13023	// Tape gateway returns a description of all virtual tapes associated with the
13024	// specified gateway.
13025	TapeARNs []*string `type:"list"`
13026}
13027
13028// String returns the string representation
13029func (s DescribeTapesInput) String() string {
13030	return awsutil.Prettify(s)
13031}
13032
13033// GoString returns the string representation
13034func (s DescribeTapesInput) GoString() string {
13035	return s.String()
13036}
13037
13038// Validate inspects the fields of the type to determine if they are valid.
13039func (s *DescribeTapesInput) Validate() error {
13040	invalidParams := request.ErrInvalidParams{Context: "DescribeTapesInput"}
13041	if s.GatewayARN == nil {
13042		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13043	}
13044	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13045		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13046	}
13047	if s.Limit != nil && *s.Limit < 1 {
13048		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
13049	}
13050	if s.Marker != nil && len(*s.Marker) < 1 {
13051		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
13052	}
13053
13054	if invalidParams.Len() > 0 {
13055		return invalidParams
13056	}
13057	return nil
13058}
13059
13060// SetGatewayARN sets the GatewayARN field's value.
13061func (s *DescribeTapesInput) SetGatewayARN(v string) *DescribeTapesInput {
13062	s.GatewayARN = &v
13063	return s
13064}
13065
13066// SetLimit sets the Limit field's value.
13067func (s *DescribeTapesInput) SetLimit(v int64) *DescribeTapesInput {
13068	s.Limit = &v
13069	return s
13070}
13071
13072// SetMarker sets the Marker field's value.
13073func (s *DescribeTapesInput) SetMarker(v string) *DescribeTapesInput {
13074	s.Marker = &v
13075	return s
13076}
13077
13078// SetTapeARNs sets the TapeARNs field's value.
13079func (s *DescribeTapesInput) SetTapeARNs(v []*string) *DescribeTapesInput {
13080	s.TapeARNs = v
13081	return s
13082}
13083
13084// DescribeTapesOutput
13085type DescribeTapesOutput struct {
13086	_ struct{} `type:"structure"`
13087
13088	// An opaque string which can be used as part of a subsequent DescribeTapes
13089	// call to retrieve the next page of results.
13090	//
13091	// If a response does not contain a marker, then there are no more results to
13092	// be retrieved.
13093	Marker *string `min:"1" type:"string"`
13094
13095	// An array of virtual tape descriptions.
13096	Tapes []*Tape `type:"list"`
13097}
13098
13099// String returns the string representation
13100func (s DescribeTapesOutput) String() string {
13101	return awsutil.Prettify(s)
13102}
13103
13104// GoString returns the string representation
13105func (s DescribeTapesOutput) GoString() string {
13106	return s.String()
13107}
13108
13109// SetMarker sets the Marker field's value.
13110func (s *DescribeTapesOutput) SetMarker(v string) *DescribeTapesOutput {
13111	s.Marker = &v
13112	return s
13113}
13114
13115// SetTapes sets the Tapes field's value.
13116func (s *DescribeTapesOutput) SetTapes(v []*Tape) *DescribeTapesOutput {
13117	s.Tapes = v
13118	return s
13119}
13120
13121type DescribeUploadBufferInput struct {
13122	_ struct{} `type:"structure"`
13123
13124	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13125	// to return a list of gateways for your account and AWS Region.
13126	//
13127	// GatewayARN is a required field
13128	GatewayARN *string `min:"50" type:"string" required:"true"`
13129}
13130
13131// String returns the string representation
13132func (s DescribeUploadBufferInput) String() string {
13133	return awsutil.Prettify(s)
13134}
13135
13136// GoString returns the string representation
13137func (s DescribeUploadBufferInput) GoString() string {
13138	return s.String()
13139}
13140
13141// Validate inspects the fields of the type to determine if they are valid.
13142func (s *DescribeUploadBufferInput) Validate() error {
13143	invalidParams := request.ErrInvalidParams{Context: "DescribeUploadBufferInput"}
13144	if s.GatewayARN == nil {
13145		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13146	}
13147	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13148		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13149	}
13150
13151	if invalidParams.Len() > 0 {
13152		return invalidParams
13153	}
13154	return nil
13155}
13156
13157// SetGatewayARN sets the GatewayARN field's value.
13158func (s *DescribeUploadBufferInput) SetGatewayARN(v string) *DescribeUploadBufferInput {
13159	s.GatewayARN = &v
13160	return s
13161}
13162
13163type DescribeUploadBufferOutput struct {
13164	_ struct{} `type:"structure"`
13165
13166	// An array of the gateway's local disk IDs that are configured as working storage.
13167	// Each local disk ID is specified as a string (minimum length of 1 and maximum
13168	// length of 300). If no local disks are configured as working storage, then
13169	// the DiskIds array is empty.
13170	DiskIds []*string `type:"list"`
13171
13172	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13173	// to return a list of gateways for your account and AWS Region.
13174	GatewayARN *string `min:"50" type:"string"`
13175
13176	// The total number of bytes allocated in the gateway's as upload buffer.
13177	UploadBufferAllocatedInBytes *int64 `type:"long"`
13178
13179	// The total number of bytes being used in the gateway's upload buffer.
13180	UploadBufferUsedInBytes *int64 `type:"long"`
13181}
13182
13183// String returns the string representation
13184func (s DescribeUploadBufferOutput) String() string {
13185	return awsutil.Prettify(s)
13186}
13187
13188// GoString returns the string representation
13189func (s DescribeUploadBufferOutput) GoString() string {
13190	return s.String()
13191}
13192
13193// SetDiskIds sets the DiskIds field's value.
13194func (s *DescribeUploadBufferOutput) SetDiskIds(v []*string) *DescribeUploadBufferOutput {
13195	s.DiskIds = v
13196	return s
13197}
13198
13199// SetGatewayARN sets the GatewayARN field's value.
13200func (s *DescribeUploadBufferOutput) SetGatewayARN(v string) *DescribeUploadBufferOutput {
13201	s.GatewayARN = &v
13202	return s
13203}
13204
13205// SetUploadBufferAllocatedInBytes sets the UploadBufferAllocatedInBytes field's value.
13206func (s *DescribeUploadBufferOutput) SetUploadBufferAllocatedInBytes(v int64) *DescribeUploadBufferOutput {
13207	s.UploadBufferAllocatedInBytes = &v
13208	return s
13209}
13210
13211// SetUploadBufferUsedInBytes sets the UploadBufferUsedInBytes field's value.
13212func (s *DescribeUploadBufferOutput) SetUploadBufferUsedInBytes(v int64) *DescribeUploadBufferOutput {
13213	s.UploadBufferUsedInBytes = &v
13214	return s
13215}
13216
13217// DescribeVTLDevicesInput
13218type DescribeVTLDevicesInput struct {
13219	_ struct{} `type:"structure"`
13220
13221	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13222	// to return a list of gateways for your account and AWS Region.
13223	//
13224	// GatewayARN is a required field
13225	GatewayARN *string `min:"50" type:"string" required:"true"`
13226
13227	// Specifies that the number of VTL devices described be limited to the specified
13228	// number.
13229	Limit *int64 `min:"1" type:"integer"`
13230
13231	// An opaque string that indicates the position at which to begin describing
13232	// the VTL devices.
13233	Marker *string `min:"1" type:"string"`
13234
13235	// An array of strings, where each string represents the Amazon Resource Name
13236	// (ARN) of a VTL device.
13237	//
13238	// All of the specified VTL devices must be from the same gateway. If no VTL
13239	// devices are specified, the result will contain all devices on the specified
13240	// gateway.
13241	VTLDeviceARNs []*string `type:"list"`
13242}
13243
13244// String returns the string representation
13245func (s DescribeVTLDevicesInput) String() string {
13246	return awsutil.Prettify(s)
13247}
13248
13249// GoString returns the string representation
13250func (s DescribeVTLDevicesInput) GoString() string {
13251	return s.String()
13252}
13253
13254// Validate inspects the fields of the type to determine if they are valid.
13255func (s *DescribeVTLDevicesInput) Validate() error {
13256	invalidParams := request.ErrInvalidParams{Context: "DescribeVTLDevicesInput"}
13257	if s.GatewayARN == nil {
13258		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13259	}
13260	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13261		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13262	}
13263	if s.Limit != nil && *s.Limit < 1 {
13264		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
13265	}
13266	if s.Marker != nil && len(*s.Marker) < 1 {
13267		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
13268	}
13269
13270	if invalidParams.Len() > 0 {
13271		return invalidParams
13272	}
13273	return nil
13274}
13275
13276// SetGatewayARN sets the GatewayARN field's value.
13277func (s *DescribeVTLDevicesInput) SetGatewayARN(v string) *DescribeVTLDevicesInput {
13278	s.GatewayARN = &v
13279	return s
13280}
13281
13282// SetLimit sets the Limit field's value.
13283func (s *DescribeVTLDevicesInput) SetLimit(v int64) *DescribeVTLDevicesInput {
13284	s.Limit = &v
13285	return s
13286}
13287
13288// SetMarker sets the Marker field's value.
13289func (s *DescribeVTLDevicesInput) SetMarker(v string) *DescribeVTLDevicesInput {
13290	s.Marker = &v
13291	return s
13292}
13293
13294// SetVTLDeviceARNs sets the VTLDeviceARNs field's value.
13295func (s *DescribeVTLDevicesInput) SetVTLDeviceARNs(v []*string) *DescribeVTLDevicesInput {
13296	s.VTLDeviceARNs = v
13297	return s
13298}
13299
13300// DescribeVTLDevicesOutput
13301type DescribeVTLDevicesOutput struct {
13302	_ struct{} `type:"structure"`
13303
13304	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13305	// to return a list of gateways for your account and AWS Region.
13306	GatewayARN *string `min:"50" type:"string"`
13307
13308	// An opaque string that indicates the position at which the VTL devices that
13309	// were fetched for description ended. Use the marker in your next request to
13310	// fetch the next set of VTL devices in the list. If there are no more VTL devices
13311	// to describe, this field does not appear in the response.
13312	Marker *string `min:"1" type:"string"`
13313
13314	// An array of VTL device objects composed of the Amazon Resource Name (ARN)
13315	// of the VTL devices.
13316	VTLDevices []*VTLDevice `type:"list"`
13317}
13318
13319// String returns the string representation
13320func (s DescribeVTLDevicesOutput) String() string {
13321	return awsutil.Prettify(s)
13322}
13323
13324// GoString returns the string representation
13325func (s DescribeVTLDevicesOutput) GoString() string {
13326	return s.String()
13327}
13328
13329// SetGatewayARN sets the GatewayARN field's value.
13330func (s *DescribeVTLDevicesOutput) SetGatewayARN(v string) *DescribeVTLDevicesOutput {
13331	s.GatewayARN = &v
13332	return s
13333}
13334
13335// SetMarker sets the Marker field's value.
13336func (s *DescribeVTLDevicesOutput) SetMarker(v string) *DescribeVTLDevicesOutput {
13337	s.Marker = &v
13338	return s
13339}
13340
13341// SetVTLDevices sets the VTLDevices field's value.
13342func (s *DescribeVTLDevicesOutput) SetVTLDevices(v []*VTLDevice) *DescribeVTLDevicesOutput {
13343	s.VTLDevices = v
13344	return s
13345}
13346
13347// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
13348type DescribeWorkingStorageInput struct {
13349	_ struct{} `type:"structure"`
13350
13351	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13352	// to return a list of gateways for your account and AWS Region.
13353	//
13354	// GatewayARN is a required field
13355	GatewayARN *string `min:"50" type:"string" required:"true"`
13356}
13357
13358// String returns the string representation
13359func (s DescribeWorkingStorageInput) String() string {
13360	return awsutil.Prettify(s)
13361}
13362
13363// GoString returns the string representation
13364func (s DescribeWorkingStorageInput) GoString() string {
13365	return s.String()
13366}
13367
13368// Validate inspects the fields of the type to determine if they are valid.
13369func (s *DescribeWorkingStorageInput) Validate() error {
13370	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkingStorageInput"}
13371	if s.GatewayARN == nil {
13372		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13373	}
13374	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13375		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13376	}
13377
13378	if invalidParams.Len() > 0 {
13379		return invalidParams
13380	}
13381	return nil
13382}
13383
13384// SetGatewayARN sets the GatewayARN field's value.
13385func (s *DescribeWorkingStorageInput) SetGatewayARN(v string) *DescribeWorkingStorageInput {
13386	s.GatewayARN = &v
13387	return s
13388}
13389
13390// A JSON object containing the following fields:
13391type DescribeWorkingStorageOutput struct {
13392	_ struct{} `type:"structure"`
13393
13394	// An array of the gateway's local disk IDs that are configured as working storage.
13395	// Each local disk ID is specified as a string (minimum length of 1 and maximum
13396	// length of 300). If no local disks are configured as working storage, then
13397	// the DiskIds array is empty.
13398	DiskIds []*string `type:"list"`
13399
13400	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13401	// to return a list of gateways for your account and AWS Region.
13402	GatewayARN *string `min:"50" type:"string"`
13403
13404	// The total working storage in bytes allocated for the gateway. If no working
13405	// storage is configured for the gateway, this field returns 0.
13406	WorkingStorageAllocatedInBytes *int64 `type:"long"`
13407
13408	// The total working storage in bytes in use by the gateway. If no working storage
13409	// is configured for the gateway, this field returns 0.
13410	WorkingStorageUsedInBytes *int64 `type:"long"`
13411}
13412
13413// String returns the string representation
13414func (s DescribeWorkingStorageOutput) String() string {
13415	return awsutil.Prettify(s)
13416}
13417
13418// GoString returns the string representation
13419func (s DescribeWorkingStorageOutput) GoString() string {
13420	return s.String()
13421}
13422
13423// SetDiskIds sets the DiskIds field's value.
13424func (s *DescribeWorkingStorageOutput) SetDiskIds(v []*string) *DescribeWorkingStorageOutput {
13425	s.DiskIds = v
13426	return s
13427}
13428
13429// SetGatewayARN sets the GatewayARN field's value.
13430func (s *DescribeWorkingStorageOutput) SetGatewayARN(v string) *DescribeWorkingStorageOutput {
13431	s.GatewayARN = &v
13432	return s
13433}
13434
13435// SetWorkingStorageAllocatedInBytes sets the WorkingStorageAllocatedInBytes field's value.
13436func (s *DescribeWorkingStorageOutput) SetWorkingStorageAllocatedInBytes(v int64) *DescribeWorkingStorageOutput {
13437	s.WorkingStorageAllocatedInBytes = &v
13438	return s
13439}
13440
13441// SetWorkingStorageUsedInBytes sets the WorkingStorageUsedInBytes field's value.
13442func (s *DescribeWorkingStorageOutput) SetWorkingStorageUsedInBytes(v int64) *DescribeWorkingStorageOutput {
13443	s.WorkingStorageUsedInBytes = &v
13444	return s
13445}
13446
13447// AttachVolumeInput
13448type DetachVolumeInput struct {
13449	_ struct{} `type:"structure"`
13450
13451	// Set to true to forcibly remove the iSCSI connection of the target volume
13452	// and detach the volume. The default is false. If this value is set to false,
13453	// you must manually disconnect the iSCSI connection from the target volume.
13454	//
13455	// Valid Values: true | false
13456	ForceDetach *bool `type:"boolean"`
13457
13458	// The Amazon Resource Name (ARN) of the volume to detach from the gateway.
13459	//
13460	// VolumeARN is a required field
13461	VolumeARN *string `min:"50" type:"string" required:"true"`
13462}
13463
13464// String returns the string representation
13465func (s DetachVolumeInput) String() string {
13466	return awsutil.Prettify(s)
13467}
13468
13469// GoString returns the string representation
13470func (s DetachVolumeInput) GoString() string {
13471	return s.String()
13472}
13473
13474// Validate inspects the fields of the type to determine if they are valid.
13475func (s *DetachVolumeInput) Validate() error {
13476	invalidParams := request.ErrInvalidParams{Context: "DetachVolumeInput"}
13477	if s.VolumeARN == nil {
13478		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
13479	}
13480	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
13481		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
13482	}
13483
13484	if invalidParams.Len() > 0 {
13485		return invalidParams
13486	}
13487	return nil
13488}
13489
13490// SetForceDetach sets the ForceDetach field's value.
13491func (s *DetachVolumeInput) SetForceDetach(v bool) *DetachVolumeInput {
13492	s.ForceDetach = &v
13493	return s
13494}
13495
13496// SetVolumeARN sets the VolumeARN field's value.
13497func (s *DetachVolumeInput) SetVolumeARN(v string) *DetachVolumeInput {
13498	s.VolumeARN = &v
13499	return s
13500}
13501
13502// AttachVolumeOutput
13503type DetachVolumeOutput struct {
13504	_ struct{} `type:"structure"`
13505
13506	// The Amazon Resource Name (ARN) of the volume that was detached.
13507	VolumeARN *string `min:"50" type:"string"`
13508}
13509
13510// String returns the string representation
13511func (s DetachVolumeOutput) String() string {
13512	return awsutil.Prettify(s)
13513}
13514
13515// GoString returns the string representation
13516func (s DetachVolumeOutput) GoString() string {
13517	return s.String()
13518}
13519
13520// SetVolumeARN sets the VolumeARN field's value.
13521func (s *DetachVolumeOutput) SetVolumeARN(v string) *DetachVolumeOutput {
13522	s.VolumeARN = &v
13523	return s
13524}
13525
13526// Lists iSCSI information about a VTL device.
13527type DeviceiSCSIAttributes struct {
13528	_ struct{} `type:"structure"`
13529
13530	// Indicates whether mutual CHAP is enabled for the iSCSI target.
13531	ChapEnabled *bool `type:"boolean"`
13532
13533	// The network interface identifier of the VTL device.
13534	NetworkInterfaceId *string `type:"string"`
13535
13536	// The port used to communicate with iSCSI VTL device targets.
13537	NetworkInterfacePort *int64 `type:"integer"`
13538
13539	// Specifies the unique Amazon Resource Name (ARN) that encodes the iSCSI qualified
13540	// name(iqn) of a tape drive or media changer target.
13541	TargetARN *string `min:"50" type:"string"`
13542}
13543
13544// String returns the string representation
13545func (s DeviceiSCSIAttributes) String() string {
13546	return awsutil.Prettify(s)
13547}
13548
13549// GoString returns the string representation
13550func (s DeviceiSCSIAttributes) GoString() string {
13551	return s.String()
13552}
13553
13554// SetChapEnabled sets the ChapEnabled field's value.
13555func (s *DeviceiSCSIAttributes) SetChapEnabled(v bool) *DeviceiSCSIAttributes {
13556	s.ChapEnabled = &v
13557	return s
13558}
13559
13560// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
13561func (s *DeviceiSCSIAttributes) SetNetworkInterfaceId(v string) *DeviceiSCSIAttributes {
13562	s.NetworkInterfaceId = &v
13563	return s
13564}
13565
13566// SetNetworkInterfacePort sets the NetworkInterfacePort field's value.
13567func (s *DeviceiSCSIAttributes) SetNetworkInterfacePort(v int64) *DeviceiSCSIAttributes {
13568	s.NetworkInterfacePort = &v
13569	return s
13570}
13571
13572// SetTargetARN sets the TargetARN field's value.
13573func (s *DeviceiSCSIAttributes) SetTargetARN(v string) *DeviceiSCSIAttributes {
13574	s.TargetARN = &v
13575	return s
13576}
13577
13578// DisableGatewayInput
13579type DisableGatewayInput struct {
13580	_ struct{} `type:"structure"`
13581
13582	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13583	// to return a list of gateways for your account and AWS Region.
13584	//
13585	// GatewayARN is a required field
13586	GatewayARN *string `min:"50" type:"string" required:"true"`
13587}
13588
13589// String returns the string representation
13590func (s DisableGatewayInput) String() string {
13591	return awsutil.Prettify(s)
13592}
13593
13594// GoString returns the string representation
13595func (s DisableGatewayInput) GoString() string {
13596	return s.String()
13597}
13598
13599// Validate inspects the fields of the type to determine if they are valid.
13600func (s *DisableGatewayInput) Validate() error {
13601	invalidParams := request.ErrInvalidParams{Context: "DisableGatewayInput"}
13602	if s.GatewayARN == nil {
13603		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13604	}
13605	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13606		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13607	}
13608
13609	if invalidParams.Len() > 0 {
13610		return invalidParams
13611	}
13612	return nil
13613}
13614
13615// SetGatewayARN sets the GatewayARN field's value.
13616func (s *DisableGatewayInput) SetGatewayARN(v string) *DisableGatewayInput {
13617	s.GatewayARN = &v
13618	return s
13619}
13620
13621// DisableGatewayOutput
13622type DisableGatewayOutput struct {
13623	_ struct{} `type:"structure"`
13624
13625	// The unique Amazon Resource Name (ARN) of the disabled gateway.
13626	GatewayARN *string `min:"50" type:"string"`
13627}
13628
13629// String returns the string representation
13630func (s DisableGatewayOutput) String() string {
13631	return awsutil.Prettify(s)
13632}
13633
13634// GoString returns the string representation
13635func (s DisableGatewayOutput) GoString() string {
13636	return s.String()
13637}
13638
13639// SetGatewayARN sets the GatewayARN field's value.
13640func (s *DisableGatewayOutput) SetGatewayARN(v string) *DisableGatewayOutput {
13641	s.GatewayARN = &v
13642	return s
13643}
13644
13645// Represents a gateway's local disk.
13646type Disk struct {
13647	_ struct{} `type:"structure"`
13648
13649	// The iSCSI qualified name (IQN) that is defined for a disk. This field is
13650	// not included in the response if the local disk is not defined as an iSCSI
13651	// target. The format of this field is targetIqn::LUNNumber::region-volumeId.
13652	DiskAllocationResource *string `type:"string"`
13653
13654	// One of the DiskAllocationType enumeration values that identifies how a local
13655	// disk is used.
13656	//
13657	// Valid Values: UPLOAD_BUFFER | CACHE_STORAGE
13658	DiskAllocationType *string `min:"3" type:"string"`
13659
13660	// A list of values that represents attributes of a local disk.
13661	DiskAttributeList []*string `type:"list"`
13662
13663	// The unique device ID or other distinguishing data that identifies a local
13664	// disk.
13665	DiskId *string `min:"1" type:"string"`
13666
13667	// The device node of a local disk as assigned by the virtualization environment.
13668	DiskNode *string `type:"string"`
13669
13670	// The path of a local disk in the gateway virtual machine (VM).
13671	DiskPath *string `type:"string"`
13672
13673	// The local disk size in bytes.
13674	DiskSizeInBytes *int64 `type:"long"`
13675
13676	// A value that represents the status of a local disk.
13677	DiskStatus *string `type:"string"`
13678}
13679
13680// String returns the string representation
13681func (s Disk) String() string {
13682	return awsutil.Prettify(s)
13683}
13684
13685// GoString returns the string representation
13686func (s Disk) GoString() string {
13687	return s.String()
13688}
13689
13690// SetDiskAllocationResource sets the DiskAllocationResource field's value.
13691func (s *Disk) SetDiskAllocationResource(v string) *Disk {
13692	s.DiskAllocationResource = &v
13693	return s
13694}
13695
13696// SetDiskAllocationType sets the DiskAllocationType field's value.
13697func (s *Disk) SetDiskAllocationType(v string) *Disk {
13698	s.DiskAllocationType = &v
13699	return s
13700}
13701
13702// SetDiskAttributeList sets the DiskAttributeList field's value.
13703func (s *Disk) SetDiskAttributeList(v []*string) *Disk {
13704	s.DiskAttributeList = v
13705	return s
13706}
13707
13708// SetDiskId sets the DiskId field's value.
13709func (s *Disk) SetDiskId(v string) *Disk {
13710	s.DiskId = &v
13711	return s
13712}
13713
13714// SetDiskNode sets the DiskNode field's value.
13715func (s *Disk) SetDiskNode(v string) *Disk {
13716	s.DiskNode = &v
13717	return s
13718}
13719
13720// SetDiskPath sets the DiskPath field's value.
13721func (s *Disk) SetDiskPath(v string) *Disk {
13722	s.DiskPath = &v
13723	return s
13724}
13725
13726// SetDiskSizeInBytes sets the DiskSizeInBytes field's value.
13727func (s *Disk) SetDiskSizeInBytes(v int64) *Disk {
13728	s.DiskSizeInBytes = &v
13729	return s
13730}
13731
13732// SetDiskStatus sets the DiskStatus field's value.
13733func (s *Disk) SetDiskStatus(v string) *Disk {
13734	s.DiskStatus = &v
13735	return s
13736}
13737
13738// Provides additional information about an error that was returned by the service.
13739// See the errorCode and errorDetails members for more information about the
13740// error.
13741type Error struct {
13742	_ struct{} `type:"structure"`
13743
13744	// Additional information about the error.
13745	ErrorCode *string `locationName:"errorCode" type:"string" enum:"ErrorCode"`
13746
13747	// Human-readable text that provides detail about the error that occurred.
13748	ErrorDetails map[string]*string `locationName:"errorDetails" type:"map"`
13749}
13750
13751// String returns the string representation
13752func (s Error) String() string {
13753	return awsutil.Prettify(s)
13754}
13755
13756// GoString returns the string representation
13757func (s Error) GoString() string {
13758	return s.String()
13759}
13760
13761// SetErrorCode sets the ErrorCode field's value.
13762func (s *Error) SetErrorCode(v string) *Error {
13763	s.ErrorCode = &v
13764	return s
13765}
13766
13767// SetErrorDetails sets the ErrorDetails field's value.
13768func (s *Error) SetErrorDetails(v map[string]*string) *Error {
13769	s.ErrorDetails = v
13770	return s
13771}
13772
13773// Describes a file share.
13774type FileShareInfo struct {
13775	_ struct{} `type:"structure"`
13776
13777	// The Amazon Resource Name (ARN) of the file share.
13778	FileShareARN *string `min:"50" type:"string"`
13779
13780	// The ID of the file share.
13781	FileShareId *string `min:"12" type:"string"`
13782
13783	// The status of the file share.
13784	//
13785	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
13786	FileShareStatus *string `min:"3" type:"string"`
13787
13788	// The type of the file share.
13789	FileShareType *string `type:"string" enum:"FileShareType"`
13790
13791	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13792	// to return a list of gateways for your account and AWS Region.
13793	GatewayARN *string `min:"50" type:"string"`
13794}
13795
13796// String returns the string representation
13797func (s FileShareInfo) String() string {
13798	return awsutil.Prettify(s)
13799}
13800
13801// GoString returns the string representation
13802func (s FileShareInfo) GoString() string {
13803	return s.String()
13804}
13805
13806// SetFileShareARN sets the FileShareARN field's value.
13807func (s *FileShareInfo) SetFileShareARN(v string) *FileShareInfo {
13808	s.FileShareARN = &v
13809	return s
13810}
13811
13812// SetFileShareId sets the FileShareId field's value.
13813func (s *FileShareInfo) SetFileShareId(v string) *FileShareInfo {
13814	s.FileShareId = &v
13815	return s
13816}
13817
13818// SetFileShareStatus sets the FileShareStatus field's value.
13819func (s *FileShareInfo) SetFileShareStatus(v string) *FileShareInfo {
13820	s.FileShareStatus = &v
13821	return s
13822}
13823
13824// SetFileShareType sets the FileShareType field's value.
13825func (s *FileShareInfo) SetFileShareType(v string) *FileShareInfo {
13826	s.FileShareType = &v
13827	return s
13828}
13829
13830// SetGatewayARN sets the GatewayARN field's value.
13831func (s *FileShareInfo) SetGatewayARN(v string) *FileShareInfo {
13832	s.GatewayARN = &v
13833	return s
13834}
13835
13836// Describes a gateway object.
13837type GatewayInfo struct {
13838	_ struct{} `type:"structure"`
13839
13840	// The ID of the Amazon EC2 instance that was used to launch the gateway.
13841	Ec2InstanceId *string `type:"string"`
13842
13843	// The AWS Region where the Amazon EC2 instance is located.
13844	Ec2InstanceRegion *string `type:"string"`
13845
13846	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13847	// to return a list of gateways for your account and AWS Region.
13848	GatewayARN *string `min:"50" type:"string"`
13849
13850	// The unique identifier assigned to your gateway during activation. This ID
13851	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
13852	// input for other operations.
13853	GatewayId *string `min:"12" type:"string"`
13854
13855	// The name of the gateway.
13856	GatewayName *string `type:"string"`
13857
13858	// The state of the gateway.
13859	//
13860	// Valid Values: DISABLED | ACTIVE
13861	GatewayOperationalState *string `min:"2" type:"string"`
13862
13863	// The type of the gateway.
13864	GatewayType *string `min:"2" type:"string"`
13865}
13866
13867// String returns the string representation
13868func (s GatewayInfo) String() string {
13869	return awsutil.Prettify(s)
13870}
13871
13872// GoString returns the string representation
13873func (s GatewayInfo) GoString() string {
13874	return s.String()
13875}
13876
13877// SetEc2InstanceId sets the Ec2InstanceId field's value.
13878func (s *GatewayInfo) SetEc2InstanceId(v string) *GatewayInfo {
13879	s.Ec2InstanceId = &v
13880	return s
13881}
13882
13883// SetEc2InstanceRegion sets the Ec2InstanceRegion field's value.
13884func (s *GatewayInfo) SetEc2InstanceRegion(v string) *GatewayInfo {
13885	s.Ec2InstanceRegion = &v
13886	return s
13887}
13888
13889// SetGatewayARN sets the GatewayARN field's value.
13890func (s *GatewayInfo) SetGatewayARN(v string) *GatewayInfo {
13891	s.GatewayARN = &v
13892	return s
13893}
13894
13895// SetGatewayId sets the GatewayId field's value.
13896func (s *GatewayInfo) SetGatewayId(v string) *GatewayInfo {
13897	s.GatewayId = &v
13898	return s
13899}
13900
13901// SetGatewayName sets the GatewayName field's value.
13902func (s *GatewayInfo) SetGatewayName(v string) *GatewayInfo {
13903	s.GatewayName = &v
13904	return s
13905}
13906
13907// SetGatewayOperationalState sets the GatewayOperationalState field's value.
13908func (s *GatewayInfo) SetGatewayOperationalState(v string) *GatewayInfo {
13909	s.GatewayOperationalState = &v
13910	return s
13911}
13912
13913// SetGatewayType sets the GatewayType field's value.
13914func (s *GatewayInfo) SetGatewayType(v string) *GatewayInfo {
13915	s.GatewayType = &v
13916	return s
13917}
13918
13919// An internal server error has occurred during the request. For more information,
13920// see the error and message fields.
13921type InternalServerError struct {
13922	_            struct{}                  `type:"structure"`
13923	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13924
13925	// A StorageGatewayError that provides more information about the cause of the
13926	// error.
13927	Error_ *Error `locationName:"error" type:"structure"`
13928
13929	// A human-readable message describing the error that occurred.
13930	Message_ *string `locationName:"message" type:"string"`
13931}
13932
13933// String returns the string representation
13934func (s InternalServerError) String() string {
13935	return awsutil.Prettify(s)
13936}
13937
13938// GoString returns the string representation
13939func (s InternalServerError) GoString() string {
13940	return s.String()
13941}
13942
13943func newErrorInternalServerError(v protocol.ResponseMetadata) error {
13944	return &InternalServerError{
13945		RespMetadata: v,
13946	}
13947}
13948
13949// Code returns the exception type name.
13950func (s *InternalServerError) Code() string {
13951	return "InternalServerError"
13952}
13953
13954// Message returns the exception's message.
13955func (s *InternalServerError) Message() string {
13956	if s.Message_ != nil {
13957		return *s.Message_
13958	}
13959	return ""
13960}
13961
13962// OrigErr always returns nil, satisfies awserr.Error interface.
13963func (s *InternalServerError) OrigErr() error {
13964	return nil
13965}
13966
13967func (s *InternalServerError) Error() string {
13968	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
13969}
13970
13971// Status code returns the HTTP status code for the request's response error.
13972func (s *InternalServerError) StatusCode() int {
13973	return s.RespMetadata.StatusCode
13974}
13975
13976// RequestID returns the service's response RequestID for request.
13977func (s *InternalServerError) RequestID() string {
13978	return s.RespMetadata.RequestID
13979}
13980
13981// An exception occurred because an invalid gateway request was issued to the
13982// service. For more information, see the error and message fields.
13983type InvalidGatewayRequestException struct {
13984	_            struct{}                  `type:"structure"`
13985	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13986
13987	// A StorageGatewayError that provides more detail about the cause of the error.
13988	Error_ *Error `locationName:"error" type:"structure"`
13989
13990	// A human-readable message describing the error that occurred.
13991	Message_ *string `locationName:"message" type:"string"`
13992}
13993
13994// String returns the string representation
13995func (s InvalidGatewayRequestException) String() string {
13996	return awsutil.Prettify(s)
13997}
13998
13999// GoString returns the string representation
14000func (s InvalidGatewayRequestException) GoString() string {
14001	return s.String()
14002}
14003
14004func newErrorInvalidGatewayRequestException(v protocol.ResponseMetadata) error {
14005	return &InvalidGatewayRequestException{
14006		RespMetadata: v,
14007	}
14008}
14009
14010// Code returns the exception type name.
14011func (s *InvalidGatewayRequestException) Code() string {
14012	return "InvalidGatewayRequestException"
14013}
14014
14015// Message returns the exception's message.
14016func (s *InvalidGatewayRequestException) Message() string {
14017	if s.Message_ != nil {
14018		return *s.Message_
14019	}
14020	return ""
14021}
14022
14023// OrigErr always returns nil, satisfies awserr.Error interface.
14024func (s *InvalidGatewayRequestException) OrigErr() error {
14025	return nil
14026}
14027
14028func (s *InvalidGatewayRequestException) Error() string {
14029	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14030}
14031
14032// Status code returns the HTTP status code for the request's response error.
14033func (s *InvalidGatewayRequestException) StatusCode() int {
14034	return s.RespMetadata.StatusCode
14035}
14036
14037// RequestID returns the service's response RequestID for request.
14038func (s *InvalidGatewayRequestException) RequestID() string {
14039	return s.RespMetadata.RequestID
14040}
14041
14042// JoinDomainInput
14043type JoinDomainInput struct {
14044	_ struct{} `type:"structure"`
14045
14046	// List of IPv4 addresses, NetBIOS names, or host names of your domain server.
14047	// If you need to specify the port number include it after the colon (“:”).
14048	// For example, mydc.mydomain.com:389.
14049	DomainControllers []*string `type:"list"`
14050
14051	// The name of the domain that you want the gateway to join.
14052	//
14053	// DomainName is a required field
14054	DomainName *string `min:"1" type:"string" required:"true"`
14055
14056	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14057	// to return a list of gateways for your account and AWS Region.
14058	//
14059	// GatewayARN is a required field
14060	GatewayARN *string `min:"50" type:"string" required:"true"`
14061
14062	// The organizational unit (OU) is a container in an Active Directory that can
14063	// hold users, groups, computers, and other OUs and this parameter specifies
14064	// the OU that the gateway will join within the AD domain.
14065	OrganizationalUnit *string `min:"1" type:"string"`
14066
14067	// Sets the password of the user who has permission to add the gateway to the
14068	// Active Directory domain.
14069	//
14070	// Password is a required field
14071	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
14072
14073	// Specifies the time in seconds, in which the JoinDomain operation must complete.
14074	// The default is 20 seconds.
14075	TimeoutInSeconds *int64 `type:"integer"`
14076
14077	// Sets the user name of user who has permission to add the gateway to the Active
14078	// Directory domain. The domain user account should be enabled to join computers
14079	// to the domain. For example, you can use the domain administrator account
14080	// or an account with delegated permissions to join computers to the domain.
14081	//
14082	// UserName is a required field
14083	UserName *string `min:"1" type:"string" required:"true"`
14084}
14085
14086// String returns the string representation
14087func (s JoinDomainInput) String() string {
14088	return awsutil.Prettify(s)
14089}
14090
14091// GoString returns the string representation
14092func (s JoinDomainInput) GoString() string {
14093	return s.String()
14094}
14095
14096// Validate inspects the fields of the type to determine if they are valid.
14097func (s *JoinDomainInput) Validate() error {
14098	invalidParams := request.ErrInvalidParams{Context: "JoinDomainInput"}
14099	if s.DomainName == nil {
14100		invalidParams.Add(request.NewErrParamRequired("DomainName"))
14101	}
14102	if s.DomainName != nil && len(*s.DomainName) < 1 {
14103		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
14104	}
14105	if s.GatewayARN == nil {
14106		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14107	}
14108	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14109		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14110	}
14111	if s.OrganizationalUnit != nil && len(*s.OrganizationalUnit) < 1 {
14112		invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnit", 1))
14113	}
14114	if s.Password == nil {
14115		invalidParams.Add(request.NewErrParamRequired("Password"))
14116	}
14117	if s.Password != nil && len(*s.Password) < 1 {
14118		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
14119	}
14120	if s.UserName == nil {
14121		invalidParams.Add(request.NewErrParamRequired("UserName"))
14122	}
14123	if s.UserName != nil && len(*s.UserName) < 1 {
14124		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
14125	}
14126
14127	if invalidParams.Len() > 0 {
14128		return invalidParams
14129	}
14130	return nil
14131}
14132
14133// SetDomainControllers sets the DomainControllers field's value.
14134func (s *JoinDomainInput) SetDomainControllers(v []*string) *JoinDomainInput {
14135	s.DomainControllers = v
14136	return s
14137}
14138
14139// SetDomainName sets the DomainName field's value.
14140func (s *JoinDomainInput) SetDomainName(v string) *JoinDomainInput {
14141	s.DomainName = &v
14142	return s
14143}
14144
14145// SetGatewayARN sets the GatewayARN field's value.
14146func (s *JoinDomainInput) SetGatewayARN(v string) *JoinDomainInput {
14147	s.GatewayARN = &v
14148	return s
14149}
14150
14151// SetOrganizationalUnit sets the OrganizationalUnit field's value.
14152func (s *JoinDomainInput) SetOrganizationalUnit(v string) *JoinDomainInput {
14153	s.OrganizationalUnit = &v
14154	return s
14155}
14156
14157// SetPassword sets the Password field's value.
14158func (s *JoinDomainInput) SetPassword(v string) *JoinDomainInput {
14159	s.Password = &v
14160	return s
14161}
14162
14163// SetTimeoutInSeconds sets the TimeoutInSeconds field's value.
14164func (s *JoinDomainInput) SetTimeoutInSeconds(v int64) *JoinDomainInput {
14165	s.TimeoutInSeconds = &v
14166	return s
14167}
14168
14169// SetUserName sets the UserName field's value.
14170func (s *JoinDomainInput) SetUserName(v string) *JoinDomainInput {
14171	s.UserName = &v
14172	return s
14173}
14174
14175// JoinDomainOutput
14176type JoinDomainOutput struct {
14177	_ struct{} `type:"structure"`
14178
14179	// Indicates the status of the gateway as a member of the Active Directory domain.
14180	//
14181	//    * ACCESS_DENIED: Indicates that the JoinDomain operation failed due to
14182	//    an authentication error.
14183	//
14184	//    * DETACHED: Indicates that gateway is not joined to a domain.
14185	//
14186	//    * JOINED: Indicates that the gateway has successfully joined a domain.
14187	//
14188	//    * JOINING: Indicates that a JoinDomain operation is in progress.
14189	//
14190	//    * NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network
14191	//    or connectivity error.
14192	//
14193	//    * TIMEOUT: Indicates that the JoinDomain operation failed because the
14194	//    operation didn't complete within the allotted time.
14195	//
14196	//    * UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to
14197	//    another type of error.
14198	ActiveDirectoryStatus *string `type:"string" enum:"ActiveDirectoryStatus"`
14199
14200	// The unique Amazon Resource Name (ARN) of the gateway that joined the domain.
14201	GatewayARN *string `min:"50" type:"string"`
14202}
14203
14204// String returns the string representation
14205func (s JoinDomainOutput) String() string {
14206	return awsutil.Prettify(s)
14207}
14208
14209// GoString returns the string representation
14210func (s JoinDomainOutput) GoString() string {
14211	return s.String()
14212}
14213
14214// SetActiveDirectoryStatus sets the ActiveDirectoryStatus field's value.
14215func (s *JoinDomainOutput) SetActiveDirectoryStatus(v string) *JoinDomainOutput {
14216	s.ActiveDirectoryStatus = &v
14217	return s
14218}
14219
14220// SetGatewayARN sets the GatewayARN field's value.
14221func (s *JoinDomainOutput) SetGatewayARN(v string) *JoinDomainOutput {
14222	s.GatewayARN = &v
14223	return s
14224}
14225
14226type ListAutomaticTapeCreationPoliciesInput struct {
14227	_ struct{} `type:"structure"`
14228
14229	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14230	// to return a list of gateways for your account and AWS Region.
14231	GatewayARN *string `min:"50" type:"string"`
14232}
14233
14234// String returns the string representation
14235func (s ListAutomaticTapeCreationPoliciesInput) String() string {
14236	return awsutil.Prettify(s)
14237}
14238
14239// GoString returns the string representation
14240func (s ListAutomaticTapeCreationPoliciesInput) GoString() string {
14241	return s.String()
14242}
14243
14244// Validate inspects the fields of the type to determine if they are valid.
14245func (s *ListAutomaticTapeCreationPoliciesInput) Validate() error {
14246	invalidParams := request.ErrInvalidParams{Context: "ListAutomaticTapeCreationPoliciesInput"}
14247	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14248		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14249	}
14250
14251	if invalidParams.Len() > 0 {
14252		return invalidParams
14253	}
14254	return nil
14255}
14256
14257// SetGatewayARN sets the GatewayARN field's value.
14258func (s *ListAutomaticTapeCreationPoliciesInput) SetGatewayARN(v string) *ListAutomaticTapeCreationPoliciesInput {
14259	s.GatewayARN = &v
14260	return s
14261}
14262
14263type ListAutomaticTapeCreationPoliciesOutput struct {
14264	_ struct{} `type:"structure"`
14265
14266	// Gets a listing of information about the gateway's automatic tape creation
14267	// policies, including the automatic tape creation rules and the gateway that
14268	// is using the policies.
14269	AutomaticTapeCreationPolicyInfos []*AutomaticTapeCreationPolicyInfo `type:"list"`
14270}
14271
14272// String returns the string representation
14273func (s ListAutomaticTapeCreationPoliciesOutput) String() string {
14274	return awsutil.Prettify(s)
14275}
14276
14277// GoString returns the string representation
14278func (s ListAutomaticTapeCreationPoliciesOutput) GoString() string {
14279	return s.String()
14280}
14281
14282// SetAutomaticTapeCreationPolicyInfos sets the AutomaticTapeCreationPolicyInfos field's value.
14283func (s *ListAutomaticTapeCreationPoliciesOutput) SetAutomaticTapeCreationPolicyInfos(v []*AutomaticTapeCreationPolicyInfo) *ListAutomaticTapeCreationPoliciesOutput {
14284	s.AutomaticTapeCreationPolicyInfos = v
14285	return s
14286}
14287
14288// ListFileShareInput
14289type ListFileSharesInput struct {
14290	_ struct{} `type:"structure"`
14291
14292	// The Amazon Resource Name (ARN) of the gateway whose file shares you want
14293	// to list. If this field is not present, all file shares under your account
14294	// are listed.
14295	GatewayARN *string `min:"50" type:"string"`
14296
14297	// The maximum number of file shares to return in the response. The value must
14298	// be an integer with a value greater than zero. Optional.
14299	Limit *int64 `min:"1" type:"integer"`
14300
14301	// Opaque pagination token returned from a previous ListFileShares operation.
14302	// If present, Marker specifies where to continue the list from after a previous
14303	// call to ListFileShares. Optional.
14304	Marker *string `min:"1" type:"string"`
14305}
14306
14307// String returns the string representation
14308func (s ListFileSharesInput) String() string {
14309	return awsutil.Prettify(s)
14310}
14311
14312// GoString returns the string representation
14313func (s ListFileSharesInput) GoString() string {
14314	return s.String()
14315}
14316
14317// Validate inspects the fields of the type to determine if they are valid.
14318func (s *ListFileSharesInput) Validate() error {
14319	invalidParams := request.ErrInvalidParams{Context: "ListFileSharesInput"}
14320	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14321		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14322	}
14323	if s.Limit != nil && *s.Limit < 1 {
14324		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14325	}
14326	if s.Marker != nil && len(*s.Marker) < 1 {
14327		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14328	}
14329
14330	if invalidParams.Len() > 0 {
14331		return invalidParams
14332	}
14333	return nil
14334}
14335
14336// SetGatewayARN sets the GatewayARN field's value.
14337func (s *ListFileSharesInput) SetGatewayARN(v string) *ListFileSharesInput {
14338	s.GatewayARN = &v
14339	return s
14340}
14341
14342// SetLimit sets the Limit field's value.
14343func (s *ListFileSharesInput) SetLimit(v int64) *ListFileSharesInput {
14344	s.Limit = &v
14345	return s
14346}
14347
14348// SetMarker sets the Marker field's value.
14349func (s *ListFileSharesInput) SetMarker(v string) *ListFileSharesInput {
14350	s.Marker = &v
14351	return s
14352}
14353
14354// ListFileShareOutput
14355type ListFileSharesOutput struct {
14356	_ struct{} `type:"structure"`
14357
14358	// An array of information about the file gateway's file shares.
14359	FileShareInfoList []*FileShareInfo `type:"list"`
14360
14361	// If the request includes Marker, the response returns that value in this field.
14362	Marker *string `min:"1" type:"string"`
14363
14364	// If a value is present, there are more file shares to return. In a subsequent
14365	// request, use NextMarker as the value for Marker to retrieve the next set
14366	// of file shares.
14367	NextMarker *string `min:"1" type:"string"`
14368}
14369
14370// String returns the string representation
14371func (s ListFileSharesOutput) String() string {
14372	return awsutil.Prettify(s)
14373}
14374
14375// GoString returns the string representation
14376func (s ListFileSharesOutput) GoString() string {
14377	return s.String()
14378}
14379
14380// SetFileShareInfoList sets the FileShareInfoList field's value.
14381func (s *ListFileSharesOutput) SetFileShareInfoList(v []*FileShareInfo) *ListFileSharesOutput {
14382	s.FileShareInfoList = v
14383	return s
14384}
14385
14386// SetMarker sets the Marker field's value.
14387func (s *ListFileSharesOutput) SetMarker(v string) *ListFileSharesOutput {
14388	s.Marker = &v
14389	return s
14390}
14391
14392// SetNextMarker sets the NextMarker field's value.
14393func (s *ListFileSharesOutput) SetNextMarker(v string) *ListFileSharesOutput {
14394	s.NextMarker = &v
14395	return s
14396}
14397
14398// A JSON object containing zero or more of the following fields:
14399//
14400//    * ListGatewaysInput$Limit
14401//
14402//    * ListGatewaysInput$Marker
14403type ListGatewaysInput struct {
14404	_ struct{} `type:"structure"`
14405
14406	// Specifies that the list of gateways returned be limited to the specified
14407	// number of items.
14408	Limit *int64 `min:"1" type:"integer"`
14409
14410	// An opaque string that indicates the position at which to begin the returned
14411	// list of gateways.
14412	Marker *string `min:"1" type:"string"`
14413}
14414
14415// String returns the string representation
14416func (s ListGatewaysInput) String() string {
14417	return awsutil.Prettify(s)
14418}
14419
14420// GoString returns the string representation
14421func (s ListGatewaysInput) GoString() string {
14422	return s.String()
14423}
14424
14425// Validate inspects the fields of the type to determine if they are valid.
14426func (s *ListGatewaysInput) Validate() error {
14427	invalidParams := request.ErrInvalidParams{Context: "ListGatewaysInput"}
14428	if s.Limit != nil && *s.Limit < 1 {
14429		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14430	}
14431	if s.Marker != nil && len(*s.Marker) < 1 {
14432		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14433	}
14434
14435	if invalidParams.Len() > 0 {
14436		return invalidParams
14437	}
14438	return nil
14439}
14440
14441// SetLimit sets the Limit field's value.
14442func (s *ListGatewaysInput) SetLimit(v int64) *ListGatewaysInput {
14443	s.Limit = &v
14444	return s
14445}
14446
14447// SetMarker sets the Marker field's value.
14448func (s *ListGatewaysInput) SetMarker(v string) *ListGatewaysInput {
14449	s.Marker = &v
14450	return s
14451}
14452
14453type ListGatewaysOutput struct {
14454	_ struct{} `type:"structure"`
14455
14456	// An array of GatewayInfo objects.
14457	Gateways []*GatewayInfo `type:"list"`
14458
14459	// Use the marker in your next request to fetch the next set of gateways in
14460	// the list. If there are no more gateways to list, this field does not appear
14461	// in the response.
14462	Marker *string `min:"1" type:"string"`
14463}
14464
14465// String returns the string representation
14466func (s ListGatewaysOutput) String() string {
14467	return awsutil.Prettify(s)
14468}
14469
14470// GoString returns the string representation
14471func (s ListGatewaysOutput) GoString() string {
14472	return s.String()
14473}
14474
14475// SetGateways sets the Gateways field's value.
14476func (s *ListGatewaysOutput) SetGateways(v []*GatewayInfo) *ListGatewaysOutput {
14477	s.Gateways = v
14478	return s
14479}
14480
14481// SetMarker sets the Marker field's value.
14482func (s *ListGatewaysOutput) SetMarker(v string) *ListGatewaysOutput {
14483	s.Marker = &v
14484	return s
14485}
14486
14487// A JSON object containing the Amazon Resource Name (ARN) of the gateway.
14488type ListLocalDisksInput struct {
14489	_ struct{} `type:"structure"`
14490
14491	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14492	// to return a list of gateways for your account and AWS Region.
14493	//
14494	// GatewayARN is a required field
14495	GatewayARN *string `min:"50" type:"string" required:"true"`
14496}
14497
14498// String returns the string representation
14499func (s ListLocalDisksInput) String() string {
14500	return awsutil.Prettify(s)
14501}
14502
14503// GoString returns the string representation
14504func (s ListLocalDisksInput) GoString() string {
14505	return s.String()
14506}
14507
14508// Validate inspects the fields of the type to determine if they are valid.
14509func (s *ListLocalDisksInput) Validate() error {
14510	invalidParams := request.ErrInvalidParams{Context: "ListLocalDisksInput"}
14511	if s.GatewayARN == nil {
14512		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14513	}
14514	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14515		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14516	}
14517
14518	if invalidParams.Len() > 0 {
14519		return invalidParams
14520	}
14521	return nil
14522}
14523
14524// SetGatewayARN sets the GatewayARN field's value.
14525func (s *ListLocalDisksInput) SetGatewayARN(v string) *ListLocalDisksInput {
14526	s.GatewayARN = &v
14527	return s
14528}
14529
14530type ListLocalDisksOutput struct {
14531	_ struct{} `type:"structure"`
14532
14533	// A JSON object containing the following fields:
14534	//
14535	//    * ListLocalDisksOutput$Disks
14536	Disks []*Disk `type:"list"`
14537
14538	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14539	// to return a list of gateways for your account and AWS Region.
14540	GatewayARN *string `min:"50" type:"string"`
14541}
14542
14543// String returns the string representation
14544func (s ListLocalDisksOutput) String() string {
14545	return awsutil.Prettify(s)
14546}
14547
14548// GoString returns the string representation
14549func (s ListLocalDisksOutput) GoString() string {
14550	return s.String()
14551}
14552
14553// SetDisks sets the Disks field's value.
14554func (s *ListLocalDisksOutput) SetDisks(v []*Disk) *ListLocalDisksOutput {
14555	s.Disks = v
14556	return s
14557}
14558
14559// SetGatewayARN sets the GatewayARN field's value.
14560func (s *ListLocalDisksOutput) SetGatewayARN(v string) *ListLocalDisksOutput {
14561	s.GatewayARN = &v
14562	return s
14563}
14564
14565// ListTagsForResourceInput
14566type ListTagsForResourceInput struct {
14567	_ struct{} `type:"structure"`
14568
14569	// Specifies that the list of tags returned be limited to the specified number
14570	// of items.
14571	Limit *int64 `min:"1" type:"integer"`
14572
14573	// An opaque string that indicates the position at which to begin returning
14574	// the list of tags.
14575	Marker *string `min:"1" type:"string"`
14576
14577	// The Amazon Resource Name (ARN) of the resource for which you want to list
14578	// tags.
14579	//
14580	// ResourceARN is a required field
14581	ResourceARN *string `min:"50" type:"string" required:"true"`
14582}
14583
14584// String returns the string representation
14585func (s ListTagsForResourceInput) String() string {
14586	return awsutil.Prettify(s)
14587}
14588
14589// GoString returns the string representation
14590func (s ListTagsForResourceInput) GoString() string {
14591	return s.String()
14592}
14593
14594// Validate inspects the fields of the type to determine if they are valid.
14595func (s *ListTagsForResourceInput) Validate() error {
14596	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
14597	if s.Limit != nil && *s.Limit < 1 {
14598		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14599	}
14600	if s.Marker != nil && len(*s.Marker) < 1 {
14601		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14602	}
14603	if s.ResourceARN == nil {
14604		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
14605	}
14606	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
14607		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
14608	}
14609
14610	if invalidParams.Len() > 0 {
14611		return invalidParams
14612	}
14613	return nil
14614}
14615
14616// SetLimit sets the Limit field's value.
14617func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
14618	s.Limit = &v
14619	return s
14620}
14621
14622// SetMarker sets the Marker field's value.
14623func (s *ListTagsForResourceInput) SetMarker(v string) *ListTagsForResourceInput {
14624	s.Marker = &v
14625	return s
14626}
14627
14628// SetResourceARN sets the ResourceARN field's value.
14629func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
14630	s.ResourceARN = &v
14631	return s
14632}
14633
14634// ListTagsForResourceOutput
14635type ListTagsForResourceOutput struct {
14636	_ struct{} `type:"structure"`
14637
14638	// An opaque string that indicates the position at which to stop returning the
14639	// list of tags.
14640	Marker *string `min:"1" type:"string"`
14641
14642	// he Amazon Resource Name (ARN) of the resource for which you want to list
14643	// tags.
14644	ResourceARN *string `min:"50" type:"string"`
14645
14646	// An array that contains the tags for the specified resource.
14647	Tags []*Tag `type:"list"`
14648}
14649
14650// String returns the string representation
14651func (s ListTagsForResourceOutput) String() string {
14652	return awsutil.Prettify(s)
14653}
14654
14655// GoString returns the string representation
14656func (s ListTagsForResourceOutput) GoString() string {
14657	return s.String()
14658}
14659
14660// SetMarker sets the Marker field's value.
14661func (s *ListTagsForResourceOutput) SetMarker(v string) *ListTagsForResourceOutput {
14662	s.Marker = &v
14663	return s
14664}
14665
14666// SetResourceARN sets the ResourceARN field's value.
14667func (s *ListTagsForResourceOutput) SetResourceARN(v string) *ListTagsForResourceOutput {
14668	s.ResourceARN = &v
14669	return s
14670}
14671
14672// SetTags sets the Tags field's value.
14673func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
14674	s.Tags = v
14675	return s
14676}
14677
14678// A JSON object that contains one or more of the following fields:
14679//
14680//    * ListTapesInput$Limit
14681//
14682//    * ListTapesInput$Marker
14683//
14684//    * ListTapesInput$TapeARNs
14685type ListTapesInput struct {
14686	_ struct{} `type:"structure"`
14687
14688	// An optional number limit for the tapes in the list returned by this call.
14689	Limit *int64 `min:"1" type:"integer"`
14690
14691	// A string that indicates the position at which to begin the returned list
14692	// of tapes.
14693	Marker *string `min:"1" type:"string"`
14694
14695	// The Amazon Resource Name (ARN) of each of the tapes you want to list. If
14696	// you don't specify a tape ARN, the response lists all tapes in both your VTL
14697	// and VTS.
14698	TapeARNs []*string `type:"list"`
14699}
14700
14701// String returns the string representation
14702func (s ListTapesInput) String() string {
14703	return awsutil.Prettify(s)
14704}
14705
14706// GoString returns the string representation
14707func (s ListTapesInput) GoString() string {
14708	return s.String()
14709}
14710
14711// Validate inspects the fields of the type to determine if they are valid.
14712func (s *ListTapesInput) Validate() error {
14713	invalidParams := request.ErrInvalidParams{Context: "ListTapesInput"}
14714	if s.Limit != nil && *s.Limit < 1 {
14715		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14716	}
14717	if s.Marker != nil && len(*s.Marker) < 1 {
14718		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14719	}
14720
14721	if invalidParams.Len() > 0 {
14722		return invalidParams
14723	}
14724	return nil
14725}
14726
14727// SetLimit sets the Limit field's value.
14728func (s *ListTapesInput) SetLimit(v int64) *ListTapesInput {
14729	s.Limit = &v
14730	return s
14731}
14732
14733// SetMarker sets the Marker field's value.
14734func (s *ListTapesInput) SetMarker(v string) *ListTapesInput {
14735	s.Marker = &v
14736	return s
14737}
14738
14739// SetTapeARNs sets the TapeARNs field's value.
14740func (s *ListTapesInput) SetTapeARNs(v []*string) *ListTapesInput {
14741	s.TapeARNs = v
14742	return s
14743}
14744
14745// A JSON object containing the following fields:
14746//
14747//    * ListTapesOutput$Marker
14748//
14749//    * ListTapesOutput$VolumeInfos
14750type ListTapesOutput struct {
14751	_ struct{} `type:"structure"`
14752
14753	// A string that indicates the position at which to begin returning the next
14754	// list of tapes. Use the marker in your next request to continue pagination
14755	// of tapes. If there are no more tapes to list, this element does not appear
14756	// in the response body.
14757	Marker *string `min:"1" type:"string"`
14758
14759	// An array of TapeInfo objects, where each object describes a single tape.
14760	// If there are no tapes in the tape library or VTS, then the TapeInfos is an
14761	// empty array.
14762	TapeInfos []*TapeInfo `type:"list"`
14763}
14764
14765// String returns the string representation
14766func (s ListTapesOutput) String() string {
14767	return awsutil.Prettify(s)
14768}
14769
14770// GoString returns the string representation
14771func (s ListTapesOutput) GoString() string {
14772	return s.String()
14773}
14774
14775// SetMarker sets the Marker field's value.
14776func (s *ListTapesOutput) SetMarker(v string) *ListTapesOutput {
14777	s.Marker = &v
14778	return s
14779}
14780
14781// SetTapeInfos sets the TapeInfos field's value.
14782func (s *ListTapesOutput) SetTapeInfos(v []*TapeInfo) *ListTapesOutput {
14783	s.TapeInfos = v
14784	return s
14785}
14786
14787// ListVolumeInitiatorsInput
14788type ListVolumeInitiatorsInput struct {
14789	_ struct{} `type:"structure"`
14790
14791	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
14792	// to return a list of gateway volumes for the gateway.
14793	//
14794	// VolumeARN is a required field
14795	VolumeARN *string `min:"50" type:"string" required:"true"`
14796}
14797
14798// String returns the string representation
14799func (s ListVolumeInitiatorsInput) String() string {
14800	return awsutil.Prettify(s)
14801}
14802
14803// GoString returns the string representation
14804func (s ListVolumeInitiatorsInput) GoString() string {
14805	return s.String()
14806}
14807
14808// Validate inspects the fields of the type to determine if they are valid.
14809func (s *ListVolumeInitiatorsInput) Validate() error {
14810	invalidParams := request.ErrInvalidParams{Context: "ListVolumeInitiatorsInput"}
14811	if s.VolumeARN == nil {
14812		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
14813	}
14814	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
14815		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
14816	}
14817
14818	if invalidParams.Len() > 0 {
14819		return invalidParams
14820	}
14821	return nil
14822}
14823
14824// SetVolumeARN sets the VolumeARN field's value.
14825func (s *ListVolumeInitiatorsInput) SetVolumeARN(v string) *ListVolumeInitiatorsInput {
14826	s.VolumeARN = &v
14827	return s
14828}
14829
14830// ListVolumeInitiatorsOutput
14831type ListVolumeInitiatorsOutput struct {
14832	_ struct{} `type:"structure"`
14833
14834	// The host names and port numbers of all iSCSI initiators that are connected
14835	// to the gateway.
14836	Initiators []*string `type:"list"`
14837}
14838
14839// String returns the string representation
14840func (s ListVolumeInitiatorsOutput) String() string {
14841	return awsutil.Prettify(s)
14842}
14843
14844// GoString returns the string representation
14845func (s ListVolumeInitiatorsOutput) GoString() string {
14846	return s.String()
14847}
14848
14849// SetInitiators sets the Initiators field's value.
14850func (s *ListVolumeInitiatorsOutput) SetInitiators(v []*string) *ListVolumeInitiatorsOutput {
14851	s.Initiators = v
14852	return s
14853}
14854
14855type ListVolumeRecoveryPointsInput struct {
14856	_ struct{} `type:"structure"`
14857
14858	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14859	// to return a list of gateways for your account and AWS Region.
14860	//
14861	// GatewayARN is a required field
14862	GatewayARN *string `min:"50" type:"string" required:"true"`
14863}
14864
14865// String returns the string representation
14866func (s ListVolumeRecoveryPointsInput) String() string {
14867	return awsutil.Prettify(s)
14868}
14869
14870// GoString returns the string representation
14871func (s ListVolumeRecoveryPointsInput) GoString() string {
14872	return s.String()
14873}
14874
14875// Validate inspects the fields of the type to determine if they are valid.
14876func (s *ListVolumeRecoveryPointsInput) Validate() error {
14877	invalidParams := request.ErrInvalidParams{Context: "ListVolumeRecoveryPointsInput"}
14878	if s.GatewayARN == nil {
14879		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14880	}
14881	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14882		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14883	}
14884
14885	if invalidParams.Len() > 0 {
14886		return invalidParams
14887	}
14888	return nil
14889}
14890
14891// SetGatewayARN sets the GatewayARN field's value.
14892func (s *ListVolumeRecoveryPointsInput) SetGatewayARN(v string) *ListVolumeRecoveryPointsInput {
14893	s.GatewayARN = &v
14894	return s
14895}
14896
14897type ListVolumeRecoveryPointsOutput struct {
14898	_ struct{} `type:"structure"`
14899
14900	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14901	// to return a list of gateways for your account and AWS Region.
14902	GatewayARN *string `min:"50" type:"string"`
14903
14904	// An array of VolumeRecoveryPointInfo objects.
14905	VolumeRecoveryPointInfos []*VolumeRecoveryPointInfo `type:"list"`
14906}
14907
14908// String returns the string representation
14909func (s ListVolumeRecoveryPointsOutput) String() string {
14910	return awsutil.Prettify(s)
14911}
14912
14913// GoString returns the string representation
14914func (s ListVolumeRecoveryPointsOutput) GoString() string {
14915	return s.String()
14916}
14917
14918// SetGatewayARN sets the GatewayARN field's value.
14919func (s *ListVolumeRecoveryPointsOutput) SetGatewayARN(v string) *ListVolumeRecoveryPointsOutput {
14920	s.GatewayARN = &v
14921	return s
14922}
14923
14924// SetVolumeRecoveryPointInfos sets the VolumeRecoveryPointInfos field's value.
14925func (s *ListVolumeRecoveryPointsOutput) SetVolumeRecoveryPointInfos(v []*VolumeRecoveryPointInfo) *ListVolumeRecoveryPointsOutput {
14926	s.VolumeRecoveryPointInfos = v
14927	return s
14928}
14929
14930// A JSON object that contains one or more of the following fields:
14931//
14932//    * ListVolumesInput$Limit
14933//
14934//    * ListVolumesInput$Marker
14935type ListVolumesInput struct {
14936	_ struct{} `type:"structure"`
14937
14938	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14939	// to return a list of gateways for your account and AWS Region.
14940	GatewayARN *string `min:"50" type:"string"`
14941
14942	// Specifies that the list of volumes returned be limited to the specified number
14943	// of items.
14944	Limit *int64 `min:"1" type:"integer"`
14945
14946	// A string that indicates the position at which to begin the returned list
14947	// of volumes. Obtain the marker from the response of a previous List iSCSI
14948	// Volumes request.
14949	Marker *string `min:"1" type:"string"`
14950}
14951
14952// String returns the string representation
14953func (s ListVolumesInput) String() string {
14954	return awsutil.Prettify(s)
14955}
14956
14957// GoString returns the string representation
14958func (s ListVolumesInput) GoString() string {
14959	return s.String()
14960}
14961
14962// Validate inspects the fields of the type to determine if they are valid.
14963func (s *ListVolumesInput) Validate() error {
14964	invalidParams := request.ErrInvalidParams{Context: "ListVolumesInput"}
14965	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14966		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14967	}
14968	if s.Limit != nil && *s.Limit < 1 {
14969		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14970	}
14971	if s.Marker != nil && len(*s.Marker) < 1 {
14972		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14973	}
14974
14975	if invalidParams.Len() > 0 {
14976		return invalidParams
14977	}
14978	return nil
14979}
14980
14981// SetGatewayARN sets the GatewayARN field's value.
14982func (s *ListVolumesInput) SetGatewayARN(v string) *ListVolumesInput {
14983	s.GatewayARN = &v
14984	return s
14985}
14986
14987// SetLimit sets the Limit field's value.
14988func (s *ListVolumesInput) SetLimit(v int64) *ListVolumesInput {
14989	s.Limit = &v
14990	return s
14991}
14992
14993// SetMarker sets the Marker field's value.
14994func (s *ListVolumesInput) SetMarker(v string) *ListVolumesInput {
14995	s.Marker = &v
14996	return s
14997}
14998
14999// A JSON object containing the following fields:
15000//
15001//    * ListVolumesOutput$Marker
15002//
15003//    * ListVolumesOutput$VolumeInfos
15004type ListVolumesOutput struct {
15005	_ struct{} `type:"structure"`
15006
15007	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15008	// to return a list of gateways for your account and AWS Region.
15009	GatewayARN *string `min:"50" type:"string"`
15010
15011	// Use the marker in your next request to continue pagination of iSCSI volumes.
15012	// If there are no more volumes to list, this field does not appear in the response
15013	// body.
15014	Marker *string `min:"1" type:"string"`
15015
15016	// An array of VolumeInfo objects, where each object describes an iSCSI volume.
15017	// If no volumes are defined for the gateway, then VolumeInfos is an empty array
15018	// "[]".
15019	VolumeInfos []*VolumeInfo `type:"list"`
15020}
15021
15022// String returns the string representation
15023func (s ListVolumesOutput) String() string {
15024	return awsutil.Prettify(s)
15025}
15026
15027// GoString returns the string representation
15028func (s ListVolumesOutput) GoString() string {
15029	return s.String()
15030}
15031
15032// SetGatewayARN sets the GatewayARN field's value.
15033func (s *ListVolumesOutput) SetGatewayARN(v string) *ListVolumesOutput {
15034	s.GatewayARN = &v
15035	return s
15036}
15037
15038// SetMarker sets the Marker field's value.
15039func (s *ListVolumesOutput) SetMarker(v string) *ListVolumesOutput {
15040	s.Marker = &v
15041	return s
15042}
15043
15044// SetVolumeInfos sets the VolumeInfos field's value.
15045func (s *ListVolumesOutput) SetVolumeInfos(v []*VolumeInfo) *ListVolumesOutput {
15046	s.VolumeInfos = v
15047	return s
15048}
15049
15050// Describes Network File System (NFS) file share default values. Files and
15051// folders stored as Amazon S3 objects in S3 buckets don't, by default, have
15052// Unix file permissions assigned to them. Upon discovery in an S3 bucket by
15053// Storage Gateway, the S3 objects that represent files and folders are assigned
15054// these default Unix permissions. This operation is only supported for file
15055// gateways.
15056type NFSFileShareDefaults struct {
15057	_ struct{} `type:"structure"`
15058
15059	// The Unix directory mode in the form "nnnn". For example, 0666 represents
15060	// the default access mode for all directories inside the file share. The default
15061	// value is 0777.
15062	DirectoryMode *string `min:"1" type:"string"`
15063
15064	// The Unix file mode in the form "nnnn". For example, 0666 represents the default
15065	// file mode inside the file share. The default value is 0666.
15066	FileMode *string `min:"1" type:"string"`
15067
15068	// The default group ID for the file share (unless the files have another group
15069	// ID specified). The default value is nfsnobody.
15070	GroupId *int64 `type:"long"`
15071
15072	// The default owner ID for files in the file share (unless the files have another
15073	// owner ID specified). The default value is nfsnobody.
15074	OwnerId *int64 `type:"long"`
15075}
15076
15077// String returns the string representation
15078func (s NFSFileShareDefaults) String() string {
15079	return awsutil.Prettify(s)
15080}
15081
15082// GoString returns the string representation
15083func (s NFSFileShareDefaults) GoString() string {
15084	return s.String()
15085}
15086
15087// Validate inspects the fields of the type to determine if they are valid.
15088func (s *NFSFileShareDefaults) Validate() error {
15089	invalidParams := request.ErrInvalidParams{Context: "NFSFileShareDefaults"}
15090	if s.DirectoryMode != nil && len(*s.DirectoryMode) < 1 {
15091		invalidParams.Add(request.NewErrParamMinLen("DirectoryMode", 1))
15092	}
15093	if s.FileMode != nil && len(*s.FileMode) < 1 {
15094		invalidParams.Add(request.NewErrParamMinLen("FileMode", 1))
15095	}
15096
15097	if invalidParams.Len() > 0 {
15098		return invalidParams
15099	}
15100	return nil
15101}
15102
15103// SetDirectoryMode sets the DirectoryMode field's value.
15104func (s *NFSFileShareDefaults) SetDirectoryMode(v string) *NFSFileShareDefaults {
15105	s.DirectoryMode = &v
15106	return s
15107}
15108
15109// SetFileMode sets the FileMode field's value.
15110func (s *NFSFileShareDefaults) SetFileMode(v string) *NFSFileShareDefaults {
15111	s.FileMode = &v
15112	return s
15113}
15114
15115// SetGroupId sets the GroupId field's value.
15116func (s *NFSFileShareDefaults) SetGroupId(v int64) *NFSFileShareDefaults {
15117	s.GroupId = &v
15118	return s
15119}
15120
15121// SetOwnerId sets the OwnerId field's value.
15122func (s *NFSFileShareDefaults) SetOwnerId(v int64) *NFSFileShareDefaults {
15123	s.OwnerId = &v
15124	return s
15125}
15126
15127// The Unix file permissions and ownership information assigned, by default,
15128// to native S3 objects when file gateway discovers them in S3 buckets. This
15129// operation is only supported in file gateways.
15130type NFSFileShareInfo struct {
15131	_ struct{} `type:"structure"`
15132
15133	// Refresh cache information.
15134	CacheAttributes *CacheAttributes `type:"structure"`
15135
15136	// The list of clients that are allowed to access the file gateway. The list
15137	// must contain either valid IP addresses or valid CIDR blocks.
15138	ClientList []*string `min:"1" type:"list"`
15139
15140	// The default storage class for objects put into an Amazon S3 bucket by the
15141	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
15142	//
15143	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
15144	DefaultStorageClass *string `min:"5" type:"string"`
15145
15146	// The Amazon Resource Name (ARN) of the file share.
15147	FileShareARN *string `min:"50" type:"string"`
15148
15149	// The ID of the file share.
15150	FileShareId *string `min:"12" type:"string"`
15151
15152	// The name of the file share. Optional.
15153	//
15154	// FileShareName must be set if an S3 prefix name is set in LocationARN.
15155	FileShareName *string `min:"1" type:"string"`
15156
15157	// The status of the file share.
15158	//
15159	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
15160	FileShareStatus *string `min:"3" type:"string"`
15161
15162	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15163	// to return a list of gateways for your account and AWS Region.
15164	GatewayARN *string `min:"50" type:"string"`
15165
15166	// A value that enables guessing of the MIME type for uploaded objects based
15167	// on file extensions. Set this value to true to enable MIME type guessing,
15168	// otherwise set to false. The default value is true.
15169	//
15170	// Valid Values: true | false
15171	GuessMIMETypeEnabled *bool `type:"boolean"`
15172
15173	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
15174	// key, or false to use a key managed by Amazon S3. Optional.
15175	//
15176	// Valid Values: true | false
15177	KMSEncrypted *bool `type:"boolean"`
15178
15179	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
15180	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
15181	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
15182	KMSKey *string `min:"7" type:"string"`
15183
15184	// The ARN of the backend storage used for storing file data. A prefix name
15185	// can be added to the S3 bucket name. It must end with a "/".
15186	LocationARN *string `min:"16" type:"string"`
15187
15188	// Describes Network File System (NFS) file share default values. Files and
15189	// folders stored as Amazon S3 objects in S3 buckets don't, by default, have
15190	// Unix file permissions assigned to them. Upon discovery in an S3 bucket by
15191	// Storage Gateway, the S3 objects that represent files and folders are assigned
15192	// these default Unix permissions. This operation is only supported for file
15193	// gateways.
15194	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
15195
15196	// A value that sets the access control list (ACL) permission for objects in
15197	// the S3 bucket that a file gateway puts objects into. The default value is
15198	// private.
15199	ObjectACL *string `type:"string" enum:"ObjectACL"`
15200
15201	// The file share path used by the NFS client to identify the mount point.
15202	Path *string `type:"string"`
15203
15204	// A value that sets the write status of a file share. Set this value to true
15205	// to set the write status to read-only, otherwise set to false.
15206	//
15207	// Valid Values: true | false
15208	ReadOnly *bool `type:"boolean"`
15209
15210	// A value that sets who pays the cost of the request and the cost associated
15211	// with data download from the S3 bucket. If this value is set to true, the
15212	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
15213	// S3 bucket owner always pays the cost of storing data.
15214	//
15215	// RequesterPays is a configuration for the S3 bucket that backs the file share,
15216	// so make sure that the configuration on the file share is the same as the
15217	// S3 bucket configuration.
15218	//
15219	// Valid Values: true | false
15220	RequesterPays *bool `type:"boolean"`
15221
15222	// The ARN of the IAM role that file gateway assumes when it accesses the underlying
15223	// storage.
15224	Role *string `min:"20" type:"string"`
15225
15226	// The user mapped to anonymous user. Valid options are the following:
15227	//
15228	//    * RootSquash: Only root is mapped to anonymous user.
15229	//
15230	//    * NoSquash: No one is mapped to anonymous user.
15231	//
15232	//    * AllSquash: Everyone is mapped to anonymous user.
15233	Squash *string `min:"5" type:"string"`
15234
15235	// A list of up to 50 tags assigned to the NFS file share, sorted alphabetically
15236	// by key name. Each tag is a key-value pair. For a gateway with more than 10
15237	// tags assigned, you can view all tags using the ListTagsForResource API operation.
15238	Tags []*Tag `type:"list"`
15239}
15240
15241// String returns the string representation
15242func (s NFSFileShareInfo) String() string {
15243	return awsutil.Prettify(s)
15244}
15245
15246// GoString returns the string representation
15247func (s NFSFileShareInfo) GoString() string {
15248	return s.String()
15249}
15250
15251// SetCacheAttributes sets the CacheAttributes field's value.
15252func (s *NFSFileShareInfo) SetCacheAttributes(v *CacheAttributes) *NFSFileShareInfo {
15253	s.CacheAttributes = v
15254	return s
15255}
15256
15257// SetClientList sets the ClientList field's value.
15258func (s *NFSFileShareInfo) SetClientList(v []*string) *NFSFileShareInfo {
15259	s.ClientList = v
15260	return s
15261}
15262
15263// SetDefaultStorageClass sets the DefaultStorageClass field's value.
15264func (s *NFSFileShareInfo) SetDefaultStorageClass(v string) *NFSFileShareInfo {
15265	s.DefaultStorageClass = &v
15266	return s
15267}
15268
15269// SetFileShareARN sets the FileShareARN field's value.
15270func (s *NFSFileShareInfo) SetFileShareARN(v string) *NFSFileShareInfo {
15271	s.FileShareARN = &v
15272	return s
15273}
15274
15275// SetFileShareId sets the FileShareId field's value.
15276func (s *NFSFileShareInfo) SetFileShareId(v string) *NFSFileShareInfo {
15277	s.FileShareId = &v
15278	return s
15279}
15280
15281// SetFileShareName sets the FileShareName field's value.
15282func (s *NFSFileShareInfo) SetFileShareName(v string) *NFSFileShareInfo {
15283	s.FileShareName = &v
15284	return s
15285}
15286
15287// SetFileShareStatus sets the FileShareStatus field's value.
15288func (s *NFSFileShareInfo) SetFileShareStatus(v string) *NFSFileShareInfo {
15289	s.FileShareStatus = &v
15290	return s
15291}
15292
15293// SetGatewayARN sets the GatewayARN field's value.
15294func (s *NFSFileShareInfo) SetGatewayARN(v string) *NFSFileShareInfo {
15295	s.GatewayARN = &v
15296	return s
15297}
15298
15299// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
15300func (s *NFSFileShareInfo) SetGuessMIMETypeEnabled(v bool) *NFSFileShareInfo {
15301	s.GuessMIMETypeEnabled = &v
15302	return s
15303}
15304
15305// SetKMSEncrypted sets the KMSEncrypted field's value.
15306func (s *NFSFileShareInfo) SetKMSEncrypted(v bool) *NFSFileShareInfo {
15307	s.KMSEncrypted = &v
15308	return s
15309}
15310
15311// SetKMSKey sets the KMSKey field's value.
15312func (s *NFSFileShareInfo) SetKMSKey(v string) *NFSFileShareInfo {
15313	s.KMSKey = &v
15314	return s
15315}
15316
15317// SetLocationARN sets the LocationARN field's value.
15318func (s *NFSFileShareInfo) SetLocationARN(v string) *NFSFileShareInfo {
15319	s.LocationARN = &v
15320	return s
15321}
15322
15323// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
15324func (s *NFSFileShareInfo) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *NFSFileShareInfo {
15325	s.NFSFileShareDefaults = v
15326	return s
15327}
15328
15329// SetObjectACL sets the ObjectACL field's value.
15330func (s *NFSFileShareInfo) SetObjectACL(v string) *NFSFileShareInfo {
15331	s.ObjectACL = &v
15332	return s
15333}
15334
15335// SetPath sets the Path field's value.
15336func (s *NFSFileShareInfo) SetPath(v string) *NFSFileShareInfo {
15337	s.Path = &v
15338	return s
15339}
15340
15341// SetReadOnly sets the ReadOnly field's value.
15342func (s *NFSFileShareInfo) SetReadOnly(v bool) *NFSFileShareInfo {
15343	s.ReadOnly = &v
15344	return s
15345}
15346
15347// SetRequesterPays sets the RequesterPays field's value.
15348func (s *NFSFileShareInfo) SetRequesterPays(v bool) *NFSFileShareInfo {
15349	s.RequesterPays = &v
15350	return s
15351}
15352
15353// SetRole sets the Role field's value.
15354func (s *NFSFileShareInfo) SetRole(v string) *NFSFileShareInfo {
15355	s.Role = &v
15356	return s
15357}
15358
15359// SetSquash sets the Squash field's value.
15360func (s *NFSFileShareInfo) SetSquash(v string) *NFSFileShareInfo {
15361	s.Squash = &v
15362	return s
15363}
15364
15365// SetTags sets the Tags field's value.
15366func (s *NFSFileShareInfo) SetTags(v []*Tag) *NFSFileShareInfo {
15367	s.Tags = v
15368	return s
15369}
15370
15371// Describes a gateway's network interface.
15372type NetworkInterface struct {
15373	_ struct{} `type:"structure"`
15374
15375	// The Internet Protocol version 4 (IPv4) address of the interface.
15376	Ipv4Address *string `type:"string"`
15377
15378	// The Internet Protocol version 6 (IPv6) address of the interface. Currently
15379	// not supported.
15380	Ipv6Address *string `type:"string"`
15381
15382	// The Media Access Control (MAC) address of the interface.
15383	//
15384	// This is currently unsupported and will not be returned in output.
15385	MacAddress *string `type:"string"`
15386}
15387
15388// String returns the string representation
15389func (s NetworkInterface) String() string {
15390	return awsutil.Prettify(s)
15391}
15392
15393// GoString returns the string representation
15394func (s NetworkInterface) GoString() string {
15395	return s.String()
15396}
15397
15398// SetIpv4Address sets the Ipv4Address field's value.
15399func (s *NetworkInterface) SetIpv4Address(v string) *NetworkInterface {
15400	s.Ipv4Address = &v
15401	return s
15402}
15403
15404// SetIpv6Address sets the Ipv6Address field's value.
15405func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
15406	s.Ipv6Address = &v
15407	return s
15408}
15409
15410// SetMacAddress sets the MacAddress field's value.
15411func (s *NetworkInterface) SetMacAddress(v string) *NetworkInterface {
15412	s.MacAddress = &v
15413	return s
15414}
15415
15416type NotifyWhenUploadedInput struct {
15417	_ struct{} `type:"structure"`
15418
15419	// The Amazon Resource Name (ARN) of the file share.
15420	//
15421	// FileShareARN is a required field
15422	FileShareARN *string `min:"50" type:"string" required:"true"`
15423}
15424
15425// String returns the string representation
15426func (s NotifyWhenUploadedInput) String() string {
15427	return awsutil.Prettify(s)
15428}
15429
15430// GoString returns the string representation
15431func (s NotifyWhenUploadedInput) GoString() string {
15432	return s.String()
15433}
15434
15435// Validate inspects the fields of the type to determine if they are valid.
15436func (s *NotifyWhenUploadedInput) Validate() error {
15437	invalidParams := request.ErrInvalidParams{Context: "NotifyWhenUploadedInput"}
15438	if s.FileShareARN == nil {
15439		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
15440	}
15441	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
15442		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
15443	}
15444
15445	if invalidParams.Len() > 0 {
15446		return invalidParams
15447	}
15448	return nil
15449}
15450
15451// SetFileShareARN sets the FileShareARN field's value.
15452func (s *NotifyWhenUploadedInput) SetFileShareARN(v string) *NotifyWhenUploadedInput {
15453	s.FileShareARN = &v
15454	return s
15455}
15456
15457type NotifyWhenUploadedOutput struct {
15458	_ struct{} `type:"structure"`
15459
15460	// The Amazon Resource Name (ARN) of the file share.
15461	FileShareARN *string `min:"50" type:"string"`
15462
15463	// The randomly generated ID of the notification that was sent. This ID is in
15464	// UUID format.
15465	NotificationId *string `min:"1" type:"string"`
15466}
15467
15468// String returns the string representation
15469func (s NotifyWhenUploadedOutput) String() string {
15470	return awsutil.Prettify(s)
15471}
15472
15473// GoString returns the string representation
15474func (s NotifyWhenUploadedOutput) GoString() string {
15475	return s.String()
15476}
15477
15478// SetFileShareARN sets the FileShareARN field's value.
15479func (s *NotifyWhenUploadedOutput) SetFileShareARN(v string) *NotifyWhenUploadedOutput {
15480	s.FileShareARN = &v
15481	return s
15482}
15483
15484// SetNotificationId sets the NotificationId field's value.
15485func (s *NotifyWhenUploadedOutput) SetNotificationId(v string) *NotifyWhenUploadedOutput {
15486	s.NotificationId = &v
15487	return s
15488}
15489
15490// RefreshCacheInput
15491type RefreshCacheInput struct {
15492	_ struct{} `type:"structure"`
15493
15494	// The Amazon Resource Name (ARN) of the file share you want to refresh.
15495	//
15496	// FileShareARN is a required field
15497	FileShareARN *string `min:"50" type:"string" required:"true"`
15498
15499	// A comma-separated list of the paths of folders to refresh in the cache. The
15500	// default is ["/"]. The default refreshes objects and folders at the root of
15501	// the Amazon S3 bucket. If Recursive is set to true, the entire S3 bucket that
15502	// the file share has access to is refreshed.
15503	FolderList []*string `min:"1" type:"list"`
15504
15505	// A value that specifies whether to recursively refresh folders in the cache.
15506	// The refresh includes folders that were in the cache the last time the gateway
15507	// listed the folder's contents. If this value set to true, each folder that
15508	// is listed in FolderList is recursively updated. Otherwise, subfolders listed
15509	// in FolderList are not refreshed. Only objects that are in folders listed
15510	// directly under FolderList are found and used for the update. The default
15511	// is true.
15512	//
15513	// Valid Values: true | false
15514	Recursive *bool `type:"boolean"`
15515}
15516
15517// String returns the string representation
15518func (s RefreshCacheInput) String() string {
15519	return awsutil.Prettify(s)
15520}
15521
15522// GoString returns the string representation
15523func (s RefreshCacheInput) GoString() string {
15524	return s.String()
15525}
15526
15527// Validate inspects the fields of the type to determine if they are valid.
15528func (s *RefreshCacheInput) Validate() error {
15529	invalidParams := request.ErrInvalidParams{Context: "RefreshCacheInput"}
15530	if s.FileShareARN == nil {
15531		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
15532	}
15533	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
15534		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
15535	}
15536	if s.FolderList != nil && len(s.FolderList) < 1 {
15537		invalidParams.Add(request.NewErrParamMinLen("FolderList", 1))
15538	}
15539
15540	if invalidParams.Len() > 0 {
15541		return invalidParams
15542	}
15543	return nil
15544}
15545
15546// SetFileShareARN sets the FileShareARN field's value.
15547func (s *RefreshCacheInput) SetFileShareARN(v string) *RefreshCacheInput {
15548	s.FileShareARN = &v
15549	return s
15550}
15551
15552// SetFolderList sets the FolderList field's value.
15553func (s *RefreshCacheInput) SetFolderList(v []*string) *RefreshCacheInput {
15554	s.FolderList = v
15555	return s
15556}
15557
15558// SetRecursive sets the Recursive field's value.
15559func (s *RefreshCacheInput) SetRecursive(v bool) *RefreshCacheInput {
15560	s.Recursive = &v
15561	return s
15562}
15563
15564// RefreshCacheOutput
15565type RefreshCacheOutput struct {
15566	_ struct{} `type:"structure"`
15567
15568	// The Amazon Resource Name (ARN) of the file share.
15569	FileShareARN *string `min:"50" type:"string"`
15570
15571	// The randomly generated ID of the notification that was sent. This ID is in
15572	// UUID format.
15573	NotificationId *string `min:"1" type:"string"`
15574}
15575
15576// String returns the string representation
15577func (s RefreshCacheOutput) String() string {
15578	return awsutil.Prettify(s)
15579}
15580
15581// GoString returns the string representation
15582func (s RefreshCacheOutput) GoString() string {
15583	return s.String()
15584}
15585
15586// SetFileShareARN sets the FileShareARN field's value.
15587func (s *RefreshCacheOutput) SetFileShareARN(v string) *RefreshCacheOutput {
15588	s.FileShareARN = &v
15589	return s
15590}
15591
15592// SetNotificationId sets the NotificationId field's value.
15593func (s *RefreshCacheOutput) SetNotificationId(v string) *RefreshCacheOutput {
15594	s.NotificationId = &v
15595	return s
15596}
15597
15598// RemoveTagsFromResourceInput
15599type RemoveTagsFromResourceInput struct {
15600	_ struct{} `type:"structure"`
15601
15602	// The Amazon Resource Name (ARN) of the resource you want to remove the tags
15603	// from.
15604	//
15605	// ResourceARN is a required field
15606	ResourceARN *string `min:"50" type:"string" required:"true"`
15607
15608	// The keys of the tags you want to remove from the specified resource. A tag
15609	// is composed of a key-value pair.
15610	//
15611	// TagKeys is a required field
15612	TagKeys []*string `type:"list" required:"true"`
15613}
15614
15615// String returns the string representation
15616func (s RemoveTagsFromResourceInput) String() string {
15617	return awsutil.Prettify(s)
15618}
15619
15620// GoString returns the string representation
15621func (s RemoveTagsFromResourceInput) GoString() string {
15622	return s.String()
15623}
15624
15625// Validate inspects the fields of the type to determine if they are valid.
15626func (s *RemoveTagsFromResourceInput) Validate() error {
15627	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"}
15628	if s.ResourceARN == nil {
15629		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
15630	}
15631	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
15632		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
15633	}
15634	if s.TagKeys == nil {
15635		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
15636	}
15637
15638	if invalidParams.Len() > 0 {
15639		return invalidParams
15640	}
15641	return nil
15642}
15643
15644// SetResourceARN sets the ResourceARN field's value.
15645func (s *RemoveTagsFromResourceInput) SetResourceARN(v string) *RemoveTagsFromResourceInput {
15646	s.ResourceARN = &v
15647	return s
15648}
15649
15650// SetTagKeys sets the TagKeys field's value.
15651func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput {
15652	s.TagKeys = v
15653	return s
15654}
15655
15656// RemoveTagsFromResourceOutput
15657type RemoveTagsFromResourceOutput struct {
15658	_ struct{} `type:"structure"`
15659
15660	// The Amazon Resource Name (ARN) of the resource that the tags were removed
15661	// from.
15662	ResourceARN *string `min:"50" type:"string"`
15663}
15664
15665// String returns the string representation
15666func (s RemoveTagsFromResourceOutput) String() string {
15667	return awsutil.Prettify(s)
15668}
15669
15670// GoString returns the string representation
15671func (s RemoveTagsFromResourceOutput) GoString() string {
15672	return s.String()
15673}
15674
15675// SetResourceARN sets the ResourceARN field's value.
15676func (s *RemoveTagsFromResourceOutput) SetResourceARN(v string) *RemoveTagsFromResourceOutput {
15677	s.ResourceARN = &v
15678	return s
15679}
15680
15681type ResetCacheInput struct {
15682	_ struct{} `type:"structure"`
15683
15684	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15685	// to return a list of gateways for your account and AWS Region.
15686	//
15687	// GatewayARN is a required field
15688	GatewayARN *string `min:"50" type:"string" required:"true"`
15689}
15690
15691// String returns the string representation
15692func (s ResetCacheInput) String() string {
15693	return awsutil.Prettify(s)
15694}
15695
15696// GoString returns the string representation
15697func (s ResetCacheInput) GoString() string {
15698	return s.String()
15699}
15700
15701// Validate inspects the fields of the type to determine if they are valid.
15702func (s *ResetCacheInput) Validate() error {
15703	invalidParams := request.ErrInvalidParams{Context: "ResetCacheInput"}
15704	if s.GatewayARN == nil {
15705		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15706	}
15707	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15708		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15709	}
15710
15711	if invalidParams.Len() > 0 {
15712		return invalidParams
15713	}
15714	return nil
15715}
15716
15717// SetGatewayARN sets the GatewayARN field's value.
15718func (s *ResetCacheInput) SetGatewayARN(v string) *ResetCacheInput {
15719	s.GatewayARN = &v
15720	return s
15721}
15722
15723type ResetCacheOutput struct {
15724	_ struct{} `type:"structure"`
15725
15726	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15727	// to return a list of gateways for your account and AWS Region.
15728	GatewayARN *string `min:"50" type:"string"`
15729}
15730
15731// String returns the string representation
15732func (s ResetCacheOutput) String() string {
15733	return awsutil.Prettify(s)
15734}
15735
15736// GoString returns the string representation
15737func (s ResetCacheOutput) GoString() string {
15738	return s.String()
15739}
15740
15741// SetGatewayARN sets the GatewayARN field's value.
15742func (s *ResetCacheOutput) SetGatewayARN(v string) *ResetCacheOutput {
15743	s.GatewayARN = &v
15744	return s
15745}
15746
15747// RetrieveTapeArchiveInput
15748type RetrieveTapeArchiveInput struct {
15749	_ struct{} `type:"structure"`
15750
15751	// The Amazon Resource Name (ARN) of the gateway you want to retrieve the virtual
15752	// tape to. Use the ListGateways operation to return a list of gateways for
15753	// your account and AWS Region.
15754	//
15755	// You retrieve archived virtual tapes to only one gateway and the gateway must
15756	// be a tape gateway.
15757	//
15758	// GatewayARN is a required field
15759	GatewayARN *string `min:"50" type:"string" required:"true"`
15760
15761	// The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from
15762	// the virtual tape shelf (VTS).
15763	//
15764	// TapeARN is a required field
15765	TapeARN *string `min:"50" type:"string" required:"true"`
15766}
15767
15768// String returns the string representation
15769func (s RetrieveTapeArchiveInput) String() string {
15770	return awsutil.Prettify(s)
15771}
15772
15773// GoString returns the string representation
15774func (s RetrieveTapeArchiveInput) GoString() string {
15775	return s.String()
15776}
15777
15778// Validate inspects the fields of the type to determine if they are valid.
15779func (s *RetrieveTapeArchiveInput) Validate() error {
15780	invalidParams := request.ErrInvalidParams{Context: "RetrieveTapeArchiveInput"}
15781	if s.GatewayARN == nil {
15782		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15783	}
15784	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15785		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15786	}
15787	if s.TapeARN == nil {
15788		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
15789	}
15790	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
15791		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
15792	}
15793
15794	if invalidParams.Len() > 0 {
15795		return invalidParams
15796	}
15797	return nil
15798}
15799
15800// SetGatewayARN sets the GatewayARN field's value.
15801func (s *RetrieveTapeArchiveInput) SetGatewayARN(v string) *RetrieveTapeArchiveInput {
15802	s.GatewayARN = &v
15803	return s
15804}
15805
15806// SetTapeARN sets the TapeARN field's value.
15807func (s *RetrieveTapeArchiveInput) SetTapeARN(v string) *RetrieveTapeArchiveInput {
15808	s.TapeARN = &v
15809	return s
15810}
15811
15812// RetrieveTapeArchiveOutput
15813type RetrieveTapeArchiveOutput struct {
15814	_ struct{} `type:"structure"`
15815
15816	// The Amazon Resource Name (ARN) of the retrieved virtual tape.
15817	TapeARN *string `min:"50" type:"string"`
15818}
15819
15820// String returns the string representation
15821func (s RetrieveTapeArchiveOutput) String() string {
15822	return awsutil.Prettify(s)
15823}
15824
15825// GoString returns the string representation
15826func (s RetrieveTapeArchiveOutput) GoString() string {
15827	return s.String()
15828}
15829
15830// SetTapeARN sets the TapeARN field's value.
15831func (s *RetrieveTapeArchiveOutput) SetTapeARN(v string) *RetrieveTapeArchiveOutput {
15832	s.TapeARN = &v
15833	return s
15834}
15835
15836// RetrieveTapeRecoveryPointInput
15837type RetrieveTapeRecoveryPointInput struct {
15838	_ struct{} `type:"structure"`
15839
15840	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15841	// to return a list of gateways for your account and AWS Region.
15842	//
15843	// GatewayARN is a required field
15844	GatewayARN *string `min:"50" type:"string" required:"true"`
15845
15846	// The Amazon Resource Name (ARN) of the virtual tape for which you want to
15847	// retrieve the recovery point.
15848	//
15849	// TapeARN is a required field
15850	TapeARN *string `min:"50" type:"string" required:"true"`
15851}
15852
15853// String returns the string representation
15854func (s RetrieveTapeRecoveryPointInput) String() string {
15855	return awsutil.Prettify(s)
15856}
15857
15858// GoString returns the string representation
15859func (s RetrieveTapeRecoveryPointInput) GoString() string {
15860	return s.String()
15861}
15862
15863// Validate inspects the fields of the type to determine if they are valid.
15864func (s *RetrieveTapeRecoveryPointInput) Validate() error {
15865	invalidParams := request.ErrInvalidParams{Context: "RetrieveTapeRecoveryPointInput"}
15866	if s.GatewayARN == nil {
15867		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15868	}
15869	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15870		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15871	}
15872	if s.TapeARN == nil {
15873		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
15874	}
15875	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
15876		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
15877	}
15878
15879	if invalidParams.Len() > 0 {
15880		return invalidParams
15881	}
15882	return nil
15883}
15884
15885// SetGatewayARN sets the GatewayARN field's value.
15886func (s *RetrieveTapeRecoveryPointInput) SetGatewayARN(v string) *RetrieveTapeRecoveryPointInput {
15887	s.GatewayARN = &v
15888	return s
15889}
15890
15891// SetTapeARN sets the TapeARN field's value.
15892func (s *RetrieveTapeRecoveryPointInput) SetTapeARN(v string) *RetrieveTapeRecoveryPointInput {
15893	s.TapeARN = &v
15894	return s
15895}
15896
15897// RetrieveTapeRecoveryPointOutput
15898type RetrieveTapeRecoveryPointOutput struct {
15899	_ struct{} `type:"structure"`
15900
15901	// The Amazon Resource Name (ARN) of the virtual tape for which the recovery
15902	// point was retrieved.
15903	TapeARN *string `min:"50" type:"string"`
15904}
15905
15906// String returns the string representation
15907func (s RetrieveTapeRecoveryPointOutput) String() string {
15908	return awsutil.Prettify(s)
15909}
15910
15911// GoString returns the string representation
15912func (s RetrieveTapeRecoveryPointOutput) GoString() string {
15913	return s.String()
15914}
15915
15916// SetTapeARN sets the TapeARN field's value.
15917func (s *RetrieveTapeRecoveryPointOutput) SetTapeARN(v string) *RetrieveTapeRecoveryPointOutput {
15918	s.TapeARN = &v
15919	return s
15920}
15921
15922// The Windows file permissions and ownership information assigned, by default,
15923// to native S3 objects when file gateway discovers them in S3 buckets. This
15924// operation is only supported for file gateways.
15925type SMBFileShareInfo struct {
15926	_ struct{} `type:"structure"`
15927
15928	// A list of users or groups in the Active Directory that have administrator
15929	// rights to the file share. A group must be prefixed with the @ character.
15930	// Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1.
15931	// Can only be set if Authentication is set to ActiveDirectory.
15932	AdminUserList []*string `type:"list"`
15933
15934	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
15935	AuditDestinationARN *string `type:"string"`
15936
15937	// The authentication method of the file share. The default is ActiveDirectory.
15938	//
15939	// Valid Values: ActiveDirectory | GuestAccess
15940	Authentication *string `min:"5" type:"string"`
15941
15942	// Refresh cache information.
15943	CacheAttributes *CacheAttributes `type:"structure"`
15944
15945	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
15946	// client determines the case sensitivity. For CaseSensitive, the gateway determines
15947	// the case sensitivity. The default value is ClientSpecified.
15948	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
15949
15950	// The default storage class for objects put into an Amazon S3 bucket by the
15951	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
15952	//
15953	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
15954	DefaultStorageClass *string `min:"5" type:"string"`
15955
15956	// The Amazon Resource Name (ARN) of the file share.
15957	FileShareARN *string `min:"50" type:"string"`
15958
15959	// The ID of the file share.
15960	FileShareId *string `min:"12" type:"string"`
15961
15962	// The name of the file share. Optional.
15963	//
15964	// FileShareName must be set if an S3 prefix name is set in LocationARN.
15965	FileShareName *string `min:"1" type:"string"`
15966
15967	// The status of the file share.
15968	//
15969	// Valid Values: CREATING | UPDATING | AVAILABLE | DELETING
15970	FileShareStatus *string `min:"3" type:"string"`
15971
15972	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15973	// to return a list of gateways for your account and AWS Region.
15974	GatewayARN *string `min:"50" type:"string"`
15975
15976	// A value that enables guessing of the MIME type for uploaded objects based
15977	// on file extensions. Set this value to true to enable MIME type guessing,
15978	// otherwise set to false. The default value is true.
15979	//
15980	// Valid Values: true | false
15981	GuessMIMETypeEnabled *bool `type:"boolean"`
15982
15983	// A list of users or groups in the Active Directory that are not allowed to
15984	// access the file share. A group must be prefixed with the @ character. Acceptable
15985	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
15986	// be set if Authentication is set to ActiveDirectory.
15987	InvalidUserList []*string `type:"list"`
15988
15989	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
15990	// key, or false to use a key managed by Amazon S3. Optional.
15991	//
15992	// Valid Values: true | false
15993	KMSEncrypted *bool `type:"boolean"`
15994
15995	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
15996	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
15997	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
15998	KMSKey *string `min:"7" type:"string"`
15999
16000	// The ARN of the backend storage used for storing file data. A prefix name
16001	// can be added to the S3 bucket name. It must end with a "/".
16002	LocationARN *string `min:"16" type:"string"`
16003
16004	// A value that sets the access control list (ACL) permission for objects in
16005	// the S3 bucket that a file gateway puts objects into. The default value is
16006	// private.
16007	ObjectACL *string `type:"string" enum:"ObjectACL"`
16008
16009	// The file share path used by the SMB client to identify the mount point.
16010	Path *string `type:"string"`
16011
16012	// A value that sets the write status of a file share. Set this value to true
16013	// to set the write status to read-only, otherwise set to false.
16014	//
16015	// Valid Values: true | false
16016	ReadOnly *bool `type:"boolean"`
16017
16018	// A value that sets who pays the cost of the request and the cost associated
16019	// with data download from the S3 bucket. If this value is set to true, the
16020	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
16021	// S3 bucket owner always pays the cost of storing data.
16022	//
16023	// RequesterPays is a configuration for the S3 bucket that backs the file share,
16024	// so make sure that the configuration on the file share is the same as the
16025	// S3 bucket configuration.
16026	//
16027	// Valid Values: true | false
16028	RequesterPays *bool `type:"boolean"`
16029
16030	// The ARN of the IAM role that file gateway assumes when it accesses the underlying
16031	// storage.
16032	Role *string `min:"20" type:"string"`
16033
16034	// If this value is set to true, it indicates that access control list (ACL)
16035	// is enabled on the SMB file share. If it is set to false, it indicates that
16036	// file and directory permissions are mapped to the POSIX permission.
16037	//
16038	// For more information, see Using Microsoft Windows ACLs to control access
16039	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
16040	// in the AWS Storage Gateway User Guide.
16041	SMBACLEnabled *bool `type:"boolean"`
16042
16043	// A list of up to 50 tags assigned to the SMB file share, sorted alphabetically
16044	// by key name. Each tag is a key-value pair. For a gateway with more than 10
16045	// tags assigned, you can view all tags using the ListTagsForResource API operation.
16046	Tags []*Tag `type:"list"`
16047
16048	// A list of users or groups in the Active Directory that are allowed to access
16049	// the file share. A group must be prefixed with the @ character. Acceptable
16050	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
16051	// be set if Authentication is set to ActiveDirectory.
16052	ValidUserList []*string `type:"list"`
16053}
16054
16055// String returns the string representation
16056func (s SMBFileShareInfo) String() string {
16057	return awsutil.Prettify(s)
16058}
16059
16060// GoString returns the string representation
16061func (s SMBFileShareInfo) GoString() string {
16062	return s.String()
16063}
16064
16065// SetAdminUserList sets the AdminUserList field's value.
16066func (s *SMBFileShareInfo) SetAdminUserList(v []*string) *SMBFileShareInfo {
16067	s.AdminUserList = v
16068	return s
16069}
16070
16071// SetAuditDestinationARN sets the AuditDestinationARN field's value.
16072func (s *SMBFileShareInfo) SetAuditDestinationARN(v string) *SMBFileShareInfo {
16073	s.AuditDestinationARN = &v
16074	return s
16075}
16076
16077// SetAuthentication sets the Authentication field's value.
16078func (s *SMBFileShareInfo) SetAuthentication(v string) *SMBFileShareInfo {
16079	s.Authentication = &v
16080	return s
16081}
16082
16083// SetCacheAttributes sets the CacheAttributes field's value.
16084func (s *SMBFileShareInfo) SetCacheAttributes(v *CacheAttributes) *SMBFileShareInfo {
16085	s.CacheAttributes = v
16086	return s
16087}
16088
16089// SetCaseSensitivity sets the CaseSensitivity field's value.
16090func (s *SMBFileShareInfo) SetCaseSensitivity(v string) *SMBFileShareInfo {
16091	s.CaseSensitivity = &v
16092	return s
16093}
16094
16095// SetDefaultStorageClass sets the DefaultStorageClass field's value.
16096func (s *SMBFileShareInfo) SetDefaultStorageClass(v string) *SMBFileShareInfo {
16097	s.DefaultStorageClass = &v
16098	return s
16099}
16100
16101// SetFileShareARN sets the FileShareARN field's value.
16102func (s *SMBFileShareInfo) SetFileShareARN(v string) *SMBFileShareInfo {
16103	s.FileShareARN = &v
16104	return s
16105}
16106
16107// SetFileShareId sets the FileShareId field's value.
16108func (s *SMBFileShareInfo) SetFileShareId(v string) *SMBFileShareInfo {
16109	s.FileShareId = &v
16110	return s
16111}
16112
16113// SetFileShareName sets the FileShareName field's value.
16114func (s *SMBFileShareInfo) SetFileShareName(v string) *SMBFileShareInfo {
16115	s.FileShareName = &v
16116	return s
16117}
16118
16119// SetFileShareStatus sets the FileShareStatus field's value.
16120func (s *SMBFileShareInfo) SetFileShareStatus(v string) *SMBFileShareInfo {
16121	s.FileShareStatus = &v
16122	return s
16123}
16124
16125// SetGatewayARN sets the GatewayARN field's value.
16126func (s *SMBFileShareInfo) SetGatewayARN(v string) *SMBFileShareInfo {
16127	s.GatewayARN = &v
16128	return s
16129}
16130
16131// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
16132func (s *SMBFileShareInfo) SetGuessMIMETypeEnabled(v bool) *SMBFileShareInfo {
16133	s.GuessMIMETypeEnabled = &v
16134	return s
16135}
16136
16137// SetInvalidUserList sets the InvalidUserList field's value.
16138func (s *SMBFileShareInfo) SetInvalidUserList(v []*string) *SMBFileShareInfo {
16139	s.InvalidUserList = v
16140	return s
16141}
16142
16143// SetKMSEncrypted sets the KMSEncrypted field's value.
16144func (s *SMBFileShareInfo) SetKMSEncrypted(v bool) *SMBFileShareInfo {
16145	s.KMSEncrypted = &v
16146	return s
16147}
16148
16149// SetKMSKey sets the KMSKey field's value.
16150func (s *SMBFileShareInfo) SetKMSKey(v string) *SMBFileShareInfo {
16151	s.KMSKey = &v
16152	return s
16153}
16154
16155// SetLocationARN sets the LocationARN field's value.
16156func (s *SMBFileShareInfo) SetLocationARN(v string) *SMBFileShareInfo {
16157	s.LocationARN = &v
16158	return s
16159}
16160
16161// SetObjectACL sets the ObjectACL field's value.
16162func (s *SMBFileShareInfo) SetObjectACL(v string) *SMBFileShareInfo {
16163	s.ObjectACL = &v
16164	return s
16165}
16166
16167// SetPath sets the Path field's value.
16168func (s *SMBFileShareInfo) SetPath(v string) *SMBFileShareInfo {
16169	s.Path = &v
16170	return s
16171}
16172
16173// SetReadOnly sets the ReadOnly field's value.
16174func (s *SMBFileShareInfo) SetReadOnly(v bool) *SMBFileShareInfo {
16175	s.ReadOnly = &v
16176	return s
16177}
16178
16179// SetRequesterPays sets the RequesterPays field's value.
16180func (s *SMBFileShareInfo) SetRequesterPays(v bool) *SMBFileShareInfo {
16181	s.RequesterPays = &v
16182	return s
16183}
16184
16185// SetRole sets the Role field's value.
16186func (s *SMBFileShareInfo) SetRole(v string) *SMBFileShareInfo {
16187	s.Role = &v
16188	return s
16189}
16190
16191// SetSMBACLEnabled sets the SMBACLEnabled field's value.
16192func (s *SMBFileShareInfo) SetSMBACLEnabled(v bool) *SMBFileShareInfo {
16193	s.SMBACLEnabled = &v
16194	return s
16195}
16196
16197// SetTags sets the Tags field's value.
16198func (s *SMBFileShareInfo) SetTags(v []*Tag) *SMBFileShareInfo {
16199	s.Tags = v
16200	return s
16201}
16202
16203// SetValidUserList sets the ValidUserList field's value.
16204func (s *SMBFileShareInfo) SetValidUserList(v []*string) *SMBFileShareInfo {
16205	s.ValidUserList = v
16206	return s
16207}
16208
16209// An internal server error has occurred because the service is unavailable.
16210// For more information, see the error and message fields.
16211type ServiceUnavailableError struct {
16212	_            struct{}                  `type:"structure"`
16213	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16214
16215	// A StorageGatewayError that provides more information about the cause of the
16216	// error.
16217	Error_ *Error `locationName:"error" type:"structure"`
16218
16219	// A human-readable message describing the error that occurred.
16220	Message_ *string `locationName:"message" type:"string"`
16221}
16222
16223// String returns the string representation
16224func (s ServiceUnavailableError) String() string {
16225	return awsutil.Prettify(s)
16226}
16227
16228// GoString returns the string representation
16229func (s ServiceUnavailableError) GoString() string {
16230	return s.String()
16231}
16232
16233func newErrorServiceUnavailableError(v protocol.ResponseMetadata) error {
16234	return &ServiceUnavailableError{
16235		RespMetadata: v,
16236	}
16237}
16238
16239// Code returns the exception type name.
16240func (s *ServiceUnavailableError) Code() string {
16241	return "ServiceUnavailableError"
16242}
16243
16244// Message returns the exception's message.
16245func (s *ServiceUnavailableError) Message() string {
16246	if s.Message_ != nil {
16247		return *s.Message_
16248	}
16249	return ""
16250}
16251
16252// OrigErr always returns nil, satisfies awserr.Error interface.
16253func (s *ServiceUnavailableError) OrigErr() error {
16254	return nil
16255}
16256
16257func (s *ServiceUnavailableError) Error() string {
16258	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
16259}
16260
16261// Status code returns the HTTP status code for the request's response error.
16262func (s *ServiceUnavailableError) StatusCode() int {
16263	return s.RespMetadata.StatusCode
16264}
16265
16266// RequestID returns the service's response RequestID for request.
16267func (s *ServiceUnavailableError) RequestID() string {
16268	return s.RespMetadata.RequestID
16269}
16270
16271// SetLocalConsolePasswordInput
16272type SetLocalConsolePasswordInput struct {
16273	_ struct{} `type:"structure"`
16274
16275	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16276	// to return a list of gateways for your account and AWS Region.
16277	//
16278	// GatewayARN is a required field
16279	GatewayARN *string `min:"50" type:"string" required:"true"`
16280
16281	// The password you want to set for your VM local console.
16282	//
16283	// LocalConsolePassword is a required field
16284	LocalConsolePassword *string `min:"6" type:"string" required:"true" sensitive:"true"`
16285}
16286
16287// String returns the string representation
16288func (s SetLocalConsolePasswordInput) String() string {
16289	return awsutil.Prettify(s)
16290}
16291
16292// GoString returns the string representation
16293func (s SetLocalConsolePasswordInput) GoString() string {
16294	return s.String()
16295}
16296
16297// Validate inspects the fields of the type to determine if they are valid.
16298func (s *SetLocalConsolePasswordInput) Validate() error {
16299	invalidParams := request.ErrInvalidParams{Context: "SetLocalConsolePasswordInput"}
16300	if s.GatewayARN == nil {
16301		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16302	}
16303	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16304		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16305	}
16306	if s.LocalConsolePassword == nil {
16307		invalidParams.Add(request.NewErrParamRequired("LocalConsolePassword"))
16308	}
16309	if s.LocalConsolePassword != nil && len(*s.LocalConsolePassword) < 6 {
16310		invalidParams.Add(request.NewErrParamMinLen("LocalConsolePassword", 6))
16311	}
16312
16313	if invalidParams.Len() > 0 {
16314		return invalidParams
16315	}
16316	return nil
16317}
16318
16319// SetGatewayARN sets the GatewayARN field's value.
16320func (s *SetLocalConsolePasswordInput) SetGatewayARN(v string) *SetLocalConsolePasswordInput {
16321	s.GatewayARN = &v
16322	return s
16323}
16324
16325// SetLocalConsolePassword sets the LocalConsolePassword field's value.
16326func (s *SetLocalConsolePasswordInput) SetLocalConsolePassword(v string) *SetLocalConsolePasswordInput {
16327	s.LocalConsolePassword = &v
16328	return s
16329}
16330
16331type SetLocalConsolePasswordOutput struct {
16332	_ struct{} `type:"structure"`
16333
16334	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16335	// to return a list of gateways for your account and AWS Region.
16336	GatewayARN *string `min:"50" type:"string"`
16337}
16338
16339// String returns the string representation
16340func (s SetLocalConsolePasswordOutput) String() string {
16341	return awsutil.Prettify(s)
16342}
16343
16344// GoString returns the string representation
16345func (s SetLocalConsolePasswordOutput) GoString() string {
16346	return s.String()
16347}
16348
16349// SetGatewayARN sets the GatewayARN field's value.
16350func (s *SetLocalConsolePasswordOutput) SetGatewayARN(v string) *SetLocalConsolePasswordOutput {
16351	s.GatewayARN = &v
16352	return s
16353}
16354
16355// SetSMBGuestPasswordInput
16356type SetSMBGuestPasswordInput struct {
16357	_ struct{} `type:"structure"`
16358
16359	// The Amazon Resource Name (ARN) of the file gateway the SMB file share is
16360	// associated with.
16361	//
16362	// GatewayARN is a required field
16363	GatewayARN *string `min:"50" type:"string" required:"true"`
16364
16365	// The password that you want to set for your SMB server.
16366	//
16367	// Password is a required field
16368	Password *string `min:"6" type:"string" required:"true" sensitive:"true"`
16369}
16370
16371// String returns the string representation
16372func (s SetSMBGuestPasswordInput) String() string {
16373	return awsutil.Prettify(s)
16374}
16375
16376// GoString returns the string representation
16377func (s SetSMBGuestPasswordInput) GoString() string {
16378	return s.String()
16379}
16380
16381// Validate inspects the fields of the type to determine if they are valid.
16382func (s *SetSMBGuestPasswordInput) Validate() error {
16383	invalidParams := request.ErrInvalidParams{Context: "SetSMBGuestPasswordInput"}
16384	if s.GatewayARN == nil {
16385		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16386	}
16387	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16388		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16389	}
16390	if s.Password == nil {
16391		invalidParams.Add(request.NewErrParamRequired("Password"))
16392	}
16393	if s.Password != nil && len(*s.Password) < 6 {
16394		invalidParams.Add(request.NewErrParamMinLen("Password", 6))
16395	}
16396
16397	if invalidParams.Len() > 0 {
16398		return invalidParams
16399	}
16400	return nil
16401}
16402
16403// SetGatewayARN sets the GatewayARN field's value.
16404func (s *SetSMBGuestPasswordInput) SetGatewayARN(v string) *SetSMBGuestPasswordInput {
16405	s.GatewayARN = &v
16406	return s
16407}
16408
16409// SetPassword sets the Password field's value.
16410func (s *SetSMBGuestPasswordInput) SetPassword(v string) *SetSMBGuestPasswordInput {
16411	s.Password = &v
16412	return s
16413}
16414
16415type SetSMBGuestPasswordOutput struct {
16416	_ struct{} `type:"structure"`
16417
16418	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16419	// to return a list of gateways for your account and AWS Region.
16420	GatewayARN *string `min:"50" type:"string"`
16421}
16422
16423// String returns the string representation
16424func (s SetSMBGuestPasswordOutput) String() string {
16425	return awsutil.Prettify(s)
16426}
16427
16428// GoString returns the string representation
16429func (s SetSMBGuestPasswordOutput) GoString() string {
16430	return s.String()
16431}
16432
16433// SetGatewayARN sets the GatewayARN field's value.
16434func (s *SetSMBGuestPasswordOutput) SetGatewayARN(v string) *SetSMBGuestPasswordOutput {
16435	s.GatewayARN = &v
16436	return s
16437}
16438
16439// A JSON object containing the Amazon Resource Name (ARN) of the gateway to
16440// shut down.
16441type ShutdownGatewayInput struct {
16442	_ struct{} `type:"structure"`
16443
16444	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16445	// to return a list of gateways for your account and AWS Region.
16446	//
16447	// GatewayARN is a required field
16448	GatewayARN *string `min:"50" type:"string" required:"true"`
16449}
16450
16451// String returns the string representation
16452func (s ShutdownGatewayInput) String() string {
16453	return awsutil.Prettify(s)
16454}
16455
16456// GoString returns the string representation
16457func (s ShutdownGatewayInput) GoString() string {
16458	return s.String()
16459}
16460
16461// Validate inspects the fields of the type to determine if they are valid.
16462func (s *ShutdownGatewayInput) Validate() error {
16463	invalidParams := request.ErrInvalidParams{Context: "ShutdownGatewayInput"}
16464	if s.GatewayARN == nil {
16465		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16466	}
16467	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16468		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16469	}
16470
16471	if invalidParams.Len() > 0 {
16472		return invalidParams
16473	}
16474	return nil
16475}
16476
16477// SetGatewayARN sets the GatewayARN field's value.
16478func (s *ShutdownGatewayInput) SetGatewayARN(v string) *ShutdownGatewayInput {
16479	s.GatewayARN = &v
16480	return s
16481}
16482
16483// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
16484// was shut down.
16485type ShutdownGatewayOutput struct {
16486	_ struct{} `type:"structure"`
16487
16488	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16489	// to return a list of gateways for your account and AWS Region.
16490	GatewayARN *string `min:"50" type:"string"`
16491}
16492
16493// String returns the string representation
16494func (s ShutdownGatewayOutput) String() string {
16495	return awsutil.Prettify(s)
16496}
16497
16498// GoString returns the string representation
16499func (s ShutdownGatewayOutput) GoString() string {
16500	return s.String()
16501}
16502
16503// SetGatewayARN sets the GatewayARN field's value.
16504func (s *ShutdownGatewayOutput) SetGatewayARN(v string) *ShutdownGatewayOutput {
16505	s.GatewayARN = &v
16506	return s
16507}
16508
16509type StartAvailabilityMonitorTestInput struct {
16510	_ struct{} `type:"structure"`
16511
16512	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16513	// to return a list of gateways for your account and AWS Region.
16514	//
16515	// GatewayARN is a required field
16516	GatewayARN *string `min:"50" type:"string" required:"true"`
16517}
16518
16519// String returns the string representation
16520func (s StartAvailabilityMonitorTestInput) String() string {
16521	return awsutil.Prettify(s)
16522}
16523
16524// GoString returns the string representation
16525func (s StartAvailabilityMonitorTestInput) GoString() string {
16526	return s.String()
16527}
16528
16529// Validate inspects the fields of the type to determine if they are valid.
16530func (s *StartAvailabilityMonitorTestInput) Validate() error {
16531	invalidParams := request.ErrInvalidParams{Context: "StartAvailabilityMonitorTestInput"}
16532	if s.GatewayARN == nil {
16533		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16534	}
16535	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16536		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16537	}
16538
16539	if invalidParams.Len() > 0 {
16540		return invalidParams
16541	}
16542	return nil
16543}
16544
16545// SetGatewayARN sets the GatewayARN field's value.
16546func (s *StartAvailabilityMonitorTestInput) SetGatewayARN(v string) *StartAvailabilityMonitorTestInput {
16547	s.GatewayARN = &v
16548	return s
16549}
16550
16551type StartAvailabilityMonitorTestOutput struct {
16552	_ struct{} `type:"structure"`
16553
16554	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16555	// to return a list of gateways for your account and AWS Region.
16556	GatewayARN *string `min:"50" type:"string"`
16557}
16558
16559// String returns the string representation
16560func (s StartAvailabilityMonitorTestOutput) String() string {
16561	return awsutil.Prettify(s)
16562}
16563
16564// GoString returns the string representation
16565func (s StartAvailabilityMonitorTestOutput) GoString() string {
16566	return s.String()
16567}
16568
16569// SetGatewayARN sets the GatewayARN field's value.
16570func (s *StartAvailabilityMonitorTestOutput) SetGatewayARN(v string) *StartAvailabilityMonitorTestOutput {
16571	s.GatewayARN = &v
16572	return s
16573}
16574
16575// A JSON object containing the Amazon Resource Name (ARN) of the gateway to
16576// start.
16577type StartGatewayInput struct {
16578	_ struct{} `type:"structure"`
16579
16580	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16581	// to return a list of gateways for your account and AWS Region.
16582	//
16583	// GatewayARN is a required field
16584	GatewayARN *string `min:"50" type:"string" required:"true"`
16585}
16586
16587// String returns the string representation
16588func (s StartGatewayInput) String() string {
16589	return awsutil.Prettify(s)
16590}
16591
16592// GoString returns the string representation
16593func (s StartGatewayInput) GoString() string {
16594	return s.String()
16595}
16596
16597// Validate inspects the fields of the type to determine if they are valid.
16598func (s *StartGatewayInput) Validate() error {
16599	invalidParams := request.ErrInvalidParams{Context: "StartGatewayInput"}
16600	if s.GatewayARN == nil {
16601		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16602	}
16603	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16604		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16605	}
16606
16607	if invalidParams.Len() > 0 {
16608		return invalidParams
16609	}
16610	return nil
16611}
16612
16613// SetGatewayARN sets the GatewayARN field's value.
16614func (s *StartGatewayInput) SetGatewayARN(v string) *StartGatewayInput {
16615	s.GatewayARN = &v
16616	return s
16617}
16618
16619// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
16620// was restarted.
16621type StartGatewayOutput struct {
16622	_ struct{} `type:"structure"`
16623
16624	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16625	// to return a list of gateways for your account and AWS Region.
16626	GatewayARN *string `min:"50" type:"string"`
16627}
16628
16629// String returns the string representation
16630func (s StartGatewayOutput) String() string {
16631	return awsutil.Prettify(s)
16632}
16633
16634// GoString returns the string representation
16635func (s StartGatewayOutput) GoString() string {
16636	return s.String()
16637}
16638
16639// SetGatewayARN sets the GatewayARN field's value.
16640func (s *StartGatewayOutput) SetGatewayARN(v string) *StartGatewayOutput {
16641	s.GatewayARN = &v
16642	return s
16643}
16644
16645// Describes an iSCSI stored volume.
16646type StorediSCSIVolume struct {
16647	_ struct{} `type:"structure"`
16648
16649	// The date the volume was created. Volumes created prior to March 28, 2017
16650	// don’t have this time stamp.
16651	CreatedDate *time.Time `type:"timestamp"`
16652
16653	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
16654	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
16655	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
16656	KMSKey *string `min:"7" type:"string"`
16657
16658	// Indicates if when the stored volume was created, existing data on the underlying
16659	// local disk was preserved.
16660	//
16661	// Valid Values: true | false
16662	PreservedExistingData *bool `type:"boolean"`
16663
16664	// If the stored volume was created from a snapshot, this field contains the
16665	// snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
16666	SourceSnapshotId *string `type:"string"`
16667
16668	// The name of the iSCSI target used by an initiator to connect to a volume
16669	// and used as a suffix for the target ARN. For example, specifying TargetName
16670	// 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.
16671	// The target name must be unique across all volumes on a gateway.
16672	//
16673	// If you don't specify a value, Storage Gateway uses the value that was previously
16674	// used for this volume as the new target name.
16675	TargetName *string `min:"1" type:"string"`
16676
16677	// The Amazon Resource Name (ARN) of the storage volume.
16678	VolumeARN *string `min:"50" type:"string"`
16679
16680	// A value that indicates whether a storage volume is attached to, detached
16681	// from, or is in the process of detaching from a gateway. For more information,
16682	// see Moving your volumes to a different gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
16683	VolumeAttachmentStatus *string `min:"3" type:"string"`
16684
16685	// The ID of the local disk that was specified in the CreateStorediSCSIVolume
16686	// operation.
16687	VolumeDiskId *string `min:"1" type:"string"`
16688
16689	// The unique identifier of the volume, e.g. vol-AE4B946D.
16690	VolumeId *string `min:"12" type:"string"`
16691
16692	// Represents the percentage complete if the volume is restoring or bootstrapping
16693	// that represents the percent of data transferred. This field does not appear
16694	// in the response if the stored volume is not restoring or bootstrapping.
16695	VolumeProgress *float64 `type:"double"`
16696
16697	// The size of the volume in bytes.
16698	VolumeSizeInBytes *int64 `type:"long"`
16699
16700	// One of the VolumeStatus values that indicates the state of the storage volume.
16701	VolumeStatus *string `min:"3" type:"string"`
16702
16703	// One of the VolumeType enumeration values describing the type of the volume.
16704	VolumeType *string `min:"3" type:"string"`
16705
16706	// The size of the data stored on the volume in bytes. This value is calculated
16707	// based on the number of blocks that are touched, instead of the actual amount
16708	// of data written. This value can be useful for sequential write patterns but
16709	// less accurate for random write patterns. VolumeUsedInBytes is different from
16710	// the compressed size of the volume, which is the value that is used to calculate
16711	// your bill.
16712	//
16713	// This value is not available for volumes created prior to May 13, 2015, until
16714	// you store data on the volume.
16715	VolumeUsedInBytes *int64 `type:"long"`
16716
16717	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
16718	// for one stored volume.
16719	VolumeiSCSIAttributes *VolumeiSCSIAttributes `type:"structure"`
16720}
16721
16722// String returns the string representation
16723func (s StorediSCSIVolume) String() string {
16724	return awsutil.Prettify(s)
16725}
16726
16727// GoString returns the string representation
16728func (s StorediSCSIVolume) GoString() string {
16729	return s.String()
16730}
16731
16732// SetCreatedDate sets the CreatedDate field's value.
16733func (s *StorediSCSIVolume) SetCreatedDate(v time.Time) *StorediSCSIVolume {
16734	s.CreatedDate = &v
16735	return s
16736}
16737
16738// SetKMSKey sets the KMSKey field's value.
16739func (s *StorediSCSIVolume) SetKMSKey(v string) *StorediSCSIVolume {
16740	s.KMSKey = &v
16741	return s
16742}
16743
16744// SetPreservedExistingData sets the PreservedExistingData field's value.
16745func (s *StorediSCSIVolume) SetPreservedExistingData(v bool) *StorediSCSIVolume {
16746	s.PreservedExistingData = &v
16747	return s
16748}
16749
16750// SetSourceSnapshotId sets the SourceSnapshotId field's value.
16751func (s *StorediSCSIVolume) SetSourceSnapshotId(v string) *StorediSCSIVolume {
16752	s.SourceSnapshotId = &v
16753	return s
16754}
16755
16756// SetTargetName sets the TargetName field's value.
16757func (s *StorediSCSIVolume) SetTargetName(v string) *StorediSCSIVolume {
16758	s.TargetName = &v
16759	return s
16760}
16761
16762// SetVolumeARN sets the VolumeARN field's value.
16763func (s *StorediSCSIVolume) SetVolumeARN(v string) *StorediSCSIVolume {
16764	s.VolumeARN = &v
16765	return s
16766}
16767
16768// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
16769func (s *StorediSCSIVolume) SetVolumeAttachmentStatus(v string) *StorediSCSIVolume {
16770	s.VolumeAttachmentStatus = &v
16771	return s
16772}
16773
16774// SetVolumeDiskId sets the VolumeDiskId field's value.
16775func (s *StorediSCSIVolume) SetVolumeDiskId(v string) *StorediSCSIVolume {
16776	s.VolumeDiskId = &v
16777	return s
16778}
16779
16780// SetVolumeId sets the VolumeId field's value.
16781func (s *StorediSCSIVolume) SetVolumeId(v string) *StorediSCSIVolume {
16782	s.VolumeId = &v
16783	return s
16784}
16785
16786// SetVolumeProgress sets the VolumeProgress field's value.
16787func (s *StorediSCSIVolume) SetVolumeProgress(v float64) *StorediSCSIVolume {
16788	s.VolumeProgress = &v
16789	return s
16790}
16791
16792// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
16793func (s *StorediSCSIVolume) SetVolumeSizeInBytes(v int64) *StorediSCSIVolume {
16794	s.VolumeSizeInBytes = &v
16795	return s
16796}
16797
16798// SetVolumeStatus sets the VolumeStatus field's value.
16799func (s *StorediSCSIVolume) SetVolumeStatus(v string) *StorediSCSIVolume {
16800	s.VolumeStatus = &v
16801	return s
16802}
16803
16804// SetVolumeType sets the VolumeType field's value.
16805func (s *StorediSCSIVolume) SetVolumeType(v string) *StorediSCSIVolume {
16806	s.VolumeType = &v
16807	return s
16808}
16809
16810// SetVolumeUsedInBytes sets the VolumeUsedInBytes field's value.
16811func (s *StorediSCSIVolume) SetVolumeUsedInBytes(v int64) *StorediSCSIVolume {
16812	s.VolumeUsedInBytes = &v
16813	return s
16814}
16815
16816// SetVolumeiSCSIAttributes sets the VolumeiSCSIAttributes field's value.
16817func (s *StorediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *StorediSCSIVolume {
16818	s.VolumeiSCSIAttributes = v
16819	return s
16820}
16821
16822// A key-value pair that helps you manage, filter, and search for your resource.
16823// Allowed characters: letters, white space, and numbers, representable in UTF-8,
16824// and the following characters: + - = . _ : /.
16825type Tag struct {
16826	_ struct{} `type:"structure"`
16827
16828	// Tag key. The key can't start with aws:.
16829	//
16830	// Key is a required field
16831	Key *string `min:"1" type:"string" required:"true"`
16832
16833	// Value of the tag key.
16834	//
16835	// Value is a required field
16836	Value *string `type:"string" required:"true"`
16837}
16838
16839// String returns the string representation
16840func (s Tag) String() string {
16841	return awsutil.Prettify(s)
16842}
16843
16844// GoString returns the string representation
16845func (s Tag) GoString() string {
16846	return s.String()
16847}
16848
16849// Validate inspects the fields of the type to determine if they are valid.
16850func (s *Tag) Validate() error {
16851	invalidParams := request.ErrInvalidParams{Context: "Tag"}
16852	if s.Key == nil {
16853		invalidParams.Add(request.NewErrParamRequired("Key"))
16854	}
16855	if s.Key != nil && len(*s.Key) < 1 {
16856		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
16857	}
16858	if s.Value == nil {
16859		invalidParams.Add(request.NewErrParamRequired("Value"))
16860	}
16861
16862	if invalidParams.Len() > 0 {
16863		return invalidParams
16864	}
16865	return nil
16866}
16867
16868// SetKey sets the Key field's value.
16869func (s *Tag) SetKey(v string) *Tag {
16870	s.Key = &v
16871	return s
16872}
16873
16874// SetValue sets the Value field's value.
16875func (s *Tag) SetValue(v string) *Tag {
16876	s.Value = &v
16877	return s
16878}
16879
16880// Describes a virtual tape object.
16881type Tape struct {
16882	_ struct{} `type:"structure"`
16883
16884	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
16885	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
16886	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
16887	KMSKey *string `min:"7" type:"string"`
16888
16889	// The ID of the pool that contains tapes that will be archived. The tapes in
16890	// this pool are archived in the S3 storage class that is associated with the
16891	// pool. When you use your backup application to eject the tape, the tape is
16892	// archived directly into the storage class (S3 Glacier or S3 Glacier Deep Archive)
16893	// that corresponds to the pool.
16894	//
16895	// Valid Values: GLACIER | DEEP_ARCHIVE
16896	PoolId *string `min:"1" type:"string"`
16897
16898	// For archiving virtual tapes, indicates how much data remains to be uploaded
16899	// before archiving is complete.
16900	//
16901	// Range: 0 (not started) to 100 (complete).
16902	Progress *float64 `type:"double"`
16903
16904	// The Amazon Resource Name (ARN) of the virtual tape.
16905	TapeARN *string `min:"50" type:"string"`
16906
16907	// The barcode that identifies a specific virtual tape.
16908	TapeBarcode *string `min:"7" type:"string"`
16909
16910	// The date the virtual tape was created.
16911	TapeCreatedDate *time.Time `type:"timestamp"`
16912
16913	// The size, in bytes, of the virtual tape capacity.
16914	TapeSizeInBytes *int64 `type:"long"`
16915
16916	// The current state of the virtual tape.
16917	TapeStatus *string `type:"string"`
16918
16919	// The size, in bytes, of data stored on the virtual tape.
16920	//
16921	// This value is not available for tapes created prior to May 13, 2015.
16922	TapeUsedInBytes *int64 `type:"long"`
16923
16924	// The virtual tape library (VTL) device that the virtual tape is associated
16925	// with.
16926	VTLDevice *string `min:"50" type:"string"`
16927}
16928
16929// String returns the string representation
16930func (s Tape) String() string {
16931	return awsutil.Prettify(s)
16932}
16933
16934// GoString returns the string representation
16935func (s Tape) GoString() string {
16936	return s.String()
16937}
16938
16939// SetKMSKey sets the KMSKey field's value.
16940func (s *Tape) SetKMSKey(v string) *Tape {
16941	s.KMSKey = &v
16942	return s
16943}
16944
16945// SetPoolId sets the PoolId field's value.
16946func (s *Tape) SetPoolId(v string) *Tape {
16947	s.PoolId = &v
16948	return s
16949}
16950
16951// SetProgress sets the Progress field's value.
16952func (s *Tape) SetProgress(v float64) *Tape {
16953	s.Progress = &v
16954	return s
16955}
16956
16957// SetTapeARN sets the TapeARN field's value.
16958func (s *Tape) SetTapeARN(v string) *Tape {
16959	s.TapeARN = &v
16960	return s
16961}
16962
16963// SetTapeBarcode sets the TapeBarcode field's value.
16964func (s *Tape) SetTapeBarcode(v string) *Tape {
16965	s.TapeBarcode = &v
16966	return s
16967}
16968
16969// SetTapeCreatedDate sets the TapeCreatedDate field's value.
16970func (s *Tape) SetTapeCreatedDate(v time.Time) *Tape {
16971	s.TapeCreatedDate = &v
16972	return s
16973}
16974
16975// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
16976func (s *Tape) SetTapeSizeInBytes(v int64) *Tape {
16977	s.TapeSizeInBytes = &v
16978	return s
16979}
16980
16981// SetTapeStatus sets the TapeStatus field's value.
16982func (s *Tape) SetTapeStatus(v string) *Tape {
16983	s.TapeStatus = &v
16984	return s
16985}
16986
16987// SetTapeUsedInBytes sets the TapeUsedInBytes field's value.
16988func (s *Tape) SetTapeUsedInBytes(v int64) *Tape {
16989	s.TapeUsedInBytes = &v
16990	return s
16991}
16992
16993// SetVTLDevice sets the VTLDevice field's value.
16994func (s *Tape) SetVTLDevice(v string) *Tape {
16995	s.VTLDevice = &v
16996	return s
16997}
16998
16999// Represents a virtual tape that is archived in the virtual tape shelf (VTS).
17000type TapeArchive struct {
17001	_ struct{} `type:"structure"`
17002
17003	// The time that the archiving of the virtual tape was completed.
17004	//
17005	// The default time stamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z'
17006	// format.
17007	CompletionTime *time.Time `type:"timestamp"`
17008
17009	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
17010	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
17011	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
17012	KMSKey *string `min:"7" type:"string"`
17013
17014	// The ID of the pool that was used to archive the tape. The tapes in this pool
17015	// are archived in the S3 storage class that is associated with the pool.
17016	//
17017	// Valid Values: GLACIER | DEEP_ARCHIVE
17018	PoolId *string `min:"1" type:"string"`
17019
17020	// The Amazon Resource Name (ARN) of the tape gateway that the virtual tape
17021	// is being retrieved to.
17022	//
17023	// The virtual tape is retrieved from the virtual tape shelf (VTS).
17024	RetrievedTo *string `min:"50" type:"string"`
17025
17026	// The Amazon Resource Name (ARN) of an archived virtual tape.
17027	TapeARN *string `min:"50" type:"string"`
17028
17029	// The barcode that identifies the archived virtual tape.
17030	TapeBarcode *string `min:"7" type:"string"`
17031
17032	// The date the virtual tape was created.
17033	TapeCreatedDate *time.Time `type:"timestamp"`
17034
17035	// The size, in bytes, of the archived virtual tape.
17036	TapeSizeInBytes *int64 `type:"long"`
17037
17038	// The current state of the archived virtual tape.
17039	TapeStatus *string `type:"string"`
17040
17041	// The size, in bytes, of data stored on the virtual tape.
17042	//
17043	// This value is not available for tapes created prior to May 13, 2015.
17044	TapeUsedInBytes *int64 `type:"long"`
17045}
17046
17047// String returns the string representation
17048func (s TapeArchive) String() string {
17049	return awsutil.Prettify(s)
17050}
17051
17052// GoString returns the string representation
17053func (s TapeArchive) GoString() string {
17054	return s.String()
17055}
17056
17057// SetCompletionTime sets the CompletionTime field's value.
17058func (s *TapeArchive) SetCompletionTime(v time.Time) *TapeArchive {
17059	s.CompletionTime = &v
17060	return s
17061}
17062
17063// SetKMSKey sets the KMSKey field's value.
17064func (s *TapeArchive) SetKMSKey(v string) *TapeArchive {
17065	s.KMSKey = &v
17066	return s
17067}
17068
17069// SetPoolId sets the PoolId field's value.
17070func (s *TapeArchive) SetPoolId(v string) *TapeArchive {
17071	s.PoolId = &v
17072	return s
17073}
17074
17075// SetRetrievedTo sets the RetrievedTo field's value.
17076func (s *TapeArchive) SetRetrievedTo(v string) *TapeArchive {
17077	s.RetrievedTo = &v
17078	return s
17079}
17080
17081// SetTapeARN sets the TapeARN field's value.
17082func (s *TapeArchive) SetTapeARN(v string) *TapeArchive {
17083	s.TapeARN = &v
17084	return s
17085}
17086
17087// SetTapeBarcode sets the TapeBarcode field's value.
17088func (s *TapeArchive) SetTapeBarcode(v string) *TapeArchive {
17089	s.TapeBarcode = &v
17090	return s
17091}
17092
17093// SetTapeCreatedDate sets the TapeCreatedDate field's value.
17094func (s *TapeArchive) SetTapeCreatedDate(v time.Time) *TapeArchive {
17095	s.TapeCreatedDate = &v
17096	return s
17097}
17098
17099// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
17100func (s *TapeArchive) SetTapeSizeInBytes(v int64) *TapeArchive {
17101	s.TapeSizeInBytes = &v
17102	return s
17103}
17104
17105// SetTapeStatus sets the TapeStatus field's value.
17106func (s *TapeArchive) SetTapeStatus(v string) *TapeArchive {
17107	s.TapeStatus = &v
17108	return s
17109}
17110
17111// SetTapeUsedInBytes sets the TapeUsedInBytes field's value.
17112func (s *TapeArchive) SetTapeUsedInBytes(v int64) *TapeArchive {
17113	s.TapeUsedInBytes = &v
17114	return s
17115}
17116
17117// Describes a virtual tape.
17118type TapeInfo struct {
17119	_ struct{} `type:"structure"`
17120
17121	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17122	// to return a list of gateways for your account and AWS Region.
17123	GatewayARN *string `min:"50" type:"string"`
17124
17125	// The ID of the pool that you want to add your tape to for archiving. The tape
17126	// in this pool is archived in the S3 storage class that is associated with
17127	// the pool. When you use your backup application to eject the tape, the tape
17128	// is archived directly into the storage class (S3 Glacier or S3 Glacier Deep
17129	// Archive) that corresponds to the pool.
17130	//
17131	// Valid Values: GLACIER | DEEP_ARCHIVE
17132	PoolId *string `min:"1" type:"string"`
17133
17134	// The Amazon Resource Name (ARN) of a virtual tape.
17135	TapeARN *string `min:"50" type:"string"`
17136
17137	// The barcode that identifies a specific virtual tape.
17138	TapeBarcode *string `min:"7" type:"string"`
17139
17140	// The size, in bytes, of a virtual tape.
17141	TapeSizeInBytes *int64 `type:"long"`
17142
17143	// The status of the tape.
17144	TapeStatus *string `type:"string"`
17145}
17146
17147// String returns the string representation
17148func (s TapeInfo) String() string {
17149	return awsutil.Prettify(s)
17150}
17151
17152// GoString returns the string representation
17153func (s TapeInfo) GoString() string {
17154	return s.String()
17155}
17156
17157// SetGatewayARN sets the GatewayARN field's value.
17158func (s *TapeInfo) SetGatewayARN(v string) *TapeInfo {
17159	s.GatewayARN = &v
17160	return s
17161}
17162
17163// SetPoolId sets the PoolId field's value.
17164func (s *TapeInfo) SetPoolId(v string) *TapeInfo {
17165	s.PoolId = &v
17166	return s
17167}
17168
17169// SetTapeARN sets the TapeARN field's value.
17170func (s *TapeInfo) SetTapeARN(v string) *TapeInfo {
17171	s.TapeARN = &v
17172	return s
17173}
17174
17175// SetTapeBarcode sets the TapeBarcode field's value.
17176func (s *TapeInfo) SetTapeBarcode(v string) *TapeInfo {
17177	s.TapeBarcode = &v
17178	return s
17179}
17180
17181// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
17182func (s *TapeInfo) SetTapeSizeInBytes(v int64) *TapeInfo {
17183	s.TapeSizeInBytes = &v
17184	return s
17185}
17186
17187// SetTapeStatus sets the TapeStatus field's value.
17188func (s *TapeInfo) SetTapeStatus(v string) *TapeInfo {
17189	s.TapeStatus = &v
17190	return s
17191}
17192
17193// Describes a recovery point.
17194type TapeRecoveryPointInfo struct {
17195	_ struct{} `type:"structure"`
17196
17197	// The Amazon Resource Name (ARN) of the virtual tape.
17198	TapeARN *string `min:"50" type:"string"`
17199
17200	// The time when the point-in-time view of the virtual tape was replicated for
17201	// later recovery.
17202	//
17203	// The default time stamp format of the tape recovery point time is in the ISO8601
17204	// extended YYYY-MM-DD'T'HH:MM:SS'Z' format.
17205	TapeRecoveryPointTime *time.Time `type:"timestamp"`
17206
17207	// The size, in bytes, of the virtual tapes to recover.
17208	TapeSizeInBytes *int64 `type:"long"`
17209
17210	// The status of the virtual tapes.
17211	TapeStatus *string `type:"string"`
17212}
17213
17214// String returns the string representation
17215func (s TapeRecoveryPointInfo) String() string {
17216	return awsutil.Prettify(s)
17217}
17218
17219// GoString returns the string representation
17220func (s TapeRecoveryPointInfo) GoString() string {
17221	return s.String()
17222}
17223
17224// SetTapeARN sets the TapeARN field's value.
17225func (s *TapeRecoveryPointInfo) SetTapeARN(v string) *TapeRecoveryPointInfo {
17226	s.TapeARN = &v
17227	return s
17228}
17229
17230// SetTapeRecoveryPointTime sets the TapeRecoveryPointTime field's value.
17231func (s *TapeRecoveryPointInfo) SetTapeRecoveryPointTime(v time.Time) *TapeRecoveryPointInfo {
17232	s.TapeRecoveryPointTime = &v
17233	return s
17234}
17235
17236// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
17237func (s *TapeRecoveryPointInfo) SetTapeSizeInBytes(v int64) *TapeRecoveryPointInfo {
17238	s.TapeSizeInBytes = &v
17239	return s
17240}
17241
17242// SetTapeStatus sets the TapeStatus field's value.
17243func (s *TapeRecoveryPointInfo) SetTapeStatus(v string) *TapeRecoveryPointInfo {
17244	s.TapeStatus = &v
17245	return s
17246}
17247
17248type UpdateAutomaticTapeCreationPolicyInput struct {
17249	_ struct{} `type:"structure"`
17250
17251	// An automatic tape creation policy consists of a list of automatic tape creation
17252	// rules. The rules determine when and how to automatically create new tapes.
17253	//
17254	// AutomaticTapeCreationRules is a required field
17255	AutomaticTapeCreationRules []*AutomaticTapeCreationRule `min:"1" type:"list" required:"true"`
17256
17257	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17258	// to return a list of gateways for your account and AWS Region.
17259	//
17260	// GatewayARN is a required field
17261	GatewayARN *string `min:"50" type:"string" required:"true"`
17262}
17263
17264// String returns the string representation
17265func (s UpdateAutomaticTapeCreationPolicyInput) String() string {
17266	return awsutil.Prettify(s)
17267}
17268
17269// GoString returns the string representation
17270func (s UpdateAutomaticTapeCreationPolicyInput) GoString() string {
17271	return s.String()
17272}
17273
17274// Validate inspects the fields of the type to determine if they are valid.
17275func (s *UpdateAutomaticTapeCreationPolicyInput) Validate() error {
17276	invalidParams := request.ErrInvalidParams{Context: "UpdateAutomaticTapeCreationPolicyInput"}
17277	if s.AutomaticTapeCreationRules == nil {
17278		invalidParams.Add(request.NewErrParamRequired("AutomaticTapeCreationRules"))
17279	}
17280	if s.AutomaticTapeCreationRules != nil && len(s.AutomaticTapeCreationRules) < 1 {
17281		invalidParams.Add(request.NewErrParamMinLen("AutomaticTapeCreationRules", 1))
17282	}
17283	if s.GatewayARN == nil {
17284		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17285	}
17286	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17287		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17288	}
17289	if s.AutomaticTapeCreationRules != nil {
17290		for i, v := range s.AutomaticTapeCreationRules {
17291			if v == nil {
17292				continue
17293			}
17294			if err := v.Validate(); err != nil {
17295				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AutomaticTapeCreationRules", i), err.(request.ErrInvalidParams))
17296			}
17297		}
17298	}
17299
17300	if invalidParams.Len() > 0 {
17301		return invalidParams
17302	}
17303	return nil
17304}
17305
17306// SetAutomaticTapeCreationRules sets the AutomaticTapeCreationRules field's value.
17307func (s *UpdateAutomaticTapeCreationPolicyInput) SetAutomaticTapeCreationRules(v []*AutomaticTapeCreationRule) *UpdateAutomaticTapeCreationPolicyInput {
17308	s.AutomaticTapeCreationRules = v
17309	return s
17310}
17311
17312// SetGatewayARN sets the GatewayARN field's value.
17313func (s *UpdateAutomaticTapeCreationPolicyInput) SetGatewayARN(v string) *UpdateAutomaticTapeCreationPolicyInput {
17314	s.GatewayARN = &v
17315	return s
17316}
17317
17318type UpdateAutomaticTapeCreationPolicyOutput struct {
17319	_ struct{} `type:"structure"`
17320
17321	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17322	// to return a list of gateways for your account and AWS Region.
17323	GatewayARN *string `min:"50" type:"string"`
17324}
17325
17326// String returns the string representation
17327func (s UpdateAutomaticTapeCreationPolicyOutput) String() string {
17328	return awsutil.Prettify(s)
17329}
17330
17331// GoString returns the string representation
17332func (s UpdateAutomaticTapeCreationPolicyOutput) GoString() string {
17333	return s.String()
17334}
17335
17336// SetGatewayARN sets the GatewayARN field's value.
17337func (s *UpdateAutomaticTapeCreationPolicyOutput) SetGatewayARN(v string) *UpdateAutomaticTapeCreationPolicyOutput {
17338	s.GatewayARN = &v
17339	return s
17340}
17341
17342// A JSON object containing one or more of the following fields:
17343//
17344//    * UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec
17345//
17346//    * UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec
17347type UpdateBandwidthRateLimitInput struct {
17348	_ struct{} `type:"structure"`
17349
17350	// The average download bandwidth rate limit in bits per second.
17351	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
17352
17353	// The average upload bandwidth rate limit in bits per second.
17354	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
17355
17356	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17357	// to return a list of gateways for your account and AWS Region.
17358	//
17359	// GatewayARN is a required field
17360	GatewayARN *string `min:"50" type:"string" required:"true"`
17361}
17362
17363// String returns the string representation
17364func (s UpdateBandwidthRateLimitInput) String() string {
17365	return awsutil.Prettify(s)
17366}
17367
17368// GoString returns the string representation
17369func (s UpdateBandwidthRateLimitInput) GoString() string {
17370	return s.String()
17371}
17372
17373// Validate inspects the fields of the type to determine if they are valid.
17374func (s *UpdateBandwidthRateLimitInput) Validate() error {
17375	invalidParams := request.ErrInvalidParams{Context: "UpdateBandwidthRateLimitInput"}
17376	if s.AverageDownloadRateLimitInBitsPerSec != nil && *s.AverageDownloadRateLimitInBitsPerSec < 102400 {
17377		invalidParams.Add(request.NewErrParamMinValue("AverageDownloadRateLimitInBitsPerSec", 102400))
17378	}
17379	if s.AverageUploadRateLimitInBitsPerSec != nil && *s.AverageUploadRateLimitInBitsPerSec < 51200 {
17380		invalidParams.Add(request.NewErrParamMinValue("AverageUploadRateLimitInBitsPerSec", 51200))
17381	}
17382	if s.GatewayARN == nil {
17383		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17384	}
17385	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17386		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17387	}
17388
17389	if invalidParams.Len() > 0 {
17390		return invalidParams
17391	}
17392	return nil
17393}
17394
17395// SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
17396func (s *UpdateBandwidthRateLimitInput) SetAverageDownloadRateLimitInBitsPerSec(v int64) *UpdateBandwidthRateLimitInput {
17397	s.AverageDownloadRateLimitInBitsPerSec = &v
17398	return s
17399}
17400
17401// SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
17402func (s *UpdateBandwidthRateLimitInput) SetAverageUploadRateLimitInBitsPerSec(v int64) *UpdateBandwidthRateLimitInput {
17403	s.AverageUploadRateLimitInBitsPerSec = &v
17404	return s
17405}
17406
17407// SetGatewayARN sets the GatewayARN field's value.
17408func (s *UpdateBandwidthRateLimitInput) SetGatewayARN(v string) *UpdateBandwidthRateLimitInput {
17409	s.GatewayARN = &v
17410	return s
17411}
17412
17413// A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
17414// throttle information was updated.
17415type UpdateBandwidthRateLimitOutput struct {
17416	_ struct{} `type:"structure"`
17417
17418	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17419	// to return a list of gateways for your account and AWS Region.
17420	GatewayARN *string `min:"50" type:"string"`
17421}
17422
17423// String returns the string representation
17424func (s UpdateBandwidthRateLimitOutput) String() string {
17425	return awsutil.Prettify(s)
17426}
17427
17428// GoString returns the string representation
17429func (s UpdateBandwidthRateLimitOutput) GoString() string {
17430	return s.String()
17431}
17432
17433// SetGatewayARN sets the GatewayARN field's value.
17434func (s *UpdateBandwidthRateLimitOutput) SetGatewayARN(v string) *UpdateBandwidthRateLimitOutput {
17435	s.GatewayARN = &v
17436	return s
17437}
17438
17439// A JSON object containing one or more of the following fields:
17440//
17441//    * UpdateChapCredentialsInput$InitiatorName
17442//
17443//    * UpdateChapCredentialsInput$SecretToAuthenticateInitiator
17444//
17445//    * UpdateChapCredentialsInput$SecretToAuthenticateTarget
17446//
17447//    * UpdateChapCredentialsInput$TargetARN
17448type UpdateChapCredentialsInput struct {
17449	_ struct{} `type:"structure"`
17450
17451	// The iSCSI initiator that connects to the target.
17452	//
17453	// InitiatorName is a required field
17454	InitiatorName *string `min:"1" type:"string" required:"true"`
17455
17456	// The secret key that the initiator (for example, the Windows client) must
17457	// provide to participate in mutual CHAP with the target.
17458	//
17459	// The secret key must be between 12 and 16 bytes when encoded in UTF-8.
17460	//
17461	// SecretToAuthenticateInitiator is a required field
17462	SecretToAuthenticateInitiator *string `min:"1" type:"string" required:"true" sensitive:"true"`
17463
17464	// The secret key that the target must provide to participate in mutual CHAP
17465	// with the initiator (e.g. Windows client).
17466	//
17467	// Byte constraints: Minimum bytes of 12. Maximum bytes of 16.
17468	//
17469	// The secret key must be between 12 and 16 bytes when encoded in UTF-8.
17470	SecretToAuthenticateTarget *string `min:"1" type:"string" sensitive:"true"`
17471
17472	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
17473	// operation to return the TargetARN for specified VolumeARN.
17474	//
17475	// TargetARN is a required field
17476	TargetARN *string `min:"50" type:"string" required:"true"`
17477}
17478
17479// String returns the string representation
17480func (s UpdateChapCredentialsInput) String() string {
17481	return awsutil.Prettify(s)
17482}
17483
17484// GoString returns the string representation
17485func (s UpdateChapCredentialsInput) GoString() string {
17486	return s.String()
17487}
17488
17489// Validate inspects the fields of the type to determine if they are valid.
17490func (s *UpdateChapCredentialsInput) Validate() error {
17491	invalidParams := request.ErrInvalidParams{Context: "UpdateChapCredentialsInput"}
17492	if s.InitiatorName == nil {
17493		invalidParams.Add(request.NewErrParamRequired("InitiatorName"))
17494	}
17495	if s.InitiatorName != nil && len(*s.InitiatorName) < 1 {
17496		invalidParams.Add(request.NewErrParamMinLen("InitiatorName", 1))
17497	}
17498	if s.SecretToAuthenticateInitiator == nil {
17499		invalidParams.Add(request.NewErrParamRequired("SecretToAuthenticateInitiator"))
17500	}
17501	if s.SecretToAuthenticateInitiator != nil && len(*s.SecretToAuthenticateInitiator) < 1 {
17502		invalidParams.Add(request.NewErrParamMinLen("SecretToAuthenticateInitiator", 1))
17503	}
17504	if s.SecretToAuthenticateTarget != nil && len(*s.SecretToAuthenticateTarget) < 1 {
17505		invalidParams.Add(request.NewErrParamMinLen("SecretToAuthenticateTarget", 1))
17506	}
17507	if s.TargetARN == nil {
17508		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
17509	}
17510	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
17511		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
17512	}
17513
17514	if invalidParams.Len() > 0 {
17515		return invalidParams
17516	}
17517	return nil
17518}
17519
17520// SetInitiatorName sets the InitiatorName field's value.
17521func (s *UpdateChapCredentialsInput) SetInitiatorName(v string) *UpdateChapCredentialsInput {
17522	s.InitiatorName = &v
17523	return s
17524}
17525
17526// SetSecretToAuthenticateInitiator sets the SecretToAuthenticateInitiator field's value.
17527func (s *UpdateChapCredentialsInput) SetSecretToAuthenticateInitiator(v string) *UpdateChapCredentialsInput {
17528	s.SecretToAuthenticateInitiator = &v
17529	return s
17530}
17531
17532// SetSecretToAuthenticateTarget sets the SecretToAuthenticateTarget field's value.
17533func (s *UpdateChapCredentialsInput) SetSecretToAuthenticateTarget(v string) *UpdateChapCredentialsInput {
17534	s.SecretToAuthenticateTarget = &v
17535	return s
17536}
17537
17538// SetTargetARN sets the TargetARN field's value.
17539func (s *UpdateChapCredentialsInput) SetTargetARN(v string) *UpdateChapCredentialsInput {
17540	s.TargetARN = &v
17541	return s
17542}
17543
17544// A JSON object containing the following fields:
17545type UpdateChapCredentialsOutput struct {
17546	_ struct{} `type:"structure"`
17547
17548	// The iSCSI initiator that connects to the target. This is the same initiator
17549	// name specified in the request.
17550	InitiatorName *string `min:"1" type:"string"`
17551
17552	// The Amazon Resource Name (ARN) of the target. This is the same target specified
17553	// in the request.
17554	TargetARN *string `min:"50" type:"string"`
17555}
17556
17557// String returns the string representation
17558func (s UpdateChapCredentialsOutput) String() string {
17559	return awsutil.Prettify(s)
17560}
17561
17562// GoString returns the string representation
17563func (s UpdateChapCredentialsOutput) GoString() string {
17564	return s.String()
17565}
17566
17567// SetInitiatorName sets the InitiatorName field's value.
17568func (s *UpdateChapCredentialsOutput) SetInitiatorName(v string) *UpdateChapCredentialsOutput {
17569	s.InitiatorName = &v
17570	return s
17571}
17572
17573// SetTargetARN sets the TargetARN field's value.
17574func (s *UpdateChapCredentialsOutput) SetTargetARN(v string) *UpdateChapCredentialsOutput {
17575	s.TargetARN = &v
17576	return s
17577}
17578
17579type UpdateGatewayInformationInput struct {
17580	_ struct{} `type:"structure"`
17581
17582	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that you
17583	// want to use to monitor and log events in the gateway.
17584	//
17585	// For more information, see What is Amazon CloudWatch logs? (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html).
17586	CloudWatchLogGroupARN *string `type:"string"`
17587
17588	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17589	// to return a list of gateways for your account and AWS Region.
17590	//
17591	// GatewayARN is a required field
17592	GatewayARN *string `min:"50" type:"string" required:"true"`
17593
17594	// The name you configured for your gateway.
17595	GatewayName *string `min:"2" type:"string"`
17596
17597	// A value that indicates the time zone of the gateway.
17598	GatewayTimezone *string `min:"3" type:"string"`
17599}
17600
17601// String returns the string representation
17602func (s UpdateGatewayInformationInput) String() string {
17603	return awsutil.Prettify(s)
17604}
17605
17606// GoString returns the string representation
17607func (s UpdateGatewayInformationInput) GoString() string {
17608	return s.String()
17609}
17610
17611// Validate inspects the fields of the type to determine if they are valid.
17612func (s *UpdateGatewayInformationInput) Validate() error {
17613	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewayInformationInput"}
17614	if s.GatewayARN == nil {
17615		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17616	}
17617	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17618		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17619	}
17620	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
17621		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
17622	}
17623	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
17624		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
17625	}
17626
17627	if invalidParams.Len() > 0 {
17628		return invalidParams
17629	}
17630	return nil
17631}
17632
17633// SetCloudWatchLogGroupARN sets the CloudWatchLogGroupARN field's value.
17634func (s *UpdateGatewayInformationInput) SetCloudWatchLogGroupARN(v string) *UpdateGatewayInformationInput {
17635	s.CloudWatchLogGroupARN = &v
17636	return s
17637}
17638
17639// SetGatewayARN sets the GatewayARN field's value.
17640func (s *UpdateGatewayInformationInput) SetGatewayARN(v string) *UpdateGatewayInformationInput {
17641	s.GatewayARN = &v
17642	return s
17643}
17644
17645// SetGatewayName sets the GatewayName field's value.
17646func (s *UpdateGatewayInformationInput) SetGatewayName(v string) *UpdateGatewayInformationInput {
17647	s.GatewayName = &v
17648	return s
17649}
17650
17651// SetGatewayTimezone sets the GatewayTimezone field's value.
17652func (s *UpdateGatewayInformationInput) SetGatewayTimezone(v string) *UpdateGatewayInformationInput {
17653	s.GatewayTimezone = &v
17654	return s
17655}
17656
17657// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
17658// was updated.
17659type UpdateGatewayInformationOutput struct {
17660	_ struct{} `type:"structure"`
17661
17662	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17663	// to return a list of gateways for your account and AWS Region.
17664	GatewayARN *string `min:"50" type:"string"`
17665
17666	// The name you configured for your gateway.
17667	GatewayName *string `type:"string"`
17668}
17669
17670// String returns the string representation
17671func (s UpdateGatewayInformationOutput) String() string {
17672	return awsutil.Prettify(s)
17673}
17674
17675// GoString returns the string representation
17676func (s UpdateGatewayInformationOutput) GoString() string {
17677	return s.String()
17678}
17679
17680// SetGatewayARN sets the GatewayARN field's value.
17681func (s *UpdateGatewayInformationOutput) SetGatewayARN(v string) *UpdateGatewayInformationOutput {
17682	s.GatewayARN = &v
17683	return s
17684}
17685
17686// SetGatewayName sets the GatewayName field's value.
17687func (s *UpdateGatewayInformationOutput) SetGatewayName(v string) *UpdateGatewayInformationOutput {
17688	s.GatewayName = &v
17689	return s
17690}
17691
17692// A JSON object containing the Amazon Resource Name (ARN) of the gateway to
17693// update.
17694type UpdateGatewaySoftwareNowInput struct {
17695	_ struct{} `type:"structure"`
17696
17697	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17698	// to return a list of gateways for your account and AWS Region.
17699	//
17700	// GatewayARN is a required field
17701	GatewayARN *string `min:"50" type:"string" required:"true"`
17702}
17703
17704// String returns the string representation
17705func (s UpdateGatewaySoftwareNowInput) String() string {
17706	return awsutil.Prettify(s)
17707}
17708
17709// GoString returns the string representation
17710func (s UpdateGatewaySoftwareNowInput) GoString() string {
17711	return s.String()
17712}
17713
17714// Validate inspects the fields of the type to determine if they are valid.
17715func (s *UpdateGatewaySoftwareNowInput) Validate() error {
17716	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewaySoftwareNowInput"}
17717	if s.GatewayARN == nil {
17718		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17719	}
17720	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17721		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17722	}
17723
17724	if invalidParams.Len() > 0 {
17725		return invalidParams
17726	}
17727	return nil
17728}
17729
17730// SetGatewayARN sets the GatewayARN field's value.
17731func (s *UpdateGatewaySoftwareNowInput) SetGatewayARN(v string) *UpdateGatewaySoftwareNowInput {
17732	s.GatewayARN = &v
17733	return s
17734}
17735
17736// A JSON object containing the Amazon Resource Name (ARN) of the gateway that
17737// was updated.
17738type UpdateGatewaySoftwareNowOutput struct {
17739	_ struct{} `type:"structure"`
17740
17741	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17742	// to return a list of gateways for your account and AWS Region.
17743	GatewayARN *string `min:"50" type:"string"`
17744}
17745
17746// String returns the string representation
17747func (s UpdateGatewaySoftwareNowOutput) String() string {
17748	return awsutil.Prettify(s)
17749}
17750
17751// GoString returns the string representation
17752func (s UpdateGatewaySoftwareNowOutput) GoString() string {
17753	return s.String()
17754}
17755
17756// SetGatewayARN sets the GatewayARN field's value.
17757func (s *UpdateGatewaySoftwareNowOutput) SetGatewayARN(v string) *UpdateGatewaySoftwareNowOutput {
17758	s.GatewayARN = &v
17759	return s
17760}
17761
17762// A JSON object containing the following fields:
17763//
17764//    * UpdateMaintenanceStartTimeInput$DayOfMonth
17765//
17766//    * UpdateMaintenanceStartTimeInput$DayOfWeek
17767//
17768//    * UpdateMaintenanceStartTimeInput$HourOfDay
17769//
17770//    * UpdateMaintenanceStartTimeInput$MinuteOfHour
17771type UpdateMaintenanceStartTimeInput struct {
17772	_ struct{} `type:"structure"`
17773
17774	// The day of the month component of the maintenance start time represented
17775	// as an ordinal number from 1 to 28, where 1 represents the first day of the
17776	// month and 28 represents the last day of the month.
17777	DayOfMonth *int64 `min:"1" type:"integer"`
17778
17779	// The day of the week component of the maintenance start time week represented
17780	// as an ordinal number from 0 to 6, where 0 represents Sunday and 6 Saturday.
17781	DayOfWeek *int64 `type:"integer"`
17782
17783	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17784	// to return a list of gateways for your account and AWS Region.
17785	//
17786	// GatewayARN is a required field
17787	GatewayARN *string `min:"50" type:"string" required:"true"`
17788
17789	// The hour component of the maintenance start time represented as hh, where
17790	// hh is the hour (00 to 23). The hour of the day is in the time zone of the
17791	// gateway.
17792	//
17793	// HourOfDay is a required field
17794	HourOfDay *int64 `type:"integer" required:"true"`
17795
17796	// The minute component of the maintenance start time represented as mm, where
17797	// mm is the minute (00 to 59). The minute of the hour is in the time zone of
17798	// the gateway.
17799	//
17800	// MinuteOfHour is a required field
17801	MinuteOfHour *int64 `type:"integer" required:"true"`
17802}
17803
17804// String returns the string representation
17805func (s UpdateMaintenanceStartTimeInput) String() string {
17806	return awsutil.Prettify(s)
17807}
17808
17809// GoString returns the string representation
17810func (s UpdateMaintenanceStartTimeInput) GoString() string {
17811	return s.String()
17812}
17813
17814// Validate inspects the fields of the type to determine if they are valid.
17815func (s *UpdateMaintenanceStartTimeInput) Validate() error {
17816	invalidParams := request.ErrInvalidParams{Context: "UpdateMaintenanceStartTimeInput"}
17817	if s.DayOfMonth != nil && *s.DayOfMonth < 1 {
17818		invalidParams.Add(request.NewErrParamMinValue("DayOfMonth", 1))
17819	}
17820	if s.GatewayARN == nil {
17821		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17822	}
17823	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17824		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17825	}
17826	if s.HourOfDay == nil {
17827		invalidParams.Add(request.NewErrParamRequired("HourOfDay"))
17828	}
17829	if s.MinuteOfHour == nil {
17830		invalidParams.Add(request.NewErrParamRequired("MinuteOfHour"))
17831	}
17832
17833	if invalidParams.Len() > 0 {
17834		return invalidParams
17835	}
17836	return nil
17837}
17838
17839// SetDayOfMonth sets the DayOfMonth field's value.
17840func (s *UpdateMaintenanceStartTimeInput) SetDayOfMonth(v int64) *UpdateMaintenanceStartTimeInput {
17841	s.DayOfMonth = &v
17842	return s
17843}
17844
17845// SetDayOfWeek sets the DayOfWeek field's value.
17846func (s *UpdateMaintenanceStartTimeInput) SetDayOfWeek(v int64) *UpdateMaintenanceStartTimeInput {
17847	s.DayOfWeek = &v
17848	return s
17849}
17850
17851// SetGatewayARN sets the GatewayARN field's value.
17852func (s *UpdateMaintenanceStartTimeInput) SetGatewayARN(v string) *UpdateMaintenanceStartTimeInput {
17853	s.GatewayARN = &v
17854	return s
17855}
17856
17857// SetHourOfDay sets the HourOfDay field's value.
17858func (s *UpdateMaintenanceStartTimeInput) SetHourOfDay(v int64) *UpdateMaintenanceStartTimeInput {
17859	s.HourOfDay = &v
17860	return s
17861}
17862
17863// SetMinuteOfHour sets the MinuteOfHour field's value.
17864func (s *UpdateMaintenanceStartTimeInput) SetMinuteOfHour(v int64) *UpdateMaintenanceStartTimeInput {
17865	s.MinuteOfHour = &v
17866	return s
17867}
17868
17869// A JSON object containing the Amazon Resource Name (ARN) of the gateway whose
17870// maintenance start time is updated.
17871type UpdateMaintenanceStartTimeOutput struct {
17872	_ struct{} `type:"structure"`
17873
17874	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17875	// to return a list of gateways for your account and AWS Region.
17876	GatewayARN *string `min:"50" type:"string"`
17877}
17878
17879// String returns the string representation
17880func (s UpdateMaintenanceStartTimeOutput) String() string {
17881	return awsutil.Prettify(s)
17882}
17883
17884// GoString returns the string representation
17885func (s UpdateMaintenanceStartTimeOutput) GoString() string {
17886	return s.String()
17887}
17888
17889// SetGatewayARN sets the GatewayARN field's value.
17890func (s *UpdateMaintenanceStartTimeOutput) SetGatewayARN(v string) *UpdateMaintenanceStartTimeOutput {
17891	s.GatewayARN = &v
17892	return s
17893}
17894
17895// UpdateNFSFileShareInput
17896type UpdateNFSFileShareInput struct {
17897	_ struct{} `type:"structure"`
17898
17899	// Refresh cache information.
17900	CacheAttributes *CacheAttributes `type:"structure"`
17901
17902	// The list of clients that are allowed to access the file gateway. The list
17903	// must contain either valid IP addresses or valid CIDR blocks.
17904	ClientList []*string `min:"1" type:"list"`
17905
17906	// The default storage class for objects put into an Amazon S3 bucket by the
17907	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
17908	//
17909	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
17910	DefaultStorageClass *string `min:"5" type:"string"`
17911
17912	// The Amazon Resource Name (ARN) of the file share to be updated.
17913	//
17914	// FileShareARN is a required field
17915	FileShareARN *string `min:"50" type:"string" required:"true"`
17916
17917	// The name of the file share. Optional.
17918	//
17919	// FileShareName must be set if an S3 prefix name is set in LocationARN.
17920	FileShareName *string `min:"1" type:"string"`
17921
17922	// A value that enables guessing of the MIME type for uploaded objects based
17923	// on file extensions. Set this value to true to enable MIME type guessing,
17924	// otherwise set to false. The default value is true.
17925	//
17926	// Valid Values: true | false
17927	GuessMIMETypeEnabled *bool `type:"boolean"`
17928
17929	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
17930	// key, or false to use a key managed by Amazon S3. Optional.
17931	//
17932	// Valid Values: true | false
17933	KMSEncrypted *bool `type:"boolean"`
17934
17935	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
17936	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
17937	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
17938	KMSKey *string `min:"7" type:"string"`
17939
17940	// The default values for the file share. Optional.
17941	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
17942
17943	// A value that sets the access control list (ACL) permission for objects in
17944	// the S3 bucket that a file gateway puts objects into. The default value is
17945	// private.
17946	ObjectACL *string `type:"string" enum:"ObjectACL"`
17947
17948	// A value that sets the write status of a file share. Set this value to true
17949	// to set the write status to read-only, otherwise set to false.
17950	//
17951	// Valid Values: true | false
17952	ReadOnly *bool `type:"boolean"`
17953
17954	// A value that sets who pays the cost of the request and the cost associated
17955	// with data download from the S3 bucket. If this value is set to true, the
17956	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
17957	// S3 bucket owner always pays the cost of storing data.
17958	//
17959	// RequesterPays is a configuration for the S3 bucket that backs the file share,
17960	// so make sure that the configuration on the file share is the same as the
17961	// S3 bucket configuration.
17962	//
17963	// Valid Values: true | false
17964	RequesterPays *bool `type:"boolean"`
17965
17966	// The user mapped to anonymous user.
17967	//
17968	// Valid values are the following:
17969	//
17970	//    * RootSquash: Only root is mapped to anonymous user.
17971	//
17972	//    * NoSquash: No one is mapped to anonymous user.
17973	//
17974	//    * AllSquash: Everyone is mapped to anonymous user.
17975	Squash *string `min:"5" type:"string"`
17976}
17977
17978// String returns the string representation
17979func (s UpdateNFSFileShareInput) String() string {
17980	return awsutil.Prettify(s)
17981}
17982
17983// GoString returns the string representation
17984func (s UpdateNFSFileShareInput) GoString() string {
17985	return s.String()
17986}
17987
17988// Validate inspects the fields of the type to determine if they are valid.
17989func (s *UpdateNFSFileShareInput) Validate() error {
17990	invalidParams := request.ErrInvalidParams{Context: "UpdateNFSFileShareInput"}
17991	if s.ClientList != nil && len(s.ClientList) < 1 {
17992		invalidParams.Add(request.NewErrParamMinLen("ClientList", 1))
17993	}
17994	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
17995		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
17996	}
17997	if s.FileShareARN == nil {
17998		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
17999	}
18000	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
18001		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
18002	}
18003	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
18004		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
18005	}
18006	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
18007		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
18008	}
18009	if s.Squash != nil && len(*s.Squash) < 5 {
18010		invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
18011	}
18012	if s.NFSFileShareDefaults != nil {
18013		if err := s.NFSFileShareDefaults.Validate(); err != nil {
18014			invalidParams.AddNested("NFSFileShareDefaults", err.(request.ErrInvalidParams))
18015		}
18016	}
18017
18018	if invalidParams.Len() > 0 {
18019		return invalidParams
18020	}
18021	return nil
18022}
18023
18024// SetCacheAttributes sets the CacheAttributes field's value.
18025func (s *UpdateNFSFileShareInput) SetCacheAttributes(v *CacheAttributes) *UpdateNFSFileShareInput {
18026	s.CacheAttributes = v
18027	return s
18028}
18029
18030// SetClientList sets the ClientList field's value.
18031func (s *UpdateNFSFileShareInput) SetClientList(v []*string) *UpdateNFSFileShareInput {
18032	s.ClientList = v
18033	return s
18034}
18035
18036// SetDefaultStorageClass sets the DefaultStorageClass field's value.
18037func (s *UpdateNFSFileShareInput) SetDefaultStorageClass(v string) *UpdateNFSFileShareInput {
18038	s.DefaultStorageClass = &v
18039	return s
18040}
18041
18042// SetFileShareARN sets the FileShareARN field's value.
18043func (s *UpdateNFSFileShareInput) SetFileShareARN(v string) *UpdateNFSFileShareInput {
18044	s.FileShareARN = &v
18045	return s
18046}
18047
18048// SetFileShareName sets the FileShareName field's value.
18049func (s *UpdateNFSFileShareInput) SetFileShareName(v string) *UpdateNFSFileShareInput {
18050	s.FileShareName = &v
18051	return s
18052}
18053
18054// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
18055func (s *UpdateNFSFileShareInput) SetGuessMIMETypeEnabled(v bool) *UpdateNFSFileShareInput {
18056	s.GuessMIMETypeEnabled = &v
18057	return s
18058}
18059
18060// SetKMSEncrypted sets the KMSEncrypted field's value.
18061func (s *UpdateNFSFileShareInput) SetKMSEncrypted(v bool) *UpdateNFSFileShareInput {
18062	s.KMSEncrypted = &v
18063	return s
18064}
18065
18066// SetKMSKey sets the KMSKey field's value.
18067func (s *UpdateNFSFileShareInput) SetKMSKey(v string) *UpdateNFSFileShareInput {
18068	s.KMSKey = &v
18069	return s
18070}
18071
18072// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
18073func (s *UpdateNFSFileShareInput) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *UpdateNFSFileShareInput {
18074	s.NFSFileShareDefaults = v
18075	return s
18076}
18077
18078// SetObjectACL sets the ObjectACL field's value.
18079func (s *UpdateNFSFileShareInput) SetObjectACL(v string) *UpdateNFSFileShareInput {
18080	s.ObjectACL = &v
18081	return s
18082}
18083
18084// SetReadOnly sets the ReadOnly field's value.
18085func (s *UpdateNFSFileShareInput) SetReadOnly(v bool) *UpdateNFSFileShareInput {
18086	s.ReadOnly = &v
18087	return s
18088}
18089
18090// SetRequesterPays sets the RequesterPays field's value.
18091func (s *UpdateNFSFileShareInput) SetRequesterPays(v bool) *UpdateNFSFileShareInput {
18092	s.RequesterPays = &v
18093	return s
18094}
18095
18096// SetSquash sets the Squash field's value.
18097func (s *UpdateNFSFileShareInput) SetSquash(v string) *UpdateNFSFileShareInput {
18098	s.Squash = &v
18099	return s
18100}
18101
18102// UpdateNFSFileShareOutput
18103type UpdateNFSFileShareOutput struct {
18104	_ struct{} `type:"structure"`
18105
18106	// The Amazon Resource Name (ARN) of the updated file share.
18107	FileShareARN *string `min:"50" type:"string"`
18108}
18109
18110// String returns the string representation
18111func (s UpdateNFSFileShareOutput) String() string {
18112	return awsutil.Prettify(s)
18113}
18114
18115// GoString returns the string representation
18116func (s UpdateNFSFileShareOutput) GoString() string {
18117	return s.String()
18118}
18119
18120// SetFileShareARN sets the FileShareARN field's value.
18121func (s *UpdateNFSFileShareOutput) SetFileShareARN(v string) *UpdateNFSFileShareOutput {
18122	s.FileShareARN = &v
18123	return s
18124}
18125
18126// UpdateSMBFileShareInput
18127type UpdateSMBFileShareInput struct {
18128	_ struct{} `type:"structure"`
18129
18130	// A list of users or groups in the Active Directory that have administrator
18131	// rights to the file share. A group must be prefixed with the @ character.
18132	// Acceptable formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1.
18133	// Can only be set if Authentication is set to ActiveDirectory.
18134	AdminUserList []*string `type:"list"`
18135
18136	// The Amazon Resource Name (ARN) of the storage used for the audit logs.
18137	AuditDestinationARN *string `type:"string"`
18138
18139	// Refresh cache information.
18140	CacheAttributes *CacheAttributes `type:"structure"`
18141
18142	// The case of an object name in an Amazon S3 bucket. For ClientSpecified, the
18143	// client determines the case sensitivity. For CaseSensitive, the gateway determines
18144	// the case sensitivity. The default value is ClientSpecified.
18145	CaseSensitivity *string `type:"string" enum:"CaseSensitivity"`
18146
18147	// The default storage class for objects put into an Amazon S3 bucket by the
18148	// file gateway. The default value is S3_INTELLIGENT_TIERING. Optional.
18149	//
18150	// Valid Values: S3_STANDARD | S3_INTELLIGENT_TIERING | S3_STANDARD_IA | S3_ONEZONE_IA
18151	DefaultStorageClass *string `min:"5" type:"string"`
18152
18153	// The Amazon Resource Name (ARN) of the SMB file share that you want to update.
18154	//
18155	// FileShareARN is a required field
18156	FileShareARN *string `min:"50" type:"string" required:"true"`
18157
18158	// The name of the file share. Optional.
18159	//
18160	// FileShareName must be set if an S3 prefix name is set in LocationARN.
18161	FileShareName *string `min:"1" type:"string"`
18162
18163	// A value that enables guessing of the MIME type for uploaded objects based
18164	// on file extensions. Set this value to true to enable MIME type guessing,
18165	// otherwise set to false. The default value is true.
18166	//
18167	// Valid Values: true | false
18168	GuessMIMETypeEnabled *bool `type:"boolean"`
18169
18170	// A list of users or groups in the Active Directory that are not allowed to
18171	// access the file share. A group must be prefixed with the @ character. Acceptable
18172	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
18173	// be set if Authentication is set to ActiveDirectory.
18174	InvalidUserList []*string `type:"list"`
18175
18176	// Set to true to use Amazon S3 server-side encryption with your own AWS KMS
18177	// key, or false to use a key managed by Amazon S3. Optional.
18178	//
18179	// Valid Values: true | false
18180	KMSEncrypted *bool `type:"boolean"`
18181
18182	// The Amazon Resource Name (ARN) of a symmetric customer master key (CMK) used
18183	// for Amazon S3 server-side encryption. Storage Gateway does not support asymmetric
18184	// CMKs. This value can only be set when KMSEncrypted is true. Optional.
18185	KMSKey *string `min:"7" type:"string"`
18186
18187	// A value that sets the access control list (ACL) permission for objects in
18188	// the S3 bucket that a file gateway puts objects into. The default value is
18189	// private.
18190	ObjectACL *string `type:"string" enum:"ObjectACL"`
18191
18192	// A value that sets the write status of a file share. Set this value to true
18193	// to set write status to read-only, otherwise set to false.
18194	//
18195	// Valid Values: true | false
18196	ReadOnly *bool `type:"boolean"`
18197
18198	// A value that sets who pays the cost of the request and the cost associated
18199	// with data download from the S3 bucket. If this value is set to true, the
18200	// requester pays the costs; otherwise, the S3 bucket owner pays. However, the
18201	// S3 bucket owner always pays the cost of storing data.
18202	//
18203	// RequesterPays is a configuration for the S3 bucket that backs the file share,
18204	// so make sure that the configuration on the file share is the same as the
18205	// S3 bucket configuration.
18206	//
18207	// Valid Values: true | false
18208	RequesterPays *bool `type:"boolean"`
18209
18210	// Set this value to true to enable access control list (ACL) on the SMB file
18211	// share. Set it to false to map file and directory permissions to the POSIX
18212	// permissions.
18213	//
18214	// For more information, see Using Microsoft Windows ACLs to control access
18215	// to an SMB file share (https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html)
18216	// in the AWS Storage Gateway User Guide.
18217	//
18218	// Valid Values: true | false
18219	SMBACLEnabled *bool `type:"boolean"`
18220
18221	// A list of users or groups in the Active Directory that are allowed to access
18222	// the file share. A group must be prefixed with the @ character. Acceptable
18223	// formats include: DOMAIN\User1, user1, @group1, and @DOMAIN\group1. Can only
18224	// be set if Authentication is set to ActiveDirectory.
18225	ValidUserList []*string `type:"list"`
18226}
18227
18228// String returns the string representation
18229func (s UpdateSMBFileShareInput) String() string {
18230	return awsutil.Prettify(s)
18231}
18232
18233// GoString returns the string representation
18234func (s UpdateSMBFileShareInput) GoString() string {
18235	return s.String()
18236}
18237
18238// Validate inspects the fields of the type to determine if they are valid.
18239func (s *UpdateSMBFileShareInput) Validate() error {
18240	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBFileShareInput"}
18241	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
18242		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
18243	}
18244	if s.FileShareARN == nil {
18245		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
18246	}
18247	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
18248		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
18249	}
18250	if s.FileShareName != nil && len(*s.FileShareName) < 1 {
18251		invalidParams.Add(request.NewErrParamMinLen("FileShareName", 1))
18252	}
18253	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
18254		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
18255	}
18256
18257	if invalidParams.Len() > 0 {
18258		return invalidParams
18259	}
18260	return nil
18261}
18262
18263// SetAdminUserList sets the AdminUserList field's value.
18264func (s *UpdateSMBFileShareInput) SetAdminUserList(v []*string) *UpdateSMBFileShareInput {
18265	s.AdminUserList = v
18266	return s
18267}
18268
18269// SetAuditDestinationARN sets the AuditDestinationARN field's value.
18270func (s *UpdateSMBFileShareInput) SetAuditDestinationARN(v string) *UpdateSMBFileShareInput {
18271	s.AuditDestinationARN = &v
18272	return s
18273}
18274
18275// SetCacheAttributes sets the CacheAttributes field's value.
18276func (s *UpdateSMBFileShareInput) SetCacheAttributes(v *CacheAttributes) *UpdateSMBFileShareInput {
18277	s.CacheAttributes = v
18278	return s
18279}
18280
18281// SetCaseSensitivity sets the CaseSensitivity field's value.
18282func (s *UpdateSMBFileShareInput) SetCaseSensitivity(v string) *UpdateSMBFileShareInput {
18283	s.CaseSensitivity = &v
18284	return s
18285}
18286
18287// SetDefaultStorageClass sets the DefaultStorageClass field's value.
18288func (s *UpdateSMBFileShareInput) SetDefaultStorageClass(v string) *UpdateSMBFileShareInput {
18289	s.DefaultStorageClass = &v
18290	return s
18291}
18292
18293// SetFileShareARN sets the FileShareARN field's value.
18294func (s *UpdateSMBFileShareInput) SetFileShareARN(v string) *UpdateSMBFileShareInput {
18295	s.FileShareARN = &v
18296	return s
18297}
18298
18299// SetFileShareName sets the FileShareName field's value.
18300func (s *UpdateSMBFileShareInput) SetFileShareName(v string) *UpdateSMBFileShareInput {
18301	s.FileShareName = &v
18302	return s
18303}
18304
18305// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
18306func (s *UpdateSMBFileShareInput) SetGuessMIMETypeEnabled(v bool) *UpdateSMBFileShareInput {
18307	s.GuessMIMETypeEnabled = &v
18308	return s
18309}
18310
18311// SetInvalidUserList sets the InvalidUserList field's value.
18312func (s *UpdateSMBFileShareInput) SetInvalidUserList(v []*string) *UpdateSMBFileShareInput {
18313	s.InvalidUserList = v
18314	return s
18315}
18316
18317// SetKMSEncrypted sets the KMSEncrypted field's value.
18318func (s *UpdateSMBFileShareInput) SetKMSEncrypted(v bool) *UpdateSMBFileShareInput {
18319	s.KMSEncrypted = &v
18320	return s
18321}
18322
18323// SetKMSKey sets the KMSKey field's value.
18324func (s *UpdateSMBFileShareInput) SetKMSKey(v string) *UpdateSMBFileShareInput {
18325	s.KMSKey = &v
18326	return s
18327}
18328
18329// SetObjectACL sets the ObjectACL field's value.
18330func (s *UpdateSMBFileShareInput) SetObjectACL(v string) *UpdateSMBFileShareInput {
18331	s.ObjectACL = &v
18332	return s
18333}
18334
18335// SetReadOnly sets the ReadOnly field's value.
18336func (s *UpdateSMBFileShareInput) SetReadOnly(v bool) *UpdateSMBFileShareInput {
18337	s.ReadOnly = &v
18338	return s
18339}
18340
18341// SetRequesterPays sets the RequesterPays field's value.
18342func (s *UpdateSMBFileShareInput) SetRequesterPays(v bool) *UpdateSMBFileShareInput {
18343	s.RequesterPays = &v
18344	return s
18345}
18346
18347// SetSMBACLEnabled sets the SMBACLEnabled field's value.
18348func (s *UpdateSMBFileShareInput) SetSMBACLEnabled(v bool) *UpdateSMBFileShareInput {
18349	s.SMBACLEnabled = &v
18350	return s
18351}
18352
18353// SetValidUserList sets the ValidUserList field's value.
18354func (s *UpdateSMBFileShareInput) SetValidUserList(v []*string) *UpdateSMBFileShareInput {
18355	s.ValidUserList = v
18356	return s
18357}
18358
18359// UpdateSMBFileShareOutput
18360type UpdateSMBFileShareOutput struct {
18361	_ struct{} `type:"structure"`
18362
18363	// The Amazon Resource Name (ARN) of the updated SMB file share.
18364	FileShareARN *string `min:"50" type:"string"`
18365}
18366
18367// String returns the string representation
18368func (s UpdateSMBFileShareOutput) String() string {
18369	return awsutil.Prettify(s)
18370}
18371
18372// GoString returns the string representation
18373func (s UpdateSMBFileShareOutput) GoString() string {
18374	return s.String()
18375}
18376
18377// SetFileShareARN sets the FileShareARN field's value.
18378func (s *UpdateSMBFileShareOutput) SetFileShareARN(v string) *UpdateSMBFileShareOutput {
18379	s.FileShareARN = &v
18380	return s
18381}
18382
18383type UpdateSMBSecurityStrategyInput struct {
18384	_ struct{} `type:"structure"`
18385
18386	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18387	// to return a list of gateways for your account and AWS Region.
18388	//
18389	// GatewayARN is a required field
18390	GatewayARN *string `min:"50" type:"string" required:"true"`
18391
18392	// Specifies the type of security strategy.
18393	//
18394	// ClientSpecified: if you use this option, requests are established based on
18395	// what is negotiated by the client. This option is recommended when you want
18396	// to maximize compatibility across different clients in your environment.
18397	//
18398	// MandatorySigning: if you use this option, file gateway only allows connections
18399	// from SMBv2 or SMBv3 clients that have signing enabled. This option works
18400	// with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer.
18401	//
18402	// MandatoryEncryption: if you use this option, file gateway only allows connections
18403	// from SMBv3 clients that have encryption enabled. This option is highly recommended
18404	// for environments that handle sensitive data. This option works with SMB clients
18405	// on Microsoft Windows 8, Windows Server 2012 or newer.
18406	//
18407	// SMBSecurityStrategy is a required field
18408	SMBSecurityStrategy *string `type:"string" required:"true" enum:"SMBSecurityStrategy"`
18409}
18410
18411// String returns the string representation
18412func (s UpdateSMBSecurityStrategyInput) String() string {
18413	return awsutil.Prettify(s)
18414}
18415
18416// GoString returns the string representation
18417func (s UpdateSMBSecurityStrategyInput) GoString() string {
18418	return s.String()
18419}
18420
18421// Validate inspects the fields of the type to determine if they are valid.
18422func (s *UpdateSMBSecurityStrategyInput) Validate() error {
18423	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBSecurityStrategyInput"}
18424	if s.GatewayARN == nil {
18425		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
18426	}
18427	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
18428		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
18429	}
18430	if s.SMBSecurityStrategy == nil {
18431		invalidParams.Add(request.NewErrParamRequired("SMBSecurityStrategy"))
18432	}
18433
18434	if invalidParams.Len() > 0 {
18435		return invalidParams
18436	}
18437	return nil
18438}
18439
18440// SetGatewayARN sets the GatewayARN field's value.
18441func (s *UpdateSMBSecurityStrategyInput) SetGatewayARN(v string) *UpdateSMBSecurityStrategyInput {
18442	s.GatewayARN = &v
18443	return s
18444}
18445
18446// SetSMBSecurityStrategy sets the SMBSecurityStrategy field's value.
18447func (s *UpdateSMBSecurityStrategyInput) SetSMBSecurityStrategy(v string) *UpdateSMBSecurityStrategyInput {
18448	s.SMBSecurityStrategy = &v
18449	return s
18450}
18451
18452type UpdateSMBSecurityStrategyOutput struct {
18453	_ struct{} `type:"structure"`
18454
18455	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18456	// to return a list of gateways for your account and AWS Region.
18457	GatewayARN *string `min:"50" type:"string"`
18458}
18459
18460// String returns the string representation
18461func (s UpdateSMBSecurityStrategyOutput) String() string {
18462	return awsutil.Prettify(s)
18463}
18464
18465// GoString returns the string representation
18466func (s UpdateSMBSecurityStrategyOutput) GoString() string {
18467	return s.String()
18468}
18469
18470// SetGatewayARN sets the GatewayARN field's value.
18471func (s *UpdateSMBSecurityStrategyOutput) SetGatewayARN(v string) *UpdateSMBSecurityStrategyOutput {
18472	s.GatewayARN = &v
18473	return s
18474}
18475
18476// A JSON object containing one or more of the following fields:
18477//
18478//    * UpdateSnapshotScheduleInput$Description
18479//
18480//    * UpdateSnapshotScheduleInput$RecurrenceInHours
18481//
18482//    * UpdateSnapshotScheduleInput$StartAt
18483//
18484//    * UpdateSnapshotScheduleInput$VolumeARN
18485type UpdateSnapshotScheduleInput struct {
18486	_ struct{} `type:"structure"`
18487
18488	// Optional description of the snapshot that overwrites the existing description.
18489	Description *string `min:"1" type:"string"`
18490
18491	// Frequency of snapshots. Specify the number of hours between snapshots.
18492	//
18493	// RecurrenceInHours is a required field
18494	RecurrenceInHours *int64 `min:"1" type:"integer" required:"true"`
18495
18496	// The hour of the day at which the snapshot schedule begins represented as
18497	// hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
18498	// of the gateway.
18499	//
18500	// StartAt is a required field
18501	StartAt *int64 `type:"integer" required:"true"`
18502
18503	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
18504	// key-value pair.
18505	//
18506	// Valid characters for key and value are letters, spaces, and numbers representable
18507	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
18508	// maximum length of a tag's key is 128 characters, and the maximum length for
18509	// a tag's value is 256.
18510	Tags []*Tag `type:"list"`
18511
18512	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
18513	// to return a list of gateway volumes.
18514	//
18515	// VolumeARN is a required field
18516	VolumeARN *string `min:"50" type:"string" required:"true"`
18517}
18518
18519// String returns the string representation
18520func (s UpdateSnapshotScheduleInput) String() string {
18521	return awsutil.Prettify(s)
18522}
18523
18524// GoString returns the string representation
18525func (s UpdateSnapshotScheduleInput) GoString() string {
18526	return s.String()
18527}
18528
18529// Validate inspects the fields of the type to determine if they are valid.
18530func (s *UpdateSnapshotScheduleInput) Validate() error {
18531	invalidParams := request.ErrInvalidParams{Context: "UpdateSnapshotScheduleInput"}
18532	if s.Description != nil && len(*s.Description) < 1 {
18533		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
18534	}
18535	if s.RecurrenceInHours == nil {
18536		invalidParams.Add(request.NewErrParamRequired("RecurrenceInHours"))
18537	}
18538	if s.RecurrenceInHours != nil && *s.RecurrenceInHours < 1 {
18539		invalidParams.Add(request.NewErrParamMinValue("RecurrenceInHours", 1))
18540	}
18541	if s.StartAt == nil {
18542		invalidParams.Add(request.NewErrParamRequired("StartAt"))
18543	}
18544	if s.VolumeARN == nil {
18545		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
18546	}
18547	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
18548		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
18549	}
18550	if s.Tags != nil {
18551		for i, v := range s.Tags {
18552			if v == nil {
18553				continue
18554			}
18555			if err := v.Validate(); err != nil {
18556				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
18557			}
18558		}
18559	}
18560
18561	if invalidParams.Len() > 0 {
18562		return invalidParams
18563	}
18564	return nil
18565}
18566
18567// SetDescription sets the Description field's value.
18568func (s *UpdateSnapshotScheduleInput) SetDescription(v string) *UpdateSnapshotScheduleInput {
18569	s.Description = &v
18570	return s
18571}
18572
18573// SetRecurrenceInHours sets the RecurrenceInHours field's value.
18574func (s *UpdateSnapshotScheduleInput) SetRecurrenceInHours(v int64) *UpdateSnapshotScheduleInput {
18575	s.RecurrenceInHours = &v
18576	return s
18577}
18578
18579// SetStartAt sets the StartAt field's value.
18580func (s *UpdateSnapshotScheduleInput) SetStartAt(v int64) *UpdateSnapshotScheduleInput {
18581	s.StartAt = &v
18582	return s
18583}
18584
18585// SetTags sets the Tags field's value.
18586func (s *UpdateSnapshotScheduleInput) SetTags(v []*Tag) *UpdateSnapshotScheduleInput {
18587	s.Tags = v
18588	return s
18589}
18590
18591// SetVolumeARN sets the VolumeARN field's value.
18592func (s *UpdateSnapshotScheduleInput) SetVolumeARN(v string) *UpdateSnapshotScheduleInput {
18593	s.VolumeARN = &v
18594	return s
18595}
18596
18597// A JSON object containing the Amazon Resource Name (ARN) of the updated storage
18598// volume.
18599type UpdateSnapshotScheduleOutput struct {
18600	_ struct{} `type:"structure"`
18601
18602	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
18603	// to return a list of gateway volumes.
18604	VolumeARN *string `min:"50" type:"string"`
18605}
18606
18607// String returns the string representation
18608func (s UpdateSnapshotScheduleOutput) String() string {
18609	return awsutil.Prettify(s)
18610}
18611
18612// GoString returns the string representation
18613func (s UpdateSnapshotScheduleOutput) GoString() string {
18614	return s.String()
18615}
18616
18617// SetVolumeARN sets the VolumeARN field's value.
18618func (s *UpdateSnapshotScheduleOutput) SetVolumeARN(v string) *UpdateSnapshotScheduleOutput {
18619	s.VolumeARN = &v
18620	return s
18621}
18622
18623type UpdateVTLDeviceTypeInput struct {
18624	_ struct{} `type:"structure"`
18625
18626	// The type of medium changer you want to select.
18627	//
18628	// Valid Values: STK-L700 | AWS-Gateway-VTL
18629	//
18630	// DeviceType is a required field
18631	DeviceType *string `min:"2" type:"string" required:"true"`
18632
18633	// The Amazon Resource Name (ARN) of the medium changer you want to select.
18634	//
18635	// VTLDeviceARN is a required field
18636	VTLDeviceARN *string `min:"50" type:"string" required:"true"`
18637}
18638
18639// String returns the string representation
18640func (s UpdateVTLDeviceTypeInput) String() string {
18641	return awsutil.Prettify(s)
18642}
18643
18644// GoString returns the string representation
18645func (s UpdateVTLDeviceTypeInput) GoString() string {
18646	return s.String()
18647}
18648
18649// Validate inspects the fields of the type to determine if they are valid.
18650func (s *UpdateVTLDeviceTypeInput) Validate() error {
18651	invalidParams := request.ErrInvalidParams{Context: "UpdateVTLDeviceTypeInput"}
18652	if s.DeviceType == nil {
18653		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
18654	}
18655	if s.DeviceType != nil && len(*s.DeviceType) < 2 {
18656		invalidParams.Add(request.NewErrParamMinLen("DeviceType", 2))
18657	}
18658	if s.VTLDeviceARN == nil {
18659		invalidParams.Add(request.NewErrParamRequired("VTLDeviceARN"))
18660	}
18661	if s.VTLDeviceARN != nil && len(*s.VTLDeviceARN) < 50 {
18662		invalidParams.Add(request.NewErrParamMinLen("VTLDeviceARN", 50))
18663	}
18664
18665	if invalidParams.Len() > 0 {
18666		return invalidParams
18667	}
18668	return nil
18669}
18670
18671// SetDeviceType sets the DeviceType field's value.
18672func (s *UpdateVTLDeviceTypeInput) SetDeviceType(v string) *UpdateVTLDeviceTypeInput {
18673	s.DeviceType = &v
18674	return s
18675}
18676
18677// SetVTLDeviceARN sets the VTLDeviceARN field's value.
18678func (s *UpdateVTLDeviceTypeInput) SetVTLDeviceARN(v string) *UpdateVTLDeviceTypeInput {
18679	s.VTLDeviceARN = &v
18680	return s
18681}
18682
18683// UpdateVTLDeviceTypeOutput
18684type UpdateVTLDeviceTypeOutput struct {
18685	_ struct{} `type:"structure"`
18686
18687	// The Amazon Resource Name (ARN) of the medium changer you have selected.
18688	VTLDeviceARN *string `min:"50" type:"string"`
18689}
18690
18691// String returns the string representation
18692func (s UpdateVTLDeviceTypeOutput) String() string {
18693	return awsutil.Prettify(s)
18694}
18695
18696// GoString returns the string representation
18697func (s UpdateVTLDeviceTypeOutput) GoString() string {
18698	return s.String()
18699}
18700
18701// SetVTLDeviceARN sets the VTLDeviceARN field's value.
18702func (s *UpdateVTLDeviceTypeOutput) SetVTLDeviceARN(v string) *UpdateVTLDeviceTypeOutput {
18703	s.VTLDeviceARN = &v
18704	return s
18705}
18706
18707// Represents a device object associated with a tape gateway.
18708type VTLDevice struct {
18709	_ struct{} `type:"structure"`
18710
18711	// A list of iSCSI information about a VTL device.
18712	DeviceiSCSIAttributes *DeviceiSCSIAttributes `type:"structure"`
18713
18714	// Specifies the unique Amazon Resource Name (ARN) of the device (tape drive
18715	// or media changer).
18716	VTLDeviceARN *string `min:"50" type:"string"`
18717
18718	// Specifies the model number of device that the VTL device emulates.
18719	VTLDeviceProductIdentifier *string `type:"string"`
18720
18721	// Specifies the type of device that the VTL device emulates.
18722	VTLDeviceType *string `type:"string"`
18723
18724	// Specifies the vendor of the device that the VTL device object emulates.
18725	VTLDeviceVendor *string `type:"string"`
18726}
18727
18728// String returns the string representation
18729func (s VTLDevice) String() string {
18730	return awsutil.Prettify(s)
18731}
18732
18733// GoString returns the string representation
18734func (s VTLDevice) GoString() string {
18735	return s.String()
18736}
18737
18738// SetDeviceiSCSIAttributes sets the DeviceiSCSIAttributes field's value.
18739func (s *VTLDevice) SetDeviceiSCSIAttributes(v *DeviceiSCSIAttributes) *VTLDevice {
18740	s.DeviceiSCSIAttributes = v
18741	return s
18742}
18743
18744// SetVTLDeviceARN sets the VTLDeviceARN field's value.
18745func (s *VTLDevice) SetVTLDeviceARN(v string) *VTLDevice {
18746	s.VTLDeviceARN = &v
18747	return s
18748}
18749
18750// SetVTLDeviceProductIdentifier sets the VTLDeviceProductIdentifier field's value.
18751func (s *VTLDevice) SetVTLDeviceProductIdentifier(v string) *VTLDevice {
18752	s.VTLDeviceProductIdentifier = &v
18753	return s
18754}
18755
18756// SetVTLDeviceType sets the VTLDeviceType field's value.
18757func (s *VTLDevice) SetVTLDeviceType(v string) *VTLDevice {
18758	s.VTLDeviceType = &v
18759	return s
18760}
18761
18762// SetVTLDeviceVendor sets the VTLDeviceVendor field's value.
18763func (s *VTLDevice) SetVTLDeviceVendor(v string) *VTLDevice {
18764	s.VTLDeviceVendor = &v
18765	return s
18766}
18767
18768// Describes a storage volume object.
18769type VolumeInfo struct {
18770	_ struct{} `type:"structure"`
18771
18772	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
18773	// to return a list of gateways for your account and AWS Region.
18774	GatewayARN *string `min:"50" type:"string"`
18775
18776	// The unique identifier assigned to your gateway during activation. This ID
18777	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
18778	// input for other operations.
18779	//
18780	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
18781	// (-).
18782	GatewayId *string `min:"12" type:"string"`
18783
18784	// The Amazon Resource Name (ARN) for the storage volume. For example, the following
18785	// is a valid ARN:
18786	//
18787	// arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB
18788	//
18789	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
18790	// (-).
18791	VolumeARN *string `min:"50" type:"string"`
18792
18793	// One of the VolumeStatus values that indicates the state of the storage volume.
18794	VolumeAttachmentStatus *string `min:"3" type:"string"`
18795
18796	// The unique identifier assigned to the volume. This ID becomes part of the
18797	// volume Amazon Resource Name (ARN), which you use as input for other operations.
18798	//
18799	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
18800	// (-).
18801	VolumeId *string `min:"12" type:"string"`
18802
18803	// The size of the volume in bytes.
18804	//
18805	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
18806	// (-).
18807	VolumeSizeInBytes *int64 `type:"long"`
18808
18809	// One of the VolumeType enumeration values describing the type of the volume.
18810	VolumeType *string `min:"3" type:"string"`
18811}
18812
18813// String returns the string representation
18814func (s VolumeInfo) String() string {
18815	return awsutil.Prettify(s)
18816}
18817
18818// GoString returns the string representation
18819func (s VolumeInfo) GoString() string {
18820	return s.String()
18821}
18822
18823// SetGatewayARN sets the GatewayARN field's value.
18824func (s *VolumeInfo) SetGatewayARN(v string) *VolumeInfo {
18825	s.GatewayARN = &v
18826	return s
18827}
18828
18829// SetGatewayId sets the GatewayId field's value.
18830func (s *VolumeInfo) SetGatewayId(v string) *VolumeInfo {
18831	s.GatewayId = &v
18832	return s
18833}
18834
18835// SetVolumeARN sets the VolumeARN field's value.
18836func (s *VolumeInfo) SetVolumeARN(v string) *VolumeInfo {
18837	s.VolumeARN = &v
18838	return s
18839}
18840
18841// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
18842func (s *VolumeInfo) SetVolumeAttachmentStatus(v string) *VolumeInfo {
18843	s.VolumeAttachmentStatus = &v
18844	return s
18845}
18846
18847// SetVolumeId sets the VolumeId field's value.
18848func (s *VolumeInfo) SetVolumeId(v string) *VolumeInfo {
18849	s.VolumeId = &v
18850	return s
18851}
18852
18853// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
18854func (s *VolumeInfo) SetVolumeSizeInBytes(v int64) *VolumeInfo {
18855	s.VolumeSizeInBytes = &v
18856	return s
18857}
18858
18859// SetVolumeType sets the VolumeType field's value.
18860func (s *VolumeInfo) SetVolumeType(v string) *VolumeInfo {
18861	s.VolumeType = &v
18862	return s
18863}
18864
18865// Describes a storage volume recovery point object.
18866type VolumeRecoveryPointInfo struct {
18867	_ struct{} `type:"structure"`
18868
18869	// The Amazon Resource Name (ARN) of the volume target.
18870	VolumeARN *string `min:"50" type:"string"`
18871
18872	// The time the recovery point was taken.
18873	VolumeRecoveryPointTime *string `type:"string"`
18874
18875	// The size of the volume in bytes.
18876	VolumeSizeInBytes *int64 `type:"long"`
18877
18878	// The size of the data stored on the volume in bytes.
18879	//
18880	// This value is not available for volumes created prior to May 13, 2015, until
18881	// you store data on the volume.
18882	VolumeUsageInBytes *int64 `type:"long"`
18883}
18884
18885// String returns the string representation
18886func (s VolumeRecoveryPointInfo) String() string {
18887	return awsutil.Prettify(s)
18888}
18889
18890// GoString returns the string representation
18891func (s VolumeRecoveryPointInfo) GoString() string {
18892	return s.String()
18893}
18894
18895// SetVolumeARN sets the VolumeARN field's value.
18896func (s *VolumeRecoveryPointInfo) SetVolumeARN(v string) *VolumeRecoveryPointInfo {
18897	s.VolumeARN = &v
18898	return s
18899}
18900
18901// SetVolumeRecoveryPointTime sets the VolumeRecoveryPointTime field's value.
18902func (s *VolumeRecoveryPointInfo) SetVolumeRecoveryPointTime(v string) *VolumeRecoveryPointInfo {
18903	s.VolumeRecoveryPointTime = &v
18904	return s
18905}
18906
18907// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
18908func (s *VolumeRecoveryPointInfo) SetVolumeSizeInBytes(v int64) *VolumeRecoveryPointInfo {
18909	s.VolumeSizeInBytes = &v
18910	return s
18911}
18912
18913// SetVolumeUsageInBytes sets the VolumeUsageInBytes field's value.
18914func (s *VolumeRecoveryPointInfo) SetVolumeUsageInBytes(v int64) *VolumeRecoveryPointInfo {
18915	s.VolumeUsageInBytes = &v
18916	return s
18917}
18918
18919// Lists iSCSI information about a volume.
18920type VolumeiSCSIAttributes struct {
18921	_ struct{} `type:"structure"`
18922
18923	// Indicates whether mutual CHAP is enabled for the iSCSI target.
18924	ChapEnabled *bool `type:"boolean"`
18925
18926	// The logical disk number.
18927	LunNumber *int64 `min:"1" type:"integer"`
18928
18929	// The network interface identifier.
18930	NetworkInterfaceId *string `type:"string"`
18931
18932	// The port used to communicate with iSCSI targets.
18933	NetworkInterfacePort *int64 `type:"integer"`
18934
18935	// The Amazon Resource Name (ARN) of the volume target.
18936	TargetARN *string `min:"50" type:"string"`
18937}
18938
18939// String returns the string representation
18940func (s VolumeiSCSIAttributes) String() string {
18941	return awsutil.Prettify(s)
18942}
18943
18944// GoString returns the string representation
18945func (s VolumeiSCSIAttributes) GoString() string {
18946	return s.String()
18947}
18948
18949// SetChapEnabled sets the ChapEnabled field's value.
18950func (s *VolumeiSCSIAttributes) SetChapEnabled(v bool) *VolumeiSCSIAttributes {
18951	s.ChapEnabled = &v
18952	return s
18953}
18954
18955// SetLunNumber sets the LunNumber field's value.
18956func (s *VolumeiSCSIAttributes) SetLunNumber(v int64) *VolumeiSCSIAttributes {
18957	s.LunNumber = &v
18958	return s
18959}
18960
18961// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
18962func (s *VolumeiSCSIAttributes) SetNetworkInterfaceId(v string) *VolumeiSCSIAttributes {
18963	s.NetworkInterfaceId = &v
18964	return s
18965}
18966
18967// SetNetworkInterfacePort sets the NetworkInterfacePort field's value.
18968func (s *VolumeiSCSIAttributes) SetNetworkInterfacePort(v int64) *VolumeiSCSIAttributes {
18969	s.NetworkInterfacePort = &v
18970	return s
18971}
18972
18973// SetTargetARN sets the TargetARN field's value.
18974func (s *VolumeiSCSIAttributes) SetTargetARN(v string) *VolumeiSCSIAttributes {
18975	s.TargetARN = &v
18976	return s
18977}
18978
18979const (
18980	// ActiveDirectoryStatusAccessDenied is a ActiveDirectoryStatus enum value
18981	ActiveDirectoryStatusAccessDenied = "ACCESS_DENIED"
18982
18983	// ActiveDirectoryStatusDetached is a ActiveDirectoryStatus enum value
18984	ActiveDirectoryStatusDetached = "DETACHED"
18985
18986	// ActiveDirectoryStatusJoined is a ActiveDirectoryStatus enum value
18987	ActiveDirectoryStatusJoined = "JOINED"
18988
18989	// ActiveDirectoryStatusJoining is a ActiveDirectoryStatus enum value
18990	ActiveDirectoryStatusJoining = "JOINING"
18991
18992	// ActiveDirectoryStatusNetworkError is a ActiveDirectoryStatus enum value
18993	ActiveDirectoryStatusNetworkError = "NETWORK_ERROR"
18994
18995	// ActiveDirectoryStatusTimeout is a ActiveDirectoryStatus enum value
18996	ActiveDirectoryStatusTimeout = "TIMEOUT"
18997
18998	// ActiveDirectoryStatusUnknownError is a ActiveDirectoryStatus enum value
18999	ActiveDirectoryStatusUnknownError = "UNKNOWN_ERROR"
19000)
19001
19002const (
19003	// AvailabilityMonitorTestStatusComplete is a AvailabilityMonitorTestStatus enum value
19004	AvailabilityMonitorTestStatusComplete = "COMPLETE"
19005
19006	// AvailabilityMonitorTestStatusFailed is a AvailabilityMonitorTestStatus enum value
19007	AvailabilityMonitorTestStatusFailed = "FAILED"
19008
19009	// AvailabilityMonitorTestStatusPending is a AvailabilityMonitorTestStatus enum value
19010	AvailabilityMonitorTestStatusPending = "PENDING"
19011)
19012
19013const (
19014	// CaseSensitivityClientSpecified is a CaseSensitivity enum value
19015	CaseSensitivityClientSpecified = "ClientSpecified"
19016
19017	// CaseSensitivityCaseSensitive is a CaseSensitivity enum value
19018	CaseSensitivityCaseSensitive = "CaseSensitive"
19019)
19020
19021const (
19022	// ErrorCodeActivationKeyExpired is a ErrorCode enum value
19023	ErrorCodeActivationKeyExpired = "ActivationKeyExpired"
19024
19025	// ErrorCodeActivationKeyInvalid is a ErrorCode enum value
19026	ErrorCodeActivationKeyInvalid = "ActivationKeyInvalid"
19027
19028	// ErrorCodeActivationKeyNotFound is a ErrorCode enum value
19029	ErrorCodeActivationKeyNotFound = "ActivationKeyNotFound"
19030
19031	// ErrorCodeGatewayInternalError is a ErrorCode enum value
19032	ErrorCodeGatewayInternalError = "GatewayInternalError"
19033
19034	// ErrorCodeGatewayNotConnected is a ErrorCode enum value
19035	ErrorCodeGatewayNotConnected = "GatewayNotConnected"
19036
19037	// ErrorCodeGatewayNotFound is a ErrorCode enum value
19038	ErrorCodeGatewayNotFound = "GatewayNotFound"
19039
19040	// ErrorCodeGatewayProxyNetworkConnectionBusy is a ErrorCode enum value
19041	ErrorCodeGatewayProxyNetworkConnectionBusy = "GatewayProxyNetworkConnectionBusy"
19042
19043	// ErrorCodeAuthenticationFailure is a ErrorCode enum value
19044	ErrorCodeAuthenticationFailure = "AuthenticationFailure"
19045
19046	// ErrorCodeBandwidthThrottleScheduleNotFound is a ErrorCode enum value
19047	ErrorCodeBandwidthThrottleScheduleNotFound = "BandwidthThrottleScheduleNotFound"
19048
19049	// ErrorCodeBlocked is a ErrorCode enum value
19050	ErrorCodeBlocked = "Blocked"
19051
19052	// ErrorCodeCannotExportSnapshot is a ErrorCode enum value
19053	ErrorCodeCannotExportSnapshot = "CannotExportSnapshot"
19054
19055	// ErrorCodeChapCredentialNotFound is a ErrorCode enum value
19056	ErrorCodeChapCredentialNotFound = "ChapCredentialNotFound"
19057
19058	// ErrorCodeDiskAlreadyAllocated is a ErrorCode enum value
19059	ErrorCodeDiskAlreadyAllocated = "DiskAlreadyAllocated"
19060
19061	// ErrorCodeDiskDoesNotExist is a ErrorCode enum value
19062	ErrorCodeDiskDoesNotExist = "DiskDoesNotExist"
19063
19064	// ErrorCodeDiskSizeGreaterThanVolumeMaxSize is a ErrorCode enum value
19065	ErrorCodeDiskSizeGreaterThanVolumeMaxSize = "DiskSizeGreaterThanVolumeMaxSize"
19066
19067	// ErrorCodeDiskSizeLessThanVolumeSize is a ErrorCode enum value
19068	ErrorCodeDiskSizeLessThanVolumeSize = "DiskSizeLessThanVolumeSize"
19069
19070	// ErrorCodeDiskSizeNotGigAligned is a ErrorCode enum value
19071	ErrorCodeDiskSizeNotGigAligned = "DiskSizeNotGigAligned"
19072
19073	// ErrorCodeDuplicateCertificateInfo is a ErrorCode enum value
19074	ErrorCodeDuplicateCertificateInfo = "DuplicateCertificateInfo"
19075
19076	// ErrorCodeDuplicateSchedule is a ErrorCode enum value
19077	ErrorCodeDuplicateSchedule = "DuplicateSchedule"
19078
19079	// ErrorCodeEndpointNotFound is a ErrorCode enum value
19080	ErrorCodeEndpointNotFound = "EndpointNotFound"
19081
19082	// ErrorCodeIamnotSupported is a ErrorCode enum value
19083	ErrorCodeIamnotSupported = "IAMNotSupported"
19084
19085	// ErrorCodeInitiatorInvalid is a ErrorCode enum value
19086	ErrorCodeInitiatorInvalid = "InitiatorInvalid"
19087
19088	// ErrorCodeInitiatorNotFound is a ErrorCode enum value
19089	ErrorCodeInitiatorNotFound = "InitiatorNotFound"
19090
19091	// ErrorCodeInternalError is a ErrorCode enum value
19092	ErrorCodeInternalError = "InternalError"
19093
19094	// ErrorCodeInvalidGateway is a ErrorCode enum value
19095	ErrorCodeInvalidGateway = "InvalidGateway"
19096
19097	// ErrorCodeInvalidEndpoint is a ErrorCode enum value
19098	ErrorCodeInvalidEndpoint = "InvalidEndpoint"
19099
19100	// ErrorCodeInvalidParameters is a ErrorCode enum value
19101	ErrorCodeInvalidParameters = "InvalidParameters"
19102
19103	// ErrorCodeInvalidSchedule is a ErrorCode enum value
19104	ErrorCodeInvalidSchedule = "InvalidSchedule"
19105
19106	// ErrorCodeLocalStorageLimitExceeded is a ErrorCode enum value
19107	ErrorCodeLocalStorageLimitExceeded = "LocalStorageLimitExceeded"
19108
19109	// ErrorCodeLunAlreadyAllocated is a ErrorCode enum value
19110	ErrorCodeLunAlreadyAllocated = "LunAlreadyAllocated "
19111
19112	// ErrorCodeLunInvalid is a ErrorCode enum value
19113	ErrorCodeLunInvalid = "LunInvalid"
19114
19115	// ErrorCodeJoinDomainInProgress is a ErrorCode enum value
19116	ErrorCodeJoinDomainInProgress = "JoinDomainInProgress"
19117
19118	// ErrorCodeMaximumContentLengthExceeded is a ErrorCode enum value
19119	ErrorCodeMaximumContentLengthExceeded = "MaximumContentLengthExceeded"
19120
19121	// ErrorCodeMaximumTapeCartridgeCountExceeded is a ErrorCode enum value
19122	ErrorCodeMaximumTapeCartridgeCountExceeded = "MaximumTapeCartridgeCountExceeded"
19123
19124	// ErrorCodeMaximumVolumeCountExceeded is a ErrorCode enum value
19125	ErrorCodeMaximumVolumeCountExceeded = "MaximumVolumeCountExceeded"
19126
19127	// ErrorCodeNetworkConfigurationChanged is a ErrorCode enum value
19128	ErrorCodeNetworkConfigurationChanged = "NetworkConfigurationChanged"
19129
19130	// ErrorCodeNoDisksAvailable is a ErrorCode enum value
19131	ErrorCodeNoDisksAvailable = "NoDisksAvailable"
19132
19133	// ErrorCodeNotImplemented is a ErrorCode enum value
19134	ErrorCodeNotImplemented = "NotImplemented"
19135
19136	// ErrorCodeNotSupported is a ErrorCode enum value
19137	ErrorCodeNotSupported = "NotSupported"
19138
19139	// ErrorCodeOperationAborted is a ErrorCode enum value
19140	ErrorCodeOperationAborted = "OperationAborted"
19141
19142	// ErrorCodeOutdatedGateway is a ErrorCode enum value
19143	ErrorCodeOutdatedGateway = "OutdatedGateway"
19144
19145	// ErrorCodeParametersNotImplemented is a ErrorCode enum value
19146	ErrorCodeParametersNotImplemented = "ParametersNotImplemented"
19147
19148	// ErrorCodeRegionInvalid is a ErrorCode enum value
19149	ErrorCodeRegionInvalid = "RegionInvalid"
19150
19151	// ErrorCodeRequestTimeout is a ErrorCode enum value
19152	ErrorCodeRequestTimeout = "RequestTimeout"
19153
19154	// ErrorCodeServiceUnavailable is a ErrorCode enum value
19155	ErrorCodeServiceUnavailable = "ServiceUnavailable"
19156
19157	// ErrorCodeSnapshotDeleted is a ErrorCode enum value
19158	ErrorCodeSnapshotDeleted = "SnapshotDeleted"
19159
19160	// ErrorCodeSnapshotIdInvalid is a ErrorCode enum value
19161	ErrorCodeSnapshotIdInvalid = "SnapshotIdInvalid"
19162
19163	// ErrorCodeSnapshotInProgress is a ErrorCode enum value
19164	ErrorCodeSnapshotInProgress = "SnapshotInProgress"
19165
19166	// ErrorCodeSnapshotNotFound is a ErrorCode enum value
19167	ErrorCodeSnapshotNotFound = "SnapshotNotFound"
19168
19169	// ErrorCodeSnapshotScheduleNotFound is a ErrorCode enum value
19170	ErrorCodeSnapshotScheduleNotFound = "SnapshotScheduleNotFound"
19171
19172	// ErrorCodeStagingAreaFull is a ErrorCode enum value
19173	ErrorCodeStagingAreaFull = "StagingAreaFull"
19174
19175	// ErrorCodeStorageFailure is a ErrorCode enum value
19176	ErrorCodeStorageFailure = "StorageFailure"
19177
19178	// ErrorCodeTapeCartridgeNotFound is a ErrorCode enum value
19179	ErrorCodeTapeCartridgeNotFound = "TapeCartridgeNotFound"
19180
19181	// ErrorCodeTargetAlreadyExists is a ErrorCode enum value
19182	ErrorCodeTargetAlreadyExists = "TargetAlreadyExists"
19183
19184	// ErrorCodeTargetInvalid is a ErrorCode enum value
19185	ErrorCodeTargetInvalid = "TargetInvalid"
19186
19187	// ErrorCodeTargetNotFound is a ErrorCode enum value
19188	ErrorCodeTargetNotFound = "TargetNotFound"
19189
19190	// ErrorCodeUnauthorizedOperation is a ErrorCode enum value
19191	ErrorCodeUnauthorizedOperation = "UnauthorizedOperation"
19192
19193	// ErrorCodeVolumeAlreadyExists is a ErrorCode enum value
19194	ErrorCodeVolumeAlreadyExists = "VolumeAlreadyExists"
19195
19196	// ErrorCodeVolumeIdInvalid is a ErrorCode enum value
19197	ErrorCodeVolumeIdInvalid = "VolumeIdInvalid"
19198
19199	// ErrorCodeVolumeInUse is a ErrorCode enum value
19200	ErrorCodeVolumeInUse = "VolumeInUse"
19201
19202	// ErrorCodeVolumeNotFound is a ErrorCode enum value
19203	ErrorCodeVolumeNotFound = "VolumeNotFound"
19204
19205	// ErrorCodeVolumeNotReady is a ErrorCode enum value
19206	ErrorCodeVolumeNotReady = "VolumeNotReady"
19207)
19208
19209// The type of the file share.
19210const (
19211	// FileShareTypeNfs is a FileShareType enum value
19212	FileShareTypeNfs = "NFS"
19213
19214	// FileShareTypeSmb is a FileShareType enum value
19215	FileShareTypeSmb = "SMB"
19216)
19217
19218const (
19219	// HostEnvironmentVmware is a HostEnvironment enum value
19220	HostEnvironmentVmware = "VMWARE"
19221
19222	// HostEnvironmentHyperV is a HostEnvironment enum value
19223	HostEnvironmentHyperV = "HYPER-V"
19224
19225	// HostEnvironmentEc2 is a HostEnvironment enum value
19226	HostEnvironmentEc2 = "EC2"
19227
19228	// HostEnvironmentKvm is a HostEnvironment enum value
19229	HostEnvironmentKvm = "KVM"
19230
19231	// HostEnvironmentOther is a HostEnvironment enum value
19232	HostEnvironmentOther = "OTHER"
19233)
19234
19235// A value that sets the access control list (ACL) permission for objects in
19236// the S3 bucket that a file gateway puts objects into. The default value is
19237// private.
19238const (
19239	// ObjectACLPrivate is a ObjectACL enum value
19240	ObjectACLPrivate = "private"
19241
19242	// ObjectACLPublicRead is a ObjectACL enum value
19243	ObjectACLPublicRead = "public-read"
19244
19245	// ObjectACLPublicReadWrite is a ObjectACL enum value
19246	ObjectACLPublicReadWrite = "public-read-write"
19247
19248	// ObjectACLAuthenticatedRead is a ObjectACL enum value
19249	ObjectACLAuthenticatedRead = "authenticated-read"
19250
19251	// ObjectACLBucketOwnerRead is a ObjectACL enum value
19252	ObjectACLBucketOwnerRead = "bucket-owner-read"
19253
19254	// ObjectACLBucketOwnerFullControl is a ObjectACL enum value
19255	ObjectACLBucketOwnerFullControl = "bucket-owner-full-control"
19256
19257	// ObjectACLAwsExecRead is a ObjectACL enum value
19258	ObjectACLAwsExecRead = "aws-exec-read"
19259)
19260
19261const (
19262	// SMBSecurityStrategyClientSpecified is a SMBSecurityStrategy enum value
19263	SMBSecurityStrategyClientSpecified = "ClientSpecified"
19264
19265	// SMBSecurityStrategyMandatorySigning is a SMBSecurityStrategy enum value
19266	SMBSecurityStrategyMandatorySigning = "MandatorySigning"
19267
19268	// SMBSecurityStrategyMandatoryEncryption is a SMBSecurityStrategy enum value
19269	SMBSecurityStrategyMandatoryEncryption = "MandatoryEncryption"
19270)
19271