1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package transfer
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 opCreateAccess = "CreateAccess"
17
18// CreateAccessRequest generates a "aws/request.Request" representing the
19// client's request for the CreateAccess 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 CreateAccess for more information on using the CreateAccess
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 CreateAccessRequest method.
34//    req, resp := client.CreateAccessRequest(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/transfer-2018-11-05/CreateAccess
42func (c *Transfer) CreateAccessRequest(input *CreateAccessInput) (req *request.Request, output *CreateAccessOutput) {
43	op := &request.Operation{
44		Name:       opCreateAccess,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CreateAccessInput{}
51	}
52
53	output = &CreateAccessOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateAccess API operation for AWS Transfer Family.
59//
60// Used by administrators to choose which groups in the directory should have
61// access to upload and download files over the enabled protocols using Amazon
62// Web Services Transfer Family. For example, a Microsoft Active Directory might
63// contain 50,000 users, but only a small fraction might need the ability to
64// transfer files to the server. An administrator can use CreateAccess to limit
65// the access to the correct set of users who need this ability.
66//
67// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
68// with awserr.Error's Code and Message methods to get detailed information about
69// the error.
70//
71// See the AWS API reference guide for AWS Transfer Family's
72// API operation CreateAccess for usage and error information.
73//
74// Returned Error Types:
75//   * ServiceUnavailableException
76//   The request has failed because the Amazon Web ServicesTransfer Family service
77//   is not available.
78//
79//   * InternalServiceError
80//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
81//   Family service.
82//
83//   * InvalidRequestException
84//   This exception is thrown when the client submits a malformed request.
85//
86//   * ResourceExistsException
87//   The requested resource does not exist.
88//
89//   * ResourceNotFoundException
90//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
91//   Family service.
92//
93// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateAccess
94func (c *Transfer) CreateAccess(input *CreateAccessInput) (*CreateAccessOutput, error) {
95	req, out := c.CreateAccessRequest(input)
96	return out, req.Send()
97}
98
99// CreateAccessWithContext is the same as CreateAccess with the addition of
100// the ability to pass a context and additional request options.
101//
102// See CreateAccess for details on how to use this API operation.
103//
104// The context must be non-nil and will be used for request cancellation. If
105// the context is nil a panic will occur. In the future the SDK may create
106// sub-contexts for http.Requests. See https://golang.org/pkg/context/
107// for more information on using Contexts.
108func (c *Transfer) CreateAccessWithContext(ctx aws.Context, input *CreateAccessInput, opts ...request.Option) (*CreateAccessOutput, error) {
109	req, out := c.CreateAccessRequest(input)
110	req.SetContext(ctx)
111	req.ApplyOptions(opts...)
112	return out, req.Send()
113}
114
115const opCreateServer = "CreateServer"
116
117// CreateServerRequest generates a "aws/request.Request" representing the
118// client's request for the CreateServer operation. The "output" return
119// value will be populated with the request's response once the request completes
120// successfully.
121//
122// Use "Send" method on the returned Request to send the API call to the service.
123// the "output" return value is not valid until after Send returns without error.
124//
125// See CreateServer for more information on using the CreateServer
126// API call, and error handling.
127//
128// This method is useful when you want to inject custom logic or configuration
129// into the SDK's request lifecycle. Such as custom headers, or retry logic.
130//
131//
132//    // Example sending a request using the CreateServerRequest method.
133//    req, resp := client.CreateServerRequest(params)
134//
135//    err := req.Send()
136//    if err == nil { // resp is now filled
137//        fmt.Println(resp)
138//    }
139//
140// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateServer
141func (c *Transfer) CreateServerRequest(input *CreateServerInput) (req *request.Request, output *CreateServerOutput) {
142	op := &request.Operation{
143		Name:       opCreateServer,
144		HTTPMethod: "POST",
145		HTTPPath:   "/",
146	}
147
148	if input == nil {
149		input = &CreateServerInput{}
150	}
151
152	output = &CreateServerOutput{}
153	req = c.newRequest(op, input, output)
154	return
155}
156
157// CreateServer API operation for AWS Transfer Family.
158//
159// Instantiates an auto-scaling virtual server based on the selected file transfer
160// protocol in Amazon Web Services. When you make updates to your file transfer
161// protocol-enabled server or when you work with users, use the service-generated
162// ServerId property that is assigned to the newly created server.
163//
164// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
165// with awserr.Error's Code and Message methods to get detailed information about
166// the error.
167//
168// See the AWS API reference guide for AWS Transfer Family's
169// API operation CreateServer for usage and error information.
170//
171// Returned Error Types:
172//   * AccessDeniedException
173//   You do not have sufficient access to perform this action.
174//
175//   * ServiceUnavailableException
176//   The request has failed because the Amazon Web ServicesTransfer Family service
177//   is not available.
178//
179//   * InternalServiceError
180//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
181//   Family service.
182//
183//   * InvalidRequestException
184//   This exception is thrown when the client submits a malformed request.
185//
186//   * ResourceExistsException
187//   The requested resource does not exist.
188//
189//   * ResourceNotFoundException
190//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
191//   Family service.
192//
193//   * ThrottlingException
194//   The request was denied due to request throttling.
195//
196//   HTTP Status Code: 400
197//
198// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateServer
199func (c *Transfer) CreateServer(input *CreateServerInput) (*CreateServerOutput, error) {
200	req, out := c.CreateServerRequest(input)
201	return out, req.Send()
202}
203
204// CreateServerWithContext is the same as CreateServer with the addition of
205// the ability to pass a context and additional request options.
206//
207// See CreateServer for details on how to use this API operation.
208//
209// The context must be non-nil and will be used for request cancellation. If
210// the context is nil a panic will occur. In the future the SDK may create
211// sub-contexts for http.Requests. See https://golang.org/pkg/context/
212// for more information on using Contexts.
213func (c *Transfer) CreateServerWithContext(ctx aws.Context, input *CreateServerInput, opts ...request.Option) (*CreateServerOutput, error) {
214	req, out := c.CreateServerRequest(input)
215	req.SetContext(ctx)
216	req.ApplyOptions(opts...)
217	return out, req.Send()
218}
219
220const opCreateUser = "CreateUser"
221
222// CreateUserRequest generates a "aws/request.Request" representing the
223// client's request for the CreateUser operation. The "output" return
224// value will be populated with the request's response once the request completes
225// successfully.
226//
227// Use "Send" method on the returned Request to send the API call to the service.
228// the "output" return value is not valid until after Send returns without error.
229//
230// See CreateUser for more information on using the CreateUser
231// API call, and error handling.
232//
233// This method is useful when you want to inject custom logic or configuration
234// into the SDK's request lifecycle. Such as custom headers, or retry logic.
235//
236//
237//    // Example sending a request using the CreateUserRequest method.
238//    req, resp := client.CreateUserRequest(params)
239//
240//    err := req.Send()
241//    if err == nil { // resp is now filled
242//        fmt.Println(resp)
243//    }
244//
245// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateUser
246func (c *Transfer) CreateUserRequest(input *CreateUserInput) (req *request.Request, output *CreateUserOutput) {
247	op := &request.Operation{
248		Name:       opCreateUser,
249		HTTPMethod: "POST",
250		HTTPPath:   "/",
251	}
252
253	if input == nil {
254		input = &CreateUserInput{}
255	}
256
257	output = &CreateUserOutput{}
258	req = c.newRequest(op, input, output)
259	return
260}
261
262// CreateUser API operation for AWS Transfer Family.
263//
264// Creates a user and associates them with an existing file transfer protocol-enabled
265// server. You can only create and associate users with servers that have the
266// IdentityProviderType set to SERVICE_MANAGED. Using parameters for CreateUser,
267// you can specify the user name, set the home directory, store the user's public
268// key, and assign the user's Amazon Web Services Identity and Access Management
269// (IAM) role. You can also optionally add a session policy, and assign metadata
270// with tags that can be used to group and search for users.
271//
272// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
273// with awserr.Error's Code and Message methods to get detailed information about
274// the error.
275//
276// See the AWS API reference guide for AWS Transfer Family's
277// API operation CreateUser for usage and error information.
278//
279// Returned Error Types:
280//   * ServiceUnavailableException
281//   The request has failed because the Amazon Web ServicesTransfer Family service
282//   is not available.
283//
284//   * InternalServiceError
285//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
286//   Family service.
287//
288//   * InvalidRequestException
289//   This exception is thrown when the client submits a malformed request.
290//
291//   * ResourceExistsException
292//   The requested resource does not exist.
293//
294//   * ResourceNotFoundException
295//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
296//   Family service.
297//
298// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateUser
299func (c *Transfer) CreateUser(input *CreateUserInput) (*CreateUserOutput, error) {
300	req, out := c.CreateUserRequest(input)
301	return out, req.Send()
302}
303
304// CreateUserWithContext is the same as CreateUser with the addition of
305// the ability to pass a context and additional request options.
306//
307// See CreateUser for details on how to use this API operation.
308//
309// The context must be non-nil and will be used for request cancellation. If
310// the context is nil a panic will occur. In the future the SDK may create
311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
312// for more information on using Contexts.
313func (c *Transfer) CreateUserWithContext(ctx aws.Context, input *CreateUserInput, opts ...request.Option) (*CreateUserOutput, error) {
314	req, out := c.CreateUserRequest(input)
315	req.SetContext(ctx)
316	req.ApplyOptions(opts...)
317	return out, req.Send()
318}
319
320const opCreateWorkflow = "CreateWorkflow"
321
322// CreateWorkflowRequest generates a "aws/request.Request" representing the
323// client's request for the CreateWorkflow operation. The "output" return
324// value will be populated with the request's response once the request completes
325// successfully.
326//
327// Use "Send" method on the returned Request to send the API call to the service.
328// the "output" return value is not valid until after Send returns without error.
329//
330// See CreateWorkflow for more information on using the CreateWorkflow
331// API call, and error handling.
332//
333// This method is useful when you want to inject custom logic or configuration
334// into the SDK's request lifecycle. Such as custom headers, or retry logic.
335//
336//
337//    // Example sending a request using the CreateWorkflowRequest method.
338//    req, resp := client.CreateWorkflowRequest(params)
339//
340//    err := req.Send()
341//    if err == nil { // resp is now filled
342//        fmt.Println(resp)
343//    }
344//
345// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateWorkflow
346func (c *Transfer) CreateWorkflowRequest(input *CreateWorkflowInput) (req *request.Request, output *CreateWorkflowOutput) {
347	op := &request.Operation{
348		Name:       opCreateWorkflow,
349		HTTPMethod: "POST",
350		HTTPPath:   "/",
351	}
352
353	if input == nil {
354		input = &CreateWorkflowInput{}
355	}
356
357	output = &CreateWorkflowOutput{}
358	req = c.newRequest(op, input, output)
359	return
360}
361
362// CreateWorkflow API operation for AWS Transfer Family.
363//
364// Allows you to create a workflow with specified steps and step details the
365// workflow invokes after file transfer completes. After creating a workflow,
366// you can associate the workflow created with any transfer servers by specifying
367// the workflow-details field in CreateServer and UpdateServer operations.
368//
369// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
370// with awserr.Error's Code and Message methods to get detailed information about
371// the error.
372//
373// See the AWS API reference guide for AWS Transfer Family's
374// API operation CreateWorkflow for usage and error information.
375//
376// Returned Error Types:
377//   * AccessDeniedException
378//   You do not have sufficient access to perform this action.
379//
380//   * ServiceUnavailableException
381//   The request has failed because the Amazon Web ServicesTransfer Family service
382//   is not available.
383//
384//   * InternalServiceError
385//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
386//   Family service.
387//
388//   * InvalidRequestException
389//   This exception is thrown when the client submits a malformed request.
390//
391//   * ResourceExistsException
392//   The requested resource does not exist.
393//
394//   * ThrottlingException
395//   The request was denied due to request throttling.
396//
397//   HTTP Status Code: 400
398//
399// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/CreateWorkflow
400func (c *Transfer) CreateWorkflow(input *CreateWorkflowInput) (*CreateWorkflowOutput, error) {
401	req, out := c.CreateWorkflowRequest(input)
402	return out, req.Send()
403}
404
405// CreateWorkflowWithContext is the same as CreateWorkflow with the addition of
406// the ability to pass a context and additional request options.
407//
408// See CreateWorkflow for details on how to use this API operation.
409//
410// The context must be non-nil and will be used for request cancellation. If
411// the context is nil a panic will occur. In the future the SDK may create
412// sub-contexts for http.Requests. See https://golang.org/pkg/context/
413// for more information on using Contexts.
414func (c *Transfer) CreateWorkflowWithContext(ctx aws.Context, input *CreateWorkflowInput, opts ...request.Option) (*CreateWorkflowOutput, error) {
415	req, out := c.CreateWorkflowRequest(input)
416	req.SetContext(ctx)
417	req.ApplyOptions(opts...)
418	return out, req.Send()
419}
420
421const opDeleteAccess = "DeleteAccess"
422
423// DeleteAccessRequest generates a "aws/request.Request" representing the
424// client's request for the DeleteAccess operation. The "output" return
425// value will be populated with the request's response once the request completes
426// successfully.
427//
428// Use "Send" method on the returned Request to send the API call to the service.
429// the "output" return value is not valid until after Send returns without error.
430//
431// See DeleteAccess for more information on using the DeleteAccess
432// API call, and error handling.
433//
434// This method is useful when you want to inject custom logic or configuration
435// into the SDK's request lifecycle. Such as custom headers, or retry logic.
436//
437//
438//    // Example sending a request using the DeleteAccessRequest method.
439//    req, resp := client.DeleteAccessRequest(params)
440//
441//    err := req.Send()
442//    if err == nil { // resp is now filled
443//        fmt.Println(resp)
444//    }
445//
446// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteAccess
447func (c *Transfer) DeleteAccessRequest(input *DeleteAccessInput) (req *request.Request, output *DeleteAccessOutput) {
448	op := &request.Operation{
449		Name:       opDeleteAccess,
450		HTTPMethod: "POST",
451		HTTPPath:   "/",
452	}
453
454	if input == nil {
455		input = &DeleteAccessInput{}
456	}
457
458	output = &DeleteAccessOutput{}
459	req = c.newRequest(op, input, output)
460	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
461	return
462}
463
464// DeleteAccess API operation for AWS Transfer Family.
465//
466// Allows you to delete the access specified in the ServerID and ExternalID
467// parameters.
468//
469// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
470// with awserr.Error's Code and Message methods to get detailed information about
471// the error.
472//
473// See the AWS API reference guide for AWS Transfer Family's
474// API operation DeleteAccess for usage and error information.
475//
476// Returned Error Types:
477//   * ServiceUnavailableException
478//   The request has failed because the Amazon Web ServicesTransfer Family service
479//   is not available.
480//
481//   * InternalServiceError
482//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
483//   Family service.
484//
485//   * InvalidRequestException
486//   This exception is thrown when the client submits a malformed request.
487//
488//   * ResourceNotFoundException
489//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
490//   Family service.
491//
492// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteAccess
493func (c *Transfer) DeleteAccess(input *DeleteAccessInput) (*DeleteAccessOutput, error) {
494	req, out := c.DeleteAccessRequest(input)
495	return out, req.Send()
496}
497
498// DeleteAccessWithContext is the same as DeleteAccess with the addition of
499// the ability to pass a context and additional request options.
500//
501// See DeleteAccess for details on how to use this API operation.
502//
503// The context must be non-nil and will be used for request cancellation. If
504// the context is nil a panic will occur. In the future the SDK may create
505// sub-contexts for http.Requests. See https://golang.org/pkg/context/
506// for more information on using Contexts.
507func (c *Transfer) DeleteAccessWithContext(ctx aws.Context, input *DeleteAccessInput, opts ...request.Option) (*DeleteAccessOutput, error) {
508	req, out := c.DeleteAccessRequest(input)
509	req.SetContext(ctx)
510	req.ApplyOptions(opts...)
511	return out, req.Send()
512}
513
514const opDeleteServer = "DeleteServer"
515
516// DeleteServerRequest generates a "aws/request.Request" representing the
517// client's request for the DeleteServer operation. The "output" return
518// value will be populated with the request's response once the request completes
519// successfully.
520//
521// Use "Send" method on the returned Request to send the API call to the service.
522// the "output" return value is not valid until after Send returns without error.
523//
524// See DeleteServer for more information on using the DeleteServer
525// API call, and error handling.
526//
527// This method is useful when you want to inject custom logic or configuration
528// into the SDK's request lifecycle. Such as custom headers, or retry logic.
529//
530//
531//    // Example sending a request using the DeleteServerRequest method.
532//    req, resp := client.DeleteServerRequest(params)
533//
534//    err := req.Send()
535//    if err == nil { // resp is now filled
536//        fmt.Println(resp)
537//    }
538//
539// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteServer
540func (c *Transfer) DeleteServerRequest(input *DeleteServerInput) (req *request.Request, output *DeleteServerOutput) {
541	op := &request.Operation{
542		Name:       opDeleteServer,
543		HTTPMethod: "POST",
544		HTTPPath:   "/",
545	}
546
547	if input == nil {
548		input = &DeleteServerInput{}
549	}
550
551	output = &DeleteServerOutput{}
552	req = c.newRequest(op, input, output)
553	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
554	return
555}
556
557// DeleteServer API operation for AWS Transfer Family.
558//
559// Deletes the file transfer protocol-enabled server that you specify.
560//
561// No response returns from this operation.
562//
563// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
564// with awserr.Error's Code and Message methods to get detailed information about
565// the error.
566//
567// See the AWS API reference guide for AWS Transfer Family's
568// API operation DeleteServer for usage and error information.
569//
570// Returned Error Types:
571//   * AccessDeniedException
572//   You do not have sufficient access to perform this action.
573//
574//   * ServiceUnavailableException
575//   The request has failed because the Amazon Web ServicesTransfer Family service
576//   is not available.
577//
578//   * InternalServiceError
579//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
580//   Family service.
581//
582//   * InvalidRequestException
583//   This exception is thrown when the client submits a malformed request.
584//
585//   * ResourceNotFoundException
586//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
587//   Family service.
588//
589// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteServer
590func (c *Transfer) DeleteServer(input *DeleteServerInput) (*DeleteServerOutput, error) {
591	req, out := c.DeleteServerRequest(input)
592	return out, req.Send()
593}
594
595// DeleteServerWithContext is the same as DeleteServer with the addition of
596// the ability to pass a context and additional request options.
597//
598// See DeleteServer for details on how to use this API operation.
599//
600// The context must be non-nil and will be used for request cancellation. If
601// the context is nil a panic will occur. In the future the SDK may create
602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
603// for more information on using Contexts.
604func (c *Transfer) DeleteServerWithContext(ctx aws.Context, input *DeleteServerInput, opts ...request.Option) (*DeleteServerOutput, error) {
605	req, out := c.DeleteServerRequest(input)
606	req.SetContext(ctx)
607	req.ApplyOptions(opts...)
608	return out, req.Send()
609}
610
611const opDeleteSshPublicKey = "DeleteSshPublicKey"
612
613// DeleteSshPublicKeyRequest generates a "aws/request.Request" representing the
614// client's request for the DeleteSshPublicKey operation. The "output" return
615// value will be populated with the request's response once the request completes
616// successfully.
617//
618// Use "Send" method on the returned Request to send the API call to the service.
619// the "output" return value is not valid until after Send returns without error.
620//
621// See DeleteSshPublicKey for more information on using the DeleteSshPublicKey
622// API call, and error handling.
623//
624// This method is useful when you want to inject custom logic or configuration
625// into the SDK's request lifecycle. Such as custom headers, or retry logic.
626//
627//
628//    // Example sending a request using the DeleteSshPublicKeyRequest method.
629//    req, resp := client.DeleteSshPublicKeyRequest(params)
630//
631//    err := req.Send()
632//    if err == nil { // resp is now filled
633//        fmt.Println(resp)
634//    }
635//
636// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteSshPublicKey
637func (c *Transfer) DeleteSshPublicKeyRequest(input *DeleteSshPublicKeyInput) (req *request.Request, output *DeleteSshPublicKeyOutput) {
638	op := &request.Operation{
639		Name:       opDeleteSshPublicKey,
640		HTTPMethod: "POST",
641		HTTPPath:   "/",
642	}
643
644	if input == nil {
645		input = &DeleteSshPublicKeyInput{}
646	}
647
648	output = &DeleteSshPublicKeyOutput{}
649	req = c.newRequest(op, input, output)
650	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
651	return
652}
653
654// DeleteSshPublicKey API operation for AWS Transfer Family.
655//
656// Deletes a user's Secure Shell (SSH) public key.
657//
658// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
659// with awserr.Error's Code and Message methods to get detailed information about
660// the error.
661//
662// See the AWS API reference guide for AWS Transfer Family's
663// API operation DeleteSshPublicKey for usage and error information.
664//
665// Returned Error Types:
666//   * ServiceUnavailableException
667//   The request has failed because the Amazon Web ServicesTransfer Family service
668//   is not available.
669//
670//   * InternalServiceError
671//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
672//   Family service.
673//
674//   * InvalidRequestException
675//   This exception is thrown when the client submits a malformed request.
676//
677//   * ResourceNotFoundException
678//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
679//   Family service.
680//
681//   * ThrottlingException
682//   The request was denied due to request throttling.
683//
684//   HTTP Status Code: 400
685//
686// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteSshPublicKey
687func (c *Transfer) DeleteSshPublicKey(input *DeleteSshPublicKeyInput) (*DeleteSshPublicKeyOutput, error) {
688	req, out := c.DeleteSshPublicKeyRequest(input)
689	return out, req.Send()
690}
691
692// DeleteSshPublicKeyWithContext is the same as DeleteSshPublicKey with the addition of
693// the ability to pass a context and additional request options.
694//
695// See DeleteSshPublicKey for details on how to use this API operation.
696//
697// The context must be non-nil and will be used for request cancellation. If
698// the context is nil a panic will occur. In the future the SDK may create
699// sub-contexts for http.Requests. See https://golang.org/pkg/context/
700// for more information on using Contexts.
701func (c *Transfer) DeleteSshPublicKeyWithContext(ctx aws.Context, input *DeleteSshPublicKeyInput, opts ...request.Option) (*DeleteSshPublicKeyOutput, error) {
702	req, out := c.DeleteSshPublicKeyRequest(input)
703	req.SetContext(ctx)
704	req.ApplyOptions(opts...)
705	return out, req.Send()
706}
707
708const opDeleteUser = "DeleteUser"
709
710// DeleteUserRequest generates a "aws/request.Request" representing the
711// client's request for the DeleteUser operation. The "output" return
712// value will be populated with the request's response once the request completes
713// successfully.
714//
715// Use "Send" method on the returned Request to send the API call to the service.
716// the "output" return value is not valid until after Send returns without error.
717//
718// See DeleteUser for more information on using the DeleteUser
719// API call, and error handling.
720//
721// This method is useful when you want to inject custom logic or configuration
722// into the SDK's request lifecycle. Such as custom headers, or retry logic.
723//
724//
725//    // Example sending a request using the DeleteUserRequest method.
726//    req, resp := client.DeleteUserRequest(params)
727//
728//    err := req.Send()
729//    if err == nil { // resp is now filled
730//        fmt.Println(resp)
731//    }
732//
733// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteUser
734func (c *Transfer) DeleteUserRequest(input *DeleteUserInput) (req *request.Request, output *DeleteUserOutput) {
735	op := &request.Operation{
736		Name:       opDeleteUser,
737		HTTPMethod: "POST",
738		HTTPPath:   "/",
739	}
740
741	if input == nil {
742		input = &DeleteUserInput{}
743	}
744
745	output = &DeleteUserOutput{}
746	req = c.newRequest(op, input, output)
747	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
748	return
749}
750
751// DeleteUser API operation for AWS Transfer Family.
752//
753// Deletes the user belonging to a file transfer protocol-enabled server you
754// specify.
755//
756// No response returns from this operation.
757//
758// When you delete a user from a server, the user's information is lost.
759//
760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
761// with awserr.Error's Code and Message methods to get detailed information about
762// the error.
763//
764// See the AWS API reference guide for AWS Transfer Family's
765// API operation DeleteUser for usage and error information.
766//
767// Returned Error Types:
768//   * ServiceUnavailableException
769//   The request has failed because the Amazon Web ServicesTransfer Family service
770//   is not available.
771//
772//   * InternalServiceError
773//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
774//   Family service.
775//
776//   * InvalidRequestException
777//   This exception is thrown when the client submits a malformed request.
778//
779//   * ResourceNotFoundException
780//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
781//   Family service.
782//
783// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteUser
784func (c *Transfer) DeleteUser(input *DeleteUserInput) (*DeleteUserOutput, error) {
785	req, out := c.DeleteUserRequest(input)
786	return out, req.Send()
787}
788
789// DeleteUserWithContext is the same as DeleteUser with the addition of
790// the ability to pass a context and additional request options.
791//
792// See DeleteUser for details on how to use this API operation.
793//
794// The context must be non-nil and will be used for request cancellation. If
795// the context is nil a panic will occur. In the future the SDK may create
796// sub-contexts for http.Requests. See https://golang.org/pkg/context/
797// for more information on using Contexts.
798func (c *Transfer) DeleteUserWithContext(ctx aws.Context, input *DeleteUserInput, opts ...request.Option) (*DeleteUserOutput, error) {
799	req, out := c.DeleteUserRequest(input)
800	req.SetContext(ctx)
801	req.ApplyOptions(opts...)
802	return out, req.Send()
803}
804
805const opDeleteWorkflow = "DeleteWorkflow"
806
807// DeleteWorkflowRequest generates a "aws/request.Request" representing the
808// client's request for the DeleteWorkflow operation. The "output" return
809// value will be populated with the request's response once the request completes
810// successfully.
811//
812// Use "Send" method on the returned Request to send the API call to the service.
813// the "output" return value is not valid until after Send returns without error.
814//
815// See DeleteWorkflow for more information on using the DeleteWorkflow
816// API call, and error handling.
817//
818// This method is useful when you want to inject custom logic or configuration
819// into the SDK's request lifecycle. Such as custom headers, or retry logic.
820//
821//
822//    // Example sending a request using the DeleteWorkflowRequest method.
823//    req, resp := client.DeleteWorkflowRequest(params)
824//
825//    err := req.Send()
826//    if err == nil { // resp is now filled
827//        fmt.Println(resp)
828//    }
829//
830// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteWorkflow
831func (c *Transfer) DeleteWorkflowRequest(input *DeleteWorkflowInput) (req *request.Request, output *DeleteWorkflowOutput) {
832	op := &request.Operation{
833		Name:       opDeleteWorkflow,
834		HTTPMethod: "POST",
835		HTTPPath:   "/",
836	}
837
838	if input == nil {
839		input = &DeleteWorkflowInput{}
840	}
841
842	output = &DeleteWorkflowOutput{}
843	req = c.newRequest(op, input, output)
844	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
845	return
846}
847
848// DeleteWorkflow API operation for AWS Transfer Family.
849//
850// Deletes the specified workflow.
851//
852// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
853// with awserr.Error's Code and Message methods to get detailed information about
854// the error.
855//
856// See the AWS API reference guide for AWS Transfer Family's
857// API operation DeleteWorkflow for usage and error information.
858//
859// Returned Error Types:
860//   * AccessDeniedException
861//   You do not have sufficient access to perform this action.
862//
863//   * ServiceUnavailableException
864//   The request has failed because the Amazon Web ServicesTransfer Family service
865//   is not available.
866//
867//   * InternalServiceError
868//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
869//   Family service.
870//
871//   * InvalidRequestException
872//   This exception is thrown when the client submits a malformed request.
873//
874//   * ResourceNotFoundException
875//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
876//   Family service.
877//
878// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DeleteWorkflow
879func (c *Transfer) DeleteWorkflow(input *DeleteWorkflowInput) (*DeleteWorkflowOutput, error) {
880	req, out := c.DeleteWorkflowRequest(input)
881	return out, req.Send()
882}
883
884// DeleteWorkflowWithContext is the same as DeleteWorkflow with the addition of
885// the ability to pass a context and additional request options.
886//
887// See DeleteWorkflow for details on how to use this API operation.
888//
889// The context must be non-nil and will be used for request cancellation. If
890// the context is nil a panic will occur. In the future the SDK may create
891// sub-contexts for http.Requests. See https://golang.org/pkg/context/
892// for more information on using Contexts.
893func (c *Transfer) DeleteWorkflowWithContext(ctx aws.Context, input *DeleteWorkflowInput, opts ...request.Option) (*DeleteWorkflowOutput, error) {
894	req, out := c.DeleteWorkflowRequest(input)
895	req.SetContext(ctx)
896	req.ApplyOptions(opts...)
897	return out, req.Send()
898}
899
900const opDescribeAccess = "DescribeAccess"
901
902// DescribeAccessRequest generates a "aws/request.Request" representing the
903// client's request for the DescribeAccess operation. The "output" return
904// value will be populated with the request's response once the request completes
905// successfully.
906//
907// Use "Send" method on the returned Request to send the API call to the service.
908// the "output" return value is not valid until after Send returns without error.
909//
910// See DescribeAccess for more information on using the DescribeAccess
911// API call, and error handling.
912//
913// This method is useful when you want to inject custom logic or configuration
914// into the SDK's request lifecycle. Such as custom headers, or retry logic.
915//
916//
917//    // Example sending a request using the DescribeAccessRequest method.
918//    req, resp := client.DescribeAccessRequest(params)
919//
920//    err := req.Send()
921//    if err == nil { // resp is now filled
922//        fmt.Println(resp)
923//    }
924//
925// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeAccess
926func (c *Transfer) DescribeAccessRequest(input *DescribeAccessInput) (req *request.Request, output *DescribeAccessOutput) {
927	op := &request.Operation{
928		Name:       opDescribeAccess,
929		HTTPMethod: "POST",
930		HTTPPath:   "/",
931	}
932
933	if input == nil {
934		input = &DescribeAccessInput{}
935	}
936
937	output = &DescribeAccessOutput{}
938	req = c.newRequest(op, input, output)
939	return
940}
941
942// DescribeAccess API operation for AWS Transfer Family.
943//
944// Describes the access that is assigned to the specific file transfer protocol-enabled
945// server, as identified by its ServerId property and its ExternalID.
946//
947// The response from this call returns the properties of the access that is
948// associated with the ServerId value that was specified.
949//
950// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
951// with awserr.Error's Code and Message methods to get detailed information about
952// the error.
953//
954// See the AWS API reference guide for AWS Transfer Family's
955// API operation DescribeAccess for usage and error information.
956//
957// Returned Error Types:
958//   * ServiceUnavailableException
959//   The request has failed because the Amazon Web ServicesTransfer Family service
960//   is not available.
961//
962//   * InternalServiceError
963//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
964//   Family service.
965//
966//   * InvalidRequestException
967//   This exception is thrown when the client submits a malformed request.
968//
969//   * ResourceNotFoundException
970//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
971//   Family service.
972//
973// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeAccess
974func (c *Transfer) DescribeAccess(input *DescribeAccessInput) (*DescribeAccessOutput, error) {
975	req, out := c.DescribeAccessRequest(input)
976	return out, req.Send()
977}
978
979// DescribeAccessWithContext is the same as DescribeAccess with the addition of
980// the ability to pass a context and additional request options.
981//
982// See DescribeAccess for details on how to use this API operation.
983//
984// The context must be non-nil and will be used for request cancellation. If
985// the context is nil a panic will occur. In the future the SDK may create
986// sub-contexts for http.Requests. See https://golang.org/pkg/context/
987// for more information on using Contexts.
988func (c *Transfer) DescribeAccessWithContext(ctx aws.Context, input *DescribeAccessInput, opts ...request.Option) (*DescribeAccessOutput, error) {
989	req, out := c.DescribeAccessRequest(input)
990	req.SetContext(ctx)
991	req.ApplyOptions(opts...)
992	return out, req.Send()
993}
994
995const opDescribeExecution = "DescribeExecution"
996
997// DescribeExecutionRequest generates a "aws/request.Request" representing the
998// client's request for the DescribeExecution operation. The "output" return
999// value will be populated with the request's response once the request completes
1000// successfully.
1001//
1002// Use "Send" method on the returned Request to send the API call to the service.
1003// the "output" return value is not valid until after Send returns without error.
1004//
1005// See DescribeExecution for more information on using the DescribeExecution
1006// API call, and error handling.
1007//
1008// This method is useful when you want to inject custom logic or configuration
1009// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1010//
1011//
1012//    // Example sending a request using the DescribeExecutionRequest method.
1013//    req, resp := client.DescribeExecutionRequest(params)
1014//
1015//    err := req.Send()
1016//    if err == nil { // resp is now filled
1017//        fmt.Println(resp)
1018//    }
1019//
1020// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeExecution
1021func (c *Transfer) DescribeExecutionRequest(input *DescribeExecutionInput) (req *request.Request, output *DescribeExecutionOutput) {
1022	op := &request.Operation{
1023		Name:       opDescribeExecution,
1024		HTTPMethod: "POST",
1025		HTTPPath:   "/",
1026	}
1027
1028	if input == nil {
1029		input = &DescribeExecutionInput{}
1030	}
1031
1032	output = &DescribeExecutionOutput{}
1033	req = c.newRequest(op, input, output)
1034	return
1035}
1036
1037// DescribeExecution API operation for AWS Transfer Family.
1038//
1039// You can use DescribeExecution to check the details of the execution of the
1040// specified workflow.
1041//
1042// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1043// with awserr.Error's Code and Message methods to get detailed information about
1044// the error.
1045//
1046// See the AWS API reference guide for AWS Transfer Family's
1047// API operation DescribeExecution for usage and error information.
1048//
1049// Returned Error Types:
1050//   * ServiceUnavailableException
1051//   The request has failed because the Amazon Web ServicesTransfer Family service
1052//   is not available.
1053//
1054//   * InternalServiceError
1055//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
1056//   Family service.
1057//
1058//   * InvalidRequestException
1059//   This exception is thrown when the client submits a malformed request.
1060//
1061//   * ResourceNotFoundException
1062//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
1063//   Family service.
1064//
1065// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeExecution
1066func (c *Transfer) DescribeExecution(input *DescribeExecutionInput) (*DescribeExecutionOutput, error) {
1067	req, out := c.DescribeExecutionRequest(input)
1068	return out, req.Send()
1069}
1070
1071// DescribeExecutionWithContext is the same as DescribeExecution with the addition of
1072// the ability to pass a context and additional request options.
1073//
1074// See DescribeExecution for details on how to use this API operation.
1075//
1076// The context must be non-nil and will be used for request cancellation. If
1077// the context is nil a panic will occur. In the future the SDK may create
1078// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1079// for more information on using Contexts.
1080func (c *Transfer) DescribeExecutionWithContext(ctx aws.Context, input *DescribeExecutionInput, opts ...request.Option) (*DescribeExecutionOutput, error) {
1081	req, out := c.DescribeExecutionRequest(input)
1082	req.SetContext(ctx)
1083	req.ApplyOptions(opts...)
1084	return out, req.Send()
1085}
1086
1087const opDescribeSecurityPolicy = "DescribeSecurityPolicy"
1088
1089// DescribeSecurityPolicyRequest generates a "aws/request.Request" representing the
1090// client's request for the DescribeSecurityPolicy operation. The "output" return
1091// value will be populated with the request's response once the request completes
1092// successfully.
1093//
1094// Use "Send" method on the returned Request to send the API call to the service.
1095// the "output" return value is not valid until after Send returns without error.
1096//
1097// See DescribeSecurityPolicy for more information on using the DescribeSecurityPolicy
1098// API call, and error handling.
1099//
1100// This method is useful when you want to inject custom logic or configuration
1101// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1102//
1103//
1104//    // Example sending a request using the DescribeSecurityPolicyRequest method.
1105//    req, resp := client.DescribeSecurityPolicyRequest(params)
1106//
1107//    err := req.Send()
1108//    if err == nil { // resp is now filled
1109//        fmt.Println(resp)
1110//    }
1111//
1112// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeSecurityPolicy
1113func (c *Transfer) DescribeSecurityPolicyRequest(input *DescribeSecurityPolicyInput) (req *request.Request, output *DescribeSecurityPolicyOutput) {
1114	op := &request.Operation{
1115		Name:       opDescribeSecurityPolicy,
1116		HTTPMethod: "POST",
1117		HTTPPath:   "/",
1118	}
1119
1120	if input == nil {
1121		input = &DescribeSecurityPolicyInput{}
1122	}
1123
1124	output = &DescribeSecurityPolicyOutput{}
1125	req = c.newRequest(op, input, output)
1126	return
1127}
1128
1129// DescribeSecurityPolicy API operation for AWS Transfer Family.
1130//
1131// Describes the security policy that is attached to your file transfer protocol-enabled
1132// server. The response contains a description of the security policy's properties.
1133// For more information about security policies, see Working with security policies
1134// (https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html).
1135//
1136// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1137// with awserr.Error's Code and Message methods to get detailed information about
1138// the error.
1139//
1140// See the AWS API reference guide for AWS Transfer Family's
1141// API operation DescribeSecurityPolicy for usage and error information.
1142//
1143// Returned Error Types:
1144//   * ServiceUnavailableException
1145//   The request has failed because the Amazon Web ServicesTransfer Family service
1146//   is not available.
1147//
1148//   * InternalServiceError
1149//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
1150//   Family service.
1151//
1152//   * InvalidRequestException
1153//   This exception is thrown when the client submits a malformed request.
1154//
1155//   * ResourceNotFoundException
1156//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
1157//   Family service.
1158//
1159// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeSecurityPolicy
1160func (c *Transfer) DescribeSecurityPolicy(input *DescribeSecurityPolicyInput) (*DescribeSecurityPolicyOutput, error) {
1161	req, out := c.DescribeSecurityPolicyRequest(input)
1162	return out, req.Send()
1163}
1164
1165// DescribeSecurityPolicyWithContext is the same as DescribeSecurityPolicy with the addition of
1166// the ability to pass a context and additional request options.
1167//
1168// See DescribeSecurityPolicy for details on how to use this API operation.
1169//
1170// The context must be non-nil and will be used for request cancellation. If
1171// the context is nil a panic will occur. In the future the SDK may create
1172// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1173// for more information on using Contexts.
1174func (c *Transfer) DescribeSecurityPolicyWithContext(ctx aws.Context, input *DescribeSecurityPolicyInput, opts ...request.Option) (*DescribeSecurityPolicyOutput, error) {
1175	req, out := c.DescribeSecurityPolicyRequest(input)
1176	req.SetContext(ctx)
1177	req.ApplyOptions(opts...)
1178	return out, req.Send()
1179}
1180
1181const opDescribeServer = "DescribeServer"
1182
1183// DescribeServerRequest generates a "aws/request.Request" representing the
1184// client's request for the DescribeServer operation. The "output" return
1185// value will be populated with the request's response once the request completes
1186// successfully.
1187//
1188// Use "Send" method on the returned Request to send the API call to the service.
1189// the "output" return value is not valid until after Send returns without error.
1190//
1191// See DescribeServer for more information on using the DescribeServer
1192// API call, and error handling.
1193//
1194// This method is useful when you want to inject custom logic or configuration
1195// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1196//
1197//
1198//    // Example sending a request using the DescribeServerRequest method.
1199//    req, resp := client.DescribeServerRequest(params)
1200//
1201//    err := req.Send()
1202//    if err == nil { // resp is now filled
1203//        fmt.Println(resp)
1204//    }
1205//
1206// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeServer
1207func (c *Transfer) DescribeServerRequest(input *DescribeServerInput) (req *request.Request, output *DescribeServerOutput) {
1208	op := &request.Operation{
1209		Name:       opDescribeServer,
1210		HTTPMethod: "POST",
1211		HTTPPath:   "/",
1212	}
1213
1214	if input == nil {
1215		input = &DescribeServerInput{}
1216	}
1217
1218	output = &DescribeServerOutput{}
1219	req = c.newRequest(op, input, output)
1220	return
1221}
1222
1223// DescribeServer API operation for AWS Transfer Family.
1224//
1225// Describes a file transfer protocol-enabled server that you specify by passing
1226// the ServerId parameter.
1227//
1228// The response contains a description of a server's properties. When you set
1229// EndpointType to VPC, the response will contain the EndpointDetails.
1230//
1231// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1232// with awserr.Error's Code and Message methods to get detailed information about
1233// the error.
1234//
1235// See the AWS API reference guide for AWS Transfer Family's
1236// API operation DescribeServer for usage and error information.
1237//
1238// Returned Error Types:
1239//   * ServiceUnavailableException
1240//   The request has failed because the Amazon Web ServicesTransfer Family service
1241//   is not available.
1242//
1243//   * InternalServiceError
1244//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
1245//   Family service.
1246//
1247//   * InvalidRequestException
1248//   This exception is thrown when the client submits a malformed request.
1249//
1250//   * ResourceNotFoundException
1251//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
1252//   Family service.
1253//
1254// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeServer
1255func (c *Transfer) DescribeServer(input *DescribeServerInput) (*DescribeServerOutput, error) {
1256	req, out := c.DescribeServerRequest(input)
1257	return out, req.Send()
1258}
1259
1260// DescribeServerWithContext is the same as DescribeServer with the addition of
1261// the ability to pass a context and additional request options.
1262//
1263// See DescribeServer for details on how to use this API operation.
1264//
1265// The context must be non-nil and will be used for request cancellation. If
1266// the context is nil a panic will occur. In the future the SDK may create
1267// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1268// for more information on using Contexts.
1269func (c *Transfer) DescribeServerWithContext(ctx aws.Context, input *DescribeServerInput, opts ...request.Option) (*DescribeServerOutput, error) {
1270	req, out := c.DescribeServerRequest(input)
1271	req.SetContext(ctx)
1272	req.ApplyOptions(opts...)
1273	return out, req.Send()
1274}
1275
1276const opDescribeUser = "DescribeUser"
1277
1278// DescribeUserRequest generates a "aws/request.Request" representing the
1279// client's request for the DescribeUser operation. The "output" return
1280// value will be populated with the request's response once the request completes
1281// successfully.
1282//
1283// Use "Send" method on the returned Request to send the API call to the service.
1284// the "output" return value is not valid until after Send returns without error.
1285//
1286// See DescribeUser for more information on using the DescribeUser
1287// API call, and error handling.
1288//
1289// This method is useful when you want to inject custom logic or configuration
1290// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1291//
1292//
1293//    // Example sending a request using the DescribeUserRequest method.
1294//    req, resp := client.DescribeUserRequest(params)
1295//
1296//    err := req.Send()
1297//    if err == nil { // resp is now filled
1298//        fmt.Println(resp)
1299//    }
1300//
1301// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeUser
1302func (c *Transfer) DescribeUserRequest(input *DescribeUserInput) (req *request.Request, output *DescribeUserOutput) {
1303	op := &request.Operation{
1304		Name:       opDescribeUser,
1305		HTTPMethod: "POST",
1306		HTTPPath:   "/",
1307	}
1308
1309	if input == nil {
1310		input = &DescribeUserInput{}
1311	}
1312
1313	output = &DescribeUserOutput{}
1314	req = c.newRequest(op, input, output)
1315	return
1316}
1317
1318// DescribeUser API operation for AWS Transfer Family.
1319//
1320// Describes the user assigned to the specific file transfer protocol-enabled
1321// server, as identified by its ServerId property.
1322//
1323// The response from this call returns the properties of the user associated
1324// with the ServerId value that was specified.
1325//
1326// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1327// with awserr.Error's Code and Message methods to get detailed information about
1328// the error.
1329//
1330// See the AWS API reference guide for AWS Transfer Family's
1331// API operation DescribeUser for usage and error information.
1332//
1333// Returned Error Types:
1334//   * ServiceUnavailableException
1335//   The request has failed because the Amazon Web ServicesTransfer Family service
1336//   is not available.
1337//
1338//   * InternalServiceError
1339//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
1340//   Family service.
1341//
1342//   * InvalidRequestException
1343//   This exception is thrown when the client submits a malformed request.
1344//
1345//   * ResourceNotFoundException
1346//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
1347//   Family service.
1348//
1349// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeUser
1350func (c *Transfer) DescribeUser(input *DescribeUserInput) (*DescribeUserOutput, error) {
1351	req, out := c.DescribeUserRequest(input)
1352	return out, req.Send()
1353}
1354
1355// DescribeUserWithContext is the same as DescribeUser with the addition of
1356// the ability to pass a context and additional request options.
1357//
1358// See DescribeUser for details on how to use this API operation.
1359//
1360// The context must be non-nil and will be used for request cancellation. If
1361// the context is nil a panic will occur. In the future the SDK may create
1362// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1363// for more information on using Contexts.
1364func (c *Transfer) DescribeUserWithContext(ctx aws.Context, input *DescribeUserInput, opts ...request.Option) (*DescribeUserOutput, error) {
1365	req, out := c.DescribeUserRequest(input)
1366	req.SetContext(ctx)
1367	req.ApplyOptions(opts...)
1368	return out, req.Send()
1369}
1370
1371const opDescribeWorkflow = "DescribeWorkflow"
1372
1373// DescribeWorkflowRequest generates a "aws/request.Request" representing the
1374// client's request for the DescribeWorkflow operation. The "output" return
1375// value will be populated with the request's response once the request completes
1376// successfully.
1377//
1378// Use "Send" method on the returned Request to send the API call to the service.
1379// the "output" return value is not valid until after Send returns without error.
1380//
1381// See DescribeWorkflow for more information on using the DescribeWorkflow
1382// API call, and error handling.
1383//
1384// This method is useful when you want to inject custom logic or configuration
1385// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1386//
1387//
1388//    // Example sending a request using the DescribeWorkflowRequest method.
1389//    req, resp := client.DescribeWorkflowRequest(params)
1390//
1391//    err := req.Send()
1392//    if err == nil { // resp is now filled
1393//        fmt.Println(resp)
1394//    }
1395//
1396// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeWorkflow
1397func (c *Transfer) DescribeWorkflowRequest(input *DescribeWorkflowInput) (req *request.Request, output *DescribeWorkflowOutput) {
1398	op := &request.Operation{
1399		Name:       opDescribeWorkflow,
1400		HTTPMethod: "POST",
1401		HTTPPath:   "/",
1402	}
1403
1404	if input == nil {
1405		input = &DescribeWorkflowInput{}
1406	}
1407
1408	output = &DescribeWorkflowOutput{}
1409	req = c.newRequest(op, input, output)
1410	return
1411}
1412
1413// DescribeWorkflow API operation for AWS Transfer Family.
1414//
1415// Describes the specified workflow.
1416//
1417// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1418// with awserr.Error's Code and Message methods to get detailed information about
1419// the error.
1420//
1421// See the AWS API reference guide for AWS Transfer Family's
1422// API operation DescribeWorkflow for usage and error information.
1423//
1424// Returned Error Types:
1425//   * ServiceUnavailableException
1426//   The request has failed because the Amazon Web ServicesTransfer Family service
1427//   is not available.
1428//
1429//   * InternalServiceError
1430//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
1431//   Family service.
1432//
1433//   * InvalidRequestException
1434//   This exception is thrown when the client submits a malformed request.
1435//
1436//   * ResourceNotFoundException
1437//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
1438//   Family service.
1439//
1440// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/DescribeWorkflow
1441func (c *Transfer) DescribeWorkflow(input *DescribeWorkflowInput) (*DescribeWorkflowOutput, error) {
1442	req, out := c.DescribeWorkflowRequest(input)
1443	return out, req.Send()
1444}
1445
1446// DescribeWorkflowWithContext is the same as DescribeWorkflow with the addition of
1447// the ability to pass a context and additional request options.
1448//
1449// See DescribeWorkflow for details on how to use this API operation.
1450//
1451// The context must be non-nil and will be used for request cancellation. If
1452// the context is nil a panic will occur. In the future the SDK may create
1453// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1454// for more information on using Contexts.
1455func (c *Transfer) DescribeWorkflowWithContext(ctx aws.Context, input *DescribeWorkflowInput, opts ...request.Option) (*DescribeWorkflowOutput, error) {
1456	req, out := c.DescribeWorkflowRequest(input)
1457	req.SetContext(ctx)
1458	req.ApplyOptions(opts...)
1459	return out, req.Send()
1460}
1461
1462const opImportSshPublicKey = "ImportSshPublicKey"
1463
1464// ImportSshPublicKeyRequest generates a "aws/request.Request" representing the
1465// client's request for the ImportSshPublicKey operation. The "output" return
1466// value will be populated with the request's response once the request completes
1467// successfully.
1468//
1469// Use "Send" method on the returned Request to send the API call to the service.
1470// the "output" return value is not valid until after Send returns without error.
1471//
1472// See ImportSshPublicKey for more information on using the ImportSshPublicKey
1473// API call, and error handling.
1474//
1475// This method is useful when you want to inject custom logic or configuration
1476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1477//
1478//
1479//    // Example sending a request using the ImportSshPublicKeyRequest method.
1480//    req, resp := client.ImportSshPublicKeyRequest(params)
1481//
1482//    err := req.Send()
1483//    if err == nil { // resp is now filled
1484//        fmt.Println(resp)
1485//    }
1486//
1487// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ImportSshPublicKey
1488func (c *Transfer) ImportSshPublicKeyRequest(input *ImportSshPublicKeyInput) (req *request.Request, output *ImportSshPublicKeyOutput) {
1489	op := &request.Operation{
1490		Name:       opImportSshPublicKey,
1491		HTTPMethod: "POST",
1492		HTTPPath:   "/",
1493	}
1494
1495	if input == nil {
1496		input = &ImportSshPublicKeyInput{}
1497	}
1498
1499	output = &ImportSshPublicKeyOutput{}
1500	req = c.newRequest(op, input, output)
1501	return
1502}
1503
1504// ImportSshPublicKey API operation for AWS Transfer Family.
1505//
1506// Adds a Secure Shell (SSH) public key to a user account identified by a UserName
1507// value assigned to the specific file transfer protocol-enabled server, identified
1508// by ServerId.
1509//
1510// The response returns the UserName value, the ServerId value, and the name
1511// of the SshPublicKeyId.
1512//
1513// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1514// with awserr.Error's Code and Message methods to get detailed information about
1515// the error.
1516//
1517// See the AWS API reference guide for AWS Transfer Family's
1518// API operation ImportSshPublicKey for usage and error information.
1519//
1520// Returned Error Types:
1521//   * ServiceUnavailableException
1522//   The request has failed because the Amazon Web ServicesTransfer Family service
1523//   is not available.
1524//
1525//   * InternalServiceError
1526//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
1527//   Family service.
1528//
1529//   * InvalidRequestException
1530//   This exception is thrown when the client submits a malformed request.
1531//
1532//   * ResourceExistsException
1533//   The requested resource does not exist.
1534//
1535//   * ResourceNotFoundException
1536//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
1537//   Family service.
1538//
1539//   * ThrottlingException
1540//   The request was denied due to request throttling.
1541//
1542//   HTTP Status Code: 400
1543//
1544// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ImportSshPublicKey
1545func (c *Transfer) ImportSshPublicKey(input *ImportSshPublicKeyInput) (*ImportSshPublicKeyOutput, error) {
1546	req, out := c.ImportSshPublicKeyRequest(input)
1547	return out, req.Send()
1548}
1549
1550// ImportSshPublicKeyWithContext is the same as ImportSshPublicKey with the addition of
1551// the ability to pass a context and additional request options.
1552//
1553// See ImportSshPublicKey for details on how to use this API operation.
1554//
1555// The context must be non-nil and will be used for request cancellation. If
1556// the context is nil a panic will occur. In the future the SDK may create
1557// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1558// for more information on using Contexts.
1559func (c *Transfer) ImportSshPublicKeyWithContext(ctx aws.Context, input *ImportSshPublicKeyInput, opts ...request.Option) (*ImportSshPublicKeyOutput, error) {
1560	req, out := c.ImportSshPublicKeyRequest(input)
1561	req.SetContext(ctx)
1562	req.ApplyOptions(opts...)
1563	return out, req.Send()
1564}
1565
1566const opListAccesses = "ListAccesses"
1567
1568// ListAccessesRequest generates a "aws/request.Request" representing the
1569// client's request for the ListAccesses operation. The "output" return
1570// value will be populated with the request's response once the request completes
1571// successfully.
1572//
1573// Use "Send" method on the returned Request to send the API call to the service.
1574// the "output" return value is not valid until after Send returns without error.
1575//
1576// See ListAccesses for more information on using the ListAccesses
1577// API call, and error handling.
1578//
1579// This method is useful when you want to inject custom logic or configuration
1580// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1581//
1582//
1583//    // Example sending a request using the ListAccessesRequest method.
1584//    req, resp := client.ListAccessesRequest(params)
1585//
1586//    err := req.Send()
1587//    if err == nil { // resp is now filled
1588//        fmt.Println(resp)
1589//    }
1590//
1591// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListAccesses
1592func (c *Transfer) ListAccessesRequest(input *ListAccessesInput) (req *request.Request, output *ListAccessesOutput) {
1593	op := &request.Operation{
1594		Name:       opListAccesses,
1595		HTTPMethod: "POST",
1596		HTTPPath:   "/",
1597		Paginator: &request.Paginator{
1598			InputTokens:     []string{"NextToken"},
1599			OutputTokens:    []string{"NextToken"},
1600			LimitToken:      "MaxResults",
1601			TruncationToken: "",
1602		},
1603	}
1604
1605	if input == nil {
1606		input = &ListAccessesInput{}
1607	}
1608
1609	output = &ListAccessesOutput{}
1610	req = c.newRequest(op, input, output)
1611	return
1612}
1613
1614// ListAccesses API operation for AWS Transfer Family.
1615//
1616// Lists the details for all the accesses you have on your server.
1617//
1618// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1619// with awserr.Error's Code and Message methods to get detailed information about
1620// the error.
1621//
1622// See the AWS API reference guide for AWS Transfer Family's
1623// API operation ListAccesses for usage and error information.
1624//
1625// Returned Error Types:
1626//   * ServiceUnavailableException
1627//   The request has failed because the Amazon Web ServicesTransfer Family service
1628//   is not available.
1629//
1630//   * InternalServiceError
1631//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
1632//   Family service.
1633//
1634//   * InvalidNextTokenException
1635//   The NextToken parameter that was passed is invalid.
1636//
1637//   * InvalidRequestException
1638//   This exception is thrown when the client submits a malformed request.
1639//
1640//   * ResourceNotFoundException
1641//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
1642//   Family service.
1643//
1644// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListAccesses
1645func (c *Transfer) ListAccesses(input *ListAccessesInput) (*ListAccessesOutput, error) {
1646	req, out := c.ListAccessesRequest(input)
1647	return out, req.Send()
1648}
1649
1650// ListAccessesWithContext is the same as ListAccesses with the addition of
1651// the ability to pass a context and additional request options.
1652//
1653// See ListAccesses for details on how to use this API operation.
1654//
1655// The context must be non-nil and will be used for request cancellation. If
1656// the context is nil a panic will occur. In the future the SDK may create
1657// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1658// for more information on using Contexts.
1659func (c *Transfer) ListAccessesWithContext(ctx aws.Context, input *ListAccessesInput, opts ...request.Option) (*ListAccessesOutput, error) {
1660	req, out := c.ListAccessesRequest(input)
1661	req.SetContext(ctx)
1662	req.ApplyOptions(opts...)
1663	return out, req.Send()
1664}
1665
1666// ListAccessesPages iterates over the pages of a ListAccesses operation,
1667// calling the "fn" function with the response data for each page. To stop
1668// iterating, return false from the fn function.
1669//
1670// See ListAccesses method for more information on how to use this operation.
1671//
1672// Note: This operation can generate multiple requests to a service.
1673//
1674//    // Example iterating over at most 3 pages of a ListAccesses operation.
1675//    pageNum := 0
1676//    err := client.ListAccessesPages(params,
1677//        func(page *transfer.ListAccessesOutput, lastPage bool) bool {
1678//            pageNum++
1679//            fmt.Println(page)
1680//            return pageNum <= 3
1681//        })
1682//
1683func (c *Transfer) ListAccessesPages(input *ListAccessesInput, fn func(*ListAccessesOutput, bool) bool) error {
1684	return c.ListAccessesPagesWithContext(aws.BackgroundContext(), input, fn)
1685}
1686
1687// ListAccessesPagesWithContext same as ListAccessesPages except
1688// it takes a Context and allows setting request options on the pages.
1689//
1690// The context must be non-nil and will be used for request cancellation. If
1691// the context is nil a panic will occur. In the future the SDK may create
1692// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1693// for more information on using Contexts.
1694func (c *Transfer) ListAccessesPagesWithContext(ctx aws.Context, input *ListAccessesInput, fn func(*ListAccessesOutput, bool) bool, opts ...request.Option) error {
1695	p := request.Pagination{
1696		NewRequest: func() (*request.Request, error) {
1697			var inCpy *ListAccessesInput
1698			if input != nil {
1699				tmp := *input
1700				inCpy = &tmp
1701			}
1702			req, _ := c.ListAccessesRequest(inCpy)
1703			req.SetContext(ctx)
1704			req.ApplyOptions(opts...)
1705			return req, nil
1706		},
1707	}
1708
1709	for p.Next() {
1710		if !fn(p.Page().(*ListAccessesOutput), !p.HasNextPage()) {
1711			break
1712		}
1713	}
1714
1715	return p.Err()
1716}
1717
1718const opListExecutions = "ListExecutions"
1719
1720// ListExecutionsRequest generates a "aws/request.Request" representing the
1721// client's request for the ListExecutions operation. The "output" return
1722// value will be populated with the request's response once the request completes
1723// successfully.
1724//
1725// Use "Send" method on the returned Request to send the API call to the service.
1726// the "output" return value is not valid until after Send returns without error.
1727//
1728// See ListExecutions for more information on using the ListExecutions
1729// API call, and error handling.
1730//
1731// This method is useful when you want to inject custom logic or configuration
1732// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1733//
1734//
1735//    // Example sending a request using the ListExecutionsRequest method.
1736//    req, resp := client.ListExecutionsRequest(params)
1737//
1738//    err := req.Send()
1739//    if err == nil { // resp is now filled
1740//        fmt.Println(resp)
1741//    }
1742//
1743// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListExecutions
1744func (c *Transfer) ListExecutionsRequest(input *ListExecutionsInput) (req *request.Request, output *ListExecutionsOutput) {
1745	op := &request.Operation{
1746		Name:       opListExecutions,
1747		HTTPMethod: "POST",
1748		HTTPPath:   "/",
1749		Paginator: &request.Paginator{
1750			InputTokens:     []string{"NextToken"},
1751			OutputTokens:    []string{"NextToken"},
1752			LimitToken:      "MaxResults",
1753			TruncationToken: "",
1754		},
1755	}
1756
1757	if input == nil {
1758		input = &ListExecutionsInput{}
1759	}
1760
1761	output = &ListExecutionsOutput{}
1762	req = c.newRequest(op, input, output)
1763	return
1764}
1765
1766// ListExecutions API operation for AWS Transfer Family.
1767//
1768// Lists all executions for the specified workflow.
1769//
1770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1771// with awserr.Error's Code and Message methods to get detailed information about
1772// the error.
1773//
1774// See the AWS API reference guide for AWS Transfer Family's
1775// API operation ListExecutions for usage and error information.
1776//
1777// Returned Error Types:
1778//   * ServiceUnavailableException
1779//   The request has failed because the Amazon Web ServicesTransfer Family service
1780//   is not available.
1781//
1782//   * InternalServiceError
1783//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
1784//   Family service.
1785//
1786//   * InvalidNextTokenException
1787//   The NextToken parameter that was passed is invalid.
1788//
1789//   * InvalidRequestException
1790//   This exception is thrown when the client submits a malformed request.
1791//
1792//   * ResourceNotFoundException
1793//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
1794//   Family service.
1795//
1796// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListExecutions
1797func (c *Transfer) ListExecutions(input *ListExecutionsInput) (*ListExecutionsOutput, error) {
1798	req, out := c.ListExecutionsRequest(input)
1799	return out, req.Send()
1800}
1801
1802// ListExecutionsWithContext is the same as ListExecutions with the addition of
1803// the ability to pass a context and additional request options.
1804//
1805// See ListExecutions for details on how to use this API operation.
1806//
1807// The context must be non-nil and will be used for request cancellation. If
1808// the context is nil a panic will occur. In the future the SDK may create
1809// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1810// for more information on using Contexts.
1811func (c *Transfer) ListExecutionsWithContext(ctx aws.Context, input *ListExecutionsInput, opts ...request.Option) (*ListExecutionsOutput, error) {
1812	req, out := c.ListExecutionsRequest(input)
1813	req.SetContext(ctx)
1814	req.ApplyOptions(opts...)
1815	return out, req.Send()
1816}
1817
1818// ListExecutionsPages iterates over the pages of a ListExecutions operation,
1819// calling the "fn" function with the response data for each page. To stop
1820// iterating, return false from the fn function.
1821//
1822// See ListExecutions method for more information on how to use this operation.
1823//
1824// Note: This operation can generate multiple requests to a service.
1825//
1826//    // Example iterating over at most 3 pages of a ListExecutions operation.
1827//    pageNum := 0
1828//    err := client.ListExecutionsPages(params,
1829//        func(page *transfer.ListExecutionsOutput, lastPage bool) bool {
1830//            pageNum++
1831//            fmt.Println(page)
1832//            return pageNum <= 3
1833//        })
1834//
1835func (c *Transfer) ListExecutionsPages(input *ListExecutionsInput, fn func(*ListExecutionsOutput, bool) bool) error {
1836	return c.ListExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
1837}
1838
1839// ListExecutionsPagesWithContext same as ListExecutionsPages except
1840// it takes a Context and allows setting request options on the pages.
1841//
1842// The context must be non-nil and will be used for request cancellation. If
1843// the context is nil a panic will occur. In the future the SDK may create
1844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1845// for more information on using Contexts.
1846func (c *Transfer) ListExecutionsPagesWithContext(ctx aws.Context, input *ListExecutionsInput, fn func(*ListExecutionsOutput, bool) bool, opts ...request.Option) error {
1847	p := request.Pagination{
1848		NewRequest: func() (*request.Request, error) {
1849			var inCpy *ListExecutionsInput
1850			if input != nil {
1851				tmp := *input
1852				inCpy = &tmp
1853			}
1854			req, _ := c.ListExecutionsRequest(inCpy)
1855			req.SetContext(ctx)
1856			req.ApplyOptions(opts...)
1857			return req, nil
1858		},
1859	}
1860
1861	for p.Next() {
1862		if !fn(p.Page().(*ListExecutionsOutput), !p.HasNextPage()) {
1863			break
1864		}
1865	}
1866
1867	return p.Err()
1868}
1869
1870const opListSecurityPolicies = "ListSecurityPolicies"
1871
1872// ListSecurityPoliciesRequest generates a "aws/request.Request" representing the
1873// client's request for the ListSecurityPolicies operation. The "output" return
1874// value will be populated with the request's response once the request completes
1875// successfully.
1876//
1877// Use "Send" method on the returned Request to send the API call to the service.
1878// the "output" return value is not valid until after Send returns without error.
1879//
1880// See ListSecurityPolicies for more information on using the ListSecurityPolicies
1881// API call, and error handling.
1882//
1883// This method is useful when you want to inject custom logic or configuration
1884// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1885//
1886//
1887//    // Example sending a request using the ListSecurityPoliciesRequest method.
1888//    req, resp := client.ListSecurityPoliciesRequest(params)
1889//
1890//    err := req.Send()
1891//    if err == nil { // resp is now filled
1892//        fmt.Println(resp)
1893//    }
1894//
1895// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListSecurityPolicies
1896func (c *Transfer) ListSecurityPoliciesRequest(input *ListSecurityPoliciesInput) (req *request.Request, output *ListSecurityPoliciesOutput) {
1897	op := &request.Operation{
1898		Name:       opListSecurityPolicies,
1899		HTTPMethod: "POST",
1900		HTTPPath:   "/",
1901		Paginator: &request.Paginator{
1902			InputTokens:     []string{"NextToken"},
1903			OutputTokens:    []string{"NextToken"},
1904			LimitToken:      "MaxResults",
1905			TruncationToken: "",
1906		},
1907	}
1908
1909	if input == nil {
1910		input = &ListSecurityPoliciesInput{}
1911	}
1912
1913	output = &ListSecurityPoliciesOutput{}
1914	req = c.newRequest(op, input, output)
1915	return
1916}
1917
1918// ListSecurityPolicies API operation for AWS Transfer Family.
1919//
1920// Lists the security policies that are attached to your file transfer protocol-enabled
1921// servers.
1922//
1923// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1924// with awserr.Error's Code and Message methods to get detailed information about
1925// the error.
1926//
1927// See the AWS API reference guide for AWS Transfer Family's
1928// API operation ListSecurityPolicies for usage and error information.
1929//
1930// Returned Error Types:
1931//   * ServiceUnavailableException
1932//   The request has failed because the Amazon Web ServicesTransfer Family service
1933//   is not available.
1934//
1935//   * InternalServiceError
1936//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
1937//   Family service.
1938//
1939//   * InvalidNextTokenException
1940//   The NextToken parameter that was passed is invalid.
1941//
1942//   * InvalidRequestException
1943//   This exception is thrown when the client submits a malformed request.
1944//
1945// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListSecurityPolicies
1946func (c *Transfer) ListSecurityPolicies(input *ListSecurityPoliciesInput) (*ListSecurityPoliciesOutput, error) {
1947	req, out := c.ListSecurityPoliciesRequest(input)
1948	return out, req.Send()
1949}
1950
1951// ListSecurityPoliciesWithContext is the same as ListSecurityPolicies with the addition of
1952// the ability to pass a context and additional request options.
1953//
1954// See ListSecurityPolicies for details on how to use this API operation.
1955//
1956// The context must be non-nil and will be used for request cancellation. If
1957// the context is nil a panic will occur. In the future the SDK may create
1958// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1959// for more information on using Contexts.
1960func (c *Transfer) ListSecurityPoliciesWithContext(ctx aws.Context, input *ListSecurityPoliciesInput, opts ...request.Option) (*ListSecurityPoliciesOutput, error) {
1961	req, out := c.ListSecurityPoliciesRequest(input)
1962	req.SetContext(ctx)
1963	req.ApplyOptions(opts...)
1964	return out, req.Send()
1965}
1966
1967// ListSecurityPoliciesPages iterates over the pages of a ListSecurityPolicies operation,
1968// calling the "fn" function with the response data for each page. To stop
1969// iterating, return false from the fn function.
1970//
1971// See ListSecurityPolicies method for more information on how to use this operation.
1972//
1973// Note: This operation can generate multiple requests to a service.
1974//
1975//    // Example iterating over at most 3 pages of a ListSecurityPolicies operation.
1976//    pageNum := 0
1977//    err := client.ListSecurityPoliciesPages(params,
1978//        func(page *transfer.ListSecurityPoliciesOutput, lastPage bool) bool {
1979//            pageNum++
1980//            fmt.Println(page)
1981//            return pageNum <= 3
1982//        })
1983//
1984func (c *Transfer) ListSecurityPoliciesPages(input *ListSecurityPoliciesInput, fn func(*ListSecurityPoliciesOutput, bool) bool) error {
1985	return c.ListSecurityPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
1986}
1987
1988// ListSecurityPoliciesPagesWithContext same as ListSecurityPoliciesPages except
1989// it takes a Context and allows setting request options on the pages.
1990//
1991// The context must be non-nil and will be used for request cancellation. If
1992// the context is nil a panic will occur. In the future the SDK may create
1993// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1994// for more information on using Contexts.
1995func (c *Transfer) ListSecurityPoliciesPagesWithContext(ctx aws.Context, input *ListSecurityPoliciesInput, fn func(*ListSecurityPoliciesOutput, bool) bool, opts ...request.Option) error {
1996	p := request.Pagination{
1997		NewRequest: func() (*request.Request, error) {
1998			var inCpy *ListSecurityPoliciesInput
1999			if input != nil {
2000				tmp := *input
2001				inCpy = &tmp
2002			}
2003			req, _ := c.ListSecurityPoliciesRequest(inCpy)
2004			req.SetContext(ctx)
2005			req.ApplyOptions(opts...)
2006			return req, nil
2007		},
2008	}
2009
2010	for p.Next() {
2011		if !fn(p.Page().(*ListSecurityPoliciesOutput), !p.HasNextPage()) {
2012			break
2013		}
2014	}
2015
2016	return p.Err()
2017}
2018
2019const opListServers = "ListServers"
2020
2021// ListServersRequest generates a "aws/request.Request" representing the
2022// client's request for the ListServers operation. The "output" return
2023// value will be populated with the request's response once the request completes
2024// successfully.
2025//
2026// Use "Send" method on the returned Request to send the API call to the service.
2027// the "output" return value is not valid until after Send returns without error.
2028//
2029// See ListServers for more information on using the ListServers
2030// API call, and error handling.
2031//
2032// This method is useful when you want to inject custom logic or configuration
2033// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2034//
2035//
2036//    // Example sending a request using the ListServersRequest method.
2037//    req, resp := client.ListServersRequest(params)
2038//
2039//    err := req.Send()
2040//    if err == nil { // resp is now filled
2041//        fmt.Println(resp)
2042//    }
2043//
2044// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListServers
2045func (c *Transfer) ListServersRequest(input *ListServersInput) (req *request.Request, output *ListServersOutput) {
2046	op := &request.Operation{
2047		Name:       opListServers,
2048		HTTPMethod: "POST",
2049		HTTPPath:   "/",
2050		Paginator: &request.Paginator{
2051			InputTokens:     []string{"NextToken"},
2052			OutputTokens:    []string{"NextToken"},
2053			LimitToken:      "MaxResults",
2054			TruncationToken: "",
2055		},
2056	}
2057
2058	if input == nil {
2059		input = &ListServersInput{}
2060	}
2061
2062	output = &ListServersOutput{}
2063	req = c.newRequest(op, input, output)
2064	return
2065}
2066
2067// ListServers API operation for AWS Transfer Family.
2068//
2069// Lists the file transfer protocol-enabled servers that are associated with
2070// your Amazon Web Services account.
2071//
2072// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2073// with awserr.Error's Code and Message methods to get detailed information about
2074// the error.
2075//
2076// See the AWS API reference guide for AWS Transfer Family's
2077// API operation ListServers for usage and error information.
2078//
2079// Returned Error Types:
2080//   * ServiceUnavailableException
2081//   The request has failed because the Amazon Web ServicesTransfer Family service
2082//   is not available.
2083//
2084//   * InternalServiceError
2085//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
2086//   Family service.
2087//
2088//   * InvalidNextTokenException
2089//   The NextToken parameter that was passed is invalid.
2090//
2091//   * InvalidRequestException
2092//   This exception is thrown when the client submits a malformed request.
2093//
2094// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListServers
2095func (c *Transfer) ListServers(input *ListServersInput) (*ListServersOutput, error) {
2096	req, out := c.ListServersRequest(input)
2097	return out, req.Send()
2098}
2099
2100// ListServersWithContext is the same as ListServers with the addition of
2101// the ability to pass a context and additional request options.
2102//
2103// See ListServers for details on how to use this API operation.
2104//
2105// The context must be non-nil and will be used for request cancellation. If
2106// the context is nil a panic will occur. In the future the SDK may create
2107// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2108// for more information on using Contexts.
2109func (c *Transfer) ListServersWithContext(ctx aws.Context, input *ListServersInput, opts ...request.Option) (*ListServersOutput, error) {
2110	req, out := c.ListServersRequest(input)
2111	req.SetContext(ctx)
2112	req.ApplyOptions(opts...)
2113	return out, req.Send()
2114}
2115
2116// ListServersPages iterates over the pages of a ListServers operation,
2117// calling the "fn" function with the response data for each page. To stop
2118// iterating, return false from the fn function.
2119//
2120// See ListServers method for more information on how to use this operation.
2121//
2122// Note: This operation can generate multiple requests to a service.
2123//
2124//    // Example iterating over at most 3 pages of a ListServers operation.
2125//    pageNum := 0
2126//    err := client.ListServersPages(params,
2127//        func(page *transfer.ListServersOutput, lastPage bool) bool {
2128//            pageNum++
2129//            fmt.Println(page)
2130//            return pageNum <= 3
2131//        })
2132//
2133func (c *Transfer) ListServersPages(input *ListServersInput, fn func(*ListServersOutput, bool) bool) error {
2134	return c.ListServersPagesWithContext(aws.BackgroundContext(), input, fn)
2135}
2136
2137// ListServersPagesWithContext same as ListServersPages except
2138// it takes a Context and allows setting request options on the pages.
2139//
2140// The context must be non-nil and will be used for request cancellation. If
2141// the context is nil a panic will occur. In the future the SDK may create
2142// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2143// for more information on using Contexts.
2144func (c *Transfer) ListServersPagesWithContext(ctx aws.Context, input *ListServersInput, fn func(*ListServersOutput, bool) bool, opts ...request.Option) error {
2145	p := request.Pagination{
2146		NewRequest: func() (*request.Request, error) {
2147			var inCpy *ListServersInput
2148			if input != nil {
2149				tmp := *input
2150				inCpy = &tmp
2151			}
2152			req, _ := c.ListServersRequest(inCpy)
2153			req.SetContext(ctx)
2154			req.ApplyOptions(opts...)
2155			return req, nil
2156		},
2157	}
2158
2159	for p.Next() {
2160		if !fn(p.Page().(*ListServersOutput), !p.HasNextPage()) {
2161			break
2162		}
2163	}
2164
2165	return p.Err()
2166}
2167
2168const opListTagsForResource = "ListTagsForResource"
2169
2170// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2171// client's request for the ListTagsForResource operation. The "output" return
2172// value will be populated with the request's response once the request completes
2173// successfully.
2174//
2175// Use "Send" method on the returned Request to send the API call to the service.
2176// the "output" return value is not valid until after Send returns without error.
2177//
2178// See ListTagsForResource for more information on using the ListTagsForResource
2179// API call, and error handling.
2180//
2181// This method is useful when you want to inject custom logic or configuration
2182// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2183//
2184//
2185//    // Example sending a request using the ListTagsForResourceRequest method.
2186//    req, resp := client.ListTagsForResourceRequest(params)
2187//
2188//    err := req.Send()
2189//    if err == nil { // resp is now filled
2190//        fmt.Println(resp)
2191//    }
2192//
2193// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListTagsForResource
2194func (c *Transfer) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2195	op := &request.Operation{
2196		Name:       opListTagsForResource,
2197		HTTPMethod: "POST",
2198		HTTPPath:   "/",
2199		Paginator: &request.Paginator{
2200			InputTokens:     []string{"NextToken"},
2201			OutputTokens:    []string{"NextToken"},
2202			LimitToken:      "MaxResults",
2203			TruncationToken: "",
2204		},
2205	}
2206
2207	if input == nil {
2208		input = &ListTagsForResourceInput{}
2209	}
2210
2211	output = &ListTagsForResourceOutput{}
2212	req = c.newRequest(op, input, output)
2213	return
2214}
2215
2216// ListTagsForResource API operation for AWS Transfer Family.
2217//
2218// Lists all of the tags associated with the Amazon Resource Name (ARN) that
2219// you specify. The resource can be a user, server, or role.
2220//
2221// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2222// with awserr.Error's Code and Message methods to get detailed information about
2223// the error.
2224//
2225// See the AWS API reference guide for AWS Transfer Family's
2226// API operation ListTagsForResource for usage and error information.
2227//
2228// Returned Error Types:
2229//   * ServiceUnavailableException
2230//   The request has failed because the Amazon Web ServicesTransfer Family service
2231//   is not available.
2232//
2233//   * InternalServiceError
2234//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
2235//   Family service.
2236//
2237//   * InvalidNextTokenException
2238//   The NextToken parameter that was passed is invalid.
2239//
2240//   * InvalidRequestException
2241//   This exception is thrown when the client submits a malformed request.
2242//
2243// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListTagsForResource
2244func (c *Transfer) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2245	req, out := c.ListTagsForResourceRequest(input)
2246	return out, req.Send()
2247}
2248
2249// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2250// the ability to pass a context and additional request options.
2251//
2252// See ListTagsForResource for details on how to use this API operation.
2253//
2254// The context must be non-nil and will be used for request cancellation. If
2255// the context is nil a panic will occur. In the future the SDK may create
2256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2257// for more information on using Contexts.
2258func (c *Transfer) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2259	req, out := c.ListTagsForResourceRequest(input)
2260	req.SetContext(ctx)
2261	req.ApplyOptions(opts...)
2262	return out, req.Send()
2263}
2264
2265// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
2266// calling the "fn" function with the response data for each page. To stop
2267// iterating, return false from the fn function.
2268//
2269// See ListTagsForResource method for more information on how to use this operation.
2270//
2271// Note: This operation can generate multiple requests to a service.
2272//
2273//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
2274//    pageNum := 0
2275//    err := client.ListTagsForResourcePages(params,
2276//        func(page *transfer.ListTagsForResourceOutput, lastPage bool) bool {
2277//            pageNum++
2278//            fmt.Println(page)
2279//            return pageNum <= 3
2280//        })
2281//
2282func (c *Transfer) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
2283	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
2284}
2285
2286// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
2287// it takes a Context and allows setting request options on the pages.
2288//
2289// The context must be non-nil and will be used for request cancellation. If
2290// the context is nil a panic will occur. In the future the SDK may create
2291// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2292// for more information on using Contexts.
2293func (c *Transfer) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
2294	p := request.Pagination{
2295		NewRequest: func() (*request.Request, error) {
2296			var inCpy *ListTagsForResourceInput
2297			if input != nil {
2298				tmp := *input
2299				inCpy = &tmp
2300			}
2301			req, _ := c.ListTagsForResourceRequest(inCpy)
2302			req.SetContext(ctx)
2303			req.ApplyOptions(opts...)
2304			return req, nil
2305		},
2306	}
2307
2308	for p.Next() {
2309		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
2310			break
2311		}
2312	}
2313
2314	return p.Err()
2315}
2316
2317const opListUsers = "ListUsers"
2318
2319// ListUsersRequest generates a "aws/request.Request" representing the
2320// client's request for the ListUsers operation. The "output" return
2321// value will be populated with the request's response once the request completes
2322// successfully.
2323//
2324// Use "Send" method on the returned Request to send the API call to the service.
2325// the "output" return value is not valid until after Send returns without error.
2326//
2327// See ListUsers for more information on using the ListUsers
2328// API call, and error handling.
2329//
2330// This method is useful when you want to inject custom logic or configuration
2331// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2332//
2333//
2334//    // Example sending a request using the ListUsersRequest method.
2335//    req, resp := client.ListUsersRequest(params)
2336//
2337//    err := req.Send()
2338//    if err == nil { // resp is now filled
2339//        fmt.Println(resp)
2340//    }
2341//
2342// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListUsers
2343func (c *Transfer) ListUsersRequest(input *ListUsersInput) (req *request.Request, output *ListUsersOutput) {
2344	op := &request.Operation{
2345		Name:       opListUsers,
2346		HTTPMethod: "POST",
2347		HTTPPath:   "/",
2348		Paginator: &request.Paginator{
2349			InputTokens:     []string{"NextToken"},
2350			OutputTokens:    []string{"NextToken"},
2351			LimitToken:      "MaxResults",
2352			TruncationToken: "",
2353		},
2354	}
2355
2356	if input == nil {
2357		input = &ListUsersInput{}
2358	}
2359
2360	output = &ListUsersOutput{}
2361	req = c.newRequest(op, input, output)
2362	return
2363}
2364
2365// ListUsers API operation for AWS Transfer Family.
2366//
2367// Lists the users for a file transfer protocol-enabled server that you specify
2368// by passing the ServerId parameter.
2369//
2370// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2371// with awserr.Error's Code and Message methods to get detailed information about
2372// the error.
2373//
2374// See the AWS API reference guide for AWS Transfer Family's
2375// API operation ListUsers for usage and error information.
2376//
2377// Returned Error Types:
2378//   * ServiceUnavailableException
2379//   The request has failed because the Amazon Web ServicesTransfer Family service
2380//   is not available.
2381//
2382//   * InternalServiceError
2383//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
2384//   Family service.
2385//
2386//   * InvalidNextTokenException
2387//   The NextToken parameter that was passed is invalid.
2388//
2389//   * InvalidRequestException
2390//   This exception is thrown when the client submits a malformed request.
2391//
2392//   * ResourceNotFoundException
2393//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
2394//   Family service.
2395//
2396// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListUsers
2397func (c *Transfer) ListUsers(input *ListUsersInput) (*ListUsersOutput, error) {
2398	req, out := c.ListUsersRequest(input)
2399	return out, req.Send()
2400}
2401
2402// ListUsersWithContext is the same as ListUsers with the addition of
2403// the ability to pass a context and additional request options.
2404//
2405// See ListUsers for details on how to use this API operation.
2406//
2407// The context must be non-nil and will be used for request cancellation. If
2408// the context is nil a panic will occur. In the future the SDK may create
2409// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2410// for more information on using Contexts.
2411func (c *Transfer) ListUsersWithContext(ctx aws.Context, input *ListUsersInput, opts ...request.Option) (*ListUsersOutput, error) {
2412	req, out := c.ListUsersRequest(input)
2413	req.SetContext(ctx)
2414	req.ApplyOptions(opts...)
2415	return out, req.Send()
2416}
2417
2418// ListUsersPages iterates over the pages of a ListUsers operation,
2419// calling the "fn" function with the response data for each page. To stop
2420// iterating, return false from the fn function.
2421//
2422// See ListUsers method for more information on how to use this operation.
2423//
2424// Note: This operation can generate multiple requests to a service.
2425//
2426//    // Example iterating over at most 3 pages of a ListUsers operation.
2427//    pageNum := 0
2428//    err := client.ListUsersPages(params,
2429//        func(page *transfer.ListUsersOutput, lastPage bool) bool {
2430//            pageNum++
2431//            fmt.Println(page)
2432//            return pageNum <= 3
2433//        })
2434//
2435func (c *Transfer) ListUsersPages(input *ListUsersInput, fn func(*ListUsersOutput, bool) bool) error {
2436	return c.ListUsersPagesWithContext(aws.BackgroundContext(), input, fn)
2437}
2438
2439// ListUsersPagesWithContext same as ListUsersPages except
2440// it takes a Context and allows setting request options on the pages.
2441//
2442// The context must be non-nil and will be used for request cancellation. If
2443// the context is nil a panic will occur. In the future the SDK may create
2444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2445// for more information on using Contexts.
2446func (c *Transfer) ListUsersPagesWithContext(ctx aws.Context, input *ListUsersInput, fn func(*ListUsersOutput, bool) bool, opts ...request.Option) error {
2447	p := request.Pagination{
2448		NewRequest: func() (*request.Request, error) {
2449			var inCpy *ListUsersInput
2450			if input != nil {
2451				tmp := *input
2452				inCpy = &tmp
2453			}
2454			req, _ := c.ListUsersRequest(inCpy)
2455			req.SetContext(ctx)
2456			req.ApplyOptions(opts...)
2457			return req, nil
2458		},
2459	}
2460
2461	for p.Next() {
2462		if !fn(p.Page().(*ListUsersOutput), !p.HasNextPage()) {
2463			break
2464		}
2465	}
2466
2467	return p.Err()
2468}
2469
2470const opListWorkflows = "ListWorkflows"
2471
2472// ListWorkflowsRequest generates a "aws/request.Request" representing the
2473// client's request for the ListWorkflows operation. The "output" return
2474// value will be populated with the request's response once the request completes
2475// successfully.
2476//
2477// Use "Send" method on the returned Request to send the API call to the service.
2478// the "output" return value is not valid until after Send returns without error.
2479//
2480// See ListWorkflows for more information on using the ListWorkflows
2481// API call, and error handling.
2482//
2483// This method is useful when you want to inject custom logic or configuration
2484// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2485//
2486//
2487//    // Example sending a request using the ListWorkflowsRequest method.
2488//    req, resp := client.ListWorkflowsRequest(params)
2489//
2490//    err := req.Send()
2491//    if err == nil { // resp is now filled
2492//        fmt.Println(resp)
2493//    }
2494//
2495// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListWorkflows
2496func (c *Transfer) ListWorkflowsRequest(input *ListWorkflowsInput) (req *request.Request, output *ListWorkflowsOutput) {
2497	op := &request.Operation{
2498		Name:       opListWorkflows,
2499		HTTPMethod: "POST",
2500		HTTPPath:   "/",
2501		Paginator: &request.Paginator{
2502			InputTokens:     []string{"NextToken"},
2503			OutputTokens:    []string{"NextToken"},
2504			LimitToken:      "MaxResults",
2505			TruncationToken: "",
2506		},
2507	}
2508
2509	if input == nil {
2510		input = &ListWorkflowsInput{}
2511	}
2512
2513	output = &ListWorkflowsOutput{}
2514	req = c.newRequest(op, input, output)
2515	return
2516}
2517
2518// ListWorkflows API operation for AWS Transfer Family.
2519//
2520// Lists all of your workflows.
2521//
2522// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2523// with awserr.Error's Code and Message methods to get detailed information about
2524// the error.
2525//
2526// See the AWS API reference guide for AWS Transfer Family's
2527// API operation ListWorkflows for usage and error information.
2528//
2529// Returned Error Types:
2530//   * ServiceUnavailableException
2531//   The request has failed because the Amazon Web ServicesTransfer Family service
2532//   is not available.
2533//
2534//   * InternalServiceError
2535//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
2536//   Family service.
2537//
2538//   * InvalidNextTokenException
2539//   The NextToken parameter that was passed is invalid.
2540//
2541//   * InvalidRequestException
2542//   This exception is thrown when the client submits a malformed request.
2543//
2544// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/ListWorkflows
2545func (c *Transfer) ListWorkflows(input *ListWorkflowsInput) (*ListWorkflowsOutput, error) {
2546	req, out := c.ListWorkflowsRequest(input)
2547	return out, req.Send()
2548}
2549
2550// ListWorkflowsWithContext is the same as ListWorkflows with the addition of
2551// the ability to pass a context and additional request options.
2552//
2553// See ListWorkflows for details on how to use this API operation.
2554//
2555// The context must be non-nil and will be used for request cancellation. If
2556// the context is nil a panic will occur. In the future the SDK may create
2557// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2558// for more information on using Contexts.
2559func (c *Transfer) ListWorkflowsWithContext(ctx aws.Context, input *ListWorkflowsInput, opts ...request.Option) (*ListWorkflowsOutput, error) {
2560	req, out := c.ListWorkflowsRequest(input)
2561	req.SetContext(ctx)
2562	req.ApplyOptions(opts...)
2563	return out, req.Send()
2564}
2565
2566// ListWorkflowsPages iterates over the pages of a ListWorkflows operation,
2567// calling the "fn" function with the response data for each page. To stop
2568// iterating, return false from the fn function.
2569//
2570// See ListWorkflows method for more information on how to use this operation.
2571//
2572// Note: This operation can generate multiple requests to a service.
2573//
2574//    // Example iterating over at most 3 pages of a ListWorkflows operation.
2575//    pageNum := 0
2576//    err := client.ListWorkflowsPages(params,
2577//        func(page *transfer.ListWorkflowsOutput, lastPage bool) bool {
2578//            pageNum++
2579//            fmt.Println(page)
2580//            return pageNum <= 3
2581//        })
2582//
2583func (c *Transfer) ListWorkflowsPages(input *ListWorkflowsInput, fn func(*ListWorkflowsOutput, bool) bool) error {
2584	return c.ListWorkflowsPagesWithContext(aws.BackgroundContext(), input, fn)
2585}
2586
2587// ListWorkflowsPagesWithContext same as ListWorkflowsPages except
2588// it takes a Context and allows setting request options on the pages.
2589//
2590// The context must be non-nil and will be used for request cancellation. If
2591// the context is nil a panic will occur. In the future the SDK may create
2592// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2593// for more information on using Contexts.
2594func (c *Transfer) ListWorkflowsPagesWithContext(ctx aws.Context, input *ListWorkflowsInput, fn func(*ListWorkflowsOutput, bool) bool, opts ...request.Option) error {
2595	p := request.Pagination{
2596		NewRequest: func() (*request.Request, error) {
2597			var inCpy *ListWorkflowsInput
2598			if input != nil {
2599				tmp := *input
2600				inCpy = &tmp
2601			}
2602			req, _ := c.ListWorkflowsRequest(inCpy)
2603			req.SetContext(ctx)
2604			req.ApplyOptions(opts...)
2605			return req, nil
2606		},
2607	}
2608
2609	for p.Next() {
2610		if !fn(p.Page().(*ListWorkflowsOutput), !p.HasNextPage()) {
2611			break
2612		}
2613	}
2614
2615	return p.Err()
2616}
2617
2618const opSendWorkflowStepState = "SendWorkflowStepState"
2619
2620// SendWorkflowStepStateRequest generates a "aws/request.Request" representing the
2621// client's request for the SendWorkflowStepState operation. The "output" return
2622// value will be populated with the request's response once the request completes
2623// successfully.
2624//
2625// Use "Send" method on the returned Request to send the API call to the service.
2626// the "output" return value is not valid until after Send returns without error.
2627//
2628// See SendWorkflowStepState for more information on using the SendWorkflowStepState
2629// API call, and error handling.
2630//
2631// This method is useful when you want to inject custom logic or configuration
2632// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2633//
2634//
2635//    // Example sending a request using the SendWorkflowStepStateRequest method.
2636//    req, resp := client.SendWorkflowStepStateRequest(params)
2637//
2638//    err := req.Send()
2639//    if err == nil { // resp is now filled
2640//        fmt.Println(resp)
2641//    }
2642//
2643// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/SendWorkflowStepState
2644func (c *Transfer) SendWorkflowStepStateRequest(input *SendWorkflowStepStateInput) (req *request.Request, output *SendWorkflowStepStateOutput) {
2645	op := &request.Operation{
2646		Name:       opSendWorkflowStepState,
2647		HTTPMethod: "POST",
2648		HTTPPath:   "/",
2649	}
2650
2651	if input == nil {
2652		input = &SendWorkflowStepStateInput{}
2653	}
2654
2655	output = &SendWorkflowStepStateOutput{}
2656	req = c.newRequest(op, input, output)
2657	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2658	return
2659}
2660
2661// SendWorkflowStepState API operation for AWS Transfer Family.
2662//
2663// Sends a callback for asynchronous custom steps.
2664//
2665// The ExecutionId, WorkflowId, and Token are passed to the target resource
2666// during execution of a custom step of a workflow. You must include those with
2667// their callback as well as providing a status.
2668//
2669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2670// with awserr.Error's Code and Message methods to get detailed information about
2671// the error.
2672//
2673// See the AWS API reference guide for AWS Transfer Family's
2674// API operation SendWorkflowStepState for usage and error information.
2675//
2676// Returned Error Types:
2677//   * AccessDeniedException
2678//   You do not have sufficient access to perform this action.
2679//
2680//   * ServiceUnavailableException
2681//   The request has failed because the Amazon Web ServicesTransfer Family service
2682//   is not available.
2683//
2684//   * InternalServiceError
2685//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
2686//   Family service.
2687//
2688//   * InvalidRequestException
2689//   This exception is thrown when the client submits a malformed request.
2690//
2691//   * ResourceNotFoundException
2692//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
2693//   Family service.
2694//
2695//   * ThrottlingException
2696//   The request was denied due to request throttling.
2697//
2698//   HTTP Status Code: 400
2699//
2700// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/SendWorkflowStepState
2701func (c *Transfer) SendWorkflowStepState(input *SendWorkflowStepStateInput) (*SendWorkflowStepStateOutput, error) {
2702	req, out := c.SendWorkflowStepStateRequest(input)
2703	return out, req.Send()
2704}
2705
2706// SendWorkflowStepStateWithContext is the same as SendWorkflowStepState with the addition of
2707// the ability to pass a context and additional request options.
2708//
2709// See SendWorkflowStepState for details on how to use this API operation.
2710//
2711// The context must be non-nil and will be used for request cancellation. If
2712// the context is nil a panic will occur. In the future the SDK may create
2713// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2714// for more information on using Contexts.
2715func (c *Transfer) SendWorkflowStepStateWithContext(ctx aws.Context, input *SendWorkflowStepStateInput, opts ...request.Option) (*SendWorkflowStepStateOutput, error) {
2716	req, out := c.SendWorkflowStepStateRequest(input)
2717	req.SetContext(ctx)
2718	req.ApplyOptions(opts...)
2719	return out, req.Send()
2720}
2721
2722const opStartServer = "StartServer"
2723
2724// StartServerRequest generates a "aws/request.Request" representing the
2725// client's request for the StartServer operation. The "output" return
2726// value will be populated with the request's response once the request completes
2727// successfully.
2728//
2729// Use "Send" method on the returned Request to send the API call to the service.
2730// the "output" return value is not valid until after Send returns without error.
2731//
2732// See StartServer for more information on using the StartServer
2733// API call, and error handling.
2734//
2735// This method is useful when you want to inject custom logic or configuration
2736// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2737//
2738//
2739//    // Example sending a request using the StartServerRequest method.
2740//    req, resp := client.StartServerRequest(params)
2741//
2742//    err := req.Send()
2743//    if err == nil { // resp is now filled
2744//        fmt.Println(resp)
2745//    }
2746//
2747// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/StartServer
2748func (c *Transfer) StartServerRequest(input *StartServerInput) (req *request.Request, output *StartServerOutput) {
2749	op := &request.Operation{
2750		Name:       opStartServer,
2751		HTTPMethod: "POST",
2752		HTTPPath:   "/",
2753	}
2754
2755	if input == nil {
2756		input = &StartServerInput{}
2757	}
2758
2759	output = &StartServerOutput{}
2760	req = c.newRequest(op, input, output)
2761	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2762	return
2763}
2764
2765// StartServer API operation for AWS Transfer Family.
2766//
2767// Changes the state of a file transfer protocol-enabled server from OFFLINE
2768// to ONLINE. It has no impact on a server that is already ONLINE. An ONLINE
2769// server can accept and process file transfer jobs.
2770//
2771// The state of STARTING indicates that the server is in an intermediate state,
2772// either not fully able to respond, or not fully online. The values of START_FAILED
2773// can indicate an error condition.
2774//
2775// No response is returned from this call.
2776//
2777// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2778// with awserr.Error's Code and Message methods to get detailed information about
2779// the error.
2780//
2781// See the AWS API reference guide for AWS Transfer Family's
2782// API operation StartServer for usage and error information.
2783//
2784// Returned Error Types:
2785//   * ServiceUnavailableException
2786//   The request has failed because the Amazon Web ServicesTransfer Family service
2787//   is not available.
2788//
2789//   * InternalServiceError
2790//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
2791//   Family service.
2792//
2793//   * InvalidRequestException
2794//   This exception is thrown when the client submits a malformed request.
2795//
2796//   * ResourceNotFoundException
2797//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
2798//   Family service.
2799//
2800//   * ThrottlingException
2801//   The request was denied due to request throttling.
2802//
2803//   HTTP Status Code: 400
2804//
2805// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/StartServer
2806func (c *Transfer) StartServer(input *StartServerInput) (*StartServerOutput, error) {
2807	req, out := c.StartServerRequest(input)
2808	return out, req.Send()
2809}
2810
2811// StartServerWithContext is the same as StartServer with the addition of
2812// the ability to pass a context and additional request options.
2813//
2814// See StartServer for details on how to use this API operation.
2815//
2816// The context must be non-nil and will be used for request cancellation. If
2817// the context is nil a panic will occur. In the future the SDK may create
2818// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2819// for more information on using Contexts.
2820func (c *Transfer) StartServerWithContext(ctx aws.Context, input *StartServerInput, opts ...request.Option) (*StartServerOutput, error) {
2821	req, out := c.StartServerRequest(input)
2822	req.SetContext(ctx)
2823	req.ApplyOptions(opts...)
2824	return out, req.Send()
2825}
2826
2827const opStopServer = "StopServer"
2828
2829// StopServerRequest generates a "aws/request.Request" representing the
2830// client's request for the StopServer operation. The "output" return
2831// value will be populated with the request's response once the request completes
2832// successfully.
2833//
2834// Use "Send" method on the returned Request to send the API call to the service.
2835// the "output" return value is not valid until after Send returns without error.
2836//
2837// See StopServer for more information on using the StopServer
2838// API call, and error handling.
2839//
2840// This method is useful when you want to inject custom logic or configuration
2841// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2842//
2843//
2844//    // Example sending a request using the StopServerRequest method.
2845//    req, resp := client.StopServerRequest(params)
2846//
2847//    err := req.Send()
2848//    if err == nil { // resp is now filled
2849//        fmt.Println(resp)
2850//    }
2851//
2852// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/StopServer
2853func (c *Transfer) StopServerRequest(input *StopServerInput) (req *request.Request, output *StopServerOutput) {
2854	op := &request.Operation{
2855		Name:       opStopServer,
2856		HTTPMethod: "POST",
2857		HTTPPath:   "/",
2858	}
2859
2860	if input == nil {
2861		input = &StopServerInput{}
2862	}
2863
2864	output = &StopServerOutput{}
2865	req = c.newRequest(op, input, output)
2866	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2867	return
2868}
2869
2870// StopServer API operation for AWS Transfer Family.
2871//
2872// Changes the state of a file transfer protocol-enabled server from ONLINE
2873// to OFFLINE. An OFFLINE server cannot accept and process file transfer jobs.
2874// Information tied to your server, such as server and user properties, are
2875// not affected by stopping your server.
2876//
2877// Stopping the server will not reduce or impact your file transfer protocol
2878// endpoint billing; you must delete the server to stop being billed.
2879//
2880// The state of STOPPING indicates that the server is in an intermediate state,
2881// either not fully able to respond, or not fully offline. The values of STOP_FAILED
2882// can indicate an error condition.
2883//
2884// No response is returned from this call.
2885//
2886// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2887// with awserr.Error's Code and Message methods to get detailed information about
2888// the error.
2889//
2890// See the AWS API reference guide for AWS Transfer Family's
2891// API operation StopServer for usage and error information.
2892//
2893// Returned Error Types:
2894//   * ServiceUnavailableException
2895//   The request has failed because the Amazon Web ServicesTransfer Family service
2896//   is not available.
2897//
2898//   * InternalServiceError
2899//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
2900//   Family service.
2901//
2902//   * InvalidRequestException
2903//   This exception is thrown when the client submits a malformed request.
2904//
2905//   * ResourceNotFoundException
2906//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
2907//   Family service.
2908//
2909//   * ThrottlingException
2910//   The request was denied due to request throttling.
2911//
2912//   HTTP Status Code: 400
2913//
2914// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/StopServer
2915func (c *Transfer) StopServer(input *StopServerInput) (*StopServerOutput, error) {
2916	req, out := c.StopServerRequest(input)
2917	return out, req.Send()
2918}
2919
2920// StopServerWithContext is the same as StopServer with the addition of
2921// the ability to pass a context and additional request options.
2922//
2923// See StopServer for details on how to use this API operation.
2924//
2925// The context must be non-nil and will be used for request cancellation. If
2926// the context is nil a panic will occur. In the future the SDK may create
2927// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2928// for more information on using Contexts.
2929func (c *Transfer) StopServerWithContext(ctx aws.Context, input *StopServerInput, opts ...request.Option) (*StopServerOutput, error) {
2930	req, out := c.StopServerRequest(input)
2931	req.SetContext(ctx)
2932	req.ApplyOptions(opts...)
2933	return out, req.Send()
2934}
2935
2936const opTagResource = "TagResource"
2937
2938// TagResourceRequest generates a "aws/request.Request" representing the
2939// client's request for the TagResource operation. The "output" return
2940// value will be populated with the request's response once the request completes
2941// successfully.
2942//
2943// Use "Send" method on the returned Request to send the API call to the service.
2944// the "output" return value is not valid until after Send returns without error.
2945//
2946// See TagResource for more information on using the TagResource
2947// API call, and error handling.
2948//
2949// This method is useful when you want to inject custom logic or configuration
2950// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2951//
2952//
2953//    // Example sending a request using the TagResourceRequest method.
2954//    req, resp := client.TagResourceRequest(params)
2955//
2956//    err := req.Send()
2957//    if err == nil { // resp is now filled
2958//        fmt.Println(resp)
2959//    }
2960//
2961// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/TagResource
2962func (c *Transfer) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2963	op := &request.Operation{
2964		Name:       opTagResource,
2965		HTTPMethod: "POST",
2966		HTTPPath:   "/",
2967	}
2968
2969	if input == nil {
2970		input = &TagResourceInput{}
2971	}
2972
2973	output = &TagResourceOutput{}
2974	req = c.newRequest(op, input, output)
2975	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2976	return
2977}
2978
2979// TagResource API operation for AWS Transfer Family.
2980//
2981// Attaches a key-value pair to a resource, as identified by its Amazon Resource
2982// Name (ARN). Resources are users, servers, roles, and other entities.
2983//
2984// There is no response returned from this call.
2985//
2986// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2987// with awserr.Error's Code and Message methods to get detailed information about
2988// the error.
2989//
2990// See the AWS API reference guide for AWS Transfer Family's
2991// API operation TagResource for usage and error information.
2992//
2993// Returned Error Types:
2994//   * ServiceUnavailableException
2995//   The request has failed because the Amazon Web ServicesTransfer Family service
2996//   is not available.
2997//
2998//   * InternalServiceError
2999//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
3000//   Family service.
3001//
3002//   * InvalidRequestException
3003//   This exception is thrown when the client submits a malformed request.
3004//
3005//   * ResourceNotFoundException
3006//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
3007//   Family service.
3008//
3009// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/TagResource
3010func (c *Transfer) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
3011	req, out := c.TagResourceRequest(input)
3012	return out, req.Send()
3013}
3014
3015// TagResourceWithContext is the same as TagResource with the addition of
3016// the ability to pass a context and additional request options.
3017//
3018// See TagResource for details on how to use this API operation.
3019//
3020// The context must be non-nil and will be used for request cancellation. If
3021// the context is nil a panic will occur. In the future the SDK may create
3022// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3023// for more information on using Contexts.
3024func (c *Transfer) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
3025	req, out := c.TagResourceRequest(input)
3026	req.SetContext(ctx)
3027	req.ApplyOptions(opts...)
3028	return out, req.Send()
3029}
3030
3031const opTestIdentityProvider = "TestIdentityProvider"
3032
3033// TestIdentityProviderRequest generates a "aws/request.Request" representing the
3034// client's request for the TestIdentityProvider operation. The "output" return
3035// value will be populated with the request's response once the request completes
3036// successfully.
3037//
3038// Use "Send" method on the returned Request to send the API call to the service.
3039// the "output" return value is not valid until after Send returns without error.
3040//
3041// See TestIdentityProvider for more information on using the TestIdentityProvider
3042// API call, and error handling.
3043//
3044// This method is useful when you want to inject custom logic or configuration
3045// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3046//
3047//
3048//    // Example sending a request using the TestIdentityProviderRequest method.
3049//    req, resp := client.TestIdentityProviderRequest(params)
3050//
3051//    err := req.Send()
3052//    if err == nil { // resp is now filled
3053//        fmt.Println(resp)
3054//    }
3055//
3056// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/TestIdentityProvider
3057func (c *Transfer) TestIdentityProviderRequest(input *TestIdentityProviderInput) (req *request.Request, output *TestIdentityProviderOutput) {
3058	op := &request.Operation{
3059		Name:       opTestIdentityProvider,
3060		HTTPMethod: "POST",
3061		HTTPPath:   "/",
3062	}
3063
3064	if input == nil {
3065		input = &TestIdentityProviderInput{}
3066	}
3067
3068	output = &TestIdentityProviderOutput{}
3069	req = c.newRequest(op, input, output)
3070	return
3071}
3072
3073// TestIdentityProvider API operation for AWS Transfer Family.
3074//
3075// If the IdentityProviderType of a file transfer protocol-enabled server is
3076// AWS_DIRECTORY_SERVICE or API_Gateway, tests whether your identity provider
3077// is set up successfully. We highly recommend that you call this operation
3078// to test your authentication method as soon as you create your server. By
3079// doing so, you can troubleshoot issues with the identity provider integration
3080// to ensure that your users can successfully use the service.
3081//
3082// The ServerId and UserName parameters are required. The ServerProtocol, SourceIp,
3083// and UserPassword are all optional.
3084//
3085// You cannot use TestIdentityProvider if the IdentityProviderType of your server
3086// is SERVICE_MANAGED.
3087//
3088//    * If you provide any incorrect values for any parameters, the Response
3089//    field is empty.
3090//
3091//    * If you provide a server ID for a server that uses service-managed users,
3092//    you get an error: An error occurred (InvalidRequestException) when calling
3093//    the TestIdentityProvider operation: s-server-ID not configured for external
3094//    auth
3095//
3096//    * If you enter a Server ID for the --server-id parameter that does not
3097//    identify an actual Transfer server, you receive the following error: An
3098//    error occurred (ResourceNotFoundException) when calling the TestIdentityProvider
3099//    operation: Unknown server
3100//
3101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3102// with awserr.Error's Code and Message methods to get detailed information about
3103// the error.
3104//
3105// See the AWS API reference guide for AWS Transfer Family's
3106// API operation TestIdentityProvider for usage and error information.
3107//
3108// Returned Error Types:
3109//   * ServiceUnavailableException
3110//   The request has failed because the Amazon Web ServicesTransfer Family service
3111//   is not available.
3112//
3113//   * InternalServiceError
3114//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
3115//   Family service.
3116//
3117//   * InvalidRequestException
3118//   This exception is thrown when the client submits a malformed request.
3119//
3120//   * ResourceNotFoundException
3121//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
3122//   Family service.
3123//
3124// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/TestIdentityProvider
3125func (c *Transfer) TestIdentityProvider(input *TestIdentityProviderInput) (*TestIdentityProviderOutput, error) {
3126	req, out := c.TestIdentityProviderRequest(input)
3127	return out, req.Send()
3128}
3129
3130// TestIdentityProviderWithContext is the same as TestIdentityProvider with the addition of
3131// the ability to pass a context and additional request options.
3132//
3133// See TestIdentityProvider for details on how to use this API operation.
3134//
3135// The context must be non-nil and will be used for request cancellation. If
3136// the context is nil a panic will occur. In the future the SDK may create
3137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3138// for more information on using Contexts.
3139func (c *Transfer) TestIdentityProviderWithContext(ctx aws.Context, input *TestIdentityProviderInput, opts ...request.Option) (*TestIdentityProviderOutput, error) {
3140	req, out := c.TestIdentityProviderRequest(input)
3141	req.SetContext(ctx)
3142	req.ApplyOptions(opts...)
3143	return out, req.Send()
3144}
3145
3146const opUntagResource = "UntagResource"
3147
3148// UntagResourceRequest generates a "aws/request.Request" representing the
3149// client's request for the UntagResource operation. The "output" return
3150// value will be populated with the request's response once the request completes
3151// successfully.
3152//
3153// Use "Send" method on the returned Request to send the API call to the service.
3154// the "output" return value is not valid until after Send returns without error.
3155//
3156// See UntagResource for more information on using the UntagResource
3157// API call, and error handling.
3158//
3159// This method is useful when you want to inject custom logic or configuration
3160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3161//
3162//
3163//    // Example sending a request using the UntagResourceRequest method.
3164//    req, resp := client.UntagResourceRequest(params)
3165//
3166//    err := req.Send()
3167//    if err == nil { // resp is now filled
3168//        fmt.Println(resp)
3169//    }
3170//
3171// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UntagResource
3172func (c *Transfer) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
3173	op := &request.Operation{
3174		Name:       opUntagResource,
3175		HTTPMethod: "POST",
3176		HTTPPath:   "/",
3177	}
3178
3179	if input == nil {
3180		input = &UntagResourceInput{}
3181	}
3182
3183	output = &UntagResourceOutput{}
3184	req = c.newRequest(op, input, output)
3185	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3186	return
3187}
3188
3189// UntagResource API operation for AWS Transfer Family.
3190//
3191// Detaches a key-value pair from a resource, as identified by its Amazon Resource
3192// Name (ARN). Resources are users, servers, roles, and other entities.
3193//
3194// No response is returned from this call.
3195//
3196// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3197// with awserr.Error's Code and Message methods to get detailed information about
3198// the error.
3199//
3200// See the AWS API reference guide for AWS Transfer Family's
3201// API operation UntagResource for usage and error information.
3202//
3203// Returned Error Types:
3204//   * ServiceUnavailableException
3205//   The request has failed because the Amazon Web ServicesTransfer Family service
3206//   is not available.
3207//
3208//   * InternalServiceError
3209//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
3210//   Family service.
3211//
3212//   * InvalidRequestException
3213//   This exception is thrown when the client submits a malformed request.
3214//
3215//   * ResourceNotFoundException
3216//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
3217//   Family service.
3218//
3219// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UntagResource
3220func (c *Transfer) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
3221	req, out := c.UntagResourceRequest(input)
3222	return out, req.Send()
3223}
3224
3225// UntagResourceWithContext is the same as UntagResource with the addition of
3226// the ability to pass a context and additional request options.
3227//
3228// See UntagResource for details on how to use this API operation.
3229//
3230// The context must be non-nil and will be used for request cancellation. If
3231// the context is nil a panic will occur. In the future the SDK may create
3232// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3233// for more information on using Contexts.
3234func (c *Transfer) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
3235	req, out := c.UntagResourceRequest(input)
3236	req.SetContext(ctx)
3237	req.ApplyOptions(opts...)
3238	return out, req.Send()
3239}
3240
3241const opUpdateAccess = "UpdateAccess"
3242
3243// UpdateAccessRequest generates a "aws/request.Request" representing the
3244// client's request for the UpdateAccess operation. The "output" return
3245// value will be populated with the request's response once the request completes
3246// successfully.
3247//
3248// Use "Send" method on the returned Request to send the API call to the service.
3249// the "output" return value is not valid until after Send returns without error.
3250//
3251// See UpdateAccess for more information on using the UpdateAccess
3252// API call, and error handling.
3253//
3254// This method is useful when you want to inject custom logic or configuration
3255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3256//
3257//
3258//    // Example sending a request using the UpdateAccessRequest method.
3259//    req, resp := client.UpdateAccessRequest(params)
3260//
3261//    err := req.Send()
3262//    if err == nil { // resp is now filled
3263//        fmt.Println(resp)
3264//    }
3265//
3266// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateAccess
3267func (c *Transfer) UpdateAccessRequest(input *UpdateAccessInput) (req *request.Request, output *UpdateAccessOutput) {
3268	op := &request.Operation{
3269		Name:       opUpdateAccess,
3270		HTTPMethod: "POST",
3271		HTTPPath:   "/",
3272	}
3273
3274	if input == nil {
3275		input = &UpdateAccessInput{}
3276	}
3277
3278	output = &UpdateAccessOutput{}
3279	req = c.newRequest(op, input, output)
3280	return
3281}
3282
3283// UpdateAccess API operation for AWS Transfer Family.
3284//
3285// Allows you to update parameters for the access specified in the ServerID
3286// and ExternalID parameters.
3287//
3288// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3289// with awserr.Error's Code and Message methods to get detailed information about
3290// the error.
3291//
3292// See the AWS API reference guide for AWS Transfer Family's
3293// API operation UpdateAccess for usage and error information.
3294//
3295// Returned Error Types:
3296//   * ServiceUnavailableException
3297//   The request has failed because the Amazon Web ServicesTransfer Family service
3298//   is not available.
3299//
3300//   * InternalServiceError
3301//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
3302//   Family service.
3303//
3304//   * InvalidRequestException
3305//   This exception is thrown when the client submits a malformed request.
3306//
3307//   * ResourceExistsException
3308//   The requested resource does not exist.
3309//
3310//   * ResourceNotFoundException
3311//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
3312//   Family service.
3313//
3314// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateAccess
3315func (c *Transfer) UpdateAccess(input *UpdateAccessInput) (*UpdateAccessOutput, error) {
3316	req, out := c.UpdateAccessRequest(input)
3317	return out, req.Send()
3318}
3319
3320// UpdateAccessWithContext is the same as UpdateAccess with the addition of
3321// the ability to pass a context and additional request options.
3322//
3323// See UpdateAccess for details on how to use this API operation.
3324//
3325// The context must be non-nil and will be used for request cancellation. If
3326// the context is nil a panic will occur. In the future the SDK may create
3327// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3328// for more information on using Contexts.
3329func (c *Transfer) UpdateAccessWithContext(ctx aws.Context, input *UpdateAccessInput, opts ...request.Option) (*UpdateAccessOutput, error) {
3330	req, out := c.UpdateAccessRequest(input)
3331	req.SetContext(ctx)
3332	req.ApplyOptions(opts...)
3333	return out, req.Send()
3334}
3335
3336const opUpdateServer = "UpdateServer"
3337
3338// UpdateServerRequest generates a "aws/request.Request" representing the
3339// client's request for the UpdateServer operation. The "output" return
3340// value will be populated with the request's response once the request completes
3341// successfully.
3342//
3343// Use "Send" method on the returned Request to send the API call to the service.
3344// the "output" return value is not valid until after Send returns without error.
3345//
3346// See UpdateServer for more information on using the UpdateServer
3347// API call, and error handling.
3348//
3349// This method is useful when you want to inject custom logic or configuration
3350// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3351//
3352//
3353//    // Example sending a request using the UpdateServerRequest method.
3354//    req, resp := client.UpdateServerRequest(params)
3355//
3356//    err := req.Send()
3357//    if err == nil { // resp is now filled
3358//        fmt.Println(resp)
3359//    }
3360//
3361// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateServer
3362func (c *Transfer) UpdateServerRequest(input *UpdateServerInput) (req *request.Request, output *UpdateServerOutput) {
3363	op := &request.Operation{
3364		Name:       opUpdateServer,
3365		HTTPMethod: "POST",
3366		HTTPPath:   "/",
3367	}
3368
3369	if input == nil {
3370		input = &UpdateServerInput{}
3371	}
3372
3373	output = &UpdateServerOutput{}
3374	req = c.newRequest(op, input, output)
3375	return
3376}
3377
3378// UpdateServer API operation for AWS Transfer Family.
3379//
3380// Updates the file transfer protocol-enabled server's properties after that
3381// server has been created.
3382//
3383// The UpdateServer call returns the ServerId of the server you updated.
3384//
3385// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3386// with awserr.Error's Code and Message methods to get detailed information about
3387// the error.
3388//
3389// See the AWS API reference guide for AWS Transfer Family's
3390// API operation UpdateServer for usage and error information.
3391//
3392// Returned Error Types:
3393//   * AccessDeniedException
3394//   You do not have sufficient access to perform this action.
3395//
3396//   * ServiceUnavailableException
3397//   The request has failed because the Amazon Web ServicesTransfer Family service
3398//   is not available.
3399//
3400//   * ConflictException
3401//   This exception is thrown when the UpdateServer is called for a file transfer
3402//   protocol-enabled server that has VPC as the endpoint type and the server's
3403//   VpcEndpointID is not in the available state.
3404//
3405//   * InternalServiceError
3406//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
3407//   Family service.
3408//
3409//   * InvalidRequestException
3410//   This exception is thrown when the client submits a malformed request.
3411//
3412//   * ResourceExistsException
3413//   The requested resource does not exist.
3414//
3415//   * ResourceNotFoundException
3416//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
3417//   Family service.
3418//
3419//   * ThrottlingException
3420//   The request was denied due to request throttling.
3421//
3422//   HTTP Status Code: 400
3423//
3424// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateServer
3425func (c *Transfer) UpdateServer(input *UpdateServerInput) (*UpdateServerOutput, error) {
3426	req, out := c.UpdateServerRequest(input)
3427	return out, req.Send()
3428}
3429
3430// UpdateServerWithContext is the same as UpdateServer with the addition of
3431// the ability to pass a context and additional request options.
3432//
3433// See UpdateServer for details on how to use this API operation.
3434//
3435// The context must be non-nil and will be used for request cancellation. If
3436// the context is nil a panic will occur. In the future the SDK may create
3437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3438// for more information on using Contexts.
3439func (c *Transfer) UpdateServerWithContext(ctx aws.Context, input *UpdateServerInput, opts ...request.Option) (*UpdateServerOutput, error) {
3440	req, out := c.UpdateServerRequest(input)
3441	req.SetContext(ctx)
3442	req.ApplyOptions(opts...)
3443	return out, req.Send()
3444}
3445
3446const opUpdateUser = "UpdateUser"
3447
3448// UpdateUserRequest generates a "aws/request.Request" representing the
3449// client's request for the UpdateUser operation. The "output" return
3450// value will be populated with the request's response once the request completes
3451// successfully.
3452//
3453// Use "Send" method on the returned Request to send the API call to the service.
3454// the "output" return value is not valid until after Send returns without error.
3455//
3456// See UpdateUser for more information on using the UpdateUser
3457// API call, and error handling.
3458//
3459// This method is useful when you want to inject custom logic or configuration
3460// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3461//
3462//
3463//    // Example sending a request using the UpdateUserRequest method.
3464//    req, resp := client.UpdateUserRequest(params)
3465//
3466//    err := req.Send()
3467//    if err == nil { // resp is now filled
3468//        fmt.Println(resp)
3469//    }
3470//
3471// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateUser
3472func (c *Transfer) UpdateUserRequest(input *UpdateUserInput) (req *request.Request, output *UpdateUserOutput) {
3473	op := &request.Operation{
3474		Name:       opUpdateUser,
3475		HTTPMethod: "POST",
3476		HTTPPath:   "/",
3477	}
3478
3479	if input == nil {
3480		input = &UpdateUserInput{}
3481	}
3482
3483	output = &UpdateUserOutput{}
3484	req = c.newRequest(op, input, output)
3485	return
3486}
3487
3488// UpdateUser API operation for AWS Transfer Family.
3489//
3490// Assigns new properties to a user. Parameters you pass modify any or all of
3491// the following: the home directory, role, and policy for the UserName and
3492// ServerId you specify.
3493//
3494// The response returns the ServerId and the UserName for the updated user.
3495//
3496// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3497// with awserr.Error's Code and Message methods to get detailed information about
3498// the error.
3499//
3500// See the AWS API reference guide for AWS Transfer Family's
3501// API operation UpdateUser for usage and error information.
3502//
3503// Returned Error Types:
3504//   * ServiceUnavailableException
3505//   The request has failed because the Amazon Web ServicesTransfer Family service
3506//   is not available.
3507//
3508//   * InternalServiceError
3509//   This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
3510//   Family service.
3511//
3512//   * InvalidRequestException
3513//   This exception is thrown when the client submits a malformed request.
3514//
3515//   * ResourceNotFoundException
3516//   This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
3517//   Family service.
3518//
3519//   * ThrottlingException
3520//   The request was denied due to request throttling.
3521//
3522//   HTTP Status Code: 400
3523//
3524// See also, https://docs.aws.amazon.com/goto/WebAPI/transfer-2018-11-05/UpdateUser
3525func (c *Transfer) UpdateUser(input *UpdateUserInput) (*UpdateUserOutput, error) {
3526	req, out := c.UpdateUserRequest(input)
3527	return out, req.Send()
3528}
3529
3530// UpdateUserWithContext is the same as UpdateUser with the addition of
3531// the ability to pass a context and additional request options.
3532//
3533// See UpdateUser for details on how to use this API operation.
3534//
3535// The context must be non-nil and will be used for request cancellation. If
3536// the context is nil a panic will occur. In the future the SDK may create
3537// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3538// for more information on using Contexts.
3539func (c *Transfer) UpdateUserWithContext(ctx aws.Context, input *UpdateUserInput, opts ...request.Option) (*UpdateUserOutput, error) {
3540	req, out := c.UpdateUserRequest(input)
3541	req.SetContext(ctx)
3542	req.ApplyOptions(opts...)
3543	return out, req.Send()
3544}
3545
3546// You do not have sufficient access to perform this action.
3547type AccessDeniedException struct {
3548	_            struct{}                  `type:"structure"`
3549	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3550
3551	Message_ *string `locationName:"Message" type:"string"`
3552}
3553
3554// String returns the string representation
3555func (s AccessDeniedException) String() string {
3556	return awsutil.Prettify(s)
3557}
3558
3559// GoString returns the string representation
3560func (s AccessDeniedException) GoString() string {
3561	return s.String()
3562}
3563
3564func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
3565	return &AccessDeniedException{
3566		RespMetadata: v,
3567	}
3568}
3569
3570// Code returns the exception type name.
3571func (s *AccessDeniedException) Code() string {
3572	return "AccessDeniedException"
3573}
3574
3575// Message returns the exception's message.
3576func (s *AccessDeniedException) Message() string {
3577	if s.Message_ != nil {
3578		return *s.Message_
3579	}
3580	return ""
3581}
3582
3583// OrigErr always returns nil, satisfies awserr.Error interface.
3584func (s *AccessDeniedException) OrigErr() error {
3585	return nil
3586}
3587
3588func (s *AccessDeniedException) Error() string {
3589	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3590}
3591
3592// Status code returns the HTTP status code for the request's response error.
3593func (s *AccessDeniedException) StatusCode() int {
3594	return s.RespMetadata.StatusCode
3595}
3596
3597// RequestID returns the service's response RequestID for request.
3598func (s *AccessDeniedException) RequestID() string {
3599	return s.RespMetadata.RequestID
3600}
3601
3602// This exception is thrown when the UpdateServer is called for a file transfer
3603// protocol-enabled server that has VPC as the endpoint type and the server's
3604// VpcEndpointID is not in the available state.
3605type ConflictException struct {
3606	_            struct{}                  `type:"structure"`
3607	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3608
3609	Message_ *string `locationName:"Message" type:"string"`
3610}
3611
3612// String returns the string representation
3613func (s ConflictException) String() string {
3614	return awsutil.Prettify(s)
3615}
3616
3617// GoString returns the string representation
3618func (s ConflictException) GoString() string {
3619	return s.String()
3620}
3621
3622func newErrorConflictException(v protocol.ResponseMetadata) error {
3623	return &ConflictException{
3624		RespMetadata: v,
3625	}
3626}
3627
3628// Code returns the exception type name.
3629func (s *ConflictException) Code() string {
3630	return "ConflictException"
3631}
3632
3633// Message returns the exception's message.
3634func (s *ConflictException) Message() string {
3635	if s.Message_ != nil {
3636		return *s.Message_
3637	}
3638	return ""
3639}
3640
3641// OrigErr always returns nil, satisfies awserr.Error interface.
3642func (s *ConflictException) OrigErr() error {
3643	return nil
3644}
3645
3646func (s *ConflictException) Error() string {
3647	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3648}
3649
3650// Status code returns the HTTP status code for the request's response error.
3651func (s *ConflictException) StatusCode() int {
3652	return s.RespMetadata.StatusCode
3653}
3654
3655// RequestID returns the service's response RequestID for request.
3656func (s *ConflictException) RequestID() string {
3657	return s.RespMetadata.RequestID
3658}
3659
3660// Each step type has its own StepDetails structure.
3661type CopyStepDetails struct {
3662	_ struct{} `type:"structure"`
3663
3664	// Specifies the location for the file being copied. Only applicable for the
3665	// Copy type of workflow steps.
3666	DestinationFileLocation *InputFileLocation `type:"structure"`
3667
3668	// The name of the step, used as an identifier.
3669	Name *string `type:"string"`
3670
3671	// A flag that indicates whether or not to overwrite an existing file of the
3672	// same name. The default is FALSE.
3673	OverwriteExisting *string `type:"string" enum:"OverwriteExisting"`
3674}
3675
3676// String returns the string representation
3677func (s CopyStepDetails) String() string {
3678	return awsutil.Prettify(s)
3679}
3680
3681// GoString returns the string representation
3682func (s CopyStepDetails) GoString() string {
3683	return s.String()
3684}
3685
3686// Validate inspects the fields of the type to determine if they are valid.
3687func (s *CopyStepDetails) Validate() error {
3688	invalidParams := request.ErrInvalidParams{Context: "CopyStepDetails"}
3689	if s.DestinationFileLocation != nil {
3690		if err := s.DestinationFileLocation.Validate(); err != nil {
3691			invalidParams.AddNested("DestinationFileLocation", err.(request.ErrInvalidParams))
3692		}
3693	}
3694
3695	if invalidParams.Len() > 0 {
3696		return invalidParams
3697	}
3698	return nil
3699}
3700
3701// SetDestinationFileLocation sets the DestinationFileLocation field's value.
3702func (s *CopyStepDetails) SetDestinationFileLocation(v *InputFileLocation) *CopyStepDetails {
3703	s.DestinationFileLocation = v
3704	return s
3705}
3706
3707// SetName sets the Name field's value.
3708func (s *CopyStepDetails) SetName(v string) *CopyStepDetails {
3709	s.Name = &v
3710	return s
3711}
3712
3713// SetOverwriteExisting sets the OverwriteExisting field's value.
3714func (s *CopyStepDetails) SetOverwriteExisting(v string) *CopyStepDetails {
3715	s.OverwriteExisting = &v
3716	return s
3717}
3718
3719type CreateAccessInput struct {
3720	_ struct{} `type:"structure"`
3721
3722	// A unique identifier that is required to identify specific groups within your
3723	// directory. The users of the group that you associate have access to your
3724	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
3725	// Web Services Transfer Family. If you know the group name, you can view the
3726	// SID values by running the following command using Windows PowerShell.
3727	//
3728	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
3729	// | Select SamAccountName,ObjectSid
3730	//
3731	// In that command, replace YourGroupName with the name of your Active Directory
3732	// group.
3733	//
3734	// The regex used to validate this parameter is a string of characters consisting
3735	// of uppercase and lowercase alphanumeric characters with no spaces. You can
3736	// also include underscores or any of the following characters: =,.@:/-
3737	//
3738	// ExternalId is a required field
3739	ExternalId *string `min:"1" type:"string" required:"true"`
3740
3741	// The landing directory (folder) for a user when they log in to the server
3742	// using the client.
3743	//
3744	// A HomeDirectory example is /bucket_name/home/mydirectory.
3745	HomeDirectory *string `type:"string"`
3746
3747	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
3748	// and keys should be visible to your user and how you want to make them visible.
3749	// You must specify the Entry and Target pair, where Entry shows how the path
3750	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
3751	// you only specify a target, it is displayed as is. You also must ensure that
3752	// your Amazon Web Services Identity and Access Management (IAM) role provides
3753	// access to paths in Target. This value can only be set when HomeDirectoryType
3754	// is set to LOGICAL.
3755	//
3756	// The following is an Entry and Target pair example.
3757	//
3758	// [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf"
3759	// } ]
3760	//
3761	// In most cases, you can use this value instead of the session policy to lock
3762	// down your user to the designated home directory ("chroot"). To do this, you
3763	// can set Entry to / and set Target to the HomeDirectory parameter value.
3764	//
3765	// The following is an Entry and Target pair example for chroot.
3766	//
3767	// [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]
3768	//
3769	// If the target of a logical directory entry does not exist in Amazon S3 or
3770	// EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API
3771	// or EFS API to create 0 byte objects as place holders for your directory.
3772	// If using the CLI, use the s3api or efsapi call instead of s3 or efs so you
3773	// can use the put-object operation. For example, you use the following: aws
3774	// s3api put-object --bucket bucketname --key path/to/folder/. Make sure that
3775	// the end of the key name ends in a / for it to be considered a folder.
3776	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
3777
3778	// The type of landing directory (folder) you want your users' home directory
3779	// to be when they log into the server. If you set it to PATH, the user will
3780	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
3781	// protocol clients. If you set it LOGICAL, you need to provide mappings in
3782	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
3783	// visible to your users.
3784	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
3785
3786	// A session policy for your user so that you can use the same IAM role across
3787	// multiple users. This policy scopes down user access to portions of their
3788	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
3789	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
3790	//
3791	// This only applies when the domain of ServerId is S3. EFS does not use session
3792	// policies.
3793	//
3794	// For session policies, Amazon Web Services Transfer Family stores the policy
3795	// as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
3796	// You save the policy as a JSON blob and pass it in the Policy argument.
3797	//
3798	// For an example of a session policy, see Example session policy (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html).
3799	//
3800	// For more information, see AssumeRole (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
3801	// in the Amazon Web Services Security Token Service API Reference.
3802	Policy *string `type:"string"`
3803
3804	// The full POSIX identity, including user ID (Uid), group ID (Gid), and any
3805	// secondary groups IDs (SecondaryGids), that controls your users' access to
3806	// your Amazon EFS file systems. The POSIX permissions that are set on files
3807	// and directories in your file system determine the level of access your users
3808	// get when transferring files into and out of your Amazon EFS file systems.
3809	PosixProfile *PosixProfile `type:"structure"`
3810
3811	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
3812	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
3813	// to this role determine the level of access that you want to provide your
3814	// users when transferring files into and out of your Amazon S3 bucket or EFS
3815	// file system. The IAM role should also contain a trust relationship that allows
3816	// the server to access your resources when servicing your users' transfer requests.
3817	//
3818	// Role is a required field
3819	Role *string `min:"20" type:"string" required:"true"`
3820
3821	// A system-assigned unique identifier for a server instance. This is the specific
3822	// server that you added your user to.
3823	//
3824	// ServerId is a required field
3825	ServerId *string `min:"19" type:"string" required:"true"`
3826}
3827
3828// String returns the string representation
3829func (s CreateAccessInput) String() string {
3830	return awsutil.Prettify(s)
3831}
3832
3833// GoString returns the string representation
3834func (s CreateAccessInput) GoString() string {
3835	return s.String()
3836}
3837
3838// Validate inspects the fields of the type to determine if they are valid.
3839func (s *CreateAccessInput) Validate() error {
3840	invalidParams := request.ErrInvalidParams{Context: "CreateAccessInput"}
3841	if s.ExternalId == nil {
3842		invalidParams.Add(request.NewErrParamRequired("ExternalId"))
3843	}
3844	if s.ExternalId != nil && len(*s.ExternalId) < 1 {
3845		invalidParams.Add(request.NewErrParamMinLen("ExternalId", 1))
3846	}
3847	if s.HomeDirectoryMappings != nil && len(s.HomeDirectoryMappings) < 1 {
3848		invalidParams.Add(request.NewErrParamMinLen("HomeDirectoryMappings", 1))
3849	}
3850	if s.Role == nil {
3851		invalidParams.Add(request.NewErrParamRequired("Role"))
3852	}
3853	if s.Role != nil && len(*s.Role) < 20 {
3854		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
3855	}
3856	if s.ServerId == nil {
3857		invalidParams.Add(request.NewErrParamRequired("ServerId"))
3858	}
3859	if s.ServerId != nil && len(*s.ServerId) < 19 {
3860		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
3861	}
3862	if s.HomeDirectoryMappings != nil {
3863		for i, v := range s.HomeDirectoryMappings {
3864			if v == nil {
3865				continue
3866			}
3867			if err := v.Validate(); err != nil {
3868				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HomeDirectoryMappings", i), err.(request.ErrInvalidParams))
3869			}
3870		}
3871	}
3872	if s.PosixProfile != nil {
3873		if err := s.PosixProfile.Validate(); err != nil {
3874			invalidParams.AddNested("PosixProfile", err.(request.ErrInvalidParams))
3875		}
3876	}
3877
3878	if invalidParams.Len() > 0 {
3879		return invalidParams
3880	}
3881	return nil
3882}
3883
3884// SetExternalId sets the ExternalId field's value.
3885func (s *CreateAccessInput) SetExternalId(v string) *CreateAccessInput {
3886	s.ExternalId = &v
3887	return s
3888}
3889
3890// SetHomeDirectory sets the HomeDirectory field's value.
3891func (s *CreateAccessInput) SetHomeDirectory(v string) *CreateAccessInput {
3892	s.HomeDirectory = &v
3893	return s
3894}
3895
3896// SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
3897func (s *CreateAccessInput) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *CreateAccessInput {
3898	s.HomeDirectoryMappings = v
3899	return s
3900}
3901
3902// SetHomeDirectoryType sets the HomeDirectoryType field's value.
3903func (s *CreateAccessInput) SetHomeDirectoryType(v string) *CreateAccessInput {
3904	s.HomeDirectoryType = &v
3905	return s
3906}
3907
3908// SetPolicy sets the Policy field's value.
3909func (s *CreateAccessInput) SetPolicy(v string) *CreateAccessInput {
3910	s.Policy = &v
3911	return s
3912}
3913
3914// SetPosixProfile sets the PosixProfile field's value.
3915func (s *CreateAccessInput) SetPosixProfile(v *PosixProfile) *CreateAccessInput {
3916	s.PosixProfile = v
3917	return s
3918}
3919
3920// SetRole sets the Role field's value.
3921func (s *CreateAccessInput) SetRole(v string) *CreateAccessInput {
3922	s.Role = &v
3923	return s
3924}
3925
3926// SetServerId sets the ServerId field's value.
3927func (s *CreateAccessInput) SetServerId(v string) *CreateAccessInput {
3928	s.ServerId = &v
3929	return s
3930}
3931
3932type CreateAccessOutput struct {
3933	_ struct{} `type:"structure"`
3934
3935	// The external ID of the group whose users have access to your Amazon S3 or
3936	// Amazon EFS resources over the enabled protocols using Amazon Web Services
3937	// Transfer Family.
3938	//
3939	// ExternalId is a required field
3940	ExternalId *string `min:"1" type:"string" required:"true"`
3941
3942	// The ID of the server that the user is attached to.
3943	//
3944	// ServerId is a required field
3945	ServerId *string `min:"19" type:"string" required:"true"`
3946}
3947
3948// String returns the string representation
3949func (s CreateAccessOutput) String() string {
3950	return awsutil.Prettify(s)
3951}
3952
3953// GoString returns the string representation
3954func (s CreateAccessOutput) GoString() string {
3955	return s.String()
3956}
3957
3958// SetExternalId sets the ExternalId field's value.
3959func (s *CreateAccessOutput) SetExternalId(v string) *CreateAccessOutput {
3960	s.ExternalId = &v
3961	return s
3962}
3963
3964// SetServerId sets the ServerId field's value.
3965func (s *CreateAccessOutput) SetServerId(v string) *CreateAccessOutput {
3966	s.ServerId = &v
3967	return s
3968}
3969
3970type CreateServerInput struct {
3971	_ struct{} `type:"structure"`
3972
3973	// The Amazon Resource Name (ARN) of the Amazon Web Services Certificate Manager
3974	// (ACM) certificate. Required when Protocols is set to FTPS.
3975	//
3976	// To request a new public certificate, see Request a public certificate (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html)
3977	// in the Amazon Web Services Certificate Manager User Guide.
3978	//
3979	// To import an existing certificate into ACM, see Importing certificates into
3980	// ACM (https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)
3981	// in the Amazon Web Services Certificate Manager User Guide.
3982	//
3983	// To request a private certificate to use FTPS through private IP addresses,
3984	// see Request a private certificate (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html)
3985	// in the Amazon Web Services Certificate Manager User Guide.
3986	//
3987	// Certificates with the following cryptographic algorithms and key sizes are
3988	// supported:
3989	//
3990	//    * 2048-bit RSA (RSA_2048)
3991	//
3992	//    * 4096-bit RSA (RSA_4096)
3993	//
3994	//    * Elliptic Prime Curve 256 bit (EC_prime256v1)
3995	//
3996	//    * Elliptic Prime Curve 384 bit (EC_secp384r1)
3997	//
3998	//    * Elliptic Prime Curve 521 bit (EC_secp521r1)
3999	//
4000	// The certificate must be a valid SSL/TLS X.509 version 3 certificate with
4001	// FQDN or IP address specified and information about the issuer.
4002	Certificate *string `type:"string"`
4003
4004	// The domain of the storage system that is used for file transfers. There are
4005	// two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon
4006	// Elastic File System (Amazon EFS). The default value is S3.
4007	//
4008	// After the server is created, the domain cannot be changed.
4009	Domain *string `type:"string" enum:"Domain"`
4010
4011	// The virtual private cloud (VPC) endpoint settings that are configured for
4012	// your server. When you host your endpoint within your VPC, you can make it
4013	// accessible only to resources within your VPC, or you can attach Elastic IP
4014	// addresses and make it accessible to clients over the internet. Your VPC's
4015	// default security groups are automatically assigned to your endpoint.
4016	EndpointDetails *EndpointDetails `type:"structure"`
4017
4018	// The type of endpoint that you want your server to use. You can choose to
4019	// make your server's endpoint publicly accessible (PUBLIC) or host it inside
4020	// your VPC. With an endpoint that is hosted in a VPC, you can restrict access
4021	// to your server and resources only within your VPC or choose to make it internet
4022	// facing by attaching Elastic IP addresses directly to it.
4023	//
4024	// After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT
4025	// in your Amazon Web Services account if your account hasn't already done so
4026	// before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT
4027	// in your Amazon Web Services account on or before May 19, 2021, you will not
4028	// be affected. After this date, use EndpointType=VPC.
4029	//
4030	// For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
4031	//
4032	// It is recommended that you use VPC as the EndpointType. With this endpoint
4033	// type, you have the option to directly associate up to three Elastic IPv4
4034	// addresses (BYO IP included) with your server's endpoint and use VPC security
4035	// groups to restrict traffic by the client's public IP address. This is not
4036	// possible with EndpointType set to VPC_ENDPOINT.
4037	EndpointType *string `type:"string" enum:"EndpointType"`
4038
4039	// The RSA private key as generated by the ssh-keygen -N "" -m PEM -f my-new-server-key
4040	// command.
4041	//
4042	// If you aren't planning to migrate existing users from an existing SFTP-enabled
4043	// server to a new server, don't update the host key. Accidentally changing
4044	// a server's host key can be disruptive.
4045	//
4046	// For more information, see Change the host key for your SFTP-enabled server
4047	// (https://docs.aws.amazon.com/transfer/latest/userguide/edit-server-config.html#configuring-servers-change-host-key)
4048	// in the Amazon Web Services Transfer Family User Guide.
4049	HostKey *string `type:"string" sensitive:"true"`
4050
4051	// Required when IdentityProviderType is set to AWS_DIRECTORY_SERVICE or API_GATEWAY.
4052	// Accepts an array containing all of the information required to use a directory
4053	// in AWS_DIRECTORY_SERVICE or invoke a customer-supplied authentication API,
4054	// including the API Gateway URL. Not required when IdentityProviderType is
4055	// set to SERVICE_MANAGED.
4056	IdentityProviderDetails *IdentityProviderDetails `type:"structure"`
4057
4058	// Specifies the mode of authentication for a server. The default value is SERVICE_MANAGED,
4059	// which allows you to store and access user credentials within the Amazon Web
4060	// Services Transfer Family service.
4061	//
4062	// Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in
4063	// Amazon Web Services Managed Active Directory or Microsoft Active Directory
4064	// in your on-premises environment or in Amazon Web Services using AD Connectors.
4065	// This option also requires you to provide a Directory ID using the IdentityProviderDetails
4066	// parameter.
4067	//
4068	// Use the API_GATEWAY value to integrate with an identity provider of your
4069	// choosing. The API_GATEWAY setting requires you to provide an API Gateway
4070	// endpoint URL to call for authentication using the IdentityProviderDetails
4071	// parameter.
4072	IdentityProviderType *string `type:"string" enum:"IdentityProviderType"`
4073
4074	// Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
4075	// and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch
4076	// logging for Amazon S3 or Amazon EFS events. When set, user activity can be
4077	// viewed in your CloudWatch logs.
4078	LoggingRole *string `min:"20" type:"string"`
4079
4080	// Specifies the file transfer protocol or protocols over which your file transfer
4081	// protocol client can connect to your server's endpoint. The available protocols
4082	// are:
4083	//
4084	//    * SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over
4085	//    SSH
4086	//
4087	//    * FTPS (File Transfer Protocol Secure): File transfer with TLS encryption
4088	//
4089	//    * FTP (File Transfer Protocol): Unencrypted file transfer
4090	//
4091	// If you select FTPS, you must choose a certificate stored in Amazon Web Services
4092	// Certificate Manager (ACM) which is used to identify your server when clients
4093	// connect to it over FTPS.
4094	//
4095	// If Protocol includes either FTP or FTPS, then the EndpointType must be VPC
4096	// and the IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.
4097	//
4098	// If Protocol includes FTP, then AddressAllocationIds cannot be associated.
4099	//
4100	// If Protocol is set only to SFTP, the EndpointType can be set to PUBLIC and
4101	// the IdentityProviderType can be set to SERVICE_MANAGED.
4102	Protocols []*string `min:"1" type:"list"`
4103
4104	// Specifies the name of the security policy that is attached to the server.
4105	SecurityPolicyName *string `type:"string"`
4106
4107	// Key-value pairs that can be used to group and search for servers.
4108	Tags []*Tag `min:"1" type:"list"`
4109
4110	// Specifies the workflow ID for the workflow to assign and the execution role
4111	// used for executing the workflow.
4112	WorkflowDetails *WorkflowDetails `type:"structure"`
4113}
4114
4115// String returns the string representation
4116func (s CreateServerInput) String() string {
4117	return awsutil.Prettify(s)
4118}
4119
4120// GoString returns the string representation
4121func (s CreateServerInput) GoString() string {
4122	return s.String()
4123}
4124
4125// Validate inspects the fields of the type to determine if they are valid.
4126func (s *CreateServerInput) Validate() error {
4127	invalidParams := request.ErrInvalidParams{Context: "CreateServerInput"}
4128	if s.LoggingRole != nil && len(*s.LoggingRole) < 20 {
4129		invalidParams.Add(request.NewErrParamMinLen("LoggingRole", 20))
4130	}
4131	if s.Protocols != nil && len(s.Protocols) < 1 {
4132		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
4133	}
4134	if s.Tags != nil && len(s.Tags) < 1 {
4135		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4136	}
4137	if s.EndpointDetails != nil {
4138		if err := s.EndpointDetails.Validate(); err != nil {
4139			invalidParams.AddNested("EndpointDetails", err.(request.ErrInvalidParams))
4140		}
4141	}
4142	if s.IdentityProviderDetails != nil {
4143		if err := s.IdentityProviderDetails.Validate(); err != nil {
4144			invalidParams.AddNested("IdentityProviderDetails", err.(request.ErrInvalidParams))
4145		}
4146	}
4147	if s.Tags != nil {
4148		for i, v := range s.Tags {
4149			if v == nil {
4150				continue
4151			}
4152			if err := v.Validate(); err != nil {
4153				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4154			}
4155		}
4156	}
4157	if s.WorkflowDetails != nil {
4158		if err := s.WorkflowDetails.Validate(); err != nil {
4159			invalidParams.AddNested("WorkflowDetails", err.(request.ErrInvalidParams))
4160		}
4161	}
4162
4163	if invalidParams.Len() > 0 {
4164		return invalidParams
4165	}
4166	return nil
4167}
4168
4169// SetCertificate sets the Certificate field's value.
4170func (s *CreateServerInput) SetCertificate(v string) *CreateServerInput {
4171	s.Certificate = &v
4172	return s
4173}
4174
4175// SetDomain sets the Domain field's value.
4176func (s *CreateServerInput) SetDomain(v string) *CreateServerInput {
4177	s.Domain = &v
4178	return s
4179}
4180
4181// SetEndpointDetails sets the EndpointDetails field's value.
4182func (s *CreateServerInput) SetEndpointDetails(v *EndpointDetails) *CreateServerInput {
4183	s.EndpointDetails = v
4184	return s
4185}
4186
4187// SetEndpointType sets the EndpointType field's value.
4188func (s *CreateServerInput) SetEndpointType(v string) *CreateServerInput {
4189	s.EndpointType = &v
4190	return s
4191}
4192
4193// SetHostKey sets the HostKey field's value.
4194func (s *CreateServerInput) SetHostKey(v string) *CreateServerInput {
4195	s.HostKey = &v
4196	return s
4197}
4198
4199// SetIdentityProviderDetails sets the IdentityProviderDetails field's value.
4200func (s *CreateServerInput) SetIdentityProviderDetails(v *IdentityProviderDetails) *CreateServerInput {
4201	s.IdentityProviderDetails = v
4202	return s
4203}
4204
4205// SetIdentityProviderType sets the IdentityProviderType field's value.
4206func (s *CreateServerInput) SetIdentityProviderType(v string) *CreateServerInput {
4207	s.IdentityProviderType = &v
4208	return s
4209}
4210
4211// SetLoggingRole sets the LoggingRole field's value.
4212func (s *CreateServerInput) SetLoggingRole(v string) *CreateServerInput {
4213	s.LoggingRole = &v
4214	return s
4215}
4216
4217// SetProtocols sets the Protocols field's value.
4218func (s *CreateServerInput) SetProtocols(v []*string) *CreateServerInput {
4219	s.Protocols = v
4220	return s
4221}
4222
4223// SetSecurityPolicyName sets the SecurityPolicyName field's value.
4224func (s *CreateServerInput) SetSecurityPolicyName(v string) *CreateServerInput {
4225	s.SecurityPolicyName = &v
4226	return s
4227}
4228
4229// SetTags sets the Tags field's value.
4230func (s *CreateServerInput) SetTags(v []*Tag) *CreateServerInput {
4231	s.Tags = v
4232	return s
4233}
4234
4235// SetWorkflowDetails sets the WorkflowDetails field's value.
4236func (s *CreateServerInput) SetWorkflowDetails(v *WorkflowDetails) *CreateServerInput {
4237	s.WorkflowDetails = v
4238	return s
4239}
4240
4241type CreateServerOutput struct {
4242	_ struct{} `type:"structure"`
4243
4244	// The service-assigned ID of the server that is created.
4245	//
4246	// ServerId is a required field
4247	ServerId *string `min:"19" type:"string" required:"true"`
4248}
4249
4250// String returns the string representation
4251func (s CreateServerOutput) String() string {
4252	return awsutil.Prettify(s)
4253}
4254
4255// GoString returns the string representation
4256func (s CreateServerOutput) GoString() string {
4257	return s.String()
4258}
4259
4260// SetServerId sets the ServerId field's value.
4261func (s *CreateServerOutput) SetServerId(v string) *CreateServerOutput {
4262	s.ServerId = &v
4263	return s
4264}
4265
4266type CreateUserInput struct {
4267	_ struct{} `type:"structure"`
4268
4269	// The landing directory (folder) for a user when they log in to the server
4270	// using the client.
4271	//
4272	// A HomeDirectory example is /bucket_name/home/mydirectory.
4273	HomeDirectory *string `type:"string"`
4274
4275	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
4276	// and keys should be visible to your user and how you want to make them visible.
4277	// You must specify the Entry and Target pair, where Entry shows how the path
4278	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
4279	// you only specify a target, it is displayed as is. You also must ensure that
4280	// your Amazon Web Services Identity and Access Management (IAM) role provides
4281	// access to paths in Target. This value can only be set when HomeDirectoryType
4282	// is set to LOGICAL.
4283	//
4284	// The following is an Entry and Target pair example.
4285	//
4286	// [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf"
4287	// } ]
4288	//
4289	// In most cases, you can use this value instead of the session policy to lock
4290	// your user down to the designated home directory ("chroot"). To do this, you
4291	// can set Entry to / and set Target to the HomeDirectory parameter value.
4292	//
4293	// The following is an Entry and Target pair example for chroot.
4294	//
4295	// [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]
4296	//
4297	// If the target of a logical directory entry does not exist in Amazon S3 or
4298	// EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API
4299	// or EFS API to create 0 byte objects as place holders for your directory.
4300	// If using the CLI, use the s3api or efsapi call instead of s3 or efs so you
4301	// can use the put-object operation. For example, you use the following: aws
4302	// s3api put-object --bucket bucketname --key path/to/folder/. Make sure that
4303	// the end of the key name ends in a / for it to be considered a folder.
4304	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
4305
4306	// The type of landing directory (folder) you want your users' home directory
4307	// to be when they log into the server. If you set it to PATH, the user will
4308	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
4309	// protocol clients. If you set it LOGICAL, you need to provide mappings in
4310	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
4311	// visible to your users.
4312	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
4313
4314	// A session policy for your user so that you can use the same IAM role across
4315	// multiple users. This policy scopes down user access to portions of their
4316	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
4317	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
4318	//
4319	// This only applies when the domain of ServerId is S3. EFS does not use session
4320	// policies.
4321	//
4322	// For session policies, Amazon Web Services Transfer Family stores the policy
4323	// as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
4324	// You save the policy as a JSON blob and pass it in the Policy argument.
4325	//
4326	// For an example of a session policy, see Example session policy (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html).
4327	//
4328	// For more information, see AssumeRole (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
4329	// in the Amazon Web Services Security Token Service API Reference.
4330	Policy *string `type:"string"`
4331
4332	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid),
4333	// and any secondary groups IDs (SecondaryGids), that controls your users' access
4334	// to your Amazon EFS file systems. The POSIX permissions that are set on files
4335	// and directories in Amazon EFS determine the level of access your users get
4336	// when transferring files into and out of your Amazon EFS file systems.
4337	PosixProfile *PosixProfile `type:"structure"`
4338
4339	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
4340	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
4341	// to this role determine the level of access that you want to provide your
4342	// users when transferring files into and out of your Amazon S3 bucket or EFS
4343	// file system. The IAM role should also contain a trust relationship that allows
4344	// the server to access your resources when servicing your users' transfer requests.
4345	//
4346	// Role is a required field
4347	Role *string `min:"20" type:"string" required:"true"`
4348
4349	// A system-assigned unique identifier for a server instance. This is the specific
4350	// server that you added your user to.
4351	//
4352	// ServerId is a required field
4353	ServerId *string `min:"19" type:"string" required:"true"`
4354
4355	// The public portion of the Secure Shell (SSH) key used to authenticate the
4356	// user to the server.
4357	SshPublicKeyBody *string `type:"string"`
4358
4359	// Key-value pairs that can be used to group and search for users. Tags are
4360	// metadata attached to users for any purpose.
4361	Tags []*Tag `min:"1" type:"list"`
4362
4363	// A unique string that identifies a user and is associated with a ServerId.
4364	// This user name must be a minimum of 3 and a maximum of 100 characters long.
4365	// The following are valid characters: a-z, A-Z, 0-9, underscore '_', hyphen
4366	// '-', period '.', and at sign '@'. The user name can't start with a hyphen,
4367	// period, or at sign.
4368	//
4369	// UserName is a required field
4370	UserName *string `min:"3" type:"string" required:"true"`
4371}
4372
4373// String returns the string representation
4374func (s CreateUserInput) String() string {
4375	return awsutil.Prettify(s)
4376}
4377
4378// GoString returns the string representation
4379func (s CreateUserInput) GoString() string {
4380	return s.String()
4381}
4382
4383// Validate inspects the fields of the type to determine if they are valid.
4384func (s *CreateUserInput) Validate() error {
4385	invalidParams := request.ErrInvalidParams{Context: "CreateUserInput"}
4386	if s.HomeDirectoryMappings != nil && len(s.HomeDirectoryMappings) < 1 {
4387		invalidParams.Add(request.NewErrParamMinLen("HomeDirectoryMappings", 1))
4388	}
4389	if s.Role == nil {
4390		invalidParams.Add(request.NewErrParamRequired("Role"))
4391	}
4392	if s.Role != nil && len(*s.Role) < 20 {
4393		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
4394	}
4395	if s.ServerId == nil {
4396		invalidParams.Add(request.NewErrParamRequired("ServerId"))
4397	}
4398	if s.ServerId != nil && len(*s.ServerId) < 19 {
4399		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
4400	}
4401	if s.Tags != nil && len(s.Tags) < 1 {
4402		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4403	}
4404	if s.UserName == nil {
4405		invalidParams.Add(request.NewErrParamRequired("UserName"))
4406	}
4407	if s.UserName != nil && len(*s.UserName) < 3 {
4408		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
4409	}
4410	if s.HomeDirectoryMappings != nil {
4411		for i, v := range s.HomeDirectoryMappings {
4412			if v == nil {
4413				continue
4414			}
4415			if err := v.Validate(); err != nil {
4416				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HomeDirectoryMappings", i), err.(request.ErrInvalidParams))
4417			}
4418		}
4419	}
4420	if s.PosixProfile != nil {
4421		if err := s.PosixProfile.Validate(); err != nil {
4422			invalidParams.AddNested("PosixProfile", err.(request.ErrInvalidParams))
4423		}
4424	}
4425	if s.Tags != nil {
4426		for i, v := range s.Tags {
4427			if v == nil {
4428				continue
4429			}
4430			if err := v.Validate(); err != nil {
4431				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4432			}
4433		}
4434	}
4435
4436	if invalidParams.Len() > 0 {
4437		return invalidParams
4438	}
4439	return nil
4440}
4441
4442// SetHomeDirectory sets the HomeDirectory field's value.
4443func (s *CreateUserInput) SetHomeDirectory(v string) *CreateUserInput {
4444	s.HomeDirectory = &v
4445	return s
4446}
4447
4448// SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
4449func (s *CreateUserInput) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *CreateUserInput {
4450	s.HomeDirectoryMappings = v
4451	return s
4452}
4453
4454// SetHomeDirectoryType sets the HomeDirectoryType field's value.
4455func (s *CreateUserInput) SetHomeDirectoryType(v string) *CreateUserInput {
4456	s.HomeDirectoryType = &v
4457	return s
4458}
4459
4460// SetPolicy sets the Policy field's value.
4461func (s *CreateUserInput) SetPolicy(v string) *CreateUserInput {
4462	s.Policy = &v
4463	return s
4464}
4465
4466// SetPosixProfile sets the PosixProfile field's value.
4467func (s *CreateUserInput) SetPosixProfile(v *PosixProfile) *CreateUserInput {
4468	s.PosixProfile = v
4469	return s
4470}
4471
4472// SetRole sets the Role field's value.
4473func (s *CreateUserInput) SetRole(v string) *CreateUserInput {
4474	s.Role = &v
4475	return s
4476}
4477
4478// SetServerId sets the ServerId field's value.
4479func (s *CreateUserInput) SetServerId(v string) *CreateUserInput {
4480	s.ServerId = &v
4481	return s
4482}
4483
4484// SetSshPublicKeyBody sets the SshPublicKeyBody field's value.
4485func (s *CreateUserInput) SetSshPublicKeyBody(v string) *CreateUserInput {
4486	s.SshPublicKeyBody = &v
4487	return s
4488}
4489
4490// SetTags sets the Tags field's value.
4491func (s *CreateUserInput) SetTags(v []*Tag) *CreateUserInput {
4492	s.Tags = v
4493	return s
4494}
4495
4496// SetUserName sets the UserName field's value.
4497func (s *CreateUserInput) SetUserName(v string) *CreateUserInput {
4498	s.UserName = &v
4499	return s
4500}
4501
4502type CreateUserOutput struct {
4503	_ struct{} `type:"structure"`
4504
4505	// The ID of the server that the user is attached to.
4506	//
4507	// ServerId is a required field
4508	ServerId *string `min:"19" type:"string" required:"true"`
4509
4510	// A unique string that identifies a user account associated with a server.
4511	//
4512	// UserName is a required field
4513	UserName *string `min:"3" type:"string" required:"true"`
4514}
4515
4516// String returns the string representation
4517func (s CreateUserOutput) String() string {
4518	return awsutil.Prettify(s)
4519}
4520
4521// GoString returns the string representation
4522func (s CreateUserOutput) GoString() string {
4523	return s.String()
4524}
4525
4526// SetServerId sets the ServerId field's value.
4527func (s *CreateUserOutput) SetServerId(v string) *CreateUserOutput {
4528	s.ServerId = &v
4529	return s
4530}
4531
4532// SetUserName sets the UserName field's value.
4533func (s *CreateUserOutput) SetUserName(v string) *CreateUserOutput {
4534	s.UserName = &v
4535	return s
4536}
4537
4538type CreateWorkflowInput struct {
4539	_ struct{} `type:"structure"`
4540
4541	// A textual description for the workflow.
4542	Description *string `type:"string"`
4543
4544	// Specifies the steps (actions) to take if any errors are encountered during
4545	// execution of the workflow.
4546	OnExceptionSteps []*WorkflowStep `type:"list"`
4547
4548	// Specifies the details for the steps that are in the specified workflow.
4549	//
4550	// The TYPE specifies which of the following actions is being taken for this
4551	// step.
4552	//
4553	//    * Copy: copy the file to another location
4554	//
4555	//    * Custom: custom step with a lambda target
4556	//
4557	//    * Delete: delete the file
4558	//
4559	//    * Tag: add a tag to the file
4560	//
4561	// For file location, you specify either the S3 bucket and key, or the EFS filesystem
4562	// ID and path.
4563	//
4564	// Steps is a required field
4565	Steps []*WorkflowStep `type:"list" required:"true"`
4566
4567	// Key-value pairs that can be used to group and search for workflows. Tags
4568	// are metadata attached to workflows for any purpose.
4569	Tags []*Tag `min:"1" type:"list"`
4570}
4571
4572// String returns the string representation
4573func (s CreateWorkflowInput) String() string {
4574	return awsutil.Prettify(s)
4575}
4576
4577// GoString returns the string representation
4578func (s CreateWorkflowInput) GoString() string {
4579	return s.String()
4580}
4581
4582// Validate inspects the fields of the type to determine if they are valid.
4583func (s *CreateWorkflowInput) Validate() error {
4584	invalidParams := request.ErrInvalidParams{Context: "CreateWorkflowInput"}
4585	if s.Steps == nil {
4586		invalidParams.Add(request.NewErrParamRequired("Steps"))
4587	}
4588	if s.Tags != nil && len(s.Tags) < 1 {
4589		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4590	}
4591	if s.OnExceptionSteps != nil {
4592		for i, v := range s.OnExceptionSteps {
4593			if v == nil {
4594				continue
4595			}
4596			if err := v.Validate(); err != nil {
4597				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OnExceptionSteps", i), err.(request.ErrInvalidParams))
4598			}
4599		}
4600	}
4601	if s.Steps != nil {
4602		for i, v := range s.Steps {
4603			if v == nil {
4604				continue
4605			}
4606			if err := v.Validate(); err != nil {
4607				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
4608			}
4609		}
4610	}
4611	if s.Tags != nil {
4612		for i, v := range s.Tags {
4613			if v == nil {
4614				continue
4615			}
4616			if err := v.Validate(); err != nil {
4617				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4618			}
4619		}
4620	}
4621
4622	if invalidParams.Len() > 0 {
4623		return invalidParams
4624	}
4625	return nil
4626}
4627
4628// SetDescription sets the Description field's value.
4629func (s *CreateWorkflowInput) SetDescription(v string) *CreateWorkflowInput {
4630	s.Description = &v
4631	return s
4632}
4633
4634// SetOnExceptionSteps sets the OnExceptionSteps field's value.
4635func (s *CreateWorkflowInput) SetOnExceptionSteps(v []*WorkflowStep) *CreateWorkflowInput {
4636	s.OnExceptionSteps = v
4637	return s
4638}
4639
4640// SetSteps sets the Steps field's value.
4641func (s *CreateWorkflowInput) SetSteps(v []*WorkflowStep) *CreateWorkflowInput {
4642	s.Steps = v
4643	return s
4644}
4645
4646// SetTags sets the Tags field's value.
4647func (s *CreateWorkflowInput) SetTags(v []*Tag) *CreateWorkflowInput {
4648	s.Tags = v
4649	return s
4650}
4651
4652type CreateWorkflowOutput struct {
4653	_ struct{} `type:"structure"`
4654
4655	// A unique identifier for the workflow.
4656	//
4657	// WorkflowId is a required field
4658	WorkflowId *string `min:"19" type:"string" required:"true"`
4659}
4660
4661// String returns the string representation
4662func (s CreateWorkflowOutput) String() string {
4663	return awsutil.Prettify(s)
4664}
4665
4666// GoString returns the string representation
4667func (s CreateWorkflowOutput) GoString() string {
4668	return s.String()
4669}
4670
4671// SetWorkflowId sets the WorkflowId field's value.
4672func (s *CreateWorkflowOutput) SetWorkflowId(v string) *CreateWorkflowOutput {
4673	s.WorkflowId = &v
4674	return s
4675}
4676
4677// Each step type has its own StepDetails structure.
4678type CustomStepDetails struct {
4679	_ struct{} `type:"structure"`
4680
4681	// The name of the step, used as an identifier.
4682	Name *string `type:"string"`
4683
4684	// The ARN for the lambda function that is being called.
4685	Target *string `type:"string"`
4686
4687	// Timeout, in seconds, for the step.
4688	TimeoutSeconds *int64 `min:"1" type:"integer"`
4689}
4690
4691// String returns the string representation
4692func (s CustomStepDetails) String() string {
4693	return awsutil.Prettify(s)
4694}
4695
4696// GoString returns the string representation
4697func (s CustomStepDetails) GoString() string {
4698	return s.String()
4699}
4700
4701// Validate inspects the fields of the type to determine if they are valid.
4702func (s *CustomStepDetails) Validate() error {
4703	invalidParams := request.ErrInvalidParams{Context: "CustomStepDetails"}
4704	if s.TimeoutSeconds != nil && *s.TimeoutSeconds < 1 {
4705		invalidParams.Add(request.NewErrParamMinValue("TimeoutSeconds", 1))
4706	}
4707
4708	if invalidParams.Len() > 0 {
4709		return invalidParams
4710	}
4711	return nil
4712}
4713
4714// SetName sets the Name field's value.
4715func (s *CustomStepDetails) SetName(v string) *CustomStepDetails {
4716	s.Name = &v
4717	return s
4718}
4719
4720// SetTarget sets the Target field's value.
4721func (s *CustomStepDetails) SetTarget(v string) *CustomStepDetails {
4722	s.Target = &v
4723	return s
4724}
4725
4726// SetTimeoutSeconds sets the TimeoutSeconds field's value.
4727func (s *CustomStepDetails) SetTimeoutSeconds(v int64) *CustomStepDetails {
4728	s.TimeoutSeconds = &v
4729	return s
4730}
4731
4732type DeleteAccessInput struct {
4733	_ struct{} `type:"structure"`
4734
4735	// A unique identifier that is required to identify specific groups within your
4736	// directory. The users of the group that you associate have access to your
4737	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
4738	// Web Services Transfer Family. If you know the group name, you can view the
4739	// SID values by running the following command using Windows PowerShell.
4740	//
4741	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
4742	// | Select SamAccountName,ObjectSid
4743	//
4744	// In that command, replace YourGroupName with the name of your Active Directory
4745	// group.
4746	//
4747	// The regex used to validate this parameter is a string of characters consisting
4748	// of uppercase and lowercase alphanumeric characters with no spaces. You can
4749	// also include underscores or any of the following characters: =,.@:/-
4750	//
4751	// ExternalId is a required field
4752	ExternalId *string `min:"1" type:"string" required:"true"`
4753
4754	// A system-assigned unique identifier for a server that has this user assigned.
4755	//
4756	// ServerId is a required field
4757	ServerId *string `min:"19" type:"string" required:"true"`
4758}
4759
4760// String returns the string representation
4761func (s DeleteAccessInput) String() string {
4762	return awsutil.Prettify(s)
4763}
4764
4765// GoString returns the string representation
4766func (s DeleteAccessInput) GoString() string {
4767	return s.String()
4768}
4769
4770// Validate inspects the fields of the type to determine if they are valid.
4771func (s *DeleteAccessInput) Validate() error {
4772	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessInput"}
4773	if s.ExternalId == nil {
4774		invalidParams.Add(request.NewErrParamRequired("ExternalId"))
4775	}
4776	if s.ExternalId != nil && len(*s.ExternalId) < 1 {
4777		invalidParams.Add(request.NewErrParamMinLen("ExternalId", 1))
4778	}
4779	if s.ServerId == nil {
4780		invalidParams.Add(request.NewErrParamRequired("ServerId"))
4781	}
4782	if s.ServerId != nil && len(*s.ServerId) < 19 {
4783		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
4784	}
4785
4786	if invalidParams.Len() > 0 {
4787		return invalidParams
4788	}
4789	return nil
4790}
4791
4792// SetExternalId sets the ExternalId field's value.
4793func (s *DeleteAccessInput) SetExternalId(v string) *DeleteAccessInput {
4794	s.ExternalId = &v
4795	return s
4796}
4797
4798// SetServerId sets the ServerId field's value.
4799func (s *DeleteAccessInput) SetServerId(v string) *DeleteAccessInput {
4800	s.ServerId = &v
4801	return s
4802}
4803
4804type DeleteAccessOutput struct {
4805	_ struct{} `type:"structure"`
4806}
4807
4808// String returns the string representation
4809func (s DeleteAccessOutput) String() string {
4810	return awsutil.Prettify(s)
4811}
4812
4813// GoString returns the string representation
4814func (s DeleteAccessOutput) GoString() string {
4815	return s.String()
4816}
4817
4818type DeleteServerInput struct {
4819	_ struct{} `type:"structure"`
4820
4821	// A unique system-assigned identifier for a server instance.
4822	//
4823	// ServerId is a required field
4824	ServerId *string `min:"19" type:"string" required:"true"`
4825}
4826
4827// String returns the string representation
4828func (s DeleteServerInput) String() string {
4829	return awsutil.Prettify(s)
4830}
4831
4832// GoString returns the string representation
4833func (s DeleteServerInput) GoString() string {
4834	return s.String()
4835}
4836
4837// Validate inspects the fields of the type to determine if they are valid.
4838func (s *DeleteServerInput) Validate() error {
4839	invalidParams := request.ErrInvalidParams{Context: "DeleteServerInput"}
4840	if s.ServerId == nil {
4841		invalidParams.Add(request.NewErrParamRequired("ServerId"))
4842	}
4843	if s.ServerId != nil && len(*s.ServerId) < 19 {
4844		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
4845	}
4846
4847	if invalidParams.Len() > 0 {
4848		return invalidParams
4849	}
4850	return nil
4851}
4852
4853// SetServerId sets the ServerId field's value.
4854func (s *DeleteServerInput) SetServerId(v string) *DeleteServerInput {
4855	s.ServerId = &v
4856	return s
4857}
4858
4859type DeleteServerOutput struct {
4860	_ struct{} `type:"structure"`
4861}
4862
4863// String returns the string representation
4864func (s DeleteServerOutput) String() string {
4865	return awsutil.Prettify(s)
4866}
4867
4868// GoString returns the string representation
4869func (s DeleteServerOutput) GoString() string {
4870	return s.String()
4871}
4872
4873type DeleteSshPublicKeyInput struct {
4874	_ struct{} `type:"structure"`
4875
4876	// A system-assigned unique identifier for a file transfer protocol-enabled
4877	// server instance that has the user assigned to it.
4878	//
4879	// ServerId is a required field
4880	ServerId *string `min:"19" type:"string" required:"true"`
4881
4882	// A unique identifier used to reference your user's specific SSH key.
4883	//
4884	// SshPublicKeyId is a required field
4885	SshPublicKeyId *string `min:"21" type:"string" required:"true"`
4886
4887	// A unique string that identifies a user whose public key is being deleted.
4888	//
4889	// UserName is a required field
4890	UserName *string `min:"3" type:"string" required:"true"`
4891}
4892
4893// String returns the string representation
4894func (s DeleteSshPublicKeyInput) String() string {
4895	return awsutil.Prettify(s)
4896}
4897
4898// GoString returns the string representation
4899func (s DeleteSshPublicKeyInput) GoString() string {
4900	return s.String()
4901}
4902
4903// Validate inspects the fields of the type to determine if they are valid.
4904func (s *DeleteSshPublicKeyInput) Validate() error {
4905	invalidParams := request.ErrInvalidParams{Context: "DeleteSshPublicKeyInput"}
4906	if s.ServerId == nil {
4907		invalidParams.Add(request.NewErrParamRequired("ServerId"))
4908	}
4909	if s.ServerId != nil && len(*s.ServerId) < 19 {
4910		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
4911	}
4912	if s.SshPublicKeyId == nil {
4913		invalidParams.Add(request.NewErrParamRequired("SshPublicKeyId"))
4914	}
4915	if s.SshPublicKeyId != nil && len(*s.SshPublicKeyId) < 21 {
4916		invalidParams.Add(request.NewErrParamMinLen("SshPublicKeyId", 21))
4917	}
4918	if s.UserName == nil {
4919		invalidParams.Add(request.NewErrParamRequired("UserName"))
4920	}
4921	if s.UserName != nil && len(*s.UserName) < 3 {
4922		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
4923	}
4924
4925	if invalidParams.Len() > 0 {
4926		return invalidParams
4927	}
4928	return nil
4929}
4930
4931// SetServerId sets the ServerId field's value.
4932func (s *DeleteSshPublicKeyInput) SetServerId(v string) *DeleteSshPublicKeyInput {
4933	s.ServerId = &v
4934	return s
4935}
4936
4937// SetSshPublicKeyId sets the SshPublicKeyId field's value.
4938func (s *DeleteSshPublicKeyInput) SetSshPublicKeyId(v string) *DeleteSshPublicKeyInput {
4939	s.SshPublicKeyId = &v
4940	return s
4941}
4942
4943// SetUserName sets the UserName field's value.
4944func (s *DeleteSshPublicKeyInput) SetUserName(v string) *DeleteSshPublicKeyInput {
4945	s.UserName = &v
4946	return s
4947}
4948
4949type DeleteSshPublicKeyOutput struct {
4950	_ struct{} `type:"structure"`
4951}
4952
4953// String returns the string representation
4954func (s DeleteSshPublicKeyOutput) String() string {
4955	return awsutil.Prettify(s)
4956}
4957
4958// GoString returns the string representation
4959func (s DeleteSshPublicKeyOutput) GoString() string {
4960	return s.String()
4961}
4962
4963// The name of the step, used to identify the step that is being deleted.
4964type DeleteStepDetails struct {
4965	_ struct{} `type:"structure"`
4966
4967	// The name of the step, used as an identifier.
4968	Name *string `type:"string"`
4969}
4970
4971// String returns the string representation
4972func (s DeleteStepDetails) String() string {
4973	return awsutil.Prettify(s)
4974}
4975
4976// GoString returns the string representation
4977func (s DeleteStepDetails) GoString() string {
4978	return s.String()
4979}
4980
4981// SetName sets the Name field's value.
4982func (s *DeleteStepDetails) SetName(v string) *DeleteStepDetails {
4983	s.Name = &v
4984	return s
4985}
4986
4987type DeleteUserInput struct {
4988	_ struct{} `type:"structure"`
4989
4990	// A system-assigned unique identifier for a server instance that has the user
4991	// assigned to it.
4992	//
4993	// ServerId is a required field
4994	ServerId *string `min:"19" type:"string" required:"true"`
4995
4996	// A unique string that identifies a user that is being deleted from a server.
4997	//
4998	// UserName is a required field
4999	UserName *string `min:"3" type:"string" required:"true"`
5000}
5001
5002// String returns the string representation
5003func (s DeleteUserInput) String() string {
5004	return awsutil.Prettify(s)
5005}
5006
5007// GoString returns the string representation
5008func (s DeleteUserInput) GoString() string {
5009	return s.String()
5010}
5011
5012// Validate inspects the fields of the type to determine if they are valid.
5013func (s *DeleteUserInput) Validate() error {
5014	invalidParams := request.ErrInvalidParams{Context: "DeleteUserInput"}
5015	if s.ServerId == nil {
5016		invalidParams.Add(request.NewErrParamRequired("ServerId"))
5017	}
5018	if s.ServerId != nil && len(*s.ServerId) < 19 {
5019		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
5020	}
5021	if s.UserName == nil {
5022		invalidParams.Add(request.NewErrParamRequired("UserName"))
5023	}
5024	if s.UserName != nil && len(*s.UserName) < 3 {
5025		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
5026	}
5027
5028	if invalidParams.Len() > 0 {
5029		return invalidParams
5030	}
5031	return nil
5032}
5033
5034// SetServerId sets the ServerId field's value.
5035func (s *DeleteUserInput) SetServerId(v string) *DeleteUserInput {
5036	s.ServerId = &v
5037	return s
5038}
5039
5040// SetUserName sets the UserName field's value.
5041func (s *DeleteUserInput) SetUserName(v string) *DeleteUserInput {
5042	s.UserName = &v
5043	return s
5044}
5045
5046type DeleteUserOutput struct {
5047	_ struct{} `type:"structure"`
5048}
5049
5050// String returns the string representation
5051func (s DeleteUserOutput) String() string {
5052	return awsutil.Prettify(s)
5053}
5054
5055// GoString returns the string representation
5056func (s DeleteUserOutput) GoString() string {
5057	return s.String()
5058}
5059
5060type DeleteWorkflowInput struct {
5061	_ struct{} `type:"structure"`
5062
5063	// A unique identifier for the workflow.
5064	//
5065	// WorkflowId is a required field
5066	WorkflowId *string `min:"19" type:"string" required:"true"`
5067}
5068
5069// String returns the string representation
5070func (s DeleteWorkflowInput) String() string {
5071	return awsutil.Prettify(s)
5072}
5073
5074// GoString returns the string representation
5075func (s DeleteWorkflowInput) GoString() string {
5076	return s.String()
5077}
5078
5079// Validate inspects the fields of the type to determine if they are valid.
5080func (s *DeleteWorkflowInput) Validate() error {
5081	invalidParams := request.ErrInvalidParams{Context: "DeleteWorkflowInput"}
5082	if s.WorkflowId == nil {
5083		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
5084	}
5085	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
5086		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
5087	}
5088
5089	if invalidParams.Len() > 0 {
5090		return invalidParams
5091	}
5092	return nil
5093}
5094
5095// SetWorkflowId sets the WorkflowId field's value.
5096func (s *DeleteWorkflowInput) SetWorkflowId(v string) *DeleteWorkflowInput {
5097	s.WorkflowId = &v
5098	return s
5099}
5100
5101type DeleteWorkflowOutput struct {
5102	_ struct{} `type:"structure"`
5103}
5104
5105// String returns the string representation
5106func (s DeleteWorkflowOutput) String() string {
5107	return awsutil.Prettify(s)
5108}
5109
5110// GoString returns the string representation
5111func (s DeleteWorkflowOutput) GoString() string {
5112	return s.String()
5113}
5114
5115type DescribeAccessInput struct {
5116	_ struct{} `type:"structure"`
5117
5118	// A unique identifier that is required to identify specific groups within your
5119	// directory. The users of the group that you associate have access to your
5120	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
5121	// Web Services Transfer Family. If you know the group name, you can view the
5122	// SID values by running the following command using Windows PowerShell.
5123	//
5124	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
5125	// | Select SamAccountName,ObjectSid
5126	//
5127	// In that command, replace YourGroupName with the name of your Active Directory
5128	// group.
5129	//
5130	// The regex used to validate this parameter is a string of characters consisting
5131	// of uppercase and lowercase alphanumeric characters with no spaces. You can
5132	// also include underscores or any of the following characters: =,.@:/-
5133	//
5134	// ExternalId is a required field
5135	ExternalId *string `min:"1" type:"string" required:"true"`
5136
5137	// A system-assigned unique identifier for a server that has this access assigned.
5138	//
5139	// ServerId is a required field
5140	ServerId *string `min:"19" type:"string" required:"true"`
5141}
5142
5143// String returns the string representation
5144func (s DescribeAccessInput) String() string {
5145	return awsutil.Prettify(s)
5146}
5147
5148// GoString returns the string representation
5149func (s DescribeAccessInput) GoString() string {
5150	return s.String()
5151}
5152
5153// Validate inspects the fields of the type to determine if they are valid.
5154func (s *DescribeAccessInput) Validate() error {
5155	invalidParams := request.ErrInvalidParams{Context: "DescribeAccessInput"}
5156	if s.ExternalId == nil {
5157		invalidParams.Add(request.NewErrParamRequired("ExternalId"))
5158	}
5159	if s.ExternalId != nil && len(*s.ExternalId) < 1 {
5160		invalidParams.Add(request.NewErrParamMinLen("ExternalId", 1))
5161	}
5162	if s.ServerId == nil {
5163		invalidParams.Add(request.NewErrParamRequired("ServerId"))
5164	}
5165	if s.ServerId != nil && len(*s.ServerId) < 19 {
5166		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
5167	}
5168
5169	if invalidParams.Len() > 0 {
5170		return invalidParams
5171	}
5172	return nil
5173}
5174
5175// SetExternalId sets the ExternalId field's value.
5176func (s *DescribeAccessInput) SetExternalId(v string) *DescribeAccessInput {
5177	s.ExternalId = &v
5178	return s
5179}
5180
5181// SetServerId sets the ServerId field's value.
5182func (s *DescribeAccessInput) SetServerId(v string) *DescribeAccessInput {
5183	s.ServerId = &v
5184	return s
5185}
5186
5187type DescribeAccessOutput struct {
5188	_ struct{} `type:"structure"`
5189
5190	// The external ID of the server that the access is attached to.
5191	//
5192	// Access is a required field
5193	Access *DescribedAccess `type:"structure" required:"true"`
5194
5195	// A system-assigned unique identifier for a server that has this access assigned.
5196	//
5197	// ServerId is a required field
5198	ServerId *string `min:"19" type:"string" required:"true"`
5199}
5200
5201// String returns the string representation
5202func (s DescribeAccessOutput) String() string {
5203	return awsutil.Prettify(s)
5204}
5205
5206// GoString returns the string representation
5207func (s DescribeAccessOutput) GoString() string {
5208	return s.String()
5209}
5210
5211// SetAccess sets the Access field's value.
5212func (s *DescribeAccessOutput) SetAccess(v *DescribedAccess) *DescribeAccessOutput {
5213	s.Access = v
5214	return s
5215}
5216
5217// SetServerId sets the ServerId field's value.
5218func (s *DescribeAccessOutput) SetServerId(v string) *DescribeAccessOutput {
5219	s.ServerId = &v
5220	return s
5221}
5222
5223type DescribeExecutionInput struct {
5224	_ struct{} `type:"structure"`
5225
5226	// A unique identifier for the execution of a workflow.
5227	//
5228	// ExecutionId is a required field
5229	ExecutionId *string `min:"36" type:"string" required:"true"`
5230
5231	// A unique identifier for the workflow.
5232	//
5233	// WorkflowId is a required field
5234	WorkflowId *string `min:"19" type:"string" required:"true"`
5235}
5236
5237// String returns the string representation
5238func (s DescribeExecutionInput) String() string {
5239	return awsutil.Prettify(s)
5240}
5241
5242// GoString returns the string representation
5243func (s DescribeExecutionInput) GoString() string {
5244	return s.String()
5245}
5246
5247// Validate inspects the fields of the type to determine if they are valid.
5248func (s *DescribeExecutionInput) Validate() error {
5249	invalidParams := request.ErrInvalidParams{Context: "DescribeExecutionInput"}
5250	if s.ExecutionId == nil {
5251		invalidParams.Add(request.NewErrParamRequired("ExecutionId"))
5252	}
5253	if s.ExecutionId != nil && len(*s.ExecutionId) < 36 {
5254		invalidParams.Add(request.NewErrParamMinLen("ExecutionId", 36))
5255	}
5256	if s.WorkflowId == nil {
5257		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
5258	}
5259	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
5260		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
5261	}
5262
5263	if invalidParams.Len() > 0 {
5264		return invalidParams
5265	}
5266	return nil
5267}
5268
5269// SetExecutionId sets the ExecutionId field's value.
5270func (s *DescribeExecutionInput) SetExecutionId(v string) *DescribeExecutionInput {
5271	s.ExecutionId = &v
5272	return s
5273}
5274
5275// SetWorkflowId sets the WorkflowId field's value.
5276func (s *DescribeExecutionInput) SetWorkflowId(v string) *DescribeExecutionInput {
5277	s.WorkflowId = &v
5278	return s
5279}
5280
5281type DescribeExecutionOutput struct {
5282	_ struct{} `type:"structure"`
5283
5284	// The structure that contains the details of the workflow' execution.
5285	//
5286	// Execution is a required field
5287	Execution *DescribedExecution `type:"structure" required:"true"`
5288
5289	// A unique identifier for the workflow.
5290	//
5291	// WorkflowId is a required field
5292	WorkflowId *string `min:"19" type:"string" required:"true"`
5293}
5294
5295// String returns the string representation
5296func (s DescribeExecutionOutput) String() string {
5297	return awsutil.Prettify(s)
5298}
5299
5300// GoString returns the string representation
5301func (s DescribeExecutionOutput) GoString() string {
5302	return s.String()
5303}
5304
5305// SetExecution sets the Execution field's value.
5306func (s *DescribeExecutionOutput) SetExecution(v *DescribedExecution) *DescribeExecutionOutput {
5307	s.Execution = v
5308	return s
5309}
5310
5311// SetWorkflowId sets the WorkflowId field's value.
5312func (s *DescribeExecutionOutput) SetWorkflowId(v string) *DescribeExecutionOutput {
5313	s.WorkflowId = &v
5314	return s
5315}
5316
5317type DescribeSecurityPolicyInput struct {
5318	_ struct{} `type:"structure"`
5319
5320	// Specifies the name of the security policy that is attached to the server.
5321	//
5322	// SecurityPolicyName is a required field
5323	SecurityPolicyName *string `type:"string" required:"true"`
5324}
5325
5326// String returns the string representation
5327func (s DescribeSecurityPolicyInput) String() string {
5328	return awsutil.Prettify(s)
5329}
5330
5331// GoString returns the string representation
5332func (s DescribeSecurityPolicyInput) GoString() string {
5333	return s.String()
5334}
5335
5336// Validate inspects the fields of the type to determine if they are valid.
5337func (s *DescribeSecurityPolicyInput) Validate() error {
5338	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityPolicyInput"}
5339	if s.SecurityPolicyName == nil {
5340		invalidParams.Add(request.NewErrParamRequired("SecurityPolicyName"))
5341	}
5342
5343	if invalidParams.Len() > 0 {
5344		return invalidParams
5345	}
5346	return nil
5347}
5348
5349// SetSecurityPolicyName sets the SecurityPolicyName field's value.
5350func (s *DescribeSecurityPolicyInput) SetSecurityPolicyName(v string) *DescribeSecurityPolicyInput {
5351	s.SecurityPolicyName = &v
5352	return s
5353}
5354
5355type DescribeSecurityPolicyOutput struct {
5356	_ struct{} `type:"structure"`
5357
5358	// An array containing the properties of the security policy.
5359	//
5360	// SecurityPolicy is a required field
5361	SecurityPolicy *DescribedSecurityPolicy `type:"structure" required:"true"`
5362}
5363
5364// String returns the string representation
5365func (s DescribeSecurityPolicyOutput) String() string {
5366	return awsutil.Prettify(s)
5367}
5368
5369// GoString returns the string representation
5370func (s DescribeSecurityPolicyOutput) GoString() string {
5371	return s.String()
5372}
5373
5374// SetSecurityPolicy sets the SecurityPolicy field's value.
5375func (s *DescribeSecurityPolicyOutput) SetSecurityPolicy(v *DescribedSecurityPolicy) *DescribeSecurityPolicyOutput {
5376	s.SecurityPolicy = v
5377	return s
5378}
5379
5380type DescribeServerInput struct {
5381	_ struct{} `type:"structure"`
5382
5383	// A system-assigned unique identifier for a server.
5384	//
5385	// ServerId is a required field
5386	ServerId *string `min:"19" type:"string" required:"true"`
5387}
5388
5389// String returns the string representation
5390func (s DescribeServerInput) String() string {
5391	return awsutil.Prettify(s)
5392}
5393
5394// GoString returns the string representation
5395func (s DescribeServerInput) GoString() string {
5396	return s.String()
5397}
5398
5399// Validate inspects the fields of the type to determine if they are valid.
5400func (s *DescribeServerInput) Validate() error {
5401	invalidParams := request.ErrInvalidParams{Context: "DescribeServerInput"}
5402	if s.ServerId == nil {
5403		invalidParams.Add(request.NewErrParamRequired("ServerId"))
5404	}
5405	if s.ServerId != nil && len(*s.ServerId) < 19 {
5406		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
5407	}
5408
5409	if invalidParams.Len() > 0 {
5410		return invalidParams
5411	}
5412	return nil
5413}
5414
5415// SetServerId sets the ServerId field's value.
5416func (s *DescribeServerInput) SetServerId(v string) *DescribeServerInput {
5417	s.ServerId = &v
5418	return s
5419}
5420
5421type DescribeServerOutput struct {
5422	_ struct{} `type:"structure"`
5423
5424	// An array containing the properties of a server with the ServerID you specified.
5425	//
5426	// Server is a required field
5427	Server *DescribedServer `type:"structure" required:"true"`
5428}
5429
5430// String returns the string representation
5431func (s DescribeServerOutput) String() string {
5432	return awsutil.Prettify(s)
5433}
5434
5435// GoString returns the string representation
5436func (s DescribeServerOutput) GoString() string {
5437	return s.String()
5438}
5439
5440// SetServer sets the Server field's value.
5441func (s *DescribeServerOutput) SetServer(v *DescribedServer) *DescribeServerOutput {
5442	s.Server = v
5443	return s
5444}
5445
5446type DescribeUserInput struct {
5447	_ struct{} `type:"structure"`
5448
5449	// A system-assigned unique identifier for a server that has this user assigned.
5450	//
5451	// ServerId is a required field
5452	ServerId *string `min:"19" type:"string" required:"true"`
5453
5454	// The name of the user assigned to one or more servers. User names are part
5455	// of the sign-in credentials to use the Amazon Web Services Transfer Family
5456	// service and perform file transfer tasks.
5457	//
5458	// UserName is a required field
5459	UserName *string `min:"3" type:"string" required:"true"`
5460}
5461
5462// String returns the string representation
5463func (s DescribeUserInput) String() string {
5464	return awsutil.Prettify(s)
5465}
5466
5467// GoString returns the string representation
5468func (s DescribeUserInput) GoString() string {
5469	return s.String()
5470}
5471
5472// Validate inspects the fields of the type to determine if they are valid.
5473func (s *DescribeUserInput) Validate() error {
5474	invalidParams := request.ErrInvalidParams{Context: "DescribeUserInput"}
5475	if s.ServerId == nil {
5476		invalidParams.Add(request.NewErrParamRequired("ServerId"))
5477	}
5478	if s.ServerId != nil && len(*s.ServerId) < 19 {
5479		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
5480	}
5481	if s.UserName == nil {
5482		invalidParams.Add(request.NewErrParamRequired("UserName"))
5483	}
5484	if s.UserName != nil && len(*s.UserName) < 3 {
5485		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
5486	}
5487
5488	if invalidParams.Len() > 0 {
5489		return invalidParams
5490	}
5491	return nil
5492}
5493
5494// SetServerId sets the ServerId field's value.
5495func (s *DescribeUserInput) SetServerId(v string) *DescribeUserInput {
5496	s.ServerId = &v
5497	return s
5498}
5499
5500// SetUserName sets the UserName field's value.
5501func (s *DescribeUserInput) SetUserName(v string) *DescribeUserInput {
5502	s.UserName = &v
5503	return s
5504}
5505
5506type DescribeUserOutput struct {
5507	_ struct{} `type:"structure"`
5508
5509	// A system-assigned unique identifier for a server that has this user assigned.
5510	//
5511	// ServerId is a required field
5512	ServerId *string `min:"19" type:"string" required:"true"`
5513
5514	// An array containing the properties of the user account for the ServerID value
5515	// that you specified.
5516	//
5517	// User is a required field
5518	User *DescribedUser `type:"structure" required:"true"`
5519}
5520
5521// String returns the string representation
5522func (s DescribeUserOutput) String() string {
5523	return awsutil.Prettify(s)
5524}
5525
5526// GoString returns the string representation
5527func (s DescribeUserOutput) GoString() string {
5528	return s.String()
5529}
5530
5531// SetServerId sets the ServerId field's value.
5532func (s *DescribeUserOutput) SetServerId(v string) *DescribeUserOutput {
5533	s.ServerId = &v
5534	return s
5535}
5536
5537// SetUser sets the User field's value.
5538func (s *DescribeUserOutput) SetUser(v *DescribedUser) *DescribeUserOutput {
5539	s.User = v
5540	return s
5541}
5542
5543type DescribeWorkflowInput struct {
5544	_ struct{} `type:"structure"`
5545
5546	// A unique identifier for the workflow.
5547	//
5548	// WorkflowId is a required field
5549	WorkflowId *string `min:"19" type:"string" required:"true"`
5550}
5551
5552// String returns the string representation
5553func (s DescribeWorkflowInput) String() string {
5554	return awsutil.Prettify(s)
5555}
5556
5557// GoString returns the string representation
5558func (s DescribeWorkflowInput) GoString() string {
5559	return s.String()
5560}
5561
5562// Validate inspects the fields of the type to determine if they are valid.
5563func (s *DescribeWorkflowInput) Validate() error {
5564	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkflowInput"}
5565	if s.WorkflowId == nil {
5566		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
5567	}
5568	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
5569		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
5570	}
5571
5572	if invalidParams.Len() > 0 {
5573		return invalidParams
5574	}
5575	return nil
5576}
5577
5578// SetWorkflowId sets the WorkflowId field's value.
5579func (s *DescribeWorkflowInput) SetWorkflowId(v string) *DescribeWorkflowInput {
5580	s.WorkflowId = &v
5581	return s
5582}
5583
5584type DescribeWorkflowOutput struct {
5585	_ struct{} `type:"structure"`
5586
5587	// The structure that contains the details of the workflow.
5588	//
5589	// Workflow is a required field
5590	Workflow *DescribedWorkflow `type:"structure" required:"true"`
5591}
5592
5593// String returns the string representation
5594func (s DescribeWorkflowOutput) String() string {
5595	return awsutil.Prettify(s)
5596}
5597
5598// GoString returns the string representation
5599func (s DescribeWorkflowOutput) GoString() string {
5600	return s.String()
5601}
5602
5603// SetWorkflow sets the Workflow field's value.
5604func (s *DescribeWorkflowOutput) SetWorkflow(v *DescribedWorkflow) *DescribeWorkflowOutput {
5605	s.Workflow = v
5606	return s
5607}
5608
5609// Describes the properties of the access that was specified.
5610type DescribedAccess struct {
5611	_ struct{} `type:"structure"`
5612
5613	// A unique identifier that is required to identify specific groups within your
5614	// directory. The users of the group that you associate have access to your
5615	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
5616	// Web Services Transfer Family. If you know the group name, you can view the
5617	// SID values by running the following command using Windows PowerShell.
5618	//
5619	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
5620	// | Select SamAccountName,ObjectSid
5621	//
5622	// In that command, replace YourGroupName with the name of your Active Directory
5623	// group.
5624	//
5625	// The regex used to validate this parameter is a string of characters consisting
5626	// of uppercase and lowercase alphanumeric characters with no spaces. You can
5627	// also include underscores or any of the following characters: =,.@:/-
5628	ExternalId *string `min:"1" type:"string"`
5629
5630	// The landing directory (folder) for a user when they log in to the server
5631	// using the client.
5632	//
5633	// A HomeDirectory example is /bucket_name/home/mydirectory.
5634	HomeDirectory *string `type:"string"`
5635
5636	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
5637	// and keys should be visible to your user and how you want to make them visible.
5638	// You must specify the Entry and Target pair, where Entry shows how the path
5639	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
5640	// you only specify a target, it is displayed as is. You also must ensure that
5641	// your Amazon Web Services Identity and Access Management (IAM) role provides
5642	// access to paths in Target. This value can only be set when HomeDirectoryType
5643	// is set to LOGICAL.
5644	//
5645	// In most cases, you can use this value instead of the session policy to lock
5646	// down the associated access to the designated home directory ("chroot"). To
5647	// do this, you can set Entry to '/' and set Target to the HomeDirectory parameter
5648	// value.
5649	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
5650
5651	// The type of landing directory (folder) you want your users' home directory
5652	// to be when they log into the server. If you set it to PATH, the user will
5653	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
5654	// protocol clients. If you set it LOGICAL, you need to provide mappings in
5655	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
5656	// visible to your users.
5657	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
5658
5659	// A session policy for your user so that you can use the same IAM role across
5660	// multiple users. This policy scopes down user access to portions of their
5661	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
5662	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
5663	Policy *string `type:"string"`
5664
5665	// The full POSIX identity, including user ID (Uid), group ID (Gid), and any
5666	// secondary groups IDs (SecondaryGids), that controls your users' access to
5667	// your Amazon EFS file systems. The POSIX permissions that are set on files
5668	// and directories in your file system determine the level of access your users
5669	// get when transferring files into and out of your Amazon EFS file systems.
5670	PosixProfile *PosixProfile `type:"structure"`
5671
5672	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
5673	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
5674	// to this role determine the level of access that you want to provide your
5675	// users when transferring files into and out of your Amazon S3 bucket or EFS
5676	// file system. The IAM role should also contain a trust relationship that allows
5677	// the server to access your resources when servicing your users' transfer requests.
5678	Role *string `min:"20" type:"string"`
5679}
5680
5681// String returns the string representation
5682func (s DescribedAccess) String() string {
5683	return awsutil.Prettify(s)
5684}
5685
5686// GoString returns the string representation
5687func (s DescribedAccess) GoString() string {
5688	return s.String()
5689}
5690
5691// SetExternalId sets the ExternalId field's value.
5692func (s *DescribedAccess) SetExternalId(v string) *DescribedAccess {
5693	s.ExternalId = &v
5694	return s
5695}
5696
5697// SetHomeDirectory sets the HomeDirectory field's value.
5698func (s *DescribedAccess) SetHomeDirectory(v string) *DescribedAccess {
5699	s.HomeDirectory = &v
5700	return s
5701}
5702
5703// SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
5704func (s *DescribedAccess) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *DescribedAccess {
5705	s.HomeDirectoryMappings = v
5706	return s
5707}
5708
5709// SetHomeDirectoryType sets the HomeDirectoryType field's value.
5710func (s *DescribedAccess) SetHomeDirectoryType(v string) *DescribedAccess {
5711	s.HomeDirectoryType = &v
5712	return s
5713}
5714
5715// SetPolicy sets the Policy field's value.
5716func (s *DescribedAccess) SetPolicy(v string) *DescribedAccess {
5717	s.Policy = &v
5718	return s
5719}
5720
5721// SetPosixProfile sets the PosixProfile field's value.
5722func (s *DescribedAccess) SetPosixProfile(v *PosixProfile) *DescribedAccess {
5723	s.PosixProfile = v
5724	return s
5725}
5726
5727// SetRole sets the Role field's value.
5728func (s *DescribedAccess) SetRole(v string) *DescribedAccess {
5729	s.Role = &v
5730	return s
5731}
5732
5733// The details for an execution object.
5734type DescribedExecution struct {
5735	_ struct{} `type:"structure"`
5736
5737	// A unique identifier for the execution of a workflow.
5738	ExecutionId *string `min:"36" type:"string"`
5739
5740	// The IAM role associated with the execution.
5741	ExecutionRole *string `min:"20" type:"string"`
5742
5743	// A structure that describes the Amazon S3 or EFS file location. This is the
5744	// file location when the execution begins: if the file is being copied, this
5745	// is the initial (as opposed to destination) file location.
5746	InitialFileLocation *FileLocation `type:"structure"`
5747
5748	// The IAM logging role associated with the execution.
5749	LoggingConfiguration *LoggingConfiguration `type:"structure"`
5750
5751	// The full POSIX identity, including user ID (Uid), group ID (Gid), and any
5752	// secondary groups IDs (SecondaryGids), that controls your users' access to
5753	// your Amazon EFS file systems. The POSIX permissions that are set on files
5754	// and directories in your file system determine the level of access your users
5755	// get when transferring files into and out of your Amazon EFS file systems.
5756	PosixProfile *PosixProfile `type:"structure"`
5757
5758	// A structure that describes the execution results. This includes a list of
5759	// the steps along with the details of each step, error type and message (if
5760	// any), and the OnExceptionSteps structure.
5761	Results *ExecutionResults `type:"structure"`
5762
5763	// A container object for the session details associated with a workflow.
5764	ServiceMetadata *ServiceMetadata `type:"structure"`
5765
5766	// The status is one of the execution. Can be in progress, completed, exception
5767	// encountered, or handling the exception.
5768	Status *string `type:"string" enum:"ExecutionStatus"`
5769}
5770
5771// String returns the string representation
5772func (s DescribedExecution) String() string {
5773	return awsutil.Prettify(s)
5774}
5775
5776// GoString returns the string representation
5777func (s DescribedExecution) GoString() string {
5778	return s.String()
5779}
5780
5781// SetExecutionId sets the ExecutionId field's value.
5782func (s *DescribedExecution) SetExecutionId(v string) *DescribedExecution {
5783	s.ExecutionId = &v
5784	return s
5785}
5786
5787// SetExecutionRole sets the ExecutionRole field's value.
5788func (s *DescribedExecution) SetExecutionRole(v string) *DescribedExecution {
5789	s.ExecutionRole = &v
5790	return s
5791}
5792
5793// SetInitialFileLocation sets the InitialFileLocation field's value.
5794func (s *DescribedExecution) SetInitialFileLocation(v *FileLocation) *DescribedExecution {
5795	s.InitialFileLocation = v
5796	return s
5797}
5798
5799// SetLoggingConfiguration sets the LoggingConfiguration field's value.
5800func (s *DescribedExecution) SetLoggingConfiguration(v *LoggingConfiguration) *DescribedExecution {
5801	s.LoggingConfiguration = v
5802	return s
5803}
5804
5805// SetPosixProfile sets the PosixProfile field's value.
5806func (s *DescribedExecution) SetPosixProfile(v *PosixProfile) *DescribedExecution {
5807	s.PosixProfile = v
5808	return s
5809}
5810
5811// SetResults sets the Results field's value.
5812func (s *DescribedExecution) SetResults(v *ExecutionResults) *DescribedExecution {
5813	s.Results = v
5814	return s
5815}
5816
5817// SetServiceMetadata sets the ServiceMetadata field's value.
5818func (s *DescribedExecution) SetServiceMetadata(v *ServiceMetadata) *DescribedExecution {
5819	s.ServiceMetadata = v
5820	return s
5821}
5822
5823// SetStatus sets the Status field's value.
5824func (s *DescribedExecution) SetStatus(v string) *DescribedExecution {
5825	s.Status = &v
5826	return s
5827}
5828
5829// Describes the properties of a security policy that was specified. For more
5830// information about security policies, see Working with security policies (https://docs.aws.amazon.com/transfer/latest/userguide/security-policies.html).
5831type DescribedSecurityPolicy struct {
5832	_ struct{} `type:"structure"`
5833
5834	// Specifies whether this policy enables Federal Information Processing Standards
5835	// (FIPS).
5836	Fips *bool `type:"boolean"`
5837
5838	// Specifies the name of the security policy that is attached to the server.
5839	//
5840	// SecurityPolicyName is a required field
5841	SecurityPolicyName *string `type:"string" required:"true"`
5842
5843	// Specifies the enabled Secure Shell (SSH) cipher encryption algorithms in
5844	// the security policy that is attached to the server.
5845	SshCiphers []*string `type:"list"`
5846
5847	// Specifies the enabled SSH key exchange (KEX) encryption algorithms in the
5848	// security policy that is attached to the server.
5849	SshKexs []*string `type:"list"`
5850
5851	// Specifies the enabled SSH message authentication code (MAC) encryption algorithms
5852	// in the security policy that is attached to the server.
5853	SshMacs []*string `type:"list"`
5854
5855	// Specifies the enabled Transport Layer Security (TLS) cipher encryption algorithms
5856	// in the security policy that is attached to the server.
5857	TlsCiphers []*string `type:"list"`
5858}
5859
5860// String returns the string representation
5861func (s DescribedSecurityPolicy) String() string {
5862	return awsutil.Prettify(s)
5863}
5864
5865// GoString returns the string representation
5866func (s DescribedSecurityPolicy) GoString() string {
5867	return s.String()
5868}
5869
5870// SetFips sets the Fips field's value.
5871func (s *DescribedSecurityPolicy) SetFips(v bool) *DescribedSecurityPolicy {
5872	s.Fips = &v
5873	return s
5874}
5875
5876// SetSecurityPolicyName sets the SecurityPolicyName field's value.
5877func (s *DescribedSecurityPolicy) SetSecurityPolicyName(v string) *DescribedSecurityPolicy {
5878	s.SecurityPolicyName = &v
5879	return s
5880}
5881
5882// SetSshCiphers sets the SshCiphers field's value.
5883func (s *DescribedSecurityPolicy) SetSshCiphers(v []*string) *DescribedSecurityPolicy {
5884	s.SshCiphers = v
5885	return s
5886}
5887
5888// SetSshKexs sets the SshKexs field's value.
5889func (s *DescribedSecurityPolicy) SetSshKexs(v []*string) *DescribedSecurityPolicy {
5890	s.SshKexs = v
5891	return s
5892}
5893
5894// SetSshMacs sets the SshMacs field's value.
5895func (s *DescribedSecurityPolicy) SetSshMacs(v []*string) *DescribedSecurityPolicy {
5896	s.SshMacs = v
5897	return s
5898}
5899
5900// SetTlsCiphers sets the TlsCiphers field's value.
5901func (s *DescribedSecurityPolicy) SetTlsCiphers(v []*string) *DescribedSecurityPolicy {
5902	s.TlsCiphers = v
5903	return s
5904}
5905
5906// Describes the properties of a file transfer protocol-enabled server that
5907// was specified.
5908type DescribedServer struct {
5909	_ struct{} `type:"structure"`
5910
5911	// Specifies the unique Amazon Resource Name (ARN) of the server.
5912	//
5913	// Arn is a required field
5914	Arn *string `min:"20" type:"string" required:"true"`
5915
5916	// Specifies the ARN of the Amazon Web ServicesCertificate Manager (ACM) certificate.
5917	// Required when Protocols is set to FTPS.
5918	Certificate *string `type:"string"`
5919
5920	// Specifies the domain of the storage system that is used for file transfers.
5921	Domain *string `type:"string" enum:"Domain"`
5922
5923	// The virtual private cloud (VPC) endpoint settings that are configured for
5924	// your server. When you host your endpoint within your VPC, you can make it
5925	// accessible only to resources within your VPC, or you can attach Elastic IP
5926	// addresses and make it accessible to clients over the internet. Your VPC's
5927	// default security groups are automatically assigned to your endpoint.
5928	EndpointDetails *EndpointDetails `type:"structure"`
5929
5930	// Defines the type of endpoint that your server is connected to. If your server
5931	// is connected to a VPC endpoint, your server isn't accessible over the public
5932	// internet.
5933	EndpointType *string `type:"string" enum:"EndpointType"`
5934
5935	// Specifies the Base64-encoded SHA256 fingerprint of the server's host key.
5936	// This value is equivalent to the output of the ssh-keygen -l -f my-new-server-key
5937	// command.
5938	HostKeyFingerprint *string `type:"string"`
5939
5940	// Specifies information to call a customer-supplied authentication API. This
5941	// field is not populated when the IdentityProviderType of a server is AWS_DIRECTORY_SERVICE
5942	// or SERVICE_MANAGED.
5943	IdentityProviderDetails *IdentityProviderDetails `type:"structure"`
5944
5945	// Specifies the mode of authentication for a server. The default value is SERVICE_MANAGED,
5946	// which allows you to store and access user credentials within the Amazon Web
5947	// Services Transfer Family service.
5948	//
5949	// Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in
5950	// Amazon Web Services Managed Active Directory or Microsoft Active Directory
5951	// in your on-premises environment or in Amazon Web Services using AD Connectors.
5952	// This option also requires you to provide a Directory ID using the IdentityProviderDetails
5953	// parameter.
5954	//
5955	// Use the API_GATEWAY value to integrate with an identity provider of your
5956	// choosing. The API_GATEWAY setting requires you to provide an API Gateway
5957	// endpoint URL to call for authentication using the IdentityProviderDetails
5958	// parameter.
5959	IdentityProviderType *string `type:"string" enum:"IdentityProviderType"`
5960
5961	// Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
5962	// and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch
5963	// logging for Amazon S3 or Amazon EFS events. When set, user activity can be
5964	// viewed in your CloudWatch logs.
5965	LoggingRole *string `min:"20" type:"string"`
5966
5967	// The protocol settings that are configured for your server.
5968	//
5969	// Use the PassiveIp parameter to indicate passive mode. Enter a single dotted-quad
5970	// IPv4 address, such as the external IP address of a firewall, router, or load
5971	// balancer.
5972	ProtocolDetails *ProtocolDetails `type:"structure"`
5973
5974	// Specifies the file transfer protocol or protocols over which your file transfer
5975	// protocol client can connect to your server's endpoint. The available protocols
5976	// are:
5977	//
5978	//    * SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over
5979	//    SSH
5980	//
5981	//    * FTPS (File Transfer Protocol Secure): File transfer with TLS encryption
5982	//
5983	//    * FTP (File Transfer Protocol): Unencrypted file transfer
5984	Protocols []*string `min:"1" type:"list"`
5985
5986	// Specifies the name of the security policy that is attached to the server.
5987	SecurityPolicyName *string `type:"string"`
5988
5989	// Specifies the unique system-assigned identifier for a server that you instantiate.
5990	ServerId *string `min:"19" type:"string"`
5991
5992	// Specifies the condition of a server for the server that was described. A
5993	// value of ONLINE indicates that the server can accept jobs and transfer files.
5994	// A State value of OFFLINE means that the server cannot perform file transfer
5995	// operations.
5996	//
5997	// The states of STARTING and STOPPING indicate that the server is in an intermediate
5998	// state, either not fully able to respond, or not fully offline. The values
5999	// of START_FAILED or STOP_FAILED can indicate an error condition.
6000	State *string `type:"string" enum:"State"`
6001
6002	// Specifies the key-value pairs that you can use to search for and group servers
6003	// that were assigned to the server that was described.
6004	Tags []*Tag `min:"1" type:"list"`
6005
6006	// Specifies the number of users that are assigned to a server you specified
6007	// with the ServerId.
6008	UserCount *int64 `type:"integer"`
6009
6010	// Specifies the workflow ID for the workflow to assign and the execution role
6011	// used for executing the workflow.
6012	WorkflowDetails *WorkflowDetails `type:"structure"`
6013}
6014
6015// String returns the string representation
6016func (s DescribedServer) String() string {
6017	return awsutil.Prettify(s)
6018}
6019
6020// GoString returns the string representation
6021func (s DescribedServer) GoString() string {
6022	return s.String()
6023}
6024
6025// SetArn sets the Arn field's value.
6026func (s *DescribedServer) SetArn(v string) *DescribedServer {
6027	s.Arn = &v
6028	return s
6029}
6030
6031// SetCertificate sets the Certificate field's value.
6032func (s *DescribedServer) SetCertificate(v string) *DescribedServer {
6033	s.Certificate = &v
6034	return s
6035}
6036
6037// SetDomain sets the Domain field's value.
6038func (s *DescribedServer) SetDomain(v string) *DescribedServer {
6039	s.Domain = &v
6040	return s
6041}
6042
6043// SetEndpointDetails sets the EndpointDetails field's value.
6044func (s *DescribedServer) SetEndpointDetails(v *EndpointDetails) *DescribedServer {
6045	s.EndpointDetails = v
6046	return s
6047}
6048
6049// SetEndpointType sets the EndpointType field's value.
6050func (s *DescribedServer) SetEndpointType(v string) *DescribedServer {
6051	s.EndpointType = &v
6052	return s
6053}
6054
6055// SetHostKeyFingerprint sets the HostKeyFingerprint field's value.
6056func (s *DescribedServer) SetHostKeyFingerprint(v string) *DescribedServer {
6057	s.HostKeyFingerprint = &v
6058	return s
6059}
6060
6061// SetIdentityProviderDetails sets the IdentityProviderDetails field's value.
6062func (s *DescribedServer) SetIdentityProviderDetails(v *IdentityProviderDetails) *DescribedServer {
6063	s.IdentityProviderDetails = v
6064	return s
6065}
6066
6067// SetIdentityProviderType sets the IdentityProviderType field's value.
6068func (s *DescribedServer) SetIdentityProviderType(v string) *DescribedServer {
6069	s.IdentityProviderType = &v
6070	return s
6071}
6072
6073// SetLoggingRole sets the LoggingRole field's value.
6074func (s *DescribedServer) SetLoggingRole(v string) *DescribedServer {
6075	s.LoggingRole = &v
6076	return s
6077}
6078
6079// SetProtocolDetails sets the ProtocolDetails field's value.
6080func (s *DescribedServer) SetProtocolDetails(v *ProtocolDetails) *DescribedServer {
6081	s.ProtocolDetails = v
6082	return s
6083}
6084
6085// SetProtocols sets the Protocols field's value.
6086func (s *DescribedServer) SetProtocols(v []*string) *DescribedServer {
6087	s.Protocols = v
6088	return s
6089}
6090
6091// SetSecurityPolicyName sets the SecurityPolicyName field's value.
6092func (s *DescribedServer) SetSecurityPolicyName(v string) *DescribedServer {
6093	s.SecurityPolicyName = &v
6094	return s
6095}
6096
6097// SetServerId sets the ServerId field's value.
6098func (s *DescribedServer) SetServerId(v string) *DescribedServer {
6099	s.ServerId = &v
6100	return s
6101}
6102
6103// SetState sets the State field's value.
6104func (s *DescribedServer) SetState(v string) *DescribedServer {
6105	s.State = &v
6106	return s
6107}
6108
6109// SetTags sets the Tags field's value.
6110func (s *DescribedServer) SetTags(v []*Tag) *DescribedServer {
6111	s.Tags = v
6112	return s
6113}
6114
6115// SetUserCount sets the UserCount field's value.
6116func (s *DescribedServer) SetUserCount(v int64) *DescribedServer {
6117	s.UserCount = &v
6118	return s
6119}
6120
6121// SetWorkflowDetails sets the WorkflowDetails field's value.
6122func (s *DescribedServer) SetWorkflowDetails(v *WorkflowDetails) *DescribedServer {
6123	s.WorkflowDetails = v
6124	return s
6125}
6126
6127// Describes the properties of a user that was specified.
6128type DescribedUser struct {
6129	_ struct{} `type:"structure"`
6130
6131	// Specifies the unique Amazon Resource Name (ARN) for the user that was requested
6132	// to be described.
6133	//
6134	// Arn is a required field
6135	Arn *string `min:"20" type:"string" required:"true"`
6136
6137	// The landing directory (folder) for a user when they log in to the server
6138	// using the client.
6139	//
6140	// A HomeDirectory example is /bucket_name/home/mydirectory.
6141	HomeDirectory *string `type:"string"`
6142
6143	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
6144	// and keys should be visible to your user and how you want to make them visible.
6145	// You must specify the Entry and Target pair, where Entry shows how the path
6146	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
6147	// you only specify a target, it is displayed as is. You also must ensure that
6148	// your Amazon Web Services Identity and Access Management (IAM) role provides
6149	// access to paths in Target. This value can only be set when HomeDirectoryType
6150	// is set to LOGICAL.
6151	//
6152	// In most cases, you can use this value instead of the session policy to lock
6153	// your user down to the designated home directory ("chroot"). To do this, you
6154	// can set Entry to '/' and set Target to the HomeDirectory parameter value.
6155	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
6156
6157	// The type of landing directory (folder) you want your users' home directory
6158	// to be when they log into the server. If you set it to PATH, the user will
6159	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
6160	// protocol clients. If you set it LOGICAL, you need to provide mappings in
6161	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
6162	// visible to your users.
6163	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
6164
6165	// A session policy for your user so that you can use the same IAM role across
6166	// multiple users. This policy scopes down user access to portions of their
6167	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
6168	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
6169	Policy *string `type:"string"`
6170
6171	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid),
6172	// and any secondary groups IDs (SecondaryGids), that controls your users' access
6173	// to your Amazon Elastic File System (Amazon EFS) file systems. The POSIX permissions
6174	// that are set on files and directories in your file system determine the level
6175	// of access your users get when transferring files into and out of your Amazon
6176	// EFS file systems.
6177	PosixProfile *PosixProfile `type:"structure"`
6178
6179	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
6180	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
6181	// to this role determine the level of access that you want to provide your
6182	// users when transferring files into and out of your Amazon S3 bucket or EFS
6183	// file system. The IAM role should also contain a trust relationship that allows
6184	// the server to access your resources when servicing your users' transfer requests.
6185	Role *string `min:"20" type:"string"`
6186
6187	// Specifies the public key portion of the Secure Shell (SSH) keys stored for
6188	// the described user.
6189	SshPublicKeys []*SshPublicKey `type:"list"`
6190
6191	// Specifies the key-value pairs for the user requested. Tag can be used to
6192	// search for and group users for a variety of purposes.
6193	Tags []*Tag `min:"1" type:"list"`
6194
6195	// Specifies the name of the user that was requested to be described. User names
6196	// are used for authentication purposes. This is the string that will be used
6197	// by your user when they log in to your server.
6198	UserName *string `min:"3" type:"string"`
6199}
6200
6201// String returns the string representation
6202func (s DescribedUser) String() string {
6203	return awsutil.Prettify(s)
6204}
6205
6206// GoString returns the string representation
6207func (s DescribedUser) GoString() string {
6208	return s.String()
6209}
6210
6211// SetArn sets the Arn field's value.
6212func (s *DescribedUser) SetArn(v string) *DescribedUser {
6213	s.Arn = &v
6214	return s
6215}
6216
6217// SetHomeDirectory sets the HomeDirectory field's value.
6218func (s *DescribedUser) SetHomeDirectory(v string) *DescribedUser {
6219	s.HomeDirectory = &v
6220	return s
6221}
6222
6223// SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
6224func (s *DescribedUser) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *DescribedUser {
6225	s.HomeDirectoryMappings = v
6226	return s
6227}
6228
6229// SetHomeDirectoryType sets the HomeDirectoryType field's value.
6230func (s *DescribedUser) SetHomeDirectoryType(v string) *DescribedUser {
6231	s.HomeDirectoryType = &v
6232	return s
6233}
6234
6235// SetPolicy sets the Policy field's value.
6236func (s *DescribedUser) SetPolicy(v string) *DescribedUser {
6237	s.Policy = &v
6238	return s
6239}
6240
6241// SetPosixProfile sets the PosixProfile field's value.
6242func (s *DescribedUser) SetPosixProfile(v *PosixProfile) *DescribedUser {
6243	s.PosixProfile = v
6244	return s
6245}
6246
6247// SetRole sets the Role field's value.
6248func (s *DescribedUser) SetRole(v string) *DescribedUser {
6249	s.Role = &v
6250	return s
6251}
6252
6253// SetSshPublicKeys sets the SshPublicKeys field's value.
6254func (s *DescribedUser) SetSshPublicKeys(v []*SshPublicKey) *DescribedUser {
6255	s.SshPublicKeys = v
6256	return s
6257}
6258
6259// SetTags sets the Tags field's value.
6260func (s *DescribedUser) SetTags(v []*Tag) *DescribedUser {
6261	s.Tags = v
6262	return s
6263}
6264
6265// SetUserName sets the UserName field's value.
6266func (s *DescribedUser) SetUserName(v string) *DescribedUser {
6267	s.UserName = &v
6268	return s
6269}
6270
6271// Describes the properties of the specified workflow
6272type DescribedWorkflow struct {
6273	_ struct{} `type:"structure"`
6274
6275	// Specifies the unique Amazon Resource Name (ARN) for the workflow.
6276	//
6277	// Arn is a required field
6278	Arn *string `min:"20" type:"string" required:"true"`
6279
6280	// Specifies the text description for the workflow.
6281	Description *string `type:"string"`
6282
6283	// Specifies the steps (actions) to take if any errors are encountered during
6284	// execution of the workflow.
6285	OnExceptionSteps []*WorkflowStep `type:"list"`
6286
6287	// Specifies the details for the steps that are in the specified workflow.
6288	Steps []*WorkflowStep `type:"list"`
6289
6290	// Key-value pairs that can be used to group and search for workflows. Tags
6291	// are metadata attached to workflows for any purpose.
6292	Tags []*Tag `min:"1" type:"list"`
6293
6294	// A unique identifier for the workflow.
6295	WorkflowId *string `min:"19" type:"string"`
6296}
6297
6298// String returns the string representation
6299func (s DescribedWorkflow) String() string {
6300	return awsutil.Prettify(s)
6301}
6302
6303// GoString returns the string representation
6304func (s DescribedWorkflow) GoString() string {
6305	return s.String()
6306}
6307
6308// SetArn sets the Arn field's value.
6309func (s *DescribedWorkflow) SetArn(v string) *DescribedWorkflow {
6310	s.Arn = &v
6311	return s
6312}
6313
6314// SetDescription sets the Description field's value.
6315func (s *DescribedWorkflow) SetDescription(v string) *DescribedWorkflow {
6316	s.Description = &v
6317	return s
6318}
6319
6320// SetOnExceptionSteps sets the OnExceptionSteps field's value.
6321func (s *DescribedWorkflow) SetOnExceptionSteps(v []*WorkflowStep) *DescribedWorkflow {
6322	s.OnExceptionSteps = v
6323	return s
6324}
6325
6326// SetSteps sets the Steps field's value.
6327func (s *DescribedWorkflow) SetSteps(v []*WorkflowStep) *DescribedWorkflow {
6328	s.Steps = v
6329	return s
6330}
6331
6332// SetTags sets the Tags field's value.
6333func (s *DescribedWorkflow) SetTags(v []*Tag) *DescribedWorkflow {
6334	s.Tags = v
6335	return s
6336}
6337
6338// SetWorkflowId sets the WorkflowId field's value.
6339func (s *DescribedWorkflow) SetWorkflowId(v string) *DescribedWorkflow {
6340	s.WorkflowId = &v
6341	return s
6342}
6343
6344// Specifies the details for the file location for the file being used in the
6345// workflow. Only applicable if you are using Amazon EFS for storage.
6346//
6347// You need to provide the file system ID and the pathname. The pathname can
6348// represent either a path or a file. This is determined by whether or not you
6349// end the path value with the forward slash (/) character. If the final character
6350// is "/", then your file is copied to the folder, and its name does not change.
6351// If, rather, the final character is alphanumeric, your uploaded file is renamed
6352// to the path value. In this case, if a file with that name already exists,
6353// it is overwritten.
6354//
6355// For example, if your path is shared-files/bob/, your uploaded files are copied
6356// to the shared-files/bob/, folder. If your path is shared-files/today, each
6357// uploaded file is copied to the shared-files folder and named today: each
6358// upload overwrites the previous version of the bob file.
6359type EfsFileLocation struct {
6360	_ struct{} `type:"structure"`
6361
6362	// The ID of the file system, assigned by Amazon EFS.
6363	FileSystemId *string `type:"string"`
6364
6365	// The pathname for the folder being used by a workflow.
6366	Path *string `min:"1" type:"string"`
6367}
6368
6369// String returns the string representation
6370func (s EfsFileLocation) String() string {
6371	return awsutil.Prettify(s)
6372}
6373
6374// GoString returns the string representation
6375func (s EfsFileLocation) GoString() string {
6376	return s.String()
6377}
6378
6379// Validate inspects the fields of the type to determine if they are valid.
6380func (s *EfsFileLocation) Validate() error {
6381	invalidParams := request.ErrInvalidParams{Context: "EfsFileLocation"}
6382	if s.Path != nil && len(*s.Path) < 1 {
6383		invalidParams.Add(request.NewErrParamMinLen("Path", 1))
6384	}
6385
6386	if invalidParams.Len() > 0 {
6387		return invalidParams
6388	}
6389	return nil
6390}
6391
6392// SetFileSystemId sets the FileSystemId field's value.
6393func (s *EfsFileLocation) SetFileSystemId(v string) *EfsFileLocation {
6394	s.FileSystemId = &v
6395	return s
6396}
6397
6398// SetPath sets the Path field's value.
6399func (s *EfsFileLocation) SetPath(v string) *EfsFileLocation {
6400	s.Path = &v
6401	return s
6402}
6403
6404// The virtual private cloud (VPC) endpoint settings that are configured for
6405// your file transfer protocol-enabled server. With a VPC endpoint, you can
6406// restrict access to your server and resources only within your VPC. To control
6407// incoming internet traffic, invoke the UpdateServer API and attach an Elastic
6408// IP address to your server's endpoint.
6409//
6410// After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT
6411// in your Amazon Web Servicesaccount if your account hasn't already done so
6412// before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT
6413// in your Amazon Web Servicesaccount on or before May 19, 2021, you will not
6414// be affected. After this date, use EndpointType=VPC.
6415//
6416// For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
6417type EndpointDetails struct {
6418	_ struct{} `type:"structure"`
6419
6420	// A list of address allocation IDs that are required to attach an Elastic IP
6421	// address to your server's endpoint.
6422	//
6423	// This property can only be set when EndpointType is set to VPC and it is only
6424	// valid in the UpdateServer API.
6425	AddressAllocationIds []*string `type:"list"`
6426
6427	// A list of security groups IDs that are available to attach to your server's
6428	// endpoint.
6429	//
6430	// This property can only be set when EndpointType is set to VPC.
6431	//
6432	// You can edit the SecurityGroupIds property in the UpdateServer (https://docs.aws.amazon.com/transfer/latest/userguide/API_UpdateServer.html)
6433	// API only if you are changing the EndpointType from PUBLIC or VPC_ENDPOINT
6434	// to VPC. To change security groups associated with your server's VPC endpoint
6435	// after creation, use the Amazon EC2 ModifyVpcEndpoint (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyVpcEndpoint.html)
6436	// API.
6437	SecurityGroupIds []*string `type:"list"`
6438
6439	// A list of subnet IDs that are required to host your server endpoint in your
6440	// VPC.
6441	//
6442	// This property can only be set when EndpointType is set to VPC.
6443	SubnetIds []*string `type:"list"`
6444
6445	// The ID of the VPC endpoint.
6446	//
6447	// This property can only be set when EndpointType is set to VPC_ENDPOINT.
6448	//
6449	// For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
6450	VpcEndpointId *string `min:"22" type:"string"`
6451
6452	// The VPC ID of the VPC in which a server's endpoint will be hosted.
6453	//
6454	// This property can only be set when EndpointType is set to VPC.
6455	VpcId *string `type:"string"`
6456}
6457
6458// String returns the string representation
6459func (s EndpointDetails) String() string {
6460	return awsutil.Prettify(s)
6461}
6462
6463// GoString returns the string representation
6464func (s EndpointDetails) GoString() string {
6465	return s.String()
6466}
6467
6468// Validate inspects the fields of the type to determine if they are valid.
6469func (s *EndpointDetails) Validate() error {
6470	invalidParams := request.ErrInvalidParams{Context: "EndpointDetails"}
6471	if s.VpcEndpointId != nil && len(*s.VpcEndpointId) < 22 {
6472		invalidParams.Add(request.NewErrParamMinLen("VpcEndpointId", 22))
6473	}
6474
6475	if invalidParams.Len() > 0 {
6476		return invalidParams
6477	}
6478	return nil
6479}
6480
6481// SetAddressAllocationIds sets the AddressAllocationIds field's value.
6482func (s *EndpointDetails) SetAddressAllocationIds(v []*string) *EndpointDetails {
6483	s.AddressAllocationIds = v
6484	return s
6485}
6486
6487// SetSecurityGroupIds sets the SecurityGroupIds field's value.
6488func (s *EndpointDetails) SetSecurityGroupIds(v []*string) *EndpointDetails {
6489	s.SecurityGroupIds = v
6490	return s
6491}
6492
6493// SetSubnetIds sets the SubnetIds field's value.
6494func (s *EndpointDetails) SetSubnetIds(v []*string) *EndpointDetails {
6495	s.SubnetIds = v
6496	return s
6497}
6498
6499// SetVpcEndpointId sets the VpcEndpointId field's value.
6500func (s *EndpointDetails) SetVpcEndpointId(v string) *EndpointDetails {
6501	s.VpcEndpointId = &v
6502	return s
6503}
6504
6505// SetVpcId sets the VpcId field's value.
6506func (s *EndpointDetails) SetVpcId(v string) *EndpointDetails {
6507	s.VpcId = &v
6508	return s
6509}
6510
6511// Specifies the error message and type, for an error that occurs during the
6512// execution of the workflow.
6513type ExecutionError struct {
6514	_ struct{} `type:"structure"`
6515
6516	// Specifies the descriptive message that corresponds to the ErrorType.
6517	//
6518	// Message is a required field
6519	Message *string `type:"string" required:"true"`
6520
6521	// Specifies the error type: currently, the only valid value is PERMISSION_DENIED,
6522	// which occurs if your policy does not contain the correct permissions to complete
6523	// one or more of the steps in the workflow.
6524	//
6525	// Type is a required field
6526	Type *string `type:"string" required:"true" enum:"ExecutionErrorType"`
6527}
6528
6529// String returns the string representation
6530func (s ExecutionError) String() string {
6531	return awsutil.Prettify(s)
6532}
6533
6534// GoString returns the string representation
6535func (s ExecutionError) GoString() string {
6536	return s.String()
6537}
6538
6539// SetMessage sets the Message field's value.
6540func (s *ExecutionError) SetMessage(v string) *ExecutionError {
6541	s.Message = &v
6542	return s
6543}
6544
6545// SetType sets the Type field's value.
6546func (s *ExecutionError) SetType(v string) *ExecutionError {
6547	s.Type = &v
6548	return s
6549}
6550
6551// Specifies the steps in the workflow, as well as the steps to execute in case
6552// of any errors during workflow execution.
6553type ExecutionResults struct {
6554	_ struct{} `type:"structure"`
6555
6556	// Specifies the steps (actions) to take if any errors are encountered during
6557	// execution of the workflow.
6558	OnExceptionSteps []*ExecutionStepResult `min:"1" type:"list"`
6559
6560	// Specifies the details for the steps that are in the specified workflow.
6561	Steps []*ExecutionStepResult `min:"1" type:"list"`
6562}
6563
6564// String returns the string representation
6565func (s ExecutionResults) String() string {
6566	return awsutil.Prettify(s)
6567}
6568
6569// GoString returns the string representation
6570func (s ExecutionResults) GoString() string {
6571	return s.String()
6572}
6573
6574// SetOnExceptionSteps sets the OnExceptionSteps field's value.
6575func (s *ExecutionResults) SetOnExceptionSteps(v []*ExecutionStepResult) *ExecutionResults {
6576	s.OnExceptionSteps = v
6577	return s
6578}
6579
6580// SetSteps sets the Steps field's value.
6581func (s *ExecutionResults) SetSteps(v []*ExecutionStepResult) *ExecutionResults {
6582	s.Steps = v
6583	return s
6584}
6585
6586// Specifies the following details for the step: error (if any), outputs (if
6587// any), and the step type.
6588type ExecutionStepResult struct {
6589	_ struct{} `type:"structure"`
6590
6591	// Specifies the details for an error, if it occurred during execution of the
6592	// specified workfow step.
6593	Error *ExecutionError `type:"structure"`
6594
6595	// The values for the key/value pair applied as a tag to the file. Only applicable
6596	// if the step type is TAG.
6597	Outputs *string `type:"string"`
6598
6599	// One of the available step types.
6600	//
6601	//    * Copy: copy the file to another location
6602	//
6603	//    * Custom: custom step with a lambda target
6604	//
6605	//    * Delete: delete the file
6606	//
6607	//    * Tag: add a tag to the file
6608	StepType *string `type:"string" enum:"WorkflowStepType"`
6609}
6610
6611// String returns the string representation
6612func (s ExecutionStepResult) String() string {
6613	return awsutil.Prettify(s)
6614}
6615
6616// GoString returns the string representation
6617func (s ExecutionStepResult) GoString() string {
6618	return s.String()
6619}
6620
6621// SetError sets the Error field's value.
6622func (s *ExecutionStepResult) SetError(v *ExecutionError) *ExecutionStepResult {
6623	s.Error = v
6624	return s
6625}
6626
6627// SetOutputs sets the Outputs field's value.
6628func (s *ExecutionStepResult) SetOutputs(v string) *ExecutionStepResult {
6629	s.Outputs = &v
6630	return s
6631}
6632
6633// SetStepType sets the StepType field's value.
6634func (s *ExecutionStepResult) SetStepType(v string) *ExecutionStepResult {
6635	s.StepType = &v
6636	return s
6637}
6638
6639// Specifies the Amazon S3 or EFS file details to be used in the step.
6640type FileLocation struct {
6641	_ struct{} `type:"structure"`
6642
6643	// Specifies the Amazon EFS ID and the path for the file being used.
6644	EfsFileLocation *EfsFileLocation `type:"structure"`
6645
6646	// Specifies the S3 details for the file being used, such as bucket, Etag, and
6647	// so forth.
6648	S3FileLocation *S3FileLocation `type:"structure"`
6649}
6650
6651// String returns the string representation
6652func (s FileLocation) String() string {
6653	return awsutil.Prettify(s)
6654}
6655
6656// GoString returns the string representation
6657func (s FileLocation) GoString() string {
6658	return s.String()
6659}
6660
6661// SetEfsFileLocation sets the EfsFileLocation field's value.
6662func (s *FileLocation) SetEfsFileLocation(v *EfsFileLocation) *FileLocation {
6663	s.EfsFileLocation = v
6664	return s
6665}
6666
6667// SetS3FileLocation sets the S3FileLocation field's value.
6668func (s *FileLocation) SetS3FileLocation(v *S3FileLocation) *FileLocation {
6669	s.S3FileLocation = v
6670	return s
6671}
6672
6673// Represents an object that contains entries and targets for HomeDirectoryMappings.
6674//
6675// The following is an Entry and Target pair example for chroot.
6676//
6677// [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]
6678//
6679// If the target of a logical directory entry does not exist in Amazon S3 or
6680// EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API
6681// or EFS API to create 0 byte objects as place holders for your directory.
6682// If using the CLI, use the s3api or efsapi call instead of s3 or efs so you
6683// can use the put-object operation. For example, you use the following: aws
6684// s3api put-object --bucket bucketname --key path/to/folder/. Make sure that
6685// the end of the key name ends in a / for it to be considered a folder.
6686type HomeDirectoryMapEntry struct {
6687	_ struct{} `type:"structure"`
6688
6689	// Represents an entry for HomeDirectoryMappings.
6690	//
6691	// Entry is a required field
6692	Entry *string `type:"string" required:"true"`
6693
6694	// Represents the map target that is used in a HomeDirectorymapEntry.
6695	//
6696	// Target is a required field
6697	Target *string `type:"string" required:"true"`
6698}
6699
6700// String returns the string representation
6701func (s HomeDirectoryMapEntry) String() string {
6702	return awsutil.Prettify(s)
6703}
6704
6705// GoString returns the string representation
6706func (s HomeDirectoryMapEntry) GoString() string {
6707	return s.String()
6708}
6709
6710// Validate inspects the fields of the type to determine if they are valid.
6711func (s *HomeDirectoryMapEntry) Validate() error {
6712	invalidParams := request.ErrInvalidParams{Context: "HomeDirectoryMapEntry"}
6713	if s.Entry == nil {
6714		invalidParams.Add(request.NewErrParamRequired("Entry"))
6715	}
6716	if s.Target == nil {
6717		invalidParams.Add(request.NewErrParamRequired("Target"))
6718	}
6719
6720	if invalidParams.Len() > 0 {
6721		return invalidParams
6722	}
6723	return nil
6724}
6725
6726// SetEntry sets the Entry field's value.
6727func (s *HomeDirectoryMapEntry) SetEntry(v string) *HomeDirectoryMapEntry {
6728	s.Entry = &v
6729	return s
6730}
6731
6732// SetTarget sets the Target field's value.
6733func (s *HomeDirectoryMapEntry) SetTarget(v string) *HomeDirectoryMapEntry {
6734	s.Target = &v
6735	return s
6736}
6737
6738// Returns information related to the type of user authentication that is in
6739// use for a file transfer protocol-enabled server's users. A server can have
6740// only one method of authentication.
6741type IdentityProviderDetails struct {
6742	_ struct{} `type:"structure"`
6743
6744	// The identifier of the Amazon Web ServicesDirectory Service directory that
6745	// you want to stop sharing.
6746	DirectoryId *string `min:"12" type:"string"`
6747
6748	// Provides the type of InvocationRole used to authenticate the user account.
6749	InvocationRole *string `min:"20" type:"string"`
6750
6751	// Provides the location of the service endpoint used to authenticate users.
6752	Url *string `type:"string"`
6753}
6754
6755// String returns the string representation
6756func (s IdentityProviderDetails) String() string {
6757	return awsutil.Prettify(s)
6758}
6759
6760// GoString returns the string representation
6761func (s IdentityProviderDetails) GoString() string {
6762	return s.String()
6763}
6764
6765// Validate inspects the fields of the type to determine if they are valid.
6766func (s *IdentityProviderDetails) Validate() error {
6767	invalidParams := request.ErrInvalidParams{Context: "IdentityProviderDetails"}
6768	if s.DirectoryId != nil && len(*s.DirectoryId) < 12 {
6769		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 12))
6770	}
6771	if s.InvocationRole != nil && len(*s.InvocationRole) < 20 {
6772		invalidParams.Add(request.NewErrParamMinLen("InvocationRole", 20))
6773	}
6774
6775	if invalidParams.Len() > 0 {
6776		return invalidParams
6777	}
6778	return nil
6779}
6780
6781// SetDirectoryId sets the DirectoryId field's value.
6782func (s *IdentityProviderDetails) SetDirectoryId(v string) *IdentityProviderDetails {
6783	s.DirectoryId = &v
6784	return s
6785}
6786
6787// SetInvocationRole sets the InvocationRole field's value.
6788func (s *IdentityProviderDetails) SetInvocationRole(v string) *IdentityProviderDetails {
6789	s.InvocationRole = &v
6790	return s
6791}
6792
6793// SetUrl sets the Url field's value.
6794func (s *IdentityProviderDetails) SetUrl(v string) *IdentityProviderDetails {
6795	s.Url = &v
6796	return s
6797}
6798
6799type ImportSshPublicKeyInput struct {
6800	_ struct{} `type:"structure"`
6801
6802	// A system-assigned unique identifier for a server.
6803	//
6804	// ServerId is a required field
6805	ServerId *string `min:"19" type:"string" required:"true"`
6806
6807	// The public key portion of an SSH key pair.
6808	//
6809	// SshPublicKeyBody is a required field
6810	SshPublicKeyBody *string `type:"string" required:"true"`
6811
6812	// The name of the user account that is assigned to one or more servers.
6813	//
6814	// UserName is a required field
6815	UserName *string `min:"3" type:"string" required:"true"`
6816}
6817
6818// String returns the string representation
6819func (s ImportSshPublicKeyInput) String() string {
6820	return awsutil.Prettify(s)
6821}
6822
6823// GoString returns the string representation
6824func (s ImportSshPublicKeyInput) GoString() string {
6825	return s.String()
6826}
6827
6828// Validate inspects the fields of the type to determine if they are valid.
6829func (s *ImportSshPublicKeyInput) Validate() error {
6830	invalidParams := request.ErrInvalidParams{Context: "ImportSshPublicKeyInput"}
6831	if s.ServerId == nil {
6832		invalidParams.Add(request.NewErrParamRequired("ServerId"))
6833	}
6834	if s.ServerId != nil && len(*s.ServerId) < 19 {
6835		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
6836	}
6837	if s.SshPublicKeyBody == nil {
6838		invalidParams.Add(request.NewErrParamRequired("SshPublicKeyBody"))
6839	}
6840	if s.UserName == nil {
6841		invalidParams.Add(request.NewErrParamRequired("UserName"))
6842	}
6843	if s.UserName != nil && len(*s.UserName) < 3 {
6844		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
6845	}
6846
6847	if invalidParams.Len() > 0 {
6848		return invalidParams
6849	}
6850	return nil
6851}
6852
6853// SetServerId sets the ServerId field's value.
6854func (s *ImportSshPublicKeyInput) SetServerId(v string) *ImportSshPublicKeyInput {
6855	s.ServerId = &v
6856	return s
6857}
6858
6859// SetSshPublicKeyBody sets the SshPublicKeyBody field's value.
6860func (s *ImportSshPublicKeyInput) SetSshPublicKeyBody(v string) *ImportSshPublicKeyInput {
6861	s.SshPublicKeyBody = &v
6862	return s
6863}
6864
6865// SetUserName sets the UserName field's value.
6866func (s *ImportSshPublicKeyInput) SetUserName(v string) *ImportSshPublicKeyInput {
6867	s.UserName = &v
6868	return s
6869}
6870
6871// Identifies the user, the server they belong to, and the identifier of the
6872// SSH public key associated with that user. A user can have more than one key
6873// on each server that they are associated with.
6874type ImportSshPublicKeyOutput struct {
6875	_ struct{} `type:"structure"`
6876
6877	// A system-assigned unique identifier for a server.
6878	//
6879	// ServerId is a required field
6880	ServerId *string `min:"19" type:"string" required:"true"`
6881
6882	// The name given to a public key by the system that was imported.
6883	//
6884	// SshPublicKeyId is a required field
6885	SshPublicKeyId *string `min:"21" type:"string" required:"true"`
6886
6887	// A user name assigned to the ServerID value that you specified.
6888	//
6889	// UserName is a required field
6890	UserName *string `min:"3" type:"string" required:"true"`
6891}
6892
6893// String returns the string representation
6894func (s ImportSshPublicKeyOutput) String() string {
6895	return awsutil.Prettify(s)
6896}
6897
6898// GoString returns the string representation
6899func (s ImportSshPublicKeyOutput) GoString() string {
6900	return s.String()
6901}
6902
6903// SetServerId sets the ServerId field's value.
6904func (s *ImportSshPublicKeyOutput) SetServerId(v string) *ImportSshPublicKeyOutput {
6905	s.ServerId = &v
6906	return s
6907}
6908
6909// SetSshPublicKeyId sets the SshPublicKeyId field's value.
6910func (s *ImportSshPublicKeyOutput) SetSshPublicKeyId(v string) *ImportSshPublicKeyOutput {
6911	s.SshPublicKeyId = &v
6912	return s
6913}
6914
6915// SetUserName sets the UserName field's value.
6916func (s *ImportSshPublicKeyOutput) SetUserName(v string) *ImportSshPublicKeyOutput {
6917	s.UserName = &v
6918	return s
6919}
6920
6921// Specifies the location for the file being copied. Only applicable for the
6922// Copy type of workflow steps.
6923type InputFileLocation struct {
6924	_ struct{} `type:"structure"`
6925
6926	// Specifies the details for the Amazon EFS file being copied.
6927	EfsFileLocation *EfsFileLocation `type:"structure"`
6928
6929	// Specifies the details for the S3 file being copied.
6930	S3FileLocation *S3InputFileLocation `type:"structure"`
6931}
6932
6933// String returns the string representation
6934func (s InputFileLocation) String() string {
6935	return awsutil.Prettify(s)
6936}
6937
6938// GoString returns the string representation
6939func (s InputFileLocation) GoString() string {
6940	return s.String()
6941}
6942
6943// Validate inspects the fields of the type to determine if they are valid.
6944func (s *InputFileLocation) Validate() error {
6945	invalidParams := request.ErrInvalidParams{Context: "InputFileLocation"}
6946	if s.EfsFileLocation != nil {
6947		if err := s.EfsFileLocation.Validate(); err != nil {
6948			invalidParams.AddNested("EfsFileLocation", err.(request.ErrInvalidParams))
6949		}
6950	}
6951	if s.S3FileLocation != nil {
6952		if err := s.S3FileLocation.Validate(); err != nil {
6953			invalidParams.AddNested("S3FileLocation", err.(request.ErrInvalidParams))
6954		}
6955	}
6956
6957	if invalidParams.Len() > 0 {
6958		return invalidParams
6959	}
6960	return nil
6961}
6962
6963// SetEfsFileLocation sets the EfsFileLocation field's value.
6964func (s *InputFileLocation) SetEfsFileLocation(v *EfsFileLocation) *InputFileLocation {
6965	s.EfsFileLocation = v
6966	return s
6967}
6968
6969// SetS3FileLocation sets the S3FileLocation field's value.
6970func (s *InputFileLocation) SetS3FileLocation(v *S3InputFileLocation) *InputFileLocation {
6971	s.S3FileLocation = v
6972	return s
6973}
6974
6975// This exception is thrown when an error occurs in the Amazon Web ServicesTransfer
6976// Family service.
6977type InternalServiceError struct {
6978	_            struct{}                  `type:"structure"`
6979	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6980
6981	Message_ *string `locationName:"Message" type:"string"`
6982}
6983
6984// String returns the string representation
6985func (s InternalServiceError) String() string {
6986	return awsutil.Prettify(s)
6987}
6988
6989// GoString returns the string representation
6990func (s InternalServiceError) GoString() string {
6991	return s.String()
6992}
6993
6994func newErrorInternalServiceError(v protocol.ResponseMetadata) error {
6995	return &InternalServiceError{
6996		RespMetadata: v,
6997	}
6998}
6999
7000// Code returns the exception type name.
7001func (s *InternalServiceError) Code() string {
7002	return "InternalServiceError"
7003}
7004
7005// Message returns the exception's message.
7006func (s *InternalServiceError) Message() string {
7007	if s.Message_ != nil {
7008		return *s.Message_
7009	}
7010	return ""
7011}
7012
7013// OrigErr always returns nil, satisfies awserr.Error interface.
7014func (s *InternalServiceError) OrigErr() error {
7015	return nil
7016}
7017
7018func (s *InternalServiceError) Error() string {
7019	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7020}
7021
7022// Status code returns the HTTP status code for the request's response error.
7023func (s *InternalServiceError) StatusCode() int {
7024	return s.RespMetadata.StatusCode
7025}
7026
7027// RequestID returns the service's response RequestID for request.
7028func (s *InternalServiceError) RequestID() string {
7029	return s.RespMetadata.RequestID
7030}
7031
7032// The NextToken parameter that was passed is invalid.
7033type InvalidNextTokenException struct {
7034	_            struct{}                  `type:"structure"`
7035	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7036
7037	Message_ *string `locationName:"Message" type:"string"`
7038}
7039
7040// String returns the string representation
7041func (s InvalidNextTokenException) String() string {
7042	return awsutil.Prettify(s)
7043}
7044
7045// GoString returns the string representation
7046func (s InvalidNextTokenException) GoString() string {
7047	return s.String()
7048}
7049
7050func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
7051	return &InvalidNextTokenException{
7052		RespMetadata: v,
7053	}
7054}
7055
7056// Code returns the exception type name.
7057func (s *InvalidNextTokenException) Code() string {
7058	return "InvalidNextTokenException"
7059}
7060
7061// Message returns the exception's message.
7062func (s *InvalidNextTokenException) Message() string {
7063	if s.Message_ != nil {
7064		return *s.Message_
7065	}
7066	return ""
7067}
7068
7069// OrigErr always returns nil, satisfies awserr.Error interface.
7070func (s *InvalidNextTokenException) OrigErr() error {
7071	return nil
7072}
7073
7074func (s *InvalidNextTokenException) Error() string {
7075	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7076}
7077
7078// Status code returns the HTTP status code for the request's response error.
7079func (s *InvalidNextTokenException) StatusCode() int {
7080	return s.RespMetadata.StatusCode
7081}
7082
7083// RequestID returns the service's response RequestID for request.
7084func (s *InvalidNextTokenException) RequestID() string {
7085	return s.RespMetadata.RequestID
7086}
7087
7088// This exception is thrown when the client submits a malformed request.
7089type InvalidRequestException struct {
7090	_            struct{}                  `type:"structure"`
7091	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7092
7093	Message_ *string `locationName:"Message" type:"string"`
7094}
7095
7096// String returns the string representation
7097func (s InvalidRequestException) String() string {
7098	return awsutil.Prettify(s)
7099}
7100
7101// GoString returns the string representation
7102func (s InvalidRequestException) GoString() string {
7103	return s.String()
7104}
7105
7106func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
7107	return &InvalidRequestException{
7108		RespMetadata: v,
7109	}
7110}
7111
7112// Code returns the exception type name.
7113func (s *InvalidRequestException) Code() string {
7114	return "InvalidRequestException"
7115}
7116
7117// Message returns the exception's message.
7118func (s *InvalidRequestException) Message() string {
7119	if s.Message_ != nil {
7120		return *s.Message_
7121	}
7122	return ""
7123}
7124
7125// OrigErr always returns nil, satisfies awserr.Error interface.
7126func (s *InvalidRequestException) OrigErr() error {
7127	return nil
7128}
7129
7130func (s *InvalidRequestException) Error() string {
7131	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7132}
7133
7134// Status code returns the HTTP status code for the request's response error.
7135func (s *InvalidRequestException) StatusCode() int {
7136	return s.RespMetadata.StatusCode
7137}
7138
7139// RequestID returns the service's response RequestID for request.
7140func (s *InvalidRequestException) RequestID() string {
7141	return s.RespMetadata.RequestID
7142}
7143
7144type ListAccessesInput struct {
7145	_ struct{} `type:"structure"`
7146
7147	// Specifies the maximum number of access SIDs to return.
7148	MaxResults *int64 `min:"1" type:"integer"`
7149
7150	// When you can get additional results from the ListAccesses call, a NextToken
7151	// parameter is returned in the output. You can then pass in a subsequent command
7152	// to the NextToken parameter to continue listing additional accesses.
7153	NextToken *string `min:"1" type:"string"`
7154
7155	// A system-assigned unique identifier for a server that has users assigned
7156	// to it.
7157	//
7158	// ServerId is a required field
7159	ServerId *string `min:"19" type:"string" required:"true"`
7160}
7161
7162// String returns the string representation
7163func (s ListAccessesInput) String() string {
7164	return awsutil.Prettify(s)
7165}
7166
7167// GoString returns the string representation
7168func (s ListAccessesInput) GoString() string {
7169	return s.String()
7170}
7171
7172// Validate inspects the fields of the type to determine if they are valid.
7173func (s *ListAccessesInput) Validate() error {
7174	invalidParams := request.ErrInvalidParams{Context: "ListAccessesInput"}
7175	if s.MaxResults != nil && *s.MaxResults < 1 {
7176		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7177	}
7178	if s.NextToken != nil && len(*s.NextToken) < 1 {
7179		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7180	}
7181	if s.ServerId == nil {
7182		invalidParams.Add(request.NewErrParamRequired("ServerId"))
7183	}
7184	if s.ServerId != nil && len(*s.ServerId) < 19 {
7185		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
7186	}
7187
7188	if invalidParams.Len() > 0 {
7189		return invalidParams
7190	}
7191	return nil
7192}
7193
7194// SetMaxResults sets the MaxResults field's value.
7195func (s *ListAccessesInput) SetMaxResults(v int64) *ListAccessesInput {
7196	s.MaxResults = &v
7197	return s
7198}
7199
7200// SetNextToken sets the NextToken field's value.
7201func (s *ListAccessesInput) SetNextToken(v string) *ListAccessesInput {
7202	s.NextToken = &v
7203	return s
7204}
7205
7206// SetServerId sets the ServerId field's value.
7207func (s *ListAccessesInput) SetServerId(v string) *ListAccessesInput {
7208	s.ServerId = &v
7209	return s
7210}
7211
7212type ListAccessesOutput struct {
7213	_ struct{} `type:"structure"`
7214
7215	// Returns the accesses and their properties for the ServerId value that you
7216	// specify.
7217	//
7218	// Accesses is a required field
7219	Accesses []*ListedAccess `type:"list" required:"true"`
7220
7221	// When you can get additional results from the ListAccesses call, a NextToken
7222	// parameter is returned in the output. You can then pass in a subsequent command
7223	// to the NextToken parameter to continue listing additional accesses.
7224	NextToken *string `min:"1" type:"string"`
7225
7226	// A system-assigned unique identifier for a server that has users assigned
7227	// to it.
7228	//
7229	// ServerId is a required field
7230	ServerId *string `min:"19" type:"string" required:"true"`
7231}
7232
7233// String returns the string representation
7234func (s ListAccessesOutput) String() string {
7235	return awsutil.Prettify(s)
7236}
7237
7238// GoString returns the string representation
7239func (s ListAccessesOutput) GoString() string {
7240	return s.String()
7241}
7242
7243// SetAccesses sets the Accesses field's value.
7244func (s *ListAccessesOutput) SetAccesses(v []*ListedAccess) *ListAccessesOutput {
7245	s.Accesses = v
7246	return s
7247}
7248
7249// SetNextToken sets the NextToken field's value.
7250func (s *ListAccessesOutput) SetNextToken(v string) *ListAccessesOutput {
7251	s.NextToken = &v
7252	return s
7253}
7254
7255// SetServerId sets the ServerId field's value.
7256func (s *ListAccessesOutput) SetServerId(v string) *ListAccessesOutput {
7257	s.ServerId = &v
7258	return s
7259}
7260
7261type ListExecutionsInput struct {
7262	_ struct{} `type:"structure"`
7263
7264	// Specifies the aximum number of executions to return.
7265	MaxResults *int64 `min:"1" type:"integer"`
7266
7267	// ListExecutions returns the NextToken parameter in the output. You can then
7268	// pass the NextToken parameter in a subsequent command to continue listing
7269	// additional executions.
7270	//
7271	// This is useful for pagination, for instance. If you have 100 executions for
7272	// a workflow, you might only want to list first 10. If so, callthe API by specifing
7273	// the max-results:
7274	//
7275	// aws transfer list-executions --max-results 10
7276	//
7277	// This returns details for the first 10 executions, as well as the pointer
7278	// (NextToken) to the eleventh execution. You can now call the API again, suppling
7279	// the NextToken value you received:
7280	//
7281	// aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult
7282	//
7283	// This call returns the next 10 executions, the 11th through the 20th. You
7284	// can then repeat the call until the details for all 100 executions have been
7285	// returned.
7286	NextToken *string `min:"1" type:"string"`
7287
7288	// A unique identifier for the workflow.
7289	//
7290	// WorkflowId is a required field
7291	WorkflowId *string `min:"19" type:"string" required:"true"`
7292}
7293
7294// String returns the string representation
7295func (s ListExecutionsInput) String() string {
7296	return awsutil.Prettify(s)
7297}
7298
7299// GoString returns the string representation
7300func (s ListExecutionsInput) GoString() string {
7301	return s.String()
7302}
7303
7304// Validate inspects the fields of the type to determine if they are valid.
7305func (s *ListExecutionsInput) Validate() error {
7306	invalidParams := request.ErrInvalidParams{Context: "ListExecutionsInput"}
7307	if s.MaxResults != nil && *s.MaxResults < 1 {
7308		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7309	}
7310	if s.NextToken != nil && len(*s.NextToken) < 1 {
7311		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7312	}
7313	if s.WorkflowId == nil {
7314		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
7315	}
7316	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
7317		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
7318	}
7319
7320	if invalidParams.Len() > 0 {
7321		return invalidParams
7322	}
7323	return nil
7324}
7325
7326// SetMaxResults sets the MaxResults field's value.
7327func (s *ListExecutionsInput) SetMaxResults(v int64) *ListExecutionsInput {
7328	s.MaxResults = &v
7329	return s
7330}
7331
7332// SetNextToken sets the NextToken field's value.
7333func (s *ListExecutionsInput) SetNextToken(v string) *ListExecutionsInput {
7334	s.NextToken = &v
7335	return s
7336}
7337
7338// SetWorkflowId sets the WorkflowId field's value.
7339func (s *ListExecutionsInput) SetWorkflowId(v string) *ListExecutionsInput {
7340	s.WorkflowId = &v
7341	return s
7342}
7343
7344type ListExecutionsOutput struct {
7345	_ struct{} `type:"structure"`
7346
7347	// Returns the details for each execution.
7348	//
7349	//    * NextToken: returned from a call to several APIs, you can use pass it
7350	//    to a subsequent command to continue listing additional executions.
7351	//
7352	//    * StartTime: timestamp indicating when the execution began.
7353	//
7354	//    * Executions: details of the execution, including the execution ID, initial
7355	//    file location, and Service metadata.
7356	//
7357	//    * Status: one of the following values: IN_PROGRESS, COMPLETED, EXCEPTION,
7358	//    HANDLING_EXEPTION.
7359	//
7360	// Executions is a required field
7361	Executions []*ListedExecution `type:"list" required:"true"`
7362
7363	// ListExecutions returns the NextToken parameter in the output. You can then
7364	// pass the NextToken parameter in a subsequent command to continue listing
7365	// additional executions.
7366	NextToken *string `min:"1" type:"string"`
7367
7368	// A unique identifier for the workflow.
7369	//
7370	// WorkflowId is a required field
7371	WorkflowId *string `min:"19" type:"string" required:"true"`
7372}
7373
7374// String returns the string representation
7375func (s ListExecutionsOutput) String() string {
7376	return awsutil.Prettify(s)
7377}
7378
7379// GoString returns the string representation
7380func (s ListExecutionsOutput) GoString() string {
7381	return s.String()
7382}
7383
7384// SetExecutions sets the Executions field's value.
7385func (s *ListExecutionsOutput) SetExecutions(v []*ListedExecution) *ListExecutionsOutput {
7386	s.Executions = v
7387	return s
7388}
7389
7390// SetNextToken sets the NextToken field's value.
7391func (s *ListExecutionsOutput) SetNextToken(v string) *ListExecutionsOutput {
7392	s.NextToken = &v
7393	return s
7394}
7395
7396// SetWorkflowId sets the WorkflowId field's value.
7397func (s *ListExecutionsOutput) SetWorkflowId(v string) *ListExecutionsOutput {
7398	s.WorkflowId = &v
7399	return s
7400}
7401
7402type ListSecurityPoliciesInput struct {
7403	_ struct{} `type:"structure"`
7404
7405	// Specifies the number of security policies to return as a response to the
7406	// ListSecurityPolicies query.
7407	MaxResults *int64 `min:"1" type:"integer"`
7408
7409	// When additional results are obtained from the ListSecurityPolicies command,
7410	// a NextToken parameter is returned in the output. You can then pass the NextToken
7411	// parameter in a subsequent command to continue listing additional security
7412	// policies.
7413	NextToken *string `min:"1" type:"string"`
7414}
7415
7416// String returns the string representation
7417func (s ListSecurityPoliciesInput) String() string {
7418	return awsutil.Prettify(s)
7419}
7420
7421// GoString returns the string representation
7422func (s ListSecurityPoliciesInput) GoString() string {
7423	return s.String()
7424}
7425
7426// Validate inspects the fields of the type to determine if they are valid.
7427func (s *ListSecurityPoliciesInput) Validate() error {
7428	invalidParams := request.ErrInvalidParams{Context: "ListSecurityPoliciesInput"}
7429	if s.MaxResults != nil && *s.MaxResults < 1 {
7430		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7431	}
7432	if s.NextToken != nil && len(*s.NextToken) < 1 {
7433		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7434	}
7435
7436	if invalidParams.Len() > 0 {
7437		return invalidParams
7438	}
7439	return nil
7440}
7441
7442// SetMaxResults sets the MaxResults field's value.
7443func (s *ListSecurityPoliciesInput) SetMaxResults(v int64) *ListSecurityPoliciesInput {
7444	s.MaxResults = &v
7445	return s
7446}
7447
7448// SetNextToken sets the NextToken field's value.
7449func (s *ListSecurityPoliciesInput) SetNextToken(v string) *ListSecurityPoliciesInput {
7450	s.NextToken = &v
7451	return s
7452}
7453
7454type ListSecurityPoliciesOutput struct {
7455	_ struct{} `type:"structure"`
7456
7457	// When you can get additional results from the ListSecurityPolicies operation,
7458	// a NextToken parameter is returned in the output. In a following command,
7459	// you can pass in the NextToken parameter to continue listing security policies.
7460	NextToken *string `min:"1" type:"string"`
7461
7462	// An array of security policies that were listed.
7463	//
7464	// SecurityPolicyNames is a required field
7465	SecurityPolicyNames []*string `type:"list" required:"true"`
7466}
7467
7468// String returns the string representation
7469func (s ListSecurityPoliciesOutput) String() string {
7470	return awsutil.Prettify(s)
7471}
7472
7473// GoString returns the string representation
7474func (s ListSecurityPoliciesOutput) GoString() string {
7475	return s.String()
7476}
7477
7478// SetNextToken sets the NextToken field's value.
7479func (s *ListSecurityPoliciesOutput) SetNextToken(v string) *ListSecurityPoliciesOutput {
7480	s.NextToken = &v
7481	return s
7482}
7483
7484// SetSecurityPolicyNames sets the SecurityPolicyNames field's value.
7485func (s *ListSecurityPoliciesOutput) SetSecurityPolicyNames(v []*string) *ListSecurityPoliciesOutput {
7486	s.SecurityPolicyNames = v
7487	return s
7488}
7489
7490type ListServersInput struct {
7491	_ struct{} `type:"structure"`
7492
7493	// Specifies the number of servers to return as a response to the ListServers
7494	// query.
7495	MaxResults *int64 `min:"1" type:"integer"`
7496
7497	// When additional results are obtained from the ListServers command, a NextToken
7498	// parameter is returned in the output. You can then pass the NextToken parameter
7499	// in a subsequent command to continue listing additional servers.
7500	NextToken *string `min:"1" type:"string"`
7501}
7502
7503// String returns the string representation
7504func (s ListServersInput) String() string {
7505	return awsutil.Prettify(s)
7506}
7507
7508// GoString returns the string representation
7509func (s ListServersInput) GoString() string {
7510	return s.String()
7511}
7512
7513// Validate inspects the fields of the type to determine if they are valid.
7514func (s *ListServersInput) Validate() error {
7515	invalidParams := request.ErrInvalidParams{Context: "ListServersInput"}
7516	if s.MaxResults != nil && *s.MaxResults < 1 {
7517		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7518	}
7519	if s.NextToken != nil && len(*s.NextToken) < 1 {
7520		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7521	}
7522
7523	if invalidParams.Len() > 0 {
7524		return invalidParams
7525	}
7526	return nil
7527}
7528
7529// SetMaxResults sets the MaxResults field's value.
7530func (s *ListServersInput) SetMaxResults(v int64) *ListServersInput {
7531	s.MaxResults = &v
7532	return s
7533}
7534
7535// SetNextToken sets the NextToken field's value.
7536func (s *ListServersInput) SetNextToken(v string) *ListServersInput {
7537	s.NextToken = &v
7538	return s
7539}
7540
7541type ListServersOutput struct {
7542	_ struct{} `type:"structure"`
7543
7544	// When you can get additional results from the ListServers operation, a NextToken
7545	// parameter is returned in the output. In a following command, you can pass
7546	// in the NextToken parameter to continue listing additional servers.
7547	NextToken *string `min:"1" type:"string"`
7548
7549	// An array of servers that were listed.
7550	//
7551	// Servers is a required field
7552	Servers []*ListedServer `type:"list" required:"true"`
7553}
7554
7555// String returns the string representation
7556func (s ListServersOutput) String() string {
7557	return awsutil.Prettify(s)
7558}
7559
7560// GoString returns the string representation
7561func (s ListServersOutput) GoString() string {
7562	return s.String()
7563}
7564
7565// SetNextToken sets the NextToken field's value.
7566func (s *ListServersOutput) SetNextToken(v string) *ListServersOutput {
7567	s.NextToken = &v
7568	return s
7569}
7570
7571// SetServers sets the Servers field's value.
7572func (s *ListServersOutput) SetServers(v []*ListedServer) *ListServersOutput {
7573	s.Servers = v
7574	return s
7575}
7576
7577type ListTagsForResourceInput struct {
7578	_ struct{} `type:"structure"`
7579
7580	// Requests the tags associated with a particular Amazon Resource Name (ARN).
7581	// An ARN is an identifier for a specific Amazon Web Services resource, such
7582	// as a server, user, or role.
7583	//
7584	// Arn is a required field
7585	Arn *string `min:"20" type:"string" required:"true"`
7586
7587	// Specifies the number of tags to return as a response to the ListTagsForResource
7588	// request.
7589	MaxResults *int64 `min:"1" type:"integer"`
7590
7591	// When you request additional results from the ListTagsForResource operation,
7592	// a NextToken parameter is returned in the input. You can then pass in a subsequent
7593	// command to the NextToken parameter to continue listing additional tags.
7594	NextToken *string `min:"1" type:"string"`
7595}
7596
7597// String returns the string representation
7598func (s ListTagsForResourceInput) String() string {
7599	return awsutil.Prettify(s)
7600}
7601
7602// GoString returns the string representation
7603func (s ListTagsForResourceInput) GoString() string {
7604	return s.String()
7605}
7606
7607// Validate inspects the fields of the type to determine if they are valid.
7608func (s *ListTagsForResourceInput) Validate() error {
7609	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
7610	if s.Arn == nil {
7611		invalidParams.Add(request.NewErrParamRequired("Arn"))
7612	}
7613	if s.Arn != nil && len(*s.Arn) < 20 {
7614		invalidParams.Add(request.NewErrParamMinLen("Arn", 20))
7615	}
7616	if s.MaxResults != nil && *s.MaxResults < 1 {
7617		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7618	}
7619	if s.NextToken != nil && len(*s.NextToken) < 1 {
7620		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7621	}
7622
7623	if invalidParams.Len() > 0 {
7624		return invalidParams
7625	}
7626	return nil
7627}
7628
7629// SetArn sets the Arn field's value.
7630func (s *ListTagsForResourceInput) SetArn(v string) *ListTagsForResourceInput {
7631	s.Arn = &v
7632	return s
7633}
7634
7635// SetMaxResults sets the MaxResults field's value.
7636func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
7637	s.MaxResults = &v
7638	return s
7639}
7640
7641// SetNextToken sets the NextToken field's value.
7642func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
7643	s.NextToken = &v
7644	return s
7645}
7646
7647type ListTagsForResourceOutput struct {
7648	_ struct{} `type:"structure"`
7649
7650	// The ARN you specified to list the tags of.
7651	Arn *string `min:"20" type:"string"`
7652
7653	// When you can get additional results from the ListTagsForResource call, a
7654	// NextToken parameter is returned in the output. You can then pass in a subsequent
7655	// command to the NextToken parameter to continue listing additional tags.
7656	NextToken *string `min:"1" type:"string"`
7657
7658	// Key-value pairs that are assigned to a resource, usually for the purpose
7659	// of grouping and searching for items. Tags are metadata that you define.
7660	Tags []*Tag `min:"1" type:"list"`
7661}
7662
7663// String returns the string representation
7664func (s ListTagsForResourceOutput) String() string {
7665	return awsutil.Prettify(s)
7666}
7667
7668// GoString returns the string representation
7669func (s ListTagsForResourceOutput) GoString() string {
7670	return s.String()
7671}
7672
7673// SetArn sets the Arn field's value.
7674func (s *ListTagsForResourceOutput) SetArn(v string) *ListTagsForResourceOutput {
7675	s.Arn = &v
7676	return s
7677}
7678
7679// SetNextToken sets the NextToken field's value.
7680func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
7681	s.NextToken = &v
7682	return s
7683}
7684
7685// SetTags sets the Tags field's value.
7686func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
7687	s.Tags = v
7688	return s
7689}
7690
7691type ListUsersInput struct {
7692	_ struct{} `type:"structure"`
7693
7694	// Specifies the number of users to return as a response to the ListUsers request.
7695	MaxResults *int64 `min:"1" type:"integer"`
7696
7697	// When you can get additional results from the ListUsers call, a NextToken
7698	// parameter is returned in the output. You can then pass in a subsequent command
7699	// to the NextToken parameter to continue listing additional users.
7700	NextToken *string `min:"1" type:"string"`
7701
7702	// A system-assigned unique identifier for a server that has users assigned
7703	// to it.
7704	//
7705	// ServerId is a required field
7706	ServerId *string `min:"19" type:"string" required:"true"`
7707}
7708
7709// String returns the string representation
7710func (s ListUsersInput) String() string {
7711	return awsutil.Prettify(s)
7712}
7713
7714// GoString returns the string representation
7715func (s ListUsersInput) GoString() string {
7716	return s.String()
7717}
7718
7719// Validate inspects the fields of the type to determine if they are valid.
7720func (s *ListUsersInput) Validate() error {
7721	invalidParams := request.ErrInvalidParams{Context: "ListUsersInput"}
7722	if s.MaxResults != nil && *s.MaxResults < 1 {
7723		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7724	}
7725	if s.NextToken != nil && len(*s.NextToken) < 1 {
7726		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7727	}
7728	if s.ServerId == nil {
7729		invalidParams.Add(request.NewErrParamRequired("ServerId"))
7730	}
7731	if s.ServerId != nil && len(*s.ServerId) < 19 {
7732		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
7733	}
7734
7735	if invalidParams.Len() > 0 {
7736		return invalidParams
7737	}
7738	return nil
7739}
7740
7741// SetMaxResults sets the MaxResults field's value.
7742func (s *ListUsersInput) SetMaxResults(v int64) *ListUsersInput {
7743	s.MaxResults = &v
7744	return s
7745}
7746
7747// SetNextToken sets the NextToken field's value.
7748func (s *ListUsersInput) SetNextToken(v string) *ListUsersInput {
7749	s.NextToken = &v
7750	return s
7751}
7752
7753// SetServerId sets the ServerId field's value.
7754func (s *ListUsersInput) SetServerId(v string) *ListUsersInput {
7755	s.ServerId = &v
7756	return s
7757}
7758
7759type ListUsersOutput struct {
7760	_ struct{} `type:"structure"`
7761
7762	// When you can get additional results from the ListUsers call, a NextToken
7763	// parameter is returned in the output. You can then pass in a subsequent command
7764	// to the NextToken parameter to continue listing additional users.
7765	NextToken *string `min:"1" type:"string"`
7766
7767	// A system-assigned unique identifier for a server that the users are assigned
7768	// to.
7769	//
7770	// ServerId is a required field
7771	ServerId *string `min:"19" type:"string" required:"true"`
7772
7773	// Returns the user accounts and their properties for the ServerId value that
7774	// you specify.
7775	//
7776	// Users is a required field
7777	Users []*ListedUser `type:"list" required:"true"`
7778}
7779
7780// String returns the string representation
7781func (s ListUsersOutput) String() string {
7782	return awsutil.Prettify(s)
7783}
7784
7785// GoString returns the string representation
7786func (s ListUsersOutput) GoString() string {
7787	return s.String()
7788}
7789
7790// SetNextToken sets the NextToken field's value.
7791func (s *ListUsersOutput) SetNextToken(v string) *ListUsersOutput {
7792	s.NextToken = &v
7793	return s
7794}
7795
7796// SetServerId sets the ServerId field's value.
7797func (s *ListUsersOutput) SetServerId(v string) *ListUsersOutput {
7798	s.ServerId = &v
7799	return s
7800}
7801
7802// SetUsers sets the Users field's value.
7803func (s *ListUsersOutput) SetUsers(v []*ListedUser) *ListUsersOutput {
7804	s.Users = v
7805	return s
7806}
7807
7808type ListWorkflowsInput struct {
7809	_ struct{} `type:"structure"`
7810
7811	// Specifies the maximum number of workflows to return.
7812	MaxResults *int64 `min:"1" type:"integer"`
7813
7814	// ListWorkflows returns the NextToken parameter in the output. You can then
7815	// pass the NextToken parameter in a subsequent command to continue listing
7816	// additional workflows.
7817	NextToken *string `min:"1" type:"string"`
7818}
7819
7820// String returns the string representation
7821func (s ListWorkflowsInput) String() string {
7822	return awsutil.Prettify(s)
7823}
7824
7825// GoString returns the string representation
7826func (s ListWorkflowsInput) GoString() string {
7827	return s.String()
7828}
7829
7830// Validate inspects the fields of the type to determine if they are valid.
7831func (s *ListWorkflowsInput) Validate() error {
7832	invalidParams := request.ErrInvalidParams{Context: "ListWorkflowsInput"}
7833	if s.MaxResults != nil && *s.MaxResults < 1 {
7834		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7835	}
7836	if s.NextToken != nil && len(*s.NextToken) < 1 {
7837		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7838	}
7839
7840	if invalidParams.Len() > 0 {
7841		return invalidParams
7842	}
7843	return nil
7844}
7845
7846// SetMaxResults sets the MaxResults field's value.
7847func (s *ListWorkflowsInput) SetMaxResults(v int64) *ListWorkflowsInput {
7848	s.MaxResults = &v
7849	return s
7850}
7851
7852// SetNextToken sets the NextToken field's value.
7853func (s *ListWorkflowsInput) SetNextToken(v string) *ListWorkflowsInput {
7854	s.NextToken = &v
7855	return s
7856}
7857
7858type ListWorkflowsOutput struct {
7859	_ struct{} `type:"structure"`
7860
7861	// ListWorkflows returns the NextToken parameter in the output. You can then
7862	// pass the NextToken parameter in a subsequent command to continue listing
7863	// additional workflows.
7864	NextToken *string `min:"1" type:"string"`
7865
7866	// Returns the Arn, WorkflowId, and Description for each workflow.
7867	//
7868	// Workflows is a required field
7869	Workflows []*ListedWorkflow `type:"list" required:"true"`
7870}
7871
7872// String returns the string representation
7873func (s ListWorkflowsOutput) String() string {
7874	return awsutil.Prettify(s)
7875}
7876
7877// GoString returns the string representation
7878func (s ListWorkflowsOutput) GoString() string {
7879	return s.String()
7880}
7881
7882// SetNextToken sets the NextToken field's value.
7883func (s *ListWorkflowsOutput) SetNextToken(v string) *ListWorkflowsOutput {
7884	s.NextToken = &v
7885	return s
7886}
7887
7888// SetWorkflows sets the Workflows field's value.
7889func (s *ListWorkflowsOutput) SetWorkflows(v []*ListedWorkflow) *ListWorkflowsOutput {
7890	s.Workflows = v
7891	return s
7892}
7893
7894// Lists the properties for one or more specified associated accesses.
7895type ListedAccess struct {
7896	_ struct{} `type:"structure"`
7897
7898	// A unique identifier that is required to identify specific groups within your
7899	// directory. The users of the group that you associate have access to your
7900	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
7901	// Web Services Transfer Family. If you know the group name, you can view the
7902	// SID values by running the following command using Windows PowerShell.
7903	//
7904	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
7905	// | Select SamAccountName,ObjectSid
7906	//
7907	// In that command, replace YourGroupName with the name of your Active Directory
7908	// group.
7909	//
7910	// The regex used to validate this parameter is a string of characters consisting
7911	// of uppercase and lowercase alphanumeric characters with no spaces. You can
7912	// also include underscores or any of the following characters: =,.@:/-
7913	ExternalId *string `min:"1" type:"string"`
7914
7915	// The landing directory (folder) for a user when they log in to the server
7916	// using the client.
7917	//
7918	// A HomeDirectory example is /bucket_name/home/mydirectory.
7919	HomeDirectory *string `type:"string"`
7920
7921	// The type of landing directory (folder) you want your users' home directory
7922	// to be when they log into the server. If you set it to PATH, the user will
7923	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
7924	// protocol clients. If you set it LOGICAL, you need to provide mappings in
7925	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
7926	// visible to your users.
7927	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
7928
7929	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
7930	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
7931	// to this role determine the level of access that you want to provide your
7932	// users when transferring files into and out of your Amazon S3 bucket or EFS
7933	// file system. The IAM role should also contain a trust relationship that allows
7934	// the server to access your resources when servicing your users' transfer requests.
7935	Role *string `min:"20" type:"string"`
7936}
7937
7938// String returns the string representation
7939func (s ListedAccess) String() string {
7940	return awsutil.Prettify(s)
7941}
7942
7943// GoString returns the string representation
7944func (s ListedAccess) GoString() string {
7945	return s.String()
7946}
7947
7948// SetExternalId sets the ExternalId field's value.
7949func (s *ListedAccess) SetExternalId(v string) *ListedAccess {
7950	s.ExternalId = &v
7951	return s
7952}
7953
7954// SetHomeDirectory sets the HomeDirectory field's value.
7955func (s *ListedAccess) SetHomeDirectory(v string) *ListedAccess {
7956	s.HomeDirectory = &v
7957	return s
7958}
7959
7960// SetHomeDirectoryType sets the HomeDirectoryType field's value.
7961func (s *ListedAccess) SetHomeDirectoryType(v string) *ListedAccess {
7962	s.HomeDirectoryType = &v
7963	return s
7964}
7965
7966// SetRole sets the Role field's value.
7967func (s *ListedAccess) SetRole(v string) *ListedAccess {
7968	s.Role = &v
7969	return s
7970}
7971
7972// Returns properties of the execution that is specified.
7973type ListedExecution struct {
7974	_ struct{} `type:"structure"`
7975
7976	// A unique identifier for the execution of a workflow.
7977	ExecutionId *string `min:"36" type:"string"`
7978
7979	// A structure that describes the Amazon S3 or EFS file location. This is the
7980	// file location when the execution begins: if the file is being copied, this
7981	// is the initial (as opposed to destination) file location.
7982	InitialFileLocation *FileLocation `type:"structure"`
7983
7984	// A container object for the session details associated with a workflow.
7985	ServiceMetadata *ServiceMetadata `type:"structure"`
7986
7987	// The status is one of the execution. Can be in progress, completed, exception
7988	// encountered, or handling the exception.
7989	Status *string `type:"string" enum:"ExecutionStatus"`
7990}
7991
7992// String returns the string representation
7993func (s ListedExecution) String() string {
7994	return awsutil.Prettify(s)
7995}
7996
7997// GoString returns the string representation
7998func (s ListedExecution) GoString() string {
7999	return s.String()
8000}
8001
8002// SetExecutionId sets the ExecutionId field's value.
8003func (s *ListedExecution) SetExecutionId(v string) *ListedExecution {
8004	s.ExecutionId = &v
8005	return s
8006}
8007
8008// SetInitialFileLocation sets the InitialFileLocation field's value.
8009func (s *ListedExecution) SetInitialFileLocation(v *FileLocation) *ListedExecution {
8010	s.InitialFileLocation = v
8011	return s
8012}
8013
8014// SetServiceMetadata sets the ServiceMetadata field's value.
8015func (s *ListedExecution) SetServiceMetadata(v *ServiceMetadata) *ListedExecution {
8016	s.ServiceMetadata = v
8017	return s
8018}
8019
8020// SetStatus sets the Status field's value.
8021func (s *ListedExecution) SetStatus(v string) *ListedExecution {
8022	s.Status = &v
8023	return s
8024}
8025
8026// Returns properties of a file transfer protocol-enabled server that was specified.
8027type ListedServer struct {
8028	_ struct{} `type:"structure"`
8029
8030	// Specifies the unique Amazon Resource Name (ARN) for a server to be listed.
8031	//
8032	// Arn is a required field
8033	Arn *string `min:"20" type:"string" required:"true"`
8034
8035	// Specifies the domain of the storage system that is used for file transfers.
8036	Domain *string `type:"string" enum:"Domain"`
8037
8038	// Specifies the type of VPC endpoint that your server is connected to. If your
8039	// server is connected to a VPC endpoint, your server isn't accessible over
8040	// the public internet.
8041	EndpointType *string `type:"string" enum:"EndpointType"`
8042
8043	// Specifies the mode of authentication for a server. The default value is SERVICE_MANAGED,
8044	// which allows you to store and access user credentials within the Amazon Web
8045	// Services Transfer Family service.
8046	//
8047	// Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in
8048	// Amazon Web Services Managed Active Directory or Microsoft Active Directory
8049	// in your on-premises environment or in Amazon Web Services using AD Connectors.
8050	// This option also requires you to provide a Directory ID using the IdentityProviderDetails
8051	// parameter.
8052	//
8053	// Use the API_GATEWAY value to integrate with an identity provider of your
8054	// choosing. The API_GATEWAY setting requires you to provide an API Gateway
8055	// endpoint URL to call for authentication using the IdentityProviderDetails
8056	// parameter.
8057	IdentityProviderType *string `type:"string" enum:"IdentityProviderType"`
8058
8059	// Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
8060	// and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch
8061	// logging for Amazon S3 or Amazon EFS events. When set, user activity can be
8062	// viewed in your CloudWatch logs.
8063	LoggingRole *string `min:"20" type:"string"`
8064
8065	// Specifies the unique system assigned identifier for the servers that were
8066	// listed.
8067	ServerId *string `min:"19" type:"string"`
8068
8069	// Specifies the condition of a server for the server that was described. A
8070	// value of ONLINE indicates that the server can accept jobs and transfer files.
8071	// A State value of OFFLINE means that the server cannot perform file transfer
8072	// operations.
8073	//
8074	// The states of STARTING and STOPPING indicate that the server is in an intermediate
8075	// state, either not fully able to respond, or not fully offline. The values
8076	// of START_FAILED or STOP_FAILED can indicate an error condition.
8077	State *string `type:"string" enum:"State"`
8078
8079	// Specifies the number of users that are assigned to a server you specified
8080	// with the ServerId.
8081	UserCount *int64 `type:"integer"`
8082}
8083
8084// String returns the string representation
8085func (s ListedServer) String() string {
8086	return awsutil.Prettify(s)
8087}
8088
8089// GoString returns the string representation
8090func (s ListedServer) GoString() string {
8091	return s.String()
8092}
8093
8094// SetArn sets the Arn field's value.
8095func (s *ListedServer) SetArn(v string) *ListedServer {
8096	s.Arn = &v
8097	return s
8098}
8099
8100// SetDomain sets the Domain field's value.
8101func (s *ListedServer) SetDomain(v string) *ListedServer {
8102	s.Domain = &v
8103	return s
8104}
8105
8106// SetEndpointType sets the EndpointType field's value.
8107func (s *ListedServer) SetEndpointType(v string) *ListedServer {
8108	s.EndpointType = &v
8109	return s
8110}
8111
8112// SetIdentityProviderType sets the IdentityProviderType field's value.
8113func (s *ListedServer) SetIdentityProviderType(v string) *ListedServer {
8114	s.IdentityProviderType = &v
8115	return s
8116}
8117
8118// SetLoggingRole sets the LoggingRole field's value.
8119func (s *ListedServer) SetLoggingRole(v string) *ListedServer {
8120	s.LoggingRole = &v
8121	return s
8122}
8123
8124// SetServerId sets the ServerId field's value.
8125func (s *ListedServer) SetServerId(v string) *ListedServer {
8126	s.ServerId = &v
8127	return s
8128}
8129
8130// SetState sets the State field's value.
8131func (s *ListedServer) SetState(v string) *ListedServer {
8132	s.State = &v
8133	return s
8134}
8135
8136// SetUserCount sets the UserCount field's value.
8137func (s *ListedServer) SetUserCount(v int64) *ListedServer {
8138	s.UserCount = &v
8139	return s
8140}
8141
8142// Returns properties of the user that you specify.
8143type ListedUser struct {
8144	_ struct{} `type:"structure"`
8145
8146	// Provides the unique Amazon Resource Name (ARN) for the user that you want
8147	// to learn about.
8148	//
8149	// Arn is a required field
8150	Arn *string `min:"20" type:"string" required:"true"`
8151
8152	// The landing directory (folder) for a user when they log in to the server
8153	// using the client.
8154	//
8155	// A HomeDirectory example is /bucket_name/home/mydirectory.
8156	HomeDirectory *string `type:"string"`
8157
8158	// The type of landing directory (folder) you want your users' home directory
8159	// to be when they log into the server. If you set it to PATH, the user will
8160	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
8161	// protocol clients. If you set it LOGICAL, you need to provide mappings in
8162	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
8163	// visible to your users.
8164	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
8165
8166	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
8167	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
8168	// to this role determine the level of access that you want to provide your
8169	// users when transferring files into and out of your Amazon S3 bucket or EFS
8170	// file system. The IAM role should also contain a trust relationship that allows
8171	// the server to access your resources when servicing your users' transfer requests.
8172	//
8173	// The IAM role that controls your users' access to your Amazon S3 bucket for
8174	// servers with Domain=S3, or your EFS file system for servers with Domain=EFS.
8175	//
8176	// The policies attached to this role determine the level of access you want
8177	// to provide your users when transferring files into and out of your S3 buckets
8178	// or EFS file systems.
8179	Role *string `min:"20" type:"string"`
8180
8181	// Specifies the number of SSH public keys stored for the user you specified.
8182	SshPublicKeyCount *int64 `type:"integer"`
8183
8184	// Specifies the name of the user whose ARN was specified. User names are used
8185	// for authentication purposes.
8186	UserName *string `min:"3" type:"string"`
8187}
8188
8189// String returns the string representation
8190func (s ListedUser) String() string {
8191	return awsutil.Prettify(s)
8192}
8193
8194// GoString returns the string representation
8195func (s ListedUser) GoString() string {
8196	return s.String()
8197}
8198
8199// SetArn sets the Arn field's value.
8200func (s *ListedUser) SetArn(v string) *ListedUser {
8201	s.Arn = &v
8202	return s
8203}
8204
8205// SetHomeDirectory sets the HomeDirectory field's value.
8206func (s *ListedUser) SetHomeDirectory(v string) *ListedUser {
8207	s.HomeDirectory = &v
8208	return s
8209}
8210
8211// SetHomeDirectoryType sets the HomeDirectoryType field's value.
8212func (s *ListedUser) SetHomeDirectoryType(v string) *ListedUser {
8213	s.HomeDirectoryType = &v
8214	return s
8215}
8216
8217// SetRole sets the Role field's value.
8218func (s *ListedUser) SetRole(v string) *ListedUser {
8219	s.Role = &v
8220	return s
8221}
8222
8223// SetSshPublicKeyCount sets the SshPublicKeyCount field's value.
8224func (s *ListedUser) SetSshPublicKeyCount(v int64) *ListedUser {
8225	s.SshPublicKeyCount = &v
8226	return s
8227}
8228
8229// SetUserName sets the UserName field's value.
8230func (s *ListedUser) SetUserName(v string) *ListedUser {
8231	s.UserName = &v
8232	return s
8233}
8234
8235// Contains the ID, text description, and Amazon Resource Name (ARN) for the
8236// workflow.
8237type ListedWorkflow struct {
8238	_ struct{} `type:"structure"`
8239
8240	// Specifies the unique Amazon Resource Name (ARN) for the workflow.
8241	Arn *string `min:"20" type:"string"`
8242
8243	// Specifies the text description for the workflow.
8244	Description *string `type:"string"`
8245
8246	// A unique identifier for the workflow.
8247	WorkflowId *string `min:"19" type:"string"`
8248}
8249
8250// String returns the string representation
8251func (s ListedWorkflow) String() string {
8252	return awsutil.Prettify(s)
8253}
8254
8255// GoString returns the string representation
8256func (s ListedWorkflow) GoString() string {
8257	return s.String()
8258}
8259
8260// SetArn sets the Arn field's value.
8261func (s *ListedWorkflow) SetArn(v string) *ListedWorkflow {
8262	s.Arn = &v
8263	return s
8264}
8265
8266// SetDescription sets the Description field's value.
8267func (s *ListedWorkflow) SetDescription(v string) *ListedWorkflow {
8268	s.Description = &v
8269	return s
8270}
8271
8272// SetWorkflowId sets the WorkflowId field's value.
8273func (s *ListedWorkflow) SetWorkflowId(v string) *ListedWorkflow {
8274	s.WorkflowId = &v
8275	return s
8276}
8277
8278// Consists of the logging role and the log group name.
8279type LoggingConfiguration struct {
8280	_ struct{} `type:"structure"`
8281
8282	// The name of the CloudWatch logging group for the Amazon Web Services Transfer
8283	// server to which this workflow belongs.
8284	LogGroupName *string `min:"1" type:"string"`
8285
8286	// Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
8287	// and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch
8288	// logging for Amazon S3 or Amazon EFS events. When set, user activity can be
8289	// viewed in your CloudWatch logs.
8290	LoggingRole *string `min:"20" type:"string"`
8291}
8292
8293// String returns the string representation
8294func (s LoggingConfiguration) String() string {
8295	return awsutil.Prettify(s)
8296}
8297
8298// GoString returns the string representation
8299func (s LoggingConfiguration) GoString() string {
8300	return s.String()
8301}
8302
8303// SetLogGroupName sets the LogGroupName field's value.
8304func (s *LoggingConfiguration) SetLogGroupName(v string) *LoggingConfiguration {
8305	s.LogGroupName = &v
8306	return s
8307}
8308
8309// SetLoggingRole sets the LoggingRole field's value.
8310func (s *LoggingConfiguration) SetLoggingRole(v string) *LoggingConfiguration {
8311	s.LoggingRole = &v
8312	return s
8313}
8314
8315// The full POSIX identity, including user ID (Uid), group ID (Gid), and any
8316// secondary groups IDs (SecondaryGids), that controls your users' access to
8317// your Amazon EFS file systems. The POSIX permissions that are set on files
8318// and directories in your file system determine the level of access your users
8319// get when transferring files into and out of your Amazon EFS file systems.
8320type PosixProfile struct {
8321	_ struct{} `type:"structure"`
8322
8323	// The POSIX group ID used for all EFS operations by this user.
8324	//
8325	// Gid is a required field
8326	Gid *int64 `type:"long" required:"true"`
8327
8328	// The secondary POSIX group IDs used for all EFS operations by this user.
8329	SecondaryGids []*int64 `type:"list"`
8330
8331	// The POSIX user ID used for all EFS operations by this user.
8332	//
8333	// Uid is a required field
8334	Uid *int64 `type:"long" required:"true"`
8335}
8336
8337// String returns the string representation
8338func (s PosixProfile) String() string {
8339	return awsutil.Prettify(s)
8340}
8341
8342// GoString returns the string representation
8343func (s PosixProfile) GoString() string {
8344	return s.String()
8345}
8346
8347// Validate inspects the fields of the type to determine if they are valid.
8348func (s *PosixProfile) Validate() error {
8349	invalidParams := request.ErrInvalidParams{Context: "PosixProfile"}
8350	if s.Gid == nil {
8351		invalidParams.Add(request.NewErrParamRequired("Gid"))
8352	}
8353	if s.Uid == nil {
8354		invalidParams.Add(request.NewErrParamRequired("Uid"))
8355	}
8356
8357	if invalidParams.Len() > 0 {
8358		return invalidParams
8359	}
8360	return nil
8361}
8362
8363// SetGid sets the Gid field's value.
8364func (s *PosixProfile) SetGid(v int64) *PosixProfile {
8365	s.Gid = &v
8366	return s
8367}
8368
8369// SetSecondaryGids sets the SecondaryGids field's value.
8370func (s *PosixProfile) SetSecondaryGids(v []*int64) *PosixProfile {
8371	s.SecondaryGids = v
8372	return s
8373}
8374
8375// SetUid sets the Uid field's value.
8376func (s *PosixProfile) SetUid(v int64) *PosixProfile {
8377	s.Uid = &v
8378	return s
8379}
8380
8381// The protocol settings that are configured for your server.
8382//
8383// This type is only valid in the UpdateServer API.
8384type ProtocolDetails struct {
8385	_ struct{} `type:"structure"`
8386
8387	// Indicates passive mode, for FTP and FTPS protocols. Enter a single dotted-quad
8388	// IPv4 address, such as the external IP address of a firewall, router, or load
8389	// balancer. For example:
8390	//
8391	// aws transfer update-server --protocol-details PassiveIp=0.0.0.0
8392	//
8393	// Replace 0.0.0.0 in the example above with the actual IP address you want
8394	// to use.
8395	//
8396	// If you change the PassiveIp value, you must stop and then restart your Transfer
8397	// server for the change to take effect. For details on using Passive IP (PASV)
8398	// in a NAT environment, see Configuring your FTPS server behind a firewall
8399	// or NAT with Amazon Web Services Transfer Family (http://aws.amazon.com/blogs/storage/configuring-your-ftps-server-behind-a-firewall-or-nat-with-aws-transfer-family/).
8400	PassiveIp *string `type:"string"`
8401}
8402
8403// String returns the string representation
8404func (s ProtocolDetails) String() string {
8405	return awsutil.Prettify(s)
8406}
8407
8408// GoString returns the string representation
8409func (s ProtocolDetails) GoString() string {
8410	return s.String()
8411}
8412
8413// SetPassiveIp sets the PassiveIp field's value.
8414func (s *ProtocolDetails) SetPassiveIp(v string) *ProtocolDetails {
8415	s.PassiveIp = &v
8416	return s
8417}
8418
8419// The requested resource does not exist.
8420type ResourceExistsException struct {
8421	_            struct{}                  `type:"structure"`
8422	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8423
8424	Message_ *string `locationName:"Message" type:"string"`
8425
8426	// Resource is a required field
8427	Resource *string `type:"string" required:"true"`
8428
8429	// ResourceType is a required field
8430	ResourceType *string `type:"string" required:"true"`
8431}
8432
8433// String returns the string representation
8434func (s ResourceExistsException) String() string {
8435	return awsutil.Prettify(s)
8436}
8437
8438// GoString returns the string representation
8439func (s ResourceExistsException) GoString() string {
8440	return s.String()
8441}
8442
8443func newErrorResourceExistsException(v protocol.ResponseMetadata) error {
8444	return &ResourceExistsException{
8445		RespMetadata: v,
8446	}
8447}
8448
8449// Code returns the exception type name.
8450func (s *ResourceExistsException) Code() string {
8451	return "ResourceExistsException"
8452}
8453
8454// Message returns the exception's message.
8455func (s *ResourceExistsException) Message() string {
8456	if s.Message_ != nil {
8457		return *s.Message_
8458	}
8459	return ""
8460}
8461
8462// OrigErr always returns nil, satisfies awserr.Error interface.
8463func (s *ResourceExistsException) OrigErr() error {
8464	return nil
8465}
8466
8467func (s *ResourceExistsException) Error() string {
8468	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8469}
8470
8471// Status code returns the HTTP status code for the request's response error.
8472func (s *ResourceExistsException) StatusCode() int {
8473	return s.RespMetadata.StatusCode
8474}
8475
8476// RequestID returns the service's response RequestID for request.
8477func (s *ResourceExistsException) RequestID() string {
8478	return s.RespMetadata.RequestID
8479}
8480
8481// This exception is thrown when a resource is not found by the Amazon Web ServicesTransfer
8482// Family service.
8483type ResourceNotFoundException struct {
8484	_            struct{}                  `type:"structure"`
8485	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8486
8487	Message_ *string `locationName:"Message" type:"string"`
8488
8489	// Resource is a required field
8490	Resource *string `type:"string" required:"true"`
8491
8492	// ResourceType is a required field
8493	ResourceType *string `type:"string" required:"true"`
8494}
8495
8496// String returns the string representation
8497func (s ResourceNotFoundException) String() string {
8498	return awsutil.Prettify(s)
8499}
8500
8501// GoString returns the string representation
8502func (s ResourceNotFoundException) GoString() string {
8503	return s.String()
8504}
8505
8506func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
8507	return &ResourceNotFoundException{
8508		RespMetadata: v,
8509	}
8510}
8511
8512// Code returns the exception type name.
8513func (s *ResourceNotFoundException) Code() string {
8514	return "ResourceNotFoundException"
8515}
8516
8517// Message returns the exception's message.
8518func (s *ResourceNotFoundException) Message() string {
8519	if s.Message_ != nil {
8520		return *s.Message_
8521	}
8522	return ""
8523}
8524
8525// OrigErr always returns nil, satisfies awserr.Error interface.
8526func (s *ResourceNotFoundException) OrigErr() error {
8527	return nil
8528}
8529
8530func (s *ResourceNotFoundException) Error() string {
8531	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8532}
8533
8534// Status code returns the HTTP status code for the request's response error.
8535func (s *ResourceNotFoundException) StatusCode() int {
8536	return s.RespMetadata.StatusCode
8537}
8538
8539// RequestID returns the service's response RequestID for request.
8540func (s *ResourceNotFoundException) RequestID() string {
8541	return s.RespMetadata.RequestID
8542}
8543
8544// Specifies the details for the file location for the file being used in the
8545// workflow. Only applicable if you are using S3 storage.
8546//
8547// You need to provide the bucket and key. The key can represent either a path
8548// or a file. This is determined by whether or not you end the key value with
8549// the forward slash (/) character. If the final character is "/", then your
8550// file is copied to the folder, and its name does not change. If, rather, the
8551// final character is alphanumeric, your uploaded file is renamed to the path
8552// value. In this case, if a file with that name already exists, it is overwritten.
8553//
8554// For example, if your path is shared-files/bob/, your uploaded files are copied
8555// to the shared-files/bob/, folder. If your path is shared-files/today, each
8556// uploaded file is copied to the shared-files folder and named today: each
8557// upload overwrites the previous version of the bob file.
8558type S3FileLocation struct {
8559	_ struct{} `type:"structure"`
8560
8561	// Specifies the S3 bucket that contains the file being used.
8562	Bucket *string `min:"3" type:"string"`
8563
8564	// The entity tag is a hash of the object. The ETag reflects changes only to
8565	// the contents of an object, not its metadata.
8566	Etag *string `min:"1" type:"string"`
8567
8568	// The name assigned to the file when it was created in S3. You use the object
8569	// key to retrieve the object.
8570	Key *string `type:"string"`
8571
8572	// Specifies the file version.
8573	VersionId *string `min:"1" type:"string"`
8574}
8575
8576// String returns the string representation
8577func (s S3FileLocation) String() string {
8578	return awsutil.Prettify(s)
8579}
8580
8581// GoString returns the string representation
8582func (s S3FileLocation) GoString() string {
8583	return s.String()
8584}
8585
8586// SetBucket sets the Bucket field's value.
8587func (s *S3FileLocation) SetBucket(v string) *S3FileLocation {
8588	s.Bucket = &v
8589	return s
8590}
8591
8592// SetEtag sets the Etag field's value.
8593func (s *S3FileLocation) SetEtag(v string) *S3FileLocation {
8594	s.Etag = &v
8595	return s
8596}
8597
8598// SetKey sets the Key field's value.
8599func (s *S3FileLocation) SetKey(v string) *S3FileLocation {
8600	s.Key = &v
8601	return s
8602}
8603
8604// SetVersionId sets the VersionId field's value.
8605func (s *S3FileLocation) SetVersionId(v string) *S3FileLocation {
8606	s.VersionId = &v
8607	return s
8608}
8609
8610// Specifies the details for the S3 file being copied.
8611type S3InputFileLocation struct {
8612	_ struct{} `type:"structure"`
8613
8614	// Specifies the S3 bucket that contains the file being copied.
8615	Bucket *string `min:"3" type:"string"`
8616
8617	// The name assigned to the file when it was created in S3. You use the object
8618	// key to retrieve the object.
8619	Key *string `type:"string"`
8620}
8621
8622// String returns the string representation
8623func (s S3InputFileLocation) String() string {
8624	return awsutil.Prettify(s)
8625}
8626
8627// GoString returns the string representation
8628func (s S3InputFileLocation) GoString() string {
8629	return s.String()
8630}
8631
8632// Validate inspects the fields of the type to determine if they are valid.
8633func (s *S3InputFileLocation) Validate() error {
8634	invalidParams := request.ErrInvalidParams{Context: "S3InputFileLocation"}
8635	if s.Bucket != nil && len(*s.Bucket) < 3 {
8636		invalidParams.Add(request.NewErrParamMinLen("Bucket", 3))
8637	}
8638
8639	if invalidParams.Len() > 0 {
8640		return invalidParams
8641	}
8642	return nil
8643}
8644
8645// SetBucket sets the Bucket field's value.
8646func (s *S3InputFileLocation) SetBucket(v string) *S3InputFileLocation {
8647	s.Bucket = &v
8648	return s
8649}
8650
8651// SetKey sets the Key field's value.
8652func (s *S3InputFileLocation) SetKey(v string) *S3InputFileLocation {
8653	s.Key = &v
8654	return s
8655}
8656
8657// Specifies the key-value pair that are assigned to a file during the execution
8658// of a Tagging step.
8659type S3Tag struct {
8660	_ struct{} `type:"structure"`
8661
8662	// The name assigned to the tag that you create.
8663	//
8664	// Key is a required field
8665	Key *string `min:"1" type:"string" required:"true"`
8666
8667	// The value that corresponds to the key.
8668	//
8669	// Value is a required field
8670	Value *string `type:"string" required:"true"`
8671}
8672
8673// String returns the string representation
8674func (s S3Tag) String() string {
8675	return awsutil.Prettify(s)
8676}
8677
8678// GoString returns the string representation
8679func (s S3Tag) GoString() string {
8680	return s.String()
8681}
8682
8683// Validate inspects the fields of the type to determine if they are valid.
8684func (s *S3Tag) Validate() error {
8685	invalidParams := request.ErrInvalidParams{Context: "S3Tag"}
8686	if s.Key == nil {
8687		invalidParams.Add(request.NewErrParamRequired("Key"))
8688	}
8689	if s.Key != nil && len(*s.Key) < 1 {
8690		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
8691	}
8692	if s.Value == nil {
8693		invalidParams.Add(request.NewErrParamRequired("Value"))
8694	}
8695
8696	if invalidParams.Len() > 0 {
8697		return invalidParams
8698	}
8699	return nil
8700}
8701
8702// SetKey sets the Key field's value.
8703func (s *S3Tag) SetKey(v string) *S3Tag {
8704	s.Key = &v
8705	return s
8706}
8707
8708// SetValue sets the Value field's value.
8709func (s *S3Tag) SetValue(v string) *S3Tag {
8710	s.Value = &v
8711	return s
8712}
8713
8714type SendWorkflowStepStateInput struct {
8715	_ struct{} `type:"structure"`
8716
8717	// A unique identifier for the execution of a workflow.
8718	//
8719	// ExecutionId is a required field
8720	ExecutionId *string `min:"36" type:"string" required:"true"`
8721
8722	// Indicates whether the specified step succeeded or failed.
8723	//
8724	// Status is a required field
8725	Status *string `type:"string" required:"true" enum:"CustomStepStatus"`
8726
8727	// Used to distinguish between multiple callbacks for multiple Lambda steps
8728	// within the same execution.
8729	//
8730	// Token is a required field
8731	Token *string `min:"1" type:"string" required:"true"`
8732
8733	// A unique identifier for the workflow.
8734	//
8735	// WorkflowId is a required field
8736	WorkflowId *string `min:"19" type:"string" required:"true"`
8737}
8738
8739// String returns the string representation
8740func (s SendWorkflowStepStateInput) String() string {
8741	return awsutil.Prettify(s)
8742}
8743
8744// GoString returns the string representation
8745func (s SendWorkflowStepStateInput) GoString() string {
8746	return s.String()
8747}
8748
8749// Validate inspects the fields of the type to determine if they are valid.
8750func (s *SendWorkflowStepStateInput) Validate() error {
8751	invalidParams := request.ErrInvalidParams{Context: "SendWorkflowStepStateInput"}
8752	if s.ExecutionId == nil {
8753		invalidParams.Add(request.NewErrParamRequired("ExecutionId"))
8754	}
8755	if s.ExecutionId != nil && len(*s.ExecutionId) < 36 {
8756		invalidParams.Add(request.NewErrParamMinLen("ExecutionId", 36))
8757	}
8758	if s.Status == nil {
8759		invalidParams.Add(request.NewErrParamRequired("Status"))
8760	}
8761	if s.Token == nil {
8762		invalidParams.Add(request.NewErrParamRequired("Token"))
8763	}
8764	if s.Token != nil && len(*s.Token) < 1 {
8765		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
8766	}
8767	if s.WorkflowId == nil {
8768		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
8769	}
8770	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
8771		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
8772	}
8773
8774	if invalidParams.Len() > 0 {
8775		return invalidParams
8776	}
8777	return nil
8778}
8779
8780// SetExecutionId sets the ExecutionId field's value.
8781func (s *SendWorkflowStepStateInput) SetExecutionId(v string) *SendWorkflowStepStateInput {
8782	s.ExecutionId = &v
8783	return s
8784}
8785
8786// SetStatus sets the Status field's value.
8787func (s *SendWorkflowStepStateInput) SetStatus(v string) *SendWorkflowStepStateInput {
8788	s.Status = &v
8789	return s
8790}
8791
8792// SetToken sets the Token field's value.
8793func (s *SendWorkflowStepStateInput) SetToken(v string) *SendWorkflowStepStateInput {
8794	s.Token = &v
8795	return s
8796}
8797
8798// SetWorkflowId sets the WorkflowId field's value.
8799func (s *SendWorkflowStepStateInput) SetWorkflowId(v string) *SendWorkflowStepStateInput {
8800	s.WorkflowId = &v
8801	return s
8802}
8803
8804type SendWorkflowStepStateOutput struct {
8805	_ struct{} `type:"structure"`
8806}
8807
8808// String returns the string representation
8809func (s SendWorkflowStepStateOutput) String() string {
8810	return awsutil.Prettify(s)
8811}
8812
8813// GoString returns the string representation
8814func (s SendWorkflowStepStateOutput) GoString() string {
8815	return s.String()
8816}
8817
8818// A container object for the session details associated with a workflow.
8819type ServiceMetadata struct {
8820	_ struct{} `type:"structure"`
8821
8822	// The Server ID (ServerId), Session ID (SessionId) and user (UserName) make
8823	// up the UserDetails.
8824	//
8825	// UserDetails is a required field
8826	UserDetails *UserDetails `type:"structure" required:"true"`
8827}
8828
8829// String returns the string representation
8830func (s ServiceMetadata) String() string {
8831	return awsutil.Prettify(s)
8832}
8833
8834// GoString returns the string representation
8835func (s ServiceMetadata) GoString() string {
8836	return s.String()
8837}
8838
8839// SetUserDetails sets the UserDetails field's value.
8840func (s *ServiceMetadata) SetUserDetails(v *UserDetails) *ServiceMetadata {
8841	s.UserDetails = v
8842	return s
8843}
8844
8845// The request has failed because the Amazon Web ServicesTransfer Family service
8846// is not available.
8847type ServiceUnavailableException struct {
8848	_            struct{}                  `type:"structure"`
8849	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8850
8851	Message_ *string `locationName:"Message" type:"string"`
8852}
8853
8854// String returns the string representation
8855func (s ServiceUnavailableException) String() string {
8856	return awsutil.Prettify(s)
8857}
8858
8859// GoString returns the string representation
8860func (s ServiceUnavailableException) GoString() string {
8861	return s.String()
8862}
8863
8864func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
8865	return &ServiceUnavailableException{
8866		RespMetadata: v,
8867	}
8868}
8869
8870// Code returns the exception type name.
8871func (s *ServiceUnavailableException) Code() string {
8872	return "ServiceUnavailableException"
8873}
8874
8875// Message returns the exception's message.
8876func (s *ServiceUnavailableException) Message() string {
8877	if s.Message_ != nil {
8878		return *s.Message_
8879	}
8880	return ""
8881}
8882
8883// OrigErr always returns nil, satisfies awserr.Error interface.
8884func (s *ServiceUnavailableException) OrigErr() error {
8885	return nil
8886}
8887
8888func (s *ServiceUnavailableException) Error() string {
8889	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8890}
8891
8892// Status code returns the HTTP status code for the request's response error.
8893func (s *ServiceUnavailableException) StatusCode() int {
8894	return s.RespMetadata.StatusCode
8895}
8896
8897// RequestID returns the service's response RequestID for request.
8898func (s *ServiceUnavailableException) RequestID() string {
8899	return s.RespMetadata.RequestID
8900}
8901
8902// Provides information about the public Secure Shell (SSH) key that is associated
8903// with a user account for the specific file transfer protocol-enabled server
8904// (as identified by ServerId). The information returned includes the date the
8905// key was imported, the public key contents, and the public key ID. A user
8906// can store more than one SSH public key associated with their user name on
8907// a specific server.
8908type SshPublicKey struct {
8909	_ struct{} `type:"structure"`
8910
8911	// Specifies the date that the public key was added to the user account.
8912	//
8913	// DateImported is a required field
8914	DateImported *time.Time `type:"timestamp" required:"true"`
8915
8916	// Specifies the content of the SSH public key as specified by the PublicKeyId.
8917	//
8918	// SshPublicKeyBody is a required field
8919	SshPublicKeyBody *string `type:"string" required:"true"`
8920
8921	// Specifies the SshPublicKeyId parameter contains the identifier of the public
8922	// key.
8923	//
8924	// SshPublicKeyId is a required field
8925	SshPublicKeyId *string `min:"21" type:"string" required:"true"`
8926}
8927
8928// String returns the string representation
8929func (s SshPublicKey) String() string {
8930	return awsutil.Prettify(s)
8931}
8932
8933// GoString returns the string representation
8934func (s SshPublicKey) GoString() string {
8935	return s.String()
8936}
8937
8938// SetDateImported sets the DateImported field's value.
8939func (s *SshPublicKey) SetDateImported(v time.Time) *SshPublicKey {
8940	s.DateImported = &v
8941	return s
8942}
8943
8944// SetSshPublicKeyBody sets the SshPublicKeyBody field's value.
8945func (s *SshPublicKey) SetSshPublicKeyBody(v string) *SshPublicKey {
8946	s.SshPublicKeyBody = &v
8947	return s
8948}
8949
8950// SetSshPublicKeyId sets the SshPublicKeyId field's value.
8951func (s *SshPublicKey) SetSshPublicKeyId(v string) *SshPublicKey {
8952	s.SshPublicKeyId = &v
8953	return s
8954}
8955
8956type StartServerInput struct {
8957	_ struct{} `type:"structure"`
8958
8959	// A system-assigned unique identifier for a server that you start.
8960	//
8961	// ServerId is a required field
8962	ServerId *string `min:"19" type:"string" required:"true"`
8963}
8964
8965// String returns the string representation
8966func (s StartServerInput) String() string {
8967	return awsutil.Prettify(s)
8968}
8969
8970// GoString returns the string representation
8971func (s StartServerInput) GoString() string {
8972	return s.String()
8973}
8974
8975// Validate inspects the fields of the type to determine if they are valid.
8976func (s *StartServerInput) Validate() error {
8977	invalidParams := request.ErrInvalidParams{Context: "StartServerInput"}
8978	if s.ServerId == nil {
8979		invalidParams.Add(request.NewErrParamRequired("ServerId"))
8980	}
8981	if s.ServerId != nil && len(*s.ServerId) < 19 {
8982		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
8983	}
8984
8985	if invalidParams.Len() > 0 {
8986		return invalidParams
8987	}
8988	return nil
8989}
8990
8991// SetServerId sets the ServerId field's value.
8992func (s *StartServerInput) SetServerId(v string) *StartServerInput {
8993	s.ServerId = &v
8994	return s
8995}
8996
8997type StartServerOutput struct {
8998	_ struct{} `type:"structure"`
8999}
9000
9001// String returns the string representation
9002func (s StartServerOutput) String() string {
9003	return awsutil.Prettify(s)
9004}
9005
9006// GoString returns the string representation
9007func (s StartServerOutput) GoString() string {
9008	return s.String()
9009}
9010
9011type StopServerInput struct {
9012	_ struct{} `type:"structure"`
9013
9014	// A system-assigned unique identifier for a server that you stopped.
9015	//
9016	// ServerId is a required field
9017	ServerId *string `min:"19" type:"string" required:"true"`
9018}
9019
9020// String returns the string representation
9021func (s StopServerInput) String() string {
9022	return awsutil.Prettify(s)
9023}
9024
9025// GoString returns the string representation
9026func (s StopServerInput) GoString() string {
9027	return s.String()
9028}
9029
9030// Validate inspects the fields of the type to determine if they are valid.
9031func (s *StopServerInput) Validate() error {
9032	invalidParams := request.ErrInvalidParams{Context: "StopServerInput"}
9033	if s.ServerId == nil {
9034		invalidParams.Add(request.NewErrParamRequired("ServerId"))
9035	}
9036	if s.ServerId != nil && len(*s.ServerId) < 19 {
9037		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
9038	}
9039
9040	if invalidParams.Len() > 0 {
9041		return invalidParams
9042	}
9043	return nil
9044}
9045
9046// SetServerId sets the ServerId field's value.
9047func (s *StopServerInput) SetServerId(v string) *StopServerInput {
9048	s.ServerId = &v
9049	return s
9050}
9051
9052type StopServerOutput struct {
9053	_ struct{} `type:"structure"`
9054}
9055
9056// String returns the string representation
9057func (s StopServerOutput) String() string {
9058	return awsutil.Prettify(s)
9059}
9060
9061// GoString returns the string representation
9062func (s StopServerOutput) GoString() string {
9063	return s.String()
9064}
9065
9066// Creates a key-value pair for a specific resource. Tags are metadata that
9067// you can use to search for and group a resource for various purposes. You
9068// can apply tags to servers, users, and roles. A tag key can take more than
9069// one value. For example, to group servers for accounting purposes, you might
9070// create a tag called Group and assign the values Research and Accounting to
9071// that group.
9072type Tag struct {
9073	_ struct{} `type:"structure"`
9074
9075	// The name assigned to the tag that you create.
9076	//
9077	// Key is a required field
9078	Key *string `type:"string" required:"true"`
9079
9080	// Contains one or more values that you assigned to the key name you create.
9081	//
9082	// Value is a required field
9083	Value *string `type:"string" required:"true"`
9084}
9085
9086// String returns the string representation
9087func (s Tag) String() string {
9088	return awsutil.Prettify(s)
9089}
9090
9091// GoString returns the string representation
9092func (s Tag) GoString() string {
9093	return s.String()
9094}
9095
9096// Validate inspects the fields of the type to determine if they are valid.
9097func (s *Tag) Validate() error {
9098	invalidParams := request.ErrInvalidParams{Context: "Tag"}
9099	if s.Key == nil {
9100		invalidParams.Add(request.NewErrParamRequired("Key"))
9101	}
9102	if s.Value == nil {
9103		invalidParams.Add(request.NewErrParamRequired("Value"))
9104	}
9105
9106	if invalidParams.Len() > 0 {
9107		return invalidParams
9108	}
9109	return nil
9110}
9111
9112// SetKey sets the Key field's value.
9113func (s *Tag) SetKey(v string) *Tag {
9114	s.Key = &v
9115	return s
9116}
9117
9118// SetValue sets the Value field's value.
9119func (s *Tag) SetValue(v string) *Tag {
9120	s.Value = &v
9121	return s
9122}
9123
9124type TagResourceInput struct {
9125	_ struct{} `type:"structure"`
9126
9127	// An Amazon Resource Name (ARN) for a specific Amazon Web Services resource,
9128	// such as a server, user, or role.
9129	//
9130	// Arn is a required field
9131	Arn *string `min:"20" type:"string" required:"true"`
9132
9133	// Key-value pairs assigned to ARNs that you can use to group and search for
9134	// resources by type. You can attach this metadata to user accounts for any
9135	// purpose.
9136	//
9137	// Tags is a required field
9138	Tags []*Tag `min:"1" type:"list" required:"true"`
9139}
9140
9141// String returns the string representation
9142func (s TagResourceInput) String() string {
9143	return awsutil.Prettify(s)
9144}
9145
9146// GoString returns the string representation
9147func (s TagResourceInput) GoString() string {
9148	return s.String()
9149}
9150
9151// Validate inspects the fields of the type to determine if they are valid.
9152func (s *TagResourceInput) Validate() error {
9153	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
9154	if s.Arn == nil {
9155		invalidParams.Add(request.NewErrParamRequired("Arn"))
9156	}
9157	if s.Arn != nil && len(*s.Arn) < 20 {
9158		invalidParams.Add(request.NewErrParamMinLen("Arn", 20))
9159	}
9160	if s.Tags == nil {
9161		invalidParams.Add(request.NewErrParamRequired("Tags"))
9162	}
9163	if s.Tags != nil && len(s.Tags) < 1 {
9164		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
9165	}
9166	if s.Tags != nil {
9167		for i, v := range s.Tags {
9168			if v == nil {
9169				continue
9170			}
9171			if err := v.Validate(); err != nil {
9172				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9173			}
9174		}
9175	}
9176
9177	if invalidParams.Len() > 0 {
9178		return invalidParams
9179	}
9180	return nil
9181}
9182
9183// SetArn sets the Arn field's value.
9184func (s *TagResourceInput) SetArn(v string) *TagResourceInput {
9185	s.Arn = &v
9186	return s
9187}
9188
9189// SetTags sets the Tags field's value.
9190func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
9191	s.Tags = v
9192	return s
9193}
9194
9195type TagResourceOutput struct {
9196	_ struct{} `type:"structure"`
9197}
9198
9199// String returns the string representation
9200func (s TagResourceOutput) String() string {
9201	return awsutil.Prettify(s)
9202}
9203
9204// GoString returns the string representation
9205func (s TagResourceOutput) GoString() string {
9206	return s.String()
9207}
9208
9209// Each step type has its own StepDetails structure.
9210//
9211// The key/value pairs used to tag a file during the execution of a workflow
9212// step.
9213type TagStepDetails struct {
9214	_ struct{} `type:"structure"`
9215
9216	// The name of the step, used as an identifier.
9217	Name *string `type:"string"`
9218
9219	// Array that contains from 1 to 10 key/value pairs.
9220	Tags []*S3Tag `min:"1" type:"list"`
9221}
9222
9223// String returns the string representation
9224func (s TagStepDetails) String() string {
9225	return awsutil.Prettify(s)
9226}
9227
9228// GoString returns the string representation
9229func (s TagStepDetails) GoString() string {
9230	return s.String()
9231}
9232
9233// Validate inspects the fields of the type to determine if they are valid.
9234func (s *TagStepDetails) Validate() error {
9235	invalidParams := request.ErrInvalidParams{Context: "TagStepDetails"}
9236	if s.Tags != nil && len(s.Tags) < 1 {
9237		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
9238	}
9239	if s.Tags != nil {
9240		for i, v := range s.Tags {
9241			if v == nil {
9242				continue
9243			}
9244			if err := v.Validate(); err != nil {
9245				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9246			}
9247		}
9248	}
9249
9250	if invalidParams.Len() > 0 {
9251		return invalidParams
9252	}
9253	return nil
9254}
9255
9256// SetName sets the Name field's value.
9257func (s *TagStepDetails) SetName(v string) *TagStepDetails {
9258	s.Name = &v
9259	return s
9260}
9261
9262// SetTags sets the Tags field's value.
9263func (s *TagStepDetails) SetTags(v []*S3Tag) *TagStepDetails {
9264	s.Tags = v
9265	return s
9266}
9267
9268type TestIdentityProviderInput struct {
9269	_ struct{} `type:"structure"`
9270
9271	// A system-assigned identifier for a specific server. That server's user authentication
9272	// method is tested with a user name and password.
9273	//
9274	// ServerId is a required field
9275	ServerId *string `min:"19" type:"string" required:"true"`
9276
9277	// The type of file transfer protocol to be tested.
9278	//
9279	// The available protocols are:
9280	//
9281	//    * Secure Shell (SSH) File Transfer Protocol (SFTP)
9282	//
9283	//    * File Transfer Protocol Secure (FTPS)
9284	//
9285	//    * File Transfer Protocol (FTP)
9286	ServerProtocol *string `type:"string" enum:"Protocol"`
9287
9288	// The source IP address of the user account to be tested.
9289	SourceIp *string `type:"string"`
9290
9291	// The name of the user account to be tested.
9292	//
9293	// UserName is a required field
9294	UserName *string `min:"3" type:"string" required:"true"`
9295
9296	// The password of the user account to be tested.
9297	UserPassword *string `type:"string" sensitive:"true"`
9298}
9299
9300// String returns the string representation
9301func (s TestIdentityProviderInput) String() string {
9302	return awsutil.Prettify(s)
9303}
9304
9305// GoString returns the string representation
9306func (s TestIdentityProviderInput) GoString() string {
9307	return s.String()
9308}
9309
9310// Validate inspects the fields of the type to determine if they are valid.
9311func (s *TestIdentityProviderInput) Validate() error {
9312	invalidParams := request.ErrInvalidParams{Context: "TestIdentityProviderInput"}
9313	if s.ServerId == nil {
9314		invalidParams.Add(request.NewErrParamRequired("ServerId"))
9315	}
9316	if s.ServerId != nil && len(*s.ServerId) < 19 {
9317		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
9318	}
9319	if s.UserName == nil {
9320		invalidParams.Add(request.NewErrParamRequired("UserName"))
9321	}
9322	if s.UserName != nil && len(*s.UserName) < 3 {
9323		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
9324	}
9325
9326	if invalidParams.Len() > 0 {
9327		return invalidParams
9328	}
9329	return nil
9330}
9331
9332// SetServerId sets the ServerId field's value.
9333func (s *TestIdentityProviderInput) SetServerId(v string) *TestIdentityProviderInput {
9334	s.ServerId = &v
9335	return s
9336}
9337
9338// SetServerProtocol sets the ServerProtocol field's value.
9339func (s *TestIdentityProviderInput) SetServerProtocol(v string) *TestIdentityProviderInput {
9340	s.ServerProtocol = &v
9341	return s
9342}
9343
9344// SetSourceIp sets the SourceIp field's value.
9345func (s *TestIdentityProviderInput) SetSourceIp(v string) *TestIdentityProviderInput {
9346	s.SourceIp = &v
9347	return s
9348}
9349
9350// SetUserName sets the UserName field's value.
9351func (s *TestIdentityProviderInput) SetUserName(v string) *TestIdentityProviderInput {
9352	s.UserName = &v
9353	return s
9354}
9355
9356// SetUserPassword sets the UserPassword field's value.
9357func (s *TestIdentityProviderInput) SetUserPassword(v string) *TestIdentityProviderInput {
9358	s.UserPassword = &v
9359	return s
9360}
9361
9362type TestIdentityProviderOutput struct {
9363	_ struct{} `type:"structure"`
9364
9365	// A message that indicates whether the test was successful or not.
9366	Message *string `type:"string"`
9367
9368	// The response that is returned from your API Gateway.
9369	Response *string `type:"string"`
9370
9371	// The HTTP status code that is the response from your API Gateway.
9372	//
9373	// StatusCode is a required field
9374	StatusCode *int64 `type:"integer" required:"true"`
9375
9376	// The endpoint of the service used to authenticate a user.
9377	//
9378	// Url is a required field
9379	Url *string `type:"string" required:"true"`
9380}
9381
9382// String returns the string representation
9383func (s TestIdentityProviderOutput) String() string {
9384	return awsutil.Prettify(s)
9385}
9386
9387// GoString returns the string representation
9388func (s TestIdentityProviderOutput) GoString() string {
9389	return s.String()
9390}
9391
9392// SetMessage sets the Message field's value.
9393func (s *TestIdentityProviderOutput) SetMessage(v string) *TestIdentityProviderOutput {
9394	s.Message = &v
9395	return s
9396}
9397
9398// SetResponse sets the Response field's value.
9399func (s *TestIdentityProviderOutput) SetResponse(v string) *TestIdentityProviderOutput {
9400	s.Response = &v
9401	return s
9402}
9403
9404// SetStatusCode sets the StatusCode field's value.
9405func (s *TestIdentityProviderOutput) SetStatusCode(v int64) *TestIdentityProviderOutput {
9406	s.StatusCode = &v
9407	return s
9408}
9409
9410// SetUrl sets the Url field's value.
9411func (s *TestIdentityProviderOutput) SetUrl(v string) *TestIdentityProviderOutput {
9412	s.Url = &v
9413	return s
9414}
9415
9416// The request was denied due to request throttling.
9417//
9418// HTTP Status Code: 400
9419type ThrottlingException struct {
9420	_            struct{}                  `type:"structure"`
9421	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9422
9423	Message_ *string `locationName:"message" type:"string"`
9424
9425	RetryAfterSeconds *string `type:"string"`
9426}
9427
9428// String returns the string representation
9429func (s ThrottlingException) String() string {
9430	return awsutil.Prettify(s)
9431}
9432
9433// GoString returns the string representation
9434func (s ThrottlingException) GoString() string {
9435	return s.String()
9436}
9437
9438func newErrorThrottlingException(v protocol.ResponseMetadata) error {
9439	return &ThrottlingException{
9440		RespMetadata: v,
9441	}
9442}
9443
9444// Code returns the exception type name.
9445func (s *ThrottlingException) Code() string {
9446	return "ThrottlingException"
9447}
9448
9449// Message returns the exception's message.
9450func (s *ThrottlingException) Message() string {
9451	if s.Message_ != nil {
9452		return *s.Message_
9453	}
9454	return ""
9455}
9456
9457// OrigErr always returns nil, satisfies awserr.Error interface.
9458func (s *ThrottlingException) OrigErr() error {
9459	return nil
9460}
9461
9462func (s *ThrottlingException) Error() string {
9463	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
9464}
9465
9466// Status code returns the HTTP status code for the request's response error.
9467func (s *ThrottlingException) StatusCode() int {
9468	return s.RespMetadata.StatusCode
9469}
9470
9471// RequestID returns the service's response RequestID for request.
9472func (s *ThrottlingException) RequestID() string {
9473	return s.RespMetadata.RequestID
9474}
9475
9476type UntagResourceInput struct {
9477	_ struct{} `type:"structure"`
9478
9479	// The value of the resource that will have the tag removed. An Amazon Resource
9480	// Name (ARN) is an identifier for a specific Amazon Web Services resource,
9481	// such as a server, user, or role.
9482	//
9483	// Arn is a required field
9484	Arn *string `min:"20" type:"string" required:"true"`
9485
9486	// TagKeys are key-value pairs assigned to ARNs that can be used to group and
9487	// search for resources by type. This metadata can be attached to resources
9488	// for any purpose.
9489	//
9490	// TagKeys is a required field
9491	TagKeys []*string `min:"1" type:"list" required:"true"`
9492}
9493
9494// String returns the string representation
9495func (s UntagResourceInput) String() string {
9496	return awsutil.Prettify(s)
9497}
9498
9499// GoString returns the string representation
9500func (s UntagResourceInput) GoString() string {
9501	return s.String()
9502}
9503
9504// Validate inspects the fields of the type to determine if they are valid.
9505func (s *UntagResourceInput) Validate() error {
9506	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
9507	if s.Arn == nil {
9508		invalidParams.Add(request.NewErrParamRequired("Arn"))
9509	}
9510	if s.Arn != nil && len(*s.Arn) < 20 {
9511		invalidParams.Add(request.NewErrParamMinLen("Arn", 20))
9512	}
9513	if s.TagKeys == nil {
9514		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
9515	}
9516	if s.TagKeys != nil && len(s.TagKeys) < 1 {
9517		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
9518	}
9519
9520	if invalidParams.Len() > 0 {
9521		return invalidParams
9522	}
9523	return nil
9524}
9525
9526// SetArn sets the Arn field's value.
9527func (s *UntagResourceInput) SetArn(v string) *UntagResourceInput {
9528	s.Arn = &v
9529	return s
9530}
9531
9532// SetTagKeys sets the TagKeys field's value.
9533func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
9534	s.TagKeys = v
9535	return s
9536}
9537
9538type UntagResourceOutput struct {
9539	_ struct{} `type:"structure"`
9540}
9541
9542// String returns the string representation
9543func (s UntagResourceOutput) String() string {
9544	return awsutil.Prettify(s)
9545}
9546
9547// GoString returns the string representation
9548func (s UntagResourceOutput) GoString() string {
9549	return s.String()
9550}
9551
9552type UpdateAccessInput struct {
9553	_ struct{} `type:"structure"`
9554
9555	// A unique identifier that is required to identify specific groups within your
9556	// directory. The users of the group that you associate have access to your
9557	// Amazon S3 or Amazon EFS resources over the enabled protocols using Amazon
9558	// Web Services Transfer Family. If you know the group name, you can view the
9559	// SID values by running the following command using Windows PowerShell.
9560	//
9561	// Get-ADGroup -Filter {samAccountName -like "YourGroupName*"} -Properties *
9562	// | Select SamAccountName,ObjectSid
9563	//
9564	// In that command, replace YourGroupName with the name of your Active Directory
9565	// group.
9566	//
9567	// The regex used to validate this parameter is a string of characters consisting
9568	// of uppercase and lowercase alphanumeric characters with no spaces. You can
9569	// also include underscores or any of the following characters: =,.@:/-
9570	//
9571	// ExternalId is a required field
9572	ExternalId *string `min:"1" type:"string" required:"true"`
9573
9574	// The landing directory (folder) for a user when they log in to the server
9575	// using the client.
9576	//
9577	// A HomeDirectory example is /bucket_name/home/mydirectory.
9578	HomeDirectory *string `type:"string"`
9579
9580	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
9581	// and keys should be visible to your user and how you want to make them visible.
9582	// You must specify the Entry and Target pair, where Entry shows how the path
9583	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
9584	// you only specify a target, it is displayed as is. You also must ensure that
9585	// your Amazon Web Services Identity and Access Management (IAM) role provides
9586	// access to paths in Target. This value can only be set when HomeDirectoryType
9587	// is set to LOGICAL.
9588	//
9589	// The following is an Entry and Target pair example.
9590	//
9591	// [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf"
9592	// } ]
9593	//
9594	// In most cases, you can use this value instead of the session policy to lock
9595	// down your user to the designated home directory ("chroot"). To do this, you
9596	// can set Entry to / and set Target to the HomeDirectory parameter value.
9597	//
9598	// The following is an Entry and Target pair example for chroot.
9599	//
9600	// [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]
9601	//
9602	// If the target of a logical directory entry does not exist in Amazon S3 or
9603	// EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API
9604	// or EFS API to create 0 byte objects as place holders for your directory.
9605	// If using the CLI, use the s3api or efsapi call instead of s3 or efs so you
9606	// can use the put-object operation. For example, you use the following: aws
9607	// s3api put-object --bucket bucketname --key path/to/folder/. Make sure that
9608	// the end of the key name ends in a / for it to be considered a folder.
9609	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
9610
9611	// The type of landing directory (folder) you want your users' home directory
9612	// to be when they log into the server. If you set it to PATH, the user will
9613	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
9614	// protocol clients. If you set it LOGICAL, you need to provide mappings in
9615	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
9616	// visible to your users.
9617	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
9618
9619	// A session policy for your user so that you can use the same IAM role across
9620	// multiple users. This policy scopes down user access to portions of their
9621	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
9622	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
9623	//
9624	// This only applies when the domain of ServerId is S3. EFS does not use session
9625	// policies.
9626	//
9627	// For session policies, Amazon Web Services Transfer Family stores the policy
9628	// as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
9629	// You save the policy as a JSON blob and pass it in the Policy argument.
9630	//
9631	// For an example of a session policy, see Example session policy (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy.html).
9632	//
9633	// For more information, see AssumeRole (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
9634	// in the Amazon Web ServicesSecurity Token Service API Reference.
9635	Policy *string `type:"string"`
9636
9637	// The full POSIX identity, including user ID (Uid), group ID (Gid), and any
9638	// secondary groups IDs (SecondaryGids), that controls your users' access to
9639	// your Amazon EFS file systems. The POSIX permissions that are set on files
9640	// and directories in your file system determine the level of access your users
9641	// get when transferring files into and out of your Amazon EFS file systems.
9642	PosixProfile *PosixProfile `type:"structure"`
9643
9644	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
9645	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
9646	// to this role determine the level of access that you want to provide your
9647	// users when transferring files into and out of your Amazon S3 bucket or EFS
9648	// file system. The IAM role should also contain a trust relationship that allows
9649	// the server to access your resources when servicing your users' transfer requests.
9650	Role *string `min:"20" type:"string"`
9651
9652	// A system-assigned unique identifier for a server instance. This is the specific
9653	// server that you added your user to.
9654	//
9655	// ServerId is a required field
9656	ServerId *string `min:"19" type:"string" required:"true"`
9657}
9658
9659// String returns the string representation
9660func (s UpdateAccessInput) String() string {
9661	return awsutil.Prettify(s)
9662}
9663
9664// GoString returns the string representation
9665func (s UpdateAccessInput) GoString() string {
9666	return s.String()
9667}
9668
9669// Validate inspects the fields of the type to determine if they are valid.
9670func (s *UpdateAccessInput) Validate() error {
9671	invalidParams := request.ErrInvalidParams{Context: "UpdateAccessInput"}
9672	if s.ExternalId == nil {
9673		invalidParams.Add(request.NewErrParamRequired("ExternalId"))
9674	}
9675	if s.ExternalId != nil && len(*s.ExternalId) < 1 {
9676		invalidParams.Add(request.NewErrParamMinLen("ExternalId", 1))
9677	}
9678	if s.HomeDirectoryMappings != nil && len(s.HomeDirectoryMappings) < 1 {
9679		invalidParams.Add(request.NewErrParamMinLen("HomeDirectoryMappings", 1))
9680	}
9681	if s.Role != nil && len(*s.Role) < 20 {
9682		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
9683	}
9684	if s.ServerId == nil {
9685		invalidParams.Add(request.NewErrParamRequired("ServerId"))
9686	}
9687	if s.ServerId != nil && len(*s.ServerId) < 19 {
9688		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
9689	}
9690	if s.HomeDirectoryMappings != nil {
9691		for i, v := range s.HomeDirectoryMappings {
9692			if v == nil {
9693				continue
9694			}
9695			if err := v.Validate(); err != nil {
9696				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HomeDirectoryMappings", i), err.(request.ErrInvalidParams))
9697			}
9698		}
9699	}
9700	if s.PosixProfile != nil {
9701		if err := s.PosixProfile.Validate(); err != nil {
9702			invalidParams.AddNested("PosixProfile", err.(request.ErrInvalidParams))
9703		}
9704	}
9705
9706	if invalidParams.Len() > 0 {
9707		return invalidParams
9708	}
9709	return nil
9710}
9711
9712// SetExternalId sets the ExternalId field's value.
9713func (s *UpdateAccessInput) SetExternalId(v string) *UpdateAccessInput {
9714	s.ExternalId = &v
9715	return s
9716}
9717
9718// SetHomeDirectory sets the HomeDirectory field's value.
9719func (s *UpdateAccessInput) SetHomeDirectory(v string) *UpdateAccessInput {
9720	s.HomeDirectory = &v
9721	return s
9722}
9723
9724// SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
9725func (s *UpdateAccessInput) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *UpdateAccessInput {
9726	s.HomeDirectoryMappings = v
9727	return s
9728}
9729
9730// SetHomeDirectoryType sets the HomeDirectoryType field's value.
9731func (s *UpdateAccessInput) SetHomeDirectoryType(v string) *UpdateAccessInput {
9732	s.HomeDirectoryType = &v
9733	return s
9734}
9735
9736// SetPolicy sets the Policy field's value.
9737func (s *UpdateAccessInput) SetPolicy(v string) *UpdateAccessInput {
9738	s.Policy = &v
9739	return s
9740}
9741
9742// SetPosixProfile sets the PosixProfile field's value.
9743func (s *UpdateAccessInput) SetPosixProfile(v *PosixProfile) *UpdateAccessInput {
9744	s.PosixProfile = v
9745	return s
9746}
9747
9748// SetRole sets the Role field's value.
9749func (s *UpdateAccessInput) SetRole(v string) *UpdateAccessInput {
9750	s.Role = &v
9751	return s
9752}
9753
9754// SetServerId sets the ServerId field's value.
9755func (s *UpdateAccessInput) SetServerId(v string) *UpdateAccessInput {
9756	s.ServerId = &v
9757	return s
9758}
9759
9760type UpdateAccessOutput struct {
9761	_ struct{} `type:"structure"`
9762
9763	// The external ID of the group whose users have access to your Amazon S3 or
9764	// Amazon EFS resources over the enabled protocols using Amazon Web ServicesTransfer
9765	// Family.
9766	//
9767	// ExternalId is a required field
9768	ExternalId *string `min:"1" type:"string" required:"true"`
9769
9770	// The ID of the server that the user is attached to.
9771	//
9772	// ServerId is a required field
9773	ServerId *string `min:"19" type:"string" required:"true"`
9774}
9775
9776// String returns the string representation
9777func (s UpdateAccessOutput) String() string {
9778	return awsutil.Prettify(s)
9779}
9780
9781// GoString returns the string representation
9782func (s UpdateAccessOutput) GoString() string {
9783	return s.String()
9784}
9785
9786// SetExternalId sets the ExternalId field's value.
9787func (s *UpdateAccessOutput) SetExternalId(v string) *UpdateAccessOutput {
9788	s.ExternalId = &v
9789	return s
9790}
9791
9792// SetServerId sets the ServerId field's value.
9793func (s *UpdateAccessOutput) SetServerId(v string) *UpdateAccessOutput {
9794	s.ServerId = &v
9795	return s
9796}
9797
9798type UpdateServerInput struct {
9799	_ struct{} `type:"structure"`
9800
9801	// The Amazon Resource Name (ARN) of the Amazon Web ServicesCertificate Manager
9802	// (ACM) certificate. Required when Protocols is set to FTPS.
9803	//
9804	// To request a new public certificate, see Request a public certificate (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-public.html)
9805	// in the Amazon Web ServicesCertificate Manager User Guide.
9806	//
9807	// To import an existing certificate into ACM, see Importing certificates into
9808	// ACM (https://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html)
9809	// in the Amazon Web ServicesCertificate Manager User Guide.
9810	//
9811	// To request a private certificate to use FTPS through private IP addresses,
9812	// see Request a private certificate (https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html)
9813	// in the Amazon Web ServicesCertificate Manager User Guide.
9814	//
9815	// Certificates with the following cryptographic algorithms and key sizes are
9816	// supported:
9817	//
9818	//    * 2048-bit RSA (RSA_2048)
9819	//
9820	//    * 4096-bit RSA (RSA_4096)
9821	//
9822	//    * Elliptic Prime Curve 256 bit (EC_prime256v1)
9823	//
9824	//    * Elliptic Prime Curve 384 bit (EC_secp384r1)
9825	//
9826	//    * Elliptic Prime Curve 521 bit (EC_secp521r1)
9827	//
9828	// The certificate must be a valid SSL/TLS X.509 version 3 certificate with
9829	// FQDN or IP address specified and information about the issuer.
9830	Certificate *string `type:"string"`
9831
9832	// The virtual private cloud (VPC) endpoint settings that are configured for
9833	// your server. When you host your endpoint within your VPC, you can make it
9834	// accessible only to resources within your VPC, or you can attach Elastic IP
9835	// addresses and make it accessible to clients over the internet. Your VPC's
9836	// default security groups are automatically assigned to your endpoint.
9837	EndpointDetails *EndpointDetails `type:"structure"`
9838
9839	// The type of endpoint that you want your server to use. You can choose to
9840	// make your server's endpoint publicly accessible (PUBLIC) or host it inside
9841	// your VPC. With an endpoint that is hosted in a VPC, you can restrict access
9842	// to your server and resources only within your VPC or choose to make it internet
9843	// facing by attaching Elastic IP addresses directly to it.
9844	//
9845	// After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT
9846	// in your Amazon Web Servicesaccount if your account hasn't already done so
9847	// before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT
9848	// in your Amazon Web Servicesaccount on or before May 19, 2021, you will not
9849	// be affected. After this date, use EndpointType=VPC.
9850	//
9851	// For more information, see https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.
9852	//
9853	// It is recommended that you use VPC as the EndpointType. With this endpoint
9854	// type, you have the option to directly associate up to three Elastic IPv4
9855	// addresses (BYO IP included) with your server's endpoint and use VPC security
9856	// groups to restrict traffic by the client's public IP address. This is not
9857	// possible with EndpointType set to VPC_ENDPOINT.
9858	EndpointType *string `type:"string" enum:"EndpointType"`
9859
9860	// The RSA private key as generated by ssh-keygen -N "" -m PEM -f my-new-server-key.
9861	//
9862	// If you aren't planning to migrate existing users from an existing server
9863	// to a new server, don't update the host key. Accidentally changing a server's
9864	// host key can be disruptive.
9865	//
9866	// For more information, see Change the host key for your SFTP-enabled server
9867	// (https://docs.aws.amazon.com/transfer/latest/userguide/edit-server-config.html#configuring-servers-change-host-key)
9868	// in the Amazon Web ServicesTransfer Family User Guide.
9869	HostKey *string `type:"string" sensitive:"true"`
9870
9871	// An array containing all of the information required to call a customer's
9872	// authentication API method.
9873	IdentityProviderDetails *IdentityProviderDetails `type:"structure"`
9874
9875	// Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity
9876	// and Access Management (IAM) role that allows a server to turn on Amazon CloudWatch
9877	// logging for Amazon S3 or Amazon EFS events. When set, user activity can be
9878	// viewed in your CloudWatch logs.
9879	LoggingRole *string `type:"string"`
9880
9881	// The protocol settings that are configured for your server.
9882	//
9883	// Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).
9884	// Enter a single dotted-quad IPv4 address, such as the external IP address
9885	// of a firewall, router, or load balancer.
9886	ProtocolDetails *ProtocolDetails `type:"structure"`
9887
9888	// Specifies the file transfer protocol or protocols over which your file transfer
9889	// protocol client can connect to your server's endpoint. The available protocols
9890	// are:
9891	//
9892	//    * Secure Shell (SSH) File Transfer Protocol (SFTP): File transfer over
9893	//    SSH
9894	//
9895	//    * File Transfer Protocol Secure (FTPS): File transfer with TLS encryption
9896	//
9897	//    * File Transfer Protocol (FTP): Unencrypted file transfer
9898	//
9899	// If you select FTPS, you must choose a certificate stored in Amazon Web ServicesCertificate
9900	// Manager (ACM) which will be used to identify your server when clients connect
9901	// to it over FTPS.
9902	//
9903	// If Protocol includes either FTP or FTPS, then the EndpointType must be VPC
9904	// and the IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.
9905	//
9906	// If Protocol includes FTP, then AddressAllocationIds cannot be associated.
9907	//
9908	// If Protocol is set only to SFTP, the EndpointType can be set to PUBLIC and
9909	// the IdentityProviderType can be set to SERVICE_MANAGED.
9910	Protocols []*string `min:"1" type:"list"`
9911
9912	// Specifies the name of the security policy that is attached to the server.
9913	SecurityPolicyName *string `type:"string"`
9914
9915	// A system-assigned unique identifier for a server instance that the user account
9916	// is assigned to.
9917	//
9918	// ServerId is a required field
9919	ServerId *string `min:"19" type:"string" required:"true"`
9920
9921	// Specifies the workflow ID for the workflow to assign and the execution role
9922	// used for executing the workflow.
9923	WorkflowDetails *WorkflowDetails `type:"structure"`
9924}
9925
9926// String returns the string representation
9927func (s UpdateServerInput) String() string {
9928	return awsutil.Prettify(s)
9929}
9930
9931// GoString returns the string representation
9932func (s UpdateServerInput) GoString() string {
9933	return s.String()
9934}
9935
9936// Validate inspects the fields of the type to determine if they are valid.
9937func (s *UpdateServerInput) Validate() error {
9938	invalidParams := request.ErrInvalidParams{Context: "UpdateServerInput"}
9939	if s.Protocols != nil && len(s.Protocols) < 1 {
9940		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
9941	}
9942	if s.ServerId == nil {
9943		invalidParams.Add(request.NewErrParamRequired("ServerId"))
9944	}
9945	if s.ServerId != nil && len(*s.ServerId) < 19 {
9946		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
9947	}
9948	if s.EndpointDetails != nil {
9949		if err := s.EndpointDetails.Validate(); err != nil {
9950			invalidParams.AddNested("EndpointDetails", err.(request.ErrInvalidParams))
9951		}
9952	}
9953	if s.IdentityProviderDetails != nil {
9954		if err := s.IdentityProviderDetails.Validate(); err != nil {
9955			invalidParams.AddNested("IdentityProviderDetails", err.(request.ErrInvalidParams))
9956		}
9957	}
9958	if s.WorkflowDetails != nil {
9959		if err := s.WorkflowDetails.Validate(); err != nil {
9960			invalidParams.AddNested("WorkflowDetails", err.(request.ErrInvalidParams))
9961		}
9962	}
9963
9964	if invalidParams.Len() > 0 {
9965		return invalidParams
9966	}
9967	return nil
9968}
9969
9970// SetCertificate sets the Certificate field's value.
9971func (s *UpdateServerInput) SetCertificate(v string) *UpdateServerInput {
9972	s.Certificate = &v
9973	return s
9974}
9975
9976// SetEndpointDetails sets the EndpointDetails field's value.
9977func (s *UpdateServerInput) SetEndpointDetails(v *EndpointDetails) *UpdateServerInput {
9978	s.EndpointDetails = v
9979	return s
9980}
9981
9982// SetEndpointType sets the EndpointType field's value.
9983func (s *UpdateServerInput) SetEndpointType(v string) *UpdateServerInput {
9984	s.EndpointType = &v
9985	return s
9986}
9987
9988// SetHostKey sets the HostKey field's value.
9989func (s *UpdateServerInput) SetHostKey(v string) *UpdateServerInput {
9990	s.HostKey = &v
9991	return s
9992}
9993
9994// SetIdentityProviderDetails sets the IdentityProviderDetails field's value.
9995func (s *UpdateServerInput) SetIdentityProviderDetails(v *IdentityProviderDetails) *UpdateServerInput {
9996	s.IdentityProviderDetails = v
9997	return s
9998}
9999
10000// SetLoggingRole sets the LoggingRole field's value.
10001func (s *UpdateServerInput) SetLoggingRole(v string) *UpdateServerInput {
10002	s.LoggingRole = &v
10003	return s
10004}
10005
10006// SetProtocolDetails sets the ProtocolDetails field's value.
10007func (s *UpdateServerInput) SetProtocolDetails(v *ProtocolDetails) *UpdateServerInput {
10008	s.ProtocolDetails = v
10009	return s
10010}
10011
10012// SetProtocols sets the Protocols field's value.
10013func (s *UpdateServerInput) SetProtocols(v []*string) *UpdateServerInput {
10014	s.Protocols = v
10015	return s
10016}
10017
10018// SetSecurityPolicyName sets the SecurityPolicyName field's value.
10019func (s *UpdateServerInput) SetSecurityPolicyName(v string) *UpdateServerInput {
10020	s.SecurityPolicyName = &v
10021	return s
10022}
10023
10024// SetServerId sets the ServerId field's value.
10025func (s *UpdateServerInput) SetServerId(v string) *UpdateServerInput {
10026	s.ServerId = &v
10027	return s
10028}
10029
10030// SetWorkflowDetails sets the WorkflowDetails field's value.
10031func (s *UpdateServerInput) SetWorkflowDetails(v *WorkflowDetails) *UpdateServerInput {
10032	s.WorkflowDetails = v
10033	return s
10034}
10035
10036type UpdateServerOutput struct {
10037	_ struct{} `type:"structure"`
10038
10039	// A system-assigned unique identifier for a server that the user account is
10040	// assigned to.
10041	//
10042	// ServerId is a required field
10043	ServerId *string `min:"19" type:"string" required:"true"`
10044}
10045
10046// String returns the string representation
10047func (s UpdateServerOutput) String() string {
10048	return awsutil.Prettify(s)
10049}
10050
10051// GoString returns the string representation
10052func (s UpdateServerOutput) GoString() string {
10053	return s.String()
10054}
10055
10056// SetServerId sets the ServerId field's value.
10057func (s *UpdateServerOutput) SetServerId(v string) *UpdateServerOutput {
10058	s.ServerId = &v
10059	return s
10060}
10061
10062type UpdateUserInput struct {
10063	_ struct{} `type:"structure"`
10064
10065	// The landing directory (folder) for a user when they log in to the server
10066	// using the client.
10067	//
10068	// A HomeDirectory example is /bucket_name/home/mydirectory.
10069	HomeDirectory *string `type:"string"`
10070
10071	// Logical directory mappings that specify what Amazon S3 or Amazon EFS paths
10072	// and keys should be visible to your user and how you want to make them visible.
10073	// You must specify the Entry and Target pair, where Entry shows how the path
10074	// is made visible and Target is the actual Amazon S3 or Amazon EFS path. If
10075	// you only specify a target, it is displayed as is. You also must ensure that
10076	// your Amazon Web Services Identity and Access Management (IAM) role provides
10077	// access to paths in Target. This value can only be set when HomeDirectoryType
10078	// is set to LOGICAL.
10079	//
10080	// The following is an Entry and Target pair example.
10081	//
10082	// [ { "Entry": "your-personal-report.pdf", "Target": "/bucket3/customized-reports/${transfer:UserName}.pdf"
10083	// } ]
10084	//
10085	// In most cases, you can use this value instead of the session policy to lock
10086	// down your user to the designated home directory ("chroot"). To do this, you
10087	// can set Entry to '/' and set Target to the HomeDirectory parameter value.
10088	//
10089	// The following is an Entry and Target pair example for chroot.
10090	//
10091	// [ { "Entry:": "/", "Target": "/bucket_name/home/mydirectory" } ]
10092	//
10093	// If the target of a logical directory entry does not exist in Amazon S3 or
10094	// EFS, the entry is ignored. As a workaround, you can use the Amazon S3 API
10095	// or EFS API to create 0 byte objects as place holders for your directory.
10096	// If using the CLI, use the s3api or efsapi call instead of s3 or efs so you
10097	// can use the put-object operation. For example, you use the following: aws
10098	// s3api put-object --bucket bucketname --key path/to/folder/. Make sure that
10099	// the end of the key name ends in a / for it to be considered a folder.
10100	HomeDirectoryMappings []*HomeDirectoryMapEntry `min:"1" type:"list"`
10101
10102	// The type of landing directory (folder) you want your users' home directory
10103	// to be when they log into the server. If you set it to PATH, the user will
10104	// see the absolute Amazon S3 bucket or EFS paths as is in their file transfer
10105	// protocol clients. If you set it LOGICAL, you need to provide mappings in
10106	// the HomeDirectoryMappings for how you want to make Amazon S3 or EFS paths
10107	// visible to your users.
10108	HomeDirectoryType *string `type:"string" enum:"HomeDirectoryType"`
10109
10110	// A session policy for your user so that you can use the same IAM role across
10111	// multiple users. This policy scopes down user access to portions of their
10112	// Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},
10113	// ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.
10114	//
10115	// This only applies when the domain of ServerId is S3. EFS does not use session
10116	// policies.
10117	//
10118	// For session policies, Amazon Web Services Transfer Family stores the policy
10119	// as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy.
10120	// You save the policy as a JSON blob and pass it in the Policy argument.
10121	//
10122	// For an example of a session policy, see Creating a session policy (https://docs.aws.amazon.com/transfer/latest/userguide/session-policy).
10123	//
10124	// For more information, see AssumeRole (https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)
10125	// in the Amazon Web Services Security Token Service API Reference.
10126	Policy *string `type:"string"`
10127
10128	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid),
10129	// and any secondary groups IDs (SecondaryGids), that controls your users' access
10130	// to your Amazon Elastic File Systems (Amazon EFS). The POSIX permissions that
10131	// are set on files and directories in your file system determines the level
10132	// of access your users get when transferring files into and out of your Amazon
10133	// EFS file systems.
10134	PosixProfile *PosixProfile `type:"structure"`
10135
10136	// Specifies the Amazon Resource Name (ARN) of the IAM role that controls your
10137	// users' access to your Amazon S3 bucket or EFS file system. The policies attached
10138	// to this role determine the level of access that you want to provide your
10139	// users when transferring files into and out of your Amazon S3 bucket or EFS
10140	// file system. The IAM role should also contain a trust relationship that allows
10141	// the server to access your resources when servicing your users' transfer requests.
10142	Role *string `min:"20" type:"string"`
10143
10144	// A system-assigned unique identifier for a server instance that the user account
10145	// is assigned to.
10146	//
10147	// ServerId is a required field
10148	ServerId *string `min:"19" type:"string" required:"true"`
10149
10150	// A unique string that identifies a user and is associated with a server as
10151	// specified by the ServerId. This user name must be a minimum of 3 and a maximum
10152	// of 100 characters long. The following are valid characters: a-z, A-Z, 0-9,
10153	// underscore '_', hyphen '-', period '.', and at sign '@'. The user name can't
10154	// start with a hyphen, period, or at sign.
10155	//
10156	// UserName is a required field
10157	UserName *string `min:"3" type:"string" required:"true"`
10158}
10159
10160// String returns the string representation
10161func (s UpdateUserInput) String() string {
10162	return awsutil.Prettify(s)
10163}
10164
10165// GoString returns the string representation
10166func (s UpdateUserInput) GoString() string {
10167	return s.String()
10168}
10169
10170// Validate inspects the fields of the type to determine if they are valid.
10171func (s *UpdateUserInput) Validate() error {
10172	invalidParams := request.ErrInvalidParams{Context: "UpdateUserInput"}
10173	if s.HomeDirectoryMappings != nil && len(s.HomeDirectoryMappings) < 1 {
10174		invalidParams.Add(request.NewErrParamMinLen("HomeDirectoryMappings", 1))
10175	}
10176	if s.Role != nil && len(*s.Role) < 20 {
10177		invalidParams.Add(request.NewErrParamMinLen("Role", 20))
10178	}
10179	if s.ServerId == nil {
10180		invalidParams.Add(request.NewErrParamRequired("ServerId"))
10181	}
10182	if s.ServerId != nil && len(*s.ServerId) < 19 {
10183		invalidParams.Add(request.NewErrParamMinLen("ServerId", 19))
10184	}
10185	if s.UserName == nil {
10186		invalidParams.Add(request.NewErrParamRequired("UserName"))
10187	}
10188	if s.UserName != nil && len(*s.UserName) < 3 {
10189		invalidParams.Add(request.NewErrParamMinLen("UserName", 3))
10190	}
10191	if s.HomeDirectoryMappings != nil {
10192		for i, v := range s.HomeDirectoryMappings {
10193			if v == nil {
10194				continue
10195			}
10196			if err := v.Validate(); err != nil {
10197				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "HomeDirectoryMappings", i), err.(request.ErrInvalidParams))
10198			}
10199		}
10200	}
10201	if s.PosixProfile != nil {
10202		if err := s.PosixProfile.Validate(); err != nil {
10203			invalidParams.AddNested("PosixProfile", err.(request.ErrInvalidParams))
10204		}
10205	}
10206
10207	if invalidParams.Len() > 0 {
10208		return invalidParams
10209	}
10210	return nil
10211}
10212
10213// SetHomeDirectory sets the HomeDirectory field's value.
10214func (s *UpdateUserInput) SetHomeDirectory(v string) *UpdateUserInput {
10215	s.HomeDirectory = &v
10216	return s
10217}
10218
10219// SetHomeDirectoryMappings sets the HomeDirectoryMappings field's value.
10220func (s *UpdateUserInput) SetHomeDirectoryMappings(v []*HomeDirectoryMapEntry) *UpdateUserInput {
10221	s.HomeDirectoryMappings = v
10222	return s
10223}
10224
10225// SetHomeDirectoryType sets the HomeDirectoryType field's value.
10226func (s *UpdateUserInput) SetHomeDirectoryType(v string) *UpdateUserInput {
10227	s.HomeDirectoryType = &v
10228	return s
10229}
10230
10231// SetPolicy sets the Policy field's value.
10232func (s *UpdateUserInput) SetPolicy(v string) *UpdateUserInput {
10233	s.Policy = &v
10234	return s
10235}
10236
10237// SetPosixProfile sets the PosixProfile field's value.
10238func (s *UpdateUserInput) SetPosixProfile(v *PosixProfile) *UpdateUserInput {
10239	s.PosixProfile = v
10240	return s
10241}
10242
10243// SetRole sets the Role field's value.
10244func (s *UpdateUserInput) SetRole(v string) *UpdateUserInput {
10245	s.Role = &v
10246	return s
10247}
10248
10249// SetServerId sets the ServerId field's value.
10250func (s *UpdateUserInput) SetServerId(v string) *UpdateUserInput {
10251	s.ServerId = &v
10252	return s
10253}
10254
10255// SetUserName sets the UserName field's value.
10256func (s *UpdateUserInput) SetUserName(v string) *UpdateUserInput {
10257	s.UserName = &v
10258	return s
10259}
10260
10261// UpdateUserResponse returns the user name and identifier for the request to
10262// update a user's properties.
10263type UpdateUserOutput struct {
10264	_ struct{} `type:"structure"`
10265
10266	// A system-assigned unique identifier for a server instance that the user account
10267	// is assigned to.
10268	//
10269	// ServerId is a required field
10270	ServerId *string `min:"19" type:"string" required:"true"`
10271
10272	// The unique identifier for a user that is assigned to a server instance that
10273	// was specified in the request.
10274	//
10275	// UserName is a required field
10276	UserName *string `min:"3" type:"string" required:"true"`
10277}
10278
10279// String returns the string representation
10280func (s UpdateUserOutput) String() string {
10281	return awsutil.Prettify(s)
10282}
10283
10284// GoString returns the string representation
10285func (s UpdateUserOutput) GoString() string {
10286	return s.String()
10287}
10288
10289// SetServerId sets the ServerId field's value.
10290func (s *UpdateUserOutput) SetServerId(v string) *UpdateUserOutput {
10291	s.ServerId = &v
10292	return s
10293}
10294
10295// SetUserName sets the UserName field's value.
10296func (s *UpdateUserOutput) SetUserName(v string) *UpdateUserOutput {
10297	s.UserName = &v
10298	return s
10299}
10300
10301// Specifies the user name, server ID, and session ID for a workflow.
10302type UserDetails struct {
10303	_ struct{} `type:"structure"`
10304
10305	// The system-assigned unique identifier for a Transfer server instance.
10306	//
10307	// ServerId is a required field
10308	ServerId *string `min:"19" type:"string" required:"true"`
10309
10310	// The system-assigned unique identifier for a session that corresponds to the
10311	// workflow.
10312	SessionId *string `min:"3" type:"string"`
10313
10314	// A unique string that identifies a user account associated with a server.
10315	//
10316	// UserName is a required field
10317	UserName *string `min:"3" type:"string" required:"true"`
10318}
10319
10320// String returns the string representation
10321func (s UserDetails) String() string {
10322	return awsutil.Prettify(s)
10323}
10324
10325// GoString returns the string representation
10326func (s UserDetails) GoString() string {
10327	return s.String()
10328}
10329
10330// SetServerId sets the ServerId field's value.
10331func (s *UserDetails) SetServerId(v string) *UserDetails {
10332	s.ServerId = &v
10333	return s
10334}
10335
10336// SetSessionId sets the SessionId field's value.
10337func (s *UserDetails) SetSessionId(v string) *UserDetails {
10338	s.SessionId = &v
10339	return s
10340}
10341
10342// SetUserName sets the UserName field's value.
10343func (s *UserDetails) SetUserName(v string) *UserDetails {
10344	s.UserName = &v
10345	return s
10346}
10347
10348// Specifies the workflow ID for the workflow to assign and the execution role
10349// used for executing the workflow.
10350type WorkflowDetail struct {
10351	_ struct{} `type:"structure"`
10352
10353	// Includes the necessary permissions for S3, EFS, and Lambda operations that
10354	// Transfer can assume, so that all workflow steps can operate on the required
10355	// resources
10356	//
10357	// ExecutionRole is a required field
10358	ExecutionRole *string `min:"20" type:"string" required:"true"`
10359
10360	// A unique identifier for the workflow.
10361	//
10362	// WorkflowId is a required field
10363	WorkflowId *string `min:"19" type:"string" required:"true"`
10364}
10365
10366// String returns the string representation
10367func (s WorkflowDetail) String() string {
10368	return awsutil.Prettify(s)
10369}
10370
10371// GoString returns the string representation
10372func (s WorkflowDetail) GoString() string {
10373	return s.String()
10374}
10375
10376// Validate inspects the fields of the type to determine if they are valid.
10377func (s *WorkflowDetail) Validate() error {
10378	invalidParams := request.ErrInvalidParams{Context: "WorkflowDetail"}
10379	if s.ExecutionRole == nil {
10380		invalidParams.Add(request.NewErrParamRequired("ExecutionRole"))
10381	}
10382	if s.ExecutionRole != nil && len(*s.ExecutionRole) < 20 {
10383		invalidParams.Add(request.NewErrParamMinLen("ExecutionRole", 20))
10384	}
10385	if s.WorkflowId == nil {
10386		invalidParams.Add(request.NewErrParamRequired("WorkflowId"))
10387	}
10388	if s.WorkflowId != nil && len(*s.WorkflowId) < 19 {
10389		invalidParams.Add(request.NewErrParamMinLen("WorkflowId", 19))
10390	}
10391
10392	if invalidParams.Len() > 0 {
10393		return invalidParams
10394	}
10395	return nil
10396}
10397
10398// SetExecutionRole sets the ExecutionRole field's value.
10399func (s *WorkflowDetail) SetExecutionRole(v string) *WorkflowDetail {
10400	s.ExecutionRole = &v
10401	return s
10402}
10403
10404// SetWorkflowId sets the WorkflowId field's value.
10405func (s *WorkflowDetail) SetWorkflowId(v string) *WorkflowDetail {
10406	s.WorkflowId = &v
10407	return s
10408}
10409
10410// Container for the WorkflowDetail data type. It is used by actions that trigger
10411// a workflow to begin execution.
10412type WorkflowDetails struct {
10413	_ struct{} `type:"structure"`
10414
10415	// A trigger that starts a workflow: the workflow begins to execute after a
10416	// file is uploaded.
10417	//
10418	// OnUpload is a required field
10419	OnUpload []*WorkflowDetail `type:"list" required:"true"`
10420}
10421
10422// String returns the string representation
10423func (s WorkflowDetails) String() string {
10424	return awsutil.Prettify(s)
10425}
10426
10427// GoString returns the string representation
10428func (s WorkflowDetails) GoString() string {
10429	return s.String()
10430}
10431
10432// Validate inspects the fields of the type to determine if they are valid.
10433func (s *WorkflowDetails) Validate() error {
10434	invalidParams := request.ErrInvalidParams{Context: "WorkflowDetails"}
10435	if s.OnUpload == nil {
10436		invalidParams.Add(request.NewErrParamRequired("OnUpload"))
10437	}
10438	if s.OnUpload != nil {
10439		for i, v := range s.OnUpload {
10440			if v == nil {
10441				continue
10442			}
10443			if err := v.Validate(); err != nil {
10444				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OnUpload", i), err.(request.ErrInvalidParams))
10445			}
10446		}
10447	}
10448
10449	if invalidParams.Len() > 0 {
10450		return invalidParams
10451	}
10452	return nil
10453}
10454
10455// SetOnUpload sets the OnUpload field's value.
10456func (s *WorkflowDetails) SetOnUpload(v []*WorkflowDetail) *WorkflowDetails {
10457	s.OnUpload = v
10458	return s
10459}
10460
10461// The basic building block of a workflow.
10462type WorkflowStep struct {
10463	_ struct{} `type:"structure"`
10464
10465	// Details for a step that performs a file copy.
10466	//
10467	// Consists of the following values:
10468	//
10469	//    * A description
10470	//
10471	//    * An S3 or EFS location for the destination of the file copy.
10472	//
10473	//    * A flag that indicates whether or not to overwrite an existing file of
10474	//    the same name. The default is FALSE.
10475	CopyStepDetails *CopyStepDetails `type:"structure"`
10476
10477	// Details for a step that invokes a lambda function.
10478	//
10479	// Consists of the lambda function name, target, and timeout (in seconds).
10480	CustomStepDetails *CustomStepDetails `type:"structure"`
10481
10482	// You need to specify the name of the file to be deleted.
10483	DeleteStepDetails *DeleteStepDetails `type:"structure"`
10484
10485	// Details for a step that creates one or more tags.
10486	//
10487	// You specify one or more tags: each tag contains a key/value pair.
10488	TagStepDetails *TagStepDetails `type:"structure"`
10489
10490	// Currently, the following step types are supported.
10491	//
10492	//    * Copy: copy the file to another location
10493	//
10494	//    * Custom: custom step with a lambda target
10495	//
10496	//    * Delete: delete the file
10497	//
10498	//    * Tag: add a tag to the file
10499	Type *string `type:"string" enum:"WorkflowStepType"`
10500}
10501
10502// String returns the string representation
10503func (s WorkflowStep) String() string {
10504	return awsutil.Prettify(s)
10505}
10506
10507// GoString returns the string representation
10508func (s WorkflowStep) GoString() string {
10509	return s.String()
10510}
10511
10512// Validate inspects the fields of the type to determine if they are valid.
10513func (s *WorkflowStep) Validate() error {
10514	invalidParams := request.ErrInvalidParams{Context: "WorkflowStep"}
10515	if s.CopyStepDetails != nil {
10516		if err := s.CopyStepDetails.Validate(); err != nil {
10517			invalidParams.AddNested("CopyStepDetails", err.(request.ErrInvalidParams))
10518		}
10519	}
10520	if s.CustomStepDetails != nil {
10521		if err := s.CustomStepDetails.Validate(); err != nil {
10522			invalidParams.AddNested("CustomStepDetails", err.(request.ErrInvalidParams))
10523		}
10524	}
10525	if s.TagStepDetails != nil {
10526		if err := s.TagStepDetails.Validate(); err != nil {
10527			invalidParams.AddNested("TagStepDetails", err.(request.ErrInvalidParams))
10528		}
10529	}
10530
10531	if invalidParams.Len() > 0 {
10532		return invalidParams
10533	}
10534	return nil
10535}
10536
10537// SetCopyStepDetails sets the CopyStepDetails field's value.
10538func (s *WorkflowStep) SetCopyStepDetails(v *CopyStepDetails) *WorkflowStep {
10539	s.CopyStepDetails = v
10540	return s
10541}
10542
10543// SetCustomStepDetails sets the CustomStepDetails field's value.
10544func (s *WorkflowStep) SetCustomStepDetails(v *CustomStepDetails) *WorkflowStep {
10545	s.CustomStepDetails = v
10546	return s
10547}
10548
10549// SetDeleteStepDetails sets the DeleteStepDetails field's value.
10550func (s *WorkflowStep) SetDeleteStepDetails(v *DeleteStepDetails) *WorkflowStep {
10551	s.DeleteStepDetails = v
10552	return s
10553}
10554
10555// SetTagStepDetails sets the TagStepDetails field's value.
10556func (s *WorkflowStep) SetTagStepDetails(v *TagStepDetails) *WorkflowStep {
10557	s.TagStepDetails = v
10558	return s
10559}
10560
10561// SetType sets the Type field's value.
10562func (s *WorkflowStep) SetType(v string) *WorkflowStep {
10563	s.Type = &v
10564	return s
10565}
10566
10567const (
10568	// CustomStepStatusSuccess is a CustomStepStatus enum value
10569	CustomStepStatusSuccess = "SUCCESS"
10570
10571	// CustomStepStatusFailure is a CustomStepStatus enum value
10572	CustomStepStatusFailure = "FAILURE"
10573)
10574
10575// CustomStepStatus_Values returns all elements of the CustomStepStatus enum
10576func CustomStepStatus_Values() []string {
10577	return []string{
10578		CustomStepStatusSuccess,
10579		CustomStepStatusFailure,
10580	}
10581}
10582
10583const (
10584	// DomainS3 is a Domain enum value
10585	DomainS3 = "S3"
10586
10587	// DomainEfs is a Domain enum value
10588	DomainEfs = "EFS"
10589)
10590
10591// Domain_Values returns all elements of the Domain enum
10592func Domain_Values() []string {
10593	return []string{
10594		DomainS3,
10595		DomainEfs,
10596	}
10597}
10598
10599const (
10600	// EndpointTypePublic is a EndpointType enum value
10601	EndpointTypePublic = "PUBLIC"
10602
10603	// EndpointTypeVpc is a EndpointType enum value
10604	EndpointTypeVpc = "VPC"
10605
10606	// EndpointTypeVpcEndpoint is a EndpointType enum value
10607	EndpointTypeVpcEndpoint = "VPC_ENDPOINT"
10608)
10609
10610// EndpointType_Values returns all elements of the EndpointType enum
10611func EndpointType_Values() []string {
10612	return []string{
10613		EndpointTypePublic,
10614		EndpointTypeVpc,
10615		EndpointTypeVpcEndpoint,
10616	}
10617}
10618
10619const (
10620	// ExecutionErrorTypePermissionDenied is a ExecutionErrorType enum value
10621	ExecutionErrorTypePermissionDenied = "PERMISSION_DENIED"
10622)
10623
10624// ExecutionErrorType_Values returns all elements of the ExecutionErrorType enum
10625func ExecutionErrorType_Values() []string {
10626	return []string{
10627		ExecutionErrorTypePermissionDenied,
10628	}
10629}
10630
10631const (
10632	// ExecutionStatusInProgress is a ExecutionStatus enum value
10633	ExecutionStatusInProgress = "IN_PROGRESS"
10634
10635	// ExecutionStatusCompleted is a ExecutionStatus enum value
10636	ExecutionStatusCompleted = "COMPLETED"
10637
10638	// ExecutionStatusException is a ExecutionStatus enum value
10639	ExecutionStatusException = "EXCEPTION"
10640
10641	// ExecutionStatusHandlingException is a ExecutionStatus enum value
10642	ExecutionStatusHandlingException = "HANDLING_EXCEPTION"
10643)
10644
10645// ExecutionStatus_Values returns all elements of the ExecutionStatus enum
10646func ExecutionStatus_Values() []string {
10647	return []string{
10648		ExecutionStatusInProgress,
10649		ExecutionStatusCompleted,
10650		ExecutionStatusException,
10651		ExecutionStatusHandlingException,
10652	}
10653}
10654
10655const (
10656	// HomeDirectoryTypePath is a HomeDirectoryType enum value
10657	HomeDirectoryTypePath = "PATH"
10658
10659	// HomeDirectoryTypeLogical is a HomeDirectoryType enum value
10660	HomeDirectoryTypeLogical = "LOGICAL"
10661)
10662
10663// HomeDirectoryType_Values returns all elements of the HomeDirectoryType enum
10664func HomeDirectoryType_Values() []string {
10665	return []string{
10666		HomeDirectoryTypePath,
10667		HomeDirectoryTypeLogical,
10668	}
10669}
10670
10671// Returns information related to the type of user authentication that is in
10672// use for a file transfer protocol-enabled server's users. For AWS_DIRECTORY_SERVICE
10673// or SERVICE_MANAGED authentication, the Secure Shell (SSH) public keys are
10674// stored with a user on the server instance. For API_GATEWAY authentication,
10675// your custom authentication method is implemented by using an API call. The
10676// server can have only one method of authentication.
10677const (
10678	// IdentityProviderTypeServiceManaged is a IdentityProviderType enum value
10679	IdentityProviderTypeServiceManaged = "SERVICE_MANAGED"
10680
10681	// IdentityProviderTypeApiGateway is a IdentityProviderType enum value
10682	IdentityProviderTypeApiGateway = "API_GATEWAY"
10683
10684	// IdentityProviderTypeAwsDirectoryService is a IdentityProviderType enum value
10685	IdentityProviderTypeAwsDirectoryService = "AWS_DIRECTORY_SERVICE"
10686)
10687
10688// IdentityProviderType_Values returns all elements of the IdentityProviderType enum
10689func IdentityProviderType_Values() []string {
10690	return []string{
10691		IdentityProviderTypeServiceManaged,
10692		IdentityProviderTypeApiGateway,
10693		IdentityProviderTypeAwsDirectoryService,
10694	}
10695}
10696
10697const (
10698	// OverwriteExistingTrue is a OverwriteExisting enum value
10699	OverwriteExistingTrue = "TRUE"
10700
10701	// OverwriteExistingFalse is a OverwriteExisting enum value
10702	OverwriteExistingFalse = "FALSE"
10703)
10704
10705// OverwriteExisting_Values returns all elements of the OverwriteExisting enum
10706func OverwriteExisting_Values() []string {
10707	return []string{
10708		OverwriteExistingTrue,
10709		OverwriteExistingFalse,
10710	}
10711}
10712
10713const (
10714	// ProtocolSftp is a Protocol enum value
10715	ProtocolSftp = "SFTP"
10716
10717	// ProtocolFtp is a Protocol enum value
10718	ProtocolFtp = "FTP"
10719
10720	// ProtocolFtps is a Protocol enum value
10721	ProtocolFtps = "FTPS"
10722)
10723
10724// Protocol_Values returns all elements of the Protocol enum
10725func Protocol_Values() []string {
10726	return []string{
10727		ProtocolSftp,
10728		ProtocolFtp,
10729		ProtocolFtps,
10730	}
10731}
10732
10733// Describes the condition of a file transfer protocol-enabled server with respect
10734// to its ability to perform file operations. There are six possible states:
10735// OFFLINE, ONLINE, STARTING, STOPPING, START_FAILED, and STOP_FAILED.
10736//
10737// OFFLINE indicates that the server exists, but that it is not available for
10738// file operations. ONLINE indicates that the server is available to perform
10739// file operations. STARTING indicates that the server's was instantiated, but
10740// the server is not yet available to perform file operations. Under normal
10741// conditions, it can take a couple of minutes for the server to be completely
10742// operational. Both START_FAILED and STOP_FAILED are error conditions.
10743const (
10744	// StateOffline is a State enum value
10745	StateOffline = "OFFLINE"
10746
10747	// StateOnline is a State enum value
10748	StateOnline = "ONLINE"
10749
10750	// StateStarting is a State enum value
10751	StateStarting = "STARTING"
10752
10753	// StateStopping is a State enum value
10754	StateStopping = "STOPPING"
10755
10756	// StateStartFailed is a State enum value
10757	StateStartFailed = "START_FAILED"
10758
10759	// StateStopFailed is a State enum value
10760	StateStopFailed = "STOP_FAILED"
10761)
10762
10763// State_Values returns all elements of the State enum
10764func State_Values() []string {
10765	return []string{
10766		StateOffline,
10767		StateOnline,
10768		StateStarting,
10769		StateStopping,
10770		StateStartFailed,
10771		StateStopFailed,
10772	}
10773}
10774
10775const (
10776	// WorkflowStepTypeCopy is a WorkflowStepType enum value
10777	WorkflowStepTypeCopy = "COPY"
10778
10779	// WorkflowStepTypeCustom is a WorkflowStepType enum value
10780	WorkflowStepTypeCustom = "CUSTOM"
10781
10782	// WorkflowStepTypeTag is a WorkflowStepType enum value
10783	WorkflowStepTypeTag = "TAG"
10784
10785	// WorkflowStepTypeDelete is a WorkflowStepType enum value
10786	WorkflowStepTypeDelete = "DELETE"
10787)
10788
10789// WorkflowStepType_Values returns all elements of the WorkflowStepType enum
10790func WorkflowStepType_Values() []string {
10791	return []string{
10792		WorkflowStepTypeCopy,
10793		WorkflowStepTypeCustom,
10794		WorkflowStepTypeTag,
10795		WorkflowStepTypeDelete,
10796	}
10797}
10798