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)
13
14const opActivateGateway = "ActivateGateway"
15
16// ActivateGatewayRequest generates a "aws/request.Request" representing the
17// client's request for the ActivateGateway operation. The "output" return
18// value will be populated with the request's response once the request completes
19// successfully.
20//
21// Use "Send" method on the returned Request to send the API call to the service.
22// the "output" return value is not valid until after Send returns without error.
23//
24// See ActivateGateway for more information on using the ActivateGateway
25// API call, and error handling.
26//
27// This method is useful when you want to inject custom logic or configuration
28// into the SDK's request lifecycle. Such as custom headers, or retry logic.
29//
30//
31//    // Example sending a request using the ActivateGatewayRequest method.
32//    req, resp := client.ActivateGatewayRequest(params)
33//
34//    err := req.Send()
35//    if err == nil { // resp is now filled
36//        fmt.Println(resp)
37//    }
38//
39// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ActivateGateway
40func (c *StorageGateway) ActivateGatewayRequest(input *ActivateGatewayInput) (req *request.Request, output *ActivateGatewayOutput) {
41	op := &request.Operation{
42		Name:       opActivateGateway,
43		HTTPMethod: "POST",
44		HTTPPath:   "/",
45	}
46
47	if input == nil {
48		input = &ActivateGatewayInput{}
49	}
50
51	output = &ActivateGatewayOutput{}
52	req = c.newRequest(op, input, output)
53	return
54}
55
56// ActivateGateway API operation for AWS Storage Gateway.
57//
58// Activates the gateway you previously deployed on your host. In the activation
59// process, you specify information such as the AWS Region that you want to
60// use for storing snapshots or tapes, the time zone for scheduled snapshots
61// the gateway snapshot schedule window, an activation key, and a name for your
62// gateway. The activation process also associates your gateway with your account;
63// for more information, see UpdateGatewayInformation.
64//
65// You must turn on the gateway VM before you can activate your gateway.
66//
67// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
68// with awserr.Error's Code and Message methods to get detailed information about
69// the error.
70//
71// See the AWS API reference guide for AWS Storage Gateway's
72// API operation ActivateGateway for usage and error information.
73//
74// Returned Error Codes:
75//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
76//   An exception occurred because an invalid gateway request was issued to the
77//   service. For more information, see the error and message fields.
78//
79//   * ErrCodeInternalServerError "InternalServerError"
80//   An internal server error has occurred during the request. For more information,
81//   see the error and message fields.
82//
83// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ActivateGateway
84func (c *StorageGateway) ActivateGateway(input *ActivateGatewayInput) (*ActivateGatewayOutput, error) {
85	req, out := c.ActivateGatewayRequest(input)
86	return out, req.Send()
87}
88
89// ActivateGatewayWithContext is the same as ActivateGateway with the addition of
90// the ability to pass a context and additional request options.
91//
92// See ActivateGateway for details on how to use this API operation.
93//
94// The context must be non-nil and will be used for request cancellation. If
95// the context is nil a panic will occur. In the future the SDK may create
96// sub-contexts for http.Requests. See https://golang.org/pkg/context/
97// for more information on using Contexts.
98func (c *StorageGateway) ActivateGatewayWithContext(ctx aws.Context, input *ActivateGatewayInput, opts ...request.Option) (*ActivateGatewayOutput, error) {
99	req, out := c.ActivateGatewayRequest(input)
100	req.SetContext(ctx)
101	req.ApplyOptions(opts...)
102	return out, req.Send()
103}
104
105const opAddCache = "AddCache"
106
107// AddCacheRequest generates a "aws/request.Request" representing the
108// client's request for the AddCache operation. The "output" return
109// value will be populated with the request's response once the request completes
110// successfully.
111//
112// Use "Send" method on the returned Request to send the API call to the service.
113// the "output" return value is not valid until after Send returns without error.
114//
115// See AddCache for more information on using the AddCache
116// API call, and error handling.
117//
118// This method is useful when you want to inject custom logic or configuration
119// into the SDK's request lifecycle. Such as custom headers, or retry logic.
120//
121//
122//    // Example sending a request using the AddCacheRequest method.
123//    req, resp := client.AddCacheRequest(params)
124//
125//    err := req.Send()
126//    if err == nil { // resp is now filled
127//        fmt.Println(resp)
128//    }
129//
130// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddCache
131func (c *StorageGateway) AddCacheRequest(input *AddCacheInput) (req *request.Request, output *AddCacheOutput) {
132	op := &request.Operation{
133		Name:       opAddCache,
134		HTTPMethod: "POST",
135		HTTPPath:   "/",
136	}
137
138	if input == nil {
139		input = &AddCacheInput{}
140	}
141
142	output = &AddCacheOutput{}
143	req = c.newRequest(op, input, output)
144	return
145}
146
147// AddCache API operation for AWS Storage Gateway.
148//
149// Configures one or more gateway local disks as cache for a gateway. This operation
150// is only supported in the cached volume, tape and file gateway type (see Storage
151// Gateway Concepts (https://docs.aws.amazon.com/storagegateway/latest/userguide/StorageGatewayConcepts.html)).
152//
153// In the request, you specify the gateway Amazon Resource Name (ARN) to which
154// you want to add cache, and one or more disk IDs that you want to configure
155// as cache.
156//
157// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
158// with awserr.Error's Code and Message methods to get detailed information about
159// the error.
160//
161// See the AWS API reference guide for AWS Storage Gateway's
162// API operation AddCache for usage and error information.
163//
164// Returned Error Codes:
165//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
166//   An exception occurred because an invalid gateway request was issued to the
167//   service. For more information, see the error and message fields.
168//
169//   * ErrCodeInternalServerError "InternalServerError"
170//   An internal server error has occurred during the request. For more information,
171//   see the error and message fields.
172//
173// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddCache
174func (c *StorageGateway) AddCache(input *AddCacheInput) (*AddCacheOutput, error) {
175	req, out := c.AddCacheRequest(input)
176	return out, req.Send()
177}
178
179// AddCacheWithContext is the same as AddCache with the addition of
180// the ability to pass a context and additional request options.
181//
182// See AddCache for details on how to use this API operation.
183//
184// The context must be non-nil and will be used for request cancellation. If
185// the context is nil a panic will occur. In the future the SDK may create
186// sub-contexts for http.Requests. See https://golang.org/pkg/context/
187// for more information on using Contexts.
188func (c *StorageGateway) AddCacheWithContext(ctx aws.Context, input *AddCacheInput, opts ...request.Option) (*AddCacheOutput, error) {
189	req, out := c.AddCacheRequest(input)
190	req.SetContext(ctx)
191	req.ApplyOptions(opts...)
192	return out, req.Send()
193}
194
195const opAddTagsToResource = "AddTagsToResource"
196
197// AddTagsToResourceRequest generates a "aws/request.Request" representing the
198// client's request for the AddTagsToResource operation. The "output" return
199// value will be populated with the request's response once the request completes
200// successfully.
201//
202// Use "Send" method on the returned Request to send the API call to the service.
203// the "output" return value is not valid until after Send returns without error.
204//
205// See AddTagsToResource for more information on using the AddTagsToResource
206// API call, and error handling.
207//
208// This method is useful when you want to inject custom logic or configuration
209// into the SDK's request lifecycle. Such as custom headers, or retry logic.
210//
211//
212//    // Example sending a request using the AddTagsToResourceRequest method.
213//    req, resp := client.AddTagsToResourceRequest(params)
214//
215//    err := req.Send()
216//    if err == nil { // resp is now filled
217//        fmt.Println(resp)
218//    }
219//
220// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddTagsToResource
221func (c *StorageGateway) AddTagsToResourceRequest(input *AddTagsToResourceInput) (req *request.Request, output *AddTagsToResourceOutput) {
222	op := &request.Operation{
223		Name:       opAddTagsToResource,
224		HTTPMethod: "POST",
225		HTTPPath:   "/",
226	}
227
228	if input == nil {
229		input = &AddTagsToResourceInput{}
230	}
231
232	output = &AddTagsToResourceOutput{}
233	req = c.newRequest(op, input, output)
234	return
235}
236
237// AddTagsToResource API operation for AWS Storage Gateway.
238//
239// Adds one or more tags to the specified resource. You use tags to add metadata
240// to resources, which you can use to categorize these resources. For example,
241// you can categorize resources by purpose, owner, environment, or team. Each
242// tag consists of a key and a value, which you define. You can add tags to
243// the following AWS Storage Gateway resources:
244//
245//    * Storage gateways of all types
246//
247//    * Storage volumes
248//
249//    * Virtual tapes
250//
251//    * NFS and SMB file shares
252//
253// You can create a maximum of 50 tags for each resource. Virtual tapes and
254// storage volumes that are recovered to a new gateway maintain their tags.
255//
256// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
257// with awserr.Error's Code and Message methods to get detailed information about
258// the error.
259//
260// See the AWS API reference guide for AWS Storage Gateway's
261// API operation AddTagsToResource for usage and error information.
262//
263// Returned Error Codes:
264//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
265//   An exception occurred because an invalid gateway request was issued to the
266//   service. For more information, see the error and message fields.
267//
268//   * ErrCodeInternalServerError "InternalServerError"
269//   An internal server error has occurred during the request. For more information,
270//   see the error and message fields.
271//
272// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddTagsToResource
273func (c *StorageGateway) AddTagsToResource(input *AddTagsToResourceInput) (*AddTagsToResourceOutput, error) {
274	req, out := c.AddTagsToResourceRequest(input)
275	return out, req.Send()
276}
277
278// AddTagsToResourceWithContext is the same as AddTagsToResource with the addition of
279// the ability to pass a context and additional request options.
280//
281// See AddTagsToResource for details on how to use this API operation.
282//
283// The context must be non-nil and will be used for request cancellation. If
284// the context is nil a panic will occur. In the future the SDK may create
285// sub-contexts for http.Requests. See https://golang.org/pkg/context/
286// for more information on using Contexts.
287func (c *StorageGateway) AddTagsToResourceWithContext(ctx aws.Context, input *AddTagsToResourceInput, opts ...request.Option) (*AddTagsToResourceOutput, error) {
288	req, out := c.AddTagsToResourceRequest(input)
289	req.SetContext(ctx)
290	req.ApplyOptions(opts...)
291	return out, req.Send()
292}
293
294const opAddUploadBuffer = "AddUploadBuffer"
295
296// AddUploadBufferRequest generates a "aws/request.Request" representing the
297// client's request for the AddUploadBuffer operation. The "output" return
298// value will be populated with the request's response once the request completes
299// successfully.
300//
301// Use "Send" method on the returned Request to send the API call to the service.
302// the "output" return value is not valid until after Send returns without error.
303//
304// See AddUploadBuffer for more information on using the AddUploadBuffer
305// API call, and error handling.
306//
307// This method is useful when you want to inject custom logic or configuration
308// into the SDK's request lifecycle. Such as custom headers, or retry logic.
309//
310//
311//    // Example sending a request using the AddUploadBufferRequest method.
312//    req, resp := client.AddUploadBufferRequest(params)
313//
314//    err := req.Send()
315//    if err == nil { // resp is now filled
316//        fmt.Println(resp)
317//    }
318//
319// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddUploadBuffer
320func (c *StorageGateway) AddUploadBufferRequest(input *AddUploadBufferInput) (req *request.Request, output *AddUploadBufferOutput) {
321	op := &request.Operation{
322		Name:       opAddUploadBuffer,
323		HTTPMethod: "POST",
324		HTTPPath:   "/",
325	}
326
327	if input == nil {
328		input = &AddUploadBufferInput{}
329	}
330
331	output = &AddUploadBufferOutput{}
332	req = c.newRequest(op, input, output)
333	return
334}
335
336// AddUploadBuffer API operation for AWS Storage Gateway.
337//
338// Configures one or more gateway local disks as upload buffer for a specified
339// gateway. This operation is supported for the stored volume, cached volume
340// and tape gateway types.
341//
342// In the request, you specify the gateway Amazon Resource Name (ARN) to which
343// you want to add upload buffer, and one or more disk IDs that you want to
344// configure as upload buffer.
345//
346// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
347// with awserr.Error's Code and Message methods to get detailed information about
348// the error.
349//
350// See the AWS API reference guide for AWS Storage Gateway's
351// API operation AddUploadBuffer for usage and error information.
352//
353// Returned Error Codes:
354//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
355//   An exception occurred because an invalid gateway request was issued to the
356//   service. For more information, see the error and message fields.
357//
358//   * ErrCodeInternalServerError "InternalServerError"
359//   An internal server error has occurred during the request. For more information,
360//   see the error and message fields.
361//
362// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddUploadBuffer
363func (c *StorageGateway) AddUploadBuffer(input *AddUploadBufferInput) (*AddUploadBufferOutput, error) {
364	req, out := c.AddUploadBufferRequest(input)
365	return out, req.Send()
366}
367
368// AddUploadBufferWithContext is the same as AddUploadBuffer with the addition of
369// the ability to pass a context and additional request options.
370//
371// See AddUploadBuffer for details on how to use this API operation.
372//
373// The context must be non-nil and will be used for request cancellation. If
374// the context is nil a panic will occur. In the future the SDK may create
375// sub-contexts for http.Requests. See https://golang.org/pkg/context/
376// for more information on using Contexts.
377func (c *StorageGateway) AddUploadBufferWithContext(ctx aws.Context, input *AddUploadBufferInput, opts ...request.Option) (*AddUploadBufferOutput, error) {
378	req, out := c.AddUploadBufferRequest(input)
379	req.SetContext(ctx)
380	req.ApplyOptions(opts...)
381	return out, req.Send()
382}
383
384const opAddWorkingStorage = "AddWorkingStorage"
385
386// AddWorkingStorageRequest generates a "aws/request.Request" representing the
387// client's request for the AddWorkingStorage operation. The "output" return
388// value will be populated with the request's response once the request completes
389// successfully.
390//
391// Use "Send" method on the returned Request to send the API call to the service.
392// the "output" return value is not valid until after Send returns without error.
393//
394// See AddWorkingStorage for more information on using the AddWorkingStorage
395// API call, and error handling.
396//
397// This method is useful when you want to inject custom logic or configuration
398// into the SDK's request lifecycle. Such as custom headers, or retry logic.
399//
400//
401//    // Example sending a request using the AddWorkingStorageRequest method.
402//    req, resp := client.AddWorkingStorageRequest(params)
403//
404//    err := req.Send()
405//    if err == nil { // resp is now filled
406//        fmt.Println(resp)
407//    }
408//
409// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddWorkingStorage
410func (c *StorageGateway) AddWorkingStorageRequest(input *AddWorkingStorageInput) (req *request.Request, output *AddWorkingStorageOutput) {
411	op := &request.Operation{
412		Name:       opAddWorkingStorage,
413		HTTPMethod: "POST",
414		HTTPPath:   "/",
415	}
416
417	if input == nil {
418		input = &AddWorkingStorageInput{}
419	}
420
421	output = &AddWorkingStorageOutput{}
422	req = c.newRequest(op, input, output)
423	return
424}
425
426// AddWorkingStorage API operation for AWS Storage Gateway.
427//
428// Configures one or more gateway local disks as working storage for a gateway.
429// This operation is only supported in the stored volume gateway type. This
430// operation is deprecated in cached volume API version 20120630. Use AddUploadBuffer
431// instead.
432//
433// Working storage is also referred to as upload buffer. You can also use the
434// AddUploadBuffer operation to add upload buffer to a stored volume gateway.
435//
436// In the request, you specify the gateway Amazon Resource Name (ARN) to which
437// you want to add working storage, and one or more disk IDs that you want to
438// configure as working storage.
439//
440// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
441// with awserr.Error's Code and Message methods to get detailed information about
442// the error.
443//
444// See the AWS API reference guide for AWS Storage Gateway's
445// API operation AddWorkingStorage for usage and error information.
446//
447// Returned Error Codes:
448//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
449//   An exception occurred because an invalid gateway request was issued to the
450//   service. For more information, see the error and message fields.
451//
452//   * ErrCodeInternalServerError "InternalServerError"
453//   An internal server error has occurred during the request. For more information,
454//   see the error and message fields.
455//
456// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AddWorkingStorage
457func (c *StorageGateway) AddWorkingStorage(input *AddWorkingStorageInput) (*AddWorkingStorageOutput, error) {
458	req, out := c.AddWorkingStorageRequest(input)
459	return out, req.Send()
460}
461
462// AddWorkingStorageWithContext is the same as AddWorkingStorage with the addition of
463// the ability to pass a context and additional request options.
464//
465// See AddWorkingStorage for details on how to use this API operation.
466//
467// The context must be non-nil and will be used for request cancellation. If
468// the context is nil a panic will occur. In the future the SDK may create
469// sub-contexts for http.Requests. See https://golang.org/pkg/context/
470// for more information on using Contexts.
471func (c *StorageGateway) AddWorkingStorageWithContext(ctx aws.Context, input *AddWorkingStorageInput, opts ...request.Option) (*AddWorkingStorageOutput, error) {
472	req, out := c.AddWorkingStorageRequest(input)
473	req.SetContext(ctx)
474	req.ApplyOptions(opts...)
475	return out, req.Send()
476}
477
478const opAssignTapePool = "AssignTapePool"
479
480// AssignTapePoolRequest generates a "aws/request.Request" representing the
481// client's request for the AssignTapePool operation. The "output" return
482// value will be populated with the request's response once the request completes
483// successfully.
484//
485// Use "Send" method on the returned Request to send the API call to the service.
486// the "output" return value is not valid until after Send returns without error.
487//
488// See AssignTapePool for more information on using the AssignTapePool
489// API call, and error handling.
490//
491// This method is useful when you want to inject custom logic or configuration
492// into the SDK's request lifecycle. Such as custom headers, or retry logic.
493//
494//
495//    // Example sending a request using the AssignTapePoolRequest method.
496//    req, resp := client.AssignTapePoolRequest(params)
497//
498//    err := req.Send()
499//    if err == nil { // resp is now filled
500//        fmt.Println(resp)
501//    }
502//
503// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AssignTapePool
504func (c *StorageGateway) AssignTapePoolRequest(input *AssignTapePoolInput) (req *request.Request, output *AssignTapePoolOutput) {
505	op := &request.Operation{
506		Name:       opAssignTapePool,
507		HTTPMethod: "POST",
508		HTTPPath:   "/",
509	}
510
511	if input == nil {
512		input = &AssignTapePoolInput{}
513	}
514
515	output = &AssignTapePoolOutput{}
516	req = c.newRequest(op, input, output)
517	return
518}
519
520// AssignTapePool API operation for AWS Storage Gateway.
521//
522// Assigns a tape to a tape pool for archiving. The tape assigned to a pool
523// is archived in the S3 storage class that is associated with the pool. When
524// you use your backup application to eject the tape, the tape is archived directly
525// into the S3 storage class (Glacier or Deep Archive) that corresponds to the
526// pool.
527//
528// Valid values: "GLACIER", "DEEP_ARCHIVE"
529//
530// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
531// with awserr.Error's Code and Message methods to get detailed information about
532// the error.
533//
534// See the AWS API reference guide for AWS Storage Gateway's
535// API operation AssignTapePool for usage and error information.
536//
537// Returned Error Codes:
538//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
539//   An exception occurred because an invalid gateway request was issued to the
540//   service. For more information, see the error and message fields.
541//
542//   * ErrCodeInternalServerError "InternalServerError"
543//   An internal server error has occurred during the request. For more information,
544//   see the error and message fields.
545//
546// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AssignTapePool
547func (c *StorageGateway) AssignTapePool(input *AssignTapePoolInput) (*AssignTapePoolOutput, error) {
548	req, out := c.AssignTapePoolRequest(input)
549	return out, req.Send()
550}
551
552// AssignTapePoolWithContext is the same as AssignTapePool with the addition of
553// the ability to pass a context and additional request options.
554//
555// See AssignTapePool for details on how to use this API operation.
556//
557// The context must be non-nil and will be used for request cancellation. If
558// the context is nil a panic will occur. In the future the SDK may create
559// sub-contexts for http.Requests. See https://golang.org/pkg/context/
560// for more information on using Contexts.
561func (c *StorageGateway) AssignTapePoolWithContext(ctx aws.Context, input *AssignTapePoolInput, opts ...request.Option) (*AssignTapePoolOutput, error) {
562	req, out := c.AssignTapePoolRequest(input)
563	req.SetContext(ctx)
564	req.ApplyOptions(opts...)
565	return out, req.Send()
566}
567
568const opAttachVolume = "AttachVolume"
569
570// AttachVolumeRequest generates a "aws/request.Request" representing the
571// client's request for the AttachVolume operation. The "output" return
572// value will be populated with the request's response once the request completes
573// successfully.
574//
575// Use "Send" method on the returned Request to send the API call to the service.
576// the "output" return value is not valid until after Send returns without error.
577//
578// See AttachVolume for more information on using the AttachVolume
579// API call, and error handling.
580//
581// This method is useful when you want to inject custom logic or configuration
582// into the SDK's request lifecycle. Such as custom headers, or retry logic.
583//
584//
585//    // Example sending a request using the AttachVolumeRequest method.
586//    req, resp := client.AttachVolumeRequest(params)
587//
588//    err := req.Send()
589//    if err == nil { // resp is now filled
590//        fmt.Println(resp)
591//    }
592//
593// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AttachVolume
594func (c *StorageGateway) AttachVolumeRequest(input *AttachVolumeInput) (req *request.Request, output *AttachVolumeOutput) {
595	op := &request.Operation{
596		Name:       opAttachVolume,
597		HTTPMethod: "POST",
598		HTTPPath:   "/",
599	}
600
601	if input == nil {
602		input = &AttachVolumeInput{}
603	}
604
605	output = &AttachVolumeOutput{}
606	req = c.newRequest(op, input, output)
607	return
608}
609
610// AttachVolume API operation for AWS Storage Gateway.
611//
612// Connects a volume to an iSCSI connection and then attaches the volume to
613// the specified gateway. Detaching and attaching a volume enables you to recover
614// your data from one gateway to a different gateway without creating a snapshot.
615// It also makes it easier to move your volumes from an on-premises gateway
616// to a gateway hosted on an Amazon EC2 instance.
617//
618// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
619// with awserr.Error's Code and Message methods to get detailed information about
620// the error.
621//
622// See the AWS API reference guide for AWS Storage Gateway's
623// API operation AttachVolume for usage and error information.
624//
625// Returned Error Codes:
626//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
627//   An exception occurred because an invalid gateway request was issued to the
628//   service. For more information, see the error and message fields.
629//
630//   * ErrCodeInternalServerError "InternalServerError"
631//   An internal server error has occurred during the request. For more information,
632//   see the error and message fields.
633//
634// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/AttachVolume
635func (c *StorageGateway) AttachVolume(input *AttachVolumeInput) (*AttachVolumeOutput, error) {
636	req, out := c.AttachVolumeRequest(input)
637	return out, req.Send()
638}
639
640// AttachVolumeWithContext is the same as AttachVolume with the addition of
641// the ability to pass a context and additional request options.
642//
643// See AttachVolume for details on how to use this API operation.
644//
645// The context must be non-nil and will be used for request cancellation. If
646// the context is nil a panic will occur. In the future the SDK may create
647// sub-contexts for http.Requests. See https://golang.org/pkg/context/
648// for more information on using Contexts.
649func (c *StorageGateway) AttachVolumeWithContext(ctx aws.Context, input *AttachVolumeInput, opts ...request.Option) (*AttachVolumeOutput, error) {
650	req, out := c.AttachVolumeRequest(input)
651	req.SetContext(ctx)
652	req.ApplyOptions(opts...)
653	return out, req.Send()
654}
655
656const opCancelArchival = "CancelArchival"
657
658// CancelArchivalRequest generates a "aws/request.Request" representing the
659// client's request for the CancelArchival operation. The "output" return
660// value will be populated with the request's response once the request completes
661// successfully.
662//
663// Use "Send" method on the returned Request to send the API call to the service.
664// the "output" return value is not valid until after Send returns without error.
665//
666// See CancelArchival for more information on using the CancelArchival
667// API call, and error handling.
668//
669// This method is useful when you want to inject custom logic or configuration
670// into the SDK's request lifecycle. Such as custom headers, or retry logic.
671//
672//
673//    // Example sending a request using the CancelArchivalRequest method.
674//    req, resp := client.CancelArchivalRequest(params)
675//
676//    err := req.Send()
677//    if err == nil { // resp is now filled
678//        fmt.Println(resp)
679//    }
680//
681// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelArchival
682func (c *StorageGateway) CancelArchivalRequest(input *CancelArchivalInput) (req *request.Request, output *CancelArchivalOutput) {
683	op := &request.Operation{
684		Name:       opCancelArchival,
685		HTTPMethod: "POST",
686		HTTPPath:   "/",
687	}
688
689	if input == nil {
690		input = &CancelArchivalInput{}
691	}
692
693	output = &CancelArchivalOutput{}
694	req = c.newRequest(op, input, output)
695	return
696}
697
698// CancelArchival API operation for AWS Storage Gateway.
699//
700// Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after
701// the archiving process is initiated. This operation is only supported in the
702// tape gateway type.
703//
704// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
705// with awserr.Error's Code and Message methods to get detailed information about
706// the error.
707//
708// See the AWS API reference guide for AWS Storage Gateway's
709// API operation CancelArchival for usage and error information.
710//
711// Returned Error Codes:
712//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
713//   An exception occurred because an invalid gateway request was issued to the
714//   service. For more information, see the error and message fields.
715//
716//   * ErrCodeInternalServerError "InternalServerError"
717//   An internal server error has occurred during the request. For more information,
718//   see the error and message fields.
719//
720// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelArchival
721func (c *StorageGateway) CancelArchival(input *CancelArchivalInput) (*CancelArchivalOutput, error) {
722	req, out := c.CancelArchivalRequest(input)
723	return out, req.Send()
724}
725
726// CancelArchivalWithContext is the same as CancelArchival with the addition of
727// the ability to pass a context and additional request options.
728//
729// See CancelArchival for details on how to use this API operation.
730//
731// The context must be non-nil and will be used for request cancellation. If
732// the context is nil a panic will occur. In the future the SDK may create
733// sub-contexts for http.Requests. See https://golang.org/pkg/context/
734// for more information on using Contexts.
735func (c *StorageGateway) CancelArchivalWithContext(ctx aws.Context, input *CancelArchivalInput, opts ...request.Option) (*CancelArchivalOutput, error) {
736	req, out := c.CancelArchivalRequest(input)
737	req.SetContext(ctx)
738	req.ApplyOptions(opts...)
739	return out, req.Send()
740}
741
742const opCancelRetrieval = "CancelRetrieval"
743
744// CancelRetrievalRequest generates a "aws/request.Request" representing the
745// client's request for the CancelRetrieval operation. The "output" return
746// value will be populated with the request's response once the request completes
747// successfully.
748//
749// Use "Send" method on the returned Request to send the API call to the service.
750// the "output" return value is not valid until after Send returns without error.
751//
752// See CancelRetrieval for more information on using the CancelRetrieval
753// API call, and error handling.
754//
755// This method is useful when you want to inject custom logic or configuration
756// into the SDK's request lifecycle. Such as custom headers, or retry logic.
757//
758//
759//    // Example sending a request using the CancelRetrievalRequest method.
760//    req, resp := client.CancelRetrievalRequest(params)
761//
762//    err := req.Send()
763//    if err == nil { // resp is now filled
764//        fmt.Println(resp)
765//    }
766//
767// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelRetrieval
768func (c *StorageGateway) CancelRetrievalRequest(input *CancelRetrievalInput) (req *request.Request, output *CancelRetrievalOutput) {
769	op := &request.Operation{
770		Name:       opCancelRetrieval,
771		HTTPMethod: "POST",
772		HTTPPath:   "/",
773	}
774
775	if input == nil {
776		input = &CancelRetrievalInput{}
777	}
778
779	output = &CancelRetrievalOutput{}
780	req = c.newRequest(op, input, output)
781	return
782}
783
784// CancelRetrieval API operation for AWS Storage Gateway.
785//
786// Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to
787// a gateway after the retrieval process is initiated. The virtual tape is returned
788// to the VTS. This operation is only supported in the tape gateway type.
789//
790// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
791// with awserr.Error's Code and Message methods to get detailed information about
792// the error.
793//
794// See the AWS API reference guide for AWS Storage Gateway's
795// API operation CancelRetrieval for usage and error information.
796//
797// Returned Error Codes:
798//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
799//   An exception occurred because an invalid gateway request was issued to the
800//   service. For more information, see the error and message fields.
801//
802//   * ErrCodeInternalServerError "InternalServerError"
803//   An internal server error has occurred during the request. For more information,
804//   see the error and message fields.
805//
806// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CancelRetrieval
807func (c *StorageGateway) CancelRetrieval(input *CancelRetrievalInput) (*CancelRetrievalOutput, error) {
808	req, out := c.CancelRetrievalRequest(input)
809	return out, req.Send()
810}
811
812// CancelRetrievalWithContext is the same as CancelRetrieval with the addition of
813// the ability to pass a context and additional request options.
814//
815// See CancelRetrieval for details on how to use this API operation.
816//
817// The context must be non-nil and will be used for request cancellation. If
818// the context is nil a panic will occur. In the future the SDK may create
819// sub-contexts for http.Requests. See https://golang.org/pkg/context/
820// for more information on using Contexts.
821func (c *StorageGateway) CancelRetrievalWithContext(ctx aws.Context, input *CancelRetrievalInput, opts ...request.Option) (*CancelRetrievalOutput, error) {
822	req, out := c.CancelRetrievalRequest(input)
823	req.SetContext(ctx)
824	req.ApplyOptions(opts...)
825	return out, req.Send()
826}
827
828const opCreateCachediSCSIVolume = "CreateCachediSCSIVolume"
829
830// CreateCachediSCSIVolumeRequest generates a "aws/request.Request" representing the
831// client's request for the CreateCachediSCSIVolume operation. The "output" return
832// value will be populated with the request's response once the request completes
833// successfully.
834//
835// Use "Send" method on the returned Request to send the API call to the service.
836// the "output" return value is not valid until after Send returns without error.
837//
838// See CreateCachediSCSIVolume for more information on using the CreateCachediSCSIVolume
839// API call, and error handling.
840//
841// This method is useful when you want to inject custom logic or configuration
842// into the SDK's request lifecycle. Such as custom headers, or retry logic.
843//
844//
845//    // Example sending a request using the CreateCachediSCSIVolumeRequest method.
846//    req, resp := client.CreateCachediSCSIVolumeRequest(params)
847//
848//    err := req.Send()
849//    if err == nil { // resp is now filled
850//        fmt.Println(resp)
851//    }
852//
853// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateCachediSCSIVolume
854func (c *StorageGateway) CreateCachediSCSIVolumeRequest(input *CreateCachediSCSIVolumeInput) (req *request.Request, output *CreateCachediSCSIVolumeOutput) {
855	op := &request.Operation{
856		Name:       opCreateCachediSCSIVolume,
857		HTTPMethod: "POST",
858		HTTPPath:   "/",
859	}
860
861	if input == nil {
862		input = &CreateCachediSCSIVolumeInput{}
863	}
864
865	output = &CreateCachediSCSIVolumeOutput{}
866	req = c.newRequest(op, input, output)
867	return
868}
869
870// CreateCachediSCSIVolume API operation for AWS Storage Gateway.
871//
872// Creates a cached volume on a specified cached volume gateway. This operation
873// is only supported in the cached volume gateway type.
874//
875// Cache storage must be allocated to the gateway before you can create a cached
876// volume. Use the AddCache operation to add cache storage to a gateway.
877//
878// In the request, you must specify the gateway, size of the volume in bytes,
879// the iSCSI target name, an IP address on which to expose the target, and a
880// unique client token. In response, the gateway creates the volume and returns
881// information about it. This information includes the volume Amazon Resource
882// Name (ARN), its size, and the iSCSI target ARN that initiators can use to
883// connect to the volume target.
884//
885// Optionally, you can provide the ARN for an existing volume as the SourceVolumeARN
886// for this cached volume, which creates an exact copy of the existing volume’s
887// latest recovery point. The VolumeSizeInBytes value must be equal to or larger
888// than the size of the copied volume, in bytes.
889//
890// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
891// with awserr.Error's Code and Message methods to get detailed information about
892// the error.
893//
894// See the AWS API reference guide for AWS Storage Gateway's
895// API operation CreateCachediSCSIVolume for usage and error information.
896//
897// Returned Error Codes:
898//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
899//   An exception occurred because an invalid gateway request was issued to the
900//   service. For more information, see the error and message fields.
901//
902//   * ErrCodeInternalServerError "InternalServerError"
903//   An internal server error has occurred during the request. For more information,
904//   see the error and message fields.
905//
906// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateCachediSCSIVolume
907func (c *StorageGateway) CreateCachediSCSIVolume(input *CreateCachediSCSIVolumeInput) (*CreateCachediSCSIVolumeOutput, error) {
908	req, out := c.CreateCachediSCSIVolumeRequest(input)
909	return out, req.Send()
910}
911
912// CreateCachediSCSIVolumeWithContext is the same as CreateCachediSCSIVolume with the addition of
913// the ability to pass a context and additional request options.
914//
915// See CreateCachediSCSIVolume for details on how to use this API operation.
916//
917// The context must be non-nil and will be used for request cancellation. If
918// the context is nil a panic will occur. In the future the SDK may create
919// sub-contexts for http.Requests. See https://golang.org/pkg/context/
920// for more information on using Contexts.
921func (c *StorageGateway) CreateCachediSCSIVolumeWithContext(ctx aws.Context, input *CreateCachediSCSIVolumeInput, opts ...request.Option) (*CreateCachediSCSIVolumeOutput, error) {
922	req, out := c.CreateCachediSCSIVolumeRequest(input)
923	req.SetContext(ctx)
924	req.ApplyOptions(opts...)
925	return out, req.Send()
926}
927
928const opCreateNFSFileShare = "CreateNFSFileShare"
929
930// CreateNFSFileShareRequest generates a "aws/request.Request" representing the
931// client's request for the CreateNFSFileShare operation. The "output" return
932// value will be populated with the request's response once the request completes
933// successfully.
934//
935// Use "Send" method on the returned Request to send the API call to the service.
936// the "output" return value is not valid until after Send returns without error.
937//
938// See CreateNFSFileShare for more information on using the CreateNFSFileShare
939// API call, and error handling.
940//
941// This method is useful when you want to inject custom logic or configuration
942// into the SDK's request lifecycle. Such as custom headers, or retry logic.
943//
944//
945//    // Example sending a request using the CreateNFSFileShareRequest method.
946//    req, resp := client.CreateNFSFileShareRequest(params)
947//
948//    err := req.Send()
949//    if err == nil { // resp is now filled
950//        fmt.Println(resp)
951//    }
952//
953// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateNFSFileShare
954func (c *StorageGateway) CreateNFSFileShareRequest(input *CreateNFSFileShareInput) (req *request.Request, output *CreateNFSFileShareOutput) {
955	op := &request.Operation{
956		Name:       opCreateNFSFileShare,
957		HTTPMethod: "POST",
958		HTTPPath:   "/",
959	}
960
961	if input == nil {
962		input = &CreateNFSFileShareInput{}
963	}
964
965	output = &CreateNFSFileShareOutput{}
966	req = c.newRequest(op, input, output)
967	return
968}
969
970// CreateNFSFileShare API operation for AWS Storage Gateway.
971//
972// Creates a Network File System (NFS) file share on an existing file gateway.
973// In Storage Gateway, a file share is a file system mount point backed by Amazon
974// S3 cloud storage. Storage Gateway exposes file shares using a NFS interface.
975// This operation is only supported for file gateways.
976//
977// File gateway requires AWS Security Token Service (AWS STS) to be activated
978// to enable you create a file share. Make sure AWS STS is activated in the
979// AWS Region you are creating your file gateway in. If AWS STS is not activated
980// in the AWS Region, activate it. For information about how to activate AWS
981// STS, see Activating and Deactivating AWS STS in an AWS Region in the AWS
982// Identity and Access Management User Guide.
983//
984// File gateway does not support creating hard or symbolic links on a file share.
985//
986// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
987// with awserr.Error's Code and Message methods to get detailed information about
988// the error.
989//
990// See the AWS API reference guide for AWS Storage Gateway's
991// API operation CreateNFSFileShare for usage and error information.
992//
993// Returned Error Codes:
994//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
995//   An exception occurred because an invalid gateway request was issued to the
996//   service. For more information, see the error and message fields.
997//
998//   * ErrCodeInternalServerError "InternalServerError"
999//   An internal server error has occurred during the request. For more information,
1000//   see the error and message fields.
1001//
1002// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateNFSFileShare
1003func (c *StorageGateway) CreateNFSFileShare(input *CreateNFSFileShareInput) (*CreateNFSFileShareOutput, error) {
1004	req, out := c.CreateNFSFileShareRequest(input)
1005	return out, req.Send()
1006}
1007
1008// CreateNFSFileShareWithContext is the same as CreateNFSFileShare with the addition of
1009// the ability to pass a context and additional request options.
1010//
1011// See CreateNFSFileShare for details on how to use this API operation.
1012//
1013// The context must be non-nil and will be used for request cancellation. If
1014// the context is nil a panic will occur. In the future the SDK may create
1015// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1016// for more information on using Contexts.
1017func (c *StorageGateway) CreateNFSFileShareWithContext(ctx aws.Context, input *CreateNFSFileShareInput, opts ...request.Option) (*CreateNFSFileShareOutput, error) {
1018	req, out := c.CreateNFSFileShareRequest(input)
1019	req.SetContext(ctx)
1020	req.ApplyOptions(opts...)
1021	return out, req.Send()
1022}
1023
1024const opCreateSMBFileShare = "CreateSMBFileShare"
1025
1026// CreateSMBFileShareRequest generates a "aws/request.Request" representing the
1027// client's request for the CreateSMBFileShare operation. The "output" return
1028// value will be populated with the request's response once the request completes
1029// successfully.
1030//
1031// Use "Send" method on the returned Request to send the API call to the service.
1032// the "output" return value is not valid until after Send returns without error.
1033//
1034// See CreateSMBFileShare for more information on using the CreateSMBFileShare
1035// API call, and error handling.
1036//
1037// This method is useful when you want to inject custom logic or configuration
1038// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1039//
1040//
1041//    // Example sending a request using the CreateSMBFileShareRequest method.
1042//    req, resp := client.CreateSMBFileShareRequest(params)
1043//
1044//    err := req.Send()
1045//    if err == nil { // resp is now filled
1046//        fmt.Println(resp)
1047//    }
1048//
1049// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSMBFileShare
1050func (c *StorageGateway) CreateSMBFileShareRequest(input *CreateSMBFileShareInput) (req *request.Request, output *CreateSMBFileShareOutput) {
1051	op := &request.Operation{
1052		Name:       opCreateSMBFileShare,
1053		HTTPMethod: "POST",
1054		HTTPPath:   "/",
1055	}
1056
1057	if input == nil {
1058		input = &CreateSMBFileShareInput{}
1059	}
1060
1061	output = &CreateSMBFileShareOutput{}
1062	req = c.newRequest(op, input, output)
1063	return
1064}
1065
1066// CreateSMBFileShare API operation for AWS Storage Gateway.
1067//
1068// Creates a Server Message Block (SMB) file share on an existing file gateway.
1069// In Storage Gateway, a file share is a file system mount point backed by Amazon
1070// S3 cloud storage. Storage Gateway expose file shares using a SMB interface.
1071// This operation is only supported for file gateways.
1072//
1073// File gateways require AWS Security Token Service (AWS STS) to be activated
1074// to enable you to create a file share. Make sure that AWS STS is activated
1075// in the AWS Region you are creating your file gateway in. If AWS STS is not
1076// activated in this AWS Region, activate it. For information about how to activate
1077// 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)
1078// in the AWS Identity and Access Management User Guide.
1079//
1080// File gateways don't support creating hard or symbolic links on a file share.
1081//
1082// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1083// with awserr.Error's Code and Message methods to get detailed information about
1084// the error.
1085//
1086// See the AWS API reference guide for AWS Storage Gateway's
1087// API operation CreateSMBFileShare for usage and error information.
1088//
1089// Returned Error Codes:
1090//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
1091//   An exception occurred because an invalid gateway request was issued to the
1092//   service. For more information, see the error and message fields.
1093//
1094//   * ErrCodeInternalServerError "InternalServerError"
1095//   An internal server error has occurred during the request. For more information,
1096//   see the error and message fields.
1097//
1098// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSMBFileShare
1099func (c *StorageGateway) CreateSMBFileShare(input *CreateSMBFileShareInput) (*CreateSMBFileShareOutput, error) {
1100	req, out := c.CreateSMBFileShareRequest(input)
1101	return out, req.Send()
1102}
1103
1104// CreateSMBFileShareWithContext is the same as CreateSMBFileShare with the addition of
1105// the ability to pass a context and additional request options.
1106//
1107// See CreateSMBFileShare for details on how to use this API operation.
1108//
1109// The context must be non-nil and will be used for request cancellation. If
1110// the context is nil a panic will occur. In the future the SDK may create
1111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1112// for more information on using Contexts.
1113func (c *StorageGateway) CreateSMBFileShareWithContext(ctx aws.Context, input *CreateSMBFileShareInput, opts ...request.Option) (*CreateSMBFileShareOutput, error) {
1114	req, out := c.CreateSMBFileShareRequest(input)
1115	req.SetContext(ctx)
1116	req.ApplyOptions(opts...)
1117	return out, req.Send()
1118}
1119
1120const opCreateSnapshot = "CreateSnapshot"
1121
1122// CreateSnapshotRequest generates a "aws/request.Request" representing the
1123// client's request for the CreateSnapshot operation. The "output" return
1124// value will be populated with the request's response once the request completes
1125// successfully.
1126//
1127// Use "Send" method on the returned Request to send the API call to the service.
1128// the "output" return value is not valid until after Send returns without error.
1129//
1130// See CreateSnapshot for more information on using the CreateSnapshot
1131// API call, and error handling.
1132//
1133// This method is useful when you want to inject custom logic or configuration
1134// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1135//
1136//
1137//    // Example sending a request using the CreateSnapshotRequest method.
1138//    req, resp := client.CreateSnapshotRequest(params)
1139//
1140//    err := req.Send()
1141//    if err == nil { // resp is now filled
1142//        fmt.Println(resp)
1143//    }
1144//
1145// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshot
1146func (c *StorageGateway) CreateSnapshotRequest(input *CreateSnapshotInput) (req *request.Request, output *CreateSnapshotOutput) {
1147	op := &request.Operation{
1148		Name:       opCreateSnapshot,
1149		HTTPMethod: "POST",
1150		HTTPPath:   "/",
1151	}
1152
1153	if input == nil {
1154		input = &CreateSnapshotInput{}
1155	}
1156
1157	output = &CreateSnapshotOutput{}
1158	req = c.newRequest(op, input, output)
1159	return
1160}
1161
1162// CreateSnapshot API operation for AWS Storage Gateway.
1163//
1164// Initiates a snapshot of a volume.
1165//
1166// AWS Storage Gateway provides the ability to back up point-in-time snapshots
1167// of your data to Amazon Simple Storage (S3) for durable off-site recovery,
1168// as well as import the data to an Amazon Elastic Block Store (EBS) volume
1169// in Amazon Elastic Compute Cloud (EC2). You can take snapshots of your gateway
1170// volume on a scheduled or ad hoc basis. This API enables you to take ad-hoc
1171// snapshot. For more information, see Editing a Snapshot Schedule (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#SchedulingSnapshot).
1172//
1173// In the CreateSnapshot request you identify the volume by providing its Amazon
1174// Resource Name (ARN). You must also provide description for the snapshot.
1175// When AWS Storage Gateway takes the snapshot of specified volume, the snapshot
1176// and description appears in the AWS Storage Gateway Console. In response,
1177// AWS Storage Gateway returns you a snapshot ID. You can use this snapshot
1178// ID to check the snapshot progress or later use it when you want to create
1179// a volume from a snapshot. This operation is only supported in stored and
1180// cached volume gateway type.
1181//
1182// To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
1183// see DescribeSnapshots or DeleteSnapshot in the EC2 API reference (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Operations.html).
1184//
1185// Volume and snapshot IDs are changing to a longer length ID format. For more
1186// information, see the important note on the Welcome (https://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html)
1187// page.
1188//
1189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1190// with awserr.Error's Code and Message methods to get detailed information about
1191// the error.
1192//
1193// See the AWS API reference guide for AWS Storage Gateway's
1194// API operation CreateSnapshot for usage and error information.
1195//
1196// Returned Error Codes:
1197//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
1198//   An exception occurred because an invalid gateway request was issued to the
1199//   service. For more information, see the error and message fields.
1200//
1201//   * ErrCodeInternalServerError "InternalServerError"
1202//   An internal server error has occurred during the request. For more information,
1203//   see the error and message fields.
1204//
1205//   * ErrCodeServiceUnavailableError "ServiceUnavailableError"
1206//   An internal server error has occurred because the service is unavailable.
1207//   For more information, see the error and message fields.
1208//
1209// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshot
1210func (c *StorageGateway) CreateSnapshot(input *CreateSnapshotInput) (*CreateSnapshotOutput, error) {
1211	req, out := c.CreateSnapshotRequest(input)
1212	return out, req.Send()
1213}
1214
1215// CreateSnapshotWithContext is the same as CreateSnapshot with the addition of
1216// the ability to pass a context and additional request options.
1217//
1218// See CreateSnapshot for details on how to use this API operation.
1219//
1220// The context must be non-nil and will be used for request cancellation. If
1221// the context is nil a panic will occur. In the future the SDK may create
1222// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1223// for more information on using Contexts.
1224func (c *StorageGateway) CreateSnapshotWithContext(ctx aws.Context, input *CreateSnapshotInput, opts ...request.Option) (*CreateSnapshotOutput, error) {
1225	req, out := c.CreateSnapshotRequest(input)
1226	req.SetContext(ctx)
1227	req.ApplyOptions(opts...)
1228	return out, req.Send()
1229}
1230
1231const opCreateSnapshotFromVolumeRecoveryPoint = "CreateSnapshotFromVolumeRecoveryPoint"
1232
1233// CreateSnapshotFromVolumeRecoveryPointRequest generates a "aws/request.Request" representing the
1234// client's request for the CreateSnapshotFromVolumeRecoveryPoint operation. The "output" return
1235// value will be populated with the request's response once the request completes
1236// successfully.
1237//
1238// Use "Send" method on the returned Request to send the API call to the service.
1239// the "output" return value is not valid until after Send returns without error.
1240//
1241// See CreateSnapshotFromVolumeRecoveryPoint for more information on using the CreateSnapshotFromVolumeRecoveryPoint
1242// API call, and error handling.
1243//
1244// This method is useful when you want to inject custom logic or configuration
1245// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1246//
1247//
1248//    // Example sending a request using the CreateSnapshotFromVolumeRecoveryPointRequest method.
1249//    req, resp := client.CreateSnapshotFromVolumeRecoveryPointRequest(params)
1250//
1251//    err := req.Send()
1252//    if err == nil { // resp is now filled
1253//        fmt.Println(resp)
1254//    }
1255//
1256// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshotFromVolumeRecoveryPoint
1257func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPointRequest(input *CreateSnapshotFromVolumeRecoveryPointInput) (req *request.Request, output *CreateSnapshotFromVolumeRecoveryPointOutput) {
1258	op := &request.Operation{
1259		Name:       opCreateSnapshotFromVolumeRecoveryPoint,
1260		HTTPMethod: "POST",
1261		HTTPPath:   "/",
1262	}
1263
1264	if input == nil {
1265		input = &CreateSnapshotFromVolumeRecoveryPointInput{}
1266	}
1267
1268	output = &CreateSnapshotFromVolumeRecoveryPointOutput{}
1269	req = c.newRequest(op, input, output)
1270	return
1271}
1272
1273// CreateSnapshotFromVolumeRecoveryPoint API operation for AWS Storage Gateway.
1274//
1275// Initiates a snapshot of a gateway from a volume recovery point. This operation
1276// is only supported in the cached volume gateway type.
1277//
1278// A volume recovery point is a point in time at which all data of the volume
1279// is consistent and from which you can create a snapshot. To get a list of
1280// volume recovery point for cached volume gateway, use ListVolumeRecoveryPoints.
1281//
1282// In the CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume
1283// by providing its Amazon Resource Name (ARN). You must also provide a description
1284// for the snapshot. When the gateway takes a snapshot of the specified volume,
1285// the snapshot and its description appear in the AWS Storage Gateway console.
1286// In response, the gateway returns you a snapshot ID. You can use this snapshot
1287// ID to check the snapshot progress or later use it when you want to create
1288// a volume from a snapshot.
1289//
1290// To list or delete a snapshot, you must use the Amazon EC2 API. For more information,
1291// in Amazon Elastic Compute Cloud API Reference.
1292//
1293// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1294// with awserr.Error's Code and Message methods to get detailed information about
1295// the error.
1296//
1297// See the AWS API reference guide for AWS Storage Gateway's
1298// API operation CreateSnapshotFromVolumeRecoveryPoint for usage and error information.
1299//
1300// Returned Error Codes:
1301//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
1302//   An exception occurred because an invalid gateway request was issued to the
1303//   service. For more information, see the error and message fields.
1304//
1305//   * ErrCodeInternalServerError "InternalServerError"
1306//   An internal server error has occurred during the request. For more information,
1307//   see the error and message fields.
1308//
1309//   * ErrCodeServiceUnavailableError "ServiceUnavailableError"
1310//   An internal server error has occurred because the service is unavailable.
1311//   For more information, see the error and message fields.
1312//
1313// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateSnapshotFromVolumeRecoveryPoint
1314func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPoint(input *CreateSnapshotFromVolumeRecoveryPointInput) (*CreateSnapshotFromVolumeRecoveryPointOutput, error) {
1315	req, out := c.CreateSnapshotFromVolumeRecoveryPointRequest(input)
1316	return out, req.Send()
1317}
1318
1319// CreateSnapshotFromVolumeRecoveryPointWithContext is the same as CreateSnapshotFromVolumeRecoveryPoint with the addition of
1320// the ability to pass a context and additional request options.
1321//
1322// See CreateSnapshotFromVolumeRecoveryPoint for details on how to use this API operation.
1323//
1324// The context must be non-nil and will be used for request cancellation. If
1325// the context is nil a panic will occur. In the future the SDK may create
1326// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1327// for more information on using Contexts.
1328func (c *StorageGateway) CreateSnapshotFromVolumeRecoveryPointWithContext(ctx aws.Context, input *CreateSnapshotFromVolumeRecoveryPointInput, opts ...request.Option) (*CreateSnapshotFromVolumeRecoveryPointOutput, error) {
1329	req, out := c.CreateSnapshotFromVolumeRecoveryPointRequest(input)
1330	req.SetContext(ctx)
1331	req.ApplyOptions(opts...)
1332	return out, req.Send()
1333}
1334
1335const opCreateStorediSCSIVolume = "CreateStorediSCSIVolume"
1336
1337// CreateStorediSCSIVolumeRequest generates a "aws/request.Request" representing the
1338// client's request for the CreateStorediSCSIVolume operation. The "output" return
1339// value will be populated with the request's response once the request completes
1340// successfully.
1341//
1342// Use "Send" method on the returned Request to send the API call to the service.
1343// the "output" return value is not valid until after Send returns without error.
1344//
1345// See CreateStorediSCSIVolume for more information on using the CreateStorediSCSIVolume
1346// API call, and error handling.
1347//
1348// This method is useful when you want to inject custom logic or configuration
1349// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1350//
1351//
1352//    // Example sending a request using the CreateStorediSCSIVolumeRequest method.
1353//    req, resp := client.CreateStorediSCSIVolumeRequest(params)
1354//
1355//    err := req.Send()
1356//    if err == nil { // resp is now filled
1357//        fmt.Println(resp)
1358//    }
1359//
1360// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateStorediSCSIVolume
1361func (c *StorageGateway) CreateStorediSCSIVolumeRequest(input *CreateStorediSCSIVolumeInput) (req *request.Request, output *CreateStorediSCSIVolumeOutput) {
1362	op := &request.Operation{
1363		Name:       opCreateStorediSCSIVolume,
1364		HTTPMethod: "POST",
1365		HTTPPath:   "/",
1366	}
1367
1368	if input == nil {
1369		input = &CreateStorediSCSIVolumeInput{}
1370	}
1371
1372	output = &CreateStorediSCSIVolumeOutput{}
1373	req = c.newRequest(op, input, output)
1374	return
1375}
1376
1377// CreateStorediSCSIVolume API operation for AWS Storage Gateway.
1378//
1379// Creates a volume on a specified gateway. This operation is only supported
1380// in the stored volume gateway type.
1381//
1382// The size of the volume to create is inferred from the disk size. You can
1383// choose to preserve existing data on the disk, create volume from an existing
1384// snapshot, or create an empty volume. If you choose to create an empty gateway
1385// volume, then any existing data on the disk is erased.
1386//
1387// In the request you must specify the gateway and the disk information on which
1388// you are creating the volume. In response, the gateway creates the volume
1389// and returns volume information such as the volume Amazon Resource Name (ARN),
1390// its size, and the iSCSI target ARN that initiators can use to connect to
1391// the volume target.
1392//
1393// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1394// with awserr.Error's Code and Message methods to get detailed information about
1395// the error.
1396//
1397// See the AWS API reference guide for AWS Storage Gateway's
1398// API operation CreateStorediSCSIVolume for usage and error information.
1399//
1400// Returned Error Codes:
1401//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
1402//   An exception occurred because an invalid gateway request was issued to the
1403//   service. For more information, see the error and message fields.
1404//
1405//   * ErrCodeInternalServerError "InternalServerError"
1406//   An internal server error has occurred during the request. For more information,
1407//   see the error and message fields.
1408//
1409// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateStorediSCSIVolume
1410func (c *StorageGateway) CreateStorediSCSIVolume(input *CreateStorediSCSIVolumeInput) (*CreateStorediSCSIVolumeOutput, error) {
1411	req, out := c.CreateStorediSCSIVolumeRequest(input)
1412	return out, req.Send()
1413}
1414
1415// CreateStorediSCSIVolumeWithContext is the same as CreateStorediSCSIVolume with the addition of
1416// the ability to pass a context and additional request options.
1417//
1418// See CreateStorediSCSIVolume for details on how to use this API operation.
1419//
1420// The context must be non-nil and will be used for request cancellation. If
1421// the context is nil a panic will occur. In the future the SDK may create
1422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1423// for more information on using Contexts.
1424func (c *StorageGateway) CreateStorediSCSIVolumeWithContext(ctx aws.Context, input *CreateStorediSCSIVolumeInput, opts ...request.Option) (*CreateStorediSCSIVolumeOutput, error) {
1425	req, out := c.CreateStorediSCSIVolumeRequest(input)
1426	req.SetContext(ctx)
1427	req.ApplyOptions(opts...)
1428	return out, req.Send()
1429}
1430
1431const opCreateTapeWithBarcode = "CreateTapeWithBarcode"
1432
1433// CreateTapeWithBarcodeRequest generates a "aws/request.Request" representing the
1434// client's request for the CreateTapeWithBarcode operation. The "output" return
1435// value will be populated with the request's response once the request completes
1436// successfully.
1437//
1438// Use "Send" method on the returned Request to send the API call to the service.
1439// the "output" return value is not valid until after Send returns without error.
1440//
1441// See CreateTapeWithBarcode for more information on using the CreateTapeWithBarcode
1442// API call, and error handling.
1443//
1444// This method is useful when you want to inject custom logic or configuration
1445// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1446//
1447//
1448//    // Example sending a request using the CreateTapeWithBarcodeRequest method.
1449//    req, resp := client.CreateTapeWithBarcodeRequest(params)
1450//
1451//    err := req.Send()
1452//    if err == nil { // resp is now filled
1453//        fmt.Println(resp)
1454//    }
1455//
1456// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapeWithBarcode
1457func (c *StorageGateway) CreateTapeWithBarcodeRequest(input *CreateTapeWithBarcodeInput) (req *request.Request, output *CreateTapeWithBarcodeOutput) {
1458	op := &request.Operation{
1459		Name:       opCreateTapeWithBarcode,
1460		HTTPMethod: "POST",
1461		HTTPPath:   "/",
1462	}
1463
1464	if input == nil {
1465		input = &CreateTapeWithBarcodeInput{}
1466	}
1467
1468	output = &CreateTapeWithBarcodeOutput{}
1469	req = c.newRequest(op, input, output)
1470	return
1471}
1472
1473// CreateTapeWithBarcode API operation for AWS Storage Gateway.
1474//
1475// Creates a virtual tape by using your own barcode. You write data to the virtual
1476// tape and then archive the tape. A barcode is unique and can not be reused
1477// if it has already been used on a tape . This applies to barcodes used on
1478// deleted tapes. This operation is only supported in the tape gateway type.
1479//
1480// Cache storage must be allocated to the gateway before you can create a virtual
1481// tape. Use the AddCache operation to add cache storage to a gateway.
1482//
1483// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1484// with awserr.Error's Code and Message methods to get detailed information about
1485// the error.
1486//
1487// See the AWS API reference guide for AWS Storage Gateway's
1488// API operation CreateTapeWithBarcode for usage and error information.
1489//
1490// Returned Error Codes:
1491//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
1492//   An exception occurred because an invalid gateway request was issued to the
1493//   service. For more information, see the error and message fields.
1494//
1495//   * ErrCodeInternalServerError "InternalServerError"
1496//   An internal server error has occurred during the request. For more information,
1497//   see the error and message fields.
1498//
1499// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapeWithBarcode
1500func (c *StorageGateway) CreateTapeWithBarcode(input *CreateTapeWithBarcodeInput) (*CreateTapeWithBarcodeOutput, error) {
1501	req, out := c.CreateTapeWithBarcodeRequest(input)
1502	return out, req.Send()
1503}
1504
1505// CreateTapeWithBarcodeWithContext is the same as CreateTapeWithBarcode with the addition of
1506// the ability to pass a context and additional request options.
1507//
1508// See CreateTapeWithBarcode for details on how to use this API operation.
1509//
1510// The context must be non-nil and will be used for request cancellation. If
1511// the context is nil a panic will occur. In the future the SDK may create
1512// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1513// for more information on using Contexts.
1514func (c *StorageGateway) CreateTapeWithBarcodeWithContext(ctx aws.Context, input *CreateTapeWithBarcodeInput, opts ...request.Option) (*CreateTapeWithBarcodeOutput, error) {
1515	req, out := c.CreateTapeWithBarcodeRequest(input)
1516	req.SetContext(ctx)
1517	req.ApplyOptions(opts...)
1518	return out, req.Send()
1519}
1520
1521const opCreateTapes = "CreateTapes"
1522
1523// CreateTapesRequest generates a "aws/request.Request" representing the
1524// client's request for the CreateTapes operation. The "output" return
1525// value will be populated with the request's response once the request completes
1526// successfully.
1527//
1528// Use "Send" method on the returned Request to send the API call to the service.
1529// the "output" return value is not valid until after Send returns without error.
1530//
1531// See CreateTapes for more information on using the CreateTapes
1532// API call, and error handling.
1533//
1534// This method is useful when you want to inject custom logic or configuration
1535// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1536//
1537//
1538//    // Example sending a request using the CreateTapesRequest method.
1539//    req, resp := client.CreateTapesRequest(params)
1540//
1541//    err := req.Send()
1542//    if err == nil { // resp is now filled
1543//        fmt.Println(resp)
1544//    }
1545//
1546// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapes
1547func (c *StorageGateway) CreateTapesRequest(input *CreateTapesInput) (req *request.Request, output *CreateTapesOutput) {
1548	op := &request.Operation{
1549		Name:       opCreateTapes,
1550		HTTPMethod: "POST",
1551		HTTPPath:   "/",
1552	}
1553
1554	if input == nil {
1555		input = &CreateTapesInput{}
1556	}
1557
1558	output = &CreateTapesOutput{}
1559	req = c.newRequest(op, input, output)
1560	return
1561}
1562
1563// CreateTapes API operation for AWS Storage Gateway.
1564//
1565// Creates one or more virtual tapes. You write data to the virtual tapes and
1566// then archive the tapes. This operation is only supported in the tape gateway
1567// type.
1568//
1569// Cache storage must be allocated to the gateway before you can create virtual
1570// tapes. Use the AddCache operation to add cache storage to a gateway.
1571//
1572// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1573// with awserr.Error's Code and Message methods to get detailed information about
1574// the error.
1575//
1576// See the AWS API reference guide for AWS Storage Gateway's
1577// API operation CreateTapes for usage and error information.
1578//
1579// Returned Error Codes:
1580//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
1581//   An exception occurred because an invalid gateway request was issued to the
1582//   service. For more information, see the error and message fields.
1583//
1584//   * ErrCodeInternalServerError "InternalServerError"
1585//   An internal server error has occurred during the request. For more information,
1586//   see the error and message fields.
1587//
1588// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/CreateTapes
1589func (c *StorageGateway) CreateTapes(input *CreateTapesInput) (*CreateTapesOutput, error) {
1590	req, out := c.CreateTapesRequest(input)
1591	return out, req.Send()
1592}
1593
1594// CreateTapesWithContext is the same as CreateTapes with the addition of
1595// the ability to pass a context and additional request options.
1596//
1597// See CreateTapes for details on how to use this API operation.
1598//
1599// The context must be non-nil and will be used for request cancellation. If
1600// the context is nil a panic will occur. In the future the SDK may create
1601// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1602// for more information on using Contexts.
1603func (c *StorageGateway) CreateTapesWithContext(ctx aws.Context, input *CreateTapesInput, opts ...request.Option) (*CreateTapesOutput, error) {
1604	req, out := c.CreateTapesRequest(input)
1605	req.SetContext(ctx)
1606	req.ApplyOptions(opts...)
1607	return out, req.Send()
1608}
1609
1610const opDeleteBandwidthRateLimit = "DeleteBandwidthRateLimit"
1611
1612// DeleteBandwidthRateLimitRequest generates a "aws/request.Request" representing the
1613// client's request for the DeleteBandwidthRateLimit operation. The "output" return
1614// value will be populated with the request's response once the request completes
1615// successfully.
1616//
1617// Use "Send" method on the returned Request to send the API call to the service.
1618// the "output" return value is not valid until after Send returns without error.
1619//
1620// See DeleteBandwidthRateLimit for more information on using the DeleteBandwidthRateLimit
1621// API call, and error handling.
1622//
1623// This method is useful when you want to inject custom logic or configuration
1624// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1625//
1626//
1627//    // Example sending a request using the DeleteBandwidthRateLimitRequest method.
1628//    req, resp := client.DeleteBandwidthRateLimitRequest(params)
1629//
1630//    err := req.Send()
1631//    if err == nil { // resp is now filled
1632//        fmt.Println(resp)
1633//    }
1634//
1635// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteBandwidthRateLimit
1636func (c *StorageGateway) DeleteBandwidthRateLimitRequest(input *DeleteBandwidthRateLimitInput) (req *request.Request, output *DeleteBandwidthRateLimitOutput) {
1637	op := &request.Operation{
1638		Name:       opDeleteBandwidthRateLimit,
1639		HTTPMethod: "POST",
1640		HTTPPath:   "/",
1641	}
1642
1643	if input == nil {
1644		input = &DeleteBandwidthRateLimitInput{}
1645	}
1646
1647	output = &DeleteBandwidthRateLimitOutput{}
1648	req = c.newRequest(op, input, output)
1649	return
1650}
1651
1652// DeleteBandwidthRateLimit API operation for AWS Storage Gateway.
1653//
1654// Deletes the bandwidth rate limits of a gateway. You can delete either the
1655// upload and download bandwidth rate limit, or you can delete both. If you
1656// delete only one of the limits, the other limit remains unchanged. To specify
1657// which gateway to work with, use the Amazon Resource Name (ARN) of the gateway
1658// in your request. This operation is supported for the stored volume, cached
1659// volume and tape gateway types.
1660//
1661// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1662// with awserr.Error's Code and Message methods to get detailed information about
1663// the error.
1664//
1665// See the AWS API reference guide for AWS Storage Gateway's
1666// API operation DeleteBandwidthRateLimit for usage and error information.
1667//
1668// Returned Error Codes:
1669//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
1670//   An exception occurred because an invalid gateway request was issued to the
1671//   service. For more information, see the error and message fields.
1672//
1673//   * ErrCodeInternalServerError "InternalServerError"
1674//   An internal server error has occurred during the request. For more information,
1675//   see the error and message fields.
1676//
1677// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteBandwidthRateLimit
1678func (c *StorageGateway) DeleteBandwidthRateLimit(input *DeleteBandwidthRateLimitInput) (*DeleteBandwidthRateLimitOutput, error) {
1679	req, out := c.DeleteBandwidthRateLimitRequest(input)
1680	return out, req.Send()
1681}
1682
1683// DeleteBandwidthRateLimitWithContext is the same as DeleteBandwidthRateLimit with the addition of
1684// the ability to pass a context and additional request options.
1685//
1686// See DeleteBandwidthRateLimit for details on how to use this API operation.
1687//
1688// The context must be non-nil and will be used for request cancellation. If
1689// the context is nil a panic will occur. In the future the SDK may create
1690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1691// for more information on using Contexts.
1692func (c *StorageGateway) DeleteBandwidthRateLimitWithContext(ctx aws.Context, input *DeleteBandwidthRateLimitInput, opts ...request.Option) (*DeleteBandwidthRateLimitOutput, error) {
1693	req, out := c.DeleteBandwidthRateLimitRequest(input)
1694	req.SetContext(ctx)
1695	req.ApplyOptions(opts...)
1696	return out, req.Send()
1697}
1698
1699const opDeleteChapCredentials = "DeleteChapCredentials"
1700
1701// DeleteChapCredentialsRequest generates a "aws/request.Request" representing the
1702// client's request for the DeleteChapCredentials operation. The "output" return
1703// value will be populated with the request's response once the request completes
1704// successfully.
1705//
1706// Use "Send" method on the returned Request to send the API call to the service.
1707// the "output" return value is not valid until after Send returns without error.
1708//
1709// See DeleteChapCredentials for more information on using the DeleteChapCredentials
1710// API call, and error handling.
1711//
1712// This method is useful when you want to inject custom logic or configuration
1713// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1714//
1715//
1716//    // Example sending a request using the DeleteChapCredentialsRequest method.
1717//    req, resp := client.DeleteChapCredentialsRequest(params)
1718//
1719//    err := req.Send()
1720//    if err == nil { // resp is now filled
1721//        fmt.Println(resp)
1722//    }
1723//
1724// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteChapCredentials
1725func (c *StorageGateway) DeleteChapCredentialsRequest(input *DeleteChapCredentialsInput) (req *request.Request, output *DeleteChapCredentialsOutput) {
1726	op := &request.Operation{
1727		Name:       opDeleteChapCredentials,
1728		HTTPMethod: "POST",
1729		HTTPPath:   "/",
1730	}
1731
1732	if input == nil {
1733		input = &DeleteChapCredentialsInput{}
1734	}
1735
1736	output = &DeleteChapCredentialsOutput{}
1737	req = c.newRequest(op, input, output)
1738	return
1739}
1740
1741// DeleteChapCredentials API operation for AWS Storage Gateway.
1742//
1743// Deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for
1744// a specified iSCSI target and initiator pair. This operation is supported
1745// in volume and tape gateway types.
1746//
1747// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1748// with awserr.Error's Code and Message methods to get detailed information about
1749// the error.
1750//
1751// See the AWS API reference guide for AWS Storage Gateway's
1752// API operation DeleteChapCredentials for usage and error information.
1753//
1754// Returned Error Codes:
1755//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
1756//   An exception occurred because an invalid gateway request was issued to the
1757//   service. For more information, see the error and message fields.
1758//
1759//   * ErrCodeInternalServerError "InternalServerError"
1760//   An internal server error has occurred during the request. For more information,
1761//   see the error and message fields.
1762//
1763// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteChapCredentials
1764func (c *StorageGateway) DeleteChapCredentials(input *DeleteChapCredentialsInput) (*DeleteChapCredentialsOutput, error) {
1765	req, out := c.DeleteChapCredentialsRequest(input)
1766	return out, req.Send()
1767}
1768
1769// DeleteChapCredentialsWithContext is the same as DeleteChapCredentials with the addition of
1770// the ability to pass a context and additional request options.
1771//
1772// See DeleteChapCredentials for details on how to use this API operation.
1773//
1774// The context must be non-nil and will be used for request cancellation. If
1775// the context is nil a panic will occur. In the future the SDK may create
1776// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1777// for more information on using Contexts.
1778func (c *StorageGateway) DeleteChapCredentialsWithContext(ctx aws.Context, input *DeleteChapCredentialsInput, opts ...request.Option) (*DeleteChapCredentialsOutput, error) {
1779	req, out := c.DeleteChapCredentialsRequest(input)
1780	req.SetContext(ctx)
1781	req.ApplyOptions(opts...)
1782	return out, req.Send()
1783}
1784
1785const opDeleteFileShare = "DeleteFileShare"
1786
1787// DeleteFileShareRequest generates a "aws/request.Request" representing the
1788// client's request for the DeleteFileShare operation. The "output" return
1789// value will be populated with the request's response once the request completes
1790// successfully.
1791//
1792// Use "Send" method on the returned Request to send the API call to the service.
1793// the "output" return value is not valid until after Send returns without error.
1794//
1795// See DeleteFileShare for more information on using the DeleteFileShare
1796// API call, and error handling.
1797//
1798// This method is useful when you want to inject custom logic or configuration
1799// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1800//
1801//
1802//    // Example sending a request using the DeleteFileShareRequest method.
1803//    req, resp := client.DeleteFileShareRequest(params)
1804//
1805//    err := req.Send()
1806//    if err == nil { // resp is now filled
1807//        fmt.Println(resp)
1808//    }
1809//
1810// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteFileShare
1811func (c *StorageGateway) DeleteFileShareRequest(input *DeleteFileShareInput) (req *request.Request, output *DeleteFileShareOutput) {
1812	op := &request.Operation{
1813		Name:       opDeleteFileShare,
1814		HTTPMethod: "POST",
1815		HTTPPath:   "/",
1816	}
1817
1818	if input == nil {
1819		input = &DeleteFileShareInput{}
1820	}
1821
1822	output = &DeleteFileShareOutput{}
1823	req = c.newRequest(op, input, output)
1824	return
1825}
1826
1827// DeleteFileShare API operation for AWS Storage Gateway.
1828//
1829// Deletes a file share from a file gateway. This operation is only supported
1830// for file gateways.
1831//
1832// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1833// with awserr.Error's Code and Message methods to get detailed information about
1834// the error.
1835//
1836// See the AWS API reference guide for AWS Storage Gateway's
1837// API operation DeleteFileShare for usage and error information.
1838//
1839// Returned Error Codes:
1840//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
1841//   An exception occurred because an invalid gateway request was issued to the
1842//   service. For more information, see the error and message fields.
1843//
1844//   * ErrCodeInternalServerError "InternalServerError"
1845//   An internal server error has occurred during the request. For more information,
1846//   see the error and message fields.
1847//
1848// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteFileShare
1849func (c *StorageGateway) DeleteFileShare(input *DeleteFileShareInput) (*DeleteFileShareOutput, error) {
1850	req, out := c.DeleteFileShareRequest(input)
1851	return out, req.Send()
1852}
1853
1854// DeleteFileShareWithContext is the same as DeleteFileShare with the addition of
1855// the ability to pass a context and additional request options.
1856//
1857// See DeleteFileShare for details on how to use this API operation.
1858//
1859// The context must be non-nil and will be used for request cancellation. If
1860// the context is nil a panic will occur. In the future the SDK may create
1861// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1862// for more information on using Contexts.
1863func (c *StorageGateway) DeleteFileShareWithContext(ctx aws.Context, input *DeleteFileShareInput, opts ...request.Option) (*DeleteFileShareOutput, error) {
1864	req, out := c.DeleteFileShareRequest(input)
1865	req.SetContext(ctx)
1866	req.ApplyOptions(opts...)
1867	return out, req.Send()
1868}
1869
1870const opDeleteGateway = "DeleteGateway"
1871
1872// DeleteGatewayRequest generates a "aws/request.Request" representing the
1873// client's request for the DeleteGateway operation. The "output" return
1874// value will be populated with the request's response once the request completes
1875// successfully.
1876//
1877// Use "Send" method on the returned Request to send the API call to the service.
1878// the "output" return value is not valid until after Send returns without error.
1879//
1880// See DeleteGateway for more information on using the DeleteGateway
1881// API call, and error handling.
1882//
1883// This method is useful when you want to inject custom logic or configuration
1884// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1885//
1886//
1887//    // Example sending a request using the DeleteGatewayRequest method.
1888//    req, resp := client.DeleteGatewayRequest(params)
1889//
1890//    err := req.Send()
1891//    if err == nil { // resp is now filled
1892//        fmt.Println(resp)
1893//    }
1894//
1895// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteGateway
1896func (c *StorageGateway) DeleteGatewayRequest(input *DeleteGatewayInput) (req *request.Request, output *DeleteGatewayOutput) {
1897	op := &request.Operation{
1898		Name:       opDeleteGateway,
1899		HTTPMethod: "POST",
1900		HTTPPath:   "/",
1901	}
1902
1903	if input == nil {
1904		input = &DeleteGatewayInput{}
1905	}
1906
1907	output = &DeleteGatewayOutput{}
1908	req = c.newRequest(op, input, output)
1909	return
1910}
1911
1912// DeleteGateway API operation for AWS Storage Gateway.
1913//
1914// Deletes a gateway. To specify which gateway to delete, use the Amazon Resource
1915// Name (ARN) of the gateway in your request. The operation deletes the gateway;
1916// however, it does not delete the gateway virtual machine (VM) from your host
1917// computer.
1918//
1919// After you delete a gateway, you cannot reactivate it. Completed snapshots
1920// of the gateway volumes are not deleted upon deleting the gateway, however,
1921// pending snapshots will not complete. After you delete a gateway, your next
1922// step is to remove it from your environment.
1923//
1924// You no longer pay software charges after the gateway is deleted; however,
1925// your existing Amazon EBS snapshots persist and you will continue to be billed
1926// for these snapshots. You can choose to remove all remaining Amazon EBS snapshots
1927// by canceling your Amazon EC2 subscription. If you prefer not to cancel your
1928// Amazon EC2 subscription, you can delete your snapshots using the Amazon EC2
1929// console. For more information, see the AWS Storage Gateway Detail Page (http://aws.amazon.com/storagegateway).
1930//
1931// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1932// with awserr.Error's Code and Message methods to get detailed information about
1933// the error.
1934//
1935// See the AWS API reference guide for AWS Storage Gateway's
1936// API operation DeleteGateway for usage and error information.
1937//
1938// Returned Error Codes:
1939//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
1940//   An exception occurred because an invalid gateway request was issued to the
1941//   service. For more information, see the error and message fields.
1942//
1943//   * ErrCodeInternalServerError "InternalServerError"
1944//   An internal server error has occurred during the request. For more information,
1945//   see the error and message fields.
1946//
1947// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteGateway
1948func (c *StorageGateway) DeleteGateway(input *DeleteGatewayInput) (*DeleteGatewayOutput, error) {
1949	req, out := c.DeleteGatewayRequest(input)
1950	return out, req.Send()
1951}
1952
1953// DeleteGatewayWithContext is the same as DeleteGateway with the addition of
1954// the ability to pass a context and additional request options.
1955//
1956// See DeleteGateway for details on how to use this API operation.
1957//
1958// The context must be non-nil and will be used for request cancellation. If
1959// the context is nil a panic will occur. In the future the SDK may create
1960// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1961// for more information on using Contexts.
1962func (c *StorageGateway) DeleteGatewayWithContext(ctx aws.Context, input *DeleteGatewayInput, opts ...request.Option) (*DeleteGatewayOutput, error) {
1963	req, out := c.DeleteGatewayRequest(input)
1964	req.SetContext(ctx)
1965	req.ApplyOptions(opts...)
1966	return out, req.Send()
1967}
1968
1969const opDeleteSnapshotSchedule = "DeleteSnapshotSchedule"
1970
1971// DeleteSnapshotScheduleRequest generates a "aws/request.Request" representing the
1972// client's request for the DeleteSnapshotSchedule operation. The "output" return
1973// value will be populated with the request's response once the request completes
1974// successfully.
1975//
1976// Use "Send" method on the returned Request to send the API call to the service.
1977// the "output" return value is not valid until after Send returns without error.
1978//
1979// See DeleteSnapshotSchedule for more information on using the DeleteSnapshotSchedule
1980// API call, and error handling.
1981//
1982// This method is useful when you want to inject custom logic or configuration
1983// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1984//
1985//
1986//    // Example sending a request using the DeleteSnapshotScheduleRequest method.
1987//    req, resp := client.DeleteSnapshotScheduleRequest(params)
1988//
1989//    err := req.Send()
1990//    if err == nil { // resp is now filled
1991//        fmt.Println(resp)
1992//    }
1993//
1994// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteSnapshotSchedule
1995func (c *StorageGateway) DeleteSnapshotScheduleRequest(input *DeleteSnapshotScheduleInput) (req *request.Request, output *DeleteSnapshotScheduleOutput) {
1996	op := &request.Operation{
1997		Name:       opDeleteSnapshotSchedule,
1998		HTTPMethod: "POST",
1999		HTTPPath:   "/",
2000	}
2001
2002	if input == nil {
2003		input = &DeleteSnapshotScheduleInput{}
2004	}
2005
2006	output = &DeleteSnapshotScheduleOutput{}
2007	req = c.newRequest(op, input, output)
2008	return
2009}
2010
2011// DeleteSnapshotSchedule API operation for AWS Storage Gateway.
2012//
2013// Deletes a snapshot of a volume.
2014//
2015// You can take snapshots of your gateway volumes on a scheduled or ad hoc basis.
2016// This API action enables you to delete a snapshot schedule for a volume. For
2017// more information, see Working with Snapshots (https://docs.aws.amazon.com/storagegateway/latest/userguide/WorkingWithSnapshots.html).
2018// In the DeleteSnapshotSchedule request, you identify the volume by providing
2019// its Amazon Resource Name (ARN). This operation is only supported in stored
2020// and cached volume gateway types.
2021//
2022// To list or delete a snapshot, you must use the Amazon EC2 API. in Amazon
2023// Elastic Compute Cloud API Reference.
2024//
2025// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2026// with awserr.Error's Code and Message methods to get detailed information about
2027// the error.
2028//
2029// See the AWS API reference guide for AWS Storage Gateway's
2030// API operation DeleteSnapshotSchedule for usage and error information.
2031//
2032// Returned Error Codes:
2033//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2034//   An exception occurred because an invalid gateway request was issued to the
2035//   service. For more information, see the error and message fields.
2036//
2037//   * ErrCodeInternalServerError "InternalServerError"
2038//   An internal server error has occurred during the request. For more information,
2039//   see the error and message fields.
2040//
2041// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteSnapshotSchedule
2042func (c *StorageGateway) DeleteSnapshotSchedule(input *DeleteSnapshotScheduleInput) (*DeleteSnapshotScheduleOutput, error) {
2043	req, out := c.DeleteSnapshotScheduleRequest(input)
2044	return out, req.Send()
2045}
2046
2047// DeleteSnapshotScheduleWithContext is the same as DeleteSnapshotSchedule with the addition of
2048// the ability to pass a context and additional request options.
2049//
2050// See DeleteSnapshotSchedule for details on how to use this API operation.
2051//
2052// The context must be non-nil and will be used for request cancellation. If
2053// the context is nil a panic will occur. In the future the SDK may create
2054// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2055// for more information on using Contexts.
2056func (c *StorageGateway) DeleteSnapshotScheduleWithContext(ctx aws.Context, input *DeleteSnapshotScheduleInput, opts ...request.Option) (*DeleteSnapshotScheduleOutput, error) {
2057	req, out := c.DeleteSnapshotScheduleRequest(input)
2058	req.SetContext(ctx)
2059	req.ApplyOptions(opts...)
2060	return out, req.Send()
2061}
2062
2063const opDeleteTape = "DeleteTape"
2064
2065// DeleteTapeRequest generates a "aws/request.Request" representing the
2066// client's request for the DeleteTape operation. The "output" return
2067// value will be populated with the request's response once the request completes
2068// successfully.
2069//
2070// Use "Send" method on the returned Request to send the API call to the service.
2071// the "output" return value is not valid until after Send returns without error.
2072//
2073// See DeleteTape for more information on using the DeleteTape
2074// API call, and error handling.
2075//
2076// This method is useful when you want to inject custom logic or configuration
2077// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2078//
2079//
2080//    // Example sending a request using the DeleteTapeRequest method.
2081//    req, resp := client.DeleteTapeRequest(params)
2082//
2083//    err := req.Send()
2084//    if err == nil { // resp is now filled
2085//        fmt.Println(resp)
2086//    }
2087//
2088// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTape
2089func (c *StorageGateway) DeleteTapeRequest(input *DeleteTapeInput) (req *request.Request, output *DeleteTapeOutput) {
2090	op := &request.Operation{
2091		Name:       opDeleteTape,
2092		HTTPMethod: "POST",
2093		HTTPPath:   "/",
2094	}
2095
2096	if input == nil {
2097		input = &DeleteTapeInput{}
2098	}
2099
2100	output = &DeleteTapeOutput{}
2101	req = c.newRequest(op, input, output)
2102	return
2103}
2104
2105// DeleteTape API operation for AWS Storage Gateway.
2106//
2107// Deletes the specified virtual tape. This operation is only supported in the
2108// tape gateway type.
2109//
2110// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2111// with awserr.Error's Code and Message methods to get detailed information about
2112// the error.
2113//
2114// See the AWS API reference guide for AWS Storage Gateway's
2115// API operation DeleteTape for usage and error information.
2116//
2117// Returned Error Codes:
2118//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2119//   An exception occurred because an invalid gateway request was issued to the
2120//   service. For more information, see the error and message fields.
2121//
2122//   * ErrCodeInternalServerError "InternalServerError"
2123//   An internal server error has occurred during the request. For more information,
2124//   see the error and message fields.
2125//
2126// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTape
2127func (c *StorageGateway) DeleteTape(input *DeleteTapeInput) (*DeleteTapeOutput, error) {
2128	req, out := c.DeleteTapeRequest(input)
2129	return out, req.Send()
2130}
2131
2132// DeleteTapeWithContext is the same as DeleteTape with the addition of
2133// the ability to pass a context and additional request options.
2134//
2135// See DeleteTape for details on how to use this API operation.
2136//
2137// The context must be non-nil and will be used for request cancellation. If
2138// the context is nil a panic will occur. In the future the SDK may create
2139// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2140// for more information on using Contexts.
2141func (c *StorageGateway) DeleteTapeWithContext(ctx aws.Context, input *DeleteTapeInput, opts ...request.Option) (*DeleteTapeOutput, error) {
2142	req, out := c.DeleteTapeRequest(input)
2143	req.SetContext(ctx)
2144	req.ApplyOptions(opts...)
2145	return out, req.Send()
2146}
2147
2148const opDeleteTapeArchive = "DeleteTapeArchive"
2149
2150// DeleteTapeArchiveRequest generates a "aws/request.Request" representing the
2151// client's request for the DeleteTapeArchive operation. The "output" return
2152// value will be populated with the request's response once the request completes
2153// successfully.
2154//
2155// Use "Send" method on the returned Request to send the API call to the service.
2156// the "output" return value is not valid until after Send returns without error.
2157//
2158// See DeleteTapeArchive for more information on using the DeleteTapeArchive
2159// API call, and error handling.
2160//
2161// This method is useful when you want to inject custom logic or configuration
2162// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2163//
2164//
2165//    // Example sending a request using the DeleteTapeArchiveRequest method.
2166//    req, resp := client.DeleteTapeArchiveRequest(params)
2167//
2168//    err := req.Send()
2169//    if err == nil { // resp is now filled
2170//        fmt.Println(resp)
2171//    }
2172//
2173// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapeArchive
2174func (c *StorageGateway) DeleteTapeArchiveRequest(input *DeleteTapeArchiveInput) (req *request.Request, output *DeleteTapeArchiveOutput) {
2175	op := &request.Operation{
2176		Name:       opDeleteTapeArchive,
2177		HTTPMethod: "POST",
2178		HTTPPath:   "/",
2179	}
2180
2181	if input == nil {
2182		input = &DeleteTapeArchiveInput{}
2183	}
2184
2185	output = &DeleteTapeArchiveOutput{}
2186	req = c.newRequest(op, input, output)
2187	return
2188}
2189
2190// DeleteTapeArchive API operation for AWS Storage Gateway.
2191//
2192// Deletes the specified virtual tape from the virtual tape shelf (VTS). This
2193// operation is only supported in the tape gateway type.
2194//
2195// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2196// with awserr.Error's Code and Message methods to get detailed information about
2197// the error.
2198//
2199// See the AWS API reference guide for AWS Storage Gateway's
2200// API operation DeleteTapeArchive for usage and error information.
2201//
2202// Returned Error Codes:
2203//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2204//   An exception occurred because an invalid gateway request was issued to the
2205//   service. For more information, see the error and message fields.
2206//
2207//   * ErrCodeInternalServerError "InternalServerError"
2208//   An internal server error has occurred during the request. For more information,
2209//   see the error and message fields.
2210//
2211// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteTapeArchive
2212func (c *StorageGateway) DeleteTapeArchive(input *DeleteTapeArchiveInput) (*DeleteTapeArchiveOutput, error) {
2213	req, out := c.DeleteTapeArchiveRequest(input)
2214	return out, req.Send()
2215}
2216
2217// DeleteTapeArchiveWithContext is the same as DeleteTapeArchive with the addition of
2218// the ability to pass a context and additional request options.
2219//
2220// See DeleteTapeArchive for details on how to use this API operation.
2221//
2222// The context must be non-nil and will be used for request cancellation. If
2223// the context is nil a panic will occur. In the future the SDK may create
2224// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2225// for more information on using Contexts.
2226func (c *StorageGateway) DeleteTapeArchiveWithContext(ctx aws.Context, input *DeleteTapeArchiveInput, opts ...request.Option) (*DeleteTapeArchiveOutput, error) {
2227	req, out := c.DeleteTapeArchiveRequest(input)
2228	req.SetContext(ctx)
2229	req.ApplyOptions(opts...)
2230	return out, req.Send()
2231}
2232
2233const opDeleteVolume = "DeleteVolume"
2234
2235// DeleteVolumeRequest generates a "aws/request.Request" representing the
2236// client's request for the DeleteVolume operation. The "output" return
2237// value will be populated with the request's response once the request completes
2238// successfully.
2239//
2240// Use "Send" method on the returned Request to send the API call to the service.
2241// the "output" return value is not valid until after Send returns without error.
2242//
2243// See DeleteVolume for more information on using the DeleteVolume
2244// API call, and error handling.
2245//
2246// This method is useful when you want to inject custom logic or configuration
2247// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2248//
2249//
2250//    // Example sending a request using the DeleteVolumeRequest method.
2251//    req, resp := client.DeleteVolumeRequest(params)
2252//
2253//    err := req.Send()
2254//    if err == nil { // resp is now filled
2255//        fmt.Println(resp)
2256//    }
2257//
2258// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteVolume
2259func (c *StorageGateway) DeleteVolumeRequest(input *DeleteVolumeInput) (req *request.Request, output *DeleteVolumeOutput) {
2260	op := &request.Operation{
2261		Name:       opDeleteVolume,
2262		HTTPMethod: "POST",
2263		HTTPPath:   "/",
2264	}
2265
2266	if input == nil {
2267		input = &DeleteVolumeInput{}
2268	}
2269
2270	output = &DeleteVolumeOutput{}
2271	req = c.newRequest(op, input, output)
2272	return
2273}
2274
2275// DeleteVolume API operation for AWS Storage Gateway.
2276//
2277// Deletes the specified storage volume that you previously created using the
2278// CreateCachediSCSIVolume or CreateStorediSCSIVolume API. This operation is
2279// only supported in the cached volume and stored volume types. For stored volume
2280// gateways, the local disk that was configured as the storage volume is not
2281// deleted. You can reuse the local disk to create another storage volume.
2282//
2283// Before you delete a volume, make sure there are no iSCSI connections to the
2284// volume you are deleting. You should also make sure there is no snapshot in
2285// progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to
2286// query snapshots on the volume you are deleting and check the snapshot status.
2287// For more information, go to DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
2288// in the Amazon Elastic Compute Cloud API Reference.
2289//
2290// In the request, you must provide the Amazon Resource Name (ARN) of the storage
2291// volume you want to delete.
2292//
2293// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2294// with awserr.Error's Code and Message methods to get detailed information about
2295// the error.
2296//
2297// See the AWS API reference guide for AWS Storage Gateway's
2298// API operation DeleteVolume for usage and error information.
2299//
2300// Returned Error Codes:
2301//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2302//   An exception occurred because an invalid gateway request was issued to the
2303//   service. For more information, see the error and message fields.
2304//
2305//   * ErrCodeInternalServerError "InternalServerError"
2306//   An internal server error has occurred during the request. For more information,
2307//   see the error and message fields.
2308//
2309// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DeleteVolume
2310func (c *StorageGateway) DeleteVolume(input *DeleteVolumeInput) (*DeleteVolumeOutput, error) {
2311	req, out := c.DeleteVolumeRequest(input)
2312	return out, req.Send()
2313}
2314
2315// DeleteVolumeWithContext is the same as DeleteVolume with the addition of
2316// the ability to pass a context and additional request options.
2317//
2318// See DeleteVolume for details on how to use this API operation.
2319//
2320// The context must be non-nil and will be used for request cancellation. If
2321// the context is nil a panic will occur. In the future the SDK may create
2322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2323// for more information on using Contexts.
2324func (c *StorageGateway) DeleteVolumeWithContext(ctx aws.Context, input *DeleteVolumeInput, opts ...request.Option) (*DeleteVolumeOutput, error) {
2325	req, out := c.DeleteVolumeRequest(input)
2326	req.SetContext(ctx)
2327	req.ApplyOptions(opts...)
2328	return out, req.Send()
2329}
2330
2331const opDescribeAvailabilityMonitorTest = "DescribeAvailabilityMonitorTest"
2332
2333// DescribeAvailabilityMonitorTestRequest generates a "aws/request.Request" representing the
2334// client's request for the DescribeAvailabilityMonitorTest operation. The "output" return
2335// value will be populated with the request's response once the request completes
2336// successfully.
2337//
2338// Use "Send" method on the returned Request to send the API call to the service.
2339// the "output" return value is not valid until after Send returns without error.
2340//
2341// See DescribeAvailabilityMonitorTest for more information on using the DescribeAvailabilityMonitorTest
2342// API call, and error handling.
2343//
2344// This method is useful when you want to inject custom logic or configuration
2345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2346//
2347//
2348//    // Example sending a request using the DescribeAvailabilityMonitorTestRequest method.
2349//    req, resp := client.DescribeAvailabilityMonitorTestRequest(params)
2350//
2351//    err := req.Send()
2352//    if err == nil { // resp is now filled
2353//        fmt.Println(resp)
2354//    }
2355//
2356// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeAvailabilityMonitorTest
2357func (c *StorageGateway) DescribeAvailabilityMonitorTestRequest(input *DescribeAvailabilityMonitorTestInput) (req *request.Request, output *DescribeAvailabilityMonitorTestOutput) {
2358	op := &request.Operation{
2359		Name:       opDescribeAvailabilityMonitorTest,
2360		HTTPMethod: "POST",
2361		HTTPPath:   "/",
2362	}
2363
2364	if input == nil {
2365		input = &DescribeAvailabilityMonitorTestInput{}
2366	}
2367
2368	output = &DescribeAvailabilityMonitorTestOutput{}
2369	req = c.newRequest(op, input, output)
2370	return
2371}
2372
2373// DescribeAvailabilityMonitorTest API operation for AWS Storage Gateway.
2374//
2375// Returns information about the most recent High Availability monitoring test
2376// that was performed on the host in a cluster. If a test isn't performed, the
2377// status and start time in the response would be null.
2378//
2379// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2380// with awserr.Error's Code and Message methods to get detailed information about
2381// the error.
2382//
2383// See the AWS API reference guide for AWS Storage Gateway's
2384// API operation DescribeAvailabilityMonitorTest for usage and error information.
2385//
2386// Returned Error Codes:
2387//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2388//   An exception occurred because an invalid gateway request was issued to the
2389//   service. For more information, see the error and message fields.
2390//
2391//   * ErrCodeInternalServerError "InternalServerError"
2392//   An internal server error has occurred during the request. For more information,
2393//   see the error and message fields.
2394//
2395// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeAvailabilityMonitorTest
2396func (c *StorageGateway) DescribeAvailabilityMonitorTest(input *DescribeAvailabilityMonitorTestInput) (*DescribeAvailabilityMonitorTestOutput, error) {
2397	req, out := c.DescribeAvailabilityMonitorTestRequest(input)
2398	return out, req.Send()
2399}
2400
2401// DescribeAvailabilityMonitorTestWithContext is the same as DescribeAvailabilityMonitorTest with the addition of
2402// the ability to pass a context and additional request options.
2403//
2404// See DescribeAvailabilityMonitorTest for details on how to use this API operation.
2405//
2406// The context must be non-nil and will be used for request cancellation. If
2407// the context is nil a panic will occur. In the future the SDK may create
2408// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2409// for more information on using Contexts.
2410func (c *StorageGateway) DescribeAvailabilityMonitorTestWithContext(ctx aws.Context, input *DescribeAvailabilityMonitorTestInput, opts ...request.Option) (*DescribeAvailabilityMonitorTestOutput, error) {
2411	req, out := c.DescribeAvailabilityMonitorTestRequest(input)
2412	req.SetContext(ctx)
2413	req.ApplyOptions(opts...)
2414	return out, req.Send()
2415}
2416
2417const opDescribeBandwidthRateLimit = "DescribeBandwidthRateLimit"
2418
2419// DescribeBandwidthRateLimitRequest generates a "aws/request.Request" representing the
2420// client's request for the DescribeBandwidthRateLimit operation. The "output" return
2421// value will be populated with the request's response once the request completes
2422// successfully.
2423//
2424// Use "Send" method on the returned Request to send the API call to the service.
2425// the "output" return value is not valid until after Send returns without error.
2426//
2427// See DescribeBandwidthRateLimit for more information on using the DescribeBandwidthRateLimit
2428// API call, and error handling.
2429//
2430// This method is useful when you want to inject custom logic or configuration
2431// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2432//
2433//
2434//    // Example sending a request using the DescribeBandwidthRateLimitRequest method.
2435//    req, resp := client.DescribeBandwidthRateLimitRequest(params)
2436//
2437//    err := req.Send()
2438//    if err == nil { // resp is now filled
2439//        fmt.Println(resp)
2440//    }
2441//
2442// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimit
2443func (c *StorageGateway) DescribeBandwidthRateLimitRequest(input *DescribeBandwidthRateLimitInput) (req *request.Request, output *DescribeBandwidthRateLimitOutput) {
2444	op := &request.Operation{
2445		Name:       opDescribeBandwidthRateLimit,
2446		HTTPMethod: "POST",
2447		HTTPPath:   "/",
2448	}
2449
2450	if input == nil {
2451		input = &DescribeBandwidthRateLimitInput{}
2452	}
2453
2454	output = &DescribeBandwidthRateLimitOutput{}
2455	req = c.newRequest(op, input, output)
2456	return
2457}
2458
2459// DescribeBandwidthRateLimit API operation for AWS Storage Gateway.
2460//
2461// Returns the bandwidth rate limits of a gateway. By default, these limits
2462// are not set, which means no bandwidth rate limiting is in effect. This operation
2463// is supported for the stored volume, cached volume and tape gateway types.'
2464//
2465// This operation only returns a value for a bandwidth rate limit only if the
2466// limit is set. If no limits are set for the gateway, then this operation returns
2467// only the gateway ARN in the response body. To specify which gateway to describe,
2468// use the Amazon Resource Name (ARN) of the gateway in your request.
2469//
2470// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2471// with awserr.Error's Code and Message methods to get detailed information about
2472// the error.
2473//
2474// See the AWS API reference guide for AWS Storage Gateway's
2475// API operation DescribeBandwidthRateLimit for usage and error information.
2476//
2477// Returned Error Codes:
2478//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2479//   An exception occurred because an invalid gateway request was issued to the
2480//   service. For more information, see the error and message fields.
2481//
2482//   * ErrCodeInternalServerError "InternalServerError"
2483//   An internal server error has occurred during the request. For more information,
2484//   see the error and message fields.
2485//
2486// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeBandwidthRateLimit
2487func (c *StorageGateway) DescribeBandwidthRateLimit(input *DescribeBandwidthRateLimitInput) (*DescribeBandwidthRateLimitOutput, error) {
2488	req, out := c.DescribeBandwidthRateLimitRequest(input)
2489	return out, req.Send()
2490}
2491
2492// DescribeBandwidthRateLimitWithContext is the same as DescribeBandwidthRateLimit with the addition of
2493// the ability to pass a context and additional request options.
2494//
2495// See DescribeBandwidthRateLimit for details on how to use this API operation.
2496//
2497// The context must be non-nil and will be used for request cancellation. If
2498// the context is nil a panic will occur. In the future the SDK may create
2499// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2500// for more information on using Contexts.
2501func (c *StorageGateway) DescribeBandwidthRateLimitWithContext(ctx aws.Context, input *DescribeBandwidthRateLimitInput, opts ...request.Option) (*DescribeBandwidthRateLimitOutput, error) {
2502	req, out := c.DescribeBandwidthRateLimitRequest(input)
2503	req.SetContext(ctx)
2504	req.ApplyOptions(opts...)
2505	return out, req.Send()
2506}
2507
2508const opDescribeCache = "DescribeCache"
2509
2510// DescribeCacheRequest generates a "aws/request.Request" representing the
2511// client's request for the DescribeCache operation. The "output" return
2512// value will be populated with the request's response once the request completes
2513// successfully.
2514//
2515// Use "Send" method on the returned Request to send the API call to the service.
2516// the "output" return value is not valid until after Send returns without error.
2517//
2518// See DescribeCache for more information on using the DescribeCache
2519// API call, and error handling.
2520//
2521// This method is useful when you want to inject custom logic or configuration
2522// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2523//
2524//
2525//    // Example sending a request using the DescribeCacheRequest method.
2526//    req, resp := client.DescribeCacheRequest(params)
2527//
2528//    err := req.Send()
2529//    if err == nil { // resp is now filled
2530//        fmt.Println(resp)
2531//    }
2532//
2533// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCache
2534func (c *StorageGateway) DescribeCacheRequest(input *DescribeCacheInput) (req *request.Request, output *DescribeCacheOutput) {
2535	op := &request.Operation{
2536		Name:       opDescribeCache,
2537		HTTPMethod: "POST",
2538		HTTPPath:   "/",
2539	}
2540
2541	if input == nil {
2542		input = &DescribeCacheInput{}
2543	}
2544
2545	output = &DescribeCacheOutput{}
2546	req = c.newRequest(op, input, output)
2547	return
2548}
2549
2550// DescribeCache API operation for AWS Storage Gateway.
2551//
2552// Returns information about the cache of a gateway. This operation is only
2553// supported in the cached volume, tape and file gateway types.
2554//
2555// The response includes disk IDs that are configured as cache, and it includes
2556// the amount of cache allocated and used.
2557//
2558// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2559// with awserr.Error's Code and Message methods to get detailed information about
2560// the error.
2561//
2562// See the AWS API reference guide for AWS Storage Gateway's
2563// API operation DescribeCache for usage and error information.
2564//
2565// Returned Error Codes:
2566//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2567//   An exception occurred because an invalid gateway request was issued to the
2568//   service. For more information, see the error and message fields.
2569//
2570//   * ErrCodeInternalServerError "InternalServerError"
2571//   An internal server error has occurred during the request. For more information,
2572//   see the error and message fields.
2573//
2574// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCache
2575func (c *StorageGateway) DescribeCache(input *DescribeCacheInput) (*DescribeCacheOutput, error) {
2576	req, out := c.DescribeCacheRequest(input)
2577	return out, req.Send()
2578}
2579
2580// DescribeCacheWithContext is the same as DescribeCache with the addition of
2581// the ability to pass a context and additional request options.
2582//
2583// See DescribeCache for details on how to use this API operation.
2584//
2585// The context must be non-nil and will be used for request cancellation. If
2586// the context is nil a panic will occur. In the future the SDK may create
2587// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2588// for more information on using Contexts.
2589func (c *StorageGateway) DescribeCacheWithContext(ctx aws.Context, input *DescribeCacheInput, opts ...request.Option) (*DescribeCacheOutput, error) {
2590	req, out := c.DescribeCacheRequest(input)
2591	req.SetContext(ctx)
2592	req.ApplyOptions(opts...)
2593	return out, req.Send()
2594}
2595
2596const opDescribeCachediSCSIVolumes = "DescribeCachediSCSIVolumes"
2597
2598// DescribeCachediSCSIVolumesRequest generates a "aws/request.Request" representing the
2599// client's request for the DescribeCachediSCSIVolumes operation. The "output" return
2600// value will be populated with the request's response once the request completes
2601// successfully.
2602//
2603// Use "Send" method on the returned Request to send the API call to the service.
2604// the "output" return value is not valid until after Send returns without error.
2605//
2606// See DescribeCachediSCSIVolumes for more information on using the DescribeCachediSCSIVolumes
2607// API call, and error handling.
2608//
2609// This method is useful when you want to inject custom logic or configuration
2610// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2611//
2612//
2613//    // Example sending a request using the DescribeCachediSCSIVolumesRequest method.
2614//    req, resp := client.DescribeCachediSCSIVolumesRequest(params)
2615//
2616//    err := req.Send()
2617//    if err == nil { // resp is now filled
2618//        fmt.Println(resp)
2619//    }
2620//
2621// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCachediSCSIVolumes
2622func (c *StorageGateway) DescribeCachediSCSIVolumesRequest(input *DescribeCachediSCSIVolumesInput) (req *request.Request, output *DescribeCachediSCSIVolumesOutput) {
2623	op := &request.Operation{
2624		Name:       opDescribeCachediSCSIVolumes,
2625		HTTPMethod: "POST",
2626		HTTPPath:   "/",
2627	}
2628
2629	if input == nil {
2630		input = &DescribeCachediSCSIVolumesInput{}
2631	}
2632
2633	output = &DescribeCachediSCSIVolumesOutput{}
2634	req = c.newRequest(op, input, output)
2635	return
2636}
2637
2638// DescribeCachediSCSIVolumes API operation for AWS Storage Gateway.
2639//
2640// Returns a description of the gateway volumes specified in the request. This
2641// operation is only supported in the cached volume gateway types.
2642//
2643// The list of gateway volumes in the request must be from one gateway. In the
2644// response Amazon Storage Gateway returns volume information sorted by volume
2645// Amazon Resource Name (ARN).
2646//
2647// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2648// with awserr.Error's Code and Message methods to get detailed information about
2649// the error.
2650//
2651// See the AWS API reference guide for AWS Storage Gateway's
2652// API operation DescribeCachediSCSIVolumes for usage and error information.
2653//
2654// Returned Error Codes:
2655//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2656//   An exception occurred because an invalid gateway request was issued to the
2657//   service. For more information, see the error and message fields.
2658//
2659//   * ErrCodeInternalServerError "InternalServerError"
2660//   An internal server error has occurred during the request. For more information,
2661//   see the error and message fields.
2662//
2663// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeCachediSCSIVolumes
2664func (c *StorageGateway) DescribeCachediSCSIVolumes(input *DescribeCachediSCSIVolumesInput) (*DescribeCachediSCSIVolumesOutput, error) {
2665	req, out := c.DescribeCachediSCSIVolumesRequest(input)
2666	return out, req.Send()
2667}
2668
2669// DescribeCachediSCSIVolumesWithContext is the same as DescribeCachediSCSIVolumes with the addition of
2670// the ability to pass a context and additional request options.
2671//
2672// See DescribeCachediSCSIVolumes for details on how to use this API operation.
2673//
2674// The context must be non-nil and will be used for request cancellation. If
2675// the context is nil a panic will occur. In the future the SDK may create
2676// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2677// for more information on using Contexts.
2678func (c *StorageGateway) DescribeCachediSCSIVolumesWithContext(ctx aws.Context, input *DescribeCachediSCSIVolumesInput, opts ...request.Option) (*DescribeCachediSCSIVolumesOutput, error) {
2679	req, out := c.DescribeCachediSCSIVolumesRequest(input)
2680	req.SetContext(ctx)
2681	req.ApplyOptions(opts...)
2682	return out, req.Send()
2683}
2684
2685const opDescribeChapCredentials = "DescribeChapCredentials"
2686
2687// DescribeChapCredentialsRequest generates a "aws/request.Request" representing the
2688// client's request for the DescribeChapCredentials operation. The "output" return
2689// value will be populated with the request's response once the request completes
2690// successfully.
2691//
2692// Use "Send" method on the returned Request to send the API call to the service.
2693// the "output" return value is not valid until after Send returns without error.
2694//
2695// See DescribeChapCredentials for more information on using the DescribeChapCredentials
2696// API call, and error handling.
2697//
2698// This method is useful when you want to inject custom logic or configuration
2699// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2700//
2701//
2702//    // Example sending a request using the DescribeChapCredentialsRequest method.
2703//    req, resp := client.DescribeChapCredentialsRequest(params)
2704//
2705//    err := req.Send()
2706//    if err == nil { // resp is now filled
2707//        fmt.Println(resp)
2708//    }
2709//
2710// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeChapCredentials
2711func (c *StorageGateway) DescribeChapCredentialsRequest(input *DescribeChapCredentialsInput) (req *request.Request, output *DescribeChapCredentialsOutput) {
2712	op := &request.Operation{
2713		Name:       opDescribeChapCredentials,
2714		HTTPMethod: "POST",
2715		HTTPPath:   "/",
2716	}
2717
2718	if input == nil {
2719		input = &DescribeChapCredentialsInput{}
2720	}
2721
2722	output = &DescribeChapCredentialsOutput{}
2723	req = c.newRequest(op, input, output)
2724	return
2725}
2726
2727// DescribeChapCredentials API operation for AWS Storage Gateway.
2728//
2729// Returns an array of Challenge-Handshake Authentication Protocol (CHAP) credentials
2730// information for a specified iSCSI target, one for each target-initiator pair.
2731// This operation is supported in the volume and tape gateway types.
2732//
2733// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2734// with awserr.Error's Code and Message methods to get detailed information about
2735// the error.
2736//
2737// See the AWS API reference guide for AWS Storage Gateway's
2738// API operation DescribeChapCredentials for usage and error information.
2739//
2740// Returned Error Codes:
2741//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2742//   An exception occurred because an invalid gateway request was issued to the
2743//   service. For more information, see the error and message fields.
2744//
2745//   * ErrCodeInternalServerError "InternalServerError"
2746//   An internal server error has occurred during the request. For more information,
2747//   see the error and message fields.
2748//
2749// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeChapCredentials
2750func (c *StorageGateway) DescribeChapCredentials(input *DescribeChapCredentialsInput) (*DescribeChapCredentialsOutput, error) {
2751	req, out := c.DescribeChapCredentialsRequest(input)
2752	return out, req.Send()
2753}
2754
2755// DescribeChapCredentialsWithContext is the same as DescribeChapCredentials with the addition of
2756// the ability to pass a context and additional request options.
2757//
2758// See DescribeChapCredentials for details on how to use this API operation.
2759//
2760// The context must be non-nil and will be used for request cancellation. If
2761// the context is nil a panic will occur. In the future the SDK may create
2762// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2763// for more information on using Contexts.
2764func (c *StorageGateway) DescribeChapCredentialsWithContext(ctx aws.Context, input *DescribeChapCredentialsInput, opts ...request.Option) (*DescribeChapCredentialsOutput, error) {
2765	req, out := c.DescribeChapCredentialsRequest(input)
2766	req.SetContext(ctx)
2767	req.ApplyOptions(opts...)
2768	return out, req.Send()
2769}
2770
2771const opDescribeGatewayInformation = "DescribeGatewayInformation"
2772
2773// DescribeGatewayInformationRequest generates a "aws/request.Request" representing the
2774// client's request for the DescribeGatewayInformation operation. The "output" return
2775// value will be populated with the request's response once the request completes
2776// successfully.
2777//
2778// Use "Send" method on the returned Request to send the API call to the service.
2779// the "output" return value is not valid until after Send returns without error.
2780//
2781// See DescribeGatewayInformation for more information on using the DescribeGatewayInformation
2782// API call, and error handling.
2783//
2784// This method is useful when you want to inject custom logic or configuration
2785// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2786//
2787//
2788//    // Example sending a request using the DescribeGatewayInformationRequest method.
2789//    req, resp := client.DescribeGatewayInformationRequest(params)
2790//
2791//    err := req.Send()
2792//    if err == nil { // resp is now filled
2793//        fmt.Println(resp)
2794//    }
2795//
2796// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeGatewayInformation
2797func (c *StorageGateway) DescribeGatewayInformationRequest(input *DescribeGatewayInformationInput) (req *request.Request, output *DescribeGatewayInformationOutput) {
2798	op := &request.Operation{
2799		Name:       opDescribeGatewayInformation,
2800		HTTPMethod: "POST",
2801		HTTPPath:   "/",
2802	}
2803
2804	if input == nil {
2805		input = &DescribeGatewayInformationInput{}
2806	}
2807
2808	output = &DescribeGatewayInformationOutput{}
2809	req = c.newRequest(op, input, output)
2810	return
2811}
2812
2813// DescribeGatewayInformation API operation for AWS Storage Gateway.
2814//
2815// Returns metadata about a gateway such as its name, network interfaces, configured
2816// time zone, and the state (whether the gateway is running or not). To specify
2817// which gateway to describe, use the Amazon Resource Name (ARN) of the gateway
2818// in your request.
2819//
2820// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2821// with awserr.Error's Code and Message methods to get detailed information about
2822// the error.
2823//
2824// See the AWS API reference guide for AWS Storage Gateway's
2825// API operation DescribeGatewayInformation for usage and error information.
2826//
2827// Returned Error Codes:
2828//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2829//   An exception occurred because an invalid gateway request was issued to the
2830//   service. For more information, see the error and message fields.
2831//
2832//   * ErrCodeInternalServerError "InternalServerError"
2833//   An internal server error has occurred during the request. For more information,
2834//   see the error and message fields.
2835//
2836// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeGatewayInformation
2837func (c *StorageGateway) DescribeGatewayInformation(input *DescribeGatewayInformationInput) (*DescribeGatewayInformationOutput, error) {
2838	req, out := c.DescribeGatewayInformationRequest(input)
2839	return out, req.Send()
2840}
2841
2842// DescribeGatewayInformationWithContext is the same as DescribeGatewayInformation with the addition of
2843// the ability to pass a context and additional request options.
2844//
2845// See DescribeGatewayInformation for details on how to use this API operation.
2846//
2847// The context must be non-nil and will be used for request cancellation. If
2848// the context is nil a panic will occur. In the future the SDK may create
2849// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2850// for more information on using Contexts.
2851func (c *StorageGateway) DescribeGatewayInformationWithContext(ctx aws.Context, input *DescribeGatewayInformationInput, opts ...request.Option) (*DescribeGatewayInformationOutput, error) {
2852	req, out := c.DescribeGatewayInformationRequest(input)
2853	req.SetContext(ctx)
2854	req.ApplyOptions(opts...)
2855	return out, req.Send()
2856}
2857
2858const opDescribeMaintenanceStartTime = "DescribeMaintenanceStartTime"
2859
2860// DescribeMaintenanceStartTimeRequest generates a "aws/request.Request" representing the
2861// client's request for the DescribeMaintenanceStartTime operation. The "output" return
2862// value will be populated with the request's response once the request completes
2863// successfully.
2864//
2865// Use "Send" method on the returned Request to send the API call to the service.
2866// the "output" return value is not valid until after Send returns without error.
2867//
2868// See DescribeMaintenanceStartTime for more information on using the DescribeMaintenanceStartTime
2869// API call, and error handling.
2870//
2871// This method is useful when you want to inject custom logic or configuration
2872// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2873//
2874//
2875//    // Example sending a request using the DescribeMaintenanceStartTimeRequest method.
2876//    req, resp := client.DescribeMaintenanceStartTimeRequest(params)
2877//
2878//    err := req.Send()
2879//    if err == nil { // resp is now filled
2880//        fmt.Println(resp)
2881//    }
2882//
2883// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeMaintenanceStartTime
2884func (c *StorageGateway) DescribeMaintenanceStartTimeRequest(input *DescribeMaintenanceStartTimeInput) (req *request.Request, output *DescribeMaintenanceStartTimeOutput) {
2885	op := &request.Operation{
2886		Name:       opDescribeMaintenanceStartTime,
2887		HTTPMethod: "POST",
2888		HTTPPath:   "/",
2889	}
2890
2891	if input == nil {
2892		input = &DescribeMaintenanceStartTimeInput{}
2893	}
2894
2895	output = &DescribeMaintenanceStartTimeOutput{}
2896	req = c.newRequest(op, input, output)
2897	return
2898}
2899
2900// DescribeMaintenanceStartTime API operation for AWS Storage Gateway.
2901//
2902// Returns your gateway's weekly maintenance start time including the day and
2903// time of the week. Note that values are in terms of the gateway's time zone.
2904//
2905// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2906// with awserr.Error's Code and Message methods to get detailed information about
2907// the error.
2908//
2909// See the AWS API reference guide for AWS Storage Gateway's
2910// API operation DescribeMaintenanceStartTime for usage and error information.
2911//
2912// Returned Error Codes:
2913//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2914//   An exception occurred because an invalid gateway request was issued to the
2915//   service. For more information, see the error and message fields.
2916//
2917//   * ErrCodeInternalServerError "InternalServerError"
2918//   An internal server error has occurred during the request. For more information,
2919//   see the error and message fields.
2920//
2921// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeMaintenanceStartTime
2922func (c *StorageGateway) DescribeMaintenanceStartTime(input *DescribeMaintenanceStartTimeInput) (*DescribeMaintenanceStartTimeOutput, error) {
2923	req, out := c.DescribeMaintenanceStartTimeRequest(input)
2924	return out, req.Send()
2925}
2926
2927// DescribeMaintenanceStartTimeWithContext is the same as DescribeMaintenanceStartTime with the addition of
2928// the ability to pass a context and additional request options.
2929//
2930// See DescribeMaintenanceStartTime for details on how to use this API operation.
2931//
2932// The context must be non-nil and will be used for request cancellation. If
2933// the context is nil a panic will occur. In the future the SDK may create
2934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2935// for more information on using Contexts.
2936func (c *StorageGateway) DescribeMaintenanceStartTimeWithContext(ctx aws.Context, input *DescribeMaintenanceStartTimeInput, opts ...request.Option) (*DescribeMaintenanceStartTimeOutput, error) {
2937	req, out := c.DescribeMaintenanceStartTimeRequest(input)
2938	req.SetContext(ctx)
2939	req.ApplyOptions(opts...)
2940	return out, req.Send()
2941}
2942
2943const opDescribeNFSFileShares = "DescribeNFSFileShares"
2944
2945// DescribeNFSFileSharesRequest generates a "aws/request.Request" representing the
2946// client's request for the DescribeNFSFileShares operation. The "output" return
2947// value will be populated with the request's response once the request completes
2948// successfully.
2949//
2950// Use "Send" method on the returned Request to send the API call to the service.
2951// the "output" return value is not valid until after Send returns without error.
2952//
2953// See DescribeNFSFileShares for more information on using the DescribeNFSFileShares
2954// API call, and error handling.
2955//
2956// This method is useful when you want to inject custom logic or configuration
2957// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2958//
2959//
2960//    // Example sending a request using the DescribeNFSFileSharesRequest method.
2961//    req, resp := client.DescribeNFSFileSharesRequest(params)
2962//
2963//    err := req.Send()
2964//    if err == nil { // resp is now filled
2965//        fmt.Println(resp)
2966//    }
2967//
2968// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeNFSFileShares
2969func (c *StorageGateway) DescribeNFSFileSharesRequest(input *DescribeNFSFileSharesInput) (req *request.Request, output *DescribeNFSFileSharesOutput) {
2970	op := &request.Operation{
2971		Name:       opDescribeNFSFileShares,
2972		HTTPMethod: "POST",
2973		HTTPPath:   "/",
2974	}
2975
2976	if input == nil {
2977		input = &DescribeNFSFileSharesInput{}
2978	}
2979
2980	output = &DescribeNFSFileSharesOutput{}
2981	req = c.newRequest(op, input, output)
2982	return
2983}
2984
2985// DescribeNFSFileShares API operation for AWS Storage Gateway.
2986//
2987// Gets a description for one or more Network File System (NFS) file shares
2988// from a file gateway. This operation is only supported for file gateways.
2989//
2990// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2991// with awserr.Error's Code and Message methods to get detailed information about
2992// the error.
2993//
2994// See the AWS API reference guide for AWS Storage Gateway's
2995// API operation DescribeNFSFileShares for usage and error information.
2996//
2997// Returned Error Codes:
2998//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
2999//   An exception occurred because an invalid gateway request was issued to the
3000//   service. For more information, see the error and message fields.
3001//
3002//   * ErrCodeInternalServerError "InternalServerError"
3003//   An internal server error has occurred during the request. For more information,
3004//   see the error and message fields.
3005//
3006// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeNFSFileShares
3007func (c *StorageGateway) DescribeNFSFileShares(input *DescribeNFSFileSharesInput) (*DescribeNFSFileSharesOutput, error) {
3008	req, out := c.DescribeNFSFileSharesRequest(input)
3009	return out, req.Send()
3010}
3011
3012// DescribeNFSFileSharesWithContext is the same as DescribeNFSFileShares with the addition of
3013// the ability to pass a context and additional request options.
3014//
3015// See DescribeNFSFileShares for details on how to use this API operation.
3016//
3017// The context must be non-nil and will be used for request cancellation. If
3018// the context is nil a panic will occur. In the future the SDK may create
3019// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3020// for more information on using Contexts.
3021func (c *StorageGateway) DescribeNFSFileSharesWithContext(ctx aws.Context, input *DescribeNFSFileSharesInput, opts ...request.Option) (*DescribeNFSFileSharesOutput, error) {
3022	req, out := c.DescribeNFSFileSharesRequest(input)
3023	req.SetContext(ctx)
3024	req.ApplyOptions(opts...)
3025	return out, req.Send()
3026}
3027
3028const opDescribeSMBFileShares = "DescribeSMBFileShares"
3029
3030// DescribeSMBFileSharesRequest generates a "aws/request.Request" representing the
3031// client's request for the DescribeSMBFileShares operation. The "output" return
3032// value will be populated with the request's response once the request completes
3033// successfully.
3034//
3035// Use "Send" method on the returned Request to send the API call to the service.
3036// the "output" return value is not valid until after Send returns without error.
3037//
3038// See DescribeSMBFileShares for more information on using the DescribeSMBFileShares
3039// API call, and error handling.
3040//
3041// This method is useful when you want to inject custom logic or configuration
3042// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3043//
3044//
3045//    // Example sending a request using the DescribeSMBFileSharesRequest method.
3046//    req, resp := client.DescribeSMBFileSharesRequest(params)
3047//
3048//    err := req.Send()
3049//    if err == nil { // resp is now filled
3050//        fmt.Println(resp)
3051//    }
3052//
3053// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBFileShares
3054func (c *StorageGateway) DescribeSMBFileSharesRequest(input *DescribeSMBFileSharesInput) (req *request.Request, output *DescribeSMBFileSharesOutput) {
3055	op := &request.Operation{
3056		Name:       opDescribeSMBFileShares,
3057		HTTPMethod: "POST",
3058		HTTPPath:   "/",
3059	}
3060
3061	if input == nil {
3062		input = &DescribeSMBFileSharesInput{}
3063	}
3064
3065	output = &DescribeSMBFileSharesOutput{}
3066	req = c.newRequest(op, input, output)
3067	return
3068}
3069
3070// DescribeSMBFileShares API operation for AWS Storage Gateway.
3071//
3072// Gets a description for one or more Server Message Block (SMB) file shares
3073// from a file gateway. This operation is only supported for file gateways.
3074//
3075// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3076// with awserr.Error's Code and Message methods to get detailed information about
3077// the error.
3078//
3079// See the AWS API reference guide for AWS Storage Gateway's
3080// API operation DescribeSMBFileShares for usage and error information.
3081//
3082// Returned Error Codes:
3083//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
3084//   An exception occurred because an invalid gateway request was issued to the
3085//   service. For more information, see the error and message fields.
3086//
3087//   * ErrCodeInternalServerError "InternalServerError"
3088//   An internal server error has occurred during the request. For more information,
3089//   see the error and message fields.
3090//
3091// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBFileShares
3092func (c *StorageGateway) DescribeSMBFileShares(input *DescribeSMBFileSharesInput) (*DescribeSMBFileSharesOutput, error) {
3093	req, out := c.DescribeSMBFileSharesRequest(input)
3094	return out, req.Send()
3095}
3096
3097// DescribeSMBFileSharesWithContext is the same as DescribeSMBFileShares with the addition of
3098// the ability to pass a context and additional request options.
3099//
3100// See DescribeSMBFileShares for details on how to use this API operation.
3101//
3102// The context must be non-nil and will be used for request cancellation. If
3103// the context is nil a panic will occur. In the future the SDK may create
3104// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3105// for more information on using Contexts.
3106func (c *StorageGateway) DescribeSMBFileSharesWithContext(ctx aws.Context, input *DescribeSMBFileSharesInput, opts ...request.Option) (*DescribeSMBFileSharesOutput, error) {
3107	req, out := c.DescribeSMBFileSharesRequest(input)
3108	req.SetContext(ctx)
3109	req.ApplyOptions(opts...)
3110	return out, req.Send()
3111}
3112
3113const opDescribeSMBSettings = "DescribeSMBSettings"
3114
3115// DescribeSMBSettingsRequest generates a "aws/request.Request" representing the
3116// client's request for the DescribeSMBSettings operation. The "output" return
3117// value will be populated with the request's response once the request completes
3118// successfully.
3119//
3120// Use "Send" method on the returned Request to send the API call to the service.
3121// the "output" return value is not valid until after Send returns without error.
3122//
3123// See DescribeSMBSettings for more information on using the DescribeSMBSettings
3124// API call, and error handling.
3125//
3126// This method is useful when you want to inject custom logic or configuration
3127// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3128//
3129//
3130//    // Example sending a request using the DescribeSMBSettingsRequest method.
3131//    req, resp := client.DescribeSMBSettingsRequest(params)
3132//
3133//    err := req.Send()
3134//    if err == nil { // resp is now filled
3135//        fmt.Println(resp)
3136//    }
3137//
3138// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBSettings
3139func (c *StorageGateway) DescribeSMBSettingsRequest(input *DescribeSMBSettingsInput) (req *request.Request, output *DescribeSMBSettingsOutput) {
3140	op := &request.Operation{
3141		Name:       opDescribeSMBSettings,
3142		HTTPMethod: "POST",
3143		HTTPPath:   "/",
3144	}
3145
3146	if input == nil {
3147		input = &DescribeSMBSettingsInput{}
3148	}
3149
3150	output = &DescribeSMBSettingsOutput{}
3151	req = c.newRequest(op, input, output)
3152	return
3153}
3154
3155// DescribeSMBSettings API operation for AWS Storage Gateway.
3156//
3157// Gets a description of a Server Message Block (SMB) file share settings from
3158// a file gateway. This operation is only supported for file gateways.
3159//
3160// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3161// with awserr.Error's Code and Message methods to get detailed information about
3162// the error.
3163//
3164// See the AWS API reference guide for AWS Storage Gateway's
3165// API operation DescribeSMBSettings for usage and error information.
3166//
3167// Returned Error Codes:
3168//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
3169//   An exception occurred because an invalid gateway request was issued to the
3170//   service. For more information, see the error and message fields.
3171//
3172//   * ErrCodeInternalServerError "InternalServerError"
3173//   An internal server error has occurred during the request. For more information,
3174//   see the error and message fields.
3175//
3176// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSMBSettings
3177func (c *StorageGateway) DescribeSMBSettings(input *DescribeSMBSettingsInput) (*DescribeSMBSettingsOutput, error) {
3178	req, out := c.DescribeSMBSettingsRequest(input)
3179	return out, req.Send()
3180}
3181
3182// DescribeSMBSettingsWithContext is the same as DescribeSMBSettings with the addition of
3183// the ability to pass a context and additional request options.
3184//
3185// See DescribeSMBSettings for details on how to use this API operation.
3186//
3187// The context must be non-nil and will be used for request cancellation. If
3188// the context is nil a panic will occur. In the future the SDK may create
3189// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3190// for more information on using Contexts.
3191func (c *StorageGateway) DescribeSMBSettingsWithContext(ctx aws.Context, input *DescribeSMBSettingsInput, opts ...request.Option) (*DescribeSMBSettingsOutput, error) {
3192	req, out := c.DescribeSMBSettingsRequest(input)
3193	req.SetContext(ctx)
3194	req.ApplyOptions(opts...)
3195	return out, req.Send()
3196}
3197
3198const opDescribeSnapshotSchedule = "DescribeSnapshotSchedule"
3199
3200// DescribeSnapshotScheduleRequest generates a "aws/request.Request" representing the
3201// client's request for the DescribeSnapshotSchedule operation. The "output" return
3202// value will be populated with the request's response once the request completes
3203// successfully.
3204//
3205// Use "Send" method on the returned Request to send the API call to the service.
3206// the "output" return value is not valid until after Send returns without error.
3207//
3208// See DescribeSnapshotSchedule for more information on using the DescribeSnapshotSchedule
3209// API call, and error handling.
3210//
3211// This method is useful when you want to inject custom logic or configuration
3212// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3213//
3214//
3215//    // Example sending a request using the DescribeSnapshotScheduleRequest method.
3216//    req, resp := client.DescribeSnapshotScheduleRequest(params)
3217//
3218//    err := req.Send()
3219//    if err == nil { // resp is now filled
3220//        fmt.Println(resp)
3221//    }
3222//
3223// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSnapshotSchedule
3224func (c *StorageGateway) DescribeSnapshotScheduleRequest(input *DescribeSnapshotScheduleInput) (req *request.Request, output *DescribeSnapshotScheduleOutput) {
3225	op := &request.Operation{
3226		Name:       opDescribeSnapshotSchedule,
3227		HTTPMethod: "POST",
3228		HTTPPath:   "/",
3229	}
3230
3231	if input == nil {
3232		input = &DescribeSnapshotScheduleInput{}
3233	}
3234
3235	output = &DescribeSnapshotScheduleOutput{}
3236	req = c.newRequest(op, input, output)
3237	return
3238}
3239
3240// DescribeSnapshotSchedule API operation for AWS Storage Gateway.
3241//
3242// Describes the snapshot schedule for the specified gateway volume. The snapshot
3243// schedule information includes intervals at which snapshots are automatically
3244// initiated on the volume. This operation is only supported in the cached volume
3245// and stored volume types.
3246//
3247// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3248// with awserr.Error's Code and Message methods to get detailed information about
3249// the error.
3250//
3251// See the AWS API reference guide for AWS Storage Gateway's
3252// API operation DescribeSnapshotSchedule for usage and error information.
3253//
3254// Returned Error Codes:
3255//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
3256//   An exception occurred because an invalid gateway request was issued to the
3257//   service. For more information, see the error and message fields.
3258//
3259//   * ErrCodeInternalServerError "InternalServerError"
3260//   An internal server error has occurred during the request. For more information,
3261//   see the error and message fields.
3262//
3263// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeSnapshotSchedule
3264func (c *StorageGateway) DescribeSnapshotSchedule(input *DescribeSnapshotScheduleInput) (*DescribeSnapshotScheduleOutput, error) {
3265	req, out := c.DescribeSnapshotScheduleRequest(input)
3266	return out, req.Send()
3267}
3268
3269// DescribeSnapshotScheduleWithContext is the same as DescribeSnapshotSchedule with the addition of
3270// the ability to pass a context and additional request options.
3271//
3272// See DescribeSnapshotSchedule for details on how to use this API operation.
3273//
3274// The context must be non-nil and will be used for request cancellation. If
3275// the context is nil a panic will occur. In the future the SDK may create
3276// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3277// for more information on using Contexts.
3278func (c *StorageGateway) DescribeSnapshotScheduleWithContext(ctx aws.Context, input *DescribeSnapshotScheduleInput, opts ...request.Option) (*DescribeSnapshotScheduleOutput, error) {
3279	req, out := c.DescribeSnapshotScheduleRequest(input)
3280	req.SetContext(ctx)
3281	req.ApplyOptions(opts...)
3282	return out, req.Send()
3283}
3284
3285const opDescribeStorediSCSIVolumes = "DescribeStorediSCSIVolumes"
3286
3287// DescribeStorediSCSIVolumesRequest generates a "aws/request.Request" representing the
3288// client's request for the DescribeStorediSCSIVolumes operation. The "output" return
3289// value will be populated with the request's response once the request completes
3290// successfully.
3291//
3292// Use "Send" method on the returned Request to send the API call to the service.
3293// the "output" return value is not valid until after Send returns without error.
3294//
3295// See DescribeStorediSCSIVolumes for more information on using the DescribeStorediSCSIVolumes
3296// API call, and error handling.
3297//
3298// This method is useful when you want to inject custom logic or configuration
3299// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3300//
3301//
3302//    // Example sending a request using the DescribeStorediSCSIVolumesRequest method.
3303//    req, resp := client.DescribeStorediSCSIVolumesRequest(params)
3304//
3305//    err := req.Send()
3306//    if err == nil { // resp is now filled
3307//        fmt.Println(resp)
3308//    }
3309//
3310// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeStorediSCSIVolumes
3311func (c *StorageGateway) DescribeStorediSCSIVolumesRequest(input *DescribeStorediSCSIVolumesInput) (req *request.Request, output *DescribeStorediSCSIVolumesOutput) {
3312	op := &request.Operation{
3313		Name:       opDescribeStorediSCSIVolumes,
3314		HTTPMethod: "POST",
3315		HTTPPath:   "/",
3316	}
3317
3318	if input == nil {
3319		input = &DescribeStorediSCSIVolumesInput{}
3320	}
3321
3322	output = &DescribeStorediSCSIVolumesOutput{}
3323	req = c.newRequest(op, input, output)
3324	return
3325}
3326
3327// DescribeStorediSCSIVolumes API operation for AWS Storage Gateway.
3328//
3329// Returns the description of the gateway volumes specified in the request.
3330// The list of gateway volumes in the request must be from one gateway. In the
3331// response Amazon Storage Gateway returns volume information sorted by volume
3332// ARNs. This operation is only supported in stored volume gateway type.
3333//
3334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3335// with awserr.Error's Code and Message methods to get detailed information about
3336// the error.
3337//
3338// See the AWS API reference guide for AWS Storage Gateway's
3339// API operation DescribeStorediSCSIVolumes for usage and error information.
3340//
3341// Returned Error Codes:
3342//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
3343//   An exception occurred because an invalid gateway request was issued to the
3344//   service. For more information, see the error and message fields.
3345//
3346//   * ErrCodeInternalServerError "InternalServerError"
3347//   An internal server error has occurred during the request. For more information,
3348//   see the error and message fields.
3349//
3350// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeStorediSCSIVolumes
3351func (c *StorageGateway) DescribeStorediSCSIVolumes(input *DescribeStorediSCSIVolumesInput) (*DescribeStorediSCSIVolumesOutput, error) {
3352	req, out := c.DescribeStorediSCSIVolumesRequest(input)
3353	return out, req.Send()
3354}
3355
3356// DescribeStorediSCSIVolumesWithContext is the same as DescribeStorediSCSIVolumes with the addition of
3357// the ability to pass a context and additional request options.
3358//
3359// See DescribeStorediSCSIVolumes for details on how to use this API operation.
3360//
3361// The context must be non-nil and will be used for request cancellation. If
3362// the context is nil a panic will occur. In the future the SDK may create
3363// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3364// for more information on using Contexts.
3365func (c *StorageGateway) DescribeStorediSCSIVolumesWithContext(ctx aws.Context, input *DescribeStorediSCSIVolumesInput, opts ...request.Option) (*DescribeStorediSCSIVolumesOutput, error) {
3366	req, out := c.DescribeStorediSCSIVolumesRequest(input)
3367	req.SetContext(ctx)
3368	req.ApplyOptions(opts...)
3369	return out, req.Send()
3370}
3371
3372const opDescribeTapeArchives = "DescribeTapeArchives"
3373
3374// DescribeTapeArchivesRequest generates a "aws/request.Request" representing the
3375// client's request for the DescribeTapeArchives operation. The "output" return
3376// value will be populated with the request's response once the request completes
3377// successfully.
3378//
3379// Use "Send" method on the returned Request to send the API call to the service.
3380// the "output" return value is not valid until after Send returns without error.
3381//
3382// See DescribeTapeArchives for more information on using the DescribeTapeArchives
3383// API call, and error handling.
3384//
3385// This method is useful when you want to inject custom logic or configuration
3386// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3387//
3388//
3389//    // Example sending a request using the DescribeTapeArchivesRequest method.
3390//    req, resp := client.DescribeTapeArchivesRequest(params)
3391//
3392//    err := req.Send()
3393//    if err == nil { // resp is now filled
3394//        fmt.Println(resp)
3395//    }
3396//
3397// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeArchives
3398func (c *StorageGateway) DescribeTapeArchivesRequest(input *DescribeTapeArchivesInput) (req *request.Request, output *DescribeTapeArchivesOutput) {
3399	op := &request.Operation{
3400		Name:       opDescribeTapeArchives,
3401		HTTPMethod: "POST",
3402		HTTPPath:   "/",
3403		Paginator: &request.Paginator{
3404			InputTokens:     []string{"Marker"},
3405			OutputTokens:    []string{"Marker"},
3406			LimitToken:      "Limit",
3407			TruncationToken: "",
3408		},
3409	}
3410
3411	if input == nil {
3412		input = &DescribeTapeArchivesInput{}
3413	}
3414
3415	output = &DescribeTapeArchivesOutput{}
3416	req = c.newRequest(op, input, output)
3417	return
3418}
3419
3420// DescribeTapeArchives API operation for AWS Storage Gateway.
3421//
3422// Returns a description of specified virtual tapes in the virtual tape shelf
3423// (VTS). This operation is only supported in the tape gateway type.
3424//
3425// If a specific TapeARN is not specified, AWS Storage Gateway returns a description
3426// of all virtual tapes found in the VTS associated with your account.
3427//
3428// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3429// with awserr.Error's Code and Message methods to get detailed information about
3430// the error.
3431//
3432// See the AWS API reference guide for AWS Storage Gateway's
3433// API operation DescribeTapeArchives for usage and error information.
3434//
3435// Returned Error Codes:
3436//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
3437//   An exception occurred because an invalid gateway request was issued to the
3438//   service. For more information, see the error and message fields.
3439//
3440//   * ErrCodeInternalServerError "InternalServerError"
3441//   An internal server error has occurred during the request. For more information,
3442//   see the error and message fields.
3443//
3444// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeArchives
3445func (c *StorageGateway) DescribeTapeArchives(input *DescribeTapeArchivesInput) (*DescribeTapeArchivesOutput, error) {
3446	req, out := c.DescribeTapeArchivesRequest(input)
3447	return out, req.Send()
3448}
3449
3450// DescribeTapeArchivesWithContext is the same as DescribeTapeArchives with the addition of
3451// the ability to pass a context and additional request options.
3452//
3453// See DescribeTapeArchives for details on how to use this API operation.
3454//
3455// The context must be non-nil and will be used for request cancellation. If
3456// the context is nil a panic will occur. In the future the SDK may create
3457// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3458// for more information on using Contexts.
3459func (c *StorageGateway) DescribeTapeArchivesWithContext(ctx aws.Context, input *DescribeTapeArchivesInput, opts ...request.Option) (*DescribeTapeArchivesOutput, error) {
3460	req, out := c.DescribeTapeArchivesRequest(input)
3461	req.SetContext(ctx)
3462	req.ApplyOptions(opts...)
3463	return out, req.Send()
3464}
3465
3466// DescribeTapeArchivesPages iterates over the pages of a DescribeTapeArchives operation,
3467// calling the "fn" function with the response data for each page. To stop
3468// iterating, return false from the fn function.
3469//
3470// See DescribeTapeArchives method for more information on how to use this operation.
3471//
3472// Note: This operation can generate multiple requests to a service.
3473//
3474//    // Example iterating over at most 3 pages of a DescribeTapeArchives operation.
3475//    pageNum := 0
3476//    err := client.DescribeTapeArchivesPages(params,
3477//        func(page *storagegateway.DescribeTapeArchivesOutput, lastPage bool) bool {
3478//            pageNum++
3479//            fmt.Println(page)
3480//            return pageNum <= 3
3481//        })
3482//
3483func (c *StorageGateway) DescribeTapeArchivesPages(input *DescribeTapeArchivesInput, fn func(*DescribeTapeArchivesOutput, bool) bool) error {
3484	return c.DescribeTapeArchivesPagesWithContext(aws.BackgroundContext(), input, fn)
3485}
3486
3487// DescribeTapeArchivesPagesWithContext same as DescribeTapeArchivesPages except
3488// it takes a Context and allows setting request options on the pages.
3489//
3490// The context must be non-nil and will be used for request cancellation. If
3491// the context is nil a panic will occur. In the future the SDK may create
3492// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3493// for more information on using Contexts.
3494func (c *StorageGateway) DescribeTapeArchivesPagesWithContext(ctx aws.Context, input *DescribeTapeArchivesInput, fn func(*DescribeTapeArchivesOutput, bool) bool, opts ...request.Option) error {
3495	p := request.Pagination{
3496		NewRequest: func() (*request.Request, error) {
3497			var inCpy *DescribeTapeArchivesInput
3498			if input != nil {
3499				tmp := *input
3500				inCpy = &tmp
3501			}
3502			req, _ := c.DescribeTapeArchivesRequest(inCpy)
3503			req.SetContext(ctx)
3504			req.ApplyOptions(opts...)
3505			return req, nil
3506		},
3507	}
3508
3509	for p.Next() {
3510		if !fn(p.Page().(*DescribeTapeArchivesOutput), !p.HasNextPage()) {
3511			break
3512		}
3513	}
3514
3515	return p.Err()
3516}
3517
3518const opDescribeTapeRecoveryPoints = "DescribeTapeRecoveryPoints"
3519
3520// DescribeTapeRecoveryPointsRequest generates a "aws/request.Request" representing the
3521// client's request for the DescribeTapeRecoveryPoints operation. The "output" return
3522// value will be populated with the request's response once the request completes
3523// successfully.
3524//
3525// Use "Send" method on the returned Request to send the API call to the service.
3526// the "output" return value is not valid until after Send returns without error.
3527//
3528// See DescribeTapeRecoveryPoints for more information on using the DescribeTapeRecoveryPoints
3529// API call, and error handling.
3530//
3531// This method is useful when you want to inject custom logic or configuration
3532// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3533//
3534//
3535//    // Example sending a request using the DescribeTapeRecoveryPointsRequest method.
3536//    req, resp := client.DescribeTapeRecoveryPointsRequest(params)
3537//
3538//    err := req.Send()
3539//    if err == nil { // resp is now filled
3540//        fmt.Println(resp)
3541//    }
3542//
3543// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeRecoveryPoints
3544func (c *StorageGateway) DescribeTapeRecoveryPointsRequest(input *DescribeTapeRecoveryPointsInput) (req *request.Request, output *DescribeTapeRecoveryPointsOutput) {
3545	op := &request.Operation{
3546		Name:       opDescribeTapeRecoveryPoints,
3547		HTTPMethod: "POST",
3548		HTTPPath:   "/",
3549		Paginator: &request.Paginator{
3550			InputTokens:     []string{"Marker"},
3551			OutputTokens:    []string{"Marker"},
3552			LimitToken:      "Limit",
3553			TruncationToken: "",
3554		},
3555	}
3556
3557	if input == nil {
3558		input = &DescribeTapeRecoveryPointsInput{}
3559	}
3560
3561	output = &DescribeTapeRecoveryPointsOutput{}
3562	req = c.newRequest(op, input, output)
3563	return
3564}
3565
3566// DescribeTapeRecoveryPoints API operation for AWS Storage Gateway.
3567//
3568// Returns a list of virtual tape recovery points that are available for the
3569// specified tape gateway.
3570//
3571// A recovery point is a point-in-time view of a virtual tape at which all the
3572// data on the virtual tape is consistent. If your gateway crashes, virtual
3573// tapes that have recovery points can be recovered to a new gateway. This operation
3574// is only supported in the tape gateway type.
3575//
3576// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3577// with awserr.Error's Code and Message methods to get detailed information about
3578// the error.
3579//
3580// See the AWS API reference guide for AWS Storage Gateway's
3581// API operation DescribeTapeRecoveryPoints for usage and error information.
3582//
3583// Returned Error Codes:
3584//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
3585//   An exception occurred because an invalid gateway request was issued to the
3586//   service. For more information, see the error and message fields.
3587//
3588//   * ErrCodeInternalServerError "InternalServerError"
3589//   An internal server error has occurred during the request. For more information,
3590//   see the error and message fields.
3591//
3592// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapeRecoveryPoints
3593func (c *StorageGateway) DescribeTapeRecoveryPoints(input *DescribeTapeRecoveryPointsInput) (*DescribeTapeRecoveryPointsOutput, error) {
3594	req, out := c.DescribeTapeRecoveryPointsRequest(input)
3595	return out, req.Send()
3596}
3597
3598// DescribeTapeRecoveryPointsWithContext is the same as DescribeTapeRecoveryPoints with the addition of
3599// the ability to pass a context and additional request options.
3600//
3601// See DescribeTapeRecoveryPoints for details on how to use this API operation.
3602//
3603// The context must be non-nil and will be used for request cancellation. If
3604// the context is nil a panic will occur. In the future the SDK may create
3605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3606// for more information on using Contexts.
3607func (c *StorageGateway) DescribeTapeRecoveryPointsWithContext(ctx aws.Context, input *DescribeTapeRecoveryPointsInput, opts ...request.Option) (*DescribeTapeRecoveryPointsOutput, error) {
3608	req, out := c.DescribeTapeRecoveryPointsRequest(input)
3609	req.SetContext(ctx)
3610	req.ApplyOptions(opts...)
3611	return out, req.Send()
3612}
3613
3614// DescribeTapeRecoveryPointsPages iterates over the pages of a DescribeTapeRecoveryPoints operation,
3615// calling the "fn" function with the response data for each page. To stop
3616// iterating, return false from the fn function.
3617//
3618// See DescribeTapeRecoveryPoints method for more information on how to use this operation.
3619//
3620// Note: This operation can generate multiple requests to a service.
3621//
3622//    // Example iterating over at most 3 pages of a DescribeTapeRecoveryPoints operation.
3623//    pageNum := 0
3624//    err := client.DescribeTapeRecoveryPointsPages(params,
3625//        func(page *storagegateway.DescribeTapeRecoveryPointsOutput, lastPage bool) bool {
3626//            pageNum++
3627//            fmt.Println(page)
3628//            return pageNum <= 3
3629//        })
3630//
3631func (c *StorageGateway) DescribeTapeRecoveryPointsPages(input *DescribeTapeRecoveryPointsInput, fn func(*DescribeTapeRecoveryPointsOutput, bool) bool) error {
3632	return c.DescribeTapeRecoveryPointsPagesWithContext(aws.BackgroundContext(), input, fn)
3633}
3634
3635// DescribeTapeRecoveryPointsPagesWithContext same as DescribeTapeRecoveryPointsPages except
3636// it takes a Context and allows setting request options on the pages.
3637//
3638// The context must be non-nil and will be used for request cancellation. If
3639// the context is nil a panic will occur. In the future the SDK may create
3640// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3641// for more information on using Contexts.
3642func (c *StorageGateway) DescribeTapeRecoveryPointsPagesWithContext(ctx aws.Context, input *DescribeTapeRecoveryPointsInput, fn func(*DescribeTapeRecoveryPointsOutput, bool) bool, opts ...request.Option) error {
3643	p := request.Pagination{
3644		NewRequest: func() (*request.Request, error) {
3645			var inCpy *DescribeTapeRecoveryPointsInput
3646			if input != nil {
3647				tmp := *input
3648				inCpy = &tmp
3649			}
3650			req, _ := c.DescribeTapeRecoveryPointsRequest(inCpy)
3651			req.SetContext(ctx)
3652			req.ApplyOptions(opts...)
3653			return req, nil
3654		},
3655	}
3656
3657	for p.Next() {
3658		if !fn(p.Page().(*DescribeTapeRecoveryPointsOutput), !p.HasNextPage()) {
3659			break
3660		}
3661	}
3662
3663	return p.Err()
3664}
3665
3666const opDescribeTapes = "DescribeTapes"
3667
3668// DescribeTapesRequest generates a "aws/request.Request" representing the
3669// client's request for the DescribeTapes operation. The "output" return
3670// value will be populated with the request's response once the request completes
3671// successfully.
3672//
3673// Use "Send" method on the returned Request to send the API call to the service.
3674// the "output" return value is not valid until after Send returns without error.
3675//
3676// See DescribeTapes for more information on using the DescribeTapes
3677// API call, and error handling.
3678//
3679// This method is useful when you want to inject custom logic or configuration
3680// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3681//
3682//
3683//    // Example sending a request using the DescribeTapesRequest method.
3684//    req, resp := client.DescribeTapesRequest(params)
3685//
3686//    err := req.Send()
3687//    if err == nil { // resp is now filled
3688//        fmt.Println(resp)
3689//    }
3690//
3691// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapes
3692func (c *StorageGateway) DescribeTapesRequest(input *DescribeTapesInput) (req *request.Request, output *DescribeTapesOutput) {
3693	op := &request.Operation{
3694		Name:       opDescribeTapes,
3695		HTTPMethod: "POST",
3696		HTTPPath:   "/",
3697		Paginator: &request.Paginator{
3698			InputTokens:     []string{"Marker"},
3699			OutputTokens:    []string{"Marker"},
3700			LimitToken:      "Limit",
3701			TruncationToken: "",
3702		},
3703	}
3704
3705	if input == nil {
3706		input = &DescribeTapesInput{}
3707	}
3708
3709	output = &DescribeTapesOutput{}
3710	req = c.newRequest(op, input, output)
3711	return
3712}
3713
3714// DescribeTapes API operation for AWS Storage Gateway.
3715//
3716// Returns a description of the specified Amazon Resource Name (ARN) of virtual
3717// tapes. If a TapeARN is not specified, returns a description of all virtual
3718// tapes associated with the specified gateway. This operation is only supported
3719// in the tape gateway type.
3720//
3721// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3722// with awserr.Error's Code and Message methods to get detailed information about
3723// the error.
3724//
3725// See the AWS API reference guide for AWS Storage Gateway's
3726// API operation DescribeTapes for usage and error information.
3727//
3728// Returned Error Codes:
3729//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
3730//   An exception occurred because an invalid gateway request was issued to the
3731//   service. For more information, see the error and message fields.
3732//
3733//   * ErrCodeInternalServerError "InternalServerError"
3734//   An internal server error has occurred during the request. For more information,
3735//   see the error and message fields.
3736//
3737// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeTapes
3738func (c *StorageGateway) DescribeTapes(input *DescribeTapesInput) (*DescribeTapesOutput, error) {
3739	req, out := c.DescribeTapesRequest(input)
3740	return out, req.Send()
3741}
3742
3743// DescribeTapesWithContext is the same as DescribeTapes with the addition of
3744// the ability to pass a context and additional request options.
3745//
3746// See DescribeTapes for details on how to use this API operation.
3747//
3748// The context must be non-nil and will be used for request cancellation. If
3749// the context is nil a panic will occur. In the future the SDK may create
3750// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3751// for more information on using Contexts.
3752func (c *StorageGateway) DescribeTapesWithContext(ctx aws.Context, input *DescribeTapesInput, opts ...request.Option) (*DescribeTapesOutput, error) {
3753	req, out := c.DescribeTapesRequest(input)
3754	req.SetContext(ctx)
3755	req.ApplyOptions(opts...)
3756	return out, req.Send()
3757}
3758
3759// DescribeTapesPages iterates over the pages of a DescribeTapes operation,
3760// calling the "fn" function with the response data for each page. To stop
3761// iterating, return false from the fn function.
3762//
3763// See DescribeTapes method for more information on how to use this operation.
3764//
3765// Note: This operation can generate multiple requests to a service.
3766//
3767//    // Example iterating over at most 3 pages of a DescribeTapes operation.
3768//    pageNum := 0
3769//    err := client.DescribeTapesPages(params,
3770//        func(page *storagegateway.DescribeTapesOutput, lastPage bool) bool {
3771//            pageNum++
3772//            fmt.Println(page)
3773//            return pageNum <= 3
3774//        })
3775//
3776func (c *StorageGateway) DescribeTapesPages(input *DescribeTapesInput, fn func(*DescribeTapesOutput, bool) bool) error {
3777	return c.DescribeTapesPagesWithContext(aws.BackgroundContext(), input, fn)
3778}
3779
3780// DescribeTapesPagesWithContext same as DescribeTapesPages except
3781// it takes a Context and allows setting request options on the pages.
3782//
3783// The context must be non-nil and will be used for request cancellation. If
3784// the context is nil a panic will occur. In the future the SDK may create
3785// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3786// for more information on using Contexts.
3787func (c *StorageGateway) DescribeTapesPagesWithContext(ctx aws.Context, input *DescribeTapesInput, fn func(*DescribeTapesOutput, bool) bool, opts ...request.Option) error {
3788	p := request.Pagination{
3789		NewRequest: func() (*request.Request, error) {
3790			var inCpy *DescribeTapesInput
3791			if input != nil {
3792				tmp := *input
3793				inCpy = &tmp
3794			}
3795			req, _ := c.DescribeTapesRequest(inCpy)
3796			req.SetContext(ctx)
3797			req.ApplyOptions(opts...)
3798			return req, nil
3799		},
3800	}
3801
3802	for p.Next() {
3803		if !fn(p.Page().(*DescribeTapesOutput), !p.HasNextPage()) {
3804			break
3805		}
3806	}
3807
3808	return p.Err()
3809}
3810
3811const opDescribeUploadBuffer = "DescribeUploadBuffer"
3812
3813// DescribeUploadBufferRequest generates a "aws/request.Request" representing the
3814// client's request for the DescribeUploadBuffer operation. The "output" return
3815// value will be populated with the request's response once the request completes
3816// successfully.
3817//
3818// Use "Send" method on the returned Request to send the API call to the service.
3819// the "output" return value is not valid until after Send returns without error.
3820//
3821// See DescribeUploadBuffer for more information on using the DescribeUploadBuffer
3822// API call, and error handling.
3823//
3824// This method is useful when you want to inject custom logic or configuration
3825// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3826//
3827//
3828//    // Example sending a request using the DescribeUploadBufferRequest method.
3829//    req, resp := client.DescribeUploadBufferRequest(params)
3830//
3831//    err := req.Send()
3832//    if err == nil { // resp is now filled
3833//        fmt.Println(resp)
3834//    }
3835//
3836// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeUploadBuffer
3837func (c *StorageGateway) DescribeUploadBufferRequest(input *DescribeUploadBufferInput) (req *request.Request, output *DescribeUploadBufferOutput) {
3838	op := &request.Operation{
3839		Name:       opDescribeUploadBuffer,
3840		HTTPMethod: "POST",
3841		HTTPPath:   "/",
3842	}
3843
3844	if input == nil {
3845		input = &DescribeUploadBufferInput{}
3846	}
3847
3848	output = &DescribeUploadBufferOutput{}
3849	req = c.newRequest(op, input, output)
3850	return
3851}
3852
3853// DescribeUploadBuffer API operation for AWS Storage Gateway.
3854//
3855// Returns information about the upload buffer of a gateway. This operation
3856// is supported for the stored volume, cached volume and tape gateway types.
3857//
3858// The response includes disk IDs that are configured as upload buffer space,
3859// and it includes the amount of upload buffer space allocated and used.
3860//
3861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3862// with awserr.Error's Code and Message methods to get detailed information about
3863// the error.
3864//
3865// See the AWS API reference guide for AWS Storage Gateway's
3866// API operation DescribeUploadBuffer for usage and error information.
3867//
3868// Returned Error Codes:
3869//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
3870//   An exception occurred because an invalid gateway request was issued to the
3871//   service. For more information, see the error and message fields.
3872//
3873//   * ErrCodeInternalServerError "InternalServerError"
3874//   An internal server error has occurred during the request. For more information,
3875//   see the error and message fields.
3876//
3877// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeUploadBuffer
3878func (c *StorageGateway) DescribeUploadBuffer(input *DescribeUploadBufferInput) (*DescribeUploadBufferOutput, error) {
3879	req, out := c.DescribeUploadBufferRequest(input)
3880	return out, req.Send()
3881}
3882
3883// DescribeUploadBufferWithContext is the same as DescribeUploadBuffer with the addition of
3884// the ability to pass a context and additional request options.
3885//
3886// See DescribeUploadBuffer for details on how to use this API operation.
3887//
3888// The context must be non-nil and will be used for request cancellation. If
3889// the context is nil a panic will occur. In the future the SDK may create
3890// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3891// for more information on using Contexts.
3892func (c *StorageGateway) DescribeUploadBufferWithContext(ctx aws.Context, input *DescribeUploadBufferInput, opts ...request.Option) (*DescribeUploadBufferOutput, error) {
3893	req, out := c.DescribeUploadBufferRequest(input)
3894	req.SetContext(ctx)
3895	req.ApplyOptions(opts...)
3896	return out, req.Send()
3897}
3898
3899const opDescribeVTLDevices = "DescribeVTLDevices"
3900
3901// DescribeVTLDevicesRequest generates a "aws/request.Request" representing the
3902// client's request for the DescribeVTLDevices operation. The "output" return
3903// value will be populated with the request's response once the request completes
3904// successfully.
3905//
3906// Use "Send" method on the returned Request to send the API call to the service.
3907// the "output" return value is not valid until after Send returns without error.
3908//
3909// See DescribeVTLDevices for more information on using the DescribeVTLDevices
3910// API call, and error handling.
3911//
3912// This method is useful when you want to inject custom logic or configuration
3913// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3914//
3915//
3916//    // Example sending a request using the DescribeVTLDevicesRequest method.
3917//    req, resp := client.DescribeVTLDevicesRequest(params)
3918//
3919//    err := req.Send()
3920//    if err == nil { // resp is now filled
3921//        fmt.Println(resp)
3922//    }
3923//
3924// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeVTLDevices
3925func (c *StorageGateway) DescribeVTLDevicesRequest(input *DescribeVTLDevicesInput) (req *request.Request, output *DescribeVTLDevicesOutput) {
3926	op := &request.Operation{
3927		Name:       opDescribeVTLDevices,
3928		HTTPMethod: "POST",
3929		HTTPPath:   "/",
3930		Paginator: &request.Paginator{
3931			InputTokens:     []string{"Marker"},
3932			OutputTokens:    []string{"Marker"},
3933			LimitToken:      "Limit",
3934			TruncationToken: "",
3935		},
3936	}
3937
3938	if input == nil {
3939		input = &DescribeVTLDevicesInput{}
3940	}
3941
3942	output = &DescribeVTLDevicesOutput{}
3943	req = c.newRequest(op, input, output)
3944	return
3945}
3946
3947// DescribeVTLDevices API operation for AWS Storage Gateway.
3948//
3949// Returns a description of virtual tape library (VTL) devices for the specified
3950// tape gateway. In the response, AWS Storage Gateway returns VTL device information.
3951//
3952// This operation is only supported in the tape gateway type.
3953//
3954// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3955// with awserr.Error's Code and Message methods to get detailed information about
3956// the error.
3957//
3958// See the AWS API reference guide for AWS Storage Gateway's
3959// API operation DescribeVTLDevices for usage and error information.
3960//
3961// Returned Error Codes:
3962//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
3963//   An exception occurred because an invalid gateway request was issued to the
3964//   service. For more information, see the error and message fields.
3965//
3966//   * ErrCodeInternalServerError "InternalServerError"
3967//   An internal server error has occurred during the request. For more information,
3968//   see the error and message fields.
3969//
3970// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeVTLDevices
3971func (c *StorageGateway) DescribeVTLDevices(input *DescribeVTLDevicesInput) (*DescribeVTLDevicesOutput, error) {
3972	req, out := c.DescribeVTLDevicesRequest(input)
3973	return out, req.Send()
3974}
3975
3976// DescribeVTLDevicesWithContext is the same as DescribeVTLDevices with the addition of
3977// the ability to pass a context and additional request options.
3978//
3979// See DescribeVTLDevices for details on how to use this API operation.
3980//
3981// The context must be non-nil and will be used for request cancellation. If
3982// the context is nil a panic will occur. In the future the SDK may create
3983// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3984// for more information on using Contexts.
3985func (c *StorageGateway) DescribeVTLDevicesWithContext(ctx aws.Context, input *DescribeVTLDevicesInput, opts ...request.Option) (*DescribeVTLDevicesOutput, error) {
3986	req, out := c.DescribeVTLDevicesRequest(input)
3987	req.SetContext(ctx)
3988	req.ApplyOptions(opts...)
3989	return out, req.Send()
3990}
3991
3992// DescribeVTLDevicesPages iterates over the pages of a DescribeVTLDevices operation,
3993// calling the "fn" function with the response data for each page. To stop
3994// iterating, return false from the fn function.
3995//
3996// See DescribeVTLDevices method for more information on how to use this operation.
3997//
3998// Note: This operation can generate multiple requests to a service.
3999//
4000//    // Example iterating over at most 3 pages of a DescribeVTLDevices operation.
4001//    pageNum := 0
4002//    err := client.DescribeVTLDevicesPages(params,
4003//        func(page *storagegateway.DescribeVTLDevicesOutput, lastPage bool) bool {
4004//            pageNum++
4005//            fmt.Println(page)
4006//            return pageNum <= 3
4007//        })
4008//
4009func (c *StorageGateway) DescribeVTLDevicesPages(input *DescribeVTLDevicesInput, fn func(*DescribeVTLDevicesOutput, bool) bool) error {
4010	return c.DescribeVTLDevicesPagesWithContext(aws.BackgroundContext(), input, fn)
4011}
4012
4013// DescribeVTLDevicesPagesWithContext same as DescribeVTLDevicesPages except
4014// it takes a Context and allows setting request options on the pages.
4015//
4016// The context must be non-nil and will be used for request cancellation. If
4017// the context is nil a panic will occur. In the future the SDK may create
4018// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4019// for more information on using Contexts.
4020func (c *StorageGateway) DescribeVTLDevicesPagesWithContext(ctx aws.Context, input *DescribeVTLDevicesInput, fn func(*DescribeVTLDevicesOutput, bool) bool, opts ...request.Option) error {
4021	p := request.Pagination{
4022		NewRequest: func() (*request.Request, error) {
4023			var inCpy *DescribeVTLDevicesInput
4024			if input != nil {
4025				tmp := *input
4026				inCpy = &tmp
4027			}
4028			req, _ := c.DescribeVTLDevicesRequest(inCpy)
4029			req.SetContext(ctx)
4030			req.ApplyOptions(opts...)
4031			return req, nil
4032		},
4033	}
4034
4035	for p.Next() {
4036		if !fn(p.Page().(*DescribeVTLDevicesOutput), !p.HasNextPage()) {
4037			break
4038		}
4039	}
4040
4041	return p.Err()
4042}
4043
4044const opDescribeWorkingStorage = "DescribeWorkingStorage"
4045
4046// DescribeWorkingStorageRequest generates a "aws/request.Request" representing the
4047// client's request for the DescribeWorkingStorage operation. The "output" return
4048// value will be populated with the request's response once the request completes
4049// successfully.
4050//
4051// Use "Send" method on the returned Request to send the API call to the service.
4052// the "output" return value is not valid until after Send returns without error.
4053//
4054// See DescribeWorkingStorage for more information on using the DescribeWorkingStorage
4055// API call, and error handling.
4056//
4057// This method is useful when you want to inject custom logic or configuration
4058// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4059//
4060//
4061//    // Example sending a request using the DescribeWorkingStorageRequest method.
4062//    req, resp := client.DescribeWorkingStorageRequest(params)
4063//
4064//    err := req.Send()
4065//    if err == nil { // resp is now filled
4066//        fmt.Println(resp)
4067//    }
4068//
4069// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeWorkingStorage
4070func (c *StorageGateway) DescribeWorkingStorageRequest(input *DescribeWorkingStorageInput) (req *request.Request, output *DescribeWorkingStorageOutput) {
4071	op := &request.Operation{
4072		Name:       opDescribeWorkingStorage,
4073		HTTPMethod: "POST",
4074		HTTPPath:   "/",
4075	}
4076
4077	if input == nil {
4078		input = &DescribeWorkingStorageInput{}
4079	}
4080
4081	output = &DescribeWorkingStorageOutput{}
4082	req = c.newRequest(op, input, output)
4083	return
4084}
4085
4086// DescribeWorkingStorage API operation for AWS Storage Gateway.
4087//
4088// Returns information about the working storage of a gateway. This operation
4089// is only supported in the stored volumes gateway type. This operation is deprecated
4090// in cached volumes API version (20120630). Use DescribeUploadBuffer instead.
4091//
4092// Working storage is also referred to as upload buffer. You can also use the
4093// DescribeUploadBuffer operation to add upload buffer to a stored volume gateway.
4094//
4095// The response includes disk IDs that are configured as working storage, and
4096// it includes the amount of working storage allocated and used.
4097//
4098// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4099// with awserr.Error's Code and Message methods to get detailed information about
4100// the error.
4101//
4102// See the AWS API reference guide for AWS Storage Gateway's
4103// API operation DescribeWorkingStorage for usage and error information.
4104//
4105// Returned Error Codes:
4106//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
4107//   An exception occurred because an invalid gateway request was issued to the
4108//   service. For more information, see the error and message fields.
4109//
4110//   * ErrCodeInternalServerError "InternalServerError"
4111//   An internal server error has occurred during the request. For more information,
4112//   see the error and message fields.
4113//
4114// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DescribeWorkingStorage
4115func (c *StorageGateway) DescribeWorkingStorage(input *DescribeWorkingStorageInput) (*DescribeWorkingStorageOutput, error) {
4116	req, out := c.DescribeWorkingStorageRequest(input)
4117	return out, req.Send()
4118}
4119
4120// DescribeWorkingStorageWithContext is the same as DescribeWorkingStorage with the addition of
4121// the ability to pass a context and additional request options.
4122//
4123// See DescribeWorkingStorage for details on how to use this API operation.
4124//
4125// The context must be non-nil and will be used for request cancellation. If
4126// the context is nil a panic will occur. In the future the SDK may create
4127// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4128// for more information on using Contexts.
4129func (c *StorageGateway) DescribeWorkingStorageWithContext(ctx aws.Context, input *DescribeWorkingStorageInput, opts ...request.Option) (*DescribeWorkingStorageOutput, error) {
4130	req, out := c.DescribeWorkingStorageRequest(input)
4131	req.SetContext(ctx)
4132	req.ApplyOptions(opts...)
4133	return out, req.Send()
4134}
4135
4136const opDetachVolume = "DetachVolume"
4137
4138// DetachVolumeRequest generates a "aws/request.Request" representing the
4139// client's request for the DetachVolume 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 DetachVolume for more information on using the DetachVolume
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 DetachVolumeRequest method.
4154//    req, resp := client.DetachVolumeRequest(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/DetachVolume
4162func (c *StorageGateway) DetachVolumeRequest(input *DetachVolumeInput) (req *request.Request, output *DetachVolumeOutput) {
4163	op := &request.Operation{
4164		Name:       opDetachVolume,
4165		HTTPMethod: "POST",
4166		HTTPPath:   "/",
4167	}
4168
4169	if input == nil {
4170		input = &DetachVolumeInput{}
4171	}
4172
4173	output = &DetachVolumeOutput{}
4174	req = c.newRequest(op, input, output)
4175	return
4176}
4177
4178// DetachVolume API operation for AWS Storage Gateway.
4179//
4180// Disconnects a volume from an iSCSI connection and then detaches the volume
4181// from the specified gateway. Detaching and attaching a volume enables you
4182// to recover your data from one gateway to a different gateway without creating
4183// a snapshot. It also makes it easier to move your volumes from an on-premises
4184// gateway to a gateway hosted on an Amazon EC2 instance. This operation is
4185// only supported in the volume gateway type.
4186//
4187// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4188// with awserr.Error's Code and Message methods to get detailed information about
4189// the error.
4190//
4191// See the AWS API reference guide for AWS Storage Gateway's
4192// API operation DetachVolume for usage and error information.
4193//
4194// Returned Error Codes:
4195//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
4196//   An exception occurred because an invalid gateway request was issued to the
4197//   service. For more information, see the error and message fields.
4198//
4199//   * ErrCodeInternalServerError "InternalServerError"
4200//   An internal server error has occurred during the request. For more information,
4201//   see the error and message fields.
4202//
4203// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DetachVolume
4204func (c *StorageGateway) DetachVolume(input *DetachVolumeInput) (*DetachVolumeOutput, error) {
4205	req, out := c.DetachVolumeRequest(input)
4206	return out, req.Send()
4207}
4208
4209// DetachVolumeWithContext is the same as DetachVolume with the addition of
4210// the ability to pass a context and additional request options.
4211//
4212// See DetachVolume for details on how to use this API operation.
4213//
4214// The context must be non-nil and will be used for request cancellation. If
4215// the context is nil a panic will occur. In the future the SDK may create
4216// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4217// for more information on using Contexts.
4218func (c *StorageGateway) DetachVolumeWithContext(ctx aws.Context, input *DetachVolumeInput, opts ...request.Option) (*DetachVolumeOutput, error) {
4219	req, out := c.DetachVolumeRequest(input)
4220	req.SetContext(ctx)
4221	req.ApplyOptions(opts...)
4222	return out, req.Send()
4223}
4224
4225const opDisableGateway = "DisableGateway"
4226
4227// DisableGatewayRequest generates a "aws/request.Request" representing the
4228// client's request for the DisableGateway operation. The "output" return
4229// value will be populated with the request's response once the request completes
4230// successfully.
4231//
4232// Use "Send" method on the returned Request to send the API call to the service.
4233// the "output" return value is not valid until after Send returns without error.
4234//
4235// See DisableGateway for more information on using the DisableGateway
4236// API call, and error handling.
4237//
4238// This method is useful when you want to inject custom logic or configuration
4239// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4240//
4241//
4242//    // Example sending a request using the DisableGatewayRequest method.
4243//    req, resp := client.DisableGatewayRequest(params)
4244//
4245//    err := req.Send()
4246//    if err == nil { // resp is now filled
4247//        fmt.Println(resp)
4248//    }
4249//
4250// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisableGateway
4251func (c *StorageGateway) DisableGatewayRequest(input *DisableGatewayInput) (req *request.Request, output *DisableGatewayOutput) {
4252	op := &request.Operation{
4253		Name:       opDisableGateway,
4254		HTTPMethod: "POST",
4255		HTTPPath:   "/",
4256	}
4257
4258	if input == nil {
4259		input = &DisableGatewayInput{}
4260	}
4261
4262	output = &DisableGatewayOutput{}
4263	req = c.newRequest(op, input, output)
4264	return
4265}
4266
4267// DisableGateway API operation for AWS Storage Gateway.
4268//
4269// Disables a tape gateway when the gateway is no longer functioning. For example,
4270// if your gateway VM is damaged, you can disable the gateway so you can recover
4271// virtual tapes.
4272//
4273// Use this operation for a tape gateway that is not reachable or not functioning.
4274// This operation is only supported in the tape gateway type.
4275//
4276// Once a gateway is disabled it cannot be enabled.
4277//
4278// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4279// with awserr.Error's Code and Message methods to get detailed information about
4280// the error.
4281//
4282// See the AWS API reference guide for AWS Storage Gateway's
4283// API operation DisableGateway for usage and error information.
4284//
4285// Returned Error Codes:
4286//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
4287//   An exception occurred because an invalid gateway request was issued to the
4288//   service. For more information, see the error and message fields.
4289//
4290//   * ErrCodeInternalServerError "InternalServerError"
4291//   An internal server error has occurred during the request. For more information,
4292//   see the error and message fields.
4293//
4294// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/DisableGateway
4295func (c *StorageGateway) DisableGateway(input *DisableGatewayInput) (*DisableGatewayOutput, error) {
4296	req, out := c.DisableGatewayRequest(input)
4297	return out, req.Send()
4298}
4299
4300// DisableGatewayWithContext is the same as DisableGateway with the addition of
4301// the ability to pass a context and additional request options.
4302//
4303// See DisableGateway for details on how to use this API operation.
4304//
4305// The context must be non-nil and will be used for request cancellation. If
4306// the context is nil a panic will occur. In the future the SDK may create
4307// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4308// for more information on using Contexts.
4309func (c *StorageGateway) DisableGatewayWithContext(ctx aws.Context, input *DisableGatewayInput, opts ...request.Option) (*DisableGatewayOutput, error) {
4310	req, out := c.DisableGatewayRequest(input)
4311	req.SetContext(ctx)
4312	req.ApplyOptions(opts...)
4313	return out, req.Send()
4314}
4315
4316const opJoinDomain = "JoinDomain"
4317
4318// JoinDomainRequest generates a "aws/request.Request" representing the
4319// client's request for the JoinDomain operation. The "output" return
4320// value will be populated with the request's response once the request completes
4321// successfully.
4322//
4323// Use "Send" method on the returned Request to send the API call to the service.
4324// the "output" return value is not valid until after Send returns without error.
4325//
4326// See JoinDomain for more information on using the JoinDomain
4327// API call, and error handling.
4328//
4329// This method is useful when you want to inject custom logic or configuration
4330// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4331//
4332//
4333//    // Example sending a request using the JoinDomainRequest method.
4334//    req, resp := client.JoinDomainRequest(params)
4335//
4336//    err := req.Send()
4337//    if err == nil { // resp is now filled
4338//        fmt.Println(resp)
4339//    }
4340//
4341// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/JoinDomain
4342func (c *StorageGateway) JoinDomainRequest(input *JoinDomainInput) (req *request.Request, output *JoinDomainOutput) {
4343	op := &request.Operation{
4344		Name:       opJoinDomain,
4345		HTTPMethod: "POST",
4346		HTTPPath:   "/",
4347	}
4348
4349	if input == nil {
4350		input = &JoinDomainInput{}
4351	}
4352
4353	output = &JoinDomainOutput{}
4354	req = c.newRequest(op, input, output)
4355	return
4356}
4357
4358// JoinDomain API operation for AWS Storage Gateway.
4359//
4360// Adds a file gateway to an Active Directory domain. This operation is only
4361// supported for file gateways that support the SMB file protocol.
4362//
4363// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4364// with awserr.Error's Code and Message methods to get detailed information about
4365// the error.
4366//
4367// See the AWS API reference guide for AWS Storage Gateway's
4368// API operation JoinDomain for usage and error information.
4369//
4370// Returned Error Codes:
4371//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
4372//   An exception occurred because an invalid gateway request was issued to the
4373//   service. For more information, see the error and message fields.
4374//
4375//   * ErrCodeInternalServerError "InternalServerError"
4376//   An internal server error has occurred during the request. For more information,
4377//   see the error and message fields.
4378//
4379// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/JoinDomain
4380func (c *StorageGateway) JoinDomain(input *JoinDomainInput) (*JoinDomainOutput, error) {
4381	req, out := c.JoinDomainRequest(input)
4382	return out, req.Send()
4383}
4384
4385// JoinDomainWithContext is the same as JoinDomain with the addition of
4386// the ability to pass a context and additional request options.
4387//
4388// See JoinDomain for details on how to use this API operation.
4389//
4390// The context must be non-nil and will be used for request cancellation. If
4391// the context is nil a panic will occur. In the future the SDK may create
4392// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4393// for more information on using Contexts.
4394func (c *StorageGateway) JoinDomainWithContext(ctx aws.Context, input *JoinDomainInput, opts ...request.Option) (*JoinDomainOutput, error) {
4395	req, out := c.JoinDomainRequest(input)
4396	req.SetContext(ctx)
4397	req.ApplyOptions(opts...)
4398	return out, req.Send()
4399}
4400
4401const opListFileShares = "ListFileShares"
4402
4403// ListFileSharesRequest generates a "aws/request.Request" representing the
4404// client's request for the ListFileShares operation. The "output" return
4405// value will be populated with the request's response once the request completes
4406// successfully.
4407//
4408// Use "Send" method on the returned Request to send the API call to the service.
4409// the "output" return value is not valid until after Send returns without error.
4410//
4411// See ListFileShares for more information on using the ListFileShares
4412// API call, and error handling.
4413//
4414// This method is useful when you want to inject custom logic or configuration
4415// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4416//
4417//
4418//    // Example sending a request using the ListFileSharesRequest method.
4419//    req, resp := client.ListFileSharesRequest(params)
4420//
4421//    err := req.Send()
4422//    if err == nil { // resp is now filled
4423//        fmt.Println(resp)
4424//    }
4425//
4426// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListFileShares
4427func (c *StorageGateway) ListFileSharesRequest(input *ListFileSharesInput) (req *request.Request, output *ListFileSharesOutput) {
4428	op := &request.Operation{
4429		Name:       opListFileShares,
4430		HTTPMethod: "POST",
4431		HTTPPath:   "/",
4432		Paginator: &request.Paginator{
4433			InputTokens:     []string{"Marker"},
4434			OutputTokens:    []string{"NextMarker"},
4435			LimitToken:      "Limit",
4436			TruncationToken: "",
4437		},
4438	}
4439
4440	if input == nil {
4441		input = &ListFileSharesInput{}
4442	}
4443
4444	output = &ListFileSharesOutput{}
4445	req = c.newRequest(op, input, output)
4446	return
4447}
4448
4449// ListFileShares API operation for AWS Storage Gateway.
4450//
4451// Gets a list of the file shares for a specific file gateway, or the list of
4452// file shares that belong to the calling user account. This operation is only
4453// supported for file gateways.
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 ListFileShares for usage and error information.
4461//
4462// Returned Error Codes:
4463//   * ErrCodeInvalidGatewayRequestException "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//   * ErrCodeInternalServerError "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/ListFileShares
4472func (c *StorageGateway) ListFileShares(input *ListFileSharesInput) (*ListFileSharesOutput, error) {
4473	req, out := c.ListFileSharesRequest(input)
4474	return out, req.Send()
4475}
4476
4477// ListFileSharesWithContext is the same as ListFileShares with the addition of
4478// the ability to pass a context and additional request options.
4479//
4480// See ListFileShares 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) ListFileSharesWithContext(ctx aws.Context, input *ListFileSharesInput, opts ...request.Option) (*ListFileSharesOutput, error) {
4487	req, out := c.ListFileSharesRequest(input)
4488	req.SetContext(ctx)
4489	req.ApplyOptions(opts...)
4490	return out, req.Send()
4491}
4492
4493// ListFileSharesPages iterates over the pages of a ListFileShares operation,
4494// calling the "fn" function with the response data for each page. To stop
4495// iterating, return false from the fn function.
4496//
4497// See ListFileShares method for more information on how to use this operation.
4498//
4499// Note: This operation can generate multiple requests to a service.
4500//
4501//    // Example iterating over at most 3 pages of a ListFileShares operation.
4502//    pageNum := 0
4503//    err := client.ListFileSharesPages(params,
4504//        func(page *storagegateway.ListFileSharesOutput, lastPage bool) bool {
4505//            pageNum++
4506//            fmt.Println(page)
4507//            return pageNum <= 3
4508//        })
4509//
4510func (c *StorageGateway) ListFileSharesPages(input *ListFileSharesInput, fn func(*ListFileSharesOutput, bool) bool) error {
4511	return c.ListFileSharesPagesWithContext(aws.BackgroundContext(), input, fn)
4512}
4513
4514// ListFileSharesPagesWithContext same as ListFileSharesPages except
4515// it takes a Context and allows setting request options on the pages.
4516//
4517// The context must be non-nil and will be used for request cancellation. If
4518// the context is nil a panic will occur. In the future the SDK may create
4519// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4520// for more information on using Contexts.
4521func (c *StorageGateway) ListFileSharesPagesWithContext(ctx aws.Context, input *ListFileSharesInput, fn func(*ListFileSharesOutput, bool) bool, opts ...request.Option) error {
4522	p := request.Pagination{
4523		NewRequest: func() (*request.Request, error) {
4524			var inCpy *ListFileSharesInput
4525			if input != nil {
4526				tmp := *input
4527				inCpy = &tmp
4528			}
4529			req, _ := c.ListFileSharesRequest(inCpy)
4530			req.SetContext(ctx)
4531			req.ApplyOptions(opts...)
4532			return req, nil
4533		},
4534	}
4535
4536	for p.Next() {
4537		if !fn(p.Page().(*ListFileSharesOutput), !p.HasNextPage()) {
4538			break
4539		}
4540	}
4541
4542	return p.Err()
4543}
4544
4545const opListGateways = "ListGateways"
4546
4547// ListGatewaysRequest generates a "aws/request.Request" representing the
4548// client's request for the ListGateways operation. The "output" return
4549// value will be populated with the request's response once the request completes
4550// successfully.
4551//
4552// Use "Send" method on the returned Request to send the API call to the service.
4553// the "output" return value is not valid until after Send returns without error.
4554//
4555// See ListGateways for more information on using the ListGateways
4556// API call, and error handling.
4557//
4558// This method is useful when you want to inject custom logic or configuration
4559// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4560//
4561//
4562//    // Example sending a request using the ListGatewaysRequest method.
4563//    req, resp := client.ListGatewaysRequest(params)
4564//
4565//    err := req.Send()
4566//    if err == nil { // resp is now filled
4567//        fmt.Println(resp)
4568//    }
4569//
4570// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListGateways
4571func (c *StorageGateway) ListGatewaysRequest(input *ListGatewaysInput) (req *request.Request, output *ListGatewaysOutput) {
4572	op := &request.Operation{
4573		Name:       opListGateways,
4574		HTTPMethod: "POST",
4575		HTTPPath:   "/",
4576		Paginator: &request.Paginator{
4577			InputTokens:     []string{"Marker"},
4578			OutputTokens:    []string{"Marker"},
4579			LimitToken:      "Limit",
4580			TruncationToken: "",
4581		},
4582	}
4583
4584	if input == nil {
4585		input = &ListGatewaysInput{}
4586	}
4587
4588	output = &ListGatewaysOutput{}
4589	req = c.newRequest(op, input, output)
4590	return
4591}
4592
4593// ListGateways API operation for AWS Storage Gateway.
4594//
4595// Lists gateways owned by an AWS account in an AWS Region specified in the
4596// request. The returned list is ordered by gateway Amazon Resource Name (ARN).
4597//
4598// By default, the operation returns a maximum of 100 gateways. This operation
4599// supports pagination that allows you to optionally reduce the number of gateways
4600// returned in a response.
4601//
4602// If you have more gateways than are returned in a response (that is, the response
4603// returns only a truncated list of your gateways), the response contains a
4604// marker that you can specify in your next request to fetch the next page of
4605// gateways.
4606//
4607// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4608// with awserr.Error's Code and Message methods to get detailed information about
4609// the error.
4610//
4611// See the AWS API reference guide for AWS Storage Gateway's
4612// API operation ListGateways for usage and error information.
4613//
4614// Returned Error Codes:
4615//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
4616//   An exception occurred because an invalid gateway request was issued to the
4617//   service. For more information, see the error and message fields.
4618//
4619//   * ErrCodeInternalServerError "InternalServerError"
4620//   An internal server error has occurred during the request. For more information,
4621//   see the error and message fields.
4622//
4623// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListGateways
4624func (c *StorageGateway) ListGateways(input *ListGatewaysInput) (*ListGatewaysOutput, error) {
4625	req, out := c.ListGatewaysRequest(input)
4626	return out, req.Send()
4627}
4628
4629// ListGatewaysWithContext is the same as ListGateways with the addition of
4630// the ability to pass a context and additional request options.
4631//
4632// See ListGateways for details on how to use this API operation.
4633//
4634// The context must be non-nil and will be used for request cancellation. If
4635// the context is nil a panic will occur. In the future the SDK may create
4636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4637// for more information on using Contexts.
4638func (c *StorageGateway) ListGatewaysWithContext(ctx aws.Context, input *ListGatewaysInput, opts ...request.Option) (*ListGatewaysOutput, error) {
4639	req, out := c.ListGatewaysRequest(input)
4640	req.SetContext(ctx)
4641	req.ApplyOptions(opts...)
4642	return out, req.Send()
4643}
4644
4645// ListGatewaysPages iterates over the pages of a ListGateways operation,
4646// calling the "fn" function with the response data for each page. To stop
4647// iterating, return false from the fn function.
4648//
4649// See ListGateways method for more information on how to use this operation.
4650//
4651// Note: This operation can generate multiple requests to a service.
4652//
4653//    // Example iterating over at most 3 pages of a ListGateways operation.
4654//    pageNum := 0
4655//    err := client.ListGatewaysPages(params,
4656//        func(page *storagegateway.ListGatewaysOutput, lastPage bool) bool {
4657//            pageNum++
4658//            fmt.Println(page)
4659//            return pageNum <= 3
4660//        })
4661//
4662func (c *StorageGateway) ListGatewaysPages(input *ListGatewaysInput, fn func(*ListGatewaysOutput, bool) bool) error {
4663	return c.ListGatewaysPagesWithContext(aws.BackgroundContext(), input, fn)
4664}
4665
4666// ListGatewaysPagesWithContext same as ListGatewaysPages except
4667// it takes a Context and allows setting request options on the pages.
4668//
4669// The context must be non-nil and will be used for request cancellation. If
4670// the context is nil a panic will occur. In the future the SDK may create
4671// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4672// for more information on using Contexts.
4673func (c *StorageGateway) ListGatewaysPagesWithContext(ctx aws.Context, input *ListGatewaysInput, fn func(*ListGatewaysOutput, bool) bool, opts ...request.Option) error {
4674	p := request.Pagination{
4675		NewRequest: func() (*request.Request, error) {
4676			var inCpy *ListGatewaysInput
4677			if input != nil {
4678				tmp := *input
4679				inCpy = &tmp
4680			}
4681			req, _ := c.ListGatewaysRequest(inCpy)
4682			req.SetContext(ctx)
4683			req.ApplyOptions(opts...)
4684			return req, nil
4685		},
4686	}
4687
4688	for p.Next() {
4689		if !fn(p.Page().(*ListGatewaysOutput), !p.HasNextPage()) {
4690			break
4691		}
4692	}
4693
4694	return p.Err()
4695}
4696
4697const opListLocalDisks = "ListLocalDisks"
4698
4699// ListLocalDisksRequest generates a "aws/request.Request" representing the
4700// client's request for the ListLocalDisks operation. The "output" return
4701// value will be populated with the request's response once the request completes
4702// successfully.
4703//
4704// Use "Send" method on the returned Request to send the API call to the service.
4705// the "output" return value is not valid until after Send returns without error.
4706//
4707// See ListLocalDisks for more information on using the ListLocalDisks
4708// API call, and error handling.
4709//
4710// This method is useful when you want to inject custom logic or configuration
4711// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4712//
4713//
4714//    // Example sending a request using the ListLocalDisksRequest method.
4715//    req, resp := client.ListLocalDisksRequest(params)
4716//
4717//    err := req.Send()
4718//    if err == nil { // resp is now filled
4719//        fmt.Println(resp)
4720//    }
4721//
4722// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListLocalDisks
4723func (c *StorageGateway) ListLocalDisksRequest(input *ListLocalDisksInput) (req *request.Request, output *ListLocalDisksOutput) {
4724	op := &request.Operation{
4725		Name:       opListLocalDisks,
4726		HTTPMethod: "POST",
4727		HTTPPath:   "/",
4728	}
4729
4730	if input == nil {
4731		input = &ListLocalDisksInput{}
4732	}
4733
4734	output = &ListLocalDisksOutput{}
4735	req = c.newRequest(op, input, output)
4736	return
4737}
4738
4739// ListLocalDisks API operation for AWS Storage Gateway.
4740//
4741// Returns a list of the gateway's local disks. To specify which gateway to
4742// describe, you use the Amazon Resource Name (ARN) of the gateway in the body
4743// of the request.
4744//
4745// The request returns a list of all disks, specifying which are configured
4746// as working storage, cache storage, or stored volume or not configured at
4747// all. The response includes a DiskStatus field. This field can have a value
4748// of present (the disk is available to use), missing (the disk is no longer
4749// connected to the gateway), or mismatch (the disk node is occupied by a disk
4750// that has incorrect metadata or the disk content is corrupted).
4751//
4752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4753// with awserr.Error's Code and Message methods to get detailed information about
4754// the error.
4755//
4756// See the AWS API reference guide for AWS Storage Gateway's
4757// API operation ListLocalDisks for usage and error information.
4758//
4759// Returned Error Codes:
4760//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
4761//   An exception occurred because an invalid gateway request was issued to the
4762//   service. For more information, see the error and message fields.
4763//
4764//   * ErrCodeInternalServerError "InternalServerError"
4765//   An internal server error has occurred during the request. For more information,
4766//   see the error and message fields.
4767//
4768// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListLocalDisks
4769func (c *StorageGateway) ListLocalDisks(input *ListLocalDisksInput) (*ListLocalDisksOutput, error) {
4770	req, out := c.ListLocalDisksRequest(input)
4771	return out, req.Send()
4772}
4773
4774// ListLocalDisksWithContext is the same as ListLocalDisks with the addition of
4775// the ability to pass a context and additional request options.
4776//
4777// See ListLocalDisks for details on how to use this API operation.
4778//
4779// The context must be non-nil and will be used for request cancellation. If
4780// the context is nil a panic will occur. In the future the SDK may create
4781// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4782// for more information on using Contexts.
4783func (c *StorageGateway) ListLocalDisksWithContext(ctx aws.Context, input *ListLocalDisksInput, opts ...request.Option) (*ListLocalDisksOutput, error) {
4784	req, out := c.ListLocalDisksRequest(input)
4785	req.SetContext(ctx)
4786	req.ApplyOptions(opts...)
4787	return out, req.Send()
4788}
4789
4790const opListTagsForResource = "ListTagsForResource"
4791
4792// ListTagsForResourceRequest generates a "aws/request.Request" representing the
4793// client's request for the ListTagsForResource operation. The "output" return
4794// value will be populated with the request's response once the request completes
4795// successfully.
4796//
4797// Use "Send" method on the returned Request to send the API call to the service.
4798// the "output" return value is not valid until after Send returns without error.
4799//
4800// See ListTagsForResource for more information on using the ListTagsForResource
4801// API call, and error handling.
4802//
4803// This method is useful when you want to inject custom logic or configuration
4804// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4805//
4806//
4807//    // Example sending a request using the ListTagsForResourceRequest method.
4808//    req, resp := client.ListTagsForResourceRequest(params)
4809//
4810//    err := req.Send()
4811//    if err == nil { // resp is now filled
4812//        fmt.Println(resp)
4813//    }
4814//
4815// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTagsForResource
4816func (c *StorageGateway) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
4817	op := &request.Operation{
4818		Name:       opListTagsForResource,
4819		HTTPMethod: "POST",
4820		HTTPPath:   "/",
4821		Paginator: &request.Paginator{
4822			InputTokens:     []string{"Marker"},
4823			OutputTokens:    []string{"Marker"},
4824			LimitToken:      "Limit",
4825			TruncationToken: "",
4826		},
4827	}
4828
4829	if input == nil {
4830		input = &ListTagsForResourceInput{}
4831	}
4832
4833	output = &ListTagsForResourceOutput{}
4834	req = c.newRequest(op, input, output)
4835	return
4836}
4837
4838// ListTagsForResource API operation for AWS Storage Gateway.
4839//
4840// Lists the tags that have been added to the specified resource. This operation
4841// is supported in storage gateways of all types.
4842//
4843// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4844// with awserr.Error's Code and Message methods to get detailed information about
4845// the error.
4846//
4847// See the AWS API reference guide for AWS Storage Gateway's
4848// API operation ListTagsForResource for usage and error information.
4849//
4850// Returned Error Codes:
4851//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
4852//   An exception occurred because an invalid gateway request was issued to the
4853//   service. For more information, see the error and message fields.
4854//
4855//   * ErrCodeInternalServerError "InternalServerError"
4856//   An internal server error has occurred during the request. For more information,
4857//   see the error and message fields.
4858//
4859// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTagsForResource
4860func (c *StorageGateway) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
4861	req, out := c.ListTagsForResourceRequest(input)
4862	return out, req.Send()
4863}
4864
4865// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
4866// the ability to pass a context and additional request options.
4867//
4868// See ListTagsForResource for details on how to use this API operation.
4869//
4870// The context must be non-nil and will be used for request cancellation. If
4871// the context is nil a panic will occur. In the future the SDK may create
4872// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4873// for more information on using Contexts.
4874func (c *StorageGateway) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
4875	req, out := c.ListTagsForResourceRequest(input)
4876	req.SetContext(ctx)
4877	req.ApplyOptions(opts...)
4878	return out, req.Send()
4879}
4880
4881// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
4882// calling the "fn" function with the response data for each page. To stop
4883// iterating, return false from the fn function.
4884//
4885// See ListTagsForResource method for more information on how to use this operation.
4886//
4887// Note: This operation can generate multiple requests to a service.
4888//
4889//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
4890//    pageNum := 0
4891//    err := client.ListTagsForResourcePages(params,
4892//        func(page *storagegateway.ListTagsForResourceOutput, lastPage bool) bool {
4893//            pageNum++
4894//            fmt.Println(page)
4895//            return pageNum <= 3
4896//        })
4897//
4898func (c *StorageGateway) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
4899	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
4900}
4901
4902// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
4903// it takes a Context and allows setting request options on the pages.
4904//
4905// The context must be non-nil and will be used for request cancellation. If
4906// the context is nil a panic will occur. In the future the SDK may create
4907// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4908// for more information on using Contexts.
4909func (c *StorageGateway) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
4910	p := request.Pagination{
4911		NewRequest: func() (*request.Request, error) {
4912			var inCpy *ListTagsForResourceInput
4913			if input != nil {
4914				tmp := *input
4915				inCpy = &tmp
4916			}
4917			req, _ := c.ListTagsForResourceRequest(inCpy)
4918			req.SetContext(ctx)
4919			req.ApplyOptions(opts...)
4920			return req, nil
4921		},
4922	}
4923
4924	for p.Next() {
4925		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
4926			break
4927		}
4928	}
4929
4930	return p.Err()
4931}
4932
4933const opListTapes = "ListTapes"
4934
4935// ListTapesRequest generates a "aws/request.Request" representing the
4936// client's request for the ListTapes operation. The "output" return
4937// value will be populated with the request's response once the request completes
4938// successfully.
4939//
4940// Use "Send" method on the returned Request to send the API call to the service.
4941// the "output" return value is not valid until after Send returns without error.
4942//
4943// See ListTapes for more information on using the ListTapes
4944// API call, and error handling.
4945//
4946// This method is useful when you want to inject custom logic or configuration
4947// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4948//
4949//
4950//    // Example sending a request using the ListTapesRequest method.
4951//    req, resp := client.ListTapesRequest(params)
4952//
4953//    err := req.Send()
4954//    if err == nil { // resp is now filled
4955//        fmt.Println(resp)
4956//    }
4957//
4958// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapes
4959func (c *StorageGateway) ListTapesRequest(input *ListTapesInput) (req *request.Request, output *ListTapesOutput) {
4960	op := &request.Operation{
4961		Name:       opListTapes,
4962		HTTPMethod: "POST",
4963		HTTPPath:   "/",
4964		Paginator: &request.Paginator{
4965			InputTokens:     []string{"Marker"},
4966			OutputTokens:    []string{"Marker"},
4967			LimitToken:      "Limit",
4968			TruncationToken: "",
4969		},
4970	}
4971
4972	if input == nil {
4973		input = &ListTapesInput{}
4974	}
4975
4976	output = &ListTapesOutput{}
4977	req = c.newRequest(op, input, output)
4978	return
4979}
4980
4981// ListTapes API operation for AWS Storage Gateway.
4982//
4983// Lists virtual tapes in your virtual tape library (VTL) and your virtual tape
4984// shelf (VTS). You specify the tapes to list by specifying one or more tape
4985// Amazon Resource Names (ARNs). If you don't specify a tape ARN, the operation
4986// lists all virtual tapes in both your VTL and VTS.
4987//
4988// This operation supports pagination. By default, the operation returns a maximum
4989// of up to 100 tapes. You can optionally specify the Limit parameter in the
4990// body to limit the number of tapes in the response. If the number of tapes
4991// returned in the response is truncated, the response includes a Marker element
4992// that you can use in your subsequent request to retrieve the next set of tapes.
4993// This operation is only supported in the tape gateway type.
4994//
4995// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4996// with awserr.Error's Code and Message methods to get detailed information about
4997// the error.
4998//
4999// See the AWS API reference guide for AWS Storage Gateway's
5000// API operation ListTapes for usage and error information.
5001//
5002// Returned Error Codes:
5003//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
5004//   An exception occurred because an invalid gateway request was issued to the
5005//   service. For more information, see the error and message fields.
5006//
5007//   * ErrCodeInternalServerError "InternalServerError"
5008//   An internal server error has occurred during the request. For more information,
5009//   see the error and message fields.
5010//
5011// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListTapes
5012func (c *StorageGateway) ListTapes(input *ListTapesInput) (*ListTapesOutput, error) {
5013	req, out := c.ListTapesRequest(input)
5014	return out, req.Send()
5015}
5016
5017// ListTapesWithContext is the same as ListTapes with the addition of
5018// the ability to pass a context and additional request options.
5019//
5020// See ListTapes for details on how to use this API operation.
5021//
5022// The context must be non-nil and will be used for request cancellation. If
5023// the context is nil a panic will occur. In the future the SDK may create
5024// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5025// for more information on using Contexts.
5026func (c *StorageGateway) ListTapesWithContext(ctx aws.Context, input *ListTapesInput, opts ...request.Option) (*ListTapesOutput, error) {
5027	req, out := c.ListTapesRequest(input)
5028	req.SetContext(ctx)
5029	req.ApplyOptions(opts...)
5030	return out, req.Send()
5031}
5032
5033// ListTapesPages iterates over the pages of a ListTapes operation,
5034// calling the "fn" function with the response data for each page. To stop
5035// iterating, return false from the fn function.
5036//
5037// See ListTapes method for more information on how to use this operation.
5038//
5039// Note: This operation can generate multiple requests to a service.
5040//
5041//    // Example iterating over at most 3 pages of a ListTapes operation.
5042//    pageNum := 0
5043//    err := client.ListTapesPages(params,
5044//        func(page *storagegateway.ListTapesOutput, lastPage bool) bool {
5045//            pageNum++
5046//            fmt.Println(page)
5047//            return pageNum <= 3
5048//        })
5049//
5050func (c *StorageGateway) ListTapesPages(input *ListTapesInput, fn func(*ListTapesOutput, bool) bool) error {
5051	return c.ListTapesPagesWithContext(aws.BackgroundContext(), input, fn)
5052}
5053
5054// ListTapesPagesWithContext same as ListTapesPages except
5055// it takes a Context and allows setting request options on the pages.
5056//
5057// The context must be non-nil and will be used for request cancellation. If
5058// the context is nil a panic will occur. In the future the SDK may create
5059// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5060// for more information on using Contexts.
5061func (c *StorageGateway) ListTapesPagesWithContext(ctx aws.Context, input *ListTapesInput, fn func(*ListTapesOutput, bool) bool, opts ...request.Option) error {
5062	p := request.Pagination{
5063		NewRequest: func() (*request.Request, error) {
5064			var inCpy *ListTapesInput
5065			if input != nil {
5066				tmp := *input
5067				inCpy = &tmp
5068			}
5069			req, _ := c.ListTapesRequest(inCpy)
5070			req.SetContext(ctx)
5071			req.ApplyOptions(opts...)
5072			return req, nil
5073		},
5074	}
5075
5076	for p.Next() {
5077		if !fn(p.Page().(*ListTapesOutput), !p.HasNextPage()) {
5078			break
5079		}
5080	}
5081
5082	return p.Err()
5083}
5084
5085const opListVolumeInitiators = "ListVolumeInitiators"
5086
5087// ListVolumeInitiatorsRequest generates a "aws/request.Request" representing the
5088// client's request for the ListVolumeInitiators operation. The "output" return
5089// value will be populated with the request's response once the request completes
5090// successfully.
5091//
5092// Use "Send" method on the returned Request to send the API call to the service.
5093// the "output" return value is not valid until after Send returns without error.
5094//
5095// See ListVolumeInitiators for more information on using the ListVolumeInitiators
5096// API call, and error handling.
5097//
5098// This method is useful when you want to inject custom logic or configuration
5099// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5100//
5101//
5102//    // Example sending a request using the ListVolumeInitiatorsRequest method.
5103//    req, resp := client.ListVolumeInitiatorsRequest(params)
5104//
5105//    err := req.Send()
5106//    if err == nil { // resp is now filled
5107//        fmt.Println(resp)
5108//    }
5109//
5110// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeInitiators
5111func (c *StorageGateway) ListVolumeInitiatorsRequest(input *ListVolumeInitiatorsInput) (req *request.Request, output *ListVolumeInitiatorsOutput) {
5112	op := &request.Operation{
5113		Name:       opListVolumeInitiators,
5114		HTTPMethod: "POST",
5115		HTTPPath:   "/",
5116	}
5117
5118	if input == nil {
5119		input = &ListVolumeInitiatorsInput{}
5120	}
5121
5122	output = &ListVolumeInitiatorsOutput{}
5123	req = c.newRequest(op, input, output)
5124	return
5125}
5126
5127// ListVolumeInitiators API operation for AWS Storage Gateway.
5128//
5129// Lists iSCSI initiators that are connected to a volume. You can use this operation
5130// to determine whether a volume is being used or not. This operation is only
5131// supported in the cached volume and stored volume gateway types.
5132//
5133// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5134// with awserr.Error's Code and Message methods to get detailed information about
5135// the error.
5136//
5137// See the AWS API reference guide for AWS Storage Gateway's
5138// API operation ListVolumeInitiators for usage and error information.
5139//
5140// Returned Error Codes:
5141//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
5142//   An exception occurred because an invalid gateway request was issued to the
5143//   service. For more information, see the error and message fields.
5144//
5145//   * ErrCodeInternalServerError "InternalServerError"
5146//   An internal server error has occurred during the request. For more information,
5147//   see the error and message fields.
5148//
5149// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeInitiators
5150func (c *StorageGateway) ListVolumeInitiators(input *ListVolumeInitiatorsInput) (*ListVolumeInitiatorsOutput, error) {
5151	req, out := c.ListVolumeInitiatorsRequest(input)
5152	return out, req.Send()
5153}
5154
5155// ListVolumeInitiatorsWithContext is the same as ListVolumeInitiators with the addition of
5156// the ability to pass a context and additional request options.
5157//
5158// See ListVolumeInitiators for details on how to use this API operation.
5159//
5160// The context must be non-nil and will be used for request cancellation. If
5161// the context is nil a panic will occur. In the future the SDK may create
5162// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5163// for more information on using Contexts.
5164func (c *StorageGateway) ListVolumeInitiatorsWithContext(ctx aws.Context, input *ListVolumeInitiatorsInput, opts ...request.Option) (*ListVolumeInitiatorsOutput, error) {
5165	req, out := c.ListVolumeInitiatorsRequest(input)
5166	req.SetContext(ctx)
5167	req.ApplyOptions(opts...)
5168	return out, req.Send()
5169}
5170
5171const opListVolumeRecoveryPoints = "ListVolumeRecoveryPoints"
5172
5173// ListVolumeRecoveryPointsRequest generates a "aws/request.Request" representing the
5174// client's request for the ListVolumeRecoveryPoints operation. The "output" return
5175// value will be populated with the request's response once the request completes
5176// successfully.
5177//
5178// Use "Send" method on the returned Request to send the API call to the service.
5179// the "output" return value is not valid until after Send returns without error.
5180//
5181// See ListVolumeRecoveryPoints for more information on using the ListVolumeRecoveryPoints
5182// API call, and error handling.
5183//
5184// This method is useful when you want to inject custom logic or configuration
5185// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5186//
5187//
5188//    // Example sending a request using the ListVolumeRecoveryPointsRequest method.
5189//    req, resp := client.ListVolumeRecoveryPointsRequest(params)
5190//
5191//    err := req.Send()
5192//    if err == nil { // resp is now filled
5193//        fmt.Println(resp)
5194//    }
5195//
5196// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeRecoveryPoints
5197func (c *StorageGateway) ListVolumeRecoveryPointsRequest(input *ListVolumeRecoveryPointsInput) (req *request.Request, output *ListVolumeRecoveryPointsOutput) {
5198	op := &request.Operation{
5199		Name:       opListVolumeRecoveryPoints,
5200		HTTPMethod: "POST",
5201		HTTPPath:   "/",
5202	}
5203
5204	if input == nil {
5205		input = &ListVolumeRecoveryPointsInput{}
5206	}
5207
5208	output = &ListVolumeRecoveryPointsOutput{}
5209	req = c.newRequest(op, input, output)
5210	return
5211}
5212
5213// ListVolumeRecoveryPoints API operation for AWS Storage Gateway.
5214//
5215// Lists the recovery points for a specified gateway. This operation is only
5216// supported in the cached volume gateway type.
5217//
5218// Each cache volume has one recovery point. A volume recovery point is a point
5219// in time at which all data of the volume is consistent and from which you
5220// can create a snapshot or clone a new cached volume from a source volume.
5221// To create a snapshot from a volume recovery point use the CreateSnapshotFromVolumeRecoveryPoint
5222// operation.
5223//
5224// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5225// with awserr.Error's Code and Message methods to get detailed information about
5226// the error.
5227//
5228// See the AWS API reference guide for AWS Storage Gateway's
5229// API operation ListVolumeRecoveryPoints for usage and error information.
5230//
5231// Returned Error Codes:
5232//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
5233//   An exception occurred because an invalid gateway request was issued to the
5234//   service. For more information, see the error and message fields.
5235//
5236//   * ErrCodeInternalServerError "InternalServerError"
5237//   An internal server error has occurred during the request. For more information,
5238//   see the error and message fields.
5239//
5240// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumeRecoveryPoints
5241func (c *StorageGateway) ListVolumeRecoveryPoints(input *ListVolumeRecoveryPointsInput) (*ListVolumeRecoveryPointsOutput, error) {
5242	req, out := c.ListVolumeRecoveryPointsRequest(input)
5243	return out, req.Send()
5244}
5245
5246// ListVolumeRecoveryPointsWithContext is the same as ListVolumeRecoveryPoints with the addition of
5247// the ability to pass a context and additional request options.
5248//
5249// See ListVolumeRecoveryPoints for details on how to use this API operation.
5250//
5251// The context must be non-nil and will be used for request cancellation. If
5252// the context is nil a panic will occur. In the future the SDK may create
5253// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5254// for more information on using Contexts.
5255func (c *StorageGateway) ListVolumeRecoveryPointsWithContext(ctx aws.Context, input *ListVolumeRecoveryPointsInput, opts ...request.Option) (*ListVolumeRecoveryPointsOutput, error) {
5256	req, out := c.ListVolumeRecoveryPointsRequest(input)
5257	req.SetContext(ctx)
5258	req.ApplyOptions(opts...)
5259	return out, req.Send()
5260}
5261
5262const opListVolumes = "ListVolumes"
5263
5264// ListVolumesRequest generates a "aws/request.Request" representing the
5265// client's request for the ListVolumes operation. The "output" return
5266// value will be populated with the request's response once the request completes
5267// successfully.
5268//
5269// Use "Send" method on the returned Request to send the API call to the service.
5270// the "output" return value is not valid until after Send returns without error.
5271//
5272// See ListVolumes for more information on using the ListVolumes
5273// API call, and error handling.
5274//
5275// This method is useful when you want to inject custom logic or configuration
5276// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5277//
5278//
5279//    // Example sending a request using the ListVolumesRequest method.
5280//    req, resp := client.ListVolumesRequest(params)
5281//
5282//    err := req.Send()
5283//    if err == nil { // resp is now filled
5284//        fmt.Println(resp)
5285//    }
5286//
5287// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumes
5288func (c *StorageGateway) ListVolumesRequest(input *ListVolumesInput) (req *request.Request, output *ListVolumesOutput) {
5289	op := &request.Operation{
5290		Name:       opListVolumes,
5291		HTTPMethod: "POST",
5292		HTTPPath:   "/",
5293		Paginator: &request.Paginator{
5294			InputTokens:     []string{"Marker"},
5295			OutputTokens:    []string{"Marker"},
5296			LimitToken:      "Limit",
5297			TruncationToken: "",
5298		},
5299	}
5300
5301	if input == nil {
5302		input = &ListVolumesInput{}
5303	}
5304
5305	output = &ListVolumesOutput{}
5306	req = c.newRequest(op, input, output)
5307	return
5308}
5309
5310// ListVolumes API operation for AWS Storage Gateway.
5311//
5312// Lists the iSCSI stored volumes of a gateway. Results are sorted by volume
5313// ARN. The response includes only the volume ARNs. If you want additional volume
5314// information, use the DescribeStorediSCSIVolumes or the DescribeCachediSCSIVolumes
5315// API.
5316//
5317// The operation supports pagination. By default, the operation returns a maximum
5318// of up to 100 volumes. You can optionally specify the Limit field in the body
5319// to limit the number of volumes in the response. If the number of volumes
5320// returned in the response is truncated, the response includes a Marker field.
5321// You can use this Marker value in your subsequent request to retrieve the
5322// next set of volumes. This operation is only supported in the cached volume
5323// and stored volume gateway types.
5324//
5325// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5326// with awserr.Error's Code and Message methods to get detailed information about
5327// the error.
5328//
5329// See the AWS API reference guide for AWS Storage Gateway's
5330// API operation ListVolumes for usage and error information.
5331//
5332// Returned Error Codes:
5333//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
5334//   An exception occurred because an invalid gateway request was issued to the
5335//   service. For more information, see the error and message fields.
5336//
5337//   * ErrCodeInternalServerError "InternalServerError"
5338//   An internal server error has occurred during the request. For more information,
5339//   see the error and message fields.
5340//
5341// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ListVolumes
5342func (c *StorageGateway) ListVolumes(input *ListVolumesInput) (*ListVolumesOutput, error) {
5343	req, out := c.ListVolumesRequest(input)
5344	return out, req.Send()
5345}
5346
5347// ListVolumesWithContext is the same as ListVolumes with the addition of
5348// the ability to pass a context and additional request options.
5349//
5350// See ListVolumes for details on how to use this API operation.
5351//
5352// The context must be non-nil and will be used for request cancellation. If
5353// the context is nil a panic will occur. In the future the SDK may create
5354// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5355// for more information on using Contexts.
5356func (c *StorageGateway) ListVolumesWithContext(ctx aws.Context, input *ListVolumesInput, opts ...request.Option) (*ListVolumesOutput, error) {
5357	req, out := c.ListVolumesRequest(input)
5358	req.SetContext(ctx)
5359	req.ApplyOptions(opts...)
5360	return out, req.Send()
5361}
5362
5363// ListVolumesPages iterates over the pages of a ListVolumes operation,
5364// calling the "fn" function with the response data for each page. To stop
5365// iterating, return false from the fn function.
5366//
5367// See ListVolumes method for more information on how to use this operation.
5368//
5369// Note: This operation can generate multiple requests to a service.
5370//
5371//    // Example iterating over at most 3 pages of a ListVolumes operation.
5372//    pageNum := 0
5373//    err := client.ListVolumesPages(params,
5374//        func(page *storagegateway.ListVolumesOutput, lastPage bool) bool {
5375//            pageNum++
5376//            fmt.Println(page)
5377//            return pageNum <= 3
5378//        })
5379//
5380func (c *StorageGateway) ListVolumesPages(input *ListVolumesInput, fn func(*ListVolumesOutput, bool) bool) error {
5381	return c.ListVolumesPagesWithContext(aws.BackgroundContext(), input, fn)
5382}
5383
5384// ListVolumesPagesWithContext same as ListVolumesPages except
5385// it takes a Context and allows setting request options on the pages.
5386//
5387// The context must be non-nil and will be used for request cancellation. If
5388// the context is nil a panic will occur. In the future the SDK may create
5389// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5390// for more information on using Contexts.
5391func (c *StorageGateway) ListVolumesPagesWithContext(ctx aws.Context, input *ListVolumesInput, fn func(*ListVolumesOutput, bool) bool, opts ...request.Option) error {
5392	p := request.Pagination{
5393		NewRequest: func() (*request.Request, error) {
5394			var inCpy *ListVolumesInput
5395			if input != nil {
5396				tmp := *input
5397				inCpy = &tmp
5398			}
5399			req, _ := c.ListVolumesRequest(inCpy)
5400			req.SetContext(ctx)
5401			req.ApplyOptions(opts...)
5402			return req, nil
5403		},
5404	}
5405
5406	for p.Next() {
5407		if !fn(p.Page().(*ListVolumesOutput), !p.HasNextPage()) {
5408			break
5409		}
5410	}
5411
5412	return p.Err()
5413}
5414
5415const opNotifyWhenUploaded = "NotifyWhenUploaded"
5416
5417// NotifyWhenUploadedRequest generates a "aws/request.Request" representing the
5418// client's request for the NotifyWhenUploaded operation. The "output" return
5419// value will be populated with the request's response once the request completes
5420// successfully.
5421//
5422// Use "Send" method on the returned Request to send the API call to the service.
5423// the "output" return value is not valid until after Send returns without error.
5424//
5425// See NotifyWhenUploaded for more information on using the NotifyWhenUploaded
5426// API call, and error handling.
5427//
5428// This method is useful when you want to inject custom logic or configuration
5429// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5430//
5431//
5432//    // Example sending a request using the NotifyWhenUploadedRequest method.
5433//    req, resp := client.NotifyWhenUploadedRequest(params)
5434//
5435//    err := req.Send()
5436//    if err == nil { // resp is now filled
5437//        fmt.Println(resp)
5438//    }
5439//
5440// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/NotifyWhenUploaded
5441func (c *StorageGateway) NotifyWhenUploadedRequest(input *NotifyWhenUploadedInput) (req *request.Request, output *NotifyWhenUploadedOutput) {
5442	op := &request.Operation{
5443		Name:       opNotifyWhenUploaded,
5444		HTTPMethod: "POST",
5445		HTTPPath:   "/",
5446	}
5447
5448	if input == nil {
5449		input = &NotifyWhenUploadedInput{}
5450	}
5451
5452	output = &NotifyWhenUploadedOutput{}
5453	req = c.newRequest(op, input, output)
5454	return
5455}
5456
5457// NotifyWhenUploaded API operation for AWS Storage Gateway.
5458//
5459// Sends you notification through CloudWatch Events when all files written to
5460// your file share have been uploaded to Amazon S3.
5461//
5462// AWS Storage Gateway can send a notification through Amazon CloudWatch Events
5463// when all files written to your file share up to that point in time have been
5464// uploaded to Amazon S3. These files include files written to the file share
5465// up to the time that you make a request for notification. When the upload
5466// is done, Storage Gateway sends you notification through an Amazon CloudWatch
5467// Event. You can configure CloudWatch Events to send the notification through
5468// event targets such as Amazon SNS or AWS Lambda function. This operation is
5469// only supported for file gateways.
5470//
5471// For more information, see Getting File Upload Notification in the Storage
5472// Gateway User Guide (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-upload-notification).
5473//
5474// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5475// with awserr.Error's Code and Message methods to get detailed information about
5476// the error.
5477//
5478// See the AWS API reference guide for AWS Storage Gateway's
5479// API operation NotifyWhenUploaded for usage and error information.
5480//
5481// Returned Error Codes:
5482//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
5483//   An exception occurred because an invalid gateway request was issued to the
5484//   service. For more information, see the error and message fields.
5485//
5486//   * ErrCodeInternalServerError "InternalServerError"
5487//   An internal server error has occurred during the request. For more information,
5488//   see the error and message fields.
5489//
5490// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/NotifyWhenUploaded
5491func (c *StorageGateway) NotifyWhenUploaded(input *NotifyWhenUploadedInput) (*NotifyWhenUploadedOutput, error) {
5492	req, out := c.NotifyWhenUploadedRequest(input)
5493	return out, req.Send()
5494}
5495
5496// NotifyWhenUploadedWithContext is the same as NotifyWhenUploaded with the addition of
5497// the ability to pass a context and additional request options.
5498//
5499// See NotifyWhenUploaded for details on how to use this API operation.
5500//
5501// The context must be non-nil and will be used for request cancellation. If
5502// the context is nil a panic will occur. In the future the SDK may create
5503// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5504// for more information on using Contexts.
5505func (c *StorageGateway) NotifyWhenUploadedWithContext(ctx aws.Context, input *NotifyWhenUploadedInput, opts ...request.Option) (*NotifyWhenUploadedOutput, error) {
5506	req, out := c.NotifyWhenUploadedRequest(input)
5507	req.SetContext(ctx)
5508	req.ApplyOptions(opts...)
5509	return out, req.Send()
5510}
5511
5512const opRefreshCache = "RefreshCache"
5513
5514// RefreshCacheRequest generates a "aws/request.Request" representing the
5515// client's request for the RefreshCache operation. The "output" return
5516// value will be populated with the request's response once the request completes
5517// successfully.
5518//
5519// Use "Send" method on the returned Request to send the API call to the service.
5520// the "output" return value is not valid until after Send returns without error.
5521//
5522// See RefreshCache for more information on using the RefreshCache
5523// API call, and error handling.
5524//
5525// This method is useful when you want to inject custom logic or configuration
5526// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5527//
5528//
5529//    // Example sending a request using the RefreshCacheRequest method.
5530//    req, resp := client.RefreshCacheRequest(params)
5531//
5532//    err := req.Send()
5533//    if err == nil { // resp is now filled
5534//        fmt.Println(resp)
5535//    }
5536//
5537// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RefreshCache
5538func (c *StorageGateway) RefreshCacheRequest(input *RefreshCacheInput) (req *request.Request, output *RefreshCacheOutput) {
5539	op := &request.Operation{
5540		Name:       opRefreshCache,
5541		HTTPMethod: "POST",
5542		HTTPPath:   "/",
5543	}
5544
5545	if input == nil {
5546		input = &RefreshCacheInput{}
5547	}
5548
5549	output = &RefreshCacheOutput{}
5550	req = c.newRequest(op, input, output)
5551	return
5552}
5553
5554// RefreshCache API operation for AWS Storage Gateway.
5555//
5556// Refreshes the cache for the specified file share. This operation finds objects
5557// in the Amazon S3 bucket that were added, removed or replaced since the gateway
5558// last listed the bucket's contents and cached the results. This operation
5559// is only supported in the file gateway type. You can subscribe to be notified
5560// through an Amazon CloudWatch event when your RefreshCache operation completes.
5561// For more information, see Getting Notified About File Operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification).
5562//
5563// When this API is called, it only initiates the refresh operation. When the
5564// API call completes and returns a success code, it doesn't necessarily mean
5565// that the file refresh has completed. You should use the refresh-complete
5566// notification to determine that the operation has completed before you check
5567// for new files on the gateway file share. You can subscribe to be notified
5568// through an CloudWatch event when your RefreshCache operation completes.
5569//
5570// Throttle limit: This API is asynchronous so the gateway will accept no more
5571// than two refreshes at any time. We recommend using the refresh-complete CloudWatch
5572// event notification before issuing additional requests. For more information,
5573// see Getting Notified About File Operations (https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification).
5574//
5575// If you invoke the RefreshCache API when two requests are already being processed,
5576// any new request will cause an InvalidGatewayRequestException error because
5577// too many requests were sent to the server.
5578//
5579// For more information, see "https://docs.aws.amazon.com/storagegateway/latest/userguide/monitoring-file-gateway.html#get-notification".
5580//
5581// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5582// with awserr.Error's Code and Message methods to get detailed information about
5583// the error.
5584//
5585// See the AWS API reference guide for AWS Storage Gateway's
5586// API operation RefreshCache for usage and error information.
5587//
5588// Returned Error Codes:
5589//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
5590//   An exception occurred because an invalid gateway request was issued to the
5591//   service. For more information, see the error and message fields.
5592//
5593//   * ErrCodeInternalServerError "InternalServerError"
5594//   An internal server error has occurred during the request. For more information,
5595//   see the error and message fields.
5596//
5597// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RefreshCache
5598func (c *StorageGateway) RefreshCache(input *RefreshCacheInput) (*RefreshCacheOutput, error) {
5599	req, out := c.RefreshCacheRequest(input)
5600	return out, req.Send()
5601}
5602
5603// RefreshCacheWithContext is the same as RefreshCache with the addition of
5604// the ability to pass a context and additional request options.
5605//
5606// See RefreshCache for details on how to use this API operation.
5607//
5608// The context must be non-nil and will be used for request cancellation. If
5609// the context is nil a panic will occur. In the future the SDK may create
5610// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5611// for more information on using Contexts.
5612func (c *StorageGateway) RefreshCacheWithContext(ctx aws.Context, input *RefreshCacheInput, opts ...request.Option) (*RefreshCacheOutput, error) {
5613	req, out := c.RefreshCacheRequest(input)
5614	req.SetContext(ctx)
5615	req.ApplyOptions(opts...)
5616	return out, req.Send()
5617}
5618
5619const opRemoveTagsFromResource = "RemoveTagsFromResource"
5620
5621// RemoveTagsFromResourceRequest generates a "aws/request.Request" representing the
5622// client's request for the RemoveTagsFromResource operation. The "output" return
5623// value will be populated with the request's response once the request completes
5624// successfully.
5625//
5626// Use "Send" method on the returned Request to send the API call to the service.
5627// the "output" return value is not valid until after Send returns without error.
5628//
5629// See RemoveTagsFromResource for more information on using the RemoveTagsFromResource
5630// API call, and error handling.
5631//
5632// This method is useful when you want to inject custom logic or configuration
5633// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5634//
5635//
5636//    // Example sending a request using the RemoveTagsFromResourceRequest method.
5637//    req, resp := client.RemoveTagsFromResourceRequest(params)
5638//
5639//    err := req.Send()
5640//    if err == nil { // resp is now filled
5641//        fmt.Println(resp)
5642//    }
5643//
5644// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RemoveTagsFromResource
5645func (c *StorageGateway) RemoveTagsFromResourceRequest(input *RemoveTagsFromResourceInput) (req *request.Request, output *RemoveTagsFromResourceOutput) {
5646	op := &request.Operation{
5647		Name:       opRemoveTagsFromResource,
5648		HTTPMethod: "POST",
5649		HTTPPath:   "/",
5650	}
5651
5652	if input == nil {
5653		input = &RemoveTagsFromResourceInput{}
5654	}
5655
5656	output = &RemoveTagsFromResourceOutput{}
5657	req = c.newRequest(op, input, output)
5658	return
5659}
5660
5661// RemoveTagsFromResource API operation for AWS Storage Gateway.
5662//
5663// Removes one or more tags from the specified resource. This operation is supported
5664// in storage gateways of all types.
5665//
5666// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5667// with awserr.Error's Code and Message methods to get detailed information about
5668// the error.
5669//
5670// See the AWS API reference guide for AWS Storage Gateway's
5671// API operation RemoveTagsFromResource for usage and error information.
5672//
5673// Returned Error Codes:
5674//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
5675//   An exception occurred because an invalid gateway request was issued to the
5676//   service. For more information, see the error and message fields.
5677//
5678//   * ErrCodeInternalServerError "InternalServerError"
5679//   An internal server error has occurred during the request. For more information,
5680//   see the error and message fields.
5681//
5682// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RemoveTagsFromResource
5683func (c *StorageGateway) RemoveTagsFromResource(input *RemoveTagsFromResourceInput) (*RemoveTagsFromResourceOutput, error) {
5684	req, out := c.RemoveTagsFromResourceRequest(input)
5685	return out, req.Send()
5686}
5687
5688// RemoveTagsFromResourceWithContext is the same as RemoveTagsFromResource with the addition of
5689// the ability to pass a context and additional request options.
5690//
5691// See RemoveTagsFromResource for details on how to use this API operation.
5692//
5693// The context must be non-nil and will be used for request cancellation. If
5694// the context is nil a panic will occur. In the future the SDK may create
5695// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5696// for more information on using Contexts.
5697func (c *StorageGateway) RemoveTagsFromResourceWithContext(ctx aws.Context, input *RemoveTagsFromResourceInput, opts ...request.Option) (*RemoveTagsFromResourceOutput, error) {
5698	req, out := c.RemoveTagsFromResourceRequest(input)
5699	req.SetContext(ctx)
5700	req.ApplyOptions(opts...)
5701	return out, req.Send()
5702}
5703
5704const opResetCache = "ResetCache"
5705
5706// ResetCacheRequest generates a "aws/request.Request" representing the
5707// client's request for the ResetCache operation. The "output" return
5708// value will be populated with the request's response once the request completes
5709// successfully.
5710//
5711// Use "Send" method on the returned Request to send the API call to the service.
5712// the "output" return value is not valid until after Send returns without error.
5713//
5714// See ResetCache for more information on using the ResetCache
5715// API call, and error handling.
5716//
5717// This method is useful when you want to inject custom logic or configuration
5718// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5719//
5720//
5721//    // Example sending a request using the ResetCacheRequest method.
5722//    req, resp := client.ResetCacheRequest(params)
5723//
5724//    err := req.Send()
5725//    if err == nil { // resp is now filled
5726//        fmt.Println(resp)
5727//    }
5728//
5729// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ResetCache
5730func (c *StorageGateway) ResetCacheRequest(input *ResetCacheInput) (req *request.Request, output *ResetCacheOutput) {
5731	op := &request.Operation{
5732		Name:       opResetCache,
5733		HTTPMethod: "POST",
5734		HTTPPath:   "/",
5735	}
5736
5737	if input == nil {
5738		input = &ResetCacheInput{}
5739	}
5740
5741	output = &ResetCacheOutput{}
5742	req = c.newRequest(op, input, output)
5743	return
5744}
5745
5746// ResetCache API operation for AWS Storage Gateway.
5747//
5748// Resets all cache disks that have encountered a error and makes the disks
5749// available for reconfiguration as cache storage. If your cache disk encounters
5750// a error, the gateway prevents read and write operations on virtual tapes
5751// in the gateway. For example, an error can occur when a disk is corrupted
5752// or removed from the gateway. When a cache is reset, the gateway loses its
5753// cache storage. At this point you can reconfigure the disks as cache disks.
5754// This operation is only supported in the cached volume and tape types.
5755//
5756// If the cache disk you are resetting contains data that has not been uploaded
5757// to Amazon S3 yet, that data can be lost. After you reset cache disks, there
5758// will be no configured cache disks left in the gateway, so you must configure
5759// at least one new cache disk for your gateway to function properly.
5760//
5761// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5762// with awserr.Error's Code and Message methods to get detailed information about
5763// the error.
5764//
5765// See the AWS API reference guide for AWS Storage Gateway's
5766// API operation ResetCache for usage and error information.
5767//
5768// Returned Error Codes:
5769//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
5770//   An exception occurred because an invalid gateway request was issued to the
5771//   service. For more information, see the error and message fields.
5772//
5773//   * ErrCodeInternalServerError "InternalServerError"
5774//   An internal server error has occurred during the request. For more information,
5775//   see the error and message fields.
5776//
5777// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ResetCache
5778func (c *StorageGateway) ResetCache(input *ResetCacheInput) (*ResetCacheOutput, error) {
5779	req, out := c.ResetCacheRequest(input)
5780	return out, req.Send()
5781}
5782
5783// ResetCacheWithContext is the same as ResetCache with the addition of
5784// the ability to pass a context and additional request options.
5785//
5786// See ResetCache for details on how to use this API operation.
5787//
5788// The context must be non-nil and will be used for request cancellation. If
5789// the context is nil a panic will occur. In the future the SDK may create
5790// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5791// for more information on using Contexts.
5792func (c *StorageGateway) ResetCacheWithContext(ctx aws.Context, input *ResetCacheInput, opts ...request.Option) (*ResetCacheOutput, error) {
5793	req, out := c.ResetCacheRequest(input)
5794	req.SetContext(ctx)
5795	req.ApplyOptions(opts...)
5796	return out, req.Send()
5797}
5798
5799const opRetrieveTapeArchive = "RetrieveTapeArchive"
5800
5801// RetrieveTapeArchiveRequest generates a "aws/request.Request" representing the
5802// client's request for the RetrieveTapeArchive operation. The "output" return
5803// value will be populated with the request's response once the request completes
5804// successfully.
5805//
5806// Use "Send" method on the returned Request to send the API call to the service.
5807// the "output" return value is not valid until after Send returns without error.
5808//
5809// See RetrieveTapeArchive for more information on using the RetrieveTapeArchive
5810// API call, and error handling.
5811//
5812// This method is useful when you want to inject custom logic or configuration
5813// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5814//
5815//
5816//    // Example sending a request using the RetrieveTapeArchiveRequest method.
5817//    req, resp := client.RetrieveTapeArchiveRequest(params)
5818//
5819//    err := req.Send()
5820//    if err == nil { // resp is now filled
5821//        fmt.Println(resp)
5822//    }
5823//
5824// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeArchive
5825func (c *StorageGateway) RetrieveTapeArchiveRequest(input *RetrieveTapeArchiveInput) (req *request.Request, output *RetrieveTapeArchiveOutput) {
5826	op := &request.Operation{
5827		Name:       opRetrieveTapeArchive,
5828		HTTPMethod: "POST",
5829		HTTPPath:   "/",
5830	}
5831
5832	if input == nil {
5833		input = &RetrieveTapeArchiveInput{}
5834	}
5835
5836	output = &RetrieveTapeArchiveOutput{}
5837	req = c.newRequest(op, input, output)
5838	return
5839}
5840
5841// RetrieveTapeArchive API operation for AWS Storage Gateway.
5842//
5843// Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a
5844// tape gateway. Virtual tapes archived in the VTS are not associated with any
5845// gateway. However after a tape is retrieved, it is associated with a gateway,
5846// even though it is also listed in the VTS, that is, archive. This operation
5847// is only supported in the tape gateway type.
5848//
5849// Once a tape is successfully retrieved to a gateway, it cannot be retrieved
5850// again to another gateway. You must archive the tape again before you can
5851// retrieve it to another gateway. This operation is only supported in the tape
5852// gateway type.
5853//
5854// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5855// with awserr.Error's Code and Message methods to get detailed information about
5856// the error.
5857//
5858// See the AWS API reference guide for AWS Storage Gateway's
5859// API operation RetrieveTapeArchive for usage and error information.
5860//
5861// Returned Error Codes:
5862//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
5863//   An exception occurred because an invalid gateway request was issued to the
5864//   service. For more information, see the error and message fields.
5865//
5866//   * ErrCodeInternalServerError "InternalServerError"
5867//   An internal server error has occurred during the request. For more information,
5868//   see the error and message fields.
5869//
5870// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeArchive
5871func (c *StorageGateway) RetrieveTapeArchive(input *RetrieveTapeArchiveInput) (*RetrieveTapeArchiveOutput, error) {
5872	req, out := c.RetrieveTapeArchiveRequest(input)
5873	return out, req.Send()
5874}
5875
5876// RetrieveTapeArchiveWithContext is the same as RetrieveTapeArchive with the addition of
5877// the ability to pass a context and additional request options.
5878//
5879// See RetrieveTapeArchive for details on how to use this API operation.
5880//
5881// The context must be non-nil and will be used for request cancellation. If
5882// the context is nil a panic will occur. In the future the SDK may create
5883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5884// for more information on using Contexts.
5885func (c *StorageGateway) RetrieveTapeArchiveWithContext(ctx aws.Context, input *RetrieveTapeArchiveInput, opts ...request.Option) (*RetrieveTapeArchiveOutput, error) {
5886	req, out := c.RetrieveTapeArchiveRequest(input)
5887	req.SetContext(ctx)
5888	req.ApplyOptions(opts...)
5889	return out, req.Send()
5890}
5891
5892const opRetrieveTapeRecoveryPoint = "RetrieveTapeRecoveryPoint"
5893
5894// RetrieveTapeRecoveryPointRequest generates a "aws/request.Request" representing the
5895// client's request for the RetrieveTapeRecoveryPoint operation. The "output" return
5896// value will be populated with the request's response once the request completes
5897// successfully.
5898//
5899// Use "Send" method on the returned Request to send the API call to the service.
5900// the "output" return value is not valid until after Send returns without error.
5901//
5902// See RetrieveTapeRecoveryPoint for more information on using the RetrieveTapeRecoveryPoint
5903// API call, and error handling.
5904//
5905// This method is useful when you want to inject custom logic or configuration
5906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5907//
5908//
5909//    // Example sending a request using the RetrieveTapeRecoveryPointRequest method.
5910//    req, resp := client.RetrieveTapeRecoveryPointRequest(params)
5911//
5912//    err := req.Send()
5913//    if err == nil { // resp is now filled
5914//        fmt.Println(resp)
5915//    }
5916//
5917// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeRecoveryPoint
5918func (c *StorageGateway) RetrieveTapeRecoveryPointRequest(input *RetrieveTapeRecoveryPointInput) (req *request.Request, output *RetrieveTapeRecoveryPointOutput) {
5919	op := &request.Operation{
5920		Name:       opRetrieveTapeRecoveryPoint,
5921		HTTPMethod: "POST",
5922		HTTPPath:   "/",
5923	}
5924
5925	if input == nil {
5926		input = &RetrieveTapeRecoveryPointInput{}
5927	}
5928
5929	output = &RetrieveTapeRecoveryPointOutput{}
5930	req = c.newRequest(op, input, output)
5931	return
5932}
5933
5934// RetrieveTapeRecoveryPoint API operation for AWS Storage Gateway.
5935//
5936// Retrieves the recovery point for the specified virtual tape. This operation
5937// is only supported in the tape gateway type.
5938//
5939// A recovery point is a point in time view of a virtual tape at which all the
5940// data on the tape is consistent. If your gateway crashes, virtual tapes that
5941// have recovery points can be recovered to a new gateway.
5942//
5943// The virtual tape can be retrieved to only one gateway. The retrieved tape
5944// is read-only. The virtual tape can be retrieved to only a tape gateway. There
5945// is no charge for retrieving recovery points.
5946//
5947// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5948// with awserr.Error's Code and Message methods to get detailed information about
5949// the error.
5950//
5951// See the AWS API reference guide for AWS Storage Gateway's
5952// API operation RetrieveTapeRecoveryPoint for usage and error information.
5953//
5954// Returned Error Codes:
5955//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
5956//   An exception occurred because an invalid gateway request was issued to the
5957//   service. For more information, see the error and message fields.
5958//
5959//   * ErrCodeInternalServerError "InternalServerError"
5960//   An internal server error has occurred during the request. For more information,
5961//   see the error and message fields.
5962//
5963// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/RetrieveTapeRecoveryPoint
5964func (c *StorageGateway) RetrieveTapeRecoveryPoint(input *RetrieveTapeRecoveryPointInput) (*RetrieveTapeRecoveryPointOutput, error) {
5965	req, out := c.RetrieveTapeRecoveryPointRequest(input)
5966	return out, req.Send()
5967}
5968
5969// RetrieveTapeRecoveryPointWithContext is the same as RetrieveTapeRecoveryPoint with the addition of
5970// the ability to pass a context and additional request options.
5971//
5972// See RetrieveTapeRecoveryPoint for details on how to use this API operation.
5973//
5974// The context must be non-nil and will be used for request cancellation. If
5975// the context is nil a panic will occur. In the future the SDK may create
5976// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5977// for more information on using Contexts.
5978func (c *StorageGateway) RetrieveTapeRecoveryPointWithContext(ctx aws.Context, input *RetrieveTapeRecoveryPointInput, opts ...request.Option) (*RetrieveTapeRecoveryPointOutput, error) {
5979	req, out := c.RetrieveTapeRecoveryPointRequest(input)
5980	req.SetContext(ctx)
5981	req.ApplyOptions(opts...)
5982	return out, req.Send()
5983}
5984
5985const opSetLocalConsolePassword = "SetLocalConsolePassword"
5986
5987// SetLocalConsolePasswordRequest generates a "aws/request.Request" representing the
5988// client's request for the SetLocalConsolePassword operation. The "output" return
5989// value will be populated with the request's response once the request completes
5990// successfully.
5991//
5992// Use "Send" method on the returned Request to send the API call to the service.
5993// the "output" return value is not valid until after Send returns without error.
5994//
5995// See SetLocalConsolePassword for more information on using the SetLocalConsolePassword
5996// API call, and error handling.
5997//
5998// This method is useful when you want to inject custom logic or configuration
5999// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6000//
6001//
6002//    // Example sending a request using the SetLocalConsolePasswordRequest method.
6003//    req, resp := client.SetLocalConsolePasswordRequest(params)
6004//
6005//    err := req.Send()
6006//    if err == nil { // resp is now filled
6007//        fmt.Println(resp)
6008//    }
6009//
6010// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetLocalConsolePassword
6011func (c *StorageGateway) SetLocalConsolePasswordRequest(input *SetLocalConsolePasswordInput) (req *request.Request, output *SetLocalConsolePasswordOutput) {
6012	op := &request.Operation{
6013		Name:       opSetLocalConsolePassword,
6014		HTTPMethod: "POST",
6015		HTTPPath:   "/",
6016	}
6017
6018	if input == nil {
6019		input = &SetLocalConsolePasswordInput{}
6020	}
6021
6022	output = &SetLocalConsolePasswordOutput{}
6023	req = c.newRequest(op, input, output)
6024	return
6025}
6026
6027// SetLocalConsolePassword API operation for AWS Storage Gateway.
6028//
6029// Sets the password for your VM local console. When you log in to the local
6030// console for the first time, you log in to the VM with the default credentials.
6031// We recommend that you set a new password. You don't need to know the default
6032// password to set a new password.
6033//
6034// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6035// with awserr.Error's Code and Message methods to get detailed information about
6036// the error.
6037//
6038// See the AWS API reference guide for AWS Storage Gateway's
6039// API operation SetLocalConsolePassword for usage and error information.
6040//
6041// Returned Error Codes:
6042//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6043//   An exception occurred because an invalid gateway request was issued to the
6044//   service. For more information, see the error and message fields.
6045//
6046//   * ErrCodeInternalServerError "InternalServerError"
6047//   An internal server error has occurred during the request. For more information,
6048//   see the error and message fields.
6049//
6050// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetLocalConsolePassword
6051func (c *StorageGateway) SetLocalConsolePassword(input *SetLocalConsolePasswordInput) (*SetLocalConsolePasswordOutput, error) {
6052	req, out := c.SetLocalConsolePasswordRequest(input)
6053	return out, req.Send()
6054}
6055
6056// SetLocalConsolePasswordWithContext is the same as SetLocalConsolePassword with the addition of
6057// the ability to pass a context and additional request options.
6058//
6059// See SetLocalConsolePassword for details on how to use this API operation.
6060//
6061// The context must be non-nil and will be used for request cancellation. If
6062// the context is nil a panic will occur. In the future the SDK may create
6063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6064// for more information on using Contexts.
6065func (c *StorageGateway) SetLocalConsolePasswordWithContext(ctx aws.Context, input *SetLocalConsolePasswordInput, opts ...request.Option) (*SetLocalConsolePasswordOutput, error) {
6066	req, out := c.SetLocalConsolePasswordRequest(input)
6067	req.SetContext(ctx)
6068	req.ApplyOptions(opts...)
6069	return out, req.Send()
6070}
6071
6072const opSetSMBGuestPassword = "SetSMBGuestPassword"
6073
6074// SetSMBGuestPasswordRequest generates a "aws/request.Request" representing the
6075// client's request for the SetSMBGuestPassword operation. The "output" return
6076// value will be populated with the request's response once the request completes
6077// successfully.
6078//
6079// Use "Send" method on the returned Request to send the API call to the service.
6080// the "output" return value is not valid until after Send returns without error.
6081//
6082// See SetSMBGuestPassword for more information on using the SetSMBGuestPassword
6083// API call, and error handling.
6084//
6085// This method is useful when you want to inject custom logic or configuration
6086// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6087//
6088//
6089//    // Example sending a request using the SetSMBGuestPasswordRequest method.
6090//    req, resp := client.SetSMBGuestPasswordRequest(params)
6091//
6092//    err := req.Send()
6093//    if err == nil { // resp is now filled
6094//        fmt.Println(resp)
6095//    }
6096//
6097// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetSMBGuestPassword
6098func (c *StorageGateway) SetSMBGuestPasswordRequest(input *SetSMBGuestPasswordInput) (req *request.Request, output *SetSMBGuestPasswordOutput) {
6099	op := &request.Operation{
6100		Name:       opSetSMBGuestPassword,
6101		HTTPMethod: "POST",
6102		HTTPPath:   "/",
6103	}
6104
6105	if input == nil {
6106		input = &SetSMBGuestPasswordInput{}
6107	}
6108
6109	output = &SetSMBGuestPasswordOutput{}
6110	req = c.newRequest(op, input, output)
6111	return
6112}
6113
6114// SetSMBGuestPassword API operation for AWS Storage Gateway.
6115//
6116// Sets the password for the guest user smbguest. The smbguest user is the user
6117// when the authentication method for the file share is set to GuestAccess.
6118//
6119// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6120// with awserr.Error's Code and Message methods to get detailed information about
6121// the error.
6122//
6123// See the AWS API reference guide for AWS Storage Gateway's
6124// API operation SetSMBGuestPassword for usage and error information.
6125//
6126// Returned Error Codes:
6127//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6128//   An exception occurred because an invalid gateway request was issued to the
6129//   service. For more information, see the error and message fields.
6130//
6131//   * ErrCodeInternalServerError "InternalServerError"
6132//   An internal server error has occurred during the request. For more information,
6133//   see the error and message fields.
6134//
6135// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/SetSMBGuestPassword
6136func (c *StorageGateway) SetSMBGuestPassword(input *SetSMBGuestPasswordInput) (*SetSMBGuestPasswordOutput, error) {
6137	req, out := c.SetSMBGuestPasswordRequest(input)
6138	return out, req.Send()
6139}
6140
6141// SetSMBGuestPasswordWithContext is the same as SetSMBGuestPassword with the addition of
6142// the ability to pass a context and additional request options.
6143//
6144// See SetSMBGuestPassword for details on how to use this API operation.
6145//
6146// The context must be non-nil and will be used for request cancellation. If
6147// the context is nil a panic will occur. In the future the SDK may create
6148// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6149// for more information on using Contexts.
6150func (c *StorageGateway) SetSMBGuestPasswordWithContext(ctx aws.Context, input *SetSMBGuestPasswordInput, opts ...request.Option) (*SetSMBGuestPasswordOutput, error) {
6151	req, out := c.SetSMBGuestPasswordRequest(input)
6152	req.SetContext(ctx)
6153	req.ApplyOptions(opts...)
6154	return out, req.Send()
6155}
6156
6157const opShutdownGateway = "ShutdownGateway"
6158
6159// ShutdownGatewayRequest generates a "aws/request.Request" representing the
6160// client's request for the ShutdownGateway operation. The "output" return
6161// value will be populated with the request's response once the request completes
6162// successfully.
6163//
6164// Use "Send" method on the returned Request to send the API call to the service.
6165// the "output" return value is not valid until after Send returns without error.
6166//
6167// See ShutdownGateway for more information on using the ShutdownGateway
6168// API call, and error handling.
6169//
6170// This method is useful when you want to inject custom logic or configuration
6171// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6172//
6173//
6174//    // Example sending a request using the ShutdownGatewayRequest method.
6175//    req, resp := client.ShutdownGatewayRequest(params)
6176//
6177//    err := req.Send()
6178//    if err == nil { // resp is now filled
6179//        fmt.Println(resp)
6180//    }
6181//
6182// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ShutdownGateway
6183func (c *StorageGateway) ShutdownGatewayRequest(input *ShutdownGatewayInput) (req *request.Request, output *ShutdownGatewayOutput) {
6184	op := &request.Operation{
6185		Name:       opShutdownGateway,
6186		HTTPMethod: "POST",
6187		HTTPPath:   "/",
6188	}
6189
6190	if input == nil {
6191		input = &ShutdownGatewayInput{}
6192	}
6193
6194	output = &ShutdownGatewayOutput{}
6195	req = c.newRequest(op, input, output)
6196	return
6197}
6198
6199// ShutdownGateway API operation for AWS Storage Gateway.
6200//
6201// Shuts down a gateway. To specify which gateway to shut down, use the Amazon
6202// Resource Name (ARN) of the gateway in the body of your request.
6203//
6204// The operation shuts down the gateway service component running in the gateway's
6205// virtual machine (VM) and not the host VM.
6206//
6207// If you want to shut down the VM, it is recommended that you first shut down
6208// the gateway component in the VM to avoid unpredictable conditions.
6209//
6210// After the gateway is shutdown, you cannot call any other API except StartGateway,
6211// DescribeGatewayInformation, and ListGateways. For more information, see ActivateGateway.
6212// Your applications cannot read from or write to the gateway's storage volumes,
6213// and there are no snapshots taken.
6214//
6215// When you make a shutdown request, you will get a 200 OK success response
6216// immediately. However, it might take some time for the gateway to shut down.
6217// You can call the DescribeGatewayInformation API to check the status. For
6218// more information, see ActivateGateway.
6219//
6220// If do not intend to use the gateway again, you must delete the gateway (using
6221// DeleteGateway) to no longer pay software charges associated with the gateway.
6222//
6223// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6224// with awserr.Error's Code and Message methods to get detailed information about
6225// the error.
6226//
6227// See the AWS API reference guide for AWS Storage Gateway's
6228// API operation ShutdownGateway for usage and error information.
6229//
6230// Returned Error Codes:
6231//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6232//   An exception occurred because an invalid gateway request was issued to the
6233//   service. For more information, see the error and message fields.
6234//
6235//   * ErrCodeInternalServerError "InternalServerError"
6236//   An internal server error has occurred during the request. For more information,
6237//   see the error and message fields.
6238//
6239// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/ShutdownGateway
6240func (c *StorageGateway) ShutdownGateway(input *ShutdownGatewayInput) (*ShutdownGatewayOutput, error) {
6241	req, out := c.ShutdownGatewayRequest(input)
6242	return out, req.Send()
6243}
6244
6245// ShutdownGatewayWithContext is the same as ShutdownGateway with the addition of
6246// the ability to pass a context and additional request options.
6247//
6248// See ShutdownGateway for details on how to use this API operation.
6249//
6250// The context must be non-nil and will be used for request cancellation. If
6251// the context is nil a panic will occur. In the future the SDK may create
6252// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6253// for more information on using Contexts.
6254func (c *StorageGateway) ShutdownGatewayWithContext(ctx aws.Context, input *ShutdownGatewayInput, opts ...request.Option) (*ShutdownGatewayOutput, error) {
6255	req, out := c.ShutdownGatewayRequest(input)
6256	req.SetContext(ctx)
6257	req.ApplyOptions(opts...)
6258	return out, req.Send()
6259}
6260
6261const opStartAvailabilityMonitorTest = "StartAvailabilityMonitorTest"
6262
6263// StartAvailabilityMonitorTestRequest generates a "aws/request.Request" representing the
6264// client's request for the StartAvailabilityMonitorTest operation. The "output" return
6265// value will be populated with the request's response once the request completes
6266// successfully.
6267//
6268// Use "Send" method on the returned Request to send the API call to the service.
6269// the "output" return value is not valid until after Send returns without error.
6270//
6271// See StartAvailabilityMonitorTest for more information on using the StartAvailabilityMonitorTest
6272// API call, and error handling.
6273//
6274// This method is useful when you want to inject custom logic or configuration
6275// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6276//
6277//
6278//    // Example sending a request using the StartAvailabilityMonitorTestRequest method.
6279//    req, resp := client.StartAvailabilityMonitorTestRequest(params)
6280//
6281//    err := req.Send()
6282//    if err == nil { // resp is now filled
6283//        fmt.Println(resp)
6284//    }
6285//
6286// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartAvailabilityMonitorTest
6287func (c *StorageGateway) StartAvailabilityMonitorTestRequest(input *StartAvailabilityMonitorTestInput) (req *request.Request, output *StartAvailabilityMonitorTestOutput) {
6288	op := &request.Operation{
6289		Name:       opStartAvailabilityMonitorTest,
6290		HTTPMethod: "POST",
6291		HTTPPath:   "/",
6292	}
6293
6294	if input == nil {
6295		input = &StartAvailabilityMonitorTestInput{}
6296	}
6297
6298	output = &StartAvailabilityMonitorTestOutput{}
6299	req = c.newRequest(op, input, output)
6300	return
6301}
6302
6303// StartAvailabilityMonitorTest API operation for AWS Storage Gateway.
6304//
6305// Start a test that verifies that the specified gateway is configured for High
6306// Availability monitoring in your host environment. This request only initiates
6307// the test and that a successful response only indicates that the test was
6308// started. It doesn't indicate that the test passed. For the status of the
6309// test, invoke the DescribeAvailabilityMonitorTest API.
6310//
6311// Starting this test will cause your gateway to go offline for a brief period.
6312//
6313// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6314// with awserr.Error's Code and Message methods to get detailed information about
6315// the error.
6316//
6317// See the AWS API reference guide for AWS Storage Gateway's
6318// API operation StartAvailabilityMonitorTest for usage and error information.
6319//
6320// Returned Error Codes:
6321//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6322//   An exception occurred because an invalid gateway request was issued to the
6323//   service. For more information, see the error and message fields.
6324//
6325//   * ErrCodeInternalServerError "InternalServerError"
6326//   An internal server error has occurred during the request. For more information,
6327//   see the error and message fields.
6328//
6329// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartAvailabilityMonitorTest
6330func (c *StorageGateway) StartAvailabilityMonitorTest(input *StartAvailabilityMonitorTestInput) (*StartAvailabilityMonitorTestOutput, error) {
6331	req, out := c.StartAvailabilityMonitorTestRequest(input)
6332	return out, req.Send()
6333}
6334
6335// StartAvailabilityMonitorTestWithContext is the same as StartAvailabilityMonitorTest with the addition of
6336// the ability to pass a context and additional request options.
6337//
6338// See StartAvailabilityMonitorTest for details on how to use this API operation.
6339//
6340// The context must be non-nil and will be used for request cancellation. If
6341// the context is nil a panic will occur. In the future the SDK may create
6342// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6343// for more information on using Contexts.
6344func (c *StorageGateway) StartAvailabilityMonitorTestWithContext(ctx aws.Context, input *StartAvailabilityMonitorTestInput, opts ...request.Option) (*StartAvailabilityMonitorTestOutput, error) {
6345	req, out := c.StartAvailabilityMonitorTestRequest(input)
6346	req.SetContext(ctx)
6347	req.ApplyOptions(opts...)
6348	return out, req.Send()
6349}
6350
6351const opStartGateway = "StartGateway"
6352
6353// StartGatewayRequest generates a "aws/request.Request" representing the
6354// client's request for the StartGateway operation. The "output" return
6355// value will be populated with the request's response once the request completes
6356// successfully.
6357//
6358// Use "Send" method on the returned Request to send the API call to the service.
6359// the "output" return value is not valid until after Send returns without error.
6360//
6361// See StartGateway for more information on using the StartGateway
6362// API call, and error handling.
6363//
6364// This method is useful when you want to inject custom logic or configuration
6365// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6366//
6367//
6368//    // Example sending a request using the StartGatewayRequest method.
6369//    req, resp := client.StartGatewayRequest(params)
6370//
6371//    err := req.Send()
6372//    if err == nil { // resp is now filled
6373//        fmt.Println(resp)
6374//    }
6375//
6376// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartGateway
6377func (c *StorageGateway) StartGatewayRequest(input *StartGatewayInput) (req *request.Request, output *StartGatewayOutput) {
6378	op := &request.Operation{
6379		Name:       opStartGateway,
6380		HTTPMethod: "POST",
6381		HTTPPath:   "/",
6382	}
6383
6384	if input == nil {
6385		input = &StartGatewayInput{}
6386	}
6387
6388	output = &StartGatewayOutput{}
6389	req = c.newRequest(op, input, output)
6390	return
6391}
6392
6393// StartGateway API operation for AWS Storage Gateway.
6394//
6395// Starts a gateway that you previously shut down (see ShutdownGateway). After
6396// the gateway starts, you can then make other API calls, your applications
6397// can read from or write to the gateway's storage volumes and you will be able
6398// to take snapshot backups.
6399//
6400// When you make a request, you will get a 200 OK success response immediately.
6401// However, it might take some time for the gateway to be ready. You should
6402// call DescribeGatewayInformation and check the status before making any additional
6403// API calls. For more information, see ActivateGateway.
6404//
6405// To specify which gateway to start, use the Amazon Resource Name (ARN) of
6406// the gateway in your request.
6407//
6408// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6409// with awserr.Error's Code and Message methods to get detailed information about
6410// the error.
6411//
6412// See the AWS API reference guide for AWS Storage Gateway's
6413// API operation StartGateway for usage and error information.
6414//
6415// Returned Error Codes:
6416//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6417//   An exception occurred because an invalid gateway request was issued to the
6418//   service. For more information, see the error and message fields.
6419//
6420//   * ErrCodeInternalServerError "InternalServerError"
6421//   An internal server error has occurred during the request. For more information,
6422//   see the error and message fields.
6423//
6424// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/StartGateway
6425func (c *StorageGateway) StartGateway(input *StartGatewayInput) (*StartGatewayOutput, error) {
6426	req, out := c.StartGatewayRequest(input)
6427	return out, req.Send()
6428}
6429
6430// StartGatewayWithContext is the same as StartGateway with the addition of
6431// the ability to pass a context and additional request options.
6432//
6433// See StartGateway for details on how to use this API operation.
6434//
6435// The context must be non-nil and will be used for request cancellation. If
6436// the context is nil a panic will occur. In the future the SDK may create
6437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6438// for more information on using Contexts.
6439func (c *StorageGateway) StartGatewayWithContext(ctx aws.Context, input *StartGatewayInput, opts ...request.Option) (*StartGatewayOutput, error) {
6440	req, out := c.StartGatewayRequest(input)
6441	req.SetContext(ctx)
6442	req.ApplyOptions(opts...)
6443	return out, req.Send()
6444}
6445
6446const opUpdateBandwidthRateLimit = "UpdateBandwidthRateLimit"
6447
6448// UpdateBandwidthRateLimitRequest generates a "aws/request.Request" representing the
6449// client's request for the UpdateBandwidthRateLimit operation. The "output" return
6450// value will be populated with the request's response once the request completes
6451// successfully.
6452//
6453// Use "Send" method on the returned Request to send the API call to the service.
6454// the "output" return value is not valid until after Send returns without error.
6455//
6456// See UpdateBandwidthRateLimit for more information on using the UpdateBandwidthRateLimit
6457// API call, and error handling.
6458//
6459// This method is useful when you want to inject custom logic or configuration
6460// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6461//
6462//
6463//    // Example sending a request using the UpdateBandwidthRateLimitRequest method.
6464//    req, resp := client.UpdateBandwidthRateLimitRequest(params)
6465//
6466//    err := req.Send()
6467//    if err == nil { // resp is now filled
6468//        fmt.Println(resp)
6469//    }
6470//
6471// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimit
6472func (c *StorageGateway) UpdateBandwidthRateLimitRequest(input *UpdateBandwidthRateLimitInput) (req *request.Request, output *UpdateBandwidthRateLimitOutput) {
6473	op := &request.Operation{
6474		Name:       opUpdateBandwidthRateLimit,
6475		HTTPMethod: "POST",
6476		HTTPPath:   "/",
6477	}
6478
6479	if input == nil {
6480		input = &UpdateBandwidthRateLimitInput{}
6481	}
6482
6483	output = &UpdateBandwidthRateLimitOutput{}
6484	req = c.newRequest(op, input, output)
6485	return
6486}
6487
6488// UpdateBandwidthRateLimit API operation for AWS Storage Gateway.
6489//
6490// Updates the bandwidth rate limits of a gateway. You can update both the upload
6491// and download bandwidth rate limit or specify only one of the two. If you
6492// don't set a bandwidth rate limit, the existing rate limit remains. This operation
6493// is supported for the stored volume, cached volume and tape gateway types.'
6494//
6495// By default, a gateway's bandwidth rate limits are not set. If you don't set
6496// any limit, the gateway does not have any limitations on its bandwidth usage
6497// and could potentially use the maximum available bandwidth.
6498//
6499// To specify which gateway to update, use the Amazon Resource Name (ARN) of
6500// the gateway in your request.
6501//
6502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6503// with awserr.Error's Code and Message methods to get detailed information about
6504// the error.
6505//
6506// See the AWS API reference guide for AWS Storage Gateway's
6507// API operation UpdateBandwidthRateLimit for usage and error information.
6508//
6509// Returned Error Codes:
6510//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6511//   An exception occurred because an invalid gateway request was issued to the
6512//   service. For more information, see the error and message fields.
6513//
6514//   * ErrCodeInternalServerError "InternalServerError"
6515//   An internal server error has occurred during the request. For more information,
6516//   see the error and message fields.
6517//
6518// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateBandwidthRateLimit
6519func (c *StorageGateway) UpdateBandwidthRateLimit(input *UpdateBandwidthRateLimitInput) (*UpdateBandwidthRateLimitOutput, error) {
6520	req, out := c.UpdateBandwidthRateLimitRequest(input)
6521	return out, req.Send()
6522}
6523
6524// UpdateBandwidthRateLimitWithContext is the same as UpdateBandwidthRateLimit with the addition of
6525// the ability to pass a context and additional request options.
6526//
6527// See UpdateBandwidthRateLimit for details on how to use this API operation.
6528//
6529// The context must be non-nil and will be used for request cancellation. If
6530// the context is nil a panic will occur. In the future the SDK may create
6531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6532// for more information on using Contexts.
6533func (c *StorageGateway) UpdateBandwidthRateLimitWithContext(ctx aws.Context, input *UpdateBandwidthRateLimitInput, opts ...request.Option) (*UpdateBandwidthRateLimitOutput, error) {
6534	req, out := c.UpdateBandwidthRateLimitRequest(input)
6535	req.SetContext(ctx)
6536	req.ApplyOptions(opts...)
6537	return out, req.Send()
6538}
6539
6540const opUpdateChapCredentials = "UpdateChapCredentials"
6541
6542// UpdateChapCredentialsRequest generates a "aws/request.Request" representing the
6543// client's request for the UpdateChapCredentials operation. The "output" return
6544// value will be populated with the request's response once the request completes
6545// successfully.
6546//
6547// Use "Send" method on the returned Request to send the API call to the service.
6548// the "output" return value is not valid until after Send returns without error.
6549//
6550// See UpdateChapCredentials for more information on using the UpdateChapCredentials
6551// API call, and error handling.
6552//
6553// This method is useful when you want to inject custom logic or configuration
6554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6555//
6556//
6557//    // Example sending a request using the UpdateChapCredentialsRequest method.
6558//    req, resp := client.UpdateChapCredentialsRequest(params)
6559//
6560//    err := req.Send()
6561//    if err == nil { // resp is now filled
6562//        fmt.Println(resp)
6563//    }
6564//
6565// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateChapCredentials
6566func (c *StorageGateway) UpdateChapCredentialsRequest(input *UpdateChapCredentialsInput) (req *request.Request, output *UpdateChapCredentialsOutput) {
6567	op := &request.Operation{
6568		Name:       opUpdateChapCredentials,
6569		HTTPMethod: "POST",
6570		HTTPPath:   "/",
6571	}
6572
6573	if input == nil {
6574		input = &UpdateChapCredentialsInput{}
6575	}
6576
6577	output = &UpdateChapCredentialsOutput{}
6578	req = c.newRequest(op, input, output)
6579	return
6580}
6581
6582// UpdateChapCredentials API operation for AWS Storage Gateway.
6583//
6584// Updates the Challenge-Handshake Authentication Protocol (CHAP) credentials
6585// for a specified iSCSI target. By default, a gateway does not have CHAP enabled;
6586// however, for added security, you might use it. This operation is supported
6587// in the volume and tape gateway types.
6588//
6589// When you update CHAP credentials, all existing connections on the target
6590// are closed and initiators must reconnect with the new credentials.
6591//
6592// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6593// with awserr.Error's Code and Message methods to get detailed information about
6594// the error.
6595//
6596// See the AWS API reference guide for AWS Storage Gateway's
6597// API operation UpdateChapCredentials for usage and error information.
6598//
6599// Returned Error Codes:
6600//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6601//   An exception occurred because an invalid gateway request was issued to the
6602//   service. For more information, see the error and message fields.
6603//
6604//   * ErrCodeInternalServerError "InternalServerError"
6605//   An internal server error has occurred during the request. For more information,
6606//   see the error and message fields.
6607//
6608// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateChapCredentials
6609func (c *StorageGateway) UpdateChapCredentials(input *UpdateChapCredentialsInput) (*UpdateChapCredentialsOutput, error) {
6610	req, out := c.UpdateChapCredentialsRequest(input)
6611	return out, req.Send()
6612}
6613
6614// UpdateChapCredentialsWithContext is the same as UpdateChapCredentials with the addition of
6615// the ability to pass a context and additional request options.
6616//
6617// See UpdateChapCredentials for details on how to use this API operation.
6618//
6619// The context must be non-nil and will be used for request cancellation. If
6620// the context is nil a panic will occur. In the future the SDK may create
6621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6622// for more information on using Contexts.
6623func (c *StorageGateway) UpdateChapCredentialsWithContext(ctx aws.Context, input *UpdateChapCredentialsInput, opts ...request.Option) (*UpdateChapCredentialsOutput, error) {
6624	req, out := c.UpdateChapCredentialsRequest(input)
6625	req.SetContext(ctx)
6626	req.ApplyOptions(opts...)
6627	return out, req.Send()
6628}
6629
6630const opUpdateGatewayInformation = "UpdateGatewayInformation"
6631
6632// UpdateGatewayInformationRequest generates a "aws/request.Request" representing the
6633// client's request for the UpdateGatewayInformation operation. The "output" return
6634// value will be populated with the request's response once the request completes
6635// successfully.
6636//
6637// Use "Send" method on the returned Request to send the API call to the service.
6638// the "output" return value is not valid until after Send returns without error.
6639//
6640// See UpdateGatewayInformation for more information on using the UpdateGatewayInformation
6641// API call, and error handling.
6642//
6643// This method is useful when you want to inject custom logic or configuration
6644// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6645//
6646//
6647//    // Example sending a request using the UpdateGatewayInformationRequest method.
6648//    req, resp := client.UpdateGatewayInformationRequest(params)
6649//
6650//    err := req.Send()
6651//    if err == nil { // resp is now filled
6652//        fmt.Println(resp)
6653//    }
6654//
6655// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewayInformation
6656func (c *StorageGateway) UpdateGatewayInformationRequest(input *UpdateGatewayInformationInput) (req *request.Request, output *UpdateGatewayInformationOutput) {
6657	op := &request.Operation{
6658		Name:       opUpdateGatewayInformation,
6659		HTTPMethod: "POST",
6660		HTTPPath:   "/",
6661	}
6662
6663	if input == nil {
6664		input = &UpdateGatewayInformationInput{}
6665	}
6666
6667	output = &UpdateGatewayInformationOutput{}
6668	req = c.newRequest(op, input, output)
6669	return
6670}
6671
6672// UpdateGatewayInformation API operation for AWS Storage Gateway.
6673//
6674// Updates a gateway's metadata, which includes the gateway's name and time
6675// zone. To specify which gateway to update, use the Amazon Resource Name (ARN)
6676// of the gateway in your request.
6677//
6678// For Gateways activated after September 2, 2015, the gateway's ARN contains
6679// the gateway ID rather than the gateway name. However, changing the name of
6680// the gateway has no effect on the gateway's ARN.
6681//
6682// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6683// with awserr.Error's Code and Message methods to get detailed information about
6684// the error.
6685//
6686// See the AWS API reference guide for AWS Storage Gateway's
6687// API operation UpdateGatewayInformation for usage and error information.
6688//
6689// Returned Error Codes:
6690//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6691//   An exception occurred because an invalid gateway request was issued to the
6692//   service. For more information, see the error and message fields.
6693//
6694//   * ErrCodeInternalServerError "InternalServerError"
6695//   An internal server error has occurred during the request. For more information,
6696//   see the error and message fields.
6697//
6698// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewayInformation
6699func (c *StorageGateway) UpdateGatewayInformation(input *UpdateGatewayInformationInput) (*UpdateGatewayInformationOutput, error) {
6700	req, out := c.UpdateGatewayInformationRequest(input)
6701	return out, req.Send()
6702}
6703
6704// UpdateGatewayInformationWithContext is the same as UpdateGatewayInformation with the addition of
6705// the ability to pass a context and additional request options.
6706//
6707// See UpdateGatewayInformation for details on how to use this API operation.
6708//
6709// The context must be non-nil and will be used for request cancellation. If
6710// the context is nil a panic will occur. In the future the SDK may create
6711// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6712// for more information on using Contexts.
6713func (c *StorageGateway) UpdateGatewayInformationWithContext(ctx aws.Context, input *UpdateGatewayInformationInput, opts ...request.Option) (*UpdateGatewayInformationOutput, error) {
6714	req, out := c.UpdateGatewayInformationRequest(input)
6715	req.SetContext(ctx)
6716	req.ApplyOptions(opts...)
6717	return out, req.Send()
6718}
6719
6720const opUpdateGatewaySoftwareNow = "UpdateGatewaySoftwareNow"
6721
6722// UpdateGatewaySoftwareNowRequest generates a "aws/request.Request" representing the
6723// client's request for the UpdateGatewaySoftwareNow operation. The "output" return
6724// value will be populated with the request's response once the request completes
6725// successfully.
6726//
6727// Use "Send" method on the returned Request to send the API call to the service.
6728// the "output" return value is not valid until after Send returns without error.
6729//
6730// See UpdateGatewaySoftwareNow for more information on using the UpdateGatewaySoftwareNow
6731// API call, and error handling.
6732//
6733// This method is useful when you want to inject custom logic or configuration
6734// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6735//
6736//
6737//    // Example sending a request using the UpdateGatewaySoftwareNowRequest method.
6738//    req, resp := client.UpdateGatewaySoftwareNowRequest(params)
6739//
6740//    err := req.Send()
6741//    if err == nil { // resp is now filled
6742//        fmt.Println(resp)
6743//    }
6744//
6745// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewaySoftwareNow
6746func (c *StorageGateway) UpdateGatewaySoftwareNowRequest(input *UpdateGatewaySoftwareNowInput) (req *request.Request, output *UpdateGatewaySoftwareNowOutput) {
6747	op := &request.Operation{
6748		Name:       opUpdateGatewaySoftwareNow,
6749		HTTPMethod: "POST",
6750		HTTPPath:   "/",
6751	}
6752
6753	if input == nil {
6754		input = &UpdateGatewaySoftwareNowInput{}
6755	}
6756
6757	output = &UpdateGatewaySoftwareNowOutput{}
6758	req = c.newRequest(op, input, output)
6759	return
6760}
6761
6762// UpdateGatewaySoftwareNow API operation for AWS Storage Gateway.
6763//
6764// Updates the gateway virtual machine (VM) software. The request immediately
6765// triggers the software update.
6766//
6767// When you make this request, you get a 200 OK success response immediately.
6768// However, it might take some time for the update to complete. You can call
6769// DescribeGatewayInformation to verify the gateway is in the STATE_RUNNING
6770// state.
6771//
6772// A software update forces a system restart of your gateway. You can minimize
6773// the chance of any disruption to your applications by increasing your iSCSI
6774// Initiators' timeouts. For more information about increasing iSCSI Initiator
6775// timeouts for Windows and Linux, see Customizing Your Windows iSCSI Settings
6776// (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorWindowsClient.html#CustomizeWindowsiSCSISettings)
6777// and Customizing Your Linux iSCSI Settings (https://docs.aws.amazon.com/storagegateway/latest/userguide/ConfiguringiSCSIClientInitiatorRedHatClient.html#CustomizeLinuxiSCSISettings),
6778// respectively.
6779//
6780// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6781// with awserr.Error's Code and Message methods to get detailed information about
6782// the error.
6783//
6784// See the AWS API reference guide for AWS Storage Gateway's
6785// API operation UpdateGatewaySoftwareNow for usage and error information.
6786//
6787// Returned Error Codes:
6788//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6789//   An exception occurred because an invalid gateway request was issued to the
6790//   service. For more information, see the error and message fields.
6791//
6792//   * ErrCodeInternalServerError "InternalServerError"
6793//   An internal server error has occurred during the request. For more information,
6794//   see the error and message fields.
6795//
6796// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateGatewaySoftwareNow
6797func (c *StorageGateway) UpdateGatewaySoftwareNow(input *UpdateGatewaySoftwareNowInput) (*UpdateGatewaySoftwareNowOutput, error) {
6798	req, out := c.UpdateGatewaySoftwareNowRequest(input)
6799	return out, req.Send()
6800}
6801
6802// UpdateGatewaySoftwareNowWithContext is the same as UpdateGatewaySoftwareNow with the addition of
6803// the ability to pass a context and additional request options.
6804//
6805// See UpdateGatewaySoftwareNow for details on how to use this API operation.
6806//
6807// The context must be non-nil and will be used for request cancellation. If
6808// the context is nil a panic will occur. In the future the SDK may create
6809// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6810// for more information on using Contexts.
6811func (c *StorageGateway) UpdateGatewaySoftwareNowWithContext(ctx aws.Context, input *UpdateGatewaySoftwareNowInput, opts ...request.Option) (*UpdateGatewaySoftwareNowOutput, error) {
6812	req, out := c.UpdateGatewaySoftwareNowRequest(input)
6813	req.SetContext(ctx)
6814	req.ApplyOptions(opts...)
6815	return out, req.Send()
6816}
6817
6818const opUpdateMaintenanceStartTime = "UpdateMaintenanceStartTime"
6819
6820// UpdateMaintenanceStartTimeRequest generates a "aws/request.Request" representing the
6821// client's request for the UpdateMaintenanceStartTime operation. The "output" return
6822// value will be populated with the request's response once the request completes
6823// successfully.
6824//
6825// Use "Send" method on the returned Request to send the API call to the service.
6826// the "output" return value is not valid until after Send returns without error.
6827//
6828// See UpdateMaintenanceStartTime for more information on using the UpdateMaintenanceStartTime
6829// API call, and error handling.
6830//
6831// This method is useful when you want to inject custom logic or configuration
6832// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6833//
6834//
6835//    // Example sending a request using the UpdateMaintenanceStartTimeRequest method.
6836//    req, resp := client.UpdateMaintenanceStartTimeRequest(params)
6837//
6838//    err := req.Send()
6839//    if err == nil { // resp is now filled
6840//        fmt.Println(resp)
6841//    }
6842//
6843// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateMaintenanceStartTime
6844func (c *StorageGateway) UpdateMaintenanceStartTimeRequest(input *UpdateMaintenanceStartTimeInput) (req *request.Request, output *UpdateMaintenanceStartTimeOutput) {
6845	op := &request.Operation{
6846		Name:       opUpdateMaintenanceStartTime,
6847		HTTPMethod: "POST",
6848		HTTPPath:   "/",
6849	}
6850
6851	if input == nil {
6852		input = &UpdateMaintenanceStartTimeInput{}
6853	}
6854
6855	output = &UpdateMaintenanceStartTimeOutput{}
6856	req = c.newRequest(op, input, output)
6857	return
6858}
6859
6860// UpdateMaintenanceStartTime API operation for AWS Storage Gateway.
6861//
6862// Updates a gateway's weekly maintenance start time information, including
6863// day and time of the week. The maintenance time is the time in your gateway's
6864// time zone.
6865//
6866// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6867// with awserr.Error's Code and Message methods to get detailed information about
6868// the error.
6869//
6870// See the AWS API reference guide for AWS Storage Gateway's
6871// API operation UpdateMaintenanceStartTime for usage and error information.
6872//
6873// Returned Error Codes:
6874//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6875//   An exception occurred because an invalid gateway request was issued to the
6876//   service. For more information, see the error and message fields.
6877//
6878//   * ErrCodeInternalServerError "InternalServerError"
6879//   An internal server error has occurred during the request. For more information,
6880//   see the error and message fields.
6881//
6882// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateMaintenanceStartTime
6883func (c *StorageGateway) UpdateMaintenanceStartTime(input *UpdateMaintenanceStartTimeInput) (*UpdateMaintenanceStartTimeOutput, error) {
6884	req, out := c.UpdateMaintenanceStartTimeRequest(input)
6885	return out, req.Send()
6886}
6887
6888// UpdateMaintenanceStartTimeWithContext is the same as UpdateMaintenanceStartTime with the addition of
6889// the ability to pass a context and additional request options.
6890//
6891// See UpdateMaintenanceStartTime for details on how to use this API operation.
6892//
6893// The context must be non-nil and will be used for request cancellation. If
6894// the context is nil a panic will occur. In the future the SDK may create
6895// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6896// for more information on using Contexts.
6897func (c *StorageGateway) UpdateMaintenanceStartTimeWithContext(ctx aws.Context, input *UpdateMaintenanceStartTimeInput, opts ...request.Option) (*UpdateMaintenanceStartTimeOutput, error) {
6898	req, out := c.UpdateMaintenanceStartTimeRequest(input)
6899	req.SetContext(ctx)
6900	req.ApplyOptions(opts...)
6901	return out, req.Send()
6902}
6903
6904const opUpdateNFSFileShare = "UpdateNFSFileShare"
6905
6906// UpdateNFSFileShareRequest generates a "aws/request.Request" representing the
6907// client's request for the UpdateNFSFileShare operation. The "output" return
6908// value will be populated with the request's response once the request completes
6909// successfully.
6910//
6911// Use "Send" method on the returned Request to send the API call to the service.
6912// the "output" return value is not valid until after Send returns without error.
6913//
6914// See UpdateNFSFileShare for more information on using the UpdateNFSFileShare
6915// API call, and error handling.
6916//
6917// This method is useful when you want to inject custom logic or configuration
6918// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6919//
6920//
6921//    // Example sending a request using the UpdateNFSFileShareRequest method.
6922//    req, resp := client.UpdateNFSFileShareRequest(params)
6923//
6924//    err := req.Send()
6925//    if err == nil { // resp is now filled
6926//        fmt.Println(resp)
6927//    }
6928//
6929// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateNFSFileShare
6930func (c *StorageGateway) UpdateNFSFileShareRequest(input *UpdateNFSFileShareInput) (req *request.Request, output *UpdateNFSFileShareOutput) {
6931	op := &request.Operation{
6932		Name:       opUpdateNFSFileShare,
6933		HTTPMethod: "POST",
6934		HTTPPath:   "/",
6935	}
6936
6937	if input == nil {
6938		input = &UpdateNFSFileShareInput{}
6939	}
6940
6941	output = &UpdateNFSFileShareOutput{}
6942	req = c.newRequest(op, input, output)
6943	return
6944}
6945
6946// UpdateNFSFileShare API operation for AWS Storage Gateway.
6947//
6948// Updates a Network File System (NFS) file share. This operation is only supported
6949// in the file gateway type.
6950//
6951// To leave a file share field unchanged, set the corresponding input field
6952// to null.
6953//
6954// Updates the following file share setting:
6955//
6956//    * Default storage class for your S3 bucket
6957//
6958//    * Metadata defaults for your S3 bucket
6959//
6960//    * Allowed NFS clients for your file share
6961//
6962//    * Squash settings
6963//
6964//    * Write status of your file share
6965//
6966// To leave a file share field unchanged, set the corresponding input field
6967// to null. This operation is only supported in file gateways.
6968//
6969// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6970// with awserr.Error's Code and Message methods to get detailed information about
6971// the error.
6972//
6973// See the AWS API reference guide for AWS Storage Gateway's
6974// API operation UpdateNFSFileShare for usage and error information.
6975//
6976// Returned Error Codes:
6977//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
6978//   An exception occurred because an invalid gateway request was issued to the
6979//   service. For more information, see the error and message fields.
6980//
6981//   * ErrCodeInternalServerError "InternalServerError"
6982//   An internal server error has occurred during the request. For more information,
6983//   see the error and message fields.
6984//
6985// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateNFSFileShare
6986func (c *StorageGateway) UpdateNFSFileShare(input *UpdateNFSFileShareInput) (*UpdateNFSFileShareOutput, error) {
6987	req, out := c.UpdateNFSFileShareRequest(input)
6988	return out, req.Send()
6989}
6990
6991// UpdateNFSFileShareWithContext is the same as UpdateNFSFileShare with the addition of
6992// the ability to pass a context and additional request options.
6993//
6994// See UpdateNFSFileShare for details on how to use this API operation.
6995//
6996// The context must be non-nil and will be used for request cancellation. If
6997// the context is nil a panic will occur. In the future the SDK may create
6998// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6999// for more information on using Contexts.
7000func (c *StorageGateway) UpdateNFSFileShareWithContext(ctx aws.Context, input *UpdateNFSFileShareInput, opts ...request.Option) (*UpdateNFSFileShareOutput, error) {
7001	req, out := c.UpdateNFSFileShareRequest(input)
7002	req.SetContext(ctx)
7003	req.ApplyOptions(opts...)
7004	return out, req.Send()
7005}
7006
7007const opUpdateSMBFileShare = "UpdateSMBFileShare"
7008
7009// UpdateSMBFileShareRequest generates a "aws/request.Request" representing the
7010// client's request for the UpdateSMBFileShare operation. The "output" return
7011// value will be populated with the request's response once the request completes
7012// successfully.
7013//
7014// Use "Send" method on the returned Request to send the API call to the service.
7015// the "output" return value is not valid until after Send returns without error.
7016//
7017// See UpdateSMBFileShare for more information on using the UpdateSMBFileShare
7018// API call, and error handling.
7019//
7020// This method is useful when you want to inject custom logic or configuration
7021// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7022//
7023//
7024//    // Example sending a request using the UpdateSMBFileShareRequest method.
7025//    req, resp := client.UpdateSMBFileShareRequest(params)
7026//
7027//    err := req.Send()
7028//    if err == nil { // resp is now filled
7029//        fmt.Println(resp)
7030//    }
7031//
7032// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShare
7033func (c *StorageGateway) UpdateSMBFileShareRequest(input *UpdateSMBFileShareInput) (req *request.Request, output *UpdateSMBFileShareOutput) {
7034	op := &request.Operation{
7035		Name:       opUpdateSMBFileShare,
7036		HTTPMethod: "POST",
7037		HTTPPath:   "/",
7038	}
7039
7040	if input == nil {
7041		input = &UpdateSMBFileShareInput{}
7042	}
7043
7044	output = &UpdateSMBFileShareOutput{}
7045	req = c.newRequest(op, input, output)
7046	return
7047}
7048
7049// UpdateSMBFileShare API operation for AWS Storage Gateway.
7050//
7051// Updates a Server Message Block (SMB) file share.
7052//
7053// To leave a file share field unchanged, set the corresponding input field
7054// to null. This operation is only supported for file gateways.
7055//
7056// File gateways require AWS Security Token Service (AWS STS) to be activated
7057// to enable you to create a file share. Make sure that AWS STS is activated
7058// in the AWS Region you are creating your file gateway in. If AWS STS is not
7059// activated in this AWS Region, activate it. For information about how to activate
7060// 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)
7061// in the AWS Identity and Access Management User Guide.
7062//
7063// File gateways don't support creating hard or symbolic links on a file share.
7064//
7065// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7066// with awserr.Error's Code and Message methods to get detailed information about
7067// the error.
7068//
7069// See the AWS API reference guide for AWS Storage Gateway's
7070// API operation UpdateSMBFileShare for usage and error information.
7071//
7072// Returned Error Codes:
7073//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
7074//   An exception occurred because an invalid gateway request was issued to the
7075//   service. For more information, see the error and message fields.
7076//
7077//   * ErrCodeInternalServerError "InternalServerError"
7078//   An internal server error has occurred during the request. For more information,
7079//   see the error and message fields.
7080//
7081// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBFileShare
7082func (c *StorageGateway) UpdateSMBFileShare(input *UpdateSMBFileShareInput) (*UpdateSMBFileShareOutput, error) {
7083	req, out := c.UpdateSMBFileShareRequest(input)
7084	return out, req.Send()
7085}
7086
7087// UpdateSMBFileShareWithContext is the same as UpdateSMBFileShare with the addition of
7088// the ability to pass a context and additional request options.
7089//
7090// See UpdateSMBFileShare for details on how to use this API operation.
7091//
7092// The context must be non-nil and will be used for request cancellation. If
7093// the context is nil a panic will occur. In the future the SDK may create
7094// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7095// for more information on using Contexts.
7096func (c *StorageGateway) UpdateSMBFileShareWithContext(ctx aws.Context, input *UpdateSMBFileShareInput, opts ...request.Option) (*UpdateSMBFileShareOutput, error) {
7097	req, out := c.UpdateSMBFileShareRequest(input)
7098	req.SetContext(ctx)
7099	req.ApplyOptions(opts...)
7100	return out, req.Send()
7101}
7102
7103const opUpdateSMBSecurityStrategy = "UpdateSMBSecurityStrategy"
7104
7105// UpdateSMBSecurityStrategyRequest generates a "aws/request.Request" representing the
7106// client's request for the UpdateSMBSecurityStrategy operation. The "output" return
7107// value will be populated with the request's response once the request completes
7108// successfully.
7109//
7110// Use "Send" method on the returned Request to send the API call to the service.
7111// the "output" return value is not valid until after Send returns without error.
7112//
7113// See UpdateSMBSecurityStrategy for more information on using the UpdateSMBSecurityStrategy
7114// API call, and error handling.
7115//
7116// This method is useful when you want to inject custom logic or configuration
7117// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7118//
7119//
7120//    // Example sending a request using the UpdateSMBSecurityStrategyRequest method.
7121//    req, resp := client.UpdateSMBSecurityStrategyRequest(params)
7122//
7123//    err := req.Send()
7124//    if err == nil { // resp is now filled
7125//        fmt.Println(resp)
7126//    }
7127//
7128// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBSecurityStrategy
7129func (c *StorageGateway) UpdateSMBSecurityStrategyRequest(input *UpdateSMBSecurityStrategyInput) (req *request.Request, output *UpdateSMBSecurityStrategyOutput) {
7130	op := &request.Operation{
7131		Name:       opUpdateSMBSecurityStrategy,
7132		HTTPMethod: "POST",
7133		HTTPPath:   "/",
7134	}
7135
7136	if input == nil {
7137		input = &UpdateSMBSecurityStrategyInput{}
7138	}
7139
7140	output = &UpdateSMBSecurityStrategyOutput{}
7141	req = c.newRequest(op, input, output)
7142	return
7143}
7144
7145// UpdateSMBSecurityStrategy API operation for AWS Storage Gateway.
7146//
7147// Updates the SMB security strategy on a file gateway. This action is only
7148// supported in file gateways.
7149//
7150// This API is called Security level in the User Guide.
7151//
7152// A higher security level can affect performance of the gateway.
7153//
7154// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7155// with awserr.Error's Code and Message methods to get detailed information about
7156// the error.
7157//
7158// See the AWS API reference guide for AWS Storage Gateway's
7159// API operation UpdateSMBSecurityStrategy for usage and error information.
7160//
7161// Returned Error Codes:
7162//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
7163//   An exception occurred because an invalid gateway request was issued to the
7164//   service. For more information, see the error and message fields.
7165//
7166//   * ErrCodeInternalServerError "InternalServerError"
7167//   An internal server error has occurred during the request. For more information,
7168//   see the error and message fields.
7169//
7170// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSMBSecurityStrategy
7171func (c *StorageGateway) UpdateSMBSecurityStrategy(input *UpdateSMBSecurityStrategyInput) (*UpdateSMBSecurityStrategyOutput, error) {
7172	req, out := c.UpdateSMBSecurityStrategyRequest(input)
7173	return out, req.Send()
7174}
7175
7176// UpdateSMBSecurityStrategyWithContext is the same as UpdateSMBSecurityStrategy with the addition of
7177// the ability to pass a context and additional request options.
7178//
7179// See UpdateSMBSecurityStrategy for details on how to use this API operation.
7180//
7181// The context must be non-nil and will be used for request cancellation. If
7182// the context is nil a panic will occur. In the future the SDK may create
7183// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7184// for more information on using Contexts.
7185func (c *StorageGateway) UpdateSMBSecurityStrategyWithContext(ctx aws.Context, input *UpdateSMBSecurityStrategyInput, opts ...request.Option) (*UpdateSMBSecurityStrategyOutput, error) {
7186	req, out := c.UpdateSMBSecurityStrategyRequest(input)
7187	req.SetContext(ctx)
7188	req.ApplyOptions(opts...)
7189	return out, req.Send()
7190}
7191
7192const opUpdateSnapshotSchedule = "UpdateSnapshotSchedule"
7193
7194// UpdateSnapshotScheduleRequest generates a "aws/request.Request" representing the
7195// client's request for the UpdateSnapshotSchedule operation. The "output" return
7196// value will be populated with the request's response once the request completes
7197// successfully.
7198//
7199// Use "Send" method on the returned Request to send the API call to the service.
7200// the "output" return value is not valid until after Send returns without error.
7201//
7202// See UpdateSnapshotSchedule for more information on using the UpdateSnapshotSchedule
7203// API call, and error handling.
7204//
7205// This method is useful when you want to inject custom logic or configuration
7206// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7207//
7208//
7209//    // Example sending a request using the UpdateSnapshotScheduleRequest method.
7210//    req, resp := client.UpdateSnapshotScheduleRequest(params)
7211//
7212//    err := req.Send()
7213//    if err == nil { // resp is now filled
7214//        fmt.Println(resp)
7215//    }
7216//
7217// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSnapshotSchedule
7218func (c *StorageGateway) UpdateSnapshotScheduleRequest(input *UpdateSnapshotScheduleInput) (req *request.Request, output *UpdateSnapshotScheduleOutput) {
7219	op := &request.Operation{
7220		Name:       opUpdateSnapshotSchedule,
7221		HTTPMethod: "POST",
7222		HTTPPath:   "/",
7223	}
7224
7225	if input == nil {
7226		input = &UpdateSnapshotScheduleInput{}
7227	}
7228
7229	output = &UpdateSnapshotScheduleOutput{}
7230	req = c.newRequest(op, input, output)
7231	return
7232}
7233
7234// UpdateSnapshotSchedule API operation for AWS Storage Gateway.
7235//
7236// Updates a snapshot schedule configured for a gateway volume. This operation
7237// is only supported in the cached volume and stored volume gateway types.
7238//
7239// The default snapshot schedule for volume is once every 24 hours, starting
7240// at the creation time of the volume. You can use this API to change the snapshot
7241// schedule configured for the volume.
7242//
7243// In the request you must identify the gateway volume whose snapshot schedule
7244// you want to update, and the schedule information, including when you want
7245// the snapshot to begin on a day and the frequency (in hours) of snapshots.
7246//
7247// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7248// with awserr.Error's Code and Message methods to get detailed information about
7249// the error.
7250//
7251// See the AWS API reference guide for AWS Storage Gateway's
7252// API operation UpdateSnapshotSchedule for usage and error information.
7253//
7254// Returned Error Codes:
7255//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
7256//   An exception occurred because an invalid gateway request was issued to the
7257//   service. For more information, see the error and message fields.
7258//
7259//   * ErrCodeInternalServerError "InternalServerError"
7260//   An internal server error has occurred during the request. For more information,
7261//   see the error and message fields.
7262//
7263// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateSnapshotSchedule
7264func (c *StorageGateway) UpdateSnapshotSchedule(input *UpdateSnapshotScheduleInput) (*UpdateSnapshotScheduleOutput, error) {
7265	req, out := c.UpdateSnapshotScheduleRequest(input)
7266	return out, req.Send()
7267}
7268
7269// UpdateSnapshotScheduleWithContext is the same as UpdateSnapshotSchedule with the addition of
7270// the ability to pass a context and additional request options.
7271//
7272// See UpdateSnapshotSchedule for details on how to use this API operation.
7273//
7274// The context must be non-nil and will be used for request cancellation. If
7275// the context is nil a panic will occur. In the future the SDK may create
7276// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7277// for more information on using Contexts.
7278func (c *StorageGateway) UpdateSnapshotScheduleWithContext(ctx aws.Context, input *UpdateSnapshotScheduleInput, opts ...request.Option) (*UpdateSnapshotScheduleOutput, error) {
7279	req, out := c.UpdateSnapshotScheduleRequest(input)
7280	req.SetContext(ctx)
7281	req.ApplyOptions(opts...)
7282	return out, req.Send()
7283}
7284
7285const opUpdateVTLDeviceType = "UpdateVTLDeviceType"
7286
7287// UpdateVTLDeviceTypeRequest generates a "aws/request.Request" representing the
7288// client's request for the UpdateVTLDeviceType operation. The "output" return
7289// value will be populated with the request's response once the request completes
7290// successfully.
7291//
7292// Use "Send" method on the returned Request to send the API call to the service.
7293// the "output" return value is not valid until after Send returns without error.
7294//
7295// See UpdateVTLDeviceType for more information on using the UpdateVTLDeviceType
7296// API call, and error handling.
7297//
7298// This method is useful when you want to inject custom logic or configuration
7299// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7300//
7301//
7302//    // Example sending a request using the UpdateVTLDeviceTypeRequest method.
7303//    req, resp := client.UpdateVTLDeviceTypeRequest(params)
7304//
7305//    err := req.Send()
7306//    if err == nil { // resp is now filled
7307//        fmt.Println(resp)
7308//    }
7309//
7310// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateVTLDeviceType
7311func (c *StorageGateway) UpdateVTLDeviceTypeRequest(input *UpdateVTLDeviceTypeInput) (req *request.Request, output *UpdateVTLDeviceTypeOutput) {
7312	op := &request.Operation{
7313		Name:       opUpdateVTLDeviceType,
7314		HTTPMethod: "POST",
7315		HTTPPath:   "/",
7316	}
7317
7318	if input == nil {
7319		input = &UpdateVTLDeviceTypeInput{}
7320	}
7321
7322	output = &UpdateVTLDeviceTypeOutput{}
7323	req = c.newRequest(op, input, output)
7324	return
7325}
7326
7327// UpdateVTLDeviceType API operation for AWS Storage Gateway.
7328//
7329// Updates the type of medium changer in a tape gateway. When you activate a
7330// tape gateway, you select a medium changer type for the tape gateway. This
7331// operation enables you to select a different type of medium changer after
7332// a tape gateway is activated. This operation is only supported in the tape
7333// gateway type.
7334//
7335// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7336// with awserr.Error's Code and Message methods to get detailed information about
7337// the error.
7338//
7339// See the AWS API reference guide for AWS Storage Gateway's
7340// API operation UpdateVTLDeviceType for usage and error information.
7341//
7342// Returned Error Codes:
7343//   * ErrCodeInvalidGatewayRequestException "InvalidGatewayRequestException"
7344//   An exception occurred because an invalid gateway request was issued to the
7345//   service. For more information, see the error and message fields.
7346//
7347//   * ErrCodeInternalServerError "InternalServerError"
7348//   An internal server error has occurred during the request. For more information,
7349//   see the error and message fields.
7350//
7351// See also, https://docs.aws.amazon.com/goto/WebAPI/storagegateway-2013-06-30/UpdateVTLDeviceType
7352func (c *StorageGateway) UpdateVTLDeviceType(input *UpdateVTLDeviceTypeInput) (*UpdateVTLDeviceTypeOutput, error) {
7353	req, out := c.UpdateVTLDeviceTypeRequest(input)
7354	return out, req.Send()
7355}
7356
7357// UpdateVTLDeviceTypeWithContext is the same as UpdateVTLDeviceType with the addition of
7358// the ability to pass a context and additional request options.
7359//
7360// See UpdateVTLDeviceType for details on how to use this API operation.
7361//
7362// The context must be non-nil and will be used for request cancellation. If
7363// the context is nil a panic will occur. In the future the SDK may create
7364// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7365// for more information on using Contexts.
7366func (c *StorageGateway) UpdateVTLDeviceTypeWithContext(ctx aws.Context, input *UpdateVTLDeviceTypeInput, opts ...request.Option) (*UpdateVTLDeviceTypeOutput, error) {
7367	req, out := c.UpdateVTLDeviceTypeRequest(input)
7368	req.SetContext(ctx)
7369	req.ApplyOptions(opts...)
7370	return out, req.Send()
7371}
7372
7373// A JSON object containing one or more of the following fields:
7374//
7375//    * ActivateGatewayInput$ActivationKey
7376//
7377//    * ActivateGatewayInput$GatewayName
7378//
7379//    * ActivateGatewayInput$GatewayRegion
7380//
7381//    * ActivateGatewayInput$GatewayTimezone
7382//
7383//    * ActivateGatewayInput$GatewayType
7384//
7385//    * ActivateGatewayInput$TapeDriveType
7386//
7387//    * ActivateGatewayInput$MediumChangerType
7388type ActivateGatewayInput struct {
7389	_ struct{} `type:"structure"`
7390
7391	// Your gateway activation key. You can obtain the activation key by sending
7392	// an HTTP GET request with redirects enabled to the gateway IP address (port
7393	// 80). The redirect URL returned in the response provides you the activation
7394	// key for your gateway in the query string parameter activationKey. It may
7395	// also include other activation-related parameters, however, these are merely
7396	// defaults -- the arguments you pass to the ActivateGateway API call determine
7397	// the actual configuration of your gateway.
7398	//
7399	// For more information, see https://docs.aws.amazon.com/storagegateway/latest/userguide/get-activation-key.html
7400	// in the Storage Gateway User Guide.
7401	//
7402	// ActivationKey is a required field
7403	ActivationKey *string `min:"1" type:"string" required:"true"`
7404
7405	// The name you configured for your gateway.
7406	//
7407	// GatewayName is a required field
7408	GatewayName *string `min:"2" type:"string" required:"true"`
7409
7410	// A value that indicates the AWS Region where you want to store your data.
7411	// The gateway AWS Region specified must be the same AWS Region as the AWS Region
7412	// in your Host header in the request. For more information about available
7413	// AWS Regions and endpoints for AWS Storage Gateway, see Regions and Endpoints
7414	// (https://docs.aws.amazon.com/general/latest/gr/rande.html#sg_region) in the
7415	// Amazon Web Services Glossary.
7416	//
7417	// Valid Values: See AWS Storage Gateway Regions and Endpoints (https://docs.aws.amazon.com/general/latest/gr/rande.html#sg_region)
7418	// in the AWS General Reference.
7419	//
7420	// GatewayRegion is a required field
7421	GatewayRegion *string `min:"1" type:"string" required:"true"`
7422
7423	// A value that indicates the time zone you want to set for the gateway. The
7424	// time zone is of the format "GMT-hr:mm" or "GMT+hr:mm". For example, GMT-4:00
7425	// indicates the time is 4 hours behind GMT. GMT+2:00 indicates the time is
7426	// 2 hours ahead of GMT. The time zone is used, for example, for scheduling
7427	// snapshots and your gateway's maintenance schedule.
7428	//
7429	// GatewayTimezone is a required field
7430	GatewayTimezone *string `min:"3" type:"string" required:"true"`
7431
7432	// A value that defines the type of gateway to activate. The type specified
7433	// is critical to all later functions of the gateway and cannot be changed after
7434	// activation. The default value is CACHED.
7435	//
7436	// Valid Values: "STORED", "CACHED", "VTL", "FILE_S3"
7437	GatewayType *string `min:"2" type:"string"`
7438
7439	// The value that indicates the type of medium changer to use for tape gateway.
7440	// This field is optional.
7441	//
7442	// Valid Values: "STK-L700", "AWS-Gateway-VTL"
7443	MediumChangerType *string `min:"2" type:"string"`
7444
7445	// A list of up to 50 tags that you can assign to the gateway. Each tag is a
7446	// key-value pair.
7447	//
7448	// Valid characters for key and value are letters, spaces, and numbers that
7449	// can be represented in UTF-8 format, and the following special characters:
7450	// + - = . _ : / @. The maximum length of a tag's key is 128 characters, and
7451	// the maximum length for a tag's value is 256 characters.
7452	Tags []*Tag `type:"list"`
7453
7454	// The value that indicates the type of tape drive to use for tape gateway.
7455	// This field is optional.
7456	//
7457	// Valid Values: "IBM-ULT3580-TD5"
7458	TapeDriveType *string `min:"2" type:"string"`
7459}
7460
7461// String returns the string representation
7462func (s ActivateGatewayInput) String() string {
7463	return awsutil.Prettify(s)
7464}
7465
7466// GoString returns the string representation
7467func (s ActivateGatewayInput) GoString() string {
7468	return s.String()
7469}
7470
7471// Validate inspects the fields of the type to determine if they are valid.
7472func (s *ActivateGatewayInput) Validate() error {
7473	invalidParams := request.ErrInvalidParams{Context: "ActivateGatewayInput"}
7474	if s.ActivationKey == nil {
7475		invalidParams.Add(request.NewErrParamRequired("ActivationKey"))
7476	}
7477	if s.ActivationKey != nil && len(*s.ActivationKey) < 1 {
7478		invalidParams.Add(request.NewErrParamMinLen("ActivationKey", 1))
7479	}
7480	if s.GatewayName == nil {
7481		invalidParams.Add(request.NewErrParamRequired("GatewayName"))
7482	}
7483	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
7484		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
7485	}
7486	if s.GatewayRegion == nil {
7487		invalidParams.Add(request.NewErrParamRequired("GatewayRegion"))
7488	}
7489	if s.GatewayRegion != nil && len(*s.GatewayRegion) < 1 {
7490		invalidParams.Add(request.NewErrParamMinLen("GatewayRegion", 1))
7491	}
7492	if s.GatewayTimezone == nil {
7493		invalidParams.Add(request.NewErrParamRequired("GatewayTimezone"))
7494	}
7495	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
7496		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
7497	}
7498	if s.GatewayType != nil && len(*s.GatewayType) < 2 {
7499		invalidParams.Add(request.NewErrParamMinLen("GatewayType", 2))
7500	}
7501	if s.MediumChangerType != nil && len(*s.MediumChangerType) < 2 {
7502		invalidParams.Add(request.NewErrParamMinLen("MediumChangerType", 2))
7503	}
7504	if s.TapeDriveType != nil && len(*s.TapeDriveType) < 2 {
7505		invalidParams.Add(request.NewErrParamMinLen("TapeDriveType", 2))
7506	}
7507	if s.Tags != nil {
7508		for i, v := range s.Tags {
7509			if v == nil {
7510				continue
7511			}
7512			if err := v.Validate(); err != nil {
7513				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7514			}
7515		}
7516	}
7517
7518	if invalidParams.Len() > 0 {
7519		return invalidParams
7520	}
7521	return nil
7522}
7523
7524// SetActivationKey sets the ActivationKey field's value.
7525func (s *ActivateGatewayInput) SetActivationKey(v string) *ActivateGatewayInput {
7526	s.ActivationKey = &v
7527	return s
7528}
7529
7530// SetGatewayName sets the GatewayName field's value.
7531func (s *ActivateGatewayInput) SetGatewayName(v string) *ActivateGatewayInput {
7532	s.GatewayName = &v
7533	return s
7534}
7535
7536// SetGatewayRegion sets the GatewayRegion field's value.
7537func (s *ActivateGatewayInput) SetGatewayRegion(v string) *ActivateGatewayInput {
7538	s.GatewayRegion = &v
7539	return s
7540}
7541
7542// SetGatewayTimezone sets the GatewayTimezone field's value.
7543func (s *ActivateGatewayInput) SetGatewayTimezone(v string) *ActivateGatewayInput {
7544	s.GatewayTimezone = &v
7545	return s
7546}
7547
7548// SetGatewayType sets the GatewayType field's value.
7549func (s *ActivateGatewayInput) SetGatewayType(v string) *ActivateGatewayInput {
7550	s.GatewayType = &v
7551	return s
7552}
7553
7554// SetMediumChangerType sets the MediumChangerType field's value.
7555func (s *ActivateGatewayInput) SetMediumChangerType(v string) *ActivateGatewayInput {
7556	s.MediumChangerType = &v
7557	return s
7558}
7559
7560// SetTags sets the Tags field's value.
7561func (s *ActivateGatewayInput) SetTags(v []*Tag) *ActivateGatewayInput {
7562	s.Tags = v
7563	return s
7564}
7565
7566// SetTapeDriveType sets the TapeDriveType field's value.
7567func (s *ActivateGatewayInput) SetTapeDriveType(v string) *ActivateGatewayInput {
7568	s.TapeDriveType = &v
7569	return s
7570}
7571
7572// AWS Storage Gateway returns the Amazon Resource Name (ARN) of the activated
7573// gateway. It is a string made of information such as your account, gateway
7574// name, and AWS Region. This ARN is used to reference the gateway in other
7575// API operations as well as resource-based authorization.
7576//
7577// For gateways activated prior to September 02, 2015, the gateway ARN contains
7578// the gateway name rather than the gateway ID. Changing the name of the gateway
7579// has no effect on the gateway ARN.
7580type ActivateGatewayOutput struct {
7581	_ struct{} `type:"structure"`
7582
7583	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
7584	// to return a list of gateways for your account and AWS Region.
7585	GatewayARN *string `min:"50" type:"string"`
7586}
7587
7588// String returns the string representation
7589func (s ActivateGatewayOutput) String() string {
7590	return awsutil.Prettify(s)
7591}
7592
7593// GoString returns the string representation
7594func (s ActivateGatewayOutput) GoString() string {
7595	return s.String()
7596}
7597
7598// SetGatewayARN sets the GatewayARN field's value.
7599func (s *ActivateGatewayOutput) SetGatewayARN(v string) *ActivateGatewayOutput {
7600	s.GatewayARN = &v
7601	return s
7602}
7603
7604type AddCacheInput struct {
7605	_ struct{} `type:"structure"`
7606
7607	// An array of strings that identify disks that are to be configured as working
7608	// storage. Each string have a minimum length of 1 and maximum length of 300.
7609	// You can get the disk IDs from the ListLocalDisks API.
7610	//
7611	// DiskIds is a required field
7612	DiskIds []*string `type:"list" required:"true"`
7613
7614	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
7615	// to return a list of gateways for your account and AWS Region.
7616	//
7617	// GatewayARN is a required field
7618	GatewayARN *string `min:"50" type:"string" required:"true"`
7619}
7620
7621// String returns the string representation
7622func (s AddCacheInput) String() string {
7623	return awsutil.Prettify(s)
7624}
7625
7626// GoString returns the string representation
7627func (s AddCacheInput) GoString() string {
7628	return s.String()
7629}
7630
7631// Validate inspects the fields of the type to determine if they are valid.
7632func (s *AddCacheInput) Validate() error {
7633	invalidParams := request.ErrInvalidParams{Context: "AddCacheInput"}
7634	if s.DiskIds == nil {
7635		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
7636	}
7637	if s.GatewayARN == nil {
7638		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
7639	}
7640	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
7641		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
7642	}
7643
7644	if invalidParams.Len() > 0 {
7645		return invalidParams
7646	}
7647	return nil
7648}
7649
7650// SetDiskIds sets the DiskIds field's value.
7651func (s *AddCacheInput) SetDiskIds(v []*string) *AddCacheInput {
7652	s.DiskIds = v
7653	return s
7654}
7655
7656// SetGatewayARN sets the GatewayARN field's value.
7657func (s *AddCacheInput) SetGatewayARN(v string) *AddCacheInput {
7658	s.GatewayARN = &v
7659	return s
7660}
7661
7662type AddCacheOutput struct {
7663	_ struct{} `type:"structure"`
7664
7665	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
7666	// to return a list of gateways for your account and AWS Region.
7667	GatewayARN *string `min:"50" type:"string"`
7668}
7669
7670// String returns the string representation
7671func (s AddCacheOutput) String() string {
7672	return awsutil.Prettify(s)
7673}
7674
7675// GoString returns the string representation
7676func (s AddCacheOutput) GoString() string {
7677	return s.String()
7678}
7679
7680// SetGatewayARN sets the GatewayARN field's value.
7681func (s *AddCacheOutput) SetGatewayARN(v string) *AddCacheOutput {
7682	s.GatewayARN = &v
7683	return s
7684}
7685
7686// AddTagsToResourceInput
7687type AddTagsToResourceInput struct {
7688	_ struct{} `type:"structure"`
7689
7690	// The Amazon Resource Name (ARN) of the resource you want to add tags to.
7691	//
7692	// ResourceARN is a required field
7693	ResourceARN *string `min:"50" type:"string" required:"true"`
7694
7695	// The key-value pair that represents the tag you want to add to the resource.
7696	// The value can be an empty string.
7697	//
7698	// Valid characters for key and value are letters, spaces, and numbers representable
7699	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
7700	// maximum length of a tag's key is 128 characters, and the maximum length for
7701	// a tag's value is 256.
7702	//
7703	// Tags is a required field
7704	Tags []*Tag `type:"list" required:"true"`
7705}
7706
7707// String returns the string representation
7708func (s AddTagsToResourceInput) String() string {
7709	return awsutil.Prettify(s)
7710}
7711
7712// GoString returns the string representation
7713func (s AddTagsToResourceInput) GoString() string {
7714	return s.String()
7715}
7716
7717// Validate inspects the fields of the type to determine if they are valid.
7718func (s *AddTagsToResourceInput) Validate() error {
7719	invalidParams := request.ErrInvalidParams{Context: "AddTagsToResourceInput"}
7720	if s.ResourceARN == nil {
7721		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
7722	}
7723	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
7724		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
7725	}
7726	if s.Tags == nil {
7727		invalidParams.Add(request.NewErrParamRequired("Tags"))
7728	}
7729	if s.Tags != nil {
7730		for i, v := range s.Tags {
7731			if v == nil {
7732				continue
7733			}
7734			if err := v.Validate(); err != nil {
7735				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7736			}
7737		}
7738	}
7739
7740	if invalidParams.Len() > 0 {
7741		return invalidParams
7742	}
7743	return nil
7744}
7745
7746// SetResourceARN sets the ResourceARN field's value.
7747func (s *AddTagsToResourceInput) SetResourceARN(v string) *AddTagsToResourceInput {
7748	s.ResourceARN = &v
7749	return s
7750}
7751
7752// SetTags sets the Tags field's value.
7753func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput {
7754	s.Tags = v
7755	return s
7756}
7757
7758// AddTagsToResourceOutput
7759type AddTagsToResourceOutput struct {
7760	_ struct{} `type:"structure"`
7761
7762	// The Amazon Resource Name (ARN) of the resource you want to add tags to.
7763	ResourceARN *string `min:"50" type:"string"`
7764}
7765
7766// String returns the string representation
7767func (s AddTagsToResourceOutput) String() string {
7768	return awsutil.Prettify(s)
7769}
7770
7771// GoString returns the string representation
7772func (s AddTagsToResourceOutput) GoString() string {
7773	return s.String()
7774}
7775
7776// SetResourceARN sets the ResourceARN field's value.
7777func (s *AddTagsToResourceOutput) SetResourceARN(v string) *AddTagsToResourceOutput {
7778	s.ResourceARN = &v
7779	return s
7780}
7781
7782type AddUploadBufferInput struct {
7783	_ struct{} `type:"structure"`
7784
7785	// An array of strings that identify disks that are to be configured as working
7786	// storage. Each string have a minimum length of 1 and maximum length of 300.
7787	// You can get the disk IDs from the ListLocalDisks API.
7788	//
7789	// DiskIds is a required field
7790	DiskIds []*string `type:"list" required:"true"`
7791
7792	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
7793	// to return a list of gateways for your account and AWS Region.
7794	//
7795	// GatewayARN is a required field
7796	GatewayARN *string `min:"50" type:"string" required:"true"`
7797}
7798
7799// String returns the string representation
7800func (s AddUploadBufferInput) String() string {
7801	return awsutil.Prettify(s)
7802}
7803
7804// GoString returns the string representation
7805func (s AddUploadBufferInput) GoString() string {
7806	return s.String()
7807}
7808
7809// Validate inspects the fields of the type to determine if they are valid.
7810func (s *AddUploadBufferInput) Validate() error {
7811	invalidParams := request.ErrInvalidParams{Context: "AddUploadBufferInput"}
7812	if s.DiskIds == nil {
7813		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
7814	}
7815	if s.GatewayARN == nil {
7816		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
7817	}
7818	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
7819		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
7820	}
7821
7822	if invalidParams.Len() > 0 {
7823		return invalidParams
7824	}
7825	return nil
7826}
7827
7828// SetDiskIds sets the DiskIds field's value.
7829func (s *AddUploadBufferInput) SetDiskIds(v []*string) *AddUploadBufferInput {
7830	s.DiskIds = v
7831	return s
7832}
7833
7834// SetGatewayARN sets the GatewayARN field's value.
7835func (s *AddUploadBufferInput) SetGatewayARN(v string) *AddUploadBufferInput {
7836	s.GatewayARN = &v
7837	return s
7838}
7839
7840type AddUploadBufferOutput struct {
7841	_ struct{} `type:"structure"`
7842
7843	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
7844	// to return a list of gateways for your account and AWS Region.
7845	GatewayARN *string `min:"50" type:"string"`
7846}
7847
7848// String returns the string representation
7849func (s AddUploadBufferOutput) String() string {
7850	return awsutil.Prettify(s)
7851}
7852
7853// GoString returns the string representation
7854func (s AddUploadBufferOutput) GoString() string {
7855	return s.String()
7856}
7857
7858// SetGatewayARN sets the GatewayARN field's value.
7859func (s *AddUploadBufferOutput) SetGatewayARN(v string) *AddUploadBufferOutput {
7860	s.GatewayARN = &v
7861	return s
7862}
7863
7864// A JSON object containing one or more of the following fields:
7865//
7866//    * AddWorkingStorageInput$DiskIds
7867type AddWorkingStorageInput struct {
7868	_ struct{} `type:"structure"`
7869
7870	// An array of strings that identify disks that are to be configured as working
7871	// storage. Each string have a minimum length of 1 and maximum length of 300.
7872	// You can get the disk IDs from the ListLocalDisks API.
7873	//
7874	// DiskIds is a required field
7875	DiskIds []*string `type:"list" required:"true"`
7876
7877	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
7878	// to return a list of gateways for your account and AWS Region.
7879	//
7880	// GatewayARN is a required field
7881	GatewayARN *string `min:"50" type:"string" required:"true"`
7882}
7883
7884// String returns the string representation
7885func (s AddWorkingStorageInput) String() string {
7886	return awsutil.Prettify(s)
7887}
7888
7889// GoString returns the string representation
7890func (s AddWorkingStorageInput) GoString() string {
7891	return s.String()
7892}
7893
7894// Validate inspects the fields of the type to determine if they are valid.
7895func (s *AddWorkingStorageInput) Validate() error {
7896	invalidParams := request.ErrInvalidParams{Context: "AddWorkingStorageInput"}
7897	if s.DiskIds == nil {
7898		invalidParams.Add(request.NewErrParamRequired("DiskIds"))
7899	}
7900	if s.GatewayARN == nil {
7901		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
7902	}
7903	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
7904		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
7905	}
7906
7907	if invalidParams.Len() > 0 {
7908		return invalidParams
7909	}
7910	return nil
7911}
7912
7913// SetDiskIds sets the DiskIds field's value.
7914func (s *AddWorkingStorageInput) SetDiskIds(v []*string) *AddWorkingStorageInput {
7915	s.DiskIds = v
7916	return s
7917}
7918
7919// SetGatewayARN sets the GatewayARN field's value.
7920func (s *AddWorkingStorageInput) SetGatewayARN(v string) *AddWorkingStorageInput {
7921	s.GatewayARN = &v
7922	return s
7923}
7924
7925// A JSON object containing the of the gateway for which working storage was
7926// configured.
7927type AddWorkingStorageOutput struct {
7928	_ struct{} `type:"structure"`
7929
7930	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
7931	// to return a list of gateways for your account and AWS Region.
7932	GatewayARN *string `min:"50" type:"string"`
7933}
7934
7935// String returns the string representation
7936func (s AddWorkingStorageOutput) String() string {
7937	return awsutil.Prettify(s)
7938}
7939
7940// GoString returns the string representation
7941func (s AddWorkingStorageOutput) GoString() string {
7942	return s.String()
7943}
7944
7945// SetGatewayARN sets the GatewayARN field's value.
7946func (s *AddWorkingStorageOutput) SetGatewayARN(v string) *AddWorkingStorageOutput {
7947	s.GatewayARN = &v
7948	return s
7949}
7950
7951type AssignTapePoolInput struct {
7952	_ struct{} `type:"structure"`
7953
7954	// The ID of the pool that you want to add your tape to for archiving. The tape
7955	// in this pool is archived in the S3 storage class that is associated with
7956	// the pool. When you use your backup application to eject the tape, the tape
7957	// is archived directly into the storage class (Glacier or Deep Archive) that
7958	// corresponds to the pool.
7959	//
7960	// Valid values: "GLACIER", "DEEP_ARCHIVE"
7961	//
7962	// PoolId is a required field
7963	PoolId *string `min:"1" type:"string" required:"true"`
7964
7965	// The unique Amazon Resource Name (ARN) of the virtual tape that you want to
7966	// add to the tape pool.
7967	//
7968	// TapeARN is a required field
7969	TapeARN *string `min:"50" type:"string" required:"true"`
7970}
7971
7972// String returns the string representation
7973func (s AssignTapePoolInput) String() string {
7974	return awsutil.Prettify(s)
7975}
7976
7977// GoString returns the string representation
7978func (s AssignTapePoolInput) GoString() string {
7979	return s.String()
7980}
7981
7982// Validate inspects the fields of the type to determine if they are valid.
7983func (s *AssignTapePoolInput) Validate() error {
7984	invalidParams := request.ErrInvalidParams{Context: "AssignTapePoolInput"}
7985	if s.PoolId == nil {
7986		invalidParams.Add(request.NewErrParamRequired("PoolId"))
7987	}
7988	if s.PoolId != nil && len(*s.PoolId) < 1 {
7989		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
7990	}
7991	if s.TapeARN == nil {
7992		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
7993	}
7994	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
7995		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
7996	}
7997
7998	if invalidParams.Len() > 0 {
7999		return invalidParams
8000	}
8001	return nil
8002}
8003
8004// SetPoolId sets the PoolId field's value.
8005func (s *AssignTapePoolInput) SetPoolId(v string) *AssignTapePoolInput {
8006	s.PoolId = &v
8007	return s
8008}
8009
8010// SetTapeARN sets the TapeARN field's value.
8011func (s *AssignTapePoolInput) SetTapeARN(v string) *AssignTapePoolInput {
8012	s.TapeARN = &v
8013	return s
8014}
8015
8016type AssignTapePoolOutput struct {
8017	_ struct{} `type:"structure"`
8018
8019	// The unique Amazon Resource Names (ARN) of the virtual tape that was added
8020	// to the tape pool.
8021	TapeARN *string `min:"50" type:"string"`
8022}
8023
8024// String returns the string representation
8025func (s AssignTapePoolOutput) String() string {
8026	return awsutil.Prettify(s)
8027}
8028
8029// GoString returns the string representation
8030func (s AssignTapePoolOutput) GoString() string {
8031	return s.String()
8032}
8033
8034// SetTapeARN sets the TapeARN field's value.
8035func (s *AssignTapePoolOutput) SetTapeARN(v string) *AssignTapePoolOutput {
8036	s.TapeARN = &v
8037	return s
8038}
8039
8040// AttachVolumeInput
8041type AttachVolumeInput struct {
8042	_ struct{} `type:"structure"`
8043
8044	// The unique device ID or other distinguishing data that identifies the local
8045	// disk used to create the volume. This value is only required when you are
8046	// attaching a stored volume.
8047	DiskId *string `min:"1" type:"string"`
8048
8049	// The Amazon Resource Name (ARN) of the gateway that you want to attach the
8050	// volume to.
8051	//
8052	// GatewayARN is a required field
8053	GatewayARN *string `min:"50" type:"string" required:"true"`
8054
8055	// The network interface of the gateway on which to expose the iSCSI target.
8056	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
8057	// list of the network interfaces available on a gateway.
8058	//
8059	// Valid Values: A valid IP address.
8060	//
8061	// NetworkInterfaceId is a required field
8062	NetworkInterfaceId *string `type:"string" required:"true"`
8063
8064	// The name of the iSCSI target used by an initiator to connect to a volume
8065	// and used as a suffix for the target ARN. For example, specifying TargetName
8066	// 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.
8067	// The target name must be unique across all volumes on a gateway.
8068	//
8069	// If you don't specify a value, Storage Gateway uses the value that was previously
8070	// used for this volume as the new target name.
8071	TargetName *string `min:"1" type:"string"`
8072
8073	// The Amazon Resource Name (ARN) of the volume to attach to the specified gateway.
8074	//
8075	// VolumeARN is a required field
8076	VolumeARN *string `min:"50" type:"string" required:"true"`
8077}
8078
8079// String returns the string representation
8080func (s AttachVolumeInput) String() string {
8081	return awsutil.Prettify(s)
8082}
8083
8084// GoString returns the string representation
8085func (s AttachVolumeInput) GoString() string {
8086	return s.String()
8087}
8088
8089// Validate inspects the fields of the type to determine if they are valid.
8090func (s *AttachVolumeInput) Validate() error {
8091	invalidParams := request.ErrInvalidParams{Context: "AttachVolumeInput"}
8092	if s.DiskId != nil && len(*s.DiskId) < 1 {
8093		invalidParams.Add(request.NewErrParamMinLen("DiskId", 1))
8094	}
8095	if s.GatewayARN == nil {
8096		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8097	}
8098	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8099		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8100	}
8101	if s.NetworkInterfaceId == nil {
8102		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
8103	}
8104	if s.TargetName != nil && len(*s.TargetName) < 1 {
8105		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
8106	}
8107	if s.VolumeARN == nil {
8108		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
8109	}
8110	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
8111		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
8112	}
8113
8114	if invalidParams.Len() > 0 {
8115		return invalidParams
8116	}
8117	return nil
8118}
8119
8120// SetDiskId sets the DiskId field's value.
8121func (s *AttachVolumeInput) SetDiskId(v string) *AttachVolumeInput {
8122	s.DiskId = &v
8123	return s
8124}
8125
8126// SetGatewayARN sets the GatewayARN field's value.
8127func (s *AttachVolumeInput) SetGatewayARN(v string) *AttachVolumeInput {
8128	s.GatewayARN = &v
8129	return s
8130}
8131
8132// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
8133func (s *AttachVolumeInput) SetNetworkInterfaceId(v string) *AttachVolumeInput {
8134	s.NetworkInterfaceId = &v
8135	return s
8136}
8137
8138// SetTargetName sets the TargetName field's value.
8139func (s *AttachVolumeInput) SetTargetName(v string) *AttachVolumeInput {
8140	s.TargetName = &v
8141	return s
8142}
8143
8144// SetVolumeARN sets the VolumeARN field's value.
8145func (s *AttachVolumeInput) SetVolumeARN(v string) *AttachVolumeInput {
8146	s.VolumeARN = &v
8147	return s
8148}
8149
8150// AttachVolumeOutput
8151type AttachVolumeOutput struct {
8152	_ struct{} `type:"structure"`
8153
8154	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
8155	// name for the initiator that was used to connect to the target.
8156	TargetARN *string `min:"50" type:"string"`
8157
8158	// The Amazon Resource Name (ARN) of the volume that was attached to the gateway.
8159	VolumeARN *string `min:"50" type:"string"`
8160}
8161
8162// String returns the string representation
8163func (s AttachVolumeOutput) String() string {
8164	return awsutil.Prettify(s)
8165}
8166
8167// GoString returns the string representation
8168func (s AttachVolumeOutput) GoString() string {
8169	return s.String()
8170}
8171
8172// SetTargetARN sets the TargetARN field's value.
8173func (s *AttachVolumeOutput) SetTargetARN(v string) *AttachVolumeOutput {
8174	s.TargetARN = &v
8175	return s
8176}
8177
8178// SetVolumeARN sets the VolumeARN field's value.
8179func (s *AttachVolumeOutput) SetVolumeARN(v string) *AttachVolumeOutput {
8180	s.VolumeARN = &v
8181	return s
8182}
8183
8184// Describes an iSCSI cached volume.
8185type CachediSCSIVolume struct {
8186	_ struct{} `type:"structure"`
8187
8188	// The date the volume was created. Volumes created prior to March 28, 2017
8189	// don’t have this time stamp.
8190	CreatedDate *time.Time `type:"timestamp"`
8191
8192	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
8193	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
8194	KMSKey *string `min:"7" type:"string"`
8195
8196	// If the cached volume was created from a snapshot, this field contains the
8197	// snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
8198	SourceSnapshotId *string `type:"string"`
8199
8200	// The name of the iSCSI target used by an initiator to connect to a volume
8201	// and used as a suffix for the target ARN. For example, specifying TargetName
8202	// 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.
8203	// The target name must be unique across all volumes on a gateway.
8204	//
8205	// If you don't specify a value, Storage Gateway uses the value that was previously
8206	// used for this volume as the new target name.
8207	TargetName *string `min:"1" type:"string"`
8208
8209	// The Amazon Resource Name (ARN) of the storage volume.
8210	VolumeARN *string `min:"50" type:"string"`
8211
8212	// A value that indicates whether a storage volume is attached to or detached
8213	// from a gateway. For more information, see Moving Your Volumes to a Different
8214	// Gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
8215	VolumeAttachmentStatus *string `min:"3" type:"string"`
8216
8217	// The unique identifier of the volume, e.g. vol-AE4B946D.
8218	VolumeId *string `min:"12" type:"string"`
8219
8220	// Represents the percentage complete if the volume is restoring or bootstrapping
8221	// that represents the percent of data transferred. This field does not appear
8222	// in the response if the cached volume is not restoring or bootstrapping.
8223	VolumeProgress *float64 `type:"double"`
8224
8225	// The size, in bytes, of the volume capacity.
8226	VolumeSizeInBytes *int64 `type:"long"`
8227
8228	// One of the VolumeStatus values that indicates the state of the storage volume.
8229	VolumeStatus *string `min:"3" type:"string"`
8230
8231	// One of the VolumeType enumeration values that describes the type of the volume.
8232	VolumeType *string `min:"3" type:"string"`
8233
8234	// The size of the data stored on the volume in bytes. This value is calculated
8235	// based on the number of blocks that are touched, instead of the actual amount
8236	// of data written. This value can be useful for sequential write patterns but
8237	// less accurate for random write patterns. VolumeUsedInBytes is different from
8238	// the compressed size of the volume, which is the value that is used to calculate
8239	// your bill.
8240	//
8241	// This value is not available for volumes created prior to May 13, 2015, until
8242	// you store data on the volume.
8243	VolumeUsedInBytes *int64 `type:"long"`
8244
8245	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
8246	// for one stored volume.
8247	VolumeiSCSIAttributes *VolumeiSCSIAttributes `type:"structure"`
8248}
8249
8250// String returns the string representation
8251func (s CachediSCSIVolume) String() string {
8252	return awsutil.Prettify(s)
8253}
8254
8255// GoString returns the string representation
8256func (s CachediSCSIVolume) GoString() string {
8257	return s.String()
8258}
8259
8260// SetCreatedDate sets the CreatedDate field's value.
8261func (s *CachediSCSIVolume) SetCreatedDate(v time.Time) *CachediSCSIVolume {
8262	s.CreatedDate = &v
8263	return s
8264}
8265
8266// SetKMSKey sets the KMSKey field's value.
8267func (s *CachediSCSIVolume) SetKMSKey(v string) *CachediSCSIVolume {
8268	s.KMSKey = &v
8269	return s
8270}
8271
8272// SetSourceSnapshotId sets the SourceSnapshotId field's value.
8273func (s *CachediSCSIVolume) SetSourceSnapshotId(v string) *CachediSCSIVolume {
8274	s.SourceSnapshotId = &v
8275	return s
8276}
8277
8278// SetTargetName sets the TargetName field's value.
8279func (s *CachediSCSIVolume) SetTargetName(v string) *CachediSCSIVolume {
8280	s.TargetName = &v
8281	return s
8282}
8283
8284// SetVolumeARN sets the VolumeARN field's value.
8285func (s *CachediSCSIVolume) SetVolumeARN(v string) *CachediSCSIVolume {
8286	s.VolumeARN = &v
8287	return s
8288}
8289
8290// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
8291func (s *CachediSCSIVolume) SetVolumeAttachmentStatus(v string) *CachediSCSIVolume {
8292	s.VolumeAttachmentStatus = &v
8293	return s
8294}
8295
8296// SetVolumeId sets the VolumeId field's value.
8297func (s *CachediSCSIVolume) SetVolumeId(v string) *CachediSCSIVolume {
8298	s.VolumeId = &v
8299	return s
8300}
8301
8302// SetVolumeProgress sets the VolumeProgress field's value.
8303func (s *CachediSCSIVolume) SetVolumeProgress(v float64) *CachediSCSIVolume {
8304	s.VolumeProgress = &v
8305	return s
8306}
8307
8308// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
8309func (s *CachediSCSIVolume) SetVolumeSizeInBytes(v int64) *CachediSCSIVolume {
8310	s.VolumeSizeInBytes = &v
8311	return s
8312}
8313
8314// SetVolumeStatus sets the VolumeStatus field's value.
8315func (s *CachediSCSIVolume) SetVolumeStatus(v string) *CachediSCSIVolume {
8316	s.VolumeStatus = &v
8317	return s
8318}
8319
8320// SetVolumeType sets the VolumeType field's value.
8321func (s *CachediSCSIVolume) SetVolumeType(v string) *CachediSCSIVolume {
8322	s.VolumeType = &v
8323	return s
8324}
8325
8326// SetVolumeUsedInBytes sets the VolumeUsedInBytes field's value.
8327func (s *CachediSCSIVolume) SetVolumeUsedInBytes(v int64) *CachediSCSIVolume {
8328	s.VolumeUsedInBytes = &v
8329	return s
8330}
8331
8332// SetVolumeiSCSIAttributes sets the VolumeiSCSIAttributes field's value.
8333func (s *CachediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *CachediSCSIVolume {
8334	s.VolumeiSCSIAttributes = v
8335	return s
8336}
8337
8338// CancelArchivalInput
8339type CancelArchivalInput struct {
8340	_ struct{} `type:"structure"`
8341
8342	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8343	// to return a list of gateways for your account and AWS Region.
8344	//
8345	// GatewayARN is a required field
8346	GatewayARN *string `min:"50" type:"string" required:"true"`
8347
8348	// The Amazon Resource Name (ARN) of the virtual tape you want to cancel archiving
8349	// for.
8350	//
8351	// TapeARN is a required field
8352	TapeARN *string `min:"50" type:"string" required:"true"`
8353}
8354
8355// String returns the string representation
8356func (s CancelArchivalInput) String() string {
8357	return awsutil.Prettify(s)
8358}
8359
8360// GoString returns the string representation
8361func (s CancelArchivalInput) GoString() string {
8362	return s.String()
8363}
8364
8365// Validate inspects the fields of the type to determine if they are valid.
8366func (s *CancelArchivalInput) Validate() error {
8367	invalidParams := request.ErrInvalidParams{Context: "CancelArchivalInput"}
8368	if s.GatewayARN == nil {
8369		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8370	}
8371	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8372		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8373	}
8374	if s.TapeARN == nil {
8375		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
8376	}
8377	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
8378		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
8379	}
8380
8381	if invalidParams.Len() > 0 {
8382		return invalidParams
8383	}
8384	return nil
8385}
8386
8387// SetGatewayARN sets the GatewayARN field's value.
8388func (s *CancelArchivalInput) SetGatewayARN(v string) *CancelArchivalInput {
8389	s.GatewayARN = &v
8390	return s
8391}
8392
8393// SetTapeARN sets the TapeARN field's value.
8394func (s *CancelArchivalInput) SetTapeARN(v string) *CancelArchivalInput {
8395	s.TapeARN = &v
8396	return s
8397}
8398
8399// CancelArchivalOutput
8400type CancelArchivalOutput struct {
8401	_ struct{} `type:"structure"`
8402
8403	// The Amazon Resource Name (ARN) of the virtual tape for which archiving was
8404	// canceled.
8405	TapeARN *string `min:"50" type:"string"`
8406}
8407
8408// String returns the string representation
8409func (s CancelArchivalOutput) String() string {
8410	return awsutil.Prettify(s)
8411}
8412
8413// GoString returns the string representation
8414func (s CancelArchivalOutput) GoString() string {
8415	return s.String()
8416}
8417
8418// SetTapeARN sets the TapeARN field's value.
8419func (s *CancelArchivalOutput) SetTapeARN(v string) *CancelArchivalOutput {
8420	s.TapeARN = &v
8421	return s
8422}
8423
8424// CancelRetrievalInput
8425type CancelRetrievalInput struct {
8426	_ struct{} `type:"structure"`
8427
8428	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8429	// to return a list of gateways for your account and AWS Region.
8430	//
8431	// GatewayARN is a required field
8432	GatewayARN *string `min:"50" type:"string" required:"true"`
8433
8434	// The Amazon Resource Name (ARN) of the virtual tape you want to cancel retrieval
8435	// for.
8436	//
8437	// TapeARN is a required field
8438	TapeARN *string `min:"50" type:"string" required:"true"`
8439}
8440
8441// String returns the string representation
8442func (s CancelRetrievalInput) String() string {
8443	return awsutil.Prettify(s)
8444}
8445
8446// GoString returns the string representation
8447func (s CancelRetrievalInput) GoString() string {
8448	return s.String()
8449}
8450
8451// Validate inspects the fields of the type to determine if they are valid.
8452func (s *CancelRetrievalInput) Validate() error {
8453	invalidParams := request.ErrInvalidParams{Context: "CancelRetrievalInput"}
8454	if s.GatewayARN == nil {
8455		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8456	}
8457	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8458		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8459	}
8460	if s.TapeARN == nil {
8461		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
8462	}
8463	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
8464		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
8465	}
8466
8467	if invalidParams.Len() > 0 {
8468		return invalidParams
8469	}
8470	return nil
8471}
8472
8473// SetGatewayARN sets the GatewayARN field's value.
8474func (s *CancelRetrievalInput) SetGatewayARN(v string) *CancelRetrievalInput {
8475	s.GatewayARN = &v
8476	return s
8477}
8478
8479// SetTapeARN sets the TapeARN field's value.
8480func (s *CancelRetrievalInput) SetTapeARN(v string) *CancelRetrievalInput {
8481	s.TapeARN = &v
8482	return s
8483}
8484
8485// CancelRetrievalOutput
8486type CancelRetrievalOutput struct {
8487	_ struct{} `type:"structure"`
8488
8489	// The Amazon Resource Name (ARN) of the virtual tape for which retrieval was
8490	// canceled.
8491	TapeARN *string `min:"50" type:"string"`
8492}
8493
8494// String returns the string representation
8495func (s CancelRetrievalOutput) String() string {
8496	return awsutil.Prettify(s)
8497}
8498
8499// GoString returns the string representation
8500func (s CancelRetrievalOutput) GoString() string {
8501	return s.String()
8502}
8503
8504// SetTapeARN sets the TapeARN field's value.
8505func (s *CancelRetrievalOutput) SetTapeARN(v string) *CancelRetrievalOutput {
8506	s.TapeARN = &v
8507	return s
8508}
8509
8510// Describes Challenge-Handshake Authentication Protocol (CHAP) information
8511// that supports authentication between your gateway and iSCSI initiators.
8512type ChapInfo struct {
8513	_ struct{} `type:"structure"`
8514
8515	// The iSCSI initiator that connects to the target.
8516	InitiatorName *string `min:"1" type:"string"`
8517
8518	// The secret key that the initiator (for example, the Windows client) must
8519	// provide to participate in mutual CHAP with the target.
8520	SecretToAuthenticateInitiator *string `min:"1" type:"string" sensitive:"true"`
8521
8522	// The secret key that the target must provide to participate in mutual CHAP
8523	// with the initiator (e.g. Windows client).
8524	SecretToAuthenticateTarget *string `min:"1" type:"string" sensitive:"true"`
8525
8526	// The Amazon Resource Name (ARN) of the volume.
8527	//
8528	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
8529	// (-).
8530	TargetARN *string `min:"50" type:"string"`
8531}
8532
8533// String returns the string representation
8534func (s ChapInfo) String() string {
8535	return awsutil.Prettify(s)
8536}
8537
8538// GoString returns the string representation
8539func (s ChapInfo) GoString() string {
8540	return s.String()
8541}
8542
8543// SetInitiatorName sets the InitiatorName field's value.
8544func (s *ChapInfo) SetInitiatorName(v string) *ChapInfo {
8545	s.InitiatorName = &v
8546	return s
8547}
8548
8549// SetSecretToAuthenticateInitiator sets the SecretToAuthenticateInitiator field's value.
8550func (s *ChapInfo) SetSecretToAuthenticateInitiator(v string) *ChapInfo {
8551	s.SecretToAuthenticateInitiator = &v
8552	return s
8553}
8554
8555// SetSecretToAuthenticateTarget sets the SecretToAuthenticateTarget field's value.
8556func (s *ChapInfo) SetSecretToAuthenticateTarget(v string) *ChapInfo {
8557	s.SecretToAuthenticateTarget = &v
8558	return s
8559}
8560
8561// SetTargetARN sets the TargetARN field's value.
8562func (s *ChapInfo) SetTargetARN(v string) *ChapInfo {
8563	s.TargetARN = &v
8564	return s
8565}
8566
8567type CreateCachediSCSIVolumeInput struct {
8568	_ struct{} `type:"structure"`
8569
8570	// A unique identifier that you use to retry a request. If you retry a request,
8571	// use the same ClientToken you specified in the initial request.
8572	//
8573	// ClientToken is a required field
8574	ClientToken *string `min:"5" type:"string" required:"true"`
8575
8576	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
8577	// to return a list of gateways for your account and AWS Region.
8578	//
8579	// GatewayARN is a required field
8580	GatewayARN *string `min:"50" type:"string" required:"true"`
8581
8582	// True to use Amazon S3 server side encryption with your own AWS KMS key, or
8583	// false to use a key managed by Amazon S3. Optional.
8584	KMSEncrypted *bool `type:"boolean"`
8585
8586	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
8587	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
8588	KMSKey *string `min:"7" type:"string"`
8589
8590	// The network interface of the gateway on which to expose the iSCSI target.
8591	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
8592	// list of the network interfaces available on a gateway.
8593	//
8594	// Valid Values: A valid IP address.
8595	//
8596	// NetworkInterfaceId is a required field
8597	NetworkInterfaceId *string `type:"string" required:"true"`
8598
8599	// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the
8600	// new cached volume. Specify this field if you want to create the iSCSI storage
8601	// volume from a snapshot otherwise do not include this field. To list snapshots
8602	// for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
8603	// in the Amazon Elastic Compute Cloud API Reference.
8604	SnapshotId *string `type:"string"`
8605
8606	// The ARN for an existing volume. Specifying this ARN makes the new volume
8607	// into an exact copy of the specified existing volume's latest recovery point.
8608	// The VolumeSizeInBytes value for this new volume must be equal to or larger
8609	// than the size of the existing volume, in bytes.
8610	SourceVolumeARN *string `min:"50" type:"string"`
8611
8612	// A list of up to 50 tags that you can assign to a cached volume. Each tag
8613	// is a key-value pair.
8614	//
8615	// Valid characters for key and value are letters, spaces, and numbers that
8616	// you can represent in UTF-8 format, and the following special characters:
8617	// + - = . _ : / @. The maximum length of a tag's key is 128 characters, and
8618	// the maximum length for a tag's value is 256 characters.
8619	Tags []*Tag `type:"list"`
8620
8621	// The name of the iSCSI target used by an initiator to connect to a volume
8622	// and used as a suffix for the target ARN. For example, specifying TargetName
8623	// 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.
8624	// The target name must be unique across all volumes on a gateway.
8625	//
8626	// If you don't specify a value, Storage Gateway uses the value that was previously
8627	// used for this volume as the new target name.
8628	//
8629	// TargetName is a required field
8630	TargetName *string `min:"1" type:"string" required:"true"`
8631
8632	// The size of the volume in bytes.
8633	//
8634	// VolumeSizeInBytes is a required field
8635	VolumeSizeInBytes *int64 `type:"long" required:"true"`
8636}
8637
8638// String returns the string representation
8639func (s CreateCachediSCSIVolumeInput) String() string {
8640	return awsutil.Prettify(s)
8641}
8642
8643// GoString returns the string representation
8644func (s CreateCachediSCSIVolumeInput) GoString() string {
8645	return s.String()
8646}
8647
8648// Validate inspects the fields of the type to determine if they are valid.
8649func (s *CreateCachediSCSIVolumeInput) Validate() error {
8650	invalidParams := request.ErrInvalidParams{Context: "CreateCachediSCSIVolumeInput"}
8651	if s.ClientToken == nil {
8652		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
8653	}
8654	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
8655		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
8656	}
8657	if s.GatewayARN == nil {
8658		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8659	}
8660	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8661		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8662	}
8663	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
8664		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
8665	}
8666	if s.NetworkInterfaceId == nil {
8667		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
8668	}
8669	if s.SourceVolumeARN != nil && len(*s.SourceVolumeARN) < 50 {
8670		invalidParams.Add(request.NewErrParamMinLen("SourceVolumeARN", 50))
8671	}
8672	if s.TargetName == nil {
8673		invalidParams.Add(request.NewErrParamRequired("TargetName"))
8674	}
8675	if s.TargetName != nil && len(*s.TargetName) < 1 {
8676		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
8677	}
8678	if s.VolumeSizeInBytes == nil {
8679		invalidParams.Add(request.NewErrParamRequired("VolumeSizeInBytes"))
8680	}
8681	if s.Tags != nil {
8682		for i, v := range s.Tags {
8683			if v == nil {
8684				continue
8685			}
8686			if err := v.Validate(); err != nil {
8687				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8688			}
8689		}
8690	}
8691
8692	if invalidParams.Len() > 0 {
8693		return invalidParams
8694	}
8695	return nil
8696}
8697
8698// SetClientToken sets the ClientToken field's value.
8699func (s *CreateCachediSCSIVolumeInput) SetClientToken(v string) *CreateCachediSCSIVolumeInput {
8700	s.ClientToken = &v
8701	return s
8702}
8703
8704// SetGatewayARN sets the GatewayARN field's value.
8705func (s *CreateCachediSCSIVolumeInput) SetGatewayARN(v string) *CreateCachediSCSIVolumeInput {
8706	s.GatewayARN = &v
8707	return s
8708}
8709
8710// SetKMSEncrypted sets the KMSEncrypted field's value.
8711func (s *CreateCachediSCSIVolumeInput) SetKMSEncrypted(v bool) *CreateCachediSCSIVolumeInput {
8712	s.KMSEncrypted = &v
8713	return s
8714}
8715
8716// SetKMSKey sets the KMSKey field's value.
8717func (s *CreateCachediSCSIVolumeInput) SetKMSKey(v string) *CreateCachediSCSIVolumeInput {
8718	s.KMSKey = &v
8719	return s
8720}
8721
8722// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
8723func (s *CreateCachediSCSIVolumeInput) SetNetworkInterfaceId(v string) *CreateCachediSCSIVolumeInput {
8724	s.NetworkInterfaceId = &v
8725	return s
8726}
8727
8728// SetSnapshotId sets the SnapshotId field's value.
8729func (s *CreateCachediSCSIVolumeInput) SetSnapshotId(v string) *CreateCachediSCSIVolumeInput {
8730	s.SnapshotId = &v
8731	return s
8732}
8733
8734// SetSourceVolumeARN sets the SourceVolumeARN field's value.
8735func (s *CreateCachediSCSIVolumeInput) SetSourceVolumeARN(v string) *CreateCachediSCSIVolumeInput {
8736	s.SourceVolumeARN = &v
8737	return s
8738}
8739
8740// SetTags sets the Tags field's value.
8741func (s *CreateCachediSCSIVolumeInput) SetTags(v []*Tag) *CreateCachediSCSIVolumeInput {
8742	s.Tags = v
8743	return s
8744}
8745
8746// SetTargetName sets the TargetName field's value.
8747func (s *CreateCachediSCSIVolumeInput) SetTargetName(v string) *CreateCachediSCSIVolumeInput {
8748	s.TargetName = &v
8749	return s
8750}
8751
8752// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
8753func (s *CreateCachediSCSIVolumeInput) SetVolumeSizeInBytes(v int64) *CreateCachediSCSIVolumeInput {
8754	s.VolumeSizeInBytes = &v
8755	return s
8756}
8757
8758type CreateCachediSCSIVolumeOutput struct {
8759	_ struct{} `type:"structure"`
8760
8761	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
8762	// name that initiators can use to connect to the target.
8763	TargetARN *string `min:"50" type:"string"`
8764
8765	// The Amazon Resource Name (ARN) of the configured volume.
8766	VolumeARN *string `min:"50" type:"string"`
8767}
8768
8769// String returns the string representation
8770func (s CreateCachediSCSIVolumeOutput) String() string {
8771	return awsutil.Prettify(s)
8772}
8773
8774// GoString returns the string representation
8775func (s CreateCachediSCSIVolumeOutput) GoString() string {
8776	return s.String()
8777}
8778
8779// SetTargetARN sets the TargetARN field's value.
8780func (s *CreateCachediSCSIVolumeOutput) SetTargetARN(v string) *CreateCachediSCSIVolumeOutput {
8781	s.TargetARN = &v
8782	return s
8783}
8784
8785// SetVolumeARN sets the VolumeARN field's value.
8786func (s *CreateCachediSCSIVolumeOutput) SetVolumeARN(v string) *CreateCachediSCSIVolumeOutput {
8787	s.VolumeARN = &v
8788	return s
8789}
8790
8791// CreateNFSFileShareInput
8792type CreateNFSFileShareInput struct {
8793	_ struct{} `type:"structure"`
8794
8795	// The list of clients that are allowed to access the file gateway. The list
8796	// must contain either valid IP addresses or valid CIDR blocks.
8797	ClientList []*string `min:"1" type:"list"`
8798
8799	// A unique string value that you supply that is used by file gateway to ensure
8800	// idempotent file share creation.
8801	//
8802	// ClientToken is a required field
8803	ClientToken *string `min:"5" type:"string" required:"true"`
8804
8805	// The default storage class for objects put into an Amazon S3 bucket by the
8806	// file gateway. Possible values are S3_STANDARD, S3_STANDARD_IA, or S3_ONEZONE_IA.
8807	// If this field is not populated, the default value S3_STANDARD is used. Optional.
8808	DefaultStorageClass *string `min:"5" type:"string"`
8809
8810	// The Amazon Resource Name (ARN) of the file gateway on which you want to create
8811	// a file share.
8812	//
8813	// GatewayARN is a required field
8814	GatewayARN *string `min:"50" type:"string" required:"true"`
8815
8816	// A value that enables guessing of the MIME type for uploaded objects based
8817	// on file extensions. Set this value to true to enable MIME type guessing,
8818	// and otherwise to false. The default value is true.
8819	GuessMIMETypeEnabled *bool `type:"boolean"`
8820
8821	// True to use Amazon S3 server side encryption with your own AWS KMS key, or
8822	// false to use a key managed by Amazon S3. Optional.
8823	KMSEncrypted *bool `type:"boolean"`
8824
8825	// The Amazon Resource Name (ARN) AWS KMS key used for Amazon S3 server side
8826	// encryption. This value can only be set when KMSEncrypted is true. Optional.
8827	KMSKey *string `min:"7" type:"string"`
8828
8829	// The ARN of the backed storage used for storing file data.
8830	//
8831	// LocationARN is a required field
8832	LocationARN *string `min:"16" type:"string" required:"true"`
8833
8834	// File share default values. Optional.
8835	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
8836
8837	// A value that sets the access control list permission for objects in the S3
8838	// bucket that a file gateway puts objects into. The default value is "private".
8839	ObjectACL *string `type:"string" enum:"ObjectACL"`
8840
8841	// A value that sets the write status of a file share. This value is true if
8842	// the write status is read-only, and otherwise false.
8843	ReadOnly *bool `type:"boolean"`
8844
8845	// A value that sets who pays the cost of the request and the cost associated
8846	// with data download from the S3 bucket. If this value is set to true, the
8847	// requester pays the costs. Otherwise the S3 bucket owner pays. However, the
8848	// S3 bucket owner always pays the cost of storing data.
8849	//
8850	// RequesterPays is a configuration for the S3 bucket that backs the file share,
8851	// so make sure that the configuration on the file share is the same as the
8852	// S3 bucket configuration.
8853	RequesterPays *bool `type:"boolean"`
8854
8855	// The ARN of the AWS Identity and Access Management (IAM) role that a file
8856	// gateway assumes when it accesses the underlying storage.
8857	//
8858	// Role is a required field
8859	Role *string `min:"20" type:"string" required:"true"`
8860
8861	// A value that maps a user to anonymous user. Valid options are the following:
8862	//
8863	//    * RootSquash - Only root is mapped to anonymous user.
8864	//
8865	//    * NoSquash - No one is mapped to anonymous user
8866	//
8867	//    * AllSquash - Everyone is mapped to anonymous user.
8868	Squash *string `min:"5" type:"string"`
8869
8870	// A list of up to 50 tags that can be assigned to the NFS file share. Each
8871	// tag is a key-value pair.
8872	//
8873	// Valid characters for key and value are letters, spaces, and numbers representable
8874	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
8875	// maximum length of a tag's key is 128 characters, and the maximum length for
8876	// a tag's value is 256.
8877	Tags []*Tag `type:"list"`
8878}
8879
8880// String returns the string representation
8881func (s CreateNFSFileShareInput) String() string {
8882	return awsutil.Prettify(s)
8883}
8884
8885// GoString returns the string representation
8886func (s CreateNFSFileShareInput) GoString() string {
8887	return s.String()
8888}
8889
8890// Validate inspects the fields of the type to determine if they are valid.
8891func (s *CreateNFSFileShareInput) Validate() error {
8892	invalidParams := request.ErrInvalidParams{Context: "CreateNFSFileShareInput"}
8893	if s.ClientList != nil && len(s.ClientList) < 1 {
8894		invalidParams.Add(request.NewErrParamMinLen("ClientList", 1))
8895	}
8896	if s.ClientToken == nil {
8897		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
8898	}
8899	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
8900		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
8901	}
8902	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
8903		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
8904	}
8905	if s.GatewayARN == nil {
8906		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
8907	}
8908	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
8909		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
8910	}
8911	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
8912		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
8913	}
8914	if s.LocationARN == nil {
8915		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
8916	}
8917	if s.LocationARN != nil && len(*s.LocationARN) < 16 {
8918		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 16))
8919	}
8920	if s.Role == nil {
8921		invalidParams.Add(request.NewErrParamRequired("Role"))
8922	}
8923	if s.Role != nil && len(*s.Role) < 20 {
8924		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
8925	}
8926	if s.Squash != nil && len(*s.Squash) < 5 {
8927		invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
8928	}
8929	if s.NFSFileShareDefaults != nil {
8930		if err := s.NFSFileShareDefaults.Validate(); err != nil {
8931			invalidParams.AddNested("NFSFileShareDefaults", err.(request.ErrInvalidParams))
8932		}
8933	}
8934	if s.Tags != nil {
8935		for i, v := range s.Tags {
8936			if v == nil {
8937				continue
8938			}
8939			if err := v.Validate(); err != nil {
8940				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8941			}
8942		}
8943	}
8944
8945	if invalidParams.Len() > 0 {
8946		return invalidParams
8947	}
8948	return nil
8949}
8950
8951// SetClientList sets the ClientList field's value.
8952func (s *CreateNFSFileShareInput) SetClientList(v []*string) *CreateNFSFileShareInput {
8953	s.ClientList = v
8954	return s
8955}
8956
8957// SetClientToken sets the ClientToken field's value.
8958func (s *CreateNFSFileShareInput) SetClientToken(v string) *CreateNFSFileShareInput {
8959	s.ClientToken = &v
8960	return s
8961}
8962
8963// SetDefaultStorageClass sets the DefaultStorageClass field's value.
8964func (s *CreateNFSFileShareInput) SetDefaultStorageClass(v string) *CreateNFSFileShareInput {
8965	s.DefaultStorageClass = &v
8966	return s
8967}
8968
8969// SetGatewayARN sets the GatewayARN field's value.
8970func (s *CreateNFSFileShareInput) SetGatewayARN(v string) *CreateNFSFileShareInput {
8971	s.GatewayARN = &v
8972	return s
8973}
8974
8975// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
8976func (s *CreateNFSFileShareInput) SetGuessMIMETypeEnabled(v bool) *CreateNFSFileShareInput {
8977	s.GuessMIMETypeEnabled = &v
8978	return s
8979}
8980
8981// SetKMSEncrypted sets the KMSEncrypted field's value.
8982func (s *CreateNFSFileShareInput) SetKMSEncrypted(v bool) *CreateNFSFileShareInput {
8983	s.KMSEncrypted = &v
8984	return s
8985}
8986
8987// SetKMSKey sets the KMSKey field's value.
8988func (s *CreateNFSFileShareInput) SetKMSKey(v string) *CreateNFSFileShareInput {
8989	s.KMSKey = &v
8990	return s
8991}
8992
8993// SetLocationARN sets the LocationARN field's value.
8994func (s *CreateNFSFileShareInput) SetLocationARN(v string) *CreateNFSFileShareInput {
8995	s.LocationARN = &v
8996	return s
8997}
8998
8999// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
9000func (s *CreateNFSFileShareInput) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *CreateNFSFileShareInput {
9001	s.NFSFileShareDefaults = v
9002	return s
9003}
9004
9005// SetObjectACL sets the ObjectACL field's value.
9006func (s *CreateNFSFileShareInput) SetObjectACL(v string) *CreateNFSFileShareInput {
9007	s.ObjectACL = &v
9008	return s
9009}
9010
9011// SetReadOnly sets the ReadOnly field's value.
9012func (s *CreateNFSFileShareInput) SetReadOnly(v bool) *CreateNFSFileShareInput {
9013	s.ReadOnly = &v
9014	return s
9015}
9016
9017// SetRequesterPays sets the RequesterPays field's value.
9018func (s *CreateNFSFileShareInput) SetRequesterPays(v bool) *CreateNFSFileShareInput {
9019	s.RequesterPays = &v
9020	return s
9021}
9022
9023// SetRole sets the Role field's value.
9024func (s *CreateNFSFileShareInput) SetRole(v string) *CreateNFSFileShareInput {
9025	s.Role = &v
9026	return s
9027}
9028
9029// SetSquash sets the Squash field's value.
9030func (s *CreateNFSFileShareInput) SetSquash(v string) *CreateNFSFileShareInput {
9031	s.Squash = &v
9032	return s
9033}
9034
9035// SetTags sets the Tags field's value.
9036func (s *CreateNFSFileShareInput) SetTags(v []*Tag) *CreateNFSFileShareInput {
9037	s.Tags = v
9038	return s
9039}
9040
9041// CreateNFSFileShareOutput
9042type CreateNFSFileShareOutput struct {
9043	_ struct{} `type:"structure"`
9044
9045	// The Amazon Resource Name (ARN) of the newly created file share.
9046	FileShareARN *string `min:"50" type:"string"`
9047}
9048
9049// String returns the string representation
9050func (s CreateNFSFileShareOutput) String() string {
9051	return awsutil.Prettify(s)
9052}
9053
9054// GoString returns the string representation
9055func (s CreateNFSFileShareOutput) GoString() string {
9056	return s.String()
9057}
9058
9059// SetFileShareARN sets the FileShareARN field's value.
9060func (s *CreateNFSFileShareOutput) SetFileShareARN(v string) *CreateNFSFileShareOutput {
9061	s.FileShareARN = &v
9062	return s
9063}
9064
9065// CreateSMBFileShareInput
9066type CreateSMBFileShareInput struct {
9067	_ struct{} `type:"structure"`
9068
9069	// A list of users in the Active Directory that will be granted administrator
9070	// privileges on the file share. These users can do all file operations as the
9071	// super-user.
9072	//
9073	// Use this option very carefully, because any user in this list can do anything
9074	// they like on the file share, regardless of file permissions.
9075	AdminUserList []*string `type:"list"`
9076
9077	// The authentication method that users use to access the file share.
9078	//
9079	// Valid values are ActiveDirectory or GuestAccess. The default is ActiveDirectory.
9080	Authentication *string `min:"5" type:"string"`
9081
9082	// A unique string value that you supply that is used by file gateway to ensure
9083	// idempotent file share creation.
9084	//
9085	// ClientToken is a required field
9086	ClientToken *string `min:"5" type:"string" required:"true"`
9087
9088	// The default storage class for objects put into an Amazon S3 bucket by the
9089	// file gateway. Possible values are S3_STANDARD, S3_STANDARD_IA, or S3_ONEZONE_IA.
9090	// If this field is not populated, the default value S3_STANDARD is used. Optional.
9091	DefaultStorageClass *string `min:"5" type:"string"`
9092
9093	// The Amazon Resource Name (ARN) of the file gateway on which you want to create
9094	// a file share.
9095	//
9096	// GatewayARN is a required field
9097	GatewayARN *string `min:"50" type:"string" required:"true"`
9098
9099	// A value that enables guessing of the MIME type for uploaded objects based
9100	// on file extensions. Set this value to true to enable MIME type guessing,
9101	// and otherwise to false. The default value is true.
9102	GuessMIMETypeEnabled *bool `type:"boolean"`
9103
9104	// A list of users or groups in the Active Directory that are not allowed to
9105	// access the file share. A group must be prefixed with the @ character. For
9106	// example @group1. Can only be set if Authentication is set to ActiveDirectory.
9107	InvalidUserList []*string `type:"list"`
9108
9109	// True to use Amazon S3 server side encryption with your own AWS KMS key, or
9110	// false to use a key managed by Amazon S3. Optional.
9111	KMSEncrypted *bool `type:"boolean"`
9112
9113	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
9114	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
9115	KMSKey *string `min:"7" type:"string"`
9116
9117	// The ARN of the backed storage used for storing file data.
9118	//
9119	// LocationARN is a required field
9120	LocationARN *string `min:"16" type:"string" required:"true"`
9121
9122	// A value that sets the access control list permission for objects in the S3
9123	// bucket that a file gateway puts objects into. The default value is "private".
9124	ObjectACL *string `type:"string" enum:"ObjectACL"`
9125
9126	// A value that sets the write status of a file share. This value is true if
9127	// the write status is read-only, and otherwise false.
9128	ReadOnly *bool `type:"boolean"`
9129
9130	// A value that sets who pays the cost of the request and the cost associated
9131	// with data download from the S3 bucket. If this value is set to true, the
9132	// requester pays the costs. Otherwise the S3 bucket owner pays. However, the
9133	// S3 bucket owner always pays the cost of storing data.
9134	//
9135	// RequesterPays is a configuration for the S3 bucket that backs the file share,
9136	// so make sure that the configuration on the file share is the same as the
9137	// S3 bucket configuration.
9138	RequesterPays *bool `type:"boolean"`
9139
9140	// The ARN of the AWS Identity and Access Management (IAM) role that a file
9141	// gateway assumes when it accesses the underlying storage.
9142	//
9143	// Role is a required field
9144	Role *string `min:"20" type:"string" required:"true"`
9145
9146	// Set this value to "true to enable ACL (access control list) on the SMB file
9147	// share. Set it to "false" to map file and directory permissions to the POSIX
9148	// permissions.
9149	//
9150	// For more information, see https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html
9151	// in the Storage Gateway User Guide.
9152	SMBACLEnabled *bool `type:"boolean"`
9153
9154	// A list of up to 50 tags that can be assigned to the NFS file share. Each
9155	// tag is a key-value pair.
9156	//
9157	// Valid characters for key and value are letters, spaces, and numbers representable
9158	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
9159	// maximum length of a tag's key is 128 characters, and the maximum length for
9160	// a tag's value is 256.
9161	Tags []*Tag `type:"list"`
9162
9163	// A list of users or groups in the Active Directory that are allowed to access
9164	// the file share. A group must be prefixed with the @ character. For example
9165	// @group1. Can only be set if Authentication is set to ActiveDirectory.
9166	ValidUserList []*string `type:"list"`
9167}
9168
9169// String returns the string representation
9170func (s CreateSMBFileShareInput) String() string {
9171	return awsutil.Prettify(s)
9172}
9173
9174// GoString returns the string representation
9175func (s CreateSMBFileShareInput) GoString() string {
9176	return s.String()
9177}
9178
9179// Validate inspects the fields of the type to determine if they are valid.
9180func (s *CreateSMBFileShareInput) Validate() error {
9181	invalidParams := request.ErrInvalidParams{Context: "CreateSMBFileShareInput"}
9182	if s.Authentication != nil && len(*s.Authentication) < 5 {
9183		invalidParams.Add(request.NewErrParamMinLen("Authentication", 5))
9184	}
9185	if s.ClientToken == nil {
9186		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
9187	}
9188	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
9189		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
9190	}
9191	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
9192		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
9193	}
9194	if s.GatewayARN == nil {
9195		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9196	}
9197	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9198		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9199	}
9200	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
9201		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
9202	}
9203	if s.LocationARN == nil {
9204		invalidParams.Add(request.NewErrParamRequired("LocationARN"))
9205	}
9206	if s.LocationARN != nil && len(*s.LocationARN) < 16 {
9207		invalidParams.Add(request.NewErrParamMinLen("LocationARN", 16))
9208	}
9209	if s.Role == nil {
9210		invalidParams.Add(request.NewErrParamRequired("Role"))
9211	}
9212	if s.Role != nil && len(*s.Role) < 20 {
9213		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
9214	}
9215	if s.Tags != nil {
9216		for i, v := range s.Tags {
9217			if v == nil {
9218				continue
9219			}
9220			if err := v.Validate(); err != nil {
9221				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9222			}
9223		}
9224	}
9225
9226	if invalidParams.Len() > 0 {
9227		return invalidParams
9228	}
9229	return nil
9230}
9231
9232// SetAdminUserList sets the AdminUserList field's value.
9233func (s *CreateSMBFileShareInput) SetAdminUserList(v []*string) *CreateSMBFileShareInput {
9234	s.AdminUserList = v
9235	return s
9236}
9237
9238// SetAuthentication sets the Authentication field's value.
9239func (s *CreateSMBFileShareInput) SetAuthentication(v string) *CreateSMBFileShareInput {
9240	s.Authentication = &v
9241	return s
9242}
9243
9244// SetClientToken sets the ClientToken field's value.
9245func (s *CreateSMBFileShareInput) SetClientToken(v string) *CreateSMBFileShareInput {
9246	s.ClientToken = &v
9247	return s
9248}
9249
9250// SetDefaultStorageClass sets the DefaultStorageClass field's value.
9251func (s *CreateSMBFileShareInput) SetDefaultStorageClass(v string) *CreateSMBFileShareInput {
9252	s.DefaultStorageClass = &v
9253	return s
9254}
9255
9256// SetGatewayARN sets the GatewayARN field's value.
9257func (s *CreateSMBFileShareInput) SetGatewayARN(v string) *CreateSMBFileShareInput {
9258	s.GatewayARN = &v
9259	return s
9260}
9261
9262// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
9263func (s *CreateSMBFileShareInput) SetGuessMIMETypeEnabled(v bool) *CreateSMBFileShareInput {
9264	s.GuessMIMETypeEnabled = &v
9265	return s
9266}
9267
9268// SetInvalidUserList sets the InvalidUserList field's value.
9269func (s *CreateSMBFileShareInput) SetInvalidUserList(v []*string) *CreateSMBFileShareInput {
9270	s.InvalidUserList = v
9271	return s
9272}
9273
9274// SetKMSEncrypted sets the KMSEncrypted field's value.
9275func (s *CreateSMBFileShareInput) SetKMSEncrypted(v bool) *CreateSMBFileShareInput {
9276	s.KMSEncrypted = &v
9277	return s
9278}
9279
9280// SetKMSKey sets the KMSKey field's value.
9281func (s *CreateSMBFileShareInput) SetKMSKey(v string) *CreateSMBFileShareInput {
9282	s.KMSKey = &v
9283	return s
9284}
9285
9286// SetLocationARN sets the LocationARN field's value.
9287func (s *CreateSMBFileShareInput) SetLocationARN(v string) *CreateSMBFileShareInput {
9288	s.LocationARN = &v
9289	return s
9290}
9291
9292// SetObjectACL sets the ObjectACL field's value.
9293func (s *CreateSMBFileShareInput) SetObjectACL(v string) *CreateSMBFileShareInput {
9294	s.ObjectACL = &v
9295	return s
9296}
9297
9298// SetReadOnly sets the ReadOnly field's value.
9299func (s *CreateSMBFileShareInput) SetReadOnly(v bool) *CreateSMBFileShareInput {
9300	s.ReadOnly = &v
9301	return s
9302}
9303
9304// SetRequesterPays sets the RequesterPays field's value.
9305func (s *CreateSMBFileShareInput) SetRequesterPays(v bool) *CreateSMBFileShareInput {
9306	s.RequesterPays = &v
9307	return s
9308}
9309
9310// SetRole sets the Role field's value.
9311func (s *CreateSMBFileShareInput) SetRole(v string) *CreateSMBFileShareInput {
9312	s.Role = &v
9313	return s
9314}
9315
9316// SetSMBACLEnabled sets the SMBACLEnabled field's value.
9317func (s *CreateSMBFileShareInput) SetSMBACLEnabled(v bool) *CreateSMBFileShareInput {
9318	s.SMBACLEnabled = &v
9319	return s
9320}
9321
9322// SetTags sets the Tags field's value.
9323func (s *CreateSMBFileShareInput) SetTags(v []*Tag) *CreateSMBFileShareInput {
9324	s.Tags = v
9325	return s
9326}
9327
9328// SetValidUserList sets the ValidUserList field's value.
9329func (s *CreateSMBFileShareInput) SetValidUserList(v []*string) *CreateSMBFileShareInput {
9330	s.ValidUserList = v
9331	return s
9332}
9333
9334// CreateSMBFileShareOutput
9335type CreateSMBFileShareOutput struct {
9336	_ struct{} `type:"structure"`
9337
9338	// The Amazon Resource Name (ARN) of the newly created file share.
9339	FileShareARN *string `min:"50" type:"string"`
9340}
9341
9342// String returns the string representation
9343func (s CreateSMBFileShareOutput) String() string {
9344	return awsutil.Prettify(s)
9345}
9346
9347// GoString returns the string representation
9348func (s CreateSMBFileShareOutput) GoString() string {
9349	return s.String()
9350}
9351
9352// SetFileShareARN sets the FileShareARN field's value.
9353func (s *CreateSMBFileShareOutput) SetFileShareARN(v string) *CreateSMBFileShareOutput {
9354	s.FileShareARN = &v
9355	return s
9356}
9357
9358type CreateSnapshotFromVolumeRecoveryPointInput struct {
9359	_ struct{} `type:"structure"`
9360
9361	// Textual description of the snapshot that appears in the Amazon EC2 console,
9362	// Elastic Block Store snapshots panel in the Description field, and in the
9363	// AWS Storage Gateway snapshot Details pane, Description field
9364	//
9365	// SnapshotDescription is a required field
9366	SnapshotDescription *string `min:"1" type:"string" required:"true"`
9367
9368	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
9369	// key-value pair.
9370	//
9371	// Valid characters for key and value are letters, spaces, and numbers representable
9372	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
9373	// maximum length of a tag's key is 128 characters, and the maximum length for
9374	// a tag's value is 256.
9375	Tags []*Tag `type:"list"`
9376
9377	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
9378	// operation to return to retrieve the TargetARN for specified VolumeARN.
9379	//
9380	// VolumeARN is a required field
9381	VolumeARN *string `min:"50" type:"string" required:"true"`
9382}
9383
9384// String returns the string representation
9385func (s CreateSnapshotFromVolumeRecoveryPointInput) String() string {
9386	return awsutil.Prettify(s)
9387}
9388
9389// GoString returns the string representation
9390func (s CreateSnapshotFromVolumeRecoveryPointInput) GoString() string {
9391	return s.String()
9392}
9393
9394// Validate inspects the fields of the type to determine if they are valid.
9395func (s *CreateSnapshotFromVolumeRecoveryPointInput) Validate() error {
9396	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotFromVolumeRecoveryPointInput"}
9397	if s.SnapshotDescription == nil {
9398		invalidParams.Add(request.NewErrParamRequired("SnapshotDescription"))
9399	}
9400	if s.SnapshotDescription != nil && len(*s.SnapshotDescription) < 1 {
9401		invalidParams.Add(request.NewErrParamMinLen("SnapshotDescription", 1))
9402	}
9403	if s.VolumeARN == nil {
9404		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
9405	}
9406	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
9407		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
9408	}
9409	if s.Tags != nil {
9410		for i, v := range s.Tags {
9411			if v == nil {
9412				continue
9413			}
9414			if err := v.Validate(); err != nil {
9415				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9416			}
9417		}
9418	}
9419
9420	if invalidParams.Len() > 0 {
9421		return invalidParams
9422	}
9423	return nil
9424}
9425
9426// SetSnapshotDescription sets the SnapshotDescription field's value.
9427func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetSnapshotDescription(v string) *CreateSnapshotFromVolumeRecoveryPointInput {
9428	s.SnapshotDescription = &v
9429	return s
9430}
9431
9432// SetTags sets the Tags field's value.
9433func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetTags(v []*Tag) *CreateSnapshotFromVolumeRecoveryPointInput {
9434	s.Tags = v
9435	return s
9436}
9437
9438// SetVolumeARN sets the VolumeARN field's value.
9439func (s *CreateSnapshotFromVolumeRecoveryPointInput) SetVolumeARN(v string) *CreateSnapshotFromVolumeRecoveryPointInput {
9440	s.VolumeARN = &v
9441	return s
9442}
9443
9444type CreateSnapshotFromVolumeRecoveryPointOutput struct {
9445	_ struct{} `type:"structure"`
9446
9447	// The ID of the snapshot.
9448	SnapshotId *string `type:"string"`
9449
9450	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
9451	// operation to return to retrieve the TargetARN for specified VolumeARN.
9452	VolumeARN *string `min:"50" type:"string"`
9453
9454	// The time the volume was created from the recovery point.
9455	VolumeRecoveryPointTime *string `type:"string"`
9456}
9457
9458// String returns the string representation
9459func (s CreateSnapshotFromVolumeRecoveryPointOutput) String() string {
9460	return awsutil.Prettify(s)
9461}
9462
9463// GoString returns the string representation
9464func (s CreateSnapshotFromVolumeRecoveryPointOutput) GoString() string {
9465	return s.String()
9466}
9467
9468// SetSnapshotId sets the SnapshotId field's value.
9469func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetSnapshotId(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
9470	s.SnapshotId = &v
9471	return s
9472}
9473
9474// SetVolumeARN sets the VolumeARN field's value.
9475func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetVolumeARN(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
9476	s.VolumeARN = &v
9477	return s
9478}
9479
9480// SetVolumeRecoveryPointTime sets the VolumeRecoveryPointTime field's value.
9481func (s *CreateSnapshotFromVolumeRecoveryPointOutput) SetVolumeRecoveryPointTime(v string) *CreateSnapshotFromVolumeRecoveryPointOutput {
9482	s.VolumeRecoveryPointTime = &v
9483	return s
9484}
9485
9486// A JSON object containing one or more of the following fields:
9487//
9488//    * CreateSnapshotInput$SnapshotDescription
9489//
9490//    * CreateSnapshotInput$VolumeARN
9491type CreateSnapshotInput struct {
9492	_ struct{} `type:"structure"`
9493
9494	// Textual description of the snapshot that appears in the Amazon EC2 console,
9495	// Elastic Block Store snapshots panel in the Description field, and in the
9496	// AWS Storage Gateway snapshot Details pane, Description field
9497	//
9498	// SnapshotDescription is a required field
9499	SnapshotDescription *string `min:"1" type:"string" required:"true"`
9500
9501	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
9502	// key-value pair.
9503	//
9504	// Valid characters for key and value are letters, spaces, and numbers representable
9505	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
9506	// maximum length of a tag's key is 128 characters, and the maximum length for
9507	// a tag's value is 256.
9508	Tags []*Tag `type:"list"`
9509
9510	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
9511	// to return a list of gateway volumes.
9512	//
9513	// VolumeARN is a required field
9514	VolumeARN *string `min:"50" type:"string" required:"true"`
9515}
9516
9517// String returns the string representation
9518func (s CreateSnapshotInput) String() string {
9519	return awsutil.Prettify(s)
9520}
9521
9522// GoString returns the string representation
9523func (s CreateSnapshotInput) GoString() string {
9524	return s.String()
9525}
9526
9527// Validate inspects the fields of the type to determine if they are valid.
9528func (s *CreateSnapshotInput) Validate() error {
9529	invalidParams := request.ErrInvalidParams{Context: "CreateSnapshotInput"}
9530	if s.SnapshotDescription == nil {
9531		invalidParams.Add(request.NewErrParamRequired("SnapshotDescription"))
9532	}
9533	if s.SnapshotDescription != nil && len(*s.SnapshotDescription) < 1 {
9534		invalidParams.Add(request.NewErrParamMinLen("SnapshotDescription", 1))
9535	}
9536	if s.VolumeARN == nil {
9537		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
9538	}
9539	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
9540		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
9541	}
9542	if s.Tags != nil {
9543		for i, v := range s.Tags {
9544			if v == nil {
9545				continue
9546			}
9547			if err := v.Validate(); err != nil {
9548				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9549			}
9550		}
9551	}
9552
9553	if invalidParams.Len() > 0 {
9554		return invalidParams
9555	}
9556	return nil
9557}
9558
9559// SetSnapshotDescription sets the SnapshotDescription field's value.
9560func (s *CreateSnapshotInput) SetSnapshotDescription(v string) *CreateSnapshotInput {
9561	s.SnapshotDescription = &v
9562	return s
9563}
9564
9565// SetTags sets the Tags field's value.
9566func (s *CreateSnapshotInput) SetTags(v []*Tag) *CreateSnapshotInput {
9567	s.Tags = v
9568	return s
9569}
9570
9571// SetVolumeARN sets the VolumeARN field's value.
9572func (s *CreateSnapshotInput) SetVolumeARN(v string) *CreateSnapshotInput {
9573	s.VolumeARN = &v
9574	return s
9575}
9576
9577// A JSON object containing the following fields:
9578type CreateSnapshotOutput struct {
9579	_ struct{} `type:"structure"`
9580
9581	// The snapshot ID that is used to refer to the snapshot in future operations
9582	// such as describing snapshots (Amazon Elastic Compute Cloud API DescribeSnapshots)
9583	// or creating a volume from a snapshot (CreateStorediSCSIVolume).
9584	SnapshotId *string `type:"string"`
9585
9586	// The Amazon Resource Name (ARN) of the volume of which the snapshot was taken.
9587	VolumeARN *string `min:"50" type:"string"`
9588}
9589
9590// String returns the string representation
9591func (s CreateSnapshotOutput) String() string {
9592	return awsutil.Prettify(s)
9593}
9594
9595// GoString returns the string representation
9596func (s CreateSnapshotOutput) GoString() string {
9597	return s.String()
9598}
9599
9600// SetSnapshotId sets the SnapshotId field's value.
9601func (s *CreateSnapshotOutput) SetSnapshotId(v string) *CreateSnapshotOutput {
9602	s.SnapshotId = &v
9603	return s
9604}
9605
9606// SetVolumeARN sets the VolumeARN field's value.
9607func (s *CreateSnapshotOutput) SetVolumeARN(v string) *CreateSnapshotOutput {
9608	s.VolumeARN = &v
9609	return s
9610}
9611
9612// A JSON object containing one or more of the following fields:
9613//
9614//    * CreateStorediSCSIVolumeInput$DiskId
9615//
9616//    * CreateStorediSCSIVolumeInput$NetworkInterfaceId
9617//
9618//    * CreateStorediSCSIVolumeInput$PreserveExistingData
9619//
9620//    * CreateStorediSCSIVolumeInput$SnapshotId
9621//
9622//    * CreateStorediSCSIVolumeInput$TargetName
9623type CreateStorediSCSIVolumeInput struct {
9624	_ struct{} `type:"structure"`
9625
9626	// The unique identifier for the gateway local disk that is configured as a
9627	// stored volume. Use ListLocalDisks (https://docs.aws.amazon.com/storagegateway/latest/userguide/API_ListLocalDisks.html)
9628	// to list disk IDs for a gateway.
9629	//
9630	// DiskId is a required field
9631	DiskId *string `min:"1" type:"string" required:"true"`
9632
9633	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
9634	// to return a list of gateways for your account and AWS Region.
9635	//
9636	// GatewayARN is a required field
9637	GatewayARN *string `min:"50" type:"string" required:"true"`
9638
9639	// True to use Amazon S3 server side encryption with your own AWS KMS key, or
9640	// false to use a key managed by Amazon S3. Optional.
9641	KMSEncrypted *bool `type:"boolean"`
9642
9643	// The Amazon Resource Name (ARN) of the KMS key used for Amazon S3 server side
9644	// encryption. This value can only be set when KMSEncrypted is true. Optional.
9645	KMSKey *string `min:"7" type:"string"`
9646
9647	// The network interface of the gateway on which to expose the iSCSI target.
9648	// Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a
9649	// list of the network interfaces available on a gateway.
9650	//
9651	// Valid Values: A valid IP address.
9652	//
9653	// NetworkInterfaceId is a required field
9654	NetworkInterfaceId *string `type:"string" required:"true"`
9655
9656	// Specify this field as true if you want to preserve the data on the local
9657	// disk. Otherwise, specifying this field as false creates an empty volume.
9658	//
9659	// Valid Values: true, false
9660	//
9661	// PreserveExistingData is a required field
9662	PreserveExistingData *bool `type:"boolean" required:"true"`
9663
9664	// The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the
9665	// new stored volume. Specify this field if you want to create the iSCSI storage
9666	// volume from a snapshot otherwise do not include this field. To list snapshots
9667	// for your account use DescribeSnapshots (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html)
9668	// in the Amazon Elastic Compute Cloud API Reference.
9669	SnapshotId *string `type:"string"`
9670
9671	// A list of up to 50 tags that can be assigned to a stored volume. Each tag
9672	// is a key-value pair.
9673	//
9674	// Valid characters for key and value are letters, spaces, and numbers representable
9675	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
9676	// maximum length of a tag's key is 128 characters, and the maximum length for
9677	// a tag's value is 256.
9678	Tags []*Tag `type:"list"`
9679
9680	// The name of the iSCSI target used by an initiator to connect to a volume
9681	// and used as a suffix for the target ARN. For example, specifying TargetName
9682	// 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.
9683	// The target name must be unique across all volumes on a gateway.
9684	//
9685	// If you don't specify a value, Storage Gateway uses the value that was previously
9686	// used for this volume as the new target name.
9687	//
9688	// TargetName is a required field
9689	TargetName *string `min:"1" type:"string" required:"true"`
9690}
9691
9692// String returns the string representation
9693func (s CreateStorediSCSIVolumeInput) String() string {
9694	return awsutil.Prettify(s)
9695}
9696
9697// GoString returns the string representation
9698func (s CreateStorediSCSIVolumeInput) GoString() string {
9699	return s.String()
9700}
9701
9702// Validate inspects the fields of the type to determine if they are valid.
9703func (s *CreateStorediSCSIVolumeInput) Validate() error {
9704	invalidParams := request.ErrInvalidParams{Context: "CreateStorediSCSIVolumeInput"}
9705	if s.DiskId == nil {
9706		invalidParams.Add(request.NewErrParamRequired("DiskId"))
9707	}
9708	if s.DiskId != nil && len(*s.DiskId) < 1 {
9709		invalidParams.Add(request.NewErrParamMinLen("DiskId", 1))
9710	}
9711	if s.GatewayARN == nil {
9712		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9713	}
9714	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9715		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9716	}
9717	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
9718		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
9719	}
9720	if s.NetworkInterfaceId == nil {
9721		invalidParams.Add(request.NewErrParamRequired("NetworkInterfaceId"))
9722	}
9723	if s.PreserveExistingData == nil {
9724		invalidParams.Add(request.NewErrParamRequired("PreserveExistingData"))
9725	}
9726	if s.TargetName == nil {
9727		invalidParams.Add(request.NewErrParamRequired("TargetName"))
9728	}
9729	if s.TargetName != nil && len(*s.TargetName) < 1 {
9730		invalidParams.Add(request.NewErrParamMinLen("TargetName", 1))
9731	}
9732	if s.Tags != nil {
9733		for i, v := range s.Tags {
9734			if v == nil {
9735				continue
9736			}
9737			if err := v.Validate(); err != nil {
9738				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9739			}
9740		}
9741	}
9742
9743	if invalidParams.Len() > 0 {
9744		return invalidParams
9745	}
9746	return nil
9747}
9748
9749// SetDiskId sets the DiskId field's value.
9750func (s *CreateStorediSCSIVolumeInput) SetDiskId(v string) *CreateStorediSCSIVolumeInput {
9751	s.DiskId = &v
9752	return s
9753}
9754
9755// SetGatewayARN sets the GatewayARN field's value.
9756func (s *CreateStorediSCSIVolumeInput) SetGatewayARN(v string) *CreateStorediSCSIVolumeInput {
9757	s.GatewayARN = &v
9758	return s
9759}
9760
9761// SetKMSEncrypted sets the KMSEncrypted field's value.
9762func (s *CreateStorediSCSIVolumeInput) SetKMSEncrypted(v bool) *CreateStorediSCSIVolumeInput {
9763	s.KMSEncrypted = &v
9764	return s
9765}
9766
9767// SetKMSKey sets the KMSKey field's value.
9768func (s *CreateStorediSCSIVolumeInput) SetKMSKey(v string) *CreateStorediSCSIVolumeInput {
9769	s.KMSKey = &v
9770	return s
9771}
9772
9773// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
9774func (s *CreateStorediSCSIVolumeInput) SetNetworkInterfaceId(v string) *CreateStorediSCSIVolumeInput {
9775	s.NetworkInterfaceId = &v
9776	return s
9777}
9778
9779// SetPreserveExistingData sets the PreserveExistingData field's value.
9780func (s *CreateStorediSCSIVolumeInput) SetPreserveExistingData(v bool) *CreateStorediSCSIVolumeInput {
9781	s.PreserveExistingData = &v
9782	return s
9783}
9784
9785// SetSnapshotId sets the SnapshotId field's value.
9786func (s *CreateStorediSCSIVolumeInput) SetSnapshotId(v string) *CreateStorediSCSIVolumeInput {
9787	s.SnapshotId = &v
9788	return s
9789}
9790
9791// SetTags sets the Tags field's value.
9792func (s *CreateStorediSCSIVolumeInput) SetTags(v []*Tag) *CreateStorediSCSIVolumeInput {
9793	s.Tags = v
9794	return s
9795}
9796
9797// SetTargetName sets the TargetName field's value.
9798func (s *CreateStorediSCSIVolumeInput) SetTargetName(v string) *CreateStorediSCSIVolumeInput {
9799	s.TargetName = &v
9800	return s
9801}
9802
9803// A JSON object containing the following fields:
9804type CreateStorediSCSIVolumeOutput struct {
9805	_ struct{} `type:"structure"`
9806
9807	// The Amazon Resource Name (ARN) of the volume target, which includes the iSCSI
9808	// name that initiators can use to connect to the target.
9809	TargetARN *string `min:"50" type:"string"`
9810
9811	// The Amazon Resource Name (ARN) of the configured volume.
9812	VolumeARN *string `min:"50" type:"string"`
9813
9814	// The size of the volume in bytes.
9815	VolumeSizeInBytes *int64 `type:"long"`
9816}
9817
9818// String returns the string representation
9819func (s CreateStorediSCSIVolumeOutput) String() string {
9820	return awsutil.Prettify(s)
9821}
9822
9823// GoString returns the string representation
9824func (s CreateStorediSCSIVolumeOutput) GoString() string {
9825	return s.String()
9826}
9827
9828// SetTargetARN sets the TargetARN field's value.
9829func (s *CreateStorediSCSIVolumeOutput) SetTargetARN(v string) *CreateStorediSCSIVolumeOutput {
9830	s.TargetARN = &v
9831	return s
9832}
9833
9834// SetVolumeARN sets the VolumeARN field's value.
9835func (s *CreateStorediSCSIVolumeOutput) SetVolumeARN(v string) *CreateStorediSCSIVolumeOutput {
9836	s.VolumeARN = &v
9837	return s
9838}
9839
9840// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
9841func (s *CreateStorediSCSIVolumeOutput) SetVolumeSizeInBytes(v int64) *CreateStorediSCSIVolumeOutput {
9842	s.VolumeSizeInBytes = &v
9843	return s
9844}
9845
9846// CreateTapeWithBarcodeInput
9847type CreateTapeWithBarcodeInput struct {
9848	_ struct{} `type:"structure"`
9849
9850	// The unique Amazon Resource Name (ARN) that represents the gateway to associate
9851	// the virtual tape with. Use the ListGateways operation to return a list of
9852	// gateways for your account and AWS Region.
9853	//
9854	// GatewayARN is a required field
9855	GatewayARN *string `min:"50" type:"string" required:"true"`
9856
9857	// True to use Amazon S3 server side encryption with your own AWS KMS key, or
9858	// false to use a key managed by Amazon S3. Optional.
9859	KMSEncrypted *bool `type:"boolean"`
9860
9861	// The Amazon Resource Name (ARN) of the AWS KMS Key used for Amazon S3 server
9862	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
9863	KMSKey *string `min:"7" type:"string"`
9864
9865	// The ID of the pool that you want to add your tape to for archiving. The tape
9866	// in this pool is archived in the S3 storage class that is associated with
9867	// the pool. When you use your backup application to eject the tape, the tape
9868	// is archived directly into the storage class (Glacier or Deep Archive) that
9869	// corresponds to the pool.
9870	//
9871	// Valid values: "GLACIER", "DEEP_ARCHIVE"
9872	PoolId *string `min:"1" type:"string"`
9873
9874	// A list of up to 50 tags that can be assigned to a virtual tape that has a
9875	// barcode. Each tag is a key-value pair.
9876	//
9877	// Valid characters for key and value are letters, spaces, and numbers representable
9878	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
9879	// maximum length of a tag's key is 128 characters, and the maximum length for
9880	// a tag's value is 256.
9881	Tags []*Tag `type:"list"`
9882
9883	// The barcode that you want to assign to the tape.
9884	//
9885	// Barcodes cannot be reused. This includes barcodes used for tapes that have
9886	// been deleted.
9887	//
9888	// TapeBarcode is a required field
9889	TapeBarcode *string `min:"7" type:"string" required:"true"`
9890
9891	// The size, in bytes, of the virtual tape that you want to create.
9892	//
9893	// The size must be aligned by gigabyte (1024*1024*1024 byte).
9894	//
9895	// TapeSizeInBytes is a required field
9896	TapeSizeInBytes *int64 `type:"long" required:"true"`
9897}
9898
9899// String returns the string representation
9900func (s CreateTapeWithBarcodeInput) String() string {
9901	return awsutil.Prettify(s)
9902}
9903
9904// GoString returns the string representation
9905func (s CreateTapeWithBarcodeInput) GoString() string {
9906	return s.String()
9907}
9908
9909// Validate inspects the fields of the type to determine if they are valid.
9910func (s *CreateTapeWithBarcodeInput) Validate() error {
9911	invalidParams := request.ErrInvalidParams{Context: "CreateTapeWithBarcodeInput"}
9912	if s.GatewayARN == nil {
9913		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
9914	}
9915	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
9916		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
9917	}
9918	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
9919		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
9920	}
9921	if s.PoolId != nil && len(*s.PoolId) < 1 {
9922		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
9923	}
9924	if s.TapeBarcode == nil {
9925		invalidParams.Add(request.NewErrParamRequired("TapeBarcode"))
9926	}
9927	if s.TapeBarcode != nil && len(*s.TapeBarcode) < 7 {
9928		invalidParams.Add(request.NewErrParamMinLen("TapeBarcode", 7))
9929	}
9930	if s.TapeSizeInBytes == nil {
9931		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
9932	}
9933	if s.Tags != nil {
9934		for i, v := range s.Tags {
9935			if v == nil {
9936				continue
9937			}
9938			if err := v.Validate(); err != nil {
9939				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9940			}
9941		}
9942	}
9943
9944	if invalidParams.Len() > 0 {
9945		return invalidParams
9946	}
9947	return nil
9948}
9949
9950// SetGatewayARN sets the GatewayARN field's value.
9951func (s *CreateTapeWithBarcodeInput) SetGatewayARN(v string) *CreateTapeWithBarcodeInput {
9952	s.GatewayARN = &v
9953	return s
9954}
9955
9956// SetKMSEncrypted sets the KMSEncrypted field's value.
9957func (s *CreateTapeWithBarcodeInput) SetKMSEncrypted(v bool) *CreateTapeWithBarcodeInput {
9958	s.KMSEncrypted = &v
9959	return s
9960}
9961
9962// SetKMSKey sets the KMSKey field's value.
9963func (s *CreateTapeWithBarcodeInput) SetKMSKey(v string) *CreateTapeWithBarcodeInput {
9964	s.KMSKey = &v
9965	return s
9966}
9967
9968// SetPoolId sets the PoolId field's value.
9969func (s *CreateTapeWithBarcodeInput) SetPoolId(v string) *CreateTapeWithBarcodeInput {
9970	s.PoolId = &v
9971	return s
9972}
9973
9974// SetTags sets the Tags field's value.
9975func (s *CreateTapeWithBarcodeInput) SetTags(v []*Tag) *CreateTapeWithBarcodeInput {
9976	s.Tags = v
9977	return s
9978}
9979
9980// SetTapeBarcode sets the TapeBarcode field's value.
9981func (s *CreateTapeWithBarcodeInput) SetTapeBarcode(v string) *CreateTapeWithBarcodeInput {
9982	s.TapeBarcode = &v
9983	return s
9984}
9985
9986// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
9987func (s *CreateTapeWithBarcodeInput) SetTapeSizeInBytes(v int64) *CreateTapeWithBarcodeInput {
9988	s.TapeSizeInBytes = &v
9989	return s
9990}
9991
9992// CreateTapeOutput
9993type CreateTapeWithBarcodeOutput struct {
9994	_ struct{} `type:"structure"`
9995
9996	// A unique Amazon Resource Name (ARN) that represents the virtual tape that
9997	// was created.
9998	TapeARN *string `min:"50" type:"string"`
9999}
10000
10001// String returns the string representation
10002func (s CreateTapeWithBarcodeOutput) String() string {
10003	return awsutil.Prettify(s)
10004}
10005
10006// GoString returns the string representation
10007func (s CreateTapeWithBarcodeOutput) GoString() string {
10008	return s.String()
10009}
10010
10011// SetTapeARN sets the TapeARN field's value.
10012func (s *CreateTapeWithBarcodeOutput) SetTapeARN(v string) *CreateTapeWithBarcodeOutput {
10013	s.TapeARN = &v
10014	return s
10015}
10016
10017// CreateTapesInput
10018type CreateTapesInput struct {
10019	_ struct{} `type:"structure"`
10020
10021	// A unique identifier that you use to retry a request. If you retry a request,
10022	// use the same ClientToken you specified in the initial request.
10023	//
10024	// Using the same ClientToken prevents creating the tape multiple times.
10025	//
10026	// ClientToken is a required field
10027	ClientToken *string `min:"5" type:"string" required:"true"`
10028
10029	// The unique Amazon Resource Name (ARN) that represents the gateway to associate
10030	// the virtual tapes with. Use the ListGateways operation to return a list of
10031	// gateways for your account and AWS Region.
10032	//
10033	// GatewayARN is a required field
10034	GatewayARN *string `min:"50" type:"string" required:"true"`
10035
10036	// True to use Amazon S3 server side encryption with your own AWS KMS key, or
10037	// false to use a key managed by Amazon S3. Optional.
10038	KMSEncrypted *bool `type:"boolean"`
10039
10040	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
10041	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
10042	KMSKey *string `min:"7" type:"string"`
10043
10044	// The number of virtual tapes that you want to create.
10045	//
10046	// NumTapesToCreate is a required field
10047	NumTapesToCreate *int64 `min:"1" type:"integer" required:"true"`
10048
10049	// The ID of the pool that you want to add your tape to for archiving. The tape
10050	// in this pool is archived in the S3 storage class that is associated with
10051	// the pool. When you use your backup application to eject the tape, the tape
10052	// is archived directly into the storage class (Glacier or Deep Archive) that
10053	// corresponds to the pool.
10054	//
10055	// Valid values: "GLACIER", "DEEP_ARCHIVE"
10056	PoolId *string `min:"1" type:"string"`
10057
10058	// A list of up to 50 tags that can be assigned to a virtual tape. Each tag
10059	// is a key-value pair.
10060	//
10061	// Valid characters for key and value are letters, spaces, and numbers representable
10062	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
10063	// maximum length of a tag's key is 128 characters, and the maximum length for
10064	// a tag's value is 256.
10065	Tags []*Tag `type:"list"`
10066
10067	// A prefix that you append to the barcode of the virtual tape you are creating.
10068	// This prefix makes the barcode unique.
10069	//
10070	// The prefix must be 1 to 4 characters in length and must be one of the uppercase
10071	// letters from A to Z.
10072	//
10073	// TapeBarcodePrefix is a required field
10074	TapeBarcodePrefix *string `min:"1" type:"string" required:"true"`
10075
10076	// The size, in bytes, of the virtual tapes that you want to create.
10077	//
10078	// The size must be aligned by gigabyte (1024*1024*1024 byte).
10079	//
10080	// TapeSizeInBytes is a required field
10081	TapeSizeInBytes *int64 `type:"long" required:"true"`
10082}
10083
10084// String returns the string representation
10085func (s CreateTapesInput) String() string {
10086	return awsutil.Prettify(s)
10087}
10088
10089// GoString returns the string representation
10090func (s CreateTapesInput) GoString() string {
10091	return s.String()
10092}
10093
10094// Validate inspects the fields of the type to determine if they are valid.
10095func (s *CreateTapesInput) Validate() error {
10096	invalidParams := request.ErrInvalidParams{Context: "CreateTapesInput"}
10097	if s.ClientToken == nil {
10098		invalidParams.Add(request.NewErrParamRequired("ClientToken"))
10099	}
10100	if s.ClientToken != nil && len(*s.ClientToken) < 5 {
10101		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 5))
10102	}
10103	if s.GatewayARN == nil {
10104		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10105	}
10106	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10107		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10108	}
10109	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
10110		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
10111	}
10112	if s.NumTapesToCreate == nil {
10113		invalidParams.Add(request.NewErrParamRequired("NumTapesToCreate"))
10114	}
10115	if s.NumTapesToCreate != nil && *s.NumTapesToCreate < 1 {
10116		invalidParams.Add(request.NewErrParamMinValue("NumTapesToCreate", 1))
10117	}
10118	if s.PoolId != nil && len(*s.PoolId) < 1 {
10119		invalidParams.Add(request.NewErrParamMinLen("PoolId", 1))
10120	}
10121	if s.TapeBarcodePrefix == nil {
10122		invalidParams.Add(request.NewErrParamRequired("TapeBarcodePrefix"))
10123	}
10124	if s.TapeBarcodePrefix != nil && len(*s.TapeBarcodePrefix) < 1 {
10125		invalidParams.Add(request.NewErrParamMinLen("TapeBarcodePrefix", 1))
10126	}
10127	if s.TapeSizeInBytes == nil {
10128		invalidParams.Add(request.NewErrParamRequired("TapeSizeInBytes"))
10129	}
10130	if s.Tags != nil {
10131		for i, v := range s.Tags {
10132			if v == nil {
10133				continue
10134			}
10135			if err := v.Validate(); err != nil {
10136				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10137			}
10138		}
10139	}
10140
10141	if invalidParams.Len() > 0 {
10142		return invalidParams
10143	}
10144	return nil
10145}
10146
10147// SetClientToken sets the ClientToken field's value.
10148func (s *CreateTapesInput) SetClientToken(v string) *CreateTapesInput {
10149	s.ClientToken = &v
10150	return s
10151}
10152
10153// SetGatewayARN sets the GatewayARN field's value.
10154func (s *CreateTapesInput) SetGatewayARN(v string) *CreateTapesInput {
10155	s.GatewayARN = &v
10156	return s
10157}
10158
10159// SetKMSEncrypted sets the KMSEncrypted field's value.
10160func (s *CreateTapesInput) SetKMSEncrypted(v bool) *CreateTapesInput {
10161	s.KMSEncrypted = &v
10162	return s
10163}
10164
10165// SetKMSKey sets the KMSKey field's value.
10166func (s *CreateTapesInput) SetKMSKey(v string) *CreateTapesInput {
10167	s.KMSKey = &v
10168	return s
10169}
10170
10171// SetNumTapesToCreate sets the NumTapesToCreate field's value.
10172func (s *CreateTapesInput) SetNumTapesToCreate(v int64) *CreateTapesInput {
10173	s.NumTapesToCreate = &v
10174	return s
10175}
10176
10177// SetPoolId sets the PoolId field's value.
10178func (s *CreateTapesInput) SetPoolId(v string) *CreateTapesInput {
10179	s.PoolId = &v
10180	return s
10181}
10182
10183// SetTags sets the Tags field's value.
10184func (s *CreateTapesInput) SetTags(v []*Tag) *CreateTapesInput {
10185	s.Tags = v
10186	return s
10187}
10188
10189// SetTapeBarcodePrefix sets the TapeBarcodePrefix field's value.
10190func (s *CreateTapesInput) SetTapeBarcodePrefix(v string) *CreateTapesInput {
10191	s.TapeBarcodePrefix = &v
10192	return s
10193}
10194
10195// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
10196func (s *CreateTapesInput) SetTapeSizeInBytes(v int64) *CreateTapesInput {
10197	s.TapeSizeInBytes = &v
10198	return s
10199}
10200
10201// CreateTapeOutput
10202type CreateTapesOutput struct {
10203	_ struct{} `type:"structure"`
10204
10205	// A list of unique Amazon Resource Names (ARNs) that represents the virtual
10206	// tapes that were created.
10207	TapeARNs []*string `type:"list"`
10208}
10209
10210// String returns the string representation
10211func (s CreateTapesOutput) String() string {
10212	return awsutil.Prettify(s)
10213}
10214
10215// GoString returns the string representation
10216func (s CreateTapesOutput) GoString() string {
10217	return s.String()
10218}
10219
10220// SetTapeARNs sets the TapeARNs field's value.
10221func (s *CreateTapesOutput) SetTapeARNs(v []*string) *CreateTapesOutput {
10222	s.TapeARNs = v
10223	return s
10224}
10225
10226// A JSON object containing the following fields:
10227//
10228//    * DeleteBandwidthRateLimitInput$BandwidthType
10229type DeleteBandwidthRateLimitInput struct {
10230	_ struct{} `type:"structure"`
10231
10232	// One of the BandwidthType values that indicates the gateway bandwidth rate
10233	// limit to delete.
10234	//
10235	// Valid Values: Upload, Download, All.
10236	//
10237	// BandwidthType is a required field
10238	BandwidthType *string `min:"3" type:"string" required:"true"`
10239
10240	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10241	// to return a list of gateways for your account and AWS Region.
10242	//
10243	// GatewayARN is a required field
10244	GatewayARN *string `min:"50" type:"string" required:"true"`
10245}
10246
10247// String returns the string representation
10248func (s DeleteBandwidthRateLimitInput) String() string {
10249	return awsutil.Prettify(s)
10250}
10251
10252// GoString returns the string representation
10253func (s DeleteBandwidthRateLimitInput) GoString() string {
10254	return s.String()
10255}
10256
10257// Validate inspects the fields of the type to determine if they are valid.
10258func (s *DeleteBandwidthRateLimitInput) Validate() error {
10259	invalidParams := request.ErrInvalidParams{Context: "DeleteBandwidthRateLimitInput"}
10260	if s.BandwidthType == nil {
10261		invalidParams.Add(request.NewErrParamRequired("BandwidthType"))
10262	}
10263	if s.BandwidthType != nil && len(*s.BandwidthType) < 3 {
10264		invalidParams.Add(request.NewErrParamMinLen("BandwidthType", 3))
10265	}
10266	if s.GatewayARN == nil {
10267		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10268	}
10269	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10270		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10271	}
10272
10273	if invalidParams.Len() > 0 {
10274		return invalidParams
10275	}
10276	return nil
10277}
10278
10279// SetBandwidthType sets the BandwidthType field's value.
10280func (s *DeleteBandwidthRateLimitInput) SetBandwidthType(v string) *DeleteBandwidthRateLimitInput {
10281	s.BandwidthType = &v
10282	return s
10283}
10284
10285// SetGatewayARN sets the GatewayARN field's value.
10286func (s *DeleteBandwidthRateLimitInput) SetGatewayARN(v string) *DeleteBandwidthRateLimitInput {
10287	s.GatewayARN = &v
10288	return s
10289}
10290
10291// A JSON object containing the of the gateway whose bandwidth rate information
10292// was deleted.
10293type DeleteBandwidthRateLimitOutput struct {
10294	_ struct{} `type:"structure"`
10295
10296	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10297	// to return a list of gateways for your account and AWS Region.
10298	GatewayARN *string `min:"50" type:"string"`
10299}
10300
10301// String returns the string representation
10302func (s DeleteBandwidthRateLimitOutput) String() string {
10303	return awsutil.Prettify(s)
10304}
10305
10306// GoString returns the string representation
10307func (s DeleteBandwidthRateLimitOutput) GoString() string {
10308	return s.String()
10309}
10310
10311// SetGatewayARN sets the GatewayARN field's value.
10312func (s *DeleteBandwidthRateLimitOutput) SetGatewayARN(v string) *DeleteBandwidthRateLimitOutput {
10313	s.GatewayARN = &v
10314	return s
10315}
10316
10317// A JSON object containing one or more of the following fields:
10318//
10319//    * DeleteChapCredentialsInput$InitiatorName
10320//
10321//    * DeleteChapCredentialsInput$TargetARN
10322type DeleteChapCredentialsInput struct {
10323	_ struct{} `type:"structure"`
10324
10325	// The iSCSI initiator that connects to the target.
10326	//
10327	// InitiatorName is a required field
10328	InitiatorName *string `min:"1" type:"string" required:"true"`
10329
10330	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
10331	// operation to return to retrieve the TargetARN for specified VolumeARN.
10332	//
10333	// TargetARN is a required field
10334	TargetARN *string `min:"50" type:"string" required:"true"`
10335}
10336
10337// String returns the string representation
10338func (s DeleteChapCredentialsInput) String() string {
10339	return awsutil.Prettify(s)
10340}
10341
10342// GoString returns the string representation
10343func (s DeleteChapCredentialsInput) GoString() string {
10344	return s.String()
10345}
10346
10347// Validate inspects the fields of the type to determine if they are valid.
10348func (s *DeleteChapCredentialsInput) Validate() error {
10349	invalidParams := request.ErrInvalidParams{Context: "DeleteChapCredentialsInput"}
10350	if s.InitiatorName == nil {
10351		invalidParams.Add(request.NewErrParamRequired("InitiatorName"))
10352	}
10353	if s.InitiatorName != nil && len(*s.InitiatorName) < 1 {
10354		invalidParams.Add(request.NewErrParamMinLen("InitiatorName", 1))
10355	}
10356	if s.TargetARN == nil {
10357		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
10358	}
10359	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
10360		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
10361	}
10362
10363	if invalidParams.Len() > 0 {
10364		return invalidParams
10365	}
10366	return nil
10367}
10368
10369// SetInitiatorName sets the InitiatorName field's value.
10370func (s *DeleteChapCredentialsInput) SetInitiatorName(v string) *DeleteChapCredentialsInput {
10371	s.InitiatorName = &v
10372	return s
10373}
10374
10375// SetTargetARN sets the TargetARN field's value.
10376func (s *DeleteChapCredentialsInput) SetTargetARN(v string) *DeleteChapCredentialsInput {
10377	s.TargetARN = &v
10378	return s
10379}
10380
10381// A JSON object containing the following fields:
10382type DeleteChapCredentialsOutput struct {
10383	_ struct{} `type:"structure"`
10384
10385	// The iSCSI initiator that connects to the target.
10386	InitiatorName *string `min:"1" type:"string"`
10387
10388	// The Amazon Resource Name (ARN) of the target.
10389	TargetARN *string `min:"50" type:"string"`
10390}
10391
10392// String returns the string representation
10393func (s DeleteChapCredentialsOutput) String() string {
10394	return awsutil.Prettify(s)
10395}
10396
10397// GoString returns the string representation
10398func (s DeleteChapCredentialsOutput) GoString() string {
10399	return s.String()
10400}
10401
10402// SetInitiatorName sets the InitiatorName field's value.
10403func (s *DeleteChapCredentialsOutput) SetInitiatorName(v string) *DeleteChapCredentialsOutput {
10404	s.InitiatorName = &v
10405	return s
10406}
10407
10408// SetTargetARN sets the TargetARN field's value.
10409func (s *DeleteChapCredentialsOutput) SetTargetARN(v string) *DeleteChapCredentialsOutput {
10410	s.TargetARN = &v
10411	return s
10412}
10413
10414// DeleteFileShareInput
10415type DeleteFileShareInput struct {
10416	_ struct{} `type:"structure"`
10417
10418	// The Amazon Resource Name (ARN) of the file share to be deleted.
10419	//
10420	// FileShareARN is a required field
10421	FileShareARN *string `min:"50" type:"string" required:"true"`
10422
10423	// If this value is set to true, the operation deletes a file share immediately
10424	// and aborts all data uploads to AWS. Otherwise, the file share is not deleted
10425	// until all data is uploaded to AWS. This process aborts the data upload process,
10426	// and the file share enters the FORCE_DELETING status.
10427	ForceDelete *bool `type:"boolean"`
10428}
10429
10430// String returns the string representation
10431func (s DeleteFileShareInput) String() string {
10432	return awsutil.Prettify(s)
10433}
10434
10435// GoString returns the string representation
10436func (s DeleteFileShareInput) GoString() string {
10437	return s.String()
10438}
10439
10440// Validate inspects the fields of the type to determine if they are valid.
10441func (s *DeleteFileShareInput) Validate() error {
10442	invalidParams := request.ErrInvalidParams{Context: "DeleteFileShareInput"}
10443	if s.FileShareARN == nil {
10444		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
10445	}
10446	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
10447		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
10448	}
10449
10450	if invalidParams.Len() > 0 {
10451		return invalidParams
10452	}
10453	return nil
10454}
10455
10456// SetFileShareARN sets the FileShareARN field's value.
10457func (s *DeleteFileShareInput) SetFileShareARN(v string) *DeleteFileShareInput {
10458	s.FileShareARN = &v
10459	return s
10460}
10461
10462// SetForceDelete sets the ForceDelete field's value.
10463func (s *DeleteFileShareInput) SetForceDelete(v bool) *DeleteFileShareInput {
10464	s.ForceDelete = &v
10465	return s
10466}
10467
10468// DeleteFileShareOutput
10469type DeleteFileShareOutput struct {
10470	_ struct{} `type:"structure"`
10471
10472	// The Amazon Resource Name (ARN) of the deleted file share.
10473	FileShareARN *string `min:"50" type:"string"`
10474}
10475
10476// String returns the string representation
10477func (s DeleteFileShareOutput) String() string {
10478	return awsutil.Prettify(s)
10479}
10480
10481// GoString returns the string representation
10482func (s DeleteFileShareOutput) GoString() string {
10483	return s.String()
10484}
10485
10486// SetFileShareARN sets the FileShareARN field's value.
10487func (s *DeleteFileShareOutput) SetFileShareARN(v string) *DeleteFileShareOutput {
10488	s.FileShareARN = &v
10489	return s
10490}
10491
10492// A JSON object containing the ID of the gateway to delete.
10493type DeleteGatewayInput struct {
10494	_ struct{} `type:"structure"`
10495
10496	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10497	// to return a list of gateways for your account and AWS Region.
10498	//
10499	// GatewayARN is a required field
10500	GatewayARN *string `min:"50" type:"string" required:"true"`
10501}
10502
10503// String returns the string representation
10504func (s DeleteGatewayInput) String() string {
10505	return awsutil.Prettify(s)
10506}
10507
10508// GoString returns the string representation
10509func (s DeleteGatewayInput) GoString() string {
10510	return s.String()
10511}
10512
10513// Validate inspects the fields of the type to determine if they are valid.
10514func (s *DeleteGatewayInput) Validate() error {
10515	invalidParams := request.ErrInvalidParams{Context: "DeleteGatewayInput"}
10516	if s.GatewayARN == nil {
10517		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10518	}
10519	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10520		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10521	}
10522
10523	if invalidParams.Len() > 0 {
10524		return invalidParams
10525	}
10526	return nil
10527}
10528
10529// SetGatewayARN sets the GatewayARN field's value.
10530func (s *DeleteGatewayInput) SetGatewayARN(v string) *DeleteGatewayInput {
10531	s.GatewayARN = &v
10532	return s
10533}
10534
10535// A JSON object containing the ID of the deleted gateway.
10536type DeleteGatewayOutput struct {
10537	_ struct{} `type:"structure"`
10538
10539	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10540	// to return a list of gateways for your account and AWS Region.
10541	GatewayARN *string `min:"50" type:"string"`
10542}
10543
10544// String returns the string representation
10545func (s DeleteGatewayOutput) String() string {
10546	return awsutil.Prettify(s)
10547}
10548
10549// GoString returns the string representation
10550func (s DeleteGatewayOutput) GoString() string {
10551	return s.String()
10552}
10553
10554// SetGatewayARN sets the GatewayARN field's value.
10555func (s *DeleteGatewayOutput) SetGatewayARN(v string) *DeleteGatewayOutput {
10556	s.GatewayARN = &v
10557	return s
10558}
10559
10560type DeleteSnapshotScheduleInput struct {
10561	_ struct{} `type:"structure"`
10562
10563	// The volume which snapshot schedule to delete.
10564	//
10565	// VolumeARN is a required field
10566	VolumeARN *string `min:"50" type:"string" required:"true"`
10567}
10568
10569// String returns the string representation
10570func (s DeleteSnapshotScheduleInput) String() string {
10571	return awsutil.Prettify(s)
10572}
10573
10574// GoString returns the string representation
10575func (s DeleteSnapshotScheduleInput) GoString() string {
10576	return s.String()
10577}
10578
10579// Validate inspects the fields of the type to determine if they are valid.
10580func (s *DeleteSnapshotScheduleInput) Validate() error {
10581	invalidParams := request.ErrInvalidParams{Context: "DeleteSnapshotScheduleInput"}
10582	if s.VolumeARN == nil {
10583		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
10584	}
10585	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
10586		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
10587	}
10588
10589	if invalidParams.Len() > 0 {
10590		return invalidParams
10591	}
10592	return nil
10593}
10594
10595// SetVolumeARN sets the VolumeARN field's value.
10596func (s *DeleteSnapshotScheduleInput) SetVolumeARN(v string) *DeleteSnapshotScheduleInput {
10597	s.VolumeARN = &v
10598	return s
10599}
10600
10601type DeleteSnapshotScheduleOutput struct {
10602	_ struct{} `type:"structure"`
10603
10604	// The volume which snapshot schedule was deleted.
10605	VolumeARN *string `min:"50" type:"string"`
10606}
10607
10608// String returns the string representation
10609func (s DeleteSnapshotScheduleOutput) String() string {
10610	return awsutil.Prettify(s)
10611}
10612
10613// GoString returns the string representation
10614func (s DeleteSnapshotScheduleOutput) GoString() string {
10615	return s.String()
10616}
10617
10618// SetVolumeARN sets the VolumeARN field's value.
10619func (s *DeleteSnapshotScheduleOutput) SetVolumeARN(v string) *DeleteSnapshotScheduleOutput {
10620	s.VolumeARN = &v
10621	return s
10622}
10623
10624// DeleteTapeArchiveInput
10625type DeleteTapeArchiveInput struct {
10626	_ struct{} `type:"structure"`
10627
10628	// The Amazon Resource Name (ARN) of the virtual tape to delete from the virtual
10629	// tape shelf (VTS).
10630	//
10631	// TapeARN is a required field
10632	TapeARN *string `min:"50" type:"string" required:"true"`
10633}
10634
10635// String returns the string representation
10636func (s DeleteTapeArchiveInput) String() string {
10637	return awsutil.Prettify(s)
10638}
10639
10640// GoString returns the string representation
10641func (s DeleteTapeArchiveInput) GoString() string {
10642	return s.String()
10643}
10644
10645// Validate inspects the fields of the type to determine if they are valid.
10646func (s *DeleteTapeArchiveInput) Validate() error {
10647	invalidParams := request.ErrInvalidParams{Context: "DeleteTapeArchiveInput"}
10648	if s.TapeARN == nil {
10649		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
10650	}
10651	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
10652		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
10653	}
10654
10655	if invalidParams.Len() > 0 {
10656		return invalidParams
10657	}
10658	return nil
10659}
10660
10661// SetTapeARN sets the TapeARN field's value.
10662func (s *DeleteTapeArchiveInput) SetTapeARN(v string) *DeleteTapeArchiveInput {
10663	s.TapeARN = &v
10664	return s
10665}
10666
10667// DeleteTapeArchiveOutput
10668type DeleteTapeArchiveOutput struct {
10669	_ struct{} `type:"structure"`
10670
10671	// The Amazon Resource Name (ARN) of the virtual tape that was deleted from
10672	// the virtual tape shelf (VTS).
10673	TapeARN *string `min:"50" type:"string"`
10674}
10675
10676// String returns the string representation
10677func (s DeleteTapeArchiveOutput) String() string {
10678	return awsutil.Prettify(s)
10679}
10680
10681// GoString returns the string representation
10682func (s DeleteTapeArchiveOutput) GoString() string {
10683	return s.String()
10684}
10685
10686// SetTapeARN sets the TapeARN field's value.
10687func (s *DeleteTapeArchiveOutput) SetTapeARN(v string) *DeleteTapeArchiveOutput {
10688	s.TapeARN = &v
10689	return s
10690}
10691
10692// DeleteTapeInput
10693type DeleteTapeInput struct {
10694	_ struct{} `type:"structure"`
10695
10696	// The unique Amazon Resource Name (ARN) of the gateway that the virtual tape
10697	// to delete is associated with. Use the ListGateways operation to return a
10698	// list of gateways for your account and AWS Region.
10699	//
10700	// GatewayARN is a required field
10701	GatewayARN *string `min:"50" type:"string" required:"true"`
10702
10703	// The Amazon Resource Name (ARN) of the virtual tape to delete.
10704	//
10705	// TapeARN is a required field
10706	TapeARN *string `min:"50" type:"string" required:"true"`
10707}
10708
10709// String returns the string representation
10710func (s DeleteTapeInput) String() string {
10711	return awsutil.Prettify(s)
10712}
10713
10714// GoString returns the string representation
10715func (s DeleteTapeInput) GoString() string {
10716	return s.String()
10717}
10718
10719// Validate inspects the fields of the type to determine if they are valid.
10720func (s *DeleteTapeInput) Validate() error {
10721	invalidParams := request.ErrInvalidParams{Context: "DeleteTapeInput"}
10722	if s.GatewayARN == nil {
10723		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10724	}
10725	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10726		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10727	}
10728	if s.TapeARN == nil {
10729		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
10730	}
10731	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
10732		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
10733	}
10734
10735	if invalidParams.Len() > 0 {
10736		return invalidParams
10737	}
10738	return nil
10739}
10740
10741// SetGatewayARN sets the GatewayARN field's value.
10742func (s *DeleteTapeInput) SetGatewayARN(v string) *DeleteTapeInput {
10743	s.GatewayARN = &v
10744	return s
10745}
10746
10747// SetTapeARN sets the TapeARN field's value.
10748func (s *DeleteTapeInput) SetTapeARN(v string) *DeleteTapeInput {
10749	s.TapeARN = &v
10750	return s
10751}
10752
10753// DeleteTapeOutput
10754type DeleteTapeOutput struct {
10755	_ struct{} `type:"structure"`
10756
10757	// The Amazon Resource Name (ARN) of the deleted virtual tape.
10758	TapeARN *string `min:"50" type:"string"`
10759}
10760
10761// String returns the string representation
10762func (s DeleteTapeOutput) String() string {
10763	return awsutil.Prettify(s)
10764}
10765
10766// GoString returns the string representation
10767func (s DeleteTapeOutput) GoString() string {
10768	return s.String()
10769}
10770
10771// SetTapeARN sets the TapeARN field's value.
10772func (s *DeleteTapeOutput) SetTapeARN(v string) *DeleteTapeOutput {
10773	s.TapeARN = &v
10774	return s
10775}
10776
10777// A JSON object containing the DeleteVolumeInput$VolumeARN to delete.
10778type DeleteVolumeInput struct {
10779	_ struct{} `type:"structure"`
10780
10781	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
10782	// to return a list of gateway volumes.
10783	//
10784	// VolumeARN is a required field
10785	VolumeARN *string `min:"50" type:"string" required:"true"`
10786}
10787
10788// String returns the string representation
10789func (s DeleteVolumeInput) String() string {
10790	return awsutil.Prettify(s)
10791}
10792
10793// GoString returns the string representation
10794func (s DeleteVolumeInput) GoString() string {
10795	return s.String()
10796}
10797
10798// Validate inspects the fields of the type to determine if they are valid.
10799func (s *DeleteVolumeInput) Validate() error {
10800	invalidParams := request.ErrInvalidParams{Context: "DeleteVolumeInput"}
10801	if s.VolumeARN == nil {
10802		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
10803	}
10804	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
10805		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
10806	}
10807
10808	if invalidParams.Len() > 0 {
10809		return invalidParams
10810	}
10811	return nil
10812}
10813
10814// SetVolumeARN sets the VolumeARN field's value.
10815func (s *DeleteVolumeInput) SetVolumeARN(v string) *DeleteVolumeInput {
10816	s.VolumeARN = &v
10817	return s
10818}
10819
10820// A JSON object containing the of the storage volume that was deleted
10821type DeleteVolumeOutput struct {
10822	_ struct{} `type:"structure"`
10823
10824	// The Amazon Resource Name (ARN) of the storage volume that was deleted. It
10825	// is the same ARN you provided in the request.
10826	VolumeARN *string `min:"50" type:"string"`
10827}
10828
10829// String returns the string representation
10830func (s DeleteVolumeOutput) String() string {
10831	return awsutil.Prettify(s)
10832}
10833
10834// GoString returns the string representation
10835func (s DeleteVolumeOutput) GoString() string {
10836	return s.String()
10837}
10838
10839// SetVolumeARN sets the VolumeARN field's value.
10840func (s *DeleteVolumeOutput) SetVolumeARN(v string) *DeleteVolumeOutput {
10841	s.VolumeARN = &v
10842	return s
10843}
10844
10845type DescribeAvailabilityMonitorTestInput struct {
10846	_ struct{} `type:"structure"`
10847
10848	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10849	// to return a list of gateways for your account and AWS Region.
10850	//
10851	// GatewayARN is a required field
10852	GatewayARN *string `min:"50" type:"string" required:"true"`
10853}
10854
10855// String returns the string representation
10856func (s DescribeAvailabilityMonitorTestInput) String() string {
10857	return awsutil.Prettify(s)
10858}
10859
10860// GoString returns the string representation
10861func (s DescribeAvailabilityMonitorTestInput) GoString() string {
10862	return s.String()
10863}
10864
10865// Validate inspects the fields of the type to determine if they are valid.
10866func (s *DescribeAvailabilityMonitorTestInput) Validate() error {
10867	invalidParams := request.ErrInvalidParams{Context: "DescribeAvailabilityMonitorTestInput"}
10868	if s.GatewayARN == nil {
10869		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10870	}
10871	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10872		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10873	}
10874
10875	if invalidParams.Len() > 0 {
10876		return invalidParams
10877	}
10878	return nil
10879}
10880
10881// SetGatewayARN sets the GatewayARN field's value.
10882func (s *DescribeAvailabilityMonitorTestInput) SetGatewayARN(v string) *DescribeAvailabilityMonitorTestInput {
10883	s.GatewayARN = &v
10884	return s
10885}
10886
10887type DescribeAvailabilityMonitorTestOutput struct {
10888	_ struct{} `type:"structure"`
10889
10890	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10891	// to return a list of gateways for your account and AWS Region.
10892	GatewayARN *string `min:"50" type:"string"`
10893
10894	// The time the High Availability monitoring test was started. If a test hasn't
10895	// been performed, the value of this field is null.
10896	StartTime *time.Time `type:"timestamp"`
10897
10898	// The status of the High Availability monitoring test. If a test hasn't been
10899	// performed, the value of this field is null.
10900	Status *string `type:"string" enum:"AvailabilityMonitorTestStatus"`
10901}
10902
10903// String returns the string representation
10904func (s DescribeAvailabilityMonitorTestOutput) String() string {
10905	return awsutil.Prettify(s)
10906}
10907
10908// GoString returns the string representation
10909func (s DescribeAvailabilityMonitorTestOutput) GoString() string {
10910	return s.String()
10911}
10912
10913// SetGatewayARN sets the GatewayARN field's value.
10914func (s *DescribeAvailabilityMonitorTestOutput) SetGatewayARN(v string) *DescribeAvailabilityMonitorTestOutput {
10915	s.GatewayARN = &v
10916	return s
10917}
10918
10919// SetStartTime sets the StartTime field's value.
10920func (s *DescribeAvailabilityMonitorTestOutput) SetStartTime(v time.Time) *DescribeAvailabilityMonitorTestOutput {
10921	s.StartTime = &v
10922	return s
10923}
10924
10925// SetStatus sets the Status field's value.
10926func (s *DescribeAvailabilityMonitorTestOutput) SetStatus(v string) *DescribeAvailabilityMonitorTestOutput {
10927	s.Status = &v
10928	return s
10929}
10930
10931// A JSON object containing the of the gateway.
10932type DescribeBandwidthRateLimitInput struct {
10933	_ struct{} `type:"structure"`
10934
10935	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10936	// to return a list of gateways for your account and AWS Region.
10937	//
10938	// GatewayARN is a required field
10939	GatewayARN *string `min:"50" type:"string" required:"true"`
10940}
10941
10942// String returns the string representation
10943func (s DescribeBandwidthRateLimitInput) String() string {
10944	return awsutil.Prettify(s)
10945}
10946
10947// GoString returns the string representation
10948func (s DescribeBandwidthRateLimitInput) GoString() string {
10949	return s.String()
10950}
10951
10952// Validate inspects the fields of the type to determine if they are valid.
10953func (s *DescribeBandwidthRateLimitInput) Validate() error {
10954	invalidParams := request.ErrInvalidParams{Context: "DescribeBandwidthRateLimitInput"}
10955	if s.GatewayARN == nil {
10956		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
10957	}
10958	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
10959		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
10960	}
10961
10962	if invalidParams.Len() > 0 {
10963		return invalidParams
10964	}
10965	return nil
10966}
10967
10968// SetGatewayARN sets the GatewayARN field's value.
10969func (s *DescribeBandwidthRateLimitInput) SetGatewayARN(v string) *DescribeBandwidthRateLimitInput {
10970	s.GatewayARN = &v
10971	return s
10972}
10973
10974// A JSON object containing the following fields:
10975type DescribeBandwidthRateLimitOutput struct {
10976	_ struct{} `type:"structure"`
10977
10978	// The average download bandwidth rate limit in bits per second. This field
10979	// does not appear in the response if the download rate limit is not set.
10980	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
10981
10982	// The average upload bandwidth rate limit in bits per second. This field does
10983	// not appear in the response if the upload rate limit is not set.
10984	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
10985
10986	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
10987	// to return a list of gateways for your account and AWS Region.
10988	GatewayARN *string `min:"50" type:"string"`
10989}
10990
10991// String returns the string representation
10992func (s DescribeBandwidthRateLimitOutput) String() string {
10993	return awsutil.Prettify(s)
10994}
10995
10996// GoString returns the string representation
10997func (s DescribeBandwidthRateLimitOutput) GoString() string {
10998	return s.String()
10999}
11000
11001// SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
11002func (s *DescribeBandwidthRateLimitOutput) SetAverageDownloadRateLimitInBitsPerSec(v int64) *DescribeBandwidthRateLimitOutput {
11003	s.AverageDownloadRateLimitInBitsPerSec = &v
11004	return s
11005}
11006
11007// SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
11008func (s *DescribeBandwidthRateLimitOutput) SetAverageUploadRateLimitInBitsPerSec(v int64) *DescribeBandwidthRateLimitOutput {
11009	s.AverageUploadRateLimitInBitsPerSec = &v
11010	return s
11011}
11012
11013// SetGatewayARN sets the GatewayARN field's value.
11014func (s *DescribeBandwidthRateLimitOutput) SetGatewayARN(v string) *DescribeBandwidthRateLimitOutput {
11015	s.GatewayARN = &v
11016	return s
11017}
11018
11019type DescribeCacheInput struct {
11020	_ struct{} `type:"structure"`
11021
11022	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11023	// to return a list of gateways for your account and AWS Region.
11024	//
11025	// GatewayARN is a required field
11026	GatewayARN *string `min:"50" type:"string" required:"true"`
11027}
11028
11029// String returns the string representation
11030func (s DescribeCacheInput) String() string {
11031	return awsutil.Prettify(s)
11032}
11033
11034// GoString returns the string representation
11035func (s DescribeCacheInput) GoString() string {
11036	return s.String()
11037}
11038
11039// Validate inspects the fields of the type to determine if they are valid.
11040func (s *DescribeCacheInput) Validate() error {
11041	invalidParams := request.ErrInvalidParams{Context: "DescribeCacheInput"}
11042	if s.GatewayARN == nil {
11043		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11044	}
11045	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11046		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11047	}
11048
11049	if invalidParams.Len() > 0 {
11050		return invalidParams
11051	}
11052	return nil
11053}
11054
11055// SetGatewayARN sets the GatewayARN field's value.
11056func (s *DescribeCacheInput) SetGatewayARN(v string) *DescribeCacheInput {
11057	s.GatewayARN = &v
11058	return s
11059}
11060
11061type DescribeCacheOutput struct {
11062	_ struct{} `type:"structure"`
11063
11064	// The amount of cache in bytes allocated to the a gateway.
11065	CacheAllocatedInBytes *int64 `type:"long"`
11066
11067	// The file share's contribution to the overall percentage of the gateway's
11068	// cache that has not been persisted to AWS. The sample is taken at the end
11069	// of the reporting period.
11070	CacheDirtyPercentage *float64 `type:"double"`
11071
11072	// Percent of application read operations from the file shares that are served
11073	// from cache. The sample is taken at the end of the reporting period.
11074	CacheHitPercentage *float64 `type:"double"`
11075
11076	// Percent of application read operations from the file shares that are not
11077	// served from cache. The sample is taken at the end of the reporting period.
11078	CacheMissPercentage *float64 `type:"double"`
11079
11080	// Percent use of the gateway's cache storage. This metric applies only to the
11081	// gateway-cached volume setup. The sample is taken at the end of the reporting
11082	// period.
11083	CacheUsedPercentage *float64 `type:"double"`
11084
11085	// An array of strings that identify disks that are to be configured as working
11086	// storage. Each string have a minimum length of 1 and maximum length of 300.
11087	// You can get the disk IDs from the ListLocalDisks API.
11088	DiskIds []*string `type:"list"`
11089
11090	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11091	// to return a list of gateways for your account and AWS Region.
11092	GatewayARN *string `min:"50" type:"string"`
11093}
11094
11095// String returns the string representation
11096func (s DescribeCacheOutput) String() string {
11097	return awsutil.Prettify(s)
11098}
11099
11100// GoString returns the string representation
11101func (s DescribeCacheOutput) GoString() string {
11102	return s.String()
11103}
11104
11105// SetCacheAllocatedInBytes sets the CacheAllocatedInBytes field's value.
11106func (s *DescribeCacheOutput) SetCacheAllocatedInBytes(v int64) *DescribeCacheOutput {
11107	s.CacheAllocatedInBytes = &v
11108	return s
11109}
11110
11111// SetCacheDirtyPercentage sets the CacheDirtyPercentage field's value.
11112func (s *DescribeCacheOutput) SetCacheDirtyPercentage(v float64) *DescribeCacheOutput {
11113	s.CacheDirtyPercentage = &v
11114	return s
11115}
11116
11117// SetCacheHitPercentage sets the CacheHitPercentage field's value.
11118func (s *DescribeCacheOutput) SetCacheHitPercentage(v float64) *DescribeCacheOutput {
11119	s.CacheHitPercentage = &v
11120	return s
11121}
11122
11123// SetCacheMissPercentage sets the CacheMissPercentage field's value.
11124func (s *DescribeCacheOutput) SetCacheMissPercentage(v float64) *DescribeCacheOutput {
11125	s.CacheMissPercentage = &v
11126	return s
11127}
11128
11129// SetCacheUsedPercentage sets the CacheUsedPercentage field's value.
11130func (s *DescribeCacheOutput) SetCacheUsedPercentage(v float64) *DescribeCacheOutput {
11131	s.CacheUsedPercentage = &v
11132	return s
11133}
11134
11135// SetDiskIds sets the DiskIds field's value.
11136func (s *DescribeCacheOutput) SetDiskIds(v []*string) *DescribeCacheOutput {
11137	s.DiskIds = v
11138	return s
11139}
11140
11141// SetGatewayARN sets the GatewayARN field's value.
11142func (s *DescribeCacheOutput) SetGatewayARN(v string) *DescribeCacheOutput {
11143	s.GatewayARN = &v
11144	return s
11145}
11146
11147type DescribeCachediSCSIVolumesInput struct {
11148	_ struct{} `type:"structure"`
11149
11150	// An array of strings where each string represents the Amazon Resource Name
11151	// (ARN) of a cached volume. All of the specified cached volumes must from the
11152	// same gateway. Use ListVolumes to get volume ARNs for a gateway.
11153	//
11154	// VolumeARNs is a required field
11155	VolumeARNs []*string `type:"list" required:"true"`
11156}
11157
11158// String returns the string representation
11159func (s DescribeCachediSCSIVolumesInput) String() string {
11160	return awsutil.Prettify(s)
11161}
11162
11163// GoString returns the string representation
11164func (s DescribeCachediSCSIVolumesInput) GoString() string {
11165	return s.String()
11166}
11167
11168// Validate inspects the fields of the type to determine if they are valid.
11169func (s *DescribeCachediSCSIVolumesInput) Validate() error {
11170	invalidParams := request.ErrInvalidParams{Context: "DescribeCachediSCSIVolumesInput"}
11171	if s.VolumeARNs == nil {
11172		invalidParams.Add(request.NewErrParamRequired("VolumeARNs"))
11173	}
11174
11175	if invalidParams.Len() > 0 {
11176		return invalidParams
11177	}
11178	return nil
11179}
11180
11181// SetVolumeARNs sets the VolumeARNs field's value.
11182func (s *DescribeCachediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeCachediSCSIVolumesInput {
11183	s.VolumeARNs = v
11184	return s
11185}
11186
11187// A JSON object containing the following fields:
11188type DescribeCachediSCSIVolumesOutput struct {
11189	_ struct{} `type:"structure"`
11190
11191	// An array of objects where each object contains metadata about one cached
11192	// volume.
11193	CachediSCSIVolumes []*CachediSCSIVolume `type:"list"`
11194}
11195
11196// String returns the string representation
11197func (s DescribeCachediSCSIVolumesOutput) String() string {
11198	return awsutil.Prettify(s)
11199}
11200
11201// GoString returns the string representation
11202func (s DescribeCachediSCSIVolumesOutput) GoString() string {
11203	return s.String()
11204}
11205
11206// SetCachediSCSIVolumes sets the CachediSCSIVolumes field's value.
11207func (s *DescribeCachediSCSIVolumesOutput) SetCachediSCSIVolumes(v []*CachediSCSIVolume) *DescribeCachediSCSIVolumesOutput {
11208	s.CachediSCSIVolumes = v
11209	return s
11210}
11211
11212// A JSON object containing the Amazon Resource Name (ARN) of the iSCSI volume
11213// target.
11214type DescribeChapCredentialsInput struct {
11215	_ struct{} `type:"structure"`
11216
11217	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
11218	// operation to return to retrieve the TargetARN for specified VolumeARN.
11219	//
11220	// TargetARN is a required field
11221	TargetARN *string `min:"50" type:"string" required:"true"`
11222}
11223
11224// String returns the string representation
11225func (s DescribeChapCredentialsInput) String() string {
11226	return awsutil.Prettify(s)
11227}
11228
11229// GoString returns the string representation
11230func (s DescribeChapCredentialsInput) GoString() string {
11231	return s.String()
11232}
11233
11234// Validate inspects the fields of the type to determine if they are valid.
11235func (s *DescribeChapCredentialsInput) Validate() error {
11236	invalidParams := request.ErrInvalidParams{Context: "DescribeChapCredentialsInput"}
11237	if s.TargetARN == nil {
11238		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
11239	}
11240	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
11241		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
11242	}
11243
11244	if invalidParams.Len() > 0 {
11245		return invalidParams
11246	}
11247	return nil
11248}
11249
11250// SetTargetARN sets the TargetARN field's value.
11251func (s *DescribeChapCredentialsInput) SetTargetARN(v string) *DescribeChapCredentialsInput {
11252	s.TargetARN = &v
11253	return s
11254}
11255
11256// A JSON object containing a .
11257type DescribeChapCredentialsOutput struct {
11258	_ struct{} `type:"structure"`
11259
11260	// An array of ChapInfo objects that represent CHAP credentials. Each object
11261	// in the array contains CHAP credential information for one target-initiator
11262	// pair. If no CHAP credentials are set, an empty array is returned. CHAP credential
11263	// information is provided in a JSON object with the following fields:
11264	//
11265	//    * InitiatorName: The iSCSI initiator that connects to the target.
11266	//
11267	//    * SecretToAuthenticateInitiator: The secret key that the initiator (for
11268	//    example, the Windows client) must provide to participate in mutual CHAP
11269	//    with the target.
11270	//
11271	//    * SecretToAuthenticateTarget: The secret key that the target must provide
11272	//    to participate in mutual CHAP with the initiator (e.g. Windows client).
11273	//
11274	//    * TargetARN: The Amazon Resource Name (ARN) of the storage volume.
11275	ChapCredentials []*ChapInfo `type:"list"`
11276}
11277
11278// String returns the string representation
11279func (s DescribeChapCredentialsOutput) String() string {
11280	return awsutil.Prettify(s)
11281}
11282
11283// GoString returns the string representation
11284func (s DescribeChapCredentialsOutput) GoString() string {
11285	return s.String()
11286}
11287
11288// SetChapCredentials sets the ChapCredentials field's value.
11289func (s *DescribeChapCredentialsOutput) SetChapCredentials(v []*ChapInfo) *DescribeChapCredentialsOutput {
11290	s.ChapCredentials = v
11291	return s
11292}
11293
11294// A JSON object containing the ID of the gateway.
11295type DescribeGatewayInformationInput struct {
11296	_ struct{} `type:"structure"`
11297
11298	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11299	// to return a list of gateways for your account and AWS Region.
11300	//
11301	// GatewayARN is a required field
11302	GatewayARN *string `min:"50" type:"string" required:"true"`
11303}
11304
11305// String returns the string representation
11306func (s DescribeGatewayInformationInput) String() string {
11307	return awsutil.Prettify(s)
11308}
11309
11310// GoString returns the string representation
11311func (s DescribeGatewayInformationInput) GoString() string {
11312	return s.String()
11313}
11314
11315// Validate inspects the fields of the type to determine if they are valid.
11316func (s *DescribeGatewayInformationInput) Validate() error {
11317	invalidParams := request.ErrInvalidParams{Context: "DescribeGatewayInformationInput"}
11318	if s.GatewayARN == nil {
11319		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11320	}
11321	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11322		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11323	}
11324
11325	if invalidParams.Len() > 0 {
11326		return invalidParams
11327	}
11328	return nil
11329}
11330
11331// SetGatewayARN sets the GatewayARN field's value.
11332func (s *DescribeGatewayInformationInput) SetGatewayARN(v string) *DescribeGatewayInformationInput {
11333	s.GatewayARN = &v
11334	return s
11335}
11336
11337// A JSON object containing the following fields:
11338type DescribeGatewayInformationOutput struct {
11339	_ struct{} `type:"structure"`
11340
11341	// The Amazon Resource Name (ARN) of the Amazon CloudWatch Log Group that is
11342	// used to monitor events in the gateway.
11343	CloudWatchLogGroupARN *string `type:"string"`
11344
11345	// The ID of the Amazon EC2 instance that was used to launch the gateway.
11346	Ec2InstanceId *string `type:"string"`
11347
11348	// The AWS Region where the Amazon EC2 instance is located.
11349	Ec2InstanceRegion *string `type:"string"`
11350
11351	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11352	// to return a list of gateways for your account and AWS Region.
11353	GatewayARN *string `min:"50" type:"string"`
11354
11355	// The unique identifier assigned to your gateway during activation. This ID
11356	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
11357	// input for other operations.
11358	GatewayId *string `min:"12" type:"string"`
11359
11360	// The name you configured for your gateway.
11361	GatewayName *string `type:"string"`
11362
11363	// A NetworkInterface array that contains descriptions of the gateway network
11364	// interfaces.
11365	GatewayNetworkInterfaces []*NetworkInterface `type:"list"`
11366
11367	// A value that indicates the operating state of the gateway.
11368	GatewayState *string `min:"2" type:"string"`
11369
11370	// A value that indicates the time zone configured for the gateway.
11371	GatewayTimezone *string `min:"3" type:"string"`
11372
11373	// The type of the gateway.
11374	GatewayType *string `min:"2" type:"string"`
11375
11376	// The type of hypervisor environment used by the host.
11377	HostEnvironment *string `type:"string" enum:"HostEnvironment"`
11378
11379	// The date on which the last software update was applied to the gateway. If
11380	// the gateway has never been updated, this field does not return a value in
11381	// the response.
11382	LastSoftwareUpdate *string `min:"1" type:"string"`
11383
11384	// The date on which an update to the gateway is available. This date is in
11385	// the time zone of the gateway. If the gateway is not available for an update
11386	// this field is not returned in the response.
11387	NextUpdateAvailabilityDate *string `min:"1" type:"string"`
11388
11389	// A list of up to 50 tags assigned to the gateway, sorted alphabetically by
11390	// key name. Each tag is a key-value pair. For a gateway with more than 10 tags
11391	// assigned, you can view all tags using the ListTagsForResource API operation.
11392	Tags []*Tag `type:"list"`
11393
11394	// The configuration settings for the virtual private cloud (VPC) endpoint for
11395	// your gateway.
11396	VPCEndpoint *string `type:"string"`
11397}
11398
11399// String returns the string representation
11400func (s DescribeGatewayInformationOutput) String() string {
11401	return awsutil.Prettify(s)
11402}
11403
11404// GoString returns the string representation
11405func (s DescribeGatewayInformationOutput) GoString() string {
11406	return s.String()
11407}
11408
11409// SetCloudWatchLogGroupARN sets the CloudWatchLogGroupARN field's value.
11410func (s *DescribeGatewayInformationOutput) SetCloudWatchLogGroupARN(v string) *DescribeGatewayInformationOutput {
11411	s.CloudWatchLogGroupARN = &v
11412	return s
11413}
11414
11415// SetEc2InstanceId sets the Ec2InstanceId field's value.
11416func (s *DescribeGatewayInformationOutput) SetEc2InstanceId(v string) *DescribeGatewayInformationOutput {
11417	s.Ec2InstanceId = &v
11418	return s
11419}
11420
11421// SetEc2InstanceRegion sets the Ec2InstanceRegion field's value.
11422func (s *DescribeGatewayInformationOutput) SetEc2InstanceRegion(v string) *DescribeGatewayInformationOutput {
11423	s.Ec2InstanceRegion = &v
11424	return s
11425}
11426
11427// SetGatewayARN sets the GatewayARN field's value.
11428func (s *DescribeGatewayInformationOutput) SetGatewayARN(v string) *DescribeGatewayInformationOutput {
11429	s.GatewayARN = &v
11430	return s
11431}
11432
11433// SetGatewayId sets the GatewayId field's value.
11434func (s *DescribeGatewayInformationOutput) SetGatewayId(v string) *DescribeGatewayInformationOutput {
11435	s.GatewayId = &v
11436	return s
11437}
11438
11439// SetGatewayName sets the GatewayName field's value.
11440func (s *DescribeGatewayInformationOutput) SetGatewayName(v string) *DescribeGatewayInformationOutput {
11441	s.GatewayName = &v
11442	return s
11443}
11444
11445// SetGatewayNetworkInterfaces sets the GatewayNetworkInterfaces field's value.
11446func (s *DescribeGatewayInformationOutput) SetGatewayNetworkInterfaces(v []*NetworkInterface) *DescribeGatewayInformationOutput {
11447	s.GatewayNetworkInterfaces = v
11448	return s
11449}
11450
11451// SetGatewayState sets the GatewayState field's value.
11452func (s *DescribeGatewayInformationOutput) SetGatewayState(v string) *DescribeGatewayInformationOutput {
11453	s.GatewayState = &v
11454	return s
11455}
11456
11457// SetGatewayTimezone sets the GatewayTimezone field's value.
11458func (s *DescribeGatewayInformationOutput) SetGatewayTimezone(v string) *DescribeGatewayInformationOutput {
11459	s.GatewayTimezone = &v
11460	return s
11461}
11462
11463// SetGatewayType sets the GatewayType field's value.
11464func (s *DescribeGatewayInformationOutput) SetGatewayType(v string) *DescribeGatewayInformationOutput {
11465	s.GatewayType = &v
11466	return s
11467}
11468
11469// SetHostEnvironment sets the HostEnvironment field's value.
11470func (s *DescribeGatewayInformationOutput) SetHostEnvironment(v string) *DescribeGatewayInformationOutput {
11471	s.HostEnvironment = &v
11472	return s
11473}
11474
11475// SetLastSoftwareUpdate sets the LastSoftwareUpdate field's value.
11476func (s *DescribeGatewayInformationOutput) SetLastSoftwareUpdate(v string) *DescribeGatewayInformationOutput {
11477	s.LastSoftwareUpdate = &v
11478	return s
11479}
11480
11481// SetNextUpdateAvailabilityDate sets the NextUpdateAvailabilityDate field's value.
11482func (s *DescribeGatewayInformationOutput) SetNextUpdateAvailabilityDate(v string) *DescribeGatewayInformationOutput {
11483	s.NextUpdateAvailabilityDate = &v
11484	return s
11485}
11486
11487// SetTags sets the Tags field's value.
11488func (s *DescribeGatewayInformationOutput) SetTags(v []*Tag) *DescribeGatewayInformationOutput {
11489	s.Tags = v
11490	return s
11491}
11492
11493// SetVPCEndpoint sets the VPCEndpoint field's value.
11494func (s *DescribeGatewayInformationOutput) SetVPCEndpoint(v string) *DescribeGatewayInformationOutput {
11495	s.VPCEndpoint = &v
11496	return s
11497}
11498
11499// A JSON object containing the of the gateway.
11500type DescribeMaintenanceStartTimeInput struct {
11501	_ struct{} `type:"structure"`
11502
11503	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11504	// to return a list of gateways for your account and AWS Region.
11505	//
11506	// GatewayARN is a required field
11507	GatewayARN *string `min:"50" type:"string" required:"true"`
11508}
11509
11510// String returns the string representation
11511func (s DescribeMaintenanceStartTimeInput) String() string {
11512	return awsutil.Prettify(s)
11513}
11514
11515// GoString returns the string representation
11516func (s DescribeMaintenanceStartTimeInput) GoString() string {
11517	return s.String()
11518}
11519
11520// Validate inspects the fields of the type to determine if they are valid.
11521func (s *DescribeMaintenanceStartTimeInput) Validate() error {
11522	invalidParams := request.ErrInvalidParams{Context: "DescribeMaintenanceStartTimeInput"}
11523	if s.GatewayARN == nil {
11524		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11525	}
11526	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11527		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11528	}
11529
11530	if invalidParams.Len() > 0 {
11531		return invalidParams
11532	}
11533	return nil
11534}
11535
11536// SetGatewayARN sets the GatewayARN field's value.
11537func (s *DescribeMaintenanceStartTimeInput) SetGatewayARN(v string) *DescribeMaintenanceStartTimeInput {
11538	s.GatewayARN = &v
11539	return s
11540}
11541
11542// A JSON object containing the following fields:
11543//
11544//    * DescribeMaintenanceStartTimeOutput$DayOfMonth
11545//
11546//    * DescribeMaintenanceStartTimeOutput$DayOfWeek
11547//
11548//    * DescribeMaintenanceStartTimeOutput$HourOfDay
11549//
11550//    * DescribeMaintenanceStartTimeOutput$MinuteOfHour
11551//
11552//    * DescribeMaintenanceStartTimeOutput$Timezone
11553type DescribeMaintenanceStartTimeOutput struct {
11554	_ struct{} `type:"structure"`
11555
11556	// The day of the month component of the maintenance start time represented
11557	// as an ordinal number from 1 to 28, where 1 represents the first day of the
11558	// month and 28 represents the last day of the month.
11559	//
11560	// This value is only available for tape and volume gateways.
11561	DayOfMonth *int64 `min:"1" type:"integer"`
11562
11563	// An ordinal number between 0 and 6 that represents the day of the week, where
11564	// 0 represents Sunday and 6 represents Saturday. The day of week is in the
11565	// time zone of the gateway.
11566	DayOfWeek *int64 `type:"integer"`
11567
11568	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11569	// to return a list of gateways for your account and AWS Region.
11570	GatewayARN *string `min:"50" type:"string"`
11571
11572	// The hour component of the maintenance start time represented as hh, where
11573	// hh is the hour (0 to 23). The hour of the day is in the time zone of the
11574	// gateway.
11575	HourOfDay *int64 `type:"integer"`
11576
11577	// The minute component of the maintenance start time represented as mm, where
11578	// mm is the minute (0 to 59). The minute of the hour is in the time zone of
11579	// the gateway.
11580	MinuteOfHour *int64 `type:"integer"`
11581
11582	// A value that indicates the time zone that is set for the gateway. The start
11583	// time and day of week specified should be in the time zone of the gateway.
11584	Timezone *string `min:"3" type:"string"`
11585}
11586
11587// String returns the string representation
11588func (s DescribeMaintenanceStartTimeOutput) String() string {
11589	return awsutil.Prettify(s)
11590}
11591
11592// GoString returns the string representation
11593func (s DescribeMaintenanceStartTimeOutput) GoString() string {
11594	return s.String()
11595}
11596
11597// SetDayOfMonth sets the DayOfMonth field's value.
11598func (s *DescribeMaintenanceStartTimeOutput) SetDayOfMonth(v int64) *DescribeMaintenanceStartTimeOutput {
11599	s.DayOfMonth = &v
11600	return s
11601}
11602
11603// SetDayOfWeek sets the DayOfWeek field's value.
11604func (s *DescribeMaintenanceStartTimeOutput) SetDayOfWeek(v int64) *DescribeMaintenanceStartTimeOutput {
11605	s.DayOfWeek = &v
11606	return s
11607}
11608
11609// SetGatewayARN sets the GatewayARN field's value.
11610func (s *DescribeMaintenanceStartTimeOutput) SetGatewayARN(v string) *DescribeMaintenanceStartTimeOutput {
11611	s.GatewayARN = &v
11612	return s
11613}
11614
11615// SetHourOfDay sets the HourOfDay field's value.
11616func (s *DescribeMaintenanceStartTimeOutput) SetHourOfDay(v int64) *DescribeMaintenanceStartTimeOutput {
11617	s.HourOfDay = &v
11618	return s
11619}
11620
11621// SetMinuteOfHour sets the MinuteOfHour field's value.
11622func (s *DescribeMaintenanceStartTimeOutput) SetMinuteOfHour(v int64) *DescribeMaintenanceStartTimeOutput {
11623	s.MinuteOfHour = &v
11624	return s
11625}
11626
11627// SetTimezone sets the Timezone field's value.
11628func (s *DescribeMaintenanceStartTimeOutput) SetTimezone(v string) *DescribeMaintenanceStartTimeOutput {
11629	s.Timezone = &v
11630	return s
11631}
11632
11633// DescribeNFSFileSharesInput
11634type DescribeNFSFileSharesInput struct {
11635	_ struct{} `type:"structure"`
11636
11637	// An array containing the Amazon Resource Name (ARN) of each file share to
11638	// be described.
11639	//
11640	// FileShareARNList is a required field
11641	FileShareARNList []*string `min:"1" type:"list" required:"true"`
11642}
11643
11644// String returns the string representation
11645func (s DescribeNFSFileSharesInput) String() string {
11646	return awsutil.Prettify(s)
11647}
11648
11649// GoString returns the string representation
11650func (s DescribeNFSFileSharesInput) GoString() string {
11651	return s.String()
11652}
11653
11654// Validate inspects the fields of the type to determine if they are valid.
11655func (s *DescribeNFSFileSharesInput) Validate() error {
11656	invalidParams := request.ErrInvalidParams{Context: "DescribeNFSFileSharesInput"}
11657	if s.FileShareARNList == nil {
11658		invalidParams.Add(request.NewErrParamRequired("FileShareARNList"))
11659	}
11660	if s.FileShareARNList != nil && len(s.FileShareARNList) < 1 {
11661		invalidParams.Add(request.NewErrParamMinLen("FileShareARNList", 1))
11662	}
11663
11664	if invalidParams.Len() > 0 {
11665		return invalidParams
11666	}
11667	return nil
11668}
11669
11670// SetFileShareARNList sets the FileShareARNList field's value.
11671func (s *DescribeNFSFileSharesInput) SetFileShareARNList(v []*string) *DescribeNFSFileSharesInput {
11672	s.FileShareARNList = v
11673	return s
11674}
11675
11676// DescribeNFSFileSharesOutput
11677type DescribeNFSFileSharesOutput struct {
11678	_ struct{} `type:"structure"`
11679
11680	// An array containing a description for each requested file share.
11681	NFSFileShareInfoList []*NFSFileShareInfo `type:"list"`
11682}
11683
11684// String returns the string representation
11685func (s DescribeNFSFileSharesOutput) String() string {
11686	return awsutil.Prettify(s)
11687}
11688
11689// GoString returns the string representation
11690func (s DescribeNFSFileSharesOutput) GoString() string {
11691	return s.String()
11692}
11693
11694// SetNFSFileShareInfoList sets the NFSFileShareInfoList field's value.
11695func (s *DescribeNFSFileSharesOutput) SetNFSFileShareInfoList(v []*NFSFileShareInfo) *DescribeNFSFileSharesOutput {
11696	s.NFSFileShareInfoList = v
11697	return s
11698}
11699
11700// DescribeSMBFileSharesInput
11701type DescribeSMBFileSharesInput struct {
11702	_ struct{} `type:"structure"`
11703
11704	// An array containing the Amazon Resource Name (ARN) of each file share to
11705	// be described.
11706	//
11707	// FileShareARNList is a required field
11708	FileShareARNList []*string `min:"1" type:"list" required:"true"`
11709}
11710
11711// String returns the string representation
11712func (s DescribeSMBFileSharesInput) String() string {
11713	return awsutil.Prettify(s)
11714}
11715
11716// GoString returns the string representation
11717func (s DescribeSMBFileSharesInput) GoString() string {
11718	return s.String()
11719}
11720
11721// Validate inspects the fields of the type to determine if they are valid.
11722func (s *DescribeSMBFileSharesInput) Validate() error {
11723	invalidParams := request.ErrInvalidParams{Context: "DescribeSMBFileSharesInput"}
11724	if s.FileShareARNList == nil {
11725		invalidParams.Add(request.NewErrParamRequired("FileShareARNList"))
11726	}
11727	if s.FileShareARNList != nil && len(s.FileShareARNList) < 1 {
11728		invalidParams.Add(request.NewErrParamMinLen("FileShareARNList", 1))
11729	}
11730
11731	if invalidParams.Len() > 0 {
11732		return invalidParams
11733	}
11734	return nil
11735}
11736
11737// SetFileShareARNList sets the FileShareARNList field's value.
11738func (s *DescribeSMBFileSharesInput) SetFileShareARNList(v []*string) *DescribeSMBFileSharesInput {
11739	s.FileShareARNList = v
11740	return s
11741}
11742
11743// DescribeSMBFileSharesOutput
11744type DescribeSMBFileSharesOutput struct {
11745	_ struct{} `type:"structure"`
11746
11747	// An array containing a description for each requested file share.
11748	SMBFileShareInfoList []*SMBFileShareInfo `type:"list"`
11749}
11750
11751// String returns the string representation
11752func (s DescribeSMBFileSharesOutput) String() string {
11753	return awsutil.Prettify(s)
11754}
11755
11756// GoString returns the string representation
11757func (s DescribeSMBFileSharesOutput) GoString() string {
11758	return s.String()
11759}
11760
11761// SetSMBFileShareInfoList sets the SMBFileShareInfoList field's value.
11762func (s *DescribeSMBFileSharesOutput) SetSMBFileShareInfoList(v []*SMBFileShareInfo) *DescribeSMBFileSharesOutput {
11763	s.SMBFileShareInfoList = v
11764	return s
11765}
11766
11767type DescribeSMBSettingsInput struct {
11768	_ struct{} `type:"structure"`
11769
11770	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11771	// to return a list of gateways for your account and AWS Region.
11772	//
11773	// GatewayARN is a required field
11774	GatewayARN *string `min:"50" type:"string" required:"true"`
11775}
11776
11777// String returns the string representation
11778func (s DescribeSMBSettingsInput) String() string {
11779	return awsutil.Prettify(s)
11780}
11781
11782// GoString returns the string representation
11783func (s DescribeSMBSettingsInput) GoString() string {
11784	return s.String()
11785}
11786
11787// Validate inspects the fields of the type to determine if they are valid.
11788func (s *DescribeSMBSettingsInput) Validate() error {
11789	invalidParams := request.ErrInvalidParams{Context: "DescribeSMBSettingsInput"}
11790	if s.GatewayARN == nil {
11791		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
11792	}
11793	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
11794		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
11795	}
11796
11797	if invalidParams.Len() > 0 {
11798		return invalidParams
11799	}
11800	return nil
11801}
11802
11803// SetGatewayARN sets the GatewayARN field's value.
11804func (s *DescribeSMBSettingsInput) SetGatewayARN(v string) *DescribeSMBSettingsInput {
11805	s.GatewayARN = &v
11806	return s
11807}
11808
11809type DescribeSMBSettingsOutput struct {
11810	_ struct{} `type:"structure"`
11811
11812	// Indicates the status of a gateway that is a member of the Active Directory
11813	// domain.
11814	//
11815	//    * ACCESS_DENIED: Indicates that the JoinDomain operation failed due to
11816	//    an authentication error.
11817	//
11818	//    * DETACHED: Indicates that gateway is not joined to a domain.
11819	//
11820	//    * JOINED: Indicates that the gateway has successfully joined a domain.
11821	//
11822	//    * JOINING: Indicates that a JoinDomain operation is in progress.
11823	//
11824	//    * NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network
11825	//    or connectivity error.
11826	//
11827	//    * TIMEOUT: Indicates that the JoinDomain operation failed because the
11828	//    operation didn't complete within the allotted time.
11829	//
11830	//    * UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to
11831	//    another type of error.
11832	ActiveDirectoryStatus *string `type:"string" enum:"ActiveDirectoryStatus"`
11833
11834	// The name of the domain that the gateway is joined to.
11835	DomainName *string `min:"1" type:"string"`
11836
11837	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
11838	// to return a list of gateways for your account and AWS Region.
11839	GatewayARN *string `min:"50" type:"string"`
11840
11841	// This value is true if a password for the guest user “smbguest” is set,
11842	// and otherwise false.
11843	SMBGuestPasswordSet *bool `type:"boolean"`
11844
11845	// The type of security strategy that was specified for file gateway.
11846	//
11847	// ClientSpecified: if you use this option, requests are established based on
11848	// what is negotiated by the client. This option is recommended when you want
11849	// to maximize compatibility across different clients in your environment.
11850	//
11851	// MandatorySigning: if you use this option, file gateway only allows connections
11852	// from SMBv2 or SMBv3 clients that have signing enabled. This option works
11853	// with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer.
11854	//
11855	// MandatoryEncryption: if you use this option, file gateway only allows connections
11856	// from SMBv3 clients that have encryption enabled. This option is highly recommended
11857	// for environments that handle sensitive data. This option works with SMB clients
11858	// on Microsoft Windows 8, Windows Server 2012 or newer.
11859	SMBSecurityStrategy *string `type:"string" enum:"SMBSecurityStrategy"`
11860}
11861
11862// String returns the string representation
11863func (s DescribeSMBSettingsOutput) String() string {
11864	return awsutil.Prettify(s)
11865}
11866
11867// GoString returns the string representation
11868func (s DescribeSMBSettingsOutput) GoString() string {
11869	return s.String()
11870}
11871
11872// SetActiveDirectoryStatus sets the ActiveDirectoryStatus field's value.
11873func (s *DescribeSMBSettingsOutput) SetActiveDirectoryStatus(v string) *DescribeSMBSettingsOutput {
11874	s.ActiveDirectoryStatus = &v
11875	return s
11876}
11877
11878// SetDomainName sets the DomainName field's value.
11879func (s *DescribeSMBSettingsOutput) SetDomainName(v string) *DescribeSMBSettingsOutput {
11880	s.DomainName = &v
11881	return s
11882}
11883
11884// SetGatewayARN sets the GatewayARN field's value.
11885func (s *DescribeSMBSettingsOutput) SetGatewayARN(v string) *DescribeSMBSettingsOutput {
11886	s.GatewayARN = &v
11887	return s
11888}
11889
11890// SetSMBGuestPasswordSet sets the SMBGuestPasswordSet field's value.
11891func (s *DescribeSMBSettingsOutput) SetSMBGuestPasswordSet(v bool) *DescribeSMBSettingsOutput {
11892	s.SMBGuestPasswordSet = &v
11893	return s
11894}
11895
11896// SetSMBSecurityStrategy sets the SMBSecurityStrategy field's value.
11897func (s *DescribeSMBSettingsOutput) SetSMBSecurityStrategy(v string) *DescribeSMBSettingsOutput {
11898	s.SMBSecurityStrategy = &v
11899	return s
11900}
11901
11902// A JSON object containing the DescribeSnapshotScheduleInput$VolumeARN of the
11903// volume.
11904type DescribeSnapshotScheduleInput struct {
11905	_ struct{} `type:"structure"`
11906
11907	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
11908	// to return a list of gateway volumes.
11909	//
11910	// VolumeARN is a required field
11911	VolumeARN *string `min:"50" type:"string" required:"true"`
11912}
11913
11914// String returns the string representation
11915func (s DescribeSnapshotScheduleInput) String() string {
11916	return awsutil.Prettify(s)
11917}
11918
11919// GoString returns the string representation
11920func (s DescribeSnapshotScheduleInput) GoString() string {
11921	return s.String()
11922}
11923
11924// Validate inspects the fields of the type to determine if they are valid.
11925func (s *DescribeSnapshotScheduleInput) Validate() error {
11926	invalidParams := request.ErrInvalidParams{Context: "DescribeSnapshotScheduleInput"}
11927	if s.VolumeARN == nil {
11928		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
11929	}
11930	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
11931		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
11932	}
11933
11934	if invalidParams.Len() > 0 {
11935		return invalidParams
11936	}
11937	return nil
11938}
11939
11940// SetVolumeARN sets the VolumeARN field's value.
11941func (s *DescribeSnapshotScheduleInput) SetVolumeARN(v string) *DescribeSnapshotScheduleInput {
11942	s.VolumeARN = &v
11943	return s
11944}
11945
11946type DescribeSnapshotScheduleOutput struct {
11947	_ struct{} `type:"structure"`
11948
11949	// The snapshot description.
11950	Description *string `min:"1" type:"string"`
11951
11952	// The number of hours between snapshots.
11953	RecurrenceInHours *int64 `min:"1" type:"integer"`
11954
11955	// The hour of the day at which the snapshot schedule begins represented as
11956	// hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
11957	// of the gateway.
11958	StartAt *int64 `type:"integer"`
11959
11960	// A list of up to 50 tags assigned to the snapshot schedule, sorted alphabetically
11961	// by key name. Each tag is a key-value pair. For a gateway with more than 10
11962	// tags assigned, you can view all tags using the ListTagsForResource API operation.
11963	Tags []*Tag `type:"list"`
11964
11965	// A value that indicates the time zone of the gateway.
11966	Timezone *string `min:"3" type:"string"`
11967
11968	// The Amazon Resource Name (ARN) of the volume that was specified in the request.
11969	VolumeARN *string `min:"50" type:"string"`
11970}
11971
11972// String returns the string representation
11973func (s DescribeSnapshotScheduleOutput) String() string {
11974	return awsutil.Prettify(s)
11975}
11976
11977// GoString returns the string representation
11978func (s DescribeSnapshotScheduleOutput) GoString() string {
11979	return s.String()
11980}
11981
11982// SetDescription sets the Description field's value.
11983func (s *DescribeSnapshotScheduleOutput) SetDescription(v string) *DescribeSnapshotScheduleOutput {
11984	s.Description = &v
11985	return s
11986}
11987
11988// SetRecurrenceInHours sets the RecurrenceInHours field's value.
11989func (s *DescribeSnapshotScheduleOutput) SetRecurrenceInHours(v int64) *DescribeSnapshotScheduleOutput {
11990	s.RecurrenceInHours = &v
11991	return s
11992}
11993
11994// SetStartAt sets the StartAt field's value.
11995func (s *DescribeSnapshotScheduleOutput) SetStartAt(v int64) *DescribeSnapshotScheduleOutput {
11996	s.StartAt = &v
11997	return s
11998}
11999
12000// SetTags sets the Tags field's value.
12001func (s *DescribeSnapshotScheduleOutput) SetTags(v []*Tag) *DescribeSnapshotScheduleOutput {
12002	s.Tags = v
12003	return s
12004}
12005
12006// SetTimezone sets the Timezone field's value.
12007func (s *DescribeSnapshotScheduleOutput) SetTimezone(v string) *DescribeSnapshotScheduleOutput {
12008	s.Timezone = &v
12009	return s
12010}
12011
12012// SetVolumeARN sets the VolumeARN field's value.
12013func (s *DescribeSnapshotScheduleOutput) SetVolumeARN(v string) *DescribeSnapshotScheduleOutput {
12014	s.VolumeARN = &v
12015	return s
12016}
12017
12018// A JSON object containing a list of DescribeStorediSCSIVolumesInput$VolumeARNs.
12019type DescribeStorediSCSIVolumesInput struct {
12020	_ struct{} `type:"structure"`
12021
12022	// An array of strings where each string represents the Amazon Resource Name
12023	// (ARN) of a stored volume. All of the specified stored volumes must from the
12024	// same gateway. Use ListVolumes to get volume ARNs for a gateway.
12025	//
12026	// VolumeARNs is a required field
12027	VolumeARNs []*string `type:"list" required:"true"`
12028}
12029
12030// String returns the string representation
12031func (s DescribeStorediSCSIVolumesInput) String() string {
12032	return awsutil.Prettify(s)
12033}
12034
12035// GoString returns the string representation
12036func (s DescribeStorediSCSIVolumesInput) GoString() string {
12037	return s.String()
12038}
12039
12040// Validate inspects the fields of the type to determine if they are valid.
12041func (s *DescribeStorediSCSIVolumesInput) Validate() error {
12042	invalidParams := request.ErrInvalidParams{Context: "DescribeStorediSCSIVolumesInput"}
12043	if s.VolumeARNs == nil {
12044		invalidParams.Add(request.NewErrParamRequired("VolumeARNs"))
12045	}
12046
12047	if invalidParams.Len() > 0 {
12048		return invalidParams
12049	}
12050	return nil
12051}
12052
12053// SetVolumeARNs sets the VolumeARNs field's value.
12054func (s *DescribeStorediSCSIVolumesInput) SetVolumeARNs(v []*string) *DescribeStorediSCSIVolumesInput {
12055	s.VolumeARNs = v
12056	return s
12057}
12058
12059type DescribeStorediSCSIVolumesOutput struct {
12060	_ struct{} `type:"structure"`
12061
12062	// Describes a single unit of output from DescribeStorediSCSIVolumes. The following
12063	// fields are returned:
12064	//
12065	//    * ChapEnabled: Indicates whether mutual CHAP is enabled for the iSCSI
12066	//    target.
12067	//
12068	//    * LunNumber: The logical disk number.
12069	//
12070	//    * NetworkInterfaceId: The network interface ID of the stored volume that
12071	//    initiator use to map the stored volume as an iSCSI target.
12072	//
12073	//    * NetworkInterfacePort: The port used to communicate with iSCSI targets.
12074	//
12075	//    * PreservedExistingData: Indicates if when the stored volume was created,
12076	//    existing data on the underlying local disk was preserved.
12077	//
12078	//    * SourceSnapshotId: If the stored volume was created from a snapshot,
12079	//    this field contains the snapshot ID used, e.g. snap-1122aabb. Otherwise,
12080	//    this field is not included.
12081	//
12082	//    * StorediSCSIVolumes: An array of StorediSCSIVolume objects where each
12083	//    object contains metadata about one stored volume.
12084	//
12085	//    * TargetARN: The Amazon Resource Name (ARN) of the volume target.
12086	//
12087	//    * VolumeARN: The Amazon Resource Name (ARN) of the stored volume.
12088	//
12089	//    * VolumeDiskId: The disk ID of the local disk that was specified in the
12090	//    CreateStorediSCSIVolume operation.
12091	//
12092	//    * VolumeId: The unique identifier of the storage volume, e.g. vol-1122AABB.
12093	//
12094	//    * VolumeiSCSIAttributes: An VolumeiSCSIAttributes object that represents
12095	//    a collection of iSCSI attributes for one stored volume.
12096	//
12097	//    * VolumeProgress: Represents the percentage complete if the volume is
12098	//    restoring or bootstrapping that represents the percent of data transferred.
12099	//    This field does not appear in the response if the stored volume is not
12100	//    restoring or bootstrapping.
12101	//
12102	//    * VolumeSizeInBytes: The size of the volume in bytes.
12103	//
12104	//    * VolumeStatus: One of the VolumeStatus values that indicates the state
12105	//    of the volume.
12106	//
12107	//    * VolumeType: One of the enumeration values describing the type of the
12108	//    volume. Currently, on STORED volumes are supported.
12109	StorediSCSIVolumes []*StorediSCSIVolume `type:"list"`
12110}
12111
12112// String returns the string representation
12113func (s DescribeStorediSCSIVolumesOutput) String() string {
12114	return awsutil.Prettify(s)
12115}
12116
12117// GoString returns the string representation
12118func (s DescribeStorediSCSIVolumesOutput) GoString() string {
12119	return s.String()
12120}
12121
12122// SetStorediSCSIVolumes sets the StorediSCSIVolumes field's value.
12123func (s *DescribeStorediSCSIVolumesOutput) SetStorediSCSIVolumes(v []*StorediSCSIVolume) *DescribeStorediSCSIVolumesOutput {
12124	s.StorediSCSIVolumes = v
12125	return s
12126}
12127
12128// DescribeTapeArchivesInput
12129type DescribeTapeArchivesInput struct {
12130	_ struct{} `type:"structure"`
12131
12132	// Specifies that the number of virtual tapes descried be limited to the specified
12133	// number.
12134	Limit *int64 `min:"1" type:"integer"`
12135
12136	// An opaque string that indicates the position at which to begin describing
12137	// virtual tapes.
12138	Marker *string `min:"1" type:"string"`
12139
12140	// Specifies one or more unique Amazon Resource Names (ARNs) that represent
12141	// the virtual tapes you want to describe.
12142	TapeARNs []*string `type:"list"`
12143}
12144
12145// String returns the string representation
12146func (s DescribeTapeArchivesInput) String() string {
12147	return awsutil.Prettify(s)
12148}
12149
12150// GoString returns the string representation
12151func (s DescribeTapeArchivesInput) GoString() string {
12152	return s.String()
12153}
12154
12155// Validate inspects the fields of the type to determine if they are valid.
12156func (s *DescribeTapeArchivesInput) Validate() error {
12157	invalidParams := request.ErrInvalidParams{Context: "DescribeTapeArchivesInput"}
12158	if s.Limit != nil && *s.Limit < 1 {
12159		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
12160	}
12161	if s.Marker != nil && len(*s.Marker) < 1 {
12162		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
12163	}
12164
12165	if invalidParams.Len() > 0 {
12166		return invalidParams
12167	}
12168	return nil
12169}
12170
12171// SetLimit sets the Limit field's value.
12172func (s *DescribeTapeArchivesInput) SetLimit(v int64) *DescribeTapeArchivesInput {
12173	s.Limit = &v
12174	return s
12175}
12176
12177// SetMarker sets the Marker field's value.
12178func (s *DescribeTapeArchivesInput) SetMarker(v string) *DescribeTapeArchivesInput {
12179	s.Marker = &v
12180	return s
12181}
12182
12183// SetTapeARNs sets the TapeARNs field's value.
12184func (s *DescribeTapeArchivesInput) SetTapeARNs(v []*string) *DescribeTapeArchivesInput {
12185	s.TapeARNs = v
12186	return s
12187}
12188
12189// DescribeTapeArchivesOutput
12190type DescribeTapeArchivesOutput struct {
12191	_ struct{} `type:"structure"`
12192
12193	// An opaque string that indicates the position at which the virtual tapes that
12194	// were fetched for description ended. Use this marker in your next request
12195	// to fetch the next set of virtual tapes in the virtual tape shelf (VTS). If
12196	// there are no more virtual tapes to describe, this field does not appear in
12197	// the response.
12198	Marker *string `min:"1" type:"string"`
12199
12200	// An array of virtual tape objects in the virtual tape shelf (VTS). The description
12201	// includes of the Amazon Resource Name (ARN) of the virtual tapes. The information
12202	// returned includes the Amazon Resource Names (ARNs) of the tapes, size of
12203	// the tapes, status of the tapes, progress of the description and tape barcode.
12204	TapeArchives []*TapeArchive `type:"list"`
12205}
12206
12207// String returns the string representation
12208func (s DescribeTapeArchivesOutput) String() string {
12209	return awsutil.Prettify(s)
12210}
12211
12212// GoString returns the string representation
12213func (s DescribeTapeArchivesOutput) GoString() string {
12214	return s.String()
12215}
12216
12217// SetMarker sets the Marker field's value.
12218func (s *DescribeTapeArchivesOutput) SetMarker(v string) *DescribeTapeArchivesOutput {
12219	s.Marker = &v
12220	return s
12221}
12222
12223// SetTapeArchives sets the TapeArchives field's value.
12224func (s *DescribeTapeArchivesOutput) SetTapeArchives(v []*TapeArchive) *DescribeTapeArchivesOutput {
12225	s.TapeArchives = v
12226	return s
12227}
12228
12229// DescribeTapeRecoveryPointsInput
12230type DescribeTapeRecoveryPointsInput struct {
12231	_ struct{} `type:"structure"`
12232
12233	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12234	// to return a list of gateways for your account and AWS Region.
12235	//
12236	// GatewayARN is a required field
12237	GatewayARN *string `min:"50" type:"string" required:"true"`
12238
12239	// Specifies that the number of virtual tape recovery points that are described
12240	// be limited to the specified number.
12241	Limit *int64 `min:"1" type:"integer"`
12242
12243	// An opaque string that indicates the position at which to begin describing
12244	// the virtual tape recovery points.
12245	Marker *string `min:"1" type:"string"`
12246}
12247
12248// String returns the string representation
12249func (s DescribeTapeRecoveryPointsInput) String() string {
12250	return awsutil.Prettify(s)
12251}
12252
12253// GoString returns the string representation
12254func (s DescribeTapeRecoveryPointsInput) GoString() string {
12255	return s.String()
12256}
12257
12258// Validate inspects the fields of the type to determine if they are valid.
12259func (s *DescribeTapeRecoveryPointsInput) Validate() error {
12260	invalidParams := request.ErrInvalidParams{Context: "DescribeTapeRecoveryPointsInput"}
12261	if s.GatewayARN == nil {
12262		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12263	}
12264	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12265		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12266	}
12267	if s.Limit != nil && *s.Limit < 1 {
12268		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
12269	}
12270	if s.Marker != nil && len(*s.Marker) < 1 {
12271		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
12272	}
12273
12274	if invalidParams.Len() > 0 {
12275		return invalidParams
12276	}
12277	return nil
12278}
12279
12280// SetGatewayARN sets the GatewayARN field's value.
12281func (s *DescribeTapeRecoveryPointsInput) SetGatewayARN(v string) *DescribeTapeRecoveryPointsInput {
12282	s.GatewayARN = &v
12283	return s
12284}
12285
12286// SetLimit sets the Limit field's value.
12287func (s *DescribeTapeRecoveryPointsInput) SetLimit(v int64) *DescribeTapeRecoveryPointsInput {
12288	s.Limit = &v
12289	return s
12290}
12291
12292// SetMarker sets the Marker field's value.
12293func (s *DescribeTapeRecoveryPointsInput) SetMarker(v string) *DescribeTapeRecoveryPointsInput {
12294	s.Marker = &v
12295	return s
12296}
12297
12298// DescribeTapeRecoveryPointsOutput
12299type DescribeTapeRecoveryPointsOutput struct {
12300	_ struct{} `type:"structure"`
12301
12302	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12303	// to return a list of gateways for your account and AWS Region.
12304	GatewayARN *string `min:"50" type:"string"`
12305
12306	// An opaque string that indicates the position at which the virtual tape recovery
12307	// points that were listed for description ended.
12308	//
12309	// Use this marker in your next request to list the next set of virtual tape
12310	// recovery points in the list. If there are no more recovery points to describe,
12311	// this field does not appear in the response.
12312	Marker *string `min:"1" type:"string"`
12313
12314	// An array of TapeRecoveryPointInfos that are available for the specified gateway.
12315	TapeRecoveryPointInfos []*TapeRecoveryPointInfo `type:"list"`
12316}
12317
12318// String returns the string representation
12319func (s DescribeTapeRecoveryPointsOutput) String() string {
12320	return awsutil.Prettify(s)
12321}
12322
12323// GoString returns the string representation
12324func (s DescribeTapeRecoveryPointsOutput) GoString() string {
12325	return s.String()
12326}
12327
12328// SetGatewayARN sets the GatewayARN field's value.
12329func (s *DescribeTapeRecoveryPointsOutput) SetGatewayARN(v string) *DescribeTapeRecoveryPointsOutput {
12330	s.GatewayARN = &v
12331	return s
12332}
12333
12334// SetMarker sets the Marker field's value.
12335func (s *DescribeTapeRecoveryPointsOutput) SetMarker(v string) *DescribeTapeRecoveryPointsOutput {
12336	s.Marker = &v
12337	return s
12338}
12339
12340// SetTapeRecoveryPointInfos sets the TapeRecoveryPointInfos field's value.
12341func (s *DescribeTapeRecoveryPointsOutput) SetTapeRecoveryPointInfos(v []*TapeRecoveryPointInfo) *DescribeTapeRecoveryPointsOutput {
12342	s.TapeRecoveryPointInfos = v
12343	return s
12344}
12345
12346// DescribeTapesInput
12347type DescribeTapesInput struct {
12348	_ struct{} `type:"structure"`
12349
12350	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12351	// to return a list of gateways for your account and AWS Region.
12352	//
12353	// GatewayARN is a required field
12354	GatewayARN *string `min:"50" type:"string" required:"true"`
12355
12356	// Specifies that the number of virtual tapes described be limited to the specified
12357	// number.
12358	//
12359	// Amazon Web Services may impose its own limit, if this field is not set.
12360	Limit *int64 `min:"1" type:"integer"`
12361
12362	// A marker value, obtained in a previous call to DescribeTapes. This marker
12363	// indicates which page of results to retrieve.
12364	//
12365	// If not specified, the first page of results is retrieved.
12366	Marker *string `min:"1" type:"string"`
12367
12368	// Specifies one or more unique Amazon Resource Names (ARNs) that represent
12369	// the virtual tapes you want to describe. If this parameter is not specified,
12370	// Tape gateway returns a description of all virtual tapes associated with the
12371	// specified gateway.
12372	TapeARNs []*string `type:"list"`
12373}
12374
12375// String returns the string representation
12376func (s DescribeTapesInput) String() string {
12377	return awsutil.Prettify(s)
12378}
12379
12380// GoString returns the string representation
12381func (s DescribeTapesInput) GoString() string {
12382	return s.String()
12383}
12384
12385// Validate inspects the fields of the type to determine if they are valid.
12386func (s *DescribeTapesInput) Validate() error {
12387	invalidParams := request.ErrInvalidParams{Context: "DescribeTapesInput"}
12388	if s.GatewayARN == nil {
12389		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12390	}
12391	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12392		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12393	}
12394	if s.Limit != nil && *s.Limit < 1 {
12395		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
12396	}
12397	if s.Marker != nil && len(*s.Marker) < 1 {
12398		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
12399	}
12400
12401	if invalidParams.Len() > 0 {
12402		return invalidParams
12403	}
12404	return nil
12405}
12406
12407// SetGatewayARN sets the GatewayARN field's value.
12408func (s *DescribeTapesInput) SetGatewayARN(v string) *DescribeTapesInput {
12409	s.GatewayARN = &v
12410	return s
12411}
12412
12413// SetLimit sets the Limit field's value.
12414func (s *DescribeTapesInput) SetLimit(v int64) *DescribeTapesInput {
12415	s.Limit = &v
12416	return s
12417}
12418
12419// SetMarker sets the Marker field's value.
12420func (s *DescribeTapesInput) SetMarker(v string) *DescribeTapesInput {
12421	s.Marker = &v
12422	return s
12423}
12424
12425// SetTapeARNs sets the TapeARNs field's value.
12426func (s *DescribeTapesInput) SetTapeARNs(v []*string) *DescribeTapesInput {
12427	s.TapeARNs = v
12428	return s
12429}
12430
12431// DescribeTapesOutput
12432type DescribeTapesOutput struct {
12433	_ struct{} `type:"structure"`
12434
12435	// An opaque string which can be used as part of a subsequent DescribeTapes
12436	// call to retrieve the next page of results.
12437	//
12438	// If a response does not contain a marker, then there are no more results to
12439	// be retrieved.
12440	Marker *string `min:"1" type:"string"`
12441
12442	// An array of virtual tape descriptions.
12443	Tapes []*Tape `type:"list"`
12444}
12445
12446// String returns the string representation
12447func (s DescribeTapesOutput) String() string {
12448	return awsutil.Prettify(s)
12449}
12450
12451// GoString returns the string representation
12452func (s DescribeTapesOutput) GoString() string {
12453	return s.String()
12454}
12455
12456// SetMarker sets the Marker field's value.
12457func (s *DescribeTapesOutput) SetMarker(v string) *DescribeTapesOutput {
12458	s.Marker = &v
12459	return s
12460}
12461
12462// SetTapes sets the Tapes field's value.
12463func (s *DescribeTapesOutput) SetTapes(v []*Tape) *DescribeTapesOutput {
12464	s.Tapes = v
12465	return s
12466}
12467
12468type DescribeUploadBufferInput struct {
12469	_ struct{} `type:"structure"`
12470
12471	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12472	// to return a list of gateways for your account and AWS Region.
12473	//
12474	// GatewayARN is a required field
12475	GatewayARN *string `min:"50" type:"string" required:"true"`
12476}
12477
12478// String returns the string representation
12479func (s DescribeUploadBufferInput) String() string {
12480	return awsutil.Prettify(s)
12481}
12482
12483// GoString returns the string representation
12484func (s DescribeUploadBufferInput) GoString() string {
12485	return s.String()
12486}
12487
12488// Validate inspects the fields of the type to determine if they are valid.
12489func (s *DescribeUploadBufferInput) Validate() error {
12490	invalidParams := request.ErrInvalidParams{Context: "DescribeUploadBufferInput"}
12491	if s.GatewayARN == nil {
12492		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12493	}
12494	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12495		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12496	}
12497
12498	if invalidParams.Len() > 0 {
12499		return invalidParams
12500	}
12501	return nil
12502}
12503
12504// SetGatewayARN sets the GatewayARN field's value.
12505func (s *DescribeUploadBufferInput) SetGatewayARN(v string) *DescribeUploadBufferInput {
12506	s.GatewayARN = &v
12507	return s
12508}
12509
12510type DescribeUploadBufferOutput struct {
12511	_ struct{} `type:"structure"`
12512
12513	// An array of the gateway's local disk IDs that are configured as working storage.
12514	// Each local disk ID is specified as a string (minimum length of 1 and maximum
12515	// length of 300). If no local disks are configured as working storage, then
12516	// the DiskIds array is empty.
12517	DiskIds []*string `type:"list"`
12518
12519	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12520	// to return a list of gateways for your account and AWS Region.
12521	GatewayARN *string `min:"50" type:"string"`
12522
12523	// The total number of bytes allocated in the gateway's as upload buffer.
12524	UploadBufferAllocatedInBytes *int64 `type:"long"`
12525
12526	// The total number of bytes being used in the gateway's upload buffer.
12527	UploadBufferUsedInBytes *int64 `type:"long"`
12528}
12529
12530// String returns the string representation
12531func (s DescribeUploadBufferOutput) String() string {
12532	return awsutil.Prettify(s)
12533}
12534
12535// GoString returns the string representation
12536func (s DescribeUploadBufferOutput) GoString() string {
12537	return s.String()
12538}
12539
12540// SetDiskIds sets the DiskIds field's value.
12541func (s *DescribeUploadBufferOutput) SetDiskIds(v []*string) *DescribeUploadBufferOutput {
12542	s.DiskIds = v
12543	return s
12544}
12545
12546// SetGatewayARN sets the GatewayARN field's value.
12547func (s *DescribeUploadBufferOutput) SetGatewayARN(v string) *DescribeUploadBufferOutput {
12548	s.GatewayARN = &v
12549	return s
12550}
12551
12552// SetUploadBufferAllocatedInBytes sets the UploadBufferAllocatedInBytes field's value.
12553func (s *DescribeUploadBufferOutput) SetUploadBufferAllocatedInBytes(v int64) *DescribeUploadBufferOutput {
12554	s.UploadBufferAllocatedInBytes = &v
12555	return s
12556}
12557
12558// SetUploadBufferUsedInBytes sets the UploadBufferUsedInBytes field's value.
12559func (s *DescribeUploadBufferOutput) SetUploadBufferUsedInBytes(v int64) *DescribeUploadBufferOutput {
12560	s.UploadBufferUsedInBytes = &v
12561	return s
12562}
12563
12564// DescribeVTLDevicesInput
12565type DescribeVTLDevicesInput struct {
12566	_ struct{} `type:"structure"`
12567
12568	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12569	// to return a list of gateways for your account and AWS Region.
12570	//
12571	// GatewayARN is a required field
12572	GatewayARN *string `min:"50" type:"string" required:"true"`
12573
12574	// Specifies that the number of VTL devices described be limited to the specified
12575	// number.
12576	Limit *int64 `min:"1" type:"integer"`
12577
12578	// An opaque string that indicates the position at which to begin describing
12579	// the VTL devices.
12580	Marker *string `min:"1" type:"string"`
12581
12582	// An array of strings, where each string represents the Amazon Resource Name
12583	// (ARN) of a VTL device.
12584	//
12585	// All of the specified VTL devices must be from the same gateway. If no VTL
12586	// devices are specified, the result will contain all devices on the specified
12587	// gateway.
12588	VTLDeviceARNs []*string `type:"list"`
12589}
12590
12591// String returns the string representation
12592func (s DescribeVTLDevicesInput) String() string {
12593	return awsutil.Prettify(s)
12594}
12595
12596// GoString returns the string representation
12597func (s DescribeVTLDevicesInput) GoString() string {
12598	return s.String()
12599}
12600
12601// Validate inspects the fields of the type to determine if they are valid.
12602func (s *DescribeVTLDevicesInput) Validate() error {
12603	invalidParams := request.ErrInvalidParams{Context: "DescribeVTLDevicesInput"}
12604	if s.GatewayARN == nil {
12605		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12606	}
12607	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12608		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12609	}
12610	if s.Limit != nil && *s.Limit < 1 {
12611		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
12612	}
12613	if s.Marker != nil && len(*s.Marker) < 1 {
12614		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
12615	}
12616
12617	if invalidParams.Len() > 0 {
12618		return invalidParams
12619	}
12620	return nil
12621}
12622
12623// SetGatewayARN sets the GatewayARN field's value.
12624func (s *DescribeVTLDevicesInput) SetGatewayARN(v string) *DescribeVTLDevicesInput {
12625	s.GatewayARN = &v
12626	return s
12627}
12628
12629// SetLimit sets the Limit field's value.
12630func (s *DescribeVTLDevicesInput) SetLimit(v int64) *DescribeVTLDevicesInput {
12631	s.Limit = &v
12632	return s
12633}
12634
12635// SetMarker sets the Marker field's value.
12636func (s *DescribeVTLDevicesInput) SetMarker(v string) *DescribeVTLDevicesInput {
12637	s.Marker = &v
12638	return s
12639}
12640
12641// SetVTLDeviceARNs sets the VTLDeviceARNs field's value.
12642func (s *DescribeVTLDevicesInput) SetVTLDeviceARNs(v []*string) *DescribeVTLDevicesInput {
12643	s.VTLDeviceARNs = v
12644	return s
12645}
12646
12647// DescribeVTLDevicesOutput
12648type DescribeVTLDevicesOutput struct {
12649	_ struct{} `type:"structure"`
12650
12651	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12652	// to return a list of gateways for your account and AWS Region.
12653	GatewayARN *string `min:"50" type:"string"`
12654
12655	// An opaque string that indicates the position at which the VTL devices that
12656	// were fetched for description ended. Use the marker in your next request to
12657	// fetch the next set of VTL devices in the list. If there are no more VTL devices
12658	// to describe, this field does not appear in the response.
12659	Marker *string `min:"1" type:"string"`
12660
12661	// An array of VTL device objects composed of the Amazon Resource Name(ARN)
12662	// of the VTL devices.
12663	VTLDevices []*VTLDevice `type:"list"`
12664}
12665
12666// String returns the string representation
12667func (s DescribeVTLDevicesOutput) String() string {
12668	return awsutil.Prettify(s)
12669}
12670
12671// GoString returns the string representation
12672func (s DescribeVTLDevicesOutput) GoString() string {
12673	return s.String()
12674}
12675
12676// SetGatewayARN sets the GatewayARN field's value.
12677func (s *DescribeVTLDevicesOutput) SetGatewayARN(v string) *DescribeVTLDevicesOutput {
12678	s.GatewayARN = &v
12679	return s
12680}
12681
12682// SetMarker sets the Marker field's value.
12683func (s *DescribeVTLDevicesOutput) SetMarker(v string) *DescribeVTLDevicesOutput {
12684	s.Marker = &v
12685	return s
12686}
12687
12688// SetVTLDevices sets the VTLDevices field's value.
12689func (s *DescribeVTLDevicesOutput) SetVTLDevices(v []*VTLDevice) *DescribeVTLDevicesOutput {
12690	s.VTLDevices = v
12691	return s
12692}
12693
12694// A JSON object containing the of the gateway.
12695type DescribeWorkingStorageInput struct {
12696	_ struct{} `type:"structure"`
12697
12698	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12699	// to return a list of gateways for your account and AWS Region.
12700	//
12701	// GatewayARN is a required field
12702	GatewayARN *string `min:"50" type:"string" required:"true"`
12703}
12704
12705// String returns the string representation
12706func (s DescribeWorkingStorageInput) String() string {
12707	return awsutil.Prettify(s)
12708}
12709
12710// GoString returns the string representation
12711func (s DescribeWorkingStorageInput) GoString() string {
12712	return s.String()
12713}
12714
12715// Validate inspects the fields of the type to determine if they are valid.
12716func (s *DescribeWorkingStorageInput) Validate() error {
12717	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkingStorageInput"}
12718	if s.GatewayARN == nil {
12719		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12720	}
12721	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12722		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12723	}
12724
12725	if invalidParams.Len() > 0 {
12726		return invalidParams
12727	}
12728	return nil
12729}
12730
12731// SetGatewayARN sets the GatewayARN field's value.
12732func (s *DescribeWorkingStorageInput) SetGatewayARN(v string) *DescribeWorkingStorageInput {
12733	s.GatewayARN = &v
12734	return s
12735}
12736
12737// A JSON object containing the following fields:
12738type DescribeWorkingStorageOutput struct {
12739	_ struct{} `type:"structure"`
12740
12741	// An array of the gateway's local disk IDs that are configured as working storage.
12742	// Each local disk ID is specified as a string (minimum length of 1 and maximum
12743	// length of 300). If no local disks are configured as working storage, then
12744	// the DiskIds array is empty.
12745	DiskIds []*string `type:"list"`
12746
12747	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12748	// to return a list of gateways for your account and AWS Region.
12749	GatewayARN *string `min:"50" type:"string"`
12750
12751	// The total working storage in bytes allocated for the gateway. If no working
12752	// storage is configured for the gateway, this field returns 0.
12753	WorkingStorageAllocatedInBytes *int64 `type:"long"`
12754
12755	// The total working storage in bytes in use by the gateway. If no working storage
12756	// is configured for the gateway, this field returns 0.
12757	WorkingStorageUsedInBytes *int64 `type:"long"`
12758}
12759
12760// String returns the string representation
12761func (s DescribeWorkingStorageOutput) String() string {
12762	return awsutil.Prettify(s)
12763}
12764
12765// GoString returns the string representation
12766func (s DescribeWorkingStorageOutput) GoString() string {
12767	return s.String()
12768}
12769
12770// SetDiskIds sets the DiskIds field's value.
12771func (s *DescribeWorkingStorageOutput) SetDiskIds(v []*string) *DescribeWorkingStorageOutput {
12772	s.DiskIds = v
12773	return s
12774}
12775
12776// SetGatewayARN sets the GatewayARN field's value.
12777func (s *DescribeWorkingStorageOutput) SetGatewayARN(v string) *DescribeWorkingStorageOutput {
12778	s.GatewayARN = &v
12779	return s
12780}
12781
12782// SetWorkingStorageAllocatedInBytes sets the WorkingStorageAllocatedInBytes field's value.
12783func (s *DescribeWorkingStorageOutput) SetWorkingStorageAllocatedInBytes(v int64) *DescribeWorkingStorageOutput {
12784	s.WorkingStorageAllocatedInBytes = &v
12785	return s
12786}
12787
12788// SetWorkingStorageUsedInBytes sets the WorkingStorageUsedInBytes field's value.
12789func (s *DescribeWorkingStorageOutput) SetWorkingStorageUsedInBytes(v int64) *DescribeWorkingStorageOutput {
12790	s.WorkingStorageUsedInBytes = &v
12791	return s
12792}
12793
12794// AttachVolumeInput
12795type DetachVolumeInput struct {
12796	_ struct{} `type:"structure"`
12797
12798	// Set to true to forcibly remove the iSCSI connection of the target volume
12799	// and detach the volume. The default is false. If this value is set to false,
12800	// you must manually disconnect the iSCSI connection from the target volume.
12801	ForceDetach *bool `type:"boolean"`
12802
12803	// The Amazon Resource Name (ARN) of the volume to detach from the gateway.
12804	//
12805	// VolumeARN is a required field
12806	VolumeARN *string `min:"50" type:"string" required:"true"`
12807}
12808
12809// String returns the string representation
12810func (s DetachVolumeInput) String() string {
12811	return awsutil.Prettify(s)
12812}
12813
12814// GoString returns the string representation
12815func (s DetachVolumeInput) GoString() string {
12816	return s.String()
12817}
12818
12819// Validate inspects the fields of the type to determine if they are valid.
12820func (s *DetachVolumeInput) Validate() error {
12821	invalidParams := request.ErrInvalidParams{Context: "DetachVolumeInput"}
12822	if s.VolumeARN == nil {
12823		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
12824	}
12825	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
12826		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
12827	}
12828
12829	if invalidParams.Len() > 0 {
12830		return invalidParams
12831	}
12832	return nil
12833}
12834
12835// SetForceDetach sets the ForceDetach field's value.
12836func (s *DetachVolumeInput) SetForceDetach(v bool) *DetachVolumeInput {
12837	s.ForceDetach = &v
12838	return s
12839}
12840
12841// SetVolumeARN sets the VolumeARN field's value.
12842func (s *DetachVolumeInput) SetVolumeARN(v string) *DetachVolumeInput {
12843	s.VolumeARN = &v
12844	return s
12845}
12846
12847// AttachVolumeOutput
12848type DetachVolumeOutput struct {
12849	_ struct{} `type:"structure"`
12850
12851	// The Amazon Resource Name (ARN) of the volume that was detached.
12852	VolumeARN *string `min:"50" type:"string"`
12853}
12854
12855// String returns the string representation
12856func (s DetachVolumeOutput) String() string {
12857	return awsutil.Prettify(s)
12858}
12859
12860// GoString returns the string representation
12861func (s DetachVolumeOutput) GoString() string {
12862	return s.String()
12863}
12864
12865// SetVolumeARN sets the VolumeARN field's value.
12866func (s *DetachVolumeOutput) SetVolumeARN(v string) *DetachVolumeOutput {
12867	s.VolumeARN = &v
12868	return s
12869}
12870
12871// Lists iSCSI information about a VTL device.
12872type DeviceiSCSIAttributes struct {
12873	_ struct{} `type:"structure"`
12874
12875	// Indicates whether mutual CHAP is enabled for the iSCSI target.
12876	ChapEnabled *bool `type:"boolean"`
12877
12878	// The network interface identifier of the VTL device.
12879	NetworkInterfaceId *string `type:"string"`
12880
12881	// The port used to communicate with iSCSI VTL device targets.
12882	NetworkInterfacePort *int64 `type:"integer"`
12883
12884	// Specifies the unique Amazon Resource Name (ARN) that encodes the iSCSI qualified
12885	// name(iqn) of a tape drive or media changer target.
12886	TargetARN *string `min:"50" type:"string"`
12887}
12888
12889// String returns the string representation
12890func (s DeviceiSCSIAttributes) String() string {
12891	return awsutil.Prettify(s)
12892}
12893
12894// GoString returns the string representation
12895func (s DeviceiSCSIAttributes) GoString() string {
12896	return s.String()
12897}
12898
12899// SetChapEnabled sets the ChapEnabled field's value.
12900func (s *DeviceiSCSIAttributes) SetChapEnabled(v bool) *DeviceiSCSIAttributes {
12901	s.ChapEnabled = &v
12902	return s
12903}
12904
12905// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
12906func (s *DeviceiSCSIAttributes) SetNetworkInterfaceId(v string) *DeviceiSCSIAttributes {
12907	s.NetworkInterfaceId = &v
12908	return s
12909}
12910
12911// SetNetworkInterfacePort sets the NetworkInterfacePort field's value.
12912func (s *DeviceiSCSIAttributes) SetNetworkInterfacePort(v int64) *DeviceiSCSIAttributes {
12913	s.NetworkInterfacePort = &v
12914	return s
12915}
12916
12917// SetTargetARN sets the TargetARN field's value.
12918func (s *DeviceiSCSIAttributes) SetTargetARN(v string) *DeviceiSCSIAttributes {
12919	s.TargetARN = &v
12920	return s
12921}
12922
12923// DisableGatewayInput
12924type DisableGatewayInput struct {
12925	_ struct{} `type:"structure"`
12926
12927	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
12928	// to return a list of gateways for your account and AWS Region.
12929	//
12930	// GatewayARN is a required field
12931	GatewayARN *string `min:"50" type:"string" required:"true"`
12932}
12933
12934// String returns the string representation
12935func (s DisableGatewayInput) String() string {
12936	return awsutil.Prettify(s)
12937}
12938
12939// GoString returns the string representation
12940func (s DisableGatewayInput) GoString() string {
12941	return s.String()
12942}
12943
12944// Validate inspects the fields of the type to determine if they are valid.
12945func (s *DisableGatewayInput) Validate() error {
12946	invalidParams := request.ErrInvalidParams{Context: "DisableGatewayInput"}
12947	if s.GatewayARN == nil {
12948		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
12949	}
12950	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
12951		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
12952	}
12953
12954	if invalidParams.Len() > 0 {
12955		return invalidParams
12956	}
12957	return nil
12958}
12959
12960// SetGatewayARN sets the GatewayARN field's value.
12961func (s *DisableGatewayInput) SetGatewayARN(v string) *DisableGatewayInput {
12962	s.GatewayARN = &v
12963	return s
12964}
12965
12966// DisableGatewayOutput
12967type DisableGatewayOutput struct {
12968	_ struct{} `type:"structure"`
12969
12970	// The unique Amazon Resource Name (ARN) of the disabled gateway.
12971	GatewayARN *string `min:"50" type:"string"`
12972}
12973
12974// String returns the string representation
12975func (s DisableGatewayOutput) String() string {
12976	return awsutil.Prettify(s)
12977}
12978
12979// GoString returns the string representation
12980func (s DisableGatewayOutput) GoString() string {
12981	return s.String()
12982}
12983
12984// SetGatewayARN sets the GatewayARN field's value.
12985func (s *DisableGatewayOutput) SetGatewayARN(v string) *DisableGatewayOutput {
12986	s.GatewayARN = &v
12987	return s
12988}
12989
12990// Represents a gateway's local disk.
12991type Disk struct {
12992	_ struct{} `type:"structure"`
12993
12994	// The iSCSI qualified name (IQN) that is defined for a disk. This field is
12995	// not included in the response if the local disk is not defined as an iSCSI
12996	// target. The format of this field is targetIqn::LUNNumber::region-volumeId.
12997	DiskAllocationResource *string `type:"string"`
12998
12999	// One of the DiskAllocationType enumeration values that identifies how a local
13000	// disk is used. Valid values: UPLOAD_BUFFER, CACHE_STORAGE
13001	DiskAllocationType *string `min:"3" type:"string"`
13002
13003	// A list of values that represents attributes of a local disk.
13004	DiskAttributeList []*string `type:"list"`
13005
13006	// The unique device ID or other distinguishing data that identifies a local
13007	// disk.
13008	DiskId *string `min:"1" type:"string"`
13009
13010	// The device node of a local disk as assigned by the virtualization environment.
13011	DiskNode *string `type:"string"`
13012
13013	// The path of a local disk in the gateway virtual machine (VM).
13014	DiskPath *string `type:"string"`
13015
13016	// The local disk size in bytes.
13017	DiskSizeInBytes *int64 `type:"long"`
13018
13019	// A value that represents the status of a local disk.
13020	DiskStatus *string `type:"string"`
13021}
13022
13023// String returns the string representation
13024func (s Disk) String() string {
13025	return awsutil.Prettify(s)
13026}
13027
13028// GoString returns the string representation
13029func (s Disk) GoString() string {
13030	return s.String()
13031}
13032
13033// SetDiskAllocationResource sets the DiskAllocationResource field's value.
13034func (s *Disk) SetDiskAllocationResource(v string) *Disk {
13035	s.DiskAllocationResource = &v
13036	return s
13037}
13038
13039// SetDiskAllocationType sets the DiskAllocationType field's value.
13040func (s *Disk) SetDiskAllocationType(v string) *Disk {
13041	s.DiskAllocationType = &v
13042	return s
13043}
13044
13045// SetDiskAttributeList sets the DiskAttributeList field's value.
13046func (s *Disk) SetDiskAttributeList(v []*string) *Disk {
13047	s.DiskAttributeList = v
13048	return s
13049}
13050
13051// SetDiskId sets the DiskId field's value.
13052func (s *Disk) SetDiskId(v string) *Disk {
13053	s.DiskId = &v
13054	return s
13055}
13056
13057// SetDiskNode sets the DiskNode field's value.
13058func (s *Disk) SetDiskNode(v string) *Disk {
13059	s.DiskNode = &v
13060	return s
13061}
13062
13063// SetDiskPath sets the DiskPath field's value.
13064func (s *Disk) SetDiskPath(v string) *Disk {
13065	s.DiskPath = &v
13066	return s
13067}
13068
13069// SetDiskSizeInBytes sets the DiskSizeInBytes field's value.
13070func (s *Disk) SetDiskSizeInBytes(v int64) *Disk {
13071	s.DiskSizeInBytes = &v
13072	return s
13073}
13074
13075// SetDiskStatus sets the DiskStatus field's value.
13076func (s *Disk) SetDiskStatus(v string) *Disk {
13077	s.DiskStatus = &v
13078	return s
13079}
13080
13081// Provides additional information about an error that was returned by the service
13082// as an or. See the errorCode and errorDetails members for more information
13083// about the error.
13084type Error struct {
13085	_ struct{} `type:"structure"`
13086
13087	// Additional information about the error.
13088	ErrorCode *string `locationName:"errorCode" type:"string" enum:"ErrorCode"`
13089
13090	// Human-readable text that provides detail about the error that occurred.
13091	ErrorDetails map[string]*string `locationName:"errorDetails" type:"map"`
13092}
13093
13094// String returns the string representation
13095func (s Error) String() string {
13096	return awsutil.Prettify(s)
13097}
13098
13099// GoString returns the string representation
13100func (s Error) GoString() string {
13101	return s.String()
13102}
13103
13104// SetErrorCode sets the ErrorCode field's value.
13105func (s *Error) SetErrorCode(v string) *Error {
13106	s.ErrorCode = &v
13107	return s
13108}
13109
13110// SetErrorDetails sets the ErrorDetails field's value.
13111func (s *Error) SetErrorDetails(v map[string]*string) *Error {
13112	s.ErrorDetails = v
13113	return s
13114}
13115
13116// Describes a file share.
13117type FileShareInfo struct {
13118	_ struct{} `type:"structure"`
13119
13120	// The Amazon Resource Name (ARN) of the file share.
13121	FileShareARN *string `min:"50" type:"string"`
13122
13123	// The ID of the file share.
13124	FileShareId *string `min:"12" type:"string"`
13125
13126	// The status of the file share. Possible values are CREATING, UPDATING, AVAILABLE
13127	// and DELETING.
13128	FileShareStatus *string `min:"3" type:"string"`
13129
13130	// The type of the file share.
13131	FileShareType *string `type:"string" enum:"FileShareType"`
13132
13133	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13134	// to return a list of gateways for your account and AWS Region.
13135	GatewayARN *string `min:"50" type:"string"`
13136}
13137
13138// String returns the string representation
13139func (s FileShareInfo) String() string {
13140	return awsutil.Prettify(s)
13141}
13142
13143// GoString returns the string representation
13144func (s FileShareInfo) GoString() string {
13145	return s.String()
13146}
13147
13148// SetFileShareARN sets the FileShareARN field's value.
13149func (s *FileShareInfo) SetFileShareARN(v string) *FileShareInfo {
13150	s.FileShareARN = &v
13151	return s
13152}
13153
13154// SetFileShareId sets the FileShareId field's value.
13155func (s *FileShareInfo) SetFileShareId(v string) *FileShareInfo {
13156	s.FileShareId = &v
13157	return s
13158}
13159
13160// SetFileShareStatus sets the FileShareStatus field's value.
13161func (s *FileShareInfo) SetFileShareStatus(v string) *FileShareInfo {
13162	s.FileShareStatus = &v
13163	return s
13164}
13165
13166// SetFileShareType sets the FileShareType field's value.
13167func (s *FileShareInfo) SetFileShareType(v string) *FileShareInfo {
13168	s.FileShareType = &v
13169	return s
13170}
13171
13172// SetGatewayARN sets the GatewayARN field's value.
13173func (s *FileShareInfo) SetGatewayARN(v string) *FileShareInfo {
13174	s.GatewayARN = &v
13175	return s
13176}
13177
13178// Describes a gateway object.
13179type GatewayInfo struct {
13180	_ struct{} `type:"structure"`
13181
13182	// The ID of the Amazon EC2 instance that was used to launch the gateway.
13183	Ec2InstanceId *string `type:"string"`
13184
13185	// The AWS Region where the Amazon EC2 instance is located.
13186	Ec2InstanceRegion *string `type:"string"`
13187
13188	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13189	// to return a list of gateways for your account and AWS Region.
13190	GatewayARN *string `min:"50" type:"string"`
13191
13192	// The unique identifier assigned to your gateway during activation. This ID
13193	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
13194	// input for other operations.
13195	GatewayId *string `min:"12" type:"string"`
13196
13197	// The name of the gateway.
13198	GatewayName *string `type:"string"`
13199
13200	// The state of the gateway.
13201	//
13202	// Valid Values: DISABLED or ACTIVE
13203	GatewayOperationalState *string `min:"2" type:"string"`
13204
13205	// The type of the gateway.
13206	GatewayType *string `min:"2" type:"string"`
13207}
13208
13209// String returns the string representation
13210func (s GatewayInfo) String() string {
13211	return awsutil.Prettify(s)
13212}
13213
13214// GoString returns the string representation
13215func (s GatewayInfo) GoString() string {
13216	return s.String()
13217}
13218
13219// SetEc2InstanceId sets the Ec2InstanceId field's value.
13220func (s *GatewayInfo) SetEc2InstanceId(v string) *GatewayInfo {
13221	s.Ec2InstanceId = &v
13222	return s
13223}
13224
13225// SetEc2InstanceRegion sets the Ec2InstanceRegion field's value.
13226func (s *GatewayInfo) SetEc2InstanceRegion(v string) *GatewayInfo {
13227	s.Ec2InstanceRegion = &v
13228	return s
13229}
13230
13231// SetGatewayARN sets the GatewayARN field's value.
13232func (s *GatewayInfo) SetGatewayARN(v string) *GatewayInfo {
13233	s.GatewayARN = &v
13234	return s
13235}
13236
13237// SetGatewayId sets the GatewayId field's value.
13238func (s *GatewayInfo) SetGatewayId(v string) *GatewayInfo {
13239	s.GatewayId = &v
13240	return s
13241}
13242
13243// SetGatewayName sets the GatewayName field's value.
13244func (s *GatewayInfo) SetGatewayName(v string) *GatewayInfo {
13245	s.GatewayName = &v
13246	return s
13247}
13248
13249// SetGatewayOperationalState sets the GatewayOperationalState field's value.
13250func (s *GatewayInfo) SetGatewayOperationalState(v string) *GatewayInfo {
13251	s.GatewayOperationalState = &v
13252	return s
13253}
13254
13255// SetGatewayType sets the GatewayType field's value.
13256func (s *GatewayInfo) SetGatewayType(v string) *GatewayInfo {
13257	s.GatewayType = &v
13258	return s
13259}
13260
13261// JoinDomainInput
13262type JoinDomainInput struct {
13263	_ struct{} `type:"structure"`
13264
13265	// List of IPv4 addresses, NetBIOS names, or host names of your domain server.
13266	// If you need to specify the port number include it after the colon (“:”).
13267	// For example, mydc.mydomain.com:389.
13268	DomainControllers []*string `type:"list"`
13269
13270	// The name of the domain that you want the gateway to join.
13271	//
13272	// DomainName is a required field
13273	DomainName *string `min:"1" type:"string" required:"true"`
13274
13275	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13276	// to return a list of gateways for your account and AWS Region.
13277	//
13278	// GatewayARN is a required field
13279	GatewayARN *string `min:"50" type:"string" required:"true"`
13280
13281	// The organizational unit (OU) is a container in an Active Directory that can
13282	// hold users, groups, computers, and other OUs and this parameter specifies
13283	// the OU that the gateway will join within the AD domain.
13284	OrganizationalUnit *string `min:"1" type:"string"`
13285
13286	// Sets the password of the user who has permission to add the gateway to the
13287	// Active Directory domain.
13288	//
13289	// Password is a required field
13290	Password *string `min:"1" type:"string" required:"true" sensitive:"true"`
13291
13292	// Specifies the time in seconds, in which the JoinDomain operation must complete.
13293	// The default is 20 seconds.
13294	TimeoutInSeconds *int64 `type:"integer"`
13295
13296	// Sets the user name of user who has permission to add the gateway to the Active
13297	// Directory domain. The domain user account should be enabled to join computers
13298	// to the domain. For example, you can use the domain administrator account
13299	// or an account with delegated permissions to join computers to the domain.
13300	//
13301	// UserName is a required field
13302	UserName *string `min:"1" type:"string" required:"true"`
13303}
13304
13305// String returns the string representation
13306func (s JoinDomainInput) String() string {
13307	return awsutil.Prettify(s)
13308}
13309
13310// GoString returns the string representation
13311func (s JoinDomainInput) GoString() string {
13312	return s.String()
13313}
13314
13315// Validate inspects the fields of the type to determine if they are valid.
13316func (s *JoinDomainInput) Validate() error {
13317	invalidParams := request.ErrInvalidParams{Context: "JoinDomainInput"}
13318	if s.DomainName == nil {
13319		invalidParams.Add(request.NewErrParamRequired("DomainName"))
13320	}
13321	if s.DomainName != nil && len(*s.DomainName) < 1 {
13322		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
13323	}
13324	if s.GatewayARN == nil {
13325		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13326	}
13327	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13328		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13329	}
13330	if s.OrganizationalUnit != nil && len(*s.OrganizationalUnit) < 1 {
13331		invalidParams.Add(request.NewErrParamMinLen("OrganizationalUnit", 1))
13332	}
13333	if s.Password == nil {
13334		invalidParams.Add(request.NewErrParamRequired("Password"))
13335	}
13336	if s.Password != nil && len(*s.Password) < 1 {
13337		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
13338	}
13339	if s.UserName == nil {
13340		invalidParams.Add(request.NewErrParamRequired("UserName"))
13341	}
13342	if s.UserName != nil && len(*s.UserName) < 1 {
13343		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
13344	}
13345
13346	if invalidParams.Len() > 0 {
13347		return invalidParams
13348	}
13349	return nil
13350}
13351
13352// SetDomainControllers sets the DomainControllers field's value.
13353func (s *JoinDomainInput) SetDomainControllers(v []*string) *JoinDomainInput {
13354	s.DomainControllers = v
13355	return s
13356}
13357
13358// SetDomainName sets the DomainName field's value.
13359func (s *JoinDomainInput) SetDomainName(v string) *JoinDomainInput {
13360	s.DomainName = &v
13361	return s
13362}
13363
13364// SetGatewayARN sets the GatewayARN field's value.
13365func (s *JoinDomainInput) SetGatewayARN(v string) *JoinDomainInput {
13366	s.GatewayARN = &v
13367	return s
13368}
13369
13370// SetOrganizationalUnit sets the OrganizationalUnit field's value.
13371func (s *JoinDomainInput) SetOrganizationalUnit(v string) *JoinDomainInput {
13372	s.OrganizationalUnit = &v
13373	return s
13374}
13375
13376// SetPassword sets the Password field's value.
13377func (s *JoinDomainInput) SetPassword(v string) *JoinDomainInput {
13378	s.Password = &v
13379	return s
13380}
13381
13382// SetTimeoutInSeconds sets the TimeoutInSeconds field's value.
13383func (s *JoinDomainInput) SetTimeoutInSeconds(v int64) *JoinDomainInput {
13384	s.TimeoutInSeconds = &v
13385	return s
13386}
13387
13388// SetUserName sets the UserName field's value.
13389func (s *JoinDomainInput) SetUserName(v string) *JoinDomainInput {
13390	s.UserName = &v
13391	return s
13392}
13393
13394// JoinDomainOutput
13395type JoinDomainOutput struct {
13396	_ struct{} `type:"structure"`
13397
13398	// Indicates the status of the gateway as a member of the Active Directory domain.
13399	//
13400	//    * ACCESS_DENIED: Indicates that the JoinDomain operation failed due to
13401	//    an authentication error.
13402	//
13403	//    * DETACHED: Indicates that gateway is not joined to a domain.
13404	//
13405	//    * JOINED: Indicates that the gateway has successfully joined a domain.
13406	//
13407	//    * JOINING: Indicates that a JoinDomain operation is in progress.
13408	//
13409	//    * NETWORK_ERROR: Indicates that JoinDomain operation failed due to a network
13410	//    or connectivity error.
13411	//
13412	//    * TIMEOUT: Indicates that the JoinDomain operation failed because the
13413	//    operation didn't complete within the allotted time.
13414	//
13415	//    * UNKNOWN_ERROR: Indicates that the JoinDomain operation failed due to
13416	//    another type of error.
13417	ActiveDirectoryStatus *string `type:"string" enum:"ActiveDirectoryStatus"`
13418
13419	// The unique Amazon Resource Name (ARN) of the gateway that joined the domain.
13420	GatewayARN *string `min:"50" type:"string"`
13421}
13422
13423// String returns the string representation
13424func (s JoinDomainOutput) String() string {
13425	return awsutil.Prettify(s)
13426}
13427
13428// GoString returns the string representation
13429func (s JoinDomainOutput) GoString() string {
13430	return s.String()
13431}
13432
13433// SetActiveDirectoryStatus sets the ActiveDirectoryStatus field's value.
13434func (s *JoinDomainOutput) SetActiveDirectoryStatus(v string) *JoinDomainOutput {
13435	s.ActiveDirectoryStatus = &v
13436	return s
13437}
13438
13439// SetGatewayARN sets the GatewayARN field's value.
13440func (s *JoinDomainOutput) SetGatewayARN(v string) *JoinDomainOutput {
13441	s.GatewayARN = &v
13442	return s
13443}
13444
13445// ListFileShareInput
13446type ListFileSharesInput struct {
13447	_ struct{} `type:"structure"`
13448
13449	// The Amazon resource Name (ARN) of the gateway whose file shares you want
13450	// to list. If this field is not present, all file shares under your account
13451	// are listed.
13452	GatewayARN *string `min:"50" type:"string"`
13453
13454	// The maximum number of file shares to return in the response. The value must
13455	// be an integer with a value greater than zero. Optional.
13456	Limit *int64 `min:"1" type:"integer"`
13457
13458	// Opaque pagination token returned from a previous ListFileShares operation.
13459	// If present, Marker specifies where to continue the list from after a previous
13460	// call to ListFileShares. Optional.
13461	Marker *string `min:"1" type:"string"`
13462}
13463
13464// String returns the string representation
13465func (s ListFileSharesInput) String() string {
13466	return awsutil.Prettify(s)
13467}
13468
13469// GoString returns the string representation
13470func (s ListFileSharesInput) GoString() string {
13471	return s.String()
13472}
13473
13474// Validate inspects the fields of the type to determine if they are valid.
13475func (s *ListFileSharesInput) Validate() error {
13476	invalidParams := request.ErrInvalidParams{Context: "ListFileSharesInput"}
13477	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13478		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13479	}
13480	if s.Limit != nil && *s.Limit < 1 {
13481		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
13482	}
13483	if s.Marker != nil && len(*s.Marker) < 1 {
13484		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
13485	}
13486
13487	if invalidParams.Len() > 0 {
13488		return invalidParams
13489	}
13490	return nil
13491}
13492
13493// SetGatewayARN sets the GatewayARN field's value.
13494func (s *ListFileSharesInput) SetGatewayARN(v string) *ListFileSharesInput {
13495	s.GatewayARN = &v
13496	return s
13497}
13498
13499// SetLimit sets the Limit field's value.
13500func (s *ListFileSharesInput) SetLimit(v int64) *ListFileSharesInput {
13501	s.Limit = &v
13502	return s
13503}
13504
13505// SetMarker sets the Marker field's value.
13506func (s *ListFileSharesInput) SetMarker(v string) *ListFileSharesInput {
13507	s.Marker = &v
13508	return s
13509}
13510
13511// ListFileShareOutput
13512type ListFileSharesOutput struct {
13513	_ struct{} `type:"structure"`
13514
13515	// An array of information about the file gateway's file shares.
13516	FileShareInfoList []*FileShareInfo `type:"list"`
13517
13518	// If the request includes Marker, the response returns that value in this field.
13519	Marker *string `min:"1" type:"string"`
13520
13521	// If a value is present, there are more file shares to return. In a subsequent
13522	// request, use NextMarker as the value for Marker to retrieve the next set
13523	// of file shares.
13524	NextMarker *string `min:"1" type:"string"`
13525}
13526
13527// String returns the string representation
13528func (s ListFileSharesOutput) String() string {
13529	return awsutil.Prettify(s)
13530}
13531
13532// GoString returns the string representation
13533func (s ListFileSharesOutput) GoString() string {
13534	return s.String()
13535}
13536
13537// SetFileShareInfoList sets the FileShareInfoList field's value.
13538func (s *ListFileSharesOutput) SetFileShareInfoList(v []*FileShareInfo) *ListFileSharesOutput {
13539	s.FileShareInfoList = v
13540	return s
13541}
13542
13543// SetMarker sets the Marker field's value.
13544func (s *ListFileSharesOutput) SetMarker(v string) *ListFileSharesOutput {
13545	s.Marker = &v
13546	return s
13547}
13548
13549// SetNextMarker sets the NextMarker field's value.
13550func (s *ListFileSharesOutput) SetNextMarker(v string) *ListFileSharesOutput {
13551	s.NextMarker = &v
13552	return s
13553}
13554
13555// A JSON object containing zero or more of the following fields:
13556//
13557//    * ListGatewaysInput$Limit
13558//
13559//    * ListGatewaysInput$Marker
13560type ListGatewaysInput struct {
13561	_ struct{} `type:"structure"`
13562
13563	// Specifies that the list of gateways returned be limited to the specified
13564	// number of items.
13565	Limit *int64 `min:"1" type:"integer"`
13566
13567	// An opaque string that indicates the position at which to begin the returned
13568	// list of gateways.
13569	Marker *string `min:"1" type:"string"`
13570}
13571
13572// String returns the string representation
13573func (s ListGatewaysInput) String() string {
13574	return awsutil.Prettify(s)
13575}
13576
13577// GoString returns the string representation
13578func (s ListGatewaysInput) GoString() string {
13579	return s.String()
13580}
13581
13582// Validate inspects the fields of the type to determine if they are valid.
13583func (s *ListGatewaysInput) Validate() error {
13584	invalidParams := request.ErrInvalidParams{Context: "ListGatewaysInput"}
13585	if s.Limit != nil && *s.Limit < 1 {
13586		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
13587	}
13588	if s.Marker != nil && len(*s.Marker) < 1 {
13589		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
13590	}
13591
13592	if invalidParams.Len() > 0 {
13593		return invalidParams
13594	}
13595	return nil
13596}
13597
13598// SetLimit sets the Limit field's value.
13599func (s *ListGatewaysInput) SetLimit(v int64) *ListGatewaysInput {
13600	s.Limit = &v
13601	return s
13602}
13603
13604// SetMarker sets the Marker field's value.
13605func (s *ListGatewaysInput) SetMarker(v string) *ListGatewaysInput {
13606	s.Marker = &v
13607	return s
13608}
13609
13610type ListGatewaysOutput struct {
13611	_ struct{} `type:"structure"`
13612
13613	// An array of GatewayInfo objects.
13614	Gateways []*GatewayInfo `type:"list"`
13615
13616	// Use the marker in your next request to fetch the next set of gateways in
13617	// the list. If there are no more gateways to list, this field does not appear
13618	// in the response.
13619	Marker *string `min:"1" type:"string"`
13620}
13621
13622// String returns the string representation
13623func (s ListGatewaysOutput) String() string {
13624	return awsutil.Prettify(s)
13625}
13626
13627// GoString returns the string representation
13628func (s ListGatewaysOutput) GoString() string {
13629	return s.String()
13630}
13631
13632// SetGateways sets the Gateways field's value.
13633func (s *ListGatewaysOutput) SetGateways(v []*GatewayInfo) *ListGatewaysOutput {
13634	s.Gateways = v
13635	return s
13636}
13637
13638// SetMarker sets the Marker field's value.
13639func (s *ListGatewaysOutput) SetMarker(v string) *ListGatewaysOutput {
13640	s.Marker = &v
13641	return s
13642}
13643
13644// A JSON object containing the of the gateway.
13645type ListLocalDisksInput struct {
13646	_ struct{} `type:"structure"`
13647
13648	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13649	// to return a list of gateways for your account and AWS Region.
13650	//
13651	// GatewayARN is a required field
13652	GatewayARN *string `min:"50" type:"string" required:"true"`
13653}
13654
13655// String returns the string representation
13656func (s ListLocalDisksInput) String() string {
13657	return awsutil.Prettify(s)
13658}
13659
13660// GoString returns the string representation
13661func (s ListLocalDisksInput) GoString() string {
13662	return s.String()
13663}
13664
13665// Validate inspects the fields of the type to determine if they are valid.
13666func (s *ListLocalDisksInput) Validate() error {
13667	invalidParams := request.ErrInvalidParams{Context: "ListLocalDisksInput"}
13668	if s.GatewayARN == nil {
13669		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
13670	}
13671	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
13672		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
13673	}
13674
13675	if invalidParams.Len() > 0 {
13676		return invalidParams
13677	}
13678	return nil
13679}
13680
13681// SetGatewayARN sets the GatewayARN field's value.
13682func (s *ListLocalDisksInput) SetGatewayARN(v string) *ListLocalDisksInput {
13683	s.GatewayARN = &v
13684	return s
13685}
13686
13687type ListLocalDisksOutput struct {
13688	_ struct{} `type:"structure"`
13689
13690	// A JSON object containing the following fields:
13691	//
13692	//    * ListLocalDisksOutput$Disks
13693	Disks []*Disk `type:"list"`
13694
13695	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
13696	// to return a list of gateways for your account and AWS Region.
13697	GatewayARN *string `min:"50" type:"string"`
13698}
13699
13700// String returns the string representation
13701func (s ListLocalDisksOutput) String() string {
13702	return awsutil.Prettify(s)
13703}
13704
13705// GoString returns the string representation
13706func (s ListLocalDisksOutput) GoString() string {
13707	return s.String()
13708}
13709
13710// SetDisks sets the Disks field's value.
13711func (s *ListLocalDisksOutput) SetDisks(v []*Disk) *ListLocalDisksOutput {
13712	s.Disks = v
13713	return s
13714}
13715
13716// SetGatewayARN sets the GatewayARN field's value.
13717func (s *ListLocalDisksOutput) SetGatewayARN(v string) *ListLocalDisksOutput {
13718	s.GatewayARN = &v
13719	return s
13720}
13721
13722// ListTagsForResourceInput
13723type ListTagsForResourceInput struct {
13724	_ struct{} `type:"structure"`
13725
13726	// Specifies that the list of tags returned be limited to the specified number
13727	// of items.
13728	Limit *int64 `min:"1" type:"integer"`
13729
13730	// An opaque string that indicates the position at which to begin returning
13731	// the list of tags.
13732	Marker *string `min:"1" type:"string"`
13733
13734	// The Amazon Resource Name (ARN) of the resource for which you want to list
13735	// tags.
13736	//
13737	// ResourceARN is a required field
13738	ResourceARN *string `min:"50" type:"string" required:"true"`
13739}
13740
13741// String returns the string representation
13742func (s ListTagsForResourceInput) String() string {
13743	return awsutil.Prettify(s)
13744}
13745
13746// GoString returns the string representation
13747func (s ListTagsForResourceInput) GoString() string {
13748	return s.String()
13749}
13750
13751// Validate inspects the fields of the type to determine if they are valid.
13752func (s *ListTagsForResourceInput) Validate() error {
13753	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
13754	if s.Limit != nil && *s.Limit < 1 {
13755		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
13756	}
13757	if s.Marker != nil && len(*s.Marker) < 1 {
13758		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
13759	}
13760	if s.ResourceARN == nil {
13761		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
13762	}
13763	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
13764		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
13765	}
13766
13767	if invalidParams.Len() > 0 {
13768		return invalidParams
13769	}
13770	return nil
13771}
13772
13773// SetLimit sets the Limit field's value.
13774func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
13775	s.Limit = &v
13776	return s
13777}
13778
13779// SetMarker sets the Marker field's value.
13780func (s *ListTagsForResourceInput) SetMarker(v string) *ListTagsForResourceInput {
13781	s.Marker = &v
13782	return s
13783}
13784
13785// SetResourceARN sets the ResourceARN field's value.
13786func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
13787	s.ResourceARN = &v
13788	return s
13789}
13790
13791// ListTagsForResourceOutput
13792type ListTagsForResourceOutput struct {
13793	_ struct{} `type:"structure"`
13794
13795	// An opaque string that indicates the position at which to stop returning the
13796	// list of tags.
13797	Marker *string `min:"1" type:"string"`
13798
13799	// he Amazon Resource Name (ARN) of the resource for which you want to list
13800	// tags.
13801	ResourceARN *string `min:"50" type:"string"`
13802
13803	// An array that contains the tags for the specified resource.
13804	Tags []*Tag `type:"list"`
13805}
13806
13807// String returns the string representation
13808func (s ListTagsForResourceOutput) String() string {
13809	return awsutil.Prettify(s)
13810}
13811
13812// GoString returns the string representation
13813func (s ListTagsForResourceOutput) GoString() string {
13814	return s.String()
13815}
13816
13817// SetMarker sets the Marker field's value.
13818func (s *ListTagsForResourceOutput) SetMarker(v string) *ListTagsForResourceOutput {
13819	s.Marker = &v
13820	return s
13821}
13822
13823// SetResourceARN sets the ResourceARN field's value.
13824func (s *ListTagsForResourceOutput) SetResourceARN(v string) *ListTagsForResourceOutput {
13825	s.ResourceARN = &v
13826	return s
13827}
13828
13829// SetTags sets the Tags field's value.
13830func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
13831	s.Tags = v
13832	return s
13833}
13834
13835// A JSON object that contains one or more of the following fields:
13836//
13837//    * ListTapesInput$Limit
13838//
13839//    * ListTapesInput$Marker
13840//
13841//    * ListTapesInput$TapeARNs
13842type ListTapesInput struct {
13843	_ struct{} `type:"structure"`
13844
13845	// An optional number limit for the tapes in the list returned by this call.
13846	Limit *int64 `min:"1" type:"integer"`
13847
13848	// A string that indicates the position at which to begin the returned list
13849	// of tapes.
13850	Marker *string `min:"1" type:"string"`
13851
13852	// The Amazon Resource Name (ARN) of each of the tapes you want to list. If
13853	// you don't specify a tape ARN, the response lists all tapes in both your VTL
13854	// and VTS.
13855	TapeARNs []*string `type:"list"`
13856}
13857
13858// String returns the string representation
13859func (s ListTapesInput) String() string {
13860	return awsutil.Prettify(s)
13861}
13862
13863// GoString returns the string representation
13864func (s ListTapesInput) GoString() string {
13865	return s.String()
13866}
13867
13868// Validate inspects the fields of the type to determine if they are valid.
13869func (s *ListTapesInput) Validate() error {
13870	invalidParams := request.ErrInvalidParams{Context: "ListTapesInput"}
13871	if s.Limit != nil && *s.Limit < 1 {
13872		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
13873	}
13874	if s.Marker != nil && len(*s.Marker) < 1 {
13875		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
13876	}
13877
13878	if invalidParams.Len() > 0 {
13879		return invalidParams
13880	}
13881	return nil
13882}
13883
13884// SetLimit sets the Limit field's value.
13885func (s *ListTapesInput) SetLimit(v int64) *ListTapesInput {
13886	s.Limit = &v
13887	return s
13888}
13889
13890// SetMarker sets the Marker field's value.
13891func (s *ListTapesInput) SetMarker(v string) *ListTapesInput {
13892	s.Marker = &v
13893	return s
13894}
13895
13896// SetTapeARNs sets the TapeARNs field's value.
13897func (s *ListTapesInput) SetTapeARNs(v []*string) *ListTapesInput {
13898	s.TapeARNs = v
13899	return s
13900}
13901
13902// A JSON object containing the following fields:
13903//
13904//    * ListTapesOutput$Marker
13905//
13906//    * ListTapesOutput$VolumeInfos
13907type ListTapesOutput struct {
13908	_ struct{} `type:"structure"`
13909
13910	// A string that indicates the position at which to begin returning the next
13911	// list of tapes. Use the marker in your next request to continue pagination
13912	// of tapes. If there are no more tapes to list, this element does not appear
13913	// in the response body.
13914	Marker *string `min:"1" type:"string"`
13915
13916	// An array of TapeInfo objects, where each object describes an a single tape.
13917	// If there not tapes in the tape library or VTS, then the TapeInfos is an empty
13918	// array.
13919	TapeInfos []*TapeInfo `type:"list"`
13920}
13921
13922// String returns the string representation
13923func (s ListTapesOutput) String() string {
13924	return awsutil.Prettify(s)
13925}
13926
13927// GoString returns the string representation
13928func (s ListTapesOutput) GoString() string {
13929	return s.String()
13930}
13931
13932// SetMarker sets the Marker field's value.
13933func (s *ListTapesOutput) SetMarker(v string) *ListTapesOutput {
13934	s.Marker = &v
13935	return s
13936}
13937
13938// SetTapeInfos sets the TapeInfos field's value.
13939func (s *ListTapesOutput) SetTapeInfos(v []*TapeInfo) *ListTapesOutput {
13940	s.TapeInfos = v
13941	return s
13942}
13943
13944// ListVolumeInitiatorsInput
13945type ListVolumeInitiatorsInput struct {
13946	_ struct{} `type:"structure"`
13947
13948	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
13949	// to return a list of gateway volumes for the gateway.
13950	//
13951	// VolumeARN is a required field
13952	VolumeARN *string `min:"50" type:"string" required:"true"`
13953}
13954
13955// String returns the string representation
13956func (s ListVolumeInitiatorsInput) String() string {
13957	return awsutil.Prettify(s)
13958}
13959
13960// GoString returns the string representation
13961func (s ListVolumeInitiatorsInput) GoString() string {
13962	return s.String()
13963}
13964
13965// Validate inspects the fields of the type to determine if they are valid.
13966func (s *ListVolumeInitiatorsInput) Validate() error {
13967	invalidParams := request.ErrInvalidParams{Context: "ListVolumeInitiatorsInput"}
13968	if s.VolumeARN == nil {
13969		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
13970	}
13971	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
13972		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
13973	}
13974
13975	if invalidParams.Len() > 0 {
13976		return invalidParams
13977	}
13978	return nil
13979}
13980
13981// SetVolumeARN sets the VolumeARN field's value.
13982func (s *ListVolumeInitiatorsInput) SetVolumeARN(v string) *ListVolumeInitiatorsInput {
13983	s.VolumeARN = &v
13984	return s
13985}
13986
13987// ListVolumeInitiatorsOutput
13988type ListVolumeInitiatorsOutput struct {
13989	_ struct{} `type:"structure"`
13990
13991	// The host names and port numbers of all iSCSI initiators that are connected
13992	// to the gateway.
13993	Initiators []*string `type:"list"`
13994}
13995
13996// String returns the string representation
13997func (s ListVolumeInitiatorsOutput) String() string {
13998	return awsutil.Prettify(s)
13999}
14000
14001// GoString returns the string representation
14002func (s ListVolumeInitiatorsOutput) GoString() string {
14003	return s.String()
14004}
14005
14006// SetInitiators sets the Initiators field's value.
14007func (s *ListVolumeInitiatorsOutput) SetInitiators(v []*string) *ListVolumeInitiatorsOutput {
14008	s.Initiators = v
14009	return s
14010}
14011
14012type ListVolumeRecoveryPointsInput struct {
14013	_ struct{} `type:"structure"`
14014
14015	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14016	// to return a list of gateways for your account and AWS Region.
14017	//
14018	// GatewayARN is a required field
14019	GatewayARN *string `min:"50" type:"string" required:"true"`
14020}
14021
14022// String returns the string representation
14023func (s ListVolumeRecoveryPointsInput) String() string {
14024	return awsutil.Prettify(s)
14025}
14026
14027// GoString returns the string representation
14028func (s ListVolumeRecoveryPointsInput) GoString() string {
14029	return s.String()
14030}
14031
14032// Validate inspects the fields of the type to determine if they are valid.
14033func (s *ListVolumeRecoveryPointsInput) Validate() error {
14034	invalidParams := request.ErrInvalidParams{Context: "ListVolumeRecoveryPointsInput"}
14035	if s.GatewayARN == nil {
14036		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14037	}
14038	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14039		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14040	}
14041
14042	if invalidParams.Len() > 0 {
14043		return invalidParams
14044	}
14045	return nil
14046}
14047
14048// SetGatewayARN sets the GatewayARN field's value.
14049func (s *ListVolumeRecoveryPointsInput) SetGatewayARN(v string) *ListVolumeRecoveryPointsInput {
14050	s.GatewayARN = &v
14051	return s
14052}
14053
14054type ListVolumeRecoveryPointsOutput struct {
14055	_ struct{} `type:"structure"`
14056
14057	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14058	// to return a list of gateways for your account and AWS Region.
14059	GatewayARN *string `min:"50" type:"string"`
14060
14061	// An array of VolumeRecoveryPointInfo objects.
14062	VolumeRecoveryPointInfos []*VolumeRecoveryPointInfo `type:"list"`
14063}
14064
14065// String returns the string representation
14066func (s ListVolumeRecoveryPointsOutput) String() string {
14067	return awsutil.Prettify(s)
14068}
14069
14070// GoString returns the string representation
14071func (s ListVolumeRecoveryPointsOutput) GoString() string {
14072	return s.String()
14073}
14074
14075// SetGatewayARN sets the GatewayARN field's value.
14076func (s *ListVolumeRecoveryPointsOutput) SetGatewayARN(v string) *ListVolumeRecoveryPointsOutput {
14077	s.GatewayARN = &v
14078	return s
14079}
14080
14081// SetVolumeRecoveryPointInfos sets the VolumeRecoveryPointInfos field's value.
14082func (s *ListVolumeRecoveryPointsOutput) SetVolumeRecoveryPointInfos(v []*VolumeRecoveryPointInfo) *ListVolumeRecoveryPointsOutput {
14083	s.VolumeRecoveryPointInfos = v
14084	return s
14085}
14086
14087// A JSON object that contains one or more of the following fields:
14088//
14089//    * ListVolumesInput$Limit
14090//
14091//    * ListVolumesInput$Marker
14092type ListVolumesInput struct {
14093	_ struct{} `type:"structure"`
14094
14095	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14096	// to return a list of gateways for your account and AWS Region.
14097	GatewayARN *string `min:"50" type:"string"`
14098
14099	// Specifies that the list of volumes returned be limited to the specified number
14100	// of items.
14101	Limit *int64 `min:"1" type:"integer"`
14102
14103	// A string that indicates the position at which to begin the returned list
14104	// of volumes. Obtain the marker from the response of a previous List iSCSI
14105	// Volumes request.
14106	Marker *string `min:"1" type:"string"`
14107}
14108
14109// String returns the string representation
14110func (s ListVolumesInput) String() string {
14111	return awsutil.Prettify(s)
14112}
14113
14114// GoString returns the string representation
14115func (s ListVolumesInput) GoString() string {
14116	return s.String()
14117}
14118
14119// Validate inspects the fields of the type to determine if they are valid.
14120func (s *ListVolumesInput) Validate() error {
14121	invalidParams := request.ErrInvalidParams{Context: "ListVolumesInput"}
14122	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14123		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14124	}
14125	if s.Limit != nil && *s.Limit < 1 {
14126		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
14127	}
14128	if s.Marker != nil && len(*s.Marker) < 1 {
14129		invalidParams.Add(request.NewErrParamMinLen("Marker", 1))
14130	}
14131
14132	if invalidParams.Len() > 0 {
14133		return invalidParams
14134	}
14135	return nil
14136}
14137
14138// SetGatewayARN sets the GatewayARN field's value.
14139func (s *ListVolumesInput) SetGatewayARN(v string) *ListVolumesInput {
14140	s.GatewayARN = &v
14141	return s
14142}
14143
14144// SetLimit sets the Limit field's value.
14145func (s *ListVolumesInput) SetLimit(v int64) *ListVolumesInput {
14146	s.Limit = &v
14147	return s
14148}
14149
14150// SetMarker sets the Marker field's value.
14151func (s *ListVolumesInput) SetMarker(v string) *ListVolumesInput {
14152	s.Marker = &v
14153	return s
14154}
14155
14156// A JSON object containing the following fields:
14157//
14158//    * ListVolumesOutput$Marker
14159//
14160//    * ListVolumesOutput$VolumeInfos
14161type ListVolumesOutput struct {
14162	_ struct{} `type:"structure"`
14163
14164	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14165	// to return a list of gateways for your account and AWS Region.
14166	GatewayARN *string `min:"50" type:"string"`
14167
14168	// Use the marker in your next request to continue pagination of iSCSI volumes.
14169	// If there are no more volumes to list, this field does not appear in the response
14170	// body.
14171	Marker *string `min:"1" type:"string"`
14172
14173	// An array of VolumeInfo objects, where each object describes an iSCSI volume.
14174	// If no volumes are defined for the gateway, then VolumeInfos is an empty array
14175	// "[]".
14176	VolumeInfos []*VolumeInfo `type:"list"`
14177}
14178
14179// String returns the string representation
14180func (s ListVolumesOutput) String() string {
14181	return awsutil.Prettify(s)
14182}
14183
14184// GoString returns the string representation
14185func (s ListVolumesOutput) GoString() string {
14186	return s.String()
14187}
14188
14189// SetGatewayARN sets the GatewayARN field's value.
14190func (s *ListVolumesOutput) SetGatewayARN(v string) *ListVolumesOutput {
14191	s.GatewayARN = &v
14192	return s
14193}
14194
14195// SetMarker sets the Marker field's value.
14196func (s *ListVolumesOutput) SetMarker(v string) *ListVolumesOutput {
14197	s.Marker = &v
14198	return s
14199}
14200
14201// SetVolumeInfos sets the VolumeInfos field's value.
14202func (s *ListVolumesOutput) SetVolumeInfos(v []*VolumeInfo) *ListVolumesOutput {
14203	s.VolumeInfos = v
14204	return s
14205}
14206
14207// Describes Network File System (NFS) file share default values. Files and
14208// folders stored as Amazon S3 objects in S3 buckets don't, by default, have
14209// Unix file permissions assigned to them. Upon discovery in an S3 bucket by
14210// Storage Gateway, the S3 objects that represent files and folders are assigned
14211// these default Unix permissions. This operation is only supported for file
14212// gateways.
14213type NFSFileShareDefaults struct {
14214	_ struct{} `type:"structure"`
14215
14216	// The Unix directory mode in the form "nnnn". For example, "0666" represents
14217	// the default access mode for all directories inside the file share. The default
14218	// value is 0777.
14219	DirectoryMode *string `min:"1" type:"string"`
14220
14221	// The Unix file mode in the form "nnnn". For example, "0666" represents the
14222	// default file mode inside the file share. The default value is 0666.
14223	FileMode *string `min:"1" type:"string"`
14224
14225	// The default group ID for the file share (unless the files have another group
14226	// ID specified). The default value is nfsnobody.
14227	GroupId *int64 `type:"long"`
14228
14229	// The default owner ID for files in the file share (unless the files have another
14230	// owner ID specified). The default value is nfsnobody.
14231	OwnerId *int64 `type:"long"`
14232}
14233
14234// String returns the string representation
14235func (s NFSFileShareDefaults) String() string {
14236	return awsutil.Prettify(s)
14237}
14238
14239// GoString returns the string representation
14240func (s NFSFileShareDefaults) GoString() string {
14241	return s.String()
14242}
14243
14244// Validate inspects the fields of the type to determine if they are valid.
14245func (s *NFSFileShareDefaults) Validate() error {
14246	invalidParams := request.ErrInvalidParams{Context: "NFSFileShareDefaults"}
14247	if s.DirectoryMode != nil && len(*s.DirectoryMode) < 1 {
14248		invalidParams.Add(request.NewErrParamMinLen("DirectoryMode", 1))
14249	}
14250	if s.FileMode != nil && len(*s.FileMode) < 1 {
14251		invalidParams.Add(request.NewErrParamMinLen("FileMode", 1))
14252	}
14253
14254	if invalidParams.Len() > 0 {
14255		return invalidParams
14256	}
14257	return nil
14258}
14259
14260// SetDirectoryMode sets the DirectoryMode field's value.
14261func (s *NFSFileShareDefaults) SetDirectoryMode(v string) *NFSFileShareDefaults {
14262	s.DirectoryMode = &v
14263	return s
14264}
14265
14266// SetFileMode sets the FileMode field's value.
14267func (s *NFSFileShareDefaults) SetFileMode(v string) *NFSFileShareDefaults {
14268	s.FileMode = &v
14269	return s
14270}
14271
14272// SetGroupId sets the GroupId field's value.
14273func (s *NFSFileShareDefaults) SetGroupId(v int64) *NFSFileShareDefaults {
14274	s.GroupId = &v
14275	return s
14276}
14277
14278// SetOwnerId sets the OwnerId field's value.
14279func (s *NFSFileShareDefaults) SetOwnerId(v int64) *NFSFileShareDefaults {
14280	s.OwnerId = &v
14281	return s
14282}
14283
14284// The Unix file permissions and ownership information assigned, by default,
14285// to native S3 objects when file gateway discovers them in S3 buckets. This
14286// operation is only supported in file gateways.
14287type NFSFileShareInfo struct {
14288	_ struct{} `type:"structure"`
14289
14290	// The list of clients that are allowed to access the file gateway. The list
14291	// must contain either valid IP addresses or valid CIDR blocks.
14292	ClientList []*string `min:"1" type:"list"`
14293
14294	// The default storage class for objects put into an Amazon S3 bucket by the
14295	// file gateway. Possible values are S3_STANDARD, S3_STANDARD_IA, or S3_ONEZONE_IA.
14296	// If this field is not populated, the default value S3_STANDARD is used. Optional.
14297	DefaultStorageClass *string `min:"5" type:"string"`
14298
14299	// The Amazon Resource Name (ARN) of the file share.
14300	FileShareARN *string `min:"50" type:"string"`
14301
14302	// The ID of the file share.
14303	FileShareId *string `min:"12" type:"string"`
14304
14305	// The status of the file share. Possible values are CREATING, UPDATING, AVAILABLE
14306	// and DELETING.
14307	FileShareStatus *string `min:"3" type:"string"`
14308
14309	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14310	// to return a list of gateways for your account and AWS Region.
14311	GatewayARN *string `min:"50" type:"string"`
14312
14313	// A value that enables guessing of the MIME type for uploaded objects based
14314	// on file extensions. Set this value to true to enable MIME type guessing,
14315	// and otherwise to false. The default value is true.
14316	GuessMIMETypeEnabled *bool `type:"boolean"`
14317
14318	// True to use Amazon S3 server side encryption with your own AWS KMS key, or
14319	// false to use a key managed by Amazon S3. Optional.
14320	KMSEncrypted *bool `type:"boolean"`
14321
14322	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
14323	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
14324	KMSKey *string `min:"7" type:"string"`
14325
14326	// The ARN of the backend storage used for storing file data.
14327	LocationARN *string `min:"16" type:"string"`
14328
14329	// Describes Network File System (NFS) file share default values. Files and
14330	// folders stored as Amazon S3 objects in S3 buckets don't, by default, have
14331	// Unix file permissions assigned to them. Upon discovery in an S3 bucket by
14332	// Storage Gateway, the S3 objects that represent files and folders are assigned
14333	// these default Unix permissions. This operation is only supported for file
14334	// gateways.
14335	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
14336
14337	// A value that sets the access control list permission for objects in the S3
14338	// bucket that a file gateway puts objects into. The default value is "private".
14339	ObjectACL *string `type:"string" enum:"ObjectACL"`
14340
14341	// The file share path used by the NFS client to identify the mount point.
14342	Path *string `type:"string"`
14343
14344	// A value that sets the write status of a file share. This value is true if
14345	// the write status is read-only, and otherwise false.
14346	ReadOnly *bool `type:"boolean"`
14347
14348	// A value that sets who pays the cost of the request and the cost associated
14349	// with data download from the S3 bucket. If this value is set to true, the
14350	// requester pays the costs. Otherwise the S3 bucket owner pays. However, the
14351	// S3 bucket owner always pays the cost of storing data.
14352	//
14353	// RequesterPays is a configuration for the S3 bucket that backs the file share,
14354	// so make sure that the configuration on the file share is the same as the
14355	// S3 bucket configuration.
14356	RequesterPays *bool `type:"boolean"`
14357
14358	// The ARN of the IAM role that file gateway assumes when it accesses the underlying
14359	// storage.
14360	Role *string `min:"20" type:"string"`
14361
14362	// The user mapped to anonymous user. Valid options are the following:
14363	//
14364	//    * RootSquash - Only root is mapped to anonymous user.
14365	//
14366	//    * NoSquash - No one is mapped to anonymous user
14367	//
14368	//    * AllSquash - Everyone is mapped to anonymous user.
14369	Squash *string `min:"5" type:"string"`
14370
14371	// A list of up to 50 tags assigned to the NFS file share, sorted alphabetically
14372	// by key name. Each tag is a key-value pair. For a gateway with more than 10
14373	// tags assigned, you can view all tags using the ListTagsForResource API operation.
14374	Tags []*Tag `type:"list"`
14375}
14376
14377// String returns the string representation
14378func (s NFSFileShareInfo) String() string {
14379	return awsutil.Prettify(s)
14380}
14381
14382// GoString returns the string representation
14383func (s NFSFileShareInfo) GoString() string {
14384	return s.String()
14385}
14386
14387// SetClientList sets the ClientList field's value.
14388func (s *NFSFileShareInfo) SetClientList(v []*string) *NFSFileShareInfo {
14389	s.ClientList = v
14390	return s
14391}
14392
14393// SetDefaultStorageClass sets the DefaultStorageClass field's value.
14394func (s *NFSFileShareInfo) SetDefaultStorageClass(v string) *NFSFileShareInfo {
14395	s.DefaultStorageClass = &v
14396	return s
14397}
14398
14399// SetFileShareARN sets the FileShareARN field's value.
14400func (s *NFSFileShareInfo) SetFileShareARN(v string) *NFSFileShareInfo {
14401	s.FileShareARN = &v
14402	return s
14403}
14404
14405// SetFileShareId sets the FileShareId field's value.
14406func (s *NFSFileShareInfo) SetFileShareId(v string) *NFSFileShareInfo {
14407	s.FileShareId = &v
14408	return s
14409}
14410
14411// SetFileShareStatus sets the FileShareStatus field's value.
14412func (s *NFSFileShareInfo) SetFileShareStatus(v string) *NFSFileShareInfo {
14413	s.FileShareStatus = &v
14414	return s
14415}
14416
14417// SetGatewayARN sets the GatewayARN field's value.
14418func (s *NFSFileShareInfo) SetGatewayARN(v string) *NFSFileShareInfo {
14419	s.GatewayARN = &v
14420	return s
14421}
14422
14423// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
14424func (s *NFSFileShareInfo) SetGuessMIMETypeEnabled(v bool) *NFSFileShareInfo {
14425	s.GuessMIMETypeEnabled = &v
14426	return s
14427}
14428
14429// SetKMSEncrypted sets the KMSEncrypted field's value.
14430func (s *NFSFileShareInfo) SetKMSEncrypted(v bool) *NFSFileShareInfo {
14431	s.KMSEncrypted = &v
14432	return s
14433}
14434
14435// SetKMSKey sets the KMSKey field's value.
14436func (s *NFSFileShareInfo) SetKMSKey(v string) *NFSFileShareInfo {
14437	s.KMSKey = &v
14438	return s
14439}
14440
14441// SetLocationARN sets the LocationARN field's value.
14442func (s *NFSFileShareInfo) SetLocationARN(v string) *NFSFileShareInfo {
14443	s.LocationARN = &v
14444	return s
14445}
14446
14447// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
14448func (s *NFSFileShareInfo) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *NFSFileShareInfo {
14449	s.NFSFileShareDefaults = v
14450	return s
14451}
14452
14453// SetObjectACL sets the ObjectACL field's value.
14454func (s *NFSFileShareInfo) SetObjectACL(v string) *NFSFileShareInfo {
14455	s.ObjectACL = &v
14456	return s
14457}
14458
14459// SetPath sets the Path field's value.
14460func (s *NFSFileShareInfo) SetPath(v string) *NFSFileShareInfo {
14461	s.Path = &v
14462	return s
14463}
14464
14465// SetReadOnly sets the ReadOnly field's value.
14466func (s *NFSFileShareInfo) SetReadOnly(v bool) *NFSFileShareInfo {
14467	s.ReadOnly = &v
14468	return s
14469}
14470
14471// SetRequesterPays sets the RequesterPays field's value.
14472func (s *NFSFileShareInfo) SetRequesterPays(v bool) *NFSFileShareInfo {
14473	s.RequesterPays = &v
14474	return s
14475}
14476
14477// SetRole sets the Role field's value.
14478func (s *NFSFileShareInfo) SetRole(v string) *NFSFileShareInfo {
14479	s.Role = &v
14480	return s
14481}
14482
14483// SetSquash sets the Squash field's value.
14484func (s *NFSFileShareInfo) SetSquash(v string) *NFSFileShareInfo {
14485	s.Squash = &v
14486	return s
14487}
14488
14489// SetTags sets the Tags field's value.
14490func (s *NFSFileShareInfo) SetTags(v []*Tag) *NFSFileShareInfo {
14491	s.Tags = v
14492	return s
14493}
14494
14495// Describes a gateway's network interface.
14496type NetworkInterface struct {
14497	_ struct{} `type:"structure"`
14498
14499	// The Internet Protocol version 4 (IPv4) address of the interface.
14500	Ipv4Address *string `type:"string"`
14501
14502	// The Internet Protocol version 6 (IPv6) address of the interface. Currently
14503	// not supported.
14504	Ipv6Address *string `type:"string"`
14505
14506	// The Media Access Control (MAC) address of the interface.
14507	//
14508	// This is currently unsupported and will not be returned in output.
14509	MacAddress *string `type:"string"`
14510}
14511
14512// String returns the string representation
14513func (s NetworkInterface) String() string {
14514	return awsutil.Prettify(s)
14515}
14516
14517// GoString returns the string representation
14518func (s NetworkInterface) GoString() string {
14519	return s.String()
14520}
14521
14522// SetIpv4Address sets the Ipv4Address field's value.
14523func (s *NetworkInterface) SetIpv4Address(v string) *NetworkInterface {
14524	s.Ipv4Address = &v
14525	return s
14526}
14527
14528// SetIpv6Address sets the Ipv6Address field's value.
14529func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface {
14530	s.Ipv6Address = &v
14531	return s
14532}
14533
14534// SetMacAddress sets the MacAddress field's value.
14535func (s *NetworkInterface) SetMacAddress(v string) *NetworkInterface {
14536	s.MacAddress = &v
14537	return s
14538}
14539
14540type NotifyWhenUploadedInput struct {
14541	_ struct{} `type:"structure"`
14542
14543	// The Amazon Resource Name (ARN) of the file share.
14544	//
14545	// FileShareARN is a required field
14546	FileShareARN *string `min:"50" type:"string" required:"true"`
14547}
14548
14549// String returns the string representation
14550func (s NotifyWhenUploadedInput) String() string {
14551	return awsutil.Prettify(s)
14552}
14553
14554// GoString returns the string representation
14555func (s NotifyWhenUploadedInput) GoString() string {
14556	return s.String()
14557}
14558
14559// Validate inspects the fields of the type to determine if they are valid.
14560func (s *NotifyWhenUploadedInput) Validate() error {
14561	invalidParams := request.ErrInvalidParams{Context: "NotifyWhenUploadedInput"}
14562	if s.FileShareARN == nil {
14563		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
14564	}
14565	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
14566		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
14567	}
14568
14569	if invalidParams.Len() > 0 {
14570		return invalidParams
14571	}
14572	return nil
14573}
14574
14575// SetFileShareARN sets the FileShareARN field's value.
14576func (s *NotifyWhenUploadedInput) SetFileShareARN(v string) *NotifyWhenUploadedInput {
14577	s.FileShareARN = &v
14578	return s
14579}
14580
14581type NotifyWhenUploadedOutput struct {
14582	_ struct{} `type:"structure"`
14583
14584	// The Amazon Resource Name (ARN) of the file share.
14585	FileShareARN *string `min:"50" type:"string"`
14586
14587	// The randomly generated ID of the notification that was sent. This ID is in
14588	// UUID format.
14589	NotificationId *string `min:"1" type:"string"`
14590}
14591
14592// String returns the string representation
14593func (s NotifyWhenUploadedOutput) String() string {
14594	return awsutil.Prettify(s)
14595}
14596
14597// GoString returns the string representation
14598func (s NotifyWhenUploadedOutput) GoString() string {
14599	return s.String()
14600}
14601
14602// SetFileShareARN sets the FileShareARN field's value.
14603func (s *NotifyWhenUploadedOutput) SetFileShareARN(v string) *NotifyWhenUploadedOutput {
14604	s.FileShareARN = &v
14605	return s
14606}
14607
14608// SetNotificationId sets the NotificationId field's value.
14609func (s *NotifyWhenUploadedOutput) SetNotificationId(v string) *NotifyWhenUploadedOutput {
14610	s.NotificationId = &v
14611	return s
14612}
14613
14614// RefreshCacheInput
14615type RefreshCacheInput struct {
14616	_ struct{} `type:"structure"`
14617
14618	// The Amazon Resource Name (ARN) of the file share you want to refresh.
14619	//
14620	// FileShareARN is a required field
14621	FileShareARN *string `min:"50" type:"string" required:"true"`
14622
14623	// A comma-separated list of the paths of folders to refresh in the cache. The
14624	// default is ["/"]. The default refreshes objects and folders at the root of
14625	// the Amazon S3 bucket. If Recursive is set to "true", the entire S3 bucket
14626	// that the file share has access to is refreshed.
14627	FolderList []*string `min:"1" type:"list"`
14628
14629	// A value that specifies whether to recursively refresh folders in the cache.
14630	// The refresh includes folders that were in the cache the last time the gateway
14631	// listed the folder's contents. If this value set to "true", each folder that
14632	// is listed in FolderList is recursively updated. Otherwise, subfolders listed
14633	// in FolderList are not refreshed. Only objects that are in folders listed
14634	// directly under FolderList are found and used for the update. The default
14635	// is "true".
14636	Recursive *bool `type:"boolean"`
14637}
14638
14639// String returns the string representation
14640func (s RefreshCacheInput) String() string {
14641	return awsutil.Prettify(s)
14642}
14643
14644// GoString returns the string representation
14645func (s RefreshCacheInput) GoString() string {
14646	return s.String()
14647}
14648
14649// Validate inspects the fields of the type to determine if they are valid.
14650func (s *RefreshCacheInput) Validate() error {
14651	invalidParams := request.ErrInvalidParams{Context: "RefreshCacheInput"}
14652	if s.FileShareARN == nil {
14653		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
14654	}
14655	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
14656		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
14657	}
14658	if s.FolderList != nil && len(s.FolderList) < 1 {
14659		invalidParams.Add(request.NewErrParamMinLen("FolderList", 1))
14660	}
14661
14662	if invalidParams.Len() > 0 {
14663		return invalidParams
14664	}
14665	return nil
14666}
14667
14668// SetFileShareARN sets the FileShareARN field's value.
14669func (s *RefreshCacheInput) SetFileShareARN(v string) *RefreshCacheInput {
14670	s.FileShareARN = &v
14671	return s
14672}
14673
14674// SetFolderList sets the FolderList field's value.
14675func (s *RefreshCacheInput) SetFolderList(v []*string) *RefreshCacheInput {
14676	s.FolderList = v
14677	return s
14678}
14679
14680// SetRecursive sets the Recursive field's value.
14681func (s *RefreshCacheInput) SetRecursive(v bool) *RefreshCacheInput {
14682	s.Recursive = &v
14683	return s
14684}
14685
14686// RefreshCacheOutput
14687type RefreshCacheOutput struct {
14688	_ struct{} `type:"structure"`
14689
14690	// The Amazon Resource Name (ARN) of the file share.
14691	FileShareARN *string `min:"50" type:"string"`
14692
14693	// The randomly generated ID of the notification that was sent. This ID is in
14694	// UUID format.
14695	NotificationId *string `min:"1" type:"string"`
14696}
14697
14698// String returns the string representation
14699func (s RefreshCacheOutput) String() string {
14700	return awsutil.Prettify(s)
14701}
14702
14703// GoString returns the string representation
14704func (s RefreshCacheOutput) GoString() string {
14705	return s.String()
14706}
14707
14708// SetFileShareARN sets the FileShareARN field's value.
14709func (s *RefreshCacheOutput) SetFileShareARN(v string) *RefreshCacheOutput {
14710	s.FileShareARN = &v
14711	return s
14712}
14713
14714// SetNotificationId sets the NotificationId field's value.
14715func (s *RefreshCacheOutput) SetNotificationId(v string) *RefreshCacheOutput {
14716	s.NotificationId = &v
14717	return s
14718}
14719
14720// RemoveTagsFromResourceInput
14721type RemoveTagsFromResourceInput struct {
14722	_ struct{} `type:"structure"`
14723
14724	// The Amazon Resource Name (ARN) of the resource you want to remove the tags
14725	// from.
14726	//
14727	// ResourceARN is a required field
14728	ResourceARN *string `min:"50" type:"string" required:"true"`
14729
14730	// The keys of the tags you want to remove from the specified resource. A tag
14731	// is composed of a key/value pair.
14732	//
14733	// TagKeys is a required field
14734	TagKeys []*string `type:"list" required:"true"`
14735}
14736
14737// String returns the string representation
14738func (s RemoveTagsFromResourceInput) String() string {
14739	return awsutil.Prettify(s)
14740}
14741
14742// GoString returns the string representation
14743func (s RemoveTagsFromResourceInput) GoString() string {
14744	return s.String()
14745}
14746
14747// Validate inspects the fields of the type to determine if they are valid.
14748func (s *RemoveTagsFromResourceInput) Validate() error {
14749	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsFromResourceInput"}
14750	if s.ResourceARN == nil {
14751		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
14752	}
14753	if s.ResourceARN != nil && len(*s.ResourceARN) < 50 {
14754		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 50))
14755	}
14756	if s.TagKeys == nil {
14757		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
14758	}
14759
14760	if invalidParams.Len() > 0 {
14761		return invalidParams
14762	}
14763	return nil
14764}
14765
14766// SetResourceARN sets the ResourceARN field's value.
14767func (s *RemoveTagsFromResourceInput) SetResourceARN(v string) *RemoveTagsFromResourceInput {
14768	s.ResourceARN = &v
14769	return s
14770}
14771
14772// SetTagKeys sets the TagKeys field's value.
14773func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromResourceInput {
14774	s.TagKeys = v
14775	return s
14776}
14777
14778// RemoveTagsFromResourceOutput
14779type RemoveTagsFromResourceOutput struct {
14780	_ struct{} `type:"structure"`
14781
14782	// The Amazon Resource Name (ARN) of the resource that the tags were removed
14783	// from.
14784	ResourceARN *string `min:"50" type:"string"`
14785}
14786
14787// String returns the string representation
14788func (s RemoveTagsFromResourceOutput) String() string {
14789	return awsutil.Prettify(s)
14790}
14791
14792// GoString returns the string representation
14793func (s RemoveTagsFromResourceOutput) GoString() string {
14794	return s.String()
14795}
14796
14797// SetResourceARN sets the ResourceARN field's value.
14798func (s *RemoveTagsFromResourceOutput) SetResourceARN(v string) *RemoveTagsFromResourceOutput {
14799	s.ResourceARN = &v
14800	return s
14801}
14802
14803type ResetCacheInput struct {
14804	_ struct{} `type:"structure"`
14805
14806	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14807	// to return a list of gateways for your account and AWS Region.
14808	//
14809	// GatewayARN is a required field
14810	GatewayARN *string `min:"50" type:"string" required:"true"`
14811}
14812
14813// String returns the string representation
14814func (s ResetCacheInput) String() string {
14815	return awsutil.Prettify(s)
14816}
14817
14818// GoString returns the string representation
14819func (s ResetCacheInput) GoString() string {
14820	return s.String()
14821}
14822
14823// Validate inspects the fields of the type to determine if they are valid.
14824func (s *ResetCacheInput) Validate() error {
14825	invalidParams := request.ErrInvalidParams{Context: "ResetCacheInput"}
14826	if s.GatewayARN == nil {
14827		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14828	}
14829	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14830		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14831	}
14832
14833	if invalidParams.Len() > 0 {
14834		return invalidParams
14835	}
14836	return nil
14837}
14838
14839// SetGatewayARN sets the GatewayARN field's value.
14840func (s *ResetCacheInput) SetGatewayARN(v string) *ResetCacheInput {
14841	s.GatewayARN = &v
14842	return s
14843}
14844
14845type ResetCacheOutput struct {
14846	_ struct{} `type:"structure"`
14847
14848	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14849	// to return a list of gateways for your account and AWS Region.
14850	GatewayARN *string `min:"50" type:"string"`
14851}
14852
14853// String returns the string representation
14854func (s ResetCacheOutput) String() string {
14855	return awsutil.Prettify(s)
14856}
14857
14858// GoString returns the string representation
14859func (s ResetCacheOutput) GoString() string {
14860	return s.String()
14861}
14862
14863// SetGatewayARN sets the GatewayARN field's value.
14864func (s *ResetCacheOutput) SetGatewayARN(v string) *ResetCacheOutput {
14865	s.GatewayARN = &v
14866	return s
14867}
14868
14869// RetrieveTapeArchiveInput
14870type RetrieveTapeArchiveInput struct {
14871	_ struct{} `type:"structure"`
14872
14873	// The Amazon Resource Name (ARN) of the gateway you want to retrieve the virtual
14874	// tape to. Use the ListGateways operation to return a list of gateways for
14875	// your account and AWS Region.
14876	//
14877	// You retrieve archived virtual tapes to only one gateway and the gateway must
14878	// be a tape gateway.
14879	//
14880	// GatewayARN is a required field
14881	GatewayARN *string `min:"50" type:"string" required:"true"`
14882
14883	// The Amazon Resource Name (ARN) of the virtual tape you want to retrieve from
14884	// the virtual tape shelf (VTS).
14885	//
14886	// TapeARN is a required field
14887	TapeARN *string `min:"50" type:"string" required:"true"`
14888}
14889
14890// String returns the string representation
14891func (s RetrieveTapeArchiveInput) String() string {
14892	return awsutil.Prettify(s)
14893}
14894
14895// GoString returns the string representation
14896func (s RetrieveTapeArchiveInput) GoString() string {
14897	return s.String()
14898}
14899
14900// Validate inspects the fields of the type to determine if they are valid.
14901func (s *RetrieveTapeArchiveInput) Validate() error {
14902	invalidParams := request.ErrInvalidParams{Context: "RetrieveTapeArchiveInput"}
14903	if s.GatewayARN == nil {
14904		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14905	}
14906	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14907		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14908	}
14909	if s.TapeARN == nil {
14910		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
14911	}
14912	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
14913		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
14914	}
14915
14916	if invalidParams.Len() > 0 {
14917		return invalidParams
14918	}
14919	return nil
14920}
14921
14922// SetGatewayARN sets the GatewayARN field's value.
14923func (s *RetrieveTapeArchiveInput) SetGatewayARN(v string) *RetrieveTapeArchiveInput {
14924	s.GatewayARN = &v
14925	return s
14926}
14927
14928// SetTapeARN sets the TapeARN field's value.
14929func (s *RetrieveTapeArchiveInput) SetTapeARN(v string) *RetrieveTapeArchiveInput {
14930	s.TapeARN = &v
14931	return s
14932}
14933
14934// RetrieveTapeArchiveOutput
14935type RetrieveTapeArchiveOutput struct {
14936	_ struct{} `type:"structure"`
14937
14938	// The Amazon Resource Name (ARN) of the retrieved virtual tape.
14939	TapeARN *string `min:"50" type:"string"`
14940}
14941
14942// String returns the string representation
14943func (s RetrieveTapeArchiveOutput) String() string {
14944	return awsutil.Prettify(s)
14945}
14946
14947// GoString returns the string representation
14948func (s RetrieveTapeArchiveOutput) GoString() string {
14949	return s.String()
14950}
14951
14952// SetTapeARN sets the TapeARN field's value.
14953func (s *RetrieveTapeArchiveOutput) SetTapeARN(v string) *RetrieveTapeArchiveOutput {
14954	s.TapeARN = &v
14955	return s
14956}
14957
14958// RetrieveTapeRecoveryPointInput
14959type RetrieveTapeRecoveryPointInput struct {
14960	_ struct{} `type:"structure"`
14961
14962	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
14963	// to return a list of gateways for your account and AWS Region.
14964	//
14965	// GatewayARN is a required field
14966	GatewayARN *string `min:"50" type:"string" required:"true"`
14967
14968	// The Amazon Resource Name (ARN) of the virtual tape for which you want to
14969	// retrieve the recovery point.
14970	//
14971	// TapeARN is a required field
14972	TapeARN *string `min:"50" type:"string" required:"true"`
14973}
14974
14975// String returns the string representation
14976func (s RetrieveTapeRecoveryPointInput) String() string {
14977	return awsutil.Prettify(s)
14978}
14979
14980// GoString returns the string representation
14981func (s RetrieveTapeRecoveryPointInput) GoString() string {
14982	return s.String()
14983}
14984
14985// Validate inspects the fields of the type to determine if they are valid.
14986func (s *RetrieveTapeRecoveryPointInput) Validate() error {
14987	invalidParams := request.ErrInvalidParams{Context: "RetrieveTapeRecoveryPointInput"}
14988	if s.GatewayARN == nil {
14989		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
14990	}
14991	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
14992		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
14993	}
14994	if s.TapeARN == nil {
14995		invalidParams.Add(request.NewErrParamRequired("TapeARN"))
14996	}
14997	if s.TapeARN != nil && len(*s.TapeARN) < 50 {
14998		invalidParams.Add(request.NewErrParamMinLen("TapeARN", 50))
14999	}
15000
15001	if invalidParams.Len() > 0 {
15002		return invalidParams
15003	}
15004	return nil
15005}
15006
15007// SetGatewayARN sets the GatewayARN field's value.
15008func (s *RetrieveTapeRecoveryPointInput) SetGatewayARN(v string) *RetrieveTapeRecoveryPointInput {
15009	s.GatewayARN = &v
15010	return s
15011}
15012
15013// SetTapeARN sets the TapeARN field's value.
15014func (s *RetrieveTapeRecoveryPointInput) SetTapeARN(v string) *RetrieveTapeRecoveryPointInput {
15015	s.TapeARN = &v
15016	return s
15017}
15018
15019// RetrieveTapeRecoveryPointOutput
15020type RetrieveTapeRecoveryPointOutput struct {
15021	_ struct{} `type:"structure"`
15022
15023	// The Amazon Resource Name (ARN) of the virtual tape for which the recovery
15024	// point was retrieved.
15025	TapeARN *string `min:"50" type:"string"`
15026}
15027
15028// String returns the string representation
15029func (s RetrieveTapeRecoveryPointOutput) String() string {
15030	return awsutil.Prettify(s)
15031}
15032
15033// GoString returns the string representation
15034func (s RetrieveTapeRecoveryPointOutput) GoString() string {
15035	return s.String()
15036}
15037
15038// SetTapeARN sets the TapeARN field's value.
15039func (s *RetrieveTapeRecoveryPointOutput) SetTapeARN(v string) *RetrieveTapeRecoveryPointOutput {
15040	s.TapeARN = &v
15041	return s
15042}
15043
15044// The Windows file permissions and ownership information assigned, by default,
15045// to native S3 objects when file gateway discovers them in S3 buckets. This
15046// operation is only supported for file gateways.
15047type SMBFileShareInfo struct {
15048	_ struct{} `type:"structure"`
15049
15050	// A list of users or groups in the Active Directory that have administrator
15051	// rights to the file share. A group must be prefixed with the @ character.
15052	// For example @group1. Can only be set if Authentication is set to ActiveDirectory.
15053	AdminUserList []*string `type:"list"`
15054
15055	// The authentication method of the file share.
15056	//
15057	// Valid values are ActiveDirectory or GuestAccess. The default is ActiveDirectory.
15058	Authentication *string `min:"5" type:"string"`
15059
15060	// The default storage class for objects put into an Amazon S3 bucket by the
15061	// file gateway. Possible values are S3_STANDARD, S3_STANDARD_IA, or S3_ONEZONE_IA.
15062	// If this field is not populated, the default value S3_STANDARD is used. Optional.
15063	DefaultStorageClass *string `min:"5" type:"string"`
15064
15065	// The Amazon Resource Name (ARN) of the file share.
15066	FileShareARN *string `min:"50" type:"string"`
15067
15068	// The ID of the file share.
15069	FileShareId *string `min:"12" type:"string"`
15070
15071	// The status of the file share. Possible values are CREATING, UPDATING, AVAILABLE
15072	// and DELETING.
15073	FileShareStatus *string `min:"3" type:"string"`
15074
15075	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15076	// to return a list of gateways for your account and AWS Region.
15077	GatewayARN *string `min:"50" type:"string"`
15078
15079	// A value that enables guessing of the MIME type for uploaded objects based
15080	// on file extensions. Set this value to true to enable MIME type guessing,
15081	// and otherwise to false. The default value is true.
15082	GuessMIMETypeEnabled *bool `type:"boolean"`
15083
15084	// A list of users or groups in the Active Directory that are not allowed to
15085	// access the file share. A group must be prefixed with the @ character. For
15086	// example @group1. Can only be set if Authentication is set to ActiveDirectory.
15087	InvalidUserList []*string `type:"list"`
15088
15089	// True to use Amazon S3 server-side encryption with your own AWS KMS key, or
15090	// false to use a key managed by Amazon S3. Optional.
15091	KMSEncrypted *bool `type:"boolean"`
15092
15093	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
15094	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
15095	KMSKey *string `min:"7" type:"string"`
15096
15097	// The ARN of the backend storage used for storing file data.
15098	LocationARN *string `min:"16" type:"string"`
15099
15100	// A value that sets the access control list permission for objects in the S3
15101	// bucket that a file gateway puts objects into. The default value is "private".
15102	ObjectACL *string `type:"string" enum:"ObjectACL"`
15103
15104	// The file share path used by the SMB client to identify the mount point.
15105	Path *string `type:"string"`
15106
15107	// A value that sets the write status of a file share. This value is true if
15108	// the write status is read-only, and otherwise false.
15109	ReadOnly *bool `type:"boolean"`
15110
15111	// A value that sets who pays the cost of the request and the cost associated
15112	// with data download from the S3 bucket. If this value is set to true, the
15113	// requester pays the costs. Otherwise the S3 bucket owner pays. However, the
15114	// S3 bucket owner always pays the cost of storing data.
15115	//
15116	// RequesterPays is a configuration for the S3 bucket that backs the file share,
15117	// so make sure that the configuration on the file share is the same as the
15118	// S3 bucket configuration.
15119	RequesterPays *bool `type:"boolean"`
15120
15121	// The ARN of the IAM role that file gateway assumes when it accesses the underlying
15122	// storage.
15123	Role *string `min:"20" type:"string"`
15124
15125	// If this value is set to "true", indicates that ACL (access control list)
15126	// is enabled on the SMB file share. If it is set to "false", it indicates that
15127	// file and directory permissions are mapped to the POSIX permission.
15128	//
15129	// For more information, see https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.html
15130	// in the Storage Gateway User Guide.
15131	SMBACLEnabled *bool `type:"boolean"`
15132
15133	// A list of up to 50 tags assigned to the SMB file share, sorted alphabetically
15134	// by key name. Each tag is a key-value pair. For a gateway with more than 10
15135	// tags assigned, you can view all tags using the ListTagsForResource API operation.
15136	Tags []*Tag `type:"list"`
15137
15138	// A list of users or groups in the Active Directory that are allowed to access
15139	// the file share. A group must be prefixed with the @ character. For example
15140	// @group1. Can only be set if Authentication is set to ActiveDirectory.
15141	ValidUserList []*string `type:"list"`
15142}
15143
15144// String returns the string representation
15145func (s SMBFileShareInfo) String() string {
15146	return awsutil.Prettify(s)
15147}
15148
15149// GoString returns the string representation
15150func (s SMBFileShareInfo) GoString() string {
15151	return s.String()
15152}
15153
15154// SetAdminUserList sets the AdminUserList field's value.
15155func (s *SMBFileShareInfo) SetAdminUserList(v []*string) *SMBFileShareInfo {
15156	s.AdminUserList = v
15157	return s
15158}
15159
15160// SetAuthentication sets the Authentication field's value.
15161func (s *SMBFileShareInfo) SetAuthentication(v string) *SMBFileShareInfo {
15162	s.Authentication = &v
15163	return s
15164}
15165
15166// SetDefaultStorageClass sets the DefaultStorageClass field's value.
15167func (s *SMBFileShareInfo) SetDefaultStorageClass(v string) *SMBFileShareInfo {
15168	s.DefaultStorageClass = &v
15169	return s
15170}
15171
15172// SetFileShareARN sets the FileShareARN field's value.
15173func (s *SMBFileShareInfo) SetFileShareARN(v string) *SMBFileShareInfo {
15174	s.FileShareARN = &v
15175	return s
15176}
15177
15178// SetFileShareId sets the FileShareId field's value.
15179func (s *SMBFileShareInfo) SetFileShareId(v string) *SMBFileShareInfo {
15180	s.FileShareId = &v
15181	return s
15182}
15183
15184// SetFileShareStatus sets the FileShareStatus field's value.
15185func (s *SMBFileShareInfo) SetFileShareStatus(v string) *SMBFileShareInfo {
15186	s.FileShareStatus = &v
15187	return s
15188}
15189
15190// SetGatewayARN sets the GatewayARN field's value.
15191func (s *SMBFileShareInfo) SetGatewayARN(v string) *SMBFileShareInfo {
15192	s.GatewayARN = &v
15193	return s
15194}
15195
15196// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
15197func (s *SMBFileShareInfo) SetGuessMIMETypeEnabled(v bool) *SMBFileShareInfo {
15198	s.GuessMIMETypeEnabled = &v
15199	return s
15200}
15201
15202// SetInvalidUserList sets the InvalidUserList field's value.
15203func (s *SMBFileShareInfo) SetInvalidUserList(v []*string) *SMBFileShareInfo {
15204	s.InvalidUserList = v
15205	return s
15206}
15207
15208// SetKMSEncrypted sets the KMSEncrypted field's value.
15209func (s *SMBFileShareInfo) SetKMSEncrypted(v bool) *SMBFileShareInfo {
15210	s.KMSEncrypted = &v
15211	return s
15212}
15213
15214// SetKMSKey sets the KMSKey field's value.
15215func (s *SMBFileShareInfo) SetKMSKey(v string) *SMBFileShareInfo {
15216	s.KMSKey = &v
15217	return s
15218}
15219
15220// SetLocationARN sets the LocationARN field's value.
15221func (s *SMBFileShareInfo) SetLocationARN(v string) *SMBFileShareInfo {
15222	s.LocationARN = &v
15223	return s
15224}
15225
15226// SetObjectACL sets the ObjectACL field's value.
15227func (s *SMBFileShareInfo) SetObjectACL(v string) *SMBFileShareInfo {
15228	s.ObjectACL = &v
15229	return s
15230}
15231
15232// SetPath sets the Path field's value.
15233func (s *SMBFileShareInfo) SetPath(v string) *SMBFileShareInfo {
15234	s.Path = &v
15235	return s
15236}
15237
15238// SetReadOnly sets the ReadOnly field's value.
15239func (s *SMBFileShareInfo) SetReadOnly(v bool) *SMBFileShareInfo {
15240	s.ReadOnly = &v
15241	return s
15242}
15243
15244// SetRequesterPays sets the RequesterPays field's value.
15245func (s *SMBFileShareInfo) SetRequesterPays(v bool) *SMBFileShareInfo {
15246	s.RequesterPays = &v
15247	return s
15248}
15249
15250// SetRole sets the Role field's value.
15251func (s *SMBFileShareInfo) SetRole(v string) *SMBFileShareInfo {
15252	s.Role = &v
15253	return s
15254}
15255
15256// SetSMBACLEnabled sets the SMBACLEnabled field's value.
15257func (s *SMBFileShareInfo) SetSMBACLEnabled(v bool) *SMBFileShareInfo {
15258	s.SMBACLEnabled = &v
15259	return s
15260}
15261
15262// SetTags sets the Tags field's value.
15263func (s *SMBFileShareInfo) SetTags(v []*Tag) *SMBFileShareInfo {
15264	s.Tags = v
15265	return s
15266}
15267
15268// SetValidUserList sets the ValidUserList field's value.
15269func (s *SMBFileShareInfo) SetValidUserList(v []*string) *SMBFileShareInfo {
15270	s.ValidUserList = v
15271	return s
15272}
15273
15274// SetLocalConsolePasswordInput
15275type SetLocalConsolePasswordInput struct {
15276	_ struct{} `type:"structure"`
15277
15278	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15279	// to return a list of gateways for your account and AWS Region.
15280	//
15281	// GatewayARN is a required field
15282	GatewayARN *string `min:"50" type:"string" required:"true"`
15283
15284	// The password you want to set for your VM local console.
15285	//
15286	// LocalConsolePassword is a required field
15287	LocalConsolePassword *string `min:"6" type:"string" required:"true" sensitive:"true"`
15288}
15289
15290// String returns the string representation
15291func (s SetLocalConsolePasswordInput) String() string {
15292	return awsutil.Prettify(s)
15293}
15294
15295// GoString returns the string representation
15296func (s SetLocalConsolePasswordInput) GoString() string {
15297	return s.String()
15298}
15299
15300// Validate inspects the fields of the type to determine if they are valid.
15301func (s *SetLocalConsolePasswordInput) Validate() error {
15302	invalidParams := request.ErrInvalidParams{Context: "SetLocalConsolePasswordInput"}
15303	if s.GatewayARN == nil {
15304		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15305	}
15306	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15307		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15308	}
15309	if s.LocalConsolePassword == nil {
15310		invalidParams.Add(request.NewErrParamRequired("LocalConsolePassword"))
15311	}
15312	if s.LocalConsolePassword != nil && len(*s.LocalConsolePassword) < 6 {
15313		invalidParams.Add(request.NewErrParamMinLen("LocalConsolePassword", 6))
15314	}
15315
15316	if invalidParams.Len() > 0 {
15317		return invalidParams
15318	}
15319	return nil
15320}
15321
15322// SetGatewayARN sets the GatewayARN field's value.
15323func (s *SetLocalConsolePasswordInput) SetGatewayARN(v string) *SetLocalConsolePasswordInput {
15324	s.GatewayARN = &v
15325	return s
15326}
15327
15328// SetLocalConsolePassword sets the LocalConsolePassword field's value.
15329func (s *SetLocalConsolePasswordInput) SetLocalConsolePassword(v string) *SetLocalConsolePasswordInput {
15330	s.LocalConsolePassword = &v
15331	return s
15332}
15333
15334type SetLocalConsolePasswordOutput struct {
15335	_ struct{} `type:"structure"`
15336
15337	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15338	// to return a list of gateways for your account and AWS Region.
15339	GatewayARN *string `min:"50" type:"string"`
15340}
15341
15342// String returns the string representation
15343func (s SetLocalConsolePasswordOutput) String() string {
15344	return awsutil.Prettify(s)
15345}
15346
15347// GoString returns the string representation
15348func (s SetLocalConsolePasswordOutput) GoString() string {
15349	return s.String()
15350}
15351
15352// SetGatewayARN sets the GatewayARN field's value.
15353func (s *SetLocalConsolePasswordOutput) SetGatewayARN(v string) *SetLocalConsolePasswordOutput {
15354	s.GatewayARN = &v
15355	return s
15356}
15357
15358// SetSMBGuestPasswordInput
15359type SetSMBGuestPasswordInput struct {
15360	_ struct{} `type:"structure"`
15361
15362	// The Amazon Resource Name (ARN) of the file gateway the SMB file share is
15363	// associated with.
15364	//
15365	// GatewayARN is a required field
15366	GatewayARN *string `min:"50" type:"string" required:"true"`
15367
15368	// The password that you want to set for your SMB Server.
15369	//
15370	// Password is a required field
15371	Password *string `min:"6" type:"string" required:"true" sensitive:"true"`
15372}
15373
15374// String returns the string representation
15375func (s SetSMBGuestPasswordInput) String() string {
15376	return awsutil.Prettify(s)
15377}
15378
15379// GoString returns the string representation
15380func (s SetSMBGuestPasswordInput) GoString() string {
15381	return s.String()
15382}
15383
15384// Validate inspects the fields of the type to determine if they are valid.
15385func (s *SetSMBGuestPasswordInput) Validate() error {
15386	invalidParams := request.ErrInvalidParams{Context: "SetSMBGuestPasswordInput"}
15387	if s.GatewayARN == nil {
15388		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15389	}
15390	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15391		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15392	}
15393	if s.Password == nil {
15394		invalidParams.Add(request.NewErrParamRequired("Password"))
15395	}
15396	if s.Password != nil && len(*s.Password) < 6 {
15397		invalidParams.Add(request.NewErrParamMinLen("Password", 6))
15398	}
15399
15400	if invalidParams.Len() > 0 {
15401		return invalidParams
15402	}
15403	return nil
15404}
15405
15406// SetGatewayARN sets the GatewayARN field's value.
15407func (s *SetSMBGuestPasswordInput) SetGatewayARN(v string) *SetSMBGuestPasswordInput {
15408	s.GatewayARN = &v
15409	return s
15410}
15411
15412// SetPassword sets the Password field's value.
15413func (s *SetSMBGuestPasswordInput) SetPassword(v string) *SetSMBGuestPasswordInput {
15414	s.Password = &v
15415	return s
15416}
15417
15418type SetSMBGuestPasswordOutput struct {
15419	_ struct{} `type:"structure"`
15420
15421	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15422	// to return a list of gateways for your account and AWS Region.
15423	GatewayARN *string `min:"50" type:"string"`
15424}
15425
15426// String returns the string representation
15427func (s SetSMBGuestPasswordOutput) String() string {
15428	return awsutil.Prettify(s)
15429}
15430
15431// GoString returns the string representation
15432func (s SetSMBGuestPasswordOutput) GoString() string {
15433	return s.String()
15434}
15435
15436// SetGatewayARN sets the GatewayARN field's value.
15437func (s *SetSMBGuestPasswordOutput) SetGatewayARN(v string) *SetSMBGuestPasswordOutput {
15438	s.GatewayARN = &v
15439	return s
15440}
15441
15442// A JSON object containing the of the gateway to shut down.
15443type ShutdownGatewayInput struct {
15444	_ struct{} `type:"structure"`
15445
15446	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15447	// to return a list of gateways for your account and AWS Region.
15448	//
15449	// GatewayARN is a required field
15450	GatewayARN *string `min:"50" type:"string" required:"true"`
15451}
15452
15453// String returns the string representation
15454func (s ShutdownGatewayInput) String() string {
15455	return awsutil.Prettify(s)
15456}
15457
15458// GoString returns the string representation
15459func (s ShutdownGatewayInput) GoString() string {
15460	return s.String()
15461}
15462
15463// Validate inspects the fields of the type to determine if they are valid.
15464func (s *ShutdownGatewayInput) Validate() error {
15465	invalidParams := request.ErrInvalidParams{Context: "ShutdownGatewayInput"}
15466	if s.GatewayARN == nil {
15467		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15468	}
15469	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15470		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15471	}
15472
15473	if invalidParams.Len() > 0 {
15474		return invalidParams
15475	}
15476	return nil
15477}
15478
15479// SetGatewayARN sets the GatewayARN field's value.
15480func (s *ShutdownGatewayInput) SetGatewayARN(v string) *ShutdownGatewayInput {
15481	s.GatewayARN = &v
15482	return s
15483}
15484
15485// A JSON object containing the of the gateway that was shut down.
15486type ShutdownGatewayOutput struct {
15487	_ struct{} `type:"structure"`
15488
15489	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15490	// to return a list of gateways for your account and AWS Region.
15491	GatewayARN *string `min:"50" type:"string"`
15492}
15493
15494// String returns the string representation
15495func (s ShutdownGatewayOutput) String() string {
15496	return awsutil.Prettify(s)
15497}
15498
15499// GoString returns the string representation
15500func (s ShutdownGatewayOutput) GoString() string {
15501	return s.String()
15502}
15503
15504// SetGatewayARN sets the GatewayARN field's value.
15505func (s *ShutdownGatewayOutput) SetGatewayARN(v string) *ShutdownGatewayOutput {
15506	s.GatewayARN = &v
15507	return s
15508}
15509
15510type StartAvailabilityMonitorTestInput struct {
15511	_ struct{} `type:"structure"`
15512
15513	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15514	// to return a list of gateways for your account and AWS Region.
15515	//
15516	// GatewayARN is a required field
15517	GatewayARN *string `min:"50" type:"string" required:"true"`
15518}
15519
15520// String returns the string representation
15521func (s StartAvailabilityMonitorTestInput) String() string {
15522	return awsutil.Prettify(s)
15523}
15524
15525// GoString returns the string representation
15526func (s StartAvailabilityMonitorTestInput) GoString() string {
15527	return s.String()
15528}
15529
15530// Validate inspects the fields of the type to determine if they are valid.
15531func (s *StartAvailabilityMonitorTestInput) Validate() error {
15532	invalidParams := request.ErrInvalidParams{Context: "StartAvailabilityMonitorTestInput"}
15533	if s.GatewayARN == nil {
15534		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15535	}
15536	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15537		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15538	}
15539
15540	if invalidParams.Len() > 0 {
15541		return invalidParams
15542	}
15543	return nil
15544}
15545
15546// SetGatewayARN sets the GatewayARN field's value.
15547func (s *StartAvailabilityMonitorTestInput) SetGatewayARN(v string) *StartAvailabilityMonitorTestInput {
15548	s.GatewayARN = &v
15549	return s
15550}
15551
15552type StartAvailabilityMonitorTestOutput struct {
15553	_ struct{} `type:"structure"`
15554
15555	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15556	// to return a list of gateways for your account and AWS Region.
15557	GatewayARN *string `min:"50" type:"string"`
15558}
15559
15560// String returns the string representation
15561func (s StartAvailabilityMonitorTestOutput) String() string {
15562	return awsutil.Prettify(s)
15563}
15564
15565// GoString returns the string representation
15566func (s StartAvailabilityMonitorTestOutput) GoString() string {
15567	return s.String()
15568}
15569
15570// SetGatewayARN sets the GatewayARN field's value.
15571func (s *StartAvailabilityMonitorTestOutput) SetGatewayARN(v string) *StartAvailabilityMonitorTestOutput {
15572	s.GatewayARN = &v
15573	return s
15574}
15575
15576// A JSON object containing the of the gateway to start.
15577type StartGatewayInput struct {
15578	_ struct{} `type:"structure"`
15579
15580	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15581	// to return a list of gateways for your account and AWS Region.
15582	//
15583	// GatewayARN is a required field
15584	GatewayARN *string `min:"50" type:"string" required:"true"`
15585}
15586
15587// String returns the string representation
15588func (s StartGatewayInput) String() string {
15589	return awsutil.Prettify(s)
15590}
15591
15592// GoString returns the string representation
15593func (s StartGatewayInput) GoString() string {
15594	return s.String()
15595}
15596
15597// Validate inspects the fields of the type to determine if they are valid.
15598func (s *StartGatewayInput) Validate() error {
15599	invalidParams := request.ErrInvalidParams{Context: "StartGatewayInput"}
15600	if s.GatewayARN == nil {
15601		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
15602	}
15603	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
15604		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
15605	}
15606
15607	if invalidParams.Len() > 0 {
15608		return invalidParams
15609	}
15610	return nil
15611}
15612
15613// SetGatewayARN sets the GatewayARN field's value.
15614func (s *StartGatewayInput) SetGatewayARN(v string) *StartGatewayInput {
15615	s.GatewayARN = &v
15616	return s
15617}
15618
15619// A JSON object containing the of the gateway that was restarted.
15620type StartGatewayOutput struct {
15621	_ struct{} `type:"structure"`
15622
15623	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
15624	// to return a list of gateways for your account and AWS Region.
15625	GatewayARN *string `min:"50" type:"string"`
15626}
15627
15628// String returns the string representation
15629func (s StartGatewayOutput) String() string {
15630	return awsutil.Prettify(s)
15631}
15632
15633// GoString returns the string representation
15634func (s StartGatewayOutput) GoString() string {
15635	return s.String()
15636}
15637
15638// SetGatewayARN sets the GatewayARN field's value.
15639func (s *StartGatewayOutput) SetGatewayARN(v string) *StartGatewayOutput {
15640	s.GatewayARN = &v
15641	return s
15642}
15643
15644// Describes an iSCSI stored volume.
15645type StorediSCSIVolume struct {
15646	_ struct{} `type:"structure"`
15647
15648	// The date the volume was created. Volumes created prior to March 28, 2017
15649	// don’t have this time stamp.
15650	CreatedDate *time.Time `type:"timestamp"`
15651
15652	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
15653	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
15654	KMSKey *string `min:"7" type:"string"`
15655
15656	// Indicates if when the stored volume was created, existing data on the underlying
15657	// local disk was preserved.
15658	//
15659	// Valid Values: true, false
15660	PreservedExistingData *bool `type:"boolean"`
15661
15662	// If the stored volume was created from a snapshot, this field contains the
15663	// snapshot ID used, e.g. snap-78e22663. Otherwise, this field is not included.
15664	SourceSnapshotId *string `type:"string"`
15665
15666	// The name of the iSCSI target used by an initiator to connect to a volume
15667	// and used as a suffix for the target ARN. For example, specifying TargetName
15668	// 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.
15669	// The target name must be unique across all volumes on a gateway.
15670	//
15671	// If you don't specify a value, Storage Gateway uses the value that was previously
15672	// used for this volume as the new target name.
15673	TargetName *string `min:"1" type:"string"`
15674
15675	// The Amazon Resource Name (ARN) of the storage volume.
15676	VolumeARN *string `min:"50" type:"string"`
15677
15678	// A value that indicates whether a storage volume is attached to, detached
15679	// from, or is in the process of detaching from a gateway. For more information,
15680	// see Moving Your Volumes to a Different Gateway (https://docs.aws.amazon.com/storagegateway/latest/userguide/managing-volumes.html#attach-detach-volume).
15681	VolumeAttachmentStatus *string `min:"3" type:"string"`
15682
15683	// The ID of the local disk that was specified in the CreateStorediSCSIVolume
15684	// operation.
15685	VolumeDiskId *string `min:"1" type:"string"`
15686
15687	// The unique identifier of the volume, e.g. vol-AE4B946D.
15688	VolumeId *string `min:"12" type:"string"`
15689
15690	// Represents the percentage complete if the volume is restoring or bootstrapping
15691	// that represents the percent of data transferred. This field does not appear
15692	// in the response if the stored volume is not restoring or bootstrapping.
15693	VolumeProgress *float64 `type:"double"`
15694
15695	// The size of the volume in bytes.
15696	VolumeSizeInBytes *int64 `type:"long"`
15697
15698	// One of the VolumeStatus values that indicates the state of the storage volume.
15699	VolumeStatus *string `min:"3" type:"string"`
15700
15701	// One of the VolumeType enumeration values describing the type of the volume.
15702	VolumeType *string `min:"3" type:"string"`
15703
15704	// The size of the data stored on the volume in bytes. This value is calculated
15705	// based on the number of blocks that are touched, instead of the actual amount
15706	// of data written. This value can be useful for sequential write patterns but
15707	// less accurate for random write patterns. VolumeUsedInBytes is different from
15708	// the compressed size of the volume, which is the value that is used to calculate
15709	// your bill.
15710	//
15711	// This value is not available for volumes created prior to May 13, 2015, until
15712	// you store data on the volume.
15713	VolumeUsedInBytes *int64 `type:"long"`
15714
15715	// An VolumeiSCSIAttributes object that represents a collection of iSCSI attributes
15716	// for one stored volume.
15717	VolumeiSCSIAttributes *VolumeiSCSIAttributes `type:"structure"`
15718}
15719
15720// String returns the string representation
15721func (s StorediSCSIVolume) String() string {
15722	return awsutil.Prettify(s)
15723}
15724
15725// GoString returns the string representation
15726func (s StorediSCSIVolume) GoString() string {
15727	return s.String()
15728}
15729
15730// SetCreatedDate sets the CreatedDate field's value.
15731func (s *StorediSCSIVolume) SetCreatedDate(v time.Time) *StorediSCSIVolume {
15732	s.CreatedDate = &v
15733	return s
15734}
15735
15736// SetKMSKey sets the KMSKey field's value.
15737func (s *StorediSCSIVolume) SetKMSKey(v string) *StorediSCSIVolume {
15738	s.KMSKey = &v
15739	return s
15740}
15741
15742// SetPreservedExistingData sets the PreservedExistingData field's value.
15743func (s *StorediSCSIVolume) SetPreservedExistingData(v bool) *StorediSCSIVolume {
15744	s.PreservedExistingData = &v
15745	return s
15746}
15747
15748// SetSourceSnapshotId sets the SourceSnapshotId field's value.
15749func (s *StorediSCSIVolume) SetSourceSnapshotId(v string) *StorediSCSIVolume {
15750	s.SourceSnapshotId = &v
15751	return s
15752}
15753
15754// SetTargetName sets the TargetName field's value.
15755func (s *StorediSCSIVolume) SetTargetName(v string) *StorediSCSIVolume {
15756	s.TargetName = &v
15757	return s
15758}
15759
15760// SetVolumeARN sets the VolumeARN field's value.
15761func (s *StorediSCSIVolume) SetVolumeARN(v string) *StorediSCSIVolume {
15762	s.VolumeARN = &v
15763	return s
15764}
15765
15766// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
15767func (s *StorediSCSIVolume) SetVolumeAttachmentStatus(v string) *StorediSCSIVolume {
15768	s.VolumeAttachmentStatus = &v
15769	return s
15770}
15771
15772// SetVolumeDiskId sets the VolumeDiskId field's value.
15773func (s *StorediSCSIVolume) SetVolumeDiskId(v string) *StorediSCSIVolume {
15774	s.VolumeDiskId = &v
15775	return s
15776}
15777
15778// SetVolumeId sets the VolumeId field's value.
15779func (s *StorediSCSIVolume) SetVolumeId(v string) *StorediSCSIVolume {
15780	s.VolumeId = &v
15781	return s
15782}
15783
15784// SetVolumeProgress sets the VolumeProgress field's value.
15785func (s *StorediSCSIVolume) SetVolumeProgress(v float64) *StorediSCSIVolume {
15786	s.VolumeProgress = &v
15787	return s
15788}
15789
15790// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
15791func (s *StorediSCSIVolume) SetVolumeSizeInBytes(v int64) *StorediSCSIVolume {
15792	s.VolumeSizeInBytes = &v
15793	return s
15794}
15795
15796// SetVolumeStatus sets the VolumeStatus field's value.
15797func (s *StorediSCSIVolume) SetVolumeStatus(v string) *StorediSCSIVolume {
15798	s.VolumeStatus = &v
15799	return s
15800}
15801
15802// SetVolumeType sets the VolumeType field's value.
15803func (s *StorediSCSIVolume) SetVolumeType(v string) *StorediSCSIVolume {
15804	s.VolumeType = &v
15805	return s
15806}
15807
15808// SetVolumeUsedInBytes sets the VolumeUsedInBytes field's value.
15809func (s *StorediSCSIVolume) SetVolumeUsedInBytes(v int64) *StorediSCSIVolume {
15810	s.VolumeUsedInBytes = &v
15811	return s
15812}
15813
15814// SetVolumeiSCSIAttributes sets the VolumeiSCSIAttributes field's value.
15815func (s *StorediSCSIVolume) SetVolumeiSCSIAttributes(v *VolumeiSCSIAttributes) *StorediSCSIVolume {
15816	s.VolumeiSCSIAttributes = v
15817	return s
15818}
15819
15820// A key-value pair that helps you manage, filter, and search for your resource.
15821// Allowed characters: letters, white space, and numbers, representable in UTF-8,
15822// and the following characters: + - = . _ : /
15823type Tag struct {
15824	_ struct{} `type:"structure"`
15825
15826	// Tag key (String). The key can't start with aws:.
15827	//
15828	// Key is a required field
15829	Key *string `min:"1" type:"string" required:"true"`
15830
15831	// Value of the tag key.
15832	//
15833	// Value is a required field
15834	Value *string `type:"string" required:"true"`
15835}
15836
15837// String returns the string representation
15838func (s Tag) String() string {
15839	return awsutil.Prettify(s)
15840}
15841
15842// GoString returns the string representation
15843func (s Tag) GoString() string {
15844	return s.String()
15845}
15846
15847// Validate inspects the fields of the type to determine if they are valid.
15848func (s *Tag) Validate() error {
15849	invalidParams := request.ErrInvalidParams{Context: "Tag"}
15850	if s.Key == nil {
15851		invalidParams.Add(request.NewErrParamRequired("Key"))
15852	}
15853	if s.Key != nil && len(*s.Key) < 1 {
15854		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
15855	}
15856	if s.Value == nil {
15857		invalidParams.Add(request.NewErrParamRequired("Value"))
15858	}
15859
15860	if invalidParams.Len() > 0 {
15861		return invalidParams
15862	}
15863	return nil
15864}
15865
15866// SetKey sets the Key field's value.
15867func (s *Tag) SetKey(v string) *Tag {
15868	s.Key = &v
15869	return s
15870}
15871
15872// SetValue sets the Value field's value.
15873func (s *Tag) SetValue(v string) *Tag {
15874	s.Value = &v
15875	return s
15876}
15877
15878// Describes a virtual tape object.
15879type Tape struct {
15880	_ struct{} `type:"structure"`
15881
15882	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
15883	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
15884	KMSKey *string `min:"7" type:"string"`
15885
15886	// The ID of the pool that contains tapes that will be archived. The tapes in
15887	// this pool are archived in the S3 storage class that is associated with the
15888	// pool. When you use your backup application to eject the tape, the tape is
15889	// archived directly into the storage class (Glacier or Deep Archive) that corresponds
15890	// to the pool.
15891	//
15892	// Valid values: "GLACIER", "DEEP_ARCHIVE"
15893	PoolId *string `min:"1" type:"string"`
15894
15895	// For archiving virtual tapes, indicates how much data remains to be uploaded
15896	// before archiving is complete.
15897	//
15898	// Range: 0 (not started) to 100 (complete).
15899	Progress *float64 `type:"double"`
15900
15901	// The Amazon Resource Name (ARN) of the virtual tape.
15902	TapeARN *string `min:"50" type:"string"`
15903
15904	// The barcode that identifies a specific virtual tape.
15905	TapeBarcode *string `min:"7" type:"string"`
15906
15907	// The date the virtual tape was created.
15908	TapeCreatedDate *time.Time `type:"timestamp"`
15909
15910	// The size, in bytes, of the virtual tape capacity.
15911	TapeSizeInBytes *int64 `type:"long"`
15912
15913	// The current state of the virtual tape.
15914	TapeStatus *string `type:"string"`
15915
15916	// The size, in bytes, of data stored on the virtual tape.
15917	//
15918	// This value is not available for tapes created prior to May 13, 2015.
15919	TapeUsedInBytes *int64 `type:"long"`
15920
15921	// The virtual tape library (VTL) device that the virtual tape is associated
15922	// with.
15923	VTLDevice *string `min:"50" type:"string"`
15924}
15925
15926// String returns the string representation
15927func (s Tape) String() string {
15928	return awsutil.Prettify(s)
15929}
15930
15931// GoString returns the string representation
15932func (s Tape) GoString() string {
15933	return s.String()
15934}
15935
15936// SetKMSKey sets the KMSKey field's value.
15937func (s *Tape) SetKMSKey(v string) *Tape {
15938	s.KMSKey = &v
15939	return s
15940}
15941
15942// SetPoolId sets the PoolId field's value.
15943func (s *Tape) SetPoolId(v string) *Tape {
15944	s.PoolId = &v
15945	return s
15946}
15947
15948// SetProgress sets the Progress field's value.
15949func (s *Tape) SetProgress(v float64) *Tape {
15950	s.Progress = &v
15951	return s
15952}
15953
15954// SetTapeARN sets the TapeARN field's value.
15955func (s *Tape) SetTapeARN(v string) *Tape {
15956	s.TapeARN = &v
15957	return s
15958}
15959
15960// SetTapeBarcode sets the TapeBarcode field's value.
15961func (s *Tape) SetTapeBarcode(v string) *Tape {
15962	s.TapeBarcode = &v
15963	return s
15964}
15965
15966// SetTapeCreatedDate sets the TapeCreatedDate field's value.
15967func (s *Tape) SetTapeCreatedDate(v time.Time) *Tape {
15968	s.TapeCreatedDate = &v
15969	return s
15970}
15971
15972// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
15973func (s *Tape) SetTapeSizeInBytes(v int64) *Tape {
15974	s.TapeSizeInBytes = &v
15975	return s
15976}
15977
15978// SetTapeStatus sets the TapeStatus field's value.
15979func (s *Tape) SetTapeStatus(v string) *Tape {
15980	s.TapeStatus = &v
15981	return s
15982}
15983
15984// SetTapeUsedInBytes sets the TapeUsedInBytes field's value.
15985func (s *Tape) SetTapeUsedInBytes(v int64) *Tape {
15986	s.TapeUsedInBytes = &v
15987	return s
15988}
15989
15990// SetVTLDevice sets the VTLDevice field's value.
15991func (s *Tape) SetVTLDevice(v string) *Tape {
15992	s.VTLDevice = &v
15993	return s
15994}
15995
15996// Represents a virtual tape that is archived in the virtual tape shelf (VTS).
15997type TapeArchive struct {
15998	_ struct{} `type:"structure"`
15999
16000	// The time that the archiving of the virtual tape was completed.
16001	//
16002	// The default time stamp format is in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z'
16003	// format.
16004	CompletionTime *time.Time `type:"timestamp"`
16005
16006	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
16007	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
16008	KMSKey *string `min:"7" type:"string"`
16009
16010	// The ID of the pool that was used to archive the tape. The tapes in this pool
16011	// are archived in the S3 storage class that is associated with the pool.
16012	//
16013	// Valid values: "GLACIER", "DEEP_ARCHIVE"
16014	PoolId *string `min:"1" type:"string"`
16015
16016	// The Amazon Resource Name (ARN) of the tape gateway that the virtual tape
16017	// is being retrieved to.
16018	//
16019	// The virtual tape is retrieved from the virtual tape shelf (VTS).
16020	RetrievedTo *string `min:"50" type:"string"`
16021
16022	// The Amazon Resource Name (ARN) of an archived virtual tape.
16023	TapeARN *string `min:"50" type:"string"`
16024
16025	// The barcode that identifies the archived virtual tape.
16026	TapeBarcode *string `min:"7" type:"string"`
16027
16028	// The date the virtual tape was created.
16029	TapeCreatedDate *time.Time `type:"timestamp"`
16030
16031	// The size, in bytes, of the archived virtual tape.
16032	TapeSizeInBytes *int64 `type:"long"`
16033
16034	// The current state of the archived virtual tape.
16035	TapeStatus *string `type:"string"`
16036
16037	// The size, in bytes, of data stored on the virtual tape.
16038	//
16039	// This value is not available for tapes created prior to May 13, 2015.
16040	TapeUsedInBytes *int64 `type:"long"`
16041}
16042
16043// String returns the string representation
16044func (s TapeArchive) String() string {
16045	return awsutil.Prettify(s)
16046}
16047
16048// GoString returns the string representation
16049func (s TapeArchive) GoString() string {
16050	return s.String()
16051}
16052
16053// SetCompletionTime sets the CompletionTime field's value.
16054func (s *TapeArchive) SetCompletionTime(v time.Time) *TapeArchive {
16055	s.CompletionTime = &v
16056	return s
16057}
16058
16059// SetKMSKey sets the KMSKey field's value.
16060func (s *TapeArchive) SetKMSKey(v string) *TapeArchive {
16061	s.KMSKey = &v
16062	return s
16063}
16064
16065// SetPoolId sets the PoolId field's value.
16066func (s *TapeArchive) SetPoolId(v string) *TapeArchive {
16067	s.PoolId = &v
16068	return s
16069}
16070
16071// SetRetrievedTo sets the RetrievedTo field's value.
16072func (s *TapeArchive) SetRetrievedTo(v string) *TapeArchive {
16073	s.RetrievedTo = &v
16074	return s
16075}
16076
16077// SetTapeARN sets the TapeARN field's value.
16078func (s *TapeArchive) SetTapeARN(v string) *TapeArchive {
16079	s.TapeARN = &v
16080	return s
16081}
16082
16083// SetTapeBarcode sets the TapeBarcode field's value.
16084func (s *TapeArchive) SetTapeBarcode(v string) *TapeArchive {
16085	s.TapeBarcode = &v
16086	return s
16087}
16088
16089// SetTapeCreatedDate sets the TapeCreatedDate field's value.
16090func (s *TapeArchive) SetTapeCreatedDate(v time.Time) *TapeArchive {
16091	s.TapeCreatedDate = &v
16092	return s
16093}
16094
16095// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
16096func (s *TapeArchive) SetTapeSizeInBytes(v int64) *TapeArchive {
16097	s.TapeSizeInBytes = &v
16098	return s
16099}
16100
16101// SetTapeStatus sets the TapeStatus field's value.
16102func (s *TapeArchive) SetTapeStatus(v string) *TapeArchive {
16103	s.TapeStatus = &v
16104	return s
16105}
16106
16107// SetTapeUsedInBytes sets the TapeUsedInBytes field's value.
16108func (s *TapeArchive) SetTapeUsedInBytes(v int64) *TapeArchive {
16109	s.TapeUsedInBytes = &v
16110	return s
16111}
16112
16113// Describes a virtual tape.
16114type TapeInfo struct {
16115	_ struct{} `type:"structure"`
16116
16117	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16118	// to return a list of gateways for your account and AWS Region.
16119	GatewayARN *string `min:"50" type:"string"`
16120
16121	// The ID of the pool that you want to add your tape to for archiving. The tape
16122	// in this pool is archived in the S3 storage class that is associated with
16123	// the pool. When you use your backup application to eject the tape, the tape
16124	// is archived directly into the storage class (Glacier or Deep Archive) that
16125	// corresponds to the pool.
16126	//
16127	// Valid values: "GLACIER", "DEEP_ARCHIVE"
16128	PoolId *string `min:"1" type:"string"`
16129
16130	// The Amazon Resource Name (ARN) of a virtual tape.
16131	TapeARN *string `min:"50" type:"string"`
16132
16133	// The barcode that identifies a specific virtual tape.
16134	TapeBarcode *string `min:"7" type:"string"`
16135
16136	// The size, in bytes, of a virtual tape.
16137	TapeSizeInBytes *int64 `type:"long"`
16138
16139	// The status of the tape.
16140	TapeStatus *string `type:"string"`
16141}
16142
16143// String returns the string representation
16144func (s TapeInfo) String() string {
16145	return awsutil.Prettify(s)
16146}
16147
16148// GoString returns the string representation
16149func (s TapeInfo) GoString() string {
16150	return s.String()
16151}
16152
16153// SetGatewayARN sets the GatewayARN field's value.
16154func (s *TapeInfo) SetGatewayARN(v string) *TapeInfo {
16155	s.GatewayARN = &v
16156	return s
16157}
16158
16159// SetPoolId sets the PoolId field's value.
16160func (s *TapeInfo) SetPoolId(v string) *TapeInfo {
16161	s.PoolId = &v
16162	return s
16163}
16164
16165// SetTapeARN sets the TapeARN field's value.
16166func (s *TapeInfo) SetTapeARN(v string) *TapeInfo {
16167	s.TapeARN = &v
16168	return s
16169}
16170
16171// SetTapeBarcode sets the TapeBarcode field's value.
16172func (s *TapeInfo) SetTapeBarcode(v string) *TapeInfo {
16173	s.TapeBarcode = &v
16174	return s
16175}
16176
16177// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
16178func (s *TapeInfo) SetTapeSizeInBytes(v int64) *TapeInfo {
16179	s.TapeSizeInBytes = &v
16180	return s
16181}
16182
16183// SetTapeStatus sets the TapeStatus field's value.
16184func (s *TapeInfo) SetTapeStatus(v string) *TapeInfo {
16185	s.TapeStatus = &v
16186	return s
16187}
16188
16189// Describes a recovery point.
16190type TapeRecoveryPointInfo struct {
16191	_ struct{} `type:"structure"`
16192
16193	// The Amazon Resource Name (ARN) of the virtual tape.
16194	TapeARN *string `min:"50" type:"string"`
16195
16196	// The time when the point-in-time view of the virtual tape was replicated for
16197	// later recovery.
16198	//
16199	// The default time stamp format of the tape recovery point time is in the ISO8601
16200	// extended YYYY-MM-DD'T'HH:MM:SS'Z' format.
16201	TapeRecoveryPointTime *time.Time `type:"timestamp"`
16202
16203	// The size, in bytes, of the virtual tapes to recover.
16204	TapeSizeInBytes *int64 `type:"long"`
16205
16206	// The status of the virtual tapes.
16207	TapeStatus *string `type:"string"`
16208}
16209
16210// String returns the string representation
16211func (s TapeRecoveryPointInfo) String() string {
16212	return awsutil.Prettify(s)
16213}
16214
16215// GoString returns the string representation
16216func (s TapeRecoveryPointInfo) GoString() string {
16217	return s.String()
16218}
16219
16220// SetTapeARN sets the TapeARN field's value.
16221func (s *TapeRecoveryPointInfo) SetTapeARN(v string) *TapeRecoveryPointInfo {
16222	s.TapeARN = &v
16223	return s
16224}
16225
16226// SetTapeRecoveryPointTime sets the TapeRecoveryPointTime field's value.
16227func (s *TapeRecoveryPointInfo) SetTapeRecoveryPointTime(v time.Time) *TapeRecoveryPointInfo {
16228	s.TapeRecoveryPointTime = &v
16229	return s
16230}
16231
16232// SetTapeSizeInBytes sets the TapeSizeInBytes field's value.
16233func (s *TapeRecoveryPointInfo) SetTapeSizeInBytes(v int64) *TapeRecoveryPointInfo {
16234	s.TapeSizeInBytes = &v
16235	return s
16236}
16237
16238// SetTapeStatus sets the TapeStatus field's value.
16239func (s *TapeRecoveryPointInfo) SetTapeStatus(v string) *TapeRecoveryPointInfo {
16240	s.TapeStatus = &v
16241	return s
16242}
16243
16244// A JSON object containing one or more of the following fields:
16245//
16246//    * UpdateBandwidthRateLimitInput$AverageDownloadRateLimitInBitsPerSec
16247//
16248//    * UpdateBandwidthRateLimitInput$AverageUploadRateLimitInBitsPerSec
16249type UpdateBandwidthRateLimitInput struct {
16250	_ struct{} `type:"structure"`
16251
16252	// The average download bandwidth rate limit in bits per second.
16253	AverageDownloadRateLimitInBitsPerSec *int64 `min:"102400" type:"long"`
16254
16255	// The average upload bandwidth rate limit in bits per second.
16256	AverageUploadRateLimitInBitsPerSec *int64 `min:"51200" type:"long"`
16257
16258	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16259	// to return a list of gateways for your account and AWS Region.
16260	//
16261	// GatewayARN is a required field
16262	GatewayARN *string `min:"50" type:"string" required:"true"`
16263}
16264
16265// String returns the string representation
16266func (s UpdateBandwidthRateLimitInput) String() string {
16267	return awsutil.Prettify(s)
16268}
16269
16270// GoString returns the string representation
16271func (s UpdateBandwidthRateLimitInput) GoString() string {
16272	return s.String()
16273}
16274
16275// Validate inspects the fields of the type to determine if they are valid.
16276func (s *UpdateBandwidthRateLimitInput) Validate() error {
16277	invalidParams := request.ErrInvalidParams{Context: "UpdateBandwidthRateLimitInput"}
16278	if s.AverageDownloadRateLimitInBitsPerSec != nil && *s.AverageDownloadRateLimitInBitsPerSec < 102400 {
16279		invalidParams.Add(request.NewErrParamMinValue("AverageDownloadRateLimitInBitsPerSec", 102400))
16280	}
16281	if s.AverageUploadRateLimitInBitsPerSec != nil && *s.AverageUploadRateLimitInBitsPerSec < 51200 {
16282		invalidParams.Add(request.NewErrParamMinValue("AverageUploadRateLimitInBitsPerSec", 51200))
16283	}
16284	if s.GatewayARN == nil {
16285		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16286	}
16287	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16288		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16289	}
16290
16291	if invalidParams.Len() > 0 {
16292		return invalidParams
16293	}
16294	return nil
16295}
16296
16297// SetAverageDownloadRateLimitInBitsPerSec sets the AverageDownloadRateLimitInBitsPerSec field's value.
16298func (s *UpdateBandwidthRateLimitInput) SetAverageDownloadRateLimitInBitsPerSec(v int64) *UpdateBandwidthRateLimitInput {
16299	s.AverageDownloadRateLimitInBitsPerSec = &v
16300	return s
16301}
16302
16303// SetAverageUploadRateLimitInBitsPerSec sets the AverageUploadRateLimitInBitsPerSec field's value.
16304func (s *UpdateBandwidthRateLimitInput) SetAverageUploadRateLimitInBitsPerSec(v int64) *UpdateBandwidthRateLimitInput {
16305	s.AverageUploadRateLimitInBitsPerSec = &v
16306	return s
16307}
16308
16309// SetGatewayARN sets the GatewayARN field's value.
16310func (s *UpdateBandwidthRateLimitInput) SetGatewayARN(v string) *UpdateBandwidthRateLimitInput {
16311	s.GatewayARN = &v
16312	return s
16313}
16314
16315// A JSON object containing the of the gateway whose throttle information was
16316// updated.
16317type UpdateBandwidthRateLimitOutput struct {
16318	_ struct{} `type:"structure"`
16319
16320	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16321	// to return a list of gateways for your account and AWS Region.
16322	GatewayARN *string `min:"50" type:"string"`
16323}
16324
16325// String returns the string representation
16326func (s UpdateBandwidthRateLimitOutput) String() string {
16327	return awsutil.Prettify(s)
16328}
16329
16330// GoString returns the string representation
16331func (s UpdateBandwidthRateLimitOutput) GoString() string {
16332	return s.String()
16333}
16334
16335// SetGatewayARN sets the GatewayARN field's value.
16336func (s *UpdateBandwidthRateLimitOutput) SetGatewayARN(v string) *UpdateBandwidthRateLimitOutput {
16337	s.GatewayARN = &v
16338	return s
16339}
16340
16341// A JSON object containing one or more of the following fields:
16342//
16343//    * UpdateChapCredentialsInput$InitiatorName
16344//
16345//    * UpdateChapCredentialsInput$SecretToAuthenticateInitiator
16346//
16347//    * UpdateChapCredentialsInput$SecretToAuthenticateTarget
16348//
16349//    * UpdateChapCredentialsInput$TargetARN
16350type UpdateChapCredentialsInput struct {
16351	_ struct{} `type:"structure"`
16352
16353	// The iSCSI initiator that connects to the target.
16354	//
16355	// InitiatorName is a required field
16356	InitiatorName *string `min:"1" type:"string" required:"true"`
16357
16358	// The secret key that the initiator (for example, the Windows client) must
16359	// provide to participate in mutual CHAP with the target.
16360	//
16361	// The secret key must be between 12 and 16 bytes when encoded in UTF-8.
16362	//
16363	// SecretToAuthenticateInitiator is a required field
16364	SecretToAuthenticateInitiator *string `min:"1" type:"string" required:"true" sensitive:"true"`
16365
16366	// The secret key that the target must provide to participate in mutual CHAP
16367	// with the initiator (e.g. Windows client).
16368	//
16369	// Byte constraints: Minimum bytes of 12. Maximum bytes of 16.
16370	//
16371	// The secret key must be between 12 and 16 bytes when encoded in UTF-8.
16372	SecretToAuthenticateTarget *string `min:"1" type:"string" sensitive:"true"`
16373
16374	// The Amazon Resource Name (ARN) of the iSCSI volume target. Use the DescribeStorediSCSIVolumes
16375	// operation to return the TargetARN for specified VolumeARN.
16376	//
16377	// TargetARN is a required field
16378	TargetARN *string `min:"50" type:"string" required:"true"`
16379}
16380
16381// String returns the string representation
16382func (s UpdateChapCredentialsInput) String() string {
16383	return awsutil.Prettify(s)
16384}
16385
16386// GoString returns the string representation
16387func (s UpdateChapCredentialsInput) GoString() string {
16388	return s.String()
16389}
16390
16391// Validate inspects the fields of the type to determine if they are valid.
16392func (s *UpdateChapCredentialsInput) Validate() error {
16393	invalidParams := request.ErrInvalidParams{Context: "UpdateChapCredentialsInput"}
16394	if s.InitiatorName == nil {
16395		invalidParams.Add(request.NewErrParamRequired("InitiatorName"))
16396	}
16397	if s.InitiatorName != nil && len(*s.InitiatorName) < 1 {
16398		invalidParams.Add(request.NewErrParamMinLen("InitiatorName", 1))
16399	}
16400	if s.SecretToAuthenticateInitiator == nil {
16401		invalidParams.Add(request.NewErrParamRequired("SecretToAuthenticateInitiator"))
16402	}
16403	if s.SecretToAuthenticateInitiator != nil && len(*s.SecretToAuthenticateInitiator) < 1 {
16404		invalidParams.Add(request.NewErrParamMinLen("SecretToAuthenticateInitiator", 1))
16405	}
16406	if s.SecretToAuthenticateTarget != nil && len(*s.SecretToAuthenticateTarget) < 1 {
16407		invalidParams.Add(request.NewErrParamMinLen("SecretToAuthenticateTarget", 1))
16408	}
16409	if s.TargetARN == nil {
16410		invalidParams.Add(request.NewErrParamRequired("TargetARN"))
16411	}
16412	if s.TargetARN != nil && len(*s.TargetARN) < 50 {
16413		invalidParams.Add(request.NewErrParamMinLen("TargetARN", 50))
16414	}
16415
16416	if invalidParams.Len() > 0 {
16417		return invalidParams
16418	}
16419	return nil
16420}
16421
16422// SetInitiatorName sets the InitiatorName field's value.
16423func (s *UpdateChapCredentialsInput) SetInitiatorName(v string) *UpdateChapCredentialsInput {
16424	s.InitiatorName = &v
16425	return s
16426}
16427
16428// SetSecretToAuthenticateInitiator sets the SecretToAuthenticateInitiator field's value.
16429func (s *UpdateChapCredentialsInput) SetSecretToAuthenticateInitiator(v string) *UpdateChapCredentialsInput {
16430	s.SecretToAuthenticateInitiator = &v
16431	return s
16432}
16433
16434// SetSecretToAuthenticateTarget sets the SecretToAuthenticateTarget field's value.
16435func (s *UpdateChapCredentialsInput) SetSecretToAuthenticateTarget(v string) *UpdateChapCredentialsInput {
16436	s.SecretToAuthenticateTarget = &v
16437	return s
16438}
16439
16440// SetTargetARN sets the TargetARN field's value.
16441func (s *UpdateChapCredentialsInput) SetTargetARN(v string) *UpdateChapCredentialsInput {
16442	s.TargetARN = &v
16443	return s
16444}
16445
16446// A JSON object containing the following fields:
16447type UpdateChapCredentialsOutput struct {
16448	_ struct{} `type:"structure"`
16449
16450	// The iSCSI initiator that connects to the target. This is the same initiator
16451	// name specified in the request.
16452	InitiatorName *string `min:"1" type:"string"`
16453
16454	// The Amazon Resource Name (ARN) of the target. This is the same target specified
16455	// in the request.
16456	TargetARN *string `min:"50" type:"string"`
16457}
16458
16459// String returns the string representation
16460func (s UpdateChapCredentialsOutput) String() string {
16461	return awsutil.Prettify(s)
16462}
16463
16464// GoString returns the string representation
16465func (s UpdateChapCredentialsOutput) GoString() string {
16466	return s.String()
16467}
16468
16469// SetInitiatorName sets the InitiatorName field's value.
16470func (s *UpdateChapCredentialsOutput) SetInitiatorName(v string) *UpdateChapCredentialsOutput {
16471	s.InitiatorName = &v
16472	return s
16473}
16474
16475// SetTargetARN sets the TargetARN field's value.
16476func (s *UpdateChapCredentialsOutput) SetTargetARN(v string) *UpdateChapCredentialsOutput {
16477	s.TargetARN = &v
16478	return s
16479}
16480
16481type UpdateGatewayInformationInput struct {
16482	_ struct{} `type:"structure"`
16483
16484	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that you
16485	// want to use to monitor and log events in the gateway.
16486	//
16487	// For more information, see What Is Amazon CloudWatch Logs? (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html).
16488	CloudWatchLogGroupARN *string `type:"string"`
16489
16490	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16491	// to return a list of gateways for your account and AWS Region.
16492	//
16493	// GatewayARN is a required field
16494	GatewayARN *string `min:"50" type:"string" required:"true"`
16495
16496	// The name you configured for your gateway.
16497	GatewayName *string `min:"2" type:"string"`
16498
16499	// A value that indicates the time zone of the gateway.
16500	GatewayTimezone *string `min:"3" type:"string"`
16501}
16502
16503// String returns the string representation
16504func (s UpdateGatewayInformationInput) String() string {
16505	return awsutil.Prettify(s)
16506}
16507
16508// GoString returns the string representation
16509func (s UpdateGatewayInformationInput) GoString() string {
16510	return s.String()
16511}
16512
16513// Validate inspects the fields of the type to determine if they are valid.
16514func (s *UpdateGatewayInformationInput) Validate() error {
16515	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewayInformationInput"}
16516	if s.GatewayARN == nil {
16517		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16518	}
16519	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16520		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16521	}
16522	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
16523		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
16524	}
16525	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
16526		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
16527	}
16528
16529	if invalidParams.Len() > 0 {
16530		return invalidParams
16531	}
16532	return nil
16533}
16534
16535// SetCloudWatchLogGroupARN sets the CloudWatchLogGroupARN field's value.
16536func (s *UpdateGatewayInformationInput) SetCloudWatchLogGroupARN(v string) *UpdateGatewayInformationInput {
16537	s.CloudWatchLogGroupARN = &v
16538	return s
16539}
16540
16541// SetGatewayARN sets the GatewayARN field's value.
16542func (s *UpdateGatewayInformationInput) SetGatewayARN(v string) *UpdateGatewayInformationInput {
16543	s.GatewayARN = &v
16544	return s
16545}
16546
16547// SetGatewayName sets the GatewayName field's value.
16548func (s *UpdateGatewayInformationInput) SetGatewayName(v string) *UpdateGatewayInformationInput {
16549	s.GatewayName = &v
16550	return s
16551}
16552
16553// SetGatewayTimezone sets the GatewayTimezone field's value.
16554func (s *UpdateGatewayInformationInput) SetGatewayTimezone(v string) *UpdateGatewayInformationInput {
16555	s.GatewayTimezone = &v
16556	return s
16557}
16558
16559// A JSON object containing the ARN of the gateway that was updated.
16560type UpdateGatewayInformationOutput struct {
16561	_ struct{} `type:"structure"`
16562
16563	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16564	// to return a list of gateways for your account and AWS Region.
16565	GatewayARN *string `min:"50" type:"string"`
16566
16567	// The name you configured for your gateway.
16568	GatewayName *string `type:"string"`
16569}
16570
16571// String returns the string representation
16572func (s UpdateGatewayInformationOutput) String() string {
16573	return awsutil.Prettify(s)
16574}
16575
16576// GoString returns the string representation
16577func (s UpdateGatewayInformationOutput) GoString() string {
16578	return s.String()
16579}
16580
16581// SetGatewayARN sets the GatewayARN field's value.
16582func (s *UpdateGatewayInformationOutput) SetGatewayARN(v string) *UpdateGatewayInformationOutput {
16583	s.GatewayARN = &v
16584	return s
16585}
16586
16587// SetGatewayName sets the GatewayName field's value.
16588func (s *UpdateGatewayInformationOutput) SetGatewayName(v string) *UpdateGatewayInformationOutput {
16589	s.GatewayName = &v
16590	return s
16591}
16592
16593// A JSON object containing the of the gateway to update.
16594type UpdateGatewaySoftwareNowInput struct {
16595	_ struct{} `type:"structure"`
16596
16597	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16598	// to return a list of gateways for your account and AWS Region.
16599	//
16600	// GatewayARN is a required field
16601	GatewayARN *string `min:"50" type:"string" required:"true"`
16602}
16603
16604// String returns the string representation
16605func (s UpdateGatewaySoftwareNowInput) String() string {
16606	return awsutil.Prettify(s)
16607}
16608
16609// GoString returns the string representation
16610func (s UpdateGatewaySoftwareNowInput) GoString() string {
16611	return s.String()
16612}
16613
16614// Validate inspects the fields of the type to determine if they are valid.
16615func (s *UpdateGatewaySoftwareNowInput) Validate() error {
16616	invalidParams := request.ErrInvalidParams{Context: "UpdateGatewaySoftwareNowInput"}
16617	if s.GatewayARN == nil {
16618		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16619	}
16620	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16621		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16622	}
16623
16624	if invalidParams.Len() > 0 {
16625		return invalidParams
16626	}
16627	return nil
16628}
16629
16630// SetGatewayARN sets the GatewayARN field's value.
16631func (s *UpdateGatewaySoftwareNowInput) SetGatewayARN(v string) *UpdateGatewaySoftwareNowInput {
16632	s.GatewayARN = &v
16633	return s
16634}
16635
16636// A JSON object containing the of the gateway that was updated.
16637type UpdateGatewaySoftwareNowOutput struct {
16638	_ struct{} `type:"structure"`
16639
16640	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16641	// to return a list of gateways for your account and AWS Region.
16642	GatewayARN *string `min:"50" type:"string"`
16643}
16644
16645// String returns the string representation
16646func (s UpdateGatewaySoftwareNowOutput) String() string {
16647	return awsutil.Prettify(s)
16648}
16649
16650// GoString returns the string representation
16651func (s UpdateGatewaySoftwareNowOutput) GoString() string {
16652	return s.String()
16653}
16654
16655// SetGatewayARN sets the GatewayARN field's value.
16656func (s *UpdateGatewaySoftwareNowOutput) SetGatewayARN(v string) *UpdateGatewaySoftwareNowOutput {
16657	s.GatewayARN = &v
16658	return s
16659}
16660
16661// A JSON object containing the following fields:
16662//
16663//    * UpdateMaintenanceStartTimeInput$DayOfMonth
16664//
16665//    * UpdateMaintenanceStartTimeInput$DayOfWeek
16666//
16667//    * UpdateMaintenanceStartTimeInput$HourOfDay
16668//
16669//    * UpdateMaintenanceStartTimeInput$MinuteOfHour
16670type UpdateMaintenanceStartTimeInput struct {
16671	_ struct{} `type:"structure"`
16672
16673	// The day of the month component of the maintenance start time represented
16674	// as an ordinal number from 1 to 28, where 1 represents the first day of the
16675	// month and 28 represents the last day of the month.
16676	//
16677	// This value is only available for tape and volume gateways.
16678	DayOfMonth *int64 `min:"1" type:"integer"`
16679
16680	// The day of the week component of the maintenance start time week represented
16681	// as an ordinal number from 0 to 6, where 0 represents Sunday and 6 Saturday.
16682	DayOfWeek *int64 `type:"integer"`
16683
16684	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16685	// to return a list of gateways for your account and AWS Region.
16686	//
16687	// GatewayARN is a required field
16688	GatewayARN *string `min:"50" type:"string" required:"true"`
16689
16690	// The hour component of the maintenance start time represented as hh, where
16691	// hh is the hour (00 to 23). The hour of the day is in the time zone of the
16692	// gateway.
16693	//
16694	// HourOfDay is a required field
16695	HourOfDay *int64 `type:"integer" required:"true"`
16696
16697	// The minute component of the maintenance start time represented as mm, where
16698	// mm is the minute (00 to 59). The minute of the hour is in the time zone of
16699	// the gateway.
16700	//
16701	// MinuteOfHour is a required field
16702	MinuteOfHour *int64 `type:"integer" required:"true"`
16703}
16704
16705// String returns the string representation
16706func (s UpdateMaintenanceStartTimeInput) String() string {
16707	return awsutil.Prettify(s)
16708}
16709
16710// GoString returns the string representation
16711func (s UpdateMaintenanceStartTimeInput) GoString() string {
16712	return s.String()
16713}
16714
16715// Validate inspects the fields of the type to determine if they are valid.
16716func (s *UpdateMaintenanceStartTimeInput) Validate() error {
16717	invalidParams := request.ErrInvalidParams{Context: "UpdateMaintenanceStartTimeInput"}
16718	if s.DayOfMonth != nil && *s.DayOfMonth < 1 {
16719		invalidParams.Add(request.NewErrParamMinValue("DayOfMonth", 1))
16720	}
16721	if s.GatewayARN == nil {
16722		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
16723	}
16724	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
16725		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
16726	}
16727	if s.HourOfDay == nil {
16728		invalidParams.Add(request.NewErrParamRequired("HourOfDay"))
16729	}
16730	if s.MinuteOfHour == nil {
16731		invalidParams.Add(request.NewErrParamRequired("MinuteOfHour"))
16732	}
16733
16734	if invalidParams.Len() > 0 {
16735		return invalidParams
16736	}
16737	return nil
16738}
16739
16740// SetDayOfMonth sets the DayOfMonth field's value.
16741func (s *UpdateMaintenanceStartTimeInput) SetDayOfMonth(v int64) *UpdateMaintenanceStartTimeInput {
16742	s.DayOfMonth = &v
16743	return s
16744}
16745
16746// SetDayOfWeek sets the DayOfWeek field's value.
16747func (s *UpdateMaintenanceStartTimeInput) SetDayOfWeek(v int64) *UpdateMaintenanceStartTimeInput {
16748	s.DayOfWeek = &v
16749	return s
16750}
16751
16752// SetGatewayARN sets the GatewayARN field's value.
16753func (s *UpdateMaintenanceStartTimeInput) SetGatewayARN(v string) *UpdateMaintenanceStartTimeInput {
16754	s.GatewayARN = &v
16755	return s
16756}
16757
16758// SetHourOfDay sets the HourOfDay field's value.
16759func (s *UpdateMaintenanceStartTimeInput) SetHourOfDay(v int64) *UpdateMaintenanceStartTimeInput {
16760	s.HourOfDay = &v
16761	return s
16762}
16763
16764// SetMinuteOfHour sets the MinuteOfHour field's value.
16765func (s *UpdateMaintenanceStartTimeInput) SetMinuteOfHour(v int64) *UpdateMaintenanceStartTimeInput {
16766	s.MinuteOfHour = &v
16767	return s
16768}
16769
16770// A JSON object containing the of the gateway whose maintenance start time
16771// is updated.
16772type UpdateMaintenanceStartTimeOutput struct {
16773	_ struct{} `type:"structure"`
16774
16775	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
16776	// to return a list of gateways for your account and AWS Region.
16777	GatewayARN *string `min:"50" type:"string"`
16778}
16779
16780// String returns the string representation
16781func (s UpdateMaintenanceStartTimeOutput) String() string {
16782	return awsutil.Prettify(s)
16783}
16784
16785// GoString returns the string representation
16786func (s UpdateMaintenanceStartTimeOutput) GoString() string {
16787	return s.String()
16788}
16789
16790// SetGatewayARN sets the GatewayARN field's value.
16791func (s *UpdateMaintenanceStartTimeOutput) SetGatewayARN(v string) *UpdateMaintenanceStartTimeOutput {
16792	s.GatewayARN = &v
16793	return s
16794}
16795
16796// UpdateNFSFileShareInput
16797type UpdateNFSFileShareInput struct {
16798	_ struct{} `type:"structure"`
16799
16800	// The list of clients that are allowed to access the file gateway. The list
16801	// must contain either valid IP addresses or valid CIDR blocks.
16802	ClientList []*string `min:"1" type:"list"`
16803
16804	// The default storage class for objects put into an Amazon S3 bucket by the
16805	// file gateway. Possible values are S3_STANDARD, S3_STANDARD_IA, or S3_ONEZONE_IA.
16806	// If this field is not populated, the default value S3_STANDARD is used. Optional.
16807	DefaultStorageClass *string `min:"5" type:"string"`
16808
16809	// The Amazon Resource Name (ARN) of the file share to be updated.
16810	//
16811	// FileShareARN is a required field
16812	FileShareARN *string `min:"50" type:"string" required:"true"`
16813
16814	// A value that enables guessing of the MIME type for uploaded objects based
16815	// on file extensions. Set this value to true to enable MIME type guessing,
16816	// and otherwise to false. The default value is true.
16817	GuessMIMETypeEnabled *bool `type:"boolean"`
16818
16819	// True to use Amazon S3 server side encryption with your own AWS KMS key, or
16820	// false to use a key managed by Amazon S3. Optional.
16821	KMSEncrypted *bool `type:"boolean"`
16822
16823	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
16824	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
16825	KMSKey *string `min:"7" type:"string"`
16826
16827	// The default values for the file share. Optional.
16828	NFSFileShareDefaults *NFSFileShareDefaults `type:"structure"`
16829
16830	// A value that sets the access control list permission for objects in the S3
16831	// bucket that a file gateway puts objects into. The default value is "private".
16832	ObjectACL *string `type:"string" enum:"ObjectACL"`
16833
16834	// A value that sets the write status of a file share. This value is true if
16835	// the write status is read-only, and otherwise false.
16836	ReadOnly *bool `type:"boolean"`
16837
16838	// A value that sets who pays the cost of the request and the cost associated
16839	// with data download from the S3 bucket. If this value is set to true, the
16840	// requester pays the costs. Otherwise the S3 bucket owner pays. However, the
16841	// S3 bucket owner always pays the cost of storing data.
16842	//
16843	// RequesterPays is a configuration for the S3 bucket that backs the file share,
16844	// so make sure that the configuration on the file share is the same as the
16845	// S3 bucket configuration.
16846	RequesterPays *bool `type:"boolean"`
16847
16848	// The user mapped to anonymous user. Valid options are the following:
16849	//
16850	//    * RootSquash - Only root is mapped to anonymous user.
16851	//
16852	//    * NoSquash - No one is mapped to anonymous user
16853	//
16854	//    * AllSquash - Everyone is mapped to anonymous user.
16855	Squash *string `min:"5" type:"string"`
16856}
16857
16858// String returns the string representation
16859func (s UpdateNFSFileShareInput) String() string {
16860	return awsutil.Prettify(s)
16861}
16862
16863// GoString returns the string representation
16864func (s UpdateNFSFileShareInput) GoString() string {
16865	return s.String()
16866}
16867
16868// Validate inspects the fields of the type to determine if they are valid.
16869func (s *UpdateNFSFileShareInput) Validate() error {
16870	invalidParams := request.ErrInvalidParams{Context: "UpdateNFSFileShareInput"}
16871	if s.ClientList != nil && len(s.ClientList) < 1 {
16872		invalidParams.Add(request.NewErrParamMinLen("ClientList", 1))
16873	}
16874	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
16875		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
16876	}
16877	if s.FileShareARN == nil {
16878		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
16879	}
16880	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
16881		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
16882	}
16883	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
16884		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
16885	}
16886	if s.Squash != nil && len(*s.Squash) < 5 {
16887		invalidParams.Add(request.NewErrParamMinLen("Squash", 5))
16888	}
16889	if s.NFSFileShareDefaults != nil {
16890		if err := s.NFSFileShareDefaults.Validate(); err != nil {
16891			invalidParams.AddNested("NFSFileShareDefaults", err.(request.ErrInvalidParams))
16892		}
16893	}
16894
16895	if invalidParams.Len() > 0 {
16896		return invalidParams
16897	}
16898	return nil
16899}
16900
16901// SetClientList sets the ClientList field's value.
16902func (s *UpdateNFSFileShareInput) SetClientList(v []*string) *UpdateNFSFileShareInput {
16903	s.ClientList = v
16904	return s
16905}
16906
16907// SetDefaultStorageClass sets the DefaultStorageClass field's value.
16908func (s *UpdateNFSFileShareInput) SetDefaultStorageClass(v string) *UpdateNFSFileShareInput {
16909	s.DefaultStorageClass = &v
16910	return s
16911}
16912
16913// SetFileShareARN sets the FileShareARN field's value.
16914func (s *UpdateNFSFileShareInput) SetFileShareARN(v string) *UpdateNFSFileShareInput {
16915	s.FileShareARN = &v
16916	return s
16917}
16918
16919// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
16920func (s *UpdateNFSFileShareInput) SetGuessMIMETypeEnabled(v bool) *UpdateNFSFileShareInput {
16921	s.GuessMIMETypeEnabled = &v
16922	return s
16923}
16924
16925// SetKMSEncrypted sets the KMSEncrypted field's value.
16926func (s *UpdateNFSFileShareInput) SetKMSEncrypted(v bool) *UpdateNFSFileShareInput {
16927	s.KMSEncrypted = &v
16928	return s
16929}
16930
16931// SetKMSKey sets the KMSKey field's value.
16932func (s *UpdateNFSFileShareInput) SetKMSKey(v string) *UpdateNFSFileShareInput {
16933	s.KMSKey = &v
16934	return s
16935}
16936
16937// SetNFSFileShareDefaults sets the NFSFileShareDefaults field's value.
16938func (s *UpdateNFSFileShareInput) SetNFSFileShareDefaults(v *NFSFileShareDefaults) *UpdateNFSFileShareInput {
16939	s.NFSFileShareDefaults = v
16940	return s
16941}
16942
16943// SetObjectACL sets the ObjectACL field's value.
16944func (s *UpdateNFSFileShareInput) SetObjectACL(v string) *UpdateNFSFileShareInput {
16945	s.ObjectACL = &v
16946	return s
16947}
16948
16949// SetReadOnly sets the ReadOnly field's value.
16950func (s *UpdateNFSFileShareInput) SetReadOnly(v bool) *UpdateNFSFileShareInput {
16951	s.ReadOnly = &v
16952	return s
16953}
16954
16955// SetRequesterPays sets the RequesterPays field's value.
16956func (s *UpdateNFSFileShareInput) SetRequesterPays(v bool) *UpdateNFSFileShareInput {
16957	s.RequesterPays = &v
16958	return s
16959}
16960
16961// SetSquash sets the Squash field's value.
16962func (s *UpdateNFSFileShareInput) SetSquash(v string) *UpdateNFSFileShareInput {
16963	s.Squash = &v
16964	return s
16965}
16966
16967// UpdateNFSFileShareOutput
16968type UpdateNFSFileShareOutput struct {
16969	_ struct{} `type:"structure"`
16970
16971	// The Amazon Resource Name (ARN) of the updated file share.
16972	FileShareARN *string `min:"50" type:"string"`
16973}
16974
16975// String returns the string representation
16976func (s UpdateNFSFileShareOutput) String() string {
16977	return awsutil.Prettify(s)
16978}
16979
16980// GoString returns the string representation
16981func (s UpdateNFSFileShareOutput) GoString() string {
16982	return s.String()
16983}
16984
16985// SetFileShareARN sets the FileShareARN field's value.
16986func (s *UpdateNFSFileShareOutput) SetFileShareARN(v string) *UpdateNFSFileShareOutput {
16987	s.FileShareARN = &v
16988	return s
16989}
16990
16991// UpdateSMBFileShareInput
16992type UpdateSMBFileShareInput struct {
16993	_ struct{} `type:"structure"`
16994
16995	// A list of users in the Active Directory that have administrator rights to
16996	// the file share. A group must be prefixed with the @ character. For example
16997	// @group1. Can only be set if Authentication is set to ActiveDirectory.
16998	AdminUserList []*string `type:"list"`
16999
17000	// The default storage class for objects put into an Amazon S3 bucket by the
17001	// file gateway. Possible values are S3_STANDARD, S3_STANDARD_IA, or S3_ONEZONE_IA.
17002	// If this field is not populated, the default value S3_STANDARD is used. Optional.
17003	DefaultStorageClass *string `min:"5" type:"string"`
17004
17005	// The Amazon Resource Name (ARN) of the SMB file share that you want to update.
17006	//
17007	// FileShareARN is a required field
17008	FileShareARN *string `min:"50" type:"string" required:"true"`
17009
17010	// A value that enables guessing of the MIME type for uploaded objects based
17011	// on file extensions. Set this value to true to enable MIME type guessing,
17012	// and otherwise to false. The default value is true.
17013	GuessMIMETypeEnabled *bool `type:"boolean"`
17014
17015	// A list of users or groups in the Active Directory that are not allowed to
17016	// access the file share. A group must be prefixed with the @ character. For
17017	// example @group1. Can only be set if Authentication is set to ActiveDirectory.
17018	InvalidUserList []*string `type:"list"`
17019
17020	// True to use Amazon S3 server side encryption with your own AWS KMS key, or
17021	// false to use a key managed by Amazon S3. Optional.
17022	KMSEncrypted *bool `type:"boolean"`
17023
17024	// The Amazon Resource Name (ARN) of the AWS KMS key used for Amazon S3 server
17025	// side encryption. This value can only be set when KMSEncrypted is true. Optional.
17026	KMSKey *string `min:"7" type:"string"`
17027
17028	// A value that sets the access control list permission for objects in the S3
17029	// bucket that a file gateway puts objects into. The default value is "private".
17030	ObjectACL *string `type:"string" enum:"ObjectACL"`
17031
17032	// A value that sets the write status of a file share. This value is true if
17033	// the write status is read-only, and otherwise false.
17034	ReadOnly *bool `type:"boolean"`
17035
17036	// A value that sets who pays the cost of the request and the cost associated
17037	// with data download from the S3 bucket. If this value is set to true, the
17038	// requester pays the costs. Otherwise the S3 bucket owner pays. However, the
17039	// S3 bucket owner always pays the cost of storing data.
17040	//
17041	// RequesterPays is a configuration for the S3 bucket that backs the file share,
17042	// so make sure that the configuration on the file share is the same as the
17043	// S3 bucket configuration.
17044	RequesterPays *bool `type:"boolean"`
17045
17046	// Set this value to "true to enable ACL (access control list) on the SMB file
17047	// share. Set it to "false" to map file and directory permissions to the POSIX
17048	// permissions.
17049	//
17050	// For more information, see https://docs.aws.amazon.com/storagegateway/latest/userguide/smb-acl.htmlin
17051	// the Storage Gateway User Guide.
17052	SMBACLEnabled *bool `type:"boolean"`
17053
17054	// A list of users or groups in the Active Directory that are allowed to access
17055	// the file share. A group must be prefixed with the @ character. For example
17056	// @group1. Can only be set if Authentication is set to ActiveDirectory.
17057	ValidUserList []*string `type:"list"`
17058}
17059
17060// String returns the string representation
17061func (s UpdateSMBFileShareInput) String() string {
17062	return awsutil.Prettify(s)
17063}
17064
17065// GoString returns the string representation
17066func (s UpdateSMBFileShareInput) GoString() string {
17067	return s.String()
17068}
17069
17070// Validate inspects the fields of the type to determine if they are valid.
17071func (s *UpdateSMBFileShareInput) Validate() error {
17072	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBFileShareInput"}
17073	if s.DefaultStorageClass != nil && len(*s.DefaultStorageClass) < 5 {
17074		invalidParams.Add(request.NewErrParamMinLen("DefaultStorageClass", 5))
17075	}
17076	if s.FileShareARN == nil {
17077		invalidParams.Add(request.NewErrParamRequired("FileShareARN"))
17078	}
17079	if s.FileShareARN != nil && len(*s.FileShareARN) < 50 {
17080		invalidParams.Add(request.NewErrParamMinLen("FileShareARN", 50))
17081	}
17082	if s.KMSKey != nil && len(*s.KMSKey) < 7 {
17083		invalidParams.Add(request.NewErrParamMinLen("KMSKey", 7))
17084	}
17085
17086	if invalidParams.Len() > 0 {
17087		return invalidParams
17088	}
17089	return nil
17090}
17091
17092// SetAdminUserList sets the AdminUserList field's value.
17093func (s *UpdateSMBFileShareInput) SetAdminUserList(v []*string) *UpdateSMBFileShareInput {
17094	s.AdminUserList = v
17095	return s
17096}
17097
17098// SetDefaultStorageClass sets the DefaultStorageClass field's value.
17099func (s *UpdateSMBFileShareInput) SetDefaultStorageClass(v string) *UpdateSMBFileShareInput {
17100	s.DefaultStorageClass = &v
17101	return s
17102}
17103
17104// SetFileShareARN sets the FileShareARN field's value.
17105func (s *UpdateSMBFileShareInput) SetFileShareARN(v string) *UpdateSMBFileShareInput {
17106	s.FileShareARN = &v
17107	return s
17108}
17109
17110// SetGuessMIMETypeEnabled sets the GuessMIMETypeEnabled field's value.
17111func (s *UpdateSMBFileShareInput) SetGuessMIMETypeEnabled(v bool) *UpdateSMBFileShareInput {
17112	s.GuessMIMETypeEnabled = &v
17113	return s
17114}
17115
17116// SetInvalidUserList sets the InvalidUserList field's value.
17117func (s *UpdateSMBFileShareInput) SetInvalidUserList(v []*string) *UpdateSMBFileShareInput {
17118	s.InvalidUserList = v
17119	return s
17120}
17121
17122// SetKMSEncrypted sets the KMSEncrypted field's value.
17123func (s *UpdateSMBFileShareInput) SetKMSEncrypted(v bool) *UpdateSMBFileShareInput {
17124	s.KMSEncrypted = &v
17125	return s
17126}
17127
17128// SetKMSKey sets the KMSKey field's value.
17129func (s *UpdateSMBFileShareInput) SetKMSKey(v string) *UpdateSMBFileShareInput {
17130	s.KMSKey = &v
17131	return s
17132}
17133
17134// SetObjectACL sets the ObjectACL field's value.
17135func (s *UpdateSMBFileShareInput) SetObjectACL(v string) *UpdateSMBFileShareInput {
17136	s.ObjectACL = &v
17137	return s
17138}
17139
17140// SetReadOnly sets the ReadOnly field's value.
17141func (s *UpdateSMBFileShareInput) SetReadOnly(v bool) *UpdateSMBFileShareInput {
17142	s.ReadOnly = &v
17143	return s
17144}
17145
17146// SetRequesterPays sets the RequesterPays field's value.
17147func (s *UpdateSMBFileShareInput) SetRequesterPays(v bool) *UpdateSMBFileShareInput {
17148	s.RequesterPays = &v
17149	return s
17150}
17151
17152// SetSMBACLEnabled sets the SMBACLEnabled field's value.
17153func (s *UpdateSMBFileShareInput) SetSMBACLEnabled(v bool) *UpdateSMBFileShareInput {
17154	s.SMBACLEnabled = &v
17155	return s
17156}
17157
17158// SetValidUserList sets the ValidUserList field's value.
17159func (s *UpdateSMBFileShareInput) SetValidUserList(v []*string) *UpdateSMBFileShareInput {
17160	s.ValidUserList = v
17161	return s
17162}
17163
17164// UpdateSMBFileShareOutput
17165type UpdateSMBFileShareOutput struct {
17166	_ struct{} `type:"structure"`
17167
17168	// The Amazon Resource Name (ARN) of the updated SMB file share.
17169	FileShareARN *string `min:"50" type:"string"`
17170}
17171
17172// String returns the string representation
17173func (s UpdateSMBFileShareOutput) String() string {
17174	return awsutil.Prettify(s)
17175}
17176
17177// GoString returns the string representation
17178func (s UpdateSMBFileShareOutput) GoString() string {
17179	return s.String()
17180}
17181
17182// SetFileShareARN sets the FileShareARN field's value.
17183func (s *UpdateSMBFileShareOutput) SetFileShareARN(v string) *UpdateSMBFileShareOutput {
17184	s.FileShareARN = &v
17185	return s
17186}
17187
17188type UpdateSMBSecurityStrategyInput struct {
17189	_ struct{} `type:"structure"`
17190
17191	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17192	// to return a list of gateways for your account and AWS Region.
17193	//
17194	// GatewayARN is a required field
17195	GatewayARN *string `min:"50" type:"string" required:"true"`
17196
17197	// Specifies the type of security strategy.
17198	//
17199	// ClientSpecified: if you use this option, requests are established based on
17200	// what is negotiated by the client. This option is recommended when you want
17201	// to maximize compatibility across different clients in your environment.
17202	//
17203	// MandatorySigning: if you use this option, file gateway only allows connections
17204	// from SMBv2 or SMBv3 clients that have signing enabled. This option works
17205	// with SMB clients on Microsoft Windows Vista, Windows Server 2008 or newer.
17206	//
17207	// MandatoryEncryption: if you use this option, file gateway only allows connections
17208	// from SMBv3 clients that have encryption enabled. This option is highly recommended
17209	// for environments that handle sensitive data. This option works with SMB clients
17210	// on Microsoft Windows 8, Windows Server 2012 or newer.
17211	//
17212	// SMBSecurityStrategy is a required field
17213	SMBSecurityStrategy *string `type:"string" required:"true" enum:"SMBSecurityStrategy"`
17214}
17215
17216// String returns the string representation
17217func (s UpdateSMBSecurityStrategyInput) String() string {
17218	return awsutil.Prettify(s)
17219}
17220
17221// GoString returns the string representation
17222func (s UpdateSMBSecurityStrategyInput) GoString() string {
17223	return s.String()
17224}
17225
17226// Validate inspects the fields of the type to determine if they are valid.
17227func (s *UpdateSMBSecurityStrategyInput) Validate() error {
17228	invalidParams := request.ErrInvalidParams{Context: "UpdateSMBSecurityStrategyInput"}
17229	if s.GatewayARN == nil {
17230		invalidParams.Add(request.NewErrParamRequired("GatewayARN"))
17231	}
17232	if s.GatewayARN != nil && len(*s.GatewayARN) < 50 {
17233		invalidParams.Add(request.NewErrParamMinLen("GatewayARN", 50))
17234	}
17235	if s.SMBSecurityStrategy == nil {
17236		invalidParams.Add(request.NewErrParamRequired("SMBSecurityStrategy"))
17237	}
17238
17239	if invalidParams.Len() > 0 {
17240		return invalidParams
17241	}
17242	return nil
17243}
17244
17245// SetGatewayARN sets the GatewayARN field's value.
17246func (s *UpdateSMBSecurityStrategyInput) SetGatewayARN(v string) *UpdateSMBSecurityStrategyInput {
17247	s.GatewayARN = &v
17248	return s
17249}
17250
17251// SetSMBSecurityStrategy sets the SMBSecurityStrategy field's value.
17252func (s *UpdateSMBSecurityStrategyInput) SetSMBSecurityStrategy(v string) *UpdateSMBSecurityStrategyInput {
17253	s.SMBSecurityStrategy = &v
17254	return s
17255}
17256
17257type UpdateSMBSecurityStrategyOutput struct {
17258	_ struct{} `type:"structure"`
17259
17260	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17261	// to return a list of gateways for your account and AWS Region.
17262	GatewayARN *string `min:"50" type:"string"`
17263}
17264
17265// String returns the string representation
17266func (s UpdateSMBSecurityStrategyOutput) String() string {
17267	return awsutil.Prettify(s)
17268}
17269
17270// GoString returns the string representation
17271func (s UpdateSMBSecurityStrategyOutput) GoString() string {
17272	return s.String()
17273}
17274
17275// SetGatewayARN sets the GatewayARN field's value.
17276func (s *UpdateSMBSecurityStrategyOutput) SetGatewayARN(v string) *UpdateSMBSecurityStrategyOutput {
17277	s.GatewayARN = &v
17278	return s
17279}
17280
17281// A JSON object containing one or more of the following fields:
17282//
17283//    * UpdateSnapshotScheduleInput$Description
17284//
17285//    * UpdateSnapshotScheduleInput$RecurrenceInHours
17286//
17287//    * UpdateSnapshotScheduleInput$StartAt
17288//
17289//    * UpdateSnapshotScheduleInput$VolumeARN
17290type UpdateSnapshotScheduleInput struct {
17291	_ struct{} `type:"structure"`
17292
17293	// Optional description of the snapshot that overwrites the existing description.
17294	Description *string `min:"1" type:"string"`
17295
17296	// Frequency of snapshots. Specify the number of hours between snapshots.
17297	//
17298	// RecurrenceInHours is a required field
17299	RecurrenceInHours *int64 `min:"1" type:"integer" required:"true"`
17300
17301	// The hour of the day at which the snapshot schedule begins represented as
17302	// hh, where hh is the hour (0 to 23). The hour of the day is in the time zone
17303	// of the gateway.
17304	//
17305	// StartAt is a required field
17306	StartAt *int64 `type:"integer" required:"true"`
17307
17308	// A list of up to 50 tags that can be assigned to a snapshot. Each tag is a
17309	// key-value pair.
17310	//
17311	// Valid characters for key and value are letters, spaces, and numbers representable
17312	// in UTF-8 format, and the following special characters: + - = . _ : / @. The
17313	// maximum length of a tag's key is 128 characters, and the maximum length for
17314	// a tag's value is 256.
17315	Tags []*Tag `type:"list"`
17316
17317	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
17318	// to return a list of gateway volumes.
17319	//
17320	// VolumeARN is a required field
17321	VolumeARN *string `min:"50" type:"string" required:"true"`
17322}
17323
17324// String returns the string representation
17325func (s UpdateSnapshotScheduleInput) String() string {
17326	return awsutil.Prettify(s)
17327}
17328
17329// GoString returns the string representation
17330func (s UpdateSnapshotScheduleInput) GoString() string {
17331	return s.String()
17332}
17333
17334// Validate inspects the fields of the type to determine if they are valid.
17335func (s *UpdateSnapshotScheduleInput) Validate() error {
17336	invalidParams := request.ErrInvalidParams{Context: "UpdateSnapshotScheduleInput"}
17337	if s.Description != nil && len(*s.Description) < 1 {
17338		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
17339	}
17340	if s.RecurrenceInHours == nil {
17341		invalidParams.Add(request.NewErrParamRequired("RecurrenceInHours"))
17342	}
17343	if s.RecurrenceInHours != nil && *s.RecurrenceInHours < 1 {
17344		invalidParams.Add(request.NewErrParamMinValue("RecurrenceInHours", 1))
17345	}
17346	if s.StartAt == nil {
17347		invalidParams.Add(request.NewErrParamRequired("StartAt"))
17348	}
17349	if s.VolumeARN == nil {
17350		invalidParams.Add(request.NewErrParamRequired("VolumeARN"))
17351	}
17352	if s.VolumeARN != nil && len(*s.VolumeARN) < 50 {
17353		invalidParams.Add(request.NewErrParamMinLen("VolumeARN", 50))
17354	}
17355	if s.Tags != nil {
17356		for i, v := range s.Tags {
17357			if v == nil {
17358				continue
17359			}
17360			if err := v.Validate(); err != nil {
17361				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
17362			}
17363		}
17364	}
17365
17366	if invalidParams.Len() > 0 {
17367		return invalidParams
17368	}
17369	return nil
17370}
17371
17372// SetDescription sets the Description field's value.
17373func (s *UpdateSnapshotScheduleInput) SetDescription(v string) *UpdateSnapshotScheduleInput {
17374	s.Description = &v
17375	return s
17376}
17377
17378// SetRecurrenceInHours sets the RecurrenceInHours field's value.
17379func (s *UpdateSnapshotScheduleInput) SetRecurrenceInHours(v int64) *UpdateSnapshotScheduleInput {
17380	s.RecurrenceInHours = &v
17381	return s
17382}
17383
17384// SetStartAt sets the StartAt field's value.
17385func (s *UpdateSnapshotScheduleInput) SetStartAt(v int64) *UpdateSnapshotScheduleInput {
17386	s.StartAt = &v
17387	return s
17388}
17389
17390// SetTags sets the Tags field's value.
17391func (s *UpdateSnapshotScheduleInput) SetTags(v []*Tag) *UpdateSnapshotScheduleInput {
17392	s.Tags = v
17393	return s
17394}
17395
17396// SetVolumeARN sets the VolumeARN field's value.
17397func (s *UpdateSnapshotScheduleInput) SetVolumeARN(v string) *UpdateSnapshotScheduleInput {
17398	s.VolumeARN = &v
17399	return s
17400}
17401
17402// A JSON object containing the of the updated storage volume.
17403type UpdateSnapshotScheduleOutput struct {
17404	_ struct{} `type:"structure"`
17405
17406	// The Amazon Resource Name (ARN) of the volume. Use the ListVolumes operation
17407	// to return a list of gateway volumes.
17408	VolumeARN *string `min:"50" type:"string"`
17409}
17410
17411// String returns the string representation
17412func (s UpdateSnapshotScheduleOutput) String() string {
17413	return awsutil.Prettify(s)
17414}
17415
17416// GoString returns the string representation
17417func (s UpdateSnapshotScheduleOutput) GoString() string {
17418	return s.String()
17419}
17420
17421// SetVolumeARN sets the VolumeARN field's value.
17422func (s *UpdateSnapshotScheduleOutput) SetVolumeARN(v string) *UpdateSnapshotScheduleOutput {
17423	s.VolumeARN = &v
17424	return s
17425}
17426
17427type UpdateVTLDeviceTypeInput struct {
17428	_ struct{} `type:"structure"`
17429
17430	// The type of medium changer you want to select.
17431	//
17432	// Valid Values: "STK-L700", "AWS-Gateway-VTL"
17433	//
17434	// DeviceType is a required field
17435	DeviceType *string `min:"2" type:"string" required:"true"`
17436
17437	// The Amazon Resource Name (ARN) of the medium changer you want to select.
17438	//
17439	// VTLDeviceARN is a required field
17440	VTLDeviceARN *string `min:"50" type:"string" required:"true"`
17441}
17442
17443// String returns the string representation
17444func (s UpdateVTLDeviceTypeInput) String() string {
17445	return awsutil.Prettify(s)
17446}
17447
17448// GoString returns the string representation
17449func (s UpdateVTLDeviceTypeInput) GoString() string {
17450	return s.String()
17451}
17452
17453// Validate inspects the fields of the type to determine if they are valid.
17454func (s *UpdateVTLDeviceTypeInput) Validate() error {
17455	invalidParams := request.ErrInvalidParams{Context: "UpdateVTLDeviceTypeInput"}
17456	if s.DeviceType == nil {
17457		invalidParams.Add(request.NewErrParamRequired("DeviceType"))
17458	}
17459	if s.DeviceType != nil && len(*s.DeviceType) < 2 {
17460		invalidParams.Add(request.NewErrParamMinLen("DeviceType", 2))
17461	}
17462	if s.VTLDeviceARN == nil {
17463		invalidParams.Add(request.NewErrParamRequired("VTLDeviceARN"))
17464	}
17465	if s.VTLDeviceARN != nil && len(*s.VTLDeviceARN) < 50 {
17466		invalidParams.Add(request.NewErrParamMinLen("VTLDeviceARN", 50))
17467	}
17468
17469	if invalidParams.Len() > 0 {
17470		return invalidParams
17471	}
17472	return nil
17473}
17474
17475// SetDeviceType sets the DeviceType field's value.
17476func (s *UpdateVTLDeviceTypeInput) SetDeviceType(v string) *UpdateVTLDeviceTypeInput {
17477	s.DeviceType = &v
17478	return s
17479}
17480
17481// SetVTLDeviceARN sets the VTLDeviceARN field's value.
17482func (s *UpdateVTLDeviceTypeInput) SetVTLDeviceARN(v string) *UpdateVTLDeviceTypeInput {
17483	s.VTLDeviceARN = &v
17484	return s
17485}
17486
17487// UpdateVTLDeviceTypeOutput
17488type UpdateVTLDeviceTypeOutput struct {
17489	_ struct{} `type:"structure"`
17490
17491	// The Amazon Resource Name (ARN) of the medium changer you have selected.
17492	VTLDeviceARN *string `min:"50" type:"string"`
17493}
17494
17495// String returns the string representation
17496func (s UpdateVTLDeviceTypeOutput) String() string {
17497	return awsutil.Prettify(s)
17498}
17499
17500// GoString returns the string representation
17501func (s UpdateVTLDeviceTypeOutput) GoString() string {
17502	return s.String()
17503}
17504
17505// SetVTLDeviceARN sets the VTLDeviceARN field's value.
17506func (s *UpdateVTLDeviceTypeOutput) SetVTLDeviceARN(v string) *UpdateVTLDeviceTypeOutput {
17507	s.VTLDeviceARN = &v
17508	return s
17509}
17510
17511// Represents a device object associated with a tape gateway.
17512type VTLDevice struct {
17513	_ struct{} `type:"structure"`
17514
17515	// A list of iSCSI information about a VTL device.
17516	DeviceiSCSIAttributes *DeviceiSCSIAttributes `type:"structure"`
17517
17518	// Specifies the unique Amazon Resource Name (ARN) of the device (tape drive
17519	// or media changer).
17520	VTLDeviceARN *string `min:"50" type:"string"`
17521
17522	// Specifies the model number of device that the VTL device emulates.
17523	VTLDeviceProductIdentifier *string `type:"string"`
17524
17525	// Specifies the type of device that the VTL device emulates.
17526	VTLDeviceType *string `type:"string"`
17527
17528	// Specifies the vendor of the device that the VTL device object emulates.
17529	VTLDeviceVendor *string `type:"string"`
17530}
17531
17532// String returns the string representation
17533func (s VTLDevice) String() string {
17534	return awsutil.Prettify(s)
17535}
17536
17537// GoString returns the string representation
17538func (s VTLDevice) GoString() string {
17539	return s.String()
17540}
17541
17542// SetDeviceiSCSIAttributes sets the DeviceiSCSIAttributes field's value.
17543func (s *VTLDevice) SetDeviceiSCSIAttributes(v *DeviceiSCSIAttributes) *VTLDevice {
17544	s.DeviceiSCSIAttributes = v
17545	return s
17546}
17547
17548// SetVTLDeviceARN sets the VTLDeviceARN field's value.
17549func (s *VTLDevice) SetVTLDeviceARN(v string) *VTLDevice {
17550	s.VTLDeviceARN = &v
17551	return s
17552}
17553
17554// SetVTLDeviceProductIdentifier sets the VTLDeviceProductIdentifier field's value.
17555func (s *VTLDevice) SetVTLDeviceProductIdentifier(v string) *VTLDevice {
17556	s.VTLDeviceProductIdentifier = &v
17557	return s
17558}
17559
17560// SetVTLDeviceType sets the VTLDeviceType field's value.
17561func (s *VTLDevice) SetVTLDeviceType(v string) *VTLDevice {
17562	s.VTLDeviceType = &v
17563	return s
17564}
17565
17566// SetVTLDeviceVendor sets the VTLDeviceVendor field's value.
17567func (s *VTLDevice) SetVTLDeviceVendor(v string) *VTLDevice {
17568	s.VTLDeviceVendor = &v
17569	return s
17570}
17571
17572// Describes a storage volume object.
17573type VolumeInfo struct {
17574	_ struct{} `type:"structure"`
17575
17576	// The Amazon Resource Name (ARN) of the gateway. Use the ListGateways operation
17577	// to return a list of gateways for your account and AWS Region.
17578	GatewayARN *string `min:"50" type:"string"`
17579
17580	// The unique identifier assigned to your gateway during activation. This ID
17581	// becomes part of the gateway Amazon Resource Name (ARN), which you use as
17582	// input for other operations.
17583	//
17584	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
17585	// (-).
17586	GatewayId *string `min:"12" type:"string"`
17587
17588	// The Amazon Resource Name (ARN) for the storage volume. For example, the following
17589	// is a valid ARN:
17590	//
17591	// arn:aws:storagegateway:us-east-2:111122223333:gateway/sgw-12A3456B/volume/vol-1122AABB
17592	//
17593	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
17594	// (-).
17595	VolumeARN *string `min:"50" type:"string"`
17596
17597	// One of the VolumeStatus values that indicates the state of the storage volume.
17598	VolumeAttachmentStatus *string `min:"3" type:"string"`
17599
17600	// The unique identifier assigned to the volume. This ID becomes part of the
17601	// volume Amazon Resource Name (ARN), which you use as input for other operations.
17602	//
17603	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
17604	// (-).
17605	VolumeId *string `min:"12" type:"string"`
17606
17607	// The size of the volume in bytes.
17608	//
17609	// Valid Values: 50 to 500 lowercase letters, numbers, periods (.), and hyphens
17610	// (-).
17611	VolumeSizeInBytes *int64 `type:"long"`
17612
17613	// One of the VolumeType enumeration values describing the type of the volume.
17614	VolumeType *string `min:"3" type:"string"`
17615}
17616
17617// String returns the string representation
17618func (s VolumeInfo) String() string {
17619	return awsutil.Prettify(s)
17620}
17621
17622// GoString returns the string representation
17623func (s VolumeInfo) GoString() string {
17624	return s.String()
17625}
17626
17627// SetGatewayARN sets the GatewayARN field's value.
17628func (s *VolumeInfo) SetGatewayARN(v string) *VolumeInfo {
17629	s.GatewayARN = &v
17630	return s
17631}
17632
17633// SetGatewayId sets the GatewayId field's value.
17634func (s *VolumeInfo) SetGatewayId(v string) *VolumeInfo {
17635	s.GatewayId = &v
17636	return s
17637}
17638
17639// SetVolumeARN sets the VolumeARN field's value.
17640func (s *VolumeInfo) SetVolumeARN(v string) *VolumeInfo {
17641	s.VolumeARN = &v
17642	return s
17643}
17644
17645// SetVolumeAttachmentStatus sets the VolumeAttachmentStatus field's value.
17646func (s *VolumeInfo) SetVolumeAttachmentStatus(v string) *VolumeInfo {
17647	s.VolumeAttachmentStatus = &v
17648	return s
17649}
17650
17651// SetVolumeId sets the VolumeId field's value.
17652func (s *VolumeInfo) SetVolumeId(v string) *VolumeInfo {
17653	s.VolumeId = &v
17654	return s
17655}
17656
17657// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
17658func (s *VolumeInfo) SetVolumeSizeInBytes(v int64) *VolumeInfo {
17659	s.VolumeSizeInBytes = &v
17660	return s
17661}
17662
17663// SetVolumeType sets the VolumeType field's value.
17664func (s *VolumeInfo) SetVolumeType(v string) *VolumeInfo {
17665	s.VolumeType = &v
17666	return s
17667}
17668
17669// Describes a storage volume recovery point object.
17670type VolumeRecoveryPointInfo struct {
17671	_ struct{} `type:"structure"`
17672
17673	// The Amazon Resource Name (ARN) of the volume target.
17674	VolumeARN *string `min:"50" type:"string"`
17675
17676	// The time the recovery point was taken.
17677	VolumeRecoveryPointTime *string `type:"string"`
17678
17679	// The size of the volume in bytes.
17680	VolumeSizeInBytes *int64 `type:"long"`
17681
17682	// The size of the data stored on the volume in bytes.
17683	//
17684	// This value is not available for volumes created prior to May 13, 2015, until
17685	// you store data on the volume.
17686	VolumeUsageInBytes *int64 `type:"long"`
17687}
17688
17689// String returns the string representation
17690func (s VolumeRecoveryPointInfo) String() string {
17691	return awsutil.Prettify(s)
17692}
17693
17694// GoString returns the string representation
17695func (s VolumeRecoveryPointInfo) GoString() string {
17696	return s.String()
17697}
17698
17699// SetVolumeARN sets the VolumeARN field's value.
17700func (s *VolumeRecoveryPointInfo) SetVolumeARN(v string) *VolumeRecoveryPointInfo {
17701	s.VolumeARN = &v
17702	return s
17703}
17704
17705// SetVolumeRecoveryPointTime sets the VolumeRecoveryPointTime field's value.
17706func (s *VolumeRecoveryPointInfo) SetVolumeRecoveryPointTime(v string) *VolumeRecoveryPointInfo {
17707	s.VolumeRecoveryPointTime = &v
17708	return s
17709}
17710
17711// SetVolumeSizeInBytes sets the VolumeSizeInBytes field's value.
17712func (s *VolumeRecoveryPointInfo) SetVolumeSizeInBytes(v int64) *VolumeRecoveryPointInfo {
17713	s.VolumeSizeInBytes = &v
17714	return s
17715}
17716
17717// SetVolumeUsageInBytes sets the VolumeUsageInBytes field's value.
17718func (s *VolumeRecoveryPointInfo) SetVolumeUsageInBytes(v int64) *VolumeRecoveryPointInfo {
17719	s.VolumeUsageInBytes = &v
17720	return s
17721}
17722
17723// Lists iSCSI information about a volume.
17724type VolumeiSCSIAttributes struct {
17725	_ struct{} `type:"structure"`
17726
17727	// Indicates whether mutual CHAP is enabled for the iSCSI target.
17728	ChapEnabled *bool `type:"boolean"`
17729
17730	// The logical disk number.
17731	LunNumber *int64 `min:"1" type:"integer"`
17732
17733	// The network interface identifier.
17734	NetworkInterfaceId *string `type:"string"`
17735
17736	// The port used to communicate with iSCSI targets.
17737	NetworkInterfacePort *int64 `type:"integer"`
17738
17739	// The Amazon Resource Name (ARN) of the volume target.
17740	TargetARN *string `min:"50" type:"string"`
17741}
17742
17743// String returns the string representation
17744func (s VolumeiSCSIAttributes) String() string {
17745	return awsutil.Prettify(s)
17746}
17747
17748// GoString returns the string representation
17749func (s VolumeiSCSIAttributes) GoString() string {
17750	return s.String()
17751}
17752
17753// SetChapEnabled sets the ChapEnabled field's value.
17754func (s *VolumeiSCSIAttributes) SetChapEnabled(v bool) *VolumeiSCSIAttributes {
17755	s.ChapEnabled = &v
17756	return s
17757}
17758
17759// SetLunNumber sets the LunNumber field's value.
17760func (s *VolumeiSCSIAttributes) SetLunNumber(v int64) *VolumeiSCSIAttributes {
17761	s.LunNumber = &v
17762	return s
17763}
17764
17765// SetNetworkInterfaceId sets the NetworkInterfaceId field's value.
17766func (s *VolumeiSCSIAttributes) SetNetworkInterfaceId(v string) *VolumeiSCSIAttributes {
17767	s.NetworkInterfaceId = &v
17768	return s
17769}
17770
17771// SetNetworkInterfacePort sets the NetworkInterfacePort field's value.
17772func (s *VolumeiSCSIAttributes) SetNetworkInterfacePort(v int64) *VolumeiSCSIAttributes {
17773	s.NetworkInterfacePort = &v
17774	return s
17775}
17776
17777// SetTargetARN sets the TargetARN field's value.
17778func (s *VolumeiSCSIAttributes) SetTargetARN(v string) *VolumeiSCSIAttributes {
17779	s.TargetARN = &v
17780	return s
17781}
17782
17783const (
17784	// ActiveDirectoryStatusAccessDenied is a ActiveDirectoryStatus enum value
17785	ActiveDirectoryStatusAccessDenied = "ACCESS_DENIED"
17786
17787	// ActiveDirectoryStatusDetached is a ActiveDirectoryStatus enum value
17788	ActiveDirectoryStatusDetached = "DETACHED"
17789
17790	// ActiveDirectoryStatusJoined is a ActiveDirectoryStatus enum value
17791	ActiveDirectoryStatusJoined = "JOINED"
17792
17793	// ActiveDirectoryStatusJoining is a ActiveDirectoryStatus enum value
17794	ActiveDirectoryStatusJoining = "JOINING"
17795
17796	// ActiveDirectoryStatusNetworkError is a ActiveDirectoryStatus enum value
17797	ActiveDirectoryStatusNetworkError = "NETWORK_ERROR"
17798
17799	// ActiveDirectoryStatusTimeout is a ActiveDirectoryStatus enum value
17800	ActiveDirectoryStatusTimeout = "TIMEOUT"
17801
17802	// ActiveDirectoryStatusUnknownError is a ActiveDirectoryStatus enum value
17803	ActiveDirectoryStatusUnknownError = "UNKNOWN_ERROR"
17804)
17805
17806const (
17807	// AvailabilityMonitorTestStatusComplete is a AvailabilityMonitorTestStatus enum value
17808	AvailabilityMonitorTestStatusComplete = "COMPLETE"
17809
17810	// AvailabilityMonitorTestStatusFailed is a AvailabilityMonitorTestStatus enum value
17811	AvailabilityMonitorTestStatusFailed = "FAILED"
17812
17813	// AvailabilityMonitorTestStatusPending is a AvailabilityMonitorTestStatus enum value
17814	AvailabilityMonitorTestStatusPending = "PENDING"
17815)
17816
17817const (
17818	// ErrorCodeActivationKeyExpired is a ErrorCode enum value
17819	ErrorCodeActivationKeyExpired = "ActivationKeyExpired"
17820
17821	// ErrorCodeActivationKeyInvalid is a ErrorCode enum value
17822	ErrorCodeActivationKeyInvalid = "ActivationKeyInvalid"
17823
17824	// ErrorCodeActivationKeyNotFound is a ErrorCode enum value
17825	ErrorCodeActivationKeyNotFound = "ActivationKeyNotFound"
17826
17827	// ErrorCodeGatewayInternalError is a ErrorCode enum value
17828	ErrorCodeGatewayInternalError = "GatewayInternalError"
17829
17830	// ErrorCodeGatewayNotConnected is a ErrorCode enum value
17831	ErrorCodeGatewayNotConnected = "GatewayNotConnected"
17832
17833	// ErrorCodeGatewayNotFound is a ErrorCode enum value
17834	ErrorCodeGatewayNotFound = "GatewayNotFound"
17835
17836	// ErrorCodeGatewayProxyNetworkConnectionBusy is a ErrorCode enum value
17837	ErrorCodeGatewayProxyNetworkConnectionBusy = "GatewayProxyNetworkConnectionBusy"
17838
17839	// ErrorCodeAuthenticationFailure is a ErrorCode enum value
17840	ErrorCodeAuthenticationFailure = "AuthenticationFailure"
17841
17842	// ErrorCodeBandwidthThrottleScheduleNotFound is a ErrorCode enum value
17843	ErrorCodeBandwidthThrottleScheduleNotFound = "BandwidthThrottleScheduleNotFound"
17844
17845	// ErrorCodeBlocked is a ErrorCode enum value
17846	ErrorCodeBlocked = "Blocked"
17847
17848	// ErrorCodeCannotExportSnapshot is a ErrorCode enum value
17849	ErrorCodeCannotExportSnapshot = "CannotExportSnapshot"
17850
17851	// ErrorCodeChapCredentialNotFound is a ErrorCode enum value
17852	ErrorCodeChapCredentialNotFound = "ChapCredentialNotFound"
17853
17854	// ErrorCodeDiskAlreadyAllocated is a ErrorCode enum value
17855	ErrorCodeDiskAlreadyAllocated = "DiskAlreadyAllocated"
17856
17857	// ErrorCodeDiskDoesNotExist is a ErrorCode enum value
17858	ErrorCodeDiskDoesNotExist = "DiskDoesNotExist"
17859
17860	// ErrorCodeDiskSizeGreaterThanVolumeMaxSize is a ErrorCode enum value
17861	ErrorCodeDiskSizeGreaterThanVolumeMaxSize = "DiskSizeGreaterThanVolumeMaxSize"
17862
17863	// ErrorCodeDiskSizeLessThanVolumeSize is a ErrorCode enum value
17864	ErrorCodeDiskSizeLessThanVolumeSize = "DiskSizeLessThanVolumeSize"
17865
17866	// ErrorCodeDiskSizeNotGigAligned is a ErrorCode enum value
17867	ErrorCodeDiskSizeNotGigAligned = "DiskSizeNotGigAligned"
17868
17869	// ErrorCodeDuplicateCertificateInfo is a ErrorCode enum value
17870	ErrorCodeDuplicateCertificateInfo = "DuplicateCertificateInfo"
17871
17872	// ErrorCodeDuplicateSchedule is a ErrorCode enum value
17873	ErrorCodeDuplicateSchedule = "DuplicateSchedule"
17874
17875	// ErrorCodeEndpointNotFound is a ErrorCode enum value
17876	ErrorCodeEndpointNotFound = "EndpointNotFound"
17877
17878	// ErrorCodeIamnotSupported is a ErrorCode enum value
17879	ErrorCodeIamnotSupported = "IAMNotSupported"
17880
17881	// ErrorCodeInitiatorInvalid is a ErrorCode enum value
17882	ErrorCodeInitiatorInvalid = "InitiatorInvalid"
17883
17884	// ErrorCodeInitiatorNotFound is a ErrorCode enum value
17885	ErrorCodeInitiatorNotFound = "InitiatorNotFound"
17886
17887	// ErrorCodeInternalError is a ErrorCode enum value
17888	ErrorCodeInternalError = "InternalError"
17889
17890	// ErrorCodeInvalidGateway is a ErrorCode enum value
17891	ErrorCodeInvalidGateway = "InvalidGateway"
17892
17893	// ErrorCodeInvalidEndpoint is a ErrorCode enum value
17894	ErrorCodeInvalidEndpoint = "InvalidEndpoint"
17895
17896	// ErrorCodeInvalidParameters is a ErrorCode enum value
17897	ErrorCodeInvalidParameters = "InvalidParameters"
17898
17899	// ErrorCodeInvalidSchedule is a ErrorCode enum value
17900	ErrorCodeInvalidSchedule = "InvalidSchedule"
17901
17902	// ErrorCodeLocalStorageLimitExceeded is a ErrorCode enum value
17903	ErrorCodeLocalStorageLimitExceeded = "LocalStorageLimitExceeded"
17904
17905	// ErrorCodeLunAlreadyAllocated is a ErrorCode enum value
17906	ErrorCodeLunAlreadyAllocated = "LunAlreadyAllocated "
17907
17908	// ErrorCodeLunInvalid is a ErrorCode enum value
17909	ErrorCodeLunInvalid = "LunInvalid"
17910
17911	// ErrorCodeJoinDomainInProgress is a ErrorCode enum value
17912	ErrorCodeJoinDomainInProgress = "JoinDomainInProgress"
17913
17914	// ErrorCodeMaximumContentLengthExceeded is a ErrorCode enum value
17915	ErrorCodeMaximumContentLengthExceeded = "MaximumContentLengthExceeded"
17916
17917	// ErrorCodeMaximumTapeCartridgeCountExceeded is a ErrorCode enum value
17918	ErrorCodeMaximumTapeCartridgeCountExceeded = "MaximumTapeCartridgeCountExceeded"
17919
17920	// ErrorCodeMaximumVolumeCountExceeded is a ErrorCode enum value
17921	ErrorCodeMaximumVolumeCountExceeded = "MaximumVolumeCountExceeded"
17922
17923	// ErrorCodeNetworkConfigurationChanged is a ErrorCode enum value
17924	ErrorCodeNetworkConfigurationChanged = "NetworkConfigurationChanged"
17925
17926	// ErrorCodeNoDisksAvailable is a ErrorCode enum value
17927	ErrorCodeNoDisksAvailable = "NoDisksAvailable"
17928
17929	// ErrorCodeNotImplemented is a ErrorCode enum value
17930	ErrorCodeNotImplemented = "NotImplemented"
17931
17932	// ErrorCodeNotSupported is a ErrorCode enum value
17933	ErrorCodeNotSupported = "NotSupported"
17934
17935	// ErrorCodeOperationAborted is a ErrorCode enum value
17936	ErrorCodeOperationAborted = "OperationAborted"
17937
17938	// ErrorCodeOutdatedGateway is a ErrorCode enum value
17939	ErrorCodeOutdatedGateway = "OutdatedGateway"
17940
17941	// ErrorCodeParametersNotImplemented is a ErrorCode enum value
17942	ErrorCodeParametersNotImplemented = "ParametersNotImplemented"
17943
17944	// ErrorCodeRegionInvalid is a ErrorCode enum value
17945	ErrorCodeRegionInvalid = "RegionInvalid"
17946
17947	// ErrorCodeRequestTimeout is a ErrorCode enum value
17948	ErrorCodeRequestTimeout = "RequestTimeout"
17949
17950	// ErrorCodeServiceUnavailable is a ErrorCode enum value
17951	ErrorCodeServiceUnavailable = "ServiceUnavailable"
17952
17953	// ErrorCodeSnapshotDeleted is a ErrorCode enum value
17954	ErrorCodeSnapshotDeleted = "SnapshotDeleted"
17955
17956	// ErrorCodeSnapshotIdInvalid is a ErrorCode enum value
17957	ErrorCodeSnapshotIdInvalid = "SnapshotIdInvalid"
17958
17959	// ErrorCodeSnapshotInProgress is a ErrorCode enum value
17960	ErrorCodeSnapshotInProgress = "SnapshotInProgress"
17961
17962	// ErrorCodeSnapshotNotFound is a ErrorCode enum value
17963	ErrorCodeSnapshotNotFound = "SnapshotNotFound"
17964
17965	// ErrorCodeSnapshotScheduleNotFound is a ErrorCode enum value
17966	ErrorCodeSnapshotScheduleNotFound = "SnapshotScheduleNotFound"
17967
17968	// ErrorCodeStagingAreaFull is a ErrorCode enum value
17969	ErrorCodeStagingAreaFull = "StagingAreaFull"
17970
17971	// ErrorCodeStorageFailure is a ErrorCode enum value
17972	ErrorCodeStorageFailure = "StorageFailure"
17973
17974	// ErrorCodeTapeCartridgeNotFound is a ErrorCode enum value
17975	ErrorCodeTapeCartridgeNotFound = "TapeCartridgeNotFound"
17976
17977	// ErrorCodeTargetAlreadyExists is a ErrorCode enum value
17978	ErrorCodeTargetAlreadyExists = "TargetAlreadyExists"
17979
17980	// ErrorCodeTargetInvalid is a ErrorCode enum value
17981	ErrorCodeTargetInvalid = "TargetInvalid"
17982
17983	// ErrorCodeTargetNotFound is a ErrorCode enum value
17984	ErrorCodeTargetNotFound = "TargetNotFound"
17985
17986	// ErrorCodeUnauthorizedOperation is a ErrorCode enum value
17987	ErrorCodeUnauthorizedOperation = "UnauthorizedOperation"
17988
17989	// ErrorCodeVolumeAlreadyExists is a ErrorCode enum value
17990	ErrorCodeVolumeAlreadyExists = "VolumeAlreadyExists"
17991
17992	// ErrorCodeVolumeIdInvalid is a ErrorCode enum value
17993	ErrorCodeVolumeIdInvalid = "VolumeIdInvalid"
17994
17995	// ErrorCodeVolumeInUse is a ErrorCode enum value
17996	ErrorCodeVolumeInUse = "VolumeInUse"
17997
17998	// ErrorCodeVolumeNotFound is a ErrorCode enum value
17999	ErrorCodeVolumeNotFound = "VolumeNotFound"
18000
18001	// ErrorCodeVolumeNotReady is a ErrorCode enum value
18002	ErrorCodeVolumeNotReady = "VolumeNotReady"
18003)
18004
18005// The type of the file share.
18006const (
18007	// FileShareTypeNfs is a FileShareType enum value
18008	FileShareTypeNfs = "NFS"
18009
18010	// FileShareTypeSmb is a FileShareType enum value
18011	FileShareTypeSmb = "SMB"
18012)
18013
18014const (
18015	// HostEnvironmentVmware is a HostEnvironment enum value
18016	HostEnvironmentVmware = "VMWARE"
18017
18018	// HostEnvironmentHyperV is a HostEnvironment enum value
18019	HostEnvironmentHyperV = "HYPER-V"
18020
18021	// HostEnvironmentEc2 is a HostEnvironment enum value
18022	HostEnvironmentEc2 = "EC2"
18023
18024	// HostEnvironmentOther is a HostEnvironment enum value
18025	HostEnvironmentOther = "OTHER"
18026)
18027
18028// A value that sets the access control list permission for objects in the S3
18029// bucket that a file gateway puts objects into. The default value is "private".
18030const (
18031	// ObjectACLPrivate is a ObjectACL enum value
18032	ObjectACLPrivate = "private"
18033
18034	// ObjectACLPublicRead is a ObjectACL enum value
18035	ObjectACLPublicRead = "public-read"
18036
18037	// ObjectACLPublicReadWrite is a ObjectACL enum value
18038	ObjectACLPublicReadWrite = "public-read-write"
18039
18040	// ObjectACLAuthenticatedRead is a ObjectACL enum value
18041	ObjectACLAuthenticatedRead = "authenticated-read"
18042
18043	// ObjectACLBucketOwnerRead is a ObjectACL enum value
18044	ObjectACLBucketOwnerRead = "bucket-owner-read"
18045
18046	// ObjectACLBucketOwnerFullControl is a ObjectACL enum value
18047	ObjectACLBucketOwnerFullControl = "bucket-owner-full-control"
18048
18049	// ObjectACLAwsExecRead is a ObjectACL enum value
18050	ObjectACLAwsExecRead = "aws-exec-read"
18051)
18052
18053const (
18054	// SMBSecurityStrategyClientSpecified is a SMBSecurityStrategy enum value
18055	SMBSecurityStrategyClientSpecified = "ClientSpecified"
18056
18057	// SMBSecurityStrategyMandatorySigning is a SMBSecurityStrategy enum value
18058	SMBSecurityStrategyMandatorySigning = "MandatorySigning"
18059
18060	// SMBSecurityStrategyMandatoryEncryption is a SMBSecurityStrategy enum value
18061	SMBSecurityStrategyMandatoryEncryption = "MandatoryEncryption"
18062)
18063