1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package datasync
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const opCancelTaskExecution = "CancelTaskExecution"
17
18// CancelTaskExecutionRequest generates a "aws/request.Request" representing the
19// client's request for the CancelTaskExecution operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CancelTaskExecution for more information on using the CancelTaskExecution
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CancelTaskExecutionRequest method.
34//    req, resp := client.CancelTaskExecutionRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CancelTaskExecution
42func (c *DataSync) CancelTaskExecutionRequest(input *CancelTaskExecutionInput) (req *request.Request, output *CancelTaskExecutionOutput) {
43	op := &request.Operation{
44		Name:       opCancelTaskExecution,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CancelTaskExecutionInput{}
51	}
52
53	output = &CancelTaskExecutionOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// CancelTaskExecution API operation for AWS DataSync.
60//
61// Cancels execution of a task.
62//
63// When you cancel a task execution, the transfer of some files is abruptly
64// interrupted. The contents of files that are transferred to the destination
65// might be incomplete or inconsistent with the source files. However, if you
66// start a new task execution on the same task and you allow the task execution
67// to complete, file content on the destination is complete and consistent.
68// This applies to other unexpected failures that interrupt a task execution.
69// In all of these cases, AWS DataSync successfully complete the transfer when
70// you start the next task execution.
71//
72// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
73// with awserr.Error's Code and Message methods to get detailed information about
74// the error.
75//
76// See the AWS API reference guide for AWS DataSync's
77// API operation CancelTaskExecution for usage and error information.
78//
79// Returned Error Types:
80//   * InvalidRequestException
81//   This exception is thrown when the client submits a malformed request.
82//
83//   * InternalException
84//   This exception is thrown when an error occurs in the AWS DataSync service.
85//
86// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CancelTaskExecution
87func (c *DataSync) CancelTaskExecution(input *CancelTaskExecutionInput) (*CancelTaskExecutionOutput, error) {
88	req, out := c.CancelTaskExecutionRequest(input)
89	return out, req.Send()
90}
91
92// CancelTaskExecutionWithContext is the same as CancelTaskExecution with the addition of
93// the ability to pass a context and additional request options.
94//
95// See CancelTaskExecution for details on how to use this API operation.
96//
97// The context must be non-nil and will be used for request cancellation. If
98// the context is nil a panic will occur. In the future the SDK may create
99// sub-contexts for http.Requests. See https://golang.org/pkg/context/
100// for more information on using Contexts.
101func (c *DataSync) CancelTaskExecutionWithContext(ctx aws.Context, input *CancelTaskExecutionInput, opts ...request.Option) (*CancelTaskExecutionOutput, error) {
102	req, out := c.CancelTaskExecutionRequest(input)
103	req.SetContext(ctx)
104	req.ApplyOptions(opts...)
105	return out, req.Send()
106}
107
108const opCreateAgent = "CreateAgent"
109
110// CreateAgentRequest generates a "aws/request.Request" representing the
111// client's request for the CreateAgent operation. The "output" return
112// value will be populated with the request's response once the request completes
113// successfully.
114//
115// Use "Send" method on the returned Request to send the API call to the service.
116// the "output" return value is not valid until after Send returns without error.
117//
118// See CreateAgent for more information on using the CreateAgent
119// API call, and error handling.
120//
121// This method is useful when you want to inject custom logic or configuration
122// into the SDK's request lifecycle. Such as custom headers, or retry logic.
123//
124//
125//    // Example sending a request using the CreateAgentRequest method.
126//    req, resp := client.CreateAgentRequest(params)
127//
128//    err := req.Send()
129//    if err == nil { // resp is now filled
130//        fmt.Println(resp)
131//    }
132//
133// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateAgent
134func (c *DataSync) CreateAgentRequest(input *CreateAgentInput) (req *request.Request, output *CreateAgentOutput) {
135	op := &request.Operation{
136		Name:       opCreateAgent,
137		HTTPMethod: "POST",
138		HTTPPath:   "/",
139	}
140
141	if input == nil {
142		input = &CreateAgentInput{}
143	}
144
145	output = &CreateAgentOutput{}
146	req = c.newRequest(op, input, output)
147	return
148}
149
150// CreateAgent API operation for AWS DataSync.
151//
152// Activates an AWS DataSync agent that you have deployed on your host. The
153// activation process associates your agent with your account. In the activation
154// process, you specify information such as the AWS Region that you want to
155// activate the agent in. You activate the agent in the AWS Region where your
156// target locations (in Amazon S3 or Amazon EFS) reside. Your tasks are created
157// in this AWS Region.
158//
159// You can activate the agent in a VPC (virtual private cloud) or provide the
160// agent access to a VPC endpoint so you can run tasks without going over the
161// public internet.
162//
163// You can use an agent for more than one location. If a task uses multiple
164// agents, all of them need to have status AVAILABLE for the task to run. If
165// you use multiple agents for a source location, the status of all the agents
166// must be AVAILABLE for the task to run.
167//
168// Agents are automatically updated by AWS on a regular basis, using a mechanism
169// that ensures minimal interruption to your tasks.
170//
171// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
172// with awserr.Error's Code and Message methods to get detailed information about
173// the error.
174//
175// See the AWS API reference guide for AWS DataSync's
176// API operation CreateAgent for usage and error information.
177//
178// Returned Error Types:
179//   * InvalidRequestException
180//   This exception is thrown when the client submits a malformed request.
181//
182//   * InternalException
183//   This exception is thrown when an error occurs in the AWS DataSync service.
184//
185// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateAgent
186func (c *DataSync) CreateAgent(input *CreateAgentInput) (*CreateAgentOutput, error) {
187	req, out := c.CreateAgentRequest(input)
188	return out, req.Send()
189}
190
191// CreateAgentWithContext is the same as CreateAgent with the addition of
192// the ability to pass a context and additional request options.
193//
194// See CreateAgent for details on how to use this API operation.
195//
196// The context must be non-nil and will be used for request cancellation. If
197// the context is nil a panic will occur. In the future the SDK may create
198// sub-contexts for http.Requests. See https://golang.org/pkg/context/
199// for more information on using Contexts.
200func (c *DataSync) CreateAgentWithContext(ctx aws.Context, input *CreateAgentInput, opts ...request.Option) (*CreateAgentOutput, error) {
201	req, out := c.CreateAgentRequest(input)
202	req.SetContext(ctx)
203	req.ApplyOptions(opts...)
204	return out, req.Send()
205}
206
207const opCreateLocationEfs = "CreateLocationEfs"
208
209// CreateLocationEfsRequest generates a "aws/request.Request" representing the
210// client's request for the CreateLocationEfs operation. The "output" return
211// value will be populated with the request's response once the request completes
212// successfully.
213//
214// Use "Send" method on the returned Request to send the API call to the service.
215// the "output" return value is not valid until after Send returns without error.
216//
217// See CreateLocationEfs for more information on using the CreateLocationEfs
218// API call, and error handling.
219//
220// This method is useful when you want to inject custom logic or configuration
221// into the SDK's request lifecycle. Such as custom headers, or retry logic.
222//
223//
224//    // Example sending a request using the CreateLocationEfsRequest method.
225//    req, resp := client.CreateLocationEfsRequest(params)
226//
227//    err := req.Send()
228//    if err == nil { // resp is now filled
229//        fmt.Println(resp)
230//    }
231//
232// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationEfs
233func (c *DataSync) CreateLocationEfsRequest(input *CreateLocationEfsInput) (req *request.Request, output *CreateLocationEfsOutput) {
234	op := &request.Operation{
235		Name:       opCreateLocationEfs,
236		HTTPMethod: "POST",
237		HTTPPath:   "/",
238	}
239
240	if input == nil {
241		input = &CreateLocationEfsInput{}
242	}
243
244	output = &CreateLocationEfsOutput{}
245	req = c.newRequest(op, input, output)
246	return
247}
248
249// CreateLocationEfs API operation for AWS DataSync.
250//
251// Creates an endpoint for an Amazon EFS file system.
252//
253// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
254// with awserr.Error's Code and Message methods to get detailed information about
255// the error.
256//
257// See the AWS API reference guide for AWS DataSync's
258// API operation CreateLocationEfs for usage and error information.
259//
260// Returned Error Types:
261//   * InvalidRequestException
262//   This exception is thrown when the client submits a malformed request.
263//
264//   * InternalException
265//   This exception is thrown when an error occurs in the AWS DataSync service.
266//
267// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationEfs
268func (c *DataSync) CreateLocationEfs(input *CreateLocationEfsInput) (*CreateLocationEfsOutput, error) {
269	req, out := c.CreateLocationEfsRequest(input)
270	return out, req.Send()
271}
272
273// CreateLocationEfsWithContext is the same as CreateLocationEfs with the addition of
274// the ability to pass a context and additional request options.
275//
276// See CreateLocationEfs for details on how to use this API operation.
277//
278// The context must be non-nil and will be used for request cancellation. If
279// the context is nil a panic will occur. In the future the SDK may create
280// sub-contexts for http.Requests. See https://golang.org/pkg/context/
281// for more information on using Contexts.
282func (c *DataSync) CreateLocationEfsWithContext(ctx aws.Context, input *CreateLocationEfsInput, opts ...request.Option) (*CreateLocationEfsOutput, error) {
283	req, out := c.CreateLocationEfsRequest(input)
284	req.SetContext(ctx)
285	req.ApplyOptions(opts...)
286	return out, req.Send()
287}
288
289const opCreateLocationFsxWindows = "CreateLocationFsxWindows"
290
291// CreateLocationFsxWindowsRequest generates a "aws/request.Request" representing the
292// client's request for the CreateLocationFsxWindows operation. The "output" return
293// value will be populated with the request's response once the request completes
294// successfully.
295//
296// Use "Send" method on the returned Request to send the API call to the service.
297// the "output" return value is not valid until after Send returns without error.
298//
299// See CreateLocationFsxWindows for more information on using the CreateLocationFsxWindows
300// API call, and error handling.
301//
302// This method is useful when you want to inject custom logic or configuration
303// into the SDK's request lifecycle. Such as custom headers, or retry logic.
304//
305//
306//    // Example sending a request using the CreateLocationFsxWindowsRequest method.
307//    req, resp := client.CreateLocationFsxWindowsRequest(params)
308//
309//    err := req.Send()
310//    if err == nil { // resp is now filled
311//        fmt.Println(resp)
312//    }
313//
314// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationFsxWindows
315func (c *DataSync) CreateLocationFsxWindowsRequest(input *CreateLocationFsxWindowsInput) (req *request.Request, output *CreateLocationFsxWindowsOutput) {
316	op := &request.Operation{
317		Name:       opCreateLocationFsxWindows,
318		HTTPMethod: "POST",
319		HTTPPath:   "/",
320	}
321
322	if input == nil {
323		input = &CreateLocationFsxWindowsInput{}
324	}
325
326	output = &CreateLocationFsxWindowsOutput{}
327	req = c.newRequest(op, input, output)
328	return
329}
330
331// CreateLocationFsxWindows API operation for AWS DataSync.
332//
333// Creates an endpoint for an Amazon FSx for Windows File Server file system.
334//
335// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
336// with awserr.Error's Code and Message methods to get detailed information about
337// the error.
338//
339// See the AWS API reference guide for AWS DataSync's
340// API operation CreateLocationFsxWindows for usage and error information.
341//
342// Returned Error Types:
343//   * InvalidRequestException
344//   This exception is thrown when the client submits a malformed request.
345//
346//   * InternalException
347//   This exception is thrown when an error occurs in the AWS DataSync service.
348//
349// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationFsxWindows
350func (c *DataSync) CreateLocationFsxWindows(input *CreateLocationFsxWindowsInput) (*CreateLocationFsxWindowsOutput, error) {
351	req, out := c.CreateLocationFsxWindowsRequest(input)
352	return out, req.Send()
353}
354
355// CreateLocationFsxWindowsWithContext is the same as CreateLocationFsxWindows with the addition of
356// the ability to pass a context and additional request options.
357//
358// See CreateLocationFsxWindows for details on how to use this API operation.
359//
360// The context must be non-nil and will be used for request cancellation. If
361// the context is nil a panic will occur. In the future the SDK may create
362// sub-contexts for http.Requests. See https://golang.org/pkg/context/
363// for more information on using Contexts.
364func (c *DataSync) CreateLocationFsxWindowsWithContext(ctx aws.Context, input *CreateLocationFsxWindowsInput, opts ...request.Option) (*CreateLocationFsxWindowsOutput, error) {
365	req, out := c.CreateLocationFsxWindowsRequest(input)
366	req.SetContext(ctx)
367	req.ApplyOptions(opts...)
368	return out, req.Send()
369}
370
371const opCreateLocationNfs = "CreateLocationNfs"
372
373// CreateLocationNfsRequest generates a "aws/request.Request" representing the
374// client's request for the CreateLocationNfs operation. The "output" return
375// value will be populated with the request's response once the request completes
376// successfully.
377//
378// Use "Send" method on the returned Request to send the API call to the service.
379// the "output" return value is not valid until after Send returns without error.
380//
381// See CreateLocationNfs for more information on using the CreateLocationNfs
382// API call, and error handling.
383//
384// This method is useful when you want to inject custom logic or configuration
385// into the SDK's request lifecycle. Such as custom headers, or retry logic.
386//
387//
388//    // Example sending a request using the CreateLocationNfsRequest method.
389//    req, resp := client.CreateLocationNfsRequest(params)
390//
391//    err := req.Send()
392//    if err == nil { // resp is now filled
393//        fmt.Println(resp)
394//    }
395//
396// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationNfs
397func (c *DataSync) CreateLocationNfsRequest(input *CreateLocationNfsInput) (req *request.Request, output *CreateLocationNfsOutput) {
398	op := &request.Operation{
399		Name:       opCreateLocationNfs,
400		HTTPMethod: "POST",
401		HTTPPath:   "/",
402	}
403
404	if input == nil {
405		input = &CreateLocationNfsInput{}
406	}
407
408	output = &CreateLocationNfsOutput{}
409	req = c.newRequest(op, input, output)
410	return
411}
412
413// CreateLocationNfs API operation for AWS DataSync.
414//
415// Defines a file system on a Network File System (NFS) server that can be read
416// from or written to.
417//
418// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
419// with awserr.Error's Code and Message methods to get detailed information about
420// the error.
421//
422// See the AWS API reference guide for AWS DataSync's
423// API operation CreateLocationNfs for usage and error information.
424//
425// Returned Error Types:
426//   * InvalidRequestException
427//   This exception is thrown when the client submits a malformed request.
428//
429//   * InternalException
430//   This exception is thrown when an error occurs in the AWS DataSync service.
431//
432// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationNfs
433func (c *DataSync) CreateLocationNfs(input *CreateLocationNfsInput) (*CreateLocationNfsOutput, error) {
434	req, out := c.CreateLocationNfsRequest(input)
435	return out, req.Send()
436}
437
438// CreateLocationNfsWithContext is the same as CreateLocationNfs with the addition of
439// the ability to pass a context and additional request options.
440//
441// See CreateLocationNfs for details on how to use this API operation.
442//
443// The context must be non-nil and will be used for request cancellation. If
444// the context is nil a panic will occur. In the future the SDK may create
445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
446// for more information on using Contexts.
447func (c *DataSync) CreateLocationNfsWithContext(ctx aws.Context, input *CreateLocationNfsInput, opts ...request.Option) (*CreateLocationNfsOutput, error) {
448	req, out := c.CreateLocationNfsRequest(input)
449	req.SetContext(ctx)
450	req.ApplyOptions(opts...)
451	return out, req.Send()
452}
453
454const opCreateLocationObjectStorage = "CreateLocationObjectStorage"
455
456// CreateLocationObjectStorageRequest generates a "aws/request.Request" representing the
457// client's request for the CreateLocationObjectStorage operation. The "output" return
458// value will be populated with the request's response once the request completes
459// successfully.
460//
461// Use "Send" method on the returned Request to send the API call to the service.
462// the "output" return value is not valid until after Send returns without error.
463//
464// See CreateLocationObjectStorage for more information on using the CreateLocationObjectStorage
465// API call, and error handling.
466//
467// This method is useful when you want to inject custom logic or configuration
468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
469//
470//
471//    // Example sending a request using the CreateLocationObjectStorageRequest method.
472//    req, resp := client.CreateLocationObjectStorageRequest(params)
473//
474//    err := req.Send()
475//    if err == nil { // resp is now filled
476//        fmt.Println(resp)
477//    }
478//
479// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationObjectStorage
480func (c *DataSync) CreateLocationObjectStorageRequest(input *CreateLocationObjectStorageInput) (req *request.Request, output *CreateLocationObjectStorageOutput) {
481	op := &request.Operation{
482		Name:       opCreateLocationObjectStorage,
483		HTTPMethod: "POST",
484		HTTPPath:   "/",
485	}
486
487	if input == nil {
488		input = &CreateLocationObjectStorageInput{}
489	}
490
491	output = &CreateLocationObjectStorageOutput{}
492	req = c.newRequest(op, input, output)
493	return
494}
495
496// CreateLocationObjectStorage API operation for AWS DataSync.
497//
498// Creates an endpoint for a self-managed object storage bucket. For more information
499// about self-managed object storage locations, see create-object-location.
500//
501// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
502// with awserr.Error's Code and Message methods to get detailed information about
503// the error.
504//
505// See the AWS API reference guide for AWS DataSync's
506// API operation CreateLocationObjectStorage for usage and error information.
507//
508// Returned Error Types:
509//   * InvalidRequestException
510//   This exception is thrown when the client submits a malformed request.
511//
512//   * InternalException
513//   This exception is thrown when an error occurs in the AWS DataSync service.
514//
515// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationObjectStorage
516func (c *DataSync) CreateLocationObjectStorage(input *CreateLocationObjectStorageInput) (*CreateLocationObjectStorageOutput, error) {
517	req, out := c.CreateLocationObjectStorageRequest(input)
518	return out, req.Send()
519}
520
521// CreateLocationObjectStorageWithContext is the same as CreateLocationObjectStorage with the addition of
522// the ability to pass a context and additional request options.
523//
524// See CreateLocationObjectStorage for details on how to use this API operation.
525//
526// The context must be non-nil and will be used for request cancellation. If
527// the context is nil a panic will occur. In the future the SDK may create
528// sub-contexts for http.Requests. See https://golang.org/pkg/context/
529// for more information on using Contexts.
530func (c *DataSync) CreateLocationObjectStorageWithContext(ctx aws.Context, input *CreateLocationObjectStorageInput, opts ...request.Option) (*CreateLocationObjectStorageOutput, error) {
531	req, out := c.CreateLocationObjectStorageRequest(input)
532	req.SetContext(ctx)
533	req.ApplyOptions(opts...)
534	return out, req.Send()
535}
536
537const opCreateLocationS3 = "CreateLocationS3"
538
539// CreateLocationS3Request generates a "aws/request.Request" representing the
540// client's request for the CreateLocationS3 operation. The "output" return
541// value will be populated with the request's response once the request completes
542// successfully.
543//
544// Use "Send" method on the returned Request to send the API call to the service.
545// the "output" return value is not valid until after Send returns without error.
546//
547// See CreateLocationS3 for more information on using the CreateLocationS3
548// API call, and error handling.
549//
550// This method is useful when you want to inject custom logic or configuration
551// into the SDK's request lifecycle. Such as custom headers, or retry logic.
552//
553//
554//    // Example sending a request using the CreateLocationS3Request method.
555//    req, resp := client.CreateLocationS3Request(params)
556//
557//    err := req.Send()
558//    if err == nil { // resp is now filled
559//        fmt.Println(resp)
560//    }
561//
562// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationS3
563func (c *DataSync) CreateLocationS3Request(input *CreateLocationS3Input) (req *request.Request, output *CreateLocationS3Output) {
564	op := &request.Operation{
565		Name:       opCreateLocationS3,
566		HTTPMethod: "POST",
567		HTTPPath:   "/",
568	}
569
570	if input == nil {
571		input = &CreateLocationS3Input{}
572	}
573
574	output = &CreateLocationS3Output{}
575	req = c.newRequest(op, input, output)
576	return
577}
578
579// CreateLocationS3 API operation for AWS DataSync.
580//
581// Creates an endpoint for an Amazon S3 bucket.
582//
583// For more information, see https://docs.aws.amazon.com/datasync/latest/userguide/create-locations-cli.html#create-location-s3-cli
584// in the AWS DataSync User Guide.
585//
586// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
587// with awserr.Error's Code and Message methods to get detailed information about
588// the error.
589//
590// See the AWS API reference guide for AWS DataSync's
591// API operation CreateLocationS3 for usage and error information.
592//
593// Returned Error Types:
594//   * InvalidRequestException
595//   This exception is thrown when the client submits a malformed request.
596//
597//   * InternalException
598//   This exception is thrown when an error occurs in the AWS DataSync service.
599//
600// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationS3
601func (c *DataSync) CreateLocationS3(input *CreateLocationS3Input) (*CreateLocationS3Output, error) {
602	req, out := c.CreateLocationS3Request(input)
603	return out, req.Send()
604}
605
606// CreateLocationS3WithContext is the same as CreateLocationS3 with the addition of
607// the ability to pass a context and additional request options.
608//
609// See CreateLocationS3 for details on how to use this API operation.
610//
611// The context must be non-nil and will be used for request cancellation. If
612// the context is nil a panic will occur. In the future the SDK may create
613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
614// for more information on using Contexts.
615func (c *DataSync) CreateLocationS3WithContext(ctx aws.Context, input *CreateLocationS3Input, opts ...request.Option) (*CreateLocationS3Output, error) {
616	req, out := c.CreateLocationS3Request(input)
617	req.SetContext(ctx)
618	req.ApplyOptions(opts...)
619	return out, req.Send()
620}
621
622const opCreateLocationSmb = "CreateLocationSmb"
623
624// CreateLocationSmbRequest generates a "aws/request.Request" representing the
625// client's request for the CreateLocationSmb operation. The "output" return
626// value will be populated with the request's response once the request completes
627// successfully.
628//
629// Use "Send" method on the returned Request to send the API call to the service.
630// the "output" return value is not valid until after Send returns without error.
631//
632// See CreateLocationSmb for more information on using the CreateLocationSmb
633// API call, and error handling.
634//
635// This method is useful when you want to inject custom logic or configuration
636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
637//
638//
639//    // Example sending a request using the CreateLocationSmbRequest method.
640//    req, resp := client.CreateLocationSmbRequest(params)
641//
642//    err := req.Send()
643//    if err == nil { // resp is now filled
644//        fmt.Println(resp)
645//    }
646//
647// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationSmb
648func (c *DataSync) CreateLocationSmbRequest(input *CreateLocationSmbInput) (req *request.Request, output *CreateLocationSmbOutput) {
649	op := &request.Operation{
650		Name:       opCreateLocationSmb,
651		HTTPMethod: "POST",
652		HTTPPath:   "/",
653	}
654
655	if input == nil {
656		input = &CreateLocationSmbInput{}
657	}
658
659	output = &CreateLocationSmbOutput{}
660	req = c.newRequest(op, input, output)
661	return
662}
663
664// CreateLocationSmb API operation for AWS DataSync.
665//
666// Defines a file system on a Server Message Block (SMB) server that can be
667// read from or written to.
668//
669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
670// with awserr.Error's Code and Message methods to get detailed information about
671// the error.
672//
673// See the AWS API reference guide for AWS DataSync's
674// API operation CreateLocationSmb for usage and error information.
675//
676// Returned Error Types:
677//   * InvalidRequestException
678//   This exception is thrown when the client submits a malformed request.
679//
680//   * InternalException
681//   This exception is thrown when an error occurs in the AWS DataSync service.
682//
683// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationSmb
684func (c *DataSync) CreateLocationSmb(input *CreateLocationSmbInput) (*CreateLocationSmbOutput, error) {
685	req, out := c.CreateLocationSmbRequest(input)
686	return out, req.Send()
687}
688
689// CreateLocationSmbWithContext is the same as CreateLocationSmb with the addition of
690// the ability to pass a context and additional request options.
691//
692// See CreateLocationSmb for details on how to use this API operation.
693//
694// The context must be non-nil and will be used for request cancellation. If
695// the context is nil a panic will occur. In the future the SDK may create
696// sub-contexts for http.Requests. See https://golang.org/pkg/context/
697// for more information on using Contexts.
698func (c *DataSync) CreateLocationSmbWithContext(ctx aws.Context, input *CreateLocationSmbInput, opts ...request.Option) (*CreateLocationSmbOutput, error) {
699	req, out := c.CreateLocationSmbRequest(input)
700	req.SetContext(ctx)
701	req.ApplyOptions(opts...)
702	return out, req.Send()
703}
704
705const opCreateTask = "CreateTask"
706
707// CreateTaskRequest generates a "aws/request.Request" representing the
708// client's request for the CreateTask operation. The "output" return
709// value will be populated with the request's response once the request completes
710// successfully.
711//
712// Use "Send" method on the returned Request to send the API call to the service.
713// the "output" return value is not valid until after Send returns without error.
714//
715// See CreateTask for more information on using the CreateTask
716// API call, and error handling.
717//
718// This method is useful when you want to inject custom logic or configuration
719// into the SDK's request lifecycle. Such as custom headers, or retry logic.
720//
721//
722//    // Example sending a request using the CreateTaskRequest method.
723//    req, resp := client.CreateTaskRequest(params)
724//
725//    err := req.Send()
726//    if err == nil { // resp is now filled
727//        fmt.Println(resp)
728//    }
729//
730// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateTask
731func (c *DataSync) CreateTaskRequest(input *CreateTaskInput) (req *request.Request, output *CreateTaskOutput) {
732	op := &request.Operation{
733		Name:       opCreateTask,
734		HTTPMethod: "POST",
735		HTTPPath:   "/",
736	}
737
738	if input == nil {
739		input = &CreateTaskInput{}
740	}
741
742	output = &CreateTaskOutput{}
743	req = c.newRequest(op, input, output)
744	return
745}
746
747// CreateTask API operation for AWS DataSync.
748//
749// Creates a task.
750//
751// A task includes a source location and a destination location, and a configuration
752// that specifies how data is transferred. A task always transfers data from
753// the source location to the destination location. The configuration specifies
754// options such as task scheduling, bandwidth limits, etc. A task is the complete
755// definition of a data transfer.
756//
757// When you create a task that transfers data between AWS services in different
758// AWS Regions, one of the two locations that you specify must reside in the
759// Region where DataSync is being used. The other location must be specified
760// in a different Region.
761//
762// You can transfer data between commercial AWS Regions except for China, or
763// between AWS GovCloud (US-East and US-West) Regions.
764//
765// When you use DataSync to copy files or objects between AWS Regions, you pay
766// for data transfer between Regions. This is billed as data transfer OUT from
767// your source Region to your destination Region. For more information, see
768// Data Transfer pricing (http://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer).
769//
770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
771// with awserr.Error's Code and Message methods to get detailed information about
772// the error.
773//
774// See the AWS API reference guide for AWS DataSync's
775// API operation CreateTask for usage and error information.
776//
777// Returned Error Types:
778//   * InvalidRequestException
779//   This exception is thrown when the client submits a malformed request.
780//
781//   * InternalException
782//   This exception is thrown when an error occurs in the AWS DataSync service.
783//
784// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateTask
785func (c *DataSync) CreateTask(input *CreateTaskInput) (*CreateTaskOutput, error) {
786	req, out := c.CreateTaskRequest(input)
787	return out, req.Send()
788}
789
790// CreateTaskWithContext is the same as CreateTask with the addition of
791// the ability to pass a context and additional request options.
792//
793// See CreateTask for details on how to use this API operation.
794//
795// The context must be non-nil and will be used for request cancellation. If
796// the context is nil a panic will occur. In the future the SDK may create
797// sub-contexts for http.Requests. See https://golang.org/pkg/context/
798// for more information on using Contexts.
799func (c *DataSync) CreateTaskWithContext(ctx aws.Context, input *CreateTaskInput, opts ...request.Option) (*CreateTaskOutput, error) {
800	req, out := c.CreateTaskRequest(input)
801	req.SetContext(ctx)
802	req.ApplyOptions(opts...)
803	return out, req.Send()
804}
805
806const opDeleteAgent = "DeleteAgent"
807
808// DeleteAgentRequest generates a "aws/request.Request" representing the
809// client's request for the DeleteAgent operation. The "output" return
810// value will be populated with the request's response once the request completes
811// successfully.
812//
813// Use "Send" method on the returned Request to send the API call to the service.
814// the "output" return value is not valid until after Send returns without error.
815//
816// See DeleteAgent for more information on using the DeleteAgent
817// API call, and error handling.
818//
819// This method is useful when you want to inject custom logic or configuration
820// into the SDK's request lifecycle. Such as custom headers, or retry logic.
821//
822//
823//    // Example sending a request using the DeleteAgentRequest method.
824//    req, resp := client.DeleteAgentRequest(params)
825//
826//    err := req.Send()
827//    if err == nil { // resp is now filled
828//        fmt.Println(resp)
829//    }
830//
831// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteAgent
832func (c *DataSync) DeleteAgentRequest(input *DeleteAgentInput) (req *request.Request, output *DeleteAgentOutput) {
833	op := &request.Operation{
834		Name:       opDeleteAgent,
835		HTTPMethod: "POST",
836		HTTPPath:   "/",
837	}
838
839	if input == nil {
840		input = &DeleteAgentInput{}
841	}
842
843	output = &DeleteAgentOutput{}
844	req = c.newRequest(op, input, output)
845	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
846	return
847}
848
849// DeleteAgent API operation for AWS DataSync.
850//
851// Deletes an agent. To specify which agent to delete, use the Amazon Resource
852// Name (ARN) of the agent in your request. The operation disassociates the
853// agent from your AWS account. However, it doesn't delete the agent virtual
854// machine (VM) from your on-premises environment.
855//
856// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
857// with awserr.Error's Code and Message methods to get detailed information about
858// the error.
859//
860// See the AWS API reference guide for AWS DataSync's
861// API operation DeleteAgent for usage and error information.
862//
863// Returned Error Types:
864//   * InvalidRequestException
865//   This exception is thrown when the client submits a malformed request.
866//
867//   * InternalException
868//   This exception is thrown when an error occurs in the AWS DataSync service.
869//
870// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteAgent
871func (c *DataSync) DeleteAgent(input *DeleteAgentInput) (*DeleteAgentOutput, error) {
872	req, out := c.DeleteAgentRequest(input)
873	return out, req.Send()
874}
875
876// DeleteAgentWithContext is the same as DeleteAgent with the addition of
877// the ability to pass a context and additional request options.
878//
879// See DeleteAgent for details on how to use this API operation.
880//
881// The context must be non-nil and will be used for request cancellation. If
882// the context is nil a panic will occur. In the future the SDK may create
883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
884// for more information on using Contexts.
885func (c *DataSync) DeleteAgentWithContext(ctx aws.Context, input *DeleteAgentInput, opts ...request.Option) (*DeleteAgentOutput, error) {
886	req, out := c.DeleteAgentRequest(input)
887	req.SetContext(ctx)
888	req.ApplyOptions(opts...)
889	return out, req.Send()
890}
891
892const opDeleteLocation = "DeleteLocation"
893
894// DeleteLocationRequest generates a "aws/request.Request" representing the
895// client's request for the DeleteLocation operation. The "output" return
896// value will be populated with the request's response once the request completes
897// successfully.
898//
899// Use "Send" method on the returned Request to send the API call to the service.
900// the "output" return value is not valid until after Send returns without error.
901//
902// See DeleteLocation for more information on using the DeleteLocation
903// API call, and error handling.
904//
905// This method is useful when you want to inject custom logic or configuration
906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
907//
908//
909//    // Example sending a request using the DeleteLocationRequest method.
910//    req, resp := client.DeleteLocationRequest(params)
911//
912//    err := req.Send()
913//    if err == nil { // resp is now filled
914//        fmt.Println(resp)
915//    }
916//
917// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteLocation
918func (c *DataSync) DeleteLocationRequest(input *DeleteLocationInput) (req *request.Request, output *DeleteLocationOutput) {
919	op := &request.Operation{
920		Name:       opDeleteLocation,
921		HTTPMethod: "POST",
922		HTTPPath:   "/",
923	}
924
925	if input == nil {
926		input = &DeleteLocationInput{}
927	}
928
929	output = &DeleteLocationOutput{}
930	req = c.newRequest(op, input, output)
931	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
932	return
933}
934
935// DeleteLocation API operation for AWS DataSync.
936//
937// Deletes the configuration of a location used by AWS DataSync.
938//
939// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
940// with awserr.Error's Code and Message methods to get detailed information about
941// the error.
942//
943// See the AWS API reference guide for AWS DataSync's
944// API operation DeleteLocation for usage and error information.
945//
946// Returned Error Types:
947//   * InvalidRequestException
948//   This exception is thrown when the client submits a malformed request.
949//
950//   * InternalException
951//   This exception is thrown when an error occurs in the AWS DataSync service.
952//
953// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteLocation
954func (c *DataSync) DeleteLocation(input *DeleteLocationInput) (*DeleteLocationOutput, error) {
955	req, out := c.DeleteLocationRequest(input)
956	return out, req.Send()
957}
958
959// DeleteLocationWithContext is the same as DeleteLocation with the addition of
960// the ability to pass a context and additional request options.
961//
962// See DeleteLocation for details on how to use this API operation.
963//
964// The context must be non-nil and will be used for request cancellation. If
965// the context is nil a panic will occur. In the future the SDK may create
966// sub-contexts for http.Requests. See https://golang.org/pkg/context/
967// for more information on using Contexts.
968func (c *DataSync) DeleteLocationWithContext(ctx aws.Context, input *DeleteLocationInput, opts ...request.Option) (*DeleteLocationOutput, error) {
969	req, out := c.DeleteLocationRequest(input)
970	req.SetContext(ctx)
971	req.ApplyOptions(opts...)
972	return out, req.Send()
973}
974
975const opDeleteTask = "DeleteTask"
976
977// DeleteTaskRequest generates a "aws/request.Request" representing the
978// client's request for the DeleteTask operation. The "output" return
979// value will be populated with the request's response once the request completes
980// successfully.
981//
982// Use "Send" method on the returned Request to send the API call to the service.
983// the "output" return value is not valid until after Send returns without error.
984//
985// See DeleteTask for more information on using the DeleteTask
986// API call, and error handling.
987//
988// This method is useful when you want to inject custom logic or configuration
989// into the SDK's request lifecycle. Such as custom headers, or retry logic.
990//
991//
992//    // Example sending a request using the DeleteTaskRequest method.
993//    req, resp := client.DeleteTaskRequest(params)
994//
995//    err := req.Send()
996//    if err == nil { // resp is now filled
997//        fmt.Println(resp)
998//    }
999//
1000// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteTask
1001func (c *DataSync) DeleteTaskRequest(input *DeleteTaskInput) (req *request.Request, output *DeleteTaskOutput) {
1002	op := &request.Operation{
1003		Name:       opDeleteTask,
1004		HTTPMethod: "POST",
1005		HTTPPath:   "/",
1006	}
1007
1008	if input == nil {
1009		input = &DeleteTaskInput{}
1010	}
1011
1012	output = &DeleteTaskOutput{}
1013	req = c.newRequest(op, input, output)
1014	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1015	return
1016}
1017
1018// DeleteTask API operation for AWS DataSync.
1019//
1020// Deletes a task.
1021//
1022// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1023// with awserr.Error's Code and Message methods to get detailed information about
1024// the error.
1025//
1026// See the AWS API reference guide for AWS DataSync's
1027// API operation DeleteTask for usage and error information.
1028//
1029// Returned Error Types:
1030//   * InvalidRequestException
1031//   This exception is thrown when the client submits a malformed request.
1032//
1033//   * InternalException
1034//   This exception is thrown when an error occurs in the AWS DataSync service.
1035//
1036// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteTask
1037func (c *DataSync) DeleteTask(input *DeleteTaskInput) (*DeleteTaskOutput, error) {
1038	req, out := c.DeleteTaskRequest(input)
1039	return out, req.Send()
1040}
1041
1042// DeleteTaskWithContext is the same as DeleteTask with the addition of
1043// the ability to pass a context and additional request options.
1044//
1045// See DeleteTask for details on how to use this API operation.
1046//
1047// The context must be non-nil and will be used for request cancellation. If
1048// the context is nil a panic will occur. In the future the SDK may create
1049// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1050// for more information on using Contexts.
1051func (c *DataSync) DeleteTaskWithContext(ctx aws.Context, input *DeleteTaskInput, opts ...request.Option) (*DeleteTaskOutput, error) {
1052	req, out := c.DeleteTaskRequest(input)
1053	req.SetContext(ctx)
1054	req.ApplyOptions(opts...)
1055	return out, req.Send()
1056}
1057
1058const opDescribeAgent = "DescribeAgent"
1059
1060// DescribeAgentRequest generates a "aws/request.Request" representing the
1061// client's request for the DescribeAgent operation. The "output" return
1062// value will be populated with the request's response once the request completes
1063// successfully.
1064//
1065// Use "Send" method on the returned Request to send the API call to the service.
1066// the "output" return value is not valid until after Send returns without error.
1067//
1068// See DescribeAgent for more information on using the DescribeAgent
1069// API call, and error handling.
1070//
1071// This method is useful when you want to inject custom logic or configuration
1072// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1073//
1074//
1075//    // Example sending a request using the DescribeAgentRequest method.
1076//    req, resp := client.DescribeAgentRequest(params)
1077//
1078//    err := req.Send()
1079//    if err == nil { // resp is now filled
1080//        fmt.Println(resp)
1081//    }
1082//
1083// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeAgent
1084func (c *DataSync) DescribeAgentRequest(input *DescribeAgentInput) (req *request.Request, output *DescribeAgentOutput) {
1085	op := &request.Operation{
1086		Name:       opDescribeAgent,
1087		HTTPMethod: "POST",
1088		HTTPPath:   "/",
1089	}
1090
1091	if input == nil {
1092		input = &DescribeAgentInput{}
1093	}
1094
1095	output = &DescribeAgentOutput{}
1096	req = c.newRequest(op, input, output)
1097	return
1098}
1099
1100// DescribeAgent API operation for AWS DataSync.
1101//
1102// Returns metadata such as the name, the network interfaces, and the status
1103// (that is, whether the agent is running or not) for an agent. To specify which
1104// agent to describe, use the Amazon Resource Name (ARN) of the agent in your
1105// request.
1106//
1107// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1108// with awserr.Error's Code and Message methods to get detailed information about
1109// the error.
1110//
1111// See the AWS API reference guide for AWS DataSync's
1112// API operation DescribeAgent for usage and error information.
1113//
1114// Returned Error Types:
1115//   * InvalidRequestException
1116//   This exception is thrown when the client submits a malformed request.
1117//
1118//   * InternalException
1119//   This exception is thrown when an error occurs in the AWS DataSync service.
1120//
1121// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeAgent
1122func (c *DataSync) DescribeAgent(input *DescribeAgentInput) (*DescribeAgentOutput, error) {
1123	req, out := c.DescribeAgentRequest(input)
1124	return out, req.Send()
1125}
1126
1127// DescribeAgentWithContext is the same as DescribeAgent with the addition of
1128// the ability to pass a context and additional request options.
1129//
1130// See DescribeAgent for details on how to use this API operation.
1131//
1132// The context must be non-nil and will be used for request cancellation. If
1133// the context is nil a panic will occur. In the future the SDK may create
1134// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1135// for more information on using Contexts.
1136func (c *DataSync) DescribeAgentWithContext(ctx aws.Context, input *DescribeAgentInput, opts ...request.Option) (*DescribeAgentOutput, error) {
1137	req, out := c.DescribeAgentRequest(input)
1138	req.SetContext(ctx)
1139	req.ApplyOptions(opts...)
1140	return out, req.Send()
1141}
1142
1143const opDescribeLocationEfs = "DescribeLocationEfs"
1144
1145// DescribeLocationEfsRequest generates a "aws/request.Request" representing the
1146// client's request for the DescribeLocationEfs operation. The "output" return
1147// value will be populated with the request's response once the request completes
1148// successfully.
1149//
1150// Use "Send" method on the returned Request to send the API call to the service.
1151// the "output" return value is not valid until after Send returns without error.
1152//
1153// See DescribeLocationEfs for more information on using the DescribeLocationEfs
1154// API call, and error handling.
1155//
1156// This method is useful when you want to inject custom logic or configuration
1157// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1158//
1159//
1160//    // Example sending a request using the DescribeLocationEfsRequest method.
1161//    req, resp := client.DescribeLocationEfsRequest(params)
1162//
1163//    err := req.Send()
1164//    if err == nil { // resp is now filled
1165//        fmt.Println(resp)
1166//    }
1167//
1168// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationEfs
1169func (c *DataSync) DescribeLocationEfsRequest(input *DescribeLocationEfsInput) (req *request.Request, output *DescribeLocationEfsOutput) {
1170	op := &request.Operation{
1171		Name:       opDescribeLocationEfs,
1172		HTTPMethod: "POST",
1173		HTTPPath:   "/",
1174	}
1175
1176	if input == nil {
1177		input = &DescribeLocationEfsInput{}
1178	}
1179
1180	output = &DescribeLocationEfsOutput{}
1181	req = c.newRequest(op, input, output)
1182	return
1183}
1184
1185// DescribeLocationEfs API operation for AWS DataSync.
1186//
1187// Returns metadata, such as the path information about an Amazon EFS location.
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 DataSync's
1194// API operation DescribeLocationEfs for usage and error information.
1195//
1196// Returned Error Types:
1197//   * InvalidRequestException
1198//   This exception is thrown when the client submits a malformed request.
1199//
1200//   * InternalException
1201//   This exception is thrown when an error occurs in the AWS DataSync service.
1202//
1203// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationEfs
1204func (c *DataSync) DescribeLocationEfs(input *DescribeLocationEfsInput) (*DescribeLocationEfsOutput, error) {
1205	req, out := c.DescribeLocationEfsRequest(input)
1206	return out, req.Send()
1207}
1208
1209// DescribeLocationEfsWithContext is the same as DescribeLocationEfs with the addition of
1210// the ability to pass a context and additional request options.
1211//
1212// See DescribeLocationEfs for details on how to use this API operation.
1213//
1214// The context must be non-nil and will be used for request cancellation. If
1215// the context is nil a panic will occur. In the future the SDK may create
1216// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1217// for more information on using Contexts.
1218func (c *DataSync) DescribeLocationEfsWithContext(ctx aws.Context, input *DescribeLocationEfsInput, opts ...request.Option) (*DescribeLocationEfsOutput, error) {
1219	req, out := c.DescribeLocationEfsRequest(input)
1220	req.SetContext(ctx)
1221	req.ApplyOptions(opts...)
1222	return out, req.Send()
1223}
1224
1225const opDescribeLocationFsxWindows = "DescribeLocationFsxWindows"
1226
1227// DescribeLocationFsxWindowsRequest generates a "aws/request.Request" representing the
1228// client's request for the DescribeLocationFsxWindows operation. The "output" return
1229// value will be populated with the request's response once the request completes
1230// successfully.
1231//
1232// Use "Send" method on the returned Request to send the API call to the service.
1233// the "output" return value is not valid until after Send returns without error.
1234//
1235// See DescribeLocationFsxWindows for more information on using the DescribeLocationFsxWindows
1236// API call, and error handling.
1237//
1238// This method is useful when you want to inject custom logic or configuration
1239// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1240//
1241//
1242//    // Example sending a request using the DescribeLocationFsxWindowsRequest method.
1243//    req, resp := client.DescribeLocationFsxWindowsRequest(params)
1244//
1245//    err := req.Send()
1246//    if err == nil { // resp is now filled
1247//        fmt.Println(resp)
1248//    }
1249//
1250// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationFsxWindows
1251func (c *DataSync) DescribeLocationFsxWindowsRequest(input *DescribeLocationFsxWindowsInput) (req *request.Request, output *DescribeLocationFsxWindowsOutput) {
1252	op := &request.Operation{
1253		Name:       opDescribeLocationFsxWindows,
1254		HTTPMethod: "POST",
1255		HTTPPath:   "/",
1256	}
1257
1258	if input == nil {
1259		input = &DescribeLocationFsxWindowsInput{}
1260	}
1261
1262	output = &DescribeLocationFsxWindowsOutput{}
1263	req = c.newRequest(op, input, output)
1264	return
1265}
1266
1267// DescribeLocationFsxWindows API operation for AWS DataSync.
1268//
1269// Returns metadata, such as the path information about an Amazon FSx for Windows
1270// File Server location.
1271//
1272// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1273// with awserr.Error's Code and Message methods to get detailed information about
1274// the error.
1275//
1276// See the AWS API reference guide for AWS DataSync's
1277// API operation DescribeLocationFsxWindows for usage and error information.
1278//
1279// Returned Error Types:
1280//   * InvalidRequestException
1281//   This exception is thrown when the client submits a malformed request.
1282//
1283//   * InternalException
1284//   This exception is thrown when an error occurs in the AWS DataSync service.
1285//
1286// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationFsxWindows
1287func (c *DataSync) DescribeLocationFsxWindows(input *DescribeLocationFsxWindowsInput) (*DescribeLocationFsxWindowsOutput, error) {
1288	req, out := c.DescribeLocationFsxWindowsRequest(input)
1289	return out, req.Send()
1290}
1291
1292// DescribeLocationFsxWindowsWithContext is the same as DescribeLocationFsxWindows with the addition of
1293// the ability to pass a context and additional request options.
1294//
1295// See DescribeLocationFsxWindows for details on how to use this API operation.
1296//
1297// The context must be non-nil and will be used for request cancellation. If
1298// the context is nil a panic will occur. In the future the SDK may create
1299// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1300// for more information on using Contexts.
1301func (c *DataSync) DescribeLocationFsxWindowsWithContext(ctx aws.Context, input *DescribeLocationFsxWindowsInput, opts ...request.Option) (*DescribeLocationFsxWindowsOutput, error) {
1302	req, out := c.DescribeLocationFsxWindowsRequest(input)
1303	req.SetContext(ctx)
1304	req.ApplyOptions(opts...)
1305	return out, req.Send()
1306}
1307
1308const opDescribeLocationNfs = "DescribeLocationNfs"
1309
1310// DescribeLocationNfsRequest generates a "aws/request.Request" representing the
1311// client's request for the DescribeLocationNfs operation. The "output" return
1312// value will be populated with the request's response once the request completes
1313// successfully.
1314//
1315// Use "Send" method on the returned Request to send the API call to the service.
1316// the "output" return value is not valid until after Send returns without error.
1317//
1318// See DescribeLocationNfs for more information on using the DescribeLocationNfs
1319// API call, and error handling.
1320//
1321// This method is useful when you want to inject custom logic or configuration
1322// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1323//
1324//
1325//    // Example sending a request using the DescribeLocationNfsRequest method.
1326//    req, resp := client.DescribeLocationNfsRequest(params)
1327//
1328//    err := req.Send()
1329//    if err == nil { // resp is now filled
1330//        fmt.Println(resp)
1331//    }
1332//
1333// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationNfs
1334func (c *DataSync) DescribeLocationNfsRequest(input *DescribeLocationNfsInput) (req *request.Request, output *DescribeLocationNfsOutput) {
1335	op := &request.Operation{
1336		Name:       opDescribeLocationNfs,
1337		HTTPMethod: "POST",
1338		HTTPPath:   "/",
1339	}
1340
1341	if input == nil {
1342		input = &DescribeLocationNfsInput{}
1343	}
1344
1345	output = &DescribeLocationNfsOutput{}
1346	req = c.newRequest(op, input, output)
1347	return
1348}
1349
1350// DescribeLocationNfs API operation for AWS DataSync.
1351//
1352// Returns metadata, such as the path information, about an NFS location.
1353//
1354// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1355// with awserr.Error's Code and Message methods to get detailed information about
1356// the error.
1357//
1358// See the AWS API reference guide for AWS DataSync's
1359// API operation DescribeLocationNfs for usage and error information.
1360//
1361// Returned Error Types:
1362//   * InvalidRequestException
1363//   This exception is thrown when the client submits a malformed request.
1364//
1365//   * InternalException
1366//   This exception is thrown when an error occurs in the AWS DataSync service.
1367//
1368// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationNfs
1369func (c *DataSync) DescribeLocationNfs(input *DescribeLocationNfsInput) (*DescribeLocationNfsOutput, error) {
1370	req, out := c.DescribeLocationNfsRequest(input)
1371	return out, req.Send()
1372}
1373
1374// DescribeLocationNfsWithContext is the same as DescribeLocationNfs with the addition of
1375// the ability to pass a context and additional request options.
1376//
1377// See DescribeLocationNfs for details on how to use this API operation.
1378//
1379// The context must be non-nil and will be used for request cancellation. If
1380// the context is nil a panic will occur. In the future the SDK may create
1381// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1382// for more information on using Contexts.
1383func (c *DataSync) DescribeLocationNfsWithContext(ctx aws.Context, input *DescribeLocationNfsInput, opts ...request.Option) (*DescribeLocationNfsOutput, error) {
1384	req, out := c.DescribeLocationNfsRequest(input)
1385	req.SetContext(ctx)
1386	req.ApplyOptions(opts...)
1387	return out, req.Send()
1388}
1389
1390const opDescribeLocationObjectStorage = "DescribeLocationObjectStorage"
1391
1392// DescribeLocationObjectStorageRequest generates a "aws/request.Request" representing the
1393// client's request for the DescribeLocationObjectStorage operation. The "output" return
1394// value will be populated with the request's response once the request completes
1395// successfully.
1396//
1397// Use "Send" method on the returned Request to send the API call to the service.
1398// the "output" return value is not valid until after Send returns without error.
1399//
1400// See DescribeLocationObjectStorage for more information on using the DescribeLocationObjectStorage
1401// API call, and error handling.
1402//
1403// This method is useful when you want to inject custom logic or configuration
1404// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1405//
1406//
1407//    // Example sending a request using the DescribeLocationObjectStorageRequest method.
1408//    req, resp := client.DescribeLocationObjectStorageRequest(params)
1409//
1410//    err := req.Send()
1411//    if err == nil { // resp is now filled
1412//        fmt.Println(resp)
1413//    }
1414//
1415// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationObjectStorage
1416func (c *DataSync) DescribeLocationObjectStorageRequest(input *DescribeLocationObjectStorageInput) (req *request.Request, output *DescribeLocationObjectStorageOutput) {
1417	op := &request.Operation{
1418		Name:       opDescribeLocationObjectStorage,
1419		HTTPMethod: "POST",
1420		HTTPPath:   "/",
1421	}
1422
1423	if input == nil {
1424		input = &DescribeLocationObjectStorageInput{}
1425	}
1426
1427	output = &DescribeLocationObjectStorageOutput{}
1428	req = c.newRequest(op, input, output)
1429	return
1430}
1431
1432// DescribeLocationObjectStorage API operation for AWS DataSync.
1433//
1434// Returns metadata about a self-managed object storage server location. For
1435// more information about self-managed object storage locations, see create-object-location.
1436//
1437// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1438// with awserr.Error's Code and Message methods to get detailed information about
1439// the error.
1440//
1441// See the AWS API reference guide for AWS DataSync's
1442// API operation DescribeLocationObjectStorage for usage and error information.
1443//
1444// Returned Error Types:
1445//   * InvalidRequestException
1446//   This exception is thrown when the client submits a malformed request.
1447//
1448//   * InternalException
1449//   This exception is thrown when an error occurs in the AWS DataSync service.
1450//
1451// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationObjectStorage
1452func (c *DataSync) DescribeLocationObjectStorage(input *DescribeLocationObjectStorageInput) (*DescribeLocationObjectStorageOutput, error) {
1453	req, out := c.DescribeLocationObjectStorageRequest(input)
1454	return out, req.Send()
1455}
1456
1457// DescribeLocationObjectStorageWithContext is the same as DescribeLocationObjectStorage with the addition of
1458// the ability to pass a context and additional request options.
1459//
1460// See DescribeLocationObjectStorage for details on how to use this API operation.
1461//
1462// The context must be non-nil and will be used for request cancellation. If
1463// the context is nil a panic will occur. In the future the SDK may create
1464// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1465// for more information on using Contexts.
1466func (c *DataSync) DescribeLocationObjectStorageWithContext(ctx aws.Context, input *DescribeLocationObjectStorageInput, opts ...request.Option) (*DescribeLocationObjectStorageOutput, error) {
1467	req, out := c.DescribeLocationObjectStorageRequest(input)
1468	req.SetContext(ctx)
1469	req.ApplyOptions(opts...)
1470	return out, req.Send()
1471}
1472
1473const opDescribeLocationS3 = "DescribeLocationS3"
1474
1475// DescribeLocationS3Request generates a "aws/request.Request" representing the
1476// client's request for the DescribeLocationS3 operation. The "output" return
1477// value will be populated with the request's response once the request completes
1478// successfully.
1479//
1480// Use "Send" method on the returned Request to send the API call to the service.
1481// the "output" return value is not valid until after Send returns without error.
1482//
1483// See DescribeLocationS3 for more information on using the DescribeLocationS3
1484// API call, and error handling.
1485//
1486// This method is useful when you want to inject custom logic or configuration
1487// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1488//
1489//
1490//    // Example sending a request using the DescribeLocationS3Request method.
1491//    req, resp := client.DescribeLocationS3Request(params)
1492//
1493//    err := req.Send()
1494//    if err == nil { // resp is now filled
1495//        fmt.Println(resp)
1496//    }
1497//
1498// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationS3
1499func (c *DataSync) DescribeLocationS3Request(input *DescribeLocationS3Input) (req *request.Request, output *DescribeLocationS3Output) {
1500	op := &request.Operation{
1501		Name:       opDescribeLocationS3,
1502		HTTPMethod: "POST",
1503		HTTPPath:   "/",
1504	}
1505
1506	if input == nil {
1507		input = &DescribeLocationS3Input{}
1508	}
1509
1510	output = &DescribeLocationS3Output{}
1511	req = c.newRequest(op, input, output)
1512	return
1513}
1514
1515// DescribeLocationS3 API operation for AWS DataSync.
1516//
1517// Returns metadata, such as bucket name, about an Amazon S3 bucket location.
1518//
1519// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1520// with awserr.Error's Code and Message methods to get detailed information about
1521// the error.
1522//
1523// See the AWS API reference guide for AWS DataSync's
1524// API operation DescribeLocationS3 for usage and error information.
1525//
1526// Returned Error Types:
1527//   * InvalidRequestException
1528//   This exception is thrown when the client submits a malformed request.
1529//
1530//   * InternalException
1531//   This exception is thrown when an error occurs in the AWS DataSync service.
1532//
1533// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationS3
1534func (c *DataSync) DescribeLocationS3(input *DescribeLocationS3Input) (*DescribeLocationS3Output, error) {
1535	req, out := c.DescribeLocationS3Request(input)
1536	return out, req.Send()
1537}
1538
1539// DescribeLocationS3WithContext is the same as DescribeLocationS3 with the addition of
1540// the ability to pass a context and additional request options.
1541//
1542// See DescribeLocationS3 for details on how to use this API operation.
1543//
1544// The context must be non-nil and will be used for request cancellation. If
1545// the context is nil a panic will occur. In the future the SDK may create
1546// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1547// for more information on using Contexts.
1548func (c *DataSync) DescribeLocationS3WithContext(ctx aws.Context, input *DescribeLocationS3Input, opts ...request.Option) (*DescribeLocationS3Output, error) {
1549	req, out := c.DescribeLocationS3Request(input)
1550	req.SetContext(ctx)
1551	req.ApplyOptions(opts...)
1552	return out, req.Send()
1553}
1554
1555const opDescribeLocationSmb = "DescribeLocationSmb"
1556
1557// DescribeLocationSmbRequest generates a "aws/request.Request" representing the
1558// client's request for the DescribeLocationSmb operation. The "output" return
1559// value will be populated with the request's response once the request completes
1560// successfully.
1561//
1562// Use "Send" method on the returned Request to send the API call to the service.
1563// the "output" return value is not valid until after Send returns without error.
1564//
1565// See DescribeLocationSmb for more information on using the DescribeLocationSmb
1566// API call, and error handling.
1567//
1568// This method is useful when you want to inject custom logic or configuration
1569// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1570//
1571//
1572//    // Example sending a request using the DescribeLocationSmbRequest method.
1573//    req, resp := client.DescribeLocationSmbRequest(params)
1574//
1575//    err := req.Send()
1576//    if err == nil { // resp is now filled
1577//        fmt.Println(resp)
1578//    }
1579//
1580// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationSmb
1581func (c *DataSync) DescribeLocationSmbRequest(input *DescribeLocationSmbInput) (req *request.Request, output *DescribeLocationSmbOutput) {
1582	op := &request.Operation{
1583		Name:       opDescribeLocationSmb,
1584		HTTPMethod: "POST",
1585		HTTPPath:   "/",
1586	}
1587
1588	if input == nil {
1589		input = &DescribeLocationSmbInput{}
1590	}
1591
1592	output = &DescribeLocationSmbOutput{}
1593	req = c.newRequest(op, input, output)
1594	return
1595}
1596
1597// DescribeLocationSmb API operation for AWS DataSync.
1598//
1599// Returns metadata, such as the path and user information about an SMB location.
1600//
1601// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1602// with awserr.Error's Code and Message methods to get detailed information about
1603// the error.
1604//
1605// See the AWS API reference guide for AWS DataSync's
1606// API operation DescribeLocationSmb for usage and error information.
1607//
1608// Returned Error Types:
1609//   * InvalidRequestException
1610//   This exception is thrown when the client submits a malformed request.
1611//
1612//   * InternalException
1613//   This exception is thrown when an error occurs in the AWS DataSync service.
1614//
1615// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationSmb
1616func (c *DataSync) DescribeLocationSmb(input *DescribeLocationSmbInput) (*DescribeLocationSmbOutput, error) {
1617	req, out := c.DescribeLocationSmbRequest(input)
1618	return out, req.Send()
1619}
1620
1621// DescribeLocationSmbWithContext is the same as DescribeLocationSmb with the addition of
1622// the ability to pass a context and additional request options.
1623//
1624// See DescribeLocationSmb for details on how to use this API operation.
1625//
1626// The context must be non-nil and will be used for request cancellation. If
1627// the context is nil a panic will occur. In the future the SDK may create
1628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1629// for more information on using Contexts.
1630func (c *DataSync) DescribeLocationSmbWithContext(ctx aws.Context, input *DescribeLocationSmbInput, opts ...request.Option) (*DescribeLocationSmbOutput, error) {
1631	req, out := c.DescribeLocationSmbRequest(input)
1632	req.SetContext(ctx)
1633	req.ApplyOptions(opts...)
1634	return out, req.Send()
1635}
1636
1637const opDescribeTask = "DescribeTask"
1638
1639// DescribeTaskRequest generates a "aws/request.Request" representing the
1640// client's request for the DescribeTask operation. The "output" return
1641// value will be populated with the request's response once the request completes
1642// successfully.
1643//
1644// Use "Send" method on the returned Request to send the API call to the service.
1645// the "output" return value is not valid until after Send returns without error.
1646//
1647// See DescribeTask for more information on using the DescribeTask
1648// API call, and error handling.
1649//
1650// This method is useful when you want to inject custom logic or configuration
1651// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1652//
1653//
1654//    // Example sending a request using the DescribeTaskRequest method.
1655//    req, resp := client.DescribeTaskRequest(params)
1656//
1657//    err := req.Send()
1658//    if err == nil { // resp is now filled
1659//        fmt.Println(resp)
1660//    }
1661//
1662// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeTask
1663func (c *DataSync) DescribeTaskRequest(input *DescribeTaskInput) (req *request.Request, output *DescribeTaskOutput) {
1664	op := &request.Operation{
1665		Name:       opDescribeTask,
1666		HTTPMethod: "POST",
1667		HTTPPath:   "/",
1668	}
1669
1670	if input == nil {
1671		input = &DescribeTaskInput{}
1672	}
1673
1674	output = &DescribeTaskOutput{}
1675	req = c.newRequest(op, input, output)
1676	return
1677}
1678
1679// DescribeTask API operation for AWS DataSync.
1680//
1681// Returns metadata about a task.
1682//
1683// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1684// with awserr.Error's Code and Message methods to get detailed information about
1685// the error.
1686//
1687// See the AWS API reference guide for AWS DataSync's
1688// API operation DescribeTask for usage and error information.
1689//
1690// Returned Error Types:
1691//   * InvalidRequestException
1692//   This exception is thrown when the client submits a malformed request.
1693//
1694//   * InternalException
1695//   This exception is thrown when an error occurs in the AWS DataSync service.
1696//
1697// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeTask
1698func (c *DataSync) DescribeTask(input *DescribeTaskInput) (*DescribeTaskOutput, error) {
1699	req, out := c.DescribeTaskRequest(input)
1700	return out, req.Send()
1701}
1702
1703// DescribeTaskWithContext is the same as DescribeTask with the addition of
1704// the ability to pass a context and additional request options.
1705//
1706// See DescribeTask for details on how to use this API operation.
1707//
1708// The context must be non-nil and will be used for request cancellation. If
1709// the context is nil a panic will occur. In the future the SDK may create
1710// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1711// for more information on using Contexts.
1712func (c *DataSync) DescribeTaskWithContext(ctx aws.Context, input *DescribeTaskInput, opts ...request.Option) (*DescribeTaskOutput, error) {
1713	req, out := c.DescribeTaskRequest(input)
1714	req.SetContext(ctx)
1715	req.ApplyOptions(opts...)
1716	return out, req.Send()
1717}
1718
1719const opDescribeTaskExecution = "DescribeTaskExecution"
1720
1721// DescribeTaskExecutionRequest generates a "aws/request.Request" representing the
1722// client's request for the DescribeTaskExecution operation. The "output" return
1723// value will be populated with the request's response once the request completes
1724// successfully.
1725//
1726// Use "Send" method on the returned Request to send the API call to the service.
1727// the "output" return value is not valid until after Send returns without error.
1728//
1729// See DescribeTaskExecution for more information on using the DescribeTaskExecution
1730// API call, and error handling.
1731//
1732// This method is useful when you want to inject custom logic or configuration
1733// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1734//
1735//
1736//    // Example sending a request using the DescribeTaskExecutionRequest method.
1737//    req, resp := client.DescribeTaskExecutionRequest(params)
1738//
1739//    err := req.Send()
1740//    if err == nil { // resp is now filled
1741//        fmt.Println(resp)
1742//    }
1743//
1744// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeTaskExecution
1745func (c *DataSync) DescribeTaskExecutionRequest(input *DescribeTaskExecutionInput) (req *request.Request, output *DescribeTaskExecutionOutput) {
1746	op := &request.Operation{
1747		Name:       opDescribeTaskExecution,
1748		HTTPMethod: "POST",
1749		HTTPPath:   "/",
1750	}
1751
1752	if input == nil {
1753		input = &DescribeTaskExecutionInput{}
1754	}
1755
1756	output = &DescribeTaskExecutionOutput{}
1757	req = c.newRequest(op, input, output)
1758	return
1759}
1760
1761// DescribeTaskExecution API operation for AWS DataSync.
1762//
1763// Returns detailed metadata about a task that is being executed.
1764//
1765// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1766// with awserr.Error's Code and Message methods to get detailed information about
1767// the error.
1768//
1769// See the AWS API reference guide for AWS DataSync's
1770// API operation DescribeTaskExecution for usage and error information.
1771//
1772// Returned Error Types:
1773//   * InvalidRequestException
1774//   This exception is thrown when the client submits a malformed request.
1775//
1776//   * InternalException
1777//   This exception is thrown when an error occurs in the AWS DataSync service.
1778//
1779// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeTaskExecution
1780func (c *DataSync) DescribeTaskExecution(input *DescribeTaskExecutionInput) (*DescribeTaskExecutionOutput, error) {
1781	req, out := c.DescribeTaskExecutionRequest(input)
1782	return out, req.Send()
1783}
1784
1785// DescribeTaskExecutionWithContext is the same as DescribeTaskExecution with the addition of
1786// the ability to pass a context and additional request options.
1787//
1788// See DescribeTaskExecution for details on how to use this API operation.
1789//
1790// The context must be non-nil and will be used for request cancellation. If
1791// the context is nil a panic will occur. In the future the SDK may create
1792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1793// for more information on using Contexts.
1794func (c *DataSync) DescribeTaskExecutionWithContext(ctx aws.Context, input *DescribeTaskExecutionInput, opts ...request.Option) (*DescribeTaskExecutionOutput, error) {
1795	req, out := c.DescribeTaskExecutionRequest(input)
1796	req.SetContext(ctx)
1797	req.ApplyOptions(opts...)
1798	return out, req.Send()
1799}
1800
1801const opListAgents = "ListAgents"
1802
1803// ListAgentsRequest generates a "aws/request.Request" representing the
1804// client's request for the ListAgents operation. The "output" return
1805// value will be populated with the request's response once the request completes
1806// successfully.
1807//
1808// Use "Send" method on the returned Request to send the API call to the service.
1809// the "output" return value is not valid until after Send returns without error.
1810//
1811// See ListAgents for more information on using the ListAgents
1812// API call, and error handling.
1813//
1814// This method is useful when you want to inject custom logic or configuration
1815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1816//
1817//
1818//    // Example sending a request using the ListAgentsRequest method.
1819//    req, resp := client.ListAgentsRequest(params)
1820//
1821//    err := req.Send()
1822//    if err == nil { // resp is now filled
1823//        fmt.Println(resp)
1824//    }
1825//
1826// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListAgents
1827func (c *DataSync) ListAgentsRequest(input *ListAgentsInput) (req *request.Request, output *ListAgentsOutput) {
1828	op := &request.Operation{
1829		Name:       opListAgents,
1830		HTTPMethod: "POST",
1831		HTTPPath:   "/",
1832		Paginator: &request.Paginator{
1833			InputTokens:     []string{"NextToken"},
1834			OutputTokens:    []string{"NextToken"},
1835			LimitToken:      "MaxResults",
1836			TruncationToken: "",
1837		},
1838	}
1839
1840	if input == nil {
1841		input = &ListAgentsInput{}
1842	}
1843
1844	output = &ListAgentsOutput{}
1845	req = c.newRequest(op, input, output)
1846	return
1847}
1848
1849// ListAgents API operation for AWS DataSync.
1850//
1851// Returns a list of agents owned by an AWS account in the AWS Region specified
1852// in the request. The returned list is ordered by agent Amazon Resource Name
1853// (ARN).
1854//
1855// By default, this operation returns a maximum of 100 agents. This operation
1856// supports pagination that enables you to optionally reduce the number of agents
1857// returned in a response.
1858//
1859// If you have more agents than are returned in a response (that is, the response
1860// returns only a truncated list of your agents), the response contains a marker
1861// that you can specify in your next request to fetch the next page of agents.
1862//
1863// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1864// with awserr.Error's Code and Message methods to get detailed information about
1865// the error.
1866//
1867// See the AWS API reference guide for AWS DataSync's
1868// API operation ListAgents for usage and error information.
1869//
1870// Returned Error Types:
1871//   * InvalidRequestException
1872//   This exception is thrown when the client submits a malformed request.
1873//
1874//   * InternalException
1875//   This exception is thrown when an error occurs in the AWS DataSync service.
1876//
1877// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListAgents
1878func (c *DataSync) ListAgents(input *ListAgentsInput) (*ListAgentsOutput, error) {
1879	req, out := c.ListAgentsRequest(input)
1880	return out, req.Send()
1881}
1882
1883// ListAgentsWithContext is the same as ListAgents with the addition of
1884// the ability to pass a context and additional request options.
1885//
1886// See ListAgents for details on how to use this API operation.
1887//
1888// The context must be non-nil and will be used for request cancellation. If
1889// the context is nil a panic will occur. In the future the SDK may create
1890// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1891// for more information on using Contexts.
1892func (c *DataSync) ListAgentsWithContext(ctx aws.Context, input *ListAgentsInput, opts ...request.Option) (*ListAgentsOutput, error) {
1893	req, out := c.ListAgentsRequest(input)
1894	req.SetContext(ctx)
1895	req.ApplyOptions(opts...)
1896	return out, req.Send()
1897}
1898
1899// ListAgentsPages iterates over the pages of a ListAgents operation,
1900// calling the "fn" function with the response data for each page. To stop
1901// iterating, return false from the fn function.
1902//
1903// See ListAgents method for more information on how to use this operation.
1904//
1905// Note: This operation can generate multiple requests to a service.
1906//
1907//    // Example iterating over at most 3 pages of a ListAgents operation.
1908//    pageNum := 0
1909//    err := client.ListAgentsPages(params,
1910//        func(page *datasync.ListAgentsOutput, lastPage bool) bool {
1911//            pageNum++
1912//            fmt.Println(page)
1913//            return pageNum <= 3
1914//        })
1915//
1916func (c *DataSync) ListAgentsPages(input *ListAgentsInput, fn func(*ListAgentsOutput, bool) bool) error {
1917	return c.ListAgentsPagesWithContext(aws.BackgroundContext(), input, fn)
1918}
1919
1920// ListAgentsPagesWithContext same as ListAgentsPages except
1921// it takes a Context and allows setting request options on the pages.
1922//
1923// The context must be non-nil and will be used for request cancellation. If
1924// the context is nil a panic will occur. In the future the SDK may create
1925// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1926// for more information on using Contexts.
1927func (c *DataSync) ListAgentsPagesWithContext(ctx aws.Context, input *ListAgentsInput, fn func(*ListAgentsOutput, bool) bool, opts ...request.Option) error {
1928	p := request.Pagination{
1929		NewRequest: func() (*request.Request, error) {
1930			var inCpy *ListAgentsInput
1931			if input != nil {
1932				tmp := *input
1933				inCpy = &tmp
1934			}
1935			req, _ := c.ListAgentsRequest(inCpy)
1936			req.SetContext(ctx)
1937			req.ApplyOptions(opts...)
1938			return req, nil
1939		},
1940	}
1941
1942	for p.Next() {
1943		if !fn(p.Page().(*ListAgentsOutput), !p.HasNextPage()) {
1944			break
1945		}
1946	}
1947
1948	return p.Err()
1949}
1950
1951const opListLocations = "ListLocations"
1952
1953// ListLocationsRequest generates a "aws/request.Request" representing the
1954// client's request for the ListLocations operation. The "output" return
1955// value will be populated with the request's response once the request completes
1956// successfully.
1957//
1958// Use "Send" method on the returned Request to send the API call to the service.
1959// the "output" return value is not valid until after Send returns without error.
1960//
1961// See ListLocations for more information on using the ListLocations
1962// API call, and error handling.
1963//
1964// This method is useful when you want to inject custom logic or configuration
1965// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1966//
1967//
1968//    // Example sending a request using the ListLocationsRequest method.
1969//    req, resp := client.ListLocationsRequest(params)
1970//
1971//    err := req.Send()
1972//    if err == nil { // resp is now filled
1973//        fmt.Println(resp)
1974//    }
1975//
1976// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListLocations
1977func (c *DataSync) ListLocationsRequest(input *ListLocationsInput) (req *request.Request, output *ListLocationsOutput) {
1978	op := &request.Operation{
1979		Name:       opListLocations,
1980		HTTPMethod: "POST",
1981		HTTPPath:   "/",
1982		Paginator: &request.Paginator{
1983			InputTokens:     []string{"NextToken"},
1984			OutputTokens:    []string{"NextToken"},
1985			LimitToken:      "MaxResults",
1986			TruncationToken: "",
1987		},
1988	}
1989
1990	if input == nil {
1991		input = &ListLocationsInput{}
1992	}
1993
1994	output = &ListLocationsOutput{}
1995	req = c.newRequest(op, input, output)
1996	return
1997}
1998
1999// ListLocations API operation for AWS DataSync.
2000//
2001// Returns a list of source and destination locations.
2002//
2003// If you have more locations than are returned in a response (that is, the
2004// response returns only a truncated list of your agents), the response contains
2005// a token that you can specify in your next request to fetch the next page
2006// of locations.
2007//
2008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2009// with awserr.Error's Code and Message methods to get detailed information about
2010// the error.
2011//
2012// See the AWS API reference guide for AWS DataSync's
2013// API operation ListLocations for usage and error information.
2014//
2015// Returned Error Types:
2016//   * InvalidRequestException
2017//   This exception is thrown when the client submits a malformed request.
2018//
2019//   * InternalException
2020//   This exception is thrown when an error occurs in the AWS DataSync service.
2021//
2022// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListLocations
2023func (c *DataSync) ListLocations(input *ListLocationsInput) (*ListLocationsOutput, error) {
2024	req, out := c.ListLocationsRequest(input)
2025	return out, req.Send()
2026}
2027
2028// ListLocationsWithContext is the same as ListLocations with the addition of
2029// the ability to pass a context and additional request options.
2030//
2031// See ListLocations for details on how to use this API operation.
2032//
2033// The context must be non-nil and will be used for request cancellation. If
2034// the context is nil a panic will occur. In the future the SDK may create
2035// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2036// for more information on using Contexts.
2037func (c *DataSync) ListLocationsWithContext(ctx aws.Context, input *ListLocationsInput, opts ...request.Option) (*ListLocationsOutput, error) {
2038	req, out := c.ListLocationsRequest(input)
2039	req.SetContext(ctx)
2040	req.ApplyOptions(opts...)
2041	return out, req.Send()
2042}
2043
2044// ListLocationsPages iterates over the pages of a ListLocations operation,
2045// calling the "fn" function with the response data for each page. To stop
2046// iterating, return false from the fn function.
2047//
2048// See ListLocations method for more information on how to use this operation.
2049//
2050// Note: This operation can generate multiple requests to a service.
2051//
2052//    // Example iterating over at most 3 pages of a ListLocations operation.
2053//    pageNum := 0
2054//    err := client.ListLocationsPages(params,
2055//        func(page *datasync.ListLocationsOutput, lastPage bool) bool {
2056//            pageNum++
2057//            fmt.Println(page)
2058//            return pageNum <= 3
2059//        })
2060//
2061func (c *DataSync) ListLocationsPages(input *ListLocationsInput, fn func(*ListLocationsOutput, bool) bool) error {
2062	return c.ListLocationsPagesWithContext(aws.BackgroundContext(), input, fn)
2063}
2064
2065// ListLocationsPagesWithContext same as ListLocationsPages except
2066// it takes a Context and allows setting request options on the pages.
2067//
2068// The context must be non-nil and will be used for request cancellation. If
2069// the context is nil a panic will occur. In the future the SDK may create
2070// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2071// for more information on using Contexts.
2072func (c *DataSync) ListLocationsPagesWithContext(ctx aws.Context, input *ListLocationsInput, fn func(*ListLocationsOutput, bool) bool, opts ...request.Option) error {
2073	p := request.Pagination{
2074		NewRequest: func() (*request.Request, error) {
2075			var inCpy *ListLocationsInput
2076			if input != nil {
2077				tmp := *input
2078				inCpy = &tmp
2079			}
2080			req, _ := c.ListLocationsRequest(inCpy)
2081			req.SetContext(ctx)
2082			req.ApplyOptions(opts...)
2083			return req, nil
2084		},
2085	}
2086
2087	for p.Next() {
2088		if !fn(p.Page().(*ListLocationsOutput), !p.HasNextPage()) {
2089			break
2090		}
2091	}
2092
2093	return p.Err()
2094}
2095
2096const opListTagsForResource = "ListTagsForResource"
2097
2098// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2099// client's request for the ListTagsForResource operation. The "output" return
2100// value will be populated with the request's response once the request completes
2101// successfully.
2102//
2103// Use "Send" method on the returned Request to send the API call to the service.
2104// the "output" return value is not valid until after Send returns without error.
2105//
2106// See ListTagsForResource for more information on using the ListTagsForResource
2107// API call, and error handling.
2108//
2109// This method is useful when you want to inject custom logic or configuration
2110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2111//
2112//
2113//    // Example sending a request using the ListTagsForResourceRequest method.
2114//    req, resp := client.ListTagsForResourceRequest(params)
2115//
2116//    err := req.Send()
2117//    if err == nil { // resp is now filled
2118//        fmt.Println(resp)
2119//    }
2120//
2121// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTagsForResource
2122func (c *DataSync) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2123	op := &request.Operation{
2124		Name:       opListTagsForResource,
2125		HTTPMethod: "POST",
2126		HTTPPath:   "/",
2127		Paginator: &request.Paginator{
2128			InputTokens:     []string{"NextToken"},
2129			OutputTokens:    []string{"NextToken"},
2130			LimitToken:      "MaxResults",
2131			TruncationToken: "",
2132		},
2133	}
2134
2135	if input == nil {
2136		input = &ListTagsForResourceInput{}
2137	}
2138
2139	output = &ListTagsForResourceOutput{}
2140	req = c.newRequest(op, input, output)
2141	return
2142}
2143
2144// ListTagsForResource API operation for AWS DataSync.
2145//
2146// Returns all the tags associated with a specified resource.
2147//
2148// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2149// with awserr.Error's Code and Message methods to get detailed information about
2150// the error.
2151//
2152// See the AWS API reference guide for AWS DataSync's
2153// API operation ListTagsForResource for usage and error information.
2154//
2155// Returned Error Types:
2156//   * InvalidRequestException
2157//   This exception is thrown when the client submits a malformed request.
2158//
2159//   * InternalException
2160//   This exception is thrown when an error occurs in the AWS DataSync service.
2161//
2162// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTagsForResource
2163func (c *DataSync) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2164	req, out := c.ListTagsForResourceRequest(input)
2165	return out, req.Send()
2166}
2167
2168// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2169// the ability to pass a context and additional request options.
2170//
2171// See ListTagsForResource for details on how to use this API operation.
2172//
2173// The context must be non-nil and will be used for request cancellation. If
2174// the context is nil a panic will occur. In the future the SDK may create
2175// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2176// for more information on using Contexts.
2177func (c *DataSync) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2178	req, out := c.ListTagsForResourceRequest(input)
2179	req.SetContext(ctx)
2180	req.ApplyOptions(opts...)
2181	return out, req.Send()
2182}
2183
2184// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
2185// calling the "fn" function with the response data for each page. To stop
2186// iterating, return false from the fn function.
2187//
2188// See ListTagsForResource method for more information on how to use this operation.
2189//
2190// Note: This operation can generate multiple requests to a service.
2191//
2192//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
2193//    pageNum := 0
2194//    err := client.ListTagsForResourcePages(params,
2195//        func(page *datasync.ListTagsForResourceOutput, lastPage bool) bool {
2196//            pageNum++
2197//            fmt.Println(page)
2198//            return pageNum <= 3
2199//        })
2200//
2201func (c *DataSync) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
2202	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
2203}
2204
2205// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
2206// it takes a Context and allows setting request options on the pages.
2207//
2208// The context must be non-nil and will be used for request cancellation. If
2209// the context is nil a panic will occur. In the future the SDK may create
2210// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2211// for more information on using Contexts.
2212func (c *DataSync) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
2213	p := request.Pagination{
2214		NewRequest: func() (*request.Request, error) {
2215			var inCpy *ListTagsForResourceInput
2216			if input != nil {
2217				tmp := *input
2218				inCpy = &tmp
2219			}
2220			req, _ := c.ListTagsForResourceRequest(inCpy)
2221			req.SetContext(ctx)
2222			req.ApplyOptions(opts...)
2223			return req, nil
2224		},
2225	}
2226
2227	for p.Next() {
2228		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
2229			break
2230		}
2231	}
2232
2233	return p.Err()
2234}
2235
2236const opListTaskExecutions = "ListTaskExecutions"
2237
2238// ListTaskExecutionsRequest generates a "aws/request.Request" representing the
2239// client's request for the ListTaskExecutions operation. The "output" return
2240// value will be populated with the request's response once the request completes
2241// successfully.
2242//
2243// Use "Send" method on the returned Request to send the API call to the service.
2244// the "output" return value is not valid until after Send returns without error.
2245//
2246// See ListTaskExecutions for more information on using the ListTaskExecutions
2247// API call, and error handling.
2248//
2249// This method is useful when you want to inject custom logic or configuration
2250// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2251//
2252//
2253//    // Example sending a request using the ListTaskExecutionsRequest method.
2254//    req, resp := client.ListTaskExecutionsRequest(params)
2255//
2256//    err := req.Send()
2257//    if err == nil { // resp is now filled
2258//        fmt.Println(resp)
2259//    }
2260//
2261// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTaskExecutions
2262func (c *DataSync) ListTaskExecutionsRequest(input *ListTaskExecutionsInput) (req *request.Request, output *ListTaskExecutionsOutput) {
2263	op := &request.Operation{
2264		Name:       opListTaskExecutions,
2265		HTTPMethod: "POST",
2266		HTTPPath:   "/",
2267		Paginator: &request.Paginator{
2268			InputTokens:     []string{"NextToken"},
2269			OutputTokens:    []string{"NextToken"},
2270			LimitToken:      "MaxResults",
2271			TruncationToken: "",
2272		},
2273	}
2274
2275	if input == nil {
2276		input = &ListTaskExecutionsInput{}
2277	}
2278
2279	output = &ListTaskExecutionsOutput{}
2280	req = c.newRequest(op, input, output)
2281	return
2282}
2283
2284// ListTaskExecutions API operation for AWS DataSync.
2285//
2286// Returns a list of executed tasks.
2287//
2288// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2289// with awserr.Error's Code and Message methods to get detailed information about
2290// the error.
2291//
2292// See the AWS API reference guide for AWS DataSync's
2293// API operation ListTaskExecutions for usage and error information.
2294//
2295// Returned Error Types:
2296//   * InvalidRequestException
2297//   This exception is thrown when the client submits a malformed request.
2298//
2299//   * InternalException
2300//   This exception is thrown when an error occurs in the AWS DataSync service.
2301//
2302// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTaskExecutions
2303func (c *DataSync) ListTaskExecutions(input *ListTaskExecutionsInput) (*ListTaskExecutionsOutput, error) {
2304	req, out := c.ListTaskExecutionsRequest(input)
2305	return out, req.Send()
2306}
2307
2308// ListTaskExecutionsWithContext is the same as ListTaskExecutions with the addition of
2309// the ability to pass a context and additional request options.
2310//
2311// See ListTaskExecutions for details on how to use this API operation.
2312//
2313// The context must be non-nil and will be used for request cancellation. If
2314// the context is nil a panic will occur. In the future the SDK may create
2315// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2316// for more information on using Contexts.
2317func (c *DataSync) ListTaskExecutionsWithContext(ctx aws.Context, input *ListTaskExecutionsInput, opts ...request.Option) (*ListTaskExecutionsOutput, error) {
2318	req, out := c.ListTaskExecutionsRequest(input)
2319	req.SetContext(ctx)
2320	req.ApplyOptions(opts...)
2321	return out, req.Send()
2322}
2323
2324// ListTaskExecutionsPages iterates over the pages of a ListTaskExecutions operation,
2325// calling the "fn" function with the response data for each page. To stop
2326// iterating, return false from the fn function.
2327//
2328// See ListTaskExecutions method for more information on how to use this operation.
2329//
2330// Note: This operation can generate multiple requests to a service.
2331//
2332//    // Example iterating over at most 3 pages of a ListTaskExecutions operation.
2333//    pageNum := 0
2334//    err := client.ListTaskExecutionsPages(params,
2335//        func(page *datasync.ListTaskExecutionsOutput, lastPage bool) bool {
2336//            pageNum++
2337//            fmt.Println(page)
2338//            return pageNum <= 3
2339//        })
2340//
2341func (c *DataSync) ListTaskExecutionsPages(input *ListTaskExecutionsInput, fn func(*ListTaskExecutionsOutput, bool) bool) error {
2342	return c.ListTaskExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
2343}
2344
2345// ListTaskExecutionsPagesWithContext same as ListTaskExecutionsPages except
2346// it takes a Context and allows setting request options on the pages.
2347//
2348// The context must be non-nil and will be used for request cancellation. If
2349// the context is nil a panic will occur. In the future the SDK may create
2350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2351// for more information on using Contexts.
2352func (c *DataSync) ListTaskExecutionsPagesWithContext(ctx aws.Context, input *ListTaskExecutionsInput, fn func(*ListTaskExecutionsOutput, bool) bool, opts ...request.Option) error {
2353	p := request.Pagination{
2354		NewRequest: func() (*request.Request, error) {
2355			var inCpy *ListTaskExecutionsInput
2356			if input != nil {
2357				tmp := *input
2358				inCpy = &tmp
2359			}
2360			req, _ := c.ListTaskExecutionsRequest(inCpy)
2361			req.SetContext(ctx)
2362			req.ApplyOptions(opts...)
2363			return req, nil
2364		},
2365	}
2366
2367	for p.Next() {
2368		if !fn(p.Page().(*ListTaskExecutionsOutput), !p.HasNextPage()) {
2369			break
2370		}
2371	}
2372
2373	return p.Err()
2374}
2375
2376const opListTasks = "ListTasks"
2377
2378// ListTasksRequest generates a "aws/request.Request" representing the
2379// client's request for the ListTasks operation. The "output" return
2380// value will be populated with the request's response once the request completes
2381// successfully.
2382//
2383// Use "Send" method on the returned Request to send the API call to the service.
2384// the "output" return value is not valid until after Send returns without error.
2385//
2386// See ListTasks for more information on using the ListTasks
2387// API call, and error handling.
2388//
2389// This method is useful when you want to inject custom logic or configuration
2390// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2391//
2392//
2393//    // Example sending a request using the ListTasksRequest method.
2394//    req, resp := client.ListTasksRequest(params)
2395//
2396//    err := req.Send()
2397//    if err == nil { // resp is now filled
2398//        fmt.Println(resp)
2399//    }
2400//
2401// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTasks
2402func (c *DataSync) ListTasksRequest(input *ListTasksInput) (req *request.Request, output *ListTasksOutput) {
2403	op := &request.Operation{
2404		Name:       opListTasks,
2405		HTTPMethod: "POST",
2406		HTTPPath:   "/",
2407		Paginator: &request.Paginator{
2408			InputTokens:     []string{"NextToken"},
2409			OutputTokens:    []string{"NextToken"},
2410			LimitToken:      "MaxResults",
2411			TruncationToken: "",
2412		},
2413	}
2414
2415	if input == nil {
2416		input = &ListTasksInput{}
2417	}
2418
2419	output = &ListTasksOutput{}
2420	req = c.newRequest(op, input, output)
2421	return
2422}
2423
2424// ListTasks API operation for AWS DataSync.
2425//
2426// Returns a list of all the tasks.
2427//
2428// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2429// with awserr.Error's Code and Message methods to get detailed information about
2430// the error.
2431//
2432// See the AWS API reference guide for AWS DataSync's
2433// API operation ListTasks for usage and error information.
2434//
2435// Returned Error Types:
2436//   * InvalidRequestException
2437//   This exception is thrown when the client submits a malformed request.
2438//
2439//   * InternalException
2440//   This exception is thrown when an error occurs in the AWS DataSync service.
2441//
2442// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTasks
2443func (c *DataSync) ListTasks(input *ListTasksInput) (*ListTasksOutput, error) {
2444	req, out := c.ListTasksRequest(input)
2445	return out, req.Send()
2446}
2447
2448// ListTasksWithContext is the same as ListTasks with the addition of
2449// the ability to pass a context and additional request options.
2450//
2451// See ListTasks for details on how to use this API operation.
2452//
2453// The context must be non-nil and will be used for request cancellation. If
2454// the context is nil a panic will occur. In the future the SDK may create
2455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2456// for more information on using Contexts.
2457func (c *DataSync) ListTasksWithContext(ctx aws.Context, input *ListTasksInput, opts ...request.Option) (*ListTasksOutput, error) {
2458	req, out := c.ListTasksRequest(input)
2459	req.SetContext(ctx)
2460	req.ApplyOptions(opts...)
2461	return out, req.Send()
2462}
2463
2464// ListTasksPages iterates over the pages of a ListTasks operation,
2465// calling the "fn" function with the response data for each page. To stop
2466// iterating, return false from the fn function.
2467//
2468// See ListTasks method for more information on how to use this operation.
2469//
2470// Note: This operation can generate multiple requests to a service.
2471//
2472//    // Example iterating over at most 3 pages of a ListTasks operation.
2473//    pageNum := 0
2474//    err := client.ListTasksPages(params,
2475//        func(page *datasync.ListTasksOutput, lastPage bool) bool {
2476//            pageNum++
2477//            fmt.Println(page)
2478//            return pageNum <= 3
2479//        })
2480//
2481func (c *DataSync) ListTasksPages(input *ListTasksInput, fn func(*ListTasksOutput, bool) bool) error {
2482	return c.ListTasksPagesWithContext(aws.BackgroundContext(), input, fn)
2483}
2484
2485// ListTasksPagesWithContext same as ListTasksPages except
2486// it takes a Context and allows setting request options on the pages.
2487//
2488// The context must be non-nil and will be used for request cancellation. If
2489// the context is nil a panic will occur. In the future the SDK may create
2490// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2491// for more information on using Contexts.
2492func (c *DataSync) ListTasksPagesWithContext(ctx aws.Context, input *ListTasksInput, fn func(*ListTasksOutput, bool) bool, opts ...request.Option) error {
2493	p := request.Pagination{
2494		NewRequest: func() (*request.Request, error) {
2495			var inCpy *ListTasksInput
2496			if input != nil {
2497				tmp := *input
2498				inCpy = &tmp
2499			}
2500			req, _ := c.ListTasksRequest(inCpy)
2501			req.SetContext(ctx)
2502			req.ApplyOptions(opts...)
2503			return req, nil
2504		},
2505	}
2506
2507	for p.Next() {
2508		if !fn(p.Page().(*ListTasksOutput), !p.HasNextPage()) {
2509			break
2510		}
2511	}
2512
2513	return p.Err()
2514}
2515
2516const opStartTaskExecution = "StartTaskExecution"
2517
2518// StartTaskExecutionRequest generates a "aws/request.Request" representing the
2519// client's request for the StartTaskExecution operation. The "output" return
2520// value will be populated with the request's response once the request completes
2521// successfully.
2522//
2523// Use "Send" method on the returned Request to send the API call to the service.
2524// the "output" return value is not valid until after Send returns without error.
2525//
2526// See StartTaskExecution for more information on using the StartTaskExecution
2527// API call, and error handling.
2528//
2529// This method is useful when you want to inject custom logic or configuration
2530// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2531//
2532//
2533//    // Example sending a request using the StartTaskExecutionRequest method.
2534//    req, resp := client.StartTaskExecutionRequest(params)
2535//
2536//    err := req.Send()
2537//    if err == nil { // resp is now filled
2538//        fmt.Println(resp)
2539//    }
2540//
2541// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/StartTaskExecution
2542func (c *DataSync) StartTaskExecutionRequest(input *StartTaskExecutionInput) (req *request.Request, output *StartTaskExecutionOutput) {
2543	op := &request.Operation{
2544		Name:       opStartTaskExecution,
2545		HTTPMethod: "POST",
2546		HTTPPath:   "/",
2547	}
2548
2549	if input == nil {
2550		input = &StartTaskExecutionInput{}
2551	}
2552
2553	output = &StartTaskExecutionOutput{}
2554	req = c.newRequest(op, input, output)
2555	return
2556}
2557
2558// StartTaskExecution API operation for AWS DataSync.
2559//
2560// Starts a specific invocation of a task. A TaskExecution value represents
2561// an individual run of a task. Each task can have at most one TaskExecution
2562// at a time.
2563//
2564// TaskExecution has the following transition phases: INITIALIZING | PREPARING
2565// | TRANSFERRING | VERIFYING | SUCCESS/FAILURE.
2566//
2567// For detailed information, see the Task Execution section in the Components
2568// and Terminology topic in the AWS DataSync User Guide.
2569//
2570// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2571// with awserr.Error's Code and Message methods to get detailed information about
2572// the error.
2573//
2574// See the AWS API reference guide for AWS DataSync's
2575// API operation StartTaskExecution for usage and error information.
2576//
2577// Returned Error Types:
2578//   * InvalidRequestException
2579//   This exception is thrown when the client submits a malformed request.
2580//
2581//   * InternalException
2582//   This exception is thrown when an error occurs in the AWS DataSync service.
2583//
2584// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/StartTaskExecution
2585func (c *DataSync) StartTaskExecution(input *StartTaskExecutionInput) (*StartTaskExecutionOutput, error) {
2586	req, out := c.StartTaskExecutionRequest(input)
2587	return out, req.Send()
2588}
2589
2590// StartTaskExecutionWithContext is the same as StartTaskExecution with the addition of
2591// the ability to pass a context and additional request options.
2592//
2593// See StartTaskExecution for details on how to use this API operation.
2594//
2595// The context must be non-nil and will be used for request cancellation. If
2596// the context is nil a panic will occur. In the future the SDK may create
2597// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2598// for more information on using Contexts.
2599func (c *DataSync) StartTaskExecutionWithContext(ctx aws.Context, input *StartTaskExecutionInput, opts ...request.Option) (*StartTaskExecutionOutput, error) {
2600	req, out := c.StartTaskExecutionRequest(input)
2601	req.SetContext(ctx)
2602	req.ApplyOptions(opts...)
2603	return out, req.Send()
2604}
2605
2606const opTagResource = "TagResource"
2607
2608// TagResourceRequest generates a "aws/request.Request" representing the
2609// client's request for the TagResource operation. The "output" return
2610// value will be populated with the request's response once the request completes
2611// successfully.
2612//
2613// Use "Send" method on the returned Request to send the API call to the service.
2614// the "output" return value is not valid until after Send returns without error.
2615//
2616// See TagResource for more information on using the TagResource
2617// API call, and error handling.
2618//
2619// This method is useful when you want to inject custom logic or configuration
2620// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2621//
2622//
2623//    // Example sending a request using the TagResourceRequest method.
2624//    req, resp := client.TagResourceRequest(params)
2625//
2626//    err := req.Send()
2627//    if err == nil { // resp is now filled
2628//        fmt.Println(resp)
2629//    }
2630//
2631// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/TagResource
2632func (c *DataSync) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2633	op := &request.Operation{
2634		Name:       opTagResource,
2635		HTTPMethod: "POST",
2636		HTTPPath:   "/",
2637	}
2638
2639	if input == nil {
2640		input = &TagResourceInput{}
2641	}
2642
2643	output = &TagResourceOutput{}
2644	req = c.newRequest(op, input, output)
2645	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2646	return
2647}
2648
2649// TagResource API operation for AWS DataSync.
2650//
2651// Applies a key-value pair to an AWS resource.
2652//
2653// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2654// with awserr.Error's Code and Message methods to get detailed information about
2655// the error.
2656//
2657// See the AWS API reference guide for AWS DataSync's
2658// API operation TagResource for usage and error information.
2659//
2660// Returned Error Types:
2661//   * InvalidRequestException
2662//   This exception is thrown when the client submits a malformed request.
2663//
2664//   * InternalException
2665//   This exception is thrown when an error occurs in the AWS DataSync service.
2666//
2667// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/TagResource
2668func (c *DataSync) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2669	req, out := c.TagResourceRequest(input)
2670	return out, req.Send()
2671}
2672
2673// TagResourceWithContext is the same as TagResource with the addition of
2674// the ability to pass a context and additional request options.
2675//
2676// See TagResource for details on how to use this API operation.
2677//
2678// The context must be non-nil and will be used for request cancellation. If
2679// the context is nil a panic will occur. In the future the SDK may create
2680// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2681// for more information on using Contexts.
2682func (c *DataSync) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2683	req, out := c.TagResourceRequest(input)
2684	req.SetContext(ctx)
2685	req.ApplyOptions(opts...)
2686	return out, req.Send()
2687}
2688
2689const opUntagResource = "UntagResource"
2690
2691// UntagResourceRequest generates a "aws/request.Request" representing the
2692// client's request for the UntagResource operation. The "output" return
2693// value will be populated with the request's response once the request completes
2694// successfully.
2695//
2696// Use "Send" method on the returned Request to send the API call to the service.
2697// the "output" return value is not valid until after Send returns without error.
2698//
2699// See UntagResource for more information on using the UntagResource
2700// API call, and error handling.
2701//
2702// This method is useful when you want to inject custom logic or configuration
2703// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2704//
2705//
2706//    // Example sending a request using the UntagResourceRequest method.
2707//    req, resp := client.UntagResourceRequest(params)
2708//
2709//    err := req.Send()
2710//    if err == nil { // resp is now filled
2711//        fmt.Println(resp)
2712//    }
2713//
2714// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UntagResource
2715func (c *DataSync) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2716	op := &request.Operation{
2717		Name:       opUntagResource,
2718		HTTPMethod: "POST",
2719		HTTPPath:   "/",
2720	}
2721
2722	if input == nil {
2723		input = &UntagResourceInput{}
2724	}
2725
2726	output = &UntagResourceOutput{}
2727	req = c.newRequest(op, input, output)
2728	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2729	return
2730}
2731
2732// UntagResource API operation for AWS DataSync.
2733//
2734// Removes a tag from an AWS resource.
2735//
2736// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2737// with awserr.Error's Code and Message methods to get detailed information about
2738// the error.
2739//
2740// See the AWS API reference guide for AWS DataSync's
2741// API operation UntagResource for usage and error information.
2742//
2743// Returned Error Types:
2744//   * InvalidRequestException
2745//   This exception is thrown when the client submits a malformed request.
2746//
2747//   * InternalException
2748//   This exception is thrown when an error occurs in the AWS DataSync service.
2749//
2750// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UntagResource
2751func (c *DataSync) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2752	req, out := c.UntagResourceRequest(input)
2753	return out, req.Send()
2754}
2755
2756// UntagResourceWithContext is the same as UntagResource with the addition of
2757// the ability to pass a context and additional request options.
2758//
2759// See UntagResource for details on how to use this API operation.
2760//
2761// The context must be non-nil and will be used for request cancellation. If
2762// the context is nil a panic will occur. In the future the SDK may create
2763// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2764// for more information on using Contexts.
2765func (c *DataSync) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2766	req, out := c.UntagResourceRequest(input)
2767	req.SetContext(ctx)
2768	req.ApplyOptions(opts...)
2769	return out, req.Send()
2770}
2771
2772const opUpdateAgent = "UpdateAgent"
2773
2774// UpdateAgentRequest generates a "aws/request.Request" representing the
2775// client's request for the UpdateAgent operation. The "output" return
2776// value will be populated with the request's response once the request completes
2777// successfully.
2778//
2779// Use "Send" method on the returned Request to send the API call to the service.
2780// the "output" return value is not valid until after Send returns without error.
2781//
2782// See UpdateAgent for more information on using the UpdateAgent
2783// API call, and error handling.
2784//
2785// This method is useful when you want to inject custom logic or configuration
2786// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2787//
2788//
2789//    // Example sending a request using the UpdateAgentRequest method.
2790//    req, resp := client.UpdateAgentRequest(params)
2791//
2792//    err := req.Send()
2793//    if err == nil { // resp is now filled
2794//        fmt.Println(resp)
2795//    }
2796//
2797// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateAgent
2798func (c *DataSync) UpdateAgentRequest(input *UpdateAgentInput) (req *request.Request, output *UpdateAgentOutput) {
2799	op := &request.Operation{
2800		Name:       opUpdateAgent,
2801		HTTPMethod: "POST",
2802		HTTPPath:   "/",
2803	}
2804
2805	if input == nil {
2806		input = &UpdateAgentInput{}
2807	}
2808
2809	output = &UpdateAgentOutput{}
2810	req = c.newRequest(op, input, output)
2811	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2812	return
2813}
2814
2815// UpdateAgent API operation for AWS DataSync.
2816//
2817// Updates the name of an agent.
2818//
2819// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2820// with awserr.Error's Code and Message methods to get detailed information about
2821// the error.
2822//
2823// See the AWS API reference guide for AWS DataSync's
2824// API operation UpdateAgent for usage and error information.
2825//
2826// Returned Error Types:
2827//   * InvalidRequestException
2828//   This exception is thrown when the client submits a malformed request.
2829//
2830//   * InternalException
2831//   This exception is thrown when an error occurs in the AWS DataSync service.
2832//
2833// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateAgent
2834func (c *DataSync) UpdateAgent(input *UpdateAgentInput) (*UpdateAgentOutput, error) {
2835	req, out := c.UpdateAgentRequest(input)
2836	return out, req.Send()
2837}
2838
2839// UpdateAgentWithContext is the same as UpdateAgent with the addition of
2840// the ability to pass a context and additional request options.
2841//
2842// See UpdateAgent for details on how to use this API operation.
2843//
2844// The context must be non-nil and will be used for request cancellation. If
2845// the context is nil a panic will occur. In the future the SDK may create
2846// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2847// for more information on using Contexts.
2848func (c *DataSync) UpdateAgentWithContext(ctx aws.Context, input *UpdateAgentInput, opts ...request.Option) (*UpdateAgentOutput, error) {
2849	req, out := c.UpdateAgentRequest(input)
2850	req.SetContext(ctx)
2851	req.ApplyOptions(opts...)
2852	return out, req.Send()
2853}
2854
2855const opUpdateLocationNfs = "UpdateLocationNfs"
2856
2857// UpdateLocationNfsRequest generates a "aws/request.Request" representing the
2858// client's request for the UpdateLocationNfs operation. The "output" return
2859// value will be populated with the request's response once the request completes
2860// successfully.
2861//
2862// Use "Send" method on the returned Request to send the API call to the service.
2863// the "output" return value is not valid until after Send returns without error.
2864//
2865// See UpdateLocationNfs for more information on using the UpdateLocationNfs
2866// API call, and error handling.
2867//
2868// This method is useful when you want to inject custom logic or configuration
2869// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2870//
2871//
2872//    // Example sending a request using the UpdateLocationNfsRequest method.
2873//    req, resp := client.UpdateLocationNfsRequest(params)
2874//
2875//    err := req.Send()
2876//    if err == nil { // resp is now filled
2877//        fmt.Println(resp)
2878//    }
2879//
2880// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationNfs
2881func (c *DataSync) UpdateLocationNfsRequest(input *UpdateLocationNfsInput) (req *request.Request, output *UpdateLocationNfsOutput) {
2882	op := &request.Operation{
2883		Name:       opUpdateLocationNfs,
2884		HTTPMethod: "POST",
2885		HTTPPath:   "/",
2886	}
2887
2888	if input == nil {
2889		input = &UpdateLocationNfsInput{}
2890	}
2891
2892	output = &UpdateLocationNfsOutput{}
2893	req = c.newRequest(op, input, output)
2894	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2895	return
2896}
2897
2898// UpdateLocationNfs API operation for AWS DataSync.
2899//
2900// Updates some of the parameters of a previously created location for Network
2901// File System (NFS) access. For information about creating an NFS location,
2902// see create-nfs-location.
2903//
2904// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2905// with awserr.Error's Code and Message methods to get detailed information about
2906// the error.
2907//
2908// See the AWS API reference guide for AWS DataSync's
2909// API operation UpdateLocationNfs for usage and error information.
2910//
2911// Returned Error Types:
2912//   * InvalidRequestException
2913//   This exception is thrown when the client submits a malformed request.
2914//
2915//   * InternalException
2916//   This exception is thrown when an error occurs in the AWS DataSync service.
2917//
2918// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationNfs
2919func (c *DataSync) UpdateLocationNfs(input *UpdateLocationNfsInput) (*UpdateLocationNfsOutput, error) {
2920	req, out := c.UpdateLocationNfsRequest(input)
2921	return out, req.Send()
2922}
2923
2924// UpdateLocationNfsWithContext is the same as UpdateLocationNfs with the addition of
2925// the ability to pass a context and additional request options.
2926//
2927// See UpdateLocationNfs for details on how to use this API operation.
2928//
2929// The context must be non-nil and will be used for request cancellation. If
2930// the context is nil a panic will occur. In the future the SDK may create
2931// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2932// for more information on using Contexts.
2933func (c *DataSync) UpdateLocationNfsWithContext(ctx aws.Context, input *UpdateLocationNfsInput, opts ...request.Option) (*UpdateLocationNfsOutput, error) {
2934	req, out := c.UpdateLocationNfsRequest(input)
2935	req.SetContext(ctx)
2936	req.ApplyOptions(opts...)
2937	return out, req.Send()
2938}
2939
2940const opUpdateLocationObjectStorage = "UpdateLocationObjectStorage"
2941
2942// UpdateLocationObjectStorageRequest generates a "aws/request.Request" representing the
2943// client's request for the UpdateLocationObjectStorage operation. The "output" return
2944// value will be populated with the request's response once the request completes
2945// successfully.
2946//
2947// Use "Send" method on the returned Request to send the API call to the service.
2948// the "output" return value is not valid until after Send returns without error.
2949//
2950// See UpdateLocationObjectStorage for more information on using the UpdateLocationObjectStorage
2951// API call, and error handling.
2952//
2953// This method is useful when you want to inject custom logic or configuration
2954// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2955//
2956//
2957//    // Example sending a request using the UpdateLocationObjectStorageRequest method.
2958//    req, resp := client.UpdateLocationObjectStorageRequest(params)
2959//
2960//    err := req.Send()
2961//    if err == nil { // resp is now filled
2962//        fmt.Println(resp)
2963//    }
2964//
2965// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationObjectStorage
2966func (c *DataSync) UpdateLocationObjectStorageRequest(input *UpdateLocationObjectStorageInput) (req *request.Request, output *UpdateLocationObjectStorageOutput) {
2967	op := &request.Operation{
2968		Name:       opUpdateLocationObjectStorage,
2969		HTTPMethod: "POST",
2970		HTTPPath:   "/",
2971	}
2972
2973	if input == nil {
2974		input = &UpdateLocationObjectStorageInput{}
2975	}
2976
2977	output = &UpdateLocationObjectStorageOutput{}
2978	req = c.newRequest(op, input, output)
2979	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2980	return
2981}
2982
2983// UpdateLocationObjectStorage API operation for AWS DataSync.
2984//
2985// Updates some of the parameters of a previously created location for self-managed
2986// object storage server access. For information about creating a self-managed
2987// object storage location, see create-object-location.
2988//
2989// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2990// with awserr.Error's Code and Message methods to get detailed information about
2991// the error.
2992//
2993// See the AWS API reference guide for AWS DataSync's
2994// API operation UpdateLocationObjectStorage for usage and error information.
2995//
2996// Returned Error Types:
2997//   * InvalidRequestException
2998//   This exception is thrown when the client submits a malformed request.
2999//
3000//   * InternalException
3001//   This exception is thrown when an error occurs in the AWS DataSync service.
3002//
3003// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationObjectStorage
3004func (c *DataSync) UpdateLocationObjectStorage(input *UpdateLocationObjectStorageInput) (*UpdateLocationObjectStorageOutput, error) {
3005	req, out := c.UpdateLocationObjectStorageRequest(input)
3006	return out, req.Send()
3007}
3008
3009// UpdateLocationObjectStorageWithContext is the same as UpdateLocationObjectStorage with the addition of
3010// the ability to pass a context and additional request options.
3011//
3012// See UpdateLocationObjectStorage for details on how to use this API operation.
3013//
3014// The context must be non-nil and will be used for request cancellation. If
3015// the context is nil a panic will occur. In the future the SDK may create
3016// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3017// for more information on using Contexts.
3018func (c *DataSync) UpdateLocationObjectStorageWithContext(ctx aws.Context, input *UpdateLocationObjectStorageInput, opts ...request.Option) (*UpdateLocationObjectStorageOutput, error) {
3019	req, out := c.UpdateLocationObjectStorageRequest(input)
3020	req.SetContext(ctx)
3021	req.ApplyOptions(opts...)
3022	return out, req.Send()
3023}
3024
3025const opUpdateLocationSmb = "UpdateLocationSmb"
3026
3027// UpdateLocationSmbRequest generates a "aws/request.Request" representing the
3028// client's request for the UpdateLocationSmb operation. The "output" return
3029// value will be populated with the request's response once the request completes
3030// successfully.
3031//
3032// Use "Send" method on the returned Request to send the API call to the service.
3033// the "output" return value is not valid until after Send returns without error.
3034//
3035// See UpdateLocationSmb for more information on using the UpdateLocationSmb
3036// API call, and error handling.
3037//
3038// This method is useful when you want to inject custom logic or configuration
3039// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3040//
3041//
3042//    // Example sending a request using the UpdateLocationSmbRequest method.
3043//    req, resp := client.UpdateLocationSmbRequest(params)
3044//
3045//    err := req.Send()
3046//    if err == nil { // resp is now filled
3047//        fmt.Println(resp)
3048//    }
3049//
3050// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationSmb
3051func (c *DataSync) UpdateLocationSmbRequest(input *UpdateLocationSmbInput) (req *request.Request, output *UpdateLocationSmbOutput) {
3052	op := &request.Operation{
3053		Name:       opUpdateLocationSmb,
3054		HTTPMethod: "POST",
3055		HTTPPath:   "/",
3056	}
3057
3058	if input == nil {
3059		input = &UpdateLocationSmbInput{}
3060	}
3061
3062	output = &UpdateLocationSmbOutput{}
3063	req = c.newRequest(op, input, output)
3064	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3065	return
3066}
3067
3068// UpdateLocationSmb API operation for AWS DataSync.
3069//
3070// Updates some of the parameters of a previously created location for Server
3071// Message Block (SMB) file system access. For information about creating an
3072// SMB location, see create-smb-location.
3073//
3074// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3075// with awserr.Error's Code and Message methods to get detailed information about
3076// the error.
3077//
3078// See the AWS API reference guide for AWS DataSync's
3079// API operation UpdateLocationSmb for usage and error information.
3080//
3081// Returned Error Types:
3082//   * InvalidRequestException
3083//   This exception is thrown when the client submits a malformed request.
3084//
3085//   * InternalException
3086//   This exception is thrown when an error occurs in the AWS DataSync service.
3087//
3088// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationSmb
3089func (c *DataSync) UpdateLocationSmb(input *UpdateLocationSmbInput) (*UpdateLocationSmbOutput, error) {
3090	req, out := c.UpdateLocationSmbRequest(input)
3091	return out, req.Send()
3092}
3093
3094// UpdateLocationSmbWithContext is the same as UpdateLocationSmb with the addition of
3095// the ability to pass a context and additional request options.
3096//
3097// See UpdateLocationSmb for details on how to use this API operation.
3098//
3099// The context must be non-nil and will be used for request cancellation. If
3100// the context is nil a panic will occur. In the future the SDK may create
3101// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3102// for more information on using Contexts.
3103func (c *DataSync) UpdateLocationSmbWithContext(ctx aws.Context, input *UpdateLocationSmbInput, opts ...request.Option) (*UpdateLocationSmbOutput, error) {
3104	req, out := c.UpdateLocationSmbRequest(input)
3105	req.SetContext(ctx)
3106	req.ApplyOptions(opts...)
3107	return out, req.Send()
3108}
3109
3110const opUpdateTask = "UpdateTask"
3111
3112// UpdateTaskRequest generates a "aws/request.Request" representing the
3113// client's request for the UpdateTask operation. The "output" return
3114// value will be populated with the request's response once the request completes
3115// successfully.
3116//
3117// Use "Send" method on the returned Request to send the API call to the service.
3118// the "output" return value is not valid until after Send returns without error.
3119//
3120// See UpdateTask for more information on using the UpdateTask
3121// API call, and error handling.
3122//
3123// This method is useful when you want to inject custom logic or configuration
3124// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3125//
3126//
3127//    // Example sending a request using the UpdateTaskRequest method.
3128//    req, resp := client.UpdateTaskRequest(params)
3129//
3130//    err := req.Send()
3131//    if err == nil { // resp is now filled
3132//        fmt.Println(resp)
3133//    }
3134//
3135// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateTask
3136func (c *DataSync) UpdateTaskRequest(input *UpdateTaskInput) (req *request.Request, output *UpdateTaskOutput) {
3137	op := &request.Operation{
3138		Name:       opUpdateTask,
3139		HTTPMethod: "POST",
3140		HTTPPath:   "/",
3141	}
3142
3143	if input == nil {
3144		input = &UpdateTaskInput{}
3145	}
3146
3147	output = &UpdateTaskOutput{}
3148	req = c.newRequest(op, input, output)
3149	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3150	return
3151}
3152
3153// UpdateTask API operation for AWS DataSync.
3154//
3155// Updates the metadata associated with a task.
3156//
3157// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3158// with awserr.Error's Code and Message methods to get detailed information about
3159// the error.
3160//
3161// See the AWS API reference guide for AWS DataSync's
3162// API operation UpdateTask for usage and error information.
3163//
3164// Returned Error Types:
3165//   * InvalidRequestException
3166//   This exception is thrown when the client submits a malformed request.
3167//
3168//   * InternalException
3169//   This exception is thrown when an error occurs in the AWS DataSync service.
3170//
3171// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateTask
3172func (c *DataSync) UpdateTask(input *UpdateTaskInput) (*UpdateTaskOutput, error) {
3173	req, out := c.UpdateTaskRequest(input)
3174	return out, req.Send()
3175}
3176
3177// UpdateTaskWithContext is the same as UpdateTask with the addition of
3178// the ability to pass a context and additional request options.
3179//
3180// See UpdateTask for details on how to use this API operation.
3181//
3182// The context must be non-nil and will be used for request cancellation. If
3183// the context is nil a panic will occur. In the future the SDK may create
3184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3185// for more information on using Contexts.
3186func (c *DataSync) UpdateTaskWithContext(ctx aws.Context, input *UpdateTaskInput, opts ...request.Option) (*UpdateTaskOutput, error) {
3187	req, out := c.UpdateTaskRequest(input)
3188	req.SetContext(ctx)
3189	req.ApplyOptions(opts...)
3190	return out, req.Send()
3191}
3192
3193const opUpdateTaskExecution = "UpdateTaskExecution"
3194
3195// UpdateTaskExecutionRequest generates a "aws/request.Request" representing the
3196// client's request for the UpdateTaskExecution operation. The "output" return
3197// value will be populated with the request's response once the request completes
3198// successfully.
3199//
3200// Use "Send" method on the returned Request to send the API call to the service.
3201// the "output" return value is not valid until after Send returns without error.
3202//
3203// See UpdateTaskExecution for more information on using the UpdateTaskExecution
3204// API call, and error handling.
3205//
3206// This method is useful when you want to inject custom logic or configuration
3207// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3208//
3209//
3210//    // Example sending a request using the UpdateTaskExecutionRequest method.
3211//    req, resp := client.UpdateTaskExecutionRequest(params)
3212//
3213//    err := req.Send()
3214//    if err == nil { // resp is now filled
3215//        fmt.Println(resp)
3216//    }
3217//
3218// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateTaskExecution
3219func (c *DataSync) UpdateTaskExecutionRequest(input *UpdateTaskExecutionInput) (req *request.Request, output *UpdateTaskExecutionOutput) {
3220	op := &request.Operation{
3221		Name:       opUpdateTaskExecution,
3222		HTTPMethod: "POST",
3223		HTTPPath:   "/",
3224	}
3225
3226	if input == nil {
3227		input = &UpdateTaskExecutionInput{}
3228	}
3229
3230	output = &UpdateTaskExecutionOutput{}
3231	req = c.newRequest(op, input, output)
3232	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3233	return
3234}
3235
3236// UpdateTaskExecution API operation for AWS DataSync.
3237//
3238// Updates execution of a task.
3239//
3240// You can modify bandwidth throttling for a task execution that is running
3241// or queued. For more information, see Adjusting Bandwidth Throttling for a
3242// Task Execution (https://docs.aws.amazon.com/datasync/latest/userguide/working-with-task-executions.html#adjust-bandwidth-throttling).
3243//
3244// The only Option that can be modified by UpdateTaskExecution is BytesPerSecond
3245// (https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-BytesPerSecond) .
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 DataSync's
3252// API operation UpdateTaskExecution for usage and error information.
3253//
3254// Returned Error Types:
3255//   * InvalidRequestException
3256//   This exception is thrown when the client submits a malformed request.
3257//
3258//   * InternalException
3259//   This exception is thrown when an error occurs in the AWS DataSync service.
3260//
3261// See also, https://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateTaskExecution
3262func (c *DataSync) UpdateTaskExecution(input *UpdateTaskExecutionInput) (*UpdateTaskExecutionOutput, error) {
3263	req, out := c.UpdateTaskExecutionRequest(input)
3264	return out, req.Send()
3265}
3266
3267// UpdateTaskExecutionWithContext is the same as UpdateTaskExecution with the addition of
3268// the ability to pass a context and additional request options.
3269//
3270// See UpdateTaskExecution for details on how to use this API operation.
3271//
3272// The context must be non-nil and will be used for request cancellation. If
3273// the context is nil a panic will occur. In the future the SDK may create
3274// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3275// for more information on using Contexts.
3276func (c *DataSync) UpdateTaskExecutionWithContext(ctx aws.Context, input *UpdateTaskExecutionInput, opts ...request.Option) (*UpdateTaskExecutionOutput, error) {
3277	req, out := c.UpdateTaskExecutionRequest(input)
3278	req.SetContext(ctx)
3279	req.ApplyOptions(opts...)
3280	return out, req.Send()
3281}
3282
3283// Represents a single entry in a list of agents. AgentListEntry returns an
3284// array that contains a list of agents when the ListAgents operation is called.
3285type AgentListEntry struct {
3286	_ struct{} `type:"structure"`
3287
3288	// The Amazon Resource Name (ARN) of the agent.
3289	AgentArn *string `type:"string"`
3290
3291	// The name of the agent.
3292	Name *string `min:"1" type:"string"`
3293
3294	// The status of the agent.
3295	Status *string `type:"string" enum:"AgentStatus"`
3296}
3297
3298// String returns the string representation
3299func (s AgentListEntry) String() string {
3300	return awsutil.Prettify(s)
3301}
3302
3303// GoString returns the string representation
3304func (s AgentListEntry) GoString() string {
3305	return s.String()
3306}
3307
3308// SetAgentArn sets the AgentArn field's value.
3309func (s *AgentListEntry) SetAgentArn(v string) *AgentListEntry {
3310	s.AgentArn = &v
3311	return s
3312}
3313
3314// SetName sets the Name field's value.
3315func (s *AgentListEntry) SetName(v string) *AgentListEntry {
3316	s.Name = &v
3317	return s
3318}
3319
3320// SetStatus sets the Status field's value.
3321func (s *AgentListEntry) SetStatus(v string) *AgentListEntry {
3322	s.Status = &v
3323	return s
3324}
3325
3326// CancelTaskExecutionRequest
3327type CancelTaskExecutionInput struct {
3328	_ struct{} `type:"structure"`
3329
3330	// The Amazon Resource Name (ARN) of the task execution to cancel.
3331	//
3332	// TaskExecutionArn is a required field
3333	TaskExecutionArn *string `type:"string" required:"true"`
3334}
3335
3336// String returns the string representation
3337func (s CancelTaskExecutionInput) String() string {
3338	return awsutil.Prettify(s)
3339}
3340
3341// GoString returns the string representation
3342func (s CancelTaskExecutionInput) GoString() string {
3343	return s.String()
3344}
3345
3346// Validate inspects the fields of the type to determine if they are valid.
3347func (s *CancelTaskExecutionInput) Validate() error {
3348	invalidParams := request.ErrInvalidParams{Context: "CancelTaskExecutionInput"}
3349	if s.TaskExecutionArn == nil {
3350		invalidParams.Add(request.NewErrParamRequired("TaskExecutionArn"))
3351	}
3352
3353	if invalidParams.Len() > 0 {
3354		return invalidParams
3355	}
3356	return nil
3357}
3358
3359// SetTaskExecutionArn sets the TaskExecutionArn field's value.
3360func (s *CancelTaskExecutionInput) SetTaskExecutionArn(v string) *CancelTaskExecutionInput {
3361	s.TaskExecutionArn = &v
3362	return s
3363}
3364
3365type CancelTaskExecutionOutput struct {
3366	_ struct{} `type:"structure"`
3367}
3368
3369// String returns the string representation
3370func (s CancelTaskExecutionOutput) String() string {
3371	return awsutil.Prettify(s)
3372}
3373
3374// GoString returns the string representation
3375func (s CancelTaskExecutionOutput) GoString() string {
3376	return s.String()
3377}
3378
3379// CreateAgentRequest
3380type CreateAgentInput struct {
3381	_ struct{} `type:"structure"`
3382
3383	// Your agent activation key. You can get the activation key either by sending
3384	// an HTTP GET request with redirects that enable you to get the agent IP address
3385	// (port 80). Alternatively, you can get it from the AWS DataSync console.
3386	//
3387	// The redirect URL returned in the response provides you the activation key
3388	// for your agent in the query string parameter activationKey. It might also
3389	// include other activation-related parameters; however, these are merely defaults.
3390	// The arguments you pass to this API call determine the actual configuration
3391	// of your agent.
3392	//
3393	// For more information, see Activating an Agent in the AWS DataSync User Guide.
3394	//
3395	// ActivationKey is a required field
3396	ActivationKey *string `type:"string" required:"true"`
3397
3398	// The name you configured for your agent. This value is a text reference that
3399	// is used to identify the agent in the console.
3400	AgentName *string `min:"1" type:"string"`
3401
3402	// The ARNs of the security groups used to protect your data transfer task subnets.
3403	// See CreateAgentRequest$SubnetArns.
3404	SecurityGroupArns []*string `min:"1" type:"list"`
3405
3406	// The Amazon Resource Names (ARNs) of the subnets in which DataSync will create
3407	// elastic network interfaces for each data transfer task. The agent that runs
3408	// a task must be private. When you start a task that is associated with an
3409	// agent created in a VPC, or one that has access to an IP address in a VPC,
3410	// then the task is also private. In this case, DataSync creates four network
3411	// interfaces for each task in your subnet. For a data transfer to work, the
3412	// agent must be able to route to all these four network interfaces.
3413	SubnetArns []*string `min:"1" type:"list"`
3414
3415	// The key-value pair that represents the tag that you want to associate with
3416	// the agent. The value can be an empty string. This value helps you manage,
3417	// filter, and search for your agents.
3418	//
3419	// Valid characters for key and value are letters, spaces, and numbers representable
3420	// in UTF-8 format, and the following special characters: + - = . _ : / @.
3421	Tags []*TagListEntry `type:"list"`
3422
3423	// The ID of the VPC (virtual private cloud) endpoint that the agent has access
3424	// to. This is the client-side VPC endpoint, also called a PrivateLink. If you
3425	// don't have a PrivateLink VPC endpoint, see Creating a VPC Endpoint Service
3426	// Configuration (https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html#create-endpoint-service)
3427	// in the Amazon VPC User Guide.
3428	//
3429	// VPC endpoint ID looks like this: vpce-01234d5aff67890e1.
3430	VpcEndpointId *string `type:"string"`
3431}
3432
3433// String returns the string representation
3434func (s CreateAgentInput) String() string {
3435	return awsutil.Prettify(s)
3436}
3437
3438// GoString returns the string representation
3439func (s CreateAgentInput) GoString() string {
3440	return s.String()
3441}
3442
3443// Validate inspects the fields of the type to determine if they are valid.
3444func (s *CreateAgentInput) Validate() error {
3445	invalidParams := request.ErrInvalidParams{Context: "CreateAgentInput"}
3446	if s.ActivationKey == nil {
3447		invalidParams.Add(request.NewErrParamRequired("ActivationKey"))
3448	}
3449	if s.AgentName != nil && len(*s.AgentName) < 1 {
3450		invalidParams.Add(request.NewErrParamMinLen("AgentName", 1))
3451	}
3452	if s.SecurityGroupArns != nil && len(s.SecurityGroupArns) < 1 {
3453		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupArns", 1))
3454	}
3455	if s.SubnetArns != nil && len(s.SubnetArns) < 1 {
3456		invalidParams.Add(request.NewErrParamMinLen("SubnetArns", 1))
3457	}
3458	if s.Tags != nil {
3459		for i, v := range s.Tags {
3460			if v == nil {
3461				continue
3462			}
3463			if err := v.Validate(); err != nil {
3464				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3465			}
3466		}
3467	}
3468
3469	if invalidParams.Len() > 0 {
3470		return invalidParams
3471	}
3472	return nil
3473}
3474
3475// SetActivationKey sets the ActivationKey field's value.
3476func (s *CreateAgentInput) SetActivationKey(v string) *CreateAgentInput {
3477	s.ActivationKey = &v
3478	return s
3479}
3480
3481// SetAgentName sets the AgentName field's value.
3482func (s *CreateAgentInput) SetAgentName(v string) *CreateAgentInput {
3483	s.AgentName = &v
3484	return s
3485}
3486
3487// SetSecurityGroupArns sets the SecurityGroupArns field's value.
3488func (s *CreateAgentInput) SetSecurityGroupArns(v []*string) *CreateAgentInput {
3489	s.SecurityGroupArns = v
3490	return s
3491}
3492
3493// SetSubnetArns sets the SubnetArns field's value.
3494func (s *CreateAgentInput) SetSubnetArns(v []*string) *CreateAgentInput {
3495	s.SubnetArns = v
3496	return s
3497}
3498
3499// SetTags sets the Tags field's value.
3500func (s *CreateAgentInput) SetTags(v []*TagListEntry) *CreateAgentInput {
3501	s.Tags = v
3502	return s
3503}
3504
3505// SetVpcEndpointId sets the VpcEndpointId field's value.
3506func (s *CreateAgentInput) SetVpcEndpointId(v string) *CreateAgentInput {
3507	s.VpcEndpointId = &v
3508	return s
3509}
3510
3511// CreateAgentResponse
3512type CreateAgentOutput struct {
3513	_ struct{} `type:"structure"`
3514
3515	// The Amazon Resource Name (ARN) of the agent. Use the ListAgents operation
3516	// to return a list of agents for your account and AWS Region.
3517	AgentArn *string `type:"string"`
3518}
3519
3520// String returns the string representation
3521func (s CreateAgentOutput) String() string {
3522	return awsutil.Prettify(s)
3523}
3524
3525// GoString returns the string representation
3526func (s CreateAgentOutput) GoString() string {
3527	return s.String()
3528}
3529
3530// SetAgentArn sets the AgentArn field's value.
3531func (s *CreateAgentOutput) SetAgentArn(v string) *CreateAgentOutput {
3532	s.AgentArn = &v
3533	return s
3534}
3535
3536// CreateLocationEfsRequest
3537type CreateLocationEfsInput struct {
3538	_ struct{} `type:"structure"`
3539
3540	// The subnet and security group that the Amazon EFS file system uses. The security
3541	// group that you provide needs to be able to communicate with the security
3542	// group on the mount target in the subnet specified.
3543	//
3544	// The exact relationship between security group M (of the mount target) and
3545	// security group S (which you provide for DataSync to use at this stage) is
3546	// as follows:
3547	//
3548	//    * Security group M (which you associate with the mount target) must allow
3549	//    inbound access for the Transmission Control Protocol (TCP) on the NFS
3550	//    port (2049) from security group S. You can enable inbound connections
3551	//    either by IP address (CIDR range) or security group.
3552	//
3553	//    * Security group S (provided to DataSync to access EFS) should have a
3554	//    rule that enables outbound connections to the NFS port on one of the file
3555	//    system’s mount targets. You can enable outbound connections either by
3556	//    IP address (CIDR range) or security group. For information about security
3557	//    groups and mount targets, see Security Groups for Amazon EC2 Instances
3558	//    and Mount Targets in the Amazon EFS User Guide.
3559	//
3560	// Ec2Config is a required field
3561	Ec2Config *Ec2Config `type:"structure" required:"true"`
3562
3563	// The Amazon Resource Name (ARN) for the Amazon EFS file system.
3564	//
3565	// EfsFilesystemArn is a required field
3566	EfsFilesystemArn *string `type:"string" required:"true"`
3567
3568	// A subdirectory in the location’s path. This subdirectory in the EFS file
3569	// system is used to read data from the EFS source location or write data to
3570	// the EFS destination. By default, AWS DataSync uses the root directory.
3571	//
3572	// Subdirectory must be specified with forward slashes. For example, /path/to/folder.
3573	Subdirectory *string `type:"string"`
3574
3575	// The key-value pair that represents a tag that you want to add to the resource.
3576	// The value can be an empty string. This value helps you manage, filter, and
3577	// search for your resources. We recommend that you create a name tag for your
3578	// location.
3579	Tags []*TagListEntry `type:"list"`
3580}
3581
3582// String returns the string representation
3583func (s CreateLocationEfsInput) String() string {
3584	return awsutil.Prettify(s)
3585}
3586
3587// GoString returns the string representation
3588func (s CreateLocationEfsInput) GoString() string {
3589	return s.String()
3590}
3591
3592// Validate inspects the fields of the type to determine if they are valid.
3593func (s *CreateLocationEfsInput) Validate() error {
3594	invalidParams := request.ErrInvalidParams{Context: "CreateLocationEfsInput"}
3595	if s.Ec2Config == nil {
3596		invalidParams.Add(request.NewErrParamRequired("Ec2Config"))
3597	}
3598	if s.EfsFilesystemArn == nil {
3599		invalidParams.Add(request.NewErrParamRequired("EfsFilesystemArn"))
3600	}
3601	if s.Ec2Config != nil {
3602		if err := s.Ec2Config.Validate(); err != nil {
3603			invalidParams.AddNested("Ec2Config", err.(request.ErrInvalidParams))
3604		}
3605	}
3606	if s.Tags != nil {
3607		for i, v := range s.Tags {
3608			if v == nil {
3609				continue
3610			}
3611			if err := v.Validate(); err != nil {
3612				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3613			}
3614		}
3615	}
3616
3617	if invalidParams.Len() > 0 {
3618		return invalidParams
3619	}
3620	return nil
3621}
3622
3623// SetEc2Config sets the Ec2Config field's value.
3624func (s *CreateLocationEfsInput) SetEc2Config(v *Ec2Config) *CreateLocationEfsInput {
3625	s.Ec2Config = v
3626	return s
3627}
3628
3629// SetEfsFilesystemArn sets the EfsFilesystemArn field's value.
3630func (s *CreateLocationEfsInput) SetEfsFilesystemArn(v string) *CreateLocationEfsInput {
3631	s.EfsFilesystemArn = &v
3632	return s
3633}
3634
3635// SetSubdirectory sets the Subdirectory field's value.
3636func (s *CreateLocationEfsInput) SetSubdirectory(v string) *CreateLocationEfsInput {
3637	s.Subdirectory = &v
3638	return s
3639}
3640
3641// SetTags sets the Tags field's value.
3642func (s *CreateLocationEfsInput) SetTags(v []*TagListEntry) *CreateLocationEfsInput {
3643	s.Tags = v
3644	return s
3645}
3646
3647// CreateLocationEfs
3648type CreateLocationEfsOutput struct {
3649	_ struct{} `type:"structure"`
3650
3651	// The Amazon Resource Name (ARN) of the Amazon EFS file system location that
3652	// is created.
3653	LocationArn *string `type:"string"`
3654}
3655
3656// String returns the string representation
3657func (s CreateLocationEfsOutput) String() string {
3658	return awsutil.Prettify(s)
3659}
3660
3661// GoString returns the string representation
3662func (s CreateLocationEfsOutput) GoString() string {
3663	return s.String()
3664}
3665
3666// SetLocationArn sets the LocationArn field's value.
3667func (s *CreateLocationEfsOutput) SetLocationArn(v string) *CreateLocationEfsOutput {
3668	s.LocationArn = &v
3669	return s
3670}
3671
3672type CreateLocationFsxWindowsInput struct {
3673	_ struct{} `type:"structure"`
3674
3675	// The name of the Windows domain that the FSx for Windows File Server belongs
3676	// to.
3677	Domain *string `type:"string"`
3678
3679	// The Amazon Resource Name (ARN) for the FSx for Windows File Server file system.
3680	//
3681	// FsxFilesystemArn is a required field
3682	FsxFilesystemArn *string `type:"string" required:"true"`
3683
3684	// The password of the user who has the permissions to access files and folders
3685	// in the FSx for Windows File Server file system.
3686	//
3687	// Password is a required field
3688	Password *string `type:"string" required:"true" sensitive:"true"`
3689
3690	// The Amazon Resource Names (ARNs) of the security groups that are to use to
3691	// configure the FSx for Windows File Server file system.
3692	//
3693	// SecurityGroupArns is a required field
3694	SecurityGroupArns []*string `min:"1" type:"list" required:"true"`
3695
3696	// A subdirectory in the location’s path. This subdirectory in the Amazon
3697	// FSx for Windows File Server file system is used to read data from the Amazon
3698	// FSx for Windows File Server source location or write data to the FSx for
3699	// Windows File Server destination.
3700	Subdirectory *string `type:"string"`
3701
3702	// The key-value pair that represents a tag that you want to add to the resource.
3703	// The value can be an empty string. This value helps you manage, filter, and
3704	// search for your resources. We recommend that you create a name tag for your
3705	// location.
3706	Tags []*TagListEntry `type:"list"`
3707
3708	// The user who has the permissions to access files and folders in the FSx for
3709	// Windows File Server file system.
3710	//
3711	// User is a required field
3712	User *string `type:"string" required:"true"`
3713}
3714
3715// String returns the string representation
3716func (s CreateLocationFsxWindowsInput) String() string {
3717	return awsutil.Prettify(s)
3718}
3719
3720// GoString returns the string representation
3721func (s CreateLocationFsxWindowsInput) GoString() string {
3722	return s.String()
3723}
3724
3725// Validate inspects the fields of the type to determine if they are valid.
3726func (s *CreateLocationFsxWindowsInput) Validate() error {
3727	invalidParams := request.ErrInvalidParams{Context: "CreateLocationFsxWindowsInput"}
3728	if s.FsxFilesystemArn == nil {
3729		invalidParams.Add(request.NewErrParamRequired("FsxFilesystemArn"))
3730	}
3731	if s.Password == nil {
3732		invalidParams.Add(request.NewErrParamRequired("Password"))
3733	}
3734	if s.SecurityGroupArns == nil {
3735		invalidParams.Add(request.NewErrParamRequired("SecurityGroupArns"))
3736	}
3737	if s.SecurityGroupArns != nil && len(s.SecurityGroupArns) < 1 {
3738		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupArns", 1))
3739	}
3740	if s.User == nil {
3741		invalidParams.Add(request.NewErrParamRequired("User"))
3742	}
3743	if s.Tags != nil {
3744		for i, v := range s.Tags {
3745			if v == nil {
3746				continue
3747			}
3748			if err := v.Validate(); err != nil {
3749				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3750			}
3751		}
3752	}
3753
3754	if invalidParams.Len() > 0 {
3755		return invalidParams
3756	}
3757	return nil
3758}
3759
3760// SetDomain sets the Domain field's value.
3761func (s *CreateLocationFsxWindowsInput) SetDomain(v string) *CreateLocationFsxWindowsInput {
3762	s.Domain = &v
3763	return s
3764}
3765
3766// SetFsxFilesystemArn sets the FsxFilesystemArn field's value.
3767func (s *CreateLocationFsxWindowsInput) SetFsxFilesystemArn(v string) *CreateLocationFsxWindowsInput {
3768	s.FsxFilesystemArn = &v
3769	return s
3770}
3771
3772// SetPassword sets the Password field's value.
3773func (s *CreateLocationFsxWindowsInput) SetPassword(v string) *CreateLocationFsxWindowsInput {
3774	s.Password = &v
3775	return s
3776}
3777
3778// SetSecurityGroupArns sets the SecurityGroupArns field's value.
3779func (s *CreateLocationFsxWindowsInput) SetSecurityGroupArns(v []*string) *CreateLocationFsxWindowsInput {
3780	s.SecurityGroupArns = v
3781	return s
3782}
3783
3784// SetSubdirectory sets the Subdirectory field's value.
3785func (s *CreateLocationFsxWindowsInput) SetSubdirectory(v string) *CreateLocationFsxWindowsInput {
3786	s.Subdirectory = &v
3787	return s
3788}
3789
3790// SetTags sets the Tags field's value.
3791func (s *CreateLocationFsxWindowsInput) SetTags(v []*TagListEntry) *CreateLocationFsxWindowsInput {
3792	s.Tags = v
3793	return s
3794}
3795
3796// SetUser sets the User field's value.
3797func (s *CreateLocationFsxWindowsInput) SetUser(v string) *CreateLocationFsxWindowsInput {
3798	s.User = &v
3799	return s
3800}
3801
3802type CreateLocationFsxWindowsOutput struct {
3803	_ struct{} `type:"structure"`
3804
3805	// The Amazon Resource Name (ARN) of the FSx for Windows File Server file system
3806	// location that is created.
3807	LocationArn *string `type:"string"`
3808}
3809
3810// String returns the string representation
3811func (s CreateLocationFsxWindowsOutput) String() string {
3812	return awsutil.Prettify(s)
3813}
3814
3815// GoString returns the string representation
3816func (s CreateLocationFsxWindowsOutput) GoString() string {
3817	return s.String()
3818}
3819
3820// SetLocationArn sets the LocationArn field's value.
3821func (s *CreateLocationFsxWindowsOutput) SetLocationArn(v string) *CreateLocationFsxWindowsOutput {
3822	s.LocationArn = &v
3823	return s
3824}
3825
3826// CreateLocationNfsRequest
3827type CreateLocationNfsInput struct {
3828	_ struct{} `type:"structure"`
3829
3830	// The NFS mount options that DataSync can use to mount your NFS share.
3831	MountOptions *NfsMountOptions `type:"structure"`
3832
3833	// Contains a list of Amazon Resource Names (ARNs) of agents that are used to
3834	// connect to an NFS server.
3835	//
3836	// If you are copying data to or from your AWS Snowcone device, see NFS Server
3837	// on AWS Snowcone (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone)
3838	// for more information.
3839	//
3840	// OnPremConfig is a required field
3841	OnPremConfig *OnPremConfig `type:"structure" required:"true"`
3842
3843	// The name of the NFS server. This value is the IP address or Domain Name Service
3844	// (DNS) name of the NFS server. An agent that is installed on-premises uses
3845	// this host name to mount the NFS server in a network.
3846	//
3847	// If you are copying data to or from your AWS Snowcone device, see NFS Server
3848	// on AWS Snowcone (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone)
3849	// for more information.
3850	//
3851	// This name must either be DNS-compliant or must be an IP version 4 (IPv4)
3852	// address.
3853	//
3854	// ServerHostname is a required field
3855	ServerHostname *string `type:"string" required:"true"`
3856
3857	// The subdirectory in the NFS file system that is used to read data from the
3858	// NFS source location or write data to the NFS destination. The NFS path should
3859	// be a path that's exported by the NFS server, or a subdirectory of that path.
3860	// The path should be such that it can be mounted by other NFS clients in your
3861	// network.
3862	//
3863	// To see all the paths exported by your NFS server, run "showmount -e nfs-server-name"
3864	// from an NFS client that has access to your server. You can specify any directory
3865	// that appears in the results, and any subdirectory of that directory. Ensure
3866	// that the NFS export is accessible without Kerberos authentication.
3867	//
3868	// To transfer all the data in the folder you specified, DataSync needs to have
3869	// permissions to read all the data. To ensure this, either configure the NFS
3870	// export with no_root_squash, or ensure that the permissions for all of the
3871	// files that you want DataSync allow read access for all users. Doing either
3872	// enables the agent to read the files. For the agent to access directories,
3873	// you must additionally enable all execute access.
3874	//
3875	// If you are copying data to or from your AWS Snowcone device, see NFS Server
3876	// on AWS Snowcone (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone)
3877	// for more information.
3878	//
3879	// For information about NFS export configuration, see 18.7. The /etc/exports
3880	// Configuration File in the Red Hat Enterprise Linux documentation.
3881	//
3882	// Subdirectory is a required field
3883	Subdirectory *string `type:"string" required:"true"`
3884
3885	// The key-value pair that represents the tag that you want to add to the location.
3886	// The value can be an empty string. We recommend using tags to name your resources.
3887	Tags []*TagListEntry `type:"list"`
3888}
3889
3890// String returns the string representation
3891func (s CreateLocationNfsInput) String() string {
3892	return awsutil.Prettify(s)
3893}
3894
3895// GoString returns the string representation
3896func (s CreateLocationNfsInput) GoString() string {
3897	return s.String()
3898}
3899
3900// Validate inspects the fields of the type to determine if they are valid.
3901func (s *CreateLocationNfsInput) Validate() error {
3902	invalidParams := request.ErrInvalidParams{Context: "CreateLocationNfsInput"}
3903	if s.OnPremConfig == nil {
3904		invalidParams.Add(request.NewErrParamRequired("OnPremConfig"))
3905	}
3906	if s.ServerHostname == nil {
3907		invalidParams.Add(request.NewErrParamRequired("ServerHostname"))
3908	}
3909	if s.Subdirectory == nil {
3910		invalidParams.Add(request.NewErrParamRequired("Subdirectory"))
3911	}
3912	if s.OnPremConfig != nil {
3913		if err := s.OnPremConfig.Validate(); err != nil {
3914			invalidParams.AddNested("OnPremConfig", err.(request.ErrInvalidParams))
3915		}
3916	}
3917	if s.Tags != nil {
3918		for i, v := range s.Tags {
3919			if v == nil {
3920				continue
3921			}
3922			if err := v.Validate(); err != nil {
3923				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3924			}
3925		}
3926	}
3927
3928	if invalidParams.Len() > 0 {
3929		return invalidParams
3930	}
3931	return nil
3932}
3933
3934// SetMountOptions sets the MountOptions field's value.
3935func (s *CreateLocationNfsInput) SetMountOptions(v *NfsMountOptions) *CreateLocationNfsInput {
3936	s.MountOptions = v
3937	return s
3938}
3939
3940// SetOnPremConfig sets the OnPremConfig field's value.
3941func (s *CreateLocationNfsInput) SetOnPremConfig(v *OnPremConfig) *CreateLocationNfsInput {
3942	s.OnPremConfig = v
3943	return s
3944}
3945
3946// SetServerHostname sets the ServerHostname field's value.
3947func (s *CreateLocationNfsInput) SetServerHostname(v string) *CreateLocationNfsInput {
3948	s.ServerHostname = &v
3949	return s
3950}
3951
3952// SetSubdirectory sets the Subdirectory field's value.
3953func (s *CreateLocationNfsInput) SetSubdirectory(v string) *CreateLocationNfsInput {
3954	s.Subdirectory = &v
3955	return s
3956}
3957
3958// SetTags sets the Tags field's value.
3959func (s *CreateLocationNfsInput) SetTags(v []*TagListEntry) *CreateLocationNfsInput {
3960	s.Tags = v
3961	return s
3962}
3963
3964// CreateLocationNfsResponse
3965type CreateLocationNfsOutput struct {
3966	_ struct{} `type:"structure"`
3967
3968	// The Amazon Resource Name (ARN) of the source NFS file system location that
3969	// is created.
3970	LocationArn *string `type:"string"`
3971}
3972
3973// String returns the string representation
3974func (s CreateLocationNfsOutput) String() string {
3975	return awsutil.Prettify(s)
3976}
3977
3978// GoString returns the string representation
3979func (s CreateLocationNfsOutput) GoString() string {
3980	return s.String()
3981}
3982
3983// SetLocationArn sets the LocationArn field's value.
3984func (s *CreateLocationNfsOutput) SetLocationArn(v string) *CreateLocationNfsOutput {
3985	s.LocationArn = &v
3986	return s
3987}
3988
3989// CreateLocationObjectStorageRequest
3990type CreateLocationObjectStorageInput struct {
3991	_ struct{} `type:"structure"`
3992
3993	// Optional. The access key is used if credentials are required to access the
3994	// self-managed object storage server. If your object storage requires a user
3995	// name and password to authenticate, use AccessKey and SecretKey to provide
3996	// the user name and password, respectively.
3997	AccessKey *string `min:"8" type:"string"`
3998
3999	// The Amazon Resource Name (ARN) of the agents associated with the self-managed
4000	// object storage server location.
4001	//
4002	// AgentArns is a required field
4003	AgentArns []*string `min:"1" type:"list" required:"true"`
4004
4005	// The bucket on the self-managed object storage server that is used to read
4006	// data from.
4007	//
4008	// BucketName is a required field
4009	BucketName *string `min:"3" type:"string" required:"true"`
4010
4011	// Optional. The secret key is used if credentials are required to access the
4012	// self-managed object storage server. If your object storage requires a user
4013	// name and password to authenticate, use AccessKey and SecretKey to provide
4014	// the user name and password, respectively.
4015	SecretKey *string `min:"8" type:"string" sensitive:"true"`
4016
4017	// The name of the self-managed object storage server. This value is the IP
4018	// address or Domain Name Service (DNS) name of the object storage server. An
4019	// agent uses this host name to mount the object storage server in a network.
4020	//
4021	// ServerHostname is a required field
4022	ServerHostname *string `type:"string" required:"true"`
4023
4024	// The port that your self-managed object storage server accepts inbound network
4025	// traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443
4026	// (HTTPS). You can specify a custom port if your self-managed object storage
4027	// server requires one.
4028	ServerPort *int64 `min:"1" type:"integer"`
4029
4030	// The protocol that the object storage server uses to communicate. Valid values
4031	// are HTTP or HTTPS.
4032	ServerProtocol *string `type:"string" enum:"ObjectStorageServerProtocol"`
4033
4034	// The subdirectory in the self-managed object storage server that is used to
4035	// read data from.
4036	Subdirectory *string `type:"string"`
4037
4038	// The key-value pair that represents the tag that you want to add to the location.
4039	// The value can be an empty string. We recommend using tags to name your resources.
4040	Tags []*TagListEntry `type:"list"`
4041}
4042
4043// String returns the string representation
4044func (s CreateLocationObjectStorageInput) String() string {
4045	return awsutil.Prettify(s)
4046}
4047
4048// GoString returns the string representation
4049func (s CreateLocationObjectStorageInput) GoString() string {
4050	return s.String()
4051}
4052
4053// Validate inspects the fields of the type to determine if they are valid.
4054func (s *CreateLocationObjectStorageInput) Validate() error {
4055	invalidParams := request.ErrInvalidParams{Context: "CreateLocationObjectStorageInput"}
4056	if s.AccessKey != nil && len(*s.AccessKey) < 8 {
4057		invalidParams.Add(request.NewErrParamMinLen("AccessKey", 8))
4058	}
4059	if s.AgentArns == nil {
4060		invalidParams.Add(request.NewErrParamRequired("AgentArns"))
4061	}
4062	if s.AgentArns != nil && len(s.AgentArns) < 1 {
4063		invalidParams.Add(request.NewErrParamMinLen("AgentArns", 1))
4064	}
4065	if s.BucketName == nil {
4066		invalidParams.Add(request.NewErrParamRequired("BucketName"))
4067	}
4068	if s.BucketName != nil && len(*s.BucketName) < 3 {
4069		invalidParams.Add(request.NewErrParamMinLen("BucketName", 3))
4070	}
4071	if s.SecretKey != nil && len(*s.SecretKey) < 8 {
4072		invalidParams.Add(request.NewErrParamMinLen("SecretKey", 8))
4073	}
4074	if s.ServerHostname == nil {
4075		invalidParams.Add(request.NewErrParamRequired("ServerHostname"))
4076	}
4077	if s.ServerPort != nil && *s.ServerPort < 1 {
4078		invalidParams.Add(request.NewErrParamMinValue("ServerPort", 1))
4079	}
4080	if s.Tags != nil {
4081		for i, v := range s.Tags {
4082			if v == nil {
4083				continue
4084			}
4085			if err := v.Validate(); err != nil {
4086				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4087			}
4088		}
4089	}
4090
4091	if invalidParams.Len() > 0 {
4092		return invalidParams
4093	}
4094	return nil
4095}
4096
4097// SetAccessKey sets the AccessKey field's value.
4098func (s *CreateLocationObjectStorageInput) SetAccessKey(v string) *CreateLocationObjectStorageInput {
4099	s.AccessKey = &v
4100	return s
4101}
4102
4103// SetAgentArns sets the AgentArns field's value.
4104func (s *CreateLocationObjectStorageInput) SetAgentArns(v []*string) *CreateLocationObjectStorageInput {
4105	s.AgentArns = v
4106	return s
4107}
4108
4109// SetBucketName sets the BucketName field's value.
4110func (s *CreateLocationObjectStorageInput) SetBucketName(v string) *CreateLocationObjectStorageInput {
4111	s.BucketName = &v
4112	return s
4113}
4114
4115// SetSecretKey sets the SecretKey field's value.
4116func (s *CreateLocationObjectStorageInput) SetSecretKey(v string) *CreateLocationObjectStorageInput {
4117	s.SecretKey = &v
4118	return s
4119}
4120
4121// SetServerHostname sets the ServerHostname field's value.
4122func (s *CreateLocationObjectStorageInput) SetServerHostname(v string) *CreateLocationObjectStorageInput {
4123	s.ServerHostname = &v
4124	return s
4125}
4126
4127// SetServerPort sets the ServerPort field's value.
4128func (s *CreateLocationObjectStorageInput) SetServerPort(v int64) *CreateLocationObjectStorageInput {
4129	s.ServerPort = &v
4130	return s
4131}
4132
4133// SetServerProtocol sets the ServerProtocol field's value.
4134func (s *CreateLocationObjectStorageInput) SetServerProtocol(v string) *CreateLocationObjectStorageInput {
4135	s.ServerProtocol = &v
4136	return s
4137}
4138
4139// SetSubdirectory sets the Subdirectory field's value.
4140func (s *CreateLocationObjectStorageInput) SetSubdirectory(v string) *CreateLocationObjectStorageInput {
4141	s.Subdirectory = &v
4142	return s
4143}
4144
4145// SetTags sets the Tags field's value.
4146func (s *CreateLocationObjectStorageInput) SetTags(v []*TagListEntry) *CreateLocationObjectStorageInput {
4147	s.Tags = v
4148	return s
4149}
4150
4151// CreateLocationObjectStorageResponse
4152type CreateLocationObjectStorageOutput struct {
4153	_ struct{} `type:"structure"`
4154
4155	// The Amazon Resource Name (ARN) of the agents associated with the self-managed
4156	// object storage server location.
4157	LocationArn *string `type:"string"`
4158}
4159
4160// String returns the string representation
4161func (s CreateLocationObjectStorageOutput) String() string {
4162	return awsutil.Prettify(s)
4163}
4164
4165// GoString returns the string representation
4166func (s CreateLocationObjectStorageOutput) GoString() string {
4167	return s.String()
4168}
4169
4170// SetLocationArn sets the LocationArn field's value.
4171func (s *CreateLocationObjectStorageOutput) SetLocationArn(v string) *CreateLocationObjectStorageOutput {
4172	s.LocationArn = &v
4173	return s
4174}
4175
4176// CreateLocationS3Request
4177type CreateLocationS3Input struct {
4178	_ struct{} `type:"structure"`
4179
4180	// If you are using DataSync on an AWS Outpost, specify the Amazon Resource
4181	// Names (ARNs) of the DataSync agents deployed on your Outpost. For more information
4182	// about launching a DataSync agent on an AWS Outpost, see outposts-agent.
4183	AgentArns []*string `min:"1" type:"list"`
4184
4185	// The ARN of the Amazon S3 bucket. If the bucket is on an AWS Outpost, this
4186	// must be an access point ARN.
4187	//
4188	// S3BucketArn is a required field
4189	S3BucketArn *string `type:"string" required:"true"`
4190
4191	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management
4192	// (IAM) role that is used to access an Amazon S3 bucket.
4193	//
4194	// For detailed information about using such a role, see Creating a Location
4195	// for Amazon S3 in the AWS DataSync User Guide.
4196	//
4197	// S3Config is a required field
4198	S3Config *S3Config `type:"structure" required:"true"`
4199
4200	// The Amazon S3 storage class that you want to store your files in when this
4201	// location is used as a task destination. For buckets in AWS Regions, the storage
4202	// class defaults to Standard. For buckets on AWS Outposts, the storage class
4203	// defaults to AWS S3 Outposts.
4204	//
4205	// For more information about S3 storage classes, see Amazon S3 Storage Classes
4206	// (http://aws.amazon.com/s3/storage-classes/). Some storage classes have behaviors
4207	// that can affect your S3 storage cost. For detailed information, see using-storage-classes.
4208	S3StorageClass *string `type:"string" enum:"S3StorageClass"`
4209
4210	// A subdirectory in the Amazon S3 bucket. This subdirectory in Amazon S3 is
4211	// used to read data from the S3 source location or write data to the S3 destination.
4212	Subdirectory *string `type:"string"`
4213
4214	// The key-value pair that represents the tag that you want to add to the location.
4215	// The value can be an empty string. We recommend using tags to name your resources.
4216	Tags []*TagListEntry `type:"list"`
4217}
4218
4219// String returns the string representation
4220func (s CreateLocationS3Input) String() string {
4221	return awsutil.Prettify(s)
4222}
4223
4224// GoString returns the string representation
4225func (s CreateLocationS3Input) GoString() string {
4226	return s.String()
4227}
4228
4229// Validate inspects the fields of the type to determine if they are valid.
4230func (s *CreateLocationS3Input) Validate() error {
4231	invalidParams := request.ErrInvalidParams{Context: "CreateLocationS3Input"}
4232	if s.AgentArns != nil && len(s.AgentArns) < 1 {
4233		invalidParams.Add(request.NewErrParamMinLen("AgentArns", 1))
4234	}
4235	if s.S3BucketArn == nil {
4236		invalidParams.Add(request.NewErrParamRequired("S3BucketArn"))
4237	}
4238	if s.S3Config == nil {
4239		invalidParams.Add(request.NewErrParamRequired("S3Config"))
4240	}
4241	if s.S3Config != nil {
4242		if err := s.S3Config.Validate(); err != nil {
4243			invalidParams.AddNested("S3Config", err.(request.ErrInvalidParams))
4244		}
4245	}
4246	if s.Tags != nil {
4247		for i, v := range s.Tags {
4248			if v == nil {
4249				continue
4250			}
4251			if err := v.Validate(); err != nil {
4252				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4253			}
4254		}
4255	}
4256
4257	if invalidParams.Len() > 0 {
4258		return invalidParams
4259	}
4260	return nil
4261}
4262
4263// SetAgentArns sets the AgentArns field's value.
4264func (s *CreateLocationS3Input) SetAgentArns(v []*string) *CreateLocationS3Input {
4265	s.AgentArns = v
4266	return s
4267}
4268
4269// SetS3BucketArn sets the S3BucketArn field's value.
4270func (s *CreateLocationS3Input) SetS3BucketArn(v string) *CreateLocationS3Input {
4271	s.S3BucketArn = &v
4272	return s
4273}
4274
4275// SetS3Config sets the S3Config field's value.
4276func (s *CreateLocationS3Input) SetS3Config(v *S3Config) *CreateLocationS3Input {
4277	s.S3Config = v
4278	return s
4279}
4280
4281// SetS3StorageClass sets the S3StorageClass field's value.
4282func (s *CreateLocationS3Input) SetS3StorageClass(v string) *CreateLocationS3Input {
4283	s.S3StorageClass = &v
4284	return s
4285}
4286
4287// SetSubdirectory sets the Subdirectory field's value.
4288func (s *CreateLocationS3Input) SetSubdirectory(v string) *CreateLocationS3Input {
4289	s.Subdirectory = &v
4290	return s
4291}
4292
4293// SetTags sets the Tags field's value.
4294func (s *CreateLocationS3Input) SetTags(v []*TagListEntry) *CreateLocationS3Input {
4295	s.Tags = v
4296	return s
4297}
4298
4299// CreateLocationS3Response
4300type CreateLocationS3Output struct {
4301	_ struct{} `type:"structure"`
4302
4303	// The Amazon Resource Name (ARN) of the source Amazon S3 bucket location that
4304	// is created.
4305	LocationArn *string `type:"string"`
4306}
4307
4308// String returns the string representation
4309func (s CreateLocationS3Output) String() string {
4310	return awsutil.Prettify(s)
4311}
4312
4313// GoString returns the string representation
4314func (s CreateLocationS3Output) GoString() string {
4315	return s.String()
4316}
4317
4318// SetLocationArn sets the LocationArn field's value.
4319func (s *CreateLocationS3Output) SetLocationArn(v string) *CreateLocationS3Output {
4320	s.LocationArn = &v
4321	return s
4322}
4323
4324// CreateLocationSmbRequest
4325type CreateLocationSmbInput struct {
4326	_ struct{} `type:"structure"`
4327
4328	// The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
4329	// (SMB) location.
4330	//
4331	// AgentArns is a required field
4332	AgentArns []*string `min:"1" type:"list" required:"true"`
4333
4334	// The name of the Windows domain that the SMB server belongs to.
4335	Domain *string `type:"string"`
4336
4337	// The mount options used by DataSync to access the SMB server.
4338	MountOptions *SmbMountOptions `type:"structure"`
4339
4340	// The password of the user who can mount the share, has the permissions to
4341	// access files and folders in the SMB share.
4342	//
4343	// Password is a required field
4344	Password *string `type:"string" required:"true" sensitive:"true"`
4345
4346	// The name of the SMB server. This value is the IP address or Domain Name Service
4347	// (DNS) name of the SMB server. An agent that is installed on-premises uses
4348	// this hostname to mount the SMB server in a network.
4349	//
4350	// This name must either be DNS-compliant or must be an IP version 4 (IPv4)
4351	// address.
4352	//
4353	// ServerHostname is a required field
4354	ServerHostname *string `type:"string" required:"true"`
4355
4356	// The subdirectory in the SMB file system that is used to read data from the
4357	// SMB source location or write data to the SMB destination. The SMB path should
4358	// be a path that's exported by the SMB server, or a subdirectory of that path.
4359	// The path should be such that it can be mounted by other SMB clients in your
4360	// network.
4361	//
4362	// Subdirectory must be specified with forward slashes. For example, /path/to/folder.
4363	//
4364	// To transfer all the data in the folder you specified, DataSync needs to have
4365	// permissions to mount the SMB share, as well as to access all the data in
4366	// that share. To ensure this, either ensure that the user/password specified
4367	// belongs to the user who can mount the share, and who has the appropriate
4368	// permissions for all of the files and directories that you want DataSync to
4369	// access, or use credentials of a member of the Backup Operators group to mount
4370	// the share. Doing either enables the agent to access the data. For the agent
4371	// to access directories, you must additionally enable all execute access.
4372	//
4373	// Subdirectory is a required field
4374	Subdirectory *string `type:"string" required:"true"`
4375
4376	// The key-value pair that represents the tag that you want to add to the location.
4377	// The value can be an empty string. We recommend using tags to name your resources.
4378	Tags []*TagListEntry `type:"list"`
4379
4380	// The user who can mount the share, has the permissions to access files and
4381	// folders in the SMB share.
4382	//
4383	// User is a required field
4384	User *string `type:"string" required:"true"`
4385}
4386
4387// String returns the string representation
4388func (s CreateLocationSmbInput) String() string {
4389	return awsutil.Prettify(s)
4390}
4391
4392// GoString returns the string representation
4393func (s CreateLocationSmbInput) GoString() string {
4394	return s.String()
4395}
4396
4397// Validate inspects the fields of the type to determine if they are valid.
4398func (s *CreateLocationSmbInput) Validate() error {
4399	invalidParams := request.ErrInvalidParams{Context: "CreateLocationSmbInput"}
4400	if s.AgentArns == nil {
4401		invalidParams.Add(request.NewErrParamRequired("AgentArns"))
4402	}
4403	if s.AgentArns != nil && len(s.AgentArns) < 1 {
4404		invalidParams.Add(request.NewErrParamMinLen("AgentArns", 1))
4405	}
4406	if s.Password == nil {
4407		invalidParams.Add(request.NewErrParamRequired("Password"))
4408	}
4409	if s.ServerHostname == nil {
4410		invalidParams.Add(request.NewErrParamRequired("ServerHostname"))
4411	}
4412	if s.Subdirectory == nil {
4413		invalidParams.Add(request.NewErrParamRequired("Subdirectory"))
4414	}
4415	if s.User == nil {
4416		invalidParams.Add(request.NewErrParamRequired("User"))
4417	}
4418	if s.Tags != nil {
4419		for i, v := range s.Tags {
4420			if v == nil {
4421				continue
4422			}
4423			if err := v.Validate(); err != nil {
4424				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4425			}
4426		}
4427	}
4428
4429	if invalidParams.Len() > 0 {
4430		return invalidParams
4431	}
4432	return nil
4433}
4434
4435// SetAgentArns sets the AgentArns field's value.
4436func (s *CreateLocationSmbInput) SetAgentArns(v []*string) *CreateLocationSmbInput {
4437	s.AgentArns = v
4438	return s
4439}
4440
4441// SetDomain sets the Domain field's value.
4442func (s *CreateLocationSmbInput) SetDomain(v string) *CreateLocationSmbInput {
4443	s.Domain = &v
4444	return s
4445}
4446
4447// SetMountOptions sets the MountOptions field's value.
4448func (s *CreateLocationSmbInput) SetMountOptions(v *SmbMountOptions) *CreateLocationSmbInput {
4449	s.MountOptions = v
4450	return s
4451}
4452
4453// SetPassword sets the Password field's value.
4454func (s *CreateLocationSmbInput) SetPassword(v string) *CreateLocationSmbInput {
4455	s.Password = &v
4456	return s
4457}
4458
4459// SetServerHostname sets the ServerHostname field's value.
4460func (s *CreateLocationSmbInput) SetServerHostname(v string) *CreateLocationSmbInput {
4461	s.ServerHostname = &v
4462	return s
4463}
4464
4465// SetSubdirectory sets the Subdirectory field's value.
4466func (s *CreateLocationSmbInput) SetSubdirectory(v string) *CreateLocationSmbInput {
4467	s.Subdirectory = &v
4468	return s
4469}
4470
4471// SetTags sets the Tags field's value.
4472func (s *CreateLocationSmbInput) SetTags(v []*TagListEntry) *CreateLocationSmbInput {
4473	s.Tags = v
4474	return s
4475}
4476
4477// SetUser sets the User field's value.
4478func (s *CreateLocationSmbInput) SetUser(v string) *CreateLocationSmbInput {
4479	s.User = &v
4480	return s
4481}
4482
4483// CreateLocationSmbResponse
4484type CreateLocationSmbOutput struct {
4485	_ struct{} `type:"structure"`
4486
4487	// The Amazon Resource Name (ARN) of the source SMB file system location that
4488	// is created.
4489	LocationArn *string `type:"string"`
4490}
4491
4492// String returns the string representation
4493func (s CreateLocationSmbOutput) String() string {
4494	return awsutil.Prettify(s)
4495}
4496
4497// GoString returns the string representation
4498func (s CreateLocationSmbOutput) GoString() string {
4499	return s.String()
4500}
4501
4502// SetLocationArn sets the LocationArn field's value.
4503func (s *CreateLocationSmbOutput) SetLocationArn(v string) *CreateLocationSmbOutput {
4504	s.LocationArn = &v
4505	return s
4506}
4507
4508// CreateTaskRequest
4509type CreateTaskInput struct {
4510	_ struct{} `type:"structure"`
4511
4512	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is
4513	// used to monitor and log events in the task.
4514	CloudWatchLogGroupArn *string `type:"string"`
4515
4516	// The Amazon Resource Name (ARN) of an AWS storage resource's location.
4517	//
4518	// DestinationLocationArn is a required field
4519	DestinationLocationArn *string `type:"string" required:"true"`
4520
4521	// A list of filter rules that determines which files to exclude from a task.
4522	// The list should contain a single filter string that consists of the patterns
4523	// to exclude. The patterns are delimited by "|" (that is, a pipe), for example,
4524	// "/folder1|/folder2".
4525	Excludes []*FilterRule `type:"list"`
4526
4527	// The name of a task. This value is a text reference that is used to identify
4528	// the task in the console.
4529	Name *string `min:"1" type:"string"`
4530
4531	// The set of configuration options that control the behavior of a single execution
4532	// of the task that occurs when you call StartTaskExecution. You can configure
4533	// these options to preserve metadata such as user ID (UID) and group ID (GID),
4534	// file permissions, data integrity verification, and so on.
4535	//
4536	// For each individual task execution, you can override these options by specifying
4537	// the OverrideOptions before starting the task execution. For more information,
4538	// see the operation.
4539	Options *Options `type:"structure"`
4540
4541	// Specifies a schedule used to periodically transfer files from a source to
4542	// a destination location. The schedule should be specified in UTC time. For
4543	// more information, see task-scheduling.
4544	Schedule *TaskSchedule `type:"structure"`
4545
4546	// The Amazon Resource Name (ARN) of the source location for the task.
4547	//
4548	// SourceLocationArn is a required field
4549	SourceLocationArn *string `type:"string" required:"true"`
4550
4551	// The key-value pair that represents the tag that you want to add to the resource.
4552	// The value can be an empty string.
4553	Tags []*TagListEntry `type:"list"`
4554}
4555
4556// String returns the string representation
4557func (s CreateTaskInput) String() string {
4558	return awsutil.Prettify(s)
4559}
4560
4561// GoString returns the string representation
4562func (s CreateTaskInput) GoString() string {
4563	return s.String()
4564}
4565
4566// Validate inspects the fields of the type to determine if they are valid.
4567func (s *CreateTaskInput) Validate() error {
4568	invalidParams := request.ErrInvalidParams{Context: "CreateTaskInput"}
4569	if s.DestinationLocationArn == nil {
4570		invalidParams.Add(request.NewErrParamRequired("DestinationLocationArn"))
4571	}
4572	if s.Name != nil && len(*s.Name) < 1 {
4573		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
4574	}
4575	if s.SourceLocationArn == nil {
4576		invalidParams.Add(request.NewErrParamRequired("SourceLocationArn"))
4577	}
4578	if s.Options != nil {
4579		if err := s.Options.Validate(); err != nil {
4580			invalidParams.AddNested("Options", err.(request.ErrInvalidParams))
4581		}
4582	}
4583	if s.Schedule != nil {
4584		if err := s.Schedule.Validate(); err != nil {
4585			invalidParams.AddNested("Schedule", err.(request.ErrInvalidParams))
4586		}
4587	}
4588	if s.Tags != nil {
4589		for i, v := range s.Tags {
4590			if v == nil {
4591				continue
4592			}
4593			if err := v.Validate(); err != nil {
4594				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4595			}
4596		}
4597	}
4598
4599	if invalidParams.Len() > 0 {
4600		return invalidParams
4601	}
4602	return nil
4603}
4604
4605// SetCloudWatchLogGroupArn sets the CloudWatchLogGroupArn field's value.
4606func (s *CreateTaskInput) SetCloudWatchLogGroupArn(v string) *CreateTaskInput {
4607	s.CloudWatchLogGroupArn = &v
4608	return s
4609}
4610
4611// SetDestinationLocationArn sets the DestinationLocationArn field's value.
4612func (s *CreateTaskInput) SetDestinationLocationArn(v string) *CreateTaskInput {
4613	s.DestinationLocationArn = &v
4614	return s
4615}
4616
4617// SetExcludes sets the Excludes field's value.
4618func (s *CreateTaskInput) SetExcludes(v []*FilterRule) *CreateTaskInput {
4619	s.Excludes = v
4620	return s
4621}
4622
4623// SetName sets the Name field's value.
4624func (s *CreateTaskInput) SetName(v string) *CreateTaskInput {
4625	s.Name = &v
4626	return s
4627}
4628
4629// SetOptions sets the Options field's value.
4630func (s *CreateTaskInput) SetOptions(v *Options) *CreateTaskInput {
4631	s.Options = v
4632	return s
4633}
4634
4635// SetSchedule sets the Schedule field's value.
4636func (s *CreateTaskInput) SetSchedule(v *TaskSchedule) *CreateTaskInput {
4637	s.Schedule = v
4638	return s
4639}
4640
4641// SetSourceLocationArn sets the SourceLocationArn field's value.
4642func (s *CreateTaskInput) SetSourceLocationArn(v string) *CreateTaskInput {
4643	s.SourceLocationArn = &v
4644	return s
4645}
4646
4647// SetTags sets the Tags field's value.
4648func (s *CreateTaskInput) SetTags(v []*TagListEntry) *CreateTaskInput {
4649	s.Tags = v
4650	return s
4651}
4652
4653// CreateTaskResponse
4654type CreateTaskOutput struct {
4655	_ struct{} `type:"structure"`
4656
4657	// The Amazon Resource Name (ARN) of the task.
4658	TaskArn *string `type:"string"`
4659}
4660
4661// String returns the string representation
4662func (s CreateTaskOutput) String() string {
4663	return awsutil.Prettify(s)
4664}
4665
4666// GoString returns the string representation
4667func (s CreateTaskOutput) GoString() string {
4668	return s.String()
4669}
4670
4671// SetTaskArn sets the TaskArn field's value.
4672func (s *CreateTaskOutput) SetTaskArn(v string) *CreateTaskOutput {
4673	s.TaskArn = &v
4674	return s
4675}
4676
4677// DeleteAgentRequest
4678type DeleteAgentInput struct {
4679	_ struct{} `type:"structure"`
4680
4681	// The Amazon Resource Name (ARN) of the agent to delete. Use the ListAgents
4682	// operation to return a list of agents for your account and AWS Region.
4683	//
4684	// AgentArn is a required field
4685	AgentArn *string `type:"string" required:"true"`
4686}
4687
4688// String returns the string representation
4689func (s DeleteAgentInput) String() string {
4690	return awsutil.Prettify(s)
4691}
4692
4693// GoString returns the string representation
4694func (s DeleteAgentInput) GoString() string {
4695	return s.String()
4696}
4697
4698// Validate inspects the fields of the type to determine if they are valid.
4699func (s *DeleteAgentInput) Validate() error {
4700	invalidParams := request.ErrInvalidParams{Context: "DeleteAgentInput"}
4701	if s.AgentArn == nil {
4702		invalidParams.Add(request.NewErrParamRequired("AgentArn"))
4703	}
4704
4705	if invalidParams.Len() > 0 {
4706		return invalidParams
4707	}
4708	return nil
4709}
4710
4711// SetAgentArn sets the AgentArn field's value.
4712func (s *DeleteAgentInput) SetAgentArn(v string) *DeleteAgentInput {
4713	s.AgentArn = &v
4714	return s
4715}
4716
4717type DeleteAgentOutput struct {
4718	_ struct{} `type:"structure"`
4719}
4720
4721// String returns the string representation
4722func (s DeleteAgentOutput) String() string {
4723	return awsutil.Prettify(s)
4724}
4725
4726// GoString returns the string representation
4727func (s DeleteAgentOutput) GoString() string {
4728	return s.String()
4729}
4730
4731// DeleteLocation
4732type DeleteLocationInput struct {
4733	_ struct{} `type:"structure"`
4734
4735	// The Amazon Resource Name (ARN) of the location to delete.
4736	//
4737	// LocationArn is a required field
4738	LocationArn *string `type:"string" required:"true"`
4739}
4740
4741// String returns the string representation
4742func (s DeleteLocationInput) String() string {
4743	return awsutil.Prettify(s)
4744}
4745
4746// GoString returns the string representation
4747func (s DeleteLocationInput) GoString() string {
4748	return s.String()
4749}
4750
4751// Validate inspects the fields of the type to determine if they are valid.
4752func (s *DeleteLocationInput) Validate() error {
4753	invalidParams := request.ErrInvalidParams{Context: "DeleteLocationInput"}
4754	if s.LocationArn == nil {
4755		invalidParams.Add(request.NewErrParamRequired("LocationArn"))
4756	}
4757
4758	if invalidParams.Len() > 0 {
4759		return invalidParams
4760	}
4761	return nil
4762}
4763
4764// SetLocationArn sets the LocationArn field's value.
4765func (s *DeleteLocationInput) SetLocationArn(v string) *DeleteLocationInput {
4766	s.LocationArn = &v
4767	return s
4768}
4769
4770type DeleteLocationOutput struct {
4771	_ struct{} `type:"structure"`
4772}
4773
4774// String returns the string representation
4775func (s DeleteLocationOutput) String() string {
4776	return awsutil.Prettify(s)
4777}
4778
4779// GoString returns the string representation
4780func (s DeleteLocationOutput) GoString() string {
4781	return s.String()
4782}
4783
4784// DeleteTask
4785type DeleteTaskInput struct {
4786	_ struct{} `type:"structure"`
4787
4788	// The Amazon Resource Name (ARN) of the task to delete.
4789	//
4790	// TaskArn is a required field
4791	TaskArn *string `type:"string" required:"true"`
4792}
4793
4794// String returns the string representation
4795func (s DeleteTaskInput) String() string {
4796	return awsutil.Prettify(s)
4797}
4798
4799// GoString returns the string representation
4800func (s DeleteTaskInput) GoString() string {
4801	return s.String()
4802}
4803
4804// Validate inspects the fields of the type to determine if they are valid.
4805func (s *DeleteTaskInput) Validate() error {
4806	invalidParams := request.ErrInvalidParams{Context: "DeleteTaskInput"}
4807	if s.TaskArn == nil {
4808		invalidParams.Add(request.NewErrParamRequired("TaskArn"))
4809	}
4810
4811	if invalidParams.Len() > 0 {
4812		return invalidParams
4813	}
4814	return nil
4815}
4816
4817// SetTaskArn sets the TaskArn field's value.
4818func (s *DeleteTaskInput) SetTaskArn(v string) *DeleteTaskInput {
4819	s.TaskArn = &v
4820	return s
4821}
4822
4823type DeleteTaskOutput struct {
4824	_ struct{} `type:"structure"`
4825}
4826
4827// String returns the string representation
4828func (s DeleteTaskOutput) String() string {
4829	return awsutil.Prettify(s)
4830}
4831
4832// GoString returns the string representation
4833func (s DeleteTaskOutput) GoString() string {
4834	return s.String()
4835}
4836
4837// DescribeAgent
4838type DescribeAgentInput struct {
4839	_ struct{} `type:"structure"`
4840
4841	// The Amazon Resource Name (ARN) of the agent to describe.
4842	//
4843	// AgentArn is a required field
4844	AgentArn *string `type:"string" required:"true"`
4845}
4846
4847// String returns the string representation
4848func (s DescribeAgentInput) String() string {
4849	return awsutil.Prettify(s)
4850}
4851
4852// GoString returns the string representation
4853func (s DescribeAgentInput) GoString() string {
4854	return s.String()
4855}
4856
4857// Validate inspects the fields of the type to determine if they are valid.
4858func (s *DescribeAgentInput) Validate() error {
4859	invalidParams := request.ErrInvalidParams{Context: "DescribeAgentInput"}
4860	if s.AgentArn == nil {
4861		invalidParams.Add(request.NewErrParamRequired("AgentArn"))
4862	}
4863
4864	if invalidParams.Len() > 0 {
4865		return invalidParams
4866	}
4867	return nil
4868}
4869
4870// SetAgentArn sets the AgentArn field's value.
4871func (s *DescribeAgentInput) SetAgentArn(v string) *DescribeAgentInput {
4872	s.AgentArn = &v
4873	return s
4874}
4875
4876// DescribeAgentResponse
4877type DescribeAgentOutput struct {
4878	_ struct{} `type:"structure"`
4879
4880	// The Amazon Resource Name (ARN) of the agent.
4881	AgentArn *string `type:"string"`
4882
4883	// The time that the agent was activated (that is, created in your account).
4884	CreationTime *time.Time `type:"timestamp"`
4885
4886	// The type of endpoint that your agent is connected to. If the endpoint is
4887	// a VPC endpoint, the agent is not accessible over the public internet.
4888	EndpointType *string `type:"string" enum:"EndpointType"`
4889
4890	// The time that the agent last connected to DataSyc.
4891	LastConnectionTime *time.Time `type:"timestamp"`
4892
4893	// The name of the agent.
4894	Name *string `min:"1" type:"string"`
4895
4896	// The subnet and the security group that DataSync used to access a VPC endpoint.
4897	PrivateLinkConfig *PrivateLinkConfig `type:"structure"`
4898
4899	// The status of the agent. If the status is ONLINE, then the agent is configured
4900	// properly and is available to use. The Running status is the normal running
4901	// status for an agent. If the status is OFFLINE, the agent's VM is turned off
4902	// or the agent is in an unhealthy state. When the issue that caused the unhealthy
4903	// state is resolved, the agent returns to ONLINE status.
4904	Status *string `type:"string" enum:"AgentStatus"`
4905}
4906
4907// String returns the string representation
4908func (s DescribeAgentOutput) String() string {
4909	return awsutil.Prettify(s)
4910}
4911
4912// GoString returns the string representation
4913func (s DescribeAgentOutput) GoString() string {
4914	return s.String()
4915}
4916
4917// SetAgentArn sets the AgentArn field's value.
4918func (s *DescribeAgentOutput) SetAgentArn(v string) *DescribeAgentOutput {
4919	s.AgentArn = &v
4920	return s
4921}
4922
4923// SetCreationTime sets the CreationTime field's value.
4924func (s *DescribeAgentOutput) SetCreationTime(v time.Time) *DescribeAgentOutput {
4925	s.CreationTime = &v
4926	return s
4927}
4928
4929// SetEndpointType sets the EndpointType field's value.
4930func (s *DescribeAgentOutput) SetEndpointType(v string) *DescribeAgentOutput {
4931	s.EndpointType = &v
4932	return s
4933}
4934
4935// SetLastConnectionTime sets the LastConnectionTime field's value.
4936func (s *DescribeAgentOutput) SetLastConnectionTime(v time.Time) *DescribeAgentOutput {
4937	s.LastConnectionTime = &v
4938	return s
4939}
4940
4941// SetName sets the Name field's value.
4942func (s *DescribeAgentOutput) SetName(v string) *DescribeAgentOutput {
4943	s.Name = &v
4944	return s
4945}
4946
4947// SetPrivateLinkConfig sets the PrivateLinkConfig field's value.
4948func (s *DescribeAgentOutput) SetPrivateLinkConfig(v *PrivateLinkConfig) *DescribeAgentOutput {
4949	s.PrivateLinkConfig = v
4950	return s
4951}
4952
4953// SetStatus sets the Status field's value.
4954func (s *DescribeAgentOutput) SetStatus(v string) *DescribeAgentOutput {
4955	s.Status = &v
4956	return s
4957}
4958
4959// DescribeLocationEfsRequest
4960type DescribeLocationEfsInput struct {
4961	_ struct{} `type:"structure"`
4962
4963	// The Amazon Resource Name (ARN) of the EFS location to describe.
4964	//
4965	// LocationArn is a required field
4966	LocationArn *string `type:"string" required:"true"`
4967}
4968
4969// String returns the string representation
4970func (s DescribeLocationEfsInput) String() string {
4971	return awsutil.Prettify(s)
4972}
4973
4974// GoString returns the string representation
4975func (s DescribeLocationEfsInput) GoString() string {
4976	return s.String()
4977}
4978
4979// Validate inspects the fields of the type to determine if they are valid.
4980func (s *DescribeLocationEfsInput) Validate() error {
4981	invalidParams := request.ErrInvalidParams{Context: "DescribeLocationEfsInput"}
4982	if s.LocationArn == nil {
4983		invalidParams.Add(request.NewErrParamRequired("LocationArn"))
4984	}
4985
4986	if invalidParams.Len() > 0 {
4987		return invalidParams
4988	}
4989	return nil
4990}
4991
4992// SetLocationArn sets the LocationArn field's value.
4993func (s *DescribeLocationEfsInput) SetLocationArn(v string) *DescribeLocationEfsInput {
4994	s.LocationArn = &v
4995	return s
4996}
4997
4998// DescribeLocationEfsResponse
4999type DescribeLocationEfsOutput struct {
5000	_ struct{} `type:"structure"`
5001
5002	// The time that the EFS location was created.
5003	CreationTime *time.Time `type:"timestamp"`
5004
5005	// The subnet and the security group that DataSync uses to access target EFS
5006	// file system. The subnet must have at least one mount target for that file
5007	// system. The security group that you provide needs to be able to communicate
5008	// with the security group on the mount target in the subnet specified.
5009	Ec2Config *Ec2Config `type:"structure"`
5010
5011	// The Amazon Resource Name (ARN) of the EFS location that was described.
5012	LocationArn *string `type:"string"`
5013
5014	// The URL of the EFS location that was described.
5015	LocationUri *string `type:"string"`
5016}
5017
5018// String returns the string representation
5019func (s DescribeLocationEfsOutput) String() string {
5020	return awsutil.Prettify(s)
5021}
5022
5023// GoString returns the string representation
5024func (s DescribeLocationEfsOutput) GoString() string {
5025	return s.String()
5026}
5027
5028// SetCreationTime sets the CreationTime field's value.
5029func (s *DescribeLocationEfsOutput) SetCreationTime(v time.Time) *DescribeLocationEfsOutput {
5030	s.CreationTime = &v
5031	return s
5032}
5033
5034// SetEc2Config sets the Ec2Config field's value.
5035func (s *DescribeLocationEfsOutput) SetEc2Config(v *Ec2Config) *DescribeLocationEfsOutput {
5036	s.Ec2Config = v
5037	return s
5038}
5039
5040// SetLocationArn sets the LocationArn field's value.
5041func (s *DescribeLocationEfsOutput) SetLocationArn(v string) *DescribeLocationEfsOutput {
5042	s.LocationArn = &v
5043	return s
5044}
5045
5046// SetLocationUri sets the LocationUri field's value.
5047func (s *DescribeLocationEfsOutput) SetLocationUri(v string) *DescribeLocationEfsOutput {
5048	s.LocationUri = &v
5049	return s
5050}
5051
5052type DescribeLocationFsxWindowsInput struct {
5053	_ struct{} `type:"structure"`
5054
5055	// The Amazon Resource Name (ARN) of the FSx for Windows File Server location
5056	// to describe.
5057	//
5058	// LocationArn is a required field
5059	LocationArn *string `type:"string" required:"true"`
5060}
5061
5062// String returns the string representation
5063func (s DescribeLocationFsxWindowsInput) String() string {
5064	return awsutil.Prettify(s)
5065}
5066
5067// GoString returns the string representation
5068func (s DescribeLocationFsxWindowsInput) GoString() string {
5069	return s.String()
5070}
5071
5072// Validate inspects the fields of the type to determine if they are valid.
5073func (s *DescribeLocationFsxWindowsInput) Validate() error {
5074	invalidParams := request.ErrInvalidParams{Context: "DescribeLocationFsxWindowsInput"}
5075	if s.LocationArn == nil {
5076		invalidParams.Add(request.NewErrParamRequired("LocationArn"))
5077	}
5078
5079	if invalidParams.Len() > 0 {
5080		return invalidParams
5081	}
5082	return nil
5083}
5084
5085// SetLocationArn sets the LocationArn field's value.
5086func (s *DescribeLocationFsxWindowsInput) SetLocationArn(v string) *DescribeLocationFsxWindowsInput {
5087	s.LocationArn = &v
5088	return s
5089}
5090
5091type DescribeLocationFsxWindowsOutput struct {
5092	_ struct{} `type:"structure"`
5093
5094	// The time that the FSx for Windows File Server location was created.
5095	CreationTime *time.Time `type:"timestamp"`
5096
5097	// The name of the Windows domain that the FSx for Windows File Server belongs
5098	// to.
5099	Domain *string `type:"string"`
5100
5101	// The Amazon Resource Name (ARN) of the FSx for Windows File Server location
5102	// that was described.
5103	LocationArn *string `type:"string"`
5104
5105	// The URL of the FSx for Windows File Server location that was described.
5106	LocationUri *string `type:"string"`
5107
5108	// The Amazon Resource Names (ARNs) of the security groups that are configured
5109	// for the FSx for Windows File Server file system.
5110	SecurityGroupArns []*string `min:"1" type:"list"`
5111
5112	// The user who has the permissions to access files and folders in the FSx for
5113	// Windows File Server file system.
5114	User *string `type:"string"`
5115}
5116
5117// String returns the string representation
5118func (s DescribeLocationFsxWindowsOutput) String() string {
5119	return awsutil.Prettify(s)
5120}
5121
5122// GoString returns the string representation
5123func (s DescribeLocationFsxWindowsOutput) GoString() string {
5124	return s.String()
5125}
5126
5127// SetCreationTime sets the CreationTime field's value.
5128func (s *DescribeLocationFsxWindowsOutput) SetCreationTime(v time.Time) *DescribeLocationFsxWindowsOutput {
5129	s.CreationTime = &v
5130	return s
5131}
5132
5133// SetDomain sets the Domain field's value.
5134func (s *DescribeLocationFsxWindowsOutput) SetDomain(v string) *DescribeLocationFsxWindowsOutput {
5135	s.Domain = &v
5136	return s
5137}
5138
5139// SetLocationArn sets the LocationArn field's value.
5140func (s *DescribeLocationFsxWindowsOutput) SetLocationArn(v string) *DescribeLocationFsxWindowsOutput {
5141	s.LocationArn = &v
5142	return s
5143}
5144
5145// SetLocationUri sets the LocationUri field's value.
5146func (s *DescribeLocationFsxWindowsOutput) SetLocationUri(v string) *DescribeLocationFsxWindowsOutput {
5147	s.LocationUri = &v
5148	return s
5149}
5150
5151// SetSecurityGroupArns sets the SecurityGroupArns field's value.
5152func (s *DescribeLocationFsxWindowsOutput) SetSecurityGroupArns(v []*string) *DescribeLocationFsxWindowsOutput {
5153	s.SecurityGroupArns = v
5154	return s
5155}
5156
5157// SetUser sets the User field's value.
5158func (s *DescribeLocationFsxWindowsOutput) SetUser(v string) *DescribeLocationFsxWindowsOutput {
5159	s.User = &v
5160	return s
5161}
5162
5163// DescribeLocationNfsRequest
5164type DescribeLocationNfsInput struct {
5165	_ struct{} `type:"structure"`
5166
5167	// The Amazon Resource Name (ARN) of the NFS location to describe.
5168	//
5169	// LocationArn is a required field
5170	LocationArn *string `type:"string" required:"true"`
5171}
5172
5173// String returns the string representation
5174func (s DescribeLocationNfsInput) String() string {
5175	return awsutil.Prettify(s)
5176}
5177
5178// GoString returns the string representation
5179func (s DescribeLocationNfsInput) GoString() string {
5180	return s.String()
5181}
5182
5183// Validate inspects the fields of the type to determine if they are valid.
5184func (s *DescribeLocationNfsInput) Validate() error {
5185	invalidParams := request.ErrInvalidParams{Context: "DescribeLocationNfsInput"}
5186	if s.LocationArn == nil {
5187		invalidParams.Add(request.NewErrParamRequired("LocationArn"))
5188	}
5189
5190	if invalidParams.Len() > 0 {
5191		return invalidParams
5192	}
5193	return nil
5194}
5195
5196// SetLocationArn sets the LocationArn field's value.
5197func (s *DescribeLocationNfsInput) SetLocationArn(v string) *DescribeLocationNfsInput {
5198	s.LocationArn = &v
5199	return s
5200}
5201
5202// DescribeLocationNfsResponse
5203type DescribeLocationNfsOutput struct {
5204	_ struct{} `type:"structure"`
5205
5206	// The time that the NFS location was created.
5207	CreationTime *time.Time `type:"timestamp"`
5208
5209	// The Amazon Resource Name (ARN) of the NFS location that was described.
5210	LocationArn *string `type:"string"`
5211
5212	// The URL of the source NFS location that was described.
5213	LocationUri *string `type:"string"`
5214
5215	// The NFS mount options that DataSync used to mount your NFS share.
5216	MountOptions *NfsMountOptions `type:"structure"`
5217
5218	// A list of Amazon Resource Names (ARNs) of agents to use for a Network File
5219	// System (NFS) location.
5220	OnPremConfig *OnPremConfig `type:"structure"`
5221}
5222
5223// String returns the string representation
5224func (s DescribeLocationNfsOutput) String() string {
5225	return awsutil.Prettify(s)
5226}
5227
5228// GoString returns the string representation
5229func (s DescribeLocationNfsOutput) GoString() string {
5230	return s.String()
5231}
5232
5233// SetCreationTime sets the CreationTime field's value.
5234func (s *DescribeLocationNfsOutput) SetCreationTime(v time.Time) *DescribeLocationNfsOutput {
5235	s.CreationTime = &v
5236	return s
5237}
5238
5239// SetLocationArn sets the LocationArn field's value.
5240func (s *DescribeLocationNfsOutput) SetLocationArn(v string) *DescribeLocationNfsOutput {
5241	s.LocationArn = &v
5242	return s
5243}
5244
5245// SetLocationUri sets the LocationUri field's value.
5246func (s *DescribeLocationNfsOutput) SetLocationUri(v string) *DescribeLocationNfsOutput {
5247	s.LocationUri = &v
5248	return s
5249}
5250
5251// SetMountOptions sets the MountOptions field's value.
5252func (s *DescribeLocationNfsOutput) SetMountOptions(v *NfsMountOptions) *DescribeLocationNfsOutput {
5253	s.MountOptions = v
5254	return s
5255}
5256
5257// SetOnPremConfig sets the OnPremConfig field's value.
5258func (s *DescribeLocationNfsOutput) SetOnPremConfig(v *OnPremConfig) *DescribeLocationNfsOutput {
5259	s.OnPremConfig = v
5260	return s
5261}
5262
5263// DescribeLocationObjectStorageRequest
5264type DescribeLocationObjectStorageInput struct {
5265	_ struct{} `type:"structure"`
5266
5267	// The Amazon Resource Name (ARN) of the self-managed object storage server
5268	// location that was described.
5269	//
5270	// LocationArn is a required field
5271	LocationArn *string `type:"string" required:"true"`
5272}
5273
5274// String returns the string representation
5275func (s DescribeLocationObjectStorageInput) String() string {
5276	return awsutil.Prettify(s)
5277}
5278
5279// GoString returns the string representation
5280func (s DescribeLocationObjectStorageInput) GoString() string {
5281	return s.String()
5282}
5283
5284// Validate inspects the fields of the type to determine if they are valid.
5285func (s *DescribeLocationObjectStorageInput) Validate() error {
5286	invalidParams := request.ErrInvalidParams{Context: "DescribeLocationObjectStorageInput"}
5287	if s.LocationArn == nil {
5288		invalidParams.Add(request.NewErrParamRequired("LocationArn"))
5289	}
5290
5291	if invalidParams.Len() > 0 {
5292		return invalidParams
5293	}
5294	return nil
5295}
5296
5297// SetLocationArn sets the LocationArn field's value.
5298func (s *DescribeLocationObjectStorageInput) SetLocationArn(v string) *DescribeLocationObjectStorageInput {
5299	s.LocationArn = &v
5300	return s
5301}
5302
5303// DescribeLocationObjectStorageResponse
5304type DescribeLocationObjectStorageOutput struct {
5305	_ struct{} `type:"structure"`
5306
5307	// Optional. The access key is used if credentials are required to access the
5308	// self-managed object storage server. If your object storage requires a user
5309	// name and password to authenticate, use AccessKey and SecretKey to provide
5310	// the user name and password, respectively.
5311	AccessKey *string `min:"8" type:"string"`
5312
5313	// The Amazon Resource Name (ARN) of the agents associated with the self-managed
5314	// object storage server location.
5315	AgentArns []*string `min:"1" type:"list"`
5316
5317	// The time that the self-managed object storage server agent was created.
5318	CreationTime *time.Time `type:"timestamp"`
5319
5320	// The Amazon Resource Name (ARN) of the self-managed object storage server
5321	// location to describe.
5322	LocationArn *string `type:"string"`
5323
5324	// The URL of the source self-managed object storage server location that was
5325	// described.
5326	LocationUri *string `type:"string"`
5327
5328	// The port that your self-managed object storage server accepts inbound network
5329	// traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443
5330	// (HTTPS).
5331	ServerPort *int64 `min:"1" type:"integer"`
5332
5333	// The protocol that the object storage server uses to communicate. Valid values
5334	// are HTTP or HTTPS.
5335	ServerProtocol *string `type:"string" enum:"ObjectStorageServerProtocol"`
5336}
5337
5338// String returns the string representation
5339func (s DescribeLocationObjectStorageOutput) String() string {
5340	return awsutil.Prettify(s)
5341}
5342
5343// GoString returns the string representation
5344func (s DescribeLocationObjectStorageOutput) GoString() string {
5345	return s.String()
5346}
5347
5348// SetAccessKey sets the AccessKey field's value.
5349func (s *DescribeLocationObjectStorageOutput) SetAccessKey(v string) *DescribeLocationObjectStorageOutput {
5350	s.AccessKey = &v
5351	return s
5352}
5353
5354// SetAgentArns sets the AgentArns field's value.
5355func (s *DescribeLocationObjectStorageOutput) SetAgentArns(v []*string) *DescribeLocationObjectStorageOutput {
5356	s.AgentArns = v
5357	return s
5358}
5359
5360// SetCreationTime sets the CreationTime field's value.
5361func (s *DescribeLocationObjectStorageOutput) SetCreationTime(v time.Time) *DescribeLocationObjectStorageOutput {
5362	s.CreationTime = &v
5363	return s
5364}
5365
5366// SetLocationArn sets the LocationArn field's value.
5367func (s *DescribeLocationObjectStorageOutput) SetLocationArn(v string) *DescribeLocationObjectStorageOutput {
5368	s.LocationArn = &v
5369	return s
5370}
5371
5372// SetLocationUri sets the LocationUri field's value.
5373func (s *DescribeLocationObjectStorageOutput) SetLocationUri(v string) *DescribeLocationObjectStorageOutput {
5374	s.LocationUri = &v
5375	return s
5376}
5377
5378// SetServerPort sets the ServerPort field's value.
5379func (s *DescribeLocationObjectStorageOutput) SetServerPort(v int64) *DescribeLocationObjectStorageOutput {
5380	s.ServerPort = &v
5381	return s
5382}
5383
5384// SetServerProtocol sets the ServerProtocol field's value.
5385func (s *DescribeLocationObjectStorageOutput) SetServerProtocol(v string) *DescribeLocationObjectStorageOutput {
5386	s.ServerProtocol = &v
5387	return s
5388}
5389
5390// DescribeLocationS3Request
5391type DescribeLocationS3Input struct {
5392	_ struct{} `type:"structure"`
5393
5394	// The Amazon Resource Name (ARN) of the Amazon S3 bucket location to describe.
5395	//
5396	// LocationArn is a required field
5397	LocationArn *string `type:"string" required:"true"`
5398}
5399
5400// String returns the string representation
5401func (s DescribeLocationS3Input) String() string {
5402	return awsutil.Prettify(s)
5403}
5404
5405// GoString returns the string representation
5406func (s DescribeLocationS3Input) GoString() string {
5407	return s.String()
5408}
5409
5410// Validate inspects the fields of the type to determine if they are valid.
5411func (s *DescribeLocationS3Input) Validate() error {
5412	invalidParams := request.ErrInvalidParams{Context: "DescribeLocationS3Input"}
5413	if s.LocationArn == nil {
5414		invalidParams.Add(request.NewErrParamRequired("LocationArn"))
5415	}
5416
5417	if invalidParams.Len() > 0 {
5418		return invalidParams
5419	}
5420	return nil
5421}
5422
5423// SetLocationArn sets the LocationArn field's value.
5424func (s *DescribeLocationS3Input) SetLocationArn(v string) *DescribeLocationS3Input {
5425	s.LocationArn = &v
5426	return s
5427}
5428
5429// DescribeLocationS3Response
5430type DescribeLocationS3Output struct {
5431	_ struct{} `type:"structure"`
5432
5433	// If you are using DataSync on an AWS Outpost, the Amazon Resource Name (ARNs)
5434	// of the EC2 agents deployed on your Outpost. For more information about launching
5435	// a DataSync agent on an AWS Outpost, see outposts-agent.
5436	AgentArns []*string `min:"1" type:"list"`
5437
5438	// The time that the Amazon S3 bucket location was created.
5439	CreationTime *time.Time `type:"timestamp"`
5440
5441	// The Amazon Resource Name (ARN) of the Amazon S3 bucket or access point.
5442	LocationArn *string `type:"string"`
5443
5444	// The URL of the Amazon S3 location that was described.
5445	LocationUri *string `type:"string"`
5446
5447	// The Amazon Resource Name (ARN) of the AWS Identity and Access Management
5448	// (IAM) role that is used to access an Amazon S3 bucket.
5449	//
5450	// For detailed information about using such a role, see Creating a Location
5451	// for Amazon S3 in the AWS DataSync User Guide.
5452	S3Config *S3Config `type:"structure"`
5453
5454	// The Amazon S3 storage class that you chose to store your files in when this
5455	// location is used as a task destination. For more information about S3 storage
5456	// classes, see Amazon S3 Storage Classes (http://aws.amazon.com/s3/storage-classes/).
5457	// Some storage classes have behaviors that can affect your S3 storage cost.
5458	// For detailed information, see using-storage-classes.
5459	S3StorageClass *string `type:"string" enum:"S3StorageClass"`
5460}
5461
5462// String returns the string representation
5463func (s DescribeLocationS3Output) String() string {
5464	return awsutil.Prettify(s)
5465}
5466
5467// GoString returns the string representation
5468func (s DescribeLocationS3Output) GoString() string {
5469	return s.String()
5470}
5471
5472// SetAgentArns sets the AgentArns field's value.
5473func (s *DescribeLocationS3Output) SetAgentArns(v []*string) *DescribeLocationS3Output {
5474	s.AgentArns = v
5475	return s
5476}
5477
5478// SetCreationTime sets the CreationTime field's value.
5479func (s *DescribeLocationS3Output) SetCreationTime(v time.Time) *DescribeLocationS3Output {
5480	s.CreationTime = &v
5481	return s
5482}
5483
5484// SetLocationArn sets the LocationArn field's value.
5485func (s *DescribeLocationS3Output) SetLocationArn(v string) *DescribeLocationS3Output {
5486	s.LocationArn = &v
5487	return s
5488}
5489
5490// SetLocationUri sets the LocationUri field's value.
5491func (s *DescribeLocationS3Output) SetLocationUri(v string) *DescribeLocationS3Output {
5492	s.LocationUri = &v
5493	return s
5494}
5495
5496// SetS3Config sets the S3Config field's value.
5497func (s *DescribeLocationS3Output) SetS3Config(v *S3Config) *DescribeLocationS3Output {
5498	s.S3Config = v
5499	return s
5500}
5501
5502// SetS3StorageClass sets the S3StorageClass field's value.
5503func (s *DescribeLocationS3Output) SetS3StorageClass(v string) *DescribeLocationS3Output {
5504	s.S3StorageClass = &v
5505	return s
5506}
5507
5508// DescribeLocationSmbRequest
5509type DescribeLocationSmbInput struct {
5510	_ struct{} `type:"structure"`
5511
5512	// The Amazon Resource Name (ARN) of the SMB location to describe.
5513	//
5514	// LocationArn is a required field
5515	LocationArn *string `type:"string" required:"true"`
5516}
5517
5518// String returns the string representation
5519func (s DescribeLocationSmbInput) String() string {
5520	return awsutil.Prettify(s)
5521}
5522
5523// GoString returns the string representation
5524func (s DescribeLocationSmbInput) GoString() string {
5525	return s.String()
5526}
5527
5528// Validate inspects the fields of the type to determine if they are valid.
5529func (s *DescribeLocationSmbInput) Validate() error {
5530	invalidParams := request.ErrInvalidParams{Context: "DescribeLocationSmbInput"}
5531	if s.LocationArn == nil {
5532		invalidParams.Add(request.NewErrParamRequired("LocationArn"))
5533	}
5534
5535	if invalidParams.Len() > 0 {
5536		return invalidParams
5537	}
5538	return nil
5539}
5540
5541// SetLocationArn sets the LocationArn field's value.
5542func (s *DescribeLocationSmbInput) SetLocationArn(v string) *DescribeLocationSmbInput {
5543	s.LocationArn = &v
5544	return s
5545}
5546
5547// DescribeLocationSmbResponse
5548type DescribeLocationSmbOutput struct {
5549	_ struct{} `type:"structure"`
5550
5551	// The Amazon Resource Name (ARN) of the source SMB file system location that
5552	// is created.
5553	AgentArns []*string `min:"1" type:"list"`
5554
5555	// The time that the SMB location was created.
5556	CreationTime *time.Time `type:"timestamp"`
5557
5558	// The name of the Windows domain that the SMB server belongs to.
5559	Domain *string `type:"string"`
5560
5561	// The Amazon Resource Name (ARN) of the SMB location that was described.
5562	LocationArn *string `type:"string"`
5563
5564	// The URL of the source SBM location that was described.
5565	LocationUri *string `type:"string"`
5566
5567	// The mount options that are available for DataSync to use to access an SMB
5568	// location.
5569	MountOptions *SmbMountOptions `type:"structure"`
5570
5571	// The user who can mount the share, has the permissions to access files and
5572	// folders in the SMB share.
5573	User *string `type:"string"`
5574}
5575
5576// String returns the string representation
5577func (s DescribeLocationSmbOutput) String() string {
5578	return awsutil.Prettify(s)
5579}
5580
5581// GoString returns the string representation
5582func (s DescribeLocationSmbOutput) GoString() string {
5583	return s.String()
5584}
5585
5586// SetAgentArns sets the AgentArns field's value.
5587func (s *DescribeLocationSmbOutput) SetAgentArns(v []*string) *DescribeLocationSmbOutput {
5588	s.AgentArns = v
5589	return s
5590}
5591
5592// SetCreationTime sets the CreationTime field's value.
5593func (s *DescribeLocationSmbOutput) SetCreationTime(v time.Time) *DescribeLocationSmbOutput {
5594	s.CreationTime = &v
5595	return s
5596}
5597
5598// SetDomain sets the Domain field's value.
5599func (s *DescribeLocationSmbOutput) SetDomain(v string) *DescribeLocationSmbOutput {
5600	s.Domain = &v
5601	return s
5602}
5603
5604// SetLocationArn sets the LocationArn field's value.
5605func (s *DescribeLocationSmbOutput) SetLocationArn(v string) *DescribeLocationSmbOutput {
5606	s.LocationArn = &v
5607	return s
5608}
5609
5610// SetLocationUri sets the LocationUri field's value.
5611func (s *DescribeLocationSmbOutput) SetLocationUri(v string) *DescribeLocationSmbOutput {
5612	s.LocationUri = &v
5613	return s
5614}
5615
5616// SetMountOptions sets the MountOptions field's value.
5617func (s *DescribeLocationSmbOutput) SetMountOptions(v *SmbMountOptions) *DescribeLocationSmbOutput {
5618	s.MountOptions = v
5619	return s
5620}
5621
5622// SetUser sets the User field's value.
5623func (s *DescribeLocationSmbOutput) SetUser(v string) *DescribeLocationSmbOutput {
5624	s.User = &v
5625	return s
5626}
5627
5628// DescribeTaskExecutionRequest
5629type DescribeTaskExecutionInput struct {
5630	_ struct{} `type:"structure"`
5631
5632	// The Amazon Resource Name (ARN) of the task that is being executed.
5633	//
5634	// TaskExecutionArn is a required field
5635	TaskExecutionArn *string `type:"string" required:"true"`
5636}
5637
5638// String returns the string representation
5639func (s DescribeTaskExecutionInput) String() string {
5640	return awsutil.Prettify(s)
5641}
5642
5643// GoString returns the string representation
5644func (s DescribeTaskExecutionInput) GoString() string {
5645	return s.String()
5646}
5647
5648// Validate inspects the fields of the type to determine if they are valid.
5649func (s *DescribeTaskExecutionInput) Validate() error {
5650	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskExecutionInput"}
5651	if s.TaskExecutionArn == nil {
5652		invalidParams.Add(request.NewErrParamRequired("TaskExecutionArn"))
5653	}
5654
5655	if invalidParams.Len() > 0 {
5656		return invalidParams
5657	}
5658	return nil
5659}
5660
5661// SetTaskExecutionArn sets the TaskExecutionArn field's value.
5662func (s *DescribeTaskExecutionInput) SetTaskExecutionArn(v string) *DescribeTaskExecutionInput {
5663	s.TaskExecutionArn = &v
5664	return s
5665}
5666
5667// DescribeTaskExecutionResponse
5668type DescribeTaskExecutionOutput struct {
5669	_ struct{} `type:"structure"`
5670
5671	// The physical number of bytes transferred over the network.
5672	BytesTransferred *int64 `type:"long"`
5673
5674	// The number of logical bytes written to the destination AWS storage resource.
5675	BytesWritten *int64 `type:"long"`
5676
5677	// The estimated physical number of bytes that is to be transferred over the
5678	// network.
5679	EstimatedBytesToTransfer *int64 `type:"long"`
5680
5681	// The expected number of files that is to be transferred over the network.
5682	// This value is calculated during the PREPARING phase, before the TRANSFERRING
5683	// phase. This value is the expected number of files to be transferred. It's
5684	// calculated based on comparing the content of the source and destination locations
5685	// and finding the delta that needs to be transferred.
5686	EstimatedFilesToTransfer *int64 `type:"long"`
5687
5688	// A list of filter rules that determines which files to exclude from a task.
5689	// The list should contain a single filter string that consists of the patterns
5690	// to exclude. The patterns are delimited by "|" (that is, a pipe), for example:
5691	// "/folder1|/folder2"
5692	Excludes []*FilterRule `type:"list"`
5693
5694	// The actual number of files that was transferred over the network. This value
5695	// is calculated and updated on an ongoing basis during the TRANSFERRING phase.
5696	// It's updated periodically when each file is read from the source and sent
5697	// over the network.
5698	//
5699	// If failures occur during a transfer, this value can be less than EstimatedFilesToTransfer.
5700	// This value can also be greater than EstimatedFilesTransferred in some cases.
5701	// This element is implementation-specific for some location types, so don't
5702	// use it as an indicator for a correct file number or to monitor your task
5703	// execution.
5704	FilesTransferred *int64 `type:"long"`
5705
5706	// A list of filter rules that determines which files to include when running
5707	// a task. The list should contain a single filter string that consists of the
5708	// patterns to include. The patterns are delimited by "|" (that is, a pipe),
5709	// for example: "/folder1|/folder2"
5710	Includes []*FilterRule `type:"list"`
5711
5712	// Represents the options that are available to control the behavior of a StartTaskExecution
5713	// operation. Behavior includes preserving metadata such as user ID (UID), group
5714	// ID (GID), and file permissions, and also overwriting files in the destination,
5715	// data integrity verification, and so on.
5716	//
5717	// A task has a set of default options associated with it. If you don't specify
5718	// an option in StartTaskExecution, the default value is used. You can override
5719	// the defaults options on each task execution by specifying an overriding Options
5720	// value to StartTaskExecution.
5721	Options *Options `type:"structure"`
5722
5723	// The result of the task execution.
5724	Result *TaskExecutionResultDetail `type:"structure"`
5725
5726	// The time that the task execution was started.
5727	StartTime *time.Time `type:"timestamp"`
5728
5729	// The status of the task execution.
5730	//
5731	// For detailed information about task execution statuses, see Understanding
5732	// Task Statuses in the AWS DataSync User Guide.
5733	Status *string `type:"string" enum:"TaskExecutionStatus"`
5734
5735	// The Amazon Resource Name (ARN) of the task execution that was described.
5736	// TaskExecutionArn is hierarchical and includes TaskArn for the task that was
5737	// executed.
5738	//
5739	// For example, a TaskExecution value with the ARN arn:aws:datasync:us-east-1:111222333444:task/task-0208075f79cedf4a2/execution/exec-08ef1e88ec491019b
5740	// executed the task with the ARN arn:aws:datasync:us-east-1:111222333444:task/task-0208075f79cedf4a2.
5741	TaskExecutionArn *string `type:"string"`
5742}
5743
5744// String returns the string representation
5745func (s DescribeTaskExecutionOutput) String() string {
5746	return awsutil.Prettify(s)
5747}
5748
5749// GoString returns the string representation
5750func (s DescribeTaskExecutionOutput) GoString() string {
5751	return s.String()
5752}
5753
5754// SetBytesTransferred sets the BytesTransferred field's value.
5755func (s *DescribeTaskExecutionOutput) SetBytesTransferred(v int64) *DescribeTaskExecutionOutput {
5756	s.BytesTransferred = &v
5757	return s
5758}
5759
5760// SetBytesWritten sets the BytesWritten field's value.
5761func (s *DescribeTaskExecutionOutput) SetBytesWritten(v int64) *DescribeTaskExecutionOutput {
5762	s.BytesWritten = &v
5763	return s
5764}
5765
5766// SetEstimatedBytesToTransfer sets the EstimatedBytesToTransfer field's value.
5767func (s *DescribeTaskExecutionOutput) SetEstimatedBytesToTransfer(v int64) *DescribeTaskExecutionOutput {
5768	s.EstimatedBytesToTransfer = &v
5769	return s
5770}
5771
5772// SetEstimatedFilesToTransfer sets the EstimatedFilesToTransfer field's value.
5773func (s *DescribeTaskExecutionOutput) SetEstimatedFilesToTransfer(v int64) *DescribeTaskExecutionOutput {
5774	s.EstimatedFilesToTransfer = &v
5775	return s
5776}
5777
5778// SetExcludes sets the Excludes field's value.
5779func (s *DescribeTaskExecutionOutput) SetExcludes(v []*FilterRule) *DescribeTaskExecutionOutput {
5780	s.Excludes = v
5781	return s
5782}
5783
5784// SetFilesTransferred sets the FilesTransferred field's value.
5785func (s *DescribeTaskExecutionOutput) SetFilesTransferred(v int64) *DescribeTaskExecutionOutput {
5786	s.FilesTransferred = &v
5787	return s
5788}
5789
5790// SetIncludes sets the Includes field's value.
5791func (s *DescribeTaskExecutionOutput) SetIncludes(v []*FilterRule) *DescribeTaskExecutionOutput {
5792	s.Includes = v
5793	return s
5794}
5795
5796// SetOptions sets the Options field's value.
5797func (s *DescribeTaskExecutionOutput) SetOptions(v *Options) *DescribeTaskExecutionOutput {
5798	s.Options = v
5799	return s
5800}
5801
5802// SetResult sets the Result field's value.
5803func (s *DescribeTaskExecutionOutput) SetResult(v *TaskExecutionResultDetail) *DescribeTaskExecutionOutput {
5804	s.Result = v
5805	return s
5806}
5807
5808// SetStartTime sets the StartTime field's value.
5809func (s *DescribeTaskExecutionOutput) SetStartTime(v time.Time) *DescribeTaskExecutionOutput {
5810	s.StartTime = &v
5811	return s
5812}
5813
5814// SetStatus sets the Status field's value.
5815func (s *DescribeTaskExecutionOutput) SetStatus(v string) *DescribeTaskExecutionOutput {
5816	s.Status = &v
5817	return s
5818}
5819
5820// SetTaskExecutionArn sets the TaskExecutionArn field's value.
5821func (s *DescribeTaskExecutionOutput) SetTaskExecutionArn(v string) *DescribeTaskExecutionOutput {
5822	s.TaskExecutionArn = &v
5823	return s
5824}
5825
5826// DescribeTaskRequest
5827type DescribeTaskInput struct {
5828	_ struct{} `type:"structure"`
5829
5830	// The Amazon Resource Name (ARN) of the task to describe.
5831	//
5832	// TaskArn is a required field
5833	TaskArn *string `type:"string" required:"true"`
5834}
5835
5836// String returns the string representation
5837func (s DescribeTaskInput) String() string {
5838	return awsutil.Prettify(s)
5839}
5840
5841// GoString returns the string representation
5842func (s DescribeTaskInput) GoString() string {
5843	return s.String()
5844}
5845
5846// Validate inspects the fields of the type to determine if they are valid.
5847func (s *DescribeTaskInput) Validate() error {
5848	invalidParams := request.ErrInvalidParams{Context: "DescribeTaskInput"}
5849	if s.TaskArn == nil {
5850		invalidParams.Add(request.NewErrParamRequired("TaskArn"))
5851	}
5852
5853	if invalidParams.Len() > 0 {
5854		return invalidParams
5855	}
5856	return nil
5857}
5858
5859// SetTaskArn sets the TaskArn field's value.
5860func (s *DescribeTaskInput) SetTaskArn(v string) *DescribeTaskInput {
5861	s.TaskArn = &v
5862	return s
5863}
5864
5865// DescribeTaskResponse
5866type DescribeTaskOutput struct {
5867	_ struct{} `type:"structure"`
5868
5869	// The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that was
5870	// used to monitor and log events in the task.
5871	//
5872	// For more information on these groups, see Working with Log Groups and Log
5873	// Streams in the Amazon CloudWatch User Guide.
5874	CloudWatchLogGroupArn *string `type:"string"`
5875
5876	// The time that the task was created.
5877	CreationTime *time.Time `type:"timestamp"`
5878
5879	// The Amazon Resource Name (ARN) of the task execution that is syncing files.
5880	CurrentTaskExecutionArn *string `type:"string"`
5881
5882	// The Amazon Resource Name (ARN) of the AWS storage resource's location.
5883	DestinationLocationArn *string `type:"string"`
5884
5885	// The Amazon Resource Name (ARN) of the destination ENIs (Elastic Network Interface)
5886	// that was created for your subnet.
5887	DestinationNetworkInterfaceArns []*string `type:"list"`
5888
5889	// Errors that AWS DataSync encountered during execution of the task. You can
5890	// use this error code to help troubleshoot issues.
5891	ErrorCode *string `type:"string"`
5892
5893	// Detailed description of an error that was encountered during the task execution.
5894	// You can use this information to help troubleshoot issues.
5895	ErrorDetail *string `type:"string"`
5896
5897	// A list of filter rules that determines which files to exclude from a task.
5898	// The list should contain a single filter string that consists of the patterns
5899	// to exclude. The patterns are delimited by "|" (that is, a pipe), for example:
5900	// "/folder1|/folder2"
5901	Excludes []*FilterRule `type:"list"`
5902
5903	// The name of the task that was described.
5904	Name *string `min:"1" type:"string"`
5905
5906	// The set of configuration options that control the behavior of a single execution
5907	// of the task that occurs when you call StartTaskExecution. You can configure
5908	// these options to preserve metadata such as user ID (UID) and group (GID),
5909	// file permissions, data integrity verification, and so on.
5910	//
5911	// For each individual task execution, you can override these options by specifying
5912	// the overriding OverrideOptions value to operation.
5913	Options *Options `type:"structure"`
5914
5915	// The schedule used to periodically transfer files from a source to a destination
5916	// location.
5917	Schedule *TaskSchedule `type:"structure"`
5918
5919	// The Amazon Resource Name (ARN) of the source file system's location.
5920	SourceLocationArn *string `type:"string"`
5921
5922	// The Amazon Resource Name (ARN) of the source ENIs (Elastic Network Interface)
5923	// that was created for your subnet.
5924	SourceNetworkInterfaceArns []*string `type:"list"`
5925
5926	// The status of the task that was described.
5927	//
5928	// For detailed information about task execution statuses, see Understanding
5929	// Task Statuses in the AWS DataSync User Guide.
5930	Status *string `type:"string" enum:"TaskStatus"`
5931
5932	// The Amazon Resource Name (ARN) of the task that was described.
5933	TaskArn *string `type:"string"`
5934}
5935
5936// String returns the string representation
5937func (s DescribeTaskOutput) String() string {
5938	return awsutil.Prettify(s)
5939}
5940
5941// GoString returns the string representation
5942func (s DescribeTaskOutput) GoString() string {
5943	return s.String()
5944}
5945
5946// SetCloudWatchLogGroupArn sets the CloudWatchLogGroupArn field's value.
5947func (s *DescribeTaskOutput) SetCloudWatchLogGroupArn(v string) *DescribeTaskOutput {
5948	s.CloudWatchLogGroupArn = &v
5949	return s
5950}
5951
5952// SetCreationTime sets the CreationTime field's value.
5953func (s *DescribeTaskOutput) SetCreationTime(v time.Time) *DescribeTaskOutput {
5954	s.CreationTime = &v
5955	return s
5956}
5957
5958// SetCurrentTaskExecutionArn sets the CurrentTaskExecutionArn field's value.
5959func (s *DescribeTaskOutput) SetCurrentTaskExecutionArn(v string) *DescribeTaskOutput {
5960	s.CurrentTaskExecutionArn = &v
5961	return s
5962}
5963
5964// SetDestinationLocationArn sets the DestinationLocationArn field's value.
5965func (s *DescribeTaskOutput) SetDestinationLocationArn(v string) *DescribeTaskOutput {
5966	s.DestinationLocationArn = &v
5967	return s
5968}
5969
5970// SetDestinationNetworkInterfaceArns sets the DestinationNetworkInterfaceArns field's value.
5971func (s *DescribeTaskOutput) SetDestinationNetworkInterfaceArns(v []*string) *DescribeTaskOutput {
5972	s.DestinationNetworkInterfaceArns = v
5973	return s
5974}
5975
5976// SetErrorCode sets the ErrorCode field's value.
5977func (s *DescribeTaskOutput) SetErrorCode(v string) *DescribeTaskOutput {
5978	s.ErrorCode = &v
5979	return s
5980}
5981
5982// SetErrorDetail sets the ErrorDetail field's value.
5983func (s *DescribeTaskOutput) SetErrorDetail(v string) *DescribeTaskOutput {
5984	s.ErrorDetail = &v
5985	return s
5986}
5987
5988// SetExcludes sets the Excludes field's value.
5989func (s *DescribeTaskOutput) SetExcludes(v []*FilterRule) *DescribeTaskOutput {
5990	s.Excludes = v
5991	return s
5992}
5993
5994// SetName sets the Name field's value.
5995func (s *DescribeTaskOutput) SetName(v string) *DescribeTaskOutput {
5996	s.Name = &v
5997	return s
5998}
5999
6000// SetOptions sets the Options field's value.
6001func (s *DescribeTaskOutput) SetOptions(v *Options) *DescribeTaskOutput {
6002	s.Options = v
6003	return s
6004}
6005
6006// SetSchedule sets the Schedule field's value.
6007func (s *DescribeTaskOutput) SetSchedule(v *TaskSchedule) *DescribeTaskOutput {
6008	s.Schedule = v
6009	return s
6010}
6011
6012// SetSourceLocationArn sets the SourceLocationArn field's value.
6013func (s *DescribeTaskOutput) SetSourceLocationArn(v string) *DescribeTaskOutput {
6014	s.SourceLocationArn = &v
6015	return s
6016}
6017
6018// SetSourceNetworkInterfaceArns sets the SourceNetworkInterfaceArns field's value.
6019func (s *DescribeTaskOutput) SetSourceNetworkInterfaceArns(v []*string) *DescribeTaskOutput {
6020	s.SourceNetworkInterfaceArns = v
6021	return s
6022}
6023
6024// SetStatus sets the Status field's value.
6025func (s *DescribeTaskOutput) SetStatus(v string) *DescribeTaskOutput {
6026	s.Status = &v
6027	return s
6028}
6029
6030// SetTaskArn sets the TaskArn field's value.
6031func (s *DescribeTaskOutput) SetTaskArn(v string) *DescribeTaskOutput {
6032	s.TaskArn = &v
6033	return s
6034}
6035
6036// The subnet and the security group that DataSync uses to access target EFS
6037// file system. The subnet must have at least one mount target for that file
6038// system. The security group that you provide needs to be able to communicate
6039// with the security group on the mount target in the subnet specified.
6040type Ec2Config struct {
6041	_ struct{} `type:"structure"`
6042
6043	// The Amazon Resource Names (ARNs) of the security groups that are configured
6044	// for the Amazon EC2 resource.
6045	//
6046	// SecurityGroupArns is a required field
6047	SecurityGroupArns []*string `min:"1" type:"list" required:"true"`
6048
6049	// The ARN of the subnet and the security group that DataSync uses to access
6050	// the target EFS file system.
6051	//
6052	// SubnetArn is a required field
6053	SubnetArn *string `type:"string" required:"true"`
6054}
6055
6056// String returns the string representation
6057func (s Ec2Config) String() string {
6058	return awsutil.Prettify(s)
6059}
6060
6061// GoString returns the string representation
6062func (s Ec2Config) GoString() string {
6063	return s.String()
6064}
6065
6066// Validate inspects the fields of the type to determine if they are valid.
6067func (s *Ec2Config) Validate() error {
6068	invalidParams := request.ErrInvalidParams{Context: "Ec2Config"}
6069	if s.SecurityGroupArns == nil {
6070		invalidParams.Add(request.NewErrParamRequired("SecurityGroupArns"))
6071	}
6072	if s.SecurityGroupArns != nil && len(s.SecurityGroupArns) < 1 {
6073		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupArns", 1))
6074	}
6075	if s.SubnetArn == nil {
6076		invalidParams.Add(request.NewErrParamRequired("SubnetArn"))
6077	}
6078
6079	if invalidParams.Len() > 0 {
6080		return invalidParams
6081	}
6082	return nil
6083}
6084
6085// SetSecurityGroupArns sets the SecurityGroupArns field's value.
6086func (s *Ec2Config) SetSecurityGroupArns(v []*string) *Ec2Config {
6087	s.SecurityGroupArns = v
6088	return s
6089}
6090
6091// SetSubnetArn sets the SubnetArn field's value.
6092func (s *Ec2Config) SetSubnetArn(v string) *Ec2Config {
6093	s.SubnetArn = &v
6094	return s
6095}
6096
6097// Specifies which files, folders and objects to include or exclude when transferring
6098// files from source to destination.
6099type FilterRule struct {
6100	_ struct{} `type:"structure"`
6101
6102	// The type of filter rule to apply. AWS DataSync only supports the SIMPLE_PATTERN
6103	// rule type.
6104	FilterType *string `type:"string" enum:"FilterType"`
6105
6106	// A single filter string that consists of the patterns to include or exclude.
6107	// The patterns are delimited by "|" (that is, a pipe), for example: /folder1|/folder2
6108	Value *string `type:"string"`
6109}
6110
6111// String returns the string representation
6112func (s FilterRule) String() string {
6113	return awsutil.Prettify(s)
6114}
6115
6116// GoString returns the string representation
6117func (s FilterRule) GoString() string {
6118	return s.String()
6119}
6120
6121// SetFilterType sets the FilterType field's value.
6122func (s *FilterRule) SetFilterType(v string) *FilterRule {
6123	s.FilterType = &v
6124	return s
6125}
6126
6127// SetValue sets the Value field's value.
6128func (s *FilterRule) SetValue(v string) *FilterRule {
6129	s.Value = &v
6130	return s
6131}
6132
6133// This exception is thrown when an error occurs in the AWS DataSync service.
6134type InternalException struct {
6135	_            struct{}                  `type:"structure"`
6136	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6137
6138	ErrorCode *string `locationName:"errorCode" type:"string"`
6139
6140	Message_ *string `locationName:"message" type:"string"`
6141}
6142
6143// String returns the string representation
6144func (s InternalException) String() string {
6145	return awsutil.Prettify(s)
6146}
6147
6148// GoString returns the string representation
6149func (s InternalException) GoString() string {
6150	return s.String()
6151}
6152
6153func newErrorInternalException(v protocol.ResponseMetadata) error {
6154	return &InternalException{
6155		RespMetadata: v,
6156	}
6157}
6158
6159// Code returns the exception type name.
6160func (s *InternalException) Code() string {
6161	return "InternalException"
6162}
6163
6164// Message returns the exception's message.
6165func (s *InternalException) Message() string {
6166	if s.Message_ != nil {
6167		return *s.Message_
6168	}
6169	return ""
6170}
6171
6172// OrigErr always returns nil, satisfies awserr.Error interface.
6173func (s *InternalException) OrigErr() error {
6174	return nil
6175}
6176
6177func (s *InternalException) Error() string {
6178	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6179}
6180
6181// Status code returns the HTTP status code for the request's response error.
6182func (s *InternalException) StatusCode() int {
6183	return s.RespMetadata.StatusCode
6184}
6185
6186// RequestID returns the service's response RequestID for request.
6187func (s *InternalException) RequestID() string {
6188	return s.RespMetadata.RequestID
6189}
6190
6191// This exception is thrown when the client submits a malformed request.
6192type InvalidRequestException struct {
6193	_            struct{}                  `type:"structure"`
6194	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6195
6196	ErrorCode *string `locationName:"errorCode" type:"string"`
6197
6198	Message_ *string `locationName:"message" type:"string"`
6199}
6200
6201// String returns the string representation
6202func (s InvalidRequestException) String() string {
6203	return awsutil.Prettify(s)
6204}
6205
6206// GoString returns the string representation
6207func (s InvalidRequestException) GoString() string {
6208	return s.String()
6209}
6210
6211func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
6212	return &InvalidRequestException{
6213		RespMetadata: v,
6214	}
6215}
6216
6217// Code returns the exception type name.
6218func (s *InvalidRequestException) Code() string {
6219	return "InvalidRequestException"
6220}
6221
6222// Message returns the exception's message.
6223func (s *InvalidRequestException) Message() string {
6224	if s.Message_ != nil {
6225		return *s.Message_
6226	}
6227	return ""
6228}
6229
6230// OrigErr always returns nil, satisfies awserr.Error interface.
6231func (s *InvalidRequestException) OrigErr() error {
6232	return nil
6233}
6234
6235func (s *InvalidRequestException) Error() string {
6236	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6237}
6238
6239// Status code returns the HTTP status code for the request's response error.
6240func (s *InvalidRequestException) StatusCode() int {
6241	return s.RespMetadata.StatusCode
6242}
6243
6244// RequestID returns the service's response RequestID for request.
6245func (s *InvalidRequestException) RequestID() string {
6246	return s.RespMetadata.RequestID
6247}
6248
6249// ListAgentsRequest
6250type ListAgentsInput struct {
6251	_ struct{} `type:"structure"`
6252
6253	// The maximum number of agents to list.
6254	MaxResults *int64 `type:"integer"`
6255
6256	// An opaque string that indicates the position at which to begin the next list
6257	// of agents.
6258	NextToken *string `type:"string"`
6259}
6260
6261// String returns the string representation
6262func (s ListAgentsInput) String() string {
6263	return awsutil.Prettify(s)
6264}
6265
6266// GoString returns the string representation
6267func (s ListAgentsInput) GoString() string {
6268	return s.String()
6269}
6270
6271// SetMaxResults sets the MaxResults field's value.
6272func (s *ListAgentsInput) SetMaxResults(v int64) *ListAgentsInput {
6273	s.MaxResults = &v
6274	return s
6275}
6276
6277// SetNextToken sets the NextToken field's value.
6278func (s *ListAgentsInput) SetNextToken(v string) *ListAgentsInput {
6279	s.NextToken = &v
6280	return s
6281}
6282
6283// ListAgentsResponse
6284type ListAgentsOutput struct {
6285	_ struct{} `type:"structure"`
6286
6287	// A list of agents in your account.
6288	Agents []*AgentListEntry `type:"list"`
6289
6290	// An opaque string that indicates the position at which to begin returning
6291	// the next list of agents.
6292	NextToken *string `type:"string"`
6293}
6294
6295// String returns the string representation
6296func (s ListAgentsOutput) String() string {
6297	return awsutil.Prettify(s)
6298}
6299
6300// GoString returns the string representation
6301func (s ListAgentsOutput) GoString() string {
6302	return s.String()
6303}
6304
6305// SetAgents sets the Agents field's value.
6306func (s *ListAgentsOutput) SetAgents(v []*AgentListEntry) *ListAgentsOutput {
6307	s.Agents = v
6308	return s
6309}
6310
6311// SetNextToken sets the NextToken field's value.
6312func (s *ListAgentsOutput) SetNextToken(v string) *ListAgentsOutput {
6313	s.NextToken = &v
6314	return s
6315}
6316
6317// ListLocationsRequest
6318type ListLocationsInput struct {
6319	_ struct{} `type:"structure"`
6320
6321	// You can use API filters to narrow down the list of resources returned by
6322	// ListLocations. For example, to retrieve all tasks on a specific source location,
6323	// you can use ListLocations with filter name LocationType S3 and Operator Equals.
6324	Filters []*LocationFilter `type:"list"`
6325
6326	// The maximum number of locations to return.
6327	MaxResults *int64 `type:"integer"`
6328
6329	// An opaque string that indicates the position at which to begin the next list
6330	// of locations.
6331	NextToken *string `type:"string"`
6332}
6333
6334// String returns the string representation
6335func (s ListLocationsInput) String() string {
6336	return awsutil.Prettify(s)
6337}
6338
6339// GoString returns the string representation
6340func (s ListLocationsInput) GoString() string {
6341	return s.String()
6342}
6343
6344// Validate inspects the fields of the type to determine if they are valid.
6345func (s *ListLocationsInput) Validate() error {
6346	invalidParams := request.ErrInvalidParams{Context: "ListLocationsInput"}
6347	if s.Filters != nil {
6348		for i, v := range s.Filters {
6349			if v == nil {
6350				continue
6351			}
6352			if err := v.Validate(); err != nil {
6353				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
6354			}
6355		}
6356	}
6357
6358	if invalidParams.Len() > 0 {
6359		return invalidParams
6360	}
6361	return nil
6362}
6363
6364// SetFilters sets the Filters field's value.
6365func (s *ListLocationsInput) SetFilters(v []*LocationFilter) *ListLocationsInput {
6366	s.Filters = v
6367	return s
6368}
6369
6370// SetMaxResults sets the MaxResults field's value.
6371func (s *ListLocationsInput) SetMaxResults(v int64) *ListLocationsInput {
6372	s.MaxResults = &v
6373	return s
6374}
6375
6376// SetNextToken sets the NextToken field's value.
6377func (s *ListLocationsInput) SetNextToken(v string) *ListLocationsInput {
6378	s.NextToken = &v
6379	return s
6380}
6381
6382// ListLocationsResponse
6383type ListLocationsOutput struct {
6384	_ struct{} `type:"structure"`
6385
6386	// An array that contains a list of locations.
6387	Locations []*LocationListEntry `type:"list"`
6388
6389	// An opaque string that indicates the position at which to begin returning
6390	// the next list of locations.
6391	NextToken *string `type:"string"`
6392}
6393
6394// String returns the string representation
6395func (s ListLocationsOutput) String() string {
6396	return awsutil.Prettify(s)
6397}
6398
6399// GoString returns the string representation
6400func (s ListLocationsOutput) GoString() string {
6401	return s.String()
6402}
6403
6404// SetLocations sets the Locations field's value.
6405func (s *ListLocationsOutput) SetLocations(v []*LocationListEntry) *ListLocationsOutput {
6406	s.Locations = v
6407	return s
6408}
6409
6410// SetNextToken sets the NextToken field's value.
6411func (s *ListLocationsOutput) SetNextToken(v string) *ListLocationsOutput {
6412	s.NextToken = &v
6413	return s
6414}
6415
6416// ListTagsForResourceRequest
6417type ListTagsForResourceInput struct {
6418	_ struct{} `type:"structure"`
6419
6420	// The maximum number of locations to return.
6421	MaxResults *int64 `type:"integer"`
6422
6423	// An opaque string that indicates the position at which to begin the next list
6424	// of locations.
6425	NextToken *string `type:"string"`
6426
6427	// The Amazon Resource Name (ARN) of the resource whose tags to list.
6428	//
6429	// ResourceArn is a required field
6430	ResourceArn *string `type:"string" required:"true"`
6431}
6432
6433// String returns the string representation
6434func (s ListTagsForResourceInput) String() string {
6435	return awsutil.Prettify(s)
6436}
6437
6438// GoString returns the string representation
6439func (s ListTagsForResourceInput) GoString() string {
6440	return s.String()
6441}
6442
6443// Validate inspects the fields of the type to determine if they are valid.
6444func (s *ListTagsForResourceInput) Validate() error {
6445	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
6446	if s.ResourceArn == nil {
6447		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6448	}
6449
6450	if invalidParams.Len() > 0 {
6451		return invalidParams
6452	}
6453	return nil
6454}
6455
6456// SetMaxResults sets the MaxResults field's value.
6457func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
6458	s.MaxResults = &v
6459	return s
6460}
6461
6462// SetNextToken sets the NextToken field's value.
6463func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
6464	s.NextToken = &v
6465	return s
6466}
6467
6468// SetResourceArn sets the ResourceArn field's value.
6469func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
6470	s.ResourceArn = &v
6471	return s
6472}
6473
6474// ListTagsForResourceResponse
6475type ListTagsForResourceOutput struct {
6476	_ struct{} `type:"structure"`
6477
6478	// An opaque string that indicates the position at which to begin returning
6479	// the next list of resource tags.
6480	NextToken *string `type:"string"`
6481
6482	// Array of resource tags.
6483	Tags []*TagListEntry `type:"list"`
6484}
6485
6486// String returns the string representation
6487func (s ListTagsForResourceOutput) String() string {
6488	return awsutil.Prettify(s)
6489}
6490
6491// GoString returns the string representation
6492func (s ListTagsForResourceOutput) GoString() string {
6493	return s.String()
6494}
6495
6496// SetNextToken sets the NextToken field's value.
6497func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
6498	s.NextToken = &v
6499	return s
6500}
6501
6502// SetTags sets the Tags field's value.
6503func (s *ListTagsForResourceOutput) SetTags(v []*TagListEntry) *ListTagsForResourceOutput {
6504	s.Tags = v
6505	return s
6506}
6507
6508// ListTaskExecutions
6509type ListTaskExecutionsInput struct {
6510	_ struct{} `type:"structure"`
6511
6512	// The maximum number of executed tasks to list.
6513	MaxResults *int64 `type:"integer"`
6514
6515	// An opaque string that indicates the position at which to begin the next list
6516	// of the executed tasks.
6517	NextToken *string `type:"string"`
6518
6519	// The Amazon Resource Name (ARN) of the task whose tasks you want to list.
6520	TaskArn *string `type:"string"`
6521}
6522
6523// String returns the string representation
6524func (s ListTaskExecutionsInput) String() string {
6525	return awsutil.Prettify(s)
6526}
6527
6528// GoString returns the string representation
6529func (s ListTaskExecutionsInput) GoString() string {
6530	return s.String()
6531}
6532
6533// SetMaxResults sets the MaxResults field's value.
6534func (s *ListTaskExecutionsInput) SetMaxResults(v int64) *ListTaskExecutionsInput {
6535	s.MaxResults = &v
6536	return s
6537}
6538
6539// SetNextToken sets the NextToken field's value.
6540func (s *ListTaskExecutionsInput) SetNextToken(v string) *ListTaskExecutionsInput {
6541	s.NextToken = &v
6542	return s
6543}
6544
6545// SetTaskArn sets the TaskArn field's value.
6546func (s *ListTaskExecutionsInput) SetTaskArn(v string) *ListTaskExecutionsInput {
6547	s.TaskArn = &v
6548	return s
6549}
6550
6551// ListTaskExecutionsResponse
6552type ListTaskExecutionsOutput struct {
6553	_ struct{} `type:"structure"`
6554
6555	// An opaque string that indicates the position at which to begin returning
6556	// the next list of executed tasks.
6557	NextToken *string `type:"string"`
6558
6559	// A list of executed tasks.
6560	TaskExecutions []*TaskExecutionListEntry `type:"list"`
6561}
6562
6563// String returns the string representation
6564func (s ListTaskExecutionsOutput) String() string {
6565	return awsutil.Prettify(s)
6566}
6567
6568// GoString returns the string representation
6569func (s ListTaskExecutionsOutput) GoString() string {
6570	return s.String()
6571}
6572
6573// SetNextToken sets the NextToken field's value.
6574func (s *ListTaskExecutionsOutput) SetNextToken(v string) *ListTaskExecutionsOutput {
6575	s.NextToken = &v
6576	return s
6577}
6578
6579// SetTaskExecutions sets the TaskExecutions field's value.
6580func (s *ListTaskExecutionsOutput) SetTaskExecutions(v []*TaskExecutionListEntry) *ListTaskExecutionsOutput {
6581	s.TaskExecutions = v
6582	return s
6583}
6584
6585// ListTasksRequest
6586type ListTasksInput struct {
6587	_ struct{} `type:"structure"`
6588
6589	// You can use API filters to narrow down the list of resources returned by
6590	// ListTasks. For example, to retrieve all tasks on a specific source location,
6591	// you can use ListTasks with filter name LocationId and Operator Equals with
6592	// the ARN for the location.
6593	Filters []*TaskFilter `type:"list"`
6594
6595	// The maximum number of tasks to return.
6596	MaxResults *int64 `type:"integer"`
6597
6598	// An opaque string that indicates the position at which to begin the next list
6599	// of tasks.
6600	NextToken *string `type:"string"`
6601}
6602
6603// String returns the string representation
6604func (s ListTasksInput) String() string {
6605	return awsutil.Prettify(s)
6606}
6607
6608// GoString returns the string representation
6609func (s ListTasksInput) GoString() string {
6610	return s.String()
6611}
6612
6613// Validate inspects the fields of the type to determine if they are valid.
6614func (s *ListTasksInput) Validate() error {
6615	invalidParams := request.ErrInvalidParams{Context: "ListTasksInput"}
6616	if s.Filters != nil {
6617		for i, v := range s.Filters {
6618			if v == nil {
6619				continue
6620			}
6621			if err := v.Validate(); err != nil {
6622				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
6623			}
6624		}
6625	}
6626
6627	if invalidParams.Len() > 0 {
6628		return invalidParams
6629	}
6630	return nil
6631}
6632
6633// SetFilters sets the Filters field's value.
6634func (s *ListTasksInput) SetFilters(v []*TaskFilter) *ListTasksInput {
6635	s.Filters = v
6636	return s
6637}
6638
6639// SetMaxResults sets the MaxResults field's value.
6640func (s *ListTasksInput) SetMaxResults(v int64) *ListTasksInput {
6641	s.MaxResults = &v
6642	return s
6643}
6644
6645// SetNextToken sets the NextToken field's value.
6646func (s *ListTasksInput) SetNextToken(v string) *ListTasksInput {
6647	s.NextToken = &v
6648	return s
6649}
6650
6651// ListTasksResponse
6652type ListTasksOutput struct {
6653	_ struct{} `type:"structure"`
6654
6655	// An opaque string that indicates the position at which to begin returning
6656	// the next list of tasks.
6657	NextToken *string `type:"string"`
6658
6659	// A list of all the tasks that are returned.
6660	Tasks []*TaskListEntry `type:"list"`
6661}
6662
6663// String returns the string representation
6664func (s ListTasksOutput) String() string {
6665	return awsutil.Prettify(s)
6666}
6667
6668// GoString returns the string representation
6669func (s ListTasksOutput) GoString() string {
6670	return s.String()
6671}
6672
6673// SetNextToken sets the NextToken field's value.
6674func (s *ListTasksOutput) SetNextToken(v string) *ListTasksOutput {
6675	s.NextToken = &v
6676	return s
6677}
6678
6679// SetTasks sets the Tasks field's value.
6680func (s *ListTasksOutput) SetTasks(v []*TaskListEntry) *ListTasksOutput {
6681	s.Tasks = v
6682	return s
6683}
6684
6685// You can use API filters to narrow down the list of resources returned by
6686// ListLocations. For example, to retrieve all your Amazon S3 locations, you
6687// can use ListLocations with filter name LocationType S3 and Operator Equals.
6688type LocationFilter struct {
6689	_ struct{} `type:"structure"`
6690
6691	// The name of the filter being used. Each API call supports a list of filters
6692	// that are available for it (for example, LocationType for ListLocations).
6693	//
6694	// Name is a required field
6695	Name *string `type:"string" required:"true" enum:"LocationFilterName"`
6696
6697	// The operator that is used to compare filter values (for example, Equals or
6698	// Contains). For more about API filtering operators, see query-resources.
6699	//
6700	// Operator is a required field
6701	Operator *string `type:"string" required:"true" enum:"Operator"`
6702
6703	// The values that you want to filter for. For example, you might want to display
6704	// only Amazon S3 locations.
6705	//
6706	// Values is a required field
6707	Values []*string `type:"list" required:"true"`
6708}
6709
6710// String returns the string representation
6711func (s LocationFilter) String() string {
6712	return awsutil.Prettify(s)
6713}
6714
6715// GoString returns the string representation
6716func (s LocationFilter) GoString() string {
6717	return s.String()
6718}
6719
6720// Validate inspects the fields of the type to determine if they are valid.
6721func (s *LocationFilter) Validate() error {
6722	invalidParams := request.ErrInvalidParams{Context: "LocationFilter"}
6723	if s.Name == nil {
6724		invalidParams.Add(request.NewErrParamRequired("Name"))
6725	}
6726	if s.Operator == nil {
6727		invalidParams.Add(request.NewErrParamRequired("Operator"))
6728	}
6729	if s.Values == nil {
6730		invalidParams.Add(request.NewErrParamRequired("Values"))
6731	}
6732
6733	if invalidParams.Len() > 0 {
6734		return invalidParams
6735	}
6736	return nil
6737}
6738
6739// SetName sets the Name field's value.
6740func (s *LocationFilter) SetName(v string) *LocationFilter {
6741	s.Name = &v
6742	return s
6743}
6744
6745// SetOperator sets the Operator field's value.
6746func (s *LocationFilter) SetOperator(v string) *LocationFilter {
6747	s.Operator = &v
6748	return s
6749}
6750
6751// SetValues sets the Values field's value.
6752func (s *LocationFilter) SetValues(v []*string) *LocationFilter {
6753	s.Values = v
6754	return s
6755}
6756
6757// Represents a single entry in a list of locations. LocationListEntry returns
6758// an array that contains a list of locations when the ListLocations operation
6759// is called.
6760type LocationListEntry struct {
6761	_ struct{} `type:"structure"`
6762
6763	// The Amazon Resource Name (ARN) of the location. For Network File System (NFS)
6764	// or Amazon EFS, the location is the export path. For Amazon S3, the location
6765	// is the prefix path that you want to mount and use as the root of the location.
6766	LocationArn *string `type:"string"`
6767
6768	// Represents a list of URLs of a location. LocationUri returns an array that
6769	// contains a list of locations when the ListLocations operation is called.
6770	//
6771	// Format: TYPE://GLOBAL_ID/SUBDIR.
6772	//
6773	// TYPE designates the type of location. Valid values: NFS | EFS | S3.
6774	//
6775	// GLOBAL_ID is the globally unique identifier of the resource that backs the
6776	// location. An example for EFS is us-east-2.fs-abcd1234. An example for Amazon
6777	// S3 is the bucket name, such as myBucket. An example for NFS is a valid IPv4
6778	// address or a host name compliant with Domain Name Service (DNS).
6779	//
6780	// SUBDIR is a valid file system path, delimited by forward slashes as is the
6781	// *nix convention. For NFS and Amazon EFS, it's the export path to mount the
6782	// location. For Amazon S3, it's the prefix path that you mount to and treat
6783	// as the root of the location.
6784	LocationUri *string `type:"string"`
6785}
6786
6787// String returns the string representation
6788func (s LocationListEntry) String() string {
6789	return awsutil.Prettify(s)
6790}
6791
6792// GoString returns the string representation
6793func (s LocationListEntry) GoString() string {
6794	return s.String()
6795}
6796
6797// SetLocationArn sets the LocationArn field's value.
6798func (s *LocationListEntry) SetLocationArn(v string) *LocationListEntry {
6799	s.LocationArn = &v
6800	return s
6801}
6802
6803// SetLocationUri sets the LocationUri field's value.
6804func (s *LocationListEntry) SetLocationUri(v string) *LocationListEntry {
6805	s.LocationUri = &v
6806	return s
6807}
6808
6809// Represents the mount options that are available for DataSync to access an
6810// NFS location.
6811type NfsMountOptions struct {
6812	_ struct{} `type:"structure"`
6813
6814	// The specific NFS version that you want DataSync to use to mount your NFS
6815	// share. If the server refuses to use the version specified, the sync will
6816	// fail. If you don't specify a version, DataSync defaults to AUTOMATIC. That
6817	// is, DataSync automatically selects a version based on negotiation with the
6818	// NFS server.
6819	//
6820	// You can specify the following NFS versions:
6821	//
6822	//    * NFSv3 (https://tools.ietf.org/html/rfc1813) - stateless protocol version
6823	//    that allows for asynchronous writes on the server.
6824	//
6825	//    * NFSv4.0 (https://tools.ietf.org/html/rfc3530) - stateful, firewall-friendly
6826	//    protocol version that supports delegations and pseudo filesystems.
6827	//
6828	//    * NFSv4.1 (https://tools.ietf.org/html/rfc5661) - stateful protocol version
6829	//    that supports sessions, directory delegations, and parallel data processing.
6830	//    Version 4.1 also includes all features available in version 4.0.
6831	Version *string `type:"string" enum:"NfsVersion"`
6832}
6833
6834// String returns the string representation
6835func (s NfsMountOptions) String() string {
6836	return awsutil.Prettify(s)
6837}
6838
6839// GoString returns the string representation
6840func (s NfsMountOptions) GoString() string {
6841	return s.String()
6842}
6843
6844// SetVersion sets the Version field's value.
6845func (s *NfsMountOptions) SetVersion(v string) *NfsMountOptions {
6846	s.Version = &v
6847	return s
6848}
6849
6850// A list of Amazon Resource Names (ARNs) of agents to use for a Network File
6851// System (NFS) location.
6852type OnPremConfig struct {
6853	_ struct{} `type:"structure"`
6854
6855	// ARNs of the agents to use for an NFS location.
6856	//
6857	// AgentArns is a required field
6858	AgentArns []*string `min:"1" type:"list" required:"true"`
6859}
6860
6861// String returns the string representation
6862func (s OnPremConfig) String() string {
6863	return awsutil.Prettify(s)
6864}
6865
6866// GoString returns the string representation
6867func (s OnPremConfig) GoString() string {
6868	return s.String()
6869}
6870
6871// Validate inspects the fields of the type to determine if they are valid.
6872func (s *OnPremConfig) Validate() error {
6873	invalidParams := request.ErrInvalidParams{Context: "OnPremConfig"}
6874	if s.AgentArns == nil {
6875		invalidParams.Add(request.NewErrParamRequired("AgentArns"))
6876	}
6877	if s.AgentArns != nil && len(s.AgentArns) < 1 {
6878		invalidParams.Add(request.NewErrParamMinLen("AgentArns", 1))
6879	}
6880
6881	if invalidParams.Len() > 0 {
6882		return invalidParams
6883	}
6884	return nil
6885}
6886
6887// SetAgentArns sets the AgentArns field's value.
6888func (s *OnPremConfig) SetAgentArns(v []*string) *OnPremConfig {
6889	s.AgentArns = v
6890	return s
6891}
6892
6893// Represents the options that are available to control the behavior of a StartTaskExecution
6894// operation. Behavior includes preserving metadata such as user ID (UID), group
6895// ID (GID), and file permissions, and also overwriting files in the destination,
6896// data integrity verification, and so on.
6897//
6898// A task has a set of default options associated with it. If you don't specify
6899// an option in StartTaskExecution, the default value is used. You can override
6900// the defaults options on each task execution by specifying an overriding Options
6901// value to StartTaskExecution.
6902type Options struct {
6903	_ struct{} `type:"structure"`
6904
6905	// A file metadata value that shows the last time a file was accessed (that
6906	// is, when the file was read or written to). If you set Atime to BEST_EFFORT,
6907	// DataSync attempts to preserve the original Atime attribute on all source
6908	// files (that is, the version before the PREPARING phase). However, Atime's
6909	// behavior is not fully standard across platforms, so AWS DataSync can only
6910	// do this on a best-effort basis.
6911	//
6912	// Default value: BEST_EFFORT.
6913	//
6914	// BEST_EFFORT: Attempt to preserve the per-file Atime value (recommended).
6915	//
6916	// NONE: Ignore Atime.
6917	//
6918	// If Atime is set to BEST_EFFORT, Mtime must be set to PRESERVE.
6919	//
6920	// If Atime is set to NONE, Mtime must also be NONE.
6921	Atime *string `type:"string" enum:"Atime"`
6922
6923	// A value that limits the bandwidth used by AWS DataSync. For example, if you
6924	// want AWS DataSync to use a maximum of 1 MB, set this value to 1048576 (=1024*1024).
6925	BytesPerSecond *int64 `type:"long"`
6926
6927	// The group ID (GID) of the file's owners.
6928	//
6929	// Default value: INT_VALUE. This preserves the integer value of the ID.
6930	//
6931	// INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended).
6932	//
6933	// NONE: Ignore UID and GID.
6934	Gid *string `type:"string" enum:"Gid"`
6935
6936	// A value that determines the type of logs that DataSync publishes to a log
6937	// stream in the Amazon CloudWatch log group that you provide. For more information
6938	// about providing a log group for DataSync, see CloudWatchLogGroupArn (https://docs.aws.amazon.com/datasync/latest/userguide/API_CreateTask.html#DataSync-CreateTask-request-CloudWatchLogGroupArn).
6939	// If set to OFF, no logs are published. BASIC publishes logs on errors for
6940	// individual files transferred, and TRANSFER publishes logs for every file
6941	// or object that is transferred and integrity checked.
6942	LogLevel *string `type:"string" enum:"LogLevel"`
6943
6944	// A value that indicates the last time that a file was modified (that is, a
6945	// file was written to) before the PREPARING phase.
6946	//
6947	// Default value: PRESERVE.
6948	//
6949	// PRESERVE: Preserve original Mtime (recommended)
6950	//
6951	// NONE: Ignore Mtime.
6952	//
6953	// If Mtime is set to PRESERVE, Atime must be set to BEST_EFFORT.
6954	//
6955	// If Mtime is set to NONE, Atime must also be set to NONE.
6956	Mtime *string `type:"string" enum:"Mtime"`
6957
6958	// A value that determines whether files at the destination should be overwritten
6959	// or preserved when copying files. If set to NEVER a destination file will
6960	// not be replaced by a source file, even if the destination file differs from
6961	// the source file. If you modify files in the destination and you sync the
6962	// files, you can use this value to protect against overwriting those changes.
6963	//
6964	// Some storage classes have specific behaviors that can affect your S3 storage
6965	// cost. For detailed information, see using-storage-classes in the AWS DataSync
6966	// User Guide.
6967	OverwriteMode *string `type:"string" enum:"OverwriteMode"`
6968
6969	// A value that determines which users or groups can access a file for a specific
6970	// purpose such as reading, writing, or execution of the file.
6971	//
6972	// Default value: PRESERVE.
6973	//
6974	// PRESERVE: Preserve POSIX-style permissions (recommended).
6975	//
6976	// NONE: Ignore permissions.
6977	//
6978	// AWS DataSync can preserve extant permissions of a source location.
6979	PosixPermissions *string `type:"string" enum:"PosixPermissions"`
6980
6981	// A value that specifies whether files in the destination that don't exist
6982	// in the source file system should be preserved. This option can affect your
6983	// storage cost. If your task deletes objects, you might incur minimum storage
6984	// duration charges for certain storage classes. For detailed information, see
6985	// using-storage-classes in the AWS DataSync User Guide.
6986	//
6987	// Default value: PRESERVE.
6988	//
6989	// PRESERVE: Ignore such destination files (recommended).
6990	//
6991	// REMOVE: Delete destination files that aren’t present in the source.
6992	PreserveDeletedFiles *string `type:"string" enum:"PreserveDeletedFiles"`
6993
6994	// A value that determines whether AWS DataSync should preserve the metadata
6995	// of block and character devices in the source file system, and recreate the
6996	// files with that device name and metadata on the destination.
6997	//
6998	// AWS DataSync can't sync the actual contents of such devices, because they
6999	// are nonterminal and don't return an end-of-file (EOF) marker.
7000	//
7001	// Default value: NONE.
7002	//
7003	// NONE: Ignore special devices (recommended).
7004	//
7005	// PRESERVE: Preserve character and block device metadata. This option isn't
7006	// currently supported for Amazon EFS.
7007	PreserveDevices *string `type:"string" enum:"PreserveDevices"`
7008
7009	// A value that determines whether tasks should be queued before executing the
7010	// tasks. If set to ENABLED, the tasks will be queued. The default is ENABLED.
7011	//
7012	// If you use the same agent to run multiple tasks, you can enable the tasks
7013	// to run in series. For more information, see queue-task-execution.
7014	TaskQueueing *string `type:"string" enum:"TaskQueueing"`
7015
7016	// A value that determines whether DataSync transfers only the data and metadata
7017	// that differ between the source and the destination location, or whether DataSync
7018	// transfers all the content from the source, without comparing to the destination
7019	// location.
7020	//
7021	// CHANGED: DataSync copies only data or metadata that is new or different content
7022	// from the source location to the destination location.
7023	//
7024	// ALL: DataSync copies all source location content to the destination, without
7025	// comparing to existing content on the destination.
7026	TransferMode *string `type:"string" enum:"TransferMode"`
7027
7028	// The user ID (UID) of the file's owner.
7029	//
7030	// Default value: INT_VALUE. This preserves the integer value of the ID.
7031	//
7032	// INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended).
7033	//
7034	// NONE: Ignore UID and GID.
7035	Uid *string `type:"string" enum:"Uid"`
7036
7037	// A value that determines whether a data integrity verification should be performed
7038	// at the end of a task execution after all data and metadata have been transferred.
7039	// For more information, see create-task
7040	//
7041	// Default value: POINT_IN_TIME_CONSISTENT.
7042	//
7043	// ONLY_FILES_TRANSFERRED (recommended): Perform verification only on files
7044	// that were transferred.
7045	//
7046	// POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at
7047	// the end of the transfer to verify that source and destination are fully synchronized.
7048	// This option isn't supported when transferring to S3 Glacier or S3 Glacier
7049	// Deep Archive storage classes.
7050	//
7051	// NONE: No additional verification is done at the end of the transfer, but
7052	// all data transmissions are integrity-checked with checksum verification during
7053	// the transfer.
7054	VerifyMode *string `type:"string" enum:"VerifyMode"`
7055}
7056
7057// String returns the string representation
7058func (s Options) String() string {
7059	return awsutil.Prettify(s)
7060}
7061
7062// GoString returns the string representation
7063func (s Options) GoString() string {
7064	return s.String()
7065}
7066
7067// Validate inspects the fields of the type to determine if they are valid.
7068func (s *Options) Validate() error {
7069	invalidParams := request.ErrInvalidParams{Context: "Options"}
7070	if s.BytesPerSecond != nil && *s.BytesPerSecond < -1 {
7071		invalidParams.Add(request.NewErrParamMinValue("BytesPerSecond", -1))
7072	}
7073
7074	if invalidParams.Len() > 0 {
7075		return invalidParams
7076	}
7077	return nil
7078}
7079
7080// SetAtime sets the Atime field's value.
7081func (s *Options) SetAtime(v string) *Options {
7082	s.Atime = &v
7083	return s
7084}
7085
7086// SetBytesPerSecond sets the BytesPerSecond field's value.
7087func (s *Options) SetBytesPerSecond(v int64) *Options {
7088	s.BytesPerSecond = &v
7089	return s
7090}
7091
7092// SetGid sets the Gid field's value.
7093func (s *Options) SetGid(v string) *Options {
7094	s.Gid = &v
7095	return s
7096}
7097
7098// SetLogLevel sets the LogLevel field's value.
7099func (s *Options) SetLogLevel(v string) *Options {
7100	s.LogLevel = &v
7101	return s
7102}
7103
7104// SetMtime sets the Mtime field's value.
7105func (s *Options) SetMtime(v string) *Options {
7106	s.Mtime = &v
7107	return s
7108}
7109
7110// SetOverwriteMode sets the OverwriteMode field's value.
7111func (s *Options) SetOverwriteMode(v string) *Options {
7112	s.OverwriteMode = &v
7113	return s
7114}
7115
7116// SetPosixPermissions sets the PosixPermissions field's value.
7117func (s *Options) SetPosixPermissions(v string) *Options {
7118	s.PosixPermissions = &v
7119	return s
7120}
7121
7122// SetPreserveDeletedFiles sets the PreserveDeletedFiles field's value.
7123func (s *Options) SetPreserveDeletedFiles(v string) *Options {
7124	s.PreserveDeletedFiles = &v
7125	return s
7126}
7127
7128// SetPreserveDevices sets the PreserveDevices field's value.
7129func (s *Options) SetPreserveDevices(v string) *Options {
7130	s.PreserveDevices = &v
7131	return s
7132}
7133
7134// SetTaskQueueing sets the TaskQueueing field's value.
7135func (s *Options) SetTaskQueueing(v string) *Options {
7136	s.TaskQueueing = &v
7137	return s
7138}
7139
7140// SetTransferMode sets the TransferMode field's value.
7141func (s *Options) SetTransferMode(v string) *Options {
7142	s.TransferMode = &v
7143	return s
7144}
7145
7146// SetUid sets the Uid field's value.
7147func (s *Options) SetUid(v string) *Options {
7148	s.Uid = &v
7149	return s
7150}
7151
7152// SetVerifyMode sets the VerifyMode field's value.
7153func (s *Options) SetVerifyMode(v string) *Options {
7154	s.VerifyMode = &v
7155	return s
7156}
7157
7158// The VPC endpoint, subnet, and security group that an agent uses to access
7159// IP addresses in a VPC (Virtual Private Cloud).
7160type PrivateLinkConfig struct {
7161	_ struct{} `type:"structure"`
7162
7163	// The private endpoint that is configured for an agent that has access to IP
7164	// addresses in a PrivateLink (https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-service.html).
7165	// An agent that is configured with this endpoint will not be accessible over
7166	// the public internet.
7167	PrivateLinkEndpoint *string `min:"7" type:"string"`
7168
7169	// The Amazon Resource Names (ARNs) of the security groups that are configured
7170	// for the EC2 resource that hosts an agent activated in a VPC or an agent that
7171	// has access to a VPC endpoint.
7172	SecurityGroupArns []*string `min:"1" type:"list"`
7173
7174	// The Amazon Resource Names (ARNs) of the subnets that are configured for an
7175	// agent activated in a VPC or an agent that has access to a VPC endpoint.
7176	SubnetArns []*string `min:"1" type:"list"`
7177
7178	// The ID of the VPC endpoint that is configured for an agent. An agent that
7179	// is configured with a VPC endpoint will not be accessible over the public
7180	// internet.
7181	VpcEndpointId *string `type:"string"`
7182}
7183
7184// String returns the string representation
7185func (s PrivateLinkConfig) String() string {
7186	return awsutil.Prettify(s)
7187}
7188
7189// GoString returns the string representation
7190func (s PrivateLinkConfig) GoString() string {
7191	return s.String()
7192}
7193
7194// SetPrivateLinkEndpoint sets the PrivateLinkEndpoint field's value.
7195func (s *PrivateLinkConfig) SetPrivateLinkEndpoint(v string) *PrivateLinkConfig {
7196	s.PrivateLinkEndpoint = &v
7197	return s
7198}
7199
7200// SetSecurityGroupArns sets the SecurityGroupArns field's value.
7201func (s *PrivateLinkConfig) SetSecurityGroupArns(v []*string) *PrivateLinkConfig {
7202	s.SecurityGroupArns = v
7203	return s
7204}
7205
7206// SetSubnetArns sets the SubnetArns field's value.
7207func (s *PrivateLinkConfig) SetSubnetArns(v []*string) *PrivateLinkConfig {
7208	s.SubnetArns = v
7209	return s
7210}
7211
7212// SetVpcEndpointId sets the VpcEndpointId field's value.
7213func (s *PrivateLinkConfig) SetVpcEndpointId(v string) *PrivateLinkConfig {
7214	s.VpcEndpointId = &v
7215	return s
7216}
7217
7218// The Amazon Resource Name (ARN) of the AWS Identity and Access Management
7219// (IAM) role that is used to access an Amazon S3 bucket.
7220//
7221// For detailed information about using such a role, see Creating a Location
7222// for Amazon S3 in the AWS DataSync User Guide.
7223type S3Config struct {
7224	_ struct{} `type:"structure"`
7225
7226	// The Amazon S3 bucket to access. This bucket is used as a parameter in the
7227	// CreateLocationS3 operation.
7228	//
7229	// BucketAccessRoleArn is a required field
7230	BucketAccessRoleArn *string `type:"string" required:"true"`
7231}
7232
7233// String returns the string representation
7234func (s S3Config) String() string {
7235	return awsutil.Prettify(s)
7236}
7237
7238// GoString returns the string representation
7239func (s S3Config) GoString() string {
7240	return s.String()
7241}
7242
7243// Validate inspects the fields of the type to determine if they are valid.
7244func (s *S3Config) Validate() error {
7245	invalidParams := request.ErrInvalidParams{Context: "S3Config"}
7246	if s.BucketAccessRoleArn == nil {
7247		invalidParams.Add(request.NewErrParamRequired("BucketAccessRoleArn"))
7248	}
7249
7250	if invalidParams.Len() > 0 {
7251		return invalidParams
7252	}
7253	return nil
7254}
7255
7256// SetBucketAccessRoleArn sets the BucketAccessRoleArn field's value.
7257func (s *S3Config) SetBucketAccessRoleArn(v string) *S3Config {
7258	s.BucketAccessRoleArn = &v
7259	return s
7260}
7261
7262// Represents the mount options that are available for DataSync to access an
7263// SMB location.
7264type SmbMountOptions struct {
7265	_ struct{} `type:"structure"`
7266
7267	// The specific SMB version that you want DataSync to use to mount your SMB
7268	// share. If you don't specify a version, DataSync defaults to AUTOMATIC. That
7269	// is, DataSync automatically selects a version based on negotiation with the
7270	// SMB server.
7271	Version *string `type:"string" enum:"SmbVersion"`
7272}
7273
7274// String returns the string representation
7275func (s SmbMountOptions) String() string {
7276	return awsutil.Prettify(s)
7277}
7278
7279// GoString returns the string representation
7280func (s SmbMountOptions) GoString() string {
7281	return s.String()
7282}
7283
7284// SetVersion sets the Version field's value.
7285func (s *SmbMountOptions) SetVersion(v string) *SmbMountOptions {
7286	s.Version = &v
7287	return s
7288}
7289
7290// StartTaskExecutionRequest
7291type StartTaskExecutionInput struct {
7292	_ struct{} `type:"structure"`
7293
7294	// A list of filter rules that determines which files to include when running
7295	// a task. The pattern should contain a single filter string that consists of
7296	// the patterns to include. The patterns are delimited by "|" (that is, a pipe).
7297	// For example: "/folder1|/folder2"
7298	Includes []*FilterRule `type:"list"`
7299
7300	// Represents the options that are available to control the behavior of a StartTaskExecution
7301	// operation. Behavior includes preserving metadata such as user ID (UID), group
7302	// ID (GID), and file permissions, and also overwriting files in the destination,
7303	// data integrity verification, and so on.
7304	//
7305	// A task has a set of default options associated with it. If you don't specify
7306	// an option in StartTaskExecution, the default value is used. You can override
7307	// the defaults options on each task execution by specifying an overriding Options
7308	// value to StartTaskExecution.
7309	OverrideOptions *Options `type:"structure"`
7310
7311	// The Amazon Resource Name (ARN) of the task to start.
7312	//
7313	// TaskArn is a required field
7314	TaskArn *string `type:"string" required:"true"`
7315}
7316
7317// String returns the string representation
7318func (s StartTaskExecutionInput) String() string {
7319	return awsutil.Prettify(s)
7320}
7321
7322// GoString returns the string representation
7323func (s StartTaskExecutionInput) GoString() string {
7324	return s.String()
7325}
7326
7327// Validate inspects the fields of the type to determine if they are valid.
7328func (s *StartTaskExecutionInput) Validate() error {
7329	invalidParams := request.ErrInvalidParams{Context: "StartTaskExecutionInput"}
7330	if s.TaskArn == nil {
7331		invalidParams.Add(request.NewErrParamRequired("TaskArn"))
7332	}
7333	if s.OverrideOptions != nil {
7334		if err := s.OverrideOptions.Validate(); err != nil {
7335			invalidParams.AddNested("OverrideOptions", err.(request.ErrInvalidParams))
7336		}
7337	}
7338
7339	if invalidParams.Len() > 0 {
7340		return invalidParams
7341	}
7342	return nil
7343}
7344
7345// SetIncludes sets the Includes field's value.
7346func (s *StartTaskExecutionInput) SetIncludes(v []*FilterRule) *StartTaskExecutionInput {
7347	s.Includes = v
7348	return s
7349}
7350
7351// SetOverrideOptions sets the OverrideOptions field's value.
7352func (s *StartTaskExecutionInput) SetOverrideOptions(v *Options) *StartTaskExecutionInput {
7353	s.OverrideOptions = v
7354	return s
7355}
7356
7357// SetTaskArn sets the TaskArn field's value.
7358func (s *StartTaskExecutionInput) SetTaskArn(v string) *StartTaskExecutionInput {
7359	s.TaskArn = &v
7360	return s
7361}
7362
7363// StartTaskExecutionResponse
7364type StartTaskExecutionOutput struct {
7365	_ struct{} `type:"structure"`
7366
7367	// The Amazon Resource Name (ARN) of the specific task execution that was started.
7368	TaskExecutionArn *string `type:"string"`
7369}
7370
7371// String returns the string representation
7372func (s StartTaskExecutionOutput) String() string {
7373	return awsutil.Prettify(s)
7374}
7375
7376// GoString returns the string representation
7377func (s StartTaskExecutionOutput) GoString() string {
7378	return s.String()
7379}
7380
7381// SetTaskExecutionArn sets the TaskExecutionArn field's value.
7382func (s *StartTaskExecutionOutput) SetTaskExecutionArn(v string) *StartTaskExecutionOutput {
7383	s.TaskExecutionArn = &v
7384	return s
7385}
7386
7387// Represents a single entry in a list of AWS resource tags. TagListEntry returns
7388// an array that contains a list of tasks when the ListTagsForResource operation
7389// is called.
7390type TagListEntry struct {
7391	_ struct{} `type:"structure"`
7392
7393	// The key for an AWS resource tag.
7394	//
7395	// Key is a required field
7396	Key *string `min:"1" type:"string" required:"true"`
7397
7398	// The value for an AWS resource tag.
7399	Value *string `min:"1" type:"string"`
7400}
7401
7402// String returns the string representation
7403func (s TagListEntry) String() string {
7404	return awsutil.Prettify(s)
7405}
7406
7407// GoString returns the string representation
7408func (s TagListEntry) GoString() string {
7409	return s.String()
7410}
7411
7412// Validate inspects the fields of the type to determine if they are valid.
7413func (s *TagListEntry) Validate() error {
7414	invalidParams := request.ErrInvalidParams{Context: "TagListEntry"}
7415	if s.Key == nil {
7416		invalidParams.Add(request.NewErrParamRequired("Key"))
7417	}
7418	if s.Key != nil && len(*s.Key) < 1 {
7419		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
7420	}
7421	if s.Value != nil && len(*s.Value) < 1 {
7422		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
7423	}
7424
7425	if invalidParams.Len() > 0 {
7426		return invalidParams
7427	}
7428	return nil
7429}
7430
7431// SetKey sets the Key field's value.
7432func (s *TagListEntry) SetKey(v string) *TagListEntry {
7433	s.Key = &v
7434	return s
7435}
7436
7437// SetValue sets the Value field's value.
7438func (s *TagListEntry) SetValue(v string) *TagListEntry {
7439	s.Value = &v
7440	return s
7441}
7442
7443// TagResourceRequest
7444type TagResourceInput struct {
7445	_ struct{} `type:"structure"`
7446
7447	// The Amazon Resource Name (ARN) of the resource to apply the tag to.
7448	//
7449	// ResourceArn is a required field
7450	ResourceArn *string `type:"string" required:"true"`
7451
7452	// The tags to apply.
7453	//
7454	// Tags is a required field
7455	Tags []*TagListEntry `type:"list" required:"true"`
7456}
7457
7458// String returns the string representation
7459func (s TagResourceInput) String() string {
7460	return awsutil.Prettify(s)
7461}
7462
7463// GoString returns the string representation
7464func (s TagResourceInput) GoString() string {
7465	return s.String()
7466}
7467
7468// Validate inspects the fields of the type to determine if they are valid.
7469func (s *TagResourceInput) Validate() error {
7470	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
7471	if s.ResourceArn == nil {
7472		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7473	}
7474	if s.Tags == nil {
7475		invalidParams.Add(request.NewErrParamRequired("Tags"))
7476	}
7477	if s.Tags != nil {
7478		for i, v := range s.Tags {
7479			if v == nil {
7480				continue
7481			}
7482			if err := v.Validate(); err != nil {
7483				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7484			}
7485		}
7486	}
7487
7488	if invalidParams.Len() > 0 {
7489		return invalidParams
7490	}
7491	return nil
7492}
7493
7494// SetResourceArn sets the ResourceArn field's value.
7495func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
7496	s.ResourceArn = &v
7497	return s
7498}
7499
7500// SetTags sets the Tags field's value.
7501func (s *TagResourceInput) SetTags(v []*TagListEntry) *TagResourceInput {
7502	s.Tags = v
7503	return s
7504}
7505
7506type TagResourceOutput struct {
7507	_ struct{} `type:"structure"`
7508}
7509
7510// String returns the string representation
7511func (s TagResourceOutput) String() string {
7512	return awsutil.Prettify(s)
7513}
7514
7515// GoString returns the string representation
7516func (s TagResourceOutput) GoString() string {
7517	return s.String()
7518}
7519
7520// Represents a single entry in a list of task executions. TaskExecutionListEntry
7521// returns an array that contains a list of specific invocations of a task when
7522// ListTaskExecutions operation is called.
7523type TaskExecutionListEntry struct {
7524	_ struct{} `type:"structure"`
7525
7526	// The status of a task execution.
7527	Status *string `type:"string" enum:"TaskExecutionStatus"`
7528
7529	// The Amazon Resource Name (ARN) of the task that was executed.
7530	TaskExecutionArn *string `type:"string"`
7531}
7532
7533// String returns the string representation
7534func (s TaskExecutionListEntry) String() string {
7535	return awsutil.Prettify(s)
7536}
7537
7538// GoString returns the string representation
7539func (s TaskExecutionListEntry) GoString() string {
7540	return s.String()
7541}
7542
7543// SetStatus sets the Status field's value.
7544func (s *TaskExecutionListEntry) SetStatus(v string) *TaskExecutionListEntry {
7545	s.Status = &v
7546	return s
7547}
7548
7549// SetTaskExecutionArn sets the TaskExecutionArn field's value.
7550func (s *TaskExecutionListEntry) SetTaskExecutionArn(v string) *TaskExecutionListEntry {
7551	s.TaskExecutionArn = &v
7552	return s
7553}
7554
7555// Describes the detailed result of a TaskExecution operation. This result includes
7556// the time in milliseconds spent in each phase, the status of the task execution,
7557// and the errors encountered.
7558type TaskExecutionResultDetail struct {
7559	_ struct{} `type:"structure"`
7560
7561	// Errors that AWS DataSync encountered during execution of the task. You can
7562	// use this error code to help troubleshoot issues.
7563	ErrorCode *string `type:"string"`
7564
7565	// Detailed description of an error that was encountered during the task execution.
7566	// You can use this information to help troubleshoot issues.
7567	ErrorDetail *string `type:"string"`
7568
7569	// The total time in milliseconds that AWS DataSync spent in the PREPARING phase.
7570	PrepareDuration *int64 `type:"long"`
7571
7572	// The status of the PREPARING phase.
7573	PrepareStatus *string `type:"string" enum:"PhaseStatus"`
7574
7575	// The total time in milliseconds that AWS DataSync took to transfer the file
7576	// from the source to the destination location.
7577	TotalDuration *int64 `type:"long"`
7578
7579	// The total time in milliseconds that AWS DataSync spent in the TRANSFERRING
7580	// phase.
7581	TransferDuration *int64 `type:"long"`
7582
7583	// The status of the TRANSFERRING phase.
7584	TransferStatus *string `type:"string" enum:"PhaseStatus"`
7585
7586	// The total time in milliseconds that AWS DataSync spent in the VERIFYING phase.
7587	VerifyDuration *int64 `type:"long"`
7588
7589	// The status of the VERIFYING phase.
7590	VerifyStatus *string `type:"string" enum:"PhaseStatus"`
7591}
7592
7593// String returns the string representation
7594func (s TaskExecutionResultDetail) String() string {
7595	return awsutil.Prettify(s)
7596}
7597
7598// GoString returns the string representation
7599func (s TaskExecutionResultDetail) GoString() string {
7600	return s.String()
7601}
7602
7603// SetErrorCode sets the ErrorCode field's value.
7604func (s *TaskExecutionResultDetail) SetErrorCode(v string) *TaskExecutionResultDetail {
7605	s.ErrorCode = &v
7606	return s
7607}
7608
7609// SetErrorDetail sets the ErrorDetail field's value.
7610func (s *TaskExecutionResultDetail) SetErrorDetail(v string) *TaskExecutionResultDetail {
7611	s.ErrorDetail = &v
7612	return s
7613}
7614
7615// SetPrepareDuration sets the PrepareDuration field's value.
7616func (s *TaskExecutionResultDetail) SetPrepareDuration(v int64) *TaskExecutionResultDetail {
7617	s.PrepareDuration = &v
7618	return s
7619}
7620
7621// SetPrepareStatus sets the PrepareStatus field's value.
7622func (s *TaskExecutionResultDetail) SetPrepareStatus(v string) *TaskExecutionResultDetail {
7623	s.PrepareStatus = &v
7624	return s
7625}
7626
7627// SetTotalDuration sets the TotalDuration field's value.
7628func (s *TaskExecutionResultDetail) SetTotalDuration(v int64) *TaskExecutionResultDetail {
7629	s.TotalDuration = &v
7630	return s
7631}
7632
7633// SetTransferDuration sets the TransferDuration field's value.
7634func (s *TaskExecutionResultDetail) SetTransferDuration(v int64) *TaskExecutionResultDetail {
7635	s.TransferDuration = &v
7636	return s
7637}
7638
7639// SetTransferStatus sets the TransferStatus field's value.
7640func (s *TaskExecutionResultDetail) SetTransferStatus(v string) *TaskExecutionResultDetail {
7641	s.TransferStatus = &v
7642	return s
7643}
7644
7645// SetVerifyDuration sets the VerifyDuration field's value.
7646func (s *TaskExecutionResultDetail) SetVerifyDuration(v int64) *TaskExecutionResultDetail {
7647	s.VerifyDuration = &v
7648	return s
7649}
7650
7651// SetVerifyStatus sets the VerifyStatus field's value.
7652func (s *TaskExecutionResultDetail) SetVerifyStatus(v string) *TaskExecutionResultDetail {
7653	s.VerifyStatus = &v
7654	return s
7655}
7656
7657// You can use API filters to narrow down the list of resources returned by
7658// ListTasks. For example, to retrieve all tasks on a source location, you can
7659// use ListTasks with filter name LocationId and Operator Equals with the ARN
7660// for the location.
7661type TaskFilter struct {
7662	_ struct{} `type:"structure"`
7663
7664	// The name of the filter being used. Each API call supports a list of filters
7665	// that are available for it. For example, LocationId for ListTasks.
7666	//
7667	// Name is a required field
7668	Name *string `type:"string" required:"true" enum:"TaskFilterName"`
7669
7670	// The operator that is used to compare filter values (for example, Equals or
7671	// Contains). For more about API filtering operators, see query-resources.
7672	//
7673	// Operator is a required field
7674	Operator *string `type:"string" required:"true" enum:"Operator"`
7675
7676	// The values that you want to filter for. For example, you might want to display
7677	// only tasks for a specific destination location.
7678	//
7679	// Values is a required field
7680	Values []*string `type:"list" required:"true"`
7681}
7682
7683// String returns the string representation
7684func (s TaskFilter) String() string {
7685	return awsutil.Prettify(s)
7686}
7687
7688// GoString returns the string representation
7689func (s TaskFilter) GoString() string {
7690	return s.String()
7691}
7692
7693// Validate inspects the fields of the type to determine if they are valid.
7694func (s *TaskFilter) Validate() error {
7695	invalidParams := request.ErrInvalidParams{Context: "TaskFilter"}
7696	if s.Name == nil {
7697		invalidParams.Add(request.NewErrParamRequired("Name"))
7698	}
7699	if s.Operator == nil {
7700		invalidParams.Add(request.NewErrParamRequired("Operator"))
7701	}
7702	if s.Values == nil {
7703		invalidParams.Add(request.NewErrParamRequired("Values"))
7704	}
7705
7706	if invalidParams.Len() > 0 {
7707		return invalidParams
7708	}
7709	return nil
7710}
7711
7712// SetName sets the Name field's value.
7713func (s *TaskFilter) SetName(v string) *TaskFilter {
7714	s.Name = &v
7715	return s
7716}
7717
7718// SetOperator sets the Operator field's value.
7719func (s *TaskFilter) SetOperator(v string) *TaskFilter {
7720	s.Operator = &v
7721	return s
7722}
7723
7724// SetValues sets the Values field's value.
7725func (s *TaskFilter) SetValues(v []*string) *TaskFilter {
7726	s.Values = v
7727	return s
7728}
7729
7730// Represents a single entry in a list of tasks. TaskListEntry returns an array
7731// that contains a list of tasks when the ListTasks operation is called. A task
7732// includes the source and destination file systems to sync and the options
7733// to use for the tasks.
7734type TaskListEntry struct {
7735	_ struct{} `type:"structure"`
7736
7737	// The name of the task.
7738	Name *string `min:"1" type:"string"`
7739
7740	// The status of the task.
7741	Status *string `type:"string" enum:"TaskStatus"`
7742
7743	// The Amazon Resource Name (ARN) of the task.
7744	TaskArn *string `type:"string"`
7745}
7746
7747// String returns the string representation
7748func (s TaskListEntry) String() string {
7749	return awsutil.Prettify(s)
7750}
7751
7752// GoString returns the string representation
7753func (s TaskListEntry) GoString() string {
7754	return s.String()
7755}
7756
7757// SetName sets the Name field's value.
7758func (s *TaskListEntry) SetName(v string) *TaskListEntry {
7759	s.Name = &v
7760	return s
7761}
7762
7763// SetStatus sets the Status field's value.
7764func (s *TaskListEntry) SetStatus(v string) *TaskListEntry {
7765	s.Status = &v
7766	return s
7767}
7768
7769// SetTaskArn sets the TaskArn field's value.
7770func (s *TaskListEntry) SetTaskArn(v string) *TaskListEntry {
7771	s.TaskArn = &v
7772	return s
7773}
7774
7775// Specifies the schedule you want your task to use for repeated executions.
7776// For more information, see Schedule Expressions for Rules (https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/ScheduledEvents.html).
7777type TaskSchedule struct {
7778	_ struct{} `type:"structure"`
7779
7780	// A cron expression that specifies when AWS DataSync initiates a scheduled
7781	// transfer from a source to a destination location.
7782	//
7783	// ScheduleExpression is a required field
7784	ScheduleExpression *string `type:"string" required:"true"`
7785}
7786
7787// String returns the string representation
7788func (s TaskSchedule) String() string {
7789	return awsutil.Prettify(s)
7790}
7791
7792// GoString returns the string representation
7793func (s TaskSchedule) GoString() string {
7794	return s.String()
7795}
7796
7797// Validate inspects the fields of the type to determine if they are valid.
7798func (s *TaskSchedule) Validate() error {
7799	invalidParams := request.ErrInvalidParams{Context: "TaskSchedule"}
7800	if s.ScheduleExpression == nil {
7801		invalidParams.Add(request.NewErrParamRequired("ScheduleExpression"))
7802	}
7803
7804	if invalidParams.Len() > 0 {
7805		return invalidParams
7806	}
7807	return nil
7808}
7809
7810// SetScheduleExpression sets the ScheduleExpression field's value.
7811func (s *TaskSchedule) SetScheduleExpression(v string) *TaskSchedule {
7812	s.ScheduleExpression = &v
7813	return s
7814}
7815
7816// UntagResourceRequest
7817type UntagResourceInput struct {
7818	_ struct{} `type:"structure"`
7819
7820	// The keys in the key-value pair in the tag to remove.
7821	//
7822	// Keys is a required field
7823	Keys []*string `min:"1" type:"list" required:"true"`
7824
7825	// The Amazon Resource Name (ARN) of the resource to remove the tag from.
7826	//
7827	// ResourceArn is a required field
7828	ResourceArn *string `type:"string" required:"true"`
7829}
7830
7831// String returns the string representation
7832func (s UntagResourceInput) String() string {
7833	return awsutil.Prettify(s)
7834}
7835
7836// GoString returns the string representation
7837func (s UntagResourceInput) GoString() string {
7838	return s.String()
7839}
7840
7841// Validate inspects the fields of the type to determine if they are valid.
7842func (s *UntagResourceInput) Validate() error {
7843	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
7844	if s.Keys == nil {
7845		invalidParams.Add(request.NewErrParamRequired("Keys"))
7846	}
7847	if s.Keys != nil && len(s.Keys) < 1 {
7848		invalidParams.Add(request.NewErrParamMinLen("Keys", 1))
7849	}
7850	if s.ResourceArn == nil {
7851		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7852	}
7853
7854	if invalidParams.Len() > 0 {
7855		return invalidParams
7856	}
7857	return nil
7858}
7859
7860// SetKeys sets the Keys field's value.
7861func (s *UntagResourceInput) SetKeys(v []*string) *UntagResourceInput {
7862	s.Keys = v
7863	return s
7864}
7865
7866// SetResourceArn sets the ResourceArn field's value.
7867func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
7868	s.ResourceArn = &v
7869	return s
7870}
7871
7872type UntagResourceOutput struct {
7873	_ struct{} `type:"structure"`
7874}
7875
7876// String returns the string representation
7877func (s UntagResourceOutput) String() string {
7878	return awsutil.Prettify(s)
7879}
7880
7881// GoString returns the string representation
7882func (s UntagResourceOutput) GoString() string {
7883	return s.String()
7884}
7885
7886// UpdateAgentRequest
7887type UpdateAgentInput struct {
7888	_ struct{} `type:"structure"`
7889
7890	// The Amazon Resource Name (ARN) of the agent to update.
7891	//
7892	// AgentArn is a required field
7893	AgentArn *string `type:"string" required:"true"`
7894
7895	// The name that you want to use to configure the agent.
7896	Name *string `min:"1" type:"string"`
7897}
7898
7899// String returns the string representation
7900func (s UpdateAgentInput) String() string {
7901	return awsutil.Prettify(s)
7902}
7903
7904// GoString returns the string representation
7905func (s UpdateAgentInput) GoString() string {
7906	return s.String()
7907}
7908
7909// Validate inspects the fields of the type to determine if they are valid.
7910func (s *UpdateAgentInput) Validate() error {
7911	invalidParams := request.ErrInvalidParams{Context: "UpdateAgentInput"}
7912	if s.AgentArn == nil {
7913		invalidParams.Add(request.NewErrParamRequired("AgentArn"))
7914	}
7915	if s.Name != nil && len(*s.Name) < 1 {
7916		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7917	}
7918
7919	if invalidParams.Len() > 0 {
7920		return invalidParams
7921	}
7922	return nil
7923}
7924
7925// SetAgentArn sets the AgentArn field's value.
7926func (s *UpdateAgentInput) SetAgentArn(v string) *UpdateAgentInput {
7927	s.AgentArn = &v
7928	return s
7929}
7930
7931// SetName sets the Name field's value.
7932func (s *UpdateAgentInput) SetName(v string) *UpdateAgentInput {
7933	s.Name = &v
7934	return s
7935}
7936
7937type UpdateAgentOutput struct {
7938	_ struct{} `type:"structure"`
7939}
7940
7941// String returns the string representation
7942func (s UpdateAgentOutput) String() string {
7943	return awsutil.Prettify(s)
7944}
7945
7946// GoString returns the string representation
7947func (s UpdateAgentOutput) GoString() string {
7948	return s.String()
7949}
7950
7951type UpdateLocationNfsInput struct {
7952	_ struct{} `type:"structure"`
7953
7954	// The Amazon Resource Name (ARN) of the NFS location to update.
7955	//
7956	// LocationArn is a required field
7957	LocationArn *string `type:"string" required:"true"`
7958
7959	// Represents the mount options that are available for DataSync to access an
7960	// NFS location.
7961	MountOptions *NfsMountOptions `type:"structure"`
7962
7963	// A list of Amazon Resource Names (ARNs) of agents to use for a Network File
7964	// System (NFS) location.
7965	OnPremConfig *OnPremConfig `type:"structure"`
7966
7967	// The subdirectory in the NFS file system that is used to read data from the
7968	// NFS source location or write data to the NFS destination. The NFS path should
7969	// be a path that's exported by the NFS server, or a subdirectory of that path.
7970	// The path should be such that it can be mounted by other NFS clients in your
7971	// network.
7972	//
7973	// To see all the paths exported by your NFS server, run "showmount -e nfs-server-name"
7974	// from an NFS client that has access to your server. You can specify any directory
7975	// that appears in the results, and any subdirectory of that directory. Ensure
7976	// that the NFS export is accessible without Kerberos authentication.
7977	//
7978	// To transfer all the data in the folder that you specified, DataSync must
7979	// have permissions to read all the data. To ensure this, either configure the
7980	// NFS export with no_root_squash, or ensure that the files you want DataSync
7981	// to access have permissions that allow read access for all users. Doing either
7982	// option enables the agent to read the files. For the agent to access directories,
7983	// you must additionally enable all execute access.
7984	//
7985	// If you are copying data to or from your AWS Snowcone device, see NFS Server
7986	// on AWS Snowcone (https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html#nfs-on-snowcone)
7987	// for more information.
7988	//
7989	// For information about NFS export configuration, see 18.7. The /etc/exports
7990	// Configuration File in the Red Hat Enterprise Linux documentation.
7991	Subdirectory *string `type:"string"`
7992}
7993
7994// String returns the string representation
7995func (s UpdateLocationNfsInput) String() string {
7996	return awsutil.Prettify(s)
7997}
7998
7999// GoString returns the string representation
8000func (s UpdateLocationNfsInput) GoString() string {
8001	return s.String()
8002}
8003
8004// Validate inspects the fields of the type to determine if they are valid.
8005func (s *UpdateLocationNfsInput) Validate() error {
8006	invalidParams := request.ErrInvalidParams{Context: "UpdateLocationNfsInput"}
8007	if s.LocationArn == nil {
8008		invalidParams.Add(request.NewErrParamRequired("LocationArn"))
8009	}
8010	if s.OnPremConfig != nil {
8011		if err := s.OnPremConfig.Validate(); err != nil {
8012			invalidParams.AddNested("OnPremConfig", err.(request.ErrInvalidParams))
8013		}
8014	}
8015
8016	if invalidParams.Len() > 0 {
8017		return invalidParams
8018	}
8019	return nil
8020}
8021
8022// SetLocationArn sets the LocationArn field's value.
8023func (s *UpdateLocationNfsInput) SetLocationArn(v string) *UpdateLocationNfsInput {
8024	s.LocationArn = &v
8025	return s
8026}
8027
8028// SetMountOptions sets the MountOptions field's value.
8029func (s *UpdateLocationNfsInput) SetMountOptions(v *NfsMountOptions) *UpdateLocationNfsInput {
8030	s.MountOptions = v
8031	return s
8032}
8033
8034// SetOnPremConfig sets the OnPremConfig field's value.
8035func (s *UpdateLocationNfsInput) SetOnPremConfig(v *OnPremConfig) *UpdateLocationNfsInput {
8036	s.OnPremConfig = v
8037	return s
8038}
8039
8040// SetSubdirectory sets the Subdirectory field's value.
8041func (s *UpdateLocationNfsInput) SetSubdirectory(v string) *UpdateLocationNfsInput {
8042	s.Subdirectory = &v
8043	return s
8044}
8045
8046type UpdateLocationNfsOutput struct {
8047	_ struct{} `type:"structure"`
8048}
8049
8050// String returns the string representation
8051func (s UpdateLocationNfsOutput) String() string {
8052	return awsutil.Prettify(s)
8053}
8054
8055// GoString returns the string representation
8056func (s UpdateLocationNfsOutput) GoString() string {
8057	return s.String()
8058}
8059
8060type UpdateLocationObjectStorageInput struct {
8061	_ struct{} `type:"structure"`
8062
8063	// Optional. The access key is used if credentials are required to access the
8064	// self-managed object storage server. If your object storage requires a user
8065	// name and password to authenticate, use AccessKey and SecretKey to provide
8066	// the user name and password, respectively.
8067	AccessKey *string `min:"8" type:"string"`
8068
8069	// The Amazon Resource Name (ARN) of the agents associated with the self-managed
8070	// object storage server location.
8071	AgentArns []*string `min:"1" type:"list"`
8072
8073	// The Amazon Resource Name (ARN) of the self-managed object storage server
8074	// location to be updated.
8075	//
8076	// LocationArn is a required field
8077	LocationArn *string `type:"string" required:"true"`
8078
8079	// Optional. The secret key is used if credentials are required to access the
8080	// self-managed object storage server. If your object storage requires a user
8081	// name and password to authenticate, use AccessKey and SecretKey to provide
8082	// the user name and password, respectively.
8083	SecretKey *string `min:"8" type:"string" sensitive:"true"`
8084
8085	// The port that your self-managed object storage server accepts inbound network
8086	// traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443
8087	// (HTTPS). You can specify a custom port if your self-managed object storage
8088	// server requires one.
8089	ServerPort *int64 `min:"1" type:"integer"`
8090
8091	// The protocol that the object storage server uses to communicate. Valid values
8092	// are HTTP or HTTPS.
8093	ServerProtocol *string `type:"string" enum:"ObjectStorageServerProtocol"`
8094
8095	// The subdirectory in the self-managed object storage server that is used to
8096	// read data from.
8097	Subdirectory *string `type:"string"`
8098}
8099
8100// String returns the string representation
8101func (s UpdateLocationObjectStorageInput) String() string {
8102	return awsutil.Prettify(s)
8103}
8104
8105// GoString returns the string representation
8106func (s UpdateLocationObjectStorageInput) GoString() string {
8107	return s.String()
8108}
8109
8110// Validate inspects the fields of the type to determine if they are valid.
8111func (s *UpdateLocationObjectStorageInput) Validate() error {
8112	invalidParams := request.ErrInvalidParams{Context: "UpdateLocationObjectStorageInput"}
8113	if s.AccessKey != nil && len(*s.AccessKey) < 8 {
8114		invalidParams.Add(request.NewErrParamMinLen("AccessKey", 8))
8115	}
8116	if s.AgentArns != nil && len(s.AgentArns) < 1 {
8117		invalidParams.Add(request.NewErrParamMinLen("AgentArns", 1))
8118	}
8119	if s.LocationArn == nil {
8120		invalidParams.Add(request.NewErrParamRequired("LocationArn"))
8121	}
8122	if s.SecretKey != nil && len(*s.SecretKey) < 8 {
8123		invalidParams.Add(request.NewErrParamMinLen("SecretKey", 8))
8124	}
8125	if s.ServerPort != nil && *s.ServerPort < 1 {
8126		invalidParams.Add(request.NewErrParamMinValue("ServerPort", 1))
8127	}
8128
8129	if invalidParams.Len() > 0 {
8130		return invalidParams
8131	}
8132	return nil
8133}
8134
8135// SetAccessKey sets the AccessKey field's value.
8136func (s *UpdateLocationObjectStorageInput) SetAccessKey(v string) *UpdateLocationObjectStorageInput {
8137	s.AccessKey = &v
8138	return s
8139}
8140
8141// SetAgentArns sets the AgentArns field's value.
8142func (s *UpdateLocationObjectStorageInput) SetAgentArns(v []*string) *UpdateLocationObjectStorageInput {
8143	s.AgentArns = v
8144	return s
8145}
8146
8147// SetLocationArn sets the LocationArn field's value.
8148func (s *UpdateLocationObjectStorageInput) SetLocationArn(v string) *UpdateLocationObjectStorageInput {
8149	s.LocationArn = &v
8150	return s
8151}
8152
8153// SetSecretKey sets the SecretKey field's value.
8154func (s *UpdateLocationObjectStorageInput) SetSecretKey(v string) *UpdateLocationObjectStorageInput {
8155	s.SecretKey = &v
8156	return s
8157}
8158
8159// SetServerPort sets the ServerPort field's value.
8160func (s *UpdateLocationObjectStorageInput) SetServerPort(v int64) *UpdateLocationObjectStorageInput {
8161	s.ServerPort = &v
8162	return s
8163}
8164
8165// SetServerProtocol sets the ServerProtocol field's value.
8166func (s *UpdateLocationObjectStorageInput) SetServerProtocol(v string) *UpdateLocationObjectStorageInput {
8167	s.ServerProtocol = &v
8168	return s
8169}
8170
8171// SetSubdirectory sets the Subdirectory field's value.
8172func (s *UpdateLocationObjectStorageInput) SetSubdirectory(v string) *UpdateLocationObjectStorageInput {
8173	s.Subdirectory = &v
8174	return s
8175}
8176
8177type UpdateLocationObjectStorageOutput struct {
8178	_ struct{} `type:"structure"`
8179}
8180
8181// String returns the string representation
8182func (s UpdateLocationObjectStorageOutput) String() string {
8183	return awsutil.Prettify(s)
8184}
8185
8186// GoString returns the string representation
8187func (s UpdateLocationObjectStorageOutput) GoString() string {
8188	return s.String()
8189}
8190
8191type UpdateLocationSmbInput struct {
8192	_ struct{} `type:"structure"`
8193
8194	// The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
8195	// (SMB) location.
8196	AgentArns []*string `min:"1" type:"list"`
8197
8198	// The name of the Windows domain that the SMB server belongs to.
8199	Domain *string `type:"string"`
8200
8201	// The Amazon Resource Name (ARN) of the SMB location to update.
8202	//
8203	// LocationArn is a required field
8204	LocationArn *string `type:"string" required:"true"`
8205
8206	// Represents the mount options that are available for DataSync to access an
8207	// SMB location.
8208	MountOptions *SmbMountOptions `type:"structure"`
8209
8210	// The password of the user who can mount the share has the permissions to access
8211	// files and folders in the SMB share.
8212	Password *string `type:"string" sensitive:"true"`
8213
8214	// The subdirectory in the SMB file system that is used to read data from the
8215	// SMB source location or write data to the SMB destination. The SMB path should
8216	// be a path that's exported by the SMB server, or a subdirectory of that path.
8217	// The path should be such that it can be mounted by other SMB clients in your
8218	// network.
8219	//
8220	// Subdirectory must be specified with forward slashes. For example, /path/to/folder.
8221	//
8222	// To transfer all the data in the folder that you specified, DataSync must
8223	// have permissions to mount the SMB share and to access all the data in that
8224	// share. To ensure this, do either of the following:
8225	//
8226	//    * Ensure that the user/password specified belongs to the user who can
8227	//    mount the share and who has the appropriate permissions for all of the
8228	//    files and directories that you want DataSync to access.
8229	//
8230	//    * Use credentials of a member of the Backup Operators group to mount the
8231	//    share.
8232	//
8233	// Doing either of these options enables the agent to access the data. For the
8234	// agent to access directories, you must also enable all execute access.
8235	Subdirectory *string `type:"string"`
8236
8237	// The user who can mount the share has the permissions to access files and
8238	// folders in the SMB share.
8239	User *string `type:"string"`
8240}
8241
8242// String returns the string representation
8243func (s UpdateLocationSmbInput) String() string {
8244	return awsutil.Prettify(s)
8245}
8246
8247// GoString returns the string representation
8248func (s UpdateLocationSmbInput) GoString() string {
8249	return s.String()
8250}
8251
8252// Validate inspects the fields of the type to determine if they are valid.
8253func (s *UpdateLocationSmbInput) Validate() error {
8254	invalidParams := request.ErrInvalidParams{Context: "UpdateLocationSmbInput"}
8255	if s.AgentArns != nil && len(s.AgentArns) < 1 {
8256		invalidParams.Add(request.NewErrParamMinLen("AgentArns", 1))
8257	}
8258	if s.LocationArn == nil {
8259		invalidParams.Add(request.NewErrParamRequired("LocationArn"))
8260	}
8261
8262	if invalidParams.Len() > 0 {
8263		return invalidParams
8264	}
8265	return nil
8266}
8267
8268// SetAgentArns sets the AgentArns field's value.
8269func (s *UpdateLocationSmbInput) SetAgentArns(v []*string) *UpdateLocationSmbInput {
8270	s.AgentArns = v
8271	return s
8272}
8273
8274// SetDomain sets the Domain field's value.
8275func (s *UpdateLocationSmbInput) SetDomain(v string) *UpdateLocationSmbInput {
8276	s.Domain = &v
8277	return s
8278}
8279
8280// SetLocationArn sets the LocationArn field's value.
8281func (s *UpdateLocationSmbInput) SetLocationArn(v string) *UpdateLocationSmbInput {
8282	s.LocationArn = &v
8283	return s
8284}
8285
8286// SetMountOptions sets the MountOptions field's value.
8287func (s *UpdateLocationSmbInput) SetMountOptions(v *SmbMountOptions) *UpdateLocationSmbInput {
8288	s.MountOptions = v
8289	return s
8290}
8291
8292// SetPassword sets the Password field's value.
8293func (s *UpdateLocationSmbInput) SetPassword(v string) *UpdateLocationSmbInput {
8294	s.Password = &v
8295	return s
8296}
8297
8298// SetSubdirectory sets the Subdirectory field's value.
8299func (s *UpdateLocationSmbInput) SetSubdirectory(v string) *UpdateLocationSmbInput {
8300	s.Subdirectory = &v
8301	return s
8302}
8303
8304// SetUser sets the User field's value.
8305func (s *UpdateLocationSmbInput) SetUser(v string) *UpdateLocationSmbInput {
8306	s.User = &v
8307	return s
8308}
8309
8310type UpdateLocationSmbOutput struct {
8311	_ struct{} `type:"structure"`
8312}
8313
8314// String returns the string representation
8315func (s UpdateLocationSmbOutput) String() string {
8316	return awsutil.Prettify(s)
8317}
8318
8319// GoString returns the string representation
8320func (s UpdateLocationSmbOutput) GoString() string {
8321	return s.String()
8322}
8323
8324type UpdateTaskExecutionInput struct {
8325	_ struct{} `type:"structure"`
8326
8327	// Represents the options that are available to control the behavior of a StartTaskExecution
8328	// operation. Behavior includes preserving metadata such as user ID (UID), group
8329	// ID (GID), and file permissions, and also overwriting files in the destination,
8330	// data integrity verification, and so on.
8331	//
8332	// A task has a set of default options associated with it. If you don't specify
8333	// an option in StartTaskExecution, the default value is used. You can override
8334	// the defaults options on each task execution by specifying an overriding Options
8335	// value to StartTaskExecution.
8336	//
8337	// Options is a required field
8338	Options *Options `type:"structure" required:"true"`
8339
8340	// The Amazon Resource Name (ARN) of the specific task execution that is being
8341	// updated.
8342	//
8343	// TaskExecutionArn is a required field
8344	TaskExecutionArn *string `type:"string" required:"true"`
8345}
8346
8347// String returns the string representation
8348func (s UpdateTaskExecutionInput) String() string {
8349	return awsutil.Prettify(s)
8350}
8351
8352// GoString returns the string representation
8353func (s UpdateTaskExecutionInput) GoString() string {
8354	return s.String()
8355}
8356
8357// Validate inspects the fields of the type to determine if they are valid.
8358func (s *UpdateTaskExecutionInput) Validate() error {
8359	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskExecutionInput"}
8360	if s.Options == nil {
8361		invalidParams.Add(request.NewErrParamRequired("Options"))
8362	}
8363	if s.TaskExecutionArn == nil {
8364		invalidParams.Add(request.NewErrParamRequired("TaskExecutionArn"))
8365	}
8366	if s.Options != nil {
8367		if err := s.Options.Validate(); err != nil {
8368			invalidParams.AddNested("Options", err.(request.ErrInvalidParams))
8369		}
8370	}
8371
8372	if invalidParams.Len() > 0 {
8373		return invalidParams
8374	}
8375	return nil
8376}
8377
8378// SetOptions sets the Options field's value.
8379func (s *UpdateTaskExecutionInput) SetOptions(v *Options) *UpdateTaskExecutionInput {
8380	s.Options = v
8381	return s
8382}
8383
8384// SetTaskExecutionArn sets the TaskExecutionArn field's value.
8385func (s *UpdateTaskExecutionInput) SetTaskExecutionArn(v string) *UpdateTaskExecutionInput {
8386	s.TaskExecutionArn = &v
8387	return s
8388}
8389
8390type UpdateTaskExecutionOutput struct {
8391	_ struct{} `type:"structure"`
8392}
8393
8394// String returns the string representation
8395func (s UpdateTaskExecutionOutput) String() string {
8396	return awsutil.Prettify(s)
8397}
8398
8399// GoString returns the string representation
8400func (s UpdateTaskExecutionOutput) GoString() string {
8401	return s.String()
8402}
8403
8404// UpdateTaskResponse
8405type UpdateTaskInput struct {
8406	_ struct{} `type:"structure"`
8407
8408	// The Amazon Resource Name (ARN) of the resource name of the CloudWatch LogGroup.
8409	CloudWatchLogGroupArn *string `type:"string"`
8410
8411	// A list of filter rules that determines which files to exclude from a task.
8412	// The list should contain a single filter string that consists of the patterns
8413	// to exclude. The patterns are delimited by "|" (that is, a pipe), for example:
8414	// "/folder1|/folder2"
8415	Excludes []*FilterRule `type:"list"`
8416
8417	// The name of the task to update.
8418	Name *string `min:"1" type:"string"`
8419
8420	// Represents the options that are available to control the behavior of a StartTaskExecution
8421	// operation. Behavior includes preserving metadata such as user ID (UID), group
8422	// ID (GID), and file permissions, and also overwriting files in the destination,
8423	// data integrity verification, and so on.
8424	//
8425	// A task has a set of default options associated with it. If you don't specify
8426	// an option in StartTaskExecution, the default value is used. You can override
8427	// the defaults options on each task execution by specifying an overriding Options
8428	// value to StartTaskExecution.
8429	Options *Options `type:"structure"`
8430
8431	// Specifies a schedule used to periodically transfer files from a source to
8432	// a destination location. You can configure your task to execute hourly, daily,
8433	// weekly or on specific days of the week. You control when in the day or hour
8434	// you want the task to execute. The time you specify is UTC time. For more
8435	// information, see task-scheduling.
8436	Schedule *TaskSchedule `type:"structure"`
8437
8438	// The Amazon Resource Name (ARN) of the resource name of the task to update.
8439	//
8440	// TaskArn is a required field
8441	TaskArn *string `type:"string" required:"true"`
8442}
8443
8444// String returns the string representation
8445func (s UpdateTaskInput) String() string {
8446	return awsutil.Prettify(s)
8447}
8448
8449// GoString returns the string representation
8450func (s UpdateTaskInput) GoString() string {
8451	return s.String()
8452}
8453
8454// Validate inspects the fields of the type to determine if they are valid.
8455func (s *UpdateTaskInput) Validate() error {
8456	invalidParams := request.ErrInvalidParams{Context: "UpdateTaskInput"}
8457	if s.Name != nil && len(*s.Name) < 1 {
8458		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8459	}
8460	if s.TaskArn == nil {
8461		invalidParams.Add(request.NewErrParamRequired("TaskArn"))
8462	}
8463	if s.Options != nil {
8464		if err := s.Options.Validate(); err != nil {
8465			invalidParams.AddNested("Options", err.(request.ErrInvalidParams))
8466		}
8467	}
8468	if s.Schedule != nil {
8469		if err := s.Schedule.Validate(); err != nil {
8470			invalidParams.AddNested("Schedule", err.(request.ErrInvalidParams))
8471		}
8472	}
8473
8474	if invalidParams.Len() > 0 {
8475		return invalidParams
8476	}
8477	return nil
8478}
8479
8480// SetCloudWatchLogGroupArn sets the CloudWatchLogGroupArn field's value.
8481func (s *UpdateTaskInput) SetCloudWatchLogGroupArn(v string) *UpdateTaskInput {
8482	s.CloudWatchLogGroupArn = &v
8483	return s
8484}
8485
8486// SetExcludes sets the Excludes field's value.
8487func (s *UpdateTaskInput) SetExcludes(v []*FilterRule) *UpdateTaskInput {
8488	s.Excludes = v
8489	return s
8490}
8491
8492// SetName sets the Name field's value.
8493func (s *UpdateTaskInput) SetName(v string) *UpdateTaskInput {
8494	s.Name = &v
8495	return s
8496}
8497
8498// SetOptions sets the Options field's value.
8499func (s *UpdateTaskInput) SetOptions(v *Options) *UpdateTaskInput {
8500	s.Options = v
8501	return s
8502}
8503
8504// SetSchedule sets the Schedule field's value.
8505func (s *UpdateTaskInput) SetSchedule(v *TaskSchedule) *UpdateTaskInput {
8506	s.Schedule = v
8507	return s
8508}
8509
8510// SetTaskArn sets the TaskArn field's value.
8511func (s *UpdateTaskInput) SetTaskArn(v string) *UpdateTaskInput {
8512	s.TaskArn = &v
8513	return s
8514}
8515
8516type UpdateTaskOutput struct {
8517	_ struct{} `type:"structure"`
8518}
8519
8520// String returns the string representation
8521func (s UpdateTaskOutput) String() string {
8522	return awsutil.Prettify(s)
8523}
8524
8525// GoString returns the string representation
8526func (s UpdateTaskOutput) GoString() string {
8527	return s.String()
8528}
8529
8530const (
8531	// AgentStatusOnline is a AgentStatus enum value
8532	AgentStatusOnline = "ONLINE"
8533
8534	// AgentStatusOffline is a AgentStatus enum value
8535	AgentStatusOffline = "OFFLINE"
8536)
8537
8538// AgentStatus_Values returns all elements of the AgentStatus enum
8539func AgentStatus_Values() []string {
8540	return []string{
8541		AgentStatusOnline,
8542		AgentStatusOffline,
8543	}
8544}
8545
8546const (
8547	// AtimeNone is a Atime enum value
8548	AtimeNone = "NONE"
8549
8550	// AtimeBestEffort is a Atime enum value
8551	AtimeBestEffort = "BEST_EFFORT"
8552)
8553
8554// Atime_Values returns all elements of the Atime enum
8555func Atime_Values() []string {
8556	return []string{
8557		AtimeNone,
8558		AtimeBestEffort,
8559	}
8560}
8561
8562const (
8563	// EndpointTypePublic is a EndpointType enum value
8564	EndpointTypePublic = "PUBLIC"
8565
8566	// EndpointTypePrivateLink is a EndpointType enum value
8567	EndpointTypePrivateLink = "PRIVATE_LINK"
8568
8569	// EndpointTypeFips is a EndpointType enum value
8570	EndpointTypeFips = "FIPS"
8571)
8572
8573// EndpointType_Values returns all elements of the EndpointType enum
8574func EndpointType_Values() []string {
8575	return []string{
8576		EndpointTypePublic,
8577		EndpointTypePrivateLink,
8578		EndpointTypeFips,
8579	}
8580}
8581
8582const (
8583	// FilterTypeSimplePattern is a FilterType enum value
8584	FilterTypeSimplePattern = "SIMPLE_PATTERN"
8585)
8586
8587// FilterType_Values returns all elements of the FilterType enum
8588func FilterType_Values() []string {
8589	return []string{
8590		FilterTypeSimplePattern,
8591	}
8592}
8593
8594const (
8595	// GidNone is a Gid enum value
8596	GidNone = "NONE"
8597
8598	// GidIntValue is a Gid enum value
8599	GidIntValue = "INT_VALUE"
8600
8601	// GidName is a Gid enum value
8602	GidName = "NAME"
8603
8604	// GidBoth is a Gid enum value
8605	GidBoth = "BOTH"
8606)
8607
8608// Gid_Values returns all elements of the Gid enum
8609func Gid_Values() []string {
8610	return []string{
8611		GidNone,
8612		GidIntValue,
8613		GidName,
8614		GidBoth,
8615	}
8616}
8617
8618const (
8619	// LocationFilterNameLocationUri is a LocationFilterName enum value
8620	LocationFilterNameLocationUri = "LocationUri"
8621
8622	// LocationFilterNameLocationType is a LocationFilterName enum value
8623	LocationFilterNameLocationType = "LocationType"
8624
8625	// LocationFilterNameCreationTime is a LocationFilterName enum value
8626	LocationFilterNameCreationTime = "CreationTime"
8627)
8628
8629// LocationFilterName_Values returns all elements of the LocationFilterName enum
8630func LocationFilterName_Values() []string {
8631	return []string{
8632		LocationFilterNameLocationUri,
8633		LocationFilterNameLocationType,
8634		LocationFilterNameCreationTime,
8635	}
8636}
8637
8638const (
8639	// LogLevelOff is a LogLevel enum value
8640	LogLevelOff = "OFF"
8641
8642	// LogLevelBasic is a LogLevel enum value
8643	LogLevelBasic = "BASIC"
8644
8645	// LogLevelTransfer is a LogLevel enum value
8646	LogLevelTransfer = "TRANSFER"
8647)
8648
8649// LogLevel_Values returns all elements of the LogLevel enum
8650func LogLevel_Values() []string {
8651	return []string{
8652		LogLevelOff,
8653		LogLevelBasic,
8654		LogLevelTransfer,
8655	}
8656}
8657
8658const (
8659	// MtimeNone is a Mtime enum value
8660	MtimeNone = "NONE"
8661
8662	// MtimePreserve is a Mtime enum value
8663	MtimePreserve = "PRESERVE"
8664)
8665
8666// Mtime_Values returns all elements of the Mtime enum
8667func Mtime_Values() []string {
8668	return []string{
8669		MtimeNone,
8670		MtimePreserve,
8671	}
8672}
8673
8674const (
8675	// NfsVersionAutomatic is a NfsVersion enum value
8676	NfsVersionAutomatic = "AUTOMATIC"
8677
8678	// NfsVersionNfs3 is a NfsVersion enum value
8679	NfsVersionNfs3 = "NFS3"
8680
8681	// NfsVersionNfs40 is a NfsVersion enum value
8682	NfsVersionNfs40 = "NFS4_0"
8683
8684	// NfsVersionNfs41 is a NfsVersion enum value
8685	NfsVersionNfs41 = "NFS4_1"
8686)
8687
8688// NfsVersion_Values returns all elements of the NfsVersion enum
8689func NfsVersion_Values() []string {
8690	return []string{
8691		NfsVersionAutomatic,
8692		NfsVersionNfs3,
8693		NfsVersionNfs40,
8694		NfsVersionNfs41,
8695	}
8696}
8697
8698const (
8699	// ObjectStorageServerProtocolHttps is a ObjectStorageServerProtocol enum value
8700	ObjectStorageServerProtocolHttps = "HTTPS"
8701
8702	// ObjectStorageServerProtocolHttp is a ObjectStorageServerProtocol enum value
8703	ObjectStorageServerProtocolHttp = "HTTP"
8704)
8705
8706// ObjectStorageServerProtocol_Values returns all elements of the ObjectStorageServerProtocol enum
8707func ObjectStorageServerProtocol_Values() []string {
8708	return []string{
8709		ObjectStorageServerProtocolHttps,
8710		ObjectStorageServerProtocolHttp,
8711	}
8712}
8713
8714const (
8715	// OperatorEquals is a Operator enum value
8716	OperatorEquals = "Equals"
8717
8718	// OperatorNotEquals is a Operator enum value
8719	OperatorNotEquals = "NotEquals"
8720
8721	// OperatorIn is a Operator enum value
8722	OperatorIn = "In"
8723
8724	// OperatorLessThanOrEqual is a Operator enum value
8725	OperatorLessThanOrEqual = "LessThanOrEqual"
8726
8727	// OperatorLessThan is a Operator enum value
8728	OperatorLessThan = "LessThan"
8729
8730	// OperatorGreaterThanOrEqual is a Operator enum value
8731	OperatorGreaterThanOrEqual = "GreaterThanOrEqual"
8732
8733	// OperatorGreaterThan is a Operator enum value
8734	OperatorGreaterThan = "GreaterThan"
8735
8736	// OperatorContains is a Operator enum value
8737	OperatorContains = "Contains"
8738
8739	// OperatorNotContains is a Operator enum value
8740	OperatorNotContains = "NotContains"
8741
8742	// OperatorBeginsWith is a Operator enum value
8743	OperatorBeginsWith = "BeginsWith"
8744)
8745
8746// Operator_Values returns all elements of the Operator enum
8747func Operator_Values() []string {
8748	return []string{
8749		OperatorEquals,
8750		OperatorNotEquals,
8751		OperatorIn,
8752		OperatorLessThanOrEqual,
8753		OperatorLessThan,
8754		OperatorGreaterThanOrEqual,
8755		OperatorGreaterThan,
8756		OperatorContains,
8757		OperatorNotContains,
8758		OperatorBeginsWith,
8759	}
8760}
8761
8762const (
8763	// OverwriteModeAlways is a OverwriteMode enum value
8764	OverwriteModeAlways = "ALWAYS"
8765
8766	// OverwriteModeNever is a OverwriteMode enum value
8767	OverwriteModeNever = "NEVER"
8768)
8769
8770// OverwriteMode_Values returns all elements of the OverwriteMode enum
8771func OverwriteMode_Values() []string {
8772	return []string{
8773		OverwriteModeAlways,
8774		OverwriteModeNever,
8775	}
8776}
8777
8778const (
8779	// PhaseStatusPending is a PhaseStatus enum value
8780	PhaseStatusPending = "PENDING"
8781
8782	// PhaseStatusSuccess is a PhaseStatus enum value
8783	PhaseStatusSuccess = "SUCCESS"
8784
8785	// PhaseStatusError is a PhaseStatus enum value
8786	PhaseStatusError = "ERROR"
8787)
8788
8789// PhaseStatus_Values returns all elements of the PhaseStatus enum
8790func PhaseStatus_Values() []string {
8791	return []string{
8792		PhaseStatusPending,
8793		PhaseStatusSuccess,
8794		PhaseStatusError,
8795	}
8796}
8797
8798const (
8799	// PosixPermissionsNone is a PosixPermissions enum value
8800	PosixPermissionsNone = "NONE"
8801
8802	// PosixPermissionsPreserve is a PosixPermissions enum value
8803	PosixPermissionsPreserve = "PRESERVE"
8804)
8805
8806// PosixPermissions_Values returns all elements of the PosixPermissions enum
8807func PosixPermissions_Values() []string {
8808	return []string{
8809		PosixPermissionsNone,
8810		PosixPermissionsPreserve,
8811	}
8812}
8813
8814const (
8815	// PreserveDeletedFilesPreserve is a PreserveDeletedFiles enum value
8816	PreserveDeletedFilesPreserve = "PRESERVE"
8817
8818	// PreserveDeletedFilesRemove is a PreserveDeletedFiles enum value
8819	PreserveDeletedFilesRemove = "REMOVE"
8820)
8821
8822// PreserveDeletedFiles_Values returns all elements of the PreserveDeletedFiles enum
8823func PreserveDeletedFiles_Values() []string {
8824	return []string{
8825		PreserveDeletedFilesPreserve,
8826		PreserveDeletedFilesRemove,
8827	}
8828}
8829
8830const (
8831	// PreserveDevicesNone is a PreserveDevices enum value
8832	PreserveDevicesNone = "NONE"
8833
8834	// PreserveDevicesPreserve is a PreserveDevices enum value
8835	PreserveDevicesPreserve = "PRESERVE"
8836)
8837
8838// PreserveDevices_Values returns all elements of the PreserveDevices enum
8839func PreserveDevices_Values() []string {
8840	return []string{
8841		PreserveDevicesNone,
8842		PreserveDevicesPreserve,
8843	}
8844}
8845
8846const (
8847	// S3StorageClassStandard is a S3StorageClass enum value
8848	S3StorageClassStandard = "STANDARD"
8849
8850	// S3StorageClassStandardIa is a S3StorageClass enum value
8851	S3StorageClassStandardIa = "STANDARD_IA"
8852
8853	// S3StorageClassOnezoneIa is a S3StorageClass enum value
8854	S3StorageClassOnezoneIa = "ONEZONE_IA"
8855
8856	// S3StorageClassIntelligentTiering is a S3StorageClass enum value
8857	S3StorageClassIntelligentTiering = "INTELLIGENT_TIERING"
8858
8859	// S3StorageClassGlacier is a S3StorageClass enum value
8860	S3StorageClassGlacier = "GLACIER"
8861
8862	// S3StorageClassDeepArchive is a S3StorageClass enum value
8863	S3StorageClassDeepArchive = "DEEP_ARCHIVE"
8864
8865	// S3StorageClassOutposts is a S3StorageClass enum value
8866	S3StorageClassOutposts = "OUTPOSTS"
8867)
8868
8869// S3StorageClass_Values returns all elements of the S3StorageClass enum
8870func S3StorageClass_Values() []string {
8871	return []string{
8872		S3StorageClassStandard,
8873		S3StorageClassStandardIa,
8874		S3StorageClassOnezoneIa,
8875		S3StorageClassIntelligentTiering,
8876		S3StorageClassGlacier,
8877		S3StorageClassDeepArchive,
8878		S3StorageClassOutposts,
8879	}
8880}
8881
8882const (
8883	// SmbVersionAutomatic is a SmbVersion enum value
8884	SmbVersionAutomatic = "AUTOMATIC"
8885
8886	// SmbVersionSmb2 is a SmbVersion enum value
8887	SmbVersionSmb2 = "SMB2"
8888
8889	// SmbVersionSmb3 is a SmbVersion enum value
8890	SmbVersionSmb3 = "SMB3"
8891)
8892
8893// SmbVersion_Values returns all elements of the SmbVersion enum
8894func SmbVersion_Values() []string {
8895	return []string{
8896		SmbVersionAutomatic,
8897		SmbVersionSmb2,
8898		SmbVersionSmb3,
8899	}
8900}
8901
8902const (
8903	// TaskExecutionStatusQueued is a TaskExecutionStatus enum value
8904	TaskExecutionStatusQueued = "QUEUED"
8905
8906	// TaskExecutionStatusLaunching is a TaskExecutionStatus enum value
8907	TaskExecutionStatusLaunching = "LAUNCHING"
8908
8909	// TaskExecutionStatusPreparing is a TaskExecutionStatus enum value
8910	TaskExecutionStatusPreparing = "PREPARING"
8911
8912	// TaskExecutionStatusTransferring is a TaskExecutionStatus enum value
8913	TaskExecutionStatusTransferring = "TRANSFERRING"
8914
8915	// TaskExecutionStatusVerifying is a TaskExecutionStatus enum value
8916	TaskExecutionStatusVerifying = "VERIFYING"
8917
8918	// TaskExecutionStatusSuccess is a TaskExecutionStatus enum value
8919	TaskExecutionStatusSuccess = "SUCCESS"
8920
8921	// TaskExecutionStatusError is a TaskExecutionStatus enum value
8922	TaskExecutionStatusError = "ERROR"
8923)
8924
8925// TaskExecutionStatus_Values returns all elements of the TaskExecutionStatus enum
8926func TaskExecutionStatus_Values() []string {
8927	return []string{
8928		TaskExecutionStatusQueued,
8929		TaskExecutionStatusLaunching,
8930		TaskExecutionStatusPreparing,
8931		TaskExecutionStatusTransferring,
8932		TaskExecutionStatusVerifying,
8933		TaskExecutionStatusSuccess,
8934		TaskExecutionStatusError,
8935	}
8936}
8937
8938const (
8939	// TaskFilterNameLocationId is a TaskFilterName enum value
8940	TaskFilterNameLocationId = "LocationId"
8941
8942	// TaskFilterNameCreationTime is a TaskFilterName enum value
8943	TaskFilterNameCreationTime = "CreationTime"
8944)
8945
8946// TaskFilterName_Values returns all elements of the TaskFilterName enum
8947func TaskFilterName_Values() []string {
8948	return []string{
8949		TaskFilterNameLocationId,
8950		TaskFilterNameCreationTime,
8951	}
8952}
8953
8954const (
8955	// TaskQueueingEnabled is a TaskQueueing enum value
8956	TaskQueueingEnabled = "ENABLED"
8957
8958	// TaskQueueingDisabled is a TaskQueueing enum value
8959	TaskQueueingDisabled = "DISABLED"
8960)
8961
8962// TaskQueueing_Values returns all elements of the TaskQueueing enum
8963func TaskQueueing_Values() []string {
8964	return []string{
8965		TaskQueueingEnabled,
8966		TaskQueueingDisabled,
8967	}
8968}
8969
8970const (
8971	// TaskStatusAvailable is a TaskStatus enum value
8972	TaskStatusAvailable = "AVAILABLE"
8973
8974	// TaskStatusCreating is a TaskStatus enum value
8975	TaskStatusCreating = "CREATING"
8976
8977	// TaskStatusQueued is a TaskStatus enum value
8978	TaskStatusQueued = "QUEUED"
8979
8980	// TaskStatusRunning is a TaskStatus enum value
8981	TaskStatusRunning = "RUNNING"
8982
8983	// TaskStatusUnavailable is a TaskStatus enum value
8984	TaskStatusUnavailable = "UNAVAILABLE"
8985)
8986
8987// TaskStatus_Values returns all elements of the TaskStatus enum
8988func TaskStatus_Values() []string {
8989	return []string{
8990		TaskStatusAvailable,
8991		TaskStatusCreating,
8992		TaskStatusQueued,
8993		TaskStatusRunning,
8994		TaskStatusUnavailable,
8995	}
8996}
8997
8998const (
8999	// TransferModeChanged is a TransferMode enum value
9000	TransferModeChanged = "CHANGED"
9001
9002	// TransferModeAll is a TransferMode enum value
9003	TransferModeAll = "ALL"
9004)
9005
9006// TransferMode_Values returns all elements of the TransferMode enum
9007func TransferMode_Values() []string {
9008	return []string{
9009		TransferModeChanged,
9010		TransferModeAll,
9011	}
9012}
9013
9014const (
9015	// UidNone is a Uid enum value
9016	UidNone = "NONE"
9017
9018	// UidIntValue is a Uid enum value
9019	UidIntValue = "INT_VALUE"
9020
9021	// UidName is a Uid enum value
9022	UidName = "NAME"
9023
9024	// UidBoth is a Uid enum value
9025	UidBoth = "BOTH"
9026)
9027
9028// Uid_Values returns all elements of the Uid enum
9029func Uid_Values() []string {
9030	return []string{
9031		UidNone,
9032		UidIntValue,
9033		UidName,
9034		UidBoth,
9035	}
9036}
9037
9038const (
9039	// VerifyModePointInTimeConsistent is a VerifyMode enum value
9040	VerifyModePointInTimeConsistent = "POINT_IN_TIME_CONSISTENT"
9041
9042	// VerifyModeOnlyFilesTransferred is a VerifyMode enum value
9043	VerifyModeOnlyFilesTransferred = "ONLY_FILES_TRANSFERRED"
9044
9045	// VerifyModeNone is a VerifyMode enum value
9046	VerifyModeNone = "NONE"
9047)
9048
9049// VerifyMode_Values returns all elements of the VerifyMode enum
9050func VerifyMode_Values() []string {
9051	return []string{
9052		VerifyModePointInTimeConsistent,
9053		VerifyModeOnlyFilesTransferred,
9054		VerifyModeNone,
9055	}
9056}
9057